create-stacksfinder 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +83 -83
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as XP}from"node:module";var oP=Object.create;var{getPrototypeOf:pP,defineProperty:af,getOwnPropertyNames:uP}=Object;var dP=Object.prototype.hasOwnProperty;var s=(q,_,f)=>{f=q!=null?oP(pP(q)):{};let $=_||!q||!q.__esModule?af(f,"default",{value:q,enumerable:!0}):f;for(let P of uP(q))if(!dP.call($,P))af($,P,{get:()=>q[P],enumerable:!0});return $};var Z=(q,_)=>()=>(_||q((_={exports:{}}).exports,_),_.exports);var G8=XP(import.meta.url);var $_=Z((I5,tf)=>{var f_={to(q,_){if(!_)return`\x1B[${q+1}G`;return`\x1B[${_+1};${q+1}H`},move(q,_){let f="";if(q<0)f+=`\x1B[${-q}D`;else if(q>0)f+=`\x1B[${q}C`;if(_<0)f+=`\x1B[${-_}A`;else if(_>0)f+=`\x1B[${_}B`;return f},up:(q=1)=>`\x1B[${q}A`,down:(q=1)=>`\x1B[${q}B`,forward:(q=1)=>`\x1B[${q}C`,backward:(q=1)=>`\x1B[${q}D`,nextLine:(q=1)=>"\x1B[E".repeat(q),prevLine:(q=1)=>"\x1B[F".repeat(q),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},AP={up:(q=1)=>"\x1B[S".repeat(q),down:(q=1)=>"\x1B[T".repeat(q)},aP={screen:"\x1B[2J",up:(q=1)=>"\x1B[1J".repeat(q),down:(q=1)=>"\x1B[J".repeat(q),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(q){let _="";for(let f=0;f<q;f++)_+=this.line+(f<q-1?f_.up():"");if(q)_+=f_.left;return _}};tf.exports={cursor:f_,scroll:AP,erase:aP,beep:"\x07"}});var $8=Z((D5,K_)=>{var oq=process||{},Gf=oq.argv||[],nq=oq.env||{},iP=!(!!nq.NO_COLOR||Gf.includes("--no-color"))&&(!!nq.FORCE_COLOR||Gf.includes("--color")||oq.platform==="win32"||(oq.stdout||{}).isTTY&&nq.TERM!=="dumb"||!!nq.CI),tP=(q,_,f=q)=>($)=>{let P=""+$,j=P.indexOf(_,q.length);return~j?q+GP(P,_,f,j)+_:q+P+_},GP=(q,_,f,$)=>{let P="",j=0;do P+=q.substring(j,$)+f,j=$+_.length,$=q.indexOf(_,j);while(~$);return P+q.substring(j)},lf=(q=iP)=>{let _=q?tP:()=>String;return{isColorSupported:q,reset:_("\x1B[0m","\x1B[0m"),bold:_("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:_("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:_("\x1B[3m","\x1B[23m"),underline:_("\x1B[4m","\x1B[24m"),inverse:_("\x1B[7m","\x1B[27m"),hidden:_("\x1B[8m","\x1B[28m"),strikethrough:_("\x1B[9m","\x1B[29m"),black:_("\x1B[30m","\x1B[39m"),red:_("\x1B[31m","\x1B[39m"),green:_("\x1B[32m","\x1B[39m"),yellow:_("\x1B[33m","\x1B[39m"),blue:_("\x1B[34m","\x1B[39m"),magenta:_("\x1B[35m","\x1B[39m"),cyan:_("\x1B[36m","\x1B[39m"),white:_("\x1B[37m","\x1B[39m"),gray:_("\x1B[90m","\x1B[39m"),bgBlack:_("\x1B[40m","\x1B[49m"),bgRed:_("\x1B[41m","\x1B[49m"),bgGreen:_("\x1B[42m","\x1B[49m"),bgYellow:_("\x1B[43m","\x1B[49m"),bgBlue:_("\x1B[44m","\x1B[49m"),bgMagenta:_("\x1B[45m","\x1B[49m"),bgCyan:_("\x1B[46m","\x1B[49m"),bgWhite:_("\x1B[47m","\x1B[49m"),blackBright:_("\x1B[90m","\x1B[39m"),redBright:_("\x1B[91m","\x1B[39m"),greenBright:_("\x1B[92m","\x1B[39m"),yellowBright:_("\x1B[93m","\x1B[39m"),blueBright:_("\x1B[94m","\x1B[39m"),magentaBright:_("\x1B[95m","\x1B[39m"),cyanBright:_("\x1B[96m","\x1B[39m"),whiteBright:_("\x1B[97m","\x1B[39m"),bgBlackBright:_("\x1B[100m","\x1B[49m"),bgRedBright:_("\x1B[101m","\x1B[49m"),bgGreenBright:_("\x1B[102m","\x1B[49m"),bgYellowBright:_("\x1B[103m","\x1B[49m"),bgBlueBright:_("\x1B[104m","\x1B[49m"),bgMagentaBright:_("\x1B[105m","\x1B[49m"),bgCyanBright:_("\x1B[106m","\x1B[49m"),bgWhiteBright:_("\x1B[107m","\x1B[49m")}};K_.exports=lf();K_.exports.createColors=lf});var x=Z((z7)=>{z7.__esModule=!0;z7.extend=i6;z7.indexOf=r7;z7.escapeExpression=O7;z7.isEmpty=T7;z7.createFrame=Y7;z7.blockParams=k7;z7.appendContextPath=h7;var j7={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},v7=/[&<>"'`=]/g,w7=/[&<>"'`=]/;function m7(q){return j7[q]}function i6(q){for(var _=1;_<arguments.length;_++)for(var f in arguments[_])if(Object.prototype.hasOwnProperty.call(arguments[_],f))q[f]=arguments[_][f];return q}var l_=Object.prototype.toString;z7.toString=l_;var G_=function(_){return typeof _==="function"};if(G_(/x/))z7.isFunction=G_=function(q){return typeof q==="function"&&l_.call(q)==="[object Function]"};z7.isFunction=G_;var t6=Array.isArray||function(q){return q&&typeof q==="object"?l_.call(q)==="[object Array]":!1};z7.isArray=t6;function r7(q,_){for(var f=0,$=q.length;f<$;f++)if(q[f]===_)return f;return-1}function O7(q){if(typeof q!=="string"){if(q&&q.toHTML)return q.toHTML();else if(q==null)return"";else if(!q)return q+"";q=""+q}if(!w7.test(q))return q;return q.replace(v7,m7)}function T7(q){if(!q&&q!==0)return!0;else if(t6(q)&&q.length===0)return!0;else return!1}function Y7(q){var _=i6({},q);return _._parent=q,_}function k7(q,_){return q.path=_,q}function h7(q,_){return(q?q+".":"")+_}});var j8=Z((G6,l6)=>{G6.__esModule=!0;var b_=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function M_(q,_){var f=_&&_.loc,$=void 0,P=void 0,j=void 0,K=void 0;if(f)$=f.start.line,P=f.end.line,j=f.start.column,K=f.end.column,q+=" - "+$+":"+j;var v=Error.prototype.constructor.call(this,q);for(var m=0;m<b_.length;m++)this[b_[m]]=v[b_[m]];if(Error.captureStackTrace)Error.captureStackTrace(this,M_);try{if(f)if(this.lineNumber=$,this.endLineNumber=P,Object.defineProperty)Object.defineProperty(this,"column",{value:j,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:K,enumerable:!0});else this.column=j,this.endColumn=K}catch(w){}}M_.prototype=Error();G6.default=M_;l6.exports=G6.default});var C6=Z((b6,M6)=>{b6.__esModule=!0;var C_=x();b6.default=function(q){q.registerHelper("blockHelperMissing",function(_,f){var{inverse:$,fn:P}=f;if(_===!0)return P(this);else if(_===!1||_==null)return $(this);else if(C_.isArray(_))if(_.length>0){if(f.ids)f.ids=[f.name];return q.helpers.each(_,f)}else return $(this);else{if(f.data&&f.ids){var j=C_.createFrame(f.data);j.contextPath=C_.appendContextPath(f.data.contextPath,f.name),f={data:j}}return P(_,f)}})};M6.exports=b6.default});var c6=Z((V6,S6)=>{V6.__esModule=!0;function G7(q){return q&&q.__esModule?q:{default:q}}var vq=x(),l7=j8(),b7=G7(l7);V6.default=function(q){q.registerHelper("each",function(_,f){if(!f)throw new b7.default("Must pass iterator to #each");var{fn:$,inverse:P}=f,j=0,K="",v=void 0,m=void 0;if(f.data&&f.ids)m=vq.appendContextPath(f.data.contextPath,f.ids[0])+".";if(vq.isFunction(_))_=_.call(this);if(f.data)v=vq.createFrame(f.data);function w(e,W,p){if(v){if(v.key=e,v.index=W,v.first=W===0,v.last=!!p,m)v.contextPath=m+e}K=K+$(_[e],{data:v,blockParams:vq.blockParams([_[e],e],[m+e,null])})}if(_&&typeof _==="object")if(vq.isArray(_)){for(var O=_.length;j<O;j++)if(j in _)w(j,j,j===_.length-1)}else if(typeof Symbol==="function"&&_[Symbol.iterator]){var r=[],T=_[Symbol.iterator]();for(var z=T.next();!z.done;z=T.next())r.push(z.value);_=r;for(var O=_.length;j<O;j++)w(j,j,j===_.length-1)}else(function(){var e=void 0;if(Object.keys(_).forEach(function(W){if(e!==void 0)w(e,j-1);e=W,j++}),e!==void 0)w(e,j-1,!0)})();if(j===0)K=P(this);return K})};S6.exports=V6.default});var R6=Z((N6,y6)=>{N6.__esModule=!0;function V7(q){return q&&q.__esModule?q:{default:q}}var S7=j8(),c7=V7(S7);N6.default=function(q){q.registerHelper("helperMissing",function(){if(arguments.length===1)return;else throw new c7.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})};y6.exports=N6.default});var x6=Z((I6,D6)=>{I6.__esModule=!0;function R7(q){return q&&q.__esModule?q:{default:q}}var E6=x(),E7=j8(),g6=R7(E7);I6.default=function(q){q.registerHelper("if",function(_,f){if(arguments.length!=2)throw new g6.default("#if requires exactly one argument");if(E6.isFunction(_))_=_.call(this);if(!f.hash.includeZero&&!_||E6.isEmpty(_))return f.inverse(this);else return f.fn(this)}),q.registerHelper("unless",function(_,f){if(arguments.length!=2)throw new g6.default("#unless requires exactly one argument");return q.helpers.if.call(this,_,{fn:f.inverse,inverse:f.fn,hash:f.hash})})};D6.exports=I6.default});var B6=Z((L6,s6)=>{L6.__esModule=!0;L6.default=function(q){q.registerHelper("log",function(){var _=[void 0],f=arguments[arguments.length-1];for(var $=0;$<arguments.length-1;$++)_.push(arguments[$]);var P=1;if(f.hash.level!=null)P=f.hash.level;else if(f.data&&f.data.level!=null)P=f.data.level;_[0]=P,q.log.apply(q,_)})};s6.exports=L6.default});var Q6=Z((U6,F6)=>{U6.__esModule=!0;U6.default=function(q){q.registerHelper("lookup",function(_,f,$){if(!_)return _;return $.lookupProperty(_,f)})};F6.exports=U6.default});var f$=Z((q$,_$)=>{q$.__esModule=!0;function B7(q){return q&&q.__esModule?q:{default:q}}var wq=x(),U7=j8(),F7=B7(U7);q$.default=function(q){q.registerHelper("with",function(_,f){if(arguments.length!=2)throw new F7.default("#with requires exactly one argument");if(wq.isFunction(_))_=_.call(this);var $=f.fn;if(!wq.isEmpty(_)){var P=f.data;if(f.data&&f.ids)P=wq.createFrame(f.data),P.contextPath=wq.appendContextPath(f.data.contextPath,f.ids[0]);return $(_,{data:P,blockParams:wq.blockParams([_],[P&&P.contextPath])})}else return f.inverse(this)})};_$.exports=q$.default});var V_=Z((ej)=>{ej.__esModule=!0;ej.registerDefaultHelpers=hj;ej.moveHelperToHooks=zj;function M8(q){return q&&q.__esModule?q:{default:q}}var _j=C6(),fj=M8(_j),$j=c6(),Kj=M8($j),Pj=R6(),jj=M8(Pj),vj=x6(),wj=M8(vj),mj=B6(),rj=M8(mj),Oj=Q6(),Tj=M8(Oj),Yj=f$(),kj=M8(Yj);function hj(q){fj.default(q),Kj.default(q),jj.default(q),wj.default(q),rj.default(q),Tj.default(q),kj.default(q)}function zj(q,_,f){if(q.helpers[_]){if(q.hooks[_]=q.helpers[_],!f)delete q.helpers[_]}}});var P$=Z(($$,K$)=>{$$.__esModule=!0;var Zj=x();$$.default=function(q){q.registerDecorator("inline",function(_,f,$,P){var j=_;if(!f.partials)f.partials={},j=function(K,v){var m=$.partials;$.partials=Zj.extend({},m,f.partials);var w=_(K,v);return $.partials=m,w};return f.partials[P.args[0]]=P.fn,j})};K$.exports=$$.default});var j$=Z((Aj)=>{Aj.__esModule=!0;Aj.registerDefaultDecorators=Xj;function pj(q){return q&&q.__esModule?q:{default:q}}var uj=P$(),dj=pj(uj);function Xj(q){dj.default(q)}});var S_=Z((v$,w$)=>{v$.__esModule=!0;var tj=x(),E8={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(_){if(typeof _==="string"){var f=tj.indexOf(E8.methodMap,_.toLowerCase());if(f>=0)_=f;else _=parseInt(_,10)}return _},log:function(_){if(_=E8.lookupLevel(_),typeof console<"u"&&E8.lookupLevel(E8.level)<=_){var f=E8.methodMap[_];if(!console[f])f="log";for(var $=arguments.length,P=Array($>1?$-1:0),j=1;j<$;j++)P[j-1]=arguments[j];console[f].apply(console,P)}}};v$.default=E8;w$.exports=v$.default});var m$=Z((Cj)=>{Cj.__esModule=!0;Cj.createNewLookupObject=Mj;var bj=x();function Mj(){for(var q=arguments.length,_=Array(q),f=0;f<q;f++)_[f]=arguments[f];return bj.extend.apply(void 0,[Object.create(null)].concat(_))}});var c_=Z((Dj)=>{Dj.__esModule=!0;Dj.createProtoAccessControl=Rj;Dj.resultIsAllowed=Ej;Dj.resetLoggedProperties=Ij;function cj(q){return q&&q.__esModule?q:{default:q}}var r$=m$(),Nj=S_(),yj=cj(Nj),Sq=Object.create(null);function Rj(q){var _=Object.create(null);_.constructor=!1,_.__defineGetter__=!1,_.__defineSetter__=!1,_.__lookupGetter__=!1;var f=Object.create(null);return f.__proto__=!1,{properties:{whitelist:r$.createNewLookupObject(f,q.allowedProtoProperties),defaultValue:q.allowProtoPropertiesByDefault},methods:{whitelist:r$.createNewLookupObject(_,q.allowedProtoMethods),defaultValue:q.allowProtoMethodsByDefault}}}function Ej(q,_,f){if(typeof q==="function")return O$(_.methods,f);else return O$(_.properties,f)}function O$(q,_){if(q.whitelist[_]!==void 0)return q.whitelist[_]===!0;if(q.defaultValue!==void 0)return q.defaultValue;return gj(_),!1}function gj(q){if(Sq[q]!==!0)Sq[q]=!0,yj.default.log("error",'Handlebars: Access has been denied to resolve the property "'+q+`" because it is not an "own property" of its parent.
|
|
2
|
+
import{createRequire as dP}from"node:module";var nP=Object.create;var{getPrototypeOf:oP,defineProperty:Af,getOwnPropertyNames:pP}=Object;var uP=Object.prototype.hasOwnProperty;var F=(q,_,f)=>{f=q!=null?nP(oP(q)):{};let $=_||!q||!q.__esModule?Af(f,"default",{value:q,enumerable:!0}):f;for(let P of pP(q))if(!uP.call($,P))Af($,P,{get:()=>q[P],enumerable:!0});return $};var Z=(q,_)=>()=>(_||q((_={exports:{}}).exports,_),_.exports);var M8=dP(import.meta.url);var K_=Z((g5,af)=>{var $_={to(q,_){if(!_)return`\x1B[${q+1}G`;return`\x1B[${_+1};${q+1}H`},move(q,_){let f="";if(q<0)f+=`\x1B[${-q}D`;else if(q>0)f+=`\x1B[${q}C`;if(_<0)f+=`\x1B[${-_}A`;else if(_>0)f+=`\x1B[${_}B`;return f},up:(q=1)=>`\x1B[${q}A`,down:(q=1)=>`\x1B[${q}B`,forward:(q=1)=>`\x1B[${q}C`,backward:(q=1)=>`\x1B[${q}D`,nextLine:(q=1)=>"\x1B[E".repeat(q),prevLine:(q=1)=>"\x1B[F".repeat(q),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},XP={up:(q=1)=>"\x1B[S".repeat(q),down:(q=1)=>"\x1B[T".repeat(q)},AP={screen:"\x1B[2J",up:(q=1)=>"\x1B[1J".repeat(q),down:(q=1)=>"\x1B[J".repeat(q),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(q){let _="";for(let f=0;f<q;f++)_+=this.line+(f<q-1?$_.up():"");if(q)_+=$_.left;return _}};af.exports={cursor:$_,scroll:XP,erase:AP,beep:"\x07"}});var P8=Z((I5,P_)=>{var uq=process||{},tf=uq.argv||[],pq=uq.env||{},aP=!(!!pq.NO_COLOR||tf.includes("--no-color"))&&(!!pq.FORCE_COLOR||tf.includes("--color")||uq.platform==="win32"||(uq.stdout||{}).isTTY&&pq.TERM!=="dumb"||!!pq.CI),iP=(q,_,f=q)=>($)=>{let P=""+$,j=P.indexOf(_,q.length);return~j?q+tP(P,_,f,j)+_:q+P+_},tP=(q,_,f,$)=>{let P="",j=0;do P+=q.substring(j,$)+f,j=$+_.length,$=q.indexOf(_,j);while(~$);return P+q.substring(j)},Gf=(q=aP)=>{let _=q?iP:()=>String;return{isColorSupported:q,reset:_("\x1B[0m","\x1B[0m"),bold:_("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:_("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:_("\x1B[3m","\x1B[23m"),underline:_("\x1B[4m","\x1B[24m"),inverse:_("\x1B[7m","\x1B[27m"),hidden:_("\x1B[8m","\x1B[28m"),strikethrough:_("\x1B[9m","\x1B[29m"),black:_("\x1B[30m","\x1B[39m"),red:_("\x1B[31m","\x1B[39m"),green:_("\x1B[32m","\x1B[39m"),yellow:_("\x1B[33m","\x1B[39m"),blue:_("\x1B[34m","\x1B[39m"),magenta:_("\x1B[35m","\x1B[39m"),cyan:_("\x1B[36m","\x1B[39m"),white:_("\x1B[37m","\x1B[39m"),gray:_("\x1B[90m","\x1B[39m"),bgBlack:_("\x1B[40m","\x1B[49m"),bgRed:_("\x1B[41m","\x1B[49m"),bgGreen:_("\x1B[42m","\x1B[49m"),bgYellow:_("\x1B[43m","\x1B[49m"),bgBlue:_("\x1B[44m","\x1B[49m"),bgMagenta:_("\x1B[45m","\x1B[49m"),bgCyan:_("\x1B[46m","\x1B[49m"),bgWhite:_("\x1B[47m","\x1B[49m"),blackBright:_("\x1B[90m","\x1B[39m"),redBright:_("\x1B[91m","\x1B[39m"),greenBright:_("\x1B[92m","\x1B[39m"),yellowBright:_("\x1B[93m","\x1B[39m"),blueBright:_("\x1B[94m","\x1B[39m"),magentaBright:_("\x1B[95m","\x1B[39m"),cyanBright:_("\x1B[96m","\x1B[39m"),whiteBright:_("\x1B[97m","\x1B[39m"),bgBlackBright:_("\x1B[100m","\x1B[49m"),bgRedBright:_("\x1B[101m","\x1B[49m"),bgGreenBright:_("\x1B[102m","\x1B[49m"),bgYellowBright:_("\x1B[103m","\x1B[49m"),bgBlueBright:_("\x1B[104m","\x1B[49m"),bgMagentaBright:_("\x1B[105m","\x1B[49m"),bgCyanBright:_("\x1B[106m","\x1B[49m"),bgWhiteBright:_("\x1B[107m","\x1B[49m")}};P_.exports=Gf();P_.exports.createColors=Gf});var s=Z((h7)=>{h7.__esModule=!0;h7.extend=a6;h7.indexOf=m7;h7.escapeExpression=O7;h7.isEmpty=r7;h7.createFrame=T7;h7.blockParams=Y7;h7.appendContextPath=k7;var P7={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},j7=/[&<>"'`=]/g,v7=/[&<>"'`=]/;function w7(q){return P7[q]}function a6(q){for(var _=1;_<arguments.length;_++)for(var f in arguments[_])if(Object.prototype.hasOwnProperty.call(arguments[_],f))q[f]=arguments[_][f];return q}var l_=Object.prototype.toString;h7.toString=l_;var G_=function(_){return typeof _==="function"};if(G_(/x/))h7.isFunction=G_=function(q){return typeof q==="function"&&l_.call(q)==="[object Function]"};h7.isFunction=G_;var i6=Array.isArray||function(q){return q&&typeof q==="object"?l_.call(q)==="[object Array]":!1};h7.isArray=i6;function m7(q,_){for(var f=0,$=q.length;f<$;f++)if(q[f]===_)return f;return-1}function O7(q){if(typeof q!=="string"){if(q&&q.toHTML)return q.toHTML();else if(q==null)return"";else if(!q)return q+"";q=""+q}if(!v7.test(q))return q;return q.replace(j7,w7)}function r7(q){if(!q&&q!==0)return!0;else if(i6(q)&&q.length===0)return!0;else return!1}function T7(q){var _=a6({},q);return _._parent=q,_}function Y7(q,_){return q.path=_,q}function k7(q,_){return(q?q+".":"")+_}});var w8=Z((t6,G6)=>{t6.__esModule=!0;var b_=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function M_(q,_){var f=_&&_.loc,$=void 0,P=void 0,j=void 0,K=void 0;if(f)$=f.start.line,P=f.end.line,j=f.start.column,K=f.end.column,q+=" - "+$+":"+j;var v=Error.prototype.constructor.call(this,q);for(var m=0;m<b_.length;m++)this[b_[m]]=v[b_[m]];if(Error.captureStackTrace)Error.captureStackTrace(this,M_);try{if(f)if(this.lineNumber=$,this.endLineNumber=P,Object.defineProperty)Object.defineProperty(this,"column",{value:j,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:K,enumerable:!0});else this.column=j,this.endColumn=K}catch(w){}}M_.prototype=Error();t6.default=M_;G6.exports=t6.default});var M6=Z((l6,b6)=>{l6.__esModule=!0;var C_=s();l6.default=function(q){q.registerHelper("blockHelperMissing",function(_,f){var{inverse:$,fn:P}=f;if(_===!0)return P(this);else if(_===!1||_==null)return $(this);else if(C_.isArray(_))if(_.length>0){if(f.ids)f.ids=[f.name];return q.helpers.each(_,f)}else return $(this);else{if(f.data&&f.ids){var j=C_.createFrame(f.data);j.contextPath=C_.appendContextPath(f.data.contextPath,f.name),f={data:j}}return P(_,f)}})};b6.exports=l6.default});var S6=Z((C6,V6)=>{C6.__esModule=!0;function t7(q){return q&&q.__esModule?q:{default:q}}var mq=s(),G7=w8(),l7=t7(G7);C6.default=function(q){q.registerHelper("each",function(_,f){if(!f)throw new l7.default("Must pass iterator to #each");var{fn:$,inverse:P}=f,j=0,K="",v=void 0,m=void 0;if(f.data&&f.ids)m=mq.appendContextPath(f.data.contextPath,f.ids[0])+".";if(mq.isFunction(_))_=_.call(this);if(f.data)v=mq.createFrame(f.data);function w(z,W,n){if(v){if(v.key=z,v.index=W,v.first=W===0,v.last=!!n,m)v.contextPath=m+z}K=K+$(_[z],{data:v,blockParams:mq.blockParams([_[z],z],[m+z,null])})}if(_&&typeof _==="object")if(mq.isArray(_)){for(var r=_.length;j<r;j++)if(j in _)w(j,j,j===_.length-1)}else if(typeof Symbol==="function"&&_[Symbol.iterator]){var O=[],T=_[Symbol.iterator]();for(var h=T.next();!h.done;h=T.next())O.push(h.value);_=O;for(var r=_.length;j<r;j++)w(j,j,j===_.length-1)}else(function(){var z=void 0;if(Object.keys(_).forEach(function(W){if(z!==void 0)w(z,j-1);z=W,j++}),z!==void 0)w(z,j-1,!0)})();if(j===0)K=P(this);return K})};V6.exports=C6.default});var y6=Z((c6,N6)=>{c6.__esModule=!0;function C7(q){return q&&q.__esModule?q:{default:q}}var V7=w8(),S7=C7(V7);c6.default=function(q){q.registerHelper("helperMissing",function(){if(arguments.length===1)return;else throw new S7.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})};N6.exports=c6.default});var D6=Z((g6,I6)=>{g6.__esModule=!0;function y7(q){return q&&q.__esModule?q:{default:q}}var R6=s(),R7=w8(),E6=y7(R7);g6.default=function(q){q.registerHelper("if",function(_,f){if(arguments.length!=2)throw new E6.default("#if requires exactly one argument");if(R6.isFunction(_))_=_.call(this);if(!f.hash.includeZero&&!_||R6.isEmpty(_))return f.inverse(this);else return f.fn(this)}),q.registerHelper("unless",function(_,f){if(arguments.length!=2)throw new E6.default("#unless requires exactly one argument");return q.helpers.if.call(this,_,{fn:f.inverse,inverse:f.fn,hash:f.hash})})};I6.exports=g6.default});var s6=Z((x6,L6)=>{x6.__esModule=!0;x6.default=function(q){q.registerHelper("log",function(){var _=[void 0],f=arguments[arguments.length-1];for(var $=0;$<arguments.length-1;$++)_.push(arguments[$]);var P=1;if(f.hash.level!=null)P=f.hash.level;else if(f.data&&f.data.level!=null)P=f.data.level;_[0]=P,q.log.apply(q,_)})};L6.exports=x6.default});var F6=Z((B6,U6)=>{B6.__esModule=!0;B6.default=function(q){q.registerHelper("lookup",function(_,f,$){if(!_)return _;return $.lookupProperty(_,f)})};U6.exports=B6.default});var _$=Z((Q6,q$)=>{Q6.__esModule=!0;function s7(q){return q&&q.__esModule?q:{default:q}}var Oq=s(),B7=w8(),U7=s7(B7);Q6.default=function(q){q.registerHelper("with",function(_,f){if(arguments.length!=2)throw new U7.default("#with requires exactly one argument");if(Oq.isFunction(_))_=_.call(this);var $=f.fn;if(!Oq.isEmpty(_)){var P=f.data;if(f.data&&f.ids)P=Oq.createFrame(f.data),P.contextPath=Oq.appendContextPath(f.data.contextPath,f.ids[0]);return $(_,{data:P,blockParams:Oq.blockParams([_],[P&&P.contextPath])})}else return f.inverse(this)})};q$.exports=Q6.default});var V_=Z((zj)=>{zj.__esModule=!0;zj.registerDefaultHelpers=kj;zj.moveHelperToHooks=hj;function V8(q){return q&&q.__esModule?q:{default:q}}var qj=M6(),_j=V8(qj),fj=S6(),$j=V8(fj),Kj=y6(),Pj=V8(Kj),jj=D6(),vj=V8(jj),wj=s6(),mj=V8(wj),Oj=F6(),rj=V8(Oj),Tj=_$(),Yj=V8(Tj);function kj(q){_j.default(q),$j.default(q),Pj.default(q),vj.default(q),mj.default(q),rj.default(q),Yj.default(q)}function hj(q,_,f){if(q.helpers[_]){if(q.hooks[_]=q.helpers[_],!f)delete q.helpers[_]}}});var K$=Z((f$,$$)=>{f$.__esModule=!0;var Jj=s();f$.default=function(q){q.registerDecorator("inline",function(_,f,$,P){var j=_;if(!f.partials)f.partials={},j=function(K,v){var m=$.partials;$.partials=Jj.extend({},m,f.partials);var w=_(K,v);return $.partials=m,w};return f.partials[P.args[0]]=P.fn,j})};$$.exports=f$.default});var P$=Z((Xj)=>{Xj.__esModule=!0;Xj.registerDefaultDecorators=dj;function oj(q){return q&&q.__esModule?q:{default:q}}var pj=K$(),uj=oj(pj);function dj(q){uj.default(q)}});var S_=Z((j$,v$)=>{j$.__esModule=!0;var ij=s(),D8={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(_){if(typeof _==="string"){var f=ij.indexOf(D8.methodMap,_.toLowerCase());if(f>=0)_=f;else _=parseInt(_,10)}return _},log:function(_){if(_=D8.lookupLevel(_),typeof console<"u"&&D8.lookupLevel(D8.level)<=_){var f=D8.methodMap[_];if(!console[f])f="log";for(var $=arguments.length,P=Array($>1?$-1:0),j=1;j<$;j++)P[j-1]=arguments[j];console[f].apply(console,P)}}};j$.default=D8;v$.exports=j$.default});var w$=Z((Mj)=>{Mj.__esModule=!0;Mj.createNewLookupObject=bj;var lj=s();function bj(){for(var q=arguments.length,_=Array(q),f=0;f<q;f++)_[f]=arguments[f];return lj.extend.apply(void 0,[Object.create(null)].concat(_))}});var c_=Z((Ij)=>{Ij.__esModule=!0;Ij.createProtoAccessControl=yj;Ij.resultIsAllowed=Rj;Ij.resetLoggedProperties=gj;function Sj(q){return q&&q.__esModule?q:{default:q}}var m$=w$(),cj=S_(),Nj=Sj(cj),cq=Object.create(null);function yj(q){var _=Object.create(null);_.constructor=!1,_.__defineGetter__=!1,_.__defineSetter__=!1,_.__lookupGetter__=!1;var f=Object.create(null);return f.__proto__=!1,{properties:{whitelist:m$.createNewLookupObject(f,q.allowedProtoProperties),defaultValue:q.allowProtoPropertiesByDefault},methods:{whitelist:m$.createNewLookupObject(_,q.allowedProtoMethods),defaultValue:q.allowProtoMethodsByDefault}}}function Rj(q,_,f){if(typeof q==="function")return O$(_.methods,f);else return O$(_.properties,f)}function O$(q,_){if(q.whitelist[_]!==void 0)return q.whitelist[_]===!0;if(q.defaultValue!==void 0)return q.defaultValue;return Ej(_),!1}function Ej(q){if(cq[q]!==!0)cq[q]=!0,Nj.default.log("error",'Handlebars: Access has been denied to resolve the property "'+q+`" because it is not an "own property" of its parent.
|
|
3
3
|
You can add a runtime option to disable the check or this warning:
|
|
4
|
-
See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details`)}function
|
|
5
|
-
`);for(var T=0,
|
|
6
|
-
`)}return O}else throw new Z8.default("The partial "+m.name+" could not be compiled when running in runtime-only mode")}var P={strict:function(v,m,w){if(!v||!(m in v))throw new Z8.default('"'+m+'" not defined in '+v,{loc:w});return P.lookupProperty(v,m)},lookupProperty:function(v,m){var w=v[m];if(w==null)return w;if(Object.prototype.hasOwnProperty.call(v,m))return w;if(H$.resultIsAllowed(w,P.protoAccessControl,m))return w;return},lookup:function(v,m){var w=v.length;for(var O=0;O<w;O++){var r=v[O]&&P.lookupProperty(v[O],m);if(r!=null)return v[O][m]}},lambda:function(v,m){return typeof v==="function"?v.call(m):v},escapeExpression:J8.escapeExpression,invokePartial:$,fn:function(v){var m=q[v];return m.decorator=q[v+"_d"],m},programs:[],program:function(v,m,w,O,r){var T=this.programs[v],z=this.fn(v);if(m||r||O||w)T=yq(this,v,z,m,w,O,r);else if(!T)T=this.programs[v]=yq(this,v,z);return T},data:function(v,m){while(v&&m--)v=v._parent;return v},mergeIfNeeded:function(v,m){var w=v||m;if(v&&m&&v!==m)w=J8.extend({},m,v);return w},nullContext:Object.seal({}),noop:_.VM.noop,compilerInfo:q.compiler};function j(K){var v=arguments.length<=1||arguments[1]===void 0?{}:arguments[1],m=v.data;if(j._setup(v),!v.partial&&q.useData)m=G3(K,m);var w=void 0,O=q.useBlockParams?[]:void 0;if(q.useDepths)if(v.depths)w=K!=v.depths[0]?[K].concat(v.depths):v.depths;else w=[K];function r(T){return""+q.main(P,T,P.helpers,P.partials,m,O,w)}return r=J$(q.main,r,P,v.depths||[],m,O),r(K,v)}return j.isTop=!0,j._setup=function(K){if(!K.partial){var v=J8.extend({},_.helpers,K.helpers);if(l3(v,P),P.helpers=v,q.usePartial)P.partials=P.mergeIfNeeded(K.partials,_.partials);if(q.usePartial||q.useDecorators)P.decorators=J8.extend({},_.decorators,K.decorators);P.hooks={},P.protoAccessControl=H$.createProtoAccessControl(K);var m=K.allowCallsToHelperMissing||f;e$.moveHelperToHooks(P,"helperMissing",m),e$.moveHelperToHooks(P,"blockHelperMissing",m)}else P.protoAccessControl=K.protoAccessControl,P.helpers=K.helpers,P.partials=K.partials,P.decorators=K.decorators,P.hooks=K.hooks},j._child=function(K,v,m,w){if(q.useBlockParams&&!m)throw new Z8.default("must pass block params");if(q.useDepths&&!w)throw new Z8.default("must pass parent depths");return yq(P,K,q[K],v,0,m,w)},j}function yq(q,_,f,$,P,j,K){function v(m){var w=arguments.length<=1||arguments[1]===void 0?{}:arguments[1],O=K;if(K&&m!=K[0]&&!(m===q.nullContext&&K[0]===null))O=[m].concat(K);return f(q,m,q.helpers,q.partials,w.data||$,j&&[w.blockParams].concat(j),O)}return v=J$(f,v,q,K,$,j),v.program=_,v.depth=K?K.length:0,v.blockParams=P||0,v}function i3(q,_,f){if(!q)if(f.name==="@partial-block")q=f.data["partial-block"];else q=f.partials[f.name];else if(!q.call&&!f.name)f.name=q,q=f.partials[q];return q}function t3(q,_,f){var $=f.data&&f.data["partial-block"];if(f.partial=!0,f.ids)f.data.contextPath=f.ids[0]||f.data.contextPath;var P=void 0;if(f.fn&&f.fn!==W$)(function(){f.data=n8.createFrame(f.data);var j=f.fn;if(P=f.data["partial-block"]=function(v){var m=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];return m.data=n8.createFrame(m.data),m.data["partial-block"]=$,j(v,m)},j.partials)f.partials=J8.extend({},f.partials,j.partials)})();if(q===void 0&&P)q=P;if(q===void 0)throw new Z8.default("The partial "+f.name+" could not be found");else if(q instanceof Function)return q(_,f)}function W$(){return""}function G3(q,_){if(!_||!("root"in _))_=_?n8.createFrame(_):{},_.root=q;return _}function J$(q,_,f,$,P,j){if(q.decorator){var K={};_=q.decorator(_,K,f,$&&$[0],P,j,$),J8.extend(_,K)}return _}function l3(q,_){Object.keys(q).forEach(function(f){var $=q[f];q[f]=b3($,_)})}function b3(q,_){var f=_.lookupProperty;return X3.wrapHelper(q,function($){return J8.extend({lookupProperty:f},$)})}});var g_=Z((n$,o$)=>{n$.__esModule=!0;n$.default=function(q){(function(){if(typeof globalThis==="object")return;Object.prototype.__defineGetter__("__magic__",function(){return this}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__})();var _=globalThis.Handlebars;q.noConflict=function(){if(globalThis.Handlebars===q)globalThis.Handlebars=_;return q}};o$.exports=n$.default});var a$=Z((X$,A$)=>{X$.__esModule=!0;function D_(q){return q&&q.__esModule?q:{default:q}}function x_(q){if(q&&q.__esModule)return q;else{var _={};if(q!=null){for(var f in q)if(Object.prototype.hasOwnProperty.call(q,f))_[f]=q[f]}return _.default=q,_}}var I3=Nq(),p$=x_(I3),D3=h$(),x3=D_(D3),L3=j8(),s3=D_(L3),B3=x(),I_=x_(B3),U3=Z$(),u$=x_(U3),F3=g_(),Q3=D_(F3);function d$(){var q=new p$.HandlebarsEnvironment;return I_.extend(q,p$),q.SafeString=x3.default,q.Exception=s3.default,q.Utils=I_,q.escapeExpression=I_.escapeExpression,q.VM=u$,q.template=function(_){return u$.template(_,q)},q}var mq=d$();mq.create=d$;Q3.default(mq);mq.default=mq;X$.default=mq;A$.exports=X$.default});var L_=Z((t$,G$)=>{t$.__esModule=!0;var i$={helpers:{helperExpression:function(_){return _.type==="SubExpression"||(_.type==="MustacheStatement"||_.type==="BlockStatement")&&!!(_.params&&_.params.length||_.hash)},scopedId:function(_){return/^\.|this\b/.test(_.original)},simpleId:function(_){return _.parts.length===1&&!i$.helpers.scopedId(_)&&!_.depth}}};t$.default=i$;G$.exports=t$.default});var M$=Z((l$,b$)=>{l$.__esModule=!0;var K4=function(){var q={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,partialBlock:12,content:13,COMMENT:14,CONTENT:15,openRawBlock:16,rawBlock_repetition0:17,END_RAW_BLOCK:18,OPEN_RAW_BLOCK:19,helperName:20,openRawBlock_repetition0:21,openRawBlock_option0:22,CLOSE_RAW_BLOCK:23,openBlock:24,block_option0:25,closeBlock:26,openInverse:27,block_option1:28,OPEN_BLOCK:29,openBlock_repetition0:30,openBlock_option0:31,openBlock_option1:32,CLOSE:33,OPEN_INVERSE:34,openInverse_repetition0:35,openInverse_option0:36,openInverse_option1:37,openInverseChain:38,OPEN_INVERSE_CHAIN:39,openInverseChain_repetition0:40,openInverseChain_option0:41,openInverseChain_option1:42,inverseAndProgram:43,INVERSE:44,inverseChain:45,inverseChain_option0:46,OPEN_ENDBLOCK:47,OPEN:48,mustache_repetition0:49,mustache_option0:50,OPEN_UNESCAPED:51,mustache_repetition1:52,mustache_option1:53,CLOSE_UNESCAPED:54,OPEN_PARTIAL:55,partialName:56,partial_repetition0:57,partial_option0:58,openPartialBlock:59,OPEN_PARTIAL_BLOCK:60,openPartialBlock_repetition0:61,openPartialBlock_option0:62,param:63,sexpr:64,OPEN_SEXPR:65,sexpr_repetition0:66,sexpr_option0:67,CLOSE_SEXPR:68,hash:69,hash_repetition_plus0:70,hashSegment:71,ID:72,EQUALS:73,blockParams:74,OPEN_BLOCK_PARAMS:75,blockParams_repetition_plus0:76,CLOSE_BLOCK_PARAMS:77,path:78,dataName:79,STRING:80,NUMBER:81,BOOLEAN:82,UNDEFINED:83,NULL:84,DATA:85,pathSegments:86,SEP:87,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"COMMENT",15:"CONTENT",18:"END_RAW_BLOCK",19:"OPEN_RAW_BLOCK",23:"CLOSE_RAW_BLOCK",29:"OPEN_BLOCK",33:"CLOSE",34:"OPEN_INVERSE",39:"OPEN_INVERSE_CHAIN",44:"INVERSE",47:"OPEN_ENDBLOCK",48:"OPEN",51:"OPEN_UNESCAPED",54:"CLOSE_UNESCAPED",55:"OPEN_PARTIAL",60:"OPEN_PARTIAL_BLOCK",65:"OPEN_SEXPR",68:"CLOSE_SEXPR",72:"ID",73:"EQUALS",75:"OPEN_BLOCK_PARAMS",77:"CLOSE_BLOCK_PARAMS",80:"STRING",81:"NUMBER",82:"BOOLEAN",83:"UNDEFINED",84:"NULL",85:"DATA",87:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[13,1],[10,3],[16,5],[9,4],[9,4],[24,6],[27,6],[38,6],[43,2],[45,3],[45,1],[26,3],[8,5],[8,5],[11,5],[12,3],[59,5],[63,1],[63,1],[64,5],[69,1],[71,3],[74,3],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[56,1],[56,1],[79,2],[78,1],[86,3],[86,1],[6,0],[6,2],[17,0],[17,2],[21,0],[21,2],[22,0],[22,1],[25,0],[25,1],[28,0],[28,1],[30,0],[30,2],[31,0],[31,1],[32,0],[32,1],[35,0],[35,2],[36,0],[36,1],[37,0],[37,1],[40,0],[40,2],[41,0],[41,1],[42,0],[42,1],[46,0],[46,1],[49,0],[49,2],[50,0],[50,1],[52,0],[52,2],[53,0],[53,1],[57,0],[57,2],[58,0],[58,1],[61,0],[61,2],[62,0],[62,1],[66,0],[66,2],[67,0],[67,1],[70,1],[70,2],[76,1],[76,2]],performAction:function(P,j,K,v,m,w,O){var r=w.length-1;switch(m){case 1:return w[r-1];case 2:this.$=v.prepareProgram(w[r]);break;case 3:this.$=w[r];break;case 4:this.$=w[r];break;case 5:this.$=w[r];break;case 6:this.$=w[r];break;case 7:this.$=w[r];break;case 8:this.$=w[r];break;case 9:this.$={type:"CommentStatement",value:v.stripComment(w[r]),strip:v.stripFlags(w[r],w[r]),loc:v.locInfo(this._$)};break;case 10:this.$={type:"ContentStatement",original:w[r],value:w[r],loc:v.locInfo(this._$)};break;case 11:this.$=v.prepareRawBlock(w[r-2],w[r-1],w[r],this._$);break;case 12:this.$={path:w[r-3],params:w[r-2],hash:w[r-1]};break;case 13:this.$=v.prepareBlock(w[r-3],w[r-2],w[r-1],w[r],!1,this._$);break;case 14:this.$=v.prepareBlock(w[r-3],w[r-2],w[r-1],w[r],!0,this._$);break;case 15:this.$={open:w[r-5],path:w[r-4],params:w[r-3],hash:w[r-2],blockParams:w[r-1],strip:v.stripFlags(w[r-5],w[r])};break;case 16:this.$={path:w[r-4],params:w[r-3],hash:w[r-2],blockParams:w[r-1],strip:v.stripFlags(w[r-5],w[r])};break;case 17:this.$={path:w[r-4],params:w[r-3],hash:w[r-2],blockParams:w[r-1],strip:v.stripFlags(w[r-5],w[r])};break;case 18:this.$={strip:v.stripFlags(w[r-1],w[r-1]),program:w[r]};break;case 19:var T=v.prepareBlock(w[r-2],w[r-1],w[r],w[r],!1,this._$),z=v.prepareProgram([T],w[r-1].loc);z.chained=!0,this.$={strip:w[r-2].strip,program:z,chain:!0};break;case 20:this.$=w[r];break;case 21:this.$={path:w[r-1],strip:v.stripFlags(w[r-2],w[r])};break;case 22:this.$=v.prepareMustache(w[r-3],w[r-2],w[r-1],w[r-4],v.stripFlags(w[r-4],w[r]),this._$);break;case 23:this.$=v.prepareMustache(w[r-3],w[r-2],w[r-1],w[r-4],v.stripFlags(w[r-4],w[r]),this._$);break;case 24:this.$={type:"PartialStatement",name:w[r-3],params:w[r-2],hash:w[r-1],indent:"",strip:v.stripFlags(w[r-4],w[r]),loc:v.locInfo(this._$)};break;case 25:this.$=v.preparePartialBlock(w[r-2],w[r-1],w[r],this._$);break;case 26:this.$={path:w[r-3],params:w[r-2],hash:w[r-1],strip:v.stripFlags(w[r-4],w[r])};break;case 27:this.$=w[r];break;case 28:this.$=w[r];break;case 29:this.$={type:"SubExpression",path:w[r-3],params:w[r-2],hash:w[r-1],loc:v.locInfo(this._$)};break;case 30:this.$={type:"Hash",pairs:w[r],loc:v.locInfo(this._$)};break;case 31:this.$={type:"HashPair",key:v.id(w[r-2]),value:w[r],loc:v.locInfo(this._$)};break;case 32:this.$=v.id(w[r-1]);break;case 33:this.$=w[r];break;case 34:this.$=w[r];break;case 35:this.$={type:"StringLiteral",value:w[r],original:w[r],loc:v.locInfo(this._$)};break;case 36:this.$={type:"NumberLiteral",value:Number(w[r]),original:Number(w[r]),loc:v.locInfo(this._$)};break;case 37:this.$={type:"BooleanLiteral",value:w[r]==="true",original:w[r]==="true",loc:v.locInfo(this._$)};break;case 38:this.$={type:"UndefinedLiteral",original:void 0,value:void 0,loc:v.locInfo(this._$)};break;case 39:this.$={type:"NullLiteral",original:null,value:null,loc:v.locInfo(this._$)};break;case 40:this.$=w[r];break;case 41:this.$=w[r];break;case 42:this.$=v.preparePath(!0,w[r],this._$);break;case 43:this.$=v.preparePath(!1,w[r],this._$);break;case 44:w[r-2].push({part:v.id(w[r]),original:w[r],separator:w[r-1]}),this.$=w[r-2];break;case 45:this.$=[{part:v.id(w[r]),original:w[r]}];break;case 46:this.$=[];break;case 47:w[r-1].push(w[r]);break;case 48:this.$=[];break;case 49:w[r-1].push(w[r]);break;case 50:this.$=[];break;case 51:w[r-1].push(w[r]);break;case 58:this.$=[];break;case 59:w[r-1].push(w[r]);break;case 64:this.$=[];break;case 65:w[r-1].push(w[r]);break;case 70:this.$=[];break;case 71:w[r-1].push(w[r]);break;case 78:this.$=[];break;case 79:w[r-1].push(w[r]);break;case 82:this.$=[];break;case 83:w[r-1].push(w[r]);break;case 86:this.$=[];break;case 87:w[r-1].push(w[r]);break;case 90:this.$=[];break;case 91:w[r-1].push(w[r]);break;case 94:this.$=[];break;case 95:w[r-1].push(w[r]);break;case 98:this.$=[w[r]];break;case 99:w[r-1].push(w[r]);break;case 100:this.$=[w[r]];break;case 101:w[r-1].push(w[r]);break}},table:[{3:1,4:2,5:[2,46],6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:11,14:[1,12],15:[1,20],16:17,19:[1,23],24:15,27:16,29:[1,21],34:[1,22],39:[2,2],44:[2,2],47:[2,2],48:[1,13],51:[1,14],55:[1,18],59:19,60:[1,24]},{1:[2,1]},{5:[2,47],14:[2,47],15:[2,47],19:[2,47],29:[2,47],34:[2,47],39:[2,47],44:[2,47],47:[2,47],48:[2,47],51:[2,47],55:[2,47],60:[2,47]},{5:[2,3],14:[2,3],15:[2,3],19:[2,3],29:[2,3],34:[2,3],39:[2,3],44:[2,3],47:[2,3],48:[2,3],51:[2,3],55:[2,3],60:[2,3]},{5:[2,4],14:[2,4],15:[2,4],19:[2,4],29:[2,4],34:[2,4],39:[2,4],44:[2,4],47:[2,4],48:[2,4],51:[2,4],55:[2,4],60:[2,4]},{5:[2,5],14:[2,5],15:[2,5],19:[2,5],29:[2,5],34:[2,5],39:[2,5],44:[2,5],47:[2,5],48:[2,5],51:[2,5],55:[2,5],60:[2,5]},{5:[2,6],14:[2,6],15:[2,6],19:[2,6],29:[2,6],34:[2,6],39:[2,6],44:[2,6],47:[2,6],48:[2,6],51:[2,6],55:[2,6],60:[2,6]},{5:[2,7],14:[2,7],15:[2,7],19:[2,7],29:[2,7],34:[2,7],39:[2,7],44:[2,7],47:[2,7],48:[2,7],51:[2,7],55:[2,7],60:[2,7]},{5:[2,8],14:[2,8],15:[2,8],19:[2,8],29:[2,8],34:[2,8],39:[2,8],44:[2,8],47:[2,8],48:[2,8],51:[2,8],55:[2,8],60:[2,8]},{5:[2,9],14:[2,9],15:[2,9],19:[2,9],29:[2,9],34:[2,9],39:[2,9],44:[2,9],47:[2,9],48:[2,9],51:[2,9],55:[2,9],60:[2,9]},{20:25,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:36,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:37,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{4:38,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{15:[2,48],17:39,18:[2,48]},{20:41,56:40,64:42,65:[1,43],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:44,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{5:[2,10],14:[2,10],15:[2,10],18:[2,10],19:[2,10],29:[2,10],34:[2,10],39:[2,10],44:[2,10],47:[2,10],48:[2,10],51:[2,10],55:[2,10],60:[2,10]},{20:45,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:46,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:47,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:41,56:48,64:42,65:[1,43],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[2,78],49:49,65:[2,78],72:[2,78],80:[2,78],81:[2,78],82:[2,78],83:[2,78],84:[2,78],85:[2,78]},{23:[2,33],33:[2,33],54:[2,33],65:[2,33],68:[2,33],72:[2,33],75:[2,33],80:[2,33],81:[2,33],82:[2,33],83:[2,33],84:[2,33],85:[2,33]},{23:[2,34],33:[2,34],54:[2,34],65:[2,34],68:[2,34],72:[2,34],75:[2,34],80:[2,34],81:[2,34],82:[2,34],83:[2,34],84:[2,34],85:[2,34]},{23:[2,35],33:[2,35],54:[2,35],65:[2,35],68:[2,35],72:[2,35],75:[2,35],80:[2,35],81:[2,35],82:[2,35],83:[2,35],84:[2,35],85:[2,35]},{23:[2,36],33:[2,36],54:[2,36],65:[2,36],68:[2,36],72:[2,36],75:[2,36],80:[2,36],81:[2,36],82:[2,36],83:[2,36],84:[2,36],85:[2,36]},{23:[2,37],33:[2,37],54:[2,37],65:[2,37],68:[2,37],72:[2,37],75:[2,37],80:[2,37],81:[2,37],82:[2,37],83:[2,37],84:[2,37],85:[2,37]},{23:[2,38],33:[2,38],54:[2,38],65:[2,38],68:[2,38],72:[2,38],75:[2,38],80:[2,38],81:[2,38],82:[2,38],83:[2,38],84:[2,38],85:[2,38]},{23:[2,39],33:[2,39],54:[2,39],65:[2,39],68:[2,39],72:[2,39],75:[2,39],80:[2,39],81:[2,39],82:[2,39],83:[2,39],84:[2,39],85:[2,39]},{23:[2,43],33:[2,43],54:[2,43],65:[2,43],68:[2,43],72:[2,43],75:[2,43],80:[2,43],81:[2,43],82:[2,43],83:[2,43],84:[2,43],85:[2,43],87:[1,50]},{72:[1,35],86:51},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{52:52,54:[2,82],65:[2,82],72:[2,82],80:[2,82],81:[2,82],82:[2,82],83:[2,82],84:[2,82],85:[2,82]},{25:53,38:55,39:[1,57],43:56,44:[1,58],45:54,47:[2,54]},{28:59,43:60,44:[1,58],47:[2,56]},{13:62,15:[1,20],18:[1,61]},{33:[2,86],57:63,65:[2,86],72:[2,86],80:[2,86],81:[2,86],82:[2,86],83:[2,86],84:[2,86],85:[2,86]},{33:[2,40],65:[2,40],72:[2,40],80:[2,40],81:[2,40],82:[2,40],83:[2,40],84:[2,40],85:[2,40]},{33:[2,41],65:[2,41],72:[2,41],80:[2,41],81:[2,41],82:[2,41],83:[2,41],84:[2,41],85:[2,41]},{20:64,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:65,47:[1,66]},{30:67,33:[2,58],65:[2,58],72:[2,58],75:[2,58],80:[2,58],81:[2,58],82:[2,58],83:[2,58],84:[2,58],85:[2,58]},{33:[2,64],35:68,65:[2,64],72:[2,64],75:[2,64],80:[2,64],81:[2,64],82:[2,64],83:[2,64],84:[2,64],85:[2,64]},{21:69,23:[2,50],65:[2,50],72:[2,50],80:[2,50],81:[2,50],82:[2,50],83:[2,50],84:[2,50],85:[2,50]},{33:[2,90],61:70,65:[2,90],72:[2,90],80:[2,90],81:[2,90],82:[2,90],83:[2,90],84:[2,90],85:[2,90]},{20:74,33:[2,80],50:71,63:72,64:75,65:[1,43],69:73,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{72:[1,79]},{23:[2,42],33:[2,42],54:[2,42],65:[2,42],68:[2,42],72:[2,42],75:[2,42],80:[2,42],81:[2,42],82:[2,42],83:[2,42],84:[2,42],85:[2,42],87:[1,50]},{20:74,53:80,54:[2,84],63:81,64:75,65:[1,43],69:82,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:83,47:[1,66]},{47:[2,55]},{4:84,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{47:[2,20]},{20:85,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:86,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{26:87,47:[1,66]},{47:[2,57]},{5:[2,11],14:[2,11],15:[2,11],19:[2,11],29:[2,11],34:[2,11],39:[2,11],44:[2,11],47:[2,11],48:[2,11],51:[2,11],55:[2,11],60:[2,11]},{15:[2,49],18:[2,49]},{20:74,33:[2,88],58:88,63:89,64:75,65:[1,43],69:90,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{65:[2,94],66:91,68:[2,94],72:[2,94],80:[2,94],81:[2,94],82:[2,94],83:[2,94],84:[2,94],85:[2,94]},{5:[2,25],14:[2,25],15:[2,25],19:[2,25],29:[2,25],34:[2,25],39:[2,25],44:[2,25],47:[2,25],48:[2,25],51:[2,25],55:[2,25],60:[2,25]},{20:92,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,31:93,33:[2,60],63:94,64:75,65:[1,43],69:95,70:76,71:77,72:[1,78],75:[2,60],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,33:[2,66],36:96,63:97,64:75,65:[1,43],69:98,70:76,71:77,72:[1,78],75:[2,66],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,22:99,23:[2,52],63:100,64:75,65:[1,43],69:101,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,33:[2,92],62:102,63:103,64:75,65:[1,43],69:104,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,105]},{33:[2,79],65:[2,79],72:[2,79],80:[2,79],81:[2,79],82:[2,79],83:[2,79],84:[2,79],85:[2,79]},{33:[2,81]},{23:[2,27],33:[2,27],54:[2,27],65:[2,27],68:[2,27],72:[2,27],75:[2,27],80:[2,27],81:[2,27],82:[2,27],83:[2,27],84:[2,27],85:[2,27]},{23:[2,28],33:[2,28],54:[2,28],65:[2,28],68:[2,28],72:[2,28],75:[2,28],80:[2,28],81:[2,28],82:[2,28],83:[2,28],84:[2,28],85:[2,28]},{23:[2,30],33:[2,30],54:[2,30],68:[2,30],71:106,72:[1,107],75:[2,30]},{23:[2,98],33:[2,98],54:[2,98],68:[2,98],72:[2,98],75:[2,98]},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],73:[1,108],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{23:[2,44],33:[2,44],54:[2,44],65:[2,44],68:[2,44],72:[2,44],75:[2,44],80:[2,44],81:[2,44],82:[2,44],83:[2,44],84:[2,44],85:[2,44],87:[2,44]},{54:[1,109]},{54:[2,83],65:[2,83],72:[2,83],80:[2,83],81:[2,83],82:[2,83],83:[2,83],84:[2,83],85:[2,83]},{54:[2,85]},{5:[2,13],14:[2,13],15:[2,13],19:[2,13],29:[2,13],34:[2,13],39:[2,13],44:[2,13],47:[2,13],48:[2,13],51:[2,13],55:[2,13],60:[2,13]},{38:55,39:[1,57],43:56,44:[1,58],45:111,46:110,47:[2,76]},{33:[2,70],40:112,65:[2,70],72:[2,70],75:[2,70],80:[2,70],81:[2,70],82:[2,70],83:[2,70],84:[2,70],85:[2,70]},{47:[2,18]},{5:[2,14],14:[2,14],15:[2,14],19:[2,14],29:[2,14],34:[2,14],39:[2,14],44:[2,14],47:[2,14],48:[2,14],51:[2,14],55:[2,14],60:[2,14]},{33:[1,113]},{33:[2,87],65:[2,87],72:[2,87],80:[2,87],81:[2,87],82:[2,87],83:[2,87],84:[2,87],85:[2,87]},{33:[2,89]},{20:74,63:115,64:75,65:[1,43],67:114,68:[2,96],69:116,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,117]},{32:118,33:[2,62],74:119,75:[1,120]},{33:[2,59],65:[2,59],72:[2,59],75:[2,59],80:[2,59],81:[2,59],82:[2,59],83:[2,59],84:[2,59],85:[2,59]},{33:[2,61],75:[2,61]},{33:[2,68],37:121,74:122,75:[1,120]},{33:[2,65],65:[2,65],72:[2,65],75:[2,65],80:[2,65],81:[2,65],82:[2,65],83:[2,65],84:[2,65],85:[2,65]},{33:[2,67],75:[2,67]},{23:[1,123]},{23:[2,51],65:[2,51],72:[2,51],80:[2,51],81:[2,51],82:[2,51],83:[2,51],84:[2,51],85:[2,51]},{23:[2,53]},{33:[1,124]},{33:[2,91],65:[2,91],72:[2,91],80:[2,91],81:[2,91],82:[2,91],83:[2,91],84:[2,91],85:[2,91]},{33:[2,93]},{5:[2,22],14:[2,22],15:[2,22],19:[2,22],29:[2,22],34:[2,22],39:[2,22],44:[2,22],47:[2,22],48:[2,22],51:[2,22],55:[2,22],60:[2,22]},{23:[2,99],33:[2,99],54:[2,99],68:[2,99],72:[2,99],75:[2,99]},{73:[1,108]},{20:74,63:125,64:75,65:[1,43],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,23],14:[2,23],15:[2,23],19:[2,23],29:[2,23],34:[2,23],39:[2,23],44:[2,23],47:[2,23],48:[2,23],51:[2,23],55:[2,23],60:[2,23]},{47:[2,19]},{47:[2,77]},{20:74,33:[2,72],41:126,63:127,64:75,65:[1,43],69:128,70:76,71:77,72:[1,78],75:[2,72],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,24],14:[2,24],15:[2,24],19:[2,24],29:[2,24],34:[2,24],39:[2,24],44:[2,24],47:[2,24],48:[2,24],51:[2,24],55:[2,24],60:[2,24]},{68:[1,129]},{65:[2,95],68:[2,95],72:[2,95],80:[2,95],81:[2,95],82:[2,95],83:[2,95],84:[2,95],85:[2,95]},{68:[2,97]},{5:[2,21],14:[2,21],15:[2,21],19:[2,21],29:[2,21],34:[2,21],39:[2,21],44:[2,21],47:[2,21],48:[2,21],51:[2,21],55:[2,21],60:[2,21]},{33:[1,130]},{33:[2,63]},{72:[1,132],76:131},{33:[1,133]},{33:[2,69]},{15:[2,12],18:[2,12]},{14:[2,26],15:[2,26],19:[2,26],29:[2,26],34:[2,26],47:[2,26],48:[2,26],51:[2,26],55:[2,26],60:[2,26]},{23:[2,31],33:[2,31],54:[2,31],68:[2,31],72:[2,31],75:[2,31]},{33:[2,74],42:134,74:135,75:[1,120]},{33:[2,71],65:[2,71],72:[2,71],75:[2,71],80:[2,71],81:[2,71],82:[2,71],83:[2,71],84:[2,71],85:[2,71]},{33:[2,73],75:[2,73]},{23:[2,29],33:[2,29],54:[2,29],65:[2,29],68:[2,29],72:[2,29],75:[2,29],80:[2,29],81:[2,29],82:[2,29],83:[2,29],84:[2,29],85:[2,29]},{14:[2,15],15:[2,15],19:[2,15],29:[2,15],34:[2,15],39:[2,15],44:[2,15],47:[2,15],48:[2,15],51:[2,15],55:[2,15],60:[2,15]},{72:[1,137],77:[1,136]},{72:[2,100],77:[2,100]},{14:[2,16],15:[2,16],19:[2,16],29:[2,16],34:[2,16],44:[2,16],47:[2,16],48:[2,16],51:[2,16],55:[2,16],60:[2,16]},{33:[1,138]},{33:[2,75]},{33:[2,32]},{72:[2,101],77:[2,101]},{14:[2,17],15:[2,17],19:[2,17],29:[2,17],34:[2,17],39:[2,17],44:[2,17],47:[2,17],48:[2,17],51:[2,17],55:[2,17],60:[2,17]}],defaultActions:{4:[2,1],54:[2,55],56:[2,20],60:[2,57],73:[2,81],82:[2,85],86:[2,18],90:[2,89],101:[2,53],104:[2,93],110:[2,19],111:[2,77],116:[2,97],119:[2,63],122:[2,69],135:[2,75],136:[2,32]},parseError:function(P,j){throw Error(P)},parse:function(P){var j=this,K=[0],v=[null],m=[],w=this.table,O="",r=0,T=0,z=0,e=2,W=1;if(this.lexer.setInput(P),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,typeof this.lexer.yylloc>"u")this.lexer.yylloc={};var p=this.lexer.yylloc;m.push(p);var A=this.lexer.options&&this.lexer.options.ranges;if(typeof this.yy.parseError==="function")this.parseError=this.yy.parseError;function R(F){K.length=K.length-2*F,v.length=v.length-F,m.length=m.length-F}function m8(){var F=j.lexer.lex()||1;if(typeof F!=="number")F=j.symbols_[F]||F;return F}var b,_8,g,S,a8,i8,h={},M,I,Q8,t8;while(!0){if(g=K[K.length-1],this.defaultActions[g])S=this.defaultActions[g];else{if(b===null||typeof b>"u")b=m8();S=w[g]&&w[g][b]}if(typeof S>"u"||!S.length||!S[0]){var qq="";if(!z){t8=[];for(M in w[g])if(this.terminals_[M]&&M>2)t8.push("'"+this.terminals_[M]+"'");if(this.lexer.showPosition)qq="Parse error on line "+(r+1)+`:
|
|
4
|
+
See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details`)}function gj(){Object.keys(cq).forEach(function(q){delete cq[q]})}});var yq=Z((j3)=>{j3.__esModule=!0;j3.HandlebarsEnvironment=R_;function r$(q){return q&&q.__esModule?q:{default:q}}var S8=s(),Bj=w8(),N_=r$(Bj),Uj=V_(),Fj=P$(),Qj=S_(),Nq=r$(Qj),q3=c_(),_3="4.7.8";j3.VERSION=_3;var f3=8;j3.COMPILER_REVISION=f3;var $3=7;j3.LAST_COMPATIBLE_COMPILER_REVISION=$3;var K3={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};j3.REVISION_CHANGES=K3;var y_="[object Object]";function R_(q,_,f){this.helpers=q||{},this.partials=_||{},this.decorators=f||{},Uj.registerDefaultHelpers(this),Fj.registerDefaultDecorators(this)}R_.prototype={constructor:R_,logger:Nq.default,log:Nq.default.log,registerHelper:function(_,f){if(S8.toString.call(_)===y_){if(f)throw new N_.default("Arg not supported with multiple helpers");S8.extend(this.helpers,_)}else this.helpers[_]=f},unregisterHelper:function(_){delete this.helpers[_]},registerPartial:function(_,f){if(S8.toString.call(_)===y_)S8.extend(this.partials,_);else{if(typeof f>"u")throw new N_.default('Attempting to register a partial called "'+_+'" as undefined');this.partials[_]=f}},unregisterPartial:function(_){delete this.partials[_]},registerDecorator:function(_,f){if(S8.toString.call(_)===y_){if(f)throw new N_.default("Arg not supported with multiple decorators");S8.extend(this.decorators,_)}else this.decorators[_]=f},unregisterDecorator:function(_){delete this.decorators[_]},resetLoggedPropertyAccesses:function(){q3.resetLoggedProperties()}};var P3=Nq.default.log;j3.log=P3;j3.createFrame=S8.createFrame;j3.logger=Nq.default});var k$=Z((T$,Y$)=>{T$.__esModule=!0;function E_(q){this.string=q}E_.prototype.toString=E_.prototype.toHTML=function(){return""+this.string};T$.default=E_;Y$.exports=T$.default});var h$=Z((W3)=>{W3.__esModule=!0;W3.wrapHelper=H3;function H3(q,_){if(typeof q!=="function")return q;var f=function(){var P=arguments[arguments.length-1];return arguments[arguments.length-1]=_(P),q.apply(this,arguments)};return f}});var J$=Z((b3)=>{b3.__esModule=!0;b3.checkRevision=X3;b3.template=A3;b3.wrapProgram=Rq;b3.resolvePartial=a3;b3.invokePartial=i3;b3.noop=H$;function n3(q){return q&&q.__esModule?q:{default:q}}function o3(q){if(q&&q.__esModule)return q;else{var _={};if(q!=null){for(var f in q)if(Object.prototype.hasOwnProperty.call(q,f))_[f]=q[f]}return _.default=q,_}}var p3=s(),n8=o3(p3),u3=w8(),o8=n3(u3),p8=yq(),z$=V_(),d3=h$(),e$=c_();function X3(q){var _=q&&q[0]||1,f=p8.COMPILER_REVISION;if(_>=p8.LAST_COMPATIBLE_COMPILER_REVISION&&_<=p8.COMPILER_REVISION)return;if(_<p8.LAST_COMPATIBLE_COMPILER_REVISION){var $=p8.REVISION_CHANGES[f],P=p8.REVISION_CHANGES[_];throw new o8.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+$+") or downgrade your runtime to an older version ("+P+").")}else throw new o8.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+q[1]+").")}function A3(q,_){if(!_)throw new o8.default("No environment passed to template");if(!q||!q.main)throw new o8.default("Unknown template object: "+typeof q);q.main.decorator=q.main_d,_.VM.checkRevision(q.compiler);var f=q.compiler&&q.compiler[0]===7;function $(K,v,m){if(m.hash){if(v=n8.extend({},v,m.hash),m.ids)m.ids[0]=!0}K=_.VM.resolvePartial.call(this,K,v,m);var w=n8.extend({},m,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),r=_.VM.invokePartial.call(this,K,v,w);if(r==null&&_.compile)m.partials[m.name]=_.compile(K,q.compilerOptions,_),r=m.partials[m.name](v,w);if(r!=null){if(m.indent){var O=r.split(`
|
|
5
|
+
`);for(var T=0,h=O.length;T<h;T++){if(!O[T]&&T+1===h)break;O[T]=m.indent+O[T]}r=O.join(`
|
|
6
|
+
`)}return r}else throw new o8.default("The partial "+m.name+" could not be compiled when running in runtime-only mode")}var P={strict:function(v,m,w){if(!v||!(m in v))throw new o8.default('"'+m+'" not defined in '+v,{loc:w});return P.lookupProperty(v,m)},lookupProperty:function(v,m){var w=v[m];if(w==null)return w;if(Object.prototype.hasOwnProperty.call(v,m))return w;if(e$.resultIsAllowed(w,P.protoAccessControl,m))return w;return},lookup:function(v,m){var w=v.length;for(var r=0;r<w;r++){var O=v[r]&&P.lookupProperty(v[r],m);if(O!=null)return v[r][m]}},lambda:function(v,m){return typeof v==="function"?v.call(m):v},escapeExpression:n8.escapeExpression,invokePartial:$,fn:function(v){var m=q[v];return m.decorator=q[v+"_d"],m},programs:[],program:function(v,m,w,r,O){var T=this.programs[v],h=this.fn(v);if(m||O||r||w)T=Rq(this,v,h,m,w,r,O);else if(!T)T=this.programs[v]=Rq(this,v,h);return T},data:function(v,m){while(v&&m--)v=v._parent;return v},mergeIfNeeded:function(v,m){var w=v||m;if(v&&m&&v!==m)w=n8.extend({},m,v);return w},nullContext:Object.seal({}),noop:_.VM.noop,compilerInfo:q.compiler};function j(K){var v=arguments.length<=1||arguments[1]===void 0?{}:arguments[1],m=v.data;if(j._setup(v),!v.partial&&q.useData)m=t3(K,m);var w=void 0,r=q.useBlockParams?[]:void 0;if(q.useDepths)if(v.depths)w=K!=v.depths[0]?[K].concat(v.depths):v.depths;else w=[K];function O(T){return""+q.main(P,T,P.helpers,P.partials,m,r,w)}return O=W$(q.main,O,P,v.depths||[],m,r),O(K,v)}return j.isTop=!0,j._setup=function(K){if(!K.partial){var v=n8.extend({},_.helpers,K.helpers);if(G3(v,P),P.helpers=v,q.usePartial)P.partials=P.mergeIfNeeded(K.partials,_.partials);if(q.usePartial||q.useDecorators)P.decorators=n8.extend({},_.decorators,K.decorators);P.hooks={},P.protoAccessControl=e$.createProtoAccessControl(K);var m=K.allowCallsToHelperMissing||f;z$.moveHelperToHooks(P,"helperMissing",m),z$.moveHelperToHooks(P,"blockHelperMissing",m)}else P.protoAccessControl=K.protoAccessControl,P.helpers=K.helpers,P.partials=K.partials,P.decorators=K.decorators,P.hooks=K.hooks},j._child=function(K,v,m,w){if(q.useBlockParams&&!m)throw new o8.default("must pass block params");if(q.useDepths&&!w)throw new o8.default("must pass parent depths");return Rq(P,K,q[K],v,0,m,w)},j}function Rq(q,_,f,$,P,j,K){function v(m){var w=arguments.length<=1||arguments[1]===void 0?{}:arguments[1],r=K;if(K&&m!=K[0]&&!(m===q.nullContext&&K[0]===null))r=[m].concat(K);return f(q,m,q.helpers,q.partials,w.data||$,j&&[w.blockParams].concat(j),r)}return v=W$(f,v,q,K,$,j),v.program=_,v.depth=K?K.length:0,v.blockParams=P||0,v}function a3(q,_,f){if(!q)if(f.name==="@partial-block")q=f.data["partial-block"];else q=f.partials[f.name];else if(!q.call&&!f.name)f.name=q,q=f.partials[q];return q}function i3(q,_,f){var $=f.data&&f.data["partial-block"];if(f.partial=!0,f.ids)f.data.contextPath=f.ids[0]||f.data.contextPath;var P=void 0;if(f.fn&&f.fn!==H$)(function(){f.data=p8.createFrame(f.data);var j=f.fn;if(P=f.data["partial-block"]=function(v){var m=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];return m.data=p8.createFrame(m.data),m.data["partial-block"]=$,j(v,m)},j.partials)f.partials=n8.extend({},f.partials,j.partials)})();if(q===void 0&&P)q=P;if(q===void 0)throw new o8.default("The partial "+f.name+" could not be found");else if(q instanceof Function)return q(_,f)}function H$(){return""}function t3(q,_){if(!_||!("root"in _))_=_?p8.createFrame(_):{},_.root=q;return _}function W$(q,_,f,$,P,j){if(q.decorator){var K={};_=q.decorator(_,K,f,$&&$[0],P,j,$),n8.extend(_,K)}return _}function G3(q,_){Object.keys(q).forEach(function(f){var $=q[f];q[f]=l3($,_)})}function l3(q,_){var f=_.lookupProperty;return d3.wrapHelper(q,function($){return n8.extend({lookupProperty:f},$)})}});var g_=Z((Z$,n$)=>{Z$.__esModule=!0;Z$.default=function(q){(function(){if(typeof globalThis==="object")return;Object.prototype.__defineGetter__("__magic__",function(){return this}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__})();var _=globalThis.Handlebars;q.noConflict=function(){if(globalThis.Handlebars===q)globalThis.Handlebars=_;return q}};n$.exports=Z$.default});var A$=Z((d$,X$)=>{d$.__esModule=!0;function D_(q){return q&&q.__esModule?q:{default:q}}function x_(q){if(q&&q.__esModule)return q;else{var _={};if(q!=null){for(var f in q)if(Object.prototype.hasOwnProperty.call(q,f))_[f]=q[f]}return _.default=q,_}}var g3=yq(),o$=x_(g3),I3=k$(),D3=D_(I3),x3=w8(),L3=D_(x3),s3=s(),I_=x_(s3),B3=J$(),p$=x_(B3),U3=g_(),F3=D_(U3);function u$(){var q=new o$.HandlebarsEnvironment;return I_.extend(q,o$),q.SafeString=D3.default,q.Exception=L3.default,q.Utils=I_,q.escapeExpression=I_.escapeExpression,q.VM=p$,q.template=function(_){return p$.template(_,q)},q}var rq=u$();rq.create=u$;F3.default(rq);rq.default=rq;d$.default=rq;X$.exports=d$.default});var L_=Z((i$,t$)=>{i$.__esModule=!0;var a$={helpers:{helperExpression:function(_){return _.type==="SubExpression"||(_.type==="MustacheStatement"||_.type==="BlockStatement")&&!!(_.params&&_.params.length||_.hash)},scopedId:function(_){return/^\.|this\b/.test(_.original)},simpleId:function(_){return _.parts.length===1&&!a$.helpers.scopedId(_)&&!_.depth}}};i$.default=a$;t$.exports=i$.default});var b$=Z((G$,l$)=>{G$.__esModule=!0;var $4=function(){var q={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,partialBlock:12,content:13,COMMENT:14,CONTENT:15,openRawBlock:16,rawBlock_repetition0:17,END_RAW_BLOCK:18,OPEN_RAW_BLOCK:19,helperName:20,openRawBlock_repetition0:21,openRawBlock_option0:22,CLOSE_RAW_BLOCK:23,openBlock:24,block_option0:25,closeBlock:26,openInverse:27,block_option1:28,OPEN_BLOCK:29,openBlock_repetition0:30,openBlock_option0:31,openBlock_option1:32,CLOSE:33,OPEN_INVERSE:34,openInverse_repetition0:35,openInverse_option0:36,openInverse_option1:37,openInverseChain:38,OPEN_INVERSE_CHAIN:39,openInverseChain_repetition0:40,openInverseChain_option0:41,openInverseChain_option1:42,inverseAndProgram:43,INVERSE:44,inverseChain:45,inverseChain_option0:46,OPEN_ENDBLOCK:47,OPEN:48,mustache_repetition0:49,mustache_option0:50,OPEN_UNESCAPED:51,mustache_repetition1:52,mustache_option1:53,CLOSE_UNESCAPED:54,OPEN_PARTIAL:55,partialName:56,partial_repetition0:57,partial_option0:58,openPartialBlock:59,OPEN_PARTIAL_BLOCK:60,openPartialBlock_repetition0:61,openPartialBlock_option0:62,param:63,sexpr:64,OPEN_SEXPR:65,sexpr_repetition0:66,sexpr_option0:67,CLOSE_SEXPR:68,hash:69,hash_repetition_plus0:70,hashSegment:71,ID:72,EQUALS:73,blockParams:74,OPEN_BLOCK_PARAMS:75,blockParams_repetition_plus0:76,CLOSE_BLOCK_PARAMS:77,path:78,dataName:79,STRING:80,NUMBER:81,BOOLEAN:82,UNDEFINED:83,NULL:84,DATA:85,pathSegments:86,SEP:87,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"COMMENT",15:"CONTENT",18:"END_RAW_BLOCK",19:"OPEN_RAW_BLOCK",23:"CLOSE_RAW_BLOCK",29:"OPEN_BLOCK",33:"CLOSE",34:"OPEN_INVERSE",39:"OPEN_INVERSE_CHAIN",44:"INVERSE",47:"OPEN_ENDBLOCK",48:"OPEN",51:"OPEN_UNESCAPED",54:"CLOSE_UNESCAPED",55:"OPEN_PARTIAL",60:"OPEN_PARTIAL_BLOCK",65:"OPEN_SEXPR",68:"CLOSE_SEXPR",72:"ID",73:"EQUALS",75:"OPEN_BLOCK_PARAMS",77:"CLOSE_BLOCK_PARAMS",80:"STRING",81:"NUMBER",82:"BOOLEAN",83:"UNDEFINED",84:"NULL",85:"DATA",87:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[13,1],[10,3],[16,5],[9,4],[9,4],[24,6],[27,6],[38,6],[43,2],[45,3],[45,1],[26,3],[8,5],[8,5],[11,5],[12,3],[59,5],[63,1],[63,1],[64,5],[69,1],[71,3],[74,3],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[56,1],[56,1],[79,2],[78,1],[86,3],[86,1],[6,0],[6,2],[17,0],[17,2],[21,0],[21,2],[22,0],[22,1],[25,0],[25,1],[28,0],[28,1],[30,0],[30,2],[31,0],[31,1],[32,0],[32,1],[35,0],[35,2],[36,0],[36,1],[37,0],[37,1],[40,0],[40,2],[41,0],[41,1],[42,0],[42,1],[46,0],[46,1],[49,0],[49,2],[50,0],[50,1],[52,0],[52,2],[53,0],[53,1],[57,0],[57,2],[58,0],[58,1],[61,0],[61,2],[62,0],[62,1],[66,0],[66,2],[67,0],[67,1],[70,1],[70,2],[76,1],[76,2]],performAction:function(P,j,K,v,m,w,r){var O=w.length-1;switch(m){case 1:return w[O-1];case 2:this.$=v.prepareProgram(w[O]);break;case 3:this.$=w[O];break;case 4:this.$=w[O];break;case 5:this.$=w[O];break;case 6:this.$=w[O];break;case 7:this.$=w[O];break;case 8:this.$=w[O];break;case 9:this.$={type:"CommentStatement",value:v.stripComment(w[O]),strip:v.stripFlags(w[O],w[O]),loc:v.locInfo(this._$)};break;case 10:this.$={type:"ContentStatement",original:w[O],value:w[O],loc:v.locInfo(this._$)};break;case 11:this.$=v.prepareRawBlock(w[O-2],w[O-1],w[O],this._$);break;case 12:this.$={path:w[O-3],params:w[O-2],hash:w[O-1]};break;case 13:this.$=v.prepareBlock(w[O-3],w[O-2],w[O-1],w[O],!1,this._$);break;case 14:this.$=v.prepareBlock(w[O-3],w[O-2],w[O-1],w[O],!0,this._$);break;case 15:this.$={open:w[O-5],path:w[O-4],params:w[O-3],hash:w[O-2],blockParams:w[O-1],strip:v.stripFlags(w[O-5],w[O])};break;case 16:this.$={path:w[O-4],params:w[O-3],hash:w[O-2],blockParams:w[O-1],strip:v.stripFlags(w[O-5],w[O])};break;case 17:this.$={path:w[O-4],params:w[O-3],hash:w[O-2],blockParams:w[O-1],strip:v.stripFlags(w[O-5],w[O])};break;case 18:this.$={strip:v.stripFlags(w[O-1],w[O-1]),program:w[O]};break;case 19:var T=v.prepareBlock(w[O-2],w[O-1],w[O],w[O],!1,this._$),h=v.prepareProgram([T],w[O-1].loc);h.chained=!0,this.$={strip:w[O-2].strip,program:h,chain:!0};break;case 20:this.$=w[O];break;case 21:this.$={path:w[O-1],strip:v.stripFlags(w[O-2],w[O])};break;case 22:this.$=v.prepareMustache(w[O-3],w[O-2],w[O-1],w[O-4],v.stripFlags(w[O-4],w[O]),this._$);break;case 23:this.$=v.prepareMustache(w[O-3],w[O-2],w[O-1],w[O-4],v.stripFlags(w[O-4],w[O]),this._$);break;case 24:this.$={type:"PartialStatement",name:w[O-3],params:w[O-2],hash:w[O-1],indent:"",strip:v.stripFlags(w[O-4],w[O]),loc:v.locInfo(this._$)};break;case 25:this.$=v.preparePartialBlock(w[O-2],w[O-1],w[O],this._$);break;case 26:this.$={path:w[O-3],params:w[O-2],hash:w[O-1],strip:v.stripFlags(w[O-4],w[O])};break;case 27:this.$=w[O];break;case 28:this.$=w[O];break;case 29:this.$={type:"SubExpression",path:w[O-3],params:w[O-2],hash:w[O-1],loc:v.locInfo(this._$)};break;case 30:this.$={type:"Hash",pairs:w[O],loc:v.locInfo(this._$)};break;case 31:this.$={type:"HashPair",key:v.id(w[O-2]),value:w[O],loc:v.locInfo(this._$)};break;case 32:this.$=v.id(w[O-1]);break;case 33:this.$=w[O];break;case 34:this.$=w[O];break;case 35:this.$={type:"StringLiteral",value:w[O],original:w[O],loc:v.locInfo(this._$)};break;case 36:this.$={type:"NumberLiteral",value:Number(w[O]),original:Number(w[O]),loc:v.locInfo(this._$)};break;case 37:this.$={type:"BooleanLiteral",value:w[O]==="true",original:w[O]==="true",loc:v.locInfo(this._$)};break;case 38:this.$={type:"UndefinedLiteral",original:void 0,value:void 0,loc:v.locInfo(this._$)};break;case 39:this.$={type:"NullLiteral",original:null,value:null,loc:v.locInfo(this._$)};break;case 40:this.$=w[O];break;case 41:this.$=w[O];break;case 42:this.$=v.preparePath(!0,w[O],this._$);break;case 43:this.$=v.preparePath(!1,w[O],this._$);break;case 44:w[O-2].push({part:v.id(w[O]),original:w[O],separator:w[O-1]}),this.$=w[O-2];break;case 45:this.$=[{part:v.id(w[O]),original:w[O]}];break;case 46:this.$=[];break;case 47:w[O-1].push(w[O]);break;case 48:this.$=[];break;case 49:w[O-1].push(w[O]);break;case 50:this.$=[];break;case 51:w[O-1].push(w[O]);break;case 58:this.$=[];break;case 59:w[O-1].push(w[O]);break;case 64:this.$=[];break;case 65:w[O-1].push(w[O]);break;case 70:this.$=[];break;case 71:w[O-1].push(w[O]);break;case 78:this.$=[];break;case 79:w[O-1].push(w[O]);break;case 82:this.$=[];break;case 83:w[O-1].push(w[O]);break;case 86:this.$=[];break;case 87:w[O-1].push(w[O]);break;case 90:this.$=[];break;case 91:w[O-1].push(w[O]);break;case 94:this.$=[];break;case 95:w[O-1].push(w[O]);break;case 98:this.$=[w[O]];break;case 99:w[O-1].push(w[O]);break;case 100:this.$=[w[O]];break;case 101:w[O-1].push(w[O]);break}},table:[{3:1,4:2,5:[2,46],6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:11,14:[1,12],15:[1,20],16:17,19:[1,23],24:15,27:16,29:[1,21],34:[1,22],39:[2,2],44:[2,2],47:[2,2],48:[1,13],51:[1,14],55:[1,18],59:19,60:[1,24]},{1:[2,1]},{5:[2,47],14:[2,47],15:[2,47],19:[2,47],29:[2,47],34:[2,47],39:[2,47],44:[2,47],47:[2,47],48:[2,47],51:[2,47],55:[2,47],60:[2,47]},{5:[2,3],14:[2,3],15:[2,3],19:[2,3],29:[2,3],34:[2,3],39:[2,3],44:[2,3],47:[2,3],48:[2,3],51:[2,3],55:[2,3],60:[2,3]},{5:[2,4],14:[2,4],15:[2,4],19:[2,4],29:[2,4],34:[2,4],39:[2,4],44:[2,4],47:[2,4],48:[2,4],51:[2,4],55:[2,4],60:[2,4]},{5:[2,5],14:[2,5],15:[2,5],19:[2,5],29:[2,5],34:[2,5],39:[2,5],44:[2,5],47:[2,5],48:[2,5],51:[2,5],55:[2,5],60:[2,5]},{5:[2,6],14:[2,6],15:[2,6],19:[2,6],29:[2,6],34:[2,6],39:[2,6],44:[2,6],47:[2,6],48:[2,6],51:[2,6],55:[2,6],60:[2,6]},{5:[2,7],14:[2,7],15:[2,7],19:[2,7],29:[2,7],34:[2,7],39:[2,7],44:[2,7],47:[2,7],48:[2,7],51:[2,7],55:[2,7],60:[2,7]},{5:[2,8],14:[2,8],15:[2,8],19:[2,8],29:[2,8],34:[2,8],39:[2,8],44:[2,8],47:[2,8],48:[2,8],51:[2,8],55:[2,8],60:[2,8]},{5:[2,9],14:[2,9],15:[2,9],19:[2,9],29:[2,9],34:[2,9],39:[2,9],44:[2,9],47:[2,9],48:[2,9],51:[2,9],55:[2,9],60:[2,9]},{20:25,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:36,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:37,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{4:38,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{15:[2,48],17:39,18:[2,48]},{20:41,56:40,64:42,65:[1,43],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:44,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{5:[2,10],14:[2,10],15:[2,10],18:[2,10],19:[2,10],29:[2,10],34:[2,10],39:[2,10],44:[2,10],47:[2,10],48:[2,10],51:[2,10],55:[2,10],60:[2,10]},{20:45,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:46,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:47,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:41,56:48,64:42,65:[1,43],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[2,78],49:49,65:[2,78],72:[2,78],80:[2,78],81:[2,78],82:[2,78],83:[2,78],84:[2,78],85:[2,78]},{23:[2,33],33:[2,33],54:[2,33],65:[2,33],68:[2,33],72:[2,33],75:[2,33],80:[2,33],81:[2,33],82:[2,33],83:[2,33],84:[2,33],85:[2,33]},{23:[2,34],33:[2,34],54:[2,34],65:[2,34],68:[2,34],72:[2,34],75:[2,34],80:[2,34],81:[2,34],82:[2,34],83:[2,34],84:[2,34],85:[2,34]},{23:[2,35],33:[2,35],54:[2,35],65:[2,35],68:[2,35],72:[2,35],75:[2,35],80:[2,35],81:[2,35],82:[2,35],83:[2,35],84:[2,35],85:[2,35]},{23:[2,36],33:[2,36],54:[2,36],65:[2,36],68:[2,36],72:[2,36],75:[2,36],80:[2,36],81:[2,36],82:[2,36],83:[2,36],84:[2,36],85:[2,36]},{23:[2,37],33:[2,37],54:[2,37],65:[2,37],68:[2,37],72:[2,37],75:[2,37],80:[2,37],81:[2,37],82:[2,37],83:[2,37],84:[2,37],85:[2,37]},{23:[2,38],33:[2,38],54:[2,38],65:[2,38],68:[2,38],72:[2,38],75:[2,38],80:[2,38],81:[2,38],82:[2,38],83:[2,38],84:[2,38],85:[2,38]},{23:[2,39],33:[2,39],54:[2,39],65:[2,39],68:[2,39],72:[2,39],75:[2,39],80:[2,39],81:[2,39],82:[2,39],83:[2,39],84:[2,39],85:[2,39]},{23:[2,43],33:[2,43],54:[2,43],65:[2,43],68:[2,43],72:[2,43],75:[2,43],80:[2,43],81:[2,43],82:[2,43],83:[2,43],84:[2,43],85:[2,43],87:[1,50]},{72:[1,35],86:51},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{52:52,54:[2,82],65:[2,82],72:[2,82],80:[2,82],81:[2,82],82:[2,82],83:[2,82],84:[2,82],85:[2,82]},{25:53,38:55,39:[1,57],43:56,44:[1,58],45:54,47:[2,54]},{28:59,43:60,44:[1,58],47:[2,56]},{13:62,15:[1,20],18:[1,61]},{33:[2,86],57:63,65:[2,86],72:[2,86],80:[2,86],81:[2,86],82:[2,86],83:[2,86],84:[2,86],85:[2,86]},{33:[2,40],65:[2,40],72:[2,40],80:[2,40],81:[2,40],82:[2,40],83:[2,40],84:[2,40],85:[2,40]},{33:[2,41],65:[2,41],72:[2,41],80:[2,41],81:[2,41],82:[2,41],83:[2,41],84:[2,41],85:[2,41]},{20:64,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:65,47:[1,66]},{30:67,33:[2,58],65:[2,58],72:[2,58],75:[2,58],80:[2,58],81:[2,58],82:[2,58],83:[2,58],84:[2,58],85:[2,58]},{33:[2,64],35:68,65:[2,64],72:[2,64],75:[2,64],80:[2,64],81:[2,64],82:[2,64],83:[2,64],84:[2,64],85:[2,64]},{21:69,23:[2,50],65:[2,50],72:[2,50],80:[2,50],81:[2,50],82:[2,50],83:[2,50],84:[2,50],85:[2,50]},{33:[2,90],61:70,65:[2,90],72:[2,90],80:[2,90],81:[2,90],82:[2,90],83:[2,90],84:[2,90],85:[2,90]},{20:74,33:[2,80],50:71,63:72,64:75,65:[1,43],69:73,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{72:[1,79]},{23:[2,42],33:[2,42],54:[2,42],65:[2,42],68:[2,42],72:[2,42],75:[2,42],80:[2,42],81:[2,42],82:[2,42],83:[2,42],84:[2,42],85:[2,42],87:[1,50]},{20:74,53:80,54:[2,84],63:81,64:75,65:[1,43],69:82,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:83,47:[1,66]},{47:[2,55]},{4:84,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{47:[2,20]},{20:85,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:86,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{26:87,47:[1,66]},{47:[2,57]},{5:[2,11],14:[2,11],15:[2,11],19:[2,11],29:[2,11],34:[2,11],39:[2,11],44:[2,11],47:[2,11],48:[2,11],51:[2,11],55:[2,11],60:[2,11]},{15:[2,49],18:[2,49]},{20:74,33:[2,88],58:88,63:89,64:75,65:[1,43],69:90,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{65:[2,94],66:91,68:[2,94],72:[2,94],80:[2,94],81:[2,94],82:[2,94],83:[2,94],84:[2,94],85:[2,94]},{5:[2,25],14:[2,25],15:[2,25],19:[2,25],29:[2,25],34:[2,25],39:[2,25],44:[2,25],47:[2,25],48:[2,25],51:[2,25],55:[2,25],60:[2,25]},{20:92,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,31:93,33:[2,60],63:94,64:75,65:[1,43],69:95,70:76,71:77,72:[1,78],75:[2,60],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,33:[2,66],36:96,63:97,64:75,65:[1,43],69:98,70:76,71:77,72:[1,78],75:[2,66],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,22:99,23:[2,52],63:100,64:75,65:[1,43],69:101,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,33:[2,92],62:102,63:103,64:75,65:[1,43],69:104,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,105]},{33:[2,79],65:[2,79],72:[2,79],80:[2,79],81:[2,79],82:[2,79],83:[2,79],84:[2,79],85:[2,79]},{33:[2,81]},{23:[2,27],33:[2,27],54:[2,27],65:[2,27],68:[2,27],72:[2,27],75:[2,27],80:[2,27],81:[2,27],82:[2,27],83:[2,27],84:[2,27],85:[2,27]},{23:[2,28],33:[2,28],54:[2,28],65:[2,28],68:[2,28],72:[2,28],75:[2,28],80:[2,28],81:[2,28],82:[2,28],83:[2,28],84:[2,28],85:[2,28]},{23:[2,30],33:[2,30],54:[2,30],68:[2,30],71:106,72:[1,107],75:[2,30]},{23:[2,98],33:[2,98],54:[2,98],68:[2,98],72:[2,98],75:[2,98]},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],73:[1,108],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{23:[2,44],33:[2,44],54:[2,44],65:[2,44],68:[2,44],72:[2,44],75:[2,44],80:[2,44],81:[2,44],82:[2,44],83:[2,44],84:[2,44],85:[2,44],87:[2,44]},{54:[1,109]},{54:[2,83],65:[2,83],72:[2,83],80:[2,83],81:[2,83],82:[2,83],83:[2,83],84:[2,83],85:[2,83]},{54:[2,85]},{5:[2,13],14:[2,13],15:[2,13],19:[2,13],29:[2,13],34:[2,13],39:[2,13],44:[2,13],47:[2,13],48:[2,13],51:[2,13],55:[2,13],60:[2,13]},{38:55,39:[1,57],43:56,44:[1,58],45:111,46:110,47:[2,76]},{33:[2,70],40:112,65:[2,70],72:[2,70],75:[2,70],80:[2,70],81:[2,70],82:[2,70],83:[2,70],84:[2,70],85:[2,70]},{47:[2,18]},{5:[2,14],14:[2,14],15:[2,14],19:[2,14],29:[2,14],34:[2,14],39:[2,14],44:[2,14],47:[2,14],48:[2,14],51:[2,14],55:[2,14],60:[2,14]},{33:[1,113]},{33:[2,87],65:[2,87],72:[2,87],80:[2,87],81:[2,87],82:[2,87],83:[2,87],84:[2,87],85:[2,87]},{33:[2,89]},{20:74,63:115,64:75,65:[1,43],67:114,68:[2,96],69:116,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,117]},{32:118,33:[2,62],74:119,75:[1,120]},{33:[2,59],65:[2,59],72:[2,59],75:[2,59],80:[2,59],81:[2,59],82:[2,59],83:[2,59],84:[2,59],85:[2,59]},{33:[2,61],75:[2,61]},{33:[2,68],37:121,74:122,75:[1,120]},{33:[2,65],65:[2,65],72:[2,65],75:[2,65],80:[2,65],81:[2,65],82:[2,65],83:[2,65],84:[2,65],85:[2,65]},{33:[2,67],75:[2,67]},{23:[1,123]},{23:[2,51],65:[2,51],72:[2,51],80:[2,51],81:[2,51],82:[2,51],83:[2,51],84:[2,51],85:[2,51]},{23:[2,53]},{33:[1,124]},{33:[2,91],65:[2,91],72:[2,91],80:[2,91],81:[2,91],82:[2,91],83:[2,91],84:[2,91],85:[2,91]},{33:[2,93]},{5:[2,22],14:[2,22],15:[2,22],19:[2,22],29:[2,22],34:[2,22],39:[2,22],44:[2,22],47:[2,22],48:[2,22],51:[2,22],55:[2,22],60:[2,22]},{23:[2,99],33:[2,99],54:[2,99],68:[2,99],72:[2,99],75:[2,99]},{73:[1,108]},{20:74,63:125,64:75,65:[1,43],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,23],14:[2,23],15:[2,23],19:[2,23],29:[2,23],34:[2,23],39:[2,23],44:[2,23],47:[2,23],48:[2,23],51:[2,23],55:[2,23],60:[2,23]},{47:[2,19]},{47:[2,77]},{20:74,33:[2,72],41:126,63:127,64:75,65:[1,43],69:128,70:76,71:77,72:[1,78],75:[2,72],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,24],14:[2,24],15:[2,24],19:[2,24],29:[2,24],34:[2,24],39:[2,24],44:[2,24],47:[2,24],48:[2,24],51:[2,24],55:[2,24],60:[2,24]},{68:[1,129]},{65:[2,95],68:[2,95],72:[2,95],80:[2,95],81:[2,95],82:[2,95],83:[2,95],84:[2,95],85:[2,95]},{68:[2,97]},{5:[2,21],14:[2,21],15:[2,21],19:[2,21],29:[2,21],34:[2,21],39:[2,21],44:[2,21],47:[2,21],48:[2,21],51:[2,21],55:[2,21],60:[2,21]},{33:[1,130]},{33:[2,63]},{72:[1,132],76:131},{33:[1,133]},{33:[2,69]},{15:[2,12],18:[2,12]},{14:[2,26],15:[2,26],19:[2,26],29:[2,26],34:[2,26],47:[2,26],48:[2,26],51:[2,26],55:[2,26],60:[2,26]},{23:[2,31],33:[2,31],54:[2,31],68:[2,31],72:[2,31],75:[2,31]},{33:[2,74],42:134,74:135,75:[1,120]},{33:[2,71],65:[2,71],72:[2,71],75:[2,71],80:[2,71],81:[2,71],82:[2,71],83:[2,71],84:[2,71],85:[2,71]},{33:[2,73],75:[2,73]},{23:[2,29],33:[2,29],54:[2,29],65:[2,29],68:[2,29],72:[2,29],75:[2,29],80:[2,29],81:[2,29],82:[2,29],83:[2,29],84:[2,29],85:[2,29]},{14:[2,15],15:[2,15],19:[2,15],29:[2,15],34:[2,15],39:[2,15],44:[2,15],47:[2,15],48:[2,15],51:[2,15],55:[2,15],60:[2,15]},{72:[1,137],77:[1,136]},{72:[2,100],77:[2,100]},{14:[2,16],15:[2,16],19:[2,16],29:[2,16],34:[2,16],44:[2,16],47:[2,16],48:[2,16],51:[2,16],55:[2,16],60:[2,16]},{33:[1,138]},{33:[2,75]},{33:[2,32]},{72:[2,101],77:[2,101]},{14:[2,17],15:[2,17],19:[2,17],29:[2,17],34:[2,17],39:[2,17],44:[2,17],47:[2,17],48:[2,17],51:[2,17],55:[2,17],60:[2,17]}],defaultActions:{4:[2,1],54:[2,55],56:[2,20],60:[2,57],73:[2,81],82:[2,85],86:[2,18],90:[2,89],101:[2,53],104:[2,93],110:[2,19],111:[2,77],116:[2,97],119:[2,63],122:[2,69],135:[2,75],136:[2,32]},parseError:function(P,j){throw Error(P)},parse:function(P){var j=this,K=[0],v=[null],m=[],w=this.table,r="",O=0,T=0,h=0,z=2,W=1;if(this.lexer.setInput(P),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,typeof this.lexer.yylloc>"u")this.lexer.yylloc={};var n=this.lexer.yylloc;m.push(n);var A=this.lexer.options&&this.lexer.options.ranges;if(typeof this.yy.parseError==="function")this.parseError=this.yy.parseError;function R(x){K.length=K.length-2*x,v.length=v.length-x,m.length=m.length-x}function B(){var x=j.lexer.lex()||1;if(typeof x!=="number")x=j.symbols_[x]||x;return x}var M,_8,I,c,b8,X8,e={},t,E,A8,k8;while(!0){if(I=K[K.length-1],this.defaultActions[I])c=this.defaultActions[I];else{if(M===null||typeof M>"u")M=B();c=w[I]&&w[I][M]}if(typeof c>"u"||!c.length||!c[0]){var a8="";if(!h){k8=[];for(t in w[I])if(this.terminals_[t]&&t>2)k8.push("'"+this.terminals_[t]+"'");if(this.lexer.showPosition)a8="Parse error on line "+(O+1)+`:
|
|
7
7
|
`+this.lexer.showPosition()+`
|
|
8
|
-
Expecting `+
|
|
9
|
-
`+K+"^"},next:function(){if(this.done)return this.EOF;if(!this._input)this.done=!0;var j,K,v,m,w,
|
|
10
|
-
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var j=this.next();if(typeof j<"u")return j;else return this.lex()},begin:function(j){this.conditionStack.push(j)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(j){this.begin(j)}};return $.options={},$.performAction=function(j,K,v,m){function w(r,T){return K.yytext=K.yytext.substring(r,K.yyleng-T+r)}var O=m;switch(v){case 0:if(K.yytext.slice(-2)==="\\\\")w(0,1),this.begin("mu");else if(K.yytext.slice(-1)==="\\")w(0,1),this.begin("emu");else this.begin("mu");if(K.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;break;case 3:return this.begin("raw"),15;break;case 4:if(this.popState(),this.conditionStack[this.conditionStack.length-1]==="raw")return 15;else return w(5,9),"END_RAW_BLOCK";break;case 5:return 15;case 6:return this.popState(),14;break;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;break;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;break;case 16:return this.popState(),44;break;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(K.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;break;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;break;case 30:return this.popState(),33;break;case 31:return K.yytext=w(1,2).replace(/\\"/g,'"'),80;break;case 32:return K.yytext=w(1,2).replace(/\\'/g,"'"),80;break;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return K.yytext=K.yytext.replace(/\\([\\\]])/g,"$1"),72;break;case 43:return"INVALID";case 44:return 5}},$.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],$.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},$}();q.lexer=_;function f(){this.yy={}}return f.prototype=q,q.Parser=f,new f}();l$.default=K4;b$.exports=l$.default});var gq=Z((S$,c$)=>{S$.__esModule=!0;function v4(q){return q&&q.__esModule?q:{default:q}}var w4=j8(),s_=v4(w4);function Rq(){this.parents=[]}Rq.prototype={constructor:Rq,mutating:!1,acceptKey:function(_,f){var $=this.accept(_[f]);if(this.mutating){if($&&!Rq.prototype[$.type])throw new s_.default('Unexpected node type "'+$.type+'" found when accepting '+f+" on "+_.type);_[f]=$}},acceptRequired:function(_,f){if(this.acceptKey(_,f),!_[f])throw new s_.default(_.type+" requires "+f)},acceptArray:function(_){for(var f=0,$=_.length;f<$;f++)if(this.acceptKey(_,f),!_[f])_.splice(f,1),f--,$--},accept:function(_){if(!_)return;if(!this[_.type])throw new s_.default("Unknown type: "+_.type,_);if(this.current)this.parents.unshift(this.current);this.current=_;var f=this[_.type](_);if(this.current=this.parents.shift(),!this.mutating||f)return f;else if(f!==!1)return _},Program:function(_){this.acceptArray(_.body)},MustacheStatement:Eq,Decorator:Eq,BlockStatement:C$,DecoratorBlock:C$,PartialStatement:V$,PartialBlockStatement:function(_){V$.call(this,_),this.acceptKey(_,"program")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:Eq,PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(_){this.acceptArray(_.pairs)},HashPair:function(_){this.acceptRequired(_,"value")}};function Eq(q){this.acceptRequired(q,"path"),this.acceptArray(q.params),this.acceptKey(q,"hash")}function C$(q){Eq.call(this,q),this.acceptKey(q,"program"),this.acceptKey(q,"inverse")}function V$(q){this.acceptRequired(q,"name"),this.acceptArray(q.params),this.acceptKey(q,"hash")}S$.default=Rq;c$.exports=S$.default});var R$=Z((N$,y$)=>{N$.__esModule=!0;function O4(q){return q&&q.__esModule?q:{default:q}}var T4=gq(),Y4=O4(T4);function k8(){var q=arguments.length<=0||arguments[0]===void 0?{}:arguments[0];this.options=q}k8.prototype=new Y4.default;k8.prototype.Program=function(q){var _=!this.options.ignoreStandalone,f=!this.isRootSeen;this.isRootSeen=!0;var $=q.body;for(var P=0,j=$.length;P<j;P++){var K=$[P],v=this.accept(K);if(!v)continue;var m=B_($,P,f),w=U_($,P,f),O=v.openStandalone&&m,r=v.closeStandalone&&w,T=v.inlineStandalone&&m&&w;if(v.close)V8($,P,!0);if(v.open)X8($,P,!0);if(_&&T){if(V8($,P),X8($,P)){if(K.type==="PartialStatement")K.indent=/([ \t]+$)/.exec($[P-1].original)[1]}}if(_&&O)V8((K.program||K.inverse).body),X8($,P);if(_&&r)V8($,P),X8((K.inverse||K.program).body)}return q};k8.prototype.BlockStatement=k8.prototype.DecoratorBlock=k8.prototype.PartialBlockStatement=function(q){this.accept(q.program),this.accept(q.inverse);var _=q.program||q.inverse,f=q.program&&q.inverse,$=f,P=f;if(f&&f.chained){$=f.body[0].program;while(P.chained)P=P.body[P.body.length-1].program}var j={open:q.openStrip.open,close:q.closeStrip.close,openStandalone:U_(_.body),closeStandalone:B_(($||_).body)};if(q.openStrip.close)V8(_.body,null,!0);if(f){var K=q.inverseStrip;if(K.open)X8(_.body,null,!0);if(K.close)V8($.body,null,!0);if(q.closeStrip.open)X8(P.body,null,!0);if(!this.options.ignoreStandalone&&B_(_.body)&&U_($.body))X8(_.body),V8($.body)}else if(q.closeStrip.open)X8(_.body,null,!0);return j};k8.prototype.Decorator=k8.prototype.MustacheStatement=function(q){return q.strip};k8.prototype.PartialStatement=k8.prototype.CommentStatement=function(q){var _=q.strip||{};return{inlineStandalone:!0,open:_.open,close:_.close}};function B_(q,_,f){if(_===void 0)_=q.length;var $=q[_-1],P=q[_-2];if(!$)return f;if($.type==="ContentStatement")return(P||!f?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test($.original)}function U_(q,_,f){if(_===void 0)_=-1;var $=q[_+1],P=q[_+2];if(!$)return f;if($.type==="ContentStatement")return(P||!f?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test($.original)}function V8(q,_,f){var $=q[_==null?0:_+1];if(!$||$.type!=="ContentStatement"||!f&&$.rightStripped)return;var P=$.value;$.value=$.value.replace(f?/^\s+/:/^[ \t]*\r?\n?/,""),$.rightStripped=$.value!==P}function X8(q,_,f){var $=q[_==null?q.length-1:_-1];if(!$||$.type!=="ContentStatement"||!f&&$.leftStripped)return;var P=$.value;return $.value=$.value.replace(f?/\s+$/:/[ \t]+$/,""),$.leftStripped=$.value!==P,$.leftStripped}N$.default=k8;y$.exports=N$.default});var E$=Z((A4)=>{A4.__esModule=!0;A4.SourceLocation=H4;A4.id=W4;A4.stripFlags=J4;A4.stripComment=Z4;A4.preparePath=n4;A4.prepareMustache=o4;A4.prepareRawBlock=p4;A4.prepareBlock=u4;A4.prepareProgram=d4;A4.preparePartialBlock=X4;function z4(q){return q&&q.__esModule?q:{default:q}}var e4=j8(),F_=z4(e4);function Q_(q,_){if(_=_.path?_.path.original:_,q.path.original!==_){var f={loc:q.path.loc};throw new F_.default(q.path.original+" doesn't match "+_,f)}}function H4(q,_){this.source=q,this.start={line:_.first_line,column:_.first_column},this.end={line:_.last_line,column:_.last_column}}function W4(q){if(/^\[.*\]$/.test(q))return q.substring(1,q.length-1);else return q}function J4(q,_){return{open:q.charAt(2)==="~",close:_.charAt(_.length-3)==="~"}}function Z4(q){return q.replace(/^\{\{~?!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function n4(q,_,f){f=this.locInfo(f);var $=q?"@":"",P=[],j=0;for(var K=0,v=_.length;K<v;K++){var m=_[K].part,w=_[K].original!==m;if($+=(_[K].separator||"")+m,!w&&(m===".."||m==="."||m==="this")){if(P.length>0)throw new F_.default("Invalid path: "+$,{loc:f});else if(m==="..")j++}else P.push(m)}return{type:"PathExpression",data:q,depth:j,parts:P,original:$,loc:f}}function o4(q,_,f,$,P,j){var K=$.charAt(3)||$.charAt(2),v=K!=="{"&&K!=="&",m=/\*/.test($);return{type:m?"Decorator":"MustacheStatement",path:q,params:_,hash:f,escaped:v,strip:P,loc:this.locInfo(j)}}function p4(q,_,f,$){Q_(q,f),$=this.locInfo($);var P={type:"Program",body:_,strip:{},loc:$};return{type:"BlockStatement",path:q.path,params:q.params,hash:q.hash,program:P,openStrip:{},inverseStrip:{},closeStrip:{},loc:$}}function u4(q,_,f,$,P,j){if($&&$.path)Q_(q,$);var K=/\*/.test(q.open);_.blockParams=q.blockParams;var v=void 0,m=void 0;if(f){if(K)throw new F_.default("Unexpected inverse block on decorator",f);if(f.chain)f.program.body[0].closeStrip=$.strip;m=f.strip,v=f.program}if(P)P=v,v=_,_=P;return{type:K?"DecoratorBlock":"BlockStatement",path:q.path,params:q.params,hash:q.hash,program:_,inverse:v,openStrip:q.strip,inverseStrip:m,closeStrip:$&&$.strip,loc:this.locInfo(j)}}function d4(q,_){if(!_&&q.length){var f=q[0].loc,$=q[q.length-1].loc;if(f&&$)_={source:f.source,start:{line:f.start.line,column:f.start.column},end:{line:$.end.line,column:$.end.column}}}return{type:"Program",body:q,strip:{},loc:_}}function X4(q,_,f,$){return Q_(q,f),{type:"PartialBlockStatement",name:q.path,params:q.params,hash:q.hash,program:_,openStrip:q.strip,closeStrip:f&&f.strip,loc:this.locInfo($)}}});var D$=Z((L4)=>{L4.__esModule=!0;L4.parseWithoutProcessing=I$;L4.parse=x4;function N4(q){if(q&&q.__esModule)return q;else{var _={};if(q!=null){for(var f in q)if(Object.prototype.hasOwnProperty.call(q,f))_[f]=q[f]}return _.default=q,_}}function g$(q){return q&&q.__esModule?q:{default:q}}var y4=M$(),qf=g$(y4),R4=R$(),E4=g$(R4),g4=E$(),I4=N4(g4),D4=x();L4.parser=qf.default;var Iq={};D4.extend(Iq,I4);function I$(q,_){if(q.type==="Program")return q;qf.default.yy=Iq,Iq.locInfo=function($){return new Iq.SourceLocation(_&&_.srcName,$)};var f=qf.default.parse(q);return f}function x4(q,_){var f=I$(q,_),$=new E4.default(_);return $.accept(f)}});var B$=Z((Kv)=>{Kv.__esModule=!0;Kv.Compiler=_f;Kv.precompile=fv;Kv.compile=$v;function L$(q){return q&&q.__esModule?q:{default:q}}var Q4=j8(),Oq=L$(Q4),Tq=x(),qv=L_(),rq=L$(qv),_v=[].slice;function _f(){}_f.prototype={compiler:_f,equals:function(_){var f=this.opcodes.length;if(_.opcodes.length!==f)return!1;for(var $=0;$<f;$++){var P=this.opcodes[$],j=_.opcodes[$];if(P.opcode!==j.opcode||!s$(P.args,j.args))return!1}f=this.children.length;for(var $=0;$<f;$++)if(!this.children[$].equals(_.children[$]))return!1;return!0},guid:0,compile:function(_,f){return this.sourceNode=[],this.opcodes=[],this.children=[],this.options=f,this.stringParams=f.stringParams,this.trackIds=f.trackIds,f.blockParams=f.blockParams||[],f.knownHelpers=Tq.extend(Object.create(null),{helperMissing:!0,blockHelperMissing:!0,each:!0,if:!0,unless:!0,with:!0,log:!0,lookup:!0},f.knownHelpers),this.accept(_)},compileProgram:function(_){var f=new this.compiler,$=f.compile(_,this.options),P=this.guid++;return this.usePartial=this.usePartial||$.usePartial,this.children[P]=$,this.useDepths=this.useDepths||$.useDepths,P},accept:function(_){if(!this[_.type])throw new Oq.default("Unknown type: "+_.type,_);this.sourceNode.unshift(_);var f=this[_.type](_);return this.sourceNode.shift(),f},Program:function(_){this.options.blockParams.unshift(_.blockParams);var f=_.body,$=f.length;for(var P=0;P<$;P++)this.accept(f[P]);return this.options.blockParams.shift(),this.isSimple=$===1,this.blockParams=_.blockParams?_.blockParams.length:0,this},BlockStatement:function(_){x$(_);var{program:f,inverse:$}=_;f=f&&this.compileProgram(f),$=$&&this.compileProgram($);var P=this.classifySexpr(_);if(P==="helper")this.helperSexpr(_,f,$);else if(P==="simple")this.simpleSexpr(_),this.opcode("pushProgram",f),this.opcode("pushProgram",$),this.opcode("emptyHash"),this.opcode("blockValue",_.path.original);else this.ambiguousSexpr(_,f,$),this.opcode("pushProgram",f),this.opcode("pushProgram",$),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue");this.opcode("append")},DecoratorBlock:function(_){var f=_.program&&this.compileProgram(_.program),$=this.setupFullMustacheParams(_,f,void 0),P=_.path;this.useDecorators=!0,this.opcode("registerDecorator",$.length,P.original)},PartialStatement:function(_){this.usePartial=!0;var f=_.program;if(f)f=this.compileProgram(_.program);var $=_.params;if($.length>1)throw new Oq.default("Unsupported number of partial arguments: "+$.length,_);else if(!$.length)if(this.options.explicitPartialContext)this.opcode("pushLiteral","undefined");else $.push({type:"PathExpression",parts:[],depth:0});var P=_.name.original,j=_.name.type==="SubExpression";if(j)this.accept(_.name);this.setupFullMustacheParams(_,f,void 0,!0);var K=_.indent||"";if(this.options.preventIndent&&K)this.opcode("appendContent",K),K="";this.opcode("invokePartial",j,P,K),this.opcode("append")},PartialBlockStatement:function(_){this.PartialStatement(_)},MustacheStatement:function(_){if(this.SubExpression(_),_.escaped&&!this.options.noEscape)this.opcode("appendEscaped");else this.opcode("append")},Decorator:function(_){this.DecoratorBlock(_)},ContentStatement:function(_){if(_.value)this.opcode("appendContent",_.value)},CommentStatement:function(){},SubExpression:function(_){x$(_);var f=this.classifySexpr(_);if(f==="simple")this.simpleSexpr(_);else if(f==="helper")this.helperSexpr(_);else this.ambiguousSexpr(_)},ambiguousSexpr:function(_,f,$){var P=_.path,j=P.parts[0],K=f!=null||$!=null;this.opcode("getContext",P.depth),this.opcode("pushProgram",f),this.opcode("pushProgram",$),P.strict=!0,this.accept(P),this.opcode("invokeAmbiguous",j,K)},simpleSexpr:function(_){var f=_.path;f.strict=!0,this.accept(f),this.opcode("resolvePossibleLambda")},helperSexpr:function(_,f,$){var P=this.setupFullMustacheParams(_,f,$),j=_.path,K=j.parts[0];if(this.options.knownHelpers[K])this.opcode("invokeKnownHelper",P.length,K);else if(this.options.knownHelpersOnly)throw new Oq.default("You specified knownHelpersOnly, but used the unknown helper "+K,_);else j.strict=!0,j.falsy=!0,this.accept(j),this.opcode("invokeHelper",P.length,j.original,rq.default.helpers.simpleId(j))},PathExpression:function(_){this.addDepth(_.depth),this.opcode("getContext",_.depth);var f=_.parts[0],$=rq.default.helpers.scopedId(_),P=!_.depth&&!$&&this.blockParamIndex(f);if(P)this.opcode("lookupBlockParam",P,_.parts);else if(!f)this.opcode("pushContext");else if(_.data)this.options.data=!0,this.opcode("lookupData",_.depth,_.parts,_.strict);else this.opcode("lookupOnContext",_.parts,_.falsy,_.strict,$)},StringLiteral:function(_){this.opcode("pushString",_.value)},NumberLiteral:function(_){this.opcode("pushLiteral",_.value)},BooleanLiteral:function(_){this.opcode("pushLiteral",_.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(_){var f=_.pairs,$=0,P=f.length;this.opcode("pushHash");for(;$<P;$++)this.pushParam(f[$].value);while($--)this.opcode("assignToHash",f[$].key);this.opcode("popHash")},opcode:function(_){this.opcodes.push({opcode:_,args:_v.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(_){if(!_)return;this.useDepths=!0},classifySexpr:function(_){var f=rq.default.helpers.simpleId(_.path),$=f&&!!this.blockParamIndex(_.path.parts[0]),P=!$&&rq.default.helpers.helperExpression(_),j=!$&&(P||f);if(j&&!P){var K=_.path.parts[0],v=this.options;if(v.knownHelpers[K])P=!0;else if(v.knownHelpersOnly)j=!1}if(P)return"helper";else if(j)return"ambiguous";else return"simple"},pushParams:function(_){for(var f=0,$=_.length;f<$;f++)this.pushParam(_[f])},pushParam:function(_){var f=_.value!=null?_.value:_.original||"";if(this.stringParams){if(f.replace)f=f.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".");if(_.depth)this.addDepth(_.depth);if(this.opcode("getContext",_.depth||0),this.opcode("pushStringParam",f,_.type),_.type==="SubExpression")this.accept(_)}else{if(this.trackIds){var $=void 0;if(_.parts&&!rq.default.helpers.scopedId(_)&&!_.depth)$=this.blockParamIndex(_.parts[0]);if($){var P=_.parts.slice(1).join(".");this.opcode("pushId","BlockParam",$,P)}else{if(f=_.original||f,f.replace)f=f.replace(/^this(?:\.|$)/,"").replace(/^\.\//,"").replace(/^\.$/,"");this.opcode("pushId",_.type,f)}}this.accept(_)}},setupFullMustacheParams:function(_,f,$,P){var j=_.params;if(this.pushParams(j),this.opcode("pushProgram",f),this.opcode("pushProgram",$),_.hash)this.accept(_.hash);else this.opcode("emptyHash",P);return j},blockParamIndex:function(_){for(var f=0,$=this.options.blockParams.length;f<$;f++){var P=this.options.blockParams[f],j=P&&Tq.indexOf(P,_);if(P&&j>=0)return[f,j]}}};function fv(q,_,f){if(q==null||typeof q!=="string"&&q.type!=="Program")throw new Oq.default("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+q);if(_=_||{},!("data"in _))_.data=!0;if(_.compat)_.useDepths=!0;var $=f.parse(q,_),P=new f.Compiler().compile($,_);return new f.JavaScriptCompiler().compile(P,_)}function $v(q,_,f){if(_===void 0)_={};if(q==null||typeof q!=="string"&&q.type!=="Program")throw new Oq.default("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+q);if(_=Tq.extend({},_),!("data"in _))_.data=!0;if(_.compat)_.useDepths=!0;var $=void 0;function P(){var K=f.parse(q,_),v=new f.Compiler().compile(K,_),m=new f.JavaScriptCompiler().compile(v,_,void 0,!0);return f.template(m)}function j(K,v){if(!$)$=P();return $.call(this,K,v)}return j._setup=function(K){if(!$)$=P();return $._setup(K)},j._child=function(K,v,m,w){if(!$)$=P();return $._child(K,v,m,w)},j}function s$(q,_){if(q===_)return!0;if(Tq.isArray(q)&&Tq.isArray(_)&&q.length===_.length){for(var f=0;f<q.length;f++)if(!s$(q[f],_[f]))return!1;return!0}}function x$(q){if(!q.path.parts){var _=q.path;q.path={type:"PathExpression",data:!1,depth:0,parts:[_.original+""],original:_.original+"",loc:_.loc}}}});var F$=Z((mv)=>{var U$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");mv.encode=function(q){if(0<=q&&q<U$.length)return U$[q];throw TypeError("Must be between 0 and 63: "+q)};mv.decode=function(q){var _=65,f=90,$=97,P=122,j=48,K=57,v=43,m=47,w=26,O=52;if(_<=q&&q<=f)return q-_;if($<=q&&q<=P)return q-$+w;if(j<=q&&q<=K)return q-j+O;if(q==v)return 62;if(q==m)return 63;return-1}});var $f=Z((kv)=>{var Q$=F$(),ff=5,qK=1<<ff,_K=qK-1,fK=qK;function Tv(q){return q<0?(-q<<1)+1:(q<<1)+0}function Yv(q){var _=(q&1)===1,f=q>>1;return _?-f:f}kv.encode=function(_){var f="",$,P=Tv(_);do{if($=P&_K,P>>>=ff,P>0)$|=fK;f+=Q$.encode($)}while(P>0);return f};kv.decode=function(_,f,$){var P=_.length,j=0,K=0,v,m;do{if(f>=P)throw Error("Expected more digits in base 64 VLQ value.");if(m=Q$.decode(_.charCodeAt(f++)),m===-1)throw Error("Invalid base64 digit: "+_.charAt(f-1));v=!!(m&fK),m&=_K,j=j+(m<<K),K+=ff}while(v);$.value=Yv(j),$.rest=f}});var D8=Z((Xv)=>{function ev(q,_,f){if(_ in q)return q[_];else if(arguments.length===3)return f;else throw Error('"'+_+'" is a required argument.')}Xv.getArg=ev;var $K=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,Hv=/^data:.+\,.+$/;function Yq(q){var _=q.match($K);if(!_)return null;return{scheme:_[1],auth:_[2],host:_[3],port:_[4],path:_[5]}}Xv.urlParse=Yq;function g8(q){var _="";if(q.scheme)_+=q.scheme+":";if(_+="//",q.auth)_+=q.auth+"@";if(q.host)_+=q.host;if(q.port)_+=":"+q.port;if(q.path)_+=q.path;return _}Xv.urlGenerate=g8;function Kf(q){var _=q,f=Yq(q);if(f){if(!f.path)return q;_=f.path}var $=Xv.isAbsolute(_),P=_.split(/\/+/);for(var j,K=0,v=P.length-1;v>=0;v--)if(j=P[v],j===".")P.splice(v,1);else if(j==="..")K++;else if(K>0)if(j==="")P.splice(v+1,K),K=0;else P.splice(v,2),K--;if(_=P.join("/"),_==="")_=$?"/":".";if(f)return f.path=_,g8(f);return _}Xv.normalize=Kf;function KK(q,_){if(q==="")q=".";if(_==="")_=".";var f=Yq(_),$=Yq(q);if($)q=$.path||"/";if(f&&!f.scheme){if($)f.scheme=$.scheme;return g8(f)}if(f||_.match(Hv))return _;if($&&!$.host&&!$.path)return $.host=_,g8($);var P=_.charAt(0)==="/"?_:Kf(q.replace(/\/+$/,"")+"/"+_);if($)return $.path=P,g8($);return P}Xv.join=KK;Xv.isAbsolute=function(q){return q.charAt(0)==="/"||$K.test(q)};function Wv(q,_){if(q==="")q=".";q=q.replace(/\/$/,"");var f=0;while(_.indexOf(q+"/")!==0){var $=q.lastIndexOf("/");if($<0)return _;if(q=q.slice(0,$),q.match(/^([^\/]+:\/)?\/*$/))return _;++f}return Array(f+1).join("../")+_.substr(q.length+1)}Xv.relative=Wv;var PK=function(){var q=Object.create(null);return!("__proto__"in q)}();function jK(q){return q}function Jv(q){if(vK(q))return"$"+q;return q}Xv.toSetString=PK?jK:Jv;function Zv(q){if(vK(q))return q.slice(1);return q}Xv.fromSetString=PK?jK:Zv;function vK(q){if(!q)return!1;var _=q.length;if(_<9)return!1;if(q.charCodeAt(_-1)!==95||q.charCodeAt(_-2)!==95||q.charCodeAt(_-3)!==111||q.charCodeAt(_-4)!==116||q.charCodeAt(_-5)!==111||q.charCodeAt(_-6)!==114||q.charCodeAt(_-7)!==112||q.charCodeAt(_-8)!==95||q.charCodeAt(_-9)!==95)return!1;for(var f=_-10;f>=0;f--)if(q.charCodeAt(f)!==36)return!1;return!0}function nv(q,_,f){var $=I8(q.source,_.source);if($!==0)return $;if($=q.originalLine-_.originalLine,$!==0)return $;if($=q.originalColumn-_.originalColumn,$!==0||f)return $;if($=q.generatedColumn-_.generatedColumn,$!==0)return $;if($=q.generatedLine-_.generatedLine,$!==0)return $;return I8(q.name,_.name)}Xv.compareByOriginalPositions=nv;function ov(q,_,f){var $=q.generatedLine-_.generatedLine;if($!==0)return $;if($=q.generatedColumn-_.generatedColumn,$!==0||f)return $;if($=I8(q.source,_.source),$!==0)return $;if($=q.originalLine-_.originalLine,$!==0)return $;if($=q.originalColumn-_.originalColumn,$!==0)return $;return I8(q.name,_.name)}Xv.compareByGeneratedPositionsDeflated=ov;function I8(q,_){if(q===_)return 0;if(q===null)return 1;if(_===null)return-1;if(q>_)return 1;return-1}function pv(q,_){var f=q.generatedLine-_.generatedLine;if(f!==0)return f;if(f=q.generatedColumn-_.generatedColumn,f!==0)return f;if(f=I8(q.source,_.source),f!==0)return f;if(f=q.originalLine-_.originalLine,f!==0)return f;if(f=q.originalColumn-_.originalColumn,f!==0)return f;return I8(q.name,_.name)}Xv.compareByGeneratedPositionsInflated=pv;function uv(q){return JSON.parse(q.replace(/^\)]}'[^\n]*\n/,""))}Xv.parseSourceMapInput=uv;function dv(q,_,f){if(_=_||"",q){if(q[q.length-1]!=="/"&&_[0]!=="/")q+="/";_=q+_}if(f){var $=Yq(f);if(!$)throw Error("sourceMapURL could not be parsed");if($.path){var P=$.path.lastIndexOf("/");if(P>=0)$.path=$.path.substring(0,P+1)}_=KK(g8($),_)}return Kf(_)}Xv.computeSourceURL=dv});var vf=Z((Rv)=>{var Pf=D8(),jf=Object.prototype.hasOwnProperty,S8=typeof Map<"u";function o8(){this._array=[],this._set=S8?new Map:Object.create(null)}o8.fromArray=function(_,f){var $=new o8;for(var P=0,j=_.length;P<j;P++)$.add(_[P],f);return $};o8.prototype.size=function(){return S8?this._set.size:Object.getOwnPropertyNames(this._set).length};o8.prototype.add=function(_,f){var $=S8?_:Pf.toSetString(_),P=S8?this.has(_):jf.call(this._set,$),j=this._array.length;if(!P||f)this._array.push(_);if(!P)if(S8)this._set.set(_,j);else this._set[$]=j};o8.prototype.has=function(_){if(S8)return this._set.has(_);else{var f=Pf.toSetString(_);return jf.call(this._set,f)}};o8.prototype.indexOf=function(_){if(S8){var f=this._set.get(_);if(f>=0)return f}else{var $=Pf.toSetString(_);if(jf.call(this._set,$))return this._set[$]}throw Error('"'+_+'" is not in the set.')};o8.prototype.at=function(_){if(_>=0&&_<this._array.length)return this._array[_];throw Error("No element indexed by "+_)};o8.prototype.toArray=function(){return this._array.slice()};Rv.ArraySet=o8});var mK=Z((Iv)=>{var wK=D8();function gv(q,_){var f=q.generatedLine,$=_.generatedLine,P=q.generatedColumn,j=_.generatedColumn;return $>f||$==f&&j>=P||wK.compareByGeneratedPositionsInflated(q,_)<=0}function Dq(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}Dq.prototype.unsortedForEach=function(_,f){this._array.forEach(_,f)};Dq.prototype.add=function(_){if(gv(this._last,_))this._last=_,this._array.push(_);else this._sorted=!1,this._array.push(_)};Dq.prototype.toArray=function(){if(!this._sorted)this._array.sort(wK.compareByGeneratedPositionsInflated),this._sorted=!0;return this._array};Iv.MappingList=Dq});var wf=Z((Lv)=>{var kq=$f(),N=D8(),xq=vf().ArraySet,xv=mK().MappingList;function v8(q){if(!q)q={};this._file=N.getArg(q,"file",null),this._sourceRoot=N.getArg(q,"sourceRoot",null),this._skipValidation=N.getArg(q,"skipValidation",!1),this._sources=new xq,this._names=new xq,this._mappings=new xv,this._sourcesContents=null}v8.prototype._version=3;v8.fromSourceMap=function(_){var f=_.sourceRoot,$=new v8({file:_.file,sourceRoot:f});return _.eachMapping(function(P){var j={generated:{line:P.generatedLine,column:P.generatedColumn}};if(P.source!=null){if(j.source=P.source,f!=null)j.source=N.relative(f,j.source);if(j.original={line:P.originalLine,column:P.originalColumn},P.name!=null)j.name=P.name}$.addMapping(j)}),_.sources.forEach(function(P){var j=P;if(f!==null)j=N.relative(f,P);if(!$._sources.has(j))$._sources.add(j);var K=_.sourceContentFor(P);if(K!=null)$.setSourceContent(P,K)}),$};v8.prototype.addMapping=function(_){var f=N.getArg(_,"generated"),$=N.getArg(_,"original",null),P=N.getArg(_,"source",null),j=N.getArg(_,"name",null);if(!this._skipValidation)this._validateMapping(f,$,P,j);if(P!=null){if(P=String(P),!this._sources.has(P))this._sources.add(P)}if(j!=null){if(j=String(j),!this._names.has(j))this._names.add(j)}this._mappings.add({generatedLine:f.line,generatedColumn:f.column,originalLine:$!=null&&$.line,originalColumn:$!=null&&$.column,source:P,name:j})};v8.prototype.setSourceContent=function(_,f){var $=_;if(this._sourceRoot!=null)$=N.relative(this._sourceRoot,$);if(f!=null){if(!this._sourcesContents)this._sourcesContents=Object.create(null);this._sourcesContents[N.toSetString($)]=f}else if(this._sourcesContents){if(delete this._sourcesContents[N.toSetString($)],Object.keys(this._sourcesContents).length===0)this._sourcesContents=null}};v8.prototype.applySourceMap=function(_,f,$){var P=f;if(f==null){if(_.file==null)throw Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);P=_.file}var j=this._sourceRoot;if(j!=null)P=N.relative(j,P);var K=new xq,v=new xq;this._mappings.unsortedForEach(function(m){if(m.source===P&&m.originalLine!=null){var w=_.originalPositionFor({line:m.originalLine,column:m.originalColumn});if(w.source!=null){if(m.source=w.source,$!=null)m.source=N.join($,m.source);if(j!=null)m.source=N.relative(j,m.source);if(m.originalLine=w.line,m.originalColumn=w.column,w.name!=null)m.name=w.name}}var O=m.source;if(O!=null&&!K.has(O))K.add(O);var r=m.name;if(r!=null&&!v.has(r))v.add(r)},this),this._sources=K,this._names=v,_.sources.forEach(function(m){var w=_.sourceContentFor(m);if(w!=null){if($!=null)m=N.join($,m);if(j!=null)m=N.relative(j,m);this.setSourceContent(m,w)}},this)};v8.prototype._validateMapping=function(_,f,$,P){if(f&&typeof f.line!=="number"&&typeof f.column!=="number")throw Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(_&&"line"in _&&"column"in _&&_.line>0&&_.column>=0&&!f&&!$&&!P)return;else if(_&&"line"in _&&"column"in _&&f&&"line"in f&&"column"in f&&_.line>0&&_.column>=0&&f.line>0&&f.column>=0&&$)return;else throw Error("Invalid mapping: "+JSON.stringify({generated:_,source:$,original:f,name:P}))};v8.prototype._serializeMappings=function(){var _=0,f=1,$=0,P=0,j=0,K=0,v="",m,w,O,r,T=this._mappings.toArray();for(var z=0,e=T.length;z<e;z++){if(w=T[z],m="",w.generatedLine!==f){_=0;while(w.generatedLine!==f)m+=";",f++}else if(z>0){if(!N.compareByGeneratedPositionsInflated(w,T[z-1]))continue;m+=","}if(m+=kq.encode(w.generatedColumn-_),_=w.generatedColumn,w.source!=null){if(r=this._sources.indexOf(w.source),m+=kq.encode(r-K),K=r,m+=kq.encode(w.originalLine-1-P),P=w.originalLine-1,m+=kq.encode(w.originalColumn-$),$=w.originalColumn,w.name!=null)O=this._names.indexOf(w.name),m+=kq.encode(O-j),j=O}v+=m}return v};v8.prototype._generateSourcesContent=function(_,f){return _.map(function($){if(!this._sourcesContents)return null;if(f!=null)$=N.relative(f,$);var P=N.toSetString($);return Object.prototype.hasOwnProperty.call(this._sourcesContents,P)?this._sourcesContents[P]:null},this)};v8.prototype.toJSON=function(){var _={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};if(this._file!=null)_.file=this._file;if(this._sourceRoot!=null)_.sourceRoot=this._sourceRoot;if(this._sourcesContents)_.sourcesContent=this._generateSourcesContent(_.sources,_.sourceRoot);return _};v8.prototype.toString=function(){return JSON.stringify(this.toJSON())};Lv.SourceMapGenerator=v8});var OK=Z((Bv)=>{Bv.GREATEST_LOWER_BOUND=1;Bv.LEAST_UPPER_BOUND=2;function mf(q,_,f,$,P,j){var K=Math.floor((_-q)/2)+q,v=P(f,$[K],!0);if(v===0)return K;else if(v>0){if(_-K>1)return mf(K,_,f,$,P,j);if(j==Bv.LEAST_UPPER_BOUND)return _<$.length?_:-1;else return K}else{if(K-q>1)return mf(q,K,f,$,P,j);if(j==Bv.LEAST_UPPER_BOUND)return K;else return q<0?-1:q}}Bv.search=function(_,f,$,P){if(f.length===0)return-1;var j=mf(-1,f.length,_,f,$,P||Bv.GREATEST_LOWER_BOUND);if(j<0)return-1;while(j-1>=0){if($(f[j],f[j-1],!0)!==0)break;--j}return j}});var TK=Z((Qv)=>{function Of(q,_,f){var $=q[_];q[_]=q[f],q[f]=$}function Fv(q,_){return Math.round(q+Math.random()*(_-q))}function Tf(q,_,f,$){if(f<$){var P=Fv(f,$),j=f-1;Of(q,P,$);var K=q[$];for(var v=f;v<$;v++)if(_(q[v],K)<=0)j+=1,Of(q,j,v);Of(q,j+1,v);var m=j+1;Tf(q,_,f,m-1),Tf(q,_,m+1,$)}}Qv.quickSort=function(q,_){Tf(q,_,0,q.length-1)}});var kK=Z((f1)=>{var H=D8(),Yf=OK(),x8=vf().ArraySet,_1=$f(),hq=TK().quickSort;function i(q,_){var f=q;if(typeof q==="string")f=H.parseSourceMapInput(q);return f.sections!=null?new T8(f,_):new E(f,_)}i.fromSourceMap=function(q,_){return E.fromSourceMap(q,_)};i.prototype._version=3;i.prototype.__generatedMappings=null;Object.defineProperty(i.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){if(!this.__generatedMappings)this._parseMappings(this._mappings,this.sourceRoot);return this.__generatedMappings}});i.prototype.__originalMappings=null;Object.defineProperty(i.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){if(!this.__originalMappings)this._parseMappings(this._mappings,this.sourceRoot);return this.__originalMappings}});i.prototype._charIsMappingSeparator=function(_,f){var $=_.charAt(f);return $===";"||$===","};i.prototype._parseMappings=function(_,f){throw Error("Subclasses must implement _parseMappings")};i.GENERATED_ORDER=1;i.ORIGINAL_ORDER=2;i.GREATEST_LOWER_BOUND=1;i.LEAST_UPPER_BOUND=2;i.prototype.eachMapping=function(_,f,$){var P=f||null,j=$||i.GENERATED_ORDER,K;switch(j){case i.GENERATED_ORDER:K=this._generatedMappings;break;case i.ORIGINAL_ORDER:K=this._originalMappings;break;default:throw Error("Unknown order of iteration.")}var v=this.sourceRoot;K.map(function(m){var w=m.source===null?null:this._sources.at(m.source);return w=H.computeSourceURL(v,w,this._sourceMapURL),{source:w,generatedLine:m.generatedLine,generatedColumn:m.generatedColumn,originalLine:m.originalLine,originalColumn:m.originalColumn,name:m.name===null?null:this._names.at(m.name)}},this).forEach(_,P)};i.prototype.allGeneratedPositionsFor=function(_){var f=H.getArg(_,"line"),$={source:H.getArg(_,"source"),originalLine:f,originalColumn:H.getArg(_,"column",0)};if($.source=this._findSourceIndex($.source),$.source<0)return[];var P=[],j=this._findMapping($,this._originalMappings,"originalLine","originalColumn",H.compareByOriginalPositions,Yf.LEAST_UPPER_BOUND);if(j>=0){var K=this._originalMappings[j];if(_.column===void 0){var v=K.originalLine;while(K&&K.originalLine===v)P.push({line:H.getArg(K,"generatedLine",null),column:H.getArg(K,"generatedColumn",null),lastColumn:H.getArg(K,"lastGeneratedColumn",null)}),K=this._originalMappings[++j]}else{var m=K.originalColumn;while(K&&K.originalLine===f&&K.originalColumn==m)P.push({line:H.getArg(K,"generatedLine",null),column:H.getArg(K,"generatedColumn",null),lastColumn:H.getArg(K,"lastGeneratedColumn",null)}),K=this._originalMappings[++j]}}return P};f1.SourceMapConsumer=i;function E(q,_){var f=q;if(typeof q==="string")f=H.parseSourceMapInput(q);var $=H.getArg(f,"version"),P=H.getArg(f,"sources"),j=H.getArg(f,"names",[]),K=H.getArg(f,"sourceRoot",null),v=H.getArg(f,"sourcesContent",null),m=H.getArg(f,"mappings"),w=H.getArg(f,"file",null);if($!=this._version)throw Error("Unsupported version: "+$);if(K)K=H.normalize(K);P=P.map(String).map(H.normalize).map(function(O){return K&&H.isAbsolute(K)&&H.isAbsolute(O)?H.relative(K,O):O}),this._names=x8.fromArray(j.map(String),!0),this._sources=x8.fromArray(P,!0),this._absoluteSources=this._sources.toArray().map(function(O){return H.computeSourceURL(K,O,_)}),this.sourceRoot=K,this.sourcesContent=v,this._mappings=m,this._sourceMapURL=_,this.file=w}E.prototype=Object.create(i.prototype);E.prototype.consumer=i;E.prototype._findSourceIndex=function(q){var _=q;if(this.sourceRoot!=null)_=H.relative(this.sourceRoot,_);if(this._sources.has(_))return this._sources.indexOf(_);var f;for(f=0;f<this._absoluteSources.length;++f)if(this._absoluteSources[f]==q)return f;return-1};E.fromSourceMap=function(_,f){var $=Object.create(E.prototype),P=$._names=x8.fromArray(_._names.toArray(),!0),j=$._sources=x8.fromArray(_._sources.toArray(),!0);$.sourceRoot=_._sourceRoot,$.sourcesContent=_._generateSourcesContent($._sources.toArray(),$.sourceRoot),$.file=_._file,$._sourceMapURL=f,$._absoluteSources=$._sources.toArray().map(function(z){return H.computeSourceURL($.sourceRoot,z,f)});var K=_._mappings.toArray().slice(),v=$.__generatedMappings=[],m=$.__originalMappings=[];for(var w=0,O=K.length;w<O;w++){var r=K[w],T=new YK;if(T.generatedLine=r.generatedLine,T.generatedColumn=r.generatedColumn,r.source){if(T.source=j.indexOf(r.source),T.originalLine=r.originalLine,T.originalColumn=r.originalColumn,r.name)T.name=P.indexOf(r.name);m.push(T)}v.push(T)}return hq($.__originalMappings,H.compareByOriginalPositions),$};E.prototype._version=3;Object.defineProperty(E.prototype,"sources",{get:function(){return this._absoluteSources.slice()}});function YK(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}E.prototype._parseMappings=function(_,f){var $=1,P=0,j=0,K=0,v=0,m=0,w=_.length,O=0,r={},T={},z=[],e=[],W,p,A,R,m8;while(O<w)if(_.charAt(O)===";")$++,O++,P=0;else if(_.charAt(O)===",")O++;else{W=new YK,W.generatedLine=$;for(R=O;R<w;R++)if(this._charIsMappingSeparator(_,R))break;if(p=_.slice(O,R),A=r[p],A)O+=p.length;else{A=[];while(O<R)_1.decode(_,O,T),m8=T.value,O=T.rest,A.push(m8);if(A.length===2)throw Error("Found a source, but no line and column");if(A.length===3)throw Error("Found a source and line, but no column");r[p]=A}if(W.generatedColumn=P+A[0],P=W.generatedColumn,A.length>1){if(W.source=v+A[1],v+=A[1],W.originalLine=j+A[2],j=W.originalLine,W.originalLine+=1,W.originalColumn=K+A[3],K=W.originalColumn,A.length>4)W.name=m+A[4],m+=A[4]}if(e.push(W),typeof W.originalLine==="number")z.push(W)}hq(e,H.compareByGeneratedPositionsDeflated),this.__generatedMappings=e,hq(z,H.compareByOriginalPositions),this.__originalMappings=z};E.prototype._findMapping=function(_,f,$,P,j,K){if(_[$]<=0)throw TypeError("Line must be greater than or equal to 1, got "+_[$]);if(_[P]<0)throw TypeError("Column must be greater than or equal to 0, got "+_[P]);return Yf.search(_,f,j,K)};E.prototype.computeColumnSpans=function(){for(var _=0;_<this._generatedMappings.length;++_){var f=this._generatedMappings[_];if(_+1<this._generatedMappings.length){var $=this._generatedMappings[_+1];if(f.generatedLine===$.generatedLine){f.lastGeneratedColumn=$.generatedColumn-1;continue}}f.lastGeneratedColumn=1/0}};E.prototype.originalPositionFor=function(_){var f={generatedLine:H.getArg(_,"line"),generatedColumn:H.getArg(_,"column")},$=this._findMapping(f,this._generatedMappings,"generatedLine","generatedColumn",H.compareByGeneratedPositionsDeflated,H.getArg(_,"bias",i.GREATEST_LOWER_BOUND));if($>=0){var P=this._generatedMappings[$];if(P.generatedLine===f.generatedLine){var j=H.getArg(P,"source",null);if(j!==null)j=this._sources.at(j),j=H.computeSourceURL(this.sourceRoot,j,this._sourceMapURL);var K=H.getArg(P,"name",null);if(K!==null)K=this._names.at(K);return{source:j,line:H.getArg(P,"originalLine",null),column:H.getArg(P,"originalColumn",null),name:K}}}return{source:null,line:null,column:null,name:null}};E.prototype.hasContentsOfAllSources=function(){if(!this.sourcesContent)return!1;return this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(_){return _==null})};E.prototype.sourceContentFor=function(_,f){if(!this.sourcesContent)return null;var $=this._findSourceIndex(_);if($>=0)return this.sourcesContent[$];var P=_;if(this.sourceRoot!=null)P=H.relative(this.sourceRoot,P);var j;if(this.sourceRoot!=null&&(j=H.urlParse(this.sourceRoot))){var K=P.replace(/^file:\/\//,"");if(j.scheme=="file"&&this._sources.has(K))return this.sourcesContent[this._sources.indexOf(K)];if((!j.path||j.path=="/")&&this._sources.has("/"+P))return this.sourcesContent[this._sources.indexOf("/"+P)]}if(f)return null;else throw Error('"'+P+'" is not in the SourceMap.')};E.prototype.generatedPositionFor=function(_){var f=H.getArg(_,"source");if(f=this._findSourceIndex(f),f<0)return{line:null,column:null,lastColumn:null};var $={source:f,originalLine:H.getArg(_,"line"),originalColumn:H.getArg(_,"column")},P=this._findMapping($,this._originalMappings,"originalLine","originalColumn",H.compareByOriginalPositions,H.getArg(_,"bias",i.GREATEST_LOWER_BOUND));if(P>=0){var j=this._originalMappings[P];if(j.source===$.source)return{line:H.getArg(j,"generatedLine",null),column:H.getArg(j,"generatedColumn",null),lastColumn:H.getArg(j,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}};f1.BasicSourceMapConsumer=E;function T8(q,_){var f=q;if(typeof q==="string")f=H.parseSourceMapInput(q);var $=H.getArg(f,"version"),P=H.getArg(f,"sections");if($!=this._version)throw Error("Unsupported version: "+$);this._sources=new x8,this._names=new x8;var j={line:-1,column:0};this._sections=P.map(function(K){if(K.url)throw Error("Support for url field in sections not implemented.");var v=H.getArg(K,"offset"),m=H.getArg(v,"line"),w=H.getArg(v,"column");if(m<j.line||m===j.line&&w<j.column)throw Error("Section offsets must be ordered and non-overlapping.");return j=v,{generatedOffset:{generatedLine:m+1,generatedColumn:w+1},consumer:new i(H.getArg(K,"map"),_)}})}T8.prototype=Object.create(i.prototype);T8.prototype.constructor=i;T8.prototype._version=3;Object.defineProperty(T8.prototype,"sources",{get:function(){var q=[];for(var _=0;_<this._sections.length;_++)for(var f=0;f<this._sections[_].consumer.sources.length;f++)q.push(this._sections[_].consumer.sources[f]);return q}});T8.prototype.originalPositionFor=function(_){var f={generatedLine:H.getArg(_,"line"),generatedColumn:H.getArg(_,"column")},$=Yf.search(f,this._sections,function(j,K){var v=j.generatedLine-K.generatedOffset.generatedLine;if(v)return v;return j.generatedColumn-K.generatedOffset.generatedColumn}),P=this._sections[$];if(!P)return{source:null,line:null,column:null,name:null};return P.consumer.originalPositionFor({line:f.generatedLine-(P.generatedOffset.generatedLine-1),column:f.generatedColumn-(P.generatedOffset.generatedLine===f.generatedLine?P.generatedOffset.generatedColumn-1:0),bias:_.bias})};T8.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(_){return _.consumer.hasContentsOfAllSources()})};T8.prototype.sourceContentFor=function(_,f){for(var $=0;$<this._sections.length;$++){var P=this._sections[$],j=P.consumer.sourceContentFor(_,!0);if(j)return j}if(f)return null;else throw Error('"'+_+'" is not in the SourceMap.')};T8.prototype.generatedPositionFor=function(_){for(var f=0;f<this._sections.length;f++){var $=this._sections[f];if($.consumer._findSourceIndex(H.getArg(_,"source"))===-1)continue;var P=$.consumer.generatedPositionFor(_);if(P){var j={line:P.line+($.generatedOffset.generatedLine-1),column:P.column+($.generatedOffset.generatedLine===P.line?$.generatedOffset.generatedColumn-1:0)};return j}}return{line:null,column:null}};T8.prototype._parseMappings=function(_,f){this.__generatedMappings=[],this.__originalMappings=[];for(var $=0;$<this._sections.length;$++){var P=this._sections[$],j=P.consumer._generatedMappings;for(var K=0;K<j.length;K++){var v=j[K],m=P.consumer._sources.at(v.source);m=H.computeSourceURL(P.consumer.sourceRoot,m,this._sourceMapURL),this._sources.add(m),m=this._sources.indexOf(m);var w=null;if(v.name)w=P.consumer._names.at(v.name),this._names.add(w),w=this._names.indexOf(w);var O={source:m,generatedLine:v.generatedLine+(P.generatedOffset.generatedLine-1),generatedColumn:v.generatedColumn+(P.generatedOffset.generatedLine===v.generatedLine?P.generatedOffset.generatedColumn-1:0),originalLine:v.originalLine,originalColumn:v.originalColumn,name:w};if(this.__generatedMappings.push(O),typeof O.originalLine==="number")this.__originalMappings.push(O)}}hq(this.__generatedMappings,H.compareByGeneratedPositionsDeflated),hq(this.__originalMappings,H.compareByOriginalPositions)};f1.IndexedSourceMapConsumer=T8});var hK=Z((m1)=>{var j1=wf().SourceMapGenerator,Lq=D8(),v1=/(\r?\n)/,w1=10,L8="$$$isSourceNode$$$";function q8(q,_,f,$,P){if(this.children=[],this.sourceContents={},this.line=q==null?null:q,this.column=_==null?null:_,this.source=f==null?null:f,this.name=P==null?null:P,this[L8]=!0,$!=null)this.add($)}q8.fromStringWithSourceMap=function(_,f,$){var P=new q8,j=_.split(v1),K=0,v=function(){var T=e(),z=e()||"";return T+z;function e(){return K<j.length?j[K++]:void 0}},m=1,w=0,O=null;if(f.eachMapping(function(T){if(O!==null)if(m<T.generatedLine)r(O,v()),m++,w=0;else{var z=j[K]||"",e=z.substr(0,T.generatedColumn-w);j[K]=z.substr(T.generatedColumn-w),w=T.generatedColumn,r(O,e),O=T;return}while(m<T.generatedLine)P.add(v()),m++;if(w<T.generatedColumn){var z=j[K]||"";P.add(z.substr(0,T.generatedColumn)),j[K]=z.substr(T.generatedColumn),w=T.generatedColumn}O=T},this),K<j.length){if(O)r(O,v());P.add(j.splice(K).join(""))}return f.sources.forEach(function(T){var z=f.sourceContentFor(T);if(z!=null){if($!=null)T=Lq.join($,T);P.setSourceContent(T,z)}}),P;function r(T,z){if(T===null||T.source===void 0)P.add(z);else{var e=$?Lq.join($,T.source):T.source;P.add(new q8(T.originalLine,T.originalColumn,e,z,T.name))}}};q8.prototype.add=function(_){if(Array.isArray(_))_.forEach(function(f){this.add(f)},this);else if(_[L8]||typeof _==="string"){if(_)this.children.push(_)}else throw TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+_);return this};q8.prototype.prepend=function(_){if(Array.isArray(_))for(var f=_.length-1;f>=0;f--)this.prepend(_[f]);else if(_[L8]||typeof _==="string")this.children.unshift(_);else throw TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+_);return this};q8.prototype.walk=function(_){var f;for(var $=0,P=this.children.length;$<P;$++)if(f=this.children[$],f[L8])f.walk(_);else if(f!=="")_(f,{source:this.source,line:this.line,column:this.column,name:this.name})};q8.prototype.join=function(_){var f,$,P=this.children.length;if(P>0){f=[];for($=0;$<P-1;$++)f.push(this.children[$]),f.push(_);f.push(this.children[$]),this.children=f}return this};q8.prototype.replaceRight=function(_,f){var $=this.children[this.children.length-1];if($[L8])$.replaceRight(_,f);else if(typeof $==="string")this.children[this.children.length-1]=$.replace(_,f);else this.children.push("".replace(_,f));return this};q8.prototype.setSourceContent=function(_,f){this.sourceContents[Lq.toSetString(_)]=f};q8.prototype.walkSourceContents=function(_){for(var f=0,$=this.children.length;f<$;f++)if(this.children[f][L8])this.children[f].walkSourceContents(_);var P=Object.keys(this.sourceContents);for(var f=0,$=P.length;f<$;f++)_(Lq.fromSetString(P[f]),this.sourceContents[P[f]])};q8.prototype.toString=function(){var _="";return this.walk(function(f){_+=f}),_};q8.prototype.toStringWithSourceMap=function(_){var f={code:"",line:1,column:0},$=new j1(_),P=!1,j=null,K=null,v=null,m=null;return this.walk(function(w,O){if(f.code+=w,O.source!==null&&O.line!==null&&O.column!==null){if(j!==O.source||K!==O.line||v!==O.column||m!==O.name)$.addMapping({source:O.source,original:{line:O.line,column:O.column},generated:{line:f.line,column:f.column},name:O.name});j=O.source,K=O.line,v=O.column,m=O.name,P=!0}else if(P)$.addMapping({generated:{line:f.line,column:f.column}}),j=null,P=!1;for(var r=0,T=w.length;r<T;r++)if(w.charCodeAt(r)===w1){if(f.line++,f.column=0,r+1===T)j=null,P=!1;else if(P)$.addMapping({source:O.source,original:{line:O.line,column:O.column},generated:{line:f.line,column:f.column},name:O.name})}else f.column++}),this.walkSourceContents(function(w,O){$.setSourceContent(w,O)}),{code:f.code,map:$}};m1.SourceNode=q8});var zK=Z((O1)=>{O1.SourceMapGenerator=wf().SourceMapGenerator;O1.SourceMapConsumer=kK().SourceMapConsumer;O1.SourceNode=hK().SourceNode});var JK=Z((HK,WK)=>{HK.__esModule=!0;var hf=x(),c8=void 0;try{if(typeof define!=="function"||!define.amd)zf=zK(),c8=zf.SourceNode}catch(q){}var zf;if(!c8)c8=function(q,_,f,$){if(this.src="",$)this.add($)},c8.prototype={add:function(_){if(hf.isArray(_))_=_.join("");this.src+=_},prepend:function(_){if(hf.isArray(_))_=_.join("");this.src=_+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}};function kf(q,_,f){if(hf.isArray(q)){var $=[];for(var P=0,j=q.length;P<j;P++)$.push(_.wrap(q[P],f));return $}else if(typeof q==="boolean"||typeof q==="number")return q+"";return q}function eK(q){this.srcFile=q,this.source=[]}eK.prototype={isEmpty:function(){return!this.source.length},prepend:function(_,f){this.source.unshift(this.wrap(_,f))},push:function(_,f){this.source.push(this.wrap(_,f))},merge:function(){var _=this.empty();return this.each(function(f){_.add([" ",f,`
|
|
11
|
-
`])}),_},each:function(_){for(var f=0,$=this.source.length;f<$;f++)_(this.source[f])},empty:function(){var _=this.currentLocation||{start:{}};return new
|
|
8
|
+
Expecting `+k8.join(", ")+", got '"+(this.terminals_[M]||M)+"'";else a8="Parse error on line "+(O+1)+": Unexpected "+(M==1?"end of input":"'"+(this.terminals_[M]||M)+"'");this.parseError(a8,{text:this.lexer.match,token:this.terminals_[M]||M,line:this.lexer.yylineno,loc:n,expected:k8})}}if(c[0]instanceof Array&&c.length>1)throw Error("Parse Error: multiple actions possible at state: "+I+", token: "+M);switch(c[0]){case 1:if(K.push(M),v.push(this.lexer.yytext),m.push(this.lexer.yylloc),K.push(c[1]),M=null,!_8){if(T=this.lexer.yyleng,r=this.lexer.yytext,O=this.lexer.yylineno,n=this.lexer.yylloc,h>0)h--}else M=_8,_8=null;break;case 2:if(E=this.productions_[c[1]][1],e.$=v[v.length-E],e._$={first_line:m[m.length-(E||1)].first_line,last_line:m[m.length-1].last_line,first_column:m[m.length-(E||1)].first_column,last_column:m[m.length-1].last_column},A)e._$.range=[m[m.length-(E||1)].range[0],m[m.length-1].range[1]];if(X8=this.performAction.call(e,r,T,O,this.yy,c[1],v,m),typeof X8<"u")return X8;if(E)K=K.slice(0,-1*E*2),v=v.slice(0,-1*E),m=m.slice(0,-1*E);K.push(this.productions_[c[1]][0]),v.push(e.$),m.push(e._$),A8=w[K[K.length-2]][K[K.length-1]],K.push(A8);break;case 3:return!0}}return!0}},_=function(){var $={EOF:1,parseError:function(j,K){if(this.yy.parser)this.yy.parser.parseError(j,K);else throw Error(j)},setInput:function(j){if(this._input=j,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges)this.yylloc.range=[0,0];return this.offset=0,this},input:function(){var j=this._input[0];this.yytext+=j,this.yyleng++,this.offset++,this.match+=j,this.matched+=j;var K=j.match(/(?:\r\n?|\n).*/g);if(K)this.yylineno++,this.yylloc.last_line++;else this.yylloc.last_column++;if(this.options.ranges)this.yylloc.range[1]++;return this._input=this._input.slice(1),j},unput:function(j){var K=j.length,v=j.split(/(?:\r\n?|\n)/g);this._input=j+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-K-1),this.offset-=K;var m=this.match.split(/(?:\r\n?|\n)/g);if(this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),v.length-1)this.yylineno-=v.length-1;var w=this.yylloc.range;if(this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:v?(v.length===m.length?this.yylloc.first_column:0)+m[m.length-v.length].length-v[0].length:this.yylloc.first_column-K},this.options.ranges)this.yylloc.range=[w[0],w[0]+this.yyleng-K];return this},more:function(){return this._more=!0,this},less:function(j){this.unput(this.match.slice(j))},pastInput:function(){var j=this.matched.substr(0,this.matched.length-this.match.length);return(j.length>20?"...":"")+j.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var j=this.match;if(j.length<20)j+=this._input.substr(0,20-j.length);return(j.substr(0,20)+(j.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var j=this.pastInput(),K=Array(j.length+1).join("-");return j+this.upcomingInput()+`
|
|
9
|
+
`+K+"^"},next:function(){if(this.done)return this.EOF;if(!this._input)this.done=!0;var j,K,v,m,w,r;if(!this._more)this.yytext="",this.match="";var O=this._currentRules();for(var T=0;T<O.length;T++)if(v=this._input.match(this.rules[O[T]]),v&&(!K||v[0].length>K[0].length)){if(K=v,m=T,!this.options.flex)break}if(K){if(r=K[0].match(/(?:\r\n?|\n).*/g),r)this.yylineno+=r.length;if(this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+K[0].length},this.yytext+=K[0],this.match+=K[0],this.matches=K,this.yyleng=this.yytext.length,this.options.ranges)this.yylloc.range=[this.offset,this.offset+=this.yyleng];if(this._more=!1,this._input=this._input.slice(K[0].length),this.matched+=K[0],j=this.performAction.call(this,this.yy,this,O[m],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input)this.done=!1;if(j)return j;else return}if(this._input==="")return this.EOF;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
|
|
10
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var j=this.next();if(typeof j<"u")return j;else return this.lex()},begin:function(j){this.conditionStack.push(j)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(j){this.begin(j)}};return $.options={},$.performAction=function(j,K,v,m){function w(O,T){return K.yytext=K.yytext.substring(O,K.yyleng-T+O)}var r=m;switch(v){case 0:if(K.yytext.slice(-2)==="\\\\")w(0,1),this.begin("mu");else if(K.yytext.slice(-1)==="\\")w(0,1),this.begin("emu");else this.begin("mu");if(K.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;break;case 3:return this.begin("raw"),15;break;case 4:if(this.popState(),this.conditionStack[this.conditionStack.length-1]==="raw")return 15;else return w(5,9),"END_RAW_BLOCK";break;case 5:return 15;case 6:return this.popState(),14;break;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;break;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;break;case 16:return this.popState(),44;break;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(K.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;break;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;break;case 30:return this.popState(),33;break;case 31:return K.yytext=w(1,2).replace(/\\"/g,'"'),80;break;case 32:return K.yytext=w(1,2).replace(/\\'/g,"'"),80;break;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return K.yytext=K.yytext.replace(/\\([\\\]])/g,"$1"),72;break;case 43:return"INVALID";case 44:return 5}},$.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],$.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},$}();q.lexer=_;function f(){this.yy={}}return f.prototype=q,q.Parser=f,new f}();G$.default=$4;l$.exports=G$.default});var Iq=Z((V$,S$)=>{V$.__esModule=!0;function j4(q){return q&&q.__esModule?q:{default:q}}var v4=w8(),s_=j4(v4);function Eq(){this.parents=[]}Eq.prototype={constructor:Eq,mutating:!1,acceptKey:function(_,f){var $=this.accept(_[f]);if(this.mutating){if($&&!Eq.prototype[$.type])throw new s_.default('Unexpected node type "'+$.type+'" found when accepting '+f+" on "+_.type);_[f]=$}},acceptRequired:function(_,f){if(this.acceptKey(_,f),!_[f])throw new s_.default(_.type+" requires "+f)},acceptArray:function(_){for(var f=0,$=_.length;f<$;f++)if(this.acceptKey(_,f),!_[f])_.splice(f,1),f--,$--},accept:function(_){if(!_)return;if(!this[_.type])throw new s_.default("Unknown type: "+_.type,_);if(this.current)this.parents.unshift(this.current);this.current=_;var f=this[_.type](_);if(this.current=this.parents.shift(),!this.mutating||f)return f;else if(f!==!1)return _},Program:function(_){this.acceptArray(_.body)},MustacheStatement:gq,Decorator:gq,BlockStatement:M$,DecoratorBlock:M$,PartialStatement:C$,PartialBlockStatement:function(_){C$.call(this,_),this.acceptKey(_,"program")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:gq,PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(_){this.acceptArray(_.pairs)},HashPair:function(_){this.acceptRequired(_,"value")}};function gq(q){this.acceptRequired(q,"path"),this.acceptArray(q.params),this.acceptKey(q,"hash")}function M$(q){gq.call(this,q),this.acceptKey(q,"program"),this.acceptKey(q,"inverse")}function C$(q){this.acceptRequired(q,"name"),this.acceptArray(q.params),this.acceptKey(q,"hash")}V$.default=Eq;S$.exports=V$.default});var y$=Z((c$,N$)=>{c$.__esModule=!0;function O4(q){return q&&q.__esModule?q:{default:q}}var r4=Iq(),T4=O4(r4);function z8(){var q=arguments.length<=0||arguments[0]===void 0?{}:arguments[0];this.options=q}z8.prototype=new T4.default;z8.prototype.Program=function(q){var _=!this.options.ignoreStandalone,f=!this.isRootSeen;this.isRootSeen=!0;var $=q.body;for(var P=0,j=$.length;P<j;P++){var K=$[P],v=this.accept(K);if(!v)continue;var m=B_($,P,f),w=U_($,P,f),r=v.openStandalone&&m,O=v.closeStandalone&&w,T=v.inlineStandalone&&m&&w;if(v.close)c8($,P,!0);if(v.open)G8($,P,!0);if(_&&T){if(c8($,P),G8($,P)){if(K.type==="PartialStatement")K.indent=/([ \t]+$)/.exec($[P-1].original)[1]}}if(_&&r)c8((K.program||K.inverse).body),G8($,P);if(_&&O)c8($,P),G8((K.inverse||K.program).body)}return q};z8.prototype.BlockStatement=z8.prototype.DecoratorBlock=z8.prototype.PartialBlockStatement=function(q){this.accept(q.program),this.accept(q.inverse);var _=q.program||q.inverse,f=q.program&&q.inverse,$=f,P=f;if(f&&f.chained){$=f.body[0].program;while(P.chained)P=P.body[P.body.length-1].program}var j={open:q.openStrip.open,close:q.closeStrip.close,openStandalone:U_(_.body),closeStandalone:B_(($||_).body)};if(q.openStrip.close)c8(_.body,null,!0);if(f){var K=q.inverseStrip;if(K.open)G8(_.body,null,!0);if(K.close)c8($.body,null,!0);if(q.closeStrip.open)G8(P.body,null,!0);if(!this.options.ignoreStandalone&&B_(_.body)&&U_($.body))G8(_.body),c8($.body)}else if(q.closeStrip.open)G8(_.body,null,!0);return j};z8.prototype.Decorator=z8.prototype.MustacheStatement=function(q){return q.strip};z8.prototype.PartialStatement=z8.prototype.CommentStatement=function(q){var _=q.strip||{};return{inlineStandalone:!0,open:_.open,close:_.close}};function B_(q,_,f){if(_===void 0)_=q.length;var $=q[_-1],P=q[_-2];if(!$)return f;if($.type==="ContentStatement")return(P||!f?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test($.original)}function U_(q,_,f){if(_===void 0)_=-1;var $=q[_+1],P=q[_+2];if(!$)return f;if($.type==="ContentStatement")return(P||!f?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test($.original)}function c8(q,_,f){var $=q[_==null?0:_+1];if(!$||$.type!=="ContentStatement"||!f&&$.rightStripped)return;var P=$.value;$.value=$.value.replace(f?/^\s+/:/^[ \t]*\r?\n?/,""),$.rightStripped=$.value!==P}function G8(q,_,f){var $=q[_==null?q.length-1:_-1];if(!$||$.type!=="ContentStatement"||!f&&$.leftStripped)return;var P=$.value;return $.value=$.value.replace(f?/\s+$/:/[ \t]+$/,""),$.leftStripped=$.value!==P,$.leftStripped}c$.default=z8;N$.exports=c$.default});var R$=Z((X4)=>{X4.__esModule=!0;X4.SourceLocation=e4;X4.id=H4;X4.stripFlags=W4;X4.stripComment=J4;X4.preparePath=Z4;X4.prepareMustache=n4;X4.prepareRawBlock=o4;X4.prepareBlock=p4;X4.prepareProgram=u4;X4.preparePartialBlock=d4;function h4(q){return q&&q.__esModule?q:{default:q}}var z4=w8(),F_=h4(z4);function Q_(q,_){if(_=_.path?_.path.original:_,q.path.original!==_){var f={loc:q.path.loc};throw new F_.default(q.path.original+" doesn't match "+_,f)}}function e4(q,_){this.source=q,this.start={line:_.first_line,column:_.first_column},this.end={line:_.last_line,column:_.last_column}}function H4(q){if(/^\[.*\]$/.test(q))return q.substring(1,q.length-1);else return q}function W4(q,_){return{open:q.charAt(2)==="~",close:_.charAt(_.length-3)==="~"}}function J4(q){return q.replace(/^\{\{~?!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function Z4(q,_,f){f=this.locInfo(f);var $=q?"@":"",P=[],j=0;for(var K=0,v=_.length;K<v;K++){var m=_[K].part,w=_[K].original!==m;if($+=(_[K].separator||"")+m,!w&&(m===".."||m==="."||m==="this")){if(P.length>0)throw new F_.default("Invalid path: "+$,{loc:f});else if(m==="..")j++}else P.push(m)}return{type:"PathExpression",data:q,depth:j,parts:P,original:$,loc:f}}function n4(q,_,f,$,P,j){var K=$.charAt(3)||$.charAt(2),v=K!=="{"&&K!=="&",m=/\*/.test($);return{type:m?"Decorator":"MustacheStatement",path:q,params:_,hash:f,escaped:v,strip:P,loc:this.locInfo(j)}}function o4(q,_,f,$){Q_(q,f),$=this.locInfo($);var P={type:"Program",body:_,strip:{},loc:$};return{type:"BlockStatement",path:q.path,params:q.params,hash:q.hash,program:P,openStrip:{},inverseStrip:{},closeStrip:{},loc:$}}function p4(q,_,f,$,P,j){if($&&$.path)Q_(q,$);var K=/\*/.test(q.open);_.blockParams=q.blockParams;var v=void 0,m=void 0;if(f){if(K)throw new F_.default("Unexpected inverse block on decorator",f);if(f.chain)f.program.body[0].closeStrip=$.strip;m=f.strip,v=f.program}if(P)P=v,v=_,_=P;return{type:K?"DecoratorBlock":"BlockStatement",path:q.path,params:q.params,hash:q.hash,program:_,inverse:v,openStrip:q.strip,inverseStrip:m,closeStrip:$&&$.strip,loc:this.locInfo(j)}}function u4(q,_){if(!_&&q.length){var f=q[0].loc,$=q[q.length-1].loc;if(f&&$)_={source:f.source,start:{line:f.start.line,column:f.start.column},end:{line:$.end.line,column:$.end.column}}}return{type:"Program",body:q,strip:{},loc:_}}function d4(q,_,f,$){return Q_(q,f),{type:"PartialBlockStatement",name:q.path,params:q.params,hash:q.hash,program:_,openStrip:q.strip,closeStrip:f&&f.strip,loc:this.locInfo($)}}});var I$=Z((x4)=>{x4.__esModule=!0;x4.parseWithoutProcessing=g$;x4.parse=D4;function c4(q){if(q&&q.__esModule)return q;else{var _={};if(q!=null){for(var f in q)if(Object.prototype.hasOwnProperty.call(q,f))_[f]=q[f]}return _.default=q,_}}function E$(q){return q&&q.__esModule?q:{default:q}}var N4=b$(),qf=E$(N4),y4=y$(),R4=E$(y4),E4=R$(),g4=c4(E4),I4=s();x4.parser=qf.default;var Dq={};I4.extend(Dq,g4);function g$(q,_){if(q.type==="Program")return q;qf.default.yy=Dq,Dq.locInfo=function($){return new Dq.SourceLocation(_&&_.srcName,$)};var f=qf.default.parse(q);return f}function D4(q,_){var f=g$(q,_),$=new R4.default(_);return $.accept(f)}});var s$=Z(($v)=>{$v.__esModule=!0;$v.Compiler=_f;$v.precompile=_v;$v.compile=fv;function x$(q){return q&&q.__esModule?q:{default:q}}var F4=w8(),Yq=x$(F4),kq=s(),Q4=L_(),Tq=x$(Q4),qv=[].slice;function _f(){}_f.prototype={compiler:_f,equals:function(_){var f=this.opcodes.length;if(_.opcodes.length!==f)return!1;for(var $=0;$<f;$++){var P=this.opcodes[$],j=_.opcodes[$];if(P.opcode!==j.opcode||!L$(P.args,j.args))return!1}f=this.children.length;for(var $=0;$<f;$++)if(!this.children[$].equals(_.children[$]))return!1;return!0},guid:0,compile:function(_,f){return this.sourceNode=[],this.opcodes=[],this.children=[],this.options=f,this.stringParams=f.stringParams,this.trackIds=f.trackIds,f.blockParams=f.blockParams||[],f.knownHelpers=kq.extend(Object.create(null),{helperMissing:!0,blockHelperMissing:!0,each:!0,if:!0,unless:!0,with:!0,log:!0,lookup:!0},f.knownHelpers),this.accept(_)},compileProgram:function(_){var f=new this.compiler,$=f.compile(_,this.options),P=this.guid++;return this.usePartial=this.usePartial||$.usePartial,this.children[P]=$,this.useDepths=this.useDepths||$.useDepths,P},accept:function(_){if(!this[_.type])throw new Yq.default("Unknown type: "+_.type,_);this.sourceNode.unshift(_);var f=this[_.type](_);return this.sourceNode.shift(),f},Program:function(_){this.options.blockParams.unshift(_.blockParams);var f=_.body,$=f.length;for(var P=0;P<$;P++)this.accept(f[P]);return this.options.blockParams.shift(),this.isSimple=$===1,this.blockParams=_.blockParams?_.blockParams.length:0,this},BlockStatement:function(_){D$(_);var{program:f,inverse:$}=_;f=f&&this.compileProgram(f),$=$&&this.compileProgram($);var P=this.classifySexpr(_);if(P==="helper")this.helperSexpr(_,f,$);else if(P==="simple")this.simpleSexpr(_),this.opcode("pushProgram",f),this.opcode("pushProgram",$),this.opcode("emptyHash"),this.opcode("blockValue",_.path.original);else this.ambiguousSexpr(_,f,$),this.opcode("pushProgram",f),this.opcode("pushProgram",$),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue");this.opcode("append")},DecoratorBlock:function(_){var f=_.program&&this.compileProgram(_.program),$=this.setupFullMustacheParams(_,f,void 0),P=_.path;this.useDecorators=!0,this.opcode("registerDecorator",$.length,P.original)},PartialStatement:function(_){this.usePartial=!0;var f=_.program;if(f)f=this.compileProgram(_.program);var $=_.params;if($.length>1)throw new Yq.default("Unsupported number of partial arguments: "+$.length,_);else if(!$.length)if(this.options.explicitPartialContext)this.opcode("pushLiteral","undefined");else $.push({type:"PathExpression",parts:[],depth:0});var P=_.name.original,j=_.name.type==="SubExpression";if(j)this.accept(_.name);this.setupFullMustacheParams(_,f,void 0,!0);var K=_.indent||"";if(this.options.preventIndent&&K)this.opcode("appendContent",K),K="";this.opcode("invokePartial",j,P,K),this.opcode("append")},PartialBlockStatement:function(_){this.PartialStatement(_)},MustacheStatement:function(_){if(this.SubExpression(_),_.escaped&&!this.options.noEscape)this.opcode("appendEscaped");else this.opcode("append")},Decorator:function(_){this.DecoratorBlock(_)},ContentStatement:function(_){if(_.value)this.opcode("appendContent",_.value)},CommentStatement:function(){},SubExpression:function(_){D$(_);var f=this.classifySexpr(_);if(f==="simple")this.simpleSexpr(_);else if(f==="helper")this.helperSexpr(_);else this.ambiguousSexpr(_)},ambiguousSexpr:function(_,f,$){var P=_.path,j=P.parts[0],K=f!=null||$!=null;this.opcode("getContext",P.depth),this.opcode("pushProgram",f),this.opcode("pushProgram",$),P.strict=!0,this.accept(P),this.opcode("invokeAmbiguous",j,K)},simpleSexpr:function(_){var f=_.path;f.strict=!0,this.accept(f),this.opcode("resolvePossibleLambda")},helperSexpr:function(_,f,$){var P=this.setupFullMustacheParams(_,f,$),j=_.path,K=j.parts[0];if(this.options.knownHelpers[K])this.opcode("invokeKnownHelper",P.length,K);else if(this.options.knownHelpersOnly)throw new Yq.default("You specified knownHelpersOnly, but used the unknown helper "+K,_);else j.strict=!0,j.falsy=!0,this.accept(j),this.opcode("invokeHelper",P.length,j.original,Tq.default.helpers.simpleId(j))},PathExpression:function(_){this.addDepth(_.depth),this.opcode("getContext",_.depth);var f=_.parts[0],$=Tq.default.helpers.scopedId(_),P=!_.depth&&!$&&this.blockParamIndex(f);if(P)this.opcode("lookupBlockParam",P,_.parts);else if(!f)this.opcode("pushContext");else if(_.data)this.options.data=!0,this.opcode("lookupData",_.depth,_.parts,_.strict);else this.opcode("lookupOnContext",_.parts,_.falsy,_.strict,$)},StringLiteral:function(_){this.opcode("pushString",_.value)},NumberLiteral:function(_){this.opcode("pushLiteral",_.value)},BooleanLiteral:function(_){this.opcode("pushLiteral",_.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(_){var f=_.pairs,$=0,P=f.length;this.opcode("pushHash");for(;$<P;$++)this.pushParam(f[$].value);while($--)this.opcode("assignToHash",f[$].key);this.opcode("popHash")},opcode:function(_){this.opcodes.push({opcode:_,args:qv.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(_){if(!_)return;this.useDepths=!0},classifySexpr:function(_){var f=Tq.default.helpers.simpleId(_.path),$=f&&!!this.blockParamIndex(_.path.parts[0]),P=!$&&Tq.default.helpers.helperExpression(_),j=!$&&(P||f);if(j&&!P){var K=_.path.parts[0],v=this.options;if(v.knownHelpers[K])P=!0;else if(v.knownHelpersOnly)j=!1}if(P)return"helper";else if(j)return"ambiguous";else return"simple"},pushParams:function(_){for(var f=0,$=_.length;f<$;f++)this.pushParam(_[f])},pushParam:function(_){var f=_.value!=null?_.value:_.original||"";if(this.stringParams){if(f.replace)f=f.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".");if(_.depth)this.addDepth(_.depth);if(this.opcode("getContext",_.depth||0),this.opcode("pushStringParam",f,_.type),_.type==="SubExpression")this.accept(_)}else{if(this.trackIds){var $=void 0;if(_.parts&&!Tq.default.helpers.scopedId(_)&&!_.depth)$=this.blockParamIndex(_.parts[0]);if($){var P=_.parts.slice(1).join(".");this.opcode("pushId","BlockParam",$,P)}else{if(f=_.original||f,f.replace)f=f.replace(/^this(?:\.|$)/,"").replace(/^\.\//,"").replace(/^\.$/,"");this.opcode("pushId",_.type,f)}}this.accept(_)}},setupFullMustacheParams:function(_,f,$,P){var j=_.params;if(this.pushParams(j),this.opcode("pushProgram",f),this.opcode("pushProgram",$),_.hash)this.accept(_.hash);else this.opcode("emptyHash",P);return j},blockParamIndex:function(_){for(var f=0,$=this.options.blockParams.length;f<$;f++){var P=this.options.blockParams[f],j=P&&kq.indexOf(P,_);if(P&&j>=0)return[f,j]}}};function _v(q,_,f){if(q==null||typeof q!=="string"&&q.type!=="Program")throw new Yq.default("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+q);if(_=_||{},!("data"in _))_.data=!0;if(_.compat)_.useDepths=!0;var $=f.parse(q,_),P=new f.Compiler().compile($,_);return new f.JavaScriptCompiler().compile(P,_)}function fv(q,_,f){if(_===void 0)_={};if(q==null||typeof q!=="string"&&q.type!=="Program")throw new Yq.default("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+q);if(_=kq.extend({},_),!("data"in _))_.data=!0;if(_.compat)_.useDepths=!0;var $=void 0;function P(){var K=f.parse(q,_),v=new f.Compiler().compile(K,_),m=new f.JavaScriptCompiler().compile(v,_,void 0,!0);return f.template(m)}function j(K,v){if(!$)$=P();return $.call(this,K,v)}return j._setup=function(K){if(!$)$=P();return $._setup(K)},j._child=function(K,v,m,w){if(!$)$=P();return $._child(K,v,m,w)},j}function L$(q,_){if(q===_)return!0;if(kq.isArray(q)&&kq.isArray(_)&&q.length===_.length){for(var f=0;f<q.length;f++)if(!L$(q[f],_[f]))return!1;return!0}}function D$(q){if(!q.path.parts){var _=q.path;q.path={type:"PathExpression",data:!1,depth:0,parts:[_.original+""],original:_.original+"",loc:_.loc}}}});var U$=Z((wv)=>{var B$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");wv.encode=function(q){if(0<=q&&q<B$.length)return B$[q];throw TypeError("Must be between 0 and 63: "+q)};wv.decode=function(q){var _=65,f=90,$=97,P=122,j=48,K=57,v=43,m=47,w=26,r=52;if(_<=q&&q<=f)return q-_;if($<=q&&q<=P)return q-$+w;if(j<=q&&q<=K)return q-j+r;if(q==v)return 62;if(q==m)return 63;return-1}});var $f=Z((Yv)=>{var F$=U$(),ff=5,Q$=1<<ff,qK=Q$-1,_K=Q$;function rv(q){return q<0?(-q<<1)+1:(q<<1)+0}function Tv(q){var _=(q&1)===1,f=q>>1;return _?-f:f}Yv.encode=function(_){var f="",$,P=rv(_);do{if($=P&qK,P>>>=ff,P>0)$|=_K;f+=F$.encode($)}while(P>0);return f};Yv.decode=function(_,f,$){var P=_.length,j=0,K=0,v,m;do{if(f>=P)throw Error("Expected more digits in base 64 VLQ value.");if(m=F$.decode(_.charCodeAt(f++)),m===-1)throw Error("Invalid base64 digit: "+_.charAt(f-1));v=!!(m&_K),m&=qK,j=j+(m<<K),K+=ff}while(v);$.value=Tv(j),$.rest=f}});var s8=Z((dv)=>{function zv(q,_,f){if(_ in q)return q[_];else if(arguments.length===3)return f;else throw Error('"'+_+'" is a required argument.')}dv.getArg=zv;var fK=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,ev=/^data:.+\,.+$/;function hq(q){var _=q.match(fK);if(!_)return null;return{scheme:_[1],auth:_[2],host:_[3],port:_[4],path:_[5]}}dv.urlParse=hq;function x8(q){var _="";if(q.scheme)_+=q.scheme+":";if(_+="//",q.auth)_+=q.auth+"@";if(q.host)_+=q.host;if(q.port)_+=":"+q.port;if(q.path)_+=q.path;return _}dv.urlGenerate=x8;function Kf(q){var _=q,f=hq(q);if(f){if(!f.path)return q;_=f.path}var $=dv.isAbsolute(_),P=_.split(/\/+/);for(var j,K=0,v=P.length-1;v>=0;v--)if(j=P[v],j===".")P.splice(v,1);else if(j==="..")K++;else if(K>0)if(j==="")P.splice(v+1,K),K=0;else P.splice(v,2),K--;if(_=P.join("/"),_==="")_=$?"/":".";if(f)return f.path=_,x8(f);return _}dv.normalize=Kf;function $K(q,_){if(q==="")q=".";if(_==="")_=".";var f=hq(_),$=hq(q);if($)q=$.path||"/";if(f&&!f.scheme){if($)f.scheme=$.scheme;return x8(f)}if(f||_.match(ev))return _;if($&&!$.host&&!$.path)return $.host=_,x8($);var P=_.charAt(0)==="/"?_:Kf(q.replace(/\/+$/,"")+"/"+_);if($)return $.path=P,x8($);return P}dv.join=$K;dv.isAbsolute=function(q){return q.charAt(0)==="/"||fK.test(q)};function Hv(q,_){if(q==="")q=".";q=q.replace(/\/$/,"");var f=0;while(_.indexOf(q+"/")!==0){var $=q.lastIndexOf("/");if($<0)return _;if(q=q.slice(0,$),q.match(/^([^\/]+:\/)?\/*$/))return _;++f}return Array(f+1).join("../")+_.substr(q.length+1)}dv.relative=Hv;var KK=function(){var q=Object.create(null);return!("__proto__"in q)}();function PK(q){return q}function Wv(q){if(jK(q))return"$"+q;return q}dv.toSetString=KK?PK:Wv;function Jv(q){if(jK(q))return q.slice(1);return q}dv.fromSetString=KK?PK:Jv;function jK(q){if(!q)return!1;var _=q.length;if(_<9)return!1;if(q.charCodeAt(_-1)!==95||q.charCodeAt(_-2)!==95||q.charCodeAt(_-3)!==111||q.charCodeAt(_-4)!==116||q.charCodeAt(_-5)!==111||q.charCodeAt(_-6)!==114||q.charCodeAt(_-7)!==112||q.charCodeAt(_-8)!==95||q.charCodeAt(_-9)!==95)return!1;for(var f=_-10;f>=0;f--)if(q.charCodeAt(f)!==36)return!1;return!0}function Zv(q,_,f){var $=L8(q.source,_.source);if($!==0)return $;if($=q.originalLine-_.originalLine,$!==0)return $;if($=q.originalColumn-_.originalColumn,$!==0||f)return $;if($=q.generatedColumn-_.generatedColumn,$!==0)return $;if($=q.generatedLine-_.generatedLine,$!==0)return $;return L8(q.name,_.name)}dv.compareByOriginalPositions=Zv;function nv(q,_,f){var $=q.generatedLine-_.generatedLine;if($!==0)return $;if($=q.generatedColumn-_.generatedColumn,$!==0||f)return $;if($=L8(q.source,_.source),$!==0)return $;if($=q.originalLine-_.originalLine,$!==0)return $;if($=q.originalColumn-_.originalColumn,$!==0)return $;return L8(q.name,_.name)}dv.compareByGeneratedPositionsDeflated=nv;function L8(q,_){if(q===_)return 0;if(q===null)return 1;if(_===null)return-1;if(q>_)return 1;return-1}function ov(q,_){var f=q.generatedLine-_.generatedLine;if(f!==0)return f;if(f=q.generatedColumn-_.generatedColumn,f!==0)return f;if(f=L8(q.source,_.source),f!==0)return f;if(f=q.originalLine-_.originalLine,f!==0)return f;if(f=q.originalColumn-_.originalColumn,f!==0)return f;return L8(q.name,_.name)}dv.compareByGeneratedPositionsInflated=ov;function pv(q){return JSON.parse(q.replace(/^\)]}'[^\n]*\n/,""))}dv.parseSourceMapInput=pv;function uv(q,_,f){if(_=_||"",q){if(q[q.length-1]!=="/"&&_[0]!=="/")q+="/";_=q+_}if(f){var $=hq(f);if(!$)throw Error("sourceMapURL could not be parsed");if($.path){var P=$.path.lastIndexOf("/");if(P>=0)$.path=$.path.substring(0,P+1)}_=$K(x8($),_)}return Kf(_)}dv.computeSourceURL=uv});var vf=Z((yv)=>{var Pf=s8(),jf=Object.prototype.hasOwnProperty,N8=typeof Map<"u";function u8(){this._array=[],this._set=N8?new Map:Object.create(null)}u8.fromArray=function(_,f){var $=new u8;for(var P=0,j=_.length;P<j;P++)$.add(_[P],f);return $};u8.prototype.size=function(){return N8?this._set.size:Object.getOwnPropertyNames(this._set).length};u8.prototype.add=function(_,f){var $=N8?_:Pf.toSetString(_),P=N8?this.has(_):jf.call(this._set,$),j=this._array.length;if(!P||f)this._array.push(_);if(!P)if(N8)this._set.set(_,j);else this._set[$]=j};u8.prototype.has=function(_){if(N8)return this._set.has(_);else{var f=Pf.toSetString(_);return jf.call(this._set,f)}};u8.prototype.indexOf=function(_){if(N8){var f=this._set.get(_);if(f>=0)return f}else{var $=Pf.toSetString(_);if(jf.call(this._set,$))return this._set[$]}throw Error('"'+_+'" is not in the set.')};u8.prototype.at=function(_){if(_>=0&&_<this._array.length)return this._array[_];throw Error("No element indexed by "+_)};u8.prototype.toArray=function(){return this._array.slice()};yv.ArraySet=u8});var wK=Z((gv)=>{var vK=s8();function Ev(q,_){var f=q.generatedLine,$=_.generatedLine,P=q.generatedColumn,j=_.generatedColumn;return $>f||$==f&&j>=P||vK.compareByGeneratedPositionsInflated(q,_)<=0}function xq(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}xq.prototype.unsortedForEach=function(_,f){this._array.forEach(_,f)};xq.prototype.add=function(_){if(Ev(this._last,_))this._last=_,this._array.push(_);else this._sorted=!1,this._array.push(_)};xq.prototype.toArray=function(){if(!this._sorted)this._array.sort(vK.compareByGeneratedPositionsInflated),this._sorted=!0;return this._array};gv.MappingList=xq});var wf=Z((xv)=>{var zq=$f(),N=s8(),Lq=vf().ArraySet,Dv=wK().MappingList;function m8(q){if(!q)q={};this._file=N.getArg(q,"file",null),this._sourceRoot=N.getArg(q,"sourceRoot",null),this._skipValidation=N.getArg(q,"skipValidation",!1),this._sources=new Lq,this._names=new Lq,this._mappings=new Dv,this._sourcesContents=null}m8.prototype._version=3;m8.fromSourceMap=function(_){var f=_.sourceRoot,$=new m8({file:_.file,sourceRoot:f});return _.eachMapping(function(P){var j={generated:{line:P.generatedLine,column:P.generatedColumn}};if(P.source!=null){if(j.source=P.source,f!=null)j.source=N.relative(f,j.source);if(j.original={line:P.originalLine,column:P.originalColumn},P.name!=null)j.name=P.name}$.addMapping(j)}),_.sources.forEach(function(P){var j=P;if(f!==null)j=N.relative(f,P);if(!$._sources.has(j))$._sources.add(j);var K=_.sourceContentFor(P);if(K!=null)$.setSourceContent(P,K)}),$};m8.prototype.addMapping=function(_){var f=N.getArg(_,"generated"),$=N.getArg(_,"original",null),P=N.getArg(_,"source",null),j=N.getArg(_,"name",null);if(!this._skipValidation)this._validateMapping(f,$,P,j);if(P!=null){if(P=String(P),!this._sources.has(P))this._sources.add(P)}if(j!=null){if(j=String(j),!this._names.has(j))this._names.add(j)}this._mappings.add({generatedLine:f.line,generatedColumn:f.column,originalLine:$!=null&&$.line,originalColumn:$!=null&&$.column,source:P,name:j})};m8.prototype.setSourceContent=function(_,f){var $=_;if(this._sourceRoot!=null)$=N.relative(this._sourceRoot,$);if(f!=null){if(!this._sourcesContents)this._sourcesContents=Object.create(null);this._sourcesContents[N.toSetString($)]=f}else if(this._sourcesContents){if(delete this._sourcesContents[N.toSetString($)],Object.keys(this._sourcesContents).length===0)this._sourcesContents=null}};m8.prototype.applySourceMap=function(_,f,$){var P=f;if(f==null){if(_.file==null)throw Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);P=_.file}var j=this._sourceRoot;if(j!=null)P=N.relative(j,P);var K=new Lq,v=new Lq;this._mappings.unsortedForEach(function(m){if(m.source===P&&m.originalLine!=null){var w=_.originalPositionFor({line:m.originalLine,column:m.originalColumn});if(w.source!=null){if(m.source=w.source,$!=null)m.source=N.join($,m.source);if(j!=null)m.source=N.relative(j,m.source);if(m.originalLine=w.line,m.originalColumn=w.column,w.name!=null)m.name=w.name}}var r=m.source;if(r!=null&&!K.has(r))K.add(r);var O=m.name;if(O!=null&&!v.has(O))v.add(O)},this),this._sources=K,this._names=v,_.sources.forEach(function(m){var w=_.sourceContentFor(m);if(w!=null){if($!=null)m=N.join($,m);if(j!=null)m=N.relative(j,m);this.setSourceContent(m,w)}},this)};m8.prototype._validateMapping=function(_,f,$,P){if(f&&typeof f.line!=="number"&&typeof f.column!=="number")throw Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(_&&"line"in _&&"column"in _&&_.line>0&&_.column>=0&&!f&&!$&&!P)return;else if(_&&"line"in _&&"column"in _&&f&&"line"in f&&"column"in f&&_.line>0&&_.column>=0&&f.line>0&&f.column>=0&&$)return;else throw Error("Invalid mapping: "+JSON.stringify({generated:_,source:$,original:f,name:P}))};m8.prototype._serializeMappings=function(){var _=0,f=1,$=0,P=0,j=0,K=0,v="",m,w,r,O,T=this._mappings.toArray();for(var h=0,z=T.length;h<z;h++){if(w=T[h],m="",w.generatedLine!==f){_=0;while(w.generatedLine!==f)m+=";",f++}else if(h>0){if(!N.compareByGeneratedPositionsInflated(w,T[h-1]))continue;m+=","}if(m+=zq.encode(w.generatedColumn-_),_=w.generatedColumn,w.source!=null){if(O=this._sources.indexOf(w.source),m+=zq.encode(O-K),K=O,m+=zq.encode(w.originalLine-1-P),P=w.originalLine-1,m+=zq.encode(w.originalColumn-$),$=w.originalColumn,w.name!=null)r=this._names.indexOf(w.name),m+=zq.encode(r-j),j=r}v+=m}return v};m8.prototype._generateSourcesContent=function(_,f){return _.map(function($){if(!this._sourcesContents)return null;if(f!=null)$=N.relative(f,$);var P=N.toSetString($);return Object.prototype.hasOwnProperty.call(this._sourcesContents,P)?this._sourcesContents[P]:null},this)};m8.prototype.toJSON=function(){var _={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};if(this._file!=null)_.file=this._file;if(this._sourceRoot!=null)_.sourceRoot=this._sourceRoot;if(this._sourcesContents)_.sourcesContent=this._generateSourcesContent(_.sources,_.sourceRoot);return _};m8.prototype.toString=function(){return JSON.stringify(this.toJSON())};xv.SourceMapGenerator=m8});var OK=Z((sv)=>{sv.GREATEST_LOWER_BOUND=1;sv.LEAST_UPPER_BOUND=2;function mf(q,_,f,$,P,j){var K=Math.floor((_-q)/2)+q,v=P(f,$[K],!0);if(v===0)return K;else if(v>0){if(_-K>1)return mf(K,_,f,$,P,j);if(j==sv.LEAST_UPPER_BOUND)return _<$.length?_:-1;else return K}else{if(K-q>1)return mf(q,K,f,$,P,j);if(j==sv.LEAST_UPPER_BOUND)return K;else return q<0?-1:q}}sv.search=function(_,f,$,P){if(f.length===0)return-1;var j=mf(-1,f.length,_,f,$,P||sv.GREATEST_LOWER_BOUND);if(j<0)return-1;while(j-1>=0){if($(f[j],f[j-1],!0)!==0)break;--j}return j}});var rK=Z((Fv)=>{function rf(q,_,f){var $=q[_];q[_]=q[f],q[f]=$}function Uv(q,_){return Math.round(q+Math.random()*(_-q))}function Tf(q,_,f,$){if(f<$){var P=Uv(f,$),j=f-1;rf(q,P,$);var K=q[$];for(var v=f;v<$;v++)if(_(q[v],K)<=0)j+=1,rf(q,j,v);rf(q,j+1,v);var m=j+1;Tf(q,_,f,m-1),Tf(q,_,m+1,$)}}Fv.quickSort=function(q,_){Tf(q,_,0,q.length-1)}});var YK=Z((_1)=>{var H=s8(),Yf=OK(),B8=vf().ArraySet,q1=$f(),eq=rK().quickSort;function i(q,_){var f=q;if(typeof q==="string")f=H.parseSourceMapInput(q);return f.sections!=null?new Y8(f,_):new g(f,_)}i.fromSourceMap=function(q,_){return g.fromSourceMap(q,_)};i.prototype._version=3;i.prototype.__generatedMappings=null;Object.defineProperty(i.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){if(!this.__generatedMappings)this._parseMappings(this._mappings,this.sourceRoot);return this.__generatedMappings}});i.prototype.__originalMappings=null;Object.defineProperty(i.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){if(!this.__originalMappings)this._parseMappings(this._mappings,this.sourceRoot);return this.__originalMappings}});i.prototype._charIsMappingSeparator=function(_,f){var $=_.charAt(f);return $===";"||$===","};i.prototype._parseMappings=function(_,f){throw Error("Subclasses must implement _parseMappings")};i.GENERATED_ORDER=1;i.ORIGINAL_ORDER=2;i.GREATEST_LOWER_BOUND=1;i.LEAST_UPPER_BOUND=2;i.prototype.eachMapping=function(_,f,$){var P=f||null,j=$||i.GENERATED_ORDER,K;switch(j){case i.GENERATED_ORDER:K=this._generatedMappings;break;case i.ORIGINAL_ORDER:K=this._originalMappings;break;default:throw Error("Unknown order of iteration.")}var v=this.sourceRoot;K.map(function(m){var w=m.source===null?null:this._sources.at(m.source);return w=H.computeSourceURL(v,w,this._sourceMapURL),{source:w,generatedLine:m.generatedLine,generatedColumn:m.generatedColumn,originalLine:m.originalLine,originalColumn:m.originalColumn,name:m.name===null?null:this._names.at(m.name)}},this).forEach(_,P)};i.prototype.allGeneratedPositionsFor=function(_){var f=H.getArg(_,"line"),$={source:H.getArg(_,"source"),originalLine:f,originalColumn:H.getArg(_,"column",0)};if($.source=this._findSourceIndex($.source),$.source<0)return[];var P=[],j=this._findMapping($,this._originalMappings,"originalLine","originalColumn",H.compareByOriginalPositions,Yf.LEAST_UPPER_BOUND);if(j>=0){var K=this._originalMappings[j];if(_.column===void 0){var v=K.originalLine;while(K&&K.originalLine===v)P.push({line:H.getArg(K,"generatedLine",null),column:H.getArg(K,"generatedColumn",null),lastColumn:H.getArg(K,"lastGeneratedColumn",null)}),K=this._originalMappings[++j]}else{var m=K.originalColumn;while(K&&K.originalLine===f&&K.originalColumn==m)P.push({line:H.getArg(K,"generatedLine",null),column:H.getArg(K,"generatedColumn",null),lastColumn:H.getArg(K,"lastGeneratedColumn",null)}),K=this._originalMappings[++j]}}return P};_1.SourceMapConsumer=i;function g(q,_){var f=q;if(typeof q==="string")f=H.parseSourceMapInput(q);var $=H.getArg(f,"version"),P=H.getArg(f,"sources"),j=H.getArg(f,"names",[]),K=H.getArg(f,"sourceRoot",null),v=H.getArg(f,"sourcesContent",null),m=H.getArg(f,"mappings"),w=H.getArg(f,"file",null);if($!=this._version)throw Error("Unsupported version: "+$);if(K)K=H.normalize(K);P=P.map(String).map(H.normalize).map(function(r){return K&&H.isAbsolute(K)&&H.isAbsolute(r)?H.relative(K,r):r}),this._names=B8.fromArray(j.map(String),!0),this._sources=B8.fromArray(P,!0),this._absoluteSources=this._sources.toArray().map(function(r){return H.computeSourceURL(K,r,_)}),this.sourceRoot=K,this.sourcesContent=v,this._mappings=m,this._sourceMapURL=_,this.file=w}g.prototype=Object.create(i.prototype);g.prototype.consumer=i;g.prototype._findSourceIndex=function(q){var _=q;if(this.sourceRoot!=null)_=H.relative(this.sourceRoot,_);if(this._sources.has(_))return this._sources.indexOf(_);var f;for(f=0;f<this._absoluteSources.length;++f)if(this._absoluteSources[f]==q)return f;return-1};g.fromSourceMap=function(_,f){var $=Object.create(g.prototype),P=$._names=B8.fromArray(_._names.toArray(),!0),j=$._sources=B8.fromArray(_._sources.toArray(),!0);$.sourceRoot=_._sourceRoot,$.sourcesContent=_._generateSourcesContent($._sources.toArray(),$.sourceRoot),$.file=_._file,$._sourceMapURL=f,$._absoluteSources=$._sources.toArray().map(function(h){return H.computeSourceURL($.sourceRoot,h,f)});var K=_._mappings.toArray().slice(),v=$.__generatedMappings=[],m=$.__originalMappings=[];for(var w=0,r=K.length;w<r;w++){var O=K[w],T=new TK;if(T.generatedLine=O.generatedLine,T.generatedColumn=O.generatedColumn,O.source){if(T.source=j.indexOf(O.source),T.originalLine=O.originalLine,T.originalColumn=O.originalColumn,O.name)T.name=P.indexOf(O.name);m.push(T)}v.push(T)}return eq($.__originalMappings,H.compareByOriginalPositions),$};g.prototype._version=3;Object.defineProperty(g.prototype,"sources",{get:function(){return this._absoluteSources.slice()}});function TK(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}g.prototype._parseMappings=function(_,f){var $=1,P=0,j=0,K=0,v=0,m=0,w=_.length,r=0,O={},T={},h=[],z=[],W,n,A,R,B;while(r<w)if(_.charAt(r)===";")$++,r++,P=0;else if(_.charAt(r)===",")r++;else{W=new TK,W.generatedLine=$;for(R=r;R<w;R++)if(this._charIsMappingSeparator(_,R))break;if(n=_.slice(r,R),A=O[n],A)r+=n.length;else{A=[];while(r<R)q1.decode(_,r,T),B=T.value,r=T.rest,A.push(B);if(A.length===2)throw Error("Found a source, but no line and column");if(A.length===3)throw Error("Found a source and line, but no column");O[n]=A}if(W.generatedColumn=P+A[0],P=W.generatedColumn,A.length>1){if(W.source=v+A[1],v+=A[1],W.originalLine=j+A[2],j=W.originalLine,W.originalLine+=1,W.originalColumn=K+A[3],K=W.originalColumn,A.length>4)W.name=m+A[4],m+=A[4]}if(z.push(W),typeof W.originalLine==="number")h.push(W)}eq(z,H.compareByGeneratedPositionsDeflated),this.__generatedMappings=z,eq(h,H.compareByOriginalPositions),this.__originalMappings=h};g.prototype._findMapping=function(_,f,$,P,j,K){if(_[$]<=0)throw TypeError("Line must be greater than or equal to 1, got "+_[$]);if(_[P]<0)throw TypeError("Column must be greater than or equal to 0, got "+_[P]);return Yf.search(_,f,j,K)};g.prototype.computeColumnSpans=function(){for(var _=0;_<this._generatedMappings.length;++_){var f=this._generatedMappings[_];if(_+1<this._generatedMappings.length){var $=this._generatedMappings[_+1];if(f.generatedLine===$.generatedLine){f.lastGeneratedColumn=$.generatedColumn-1;continue}}f.lastGeneratedColumn=1/0}};g.prototype.originalPositionFor=function(_){var f={generatedLine:H.getArg(_,"line"),generatedColumn:H.getArg(_,"column")},$=this._findMapping(f,this._generatedMappings,"generatedLine","generatedColumn",H.compareByGeneratedPositionsDeflated,H.getArg(_,"bias",i.GREATEST_LOWER_BOUND));if($>=0){var P=this._generatedMappings[$];if(P.generatedLine===f.generatedLine){var j=H.getArg(P,"source",null);if(j!==null)j=this._sources.at(j),j=H.computeSourceURL(this.sourceRoot,j,this._sourceMapURL);var K=H.getArg(P,"name",null);if(K!==null)K=this._names.at(K);return{source:j,line:H.getArg(P,"originalLine",null),column:H.getArg(P,"originalColumn",null),name:K}}}return{source:null,line:null,column:null,name:null}};g.prototype.hasContentsOfAllSources=function(){if(!this.sourcesContent)return!1;return this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(_){return _==null})};g.prototype.sourceContentFor=function(_,f){if(!this.sourcesContent)return null;var $=this._findSourceIndex(_);if($>=0)return this.sourcesContent[$];var P=_;if(this.sourceRoot!=null)P=H.relative(this.sourceRoot,P);var j;if(this.sourceRoot!=null&&(j=H.urlParse(this.sourceRoot))){var K=P.replace(/^file:\/\//,"");if(j.scheme=="file"&&this._sources.has(K))return this.sourcesContent[this._sources.indexOf(K)];if((!j.path||j.path=="/")&&this._sources.has("/"+P))return this.sourcesContent[this._sources.indexOf("/"+P)]}if(f)return null;else throw Error('"'+P+'" is not in the SourceMap.')};g.prototype.generatedPositionFor=function(_){var f=H.getArg(_,"source");if(f=this._findSourceIndex(f),f<0)return{line:null,column:null,lastColumn:null};var $={source:f,originalLine:H.getArg(_,"line"),originalColumn:H.getArg(_,"column")},P=this._findMapping($,this._originalMappings,"originalLine","originalColumn",H.compareByOriginalPositions,H.getArg(_,"bias",i.GREATEST_LOWER_BOUND));if(P>=0){var j=this._originalMappings[P];if(j.source===$.source)return{line:H.getArg(j,"generatedLine",null),column:H.getArg(j,"generatedColumn",null),lastColumn:H.getArg(j,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}};_1.BasicSourceMapConsumer=g;function Y8(q,_){var f=q;if(typeof q==="string")f=H.parseSourceMapInput(q);var $=H.getArg(f,"version"),P=H.getArg(f,"sections");if($!=this._version)throw Error("Unsupported version: "+$);this._sources=new B8,this._names=new B8;var j={line:-1,column:0};this._sections=P.map(function(K){if(K.url)throw Error("Support for url field in sections not implemented.");var v=H.getArg(K,"offset"),m=H.getArg(v,"line"),w=H.getArg(v,"column");if(m<j.line||m===j.line&&w<j.column)throw Error("Section offsets must be ordered and non-overlapping.");return j=v,{generatedOffset:{generatedLine:m+1,generatedColumn:w+1},consumer:new i(H.getArg(K,"map"),_)}})}Y8.prototype=Object.create(i.prototype);Y8.prototype.constructor=i;Y8.prototype._version=3;Object.defineProperty(Y8.prototype,"sources",{get:function(){var q=[];for(var _=0;_<this._sections.length;_++)for(var f=0;f<this._sections[_].consumer.sources.length;f++)q.push(this._sections[_].consumer.sources[f]);return q}});Y8.prototype.originalPositionFor=function(_){var f={generatedLine:H.getArg(_,"line"),generatedColumn:H.getArg(_,"column")},$=Yf.search(f,this._sections,function(j,K){var v=j.generatedLine-K.generatedOffset.generatedLine;if(v)return v;return j.generatedColumn-K.generatedOffset.generatedColumn}),P=this._sections[$];if(!P)return{source:null,line:null,column:null,name:null};return P.consumer.originalPositionFor({line:f.generatedLine-(P.generatedOffset.generatedLine-1),column:f.generatedColumn-(P.generatedOffset.generatedLine===f.generatedLine?P.generatedOffset.generatedColumn-1:0),bias:_.bias})};Y8.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(_){return _.consumer.hasContentsOfAllSources()})};Y8.prototype.sourceContentFor=function(_,f){for(var $=0;$<this._sections.length;$++){var P=this._sections[$],j=P.consumer.sourceContentFor(_,!0);if(j)return j}if(f)return null;else throw Error('"'+_+'" is not in the SourceMap.')};Y8.prototype.generatedPositionFor=function(_){for(var f=0;f<this._sections.length;f++){var $=this._sections[f];if($.consumer._findSourceIndex(H.getArg(_,"source"))===-1)continue;var P=$.consumer.generatedPositionFor(_);if(P){var j={line:P.line+($.generatedOffset.generatedLine-1),column:P.column+($.generatedOffset.generatedLine===P.line?$.generatedOffset.generatedColumn-1:0)};return j}}return{line:null,column:null}};Y8.prototype._parseMappings=function(_,f){this.__generatedMappings=[],this.__originalMappings=[];for(var $=0;$<this._sections.length;$++){var P=this._sections[$],j=P.consumer._generatedMappings;for(var K=0;K<j.length;K++){var v=j[K],m=P.consumer._sources.at(v.source);m=H.computeSourceURL(P.consumer.sourceRoot,m,this._sourceMapURL),this._sources.add(m),m=this._sources.indexOf(m);var w=null;if(v.name)w=P.consumer._names.at(v.name),this._names.add(w),w=this._names.indexOf(w);var r={source:m,generatedLine:v.generatedLine+(P.generatedOffset.generatedLine-1),generatedColumn:v.generatedColumn+(P.generatedOffset.generatedLine===v.generatedLine?P.generatedOffset.generatedColumn-1:0),originalLine:v.originalLine,originalColumn:v.originalColumn,name:w};if(this.__generatedMappings.push(r),typeof r.originalLine==="number")this.__originalMappings.push(r)}}eq(this.__generatedMappings,H.compareByGeneratedPositionsDeflated),eq(this.__originalMappings,H.compareByOriginalPositions)};_1.IndexedSourceMapConsumer=Y8});var kK=Z((w1)=>{var P1=wf().SourceMapGenerator,sq=s8(),j1=/(\r?\n)/,v1=10,U8="$$$isSourceNode$$$";function $8(q,_,f,$,P){if(this.children=[],this.sourceContents={},this.line=q==null?null:q,this.column=_==null?null:_,this.source=f==null?null:f,this.name=P==null?null:P,this[U8]=!0,$!=null)this.add($)}$8.fromStringWithSourceMap=function(_,f,$){var P=new $8,j=_.split(j1),K=0,v=function(){var T=z(),h=z()||"";return T+h;function z(){return K<j.length?j[K++]:void 0}},m=1,w=0,r=null;if(f.eachMapping(function(T){if(r!==null)if(m<T.generatedLine)O(r,v()),m++,w=0;else{var h=j[K]||"",z=h.substr(0,T.generatedColumn-w);j[K]=h.substr(T.generatedColumn-w),w=T.generatedColumn,O(r,z),r=T;return}while(m<T.generatedLine)P.add(v()),m++;if(w<T.generatedColumn){var h=j[K]||"";P.add(h.substr(0,T.generatedColumn)),j[K]=h.substr(T.generatedColumn),w=T.generatedColumn}r=T},this),K<j.length){if(r)O(r,v());P.add(j.splice(K).join(""))}return f.sources.forEach(function(T){var h=f.sourceContentFor(T);if(h!=null){if($!=null)T=sq.join($,T);P.setSourceContent(T,h)}}),P;function O(T,h){if(T===null||T.source===void 0)P.add(h);else{var z=$?sq.join($,T.source):T.source;P.add(new $8(T.originalLine,T.originalColumn,z,h,T.name))}}};$8.prototype.add=function(_){if(Array.isArray(_))_.forEach(function(f){this.add(f)},this);else if(_[U8]||typeof _==="string"){if(_)this.children.push(_)}else throw TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+_);return this};$8.prototype.prepend=function(_){if(Array.isArray(_))for(var f=_.length-1;f>=0;f--)this.prepend(_[f]);else if(_[U8]||typeof _==="string")this.children.unshift(_);else throw TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+_);return this};$8.prototype.walk=function(_){var f;for(var $=0,P=this.children.length;$<P;$++)if(f=this.children[$],f[U8])f.walk(_);else if(f!=="")_(f,{source:this.source,line:this.line,column:this.column,name:this.name})};$8.prototype.join=function(_){var f,$,P=this.children.length;if(P>0){f=[];for($=0;$<P-1;$++)f.push(this.children[$]),f.push(_);f.push(this.children[$]),this.children=f}return this};$8.prototype.replaceRight=function(_,f){var $=this.children[this.children.length-1];if($[U8])$.replaceRight(_,f);else if(typeof $==="string")this.children[this.children.length-1]=$.replace(_,f);else this.children.push("".replace(_,f));return this};$8.prototype.setSourceContent=function(_,f){this.sourceContents[sq.toSetString(_)]=f};$8.prototype.walkSourceContents=function(_){for(var f=0,$=this.children.length;f<$;f++)if(this.children[f][U8])this.children[f].walkSourceContents(_);var P=Object.keys(this.sourceContents);for(var f=0,$=P.length;f<$;f++)_(sq.fromSetString(P[f]),this.sourceContents[P[f]])};$8.prototype.toString=function(){var _="";return this.walk(function(f){_+=f}),_};$8.prototype.toStringWithSourceMap=function(_){var f={code:"",line:1,column:0},$=new P1(_),P=!1,j=null,K=null,v=null,m=null;return this.walk(function(w,r){if(f.code+=w,r.source!==null&&r.line!==null&&r.column!==null){if(j!==r.source||K!==r.line||v!==r.column||m!==r.name)$.addMapping({source:r.source,original:{line:r.line,column:r.column},generated:{line:f.line,column:f.column},name:r.name});j=r.source,K=r.line,v=r.column,m=r.name,P=!0}else if(P)$.addMapping({generated:{line:f.line,column:f.column}}),j=null,P=!1;for(var O=0,T=w.length;O<T;O++)if(w.charCodeAt(O)===v1){if(f.line++,f.column=0,O+1===T)j=null,P=!1;else if(P)$.addMapping({source:r.source,original:{line:r.line,column:r.column},generated:{line:f.line,column:f.column},name:r.name})}else f.column++}),this.walkSourceContents(function(w,r){$.setSourceContent(w,r)}),{code:f.code,map:$}};w1.SourceNode=$8});var hK=Z((O1)=>{O1.SourceMapGenerator=wf().SourceMapGenerator;O1.SourceMapConsumer=YK().SourceMapConsumer;O1.SourceNode=kK().SourceNode});var WK=Z((eK,HK)=>{eK.__esModule=!0;var hf=s(),y8=void 0;try{if(typeof define!=="function"||!define.amd)zf=hK(),y8=zf.SourceNode}catch(q){}var zf;if(!y8)y8=function(q,_,f,$){if(this.src="",$)this.add($)},y8.prototype={add:function(_){if(hf.isArray(_))_=_.join("");this.src+=_},prepend:function(_){if(hf.isArray(_))_=_.join("");this.src=_+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}};function kf(q,_,f){if(hf.isArray(q)){var $=[];for(var P=0,j=q.length;P<j;P++)$.push(_.wrap(q[P],f));return $}else if(typeof q==="boolean"||typeof q==="number")return q+"";return q}function zK(q){this.srcFile=q,this.source=[]}zK.prototype={isEmpty:function(){return!this.source.length},prepend:function(_,f){this.source.unshift(this.wrap(_,f))},push:function(_,f){this.source.push(this.wrap(_,f))},merge:function(){var _=this.empty();return this.each(function(f){_.add([" ",f,`
|
|
11
|
+
`])}),_},each:function(_){for(var f=0,$=this.source.length;f<$;f++)_(this.source[f])},empty:function(){var _=this.currentLocation||{start:{}};return new y8(_.start.line,_.start.column,this.srcFile)},wrap:function(_){var f=arguments.length<=1||arguments[1]===void 0?this.currentLocation||{start:{}}:arguments[1];if(_ instanceof y8)return _;return _=kf(_,this,f),new y8(f.start.line,f.start.column,this.srcFile,_)},functionCall:function(_,f,$){return $=this.generateList($),this.wrap([_,f?"."+f+"(":"(",$,")"])},quotedString:function(_){return'"'+(_+"").replace(/\\/g,"\\\\").replace(/"/g,"\\\"").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(_){var f=this,$=[];Object.keys(_).forEach(function(j){var K=kf(_[j],f);if(K!=="undefined")$.push([f.quotedString(j),":",K])});var P=this.generateList($);return P.prepend("{"),P.add("}"),P},generateList:function(_){var f=this.empty();for(var $=0,P=_.length;$<P;$++){if($)f.add(",");f.add(kf(_[$],this))}return f},generateArray:function(_){var f=this.generateList(_);return f.prepend("["),f.add("]"),f}};eK.default=zK;HK.exports=eK.default});var uK=Z((oK,pK)=>{oK.__esModule=!0;function nK(q){return q&&q.__esModule?q:{default:q}}var JK=yq(),z1=w8(),ef=nK(z1),e1=s(),H1=WK(),ZK=nK(H1);function F8(q){this.value=q}function Q8(){}Q8.prototype={nameLookup:function(_,f){return this.internalNameLookup(_,f)},depthedLookup:function(_){return[this.aliasable("container.lookup"),"(depths, ",JSON.stringify(_),")"]},compilerInfo:function(){var _=JK.COMPILER_REVISION,f=JK.REVISION_CHANGES[_];return[_,f]},appendToBuffer:function(_,f,$){if(!e1.isArray(_))_=[_];if(_=this.source.wrap(_,f),this.environment.isSimple)return["return ",_,";"];else if($)return["buffer += ",_,";"];else return _.appendToBuffer=!0,_},initializeBuffer:function(){return this.quotedString("")},internalNameLookup:function(_,f){return this.lookupPropertyFunctionIsUsed=!0,["lookupProperty(",_,",",JSON.stringify(f),")"]},lookupPropertyFunctionIsUsed:!1,compile:function(_,f,$,P){this.environment=_,this.options=f,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!P,this.name=this.environment.name,this.isChild=!!$,this.context=$||{decorators:[],programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(_,f),this.useDepths=this.useDepths||_.useDepths||_.useDecorators||this.options.compat,this.useBlockParams=this.useBlockParams||_.useBlockParams;var j=_.opcodes,K=void 0,v=void 0,m=void 0,w=void 0;for(m=0,w=j.length;m<w;m++)K=j[m],this.source.currentLocation=K.loc,v=v||K.loc,this[K.opcode].apply(this,K.args);if(this.source.currentLocation=v,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new ef.default("Compile completed with content left on stack");if(!this.decorators.isEmpty())if(this.useDecorators=!0,this.decorators.prepend(["var decorators = container.decorators, ",this.lookupPropertyFunctionVarDeclaration(),`;
|
|
12
12
|
`]),this.decorators.push("return fn;"),P)this.decorators=Function.apply(this,["fn","props","container","depth0","data","blockParams","depths",this.decorators.merge()]);else this.decorators.prepend(`function(fn, props, container, depth0, data, blockParams, depths) {
|
|
13
13
|
`),this.decorators.push(`}
|
|
14
|
-
`),this.decorators=this.decorators.merge();else this.decorators=void 0;var
|
|
14
|
+
`),this.decorators=this.decorators.merge();else this.decorators=void 0;var r=this.createFunctionContext(P);if(!this.isChild){var O={compiler:this.compilerInfo(),main:r};if(this.decorators)O.main_d=this.decorators,O.useDecorators=!0;var T=this.context,h=T.programs,z=T.decorators;for(m=0,w=h.length;m<w;m++)if(h[m]){if(O[m]=h[m],z[m])O[m+"_d"]=z[m],O.useDecorators=!0}if(this.environment.usePartial)O.usePartial=!0;if(this.options.data)O.useData=!0;if(this.useDepths)O.useDepths=!0;if(this.useBlockParams)O.useBlockParams=!0;if(this.options.compat)O.compat=!0;if(!P)if(O.compiler=JSON.stringify(O.compiler),this.source.currentLocation={start:{line:1,column:0}},O=this.objectLiteral(O),f.srcName)O=O.toStringWithSourceMap({file:f.destName}),O.map=O.map&&O.map.toString();else O=O.toString();else O.compilerOptions=this.options;return O}else return r},preamble:function(){this.lastContext=0,this.source=new ZK.default(this.options.srcName),this.decorators=new ZK.default(this.options.srcName)},createFunctionContext:function(_){var f=this,$="",P=this.stackVars.concat(this.registers.list);if(P.length>0)$+=", "+P.join(", ");var j=0;if(Object.keys(this.aliases).forEach(function(m){var w=f.aliases[m];if(w.children&&w.referenceCount>1)$+=", alias"+ ++j+"="+m,w.children[0]="alias"+j}),this.lookupPropertyFunctionIsUsed)$+=", "+this.lookupPropertyFunctionVarDeclaration();var K=["container","depth0","helpers","partials","data"];if(this.useBlockParams||this.useDepths)K.push("blockParams");if(this.useDepths)K.push("depths");var v=this.mergeSource($);if(_)return K.push(v),Function.apply(this,K);else return this.source.wrap(["function(",K.join(","),`) {
|
|
15
15
|
`,v,"}"])},mergeSource:function(_){var f=this.environment.isSimple,$=!this.forceBuffer,P=void 0,j=void 0,K=void 0,v=void 0;if(this.source.each(function(m){if(m.appendToBuffer){if(K)m.prepend(" + ");else K=m;v=m}else{if(K){if(!j)P=!0;else K.prepend("buffer += ");v.add(";"),K=v=void 0}if(j=!0,!f)$=!1}}),$){if(K)K.prepend("return "),v.add(";");else if(!j)this.source.push('return "";')}else if(_+=", buffer = "+(P?"":this.initializeBuffer()),K)K.prepend("return buffer + "),v.add(";");else this.source.push("return buffer;");if(_)this.source.prepend("var "+_.substring(2)+(P?"":`;
|
|
16
16
|
`));return this.source.merge()},lookupPropertyFunctionVarDeclaration:function(){return`
|
|
17
17
|
lookupProperty = container.lookupProperty || function(parent, propertyName) {
|
|
@@ -20,79 +20,79 @@ Expecting `+t8.join(", ")+", got '"+(this.terminals_[b]||b)+"'";else qq="Parse e
|
|
|
20
20
|
}
|
|
21
21
|
return undefined
|
|
22
22
|
}
|
|
23
|
-
`.trim()},blockValue:function(_){var f=this.aliasable("container.hooks.blockHelperMissing"),$=[this.contextName(0)];this.setupHelperArgs(_,0,$);var P=this.popStack();$.splice(1,0,P),this.push(this.source.functionCall(f,"call",$))},ambiguousBlockValue:function(){var _=this.aliasable("container.hooks.blockHelperMissing"),f=[this.contextName(0)];this.setupHelperArgs("",0,f,!0),this.flushInline();var $=this.topStack();f.splice(1,0,$),this.pushSource(["if (!",this.lastHelper,") { ",$," = ",this.source.functionCall(_,"call",f),"}"])},appendContent:function(_){if(this.pendingContent)_=this.pendingContent+_;else this.pendingLocation=this.source.currentLocation;this.pendingContent=_},append:function(){if(this.isInline())this.replaceStack(function(f){return[" != null ? ",f,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var _=this.popStack();if(this.pushSource(["if (",_," != null) { ",this.appendToBuffer(_,void 0,!0)," }"]),this.environment.isSimple)this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(_){this.lastContext=_},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(_,f,$,P){var j=0;if(!P&&this.options.compat&&!this.lastContext)this.push(this.depthedLookup(_[j++]));else this.pushContext();this.resolvePath("context",_,j,f,$)},lookupBlockParam:function(_,f){this.useBlockParams=!0,this.push(["blockParams[",_[0],"][",_[1],"]"]),this.resolvePath("context",f,1)},lookupData:function(_,f,$){if(!_)this.pushStackLiteral("data");else this.pushStackLiteral("container.data(data, "+_+")");this.resolvePath("data",f,0,!0,$)},resolvePath:function(_,f,$,P,j){var K=this;if(this.options.strict||this.options.assumeObjects){this.push(J1(this.options.strict&&j,this,f,$,_));return}var v=f.length;for(;$<v;$++)this.replaceStack(function(m){var w=K.nameLookup(m,f[$],_);if(!P)return[" != null ? ",w," : ",m];else return[" && ",w]})},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(_,f){if(this.pushContext(),this.pushString(f),f!=="SubExpression")if(typeof _==="string")this.pushString(_);else this.pushStackLiteral(_)},emptyHash:function(_){if(this.trackIds)this.push("{}");if(this.stringParams)this.push("{}"),this.push("{}");this.pushStackLiteral(_?"undefined":"{}")},pushHash:function(){if(this.hash)this.hashes.push(this.hash);this.hash={values:{},types:[],contexts:[],ids:[]}},popHash:function(){var _=this.hash;if(this.hash=this.hashes.pop(),this.trackIds)this.push(this.objectLiteral(_.ids));if(this.stringParams)this.push(this.objectLiteral(_.contexts)),this.push(this.objectLiteral(_.types));this.push(this.objectLiteral(_.values))},pushString:function(_){this.pushStackLiteral(this.quotedString(_))},pushLiteral:function(_){this.pushStackLiteral(_)},pushProgram:function(_){if(_!=null)this.pushStackLiteral(this.programExpression(_));else this.pushStackLiteral(null)},registerDecorator:function(_,f){var $=this.nameLookup("decorators",f,"decorator"),P=this.setupHelperArgs(f,_);this.decorators.push(["fn = ",this.decorators.functionCall($,"",["fn","props","container",P])," || fn;"])},invokeHelper:function(_,f,$){var P=this.popStack(),j=this.setupHelper(_,f),K=[];if($)K.push(j.name);if(K.push(P),!this.options.strict)K.push(this.aliasable("container.hooks.helperMissing"));var v=["(",this.itemsSeparatedBy(K,"||"),")"],m=this.source.functionCall(v,"call",j.callParams);this.push(m)},itemsSeparatedBy:function(_,f){var $=[];$.push(_[0]);for(var P=1;P<_.length;P++)$.push(f,_[P]);return $},invokeKnownHelper:function(_,f){var $=this.setupHelper(_,f);this.push(this.source.functionCall($.name,"call",$.callParams))},invokeAmbiguous:function(_,f){this.useRegister("helper");var $=this.popStack();this.emptyHash();var P=this.setupHelper(0,_,f),j=this.lastHelper=this.nameLookup("helpers",_,"helper"),K=["(","(helper = ",j," || ",$,")"];if(!this.options.strict)K[0]="(helper = ",K.push(" != null ? helper : ",this.aliasable("container.hooks.helperMissing"));this.push(["(",K,P.paramsInit?["),(",P.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",P.callParams)," : helper))"])},invokePartial:function(_,f,$){var P=[],j=this.setupParams(f,1,P);if(_)f=this.popStack(),delete j.name;if($)j.indent=JSON.stringify($);if(j.helpers="helpers",j.partials="partials",j.decorators="container.decorators",!_)P.unshift(this.nameLookup("partials",f,"partial"));else P.unshift(f);if(this.options.compat)j.depths="depths";j=this.objectLiteral(j),P.push(j),this.push(this.source.functionCall("container.invokePartial","",P))},assignToHash:function(_){var f=this.popStack(),$=void 0,P=void 0,j=void 0;if(this.trackIds)j=this.popStack();if(this.stringParams)P=this.popStack(),$=this.popStack();var K=this.hash;if($)K.contexts[_]=$;if(P)K.types[_]=P;if(j)K.ids[_]=j;K.values[_]=f},pushId:function(_,f,$){if(_==="BlockParam")this.pushStackLiteral("blockParams["+f[0]+"].path["+f[1]+"]"+($?" + "+JSON.stringify("."+$):""));else if(_==="PathExpression")this.pushString(f);else if(_==="SubExpression")this.pushStackLiteral("true");else this.pushStackLiteral("null")},compiler:B8,compileChildren:function(_,f){var $=_.children,P=void 0,j=void 0;for(var K=0,v=$.length;K<v;K++){P=$[K],j=new this.compiler;var m=this.matchExistingProgram(P);if(m==null){this.context.programs.push("");var w=this.context.programs.length;P.index=w,P.name="program"+w,this.context.programs[w]=j.compile(P,f,this.context,!this.precompile),this.context.decorators[w]=j.decorators,this.context.environments[w]=P,this.useDepths=this.useDepths||j.useDepths,this.useBlockParams=this.useBlockParams||j.useBlockParams,P.useDepths=this.useDepths,P.useBlockParams=this.useBlockParams}else P.index=m.index,P.name="program"+m.index,this.useDepths=this.useDepths||m.useDepths,this.useBlockParams=this.useBlockParams||m.useBlockParams}},matchExistingProgram:function(_){for(var f=0,$=this.context.environments.length;f<$;f++){var P=this.context.environments[f];if(P&&P.equals(_))return P}},programExpression:function(_){var f=this.environment.children[_],$=[f.index,"data",f.blockParams];if(this.useBlockParams||this.useDepths)$.push("blockParams");if(this.useDepths)$.push("depths");return"container.program("+$.join(", ")+")"},useRegister:function(_){if(!this.registers[_])this.registers[_]=!0,this.registers.list.push(_)},push:function(_){if(!(_ instanceof s8))_=this.source.wrap(_);return this.inlineStack.push(_),_},pushStackLiteral:function(_){this.push(new s8(_))},pushSource:function(_){if(this.pendingContent)this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0;if(_)this.source.push(_)},replaceStack:function(_){var f=["("],$=void 0,P=void 0,j=void 0;if(!this.isInline())throw new ef.default("replaceStack on non-inline");var K=this.popStack(!0);if(K instanceof s8)$=[K.value],f=["(",$],j=!0;else{P=!0;var v=this.incrStack();f=["((",this.push(v)," = ",K,")"],$=this.topStack()}var m=_.call(this,$);if(!j)this.popStack();if(P)this.stackSlot--;this.push(f.concat(m,")"))},incrStack:function(){if(this.stackSlot++,this.stackSlot>this.stackVars.length)this.stackVars.push("stack"+this.stackSlot);return this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var _=this.inlineStack;this.inlineStack=[];for(var f=0,$=_.length;f<$;f++){var P=_[f];if(P instanceof s8)this.compileStack.push(P);else{var j=this.incrStack();this.pushSource([j," = ",P,";"]),this.compileStack.push(j)}}},isInline:function(){return this.inlineStack.length},popStack:function(_){var f=this.isInline(),$=(f?this.inlineStack:this.compileStack).pop();if(!_&&$ instanceof s8)return $.value;else{if(!f){if(!this.stackSlot)throw new ef.default("Invalid stack pop");this.stackSlot--}return $}},topStack:function(){var _=this.isInline()?this.inlineStack:this.compileStack,f=_[_.length-1];if(f instanceof s8)return f.value;else return f},contextName:function(_){if(this.useDepths&&_)return"depths["+_+"]";else return"depth"+_},quotedString:function(_){return this.source.quotedString(_)},objectLiteral:function(_){return this.source.objectLiteral(_)},aliasable:function(_){var f=this.aliases[_];if(f)return f.referenceCount++,f;return f=this.aliases[_]=this.source.wrap(_),f.aliasable=!0,f.referenceCount=1,f},setupHelper:function(_,f,$){var P=[],j=this.setupHelperArgs(f,_,P,$),K=this.nameLookup("helpers",f,"helper"),v=this.aliasable(this.contextName(0)+" != null ? "+this.contextName(0)+" : (container.nullContext || {})");return{params:P,paramsInit:j,name:K,callParams:[v].concat(P)}},setupParams:function(_,f,$){var P={},j=[],K=[],v=[],m=!$,w=void 0;if(m)$=[];if(P.name=this.quotedString(_),P.hash=this.popStack(),this.trackIds)P.hashIds=this.popStack();if(this.stringParams)P.hashTypes=this.popStack(),P.hashContexts=this.popStack();var O=this.popStack(),r=this.popStack();if(r||O)P.fn=r||"container.noop",P.inverse=O||"container.noop";var T=f;while(T--){if(w=this.popStack(),$[T]=w,this.trackIds)v[T]=this.popStack();if(this.stringParams)K[T]=this.popStack(),j[T]=this.popStack()}if(m)P.args=this.source.generateArray($);if(this.trackIds)P.ids=this.source.generateArray(v);if(this.stringParams)P.types=this.source.generateArray(K),P.contexts=this.source.generateArray(j);if(this.options.data)P.data="data";if(this.useBlockParams)P.blockParams="blockParams";return P},setupHelperArgs:function(_,f,$,P){var j=this.setupParams(_,f,$);if(j.loc=JSON.stringify(this.source.currentLocation),j=this.objectLiteral(j),P)return this.useRegister("options"),$.push("options"),["options=",j];else if($)return $.push(j),"";else return j}};(function(){var q="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),_=B8.RESERVED_WORDS={};for(var f=0,$=q.length;f<$;f++)_[q[f]]=!0})();B8.isValidJavaScriptVariableName=function(q){return!B8.RESERVED_WORDS[q]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(q)};function J1(q,_,f,$,P){var j=_.popStack(),K=f.length;if(q)K--;for(;$<K;$++)j=_.nameLookup(j,f[$],P);if(q)return[_.aliasable("container.strict"),"(",j,", ",_.quotedString(f[$]),", ",JSON.stringify(_.source.currentLocation)," )"];else return j}pK.default=B8;uK.exports=pK.default});var iK=Z((AK,aK)=>{AK.__esModule=!0;function zq(q){return q&&q.__esModule?q:{default:q}}var o1=a$(),p1=zq(o1),u1=L_(),d1=zq(u1),Hf=D$(),Wf=B$(),X1=dK(),A1=zq(X1),a1=gq(),i1=zq(a1),t1=g_(),G1=zq(t1),l1=p1.default.create;function XK(){var q=l1();return q.compile=function(_,f){return Wf.compile(_,f,q)},q.precompile=function(_,f){return Wf.precompile(_,f,q)},q.AST=d1.default,q.Compiler=Wf.Compiler,q.JavaScriptCompiler=A1.default,q.Parser=Hf.parser,q.parse=Hf.parse,q.parseWithoutProcessing=Hf.parseWithoutProcessing,q}var U8=XK();U8.create=XK;G1.default(U8);U8.Visitor=i1.default;U8.default=U8;AK.default=U8;aK.exports=AK.default});var tK=Z((N1)=>{N1.__esModule=!0;N1.print=c1;N1.PrintVisitor=V;function C1(q){return q&&q.__esModule?q:{default:q}}var V1=gq(),S1=C1(V1);function c1(q){return new V().accept(q)}function V(){this.padding=0}V.prototype=new S1.default;V.prototype.pad=function(q){var _="";for(var f=0,$=this.padding;f<$;f++)_+=" ";return _+=q+`
|
|
24
|
-
`,_};V.prototype.Program=function(q){var _="",f=q.body,$=void 0,P=void 0;if(q.blockParams){var j="BLOCK PARAMS: [";for($=0,P=q.blockParams.length;$<P;$++)j+=" "+q.blockParams[$];j+=" ]",_+=this.pad(j)}for($=0,P=f.length;$<P;$++)_+=this.accept(f[$]);return this.padding--,_};V.prototype.MustacheStatement=function(q){return this.pad("{{ "+this.SubExpression(q)+" }}")};V.prototype.Decorator=function(q){return this.pad("{{ DIRECTIVE "+this.SubExpression(q)+" }}")};V.prototype.BlockStatement=V.prototype.DecoratorBlock=function(q){var _="";if(_+=this.pad((q.type==="DecoratorBlock"?"DIRECTIVE ":"")+"BLOCK:"),this.padding++,_+=this.pad(this.SubExpression(q)),q.program)_+=this.pad("PROGRAM:"),this.padding++,_+=this.accept(q.program),this.padding--;if(q.inverse){if(q.program)this.padding++;if(_+=this.pad("{{^}}"),this.padding++,_+=this.accept(q.inverse),this.padding--,q.program)this.padding--}return this.padding--,_};V.prototype.PartialStatement=function(q){var _="PARTIAL:"+q.name.original;if(q.params[0])_+=" "+this.accept(q.params[0]);if(q.hash)_+=" "+this.accept(q.hash);return this.pad("{{> "+_+" }}")};V.prototype.PartialBlockStatement=function(q){var _="PARTIAL BLOCK:"+q.name.original;if(q.params[0])_+=" "+this.accept(q.params[0]);if(q.hash)_+=" "+this.accept(q.hash);return _+=" "+this.pad("PROGRAM:"),this.padding++,_+=this.accept(q.program),this.padding--,this.pad("{{> "+_+" }}")};V.prototype.ContentStatement=function(q){return this.pad("CONTENT[ '"+q.value+"' ]")};V.prototype.CommentStatement=function(q){return this.pad("{{! '"+q.value+"' }}")};V.prototype.SubExpression=function(q){var _=q.params,f=[],$=void 0;for(var P=0,j=_.length;P<j;P++)f.push(this.accept(_[P]));return _="["+f.join(", ")+"]",$=q.hash?" "+this.accept(q.hash):"",this.accept(q.path)+" "+_+$};V.prototype.PathExpression=function(q){var _=q.parts.join("/");return(q.data?"@":"")+"PATH:"+_};V.prototype.StringLiteral=function(q){return'"'+q.value+'"'};V.prototype.NumberLiteral=function(q){return"NUMBER{"+q.value+"}"};V.prototype.BooleanLiteral=function(q){return"BOOLEAN{"+q.value+"}"};V.prototype.UndefinedLiteral=function(){return"UNDEFINED"};V.prototype.NullLiteral=function(){return"NULL"};V.prototype.Hash=function(q){var _=q.pairs,f=[];for(var $=0,P=_.length;$<P;$++)f.push(this.accept(_[$]));return"HASH{"+f.join(", ")+"}"};V.prototype.HashPair=function(q){return q.key+"="+this.accept(q.value)}});var MK=Z((K2,bK)=>{var sq=iK().default,lK=tK();sq.PrintVisitor=lK.PrintVisitor;sq.print=lK.print;bK.exports=sq;function GK(q,_){var f=G8("fs"),$=f.readFileSync(_,"utf8");q.exports=sq.compile($)}if(G8.extensions)G8.extensions[".handlebars"]=GK,G8.extensions[".hbs"]=GK});var D=s($_(),1),uq=s($8(),1);import{stdin as gf,stdout as If}from"node:process";import*as u8 from"node:readline";import bf from"node:readline";import{WriteStream as lP}from"node:tty";function bP({onlyFirst:q=!1}={}){let _=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(_,q?void 0:"g")}var MP=bP();function Df(q){if(typeof q!="string")throw TypeError(`Expected a \`string\`, got \`${typeof q}\``);return q.replace(MP,"")}function xf(q){return q&&q.__esModule&&Object.prototype.hasOwnProperty.call(q,"default")?q.default:q}var Lf={exports:{}};(function(q){var _={};q.exports=_,_.eastAsianWidth=function($){var P=$.charCodeAt(0),j=$.length==2?$.charCodeAt(1):0,K=P;return 55296<=P&&P<=56319&&56320<=j&&j<=57343&&(P&=1023,j&=1023,K=P<<10|j,K+=65536),K==12288||65281<=K&&K<=65376||65504<=K&&K<=65510?"F":K==8361||65377<=K&&K<=65470||65474<=K&&K<=65479||65482<=K&&K<=65487||65490<=K&&K<=65495||65498<=K&&K<=65500||65512<=K&&K<=65518?"H":4352<=K&&K<=4447||4515<=K&&K<=4519||4602<=K&&K<=4607||9001<=K&&K<=9002||11904<=K&&K<=11929||11931<=K&&K<=12019||12032<=K&&K<=12245||12272<=K&&K<=12283||12289<=K&&K<=12350||12353<=K&&K<=12438||12441<=K&&K<=12543||12549<=K&&K<=12589||12593<=K&&K<=12686||12688<=K&&K<=12730||12736<=K&&K<=12771||12784<=K&&K<=12830||12832<=K&&K<=12871||12880<=K&&K<=13054||13056<=K&&K<=19903||19968<=K&&K<=42124||42128<=K&&K<=42182||43360<=K&&K<=43388||44032<=K&&K<=55203||55216<=K&&K<=55238||55243<=K&&K<=55291||63744<=K&&K<=64255||65040<=K&&K<=65049||65072<=K&&K<=65106||65108<=K&&K<=65126||65128<=K&&K<=65131||110592<=K&&K<=110593||127488<=K&&K<=127490||127504<=K&&K<=127546||127552<=K&&K<=127560||127568<=K&&K<=127569||131072<=K&&K<=194367||177984<=K&&K<=196605||196608<=K&&K<=262141?"W":32<=K&&K<=126||162<=K&&K<=163||165<=K&&K<=166||K==172||K==175||10214<=K&&K<=10221||10629<=K&&K<=10630?"Na":K==161||K==164||167<=K&&K<=168||K==170||173<=K&&K<=174||176<=K&&K<=180||182<=K&&K<=186||188<=K&&K<=191||K==198||K==208||215<=K&&K<=216||222<=K&&K<=225||K==230||232<=K&&K<=234||236<=K&&K<=237||K==240||242<=K&&K<=243||247<=K&&K<=250||K==252||K==254||K==257||K==273||K==275||K==283||294<=K&&K<=295||K==299||305<=K&&K<=307||K==312||319<=K&&K<=322||K==324||328<=K&&K<=331||K==333||338<=K&&K<=339||358<=K&&K<=359||K==363||K==462||K==464||K==466||K==468||K==470||K==472||K==474||K==476||K==593||K==609||K==708||K==711||713<=K&&K<=715||K==717||K==720||728<=K&&K<=731||K==733||K==735||768<=K&&K<=879||913<=K&&K<=929||931<=K&&K<=937||945<=K&&K<=961||963<=K&&K<=969||K==1025||1040<=K&&K<=1103||K==1105||K==8208||8211<=K&&K<=8214||8216<=K&&K<=8217||8220<=K&&K<=8221||8224<=K&&K<=8226||8228<=K&&K<=8231||K==8240||8242<=K&&K<=8243||K==8245||K==8251||K==8254||K==8308||K==8319||8321<=K&&K<=8324||K==8364||K==8451||K==8453||K==8457||K==8467||K==8470||8481<=K&&K<=8482||K==8486||K==8491||8531<=K&&K<=8532||8539<=K&&K<=8542||8544<=K&&K<=8555||8560<=K&&K<=8569||K==8585||8592<=K&&K<=8601||8632<=K&&K<=8633||K==8658||K==8660||K==8679||K==8704||8706<=K&&K<=8707||8711<=K&&K<=8712||K==8715||K==8719||K==8721||K==8725||K==8730||8733<=K&&K<=8736||K==8739||K==8741||8743<=K&&K<=8748||K==8750||8756<=K&&K<=8759||8764<=K&&K<=8765||K==8776||K==8780||K==8786||8800<=K&&K<=8801||8804<=K&&K<=8807||8810<=K&&K<=8811||8814<=K&&K<=8815||8834<=K&&K<=8835||8838<=K&&K<=8839||K==8853||K==8857||K==8869||K==8895||K==8978||9312<=K&&K<=9449||9451<=K&&K<=9547||9552<=K&&K<=9587||9600<=K&&K<=9615||9618<=K&&K<=9621||9632<=K&&K<=9633||9635<=K&&K<=9641||9650<=K&&K<=9651||9654<=K&&K<=9655||9660<=K&&K<=9661||9664<=K&&K<=9665||9670<=K&&K<=9672||K==9675||9678<=K&&K<=9681||9698<=K&&K<=9701||K==9711||9733<=K&&K<=9734||K==9737||9742<=K&&K<=9743||9748<=K&&K<=9749||K==9756||K==9758||K==9792||K==9794||9824<=K&&K<=9825||9827<=K&&K<=9829||9831<=K&&K<=9834||9836<=K&&K<=9837||K==9839||9886<=K&&K<=9887||9918<=K&&K<=9919||9924<=K&&K<=9933||9935<=K&&K<=9953||K==9955||9960<=K&&K<=9983||K==10045||K==10071||10102<=K&&K<=10111||11093<=K&&K<=11097||12872<=K&&K<=12879||57344<=K&&K<=63743||65024<=K&&K<=65039||K==65533||127232<=K&&K<=127242||127248<=K&&K<=127277||127280<=K&&K<=127337||127344<=K&&K<=127386||917760<=K&&K<=917999||983040<=K&&K<=1048573||1048576<=K&&K<=1114109?"A":"N"},_.characterLength=function($){var P=this.eastAsianWidth($);return P=="F"||P=="W"||P=="A"?2:1};function f($){return $.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}_.length=function($){for(var P=f($),j=0,K=0;K<P.length;K++)j=j+this.characterLength(P[K]);return j},_.slice=function($,P,j){textLen=_.length($),P=P||0,j=j||1,P<0&&(P=textLen+P),j<0&&(j=textLen+j);for(var K="",v=0,m=f($),w=0;w<m.length;w++){var O=m[w],r=_.length(O);if(v>=P-(r==2?1:0))if(v+r<=j)K+=O;else break;v+=r}return K}})(Lf);var CP=Lf.exports,VP=xf(CP),SP=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},cP=xf(SP);function _q(q,_={}){if(typeof q!="string"||q.length===0||(_={ambiguousIsNarrow:!0,..._},q=Df(q),q.length===0))return 0;q=q.replace(cP()," ");let f=_.ambiguousIsNarrow?1:2,$=0;for(let P of q){let j=P.codePointAt(0);if(j<=31||j>=127&&j<=159||j>=768&&j<=879)continue;switch(VP.eastAsianWidth(P)){case"F":case"W":$+=2;break;case"A":$+=f;break;default:$+=1}}return $}var P_=10,Mf=(q=0)=>(_)=>`\x1B[${_+q}m`,Cf=(q=0)=>(_)=>`\x1B[${38+q};5;${_}m`,Vf=(q=0)=>(_,f,$)=>`\x1B[${38+q};2;${_};${f};${$}m`,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(t.modifier);var NP=Object.keys(t.color),yP=Object.keys(t.bgColor);[...NP,...yP];function RP(){let q=new Map;for(let[_,f]of Object.entries(t)){for(let[$,P]of Object.entries(f))t[$]={open:`\x1B[${P[0]}m`,close:`\x1B[${P[1]}m`},f[$]=t[$],q.set(P[0],P[1]);Object.defineProperty(t,_,{value:f,enumerable:!1})}return Object.defineProperty(t,"codes",{value:q,enumerable:!1}),t.color.close="\x1B[39m",t.bgColor.close="\x1B[49m",t.color.ansi=Mf(),t.color.ansi256=Cf(),t.color.ansi16m=Vf(),t.bgColor.ansi=Mf(P_),t.bgColor.ansi256=Cf(P_),t.bgColor.ansi16m=Vf(P_),Object.defineProperties(t,{rgbToAnsi256:{value:(_,f,$)=>_===f&&f===$?_<8?16:_>248?231:Math.round((_-8)/247*24)+232:16+36*Math.round(_/255*5)+6*Math.round(f/255*5)+Math.round($/255*5),enumerable:!1},hexToRgb:{value:(_)=>{let f=/[a-f\d]{6}|[a-f\d]{3}/i.exec(_.toString(16));if(!f)return[0,0,0];let[$]=f;$.length===3&&($=[...$].map((j)=>j+j).join(""));let P=Number.parseInt($,16);return[P>>16&255,P>>8&255,P&255]},enumerable:!1},hexToAnsi256:{value:(_)=>t.rgbToAnsi256(...t.hexToRgb(_)),enumerable:!1},ansi256ToAnsi:{value:(_)=>{if(_<8)return 30+_;if(_<16)return 90+(_-8);let f,$,P;if(_>=232)f=((_-232)*10+8)/255,$=f,P=f;else{_-=16;let v=_%36;f=Math.floor(_/36)/5,$=Math.floor(v/6)/5,P=v%6/5}let j=Math.max(f,$,P)*2;if(j===0)return 30;let K=30+(Math.round(P)<<2|Math.round($)<<1|Math.round(f));return j===2&&(K+=60),K},enumerable:!1},rgbToAnsi:{value:(_,f,$)=>t.ansi256ToAnsi(t.rgbToAnsi256(_,f,$)),enumerable:!1},hexToAnsi:{value:(_)=>t.ansi256ToAnsi(t.hexToAnsi256(_)),enumerable:!1}}),t}var EP=RP(),dq=new Set(["\x1B",""]),gP=39,v_="\x07",sf="[",IP="]",Bf="m",w_=`${IP}8;;`,Sf=(q)=>`${dq.values().next().value}${sf}${q}${Bf}`,cf=(q)=>`${dq.values().next().value}${w_}${q}${v_}`,DP=(q)=>q.split(" ").map((_)=>_q(_)),j_=(q,_,f)=>{let $=[..._],P=!1,j=!1,K=_q(Df(q[q.length-1]));for(let[v,m]of $.entries()){let w=_q(m);if(K+w<=f?q[q.length-1]+=m:(q.push(m),K=0),dq.has(m)&&(P=!0,j=$.slice(v+1).join("").startsWith(w_)),P){j?m===v_&&(P=!1,j=!1):m===Bf&&(P=!1);continue}K+=w,K===f&&v<$.length-1&&(q.push(""),K=0)}!K&&q[q.length-1].length>0&&q.length>1&&(q[q.length-2]+=q.pop())},xP=(q)=>{let _=q.split(" "),f=_.length;for(;f>0&&!(_q(_[f-1])>0);)f--;return f===_.length?q:_.slice(0,f).join(" ")+_.slice(f).join("")},LP=(q,_,f={})=>{if(f.trim!==!1&&q.trim()==="")return"";let $="",P,j,K=DP(q),v=[""];for(let[w,O]of q.split(" ").entries()){f.trim!==!1&&(v[v.length-1]=v[v.length-1].trimStart());let r=_q(v[v.length-1]);if(w!==0&&(r>=_&&(f.wordWrap===!1||f.trim===!1)&&(v.push(""),r=0),(r>0||f.trim===!1)&&(v[v.length-1]+=" ",r++)),f.hard&&K[w]>_){let T=_-r,z=1+Math.floor((K[w]-T-1)/_);Math.floor((K[w]-1)/_)<z&&v.push(""),j_(v,O,_);continue}if(r+K[w]>_&&r>0&&K[w]>0){if(f.wordWrap===!1&&r<_){j_(v,O,_);continue}v.push("")}if(r+K[w]>_&&f.wordWrap===!1){j_(v,O,_);continue}v[v.length-1]+=O}f.trim!==!1&&(v=v.map((w)=>xP(w)));let m=[...v.join(`
|
|
25
|
-
`)];for(let[w,
|
|
26
|
-
`?(j&&($+=
|
|
27
|
-
`&&(P&&
|
|
23
|
+
`.trim()},blockValue:function(_){var f=this.aliasable("container.hooks.blockHelperMissing"),$=[this.contextName(0)];this.setupHelperArgs(_,0,$);var P=this.popStack();$.splice(1,0,P),this.push(this.source.functionCall(f,"call",$))},ambiguousBlockValue:function(){var _=this.aliasable("container.hooks.blockHelperMissing"),f=[this.contextName(0)];this.setupHelperArgs("",0,f,!0),this.flushInline();var $=this.topStack();f.splice(1,0,$),this.pushSource(["if (!",this.lastHelper,") { ",$," = ",this.source.functionCall(_,"call",f),"}"])},appendContent:function(_){if(this.pendingContent)_=this.pendingContent+_;else this.pendingLocation=this.source.currentLocation;this.pendingContent=_},append:function(){if(this.isInline())this.replaceStack(function(f){return[" != null ? ",f,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var _=this.popStack();if(this.pushSource(["if (",_," != null) { ",this.appendToBuffer(_,void 0,!0)," }"]),this.environment.isSimple)this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(_){this.lastContext=_},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(_,f,$,P){var j=0;if(!P&&this.options.compat&&!this.lastContext)this.push(this.depthedLookup(_[j++]));else this.pushContext();this.resolvePath("context",_,j,f,$)},lookupBlockParam:function(_,f){this.useBlockParams=!0,this.push(["blockParams[",_[0],"][",_[1],"]"]),this.resolvePath("context",f,1)},lookupData:function(_,f,$){if(!_)this.pushStackLiteral("data");else this.pushStackLiteral("container.data(data, "+_+")");this.resolvePath("data",f,0,!0,$)},resolvePath:function(_,f,$,P,j){var K=this;if(this.options.strict||this.options.assumeObjects){this.push(W1(this.options.strict&&j,this,f,$,_));return}var v=f.length;for(;$<v;$++)this.replaceStack(function(m){var w=K.nameLookup(m,f[$],_);if(!P)return[" != null ? ",w," : ",m];else return[" && ",w]})},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(_,f){if(this.pushContext(),this.pushString(f),f!=="SubExpression")if(typeof _==="string")this.pushString(_);else this.pushStackLiteral(_)},emptyHash:function(_){if(this.trackIds)this.push("{}");if(this.stringParams)this.push("{}"),this.push("{}");this.pushStackLiteral(_?"undefined":"{}")},pushHash:function(){if(this.hash)this.hashes.push(this.hash);this.hash={values:{},types:[],contexts:[],ids:[]}},popHash:function(){var _=this.hash;if(this.hash=this.hashes.pop(),this.trackIds)this.push(this.objectLiteral(_.ids));if(this.stringParams)this.push(this.objectLiteral(_.contexts)),this.push(this.objectLiteral(_.types));this.push(this.objectLiteral(_.values))},pushString:function(_){this.pushStackLiteral(this.quotedString(_))},pushLiteral:function(_){this.pushStackLiteral(_)},pushProgram:function(_){if(_!=null)this.pushStackLiteral(this.programExpression(_));else this.pushStackLiteral(null)},registerDecorator:function(_,f){var $=this.nameLookup("decorators",f,"decorator"),P=this.setupHelperArgs(f,_);this.decorators.push(["fn = ",this.decorators.functionCall($,"",["fn","props","container",P])," || fn;"])},invokeHelper:function(_,f,$){var P=this.popStack(),j=this.setupHelper(_,f),K=[];if($)K.push(j.name);if(K.push(P),!this.options.strict)K.push(this.aliasable("container.hooks.helperMissing"));var v=["(",this.itemsSeparatedBy(K,"||"),")"],m=this.source.functionCall(v,"call",j.callParams);this.push(m)},itemsSeparatedBy:function(_,f){var $=[];$.push(_[0]);for(var P=1;P<_.length;P++)$.push(f,_[P]);return $},invokeKnownHelper:function(_,f){var $=this.setupHelper(_,f);this.push(this.source.functionCall($.name,"call",$.callParams))},invokeAmbiguous:function(_,f){this.useRegister("helper");var $=this.popStack();this.emptyHash();var P=this.setupHelper(0,_,f),j=this.lastHelper=this.nameLookup("helpers",_,"helper"),K=["(","(helper = ",j," || ",$,")"];if(!this.options.strict)K[0]="(helper = ",K.push(" != null ? helper : ",this.aliasable("container.hooks.helperMissing"));this.push(["(",K,P.paramsInit?["),(",P.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",P.callParams)," : helper))"])},invokePartial:function(_,f,$){var P=[],j=this.setupParams(f,1,P);if(_)f=this.popStack(),delete j.name;if($)j.indent=JSON.stringify($);if(j.helpers="helpers",j.partials="partials",j.decorators="container.decorators",!_)P.unshift(this.nameLookup("partials",f,"partial"));else P.unshift(f);if(this.options.compat)j.depths="depths";j=this.objectLiteral(j),P.push(j),this.push(this.source.functionCall("container.invokePartial","",P))},assignToHash:function(_){var f=this.popStack(),$=void 0,P=void 0,j=void 0;if(this.trackIds)j=this.popStack();if(this.stringParams)P=this.popStack(),$=this.popStack();var K=this.hash;if($)K.contexts[_]=$;if(P)K.types[_]=P;if(j)K.ids[_]=j;K.values[_]=f},pushId:function(_,f,$){if(_==="BlockParam")this.pushStackLiteral("blockParams["+f[0]+"].path["+f[1]+"]"+($?" + "+JSON.stringify("."+$):""));else if(_==="PathExpression")this.pushString(f);else if(_==="SubExpression")this.pushStackLiteral("true");else this.pushStackLiteral("null")},compiler:Q8,compileChildren:function(_,f){var $=_.children,P=void 0,j=void 0;for(var K=0,v=$.length;K<v;K++){P=$[K],j=new this.compiler;var m=this.matchExistingProgram(P);if(m==null){this.context.programs.push("");var w=this.context.programs.length;P.index=w,P.name="program"+w,this.context.programs[w]=j.compile(P,f,this.context,!this.precompile),this.context.decorators[w]=j.decorators,this.context.environments[w]=P,this.useDepths=this.useDepths||j.useDepths,this.useBlockParams=this.useBlockParams||j.useBlockParams,P.useDepths=this.useDepths,P.useBlockParams=this.useBlockParams}else P.index=m.index,P.name="program"+m.index,this.useDepths=this.useDepths||m.useDepths,this.useBlockParams=this.useBlockParams||m.useBlockParams}},matchExistingProgram:function(_){for(var f=0,$=this.context.environments.length;f<$;f++){var P=this.context.environments[f];if(P&&P.equals(_))return P}},programExpression:function(_){var f=this.environment.children[_],$=[f.index,"data",f.blockParams];if(this.useBlockParams||this.useDepths)$.push("blockParams");if(this.useDepths)$.push("depths");return"container.program("+$.join(", ")+")"},useRegister:function(_){if(!this.registers[_])this.registers[_]=!0,this.registers.list.push(_)},push:function(_){if(!(_ instanceof F8))_=this.source.wrap(_);return this.inlineStack.push(_),_},pushStackLiteral:function(_){this.push(new F8(_))},pushSource:function(_){if(this.pendingContent)this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0;if(_)this.source.push(_)},replaceStack:function(_){var f=["("],$=void 0,P=void 0,j=void 0;if(!this.isInline())throw new ef.default("replaceStack on non-inline");var K=this.popStack(!0);if(K instanceof F8)$=[K.value],f=["(",$],j=!0;else{P=!0;var v=this.incrStack();f=["((",this.push(v)," = ",K,")"],$=this.topStack()}var m=_.call(this,$);if(!j)this.popStack();if(P)this.stackSlot--;this.push(f.concat(m,")"))},incrStack:function(){if(this.stackSlot++,this.stackSlot>this.stackVars.length)this.stackVars.push("stack"+this.stackSlot);return this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var _=this.inlineStack;this.inlineStack=[];for(var f=0,$=_.length;f<$;f++){var P=_[f];if(P instanceof F8)this.compileStack.push(P);else{var j=this.incrStack();this.pushSource([j," = ",P,";"]),this.compileStack.push(j)}}},isInline:function(){return this.inlineStack.length},popStack:function(_){var f=this.isInline(),$=(f?this.inlineStack:this.compileStack).pop();if(!_&&$ instanceof F8)return $.value;else{if(!f){if(!this.stackSlot)throw new ef.default("Invalid stack pop");this.stackSlot--}return $}},topStack:function(){var _=this.isInline()?this.inlineStack:this.compileStack,f=_[_.length-1];if(f instanceof F8)return f.value;else return f},contextName:function(_){if(this.useDepths&&_)return"depths["+_+"]";else return"depth"+_},quotedString:function(_){return this.source.quotedString(_)},objectLiteral:function(_){return this.source.objectLiteral(_)},aliasable:function(_){var f=this.aliases[_];if(f)return f.referenceCount++,f;return f=this.aliases[_]=this.source.wrap(_),f.aliasable=!0,f.referenceCount=1,f},setupHelper:function(_,f,$){var P=[],j=this.setupHelperArgs(f,_,P,$),K=this.nameLookup("helpers",f,"helper"),v=this.aliasable(this.contextName(0)+" != null ? "+this.contextName(0)+" : (container.nullContext || {})");return{params:P,paramsInit:j,name:K,callParams:[v].concat(P)}},setupParams:function(_,f,$){var P={},j=[],K=[],v=[],m=!$,w=void 0;if(m)$=[];if(P.name=this.quotedString(_),P.hash=this.popStack(),this.trackIds)P.hashIds=this.popStack();if(this.stringParams)P.hashTypes=this.popStack(),P.hashContexts=this.popStack();var r=this.popStack(),O=this.popStack();if(O||r)P.fn=O||"container.noop",P.inverse=r||"container.noop";var T=f;while(T--){if(w=this.popStack(),$[T]=w,this.trackIds)v[T]=this.popStack();if(this.stringParams)K[T]=this.popStack(),j[T]=this.popStack()}if(m)P.args=this.source.generateArray($);if(this.trackIds)P.ids=this.source.generateArray(v);if(this.stringParams)P.types=this.source.generateArray(K),P.contexts=this.source.generateArray(j);if(this.options.data)P.data="data";if(this.useBlockParams)P.blockParams="blockParams";return P},setupHelperArgs:function(_,f,$,P){var j=this.setupParams(_,f,$);if(j.loc=JSON.stringify(this.source.currentLocation),j=this.objectLiteral(j),P)return this.useRegister("options"),$.push("options"),["options=",j];else if($)return $.push(j),"";else return j}};(function(){var q="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),_=Q8.RESERVED_WORDS={};for(var f=0,$=q.length;f<$;f++)_[q[f]]=!0})();Q8.isValidJavaScriptVariableName=function(q){return!Q8.RESERVED_WORDS[q]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(q)};function W1(q,_,f,$,P){var j=_.popStack(),K=f.length;if(q)K--;for(;$<K;$++)j=_.nameLookup(j,f[$],P);if(q)return[_.aliasable("container.strict"),"(",j,", ",_.quotedString(f[$]),", ",JSON.stringify(_.source.currentLocation)," )"];else return j}oK.default=Q8;pK.exports=oK.default});var aK=Z((XK,AK)=>{XK.__esModule=!0;function Hq(q){return q&&q.__esModule?q:{default:q}}var n1=A$(),o1=Hq(n1),p1=L_(),u1=Hq(p1),Hf=I$(),Wf=s$(),d1=uK(),X1=Hq(d1),A1=Iq(),a1=Hq(A1),i1=g_(),t1=Hq(i1),G1=o1.default.create;function dK(){var q=G1();return q.compile=function(_,f){return Wf.compile(_,f,q)},q.precompile=function(_,f){return Wf.precompile(_,f,q)},q.AST=u1.default,q.Compiler=Wf.Compiler,q.JavaScriptCompiler=X1.default,q.Parser=Hf.parser,q.parse=Hf.parse,q.parseWithoutProcessing=Hf.parseWithoutProcessing,q}var qq=dK();qq.create=dK;t1.default(qq);qq.Visitor=a1.default;qq.default=qq;XK.default=qq;AK.exports=XK.default});var iK=Z((c1)=>{c1.__esModule=!0;c1.print=S1;c1.PrintVisitor=V;function M1(q){return q&&q.__esModule?q:{default:q}}var C1=Iq(),V1=M1(C1);function S1(q){return new V().accept(q)}function V(){this.padding=0}V.prototype=new V1.default;V.prototype.pad=function(q){var _="";for(var f=0,$=this.padding;f<$;f++)_+=" ";return _+=q+`
|
|
24
|
+
`,_};V.prototype.Program=function(q){var _="",f=q.body,$=void 0,P=void 0;if(q.blockParams){var j="BLOCK PARAMS: [";for($=0,P=q.blockParams.length;$<P;$++)j+=" "+q.blockParams[$];j+=" ]",_+=this.pad(j)}for($=0,P=f.length;$<P;$++)_+=this.accept(f[$]);return this.padding--,_};V.prototype.MustacheStatement=function(q){return this.pad("{{ "+this.SubExpression(q)+" }}")};V.prototype.Decorator=function(q){return this.pad("{{ DIRECTIVE "+this.SubExpression(q)+" }}")};V.prototype.BlockStatement=V.prototype.DecoratorBlock=function(q){var _="";if(_+=this.pad((q.type==="DecoratorBlock"?"DIRECTIVE ":"")+"BLOCK:"),this.padding++,_+=this.pad(this.SubExpression(q)),q.program)_+=this.pad("PROGRAM:"),this.padding++,_+=this.accept(q.program),this.padding--;if(q.inverse){if(q.program)this.padding++;if(_+=this.pad("{{^}}"),this.padding++,_+=this.accept(q.inverse),this.padding--,q.program)this.padding--}return this.padding--,_};V.prototype.PartialStatement=function(q){var _="PARTIAL:"+q.name.original;if(q.params[0])_+=" "+this.accept(q.params[0]);if(q.hash)_+=" "+this.accept(q.hash);return this.pad("{{> "+_+" }}")};V.prototype.PartialBlockStatement=function(q){var _="PARTIAL BLOCK:"+q.name.original;if(q.params[0])_+=" "+this.accept(q.params[0]);if(q.hash)_+=" "+this.accept(q.hash);return _+=" "+this.pad("PROGRAM:"),this.padding++,_+=this.accept(q.program),this.padding--,this.pad("{{> "+_+" }}")};V.prototype.ContentStatement=function(q){return this.pad("CONTENT[ '"+q.value+"' ]")};V.prototype.CommentStatement=function(q){return this.pad("{{! '"+q.value+"' }}")};V.prototype.SubExpression=function(q){var _=q.params,f=[],$=void 0;for(var P=0,j=_.length;P<j;P++)f.push(this.accept(_[P]));return _="["+f.join(", ")+"]",$=q.hash?" "+this.accept(q.hash):"",this.accept(q.path)+" "+_+$};V.prototype.PathExpression=function(q){var _=q.parts.join("/");return(q.data?"@":"")+"PATH:"+_};V.prototype.StringLiteral=function(q){return'"'+q.value+'"'};V.prototype.NumberLiteral=function(q){return"NUMBER{"+q.value+"}"};V.prototype.BooleanLiteral=function(q){return"BOOLEAN{"+q.value+"}"};V.prototype.UndefinedLiteral=function(){return"UNDEFINED"};V.prototype.NullLiteral=function(){return"NULL"};V.prototype.Hash=function(q){var _=q.pairs,f=[];for(var $=0,P=_.length;$<P;$++)f.push(this.accept(_[$]));return"HASH{"+f.join(", ")+"}"};V.prototype.HashPair=function(q){return q.key+"="+this.accept(q.value)}});var bK=Z(($2,lK)=>{var Bq=aK().default,GK=iK();Bq.PrintVisitor=GK.PrintVisitor;Bq.print=GK.print;lK.exports=Bq;function tK(q,_){var f=M8("fs"),$=f.readFileSync(_,"utf8");q.exports=Bq.compile($)}if(M8.extensions)M8.extensions[".handlebars"]=tK,M8.extensions[".hbs"]=tK});var D=F(K_(),1),Xq=F(P8(),1);import{stdin as Ef,stdout as gf}from"node:process";import*as i8 from"node:readline";import lf from"node:readline";import{WriteStream as GP}from"node:tty";function lP({onlyFirst:q=!1}={}){let _=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(_,q?void 0:"g")}var bP=lP();function If(q){if(typeof q!="string")throw TypeError(`Expected a \`string\`, got \`${typeof q}\``);return q.replace(bP,"")}function Df(q){return q&&q.__esModule&&Object.prototype.hasOwnProperty.call(q,"default")?q.default:q}var xf={exports:{}};(function(q){var _={};q.exports=_,_.eastAsianWidth=function($){var P=$.charCodeAt(0),j=$.length==2?$.charCodeAt(1):0,K=P;return 55296<=P&&P<=56319&&56320<=j&&j<=57343&&(P&=1023,j&=1023,K=P<<10|j,K+=65536),K==12288||65281<=K&&K<=65376||65504<=K&&K<=65510?"F":K==8361||65377<=K&&K<=65470||65474<=K&&K<=65479||65482<=K&&K<=65487||65490<=K&&K<=65495||65498<=K&&K<=65500||65512<=K&&K<=65518?"H":4352<=K&&K<=4447||4515<=K&&K<=4519||4602<=K&&K<=4607||9001<=K&&K<=9002||11904<=K&&K<=11929||11931<=K&&K<=12019||12032<=K&&K<=12245||12272<=K&&K<=12283||12289<=K&&K<=12350||12353<=K&&K<=12438||12441<=K&&K<=12543||12549<=K&&K<=12589||12593<=K&&K<=12686||12688<=K&&K<=12730||12736<=K&&K<=12771||12784<=K&&K<=12830||12832<=K&&K<=12871||12880<=K&&K<=13054||13056<=K&&K<=19903||19968<=K&&K<=42124||42128<=K&&K<=42182||43360<=K&&K<=43388||44032<=K&&K<=55203||55216<=K&&K<=55238||55243<=K&&K<=55291||63744<=K&&K<=64255||65040<=K&&K<=65049||65072<=K&&K<=65106||65108<=K&&K<=65126||65128<=K&&K<=65131||110592<=K&&K<=110593||127488<=K&&K<=127490||127504<=K&&K<=127546||127552<=K&&K<=127560||127568<=K&&K<=127569||131072<=K&&K<=194367||177984<=K&&K<=196605||196608<=K&&K<=262141?"W":32<=K&&K<=126||162<=K&&K<=163||165<=K&&K<=166||K==172||K==175||10214<=K&&K<=10221||10629<=K&&K<=10630?"Na":K==161||K==164||167<=K&&K<=168||K==170||173<=K&&K<=174||176<=K&&K<=180||182<=K&&K<=186||188<=K&&K<=191||K==198||K==208||215<=K&&K<=216||222<=K&&K<=225||K==230||232<=K&&K<=234||236<=K&&K<=237||K==240||242<=K&&K<=243||247<=K&&K<=250||K==252||K==254||K==257||K==273||K==275||K==283||294<=K&&K<=295||K==299||305<=K&&K<=307||K==312||319<=K&&K<=322||K==324||328<=K&&K<=331||K==333||338<=K&&K<=339||358<=K&&K<=359||K==363||K==462||K==464||K==466||K==468||K==470||K==472||K==474||K==476||K==593||K==609||K==708||K==711||713<=K&&K<=715||K==717||K==720||728<=K&&K<=731||K==733||K==735||768<=K&&K<=879||913<=K&&K<=929||931<=K&&K<=937||945<=K&&K<=961||963<=K&&K<=969||K==1025||1040<=K&&K<=1103||K==1105||K==8208||8211<=K&&K<=8214||8216<=K&&K<=8217||8220<=K&&K<=8221||8224<=K&&K<=8226||8228<=K&&K<=8231||K==8240||8242<=K&&K<=8243||K==8245||K==8251||K==8254||K==8308||K==8319||8321<=K&&K<=8324||K==8364||K==8451||K==8453||K==8457||K==8467||K==8470||8481<=K&&K<=8482||K==8486||K==8491||8531<=K&&K<=8532||8539<=K&&K<=8542||8544<=K&&K<=8555||8560<=K&&K<=8569||K==8585||8592<=K&&K<=8601||8632<=K&&K<=8633||K==8658||K==8660||K==8679||K==8704||8706<=K&&K<=8707||8711<=K&&K<=8712||K==8715||K==8719||K==8721||K==8725||K==8730||8733<=K&&K<=8736||K==8739||K==8741||8743<=K&&K<=8748||K==8750||8756<=K&&K<=8759||8764<=K&&K<=8765||K==8776||K==8780||K==8786||8800<=K&&K<=8801||8804<=K&&K<=8807||8810<=K&&K<=8811||8814<=K&&K<=8815||8834<=K&&K<=8835||8838<=K&&K<=8839||K==8853||K==8857||K==8869||K==8895||K==8978||9312<=K&&K<=9449||9451<=K&&K<=9547||9552<=K&&K<=9587||9600<=K&&K<=9615||9618<=K&&K<=9621||9632<=K&&K<=9633||9635<=K&&K<=9641||9650<=K&&K<=9651||9654<=K&&K<=9655||9660<=K&&K<=9661||9664<=K&&K<=9665||9670<=K&&K<=9672||K==9675||9678<=K&&K<=9681||9698<=K&&K<=9701||K==9711||9733<=K&&K<=9734||K==9737||9742<=K&&K<=9743||9748<=K&&K<=9749||K==9756||K==9758||K==9792||K==9794||9824<=K&&K<=9825||9827<=K&&K<=9829||9831<=K&&K<=9834||9836<=K&&K<=9837||K==9839||9886<=K&&K<=9887||9918<=K&&K<=9919||9924<=K&&K<=9933||9935<=K&&K<=9953||K==9955||9960<=K&&K<=9983||K==10045||K==10071||10102<=K&&K<=10111||11093<=K&&K<=11097||12872<=K&&K<=12879||57344<=K&&K<=63743||65024<=K&&K<=65039||K==65533||127232<=K&&K<=127242||127248<=K&&K<=127277||127280<=K&&K<=127337||127344<=K&&K<=127386||917760<=K&&K<=917999||983040<=K&&K<=1048573||1048576<=K&&K<=1114109?"A":"N"},_.characterLength=function($){var P=this.eastAsianWidth($);return P=="F"||P=="W"||P=="A"?2:1};function f($){return $.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}_.length=function($){for(var P=f($),j=0,K=0;K<P.length;K++)j=j+this.characterLength(P[K]);return j},_.slice=function($,P,j){textLen=_.length($),P=P||0,j=j||1,P<0&&(P=textLen+P),j<0&&(j=textLen+j);for(var K="",v=0,m=f($),w=0;w<m.length;w++){var r=m[w],O=_.length(r);if(v>=P-(O==2?1:0))if(v+O<=j)K+=r;else break;v+=O}return K}})(xf);var MP=xf.exports,CP=Df(MP),VP=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},SP=Df(VP);function fq(q,_={}){if(typeof q!="string"||q.length===0||(_={ambiguousIsNarrow:!0,..._},q=If(q),q.length===0))return 0;q=q.replace(SP()," ");let f=_.ambiguousIsNarrow?1:2,$=0;for(let P of q){let j=P.codePointAt(0);if(j<=31||j>=127&&j<=159||j>=768&&j<=879)continue;switch(CP.eastAsianWidth(P)){case"F":case"W":$+=2;break;case"A":$+=f;break;default:$+=1}}return $}var j_=10,bf=(q=0)=>(_)=>`\x1B[${_+q}m`,Mf=(q=0)=>(_)=>`\x1B[${38+q};5;${_}m`,Cf=(q=0)=>(_,f,$)=>`\x1B[${38+q};2;${_};${f};${$}m`,G={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(G.modifier);var cP=Object.keys(G.color),NP=Object.keys(G.bgColor);[...cP,...NP];function yP(){let q=new Map;for(let[_,f]of Object.entries(G)){for(let[$,P]of Object.entries(f))G[$]={open:`\x1B[${P[0]}m`,close:`\x1B[${P[1]}m`},f[$]=G[$],q.set(P[0],P[1]);Object.defineProperty(G,_,{value:f,enumerable:!1})}return Object.defineProperty(G,"codes",{value:q,enumerable:!1}),G.color.close="\x1B[39m",G.bgColor.close="\x1B[49m",G.color.ansi=bf(),G.color.ansi256=Mf(),G.color.ansi16m=Cf(),G.bgColor.ansi=bf(j_),G.bgColor.ansi256=Mf(j_),G.bgColor.ansi16m=Cf(j_),Object.defineProperties(G,{rgbToAnsi256:{value:(_,f,$)=>_===f&&f===$?_<8?16:_>248?231:Math.round((_-8)/247*24)+232:16+36*Math.round(_/255*5)+6*Math.round(f/255*5)+Math.round($/255*5),enumerable:!1},hexToRgb:{value:(_)=>{let f=/[a-f\d]{6}|[a-f\d]{3}/i.exec(_.toString(16));if(!f)return[0,0,0];let[$]=f;$.length===3&&($=[...$].map((j)=>j+j).join(""));let P=Number.parseInt($,16);return[P>>16&255,P>>8&255,P&255]},enumerable:!1},hexToAnsi256:{value:(_)=>G.rgbToAnsi256(...G.hexToRgb(_)),enumerable:!1},ansi256ToAnsi:{value:(_)=>{if(_<8)return 30+_;if(_<16)return 90+(_-8);let f,$,P;if(_>=232)f=((_-232)*10+8)/255,$=f,P=f;else{_-=16;let v=_%36;f=Math.floor(_/36)/5,$=Math.floor(v/6)/5,P=v%6/5}let j=Math.max(f,$,P)*2;if(j===0)return 30;let K=30+(Math.round(P)<<2|Math.round($)<<1|Math.round(f));return j===2&&(K+=60),K},enumerable:!1},rgbToAnsi:{value:(_,f,$)=>G.ansi256ToAnsi(G.rgbToAnsi256(_,f,$)),enumerable:!1},hexToAnsi:{value:(_)=>G.ansi256ToAnsi(G.hexToAnsi256(_)),enumerable:!1}}),G}var RP=yP(),Aq=new Set(["\x1B",""]),EP=39,w_="\x07",Lf="[",gP="]",sf="m",m_=`${gP}8;;`,Vf=(q)=>`${Aq.values().next().value}${Lf}${q}${sf}`,Sf=(q)=>`${Aq.values().next().value}${m_}${q}${w_}`,IP=(q)=>q.split(" ").map((_)=>fq(_)),v_=(q,_,f)=>{let $=[..._],P=!1,j=!1,K=fq(If(q[q.length-1]));for(let[v,m]of $.entries()){let w=fq(m);if(K+w<=f?q[q.length-1]+=m:(q.push(m),K=0),Aq.has(m)&&(P=!0,j=$.slice(v+1).join("").startsWith(m_)),P){j?m===w_&&(P=!1,j=!1):m===sf&&(P=!1);continue}K+=w,K===f&&v<$.length-1&&(q.push(""),K=0)}!K&&q[q.length-1].length>0&&q.length>1&&(q[q.length-2]+=q.pop())},DP=(q)=>{let _=q.split(" "),f=_.length;for(;f>0&&!(fq(_[f-1])>0);)f--;return f===_.length?q:_.slice(0,f).join(" ")+_.slice(f).join("")},xP=(q,_,f={})=>{if(f.trim!==!1&&q.trim()==="")return"";let $="",P,j,K=IP(q),v=[""];for(let[w,r]of q.split(" ").entries()){f.trim!==!1&&(v[v.length-1]=v[v.length-1].trimStart());let O=fq(v[v.length-1]);if(w!==0&&(O>=_&&(f.wordWrap===!1||f.trim===!1)&&(v.push(""),O=0),(O>0||f.trim===!1)&&(v[v.length-1]+=" ",O++)),f.hard&&K[w]>_){let T=_-O,h=1+Math.floor((K[w]-T-1)/_);Math.floor((K[w]-1)/_)<h&&v.push(""),v_(v,r,_);continue}if(O+K[w]>_&&O>0&&K[w]>0){if(f.wordWrap===!1&&O<_){v_(v,r,_);continue}v.push("")}if(O+K[w]>_&&f.wordWrap===!1){v_(v,r,_);continue}v[v.length-1]+=r}f.trim!==!1&&(v=v.map((w)=>DP(w)));let m=[...v.join(`
|
|
25
|
+
`)];for(let[w,r]of m.entries()){if($+=r,Aq.has(r)){let{groups:T}=new RegExp(`(?:\\${Lf}(?<code>\\d+)m|\\${m_}(?<uri>.*)${w_})`).exec(m.slice(w).join(""))||{groups:{}};if(T.code!==void 0){let h=Number.parseFloat(T.code);P=h===EP?void 0:h}else T.uri!==void 0&&(j=T.uri.length===0?void 0:T.uri)}let O=RP.codes.get(Number(P));m[w+1]===`
|
|
26
|
+
`?(j&&($+=Sf("")),P&&O&&($+=Vf(O))):r===`
|
|
27
|
+
`&&(P&&O&&($+=Vf(P)),j&&($+=Sf(j)))}return $};function cf(q,_,f){return String(q).normalize().replace(/\r\n/g,`
|
|
28
28
|
`).split(`
|
|
29
|
-
`).map(($)=>
|
|
30
|
-
`)}var
|
|
29
|
+
`).map(($)=>xP($,_,f)).join(`
|
|
30
|
+
`)}var LP=Object.defineProperty,sP=(q,_,f)=>(_ in q)?LP(q,_,{enumerable:!0,configurable:!0,writable:!0,value:f}):q[_]=f,j8=(q,_,f)=>(sP(q,typeof _!="symbol"?_+"":_,f),f);function BP(q,_){if(q===_)return;let f=q.split(`
|
|
31
31
|
`),$=_.split(`
|
|
32
|
-
`),P=[];for(let j=0;j<Math.max(f.length,$.length);j++)f[j]!==$[j]&&P.push(j);return P}var
|
|
33
|
-
`),
|
|
34
|
-
`).length-1;this.output.write(D.cursor.move(-999,q*-1))}render(){let q=
|
|
32
|
+
`),P=[];for(let j=0;j<Math.max(f.length,$.length);j++)f[j]!==$[j]&&P.push(j);return P}var Bf=Symbol("clack:cancel");function Q(q){return q===Bf}function dq(q,_){q.isTTY&&q.setRawMode(_)}var Nf=new Map([["k","up"],["j","down"],["h","left"],["l","right"]]),UP=new Set(["up","down","left","right","space","enter"]);class $q{constructor({render:q,input:_=Ef,output:f=gf,...$},P=!0){j8(this,"input"),j8(this,"output"),j8(this,"rl"),j8(this,"opts"),j8(this,"_track",!1),j8(this,"_render"),j8(this,"_cursor",0),j8(this,"state","initial"),j8(this,"value"),j8(this,"error",""),j8(this,"subscribers",new Map),j8(this,"_prevFrame",""),this.opts=$,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=q.bind(this),this._track=P,this.input=_,this.output=f}prompt(){let q=new GP(0);return q._write=(_,f,$)=>{this._track&&(this.value=this.rl.line.replace(/\t/g,""),this._cursor=this.rl.cursor,this.emit("value",this.value)),$()},this.input.pipe(q),this.rl=lf.createInterface({input:this.input,output:q,tabSize:2,prompt:"",escapeCodeTimeout:50}),lf.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),dq(this.input,!0),this.output.on("resize",this.render),this.render(),new Promise((_,f)=>{this.once("submit",()=>{this.output.write(D.cursor.show),this.output.off("resize",this.render),dq(this.input,!1),_(this.value)}),this.once("cancel",()=>{this.output.write(D.cursor.show),this.output.off("resize",this.render),dq(this.input,!1),_(Bf)})})}on(q,_){let f=this.subscribers.get(q)??[];f.push({cb:_}),this.subscribers.set(q,f)}once(q,_){let f=this.subscribers.get(q)??[];f.push({cb:_,once:!0}),this.subscribers.set(q,f)}emit(q,..._){let f=this.subscribers.get(q)??[],$=[];for(let P of f)P.cb(..._),P.once&&$.push(()=>f.splice(f.indexOf(P),1));for(let P of $)P()}unsubscribe(){this.subscribers.clear()}onKeypress(q,_){if(this.state==="error"&&(this.state="active"),_?.name&&!this._track&&Nf.has(_.name)&&this.emit("cursor",Nf.get(_.name)),_?.name&&UP.has(_.name)&&this.emit("cursor",_.name),q&&(q.toLowerCase()==="y"||q.toLowerCase()==="n")&&this.emit("confirm",q.toLowerCase()==="y"),q==="\t"&&this.opts.placeholder&&(this.value||(this.rl.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),q&&this.emit("key",q.toLowerCase()),_?.name==="return"){if(this.opts.validate){let f=this.opts.validate(this.value);f&&(this.error=f,this.state="error",this.rl.write(this.value))}this.state!=="error"&&(this.state="submit")}q==="\x03"&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
|
|
33
|
+
`),dq(this.input,!1),this.rl.close(),this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let q=cf(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
|
|
34
|
+
`).length-1;this.output.write(D.cursor.move(-999,q*-1))}render(){let q=cf(this._render(this)??"",process.stdout.columns,{hard:!0});if(q!==this._prevFrame){if(this.state==="initial")this.output.write(D.cursor.hide);else{let _=BP(this._prevFrame,q);if(this.restoreCursor(),_&&_?.length===1){let f=_[0];this.output.write(D.cursor.move(0,f)),this.output.write(D.erase.lines(1));let $=q.split(`
|
|
35
35
|
`);this.output.write($[f]),this._prevFrame=q,this.output.write(D.cursor.move(0,$.length-f-1));return}else if(_&&_?.length>1){let f=_[0];this.output.write(D.cursor.move(0,f)),this.output.write(D.erase.down());let $=q.split(`
|
|
36
36
|
`).slice(f);this.output.write($.join(`
|
|
37
|
-
`)),this._prevFrame=q;return}this.output.write(D.erase.down())}this.output.write(q),this.state==="initial"&&(this.state="active"),this._prevFrame=q}}}class
|
|
38
|
-
${
|
|
37
|
+
`)),this._prevFrame=q;return}this.output.write(D.erase.down())}this.output.write(q),this.state==="initial"&&(this.state="active"),this._prevFrame=q}}}class O_ extends $q{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(q){super(q,!1),this.value=!!q.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",(_)=>{this.output.write(D.cursor.move(0,-1)),this.value=_,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var FP=Object.defineProperty,QP=(q,_,f)=>(_ in q)?FP(q,_,{enumerable:!0,configurable:!0,writable:!0,value:f}):q[_]=f,yf=(q,_,f)=>(QP(q,typeof _!="symbol"?_+"":_,f),f),Uf=class extends $q{constructor(q){super(q,!1),yf(this,"options"),yf(this,"cursor",0),this.options=q.options,this.value=[...q.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:_})=>_===q.cursorAt),0),this.on("key",(_)=>{_==="a"&&this.toggleAll()}),this.on("cursor",(_)=>{switch(_){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let q=this.value.length===this.options.length;this.value=q?[]:this.options.map((_)=>_.value)}toggleValue(){let q=this.value.includes(this._value);this.value=q?this.value.filter((_)=>_!==this._value):[...this.value,this._value]}};var q9=Object.defineProperty,_9=(q,_,f)=>(_ in q)?q9(q,_,{enumerable:!0,configurable:!0,writable:!0,value:f}):q[_]=f,Rf=(q,_,f)=>(_9(q,typeof _!="symbol"?_+"":_,f),f),Ff=class extends $q{constructor(q){super(q,!1),Rf(this,"options"),Rf(this,"cursor",0),this.options=q.options,this.cursor=this.options.findIndex(({value:_})=>_===q.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",(_)=>{switch(_){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}};var f9=Object.defineProperty,$9=(q,_,f)=>(_ in q)?f9(q,_,{enumerable:!0,configurable:!0,writable:!0,value:f}):q[_]=f,K9=(q,_,f)=>($9(q,typeof _!="symbol"?_+"":_,f),f);class r_ extends $q{constructor(q){super(q),K9(this,"valueWithCursor",""),this.on("finalize",()=>{this.value||(this.value=q.defaultValue),this.valueWithCursor=this.value}),this.on("value",()=>{if(this.cursor>=this.value.length)this.valueWithCursor=`${this.value}${Xq.default.inverse(Xq.default.hidden("_"))}`;else{let _=this.value.slice(0,this.cursor),f=this.value.slice(this.cursor);this.valueWithCursor=`${_}${Xq.default.inverse(f[0])}${f.slice(1)}`}})}get cursor(){return this._cursor}}var P9=globalThis.process.platform.startsWith("win");function Qf({input:q=Ef,output:_=gf,overwrite:f=!0,hideCursor:$=!0}={}){let P=i8.createInterface({input:q,output:_,prompt:"",tabSize:1});i8.emitKeypressEvents(q,P),q.isTTY&&q.setRawMode(!0);let j=(K,{name:v})=>{if(String(K)==="\x03"){$&&_.write(D.cursor.show),process.exit(0);return}if(!f)return;i8.moveCursor(_,v==="return"?0:-1,v==="return"?-1:0,()=>{i8.clearLine(_,1,()=>{q.once("keypress",j)})})};return $&&_.write(D.cursor.hide),q.once("keypress",j),()=>{q.off("keypress",j),$&&_.write(D.cursor.show),q.isTTY&&!P9&&q.setRawMode(!1),P.terminal=!1,P.close()}}var Y=F(P8(),1),R8=F(K_(),1);import T8 from"node:process";function j9(){return T8.platform!=="win32"?T8.env.TERM!=="linux":!!T8.env.CI||!!T8.env.WT_SESSION||!!T8.env.TERMINUS_SUBLIME||T8.env.ConEmuTask==="{cmd::Cmder}"||T8.env.TERM_PROGRAM==="Terminus-Sublime"||T8.env.TERM_PROGRAM==="vscode"||T8.env.TERM==="xterm-256color"||T8.env.TERM==="alacritty"||T8.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Y_=j9(),S=(q,_)=>Y_?q:_,v9=S("◆","*"),f6=S("■","x"),$6=S("▲","x"),aq=S("◇","o"),w9=S("┌","T"),X=S("│","|"),t8=S("└","—"),k_=S("●",">"),h_=S("○"," "),m9=S("◻","[•]"),q6=S("◼","[+]"),O9=S("◻","[ ]"),$w=S("▪","•"),_6=S("─","-"),r9=S("╮","+"),T9=S("├","+"),Y9=S("╯","+"),k9=S("●","•"),h9=S("◆","*"),z9=S("▲","!"),e9=S("■","x"),iq=(q)=>{switch(q){case"initial":case"active":return Y.default.cyan(v9);case"cancel":return Y.default.red(f6);case"error":return Y.default.yellow($6);case"submit":return Y.default.green(aq)}},z_=(q)=>{let{cursor:_,options:f,style:$}=q,P=q.maxItems??1/0,j=Math.max(process.stdout.rows-4,0),K=Math.min(j,Math.max(P,5)),v=0;_>=v+K-3?v=Math.max(Math.min(_-K+3,f.length-K),0):_<v+2&&(v=Math.max(_-2,0));let m=K<f.length&&v>0,w=K<f.length&&v+K<f.length;return f.slice(v,v+K).map((r,O,T)=>{let h=O===0&&m,z=O===T.length-1&&w;return h||z?Y.default.dim("..."):$(r,O+v===_)})},K6=(q)=>new r_({validate:q.validate,placeholder:q.placeholder,defaultValue:q.defaultValue,initialValue:q.initialValue,render(){let _=`${Y.default.gray(X)}
|
|
38
|
+
${iq(this.state)} ${q.message}
|
|
39
39
|
`,f=q.placeholder?Y.default.inverse(q.placeholder[0])+Y.default.dim(q.placeholder.slice(1)):Y.default.inverse(Y.default.hidden("_")),$=this.value?this.valueWithCursor:f;switch(this.state){case"error":return`${_.trim()}
|
|
40
40
|
${Y.default.yellow(X)} ${$}
|
|
41
|
-
${Y.default.yellow(
|
|
41
|
+
${Y.default.yellow(t8)} ${Y.default.yellow(this.error)}
|
|
42
42
|
`;case"submit":return`${_}${Y.default.gray(X)} ${Y.default.dim(this.value||q.placeholder)}`;case"cancel":return`${_}${Y.default.gray(X)} ${Y.default.strikethrough(Y.default.dim(this.value??""))}${this.value?.trim()?`
|
|
43
43
|
`+Y.default.gray(X):""}`;default:return`${_}${Y.default.cyan(X)} ${$}
|
|
44
|
-
${Y.default.cyan(
|
|
45
|
-
`}}}).prompt();var
|
|
46
|
-
${
|
|
44
|
+
${Y.default.cyan(t8)}
|
|
45
|
+
`}}}).prompt();var P6=(q)=>{let _=q.active??"Yes",f=q.inactive??"No";return new O_({active:_,inactive:f,initialValue:q.initialValue??!0,render(){let $=`${Y.default.gray(X)}
|
|
46
|
+
${iq(this.state)} ${q.message}
|
|
47
47
|
`,P=this.value?_:f;switch(this.state){case"submit":return`${$}${Y.default.gray(X)} ${Y.default.dim(P)}`;case"cancel":return`${$}${Y.default.gray(X)} ${Y.default.strikethrough(Y.default.dim(P))}
|
|
48
|
-
${Y.default.gray(X)}`;default:return`${$}${Y.default.cyan(X)} ${this.value?`${Y.default.green(
|
|
49
|
-
${Y.default.cyan(
|
|
50
|
-
`}}}).prompt()},
|
|
51
|
-
${
|
|
48
|
+
${Y.default.gray(X)}`;default:return`${$}${Y.default.cyan(X)} ${this.value?`${Y.default.green(k_)} ${_}`:`${Y.default.dim(h_)} ${Y.default.dim(_)}`} ${Y.default.dim("/")} ${this.value?`${Y.default.dim(h_)} ${Y.default.dim(f)}`:`${Y.default.green(k_)} ${f}`}
|
|
49
|
+
${Y.default.cyan(t8)}
|
|
50
|
+
`}}}).prompt()},E8=(q)=>{let _=(f,$)=>{let P=f.label??String(f.value);switch($){case"selected":return`${Y.default.dim(P)}`;case"active":return`${Y.default.green(k_)} ${P} ${f.hint?Y.default.dim(`(${f.hint})`):""}`;case"cancelled":return`${Y.default.strikethrough(Y.default.dim(P))}`;default:return`${Y.default.dim(h_)} ${Y.default.dim(P)}`}};return new Ff({options:q.options,initialValue:q.initialValue,render(){let f=`${Y.default.gray(X)}
|
|
51
|
+
${iq(this.state)} ${q.message}
|
|
52
52
|
`;switch(this.state){case"submit":return`${f}${Y.default.gray(X)} ${_(this.options[this.cursor],"selected")}`;case"cancel":return`${f}${Y.default.gray(X)} ${_(this.options[this.cursor],"cancelled")}
|
|
53
|
-
${Y.default.gray(X)}`;default:return`${f}${Y.default.cyan(X)} ${
|
|
53
|
+
${Y.default.gray(X)}`;default:return`${f}${Y.default.cyan(X)} ${z_({cursor:this.cursor,options:this.options,maxItems:q.maxItems,style:($,P)=>_($,P?"active":"inactive")}).join(`
|
|
54
54
|
${Y.default.cyan(X)} `)}
|
|
55
|
-
${Y.default.cyan(
|
|
56
|
-
`}}}).prompt()};var
|
|
55
|
+
${Y.default.cyan(t8)}
|
|
56
|
+
`}}}).prompt()};var Kq=(q)=>{let _=(f,$)=>{let P=f.label??String(f.value);return $==="active"?`${Y.default.cyan(m9)} ${P} ${f.hint?Y.default.dim(`(${f.hint})`):""}`:$==="selected"?`${Y.default.green(q6)} ${Y.default.dim(P)}`:$==="cancelled"?`${Y.default.strikethrough(Y.default.dim(P))}`:$==="active-selected"?`${Y.default.green(q6)} ${P} ${f.hint?Y.default.dim(`(${f.hint})`):""}`:$==="submitted"?`${Y.default.dim(P)}`:`${Y.default.dim(O9)} ${Y.default.dim(P)}`};return new Uf({options:q.options,initialValues:q.initialValues,required:q.required??!0,cursorAt:q.cursorAt,validate(f){if(this.required&&f.length===0)return`Please select at least one option.
|
|
57
57
|
${Y.default.reset(Y.default.dim(`Press ${Y.default.gray(Y.default.bgWhite(Y.default.inverse(" space ")))} to select, ${Y.default.gray(Y.default.bgWhite(Y.default.inverse(" enter ")))} to submit`))}`},render(){let f=`${Y.default.gray(X)}
|
|
58
|
-
${
|
|
58
|
+
${iq(this.state)} ${q.message}
|
|
59
59
|
`,$=(P,j)=>{let K=this.value.includes(P.value);return j&&K?_(P,"active-selected"):K?_(P,"selected"):_(P,j?"active":"inactive")};switch(this.state){case"submit":return`${f}${Y.default.gray(X)} ${this.options.filter(({value:P})=>this.value.includes(P)).map((P)=>_(P,"submitted")).join(Y.default.dim(", "))||Y.default.dim("none")}`;case"cancel":{let P=this.options.filter(({value:j})=>this.value.includes(j)).map((j)=>_(j,"cancelled")).join(Y.default.dim(", "));return`${f}${Y.default.gray(X)} ${P.trim()?`${P}
|
|
60
60
|
${Y.default.gray(X)}`:""}`}case"error":{let P=this.error.split(`
|
|
61
|
-
`).map((j,K)=>K===0?`${Y.default.yellow(
|
|
62
|
-
`);return f+Y.default.yellow(X)+" "+
|
|
61
|
+
`).map((j,K)=>K===0?`${Y.default.yellow(t8)} ${Y.default.yellow(j)}`:` ${j}`).join(`
|
|
62
|
+
`);return f+Y.default.yellow(X)+" "+z_({options:this.options,cursor:this.cursor,maxItems:q.maxItems,style:$}).join(`
|
|
63
63
|
${Y.default.yellow(X)} `)+`
|
|
64
64
|
`+P+`
|
|
65
|
-
`}default:return`${f}${Y.default.cyan(X)} ${
|
|
65
|
+
`}default:return`${f}${Y.default.cyan(X)} ${z_({options:this.options,cursor:this.cursor,maxItems:q.maxItems,style:$}).join(`
|
|
66
66
|
${Y.default.cyan(X)} `)}
|
|
67
|
-
${Y.default.cyan(
|
|
68
|
-
`}}}).prompt()};var
|
|
67
|
+
${Y.default.cyan(t8)}
|
|
68
|
+
`}}}).prompt()};var T_=(q)=>q.replace(H9(),""),e_=(q="",_="")=>{let f=`
|
|
69
69
|
${q}
|
|
70
70
|
`.split(`
|
|
71
|
-
`),$=
|
|
71
|
+
`),$=T_(_).length,P=Math.max(f.reduce((K,v)=>(v=T_(v),v.length>K?v.length:K),0),$)+2,j=f.map((K)=>`${Y.default.gray(X)} ${Y.default.dim(K)}${" ".repeat(P-T_(K).length)}${Y.default.gray(X)}`).join(`
|
|
72
72
|
`);process.stdout.write(`${Y.default.gray(X)}
|
|
73
|
-
${Y.default.green(
|
|
73
|
+
${Y.default.green(aq)} ${Y.default.reset(_)} ${Y.default.gray(_6.repeat(Math.max(P-$-1,1))+r9)}
|
|
74
74
|
${j}
|
|
75
|
-
${Y.default.gray(
|
|
76
|
-
`)},
|
|
75
|
+
${Y.default.gray(T9+_6.repeat(P+2)+Y9)}
|
|
76
|
+
`)},v8=(q="")=>{process.stdout.write(`${Y.default.gray(t8)} ${Y.default.red(q)}
|
|
77
77
|
|
|
78
|
-
`)},
|
|
79
|
-
`)},
|
|
80
|
-
${Y.default.gray(
|
|
78
|
+
`)},j6=(q="")=>{process.stdout.write(`${Y.default.gray(w9)} ${q}
|
|
79
|
+
`)},H_=(q="")=>{process.stdout.write(`${Y.default.gray(X)}
|
|
80
|
+
${Y.default.gray(t8)} ${q}
|
|
81
81
|
|
|
82
82
|
`)},y={message:(q="",{symbol:_=Y.default.gray(X)}={})=>{let f=[`${Y.default.gray(X)}`];if(q){let[$,...P]=q.split(`
|
|
83
83
|
`);f.push(`${_} ${$}`,...P.map((j)=>`${Y.default.gray(X)} ${j}`))}process.stdout.write(`${f.join(`
|
|
84
84
|
`)}
|
|
85
|
-
`)},info:(q)=>{y.message(q,{symbol:Y.default.blue(
|
|
86
|
-
`);let
|
|
87
|
-
`),O(),f()};return{start:r,stop:T,message:(z="")=>{j=z??j}}};function W9(){let q=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(q,"g")}var u=s($8(),1);var H8=s($8(),1);var H_={$version:"2.9.1",$description:"Base scores for technologies with ecosystem metadata",$generatedAt:"2026-01-29T00:17:47.028Z",technologies:{stripe:{id:"stripe",name:"Stripe",category:"payments",ecosystem:"universal",url:"https://stripe.com",scores:{default:{perf:97,dx:94,ecosystem:98,maintain:86,cost:51,compliance:65},mvp:{perf:94,dx:99,ecosystem:100,maintain:86,cost:51,compliance:65},enterprise:{perf:97,dx:94,ecosystem:93,maintain:91,cost:56,compliance:75}}},paddle:{id:"paddle",name:"Paddle",category:"payments",ecosystem:"universal",url:"https://paddle.com",scores:{default:{perf:95,dx:88,ecosystem:68,maintain:60,cost:41,compliance:99},mvp:{perf:92,dx:93,ecosystem:71,maintain:60,cost:41,compliance:99},enterprise:{perf:95,dx:88,ecosystem:63,maintain:65,cost:46,compliance:100}}},lemonsqueezy:{id:"lemonsqueezy",name:"LemonSqueezy",category:"payments",ecosystem:"universal",url:"https://lemonsqueezy.com",scores:{default:{perf:92,dx:85,ecosystem:60,maintain:40,cost:44,compliance:96},mvp:{perf:89,dx:90,ecosystem:63,maintain:40,cost:44,compliance:96},enterprise:{perf:92,dx:85,ecosystem:55,maintain:45,cost:49,compliance:100}}},gumroad:{id:"gumroad",name:"Gumroad",category:"payments",ecosystem:"universal",url:"https://gumroad.com",scores:{default:{perf:79,dx:60,ecosystem:50,maintain:68,cost:32,compliance:79},mvp:{perf:76,dx:65,ecosystem:53,maintain:68,cost:32,compliance:79},enterprise:{perf:79,dx:60,ecosystem:45,maintain:73,cost:37,compliance:89}}},neon:{id:"neon",name:"Neon",category:"database",ecosystem:"universal",url:"https://neon.tech",scores:{default:{perf:83,dx:97,ecosystem:76,maintain:48,cost:88,compliance:93},mvp:{perf:80,dx:100,ecosystem:79,maintain:48,cost:88,compliance:93},enterprise:{perf:83,dx:97,ecosystem:71,maintain:53,cost:93,compliance:100}}},sveltekit:{id:"sveltekit",name:"SvelteKit",category:"meta-framework",ecosystem:"javascript",stackType:"modular",preferredHosting:["vercel","cloudflare","railway","fly"],url:"https://kit.svelte.dev",scores:{default:{perf:54,dx:99,ecosystem:100,maintain:74,cost:90,compliance:85},mvp:{perf:51,dx:100,ecosystem:100,maintain:74,cost:90,compliance:85},enterprise:{perf:54,dx:99,ecosystem:95,maintain:79,cost:95,compliance:95}}},nextjs:{id:"nextjs",name:"Next.js",category:"meta-framework",ecosystem:"javascript",stackType:"modular",preferredHosting:["vercel","cloudflare","railway"],url:"https://nextjs.org",scores:{default:{perf:68,dx:90,ecosystem:100,maintain:80,cost:90,compliance:85},mvp:{perf:65,dx:95,ecosystem:100,maintain:80,cost:90,compliance:85},enterprise:{perf:68,dx:90,ecosystem:95,maintain:85,cost:95,compliance:95}}},nuxt:{id:"nuxt",name:"Nuxt",category:"meta-framework",ecosystem:"javascript",stackType:"modular",preferredHosting:["vercel","cloudflare","railway"],url:"https://nuxt.com",scores:{default:{perf:30,dx:99,ecosystem:100,maintain:79,cost:90,compliance:85},mvp:{perf:27,dx:100,ecosystem:100,maintain:79,cost:90,compliance:85},enterprise:{perf:30,dx:99,ecosystem:95,maintain:84,cost:95,compliance:95}}},remix:{id:"remix",name:"Remix",category:"meta-framework",ecosystem:"javascript",stackType:"modular",preferredHosting:["vercel","cloudflare","fly","railway"],url:"https://remix.run",scores:{default:{perf:70,dx:99,ecosystem:100,maintain:86,cost:90,compliance:85},mvp:{perf:67,dx:100,ecosystem:100,maintain:86,cost:90,compliance:85},enterprise:{perf:70,dx:99,ecosystem:95,maintain:91,cost:95,compliance:95}}},astro:{id:"astro",name:"Astro",category:"meta-framework",ecosystem:"javascript",stackType:"modular",preferredHosting:["vercel","cloudflare","netlify"],url:"https://astro.build",scores:{default:{perf:30,dx:100,ecosystem:100,maintain:85,cost:90,compliance:85},mvp:{perf:27,dx:100,ecosystem:100,maintain:85,cost:90,compliance:85},enterprise:{perf:30,dx:100,ecosystem:95,maintain:90,cost:95,compliance:95}}},react:{id:"react",name:"React",category:"frontend",ecosystem:"javascript",url:"https://react.dev",scores:{default:{perf:82,dx:78,ecosystem:100,maintain:76,cost:90,compliance:85},mvp:{perf:79,dx:83,ecosystem:100,maintain:76,cost:90,compliance:85},enterprise:{perf:82,dx:78,ecosystem:95,maintain:81,cost:95,compliance:95}}},vue:{id:"vue",name:"Vue",category:"frontend",ecosystem:"javascript",url:"https://vuejs.org",scores:{default:{perf:67,dx:96,ecosystem:100,maintain:72,cost:90,compliance:85},mvp:{perf:64,dx:100,ecosystem:100,maintain:72,cost:90,compliance:85},enterprise:{perf:67,dx:96,ecosystem:95,maintain:77,cost:95,compliance:95}}},svelte:{id:"svelte",name:"Svelte",category:"frontend",ecosystem:"javascript",url:"https://svelte.dev",scores:{default:{perf:81,dx:99,ecosystem:100,maintain:76,cost:90,compliance:85},mvp:{perf:78,dx:100,ecosystem:100,maintain:76,cost:90,compliance:85},enterprise:{perf:81,dx:99,ecosystem:95,maintain:81,cost:95,compliance:95}}},solid:{id:"solid",name:"Solid",category:"frontend",ecosystem:"javascript",url:"https://solidjs.com",scores:{default:{perf:98,dx:52,ecosystem:98,maintain:42,cost:90,compliance:85},mvp:{perf:95,dx:57,ecosystem:100,maintain:42,cost:90,compliance:85},enterprise:{perf:98,dx:52,ecosystem:93,maintain:47,cost:95,compliance:95}}},postgres:{id:"postgres",name:"PostgreSQL",category:"database",ecosystem:"universal",url:"https://postgresql.org",scores:{default:{perf:84,dx:67,ecosystem:77,maintain:88,cost:100,compliance:93},mvp:{perf:81,dx:72,ecosystem:80,maintain:88,cost:100,compliance:93},enterprise:{perf:84,dx:67,ecosystem:72,maintain:93,cost:100,compliance:100}}},supabase:{id:"supabase",name:"Supabase",category:"database",ecosystem:"universal",stackType:"platform",provides:{auth:{techId:"supabase-auth",type:"builtin",label:"Supabase Auth inclus",description:"Email, OAuth, Magic Links, Row Level Security"}},url:"https://supabase.com",scores:{default:{perf:92,dx:97,ecosystem:85,maintain:83,cost:83,compliance:90},mvp:{perf:89,dx:100,ecosystem:88,maintain:83,cost:83,compliance:90},enterprise:{perf:92,dx:97,ecosystem:80,maintain:88,cost:88,compliance:100}}},firebase:{id:"firebase",name:"Firebase",category:"database",ecosystem:"universal",stackType:"platform",provides:{auth:{techId:"firebase-auth",type:"builtin",label:"Firebase Auth inclus",description:"Email, OAuth, Phone, Anonymous authentication"}},url:"https://firebase.google.com",scores:{default:{perf:84,dx:96,ecosystem:94,maintain:79,cost:73,compliance:88},mvp:{perf:81,dx:100,ecosystem:97,maintain:79,cost:73,compliance:88},enterprise:{perf:84,dx:96,ecosystem:89,maintain:84,cost:78,compliance:98}}},mysql:{id:"mysql",name:"MySQL",category:"database",ecosystem:"universal",url:"https://mysql.com",scores:{default:{perf:82,dx:64,ecosystem:74,maintain:88,cost:100,compliance:88},mvp:{perf:79,dx:69,ecosystem:77,maintain:88,cost:100,compliance:88},enterprise:{perf:82,dx:64,ecosystem:69,maintain:93,cost:100,compliance:98}}},sqlite:{id:"sqlite",name:"SQLite",category:"database",ecosystem:"universal",url:"https://sqlite.org",scores:{default:{perf:94,dx:74,ecosystem:88,maintain:76,cost:100,compliance:78},mvp:{perf:91,dx:79,ecosystem:91,maintain:76,cost:100,compliance:78},enterprise:{perf:94,dx:74,ecosystem:83,maintain:81,cost:100,compliance:88}}},mongodb:{id:"mongodb",name:"MongoDB",category:"database",ecosystem:"universal",url:"https://mongodb.com",scores:{default:{perf:83,dx:82,ecosystem:88,maintain:72,cost:90,compliance:87},mvp:{perf:80,dx:87,ecosystem:91,maintain:72,cost:90,compliance:87},enterprise:{perf:83,dx:82,ecosystem:83,maintain:77,cost:95,compliance:97}}},drizzle:{id:"drizzle",name:"Drizzle ORM",category:"orm",ecosystem:"javascript",url:"https://orm.drizzle.team",scores:{default:{perf:94,dx:80,ecosystem:98,maintain:57,cost:90,compliance:85},mvp:{perf:91,dx:85,ecosystem:100,maintain:57,cost:90,compliance:85},enterprise:{perf:94,dx:80,ecosystem:93,maintain:62,cost:95,compliance:95}}},prisma:{id:"prisma",name:"Prisma",category:"orm",ecosystem:"javascript",url:"https://prisma.io",scores:{default:{perf:68,dx:99,ecosystem:100,maintain:72,cost:90,compliance:85},mvp:{perf:65,dx:100,ecosystem:100,maintain:72,cost:90,compliance:85},enterprise:{perf:68,dx:99,ecosystem:95,maintain:77,cost:95,compliance:95}}},kysely:{id:"kysely",name:"Kysely",category:"orm",ecosystem:"javascript",url:"https://kysely.dev",scores:{default:{perf:80,dx:76,ecosystem:95,maintain:53,cost:90,compliance:85},mvp:{perf:77,dx:81,ecosystem:98,maintain:53,cost:90,compliance:85},enterprise:{perf:80,dx:76,ecosystem:90,maintain:58,cost:95,compliance:95}}},lucia:{id:"lucia",name:"Lucia",category:"auth",ecosystem:"javascript",url:"https://lucia-auth.com",deprecated:{since:"2025-03",reason:"Library no longer maintained",alternatives:["better-auth","authjs"]},scores:{default:{perf:76,dx:50,ecosystem:96,maintain:5,cost:90,compliance:85},mvp:{perf:73,dx:55,ecosystem:99,maintain:5,cost:90,compliance:85},enterprise:{perf:76,dx:50,ecosystem:91,maintain:5,cost:95,compliance:95}}},authjs:{id:"authjs",name:"Auth.js",category:"auth",ecosystem:"javascript",url:"https://authjs.dev",scores:{default:{perf:57,dx:52,ecosystem:100,maintain:35,cost:90,compliance:85},mvp:{perf:54,dx:57,ecosystem:100,maintain:35,cost:90,compliance:85},enterprise:{perf:57,dx:52,ecosystem:95,maintain:40,cost:95,compliance:95}}},clerk:{id:"clerk",name:"Clerk",category:"auth",ecosystem:"universal",url:"https://clerk.com",scores:{default:{perf:79,dx:86,ecosystem:69,maintain:95,cost:67,compliance:92},mvp:{perf:76,dx:91,ecosystem:72,maintain:95,cost:67,compliance:92},enterprise:{perf:79,dx:86,ecosystem:64,maintain:100,cost:72,compliance:100}}},vercel:{id:"vercel",name:"Vercel",category:"hosting",ecosystem:"javascript",url:"https://vercel.com",scores:{default:{perf:87,dx:77,ecosystem:65,maintain:81,cost:74,compliance:92},mvp:{perf:84,dx:82,ecosystem:68,maintain:81,cost:74,compliance:92},enterprise:{perf:87,dx:77,ecosystem:60,maintain:86,cost:79,compliance:100}}},cloudflare:{id:"cloudflare",name:"Cloudflare",category:"hosting",ecosystem:"javascript",url:"https://cloudflare.com",scores:{default:{perf:87,dx:73,ecosystem:68,maintain:80,cost:92,compliance:96},mvp:{perf:84,dx:78,ecosystem:71,maintain:80,cost:92,compliance:96},enterprise:{perf:87,dx:73,ecosystem:63,maintain:85,cost:97,compliance:100}}},railway:{id:"railway",name:"Railway",category:"hosting",ecosystem:"universal",url:"https://railway.app",scores:{default:{perf:85,dx:73,ecosystem:45,maintain:77,cost:73,compliance:82},mvp:{perf:82,dx:78,ecosystem:48,maintain:77,cost:73,compliance:82},enterprise:{perf:85,dx:73,ecosystem:40,maintain:82,cost:78,compliance:92}}},fly:{id:"fly",name:"Fly.io",category:"hosting",ecosystem:"universal",url:"https://fly.io",scores:{default:{perf:85,dx:71,ecosystem:43,maintain:75,cost:78,compliance:81},mvp:{perf:82,dx:76,ecosystem:46,maintain:75,cost:78,compliance:81},enterprise:{perf:85,dx:71,ecosystem:38,maintain:80,cost:83,compliance:91}}},nodejs:{id:"nodejs",name:"Node.js",category:"backend",ecosystem:"javascript",url:"https://nodejs.org",scores:{default:{perf:75,dx:85,ecosystem:98,maintain:80,cost:90,compliance:88},mvp:{perf:70,dx:85,ecosystem:98,maintain:78,cost:95,compliance:85},enterprise:{perf:78,dx:85,ecosystem:98,maintain:82,cost:85,compliance:90}}},bun:{id:"bun",name:"Bun",category:"backend",ecosystem:"javascript",url:"https://bun.sh",scores:{default:{perf:98,dx:92,ecosystem:60,maintain:75,cost:95,compliance:80},mvp:{perf:98,dx:95,ecosystem:55,maintain:72,cost:98,compliance:78},enterprise:{perf:98,dx:88,ecosystem:58,maintain:70,cost:90,compliance:75}}},"better-auth":{id:"better-auth",name:"Better Auth",category:"auth",ecosystem:"javascript",url:"https://better-auth.com",scores:{default:{perf:56,dx:99,ecosystem:100,maintain:89,cost:90,compliance:85},mvp:{perf:53,dx:100,ecosystem:100,maintain:89,cost:90,compliance:85},enterprise:{perf:56,dx:99,ecosystem:95,maintain:94,cost:95,compliance:95}}},php:{id:"php",name:"PHP",category:"backend",ecosystem:"php",url:"https://php.net",scores:{default:{perf:75,dx:80,ecosystem:95,maintain:85,cost:90,compliance:80},mvp:{perf:72,dx:85,ecosystem:98,maintain:85,cost:95,compliance:78},enterprise:{perf:78,dx:78,ecosystem:92,maintain:90,cost:88,compliance:85}}},laravel:{id:"laravel",name:"Laravel",category:"meta-framework",ecosystem:"php",stackType:"all-in-one",provides:{orm:{techId:"eloquent",type:"native",label:"Eloquent ORM inclus"},auth:{options:[{techId:"laravel-sanctum",type:"native",label:"Sanctum (API tokens)"},{techId:"laravel-breeze",type:"native",label:"Breeze (starter kit)"}],note:"Auth native incluse. Clerk disponible pour SSO avance."}},preferredHosting:["forge","vapor","ploi","railway"],url:"https://laravel.com",scores:{default:{perf:78,dx:95,ecosystem:92,maintain:88,cost:85,compliance:82},mvp:{perf:75,dx:98,ecosystem:95,maintain:88,cost:90,compliance:80},enterprise:{perf:80,dx:92,ecosystem:88,maintain:92,cost:80,compliance:88}}},eloquent:{id:"eloquent",name:"Eloquent ORM",category:"orm",ecosystem:"php",nativeFor:["laravel"],url:"https://laravel.com/docs/eloquent",scores:{default:{perf:75,dx:92,ecosystem:88,maintain:85,cost:95,compliance:80},mvp:{perf:72,dx:96,ecosystem:90,maintain:85,cost:98,compliance:78},enterprise:{perf:78,dx:88,ecosystem:85,maintain:90,cost:92,compliance:85}}},livewire:{id:"livewire",name:"Livewire",category:"frontend",ecosystem:"php",nativeFor:["laravel"],url:"https://livewire.laravel.com",scores:{default:{perf:70,dx:90,ecosystem:75,maintain:80,cost:95,compliance:80},mvp:{perf:68,dx:95,ecosystem:78,maintain:80,cost:98,compliance:78},enterprise:{perf:72,dx:88,ecosystem:72,maintain:85,cost:92,compliance:85}}},inertia:{id:"inertia",name:"Inertia.js",category:"frontend",ecosystem:"php",nativeFor:["laravel"],url:"https://inertiajs.com",scores:{default:{perf:80,dx:88,ecosystem:70,maintain:82,cost:95,compliance:80},mvp:{perf:78,dx:92,ecosystem:73,maintain:82,cost:98,compliance:78},enterprise:{perf:82,dx:85,ecosystem:68,maintain:87,cost:92,compliance:85}}},"laravel-sanctum":{id:"laravel-sanctum",name:"Laravel Sanctum",category:"auth",ecosystem:"php",nativeFor:["laravel"],url:"https://laravel.com/docs/sanctum",scores:{default:{perf:85,dx:90,ecosystem:80,maintain:85,cost:95,compliance:85},mvp:{perf:82,dx:94,ecosystem:83,maintain:85,cost:98,compliance:82},enterprise:{perf:88,dx:87,ecosystem:78,maintain:90,cost:92,compliance:90}}},"laravel-breeze":{id:"laravel-breeze",name:"Laravel Breeze",category:"auth",ecosystem:"php",nativeFor:["laravel"],url:"https://laravel.com/docs/starter-kits",scores:{default:{perf:80,dx:95,ecosystem:75,maintain:85,cost:100,compliance:80},mvp:{perf:78,dx:98,ecosystem:78,maintain:85,cost:100,compliance:78},enterprise:{perf:82,dx:92,ecosystem:72,maintain:90,cost:100,compliance:85}}},forge:{id:"forge",name:"Laravel Forge",category:"hosting",ecosystem:"php",url:"https://forge.laravel.com",scores:{default:{perf:85,dx:88,ecosystem:80,maintain:75,cost:60,compliance:85},mvp:{perf:82,dx:92,ecosystem:83,maintain:75,cost:55,compliance:82},enterprise:{perf:88,dx:85,ecosystem:78,maintain:80,cost:65,compliance:90}}},vapor:{id:"vapor",name:"Laravel Vapor",category:"hosting",ecosystem:"php",url:"https://vapor.laravel.com",scores:{default:{perf:90,dx:85,ecosystem:70,maintain:70,cost:50,compliance:90},mvp:{perf:88,dx:88,ecosystem:73,maintain:70,cost:45,compliance:88},enterprise:{perf:92,dx:82,ecosystem:68,maintain:75,cost:55,compliance:95}}},ploi:{id:"ploi",name:"Ploi.io",category:"hosting",ecosystem:"php",url:"https://ploi.io",scores:{default:{perf:82,dx:90,ecosystem:65,maintain:75,cost:70,compliance:80},mvp:{perf:80,dx:94,ecosystem:68,maintain:75,cost:75,compliance:78},enterprise:{perf:85,dx:87,ecosystem:62,maintain:80,cost:68,compliance:85}}},symfony:{id:"symfony",name:"Symfony",category:"meta-framework",ecosystem:"php",stackType:"modular",preferredHosting:["forge","ploi","railway"],url:"https://symfony.com",scores:{default:{perf:80,dx:75,ecosystem:88,maintain:90,cost:85,compliance:88},mvp:{perf:78,dx:78,ecosystem:90,maintain:90,cost:88,compliance:85},enterprise:{perf:82,dx:72,ecosystem:85,maintain:95,cost:82,compliance:92}}},doctrine:{id:"doctrine",name:"Doctrine ORM",category:"orm",ecosystem:"php",nativeFor:["symfony"],url:"https://doctrine-project.org",scores:{default:{perf:78,dx:70,ecosystem:85,maintain:88,cost:95,compliance:85},mvp:{perf:75,dx:73,ecosystem:88,maintain:88,cost:98,compliance:82},enterprise:{perf:80,dx:68,ecosystem:82,maintain:92,cost:92,compliance:90}}},filament:{id:"filament",name:"Filament",category:"cms",ecosystem:"php",nativeFor:["laravel"],url:"https://filamentphp.com",scores:{default:{perf:75,dx:92,ecosystem:70,maintain:80,cost:100,compliance:80},mvp:{perf:72,dx:96,ecosystem:73,maintain:80,cost:100,compliance:78},enterprise:{perf:78,dx:89,ecosystem:68,maintain:85,cost:100,compliance:85}}},nova:{id:"nova",name:"Laravel Nova",category:"cms",ecosystem:"php",nativeFor:["laravel"],url:"https://nova.laravel.com",scores:{default:{perf:80,dx:88,ecosystem:75,maintain:85,cost:40,compliance:85},mvp:{perf:78,dx:92,ecosystem:78,maintain:85,cost:35,compliance:82},enterprise:{perf:82,dx:85,ecosystem:72,maintain:90,cost:45,compliance:90}}},planetscale:{id:"planetscale",name:"Planetscale",category:"database",ecosystem:"universal",url:"https://planetscale.com",scores:{default:{perf:75,dx:95,ecosystem:74,maintain:50,cost:73,compliance:94},mvp:{perf:72,dx:100,ecosystem:77,maintain:50,cost:73,compliance:94},enterprise:{perf:75,dx:95,ecosystem:69,maintain:55,cost:78,compliance:100}}},turso:{id:"turso",name:"Turso",category:"database",ecosystem:"universal",url:"https://turso.tech",scores:{default:{perf:92,dx:95,ecosystem:67,maintain:45,cost:88,compliance:88},mvp:{perf:89,dx:100,ecosystem:70,maintain:45,cost:88,compliance:88},enterprise:{perf:92,dx:95,ecosystem:62,maintain:50,cost:93,compliance:98}}},convex:{id:"convex",name:"Convex",category:"database",ecosystem:"javascript",url:"https://convex.dev",scores:{default:{perf:92,dx:100,ecosystem:41,maintain:49,cost:83,compliance:83},mvp:{perf:89,dx:100,ecosystem:44,maintain:49,cost:83,compliance:83},enterprise:{perf:92,dx:100,ecosystem:36,maintain:54,cost:88,compliance:93}}},timescaledb:{id:"timescaledb",name:"Timescaledb",category:"database",ecosystem:"universal",url:"https://timescale.com",scores:{default:{perf:84,dx:69,ecosystem:50,maintain:79,cost:73,compliance:90},mvp:{perf:81,dx:74,ecosystem:53,maintain:79,cost:73,compliance:90},enterprise:{perf:84,dx:69,ecosystem:45,maintain:84,cost:78,compliance:100}}},clickhouse:{id:"clickhouse",name:"Clickhouse",category:"database",ecosystem:"universal",url:"https://clickhouse.com",scores:{default:{perf:93,dx:78,ecosystem:56,maintain:69,cost:78,compliance:89},mvp:{perf:90,dx:83,ecosystem:59,maintain:69,cost:78,compliance:89},enterprise:{perf:93,dx:78,ecosystem:51,maintain:74,cost:83,compliance:99}}},neo4j:{id:"neo4j",name:"Neo4j",category:"database",ecosystem:"universal",url:"https://neo4j.com",scores:{default:{perf:82,dx:82,ecosystem:76,maintain:74,cost:68,compliance:91},mvp:{perf:79,dx:87,ecosystem:79,maintain:74,cost:68,compliance:91},enterprise:{perf:82,dx:82,ecosystem:71,maintain:79,cost:73,compliance:100}}},auth0:{id:"auth0",name:"Auth0",category:"auth",ecosystem:"universal",url:"https://auth0.com",scores:{default:{perf:97,dx:88,ecosystem:68,maintain:84,cost:54,compliance:99},mvp:{perf:94,dx:93,ecosystem:71,maintain:84,cost:54,compliance:99},enterprise:{perf:97,dx:88,ecosystem:63,maintain:89,cost:59,compliance:100}}},workos:{id:"workos",name:"WorkOS",category:"auth",ecosystem:"universal",url:"https://workos.com",scores:{default:{perf:97,dx:86,ecosystem:43,maintain:84,cost:47,compliance:99},mvp:{perf:94,dx:91,ecosystem:46,maintain:84,cost:47,compliance:99},enterprise:{perf:97,dx:86,ecosystem:38,maintain:89,cost:52,compliance:100}}},hanko:{id:"hanko",name:"Hanko",category:"auth",ecosystem:"universal",url:"https://hanko.io",scores:{default:{perf:85,dx:81,ecosystem:35,maintain:87,cost:87,compliance:90},mvp:{perf:82,dx:86,ecosystem:38,maintain:87,cost:87,compliance:90},enterprise:{perf:85,dx:81,ecosystem:30,maintain:92,cost:92,compliance:100}}},kinde:{id:"kinde",name:"Kinde",category:"auth",ecosystem:"universal",url:"https://kinde.com",scores:{default:{perf:92,dx:85,ecosystem:38,maintain:56,cost:77,compliance:92},mvp:{perf:89,dx:90,ecosystem:41,maintain:56,cost:77,compliance:92},enterprise:{perf:92,dx:85,ecosystem:33,maintain:61,cost:82,compliance:100}}},solidstart:{id:"solidstart",name:"Solidstart",category:"meta-framework",ecosystem:"javascript",url:"https://start.solidjs.com",scores:{default:{perf:50,dx:73,ecosystem:88,maintain:52,cost:90,compliance:85},mvp:{perf:47,dx:78,ecosystem:91,maintain:52,cost:90,compliance:85},enterprise:{perf:50,dx:73,ecosystem:83,maintain:57,cost:95,compliance:95}}},typeorm:{id:"typeorm",name:"Typeorm",category:"orm",ecosystem:"javascript",url:"https://typeorm.io",scores:{default:{perf:50,dx:89,ecosystem:100,maintain:74,cost:90,compliance:85},mvp:{perf:47,dx:94,ecosystem:100,maintain:74,cost:90,compliance:85},enterprise:{perf:50,dx:89,ecosystem:95,maintain:79,cost:95,compliance:95}}},sequelize:{id:"sequelize",name:"Sequelize",category:"orm",ecosystem:"javascript",url:"https://sequelize.org",scores:{default:{perf:48,dx:67,ecosystem:100,maintain:49,cost:90,compliance:85},mvp:{perf:45,dx:72,ecosystem:100,maintain:49,cost:90,compliance:85},enterprise:{perf:48,dx:67,ecosystem:95,maintain:54,cost:95,compliance:95}}},netlify:{id:"netlify",name:"Netlify",category:"hosting",ecosystem:"universal",url:"https://netlify.com",scores:{default:{perf:87,dx:76,ecosystem:63,maintain:82,cost:79,compliance:90},mvp:{perf:84,dx:81,ecosystem:66,maintain:82,cost:79,compliance:90},enterprise:{perf:87,dx:76,ecosystem:58,maintain:87,cost:84,compliance:100}}},"deno-deploy":{id:"deno-deploy",name:"Deno Deploy",category:"hosting",ecosystem:"javascript",url:"https://deno.com/deploy",scores:{default:{perf:86,dx:73,ecosystem:38,maintain:77,cost:87,compliance:85},mvp:{perf:83,dx:78,ecosystem:41,maintain:77,cost:87,compliance:85},enterprise:{perf:86,dx:73,ecosystem:33,maintain:82,cost:92,compliance:95}}},coolify:{id:"coolify",name:"Coolify",category:"hosting",ecosystem:"universal",url:"https://coolify.io",scores:{default:{perf:82,dx:71,ecosystem:33,maintain:87,cost:97,compliance:90},mvp:{perf:79,dx:76,ecosystem:36,maintain:87,cost:97,compliance:90},enterprise:{perf:82,dx:71,ecosystem:28,maintain:92,cost:100,compliance:100}}},rust:{id:"rust",name:"Rust",category:"backend",ecosystem:"rust",url:"https://www.rust-lang.org",scores:{default:{perf:98,dx:58,ecosystem:55,maintain:88,cost:95,compliance:92},mvp:{perf:95,dx:48,ecosystem:50,maintain:83,cost:95,compliance:88},enterprise:{perf:98,dx:62,ecosystem:58,maintain:92,cost:92,compliance:96}}},axum:{id:"axum",name:"Axum",category:"meta-framework",ecosystem:"rust",stackType:"modular",preferredHosting:["shuttle","fly","railway"],url:"https://github.com/tokio-rs/axum",scores:{default:{perf:96,dx:72,ecosystem:58,maintain:78,cost:95,compliance:88},mvp:{perf:93,dx:62,ecosystem:52,maintain:73,cost:95,compliance:85},enterprise:{perf:98,dx:75,ecosystem:62,maintain:85,cost:92,compliance:95}}},actix:{id:"actix",name:"Actix Web",category:"meta-framework",ecosystem:"rust",stackType:"modular",preferredHosting:["shuttle","fly","railway"],url:"https://actix.rs",scores:{default:{perf:99,dx:65,ecosystem:62,maintain:82,cost:95,compliance:88},mvp:{perf:96,dx:55,ecosystem:56,maintain:77,cost:95,compliance:85},enterprise:{perf:99,dx:68,ecosystem:65,maintain:88,cost:92,compliance:95}}},rocket:{id:"rocket",name:"Rocket",category:"meta-framework",ecosystem:"rust",stackType:"modular",preferredHosting:["shuttle","fly","railway"],url:"https://rocket.rs",scores:{default:{perf:92,dx:78,ecosystem:55,maintain:75,cost:95,compliance:85},mvp:{perf:89,dx:72,ecosystem:50,maintain:70,cost:95,compliance:82},enterprise:{perf:92,dx:80,ecosystem:58,maintain:82,cost:92,compliance:92}}},loco:{id:"loco",name:"Loco",category:"meta-framework",ecosystem:"rust",stackType:"all-in-one",preferredHosting:["shuttle","fly","railway"],url:"https://loco.rs",provides:{orm:{techId:"sea-orm",type:"native",label:"SeaORM inclus",description:"Loco utilise SeaORM nativement pour l'acces aux donnees"}},scores:{default:{perf:90,dx:82,ecosystem:42,maintain:68,cost:95,compliance:85},mvp:{perf:87,dx:85,ecosystem:38,maintain:65,cost:95,compliance:82},enterprise:{perf:90,dx:78,ecosystem:45,maintain:75,cost:92,compliance:92}}},diesel:{id:"diesel",name:"Diesel",category:"orm",ecosystem:"rust",url:"https://diesel.rs",scores:{default:{perf:98,dx:58,ecosystem:52,maintain:85,cost:100,compliance:88},mvp:{perf:95,dx:50,ecosystem:48,maintain:80,cost:100,compliance:85},enterprise:{perf:98,dx:62,ecosystem:55,maintain:90,cost:100,compliance:95}}},"sea-orm":{id:"sea-orm",name:"SeaORM",category:"orm",ecosystem:"rust",nativeFor:["loco"],url:"https://www.sea-ql.org/SeaORM",scores:{default:{perf:90,dx:75,ecosystem:48,maintain:72,cost:100,compliance:85},mvp:{perf:87,dx:78,ecosystem:45,maintain:68,cost:100,compliance:82},enterprise:{perf:90,dx:72,ecosystem:52,maintain:78,cost:100,compliance:92}}},sqlx:{id:"sqlx",name:"SQLx",category:"orm",ecosystem:"rust",url:"https://github.com/launchbadge/sqlx",scores:{default:{perf:95,dx:68,ecosystem:55,maintain:78,cost:100,compliance:88},mvp:{perf:92,dx:65,ecosystem:50,maintain:73,cost:100,compliance:85},enterprise:{perf:95,dx:70,ecosystem:58,maintain:85,cost:100,compliance:95}}},shuttle:{id:"shuttle",name:"Shuttle",category:"hosting",ecosystem:"rust",url:"https://www.shuttle.dev",scores:{default:{perf:88,dx:92,ecosystem:45,maintain:65,cost:85,compliance:82},mvp:{perf:85,dx:95,ecosystem:42,maintain:62,cost:88,compliance:78},enterprise:{perf:88,dx:88,ecosystem:48,maintain:72,cost:80,compliance:88}}},trpc:{id:"trpc",name:"tRPC",category:"backend",ecosystem:"javascript",url:"https://trpc.io",scores:{default:{perf:80,dx:89,ecosystem:99,maintain:63,cost:90,compliance:85},mvp:{perf:77,dx:94,ecosystem:100,maintain:63,cost:90,compliance:85},enterprise:{perf:80,dx:89,ecosystem:94,maintain:68,cost:95,compliance:95}}},orpc:{id:"orpc",name:"oRPC",category:"backend",ecosystem:"javascript",url:"https://orpc.unnoq.com",scores:{default:{perf:58,dx:43,ecosystem:58,maintain:51,cost:90,compliance:85},mvp:{perf:55,dx:48,ecosystem:61,maintain:51,cost:90,compliance:85},enterprise:{perf:58,dx:43,ecosystem:53,maintain:56,cost:95,compliance:95}}},express:{id:"express",name:"Express",category:"backend",ecosystem:"javascript",url:"https://expressjs.com",scores:{default:{perf:30,dx:41,ecosystem:100,maintain:56,cost:90,compliance:85},mvp:{perf:27,dx:46,ecosystem:100,maintain:56,cost:90,compliance:85},enterprise:{perf:30,dx:41,ecosystem:95,maintain:61,cost:95,compliance:95}}},fastify:{id:"fastify",name:"Fastify",category:"backend",ecosystem:"javascript",url:"https://fastify.dev",scores:{default:{perf:50,dx:71,ecosystem:100,maintain:60,cost:90,compliance:85},mvp:{perf:47,dx:76,ecosystem:100,maintain:60,cost:90,compliance:85},enterprise:{perf:50,dx:71,ecosystem:95,maintain:65,cost:95,compliance:95}}},hono:{id:"hono",name:"Hono",category:"backend",ecosystem:"javascript",url:"https://hono.dev",scores:{default:{perf:85,dx:87,ecosystem:98,maintain:62,cost:90,compliance:85},mvp:{perf:82,dx:92,ecosystem:100,maintain:62,cost:90,compliance:85},enterprise:{perf:85,dx:87,ecosystem:93,maintain:67,cost:95,compliance:95}}},elysia:{id:"elysia",name:"Elysia",category:"backend",ecosystem:"javascript",url:"https://elysiajs.com",scores:{default:{perf:72,dx:97,ecosystem:96,maintain:76,cost:90,compliance:85},mvp:{perf:69,dx:100,ecosystem:99,maintain:76,cost:90,compliance:85},enterprise:{perf:72,dx:97,ecosystem:91,maintain:81,cost:95,compliance:95}}},"tanstack-router":{id:"tanstack-router",name:"TanStack Router",category:"frontend",ecosystem:"javascript",url:"https://tanstack.com/router",scores:{default:{perf:68,dx:100,ecosystem:99,maintain:83,cost:90,compliance:85},mvp:{perf:65,dx:100,ecosystem:100,maintain:83,cost:90,compliance:85},enterprise:{perf:68,dx:100,ecosystem:94,maintain:88,cost:95,compliance:95}}},"tanstack-start":{id:"tanstack-start",name:"TanStack Start",category:"meta-framework",ecosystem:"javascript",stackType:"modular",preferredHosting:["vercel","cloudflare","netlify"],url:"https://tanstack.com/start",scores:{default:{perf:64,dx:100,ecosystem:99,maintain:83,cost:90,compliance:85},mvp:{perf:61,dx:100,ecosystem:100,maintain:83,cost:90,compliance:85},enterprise:{perf:64,dx:100,ecosystem:94,maintain:88,cost:95,compliance:95}}},"react-router":{id:"react-router",name:"React Router",category:"frontend",ecosystem:"javascript",url:"https://reactrouter.com",scores:{default:{perf:77,dx:99,ecosystem:100,maintain:84,cost:90,compliance:85},mvp:{perf:74,dx:100,ecosystem:100,maintain:84,cost:90,compliance:85},enterprise:{perf:77,dx:99,ecosystem:95,maintain:89,cost:95,compliance:95}}},mongoose:{id:"mongoose",name:"Mongoose",category:"orm",ecosystem:"javascript",url:"https://mongoosejs.com",scores:{default:{perf:68,dx:90,ecosystem:100,maintain:80,cost:90,compliance:85},mvp:{perf:65,dx:95,ecosystem:100,maintain:80,cost:90,compliance:85},enterprise:{perf:68,dx:90,ecosystem:95,maintain:85,cost:95,compliance:95}}},polar:{id:"polar",name:"Polar",category:"payments",ecosystem:"universal",url:"https://polar.sh",scores:{default:{perf:93,dx:84,ecosystem:49,maintain:87,cost:72,compliance:83},mvp:{perf:90,dx:89,ecosystem:52,maintain:87,cost:72,compliance:83},enterprise:{perf:93,dx:84,ecosystem:44,maintain:92,cost:77,compliance:93}}},"cloudflare-d1":{id:"cloudflare-d1",name:"Cloudflare D1",category:"database",ecosystem:"javascript",url:"https://developers.cloudflare.com/d1",scores:{default:{perf:84,dx:76,ecosystem:41,maintain:72,cost:93,compliance:91},mvp:{perf:81,dx:81,ecosystem:44,maintain:72,cost:93,compliance:91},enterprise:{perf:84,dx:76,ecosystem:36,maintain:77,cost:98,compliance:100}}}}};var W_={$version:"1.5.0",$description:"Compatibility scores between technologies (0-100). 0 = hard incompatible, <50 = poor, 50-79 = acceptable, 80+ = good. Payments providers are mutually exclusive. PHP and JS stacks are separate ecosystems.",matrix:{react:{nextjs:100,remix:100,nuxt:0,sveltekit:0,drizzle:95,prisma:95},vue:{nuxt:100,nextjs:0,remix:0,sveltekit:0,drizzle:90,prisma:95},svelte:{sveltekit:100,nextjs:0,remix:0,nuxt:0,drizzle:95,prisma:90},solid:{nextjs:0,remix:0,nuxt:0,sveltekit:0,drizzle:85,prisma:85},nextjs:{react:100,vercel:100,cloudflare:80,railway:90,postgres:95,sqlite:70,supabase:95,firebase:90,drizzle:95,prisma:95,"better-auth":90,clerk:100},nuxt:{vue:100,vercel:95,cloudflare:85,railway:90,postgres:95,sqlite:80,supabase:90,firebase:85,drizzle:90,prisma:95},sveltekit:{svelte:100,vercel:95,cloudflare:90,railway:90,postgres:95,sqlite:85,supabase:90,firebase:85,drizzle:100,prisma:85,"better-auth":95},remix:{react:100,vercel:90,cloudflare:95,railway:90,postgres:95,sqlite:85,supabase:90,firebase:80,drizzle:95,prisma:90},nodejs:{postgres:95,sqlite:90,supabase:90,drizzle:95,prisma:95,vercel:90,cloudflare:75,railway:95},bun:{postgres:90,sqlite:95,supabase:85,drizzle:100,prisma:70,vercel:80,cloudflare:85,railway:90,sveltekit:100},postgres:{drizzle:100,prisma:100,supabase:100,vercel:95,cloudflare:90,railway:100},sqlite:{drizzle:100,prisma:95,vercel:60,cloudflare:95,railway:80},supabase:{drizzle:90,prisma:95,postgres:100,vercel:95,cloudflare:90,railway:90,neon:30,firebase:20},firebase:{nextjs:90,nuxt:85,sveltekit:85,remix:80,react:95,vue:85,svelte:80,vercel:90,cloudflare:70,railway:75,drizzle:0,prisma:0,postgres:0,supabase:20,neon:0},neon:{drizzle:98,prisma:95,postgres:100,vercel:98,cloudflare:85,railway:90,sveltekit:95,nextjs:95,nuxt:90,remix:90,supabase:30,sqlite:20},drizzle:{postgres:100,sqlite:100,supabase:90,neon:98,bun:100,nodejs:95},prisma:{postgres:100,sqlite:95,supabase:95,neon:95,bun:70,nodejs:100},vercel:{nextjs:100,nuxt:95,sveltekit:95,remix:90,postgres:95,supabase:95,neon:98},cloudflare:{nextjs:80,nuxt:85,sveltekit:90,remix:95,sqlite:95,postgres:85,drizzle:95,prisma:45,kysely:80},railway:{nextjs:90,nuxt:90,sveltekit:90,remix:90,postgres:100,nodejs:100,bun:95},stripe:{nextjs:95,sveltekit:90,nuxt:90,remix:90,nodejs:95,bun:90,paddle:0,lemonsqueezy:0,gumroad:0},paddle:{nextjs:90,sveltekit:95,nuxt:90,remix:88,nodejs:90,bun:90,stripe:0,lemonsqueezy:0,gumroad:0},lemonsqueezy:{nextjs:85,sveltekit:85,nuxt:85,remix:85,nodejs:85,bun:85,stripe:0,paddle:0,gumroad:0},gumroad:{nextjs:70,sveltekit:70,nuxt:70,remix:70,nodejs:70,bun:70,stripe:0,paddle:0,lemonsqueezy:0},php:{laravel:100,symfony:100,eloquent:100,doctrine:100,livewire:100,inertia:95,"laravel-sanctum":100,"laravel-breeze":100,forge:100,vapor:100,ploi:100,filament:100,nova:100,mysql:100,postgres:95,sqlite:90,mongodb:85,railway:75,nodejs:0,bun:0,nextjs:0,sveltekit:0,nuxt:0,remix:0,drizzle:0,prisma:0},laravel:{php:100,eloquent:100,livewire:100,inertia:95,"laravel-sanctum":100,"laravel-breeze":100,forge:100,vapor:100,ploi:95,filament:100,nova:100,mysql:100,postgres:95,sqlite:90,mongodb:70,neon:85,supabase:60,railway:75,stripe:95,paddle:90,symfony:0,doctrine:0,nextjs:0,sveltekit:0,nuxt:0,remix:0,vercel:0,cloudflare:0,drizzle:0,prisma:0},eloquent:{php:100,laravel:100,mysql:100,postgres:100,sqlite:95,mongodb:80,neon:85,doctrine:0,drizzle:0,prisma:0,kysely:0},livewire:{php:100,laravel:100,eloquent:95,forge:100,vapor:95,ploi:95,inertia:40,react:0,vue:0,svelte:0,solid:0},inertia:{php:95,laravel:95,eloquent:90,forge:95,vapor:90,react:90,vue:95,svelte:85,livewire:40},"laravel-sanctum":{php:100,laravel:100,eloquent:100,livewire:95,inertia:95,"laravel-breeze":100,lucia:0,authjs:0,clerk:0,"better-auth":0},"laravel-breeze":{php:100,laravel:100,eloquent:100,livewire:95,inertia:95,"laravel-sanctum":100,lucia:0,authjs:0,clerk:0,"better-auth":0},forge:{php:100,laravel:100,symfony:90,mysql:100,postgres:100,vapor:0,ploi:0,vercel:0,cloudflare:0,railway:0,fly:0},vapor:{php:100,laravel:100,mysql:95,postgres:90,forge:0,ploi:0,vercel:0,cloudflare:0,railway:0,fly:0},ploi:{php:100,laravel:95,symfony:85,mysql:100,postgres:100,forge:0,vapor:0,vercel:0,cloudflare:0,railway:0,fly:0},symfony:{php:100,doctrine:100,mysql:100,postgres:95,sqlite:85,forge:90,ploi:85,laravel:0,eloquent:0,livewire:0,inertia:50,nextjs:0,sveltekit:0},doctrine:{php:100,symfony:100,mysql:100,postgres:100,sqlite:90,eloquent:0,drizzle:0,prisma:0,kysely:0},filament:{php:100,laravel:100,eloquent:100,livewire:100,forge:95,vapor:90,nova:0},nova:{php:100,laravel:100,eloquent:100,forge:95,vapor:90,filament:0},planetscale:{drizzle:100,prisma:100,typeorm:95,sequelize:95,kysely:90,nextjs:95,sveltekit:95,nuxt:90,remix:90,vercel:95,railway:90,netlify:85,neon:30,supabase:30,turso:30,postgres:40,mysql:100},turso:{drizzle:100,prisma:90,typeorm:60,sequelize:60,kysely:85,nextjs:90,sveltekit:95,nuxt:85,remix:90,vercel:90,cloudflare:95,railway:80,netlify:85,sqlite:100,neon:30,supabase:30,planetscale:30},convex:{nextjs:95,sveltekit:85,nuxt:80,remix:85,vercel:90,netlify:85,drizzle:0,prisma:0,typeorm:0,sequelize:0,kysely:0,postgres:0,mysql:0,sqlite:0},timescaledb:{drizzle:95,prisma:90,typeorm:85,sequelize:85,kysely:90,postgres:100,nextjs:90,sveltekit:90,nuxt:85,railway:95,vercel:85},clickhouse:{nextjs:80,sveltekit:80,nuxt:75,remix:75,vercel:75,railway:85,drizzle:50,prisma:40,typeorm:40,postgres:30,mysql:30},neo4j:{nextjs:85,sveltekit:80,nuxt:80,remix:80,vercel:80,railway:90,drizzle:0,prisma:0,typeorm:0,sequelize:0,postgres:20,mysql:20},solidstart:{solid:100,cloudflare:95,vercel:90,netlify:90,railway:85,drizzle:90,prisma:85,postgres:90,sqlite:85,turso:90,nextjs:0,sveltekit:0,nuxt:0,remix:0},typeorm:{postgres:100,mysql:100,sqlite:95,mongodb:85,planetscale:95,timescaledb:85,neon:90,nextjs:90,sveltekit:85,nuxt:85,remix:85,drizzle:30,prisma:30,sequelize:30,kysely:30},sequelize:{postgres:100,mysql:100,sqlite:95,mongodb:0,planetscale:95,timescaledb:85,neon:90,nextjs:85,sveltekit:80,nuxt:80,remix:80,drizzle:30,prisma:30,typeorm:30,kysely:30},netlify:{nextjs:95,sveltekit:95,nuxt:95,remix:90,astro:100,solidstart:90,postgres:85,supabase:90,neon:90,planetscale:85,turso:85,vercel:0,cloudflare:0,railway:0,fly:0},"deno-deploy":{sveltekit:70,nextjs:50,nuxt:50,remix:60,astro:75,solidstart:70,postgres:85,sqlite:80,neon:85,turso:90,drizzle:85,prisma:60,vercel:0,cloudflare:0,railway:0,netlify:0,fly:0},coolify:{nextjs:95,sveltekit:95,nuxt:95,remix:95,astro:95,solidstart:90,laravel:95,postgres:100,mysql:100,mongodb:95,vercel:0,cloudflare:0,railway:0,netlify:0,fly:0,forge:0},auth0:{nextjs:100,sveltekit:90,nuxt:90,remix:90,solidstart:85,laravel:85,lucia:0,authjs:0,clerk:0,workos:0,hanko:0,kinde:0,"better-auth":0},workos:{nextjs:100,sveltekit:85,nuxt:85,remix:85,solidstart:80,lucia:0,authjs:0,clerk:0,auth0:0,hanko:0,kinde:0,"better-auth":0},hanko:{nextjs:95,sveltekit:90,nuxt:90,remix:90,solidstart:85,lucia:0,authjs:0,clerk:0,auth0:0,workos:0,kinde:0,"better-auth":0},kinde:{nextjs:100,sveltekit:90,nuxt:90,remix:90,solidstart:85,lucia:0,authjs:0,clerk:0,auth0:0,workos:0,hanko:0,"better-auth":0},rust:{axum:100,actix:100,rocket:100,loco:100,diesel:100,"sea-orm":100,sqlx:100,shuttle:100,fly:95,railway:90,postgres:100,neon:95,sqlite:95,supabase:85,nodejs:0,bun:0,php:0,nextjs:0,sveltekit:0,nuxt:0,remix:0,laravel:0,drizzle:0,prisma:0,eloquent:0},axum:{rust:100,diesel:95,"sea-orm":100,sqlx:100,shuttle:100,fly:100,railway:95,cloudflare:75,postgres:100,neon:95,sqlite:95,supabase:85,stripe:90,paddle:90,clerk:75,auth0:75,actix:0,rocket:0,loco:0,nodejs:0,bun:0,php:0,nextjs:0,sveltekit:0,laravel:0,drizzle:0,prisma:0,eloquent:0},actix:{rust:100,diesel:100,"sea-orm":95,sqlx:100,shuttle:100,fly:100,railway:95,cloudflare:70,postgres:100,neon:95,sqlite:95,supabase:85,stripe:90,paddle:90,clerk:75,auth0:75,axum:0,rocket:0,loco:0,nodejs:0,bun:0,php:0,nextjs:0,sveltekit:0,laravel:0,drizzle:0,prisma:0,eloquent:0},rocket:{rust:100,diesel:95,"sea-orm":90,sqlx:95,shuttle:100,fly:95,railway:90,postgres:100,neon:95,sqlite:95,supabase:80,stripe:90,paddle:90,clerk:70,auth0:70,axum:0,actix:0,loco:0,nodejs:0,bun:0,php:0,nextjs:0,sveltekit:0,laravel:0,drizzle:0,prisma:0,eloquent:0},loco:{rust:100,"sea-orm":100,sqlx:85,diesel:70,shuttle:100,fly:95,railway:90,postgres:100,neon:95,sqlite:95,supabase:85,stripe:90,paddle:90,clerk:75,auth0:75,axum:0,actix:0,rocket:0,nodejs:0,bun:0,php:0,nextjs:0,sveltekit:0,laravel:0,drizzle:0,prisma:0,eloquent:0},diesel:{rust:100,axum:95,actix:100,rocket:95,loco:70,postgres:100,mysql:100,sqlite:100,neon:95,"sea-orm":30,sqlx:40,drizzle:0,prisma:0,eloquent:0},"sea-orm":{rust:100,axum:100,actix:95,rocket:90,loco:100,postgres:100,mysql:100,sqlite:100,neon:95,diesel:30,sqlx:50,drizzle:0,prisma:0,eloquent:0},sqlx:{rust:100,axum:100,actix:100,rocket:95,loco:85,postgres:100,mysql:100,sqlite:100,neon:95,diesel:40,"sea-orm":50,drizzle:0,prisma:0,eloquent:0},shuttle:{rust:100,axum:100,actix:100,rocket:100,loco:100,diesel:95,"sea-orm":95,sqlx:95,postgres:100,neon:90,sqlite:90,fly:0,railway:0,vercel:0,cloudflare:0,forge:0},trpc:{nextjs:100,react:100,"tanstack-router":95,"tanstack-start":100,sveltekit:85,nuxt:75,remix:90,express:95,fastify:95,hono:90,elysia:85,nodejs:100,bun:95,postgres:90,neon:90,supabase:90,drizzle:95,prisma:95,vercel:100,cloudflare:85,railway:95,orpc:0},orpc:{nextjs:95,react:95,"tanstack-router":90,"tanstack-start":95,sveltekit:80,nuxt:70,remix:85,express:90,fastify:90,hono:85,elysia:80,nodejs:95,bun:90,vercel:95,cloudflare:80,trpc:0},express:{nodejs:100,bun:70,nextjs:80,sveltekit:75,nuxt:75,remix:80,postgres:95,mysql:95,sqlite:90,mongodb:100,neon:90,supabase:90,drizzle:90,prisma:95,mongoose:100,trpc:95,vercel:85,cloudflare:40,railway:100,fly:100,fastify:0,hono:0,elysia:0},fastify:{nodejs:100,bun:85,nextjs:75,sveltekit:70,nuxt:70,remix:75,postgres:95,mysql:95,sqlite:90,mongodb:95,neon:90,supabase:90,drizzle:95,prisma:95,mongoose:95,trpc:95,vercel:80,cloudflare:50,railway:100,fly:100,express:0,hono:0,elysia:0},hono:{cloudflare:100,bun:100,nodejs:95,vercel:95,"deno-deploy":100,nextjs:70,sveltekit:65,remix:70,postgres:90,sqlite:95,neon:95,turso:100,"cloudflare-d1":100,drizzle:100,prisma:45,trpc:90,railway:90,fly:95,express:0,fastify:0,elysia:0},elysia:{bun:100,nodejs:60,cloudflare:85,vercel:70,postgres:90,sqlite:95,mongodb:90,neon:90,turso:95,drizzle:95,prisma:70,mongoose:90,trpc:85,railway:85,fly:90,express:0,fastify:0,hono:0},"tanstack-router":{react:100,nextjs:40,"tanstack-start":100,trpc:95,orpc:90,vercel:95,cloudflare:90,netlify:90,vue:0,svelte:0},"tanstack-start":{react:100,"tanstack-router":100,trpc:100,orpc:95,postgres:95,sqlite:90,neon:95,turso:95,supabase:90,drizzle:95,prisma:90,vercel:95,cloudflare:90,netlify:90,railway:85,nextjs:0,sveltekit:0,nuxt:0,remix:0},"react-router":{react:100,nextjs:30,remix:100,express:90,fastify:85,hono:80,vercel:95,cloudflare:90,netlify:95,vue:0,svelte:0},mongoose:{mongodb:100,express:100,fastify:95,hono:85,elysia:90,nextjs:95,sveltekit:85,nuxt:90,remix:90,nodejs:100,bun:90,vercel:90,railway:95,drizzle:0,prisma:0,typeorm:0,sequelize:0,kysely:0,postgres:0,mysql:0,sqlite:0},polar:{nextjs:90,sveltekit:85,nuxt:85,remix:85,"tanstack-start":85,nodejs:90,bun:85,stripe:0,paddle:0,lemonsqueezy:0,gumroad:0},"cloudflare-d1":{cloudflare:100,hono:100,sveltekit:90,nextjs:80,nuxt:80,remix:90,astro:90,drizzle:100,prisma:60,kysely:90,sqlite:100,turso:50,postgres:0,mysql:0,mongodb:0,neon:0,supabase:0,vercel:0,railway:0,fly:0}}};var J_={$version:"2.4.0",constraints:[{id:"language-javascript",label:"JavaScript/TypeScript Stack",category:"ecosystem",description:"Prefer JavaScript/TypeScript technologies (Node.js, React, Vue, Svelte, etc.)",techModifiers:{php:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},laravel:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},symfony:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},eloquent:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},doctrine:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},livewire:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},inertia:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"laravel-sanctum":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"laravel-breeze":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},forge:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},vapor:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},ploi:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},filament:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},nova:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},rust:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},axum:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},actix:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},rocket:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},loco:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},diesel:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"sea-orm":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},sqlx:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},shuttle:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},neon:{dx:10,ecosystem:8},vercel:{dx:12,ecosystem:10},cloudflare:{dx:10,ecosystem:8},"better-auth":{dx:10}}},{id:"language-php",label:"PHP Stack",category:"ecosystem",description:"Prefer PHP technologies (Laravel, Symfony, etc.)",techModifiers:{nodejs:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},bun:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},nextjs:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},sveltekit:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},nuxt:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},remix:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},astro:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},react:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},vue:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},svelte:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},solid:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},drizzle:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},prisma:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},kysely:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},lucia:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},authjs:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},clerk:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"better-auth":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},vercel:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},cloudflare:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},fly:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},solidstart:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},typeorm:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},sequelize:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},netlify:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"deno-deploy":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},convex:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},rust:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},axum:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},actix:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},rocket:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},loco:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},diesel:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"sea-orm":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},sqlx:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},shuttle:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100}}},{id:"language-rust",label:"Rust Stack",category:"ecosystem",description:"Prefer Rust technologies (Axum, Actix, Rocket, Loco, etc.)",techModifiers:{nodejs:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},bun:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},php:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},nextjs:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},sveltekit:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},nuxt:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},remix:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},astro:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},solidstart:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},laravel:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},symfony:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},drizzle:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},prisma:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},kysely:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},typeorm:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},sequelize:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},eloquent:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},doctrine:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},lucia:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},authjs:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"better-auth":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"laravel-sanctum":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"laravel-breeze":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},livewire:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},inertia:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},vercel:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},netlify:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},forge:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},vapor:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},ploi:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},filament:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},nova:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},react:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},vue:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},svelte:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},solid:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},cloudflare:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"deno-deploy":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"tanstack-start":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"tanstack-router":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"react-router":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},hono:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},elysia:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},fastify:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},express:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},trpc:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},orpc:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},mongoose:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},convex:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"cloudflare-d1":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},rust:{perf:4,maintain:3},axum:{dx:4,perf:4},actix:{perf:5,maintain:2},rocket:{dx:4},loco:{dx:5,ecosystem:2},diesel:{perf:4,maintain:3},"sea-orm":{dx:3,maintain:2},sqlx:{perf:3,dx:2},shuttle:{dx:5,cost:3}}},{id:"real-time",label:"Real-time Data",category:"data",description:"WebSockets, live updates, subscriptions",techModifiers:{supabase:{perf:10,ecosystem:5},firebase:{perf:10,ecosystem:10,dx:5},convex:{perf:15,dx:10,ecosystem:5},postgres:{perf:5},sqlite:{perf:-15,ecosystem:-10}},impliesProjectType:"saas",impliesPriorities:["performance"]},{id:"multi-tenant",label:"Multi-tenant Architecture",category:"data",description:"Row-level security, tenant isolation",techModifiers:{postgres:{maintain:10,compliance:5},supabase:{maintain:10,compliance:5,dx:5},neon:{perf:10,dx:8,cost:-5,maintain:10,compliance:5},planetscale:{maintain:10},sqlite:{maintain:-15,compliance:-10},firebase:{maintain:-10},vercel:{dx:10},cloudflare:{dx:12,cost:8,perf:10}},impliesScale:"growth",impliesPriorities:["security"]},{id:"offline-first",label:"Offline First",category:"data",description:"Works without network connection",techModifiers:{sqlite:{perf:15,dx:10},firebase:{perf:10,ecosystem:5},postgres:{perf:-10},supabase:{perf:-5}},impliesProjectType:"mobile-app"},{id:"high-volume",label:"High Volume Data",category:"data",description:"Large datasets, heavy read/write",techModifiers:{postgres:{perf:10},planetscale:{perf:10},clickhouse:{perf:15},sqlite:{perf:-15},mongodb:{perf:-5},neon:{cost:10,perf:12}},impliesScale:"growth"},{id:"time-series",label:"Time-series Data",category:"data",description:"IoT, metrics, event streams",techModifiers:{timescaledb:{perf:15,ecosystem:10},clickhouse:{perf:15,ecosystem:5},postgres:{perf:5},mongodb:{perf:-10}}},{id:"graph-data",label:"Graph Data",category:"data",description:"Relationships, social graphs",techModifiers:{neo4j:{ecosystem:15,perf:10},postgres:{ecosystem:5},sqlite:{ecosystem:-10}}},{id:"social-login",label:"Social Login",category:"auth",description:"OAuth providers (Google, GitHub, etc.)",techModifiers:{lucia:{dx:10},"better-auth":{dx:10,ecosystem:5},clerk:{dx:15,ecosystem:5},auth0:{dx:10,ecosystem:5}}},{id:"sso-saml",label:"SSO / SAML",category:"auth",description:"Enterprise single sign-on",techModifiers:{auth0:{ecosystem:15,compliance:10},clerk:{ecosystem:10,dx:5,compliance:5},workos:{compliance:15,ecosystem:10},lucia:{ecosystem:-10,compliance:-5},"better-auth":{ecosystem:-5,dx:10}},impliesScale:"enterprise",impliesPriorities:["security","compliance"]},{id:"passwordless",label:"Passwordless",category:"auth",description:"Magic links, passkeys",techModifiers:{clerk:{dx:10,ecosystem:5},hanko:{dx:15,ecosystem:5},lucia:{dx:5},"better-auth":{dx:10}}},{id:"2fa",label:"Two-Factor Auth",category:"auth",description:"TOTP, SMS, hardware keys",techModifiers:{clerk:{compliance:10,dx:5},auth0:{compliance:10,dx:5},lucia:{compliance:5},"better-auth":{compliance:5,dx:5}},impliesPriorities:["security"]},{id:"role-based",label:"Role-Based Access",category:"auth",description:"RBAC, permissions system",techModifiers:{lucia:{dx:10},"better-auth":{dx:10},clerk:{dx:10,ecosystem:5},planetscale:{dx:10}}},{id:"edge-deploy",label:"Edge Deployment",category:"scale",description:"Global edge functions",techModifiers:{sveltekit:{perf:10,ecosystem:5},nextjs:{perf:10,ecosystem:5},cloudflare:{perf:15,ecosystem:5,"edge-first":15},vercel:{perf:12,ecosystem:5,"high-throughput-api":10},express:{perf:-10},neon:{perf:8},hono:{perf:15,dx:10},elysia:{perf:8,dx:5},orpc:{perf:12},trpc:{perf:5},"cloudflare-d1":{perf:15,cost:10},"tanstack-start":{perf:8,dx:5}},impliesPriorities:["performance"]},{id:"serverless",label:"Serverless",category:"scale",description:"Auto-scaling, pay-per-use",techModifiers:{vercel:{cost:10,dx:8,perf:10},netlify:{cost:10,dx:5},cloudflare:{perf:8,cost:12,maintain:5,dx:8},neon:{cost:12,dx:8,perf:10},planetscale:{cost:10,dx:6,perf:5},supabase:{cost:5,dx:5},hono:{perf:12,cost:10},fastify:{perf:8,cost:8},elysia:{perf:5},orpc:{perf:8},trpc:{perf:-5},express:{perf:-10,cost:-5},"cloudflare-d1":{perf:12,cost:15},"tanstack-start":{dx:8},mongoose:{perf:-5}},impliesPriorities:["cost"]},{id:"self-hosted",label:"Self-Hosted",category:"scale",description:"On-premise, own infrastructure",techModifiers:{postgres:{cost:10,compliance:10},sqlite:{cost:15,compliance:5},docker:{dx:10,cost:5},coolify:{dx:15,cost:10},vercel:{cost:-10},planetscale:{cost:-10}},impliesPriorities:["compliance","cost"]},{id:"hybrid-cloud",label:"Hybrid Cloud",category:"scale",description:"Multi-cloud, on-prem + cloud",techModifiers:{kubernetes:{maintain:10,compliance:5},docker:{maintain:10,dx:5}},impliesScale:"enterprise"},{id:"file-uploads",label:"File Uploads",category:"features",description:"Large file handling, CDN",techModifiers:{uploadthing:{dx:15,ecosystem:5},supabase:{dx:10,ecosystem:5},cloudflare:{cost:10,perf:5}}},{id:"payments",label:"Payments",category:"features",description:"Stripe, subscriptions, billing",techModifiers:{stripe:{ecosystem:15,compliance:5},lemonsqueezy:{dx:10,ecosystem:5},"better-auth":{dx:5},polar:{dx:8,cost:5,compliance:8},paddle:{compliance:12,dx:5}},impliesProjectType:"saas"},{id:"notifications",label:"Notifications",category:"features",description:"Email, push, in-app",techModifiers:{resend:{dx:10,ecosystem:5},novu:{dx:15,ecosystem:5},pusher:{dx:10}}},{id:"full-text-search",label:"Full-Text Search",category:"features",description:"Advanced search, filtering",techModifiers:{meilisearch:{perf:15,dx:10},algolia:{perf:10,dx:10},typesense:{perf:10,dx:5},postgres:{perf:5},sqlite:{perf:-5}}},{id:"analytics",label:"Analytics",category:"features",description:"User tracking, product analytics",techModifiers:{posthog:{dx:15,compliance:5},plausible:{dx:10,compliance:10},mixpanel:{dx:10}}},{id:"i18n",label:"Internationalization",category:"features",description:"Multi-language support",techModifiers:{nextjs:{dx:10,ecosystem:5},sveltekit:{dx:10},nuxt:{dx:10,ecosystem:5},"better-auth":{dx:10}}},{id:"solo-dev",label:"Solo Developer",category:"team",description:"Optimized for one-person teams",techModifiers:{supabase:{dx:15,cost:5},firebase:{dx:15,cost:5},sveltekit:{dx:10},convex:{dx:15},neon:{dx:15},vercel:{dx:15}},impliesScale:"mvp"},{id:"small-team",label:"Small Team",category:"team",description:"2-5 developers",techModifiers:{nextjs:{ecosystem:5,maintain:5},sveltekit:{dx:5},drizzle:{dx:5},neon:{dx:12},planetscale:{dx:7},vercel:{dx:12,ecosystem:8}},impliesScale:"startup"},{id:"enterprise-team",label:"Enterprise Team",category:"team",description:"Large development teams",techModifiers:{nextjs:{ecosystem:10,maintain:10},postgres:{maintain:10,compliance:5},auth0:{compliance:10,ecosystem:5},vercel:{dx:8,maintain:5},planetscale:{dx:8},cloudflare:{dx:8,maintain:6}},impliesScale:"enterprise",impliesPriorities:["maintainability"]},{id:"realtime",label:"Real-time Features",category:"features",description:"WebSockets, live updates, collaborative editing",techModifiers:{supabase:{dx:12,perf:5,ecosystem:8},firebase:{dx:10,perf:5,ecosystem:5},convex:{dx:15,perf:8},pusher:{dx:8,perf:10},ably:{perf:12,ecosystem:5},trpc:{dx:10,perf:5},orpc:{perf:10},mongoose:{perf:5}},impliesPriorities:["performance"]},{id:"edge-first",label:"Edge-First Architecture",category:"scale",description:"Edge computing, minimal latency, global distribution",techModifiers:{vercel:{perf:10,dx:6,cost:-8},cloudflare:{perf:15,cost:10},netlify:{perf:10,dx:5},"deno-deploy":{perf:12,dx:8},hono:{perf:15,dx:12},"cloudflare-d1":{perf:15,cost:12},elysia:{perf:10,dx:8}},impliesPriorities:["performance"]},{id:"high-throughput-api",label:"High Throughput API",category:"scale",description:"Maximum requests per second, minimal latency, efficient resource usage",techModifiers:{rust:{perf:8,cost:4},actix:{perf:10,cost:4},axum:{perf:8,cost:4},sqlx:{perf:5},diesel:{perf:6},bun:{perf:6},cloudflare:{perf:12},neon:{perf:10},hono:{perf:8},fastify:{perf:10},elysia:{perf:15,dx:8},express:{perf:-8},mongoose:{perf:-5}},impliesScale:"growth",impliesPriorities:["performance"]}]};var Z_={$version:"1.0.0",$description:"Context-based delta adjustments for scoring. Applied based on user context (team, timeline, budget, etc.)",limits:{singleDeltaMax:15,singleDeltaMin:-15,totalDeltaMax:30,totalDeltaMin:-30},rules:[{id:"solo-team-dx-boost",description:"Solo developers prioritize DX and simple solutions",condition:{teamSize:"solo"},deltas:{dx:10,maintain:-5}},{id:"enterprise-compliance-boost",description:"Enterprise scale requires compliance and maintainability",condition:{scale:"enterprise"},deltas:{compliance:15,maintain:10,dx:-5}},{id:"bootstrap-cost-boost",description:"Bootstrap budget prioritizes cost savings",condition:{budget:"bootstrap"},deltas:{cost:15,perf:-5}},{id:"unlimited-budget-quality",description:"Unlimited budget allows premium solutions",condition:{budget:"unlimited"},deltas:{perf:10,compliance:10,cost:-15}},{id:"hackathon-speed",description:"Hackathon timeline prioritizes shipping fast",condition:{timeline:"hackathon"},deltas:{dx:15,ecosystem:5,maintain:-10,compliance:-10}},{id:"long-term-stability",description:"Long-term projects need maintainability",condition:{timeline:"long-term"},deltas:{maintain:15,compliance:5,dx:-5}},{id:"startup-scale-balance",description:"Startups balance growth potential with velocity",condition:{scale:"startup"},deltas:{dx:5,ecosystem:5,cost:5}},{id:"growth-scale-perf",description:"Growth stage needs performance and scalability",condition:{scale:"growth"},deltas:{perf:10,maintain:5}},{id:"mvp-scale-speed",description:"MVP stage prioritizes shipping quickly",condition:{scale:"mvp"},deltas:{dx:10,cost:5,maintain:-5}},{id:"small-team-collaboration",description:"Small teams need good tooling",condition:{teamSize:"small"},deltas:{dx:5,ecosystem:5}},{id:"large-team-structure",description:"Large teams need structure and compliance",condition:{teamSize:"large"},deltas:{maintain:10,compliance:5,dx:-5}},{id:"saas-project-type",description:"SaaS projects need subscription and auth patterns",condition:{projectType:"saas"},deltas:{ecosystem:5,maintain:5}},{id:"ecommerce-project-type",description:"E-commerce needs payments and security",condition:{projectType:"e-commerce"},deltas:{compliance:10,perf:5}},{id:"api-project-type",description:"API-first projects prioritize performance",condition:{projectType:"api"},deltas:{perf:10,dx:5}},{id:"moderate-budget-balance",description:"Moderate budget balances cost and quality",condition:{budget:"moderate"},deltas:{cost:5,dx:3}},{id:"standard-timeline",description:"Standard timeline allows for balanced approach",condition:{timeline:"standard"},deltas:{maintain:5}}]};var $q=null,iq=null,Kq=null,tq=null;function n_(){if($q)return $q;let q=H_;$q=new Map;for(let[_,f]of Object.entries(q.technologies))$q.set(_,f);return $q}function r6(){if(iq)return iq;return iq=W_.matrix,iq}function o_(){if(Kq)return Kq;let q=J_;Kq=new Map;for(let _ of q.constraints)Kq.set(_.id,_);return Kq}function O6(){return Array.from(o_().values())}function T6(){if(tq)return tq;return tq=Z_,tq}function Y6(){let q=H_,_=W_,f=J_,$=Z_;return{scores:q.$version,matrix:_.$version,constraints:f.$version,deltaRules:$.$version}}var U=["perf","dx","ecosystem","maintain","cost","compliance"],b8={perf:0,dx:0,ecosystem:0,maintain:0,cost:0,compliance:0},p_=["meta-framework","database","orm","auth","hosting","payments"],k6=75;var p9={perf:0.15,dx:0.2,ecosystem:0.2,maintain:0.2,cost:0.15,compliance:0.1},h6={speed:{dx:0.05,ecosystem:0.03,maintain:-0.03,compliance:-0.05},dx:{dx:0.08,perf:-0.03,compliance:-0.05},perf:{perf:0.1,dx:-0.05,cost:-0.05},cost:{cost:0.1,perf:-0.05,ecosystem:-0.05},scale:{perf:0.05,maintain:0.05,dx:-0.05,cost:-0.05},security:{compliance:0.1,maintain:0.05,dx:-0.1,cost:-0.05},compliance:{compliance:0.15,cost:-0.05,dx:-0.05,perf:-0.05}};function u9(q,_=[]){let f={...p9};for(let P of q.slice(0,2)){let j=h6[P];if(j){for(let K of U)if(j[K]!==void 0)f[K]+=j[K]}}for(let P of _.slice(0,2)){let j=h6[P];if(j){for(let K of U)if(j[K]!==void 0)f[K]-=j[K]}}for(let P of U)f[P]=Math.max(0.05,Math.min(0.35,f[P]));let $=U.reduce((P,j)=>P+f[j],0);for(let P of U)f[P]=Math.round(f[P]/$*1e4)/1e4;return f}function d9(q){return[`${q.projectType}_${q.scale}`,`${q.projectType}_default`,`default_${q.scale}`,q.scale,"default"]}function X9(q,_){let f=d9(_);for(let $ of f)if(q.scores[$])return{...q.scores[$]};if(q.scores.default)return{...q.scores.default};throw Error(`No scores found for ${q.id}`)}function A9(q,_){let f=o_(),$={...b8};for(let K of _){let v=f.get(K);if(!v)continue;let m=v.techModifiers[q];if(m)for(let w of U){let O=m[w];if(O!==void 0)$[w]+=O}}let j=_.some((K)=>K.startsWith("language-"))?100:30;for(let K of U)$[K]=Math.max(-j,Math.min(j,$[K]));return $}function a9(q,_){if("teamSize"in q)return _.teamSize===q.teamSize;if("scale"in q)return _.scale===q.scale;if("budget"in q)return _.budget===q.budget;if("timeline"in q)return _.timeline===q.timeline;if("projectType"in q)return _.projectType===q.projectType;return!1}function i9(q){let _=T6(),{singleDeltaMax:f,singleDeltaMin:$,totalDeltaMax:P,totalDeltaMin:j}=_.limits,K={...b8},v=[];for(let m of _.rules)if(a9(m.condition,q)){v.push({ruleId:m.id,description:m.description});for(let w of U){let O=m.deltas[w];if(O!==void 0){let r=Math.max($,Math.min(f,O));K[w]+=r}}}for(let m of U)K[m]=Math.max(j,Math.min(P,K[m]));return{deltaVec:K,appliedRules:v}}function t9(q,_,f){if(f[q]?.[_]!==void 0)return f[q][_];if(f[_]?.[q]!==void 0)return f[_][q];return k6}function G9(q){if(q<50)return{dx:-15,maintain:-10};if(q<80)return{dx:-5,maintain:-3};return{}}function l9(q,_,f){let $={...b8},P=[];for(let[j,K]of Object.entries(_)){if(!K)continue;if(j===q.category)continue;let v=t9(q.id,K,f);if(v===0){P.push(K);continue}let m=G9(v);for(let w of U){let O=m[w];if(O!==void 0)$[w]+=O}}if(P.length>0)return{isCompatible:!1,vec:b8,incompatibleWith:P};for(let j of U)$[j]=Math.max(-30,$[j]);return{isCompatible:!0,vec:$,incompatibleWith:[]}}function Pq(q){if(q>=95)return{grade:"A+",label:"Top Pick",color:"emerald"};if(q>=85)return{grade:"A",label:"Excellent",color:"emerald"};if(q>=70)return{grade:"A-",label:"Very Good",color:"green"};if(q>=55)return{grade:"B+",label:"Good Fit",color:"lime"};if(q>=40)return{grade:"B",label:"Solid",color:"yellow"};if(q>=25)return{grade:"B-",label:"Acceptable",color:"amber"};if(q>=15)return{grade:"C+",label:"Consider Alternatives",color:"orange"};if(q>=5)return{grade:"C",label:"Below Average",color:"red"};return{grade:"C-",label:"Not Recommended",color:"red"}}function b9(q,_){if(_.length===0)return{...Pq(0),percentile:0};let f=_.length,$=_.filter((v)=>v>q).length,P=_.filter((v)=>v===q).length,j=$+(P-1)/2,K=Math.round((1-j/f)*100);return{...Pq(K),percentile:K}}function M9(q,_,f){return Math.max(_,Math.min(f,q))}function C9(q,_,f,$){let P={...b8};for(let j of U){let K=q[j]+_[j]+f[j]+$[j];P[j]=M9(K,0,100)}return P}function V9(q,_){let f=0;for(let $ of U)f+=_[$]*q[$];return Math.round(f)}function S9(q,_,f,$,P,j){try{let K=X9(q,_),v=A9(q.id,_.constraints),m=l9(q,f,P);if(!m.isCompatible)return null;let w=C9(K,j,v,m.vec),O=V9(w,$);return{tech:q,score:O,displayScore:0,percentile:0,grade:"B",gradeLabel:"Solid",gradeColor:"yellow",breakdown:w,isRecommended:!1,incompatibleWith:[]}}catch{return null}}function e8(q){let _=n_(),f=r6(),$=u9(q.priorities,q.depriorities??[]),{deltaVec:P}=i9(q),j={"meta-framework":null,database:null,orm:null,auth:null,hosting:null,payments:null,backend:null,frontend:null},K=[];for(let m of p_){let w=Array.from(_.values()).filter((e)=>e.category===m).filter((e)=>!e.deprecated).filter((e)=>{if(q.ecosystem&&q.ecosystem!=="universal")return e.ecosystem===q.ecosystem||e.ecosystem==="universal";return!0});if(w.length===0)continue;let O=w.map((e)=>S9(e,q,j,$,f,P)).filter((e)=>e!==null);if(O.length===0)continue;let r=O.map((e)=>e.score),T=O.map((e)=>{let W=b9(e.score,r);return{...e,displayScore:W.percentile,percentile:W.percentile,grade:W.grade,gradeLabel:W.label,gradeColor:W.color}});T.sort((e,W)=>W.score-e.score);let z=T[0];z.isRecommended=!0,j[m]=z.tech.id,K.push({category:m,recommended:z,alternatives:T.slice(1,4)})}let v=z6(K);return{categories:K,stackScore:v,confidence:N9(K,q),context:q}}function z6(q){if(q.length===0)return{score:0,grade:"C-",gradeLabel:"Incomplete",explanation:"No technologies could be recommended."};let _=Math.round(q.reduce((j,K)=>j+K.recommended.score,0)/q.length),f=Pq(_),$=q.filter((j)=>j.recommended.grade==="A+"||j.recommended.grade==="A").length,P="";if($>=4)P="Excellent stack with top-tier technologies across the board.";else if($>=2)P="Strong stack with well-matched technologies.";else P="Solid stack that meets your requirements.";return{score:_,grade:f.grade,gradeLabel:f.label,explanation:P}}function c9(q,_){let f=2;if(_.teamSize)f+=1;if(_.budget)f+=1;if(_.timeline)f+=1;if(_.priorities.length>0)f+=_.priorities.length>=2?1.5:0.5;let $=Math.round(f/7.5*100),P=q.map((O)=>{if(O.alternatives.length===0)return 100;return O.recommended.score-O.alternatives[0].score}),j=Math.min(...P),K=q.map((O)=>O.recommended.score),v=Math.min(...K),m=Math.round(q.length/p_.length*100),w=q.some((O)=>O.recommended.score<50);return{inputCompleteness:$,scoreGap:j,minTopScore:v,tableCoverage:m,hasConflicts:w}}function N9(q,_){let f=c9(q,_),$=[],P=f.inputCompleteness>=80&&f.tableCoverage>=80&&!f.hasConflicts&&f.scoreGap>=15&&f.minTopScore>=70,j=!P&&f.inputCompleteness>=45&&!f.hasConflicts,K;if(P){if(K="high",$.push("Clear winners in each category"),$.push("Full stack coverage"),f.scoreGap>=20)$.push("Strong differentiation between options")}else if(j){if(K="medium",f.tableCoverage>=80)$.push("Full stack coverage");if(f.scoreGap>=10)$.push("Good differentiation between options")}else{if(K="low",f.hasConflicts)$.push("Some recommendations have low scores");if(f.inputCompleteness<45)$.push("Limited context provided");if(f.tableCoverage<50)$.push("Incomplete stack coverage")}return{level:K,reasons:$}}function e6(q,_){let f=n_(),$=[];for(let j of q.technologies){let K=f.get(j.techId);if(!K)continue;let v={tech:K,score:j.score,displayScore:j.score,percentile:j.score,grade:j.grade,gradeLabel:Pq(j.score).label,gradeColor:Pq(j.score).color,breakdown:K.scores.default||{...b8},isRecommended:!0,incompatibleWith:[]};$.push({category:j.category,recommended:v,alternatives:[]})}let P={projectName:_,projectType:q.projectType,scale:q.scale,ecosystem:"javascript",priorities:q.priorities,constraints:q.constraints};return{categories:$,stackScore:z6($),confidence:{level:"high",reasons:["Pre-configured blueprint","Tested stack combination"]},context:P}}var y8=s($8(),1),u_=[{id:"name",title:"Project Name",emoji:">"},{id:"type",title:"Project Type",emoji:">"},{id:"scale",title:"Scale",emoji:">"},{id:"high-priority",title:"What Matters Most",emoji:">"},{id:"low-priority",title:"Compromise",emoji:">",optional:!0},{id:"framework",title:"Framework",emoji:">"},{id:"database",title:"Database",emoji:">"},{id:"auth",title:"Authentication",emoji:">",optional:!0,condition:(q)=>q.projectType!=="portfolio"&&q.projectType!=="blog"},{id:"payments",title:"Payments",emoji:">",optional:!0,condition:(q)=>q.projectType==="saas"||q.projectType==="marketplace"||q.projectType==="e-commerce"}];class d_{currentIndex=0;steps;context={};constructor(q=u_){this.steps=q}getVisibleSteps(){return this.steps.filter((q)=>!q.condition||q.condition(this.context))}getCurrentStepNumber(){return this.currentIndex+1}getTotalSteps(){return this.getVisibleSteps().length}getCurrentStep(){return this.getVisibleSteps()[this.currentIndex]}updateContext(q){this.context={...this.context,...q}}getContext(){return this.context}advance(){let q=this.getVisibleSteps();if(this.currentIndex<q.length-1)return this.currentIndex++,!0;return!1}goBack(){if(this.currentIndex>0)return this.currentIndex--,!0;return!1}isComplete(){return this.currentIndex>=this.getVisibleSteps().length-1}getProgressBar(q=12){let _=this.getCurrentStepNumber(),f=this.getTotalSteps(),$=Math.round(_/f*q),P=q-$;return`${y8.default.green("█".repeat($))+y8.default.dim("░".repeat(P))} ${_}/${f}`}getStepHeader(){let q=this.getCurrentStep();if(!q)return"";let _=this.getCurrentStepNumber(),f=this.getTotalSteps(),$=q.optional?y8.default.dim(" (optional)"):"";return y8.default.dim(`Step ${_}/${f}`)+` ${y8.default.bold(`${q.emoji} ${q.title}`)}`+$}getFullHeader(){return`
|
|
85
|
+
`)},info:(q)=>{y.message(q,{symbol:Y.default.blue(k9)})},success:(q)=>{y.message(q,{symbol:Y.default.green(h9)})},step:(q)=>{y.message(q,{symbol:Y.default.green(aq)})},warn:(q)=>{y.message(q,{symbol:Y.default.yellow(z9)})},warning:(q)=>{y.warn(q)},error:(q)=>{y.message(q,{symbol:Y.default.red(e9)})}},v6=()=>{let q=Y_?["◒","◐","◓","◑"]:["•","o","O","0"],_=Y_?80:120,f,$,P=!1,j="",K=(h)=>{let z=h>1?"Something went wrong":"Canceled";P&&T(z,h)},v=()=>K(2),m=()=>K(1),w=()=>{process.on("uncaughtExceptionMonitor",v),process.on("unhandledRejection",v),process.on("SIGINT",m),process.on("SIGTERM",m),process.on("exit",K)},r=()=>{process.removeListener("uncaughtExceptionMonitor",v),process.removeListener("unhandledRejection",v),process.removeListener("SIGINT",m),process.removeListener("SIGTERM",m),process.removeListener("exit",K)},O=(h="")=>{P=!0,f=Qf(),j=h.replace(/\.+$/,""),process.stdout.write(`${Y.default.gray(X)}
|
|
86
|
+
`);let z=0,W=0;w(),$=setInterval(()=>{let n=Y.default.magenta(q[z]),A=".".repeat(Math.floor(W)).slice(0,3);process.stdout.write(R8.cursor.move(-999,0)),process.stdout.write(R8.erase.down(1)),process.stdout.write(`${n} ${j}${A}`),z=z+1<q.length?z+1:0,W=W<q.length?W+0.125:0},_)},T=(h="",z=0)=>{j=h??j,P=!1,clearInterval($);let W=z===0?Y.default.green(aq):z===1?Y.default.red(f6):Y.default.red($6);process.stdout.write(R8.cursor.move(-999,0)),process.stdout.write(R8.erase.down(1)),process.stdout.write(`${W} ${j}
|
|
87
|
+
`),r(),f()};return{start:O,stop:T,message:(h="")=>{j=h??j}}};function H9(){let q=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(q,"g")}var p=F(P8(),1);var J8=F(P8(),1);var W_={$version:"2.9.1",$description:"Base scores for technologies with ecosystem metadata",$generatedAt:"2026-01-29T00:17:47.028Z",technologies:{stripe:{id:"stripe",name:"Stripe",category:"payments",ecosystem:"universal",url:"https://stripe.com",scores:{default:{perf:97,dx:94,ecosystem:98,maintain:86,cost:51,compliance:65},mvp:{perf:94,dx:99,ecosystem:100,maintain:86,cost:51,compliance:65},enterprise:{perf:97,dx:94,ecosystem:93,maintain:91,cost:56,compliance:75}}},paddle:{id:"paddle",name:"Paddle",category:"payments",ecosystem:"universal",url:"https://paddle.com",scores:{default:{perf:95,dx:88,ecosystem:68,maintain:60,cost:41,compliance:99},mvp:{perf:92,dx:93,ecosystem:71,maintain:60,cost:41,compliance:99},enterprise:{perf:95,dx:88,ecosystem:63,maintain:65,cost:46,compliance:100}}},lemonsqueezy:{id:"lemonsqueezy",name:"LemonSqueezy",category:"payments",ecosystem:"universal",url:"https://lemonsqueezy.com",scores:{default:{perf:92,dx:85,ecosystem:60,maintain:40,cost:44,compliance:96},mvp:{perf:89,dx:90,ecosystem:63,maintain:40,cost:44,compliance:96},enterprise:{perf:92,dx:85,ecosystem:55,maintain:45,cost:49,compliance:100}}},gumroad:{id:"gumroad",name:"Gumroad",category:"payments",ecosystem:"universal",url:"https://gumroad.com",scores:{default:{perf:79,dx:60,ecosystem:50,maintain:68,cost:32,compliance:79},mvp:{perf:76,dx:65,ecosystem:53,maintain:68,cost:32,compliance:79},enterprise:{perf:79,dx:60,ecosystem:45,maintain:73,cost:37,compliance:89}}},neon:{id:"neon",name:"Neon",category:"database",ecosystem:"universal",url:"https://neon.tech",scores:{default:{perf:83,dx:97,ecosystem:76,maintain:48,cost:88,compliance:93},mvp:{perf:80,dx:100,ecosystem:79,maintain:48,cost:88,compliance:93},enterprise:{perf:83,dx:97,ecosystem:71,maintain:53,cost:93,compliance:100}}},sveltekit:{id:"sveltekit",name:"SvelteKit",category:"meta-framework",ecosystem:"javascript",stackType:"modular",preferredHosting:["vercel","cloudflare","railway","fly"],url:"https://kit.svelte.dev",scores:{default:{perf:54,dx:99,ecosystem:100,maintain:74,cost:90,compliance:85},mvp:{perf:51,dx:100,ecosystem:100,maintain:74,cost:90,compliance:85},enterprise:{perf:54,dx:99,ecosystem:95,maintain:79,cost:95,compliance:95}}},nextjs:{id:"nextjs",name:"Next.js",category:"meta-framework",ecosystem:"javascript",stackType:"modular",preferredHosting:["vercel","cloudflare","railway"],url:"https://nextjs.org",scores:{default:{perf:68,dx:90,ecosystem:100,maintain:80,cost:90,compliance:85},mvp:{perf:65,dx:95,ecosystem:100,maintain:80,cost:90,compliance:85},enterprise:{perf:68,dx:90,ecosystem:95,maintain:85,cost:95,compliance:95}}},nuxt:{id:"nuxt",name:"Nuxt",category:"meta-framework",ecosystem:"javascript",stackType:"modular",preferredHosting:["vercel","cloudflare","railway"],url:"https://nuxt.com",scores:{default:{perf:30,dx:99,ecosystem:100,maintain:79,cost:90,compliance:85},mvp:{perf:27,dx:100,ecosystem:100,maintain:79,cost:90,compliance:85},enterprise:{perf:30,dx:99,ecosystem:95,maintain:84,cost:95,compliance:95}}},remix:{id:"remix",name:"Remix",category:"meta-framework",ecosystem:"javascript",stackType:"modular",preferredHosting:["vercel","cloudflare","fly","railway"],url:"https://remix.run",scores:{default:{perf:70,dx:99,ecosystem:100,maintain:86,cost:90,compliance:85},mvp:{perf:67,dx:100,ecosystem:100,maintain:86,cost:90,compliance:85},enterprise:{perf:70,dx:99,ecosystem:95,maintain:91,cost:95,compliance:95}}},astro:{id:"astro",name:"Astro",category:"meta-framework",ecosystem:"javascript",stackType:"modular",preferredHosting:["vercel","cloudflare","netlify"],url:"https://astro.build",scores:{default:{perf:30,dx:100,ecosystem:100,maintain:85,cost:90,compliance:85},mvp:{perf:27,dx:100,ecosystem:100,maintain:85,cost:90,compliance:85},enterprise:{perf:30,dx:100,ecosystem:95,maintain:90,cost:95,compliance:95}}},react:{id:"react",name:"React",category:"frontend",ecosystem:"javascript",url:"https://react.dev",scores:{default:{perf:82,dx:78,ecosystem:100,maintain:76,cost:90,compliance:85},mvp:{perf:79,dx:83,ecosystem:100,maintain:76,cost:90,compliance:85},enterprise:{perf:82,dx:78,ecosystem:95,maintain:81,cost:95,compliance:95}}},vue:{id:"vue",name:"Vue",category:"frontend",ecosystem:"javascript",url:"https://vuejs.org",scores:{default:{perf:67,dx:96,ecosystem:100,maintain:72,cost:90,compliance:85},mvp:{perf:64,dx:100,ecosystem:100,maintain:72,cost:90,compliance:85},enterprise:{perf:67,dx:96,ecosystem:95,maintain:77,cost:95,compliance:95}}},svelte:{id:"svelte",name:"Svelte",category:"frontend",ecosystem:"javascript",url:"https://svelte.dev",scores:{default:{perf:81,dx:99,ecosystem:100,maintain:76,cost:90,compliance:85},mvp:{perf:78,dx:100,ecosystem:100,maintain:76,cost:90,compliance:85},enterprise:{perf:81,dx:99,ecosystem:95,maintain:81,cost:95,compliance:95}}},solid:{id:"solid",name:"Solid",category:"frontend",ecosystem:"javascript",url:"https://solidjs.com",scores:{default:{perf:98,dx:52,ecosystem:98,maintain:42,cost:90,compliance:85},mvp:{perf:95,dx:57,ecosystem:100,maintain:42,cost:90,compliance:85},enterprise:{perf:98,dx:52,ecosystem:93,maintain:47,cost:95,compliance:95}}},postgres:{id:"postgres",name:"PostgreSQL",category:"database",ecosystem:"universal",url:"https://postgresql.org",scores:{default:{perf:84,dx:67,ecosystem:77,maintain:88,cost:100,compliance:93},mvp:{perf:81,dx:72,ecosystem:80,maintain:88,cost:100,compliance:93},enterprise:{perf:84,dx:67,ecosystem:72,maintain:93,cost:100,compliance:100}}},supabase:{id:"supabase",name:"Supabase",category:"database",ecosystem:"universal",stackType:"platform",provides:{auth:{techId:"supabase-auth",type:"builtin",label:"Supabase Auth inclus",description:"Email, OAuth, Magic Links, Row Level Security"}},url:"https://supabase.com",scores:{default:{perf:92,dx:97,ecosystem:85,maintain:83,cost:83,compliance:90},mvp:{perf:89,dx:100,ecosystem:88,maintain:83,cost:83,compliance:90},enterprise:{perf:92,dx:97,ecosystem:80,maintain:88,cost:88,compliance:100}}},firebase:{id:"firebase",name:"Firebase",category:"database",ecosystem:"universal",stackType:"platform",provides:{auth:{techId:"firebase-auth",type:"builtin",label:"Firebase Auth inclus",description:"Email, OAuth, Phone, Anonymous authentication"}},url:"https://firebase.google.com",scores:{default:{perf:84,dx:96,ecosystem:94,maintain:79,cost:73,compliance:88},mvp:{perf:81,dx:100,ecosystem:97,maintain:79,cost:73,compliance:88},enterprise:{perf:84,dx:96,ecosystem:89,maintain:84,cost:78,compliance:98}}},mysql:{id:"mysql",name:"MySQL",category:"database",ecosystem:"universal",url:"https://mysql.com",scores:{default:{perf:82,dx:64,ecosystem:74,maintain:88,cost:100,compliance:88},mvp:{perf:79,dx:69,ecosystem:77,maintain:88,cost:100,compliance:88},enterprise:{perf:82,dx:64,ecosystem:69,maintain:93,cost:100,compliance:98}}},sqlite:{id:"sqlite",name:"SQLite",category:"database",ecosystem:"universal",url:"https://sqlite.org",scores:{default:{perf:94,dx:74,ecosystem:88,maintain:76,cost:100,compliance:78},mvp:{perf:91,dx:79,ecosystem:91,maintain:76,cost:100,compliance:78},enterprise:{perf:94,dx:74,ecosystem:83,maintain:81,cost:100,compliance:88}}},mongodb:{id:"mongodb",name:"MongoDB",category:"database",ecosystem:"universal",url:"https://mongodb.com",scores:{default:{perf:83,dx:82,ecosystem:88,maintain:72,cost:90,compliance:87},mvp:{perf:80,dx:87,ecosystem:91,maintain:72,cost:90,compliance:87},enterprise:{perf:83,dx:82,ecosystem:83,maintain:77,cost:95,compliance:97}}},drizzle:{id:"drizzle",name:"Drizzle ORM",category:"orm",ecosystem:"javascript",url:"https://orm.drizzle.team",scores:{default:{perf:94,dx:80,ecosystem:98,maintain:57,cost:90,compliance:85},mvp:{perf:91,dx:85,ecosystem:100,maintain:57,cost:90,compliance:85},enterprise:{perf:94,dx:80,ecosystem:93,maintain:62,cost:95,compliance:95}}},prisma:{id:"prisma",name:"Prisma",category:"orm",ecosystem:"javascript",url:"https://prisma.io",scores:{default:{perf:68,dx:99,ecosystem:100,maintain:72,cost:90,compliance:85},mvp:{perf:65,dx:100,ecosystem:100,maintain:72,cost:90,compliance:85},enterprise:{perf:68,dx:99,ecosystem:95,maintain:77,cost:95,compliance:95}}},kysely:{id:"kysely",name:"Kysely",category:"orm",ecosystem:"javascript",url:"https://kysely.dev",scores:{default:{perf:80,dx:76,ecosystem:95,maintain:53,cost:90,compliance:85},mvp:{perf:77,dx:81,ecosystem:98,maintain:53,cost:90,compliance:85},enterprise:{perf:80,dx:76,ecosystem:90,maintain:58,cost:95,compliance:95}}},lucia:{id:"lucia",name:"Lucia",category:"auth",ecosystem:"javascript",url:"https://lucia-auth.com",deprecated:{since:"2025-03",reason:"Library no longer maintained",alternatives:["better-auth","authjs"]},scores:{default:{perf:76,dx:50,ecosystem:96,maintain:5,cost:90,compliance:85},mvp:{perf:73,dx:55,ecosystem:99,maintain:5,cost:90,compliance:85},enterprise:{perf:76,dx:50,ecosystem:91,maintain:5,cost:95,compliance:95}}},authjs:{id:"authjs",name:"Auth.js",category:"auth",ecosystem:"javascript",url:"https://authjs.dev",scores:{default:{perf:57,dx:52,ecosystem:100,maintain:35,cost:90,compliance:85},mvp:{perf:54,dx:57,ecosystem:100,maintain:35,cost:90,compliance:85},enterprise:{perf:57,dx:52,ecosystem:95,maintain:40,cost:95,compliance:95}}},clerk:{id:"clerk",name:"Clerk",category:"auth",ecosystem:"universal",url:"https://clerk.com",scores:{default:{perf:79,dx:86,ecosystem:69,maintain:95,cost:67,compliance:92},mvp:{perf:76,dx:91,ecosystem:72,maintain:95,cost:67,compliance:92},enterprise:{perf:79,dx:86,ecosystem:64,maintain:100,cost:72,compliance:100}}},vercel:{id:"vercel",name:"Vercel",category:"hosting",ecosystem:"javascript",url:"https://vercel.com",scores:{default:{perf:87,dx:77,ecosystem:65,maintain:81,cost:74,compliance:92},mvp:{perf:84,dx:82,ecosystem:68,maintain:81,cost:74,compliance:92},enterprise:{perf:87,dx:77,ecosystem:60,maintain:86,cost:79,compliance:100}}},cloudflare:{id:"cloudflare",name:"Cloudflare",category:"hosting",ecosystem:"javascript",url:"https://cloudflare.com",scores:{default:{perf:87,dx:73,ecosystem:68,maintain:80,cost:92,compliance:96},mvp:{perf:84,dx:78,ecosystem:71,maintain:80,cost:92,compliance:96},enterprise:{perf:87,dx:73,ecosystem:63,maintain:85,cost:97,compliance:100}}},railway:{id:"railway",name:"Railway",category:"hosting",ecosystem:"universal",url:"https://railway.app",scores:{default:{perf:85,dx:73,ecosystem:45,maintain:77,cost:73,compliance:82},mvp:{perf:82,dx:78,ecosystem:48,maintain:77,cost:73,compliance:82},enterprise:{perf:85,dx:73,ecosystem:40,maintain:82,cost:78,compliance:92}}},fly:{id:"fly",name:"Fly.io",category:"hosting",ecosystem:"universal",url:"https://fly.io",scores:{default:{perf:85,dx:71,ecosystem:43,maintain:75,cost:78,compliance:81},mvp:{perf:82,dx:76,ecosystem:46,maintain:75,cost:78,compliance:81},enterprise:{perf:85,dx:71,ecosystem:38,maintain:80,cost:83,compliance:91}}},nodejs:{id:"nodejs",name:"Node.js",category:"backend",ecosystem:"javascript",url:"https://nodejs.org",scores:{default:{perf:75,dx:85,ecosystem:98,maintain:80,cost:90,compliance:88},mvp:{perf:70,dx:85,ecosystem:98,maintain:78,cost:95,compliance:85},enterprise:{perf:78,dx:85,ecosystem:98,maintain:82,cost:85,compliance:90}}},bun:{id:"bun",name:"Bun",category:"backend",ecosystem:"javascript",url:"https://bun.sh",scores:{default:{perf:98,dx:92,ecosystem:60,maintain:75,cost:95,compliance:80},mvp:{perf:98,dx:95,ecosystem:55,maintain:72,cost:98,compliance:78},enterprise:{perf:98,dx:88,ecosystem:58,maintain:70,cost:90,compliance:75}}},"better-auth":{id:"better-auth",name:"Better Auth",category:"auth",ecosystem:"javascript",url:"https://better-auth.com",scores:{default:{perf:56,dx:99,ecosystem:100,maintain:89,cost:90,compliance:85},mvp:{perf:53,dx:100,ecosystem:100,maintain:89,cost:90,compliance:85},enterprise:{perf:56,dx:99,ecosystem:95,maintain:94,cost:95,compliance:95}}},php:{id:"php",name:"PHP",category:"backend",ecosystem:"php",url:"https://php.net",scores:{default:{perf:75,dx:80,ecosystem:95,maintain:85,cost:90,compliance:80},mvp:{perf:72,dx:85,ecosystem:98,maintain:85,cost:95,compliance:78},enterprise:{perf:78,dx:78,ecosystem:92,maintain:90,cost:88,compliance:85}}},laravel:{id:"laravel",name:"Laravel",category:"meta-framework",ecosystem:"php",stackType:"all-in-one",provides:{orm:{techId:"eloquent",type:"native",label:"Eloquent ORM inclus"},auth:{options:[{techId:"laravel-sanctum",type:"native",label:"Sanctum (API tokens)"},{techId:"laravel-breeze",type:"native",label:"Breeze (starter kit)"}],note:"Auth native incluse. Clerk disponible pour SSO avance."}},preferredHosting:["forge","vapor","ploi","railway"],url:"https://laravel.com",scores:{default:{perf:78,dx:95,ecosystem:92,maintain:88,cost:85,compliance:82},mvp:{perf:75,dx:98,ecosystem:95,maintain:88,cost:90,compliance:80},enterprise:{perf:80,dx:92,ecosystem:88,maintain:92,cost:80,compliance:88}}},eloquent:{id:"eloquent",name:"Eloquent ORM",category:"orm",ecosystem:"php",nativeFor:["laravel"],url:"https://laravel.com/docs/eloquent",scores:{default:{perf:75,dx:92,ecosystem:88,maintain:85,cost:95,compliance:80},mvp:{perf:72,dx:96,ecosystem:90,maintain:85,cost:98,compliance:78},enterprise:{perf:78,dx:88,ecosystem:85,maintain:90,cost:92,compliance:85}}},livewire:{id:"livewire",name:"Livewire",category:"frontend",ecosystem:"php",nativeFor:["laravel"],url:"https://livewire.laravel.com",scores:{default:{perf:70,dx:90,ecosystem:75,maintain:80,cost:95,compliance:80},mvp:{perf:68,dx:95,ecosystem:78,maintain:80,cost:98,compliance:78},enterprise:{perf:72,dx:88,ecosystem:72,maintain:85,cost:92,compliance:85}}},inertia:{id:"inertia",name:"Inertia.js",category:"frontend",ecosystem:"php",nativeFor:["laravel"],url:"https://inertiajs.com",scores:{default:{perf:80,dx:88,ecosystem:70,maintain:82,cost:95,compliance:80},mvp:{perf:78,dx:92,ecosystem:73,maintain:82,cost:98,compliance:78},enterprise:{perf:82,dx:85,ecosystem:68,maintain:87,cost:92,compliance:85}}},"laravel-sanctum":{id:"laravel-sanctum",name:"Laravel Sanctum",category:"auth",ecosystem:"php",nativeFor:["laravel"],url:"https://laravel.com/docs/sanctum",scores:{default:{perf:85,dx:90,ecosystem:80,maintain:85,cost:95,compliance:85},mvp:{perf:82,dx:94,ecosystem:83,maintain:85,cost:98,compliance:82},enterprise:{perf:88,dx:87,ecosystem:78,maintain:90,cost:92,compliance:90}}},"laravel-breeze":{id:"laravel-breeze",name:"Laravel Breeze",category:"auth",ecosystem:"php",nativeFor:["laravel"],url:"https://laravel.com/docs/starter-kits",scores:{default:{perf:80,dx:95,ecosystem:75,maintain:85,cost:100,compliance:80},mvp:{perf:78,dx:98,ecosystem:78,maintain:85,cost:100,compliance:78},enterprise:{perf:82,dx:92,ecosystem:72,maintain:90,cost:100,compliance:85}}},forge:{id:"forge",name:"Laravel Forge",category:"hosting",ecosystem:"php",url:"https://forge.laravel.com",scores:{default:{perf:85,dx:88,ecosystem:80,maintain:75,cost:60,compliance:85},mvp:{perf:82,dx:92,ecosystem:83,maintain:75,cost:55,compliance:82},enterprise:{perf:88,dx:85,ecosystem:78,maintain:80,cost:65,compliance:90}}},vapor:{id:"vapor",name:"Laravel Vapor",category:"hosting",ecosystem:"php",url:"https://vapor.laravel.com",scores:{default:{perf:90,dx:85,ecosystem:70,maintain:70,cost:50,compliance:90},mvp:{perf:88,dx:88,ecosystem:73,maintain:70,cost:45,compliance:88},enterprise:{perf:92,dx:82,ecosystem:68,maintain:75,cost:55,compliance:95}}},ploi:{id:"ploi",name:"Ploi.io",category:"hosting",ecosystem:"php",url:"https://ploi.io",scores:{default:{perf:82,dx:90,ecosystem:65,maintain:75,cost:70,compliance:80},mvp:{perf:80,dx:94,ecosystem:68,maintain:75,cost:75,compliance:78},enterprise:{perf:85,dx:87,ecosystem:62,maintain:80,cost:68,compliance:85}}},symfony:{id:"symfony",name:"Symfony",category:"meta-framework",ecosystem:"php",stackType:"modular",preferredHosting:["forge","ploi","railway"],url:"https://symfony.com",scores:{default:{perf:80,dx:75,ecosystem:88,maintain:90,cost:85,compliance:88},mvp:{perf:78,dx:78,ecosystem:90,maintain:90,cost:88,compliance:85},enterprise:{perf:82,dx:72,ecosystem:85,maintain:95,cost:82,compliance:92}}},doctrine:{id:"doctrine",name:"Doctrine ORM",category:"orm",ecosystem:"php",nativeFor:["symfony"],url:"https://doctrine-project.org",scores:{default:{perf:78,dx:70,ecosystem:85,maintain:88,cost:95,compliance:85},mvp:{perf:75,dx:73,ecosystem:88,maintain:88,cost:98,compliance:82},enterprise:{perf:80,dx:68,ecosystem:82,maintain:92,cost:92,compliance:90}}},filament:{id:"filament",name:"Filament",category:"cms",ecosystem:"php",nativeFor:["laravel"],url:"https://filamentphp.com",scores:{default:{perf:75,dx:92,ecosystem:70,maintain:80,cost:100,compliance:80},mvp:{perf:72,dx:96,ecosystem:73,maintain:80,cost:100,compliance:78},enterprise:{perf:78,dx:89,ecosystem:68,maintain:85,cost:100,compliance:85}}},nova:{id:"nova",name:"Laravel Nova",category:"cms",ecosystem:"php",nativeFor:["laravel"],url:"https://nova.laravel.com",scores:{default:{perf:80,dx:88,ecosystem:75,maintain:85,cost:40,compliance:85},mvp:{perf:78,dx:92,ecosystem:78,maintain:85,cost:35,compliance:82},enterprise:{perf:82,dx:85,ecosystem:72,maintain:90,cost:45,compliance:90}}},planetscale:{id:"planetscale",name:"Planetscale",category:"database",ecosystem:"universal",url:"https://planetscale.com",scores:{default:{perf:75,dx:95,ecosystem:74,maintain:50,cost:73,compliance:94},mvp:{perf:72,dx:100,ecosystem:77,maintain:50,cost:73,compliance:94},enterprise:{perf:75,dx:95,ecosystem:69,maintain:55,cost:78,compliance:100}}},turso:{id:"turso",name:"Turso",category:"database",ecosystem:"universal",url:"https://turso.tech",scores:{default:{perf:92,dx:95,ecosystem:67,maintain:45,cost:88,compliance:88},mvp:{perf:89,dx:100,ecosystem:70,maintain:45,cost:88,compliance:88},enterprise:{perf:92,dx:95,ecosystem:62,maintain:50,cost:93,compliance:98}}},convex:{id:"convex",name:"Convex",category:"database",ecosystem:"javascript",url:"https://convex.dev",scores:{default:{perf:92,dx:100,ecosystem:41,maintain:49,cost:83,compliance:83},mvp:{perf:89,dx:100,ecosystem:44,maintain:49,cost:83,compliance:83},enterprise:{perf:92,dx:100,ecosystem:36,maintain:54,cost:88,compliance:93}}},timescaledb:{id:"timescaledb",name:"Timescaledb",category:"database",ecosystem:"universal",url:"https://timescale.com",scores:{default:{perf:84,dx:69,ecosystem:50,maintain:79,cost:73,compliance:90},mvp:{perf:81,dx:74,ecosystem:53,maintain:79,cost:73,compliance:90},enterprise:{perf:84,dx:69,ecosystem:45,maintain:84,cost:78,compliance:100}}},clickhouse:{id:"clickhouse",name:"Clickhouse",category:"database",ecosystem:"universal",url:"https://clickhouse.com",scores:{default:{perf:93,dx:78,ecosystem:56,maintain:69,cost:78,compliance:89},mvp:{perf:90,dx:83,ecosystem:59,maintain:69,cost:78,compliance:89},enterprise:{perf:93,dx:78,ecosystem:51,maintain:74,cost:83,compliance:99}}},neo4j:{id:"neo4j",name:"Neo4j",category:"database",ecosystem:"universal",url:"https://neo4j.com",scores:{default:{perf:82,dx:82,ecosystem:76,maintain:74,cost:68,compliance:91},mvp:{perf:79,dx:87,ecosystem:79,maintain:74,cost:68,compliance:91},enterprise:{perf:82,dx:82,ecosystem:71,maintain:79,cost:73,compliance:100}}},auth0:{id:"auth0",name:"Auth0",category:"auth",ecosystem:"universal",url:"https://auth0.com",scores:{default:{perf:97,dx:88,ecosystem:68,maintain:84,cost:54,compliance:99},mvp:{perf:94,dx:93,ecosystem:71,maintain:84,cost:54,compliance:99},enterprise:{perf:97,dx:88,ecosystem:63,maintain:89,cost:59,compliance:100}}},workos:{id:"workos",name:"WorkOS",category:"auth",ecosystem:"universal",url:"https://workos.com",scores:{default:{perf:97,dx:86,ecosystem:43,maintain:84,cost:47,compliance:99},mvp:{perf:94,dx:91,ecosystem:46,maintain:84,cost:47,compliance:99},enterprise:{perf:97,dx:86,ecosystem:38,maintain:89,cost:52,compliance:100}}},hanko:{id:"hanko",name:"Hanko",category:"auth",ecosystem:"universal",url:"https://hanko.io",scores:{default:{perf:85,dx:81,ecosystem:35,maintain:87,cost:87,compliance:90},mvp:{perf:82,dx:86,ecosystem:38,maintain:87,cost:87,compliance:90},enterprise:{perf:85,dx:81,ecosystem:30,maintain:92,cost:92,compliance:100}}},kinde:{id:"kinde",name:"Kinde",category:"auth",ecosystem:"universal",url:"https://kinde.com",scores:{default:{perf:92,dx:85,ecosystem:38,maintain:56,cost:77,compliance:92},mvp:{perf:89,dx:90,ecosystem:41,maintain:56,cost:77,compliance:92},enterprise:{perf:92,dx:85,ecosystem:33,maintain:61,cost:82,compliance:100}}},solidstart:{id:"solidstart",name:"Solidstart",category:"meta-framework",ecosystem:"javascript",url:"https://start.solidjs.com",scores:{default:{perf:50,dx:73,ecosystem:88,maintain:52,cost:90,compliance:85},mvp:{perf:47,dx:78,ecosystem:91,maintain:52,cost:90,compliance:85},enterprise:{perf:50,dx:73,ecosystem:83,maintain:57,cost:95,compliance:95}}},typeorm:{id:"typeorm",name:"Typeorm",category:"orm",ecosystem:"javascript",url:"https://typeorm.io",scores:{default:{perf:50,dx:89,ecosystem:100,maintain:74,cost:90,compliance:85},mvp:{perf:47,dx:94,ecosystem:100,maintain:74,cost:90,compliance:85},enterprise:{perf:50,dx:89,ecosystem:95,maintain:79,cost:95,compliance:95}}},sequelize:{id:"sequelize",name:"Sequelize",category:"orm",ecosystem:"javascript",url:"https://sequelize.org",scores:{default:{perf:48,dx:67,ecosystem:100,maintain:49,cost:90,compliance:85},mvp:{perf:45,dx:72,ecosystem:100,maintain:49,cost:90,compliance:85},enterprise:{perf:48,dx:67,ecosystem:95,maintain:54,cost:95,compliance:95}}},netlify:{id:"netlify",name:"Netlify",category:"hosting",ecosystem:"universal",url:"https://netlify.com",scores:{default:{perf:87,dx:76,ecosystem:63,maintain:82,cost:79,compliance:90},mvp:{perf:84,dx:81,ecosystem:66,maintain:82,cost:79,compliance:90},enterprise:{perf:87,dx:76,ecosystem:58,maintain:87,cost:84,compliance:100}}},"deno-deploy":{id:"deno-deploy",name:"Deno Deploy",category:"hosting",ecosystem:"javascript",url:"https://deno.com/deploy",scores:{default:{perf:86,dx:73,ecosystem:38,maintain:77,cost:87,compliance:85},mvp:{perf:83,dx:78,ecosystem:41,maintain:77,cost:87,compliance:85},enterprise:{perf:86,dx:73,ecosystem:33,maintain:82,cost:92,compliance:95}}},coolify:{id:"coolify",name:"Coolify",category:"hosting",ecosystem:"universal",url:"https://coolify.io",scores:{default:{perf:82,dx:71,ecosystem:33,maintain:87,cost:97,compliance:90},mvp:{perf:79,dx:76,ecosystem:36,maintain:87,cost:97,compliance:90},enterprise:{perf:82,dx:71,ecosystem:28,maintain:92,cost:100,compliance:100}}},rust:{id:"rust",name:"Rust",category:"backend",ecosystem:"rust",url:"https://www.rust-lang.org",scores:{default:{perf:98,dx:58,ecosystem:55,maintain:88,cost:95,compliance:92},mvp:{perf:95,dx:48,ecosystem:50,maintain:83,cost:95,compliance:88},enterprise:{perf:98,dx:62,ecosystem:58,maintain:92,cost:92,compliance:96}}},axum:{id:"axum",name:"Axum",category:"meta-framework",ecosystem:"rust",stackType:"modular",preferredHosting:["shuttle","fly","railway"],url:"https://github.com/tokio-rs/axum",scores:{default:{perf:96,dx:72,ecosystem:58,maintain:78,cost:95,compliance:88},mvp:{perf:93,dx:62,ecosystem:52,maintain:73,cost:95,compliance:85},enterprise:{perf:98,dx:75,ecosystem:62,maintain:85,cost:92,compliance:95}}},actix:{id:"actix",name:"Actix Web",category:"meta-framework",ecosystem:"rust",stackType:"modular",preferredHosting:["shuttle","fly","railway"],url:"https://actix.rs",scores:{default:{perf:99,dx:65,ecosystem:62,maintain:82,cost:95,compliance:88},mvp:{perf:96,dx:55,ecosystem:56,maintain:77,cost:95,compliance:85},enterprise:{perf:99,dx:68,ecosystem:65,maintain:88,cost:92,compliance:95}}},rocket:{id:"rocket",name:"Rocket",category:"meta-framework",ecosystem:"rust",stackType:"modular",preferredHosting:["shuttle","fly","railway"],url:"https://rocket.rs",scores:{default:{perf:92,dx:78,ecosystem:55,maintain:75,cost:95,compliance:85},mvp:{perf:89,dx:72,ecosystem:50,maintain:70,cost:95,compliance:82},enterprise:{perf:92,dx:80,ecosystem:58,maintain:82,cost:92,compliance:92}}},loco:{id:"loco",name:"Loco",category:"meta-framework",ecosystem:"rust",stackType:"all-in-one",preferredHosting:["shuttle","fly","railway"],url:"https://loco.rs",provides:{orm:{techId:"sea-orm",type:"native",label:"SeaORM inclus",description:"Loco utilise SeaORM nativement pour l'acces aux donnees"}},scores:{default:{perf:90,dx:82,ecosystem:42,maintain:68,cost:95,compliance:85},mvp:{perf:87,dx:85,ecosystem:38,maintain:65,cost:95,compliance:82},enterprise:{perf:90,dx:78,ecosystem:45,maintain:75,cost:92,compliance:92}}},diesel:{id:"diesel",name:"Diesel",category:"orm",ecosystem:"rust",url:"https://diesel.rs",scores:{default:{perf:98,dx:58,ecosystem:52,maintain:85,cost:100,compliance:88},mvp:{perf:95,dx:50,ecosystem:48,maintain:80,cost:100,compliance:85},enterprise:{perf:98,dx:62,ecosystem:55,maintain:90,cost:100,compliance:95}}},"sea-orm":{id:"sea-orm",name:"SeaORM",category:"orm",ecosystem:"rust",nativeFor:["loco"],url:"https://www.sea-ql.org/SeaORM",scores:{default:{perf:90,dx:75,ecosystem:48,maintain:72,cost:100,compliance:85},mvp:{perf:87,dx:78,ecosystem:45,maintain:68,cost:100,compliance:82},enterprise:{perf:90,dx:72,ecosystem:52,maintain:78,cost:100,compliance:92}}},sqlx:{id:"sqlx",name:"SQLx",category:"orm",ecosystem:"rust",url:"https://github.com/launchbadge/sqlx",scores:{default:{perf:95,dx:68,ecosystem:55,maintain:78,cost:100,compliance:88},mvp:{perf:92,dx:65,ecosystem:50,maintain:73,cost:100,compliance:85},enterprise:{perf:95,dx:70,ecosystem:58,maintain:85,cost:100,compliance:95}}},shuttle:{id:"shuttle",name:"Shuttle",category:"hosting",ecosystem:"rust",url:"https://www.shuttle.dev",scores:{default:{perf:88,dx:92,ecosystem:45,maintain:65,cost:85,compliance:82},mvp:{perf:85,dx:95,ecosystem:42,maintain:62,cost:88,compliance:78},enterprise:{perf:88,dx:88,ecosystem:48,maintain:72,cost:80,compliance:88}}},trpc:{id:"trpc",name:"tRPC",category:"backend",ecosystem:"javascript",url:"https://trpc.io",scores:{default:{perf:80,dx:89,ecosystem:99,maintain:63,cost:90,compliance:85},mvp:{perf:77,dx:94,ecosystem:100,maintain:63,cost:90,compliance:85},enterprise:{perf:80,dx:89,ecosystem:94,maintain:68,cost:95,compliance:95}}},orpc:{id:"orpc",name:"oRPC",category:"backend",ecosystem:"javascript",url:"https://orpc.unnoq.com",scores:{default:{perf:58,dx:43,ecosystem:58,maintain:51,cost:90,compliance:85},mvp:{perf:55,dx:48,ecosystem:61,maintain:51,cost:90,compliance:85},enterprise:{perf:58,dx:43,ecosystem:53,maintain:56,cost:95,compliance:95}}},express:{id:"express",name:"Express",category:"backend",ecosystem:"javascript",url:"https://expressjs.com",scores:{default:{perf:30,dx:41,ecosystem:100,maintain:56,cost:90,compliance:85},mvp:{perf:27,dx:46,ecosystem:100,maintain:56,cost:90,compliance:85},enterprise:{perf:30,dx:41,ecosystem:95,maintain:61,cost:95,compliance:95}}},fastify:{id:"fastify",name:"Fastify",category:"backend",ecosystem:"javascript",url:"https://fastify.dev",scores:{default:{perf:50,dx:71,ecosystem:100,maintain:60,cost:90,compliance:85},mvp:{perf:47,dx:76,ecosystem:100,maintain:60,cost:90,compliance:85},enterprise:{perf:50,dx:71,ecosystem:95,maintain:65,cost:95,compliance:95}}},hono:{id:"hono",name:"Hono",category:"backend",ecosystem:"javascript",url:"https://hono.dev",scores:{default:{perf:85,dx:87,ecosystem:98,maintain:62,cost:90,compliance:85},mvp:{perf:82,dx:92,ecosystem:100,maintain:62,cost:90,compliance:85},enterprise:{perf:85,dx:87,ecosystem:93,maintain:67,cost:95,compliance:95}}},elysia:{id:"elysia",name:"Elysia",category:"backend",ecosystem:"javascript",url:"https://elysiajs.com",scores:{default:{perf:72,dx:97,ecosystem:96,maintain:76,cost:90,compliance:85},mvp:{perf:69,dx:100,ecosystem:99,maintain:76,cost:90,compliance:85},enterprise:{perf:72,dx:97,ecosystem:91,maintain:81,cost:95,compliance:95}}},"tanstack-router":{id:"tanstack-router",name:"TanStack Router",category:"frontend",ecosystem:"javascript",url:"https://tanstack.com/router",scores:{default:{perf:68,dx:100,ecosystem:99,maintain:83,cost:90,compliance:85},mvp:{perf:65,dx:100,ecosystem:100,maintain:83,cost:90,compliance:85},enterprise:{perf:68,dx:100,ecosystem:94,maintain:88,cost:95,compliance:95}}},"tanstack-start":{id:"tanstack-start",name:"TanStack Start",category:"meta-framework",ecosystem:"javascript",stackType:"modular",preferredHosting:["vercel","cloudflare","netlify"],url:"https://tanstack.com/start",scores:{default:{perf:64,dx:100,ecosystem:99,maintain:83,cost:90,compliance:85},mvp:{perf:61,dx:100,ecosystem:100,maintain:83,cost:90,compliance:85},enterprise:{perf:64,dx:100,ecosystem:94,maintain:88,cost:95,compliance:95}}},"react-router":{id:"react-router",name:"React Router",category:"frontend",ecosystem:"javascript",url:"https://reactrouter.com",scores:{default:{perf:77,dx:99,ecosystem:100,maintain:84,cost:90,compliance:85},mvp:{perf:74,dx:100,ecosystem:100,maintain:84,cost:90,compliance:85},enterprise:{perf:77,dx:99,ecosystem:95,maintain:89,cost:95,compliance:95}}},mongoose:{id:"mongoose",name:"Mongoose",category:"orm",ecosystem:"javascript",url:"https://mongoosejs.com",scores:{default:{perf:68,dx:90,ecosystem:100,maintain:80,cost:90,compliance:85},mvp:{perf:65,dx:95,ecosystem:100,maintain:80,cost:90,compliance:85},enterprise:{perf:68,dx:90,ecosystem:95,maintain:85,cost:95,compliance:95}}},polar:{id:"polar",name:"Polar",category:"payments",ecosystem:"universal",url:"https://polar.sh",scores:{default:{perf:93,dx:84,ecosystem:49,maintain:87,cost:72,compliance:83},mvp:{perf:90,dx:89,ecosystem:52,maintain:87,cost:72,compliance:83},enterprise:{perf:93,dx:84,ecosystem:44,maintain:92,cost:77,compliance:93}}},"cloudflare-d1":{id:"cloudflare-d1",name:"Cloudflare D1",category:"database",ecosystem:"javascript",url:"https://developers.cloudflare.com/d1",scores:{default:{perf:84,dx:76,ecosystem:41,maintain:72,cost:93,compliance:91},mvp:{perf:81,dx:81,ecosystem:44,maintain:72,cost:93,compliance:91},enterprise:{perf:84,dx:76,ecosystem:36,maintain:77,cost:98,compliance:100}}}}};var J_={$version:"1.5.0",$description:"Compatibility scores between technologies (0-100). 0 = hard incompatible, <50 = poor, 50-79 = acceptable, 80+ = good. Payments providers are mutually exclusive. PHP and JS stacks are separate ecosystems.",matrix:{react:{nextjs:100,remix:100,nuxt:0,sveltekit:0,drizzle:95,prisma:95},vue:{nuxt:100,nextjs:0,remix:0,sveltekit:0,drizzle:90,prisma:95},svelte:{sveltekit:100,nextjs:0,remix:0,nuxt:0,drizzle:95,prisma:90},solid:{nextjs:0,remix:0,nuxt:0,sveltekit:0,drizzle:85,prisma:85},nextjs:{react:100,vercel:100,cloudflare:80,railway:90,postgres:95,sqlite:70,supabase:95,firebase:90,drizzle:95,prisma:95,"better-auth":90,clerk:100},nuxt:{vue:100,vercel:95,cloudflare:85,railway:90,postgres:95,sqlite:80,supabase:90,firebase:85,drizzle:90,prisma:95},sveltekit:{svelte:100,vercel:95,cloudflare:90,railway:90,postgres:95,sqlite:85,supabase:90,firebase:85,drizzle:100,prisma:85,"better-auth":95},remix:{react:100,vercel:90,cloudflare:95,railway:90,postgres:95,sqlite:85,supabase:90,firebase:80,drizzle:95,prisma:90},nodejs:{postgres:95,sqlite:90,supabase:90,drizzle:95,prisma:95,vercel:90,cloudflare:75,railway:95},bun:{postgres:90,sqlite:95,supabase:85,drizzle:100,prisma:70,vercel:80,cloudflare:85,railway:90,sveltekit:100},postgres:{drizzle:100,prisma:100,supabase:100,vercel:95,cloudflare:90,railway:100},sqlite:{drizzle:100,prisma:95,vercel:60,cloudflare:95,railway:80},supabase:{drizzle:90,prisma:95,postgres:100,vercel:95,cloudflare:90,railway:90,neon:30,firebase:20},firebase:{nextjs:90,nuxt:85,sveltekit:85,remix:80,react:95,vue:85,svelte:80,vercel:90,cloudflare:70,railway:75,drizzle:0,prisma:0,postgres:0,supabase:20,neon:0},neon:{drizzle:98,prisma:95,postgres:100,vercel:98,cloudflare:85,railway:90,sveltekit:95,nextjs:95,nuxt:90,remix:90,supabase:30,sqlite:20},drizzle:{postgres:100,sqlite:100,supabase:90,neon:98,bun:100,nodejs:95},prisma:{postgres:100,sqlite:95,supabase:95,neon:95,bun:70,nodejs:100},vercel:{nextjs:100,nuxt:95,sveltekit:95,remix:90,postgres:95,supabase:95,neon:98},cloudflare:{nextjs:80,nuxt:85,sveltekit:90,remix:95,sqlite:95,postgres:85,drizzle:95,prisma:45,kysely:80},railway:{nextjs:90,nuxt:90,sveltekit:90,remix:90,postgres:100,nodejs:100,bun:95},stripe:{nextjs:95,sveltekit:90,nuxt:90,remix:90,nodejs:95,bun:90,paddle:0,lemonsqueezy:0,gumroad:0},paddle:{nextjs:90,sveltekit:95,nuxt:90,remix:88,nodejs:90,bun:90,stripe:0,lemonsqueezy:0,gumroad:0},lemonsqueezy:{nextjs:85,sveltekit:85,nuxt:85,remix:85,nodejs:85,bun:85,stripe:0,paddle:0,gumroad:0},gumroad:{nextjs:70,sveltekit:70,nuxt:70,remix:70,nodejs:70,bun:70,stripe:0,paddle:0,lemonsqueezy:0},php:{laravel:100,symfony:100,eloquent:100,doctrine:100,livewire:100,inertia:95,"laravel-sanctum":100,"laravel-breeze":100,forge:100,vapor:100,ploi:100,filament:100,nova:100,mysql:100,postgres:95,sqlite:90,mongodb:85,railway:75,nodejs:0,bun:0,nextjs:0,sveltekit:0,nuxt:0,remix:0,drizzle:0,prisma:0},laravel:{php:100,eloquent:100,livewire:100,inertia:95,"laravel-sanctum":100,"laravel-breeze":100,forge:100,vapor:100,ploi:95,filament:100,nova:100,mysql:100,postgres:95,sqlite:90,mongodb:70,neon:85,supabase:60,railway:75,stripe:95,paddle:90,symfony:0,doctrine:0,nextjs:0,sveltekit:0,nuxt:0,remix:0,vercel:0,cloudflare:0,drizzle:0,prisma:0},eloquent:{php:100,laravel:100,mysql:100,postgres:100,sqlite:95,mongodb:80,neon:85,doctrine:0,drizzle:0,prisma:0,kysely:0},livewire:{php:100,laravel:100,eloquent:95,forge:100,vapor:95,ploi:95,inertia:40,react:0,vue:0,svelte:0,solid:0},inertia:{php:95,laravel:95,eloquent:90,forge:95,vapor:90,react:90,vue:95,svelte:85,livewire:40},"laravel-sanctum":{php:100,laravel:100,eloquent:100,livewire:95,inertia:95,"laravel-breeze":100,lucia:0,authjs:0,clerk:0,"better-auth":0},"laravel-breeze":{php:100,laravel:100,eloquent:100,livewire:95,inertia:95,"laravel-sanctum":100,lucia:0,authjs:0,clerk:0,"better-auth":0},forge:{php:100,laravel:100,symfony:90,mysql:100,postgres:100,vapor:0,ploi:0,vercel:0,cloudflare:0,railway:0,fly:0},vapor:{php:100,laravel:100,mysql:95,postgres:90,forge:0,ploi:0,vercel:0,cloudflare:0,railway:0,fly:0},ploi:{php:100,laravel:95,symfony:85,mysql:100,postgres:100,forge:0,vapor:0,vercel:0,cloudflare:0,railway:0,fly:0},symfony:{php:100,doctrine:100,mysql:100,postgres:95,sqlite:85,forge:90,ploi:85,laravel:0,eloquent:0,livewire:0,inertia:50,nextjs:0,sveltekit:0},doctrine:{php:100,symfony:100,mysql:100,postgres:100,sqlite:90,eloquent:0,drizzle:0,prisma:0,kysely:0},filament:{php:100,laravel:100,eloquent:100,livewire:100,forge:95,vapor:90,nova:0},nova:{php:100,laravel:100,eloquent:100,forge:95,vapor:90,filament:0},planetscale:{drizzle:100,prisma:100,typeorm:95,sequelize:95,kysely:90,nextjs:95,sveltekit:95,nuxt:90,remix:90,vercel:95,railway:90,netlify:85,neon:30,supabase:30,turso:30,postgres:40,mysql:100},turso:{drizzle:100,prisma:90,typeorm:60,sequelize:60,kysely:85,nextjs:90,sveltekit:95,nuxt:85,remix:90,vercel:90,cloudflare:95,railway:80,netlify:85,sqlite:100,neon:30,supabase:30,planetscale:30},convex:{nextjs:95,sveltekit:85,nuxt:80,remix:85,vercel:90,netlify:85,drizzle:0,prisma:0,typeorm:0,sequelize:0,kysely:0,postgres:0,mysql:0,sqlite:0},timescaledb:{drizzle:95,prisma:90,typeorm:85,sequelize:85,kysely:90,postgres:100,nextjs:90,sveltekit:90,nuxt:85,railway:95,vercel:85},clickhouse:{nextjs:80,sveltekit:80,nuxt:75,remix:75,vercel:75,railway:85,drizzle:50,prisma:40,typeorm:40,postgres:30,mysql:30},neo4j:{nextjs:85,sveltekit:80,nuxt:80,remix:80,vercel:80,railway:90,drizzle:0,prisma:0,typeorm:0,sequelize:0,postgres:20,mysql:20},solidstart:{solid:100,cloudflare:95,vercel:90,netlify:90,railway:85,drizzle:90,prisma:85,postgres:90,sqlite:85,turso:90,nextjs:0,sveltekit:0,nuxt:0,remix:0},typeorm:{postgres:100,mysql:100,sqlite:95,mongodb:85,planetscale:95,timescaledb:85,neon:90,nextjs:90,sveltekit:85,nuxt:85,remix:85,drizzle:30,prisma:30,sequelize:30,kysely:30},sequelize:{postgres:100,mysql:100,sqlite:95,mongodb:0,planetscale:95,timescaledb:85,neon:90,nextjs:85,sveltekit:80,nuxt:80,remix:80,drizzle:30,prisma:30,typeorm:30,kysely:30},netlify:{nextjs:95,sveltekit:95,nuxt:95,remix:90,astro:100,solidstart:90,postgres:85,supabase:90,neon:90,planetscale:85,turso:85,vercel:0,cloudflare:0,railway:0,fly:0},"deno-deploy":{sveltekit:70,nextjs:50,nuxt:50,remix:60,astro:75,solidstart:70,postgres:85,sqlite:80,neon:85,turso:90,drizzle:85,prisma:60,vercel:0,cloudflare:0,railway:0,netlify:0,fly:0},coolify:{nextjs:95,sveltekit:95,nuxt:95,remix:95,astro:95,solidstart:90,laravel:95,postgres:100,mysql:100,mongodb:95,vercel:0,cloudflare:0,railway:0,netlify:0,fly:0,forge:0},auth0:{nextjs:100,sveltekit:90,nuxt:90,remix:90,solidstart:85,laravel:85,lucia:0,authjs:0,clerk:0,workos:0,hanko:0,kinde:0,"better-auth":0},workos:{nextjs:100,sveltekit:85,nuxt:85,remix:85,solidstart:80,lucia:0,authjs:0,clerk:0,auth0:0,hanko:0,kinde:0,"better-auth":0},hanko:{nextjs:95,sveltekit:90,nuxt:90,remix:90,solidstart:85,lucia:0,authjs:0,clerk:0,auth0:0,workos:0,kinde:0,"better-auth":0},kinde:{nextjs:100,sveltekit:90,nuxt:90,remix:90,solidstart:85,lucia:0,authjs:0,clerk:0,auth0:0,workos:0,hanko:0,"better-auth":0},rust:{axum:100,actix:100,rocket:100,loco:100,diesel:100,"sea-orm":100,sqlx:100,shuttle:100,fly:95,railway:90,postgres:100,neon:95,sqlite:95,supabase:85,nodejs:0,bun:0,php:0,nextjs:0,sveltekit:0,nuxt:0,remix:0,laravel:0,drizzle:0,prisma:0,eloquent:0},axum:{rust:100,diesel:95,"sea-orm":100,sqlx:100,shuttle:100,fly:100,railway:95,cloudflare:75,postgres:100,neon:95,sqlite:95,supabase:85,stripe:90,paddle:90,clerk:75,auth0:75,actix:0,rocket:0,loco:0,nodejs:0,bun:0,php:0,nextjs:0,sveltekit:0,laravel:0,drizzle:0,prisma:0,eloquent:0},actix:{rust:100,diesel:100,"sea-orm":95,sqlx:100,shuttle:100,fly:100,railway:95,cloudflare:70,postgres:100,neon:95,sqlite:95,supabase:85,stripe:90,paddle:90,clerk:75,auth0:75,axum:0,rocket:0,loco:0,nodejs:0,bun:0,php:0,nextjs:0,sveltekit:0,laravel:0,drizzle:0,prisma:0,eloquent:0},rocket:{rust:100,diesel:95,"sea-orm":90,sqlx:95,shuttle:100,fly:95,railway:90,postgres:100,neon:95,sqlite:95,supabase:80,stripe:90,paddle:90,clerk:70,auth0:70,axum:0,actix:0,loco:0,nodejs:0,bun:0,php:0,nextjs:0,sveltekit:0,laravel:0,drizzle:0,prisma:0,eloquent:0},loco:{rust:100,"sea-orm":100,sqlx:85,diesel:70,shuttle:100,fly:95,railway:90,postgres:100,neon:95,sqlite:95,supabase:85,stripe:90,paddle:90,clerk:75,auth0:75,axum:0,actix:0,rocket:0,nodejs:0,bun:0,php:0,nextjs:0,sveltekit:0,laravel:0,drizzle:0,prisma:0,eloquent:0},diesel:{rust:100,axum:95,actix:100,rocket:95,loco:70,postgres:100,mysql:100,sqlite:100,neon:95,"sea-orm":30,sqlx:40,drizzle:0,prisma:0,eloquent:0},"sea-orm":{rust:100,axum:100,actix:95,rocket:90,loco:100,postgres:100,mysql:100,sqlite:100,neon:95,diesel:30,sqlx:50,drizzle:0,prisma:0,eloquent:0},sqlx:{rust:100,axum:100,actix:100,rocket:95,loco:85,postgres:100,mysql:100,sqlite:100,neon:95,diesel:40,"sea-orm":50,drizzle:0,prisma:0,eloquent:0},shuttle:{rust:100,axum:100,actix:100,rocket:100,loco:100,diesel:95,"sea-orm":95,sqlx:95,postgres:100,neon:90,sqlite:90,fly:0,railway:0,vercel:0,cloudflare:0,forge:0},trpc:{nextjs:100,react:100,"tanstack-router":95,"tanstack-start":100,sveltekit:85,nuxt:75,remix:90,express:95,fastify:95,hono:90,elysia:85,nodejs:100,bun:95,postgres:90,neon:90,supabase:90,drizzle:95,prisma:95,vercel:100,cloudflare:85,railway:95,orpc:0},orpc:{nextjs:95,react:95,"tanstack-router":90,"tanstack-start":95,sveltekit:80,nuxt:70,remix:85,express:90,fastify:90,hono:85,elysia:80,nodejs:95,bun:90,vercel:95,cloudflare:80,trpc:0},express:{nodejs:100,bun:70,nextjs:80,sveltekit:75,nuxt:75,remix:80,postgres:95,mysql:95,sqlite:90,mongodb:100,neon:90,supabase:90,drizzle:90,prisma:95,mongoose:100,trpc:95,vercel:85,cloudflare:40,railway:100,fly:100,fastify:0,hono:0,elysia:0},fastify:{nodejs:100,bun:85,nextjs:75,sveltekit:70,nuxt:70,remix:75,postgres:95,mysql:95,sqlite:90,mongodb:95,neon:90,supabase:90,drizzle:95,prisma:95,mongoose:95,trpc:95,vercel:80,cloudflare:50,railway:100,fly:100,express:0,hono:0,elysia:0},hono:{cloudflare:100,bun:100,nodejs:95,vercel:95,"deno-deploy":100,nextjs:70,sveltekit:65,remix:70,postgres:90,sqlite:95,neon:95,turso:100,"cloudflare-d1":100,drizzle:100,prisma:45,trpc:90,railway:90,fly:95,express:0,fastify:0,elysia:0},elysia:{bun:100,nodejs:60,cloudflare:85,vercel:70,postgres:90,sqlite:95,mongodb:90,neon:90,turso:95,drizzle:95,prisma:70,mongoose:90,trpc:85,railway:85,fly:90,express:0,fastify:0,hono:0},"tanstack-router":{react:100,nextjs:40,"tanstack-start":100,trpc:95,orpc:90,vercel:95,cloudflare:90,netlify:90,vue:0,svelte:0},"tanstack-start":{react:100,"tanstack-router":100,trpc:100,orpc:95,postgres:95,sqlite:90,neon:95,turso:95,supabase:90,drizzle:95,prisma:90,vercel:95,cloudflare:90,netlify:90,railway:85,nextjs:0,sveltekit:0,nuxt:0,remix:0},"react-router":{react:100,nextjs:30,remix:100,express:90,fastify:85,hono:80,vercel:95,cloudflare:90,netlify:95,vue:0,svelte:0},mongoose:{mongodb:100,express:100,fastify:95,hono:85,elysia:90,nextjs:95,sveltekit:85,nuxt:90,remix:90,nodejs:100,bun:90,vercel:90,railway:95,drizzle:0,prisma:0,typeorm:0,sequelize:0,kysely:0,postgres:0,mysql:0,sqlite:0},polar:{nextjs:90,sveltekit:85,nuxt:85,remix:85,"tanstack-start":85,nodejs:90,bun:85,stripe:0,paddle:0,lemonsqueezy:0,gumroad:0},"cloudflare-d1":{cloudflare:100,hono:100,sveltekit:90,nextjs:80,nuxt:80,remix:90,astro:90,drizzle:100,prisma:60,kysely:90,sqlite:100,turso:50,postgres:0,mysql:0,mongodb:0,neon:0,supabase:0,vercel:0,railway:0,fly:0}}};var Z_={$version:"2.4.0",constraints:[{id:"language-javascript",label:"JavaScript/TypeScript Stack",category:"ecosystem",description:"Prefer JavaScript/TypeScript technologies (Node.js, React, Vue, Svelte, etc.)",techModifiers:{php:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},laravel:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},symfony:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},eloquent:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},doctrine:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},livewire:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},inertia:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"laravel-sanctum":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"laravel-breeze":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},forge:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},vapor:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},ploi:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},filament:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},nova:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},rust:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},axum:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},actix:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},rocket:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},loco:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},diesel:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"sea-orm":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},sqlx:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},shuttle:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},neon:{dx:10,ecosystem:8},vercel:{dx:12,ecosystem:10},cloudflare:{dx:10,ecosystem:8},"better-auth":{dx:10}}},{id:"language-php",label:"PHP Stack",category:"ecosystem",description:"Prefer PHP technologies (Laravel, Symfony, etc.)",techModifiers:{nodejs:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},bun:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},nextjs:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},sveltekit:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},nuxt:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},remix:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},astro:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},react:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},vue:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},svelte:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},solid:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},drizzle:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},prisma:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},kysely:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},lucia:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},authjs:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},clerk:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"better-auth":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},vercel:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},cloudflare:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},fly:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},solidstart:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},typeorm:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},sequelize:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},netlify:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"deno-deploy":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},convex:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},rust:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},axum:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},actix:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},rocket:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},loco:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},diesel:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"sea-orm":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},sqlx:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},shuttle:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100}}},{id:"language-rust",label:"Rust Stack",category:"ecosystem",description:"Prefer Rust technologies (Axum, Actix, Rocket, Loco, etc.)",techModifiers:{nodejs:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},bun:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},php:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},nextjs:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},sveltekit:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},nuxt:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},remix:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},astro:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},solidstart:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},laravel:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},symfony:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},drizzle:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},prisma:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},kysely:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},typeorm:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},sequelize:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},eloquent:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},doctrine:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},lucia:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},authjs:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"better-auth":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"laravel-sanctum":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"laravel-breeze":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},livewire:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},inertia:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},vercel:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},netlify:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},forge:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},vapor:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},ploi:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},filament:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},nova:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},react:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},vue:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},svelte:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},solid:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},cloudflare:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"deno-deploy":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"tanstack-start":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"tanstack-router":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"react-router":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},hono:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},elysia:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},fastify:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},express:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},trpc:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},orpc:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},mongoose:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},convex:{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},"cloudflare-d1":{perf:-100,dx:-100,ecosystem:-100,maintain:-100,cost:-100,compliance:-100},rust:{perf:4,maintain:3},axum:{dx:4,perf:4},actix:{perf:5,maintain:2},rocket:{dx:4},loco:{dx:5,ecosystem:2},diesel:{perf:4,maintain:3},"sea-orm":{dx:3,maintain:2},sqlx:{perf:3,dx:2},shuttle:{dx:5,cost:3}}},{id:"real-time",label:"Real-time Data",category:"data",description:"WebSockets, live updates, subscriptions",techModifiers:{supabase:{perf:10,ecosystem:5},firebase:{perf:10,ecosystem:10,dx:5},convex:{perf:15,dx:10,ecosystem:5},postgres:{perf:5},sqlite:{perf:-15,ecosystem:-10}},impliesProjectType:"saas",impliesPriorities:["performance"]},{id:"multi-tenant",label:"Multi-tenant Architecture",category:"data",description:"Row-level security, tenant isolation",techModifiers:{postgres:{maintain:10,compliance:5},supabase:{maintain:10,compliance:5,dx:5},neon:{perf:10,dx:8,cost:-5,maintain:10,compliance:5},planetscale:{maintain:10},sqlite:{maintain:-15,compliance:-10},firebase:{maintain:-10},vercel:{dx:10},cloudflare:{dx:12,cost:8,perf:10}},impliesScale:"growth",impliesPriorities:["security"]},{id:"offline-first",label:"Offline First",category:"data",description:"Works without network connection",techModifiers:{sqlite:{perf:15,dx:10},firebase:{perf:10,ecosystem:5},postgres:{perf:-10},supabase:{perf:-5}},impliesProjectType:"mobile-app"},{id:"high-volume",label:"High Volume Data",category:"data",description:"Large datasets, heavy read/write",techModifiers:{postgres:{perf:10},planetscale:{perf:10},clickhouse:{perf:15},sqlite:{perf:-15},mongodb:{perf:-5},neon:{cost:10,perf:12}},impliesScale:"growth"},{id:"time-series",label:"Time-series Data",category:"data",description:"IoT, metrics, event streams",techModifiers:{timescaledb:{perf:15,ecosystem:10},clickhouse:{perf:15,ecosystem:5},postgres:{perf:5},mongodb:{perf:-10}}},{id:"graph-data",label:"Graph Data",category:"data",description:"Relationships, social graphs",techModifiers:{neo4j:{ecosystem:15,perf:10},postgres:{ecosystem:5},sqlite:{ecosystem:-10}}},{id:"social-login",label:"Social Login",category:"auth",description:"OAuth providers (Google, GitHub, etc.)",techModifiers:{lucia:{dx:10},"better-auth":{dx:10,ecosystem:5},clerk:{dx:15,ecosystem:5},auth0:{dx:10,ecosystem:5}}},{id:"sso-saml",label:"SSO / SAML",category:"auth",description:"Enterprise single sign-on",techModifiers:{auth0:{ecosystem:15,compliance:10},clerk:{ecosystem:10,dx:5,compliance:5},workos:{compliance:15,ecosystem:10},lucia:{ecosystem:-10,compliance:-5},"better-auth":{ecosystem:-5,dx:10}},impliesScale:"enterprise",impliesPriorities:["security","compliance"]},{id:"passwordless",label:"Passwordless",category:"auth",description:"Magic links, passkeys",techModifiers:{clerk:{dx:10,ecosystem:5},hanko:{dx:15,ecosystem:5},lucia:{dx:5},"better-auth":{dx:10}}},{id:"2fa",label:"Two-Factor Auth",category:"auth",description:"TOTP, SMS, hardware keys",techModifiers:{clerk:{compliance:10,dx:5},auth0:{compliance:10,dx:5},lucia:{compliance:5},"better-auth":{compliance:5,dx:5}},impliesPriorities:["security"]},{id:"role-based",label:"Role-Based Access",category:"auth",description:"RBAC, permissions system",techModifiers:{lucia:{dx:10},"better-auth":{dx:10},clerk:{dx:10,ecosystem:5},planetscale:{dx:10}}},{id:"edge-deploy",label:"Edge Deployment",category:"scale",description:"Global edge functions",techModifiers:{sveltekit:{perf:10,ecosystem:5},nextjs:{perf:10,ecosystem:5},cloudflare:{perf:15,ecosystem:5,"edge-first":15},vercel:{perf:12,ecosystem:5,"high-throughput-api":10},express:{perf:-10},neon:{perf:8},hono:{perf:15,dx:10},elysia:{perf:8,dx:5},orpc:{perf:12},trpc:{perf:5},"cloudflare-d1":{perf:15,cost:10},"tanstack-start":{perf:8,dx:5}},impliesPriorities:["performance"]},{id:"serverless",label:"Serverless",category:"scale",description:"Auto-scaling, pay-per-use",techModifiers:{vercel:{cost:10,dx:8,perf:10},netlify:{cost:10,dx:5},cloudflare:{perf:8,cost:12,maintain:5,dx:8},neon:{cost:12,dx:8,perf:10},planetscale:{cost:10,dx:6,perf:5},supabase:{cost:5,dx:5},hono:{perf:12,cost:10},fastify:{perf:8,cost:8},elysia:{perf:5},orpc:{perf:8},trpc:{perf:-5},express:{perf:-10,cost:-5},"cloudflare-d1":{perf:12,cost:15},"tanstack-start":{dx:8},mongoose:{perf:-5}},impliesPriorities:["cost"]},{id:"self-hosted",label:"Self-Hosted",category:"scale",description:"On-premise, own infrastructure",techModifiers:{postgres:{cost:10,compliance:10},sqlite:{cost:15,compliance:5},docker:{dx:10,cost:5},coolify:{dx:15,cost:10},vercel:{cost:-10},planetscale:{cost:-10}},impliesPriorities:["compliance","cost"]},{id:"hybrid-cloud",label:"Hybrid Cloud",category:"scale",description:"Multi-cloud, on-prem + cloud",techModifiers:{kubernetes:{maintain:10,compliance:5},docker:{maintain:10,dx:5}},impliesScale:"enterprise"},{id:"file-uploads",label:"File Uploads",category:"features",description:"Large file handling, CDN",techModifiers:{uploadthing:{dx:15,ecosystem:5},supabase:{dx:10,ecosystem:5},cloudflare:{cost:10,perf:5}}},{id:"payments",label:"Payments",category:"features",description:"Stripe, subscriptions, billing",techModifiers:{stripe:{ecosystem:15,compliance:5},lemonsqueezy:{dx:10,ecosystem:5},"better-auth":{dx:5},polar:{dx:8,cost:5,compliance:8},paddle:{compliance:12,dx:5}},impliesProjectType:"saas"},{id:"notifications",label:"Notifications",category:"features",description:"Email, push, in-app",techModifiers:{resend:{dx:10,ecosystem:5},novu:{dx:15,ecosystem:5},pusher:{dx:10}}},{id:"full-text-search",label:"Full-Text Search",category:"features",description:"Advanced search, filtering",techModifiers:{meilisearch:{perf:15,dx:10},algolia:{perf:10,dx:10},typesense:{perf:10,dx:5},postgres:{perf:5},sqlite:{perf:-5}}},{id:"analytics",label:"Analytics",category:"features",description:"User tracking, product analytics",techModifiers:{posthog:{dx:15,compliance:5},plausible:{dx:10,compliance:10},mixpanel:{dx:10}}},{id:"i18n",label:"Internationalization",category:"features",description:"Multi-language support",techModifiers:{nextjs:{dx:10,ecosystem:5},sveltekit:{dx:10},nuxt:{dx:10,ecosystem:5},"better-auth":{dx:10}}},{id:"solo-dev",label:"Solo Developer",category:"team",description:"Optimized for one-person teams",techModifiers:{supabase:{dx:15,cost:5},firebase:{dx:15,cost:5},sveltekit:{dx:10},convex:{dx:15},neon:{dx:15},vercel:{dx:15}},impliesScale:"mvp"},{id:"small-team",label:"Small Team",category:"team",description:"2-5 developers",techModifiers:{nextjs:{ecosystem:5,maintain:5},sveltekit:{dx:5},drizzle:{dx:5},neon:{dx:12},planetscale:{dx:7},vercel:{dx:12,ecosystem:8}},impliesScale:"startup"},{id:"enterprise-team",label:"Enterprise Team",category:"team",description:"Large development teams",techModifiers:{nextjs:{ecosystem:10,maintain:10},postgres:{maintain:10,compliance:5},auth0:{compliance:10,ecosystem:5},vercel:{dx:8,maintain:5},planetscale:{dx:8},cloudflare:{dx:8,maintain:6}},impliesScale:"enterprise",impliesPriorities:["maintainability"]},{id:"realtime",label:"Real-time Features",category:"features",description:"WebSockets, live updates, collaborative editing",techModifiers:{supabase:{dx:12,perf:5,ecosystem:8},firebase:{dx:10,perf:5,ecosystem:5},convex:{dx:15,perf:8},pusher:{dx:8,perf:10},ably:{perf:12,ecosystem:5},trpc:{dx:10,perf:5},orpc:{perf:10},mongoose:{perf:5}},impliesPriorities:["performance"]},{id:"edge-first",label:"Edge-First Architecture",category:"scale",description:"Edge computing, minimal latency, global distribution",techModifiers:{vercel:{perf:10,dx:6,cost:-8},cloudflare:{perf:15,cost:10},netlify:{perf:10,dx:5},"deno-deploy":{perf:12,dx:8},hono:{perf:15,dx:12},"cloudflare-d1":{perf:15,cost:12},elysia:{perf:10,dx:8}},impliesPriorities:["performance"]},{id:"high-throughput-api",label:"High Throughput API",category:"scale",description:"Maximum requests per second, minimal latency, efficient resource usage",techModifiers:{rust:{perf:8,cost:4},actix:{perf:10,cost:4},axum:{perf:8,cost:4},sqlx:{perf:5},diesel:{perf:6},bun:{perf:6},cloudflare:{perf:12},neon:{perf:10},hono:{perf:8},fastify:{perf:10},elysia:{perf:15,dx:8},express:{perf:-8},mongoose:{perf:-5}},impliesScale:"growth",impliesPriorities:["performance"]}]};var n_={$version:"1.0.0",$description:"Context-based delta adjustments for scoring. Applied based on user context (team, timeline, budget, etc.)",limits:{singleDeltaMax:15,singleDeltaMin:-15,totalDeltaMax:30,totalDeltaMin:-30},rules:[{id:"solo-team-dx-boost",description:"Solo developers prioritize DX and simple solutions",condition:{teamSize:"solo"},deltas:{dx:10,maintain:-5}},{id:"enterprise-compliance-boost",description:"Enterprise scale requires compliance and maintainability",condition:{scale:"enterprise"},deltas:{compliance:15,maintain:10,dx:-5}},{id:"bootstrap-cost-boost",description:"Bootstrap budget prioritizes cost savings",condition:{budget:"bootstrap"},deltas:{cost:15,perf:-5}},{id:"unlimited-budget-quality",description:"Unlimited budget allows premium solutions",condition:{budget:"unlimited"},deltas:{perf:10,compliance:10,cost:-15}},{id:"hackathon-speed",description:"Hackathon timeline prioritizes shipping fast",condition:{timeline:"hackathon"},deltas:{dx:15,ecosystem:5,maintain:-10,compliance:-10}},{id:"long-term-stability",description:"Long-term projects need maintainability",condition:{timeline:"long-term"},deltas:{maintain:15,compliance:5,dx:-5}},{id:"startup-scale-balance",description:"Startups balance growth potential with velocity",condition:{scale:"startup"},deltas:{dx:5,ecosystem:5,cost:5}},{id:"growth-scale-perf",description:"Growth stage needs performance and scalability",condition:{scale:"growth"},deltas:{perf:10,maintain:5}},{id:"mvp-scale-speed",description:"MVP stage prioritizes shipping quickly",condition:{scale:"mvp"},deltas:{dx:10,cost:5,maintain:-5}},{id:"small-team-collaboration",description:"Small teams need good tooling",condition:{teamSize:"small"},deltas:{dx:5,ecosystem:5}},{id:"large-team-structure",description:"Large teams need structure and compliance",condition:{teamSize:"large"},deltas:{maintain:10,compliance:5,dx:-5}},{id:"saas-project-type",description:"SaaS projects need subscription and auth patterns",condition:{projectType:"saas"},deltas:{ecosystem:5,maintain:5}},{id:"ecommerce-project-type",description:"E-commerce needs payments and security",condition:{projectType:"e-commerce"},deltas:{compliance:10,perf:5}},{id:"api-project-type",description:"API-first projects prioritize performance",condition:{projectType:"api"},deltas:{perf:10,dx:5}},{id:"moderate-budget-balance",description:"Moderate budget balances cost and quality",condition:{budget:"moderate"},deltas:{cost:5,dx:3}},{id:"standard-timeline",description:"Standard timeline allows for balanced approach",condition:{timeline:"standard"},deltas:{maintain:5}}]};var Pq=null,tq=null,jq=null,Gq=null;function o_(){if(Pq)return Pq;let q=W_;Pq=new Map;for(let[_,f]of Object.entries(q.technologies))Pq.set(_,f);return Pq}function m6(){if(tq)return tq;return tq=J_.matrix,tq}function p_(){if(jq)return jq;let q=Z_;jq=new Map;for(let _ of q.constraints)jq.set(_.id,_);return jq}function O6(){return Array.from(p_().values())}function r6(){if(Gq)return Gq;return Gq=n_,Gq}function T6(){let q=W_,_=J_,f=Z_,$=n_;return{scores:q.$version,matrix:_.$version,constraints:f.$version,deltaRules:$.$version}}var q8=["perf","dx","ecosystem","maintain","cost","compliance"],C8={perf:0,dx:0,ecosystem:0,maintain:0,cost:0,compliance:0},u_=["meta-framework","database","orm","auth","hosting","payments"],Y6=75;var o9={perf:0.15,dx:0.2,ecosystem:0.2,maintain:0.2,cost:0.15,compliance:0.1},k6={speed:{dx:0.05,ecosystem:0.03,maintain:-0.03,compliance:-0.05},dx:{dx:0.08,perf:-0.03,compliance:-0.05},perf:{perf:0.1,dx:-0.05,cost:-0.05},cost:{cost:0.1,perf:-0.05,ecosystem:-0.05},scale:{perf:0.05,maintain:0.05,dx:-0.05,cost:-0.05},security:{compliance:0.1,maintain:0.05,dx:-0.1,cost:-0.05},compliance:{compliance:0.15,cost:-0.05,dx:-0.05,perf:-0.05}};function p9(q,_=[]){let f={...o9};for(let P of q.slice(0,2)){let j=k6[P];if(j){for(let K of q8)if(j[K]!==void 0)f[K]+=j[K]}}for(let P of _.slice(0,2)){let j=k6[P];if(j){for(let K of q8)if(j[K]!==void 0)f[K]-=j[K]}}for(let P of q8)f[P]=Math.max(0.05,Math.min(0.35,f[P]));let $=q8.reduce((P,j)=>P+f[j],0);for(let P of q8)f[P]=Math.round(f[P]/$*1e4)/1e4;return f}function u9(q){return[`${q.projectType}_${q.scale}`,`${q.projectType}_default`,`default_${q.scale}`,q.scale,"default"]}function d9(q,_){let f=u9(_);for(let $ of f)if(q.scores[$])return{...q.scores[$]};if(q.scores.default)return{...q.scores.default};throw Error(`No scores found for ${q.id}`)}function X9(q,_){let f=p_(),$={...C8};for(let K of _){let v=f.get(K);if(!v)continue;let m=v.techModifiers[q];if(m)for(let w of q8){let r=m[w];if(r!==void 0)$[w]+=r}}let j=_.some((K)=>K.startsWith("language-"))?100:30;for(let K of q8)$[K]=Math.max(-j,Math.min(j,$[K]));return $}function A9(q,_){if("teamSize"in q)return _.teamSize===q.teamSize;if("scale"in q)return _.scale===q.scale;if("budget"in q)return _.budget===q.budget;if("timeline"in q)return _.timeline===q.timeline;if("projectType"in q)return _.projectType===q.projectType;return!1}function a9(q){let _=r6(),{singleDeltaMax:f,singleDeltaMin:$,totalDeltaMax:P,totalDeltaMin:j}=_.limits,K={...C8},v=[];for(let m of _.rules)if(A9(m.condition,q)){v.push({ruleId:m.id,description:m.description});for(let w of q8){let r=m.deltas[w];if(r!==void 0){let O=Math.max($,Math.min(f,r));K[w]+=O}}}for(let m of q8)K[m]=Math.max(j,Math.min(P,K[m]));return{deltaVec:K,appliedRules:v}}function i9(q,_,f){if(f[q]?.[_]!==void 0)return f[q][_];if(f[_]?.[q]!==void 0)return f[_][q];return Y6}function t9(q){if(q<50)return{dx:-15,maintain:-10};if(q<80)return{dx:-5,maintain:-3};return{}}function G9(q,_,f){let $={...C8},P=[];for(let[j,K]of Object.entries(_)){if(!K)continue;if(j===q.category)continue;let v=i9(q.id,K,f);if(v===0){P.push(K);continue}let m=t9(v);for(let w of q8){let r=m[w];if(r!==void 0)$[w]+=r}}if(P.length>0)return{isCompatible:!1,vec:C8,incompatibleWith:P};for(let j of q8)$[j]=Math.max(-30,$[j]);return{isCompatible:!0,vec:$,incompatibleWith:[]}}function vq(q){if(q>=95)return{grade:"A+",label:"Top Pick",color:"emerald"};if(q>=85)return{grade:"A",label:"Excellent",color:"emerald"};if(q>=70)return{grade:"A-",label:"Very Good",color:"green"};if(q>=55)return{grade:"B+",label:"Good Fit",color:"lime"};if(q>=40)return{grade:"B",label:"Solid",color:"yellow"};if(q>=25)return{grade:"B-",label:"Acceptable",color:"amber"};if(q>=15)return{grade:"C+",label:"Consider Alternatives",color:"orange"};if(q>=5)return{grade:"C",label:"Below Average",color:"red"};return{grade:"C-",label:"Not Recommended",color:"red"}}function l9(q,_){if(_.length===0)return{...vq(0),percentile:0};let f=_.length,$=_.filter((v)=>v>q).length,P=_.filter((v)=>v===q).length,j=$+(P-1)/2,K=Math.round((1-j/f)*100);return{...vq(K),percentile:K}}function b9(q,_,f){return Math.max(_,Math.min(f,q))}function M9(q,_,f,$){let P={...C8};for(let j of q8){let K=q[j]+_[j]+f[j]+$[j];P[j]=b9(K,0,100)}return P}function C9(q,_){let f=0;for(let $ of q8)f+=_[$]*q[$];return Math.round(f)}function V9(q,_,f,$,P,j){try{let K=d9(q,_),v=X9(q.id,_.constraints),m=G9(q,f,P);if(!m.isCompatible)return null;let w=M9(K,j,v,m.vec),r=C9(w,$);return{tech:q,score:r,displayScore:0,percentile:0,grade:"B",gradeLabel:"Solid",gradeColor:"yellow",breakdown:w,isRecommended:!1,incompatibleWith:[]}}catch{return null}}function W8(q){let _=o_(),f=m6(),$=p9(q.priorities,q.depriorities??[]),{deltaVec:P}=a9(q),j={"meta-framework":null,database:null,orm:null,auth:null,hosting:null,payments:null,backend:null,frontend:null},K=[];for(let m of u_){let w=Array.from(_.values()).filter((z)=>z.category===m).filter((z)=>!z.deprecated).filter((z)=>{if(q.ecosystem&&q.ecosystem!=="universal")return z.ecosystem===q.ecosystem||z.ecosystem==="universal";return!0});if(w.length===0)continue;let r=w.map((z)=>V9(z,q,j,$,f,P)).filter((z)=>z!==null);if(r.length===0)continue;let O=r.map((z)=>z.score),T=r.map((z)=>{let W=l9(z.score,O);return{...z,displayScore:W.percentile,percentile:W.percentile,grade:W.grade,gradeLabel:W.label,gradeColor:W.color}});T.sort((z,W)=>W.score-z.score);let h=T[0];h.isRecommended=!0,j[m]=h.tech.id,K.push({category:m,recommended:h,alternatives:T.slice(1,4)})}let v=h6(K);return{categories:K,stackScore:v,confidence:c9(K,q),context:q}}function h6(q){if(q.length===0)return{score:0,grade:"C-",gradeLabel:"Incomplete",explanation:"No technologies could be recommended."};let _=Math.round(q.reduce((j,K)=>j+K.recommended.score,0)/q.length),f=vq(_),$=q.filter((j)=>j.recommended.grade==="A+"||j.recommended.grade==="A").length,P="";if($>=4)P="Excellent stack with top-tier technologies across the board.";else if($>=2)P="Strong stack with well-matched technologies.";else P="Solid stack that meets your requirements.";return{score:_,grade:f.grade,gradeLabel:f.label,explanation:P}}function S9(q,_){let f=2;if(_.teamSize)f+=1;if(_.budget)f+=1;if(_.timeline)f+=1;if(_.priorities.length>0)f+=_.priorities.length>=2?1.5:0.5;let $=Math.round(f/7.5*100),P=q.map((r)=>{if(r.alternatives.length===0)return 100;return r.recommended.score-r.alternatives[0].score}),j=Math.min(...P),K=q.map((r)=>r.recommended.score),v=Math.min(...K),m=Math.round(q.length/u_.length*100),w=q.some((r)=>r.recommended.score<50);return{inputCompleteness:$,scoreGap:j,minTopScore:v,tableCoverage:m,hasConflicts:w}}function c9(q,_){let f=S9(q,_),$=[],P=f.inputCompleteness>=80&&f.tableCoverage>=80&&!f.hasConflicts&&f.scoreGap>=15&&f.minTopScore>=70,j=!P&&f.inputCompleteness>=45&&!f.hasConflicts,K;if(P){if(K="high",$.push("Clear winners in each category"),$.push("Full stack coverage"),f.scoreGap>=20)$.push("Strong differentiation between options")}else if(j){if(K="medium",f.tableCoverage>=80)$.push("Full stack coverage");if(f.scoreGap>=10)$.push("Good differentiation between options")}else{if(K="low",f.hasConflicts)$.push("Some recommendations have low scores");if(f.inputCompleteness<45)$.push("Limited context provided");if(f.tableCoverage<50)$.push("Incomplete stack coverage")}return{level:K,reasons:$}}function z6(q,_){let f=o_(),$=[];for(let j of q.technologies){let K=f.get(j.techId);if(!K)continue;let v={tech:K,score:j.score,displayScore:j.score,percentile:j.score,grade:j.grade,gradeLabel:vq(j.score).label,gradeColor:vq(j.score).color,breakdown:K.scores.default||{...C8},isRecommended:!0,incompatibleWith:[]};$.push({category:j.category,recommended:v,alternatives:[]})}let P={projectName:_,projectType:q.projectType,scale:q.scale,ecosystem:"javascript",priorities:q.priorities,constraints:q.constraints};return{categories:$,stackScore:h6($),confidence:{level:"high",reasons:["Pre-configured blueprint","Tested stack combination"]},context:P}}var g8=F(P8(),1),d_=[{id:"name",title:"Project Name",emoji:">"},{id:"features",title:"Features",emoji:">"},{id:"scale",title:"Scale",emoji:">"},{id:"high-priority",title:"What Matters Most",emoji:">"},{id:"low-priority",title:"Compromise",emoji:">",optional:!0},{id:"framework",title:"Framework",emoji:">"},{id:"database",title:"Database",emoji:">"},{id:"auth",title:"Authentication",emoji:">",optional:!0,condition:(q)=>q.needsUsers||q.projectType!=="portfolio"&&q.projectType!=="blog"&&q.projectType!=="api"},{id:"payments",title:"Payments",emoji:">",optional:!0,condition:(q)=>q.needsPayments||q.projectType==="saas"||q.projectType==="marketplace"||q.projectType==="e-commerce"}];class X_{currentIndex=0;steps;context={};constructor(q=d_){this.steps=q}getVisibleSteps(){return this.steps.filter((q)=>!q.condition||q.condition(this.context))}getCurrentStepNumber(){return this.currentIndex+1}getTotalSteps(){return this.getVisibleSteps().length}getCurrentStep(){return this.getVisibleSteps()[this.currentIndex]}updateContext(q){this.context={...this.context,...q}}getContext(){return this.context}advance(){let q=this.getVisibleSteps();if(this.currentIndex<q.length-1)return this.currentIndex++,!0;return!1}goBack(){if(this.currentIndex>0)return this.currentIndex--,!0;return!1}isComplete(){return this.currentIndex>=this.getVisibleSteps().length-1}getProgressBar(q=12){let _=this.getCurrentStepNumber(),f=this.getTotalSteps(),$=Math.round(_/f*q),P=q-$;return`${g8.default.green("█".repeat($))+g8.default.dim("░".repeat(P))} ${_}/${f}`}getStepHeader(){let q=this.getCurrentStep();if(!q)return"";let _=this.getCurrentStepNumber(),f=this.getTotalSteps(),$=q.optional?g8.default.dim(" (optional)"):"";return g8.default.dim(`Step ${_}/${f}`)+` ${g8.default.bold(`${q.emoji} ${q.title}`)}`+$}getFullHeader(){return`
|
|
88
88
|
${this.getProgressBar()}
|
|
89
89
|
${this.getStepHeader()}
|
|
90
|
-
`}reset(){this.currentIndex=0,this.context={}}}var
|
|
90
|
+
`}reset(){this.currentIndex=0,this.context={}}}var u=F(P8(),1),a={topLeft:"╔",topRight:"╗",bottomLeft:"╚",bottomRight:"╝",horizontal:"═",vertical:"║",dividerLeft:"╠",dividerRight:"╣",verticalRight:"├",verticalLeft:"┤",roundTopLeft:"╭",roundTopRight:"╮",roundBottomLeft:"╰",roundBottomRight:"╯",roundHorizontal:"─",roundVertical:"│"},e6=58,N9={"meta-framework":"Framework",database:"Database",orm:"ORM",auth:"Auth",hosting:"Hosting",payments:"Payments",backend:"Backend",frontend:"Frontend"},H6={"A+":{color:u.default.green,label:"Top Pick"},A:{color:u.default.green,label:"Excellent"},"A-":{color:u.default.green,label:"Very Good"},"B+":{color:u.default.cyan,label:"Good"},B:{color:u.default.cyan,label:"Solid"},"B-":{color:u.default.yellow,label:"Fair"},"C+":{color:u.default.yellow,label:"Okay"},C:{color:u.default.red,label:"Limited"},"C-":{color:u.default.red,label:"Poor"}};function f8(q){return(H6[q]||{color:u.default.white,label:"Unknown"}).color(`[${q}]`)}function y9(q){let _=H6[q]||{color:u.default.white,label:"Unknown"};return _.color(`[${q}] ${_.label}`)}function wq(q,_,f,$=a.horizontal){return _+$.repeat(q-2)+f}function lq(q,_,f=a.vertical,$=a.vertical){let j=((m)=>m.replace(/\x1b\[[0-9;]*m/g,""))(q).length,K=_-j-4,v=K>0?" ".repeat(K):"";return`${f} ${q}${v} ${$}`}function A_(q){let _=e6,{stackScore:f,categories:$}=q;console.log(u.default.green(wq(_,a.topLeft,a.topRight)));let P=f8(f.grade),j=`${u.default.bold("RECOMMENDED STACK")}`,K=`Grade: ${P}`,v=(T)=>T.replace(/\x1b\[[0-9;]*m/g,""),m=v(j).length,w=v(K).length,r=_-m-w-6,O=r>0?" ".repeat(r):" ";console.log(u.default.green(a.vertical)+` ${j}${O}${K} `+u.default.green(a.vertical)),console.log(u.default.green(wq(_,a.dividerLeft,a.dividerRight)));for(let T of $){let h=(N9[T.category]||T.category).padEnd(12),z=T.recommended.tech.name.padEnd(16),W=y9(T.recommended.grade),n=`${u.default.dim(h)} │ ${u.default.cyan(z)} │ ${W}`;console.log(lq(n,_,u.default.green(a.vertical),u.default.green(a.vertical)))}console.log(u.default.green(wq(_,a.bottomLeft,a.bottomRight)))}function a_(q,_){let f=e6;console.log(u.default.dim(wq(f,a.roundTopLeft,a.roundTopRight,a.roundHorizontal)));let $=` ${u.default.bold("Next steps:")}`;console.log(lq($,f,u.default.dim(a.roundVertical),u.default.dim(a.roundVertical))),console.log(lq("",f,u.default.dim(a.roundVertical),u.default.dim(a.roundVertical)));let P=[`cd ${q}`,"bun install","bun dev"];for(let j of P){let K=` ${u.default.cyan(j)}`;console.log(lq(K,f,u.default.dim(a.roundVertical),u.default.dim(a.roundVertical)))}console.log(u.default.dim(wq(f,a.roundBottomLeft,a.roundBottomRight,a.roundHorizontal)))}function bq(q){console.log(""),console.log(u.default.dim(" Reproduce this stack:"));let _=["bun create stacksfinder",q.projectName,"--yes"];if(q.projectType!=="saas")_.push(`--type ${q.projectType}`);if(q.scale!=="mvp")_.push(`--scale ${q.scale}`);if(q.priorities[0]&&q.priorities[0]!=="speed")_.push(`--priority ${q.priorities[0]}`);console.log(` ${u.default.cyan(_.join(" "))}`)}var R9={data:{label:"Data & Storage",icon:"[D]"},auth:{label:"Authentication",icon:"[A]"},scale:{label:"Infrastructure",icon:"[I]"},features:{label:"Features",icon:"[F]"},team:{label:"Team Size",icon:"[T]"},ecosystem:{label:"Ecosystem",icon:"[E]"}};function W6(q){let _=q.highPriorities?.length?q.highPriorities.slice(0,2):q.priority?[q.priority]:[],f=q.lowPriorities?.slice(0,2)??[];return{projectName:q.projectName,projectType:q.projectType,scale:q.scale,ecosystem:"javascript",priorities:_,depriorities:f,constraints:[]}}async function J6(q={}){let{expertMode:_=!1}=q,f=new X_(d_);j6(J8.default.cyan(" create-stacksfinder "));let $=_?J8.default.yellow(" EXPERT MODE ")+" - All 27 constraints available":"";e_(`Powered by ${J8.default.cyan("stacksfinder.com")}
|
|
91
91
|
Analyzes 50+ technologies across 6 criteria
|
|
92
92
|
to recommend your optimal stack.${$?`
|
|
93
93
|
|
|
94
|
-
`+$:""}`,"Welcome"),console.log(f.getFullHeader());let P=await
|
|
95
|
-
`);
|
|
94
|
+
`+$:""}`,"Welcome"),console.log(f.getFullHeader());let P=await K6({message:"What's your project called?",placeholder:"my-awesome-app",validate:(L)=>{if(!L)return"Project name is required";if(!/^[a-z0-9-_]+$/i.test(L))return"Use only letters, numbers, hyphens, and underscores"}});if(Q(P))return v8("Operation cancelled."),null;f.updateContext({projectName:P}),f.advance(),console.log(f.getFullHeader());let K=await Kq({message:"What does your app need?",required:!1,options:[{value:"users",label:"User accounts",hint:"Login, signup, profiles"},{value:"payments",label:"Payments",hint:"Subscriptions, checkout"},{value:"content",label:"Content pages",hint:"Blog, docs, landing"},{value:"api",label:"API backend",hint:"REST or GraphQL"}]});if(Q(K))return v8("Operation cancelled."),null;let v=K,m=v.includes("users")||v.includes("payments"),w=v.includes("payments"),r=v.includes("content"),O=v.includes("api"),T;if(w)T="saas";else if(m&&r)T="web-app";else if(m)T="web-app";else if(O&&!r)T="api";else if(r)T="blog";else T="portfolio";f.updateContext({projectType:T,features:v,needsUsers:m,needsPayments:w}),f.advance(),console.log(f.getFullHeader());let h=await E8({message:"What scale are you targeting?",options:[{value:"mvp",label:"MVP",hint:"Ship fast, iterate later"},{value:"startup",label:"Startup",hint:"Growth-ready foundations"},{value:"growth",label:"Growth",hint:"Scaling to thousands of users"},{value:"enterprise",label:"Enterprise",hint:"Compliance & massive scale"}]});if(Q(h))return v8("Operation cancelled."),null;f.updateContext({scale:h}),f.advance();let z=[{value:"speed",label:"Time to market",hint:"Ship fast"},{value:"dx",label:"Developer experience",hint:"Enjoyable to work with"},{value:"perf",label:"Performance",hint:"Fast and efficient"},{value:"cost",label:"Cost efficiency",hint:"Minimize expenses"},{value:"scale",label:"Scalability",hint:"Handle growth"},{value:"security",label:"Security",hint:"Protect data"}];console.log(f.getFullHeader());let W=await Kq({message:"What matters MOST? (select up to 2)",required:!1,options:z});if(Q(W))return v8("Operation cancelled."),null;let n=W.slice(0,2);f.updateContext({highPriorities:n}),f.advance();let A=z.filter((L)=>!n.includes(L.value));console.log(f.getFullHeader());let R=await Kq({message:"What can you compromise on? (select up to 2, or skip)",required:!1,options:A});if(Q(R))return v8("Operation cancelled."),null;let B=R.slice(0,2);f.updateContext({lowPriorities:B}),f.advance();let M={projectName:P,projectType:T,scale:h,ecosystem:"javascript",priorities:n,depriorities:B,constraints:[]};console.log(f.getFullHeader());let _8=E9(M),I=await E8({message:"Choose your framework",options:_8});if(Q(I))return v8("Operation cancelled."),null;f.updateContext({framework:I}),f.advance(),console.log(f.getFullHeader());let c=g9(M),b8=await E8({message:"Choose your database",options:c});if(Q(b8))return v8("Operation cancelled."),null;f.updateContext({database:b8}),f.advance();let X8=null;if(f.getCurrentStep()?.id==="auth"){console.log(f.getFullHeader());let L=await E8({message:"Add authentication?",options:[{value:"better-auth",label:`Better Auth ${f8("A+")}`,hint:"Modern, TypeScript-native auth"},{value:"clerk",label:`Clerk ${f8("A")}`,hint:"Drop-in auth components"},{value:"authjs",label:`Auth.js ${f8("A-")}`,hint:"Flexible OAuth solution"},{value:"supabase-auth",label:`Supabase Auth ${f8("B+")}`,hint:"Part of Supabase stack"},{value:"none",label:"Skip",hint:"No authentication needed"}]});if(Q(L))return v8("Operation cancelled."),null;X8=L==="none"?null:L,f.updateContext({auth:X8}),f.advance()}let t=null;if(f.getCurrentStep()?.id==="payments"){console.log(f.getFullHeader());let L=await E8({message:"Add payments?",options:[{value:"stripe",label:`Stripe ${f8("A+")}`,hint:"Industry standard, full-featured"},{value:"paddle",label:`Paddle ${f8("A")}`,hint:"Merchant of record, global tax handling"},{value:"lemonsqueezy",label:`Lemon Squeezy ${f8("A-")}`,hint:"Simple setup, MoR included"},{value:"polar",label:`Polar ${f8("B+")}`,hint:"Developer-focused, open source friendly"},{value:"none",label:"Skip",hint:"No payments needed"}]});if(Q(L))return v8("Operation cancelled."),null;t=L==="none"?null:L,f.updateContext({payments:t})}let A8=[];if(_)A8=await D9();let k8={projectName:P,projectType:T,scale:h,ecosystem:"javascript",priorities:n,depriorities:B,constraints:A8},a8=Z8();a8.start("Analyzing 50+ technologies...");let x=W8(k8);return a8.stop("Analysis complete!"),{context:k8,stack:x}}function E9(q){return[{id:"nextjs",name:"Next.js",grade:"A+",hint:"React meta-framework, great ecosystem"},{id:"sveltekit",name:"SvelteKit",grade:"A+",hint:"Svelte meta-framework, great DX"},{id:"nuxt",name:"Nuxt",grade:"A",hint:"Vue meta-framework, full-featured"},{id:"remix",name:"Remix",grade:"A",hint:"React, web-standard focused"},{id:"astro",name:"Astro",grade:"A-",hint:"Content-focused, partial hydration"},{id:"tanstack-start",name:"TanStack Start",grade:"B+",hint:"Type-safe, modern patterns"}].map((f)=>{let $=f.grade;if(q.priorities.includes("dx")&&f.id==="sveltekit")$="A+";if(q.scale==="enterprise"&&f.id==="nextjs")$="A+";if((q.projectType==="blog"||q.projectType==="portfolio")&&f.id==="astro")$="A+";return{value:f.id,label:`${f.name} ${f8($)}`,hint:f.hint}})}function g9(q){return[{id:"postgres",name:"PostgreSQL",grade:"A+",hint:"Reliable, feature-rich"},{id:"neon",name:"Neon",grade:"A+",hint:"Serverless Postgres, branching"},{id:"supabase",name:"Supabase",grade:"A",hint:"Postgres + realtime + auth"},{id:"planetscale",name:"PlanetScale",grade:"A",hint:"MySQL, branching & scaling"},{id:"turso",name:"Turso",grade:"A-",hint:"Edge SQLite, low latency"},{id:"sqlite",name:"SQLite",grade:"B+",hint:"Simple, embedded database"},{id:"mongodb",name:"MongoDB",grade:"B",hint:"Document database, flexible"}].map((f)=>{let $=f.grade;if(q.scale==="mvp"&&f.id==="neon")$="A+";if((q.projectType==="blog"||q.projectType==="portfolio")&&f.id==="sqlite")$="A";if(q.projectType==="saas"&&f.id==="supabase")$="A+";return{value:f.id,label:`${f.name} ${f8($)}`,hint:f.hint}})}function I9(){let q=O6(),_=new Map;for(let f of q){let $=f.category;if(!_.has($))_.set($,[]);_.get($).push({id:f.id,label:f.label,description:f.description})}return _}async function D9(){let q=I9(),_=[];for(let[f,$]of q){if(f==="ecosystem")continue;if($.length===0)continue;let P=R9[f]||{label:f,icon:"\uD83D\uDCCB"},j=await Kq({message:`${P.icon} ${P.label}:`,required:!1,options:$.map((K)=>({value:K.id,label:K.label,hint:K.description}))});if(Q(j))break;_.push(...j)}return _}async function Z6(q){let _=q.map(($)=>`${$.category}: ${J8.default.cyan($.tech)} ${x9($.grade)}`).join(`
|
|
95
|
+
`);e_(_,"Recommended Stack");let f=await P6({message:"Generate project with this stack?",initialValue:!0});return!Q(f)&&f}function x9(q){if(q.startsWith("A"))return J8.default.green(`(${q})`);if(q.startsWith("B"))return J8.default.yellow(`(${q})`);return J8.default.red(`(${q})`)}function C(q){y.error(J8.default.red(q))}function Z8(){return v6()}var h8=F(P8(),1);var Aw={"A+":h8.default.green,A:h8.default.green,"A-":h8.default.green,"B+":h8.default.cyan,B:h8.default.cyan,"B-":h8.default.yellow,"C+":h8.default.yellow,C:h8.default.red,"C-":h8.default.red};function n6(q){let _={projectName:q.context.projectName,projectType:q.context.projectType,scale:q.context.scale,stack:Object.fromEntries(q.categories.map((f)=>[f.category,{recommended:f.recommended.tech.id,grade:f.recommended.grade,score:f.recommended.score}])),stackScore:q.stackScore,confidence:q.confidence};return JSON.stringify(_,null,2)}var d=F(P8(),1),L9={"meta-framework":"Framework",database:"Database",orm:"ORM",auth:"Auth",hosting:"Hosting",payments:"Payments",backend:"Backend",frontend:"Frontend"},u6={"A+":d.default.green,A:d.default.green,"A-":d.default.green,"B+":d.default.cyan,B:d.default.cyan,"B-":d.default.yellow,"C+":d.default.yellow,C:d.default.red,"C-":d.default.red};function d6(q,_,f,$){console.log(""),console.log(d.default.green("=".repeat(60))),console.log(d.default.green(d.default.bold(" STACK COMPARISON"))),console.log(d.default.green("=".repeat(60))),console.log("");let v=" "+d.default.bold("Category".padEnd(14))+d.default.cyan(f.name.padEnd(22))+d.default.magenta($.name.padEnd(22));console.log(v),console.log(d.default.dim(" "+"-".repeat(58)));let m=new Map,w=new Map;for(let n of q.categories)m.set(n.category,n);for(let n of _.categories)w.set(n.category,n);let r=new Set([...m.keys(),...w.keys()]);for(let n of r){let A=m.get(n),R=w.get(n),B=(L9[n]||n).padEnd(14),M=o6(A,22),_8=o6(R,22);console.log(` ${d.default.bold(B)}${M}${_8}`)}console.log(d.default.dim(" "+"-".repeat(58))),console.log("");let O=p6(q,22),T=p6(_,22);console.log(` ${d.default.bold("Stack Score".padEnd(14))}${O}${T}`);let h=f.priorities.join(", ").padEnd(22),z=$.priorities.join(", ").padEnd(22);console.log(` ${d.default.dim("Priorities".padEnd(14))}${d.default.dim(h)}${d.default.dim(z)}`),console.log(""),console.log(d.default.dim(" "+"-".repeat(60)));let W=q.stackScore.score-_.stackScore.score;if(Math.abs(W)<=5)console.log(d.default.dim(" Both stacks are well-suited. Choose based on your priorities."));else if(W>0)console.log(d.default.dim(` ${f.name} scores ${W} points higher for this comparison.`));else console.log(d.default.dim(` ${$.name} scores ${Math.abs(W)} points higher for this comparison.`));console.log(""),console.log(d.default.dim(" Explore more at ")+d.default.cyan("stacksfinder.com/builder")),console.log("")}function o6(q,_){if(!q)return d.default.dim("-".padEnd(_));let{tech:f,grade:$}=q.recommended,j=(u6[$]||d.default.white)(`[${$}]`),K=_-6;return((f.name.length>K?f.name.substring(0,K-1)+"…":f.name)+" "+j).padEnd(_+10)}function p6(q,_){let{grade:f,score:$}=q.stackScore;return((u6[f]||d.default.white)(f)+d.default.dim(` (${$}/100)`)).padEnd(_+10)}var i_={mvp:{name:"MVP",description:"Ship fast, iterate later",projectType:"saas",scale:"mvp",priorities:["speed"],constraints:[]},startup:{name:"Startup",description:"Growth-ready foundations",projectType:"saas",scale:"startup",priorities:["dx"],constraints:[]},enterprise:{name:"Enterprise",description:"Compliance & scale",projectType:"saas",scale:"enterprise",priorities:["security"],constraints:["soc2-compliant"]},agency:{name:"Agency",description:"Client projects, fast iteration",projectType:"web-app",scale:"growth",priorities:["dx"],constraints:[]},ecommerce:{name:"E-commerce",description:"Online store, optimized for sales",projectType:"e-commerce",scale:"startup",priorities:["perf"],constraints:["stripe-payments"]},api:{name:"API-first",description:"Backend services, headless architecture",projectType:"api",scale:"startup",priorities:["perf","scale"],constraints:[]}};function Mq(q){return i_[q.toLowerCase()]}function Cq(){return Object.keys(i_)}function Vq(q){return q.toLowerCase()in i_}var Sq=F(P8(),1),s9=`
|
|
96
96
|
███████╗████████╗ █████╗ ██████╗██╗ ██╗███████╗
|
|
97
97
|
██╔════╝╚══██╔══╝██╔══██╗██╔════╝██║ ██╔╝██╔════╝
|
|
98
98
|
███████╗ ██║ ███████║██║ █████╔╝ ███████╗
|
|
@@ -106,20 +106,20 @@ to recommend your optimal stack.${$?`
|
|
|
106
106
|
██╔══╝ ██║██║╚██╗██║██║ ██║██╔══╝ ██╔══██╗
|
|
107
107
|
██║ ██║██║ ╚████║██████╔╝███████╗██║ ██║
|
|
108
108
|
╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ ╚══════╝╚═╝ ╚═╝
|
|
109
|
-
`,
|
|
109
|
+
`,B9=`
|
|
110
110
|
_____ _ _ ______ _ _
|
|
111
111
|
/ ____| | | | | ____(_) | |
|
|
112
112
|
| (___ | |_ __ _ ___| | _____| |__ _ _ __ __| | ___ _ __
|
|
113
113
|
\\___ \\| __/ _\` |/ __| |/ / __| __| | | '_ \\ / _\` |/ _ \\ '__|
|
|
114
114
|
____) | || (_| | (__| <\\__ \\ | | | | | | (_| | __/ |
|
|
115
115
|
|_____/ \\__\\__,_|\\___|_|\\_\\___/_| |_|_| |_|\\__,_|\\___|_|
|
|
116
|
-
`,
|
|
116
|
+
`,U9=`
|
|
117
117
|
____ _ _ _____ _ _
|
|
118
118
|
/ ___|| |_ __ _ ___| | _____ | ___|(_) _ __ __| | ___ _ __
|
|
119
119
|
\\___ \\| __/ _\` |/ __| |/ / __|| |_ | || '_ \\ / _\` |/ _ \\| '__|
|
|
120
120
|
___) | || (_| | (__| <\\__ \\| _| | || | | || (_| | __/| |
|
|
121
121
|
|____/ \\__\\__,_|\\___|_|\\_\\___/|_| |_||_| |_| \\__,_|\\___||_|
|
|
122
|
-
`,
|
|
122
|
+
`,F9=`
|
|
123
123
|
╔═══════════════════════════════════════════════════════╗
|
|
124
124
|
║ ║
|
|
125
125
|
║ ███████╗████████╗ █████╗ ██████╗██╗ ██╗███████╗ ║
|
|
@@ -131,9 +131,9 @@ to recommend your optimal stack.${$?`
|
|
|
131
131
|
║ finder ║
|
|
132
132
|
║ ║
|
|
133
133
|
╚═══════════════════════════════════════════════════════╝
|
|
134
|
-
`,
|
|
134
|
+
`,Q9=`
|
|
135
135
|
[ S T A C K S F I N D E R ]
|
|
136
|
-
`,
|
|
136
|
+
`,q7=`
|
|
137
137
|
╭──────────────────────────────────────────────────────╮
|
|
138
138
|
│ │
|
|
139
139
|
│ _____ _____ _ ____ _ ______ │
|
|
@@ -147,20 +147,20 @@ to recommend your optimal stack.${$?`
|
|
|
147
147
|
│ ╰─────────────────────────────────────────────╯ │
|
|
148
148
|
│ │
|
|
149
149
|
╰──────────────────────────────────────────────────────╯
|
|
150
|
-
`;function f7(q="minimal"){switch(q){case"full":return B9;case"compact":return U9;case"box":return Q9;case"oneline":return q7;case"shadow":return _7;case"minimal":default:return F9}}function $7(q="minimal"){let _=f7(q);console.log(Vq.default.green(_))}function A6(q="minimal"){$7(q),console.log(Vq.default.dim(" Scaffold optimized tech stacks")),console.log(Vq.default.dim(" Powered by deterministic scoring")),console.log("")}var R8=s($8(),1);function K7(q,_,f){return{isEnterprise:q.context.scale==="enterprise",isHighScore:q.stackScore.score>=85,hasComplexStack:q.categories.length>=5,projectName:f,phase:_}}function P7(q){if(q.phase==="post-recommendation"){if(q.isEnterprise)return{message:"Need compliance reports & team collaboration?",link:"stacksfinder.com/enterprise"};return{message:"Fine-tune with 25+ constraints:",link:"stacksfinder.com/builder"}}if(q.isHighScore)return{message:"Save & share this stack:",link:"stacksfinder.com/blueprint/new"};if(q.isEnterprise)return{message:`Get compliance reports for ${q.projectName||"your project"}:`,link:"stacksfinder.com/enterprise"};return{message:"Use in Cursor/Claude:",link:"npm i -g @stacksfinder/mcp-server"}}function t_(q,_,f){let $=K7(q,_,f),P=P7($);console.log(""),console.log(R8.default.dim("─".repeat(50))),console.log(""),console.log(R8.default.dim(` ${P.message}`)),console.log(` ${R8.default.cyan(P.link)}`),console.log("")}function a6(q){console.log(""),console.log(R8.default.dim(" Something went wrong? Try the web version:")),console.log(` ${R8.default.cyan("stacksfinder.com/builder")}`)}var p8=s(MK(),1);import{mkdir as DK,writeFile as xK,readFile as p5,copyFile as u5,access as d5}from"fs/promises";import{join as eq,dirname as LK}from"path";import{fileURLToPath as X5}from"url";function Bq(q,_){let f=(A)=>{return _.categories.find((m8)=>m8.category===A)?.recommended.tech??null},$=(A)=>{return f(A)?.id??null},P=f("meta-framework"),j=f("database"),K=f("orm"),v=f("auth"),m=f("hosting"),w=f("payments"),O=f("backend"),r=P?.id??null,T=j?.id??null,z=K?.id??null,e=v?.id??null,W=w?.id??null,p=O?.id??null;return{projectName:q,projectType:_.context.projectType,scale:_.context.scale,framework:r,database:T,orm:z,auth:e,hosting:m?.id??null,payments:W,backend:p,frameworkEntry:P,databaseEntry:j,ormEntry:K,authEntry:v,hostingEntry:m,paymentsEntry:w,backendEntry:O,hasAuth:!!v,hasPayments:!!w,hasDatabase:!!j,isNextjs:r==="nextjs",isSvelteKit:r==="sveltekit",isNuxt:r==="nuxt",isRemix:r==="remix",isAstro:r==="astro",isSolidStart:r==="solidstart",isTanStackStart:r==="tanstack-start",isPostgres:["postgres","neon","supabase"].includes(T??""),isSqlite:T==="sqlite",isMongoDB:T==="mongodb",isSupabase:T==="supabase",isTurso:T==="turso",isDrizzle:z==="drizzle",isPrisma:z==="prisma",isKysely:z==="kysely",isMongoose:z==="mongoose",isBetterAuth:e==="better-auth",isClerk:e==="clerk",isAuthJs:e==="authjs",isAuth0:e==="auth0",isLucia:e==="lucia",isSupabaseAuth:e==="supabase-auth",isStripe:W==="stripe",isPaddle:W==="paddle",isLemonSqueezy:W==="lemonsqueezy",isPolar:W==="polar",hasBackend:!!O,isHono:p==="hono",isElysia:p==="elysia",isExpress:p==="express",isFastify:p==="fastify",ecosystem:_.context.ecosystem||"javascript"}}function CK(q){let _=[];if(_.push(...g1(q)),q.framework==="nextjs")_.push(...I1(q));else if(q.framework==="sveltekit")_.push(...D1(q));else if(q.framework==="nuxt")_.push(...x1(q));else if(q.framework==="remix")_.push(...L1(q));else if(q.framework==="astro")_.push(...s1(q));else if(q.framework==="solidstart")_.push(...w5(q));else if(q.framework==="tanstack-start")_.push(...m5(q));if(q.auth==="better-auth")_.push(...B1(q));else if(q.auth==="clerk")_.push(...U1(q));else if(q.auth==="authjs")_.push(...F1(q));else if(q.auth==="auth0")_.push(...Q1(q));else if(q.auth==="lucia")_.push(...k5(q));else if(q.auth==="supabase")_.push(...Y5(q));if(q.payments==="stripe")_.push(...q5(q));else if(q.payments==="paddle")_.push(..._5(q));else if(q.payments==="lemonsqueezy")_.push(...f5(q));else if(q.payments==="polar")_.push(...r5(q));if(q.orm==="drizzle")_.push(...$5(q));else if(q.orm==="prisma")_.push(...P5(q));else if(q.orm==="kysely")_.push(...j5(q));else if(q.orm==="mongoose")_.push(...O5(q));if(q.backend==="hono")_.push(...v5(q));else if(q.backend==="elysia")_.push(...T5(q));else if(q.backend==="express")_.push(...h5(q));else if(q.backend==="fastify")_.push(...z5(q));return _}function g1(q){return[{src:"base/gitignore",dest:".gitignore"},{src:"base/env.example.hbs",dest:".env.example",isTemplate:!0},{src:"base/README.md.hbs",dest:"README.md",isTemplate:!0}]}function I1(q){return[{src:"frameworks/nextjs/next.config.ts.hbs",dest:"next.config.ts",isTemplate:!0},{src:"frameworks/nextjs/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/nextjs/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/nextjs/postcss.config.js",dest:"postcss.config.js"},{src:"frameworks/nextjs/app/layout.tsx.hbs",dest:"src/app/layout.tsx",isTemplate:!0},{src:"frameworks/nextjs/app/page.tsx.hbs",dest:"src/app/page.tsx",isTemplate:!0},{src:"frameworks/nextjs/app/globals.css",dest:"src/app/globals.css"},{src:"frameworks/nextjs/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/nextjs/components/ui/button.tsx",dest:"src/components/ui/button.tsx"},{src:"frameworks/nextjs/components/ui/card.tsx",dest:"src/components/ui/card.tsx"},{src:"frameworks/nextjs/components/ui/input.tsx",dest:"src/components/ui/input.tsx"},{src:"frameworks/nextjs/app/(marketing)/layout.tsx",dest:"src/app/(marketing)/layout.tsx"},{src:"frameworks/nextjs/app/(marketing)/pricing/page.tsx.hbs",dest:"src/app/(marketing)/pricing/page.tsx",isTemplate:!0},{src:"frameworks/nextjs/app/(dashboard)/layout.tsx.hbs",dest:"src/app/(dashboard)/layout.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nextjs/app/(dashboard)/dashboard/page.tsx.hbs",dest:"src/app/(dashboard)/dashboard/page.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nextjs/app/(dashboard)/settings/page.tsx.hbs",dest:"src/app/(dashboard)/settings/page.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nextjs/app/(dashboard)/billing/page.tsx.hbs",dest:"src/app/(dashboard)/billing/page.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/nextjs/components/header.tsx.hbs",dest:"src/components/header.tsx",isTemplate:!0},{src:"frameworks/nextjs/components/footer.tsx",dest:"src/components/footer.tsx"},{src:"frameworks/nextjs/components/sidebar.tsx.hbs",dest:"src/components/sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function D1(q){return[{src:"frameworks/sveltekit/svelte.config.js",dest:"svelte.config.js"},{src:"frameworks/sveltekit/vite.config.ts.hbs",dest:"vite.config.ts",isTemplate:!0},{src:"frameworks/sveltekit/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/sveltekit/app.d.ts.hbs",dest:"src/app.d.ts",isTemplate:!0},{src:"frameworks/sveltekit/app.css",dest:"src/app.css"},{src:"frameworks/sveltekit/app.html.hbs",dest:"src/app.html",isTemplate:!0},{src:"frameworks/sveltekit/routes/+layout.svelte.hbs",dest:"src/routes/+layout.svelte",isTemplate:!0},{src:"frameworks/sveltekit/routes/+page.svelte.hbs",dest:"src/routes/+page.svelte",isTemplate:!0},{src:"frameworks/sveltekit/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/sveltekit/components/ui/Button.svelte",dest:"src/lib/components/ui/Button.svelte"},{src:"frameworks/sveltekit/components/ui/Card.svelte",dest:"src/lib/components/ui/Card.svelte"},{src:"frameworks/sveltekit/components/ui/Input.svelte",dest:"src/lib/components/ui/Input.svelte"},{src:"frameworks/sveltekit/routes/(marketing)/pricing/+page.svelte.hbs",dest:"src/routes/(marketing)/pricing/+page.svelte",isTemplate:!0},{src:"frameworks/sveltekit/routes/(app)/+layout.svelte.hbs",dest:"src/routes/(app)/+layout.svelte",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/+layout.server.ts.hbs",dest:"src/routes/(app)/+layout.server.ts",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/dashboard/+page.svelte",dest:"src/routes/(app)/dashboard/+page.svelte",condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/settings/+page.svelte",dest:"src/routes/(app)/settings/+page.svelte",condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/billing/+page.svelte.hbs",dest:"src/routes/(app)/billing/+page.svelte",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/sveltekit/hooks.server.ts.hbs",dest:"src/hooks.server.ts",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/components/Header.svelte.hbs",dest:"src/lib/components/Header.svelte",isTemplate:!0},{src:"frameworks/sveltekit/components/Footer.svelte",dest:"src/lib/components/Footer.svelte"},{src:"frameworks/sveltekit/components/Sidebar.svelte.hbs",dest:"src/lib/components/Sidebar.svelte",isTemplate:!0,condition:(f)=>!!f.auth}]}function x1(q){return[{src:"frameworks/nuxt/nuxt.config.ts.hbs",dest:"nuxt.config.ts",isTemplate:!0},{src:"frameworks/nuxt/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/nuxt/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/nuxt/app.vue.hbs",dest:"app.vue",isTemplate:!0},{src:"frameworks/nuxt/assets/css/main.css",dest:"assets/css/main.css"},{src:"frameworks/nuxt/pages/index.vue.hbs",dest:"pages/index.vue",isTemplate:!0},{src:"frameworks/nuxt/pages/pricing.vue.hbs",dest:"pages/pricing.vue",isTemplate:!0},{src:"frameworks/nuxt/layouts/default.vue.hbs",dest:"layouts/default.vue",isTemplate:!0},{src:"frameworks/nuxt/layouts/dashboard.vue.hbs",dest:"layouts/dashboard.vue",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nuxt/pages/dashboard/index.vue.hbs",dest:"pages/dashboard/index.vue",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nuxt/pages/dashboard/settings.vue",dest:"pages/dashboard/settings.vue",condition:(f)=>!!f.auth},{src:"frameworks/nuxt/pages/dashboard/billing.vue.hbs",dest:"pages/dashboard/billing.vue",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/nuxt/utils/cn.ts",dest:"utils/cn.ts"},{src:"frameworks/nuxt/components/ui/Button.vue",dest:"components/ui/Button.vue"},{src:"frameworks/nuxt/components/ui/Card.vue",dest:"components/ui/Card.vue"},{src:"frameworks/nuxt/components/ui/Input.vue",dest:"components/ui/Input.vue"},{src:"frameworks/nuxt/components/Header.vue.hbs",dest:"components/Header.vue",isTemplate:!0},{src:"frameworks/nuxt/components/Footer.vue",dest:"components/Footer.vue"},{src:"frameworks/nuxt/components/Sidebar.vue.hbs",dest:"components/Sidebar.vue",isTemplate:!0,condition:(f)=>!!f.auth}]}function L1(q){return[{src:"frameworks/remix/vite.config.ts.hbs",dest:"vite.config.ts",isTemplate:!0},{src:"frameworks/remix/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/remix/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/remix/app/root.tsx.hbs",dest:"app/root.tsx",isTemplate:!0},{src:"frameworks/remix/app/entry.client.tsx",dest:"app/entry.client.tsx"},{src:"frameworks/remix/app/entry.server.tsx",dest:"app/entry.server.tsx"},{src:"frameworks/remix/app/tailwind.css",dest:"app/tailwind.css"},{src:"frameworks/remix/app/routes/_index.tsx.hbs",dest:"app/routes/_index.tsx",isTemplate:!0},{src:"frameworks/remix/app/routes/pricing.tsx.hbs",dest:"app/routes/pricing.tsx",isTemplate:!0},{src:"frameworks/remix/app/routes/dashboard.tsx.hbs",dest:"app/routes/dashboard.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/remix/app/routes/dashboard._index.tsx.hbs",dest:"app/routes/dashboard._index.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/remix/app/routes/dashboard.settings.tsx",dest:"app/routes/dashboard.settings.tsx",condition:(f)=>!!f.auth},{src:"frameworks/remix/app/routes/dashboard.billing.tsx.hbs",dest:"app/routes/dashboard.billing.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/remix/app/lib/utils.ts",dest:"app/lib/utils.ts"},{src:"frameworks/remix/app/components/ui/button.tsx",dest:"app/components/ui/button.tsx"},{src:"frameworks/remix/app/components/ui/card.tsx",dest:"app/components/ui/card.tsx"},{src:"frameworks/remix/app/components/ui/input.tsx",dest:"app/components/ui/input.tsx"},{src:"frameworks/remix/app/components/header.tsx.hbs",dest:"app/components/header.tsx",isTemplate:!0},{src:"frameworks/remix/app/components/footer.tsx",dest:"app/components/footer.tsx"},{src:"frameworks/remix/app/components/sidebar.tsx.hbs",dest:"app/components/sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function s1(q){return[{src:"frameworks/astro/astro.config.mjs.hbs",dest:"astro.config.mjs",isTemplate:!0},{src:"frameworks/astro/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/astro/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/astro/src/env.d.ts",dest:"src/env.d.ts"},{src:"frameworks/astro/src/styles/global.css",dest:"src/styles/global.css"},{src:"frameworks/astro/src/layouts/Layout.astro.hbs",dest:"src/layouts/Layout.astro",isTemplate:!0},{src:"frameworks/astro/src/layouts/DashboardLayout.astro.hbs",dest:"src/layouts/DashboardLayout.astro",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/astro/src/pages/index.astro.hbs",dest:"src/pages/index.astro",isTemplate:!0},{src:"frameworks/astro/src/pages/pricing.astro.hbs",dest:"src/pages/pricing.astro",isTemplate:!0},{src:"frameworks/astro/src/pages/dashboard/index.astro.hbs",dest:"src/pages/dashboard/index.astro",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/astro/src/pages/dashboard/settings.astro",dest:"src/pages/dashboard/settings.astro",condition:(f)=>!!f.auth},{src:"frameworks/astro/src/pages/dashboard/billing.astro.hbs",dest:"src/pages/dashboard/billing.astro",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/astro/src/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/astro/src/components/ui/Button.tsx",dest:"src/components/ui/Button.tsx"},{src:"frameworks/astro/src/components/ui/Card.tsx",dest:"src/components/ui/Card.tsx"},{src:"frameworks/astro/src/components/ui/Input.tsx",dest:"src/components/ui/Input.tsx"},{src:"frameworks/astro/src/components/Header.astro.hbs",dest:"src/components/Header.astro",isTemplate:!0},{src:"frameworks/astro/src/components/Footer.astro",dest:"src/components/Footer.astro"},{src:"frameworks/astro/src/components/Sidebar.astro.hbs",dest:"src/components/Sidebar.astro",isTemplate:!0,condition:(f)=>!!f.auth}]}function B1(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/better-auth/nextjs/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/better-auth/nextjs/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/better-auth/nextjs/api/auth/[...all]/route.ts",dest:"src/app/api/auth/[...all]/route.ts"},{src:"auth/better-auth/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/better-auth/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/better-auth/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/better-auth/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/better-auth/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/better-auth/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/better-auth/sveltekit/auth.ts.hbs",dest:"src/lib/server/auth.ts",isTemplate:!0},{src:"auth/better-auth/sveltekit/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/better-auth/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/better-auth/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/better-auth/sveltekit/components/AuthForm.svelte",dest:"src/lib/components/auth/AuthForm.svelte"},{src:"auth/better-auth/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/better-auth/nuxt/server/utils/auth.ts.hbs",dest:"server/utils/auth.ts",isTemplate:!0},{src:"auth/better-auth/nuxt/composables/useAuth.ts",dest:"composables/useAuth.ts"},{src:"auth/better-auth/nuxt/server/api/auth/[...all].ts",dest:"server/api/auth/[...all].ts"},{src:"auth/better-auth/nuxt/middleware/auth.ts",dest:"middleware/auth.ts"},{src:"auth/better-auth/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/better-auth/nuxt/pages/register.vue",dest:"pages/register.vue"},{src:"auth/better-auth/nuxt/components/AuthForm.vue",dest:"components/auth/AuthForm.vue"},{src:"auth/better-auth/nuxt/components/UserButton.vue",dest:"components/auth/UserButton.vue"});else if(q.framework==="remix")_.push({src:"auth/better-auth/remix/app/lib/auth.server.ts.hbs",dest:"app/lib/auth.server.ts",isTemplate:!0},{src:"auth/better-auth/remix/app/lib/auth.client.ts",dest:"app/lib/auth.client.ts"},{src:"auth/better-auth/remix/app/routes/api.auth.$.ts",dest:"app/routes/api.auth.$.ts"},{src:"auth/better-auth/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/better-auth/remix/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/better-auth/remix/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/better-auth/remix/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});else if(q.framework==="astro")_.push({src:"auth/better-auth/astro/src/lib/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/better-auth/astro/src/lib/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/better-auth/astro/src/pages/api/auth/[...all].ts",dest:"src/pages/api/auth/[...all].ts"},{src:"auth/better-auth/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/better-auth/astro/src/pages/register.astro",dest:"src/pages/register.astro"},{src:"auth/better-auth/astro/src/components/auth/AuthForm.tsx",dest:"src/components/auth/AuthForm.tsx"},{src:"auth/better-auth/astro/src/components/auth/UserButton.tsx",dest:"src/components/auth/UserButton.tsx"});else if(q.framework==="solidstart")_.push({src:"auth/better-auth/solidstart/src/lib/auth.server.ts.hbs",dest:"src/lib/auth.server.ts",isTemplate:!0},{src:"auth/better-auth/solidstart/src/lib/auth.client.ts",dest:"src/lib/auth.client.ts"},{src:"auth/better-auth/solidstart/src/routes/api/auth/[...all].ts",dest:"src/routes/api/auth/[...all].ts"},{src:"auth/better-auth/solidstart/src/routes/login.tsx",dest:"src/routes/login.tsx"},{src:"auth/better-auth/solidstart/src/routes/register.tsx",dest:"src/routes/register.tsx"},{src:"auth/better-auth/solidstart/src/components/auth/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/better-auth/solidstart/src/components/auth/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="tanstack-start")_.push({src:"auth/better-auth/tanstack-start/app/lib/auth.server.ts.hbs",dest:"app/lib/auth.server.ts",isTemplate:!0},{src:"auth/better-auth/tanstack-start/app/lib/auth.client.ts",dest:"app/lib/auth.client.ts"},{src:"auth/better-auth/tanstack-start/app/routes/api.auth.$.ts",dest:"app/routes/api.auth.$.ts"},{src:"auth/better-auth/tanstack-start/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/better-auth/tanstack-start/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/better-auth/tanstack-start/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/better-auth/tanstack-start/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});return _}function U1(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/clerk/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/clerk/nextjs/app/(auth)/sign-in/[[...sign-in]]/page.tsx",dest:"src/app/(auth)/sign-in/[[...sign-in]]/page.tsx"},{src:"auth/clerk/nextjs/app/(auth)/sign-up/[[...sign-up]]/page.tsx",dest:"src/app/(auth)/sign-up/[[...sign-up]]/page.tsx"});return _}function F1(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/authjs/nextjs/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/authjs/nextjs/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/authjs/nextjs/api/auth/[...nextauth]/route.ts",dest:"src/app/api/auth/[...nextauth]/route.ts"},{src:"auth/authjs/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/authjs/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/authjs/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/authjs/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/authjs/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/authjs/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/authjs/sveltekit/auth.ts.hbs",dest:"src/lib/server/auth.ts",isTemplate:!0},{src:"auth/authjs/sveltekit/hooks.server.ts",dest:"src/hooks.server.ts"},{src:"auth/authjs/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/authjs/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/authjs/sveltekit/components/AuthForm.svelte",dest:"src/lib/components/auth/AuthForm.svelte"},{src:"auth/authjs/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/authjs/nuxt/server/api/auth/[...].ts",dest:"server/api/auth/[...].ts"},{src:"auth/authjs/nuxt/composables/useAuth.ts",dest:"composables/useAuth.ts"},{src:"auth/authjs/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/authjs/nuxt/pages/register.vue",dest:"pages/register.vue"},{src:"auth/authjs/nuxt/components/AuthForm.vue",dest:"components/auth/AuthForm.vue"},{src:"auth/authjs/nuxt/components/UserButton.vue",dest:"components/auth/UserButton.vue"});else if(q.framework==="remix")_.push({src:"auth/authjs/remix/app/lib/auth.server.ts.hbs",dest:"app/lib/auth.server.ts",isTemplate:!0},{src:"auth/authjs/remix/app/lib/session.server.ts",dest:"app/lib/session.server.ts"},{src:"auth/authjs/remix/app/routes/auth.login.tsx",dest:"app/routes/auth.login.tsx"},{src:"auth/authjs/remix/app/routes/auth.logout.tsx",dest:"app/routes/auth.logout.tsx"},{src:"auth/authjs/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/authjs/remix/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/authjs/remix/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/authjs/remix/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});else if(q.framework==="astro")_.push({src:"auth/authjs/astro/src/lib/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/authjs/astro/auth.config.ts.hbs",dest:"auth.config.ts",isTemplate:!0},{src:"auth/authjs/astro/src/pages/api/auth/[...auth].ts",dest:"src/pages/api/auth/[...auth].ts"},{src:"auth/authjs/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/authjs/astro/src/pages/register.astro",dest:"src/pages/register.astro"},{src:"auth/authjs/astro/src/components/auth/AuthForm.tsx",dest:"src/components/auth/AuthForm.tsx"},{src:"auth/authjs/astro/src/components/auth/UserButton.tsx",dest:"src/components/auth/UserButton.tsx"});else if(q.framework==="solidstart")_.push({src:"auth/authjs/solidstart/src/lib/auth.server.ts.hbs",dest:"src/lib/auth.server.ts",isTemplate:!0},{src:"auth/authjs/solidstart/src/lib/auth.client.ts",dest:"src/lib/auth.client.ts"},{src:"auth/authjs/solidstart/src/routes/login.tsx",dest:"src/routes/login.tsx"},{src:"auth/authjs/solidstart/src/routes/register.tsx",dest:"src/routes/register.tsx"},{src:"auth/authjs/solidstart/src/routes/logout.tsx",dest:"src/routes/logout.tsx"},{src:"auth/authjs/solidstart/src/components/auth/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/authjs/solidstart/src/components/auth/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="tanstack-start")_.push({src:"auth/authjs/tanstack-start/app/lib/auth.server.ts.hbs",dest:"app/lib/auth.server.ts",isTemplate:!0},{src:"auth/authjs/tanstack-start/app/lib/auth.client.ts",dest:"app/lib/auth.client.ts"},{src:"auth/authjs/tanstack-start/app/routes/api.auth.me.ts",dest:"app/routes/api.auth.me.ts"},{src:"auth/authjs/tanstack-start/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/authjs/tanstack-start/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/authjs/tanstack-start/app/routes/logout.tsx",dest:"app/routes/logout.tsx"},{src:"auth/authjs/tanstack-start/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/authjs/tanstack-start/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});return _}function Q1(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/auth0/nextjs/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/nextjs/api/auth/[auth0]/route.ts",dest:"src/app/api/auth/[auth0]/route.ts"},{src:"auth/auth0/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/auth0/nextjs/components/auth-button.tsx",dest:"src/components/auth/auth-button.tsx"},{src:"auth/auth0/nextjs/components/user-profile.tsx",dest:"src/components/auth/user-profile.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/auth0/sveltekit/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/sveltekit/hooks.client.ts",dest:"src/hooks.client.ts"},{src:"auth/auth0/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/auth0/sveltekit/routes/(auth)/callback/+page.svelte",dest:"src/routes/(auth)/callback/+page.svelte"},{src:"auth/auth0/sveltekit/components/AuthButton.svelte",dest:"src/lib/components/auth/AuthButton.svelte"},{src:"auth/auth0/sveltekit/components/UserProfile.svelte",dest:"src/lib/components/auth/UserProfile.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/auth0/nuxt/plugins/auth0.ts",dest:"plugins/auth0.ts"},{src:"auth/auth0/nuxt/composables/useAuth0.ts",dest:"composables/useAuth0.ts"},{src:"auth/auth0/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/auth0/nuxt/pages/callback.vue",dest:"pages/callback.vue"},{src:"auth/auth0/nuxt/components/AuthButton.vue",dest:"components/auth/AuthButton.vue"},{src:"auth/auth0/nuxt/components/UserProfile.vue",dest:"components/auth/UserProfile.vue"});else if(q.framework==="remix")_.push({src:"auth/auth0/remix/app/lib/auth0.ts",dest:"app/lib/auth0.ts"},{src:"auth/auth0/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/auth0/remix/app/routes/callback.tsx",dest:"app/routes/callback.tsx"},{src:"auth/auth0/remix/app/routes/logout.tsx",dest:"app/routes/logout.tsx"},{src:"auth/auth0/remix/app/components/auth/auth-button.tsx",dest:"app/components/auth/auth-button.tsx"},{src:"auth/auth0/remix/app/components/auth/user-profile.tsx",dest:"app/components/auth/user-profile.tsx"});else if(q.framework==="astro")_.push({src:"auth/auth0/astro/src/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/auth0/astro/src/pages/callback.astro",dest:"src/pages/callback.astro"},{src:"auth/auth0/astro/src/components/auth/AuthButton.tsx",dest:"src/components/auth/AuthButton.tsx"},{src:"auth/auth0/astro/src/components/auth/UserProfile.tsx",dest:"src/components/auth/UserProfile.tsx"});else if(q.framework==="solidstart")_.push({src:"auth/auth0/solidstart/src/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/solidstart/src/routes/login.tsx",dest:"src/routes/login.tsx"},{src:"auth/auth0/solidstart/src/routes/callback.tsx",dest:"src/routes/callback.tsx"},{src:"auth/auth0/solidstart/src/components/auth/auth-button.tsx",dest:"src/components/auth/auth-button.tsx"},{src:"auth/auth0/solidstart/src/components/auth/user-profile.tsx",dest:"src/components/auth/user-profile.tsx"});else if(q.framework==="tanstack-start")_.push({src:"auth/auth0/tanstack-start/app/lib/auth0.ts",dest:"app/lib/auth0.ts"},{src:"auth/auth0/tanstack-start/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/auth0/tanstack-start/app/routes/callback.tsx",dest:"app/routes/callback.tsx"},{src:"auth/auth0/tanstack-start/app/components/auth/auth-button.tsx",dest:"app/components/auth/auth-button.tsx"});return _}function q5(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/stripe/nextjs/lib/stripe.ts",dest:"src/lib/stripe.ts"},{src:"payments/stripe/nextjs/lib/stripe-client.ts",dest:"src/lib/stripe-client.ts"},{src:"payments/stripe/nextjs/api/checkout/route.ts.hbs",dest:"src/app/api/checkout/route.ts",isTemplate:!0},{src:"payments/stripe/nextjs/api/webhooks/stripe/route.ts.hbs",dest:"src/app/api/webhooks/stripe/route.ts",isTemplate:!0},{src:"payments/stripe/nextjs/api/portal/route.ts",dest:"src/app/api/portal/route.ts"},{src:"payments/stripe/nextjs/components/pricing-card.tsx.hbs",dest:"src/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/nextjs/components/checkout-button.tsx",dest:"src/components/pricing/checkout-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/stripe/sveltekit/lib/stripe.ts",dest:"src/lib/server/stripe.ts"},{src:"payments/stripe/sveltekit/routes/api/checkout/+server.ts.hbs",dest:"src/routes/api/checkout/+server.ts",isTemplate:!0},{src:"payments/stripe/sveltekit/routes/api/webhooks/stripe/+server.ts.hbs",dest:"src/routes/api/webhooks/stripe/+server.ts",isTemplate:!0},{src:"payments/stripe/sveltekit/routes/api/portal/+server.ts",dest:"src/routes/api/portal/+server.ts"},{src:"payments/stripe/sveltekit/components/PricingCard.svelte.hbs",dest:"src/lib/components/pricing/PricingCard.svelte",isTemplate:!0},{src:"payments/stripe/sveltekit/components/CheckoutButton.svelte",dest:"src/lib/components/pricing/CheckoutButton.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/stripe/nuxt/server/utils/stripe.ts",dest:"server/utils/stripe.ts"},{src:"payments/stripe/nuxt/composables/useStripe.ts",dest:"composables/useStripe.ts"},{src:"payments/stripe/nuxt/server/api/checkout.post.ts.hbs",dest:"server/api/checkout.post.ts",isTemplate:!0},{src:"payments/stripe/nuxt/server/api/webhooks/stripe.post.ts.hbs",dest:"server/api/webhooks/stripe.post.ts",isTemplate:!0},{src:"payments/stripe/nuxt/server/api/portal.post.ts",dest:"server/api/portal.post.ts"},{src:"payments/stripe/nuxt/components/PricingCard.vue.hbs",dest:"components/pricing/PricingCard.vue",isTemplate:!0},{src:"payments/stripe/nuxt/components/CheckoutButton.vue",dest:"components/pricing/CheckoutButton.vue"});else if(q.framework==="remix")_.push({src:"payments/stripe/remix/app/lib/stripe.server.ts",dest:"app/lib/stripe.server.ts"},{src:"payments/stripe/remix/app/routes/api.checkout.ts.hbs",dest:"app/routes/api.checkout.ts",isTemplate:!0},{src:"payments/stripe/remix/app/routes/api.webhooks.stripe.ts.hbs",dest:"app/routes/api.webhooks.stripe.ts",isTemplate:!0},{src:"payments/stripe/remix/app/routes/api.portal.ts",dest:"app/routes/api.portal.ts"},{src:"payments/stripe/remix/app/components/pricing/pricing-card.tsx.hbs",dest:"app/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/remix/app/components/pricing/checkout-button.tsx",dest:"app/components/pricing/checkout-button.tsx"});else if(q.framework==="astro")_.push({src:"payments/stripe/astro/src/lib/stripe.ts",dest:"src/lib/stripe.ts"},{src:"payments/stripe/astro/src/pages/api/checkout.ts.hbs",dest:"src/pages/api/checkout.ts",isTemplate:!0},{src:"payments/stripe/astro/src/pages/api/webhooks/stripe.ts.hbs",dest:"src/pages/api/webhooks/stripe.ts",isTemplate:!0},{src:"payments/stripe/astro/src/pages/api/portal.ts",dest:"src/pages/api/portal.ts"},{src:"payments/stripe/astro/src/components/pricing/PricingCard.tsx.hbs",dest:"src/components/pricing/PricingCard.tsx",isTemplate:!0},{src:"payments/stripe/astro/src/components/pricing/CheckoutButton.tsx",dest:"src/components/pricing/CheckoutButton.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/stripe/solidstart/src/lib/stripe.server.ts",dest:"src/lib/stripe.server.ts"},{src:"payments/stripe/solidstart/src/routes/api/checkout.ts",dest:"src/routes/api/checkout.ts"},{src:"payments/stripe/solidstart/src/routes/api/webhooks/stripe.ts.hbs",dest:"src/routes/api/webhooks/stripe.ts",isTemplate:!0},{src:"payments/stripe/solidstart/src/routes/api/portal.ts",dest:"src/routes/api/portal.ts"},{src:"payments/stripe/solidstart/src/components/pricing/pricing-card.tsx.hbs",dest:"src/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/solidstart/src/components/pricing/checkout-button.tsx",dest:"src/components/pricing/checkout-button.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/stripe/tanstack-start/app/lib/stripe.server.ts",dest:"app/lib/stripe.server.ts"},{src:"payments/stripe/tanstack-start/app/routes/api.checkout.ts",dest:"app/routes/api.checkout.ts"},{src:"payments/stripe/tanstack-start/app/routes/api.webhooks.stripe.ts.hbs",dest:"app/routes/api.webhooks.stripe.ts",isTemplate:!0},{src:"payments/stripe/tanstack-start/app/components/pricing/pricing-card.tsx.hbs",dest:"app/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/tanstack-start/app/components/pricing/checkout-button.tsx",dest:"app/components/pricing/checkout-button.tsx"});return _}function _5(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/paddle/nextjs/lib/paddle.ts",dest:"src/lib/paddle.ts"},{src:"payments/paddle/nextjs/api/webhooks/paddle/route.ts.hbs",dest:"src/app/api/webhooks/paddle/route.ts",isTemplate:!0},{src:"payments/paddle/nextjs/components/paddle-checkout.tsx",dest:"src/components/pricing/paddle-checkout.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/paddle/sveltekit/lib/paddle.ts",dest:"src/lib/server/paddle.ts"},{src:"payments/paddle/sveltekit/routes/api/webhooks/paddle/+server.ts.hbs",dest:"src/routes/api/webhooks/paddle/+server.ts",isTemplate:!0},{src:"payments/paddle/sveltekit/components/PaddleCheckout.svelte",dest:"src/lib/components/pricing/PaddleCheckout.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/paddle/nuxt/server/utils/paddle.ts",dest:"server/utils/paddle.ts"},{src:"payments/paddle/nuxt/composables/usePaddle.ts",dest:"composables/usePaddle.ts"},{src:"payments/paddle/nuxt/server/api/webhooks/paddle.post.ts.hbs",dest:"server/api/webhooks/paddle.post.ts",isTemplate:!0},{src:"payments/paddle/nuxt/components/PaddleCheckout.vue",dest:"components/pricing/PaddleCheckout.vue"});else if(q.framework==="remix")_.push({src:"payments/paddle/remix/app/lib/paddle.server.ts",dest:"app/lib/paddle.server.ts"},{src:"payments/paddle/remix/app/routes/api.webhooks.paddle.ts.hbs",dest:"app/routes/api.webhooks.paddle.ts",isTemplate:!0},{src:"payments/paddle/remix/app/components/pricing/paddle-checkout.tsx",dest:"app/components/pricing/paddle-checkout.tsx"});else if(q.framework==="astro")_.push({src:"payments/paddle/astro/src/lib/paddle.ts",dest:"src/lib/paddle.ts"},{src:"payments/paddle/astro/src/pages/api/webhooks/paddle.ts.hbs",dest:"src/pages/api/webhooks/paddle.ts",isTemplate:!0},{src:"payments/paddle/astro/src/components/pricing/PaddleCheckout.tsx",dest:"src/components/pricing/PaddleCheckout.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/paddle/solidstart/src/lib/paddle.server.ts",dest:"src/lib/paddle.server.ts"},{src:"payments/paddle/solidstart/src/routes/api/webhooks/paddle.ts.hbs",dest:"src/routes/api/webhooks/paddle.ts",isTemplate:!0},{src:"payments/paddle/solidstart/src/components/pricing/paddle-checkout.tsx",dest:"src/components/pricing/paddle-checkout.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/paddle/tanstack-start/app/lib/paddle.server.ts",dest:"app/lib/paddle.server.ts"},{src:"payments/paddle/tanstack-start/app/routes/api.webhooks.paddle.ts.hbs",dest:"app/routes/api.webhooks.paddle.ts",isTemplate:!0},{src:"payments/paddle/tanstack-start/app/components/pricing/paddle-checkout.tsx",dest:"app/components/pricing/paddle-checkout.tsx"});return _}function f5(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/lemonsqueezy/nextjs/lib/lemonsqueezy.ts",dest:"src/lib/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/nextjs/api/webhooks/lemonsqueezy/route.ts.hbs",dest:"src/app/api/webhooks/lemonsqueezy/route.ts",isTemplate:!0},{src:"payments/lemonsqueezy/nextjs/components/lemonsqueezy-checkout.tsx",dest:"src/components/pricing/lemonsqueezy-checkout.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/lemonsqueezy/sveltekit/lib/lemonsqueezy.ts",dest:"src/lib/server/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/sveltekit/routes/api/webhooks/lemonsqueezy/+server.ts.hbs",dest:"src/routes/api/webhooks/lemonsqueezy/+server.ts",isTemplate:!0},{src:"payments/lemonsqueezy/sveltekit/components/LemonSqueezyCheckout.svelte",dest:"src/lib/components/pricing/LemonSqueezyCheckout.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/lemonsqueezy/nuxt/server/utils/lemonsqueezy.ts",dest:"server/utils/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/nuxt/composables/useLemonSqueezy.ts",dest:"composables/useLemonSqueezy.ts"},{src:"payments/lemonsqueezy/nuxt/server/api/webhooks/lemonsqueezy.post.ts.hbs",dest:"server/api/webhooks/lemonsqueezy.post.ts",isTemplate:!0},{src:"payments/lemonsqueezy/nuxt/components/LemonSqueezyCheckout.vue",dest:"components/pricing/LemonSqueezyCheckout.vue"});else if(q.framework==="remix")_.push({src:"payments/lemonsqueezy/remix/app/lib/lemonsqueezy.server.ts",dest:"app/lib/lemonsqueezy.server.ts"},{src:"payments/lemonsqueezy/remix/app/routes/api.webhooks.lemonsqueezy.ts.hbs",dest:"app/routes/api.webhooks.lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/remix/app/components/pricing/lemonsqueezy-checkout.tsx",dest:"app/components/pricing/lemonsqueezy-checkout.tsx"});else if(q.framework==="astro")_.push({src:"payments/lemonsqueezy/astro/src/lib/lemonsqueezy.ts",dest:"src/lib/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/astro/src/pages/api/webhooks/lemonsqueezy.ts.hbs",dest:"src/pages/api/webhooks/lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/astro/src/components/pricing/LemonSqueezyCheckout.tsx",dest:"src/components/pricing/LemonSqueezyCheckout.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/lemonsqueezy/solidstart/src/lib/lemonsqueezy.server.ts",dest:"src/lib/lemonsqueezy.server.ts"},{src:"payments/lemonsqueezy/solidstart/src/routes/api/webhooks/lemonsqueezy.ts.hbs",dest:"src/routes/api/webhooks/lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/solidstart/src/components/pricing/lemonsqueezy-checkout.tsx",dest:"src/components/pricing/lemonsqueezy-checkout.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/lemonsqueezy/tanstack-start/app/lib/lemonsqueezy.server.ts",dest:"app/lib/lemonsqueezy.server.ts"},{src:"payments/lemonsqueezy/tanstack-start/app/routes/api.webhooks.lemonsqueezy.ts.hbs",dest:"app/routes/api.webhooks.lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/tanstack-start/app/components/pricing/lemonsqueezy-checkout.tsx",dest:"app/components/pricing/lemonsqueezy-checkout.tsx"});return _}function VK(q){if(q.isRemix)return"app/lib";return"src/lib/db"}function $5(q){let _=VK(q),f=q.isRemix?"db.server.ts":"index.ts",$=q.isRemix?"db.schema.ts":"schema.ts";return[{src:"database/drizzle/drizzle.config.ts.hbs",dest:"drizzle.config.ts",isTemplate:!0},{src:"database/drizzle/schema.ts.hbs",dest:`${_}/${$}`,isTemplate:!0},{src:"database/drizzle/index.ts.hbs",dest:`${_}/${f}`,isTemplate:!0}]}function K5(q){if(q.isRemix)return"app/lib/db.server.ts";return"src/lib/db/index.ts"}function P5(q){return[{src:"database/prisma/schema.prisma.hbs",dest:"prisma/schema.prisma",isTemplate:!0},{src:"database/prisma/client.ts",dest:K5(q)}]}function j5(q){let _=VK(q),f=q.isRemix?"db.server.ts":"index.ts";return[{src:"database/kysely/db.ts.hbs",dest:`${_}/${f}`,isTemplate:!0},{src:"database/kysely/types.ts.hbs",dest:`${_}/types.ts`,isTemplate:!0},{src:"database/kysely/kysely.config.ts.hbs",dest:"kysely.config.ts",isTemplate:!0},{src:"database/kysely/migrations/001_initial.ts.hbs",dest:`${_}/migrations/001_initial.ts`,isTemplate:!0}]}function v5(q){let _=[{src:"backend/hono/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/hono/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/hono/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/hono/src/middleware/cors.ts",dest:"src/api/middleware/cors.ts"},{src:"backend/hono/src/middleware/logger.ts",dest:"src/api/middleware/logger.ts"},{src:"backend/hono/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/hono/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/hono/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/hono/src/middleware/auth.ts.hbs",dest:"src/api/middleware/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/hono/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}function w5(q){return[{src:"frameworks/solidstart/app.config.ts",dest:"app.config.ts"},{src:"frameworks/solidstart/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/solidstart/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/solidstart/src/app.tsx.hbs",dest:"src/app.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/app.css",dest:"src/app.css"},{src:"frameworks/solidstart/src/entry-client.tsx",dest:"src/entry-client.tsx"},{src:"frameworks/solidstart/src/entry-server.tsx",dest:"src/entry-server.tsx"},{src:"frameworks/solidstart/src/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/solidstart/src/components/ui/Button.tsx",dest:"src/components/ui/Button.tsx"},{src:"frameworks/solidstart/src/components/ui/Card.tsx",dest:"src/components/ui/Card.tsx"},{src:"frameworks/solidstart/src/components/ui/Input.tsx",dest:"src/components/ui/Input.tsx"},{src:"frameworks/solidstart/src/routes/index.tsx.hbs",dest:"src/routes/index.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/routes/pricing.tsx.hbs",dest:"src/routes/pricing.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/routes/dashboard.tsx.hbs",dest:"src/routes/dashboard.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/solidstart/src/routes/dashboard/index.tsx.hbs",dest:"src/routes/dashboard/index.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/solidstart/src/routes/dashboard/settings.tsx",dest:"src/routes/dashboard/settings.tsx",condition:(f)=>!!f.auth},{src:"frameworks/solidstart/src/routes/dashboard/billing.tsx.hbs",dest:"src/routes/dashboard/billing.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/solidstart/src/components/Header.tsx.hbs",dest:"src/components/Header.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/components/Footer.tsx",dest:"src/components/Footer.tsx"},{src:"frameworks/solidstart/src/components/Sidebar.tsx.hbs",dest:"src/components/Sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function m5(q){return[{src:"frameworks/tanstack-start/app.config.ts",dest:"app.config.ts"},{src:"frameworks/tanstack-start/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/tanstack-start/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/tanstack-start/app/client.tsx",dest:"app/client.tsx"},{src:"frameworks/tanstack-start/app/ssr.tsx",dest:"app/ssr.tsx"},{src:"frameworks/tanstack-start/app/router.tsx",dest:"app/router.tsx"},{src:"frameworks/tanstack-start/app/global.css",dest:"app/global.css"},{src:"frameworks/tanstack-start/app/lib/utils.ts",dest:"app/lib/utils.ts"},{src:"frameworks/tanstack-start/app/routes/__root.tsx.hbs",dest:"app/routes/__root.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/routes/index.tsx.hbs",dest:"app/routes/index.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/routes/pricing.tsx.hbs",dest:"app/routes/pricing.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/routes/dashboard.tsx.hbs",dest:"app/routes/dashboard.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/tanstack-start/app/routes/dashboard.index.tsx.hbs",dest:"app/routes/dashboard.index.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/tanstack-start/app/routes/dashboard.settings.tsx",dest:"app/routes/dashboard.settings.tsx",condition:(f)=>!!f.auth},{src:"frameworks/tanstack-start/app/routes/dashboard.billing.tsx.hbs",dest:"app/routes/dashboard.billing.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/tanstack-start/app/components/ui/button.tsx",dest:"app/components/ui/button.tsx"},{src:"frameworks/tanstack-start/app/components/ui/card.tsx",dest:"app/components/ui/card.tsx"},{src:"frameworks/tanstack-start/app/components/ui/input.tsx",dest:"app/components/ui/input.tsx"},{src:"frameworks/tanstack-start/app/components/header.tsx.hbs",dest:"app/components/header.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/components/footer.tsx",dest:"app/components/footer.tsx"},{src:"frameworks/tanstack-start/app/components/sidebar.tsx.hbs",dest:"app/components/sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function r5(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/polar/nextjs/lib/polar.ts",dest:"src/lib/polar.ts"},{src:"payments/polar/nextjs/api/webhooks/polar/route.ts.hbs",dest:"src/app/api/webhooks/polar/route.ts",isTemplate:!0},{src:"payments/polar/nextjs/components/polar-checkout.tsx",dest:"src/components/pricing/polar-checkout.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/polar/sveltekit/lib/polar.ts",dest:"src/lib/server/polar.ts"},{src:"payments/polar/sveltekit/routes/api/webhooks/polar/+server.ts.hbs",dest:"src/routes/api/webhooks/polar/+server.ts",isTemplate:!0},{src:"payments/polar/sveltekit/components/PolarCheckout.svelte",dest:"src/lib/components/pricing/PolarCheckout.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/polar/nuxt/server/utils/polar.ts",dest:"server/utils/polar.ts"},{src:"payments/polar/nuxt/composables/usePolar.ts",dest:"composables/usePolar.ts"},{src:"payments/polar/nuxt/server/api/webhooks/polar.post.ts.hbs",dest:"server/api/webhooks/polar.post.ts",isTemplate:!0},{src:"payments/polar/nuxt/components/PolarCheckout.vue",dest:"components/pricing/PolarCheckout.vue"});else if(q.framework==="remix")_.push({src:"payments/polar/remix/app/lib/polar.server.ts",dest:"app/lib/polar.server.ts"},{src:"payments/polar/remix/app/routes/api.webhooks.polar.ts.hbs",dest:"app/routes/api.webhooks.polar.ts",isTemplate:!0},{src:"payments/polar/remix/app/components/pricing/polar-checkout.tsx",dest:"app/components/pricing/polar-checkout.tsx"});else if(q.framework==="astro")_.push({src:"payments/polar/astro/src/lib/polar.ts",dest:"src/lib/polar.ts"},{src:"payments/polar/astro/src/pages/api/webhooks/polar.ts.hbs",dest:"src/pages/api/webhooks/polar.ts",isTemplate:!0},{src:"payments/polar/astro/src/components/pricing/PolarCheckout.tsx",dest:"src/components/pricing/PolarCheckout.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/polar/solidstart/src/lib/polar.server.ts",dest:"src/lib/polar.server.ts"},{src:"payments/polar/solidstart/src/routes/api/webhooks/polar.ts.hbs",dest:"src/routes/api/webhooks/polar.ts",isTemplate:!0},{src:"payments/polar/solidstart/src/components/pricing/polar-checkout.tsx",dest:"src/components/pricing/polar-checkout.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/polar/tanstack-start/app/lib/polar.server.ts",dest:"app/lib/polar.server.ts"},{src:"payments/polar/tanstack-start/app/routes/api.webhooks.polar.ts.hbs",dest:"app/routes/api.webhooks.polar.ts",isTemplate:!0},{src:"payments/polar/tanstack-start/app/components/pricing/polar-checkout.tsx",dest:"app/components/pricing/polar-checkout.tsx"});return _}function O5(q){return[{src:"database/mongoose/connection.ts.hbs",dest:"src/lib/db/connection.ts",isTemplate:!0},{src:"database/mongoose/index.ts",dest:"src/lib/db/index.ts"},{src:"database/mongoose/models/index.ts",dest:"src/lib/db/models/index.ts"},{src:"database/mongoose/models/user.ts.hbs",dest:"src/lib/db/models/user.ts",isTemplate:!0}]}function T5(q){let _=[{src:"backend/elysia/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/elysia/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/elysia/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/elysia/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/elysia/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/elysia/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/elysia/src/middleware/auth.ts.hbs",dest:"src/api/middleware/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/elysia/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}function Y5(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/supabase/nextjs/supabase-client.ts",dest:"src/lib/supabase/client.ts"},{src:"auth/supabase/nextjs/supabase-server.ts",dest:"src/lib/supabase/server.ts"},{src:"auth/supabase/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/supabase/nextjs/app/auth/callback/route.ts",dest:"src/app/auth/callback/route.ts"},{src:"auth/supabase/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/supabase/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/supabase/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/supabase/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/supabase/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/supabase/sveltekit/supabase-client.ts",dest:"src/lib/supabase/client.ts"},{src:"auth/supabase/sveltekit/supabase-server.ts",dest:"src/lib/supabase/server.ts"},{src:"auth/supabase/sveltekit/hooks.server.ts",dest:"src/hooks.server.ts"},{src:"auth/supabase/sveltekit/routes/auth/callback/+server.ts",dest:"src/routes/auth/callback/+server.ts"},{src:"auth/supabase/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/supabase/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/supabase/sveltekit/components/AuthForm.svelte",dest:"src/lib/components/auth/AuthForm.svelte"},{src:"auth/supabase/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/supabase/nuxt/composables/useSupabaseAuth.ts",dest:"composables/useSupabaseAuth.ts"},{src:"auth/supabase/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/supabase/nuxt/pages/register.vue",dest:"pages/register.vue"},{src:"auth/supabase/nuxt/pages/auth/callback.vue",dest:"pages/auth/callback.vue"},{src:"auth/supabase/nuxt/components/AuthForm.vue",dest:"components/auth/AuthForm.vue"},{src:"auth/supabase/nuxt/components/UserButton.vue",dest:"components/auth/UserButton.vue"});else if(q.framework==="remix")_.push({src:"auth/supabase/remix/app/lib/supabase.server.ts",dest:"app/lib/supabase.server.ts"},{src:"auth/supabase/remix/app/lib/supabase.client.ts",dest:"app/lib/supabase.client.ts"},{src:"auth/supabase/remix/app/routes/auth.callback.tsx",dest:"app/routes/auth.callback.tsx"},{src:"auth/supabase/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/supabase/remix/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/supabase/remix/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/supabase/remix/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});else if(q.framework==="astro")_.push({src:"auth/supabase/astro/src/lib/supabase.ts",dest:"src/lib/supabase.ts"},{src:"auth/supabase/astro/src/pages/auth/callback.ts",dest:"src/pages/auth/callback.ts"},{src:"auth/supabase/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/supabase/astro/src/pages/register.astro",dest:"src/pages/register.astro"},{src:"auth/supabase/astro/src/components/auth/AuthForm.tsx",dest:"src/components/auth/AuthForm.tsx"},{src:"auth/supabase/astro/src/components/auth/UserButton.tsx",dest:"src/components/auth/UserButton.tsx"});return _}function k5(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/lucia/nextjs/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/lucia/nextjs/auth-actions.ts",dest:"src/lib/auth-actions.ts"},{src:"auth/lucia/nextjs/validate-request.ts",dest:"src/lib/validate-request.ts"},{src:"auth/lucia/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/lucia/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/lucia/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/lucia/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/lucia/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/lucia/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/lucia/sveltekit/auth.ts.hbs",dest:"src/lib/server/auth.ts",isTemplate:!0},{src:"auth/lucia/sveltekit/hooks.server.ts",dest:"src/hooks.server.ts"},{src:"auth/lucia/sveltekit/app.d.ts",dest:"src/app.d.ts"},{src:"auth/lucia/sveltekit/routes/(auth)/login/+page.server.ts",dest:"src/routes/(auth)/login/+page.server.ts"},{src:"auth/lucia/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/lucia/sveltekit/routes/(auth)/register/+page.server.ts",dest:"src/routes/(auth)/register/+page.server.ts"},{src:"auth/lucia/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/lucia/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});return _}function h5(q){let _=[{src:"backend/express/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/express/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/express/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/express/src/middleware/error.ts",dest:"src/api/middleware/error.ts"},{src:"backend/express/src/middleware/validate.ts",dest:"src/api/middleware/validate.ts"},{src:"backend/express/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/express/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/express/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/express/src/middleware/auth.ts.hbs",dest:"src/api/middleware/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/express/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}function z5(q){let _=[{src:"backend/fastify/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/fastify/src/plugins/cors.ts",dest:"src/api/plugins/cors.ts"},{src:"backend/fastify/src/plugins/swagger.ts",dest:"src/api/plugins/swagger.ts"},{src:"backend/fastify/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/fastify/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/fastify/src/schemas/common.ts",dest:"src/api/schemas/common.ts"},{src:"backend/fastify/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/fastify/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/fastify/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/fastify/src/plugins/auth.ts.hbs",dest:"src/api/plugins/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/fastify/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}var k={next:"^15.1.0",react:"^19.0.0","react-dom":"^19.0.0",svelte:"^5.0.0","@sveltejs/kit":"^2.15.0","@sveltejs/adapter-auto":"^3.3.0","@sveltejs/adapter-node":"^5.2.0","@sveltejs/vite-plugin-svelte":"^5.0.0",nuxt:"^3.15.0",vue:"^3.5.0","@nuxtjs/tailwindcss":"^6.12.0","@vueuse/nuxt":"^12.0.0","@remix-run/node":"^2.15.0","@remix-run/react":"^2.15.0","@remix-run/serve":"^2.15.0","@remix-run/dev":"^2.15.0",isbot:"^5.1.0",astro:"^5.1.0","@astrojs/node":"^9.0.0","@astrojs/react":"^4.1.0","@astrojs/tailwind":"^6.0.0",vite:"^6.0.0","@solidjs/start":"^1.0.0","@solidjs/router":"^0.15.0","@solidjs/meta":"^0.29.0","solid-js":"^1.9.0",vinxi:"^0.5.0","@tanstack/react-start":"^1.95.0","@tanstack/react-router":"^1.95.0",typescript:"^5.7.0","@types/node":"^22.0.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","drizzle-orm":"^0.38.0","drizzle-kit":"^0.30.0",postgres:"^3.4.0","@prisma/client":"^6.0.0",prisma:"^6.0.0","@libsql/client":"^0.14.0","better-sqlite3":"^11.0.0","@types/better-sqlite3":"^7.6.0",kysely:"^0.27.0",pg:"^8.13.0","@types/pg":"^8.11.0","kysely-ctl":"^0.9.0",mongoose:"^8.9.0","better-auth":"^1.2.0","@better-auth/cli":"^1.2.0","@clerk/nextjs":"^6.0.0",lucia:"^3.2.0",oslo:"^1.2.0","@lucia-auth/adapter-drizzle":"^1.1.0","@lucia-auth/adapter-prisma":"^4.0.0","@oslojs/crypto":"^1.0.0","@oslojs/encoding":"^1.1.0","next-auth":"^5.0.0","@auth/core":"^0.37.0","@auth/sveltekit":"^1.7.0","@auth/drizzle-adapter":"^1.7.0","@sidebase/nuxt-auth":"^0.9.0","remix-auth":"^3.7.0","remix-auth-form":"^1.5.0","auth-astro":"^4.2.0","@auth0/nextjs-auth0":"^3.5.0","@auth0/auth0-vue":"^2.3.0","@auth0/auth0-spa-js":"^2.1.0","@auth0/auth0-react":"^2.2.0","@supabase/supabase-js":"^2.47.0","@supabase/ssr":"^0.5.0","@nuxtjs/supabase":"^1.4.0",stripe:"^17.0.0","@stripe/stripe-js":"^5.0.0","@paddle/paddle-node-sdk":"^1.6.0","@paddle/paddle-js":"^1.3.0","@lemonsqueezy/lemonsqueezy.js":"^3.4.0","@polar-sh/sdk":"^0.16.0",tailwindcss:"^4.0.0","@tailwindcss/vite":"^4.0.0",autoprefixer:"^10.4.0",postcss:"^8.4.0",clsx:"^2.1.0","tailwind-merge":"^2.6.0","lucide-react":"^0.469.0","lucide-svelte":"^0.469.0","lucide-vue-next":"^0.469.0",zod:"^3.24.0",nanoid:"^5.0.0","vite-tsconfig-paths":"^5.1.0",hono:"^4.6.0","@hono/node-server":"^1.13.0","@hono/zod-validator":"^0.4.0",elysia:"^1.2.0","@elysiajs/cors":"^1.1.0","@elysiajs/swagger":"^1.1.0",express:"^5.0.0","@types/express":"^5.0.0",helmet:"^8.0.0",cors:"^2.8.0","@types/cors":"^2.8.0","express-rate-limit":"^7.4.0",fastify:"^5.1.0","@fastify/cors":"^10.0.0","@fastify/helmet":"^12.0.0","@fastify/rate-limit":"^10.0.0","@fastify/swagger":"^9.0.0","@fastify/swagger-ui":"^5.0.0"};function SK(q){switch(q){case"nextjs":return{deps:{next:k.next,react:k.react,"react-dom":k["react-dom"]},devDeps:{typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"next dev --turbopack",build:"next build",start:"next start",typecheck:"tsc --noEmit"}};case"sveltekit":return{deps:{"@sveltejs/kit":k["@sveltejs/kit"],svelte:k.svelte},devDeps:{"@sveltejs/adapter-auto":k["@sveltejs/adapter-auto"],"@sveltejs/vite-plugin-svelte":k["@sveltejs/vite-plugin-svelte"],vite:k.vite,typescript:k.typescript,"@types/node":k["@types/node"]},scripts:{dev:"vite dev",build:"vite build",preview:"vite preview",typecheck:"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"}};case"nuxt":return{deps:{nuxt:k.nuxt,vue:k.vue,"@nuxtjs/tailwindcss":k["@nuxtjs/tailwindcss"],"@vueuse/nuxt":k["@vueuse/nuxt"]},devDeps:{typescript:k.typescript},scripts:{dev:"nuxi dev",build:"nuxi build",preview:"nuxi preview",generate:"nuxi generate",typecheck:"nuxi typecheck"}};case"remix":return{deps:{"@remix-run/node":k["@remix-run/node"],"@remix-run/react":k["@remix-run/react"],"@remix-run/serve":k["@remix-run/serve"],react:k.react,"react-dom":k["react-dom"],isbot:k.isbot},devDeps:{"@remix-run/dev":k["@remix-run/dev"],vite:k.vite,"vite-tsconfig-paths":k["vite-tsconfig-paths"],typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"remix vite:dev",build:"remix vite:build",start:"remix-serve ./build/server/index.js",typecheck:"tsc --noEmit"}};case"astro":return{deps:{astro:k.astro,"@astrojs/node":k["@astrojs/node"],"@astrojs/react":k["@astrojs/react"],react:k.react,"react-dom":k["react-dom"]},devDeps:{typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"astro dev",build:"astro build",preview:"astro preview",typecheck:"astro check && tsc --noEmit"}};case"solidstart":return{deps:{"@solidjs/start":k["@solidjs/start"],"@solidjs/router":k["@solidjs/router"],"@solidjs/meta":k["@solidjs/meta"],"solid-js":k["solid-js"],vinxi:k.vinxi},devDeps:{typescript:k.typescript,"@types/node":k["@types/node"]},scripts:{dev:"vinxi dev",build:"vinxi build",start:"vinxi start",typecheck:"tsc --noEmit"}};case"tanstack-start":return{deps:{"@tanstack/react-start":k["@tanstack/react-start"],"@tanstack/react-router":k["@tanstack/react-router"],react:k.react,"react-dom":k["react-dom"],vinxi:k.vinxi},devDeps:{vite:k.vite,"vite-tsconfig-paths":k["vite-tsconfig-paths"],typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"vinxi dev",build:"vinxi build",start:"vinxi start",typecheck:"tsc --noEmit"}};default:return{deps:{},devDeps:{},scripts:{}}}}function cK(q,_){switch(q){case"better-auth":return{deps:{"better-auth":k["better-auth"]},devDeps:{"@better-auth/cli":k["@better-auth/cli"]}};case"clerk":if(_==="nextjs")return{deps:{"@clerk/nextjs":k["@clerk/nextjs"]},devDeps:{}};return{deps:{},devDeps:{}};case"authjs":if(_==="nextjs")return{deps:{"next-auth":k["next-auth"],"@auth/drizzle-adapter":k["@auth/drizzle-adapter"]},devDeps:{}};else if(_==="sveltekit")return{deps:{"@auth/sveltekit":k["@auth/sveltekit"],"@auth/drizzle-adapter":k["@auth/drizzle-adapter"]},devDeps:{}};else if(_==="nuxt")return{deps:{"@sidebase/nuxt-auth":k["@sidebase/nuxt-auth"]},devDeps:{}};else if(_==="remix")return{deps:{"remix-auth":k["remix-auth"],"remix-auth-form":k["remix-auth-form"]},devDeps:{}};else if(_==="astro")return{deps:{"auth-astro":k["auth-astro"],"@auth/core":k["@auth/core"]},devDeps:{}};return{deps:{},devDeps:{}};case"auth0":if(_==="nextjs")return{deps:{"@auth0/nextjs-auth0":k["@auth0/nextjs-auth0"]},devDeps:{}};else if(_==="nuxt")return{deps:{"@auth0/auth0-vue":k["@auth0/auth0-vue"]},devDeps:{}};else return{deps:{"@auth0/auth0-spa-js":k["@auth0/auth0-spa-js"]},devDeps:{}};case"lucia":return{deps:{lucia:k.lucia,"@oslojs/crypto":k["@oslojs/crypto"],"@oslojs/encoding":k["@oslojs/encoding"]},devDeps:{}};case"supabase":if(_==="nuxt")return{deps:{"@nuxtjs/supabase":k["@nuxtjs/supabase"]},devDeps:{}};return{deps:{"@supabase/supabase-js":k["@supabase/supabase-js"],"@supabase/ssr":k["@supabase/ssr"]},devDeps:{}};default:return{deps:{},devDeps:{}}}}function NK(q){switch(q){case"stripe":return{deps:{stripe:k.stripe,"@stripe/stripe-js":k["@stripe/stripe-js"]},devDeps:{}};case"paddle":return{deps:{"@paddle/paddle-node-sdk":k["@paddle/paddle-node-sdk"],"@paddle/paddle-js":k["@paddle/paddle-js"]},devDeps:{}};case"lemonsqueezy":return{deps:{"@lemonsqueezy/lemonsqueezy.js":k["@lemonsqueezy/lemonsqueezy.js"]},devDeps:{}};case"polar":return{deps:{"@polar-sh/sdk":k["@polar-sh/sdk"]},devDeps:{}};default:return{deps:{},devDeps:{}}}}function yK(q,_){let f=["postgres","neon","supabase"].includes(_),$=["sqlite","turso"].includes(_);if(q==="drizzle"){let P={"drizzle-orm":k["drizzle-orm"]};if(f)P.postgres=k.postgres;else if($)if(_==="turso")P["@libsql/client"]=k["@libsql/client"];else P["better-sqlite3"]=k["better-sqlite3"];return{deps:P,devDeps:{"drizzle-kit":k["drizzle-kit"],...$&&_!=="turso"?{"@types/better-sqlite3":k["@types/better-sqlite3"]}:{}},scripts:{"db:generate":"drizzle-kit generate","db:migrate":"drizzle-kit migrate","db:push":"drizzle-kit push","db:studio":"drizzle-kit studio"}}}if(q==="prisma")return{deps:{"@prisma/client":k["@prisma/client"]},devDeps:{prisma:k.prisma},scripts:{"db:generate":"prisma generate","db:push":"prisma db push","db:migrate":"prisma migrate dev","db:studio":"prisma studio"}};if(q==="kysely"){let P={kysely:k.kysely};if(f)P.pg=k.pg;else if($)if(_==="turso")P["@libsql/client"]=k["@libsql/client"];else P["better-sqlite3"]=k["better-sqlite3"];return{deps:P,devDeps:{"kysely-ctl":k["kysely-ctl"],...f?{"@types/pg":k["@types/pg"]}:{},...$&&_!=="turso"?{"@types/better-sqlite3":k["@types/better-sqlite3"]}:{}},scripts:{"db:migrate":"kysely migrate:latest","db:migrate:down":"kysely migrate:down","db:migrate:make":"kysely migrate:make"}}}if(q==="mongoose")return{deps:{mongoose:k.mongoose},devDeps:{},scripts:{}};return{deps:{},devDeps:{},scripts:{}}}function RK(q){let _=q==="sveltekit"?"lucide-svelte":q==="nuxt"?"lucide-vue-next":"lucide-react";return{deps:{clsx:k.clsx,"tailwind-merge":k["tailwind-merge"],[_]:k[_]},devDeps:{tailwindcss:k.tailwindcss,"@tailwindcss/vite":k["@tailwindcss/vite"]}}}function EK(){return{deps:{zod:k.zod},devDeps:{}}}import{exec as e5}from"child_process";import{promisify as H5}from"util";import{copyFile as W5,access as Jf,constants as Zf}from"fs/promises";import{join as nf}from"path";var A8=H5(e5);async function gK(){try{return await A8("bun --version"),"bun"}catch{}try{return await A8("pnpm --version"),"pnpm"}catch{}return"npm"}async function J5(q,_){let f=_||await gK();try{let $=f==="npm"?"npm install":`${f} install`;return await A8($,{cwd:q,timeout:120000}),{success:!0,message:`Dependencies installed with ${f}`}}catch($){return{success:!1,message:`Failed to install dependencies with ${f}`,error:$}}}async function Z5(q){try{try{return await Jf(nf(q,".git"),Zf.F_OK),{success:!0,message:"Git repository already initialized"}}catch{}return await A8("git init",{cwd:q}),await A8("git add -A",{cwd:q}),await A8('git commit -m "Initial commit from create-stacksfinder"',{cwd:q}),{success:!0,message:"Git repository initialized"}}catch(_){return{success:!1,message:"Failed to initialize git",error:_}}}async function n5(q){let _=nf(q,".env.example"),f=nf(q,".env");try{try{return await Jf(f,Zf.F_OK),{success:!0,message:".env file already exists"}}catch{}try{await Jf(_,Zf.F_OK)}catch{return{success:!1,message:".env.example not found"}}return await W5(_,f),{success:!0,message:"Created .env from .env.example"}}catch($){return{success:!1,message:"Failed to create .env file",error:$}}}async function o5(q,_){if(!_.orm)return{success:!0,message:"No ORM configured, skipping database setup"};let f=await gK(),$=f==="npm"?"npm run":`${f} run`;try{if(_.isDrizzle)await A8(`${$} db:generate`,{cwd:q,timeout:60000});else if(_.isPrisma)await A8(`${$} db:generate`,{cwd:q,timeout:60000});return{success:!0,message:`Database setup completed (${_.orm})`}}catch(P){return{success:!1,message:"Database setup skipped (configure .env first)",error:P}}}async function IK(q,_,f={}){let $=[];if(!f.skipInstall){let P=await J5(q);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"✗"} ${P.message}`)}if(!f.skipEnv){let P=await n5(q);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"✗"} ${P.message}`)}if(!f.skipGit){let P=await Z5(q);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"✗"} ${P.message}`)}if(!f.skipDb&&_.orm){let P=await o5(q,_);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"⚠"} ${P.message}`)}return{results:$,allSuccess:$.every((P)=>P.success)}}var A5=X5(import.meta.url),a5=LK(A5),sK=eq(a5,"templates");function i5(){if(p8.default.helpers.eq)return;p8.default.registerHelper("eq",(q,_)=>q===_),p8.default.registerHelper("neq",(q,_)=>q!==_),p8.default.registerHelper("or",(...q)=>q.slice(0,-1).some(Boolean)),p8.default.registerHelper("and",(...q)=>q.slice(0,-1).every(Boolean)),p8.default.registerHelper("json",(q)=>JSON.stringify(q,null,2)),p8.default.registerHelper("unless",function(q,_){return!q?_.fn(this):_.inverse(this)})}async function t5(q){try{return await d5(eq(sK,q)),!0}catch{return!1}}async function G5(q,_,f){if(q.condition&&!q.condition(_))return!0;let $=eq(sK,q.src),P=eq(f,q.dest);if(await DK(LK(P),{recursive:!0}),!await t5(q.src))return console.warn(`Template not found: ${q.src}`),!1;try{if(q.isTemplate){let K=await p5($,"utf-8"),m=p8.default.compile(K,{noEscape:!0})(_);await xK(P,m)}else await u5($,P);return!0}catch(K){return console.error(`Error processing ${q.src}:`,K),!1}}function l5(q){let _=SK(q.framework||"nextjs"),f=q.orm?yK(q.orm,q.database||"postgres"):{deps:{},devDeps:{},scripts:{}},$=q.auth?cK(q.auth,q.framework||"nextjs"):{deps:{},devDeps:{}},P=q.payments?NK(q.payments):{deps:{},devDeps:{}},j=RK(q.framework||"nextjs"),K=EK();return{name:q.projectName,version:"0.1.0",private:!0,type:"module",scripts:{..._.scripts,...f.scripts},dependencies:{..._.deps,...f.deps,...$.deps,...P.deps,...j.deps,...K.deps},devDependencies:{..._.devDeps,...f.devDeps,...$.devDeps,...P.devDeps,...j.devDeps,...K.devDeps}}}async function BK(q,_,f,$={},P){i5();let j=Bq(q,_);await DK(f,{recursive:!0}),P?.({phase:"init",current:0,total:0});let K=l5(j);await xK(eq(f,"package.json"),JSON.stringify(K,null,2)),P?.({phase:"config",file:"package.json",current:1,total:0});let v=CK(j),m=v.length,w=1,O=0,r="";for(let T=0;T<v.length;T++){let z=v[T],e=b5(z.src);if(e!==r)r=e,P?.({phase:e,current:T,total:m});if(await G5(z,j,f))w++,P?.({phase:r,file:z.dest,current:T+1,total:m});else O++}if(!$.skipInstall)P?.({phase:"install",current:m,total:m}),await IK(f,j,{skipInstall:$.skipInstall,skipGit:$.skipGit,verbose:$.verbose});return P?.({phase:"complete",current:m,total:m}),{success:O===0,generated:w,skipped:O,context:j}}function b5(q){if(q.includes("config")||q.includes("tsconfig")||q.includes("vite"))return"config";if(q.includes("auth"))return"auth";if(q.includes("database")||q.includes("drizzle")||q.includes("prisma"))return"database";if(q.includes("payment")||q.includes("stripe")||q.includes("paddle"))return"payments";if(q.includes("component"))return"components";if(q.includes("route")||q.includes("app/"))return"routes";return"files"}async function UK(q,_){let f=`https://stacksfinder.com/api/v1/blueprints/${q}`,$=await fetch(f,{method:"GET",headers:{Authorization:`Bearer ${_}`,"Content-Type":"application/json","User-Agent":"create-stacksfinder/0.1.0"}});if(!$.ok){if($.status===401)throw Error("Invalid API key. Get your key at stacksfinder.com/settings/api-keys");if($.status===403)throw Error("API access requires a Pro or Team subscription. Upgrade at stacksfinder.com/pro");if($.status===404)throw Error(`Blueprint "${q}" not found. Check the ID and try again.`);let P=await $.json().catch(()=>({}));throw Error(P.message||`API error: ${$.status} ${$.statusText}`)}return $.json()}function FK(q){if(q)return q;return process.env.STACKSFINDER_API_KEY}import{existsSync as QK,readFileSync as qP}from"fs";import{join as _P}from"path";var fP=[".stacksfinderrc.json",".stacksfinderrc","stacksfinder.config.json"],h8={projectType:"saas",scale:"mvp",priority:"speed",framework:"nextjs",database:"postgres",orm:"drizzle",auth:"better-auth",payments:null,hosting:"vercel"};async function of(){for(let _ of fP){let f=_P(process.cwd(),_);if(QK(f))try{let $=qP(f,"utf-8");return JSON.parse($)}catch($){return console.warn(`Warning: Failed to parse ${_}`),null}}let q=process.env.HOME||process.env.USERPROFILE;if(q)for(let _ of fP){let f=_P(q,_);if(QK(f))try{let $=qP(f,"utf-8");return JSON.parse($)}catch($){return console.warn(`Warning: Failed to parse ${_} in home directory`),null}}return null}async function M5(){let q=await of();if(!q?.defaults)return{};return{projectType:q.defaults.projectType,scale:q.defaults.scale,priority:q.defaults.priority,framework:q.defaults.framework,database:q.defaults.database,orm:q.defaults.orm,auth:q.defaults.auth,payments:q.defaults.payments}}async function $P(q){let _=await of();if(!_?.presets)return null;return _.presets[q]??null}async function KP(){let q=await of();if(!q?.presets)return[];return Object.keys(q.presets)}async function PP(){let q=await M5();return{...h8,...Object.fromEntries(Object.entries(q).filter(([_,f])=>f!==void 0))}}function jP(q){return{projectType:q.projectType??h8.projectType,scale:q.scale??h8.scale,priority:q.priority??h8.priority,framework:q.framework??h8.framework,database:q.database??h8.database,orm:q.orm??h8.orm,auth:q.auth!==void 0?q.auth:h8.auth,payments:q.payments!==void 0?q.payments:h8.payments,hosting:q.hosting??h8.hosting}}var l=s($8(),1),C5={remix:{drizzle:"Drizzle's type-safe queries pair perfectly with Remix loaders",prisma:"Prisma's schema-first approach works well with Remix's data loading","better-auth":"Better Auth integrates natively with Remix's session handling",stripe:"Stripe webhooks fit naturally into Remix resource routes",supabase:"Supabase provides both database and auth for rapid Remix development"},nextjs:{drizzle:"Drizzle's edge-ready design complements Next.js middleware",prisma:"Prisma's mature ecosystem integrates seamlessly with Next.js API routes",clerk:"Clerk provides drop-in auth components for Next.js App Router","better-auth":"Better Auth's minimal footprint suits Next.js server components",stripe:"Next.js API routes provide a clean Stripe webhook integration",vercel:"Vercel's zero-config deployment is optimized for Next.js"},sveltekit:{drizzle:"Drizzle's lightweight design matches SvelteKit's performance focus",prisma:"Prisma works well with SvelteKit's server-side data loading","better-auth":"Better Auth's Svelte adapter provides native store integration",stripe:"SvelteKit endpoints handle Stripe webhooks efficiently",cloudflare:"Cloudflare Pages offers excellent SvelteKit adapter support"},nuxt:{drizzle:"Drizzle works well with Nuxt's server routes",prisma:"Prisma integrates with Nuxt's Nitro server","better-auth":"Better Auth provides Vue composables for Nuxt",stripe:"Nuxt server routes handle Stripe integration cleanly"}};function Hq(q,_){return C5[q]?.[_]}function V5(q,_){let f=_.framework;if(!f)return;let $=[];if(_.orm){let P=Hq(f,_.orm);if(P)$.push(P)}if(_.auth){let P=Hq(f,_.auth);if(P)$.push(P)}if(_.payments){let P=Hq(f,_.payments);if(P)$.push(P)}if(_.database){let P=Hq(f,_.database);if(P)$.push(P)}if(_.hosting){let P=Hq(f,_.hosting);if(P)$.push(P)}if($.length>0){console.log(""),console.log(l.default.dim(" Stack synergies detected:"));for(let P of $.slice(0,3))console.log(l.default.dim(` + ${P}`))}}function vP(q,_,f,$){if(console.log(""),console.log(l.default.dim(" ───────────────────────────────────────────────────")),console.log(""),console.log(` ${l.default.bold("Generation complete")}`),console.log(""),console.log(` ${l.default.cyan(String(f))} files generated`),$>0)console.log(l.default.yellow(` ${$} templates not found`));console.log(""),console.log(l.default.dim(" Stack composition:"));let P=_.frameworkEntry?.name||_.framework||"Unknown",j=_.databaseEntry?.name||_.database||"None",K=_.ormEntry?.name||_.orm||"None",v=_.authEntry?.name||_.auth||"None",m=_.paymentsEntry?.name||_.payments||"None";if(console.log(l.default.dim(` Framework: ${P}`)),console.log(l.default.dim(` Database: ${j} + ${K}`)),_.auth)console.log(l.default.dim(` Auth: ${v}`));if(_.payments)console.log(l.default.dim(` Payments: ${m}`));let w=q.stackScore?.grade||"A";console.log(""),console.log(` Overall stack grade: ${l.default.green(`[${w}]`)} ${S5(w)}`)}function S5(q){return{"A+":"Optimal choice for your requirements",A:"Excellent match with proven synergies","A-":"Strong choice with minor trade-offs","B+":"Good fit, some alternatives worth considering",B:"Solid option for your use case","B-":"Adequate, but better options exist",C:"Consider alternatives for better results"}[q]||""}function wP(q,_){console.log(""),console.log(l.default.dim(" ───────────────────────────────────────────────────")),console.log(""),console.log(` ${l.default.bold("Preparing generation...")}`),console.log("");let f=[];if(_.framework)f.push(`${_.frameworkEntry?.name||_.framework} project structure`);if(_.orm)f.push(`${_.ormEntry?.name||_.orm} database layer`);if(_.auth)f.push(`${_.authEntry?.name||_.auth} authentication`);if(_.payments)f.push(`${_.paymentsEntry?.name||_.payments} payment integration`);console.log(l.default.dim(" Generating:"));for(let $ of f)console.log(l.default.dim(` + ${$}`));V5(q,_)}function pf(q,_){if(console.log(""),console.log(l.default.dim(" ───────────────────────────────────────────────────")),console.log(` ${l.default.bold("Seed:")} ${l.default.cyan(q)}`),console.log(l.default.dim(" Reproduce this config: --seed <seed>")),_)console.log(""),console.log(l.default.green(` Saved as "${_}"`)),console.log(l.default.dim(` Use: bun create stacksfinder my-app --seed ${_}`))}import{join as y5}from"path";function c5(){return!!(process.env.STACKSFINDER_TELEMETRY_DISABLED||process.env.DO_NOT_TRACK||process.env.CI)}function Wq(q,_){if(c5())return;let f={v:"0.2.0",action:q,projectType:_?.projectType,scale:_?.scale,ecosystem:_?.ecosystem,priorityCount:_?.priorities?.length,constraintCount:_?.constraints?.length,os:process.platform,ts:Date.now()};fetch("https://stacksfinder.com/api/v1/cli/telemetry",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f),signal:AbortSignal.timeout(3000)}).catch(()=>{})}function mP(q){Wq("generate",q)}function rP(){Wq("error")}import{createHash as N5}from"crypto";var OP=1,F8="SF1-";function TP(q){let _={v:OP,t:q.projectType,s:q.scale};if(q.highPriorities&&q.highPriorities.length>0)_.hp=q.highPriorities;else if(q.priority)_.pr=q.priority;if(q.lowPriorities&&q.lowPriorities.length>0)_.lp=q.lowPriorities;if(q.ecosystem&&q.ecosystem!=="javascript")_.e=q.ecosystem;if(q.constraints&&q.constraints.length>0)_.c=q.constraints;let f=JSON.stringify(_),$=Buffer.from(f).toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"");return F8+$}function uf(q){if(!q.startsWith(F8))throw Error(`Invalid seed format. Seeds must start with "${F8}". Example: SF1-abc123...`);try{let _=q.slice(F8.length).replace(/-/g,"+").replace(/_/g,"/"),f=_+"=".repeat((4-_.length%4)%4),$=Buffer.from(f,"base64").toString("utf-8"),P=JSON.parse($),j=P.v||1;if(j>OP)throw Error(`Seed version ${j} is not supported. Please update create-stacksfinder.`);let K;if(P.t)K={projectType:P.t,scale:P.s,highPriorities:P.hp,lowPriorities:P.lp,priority:P.pr,ecosystem:P.e||"javascript",constraints:P.c||[]};else if(P.e&&P.p)K={projectType:"saas",scale:"mvp",highPriorities:[{pioneer:"speed",sprinter:"speed",guardian:"security",pragmatic:"dx"}[P.p]||"speed"],ecosystem:P.e||"javascript",constraints:P.c||[]};else throw Error("Seed is missing required fields");let v=N5("sha256").update(JSON.stringify(K)).digest("hex").slice(0,8);return{version:j,config:K,hash:v}}catch(_){if(_ instanceof SyntaxError)throw Error("Invalid seed: corrupted data");throw _}}function YP(q){let _=q.trim();if(!_.startsWith(F8))return!1;let f=_.slice(F8.length);return/^[A-Za-z0-9_-]+$/.test(f)&&f.length>0}function kP(){return`${process.env.HOME||process.env.USERPROFILE||process.cwd()}/.stacksfinder-seeds.json`}async function Uq(){let q=await import("fs/promises"),_=kP();try{let f=await q.readFile(_,"utf-8");return JSON.parse(f).seeds||[]}catch{return[]}}async function hP(q,_,f){let $=await import("fs/promises"),P=kP(),j=await Uq(),K=j.findIndex((v)=>v.name===q);if(K>=0)j[K]={name:q,seed:_,createdAt:new Date().toISOString(),description:f};else j.push({name:q,seed:_,createdAt:new Date().toISOString(),description:f});await $.writeFile(P,JSON.stringify({seeds:j},null,2))}async function zP(q){return(await Uq()).find((f)=>f.name===q)||null}var eP="0.5.0";function w8(q,_){let f=q.indexOf(_);return f!==-1&&q[f+1]&&!q[f+1].startsWith("-")?q[f+1]:void 0}var Fq=["saas","web-app","marketplace","api","e-commerce","blog","portfolio"],Qq=["mvp","startup","growth","enterprise"],Jq=["speed","dx","perf","cost","scale","security"];function q_(q,_=2){if(!q)return[];return q.split(",").map((f)=>f.trim()).filter((f)=>Jq.includes(f)).slice(0,_)}async function R5(){console.clear(),A6("box");let q=process.argv.slice(2),_=q.find((h)=>!h.startsWith("-")),f=q.includes("--recommend-only")||q.includes("-r"),$=q.includes("--json")||q.includes("-j"),P=q.includes("--expert")||q.includes("-e"),j=q.includes("--version")||q.includes("-v"),K=q.includes("--help")||q.includes("-h"),v=q.includes("--yes")||q.includes("-y"),m=q.includes("--verbose")||q.includes("-V"),w=q.includes("--no-install"),O=q.includes("--no-git"),r=w8(q,"--preset"),T=q.includes("--quick")||q.includes("-q"),z=w8(q,"--type"),e=w8(q,"--scale"),W=w8(q,"--priority"),p=w8(q,"--high-priority"),A=w8(q,"--low-priority"),R=w8(q,"--from-blueprint"),m8=w8(q,"--api-key"),b=q.includes("--compare"),_8=w8(q,"--preset1")||"mvp",g=w8(q,"--preset2")||"enterprise",S=w8(q,"--seed"),a8=w8(q,"--save-seed"),i8=q.includes("--list-seeds");if(j){let h=Y6();console.log(`create-stacksfinder v${eP}`),console.log(`Scoring data: v${h.scores}`),console.log(`Compatibility matrix: v${h.matrix}`),process.exit(0)}if(K)console.log(`
|
|
151
|
-
${
|
|
150
|
+
`;function _7(q="minimal"){switch(q){case"full":return s9;case"compact":return B9;case"box":return F9;case"oneline":return Q9;case"shadow":return q7;case"minimal":default:return U9}}function f7(q="minimal"){let _=_7(q);console.log(Sq.default.green(_))}function X6(q="minimal"){f7(q),console.log(Sq.default.dim(" Scaffold optimized tech stacks")),console.log(Sq.default.dim(" Powered by deterministic scoring")),console.log("")}var I8=F(P8(),1);function $7(q,_,f){return{isEnterprise:q.context.scale==="enterprise",isHighScore:q.stackScore.score>=85,hasComplexStack:q.categories.length>=5,projectName:f,phase:_}}function K7(q){if(q.phase==="post-recommendation"){if(q.isEnterprise)return{message:"Need compliance reports & team collaboration?",link:"stacksfinder.com/enterprise"};return{message:"Fine-tune with 25+ constraints:",link:"stacksfinder.com/builder"}}if(q.isHighScore)return{message:"Save & share this stack:",link:"stacksfinder.com/blueprint/new"};if(q.isEnterprise)return{message:`Get compliance reports for ${q.projectName||"your project"}:`,link:"stacksfinder.com/enterprise"};return{message:"Use in Cursor/Claude:",link:"npm i -g @stacksfinder/mcp-server"}}function t_(q,_,f){let $=$7(q,_,f),P=K7($);console.log(""),console.log(I8.default.dim("─".repeat(50))),console.log(""),console.log(I8.default.dim(` ${P.message}`)),console.log(` ${I8.default.cyan(P.link)}`),console.log("")}function A6(q){console.log(""),console.log(I8.default.dim(" Something went wrong? Try the web version:")),console.log(` ${I8.default.cyan("stacksfinder.com/builder")}`)}var d8=F(bK(),1);import{mkdir as IK,writeFile as DK,readFile as o5,copyFile as p5,access as u5}from"fs/promises";import{join as Wq,dirname as xK}from"path";import{fileURLToPath as d5}from"url";function Uq(q,_){let f=(A)=>{return _.categories.find((B)=>B.category===A)?.recommended.tech??null},$=(A)=>{return f(A)?.id??null},P=f("meta-framework"),j=f("database"),K=f("orm"),v=f("auth"),m=f("hosting"),w=f("payments"),r=f("backend"),O=P?.id??null,T=j?.id??null,h=K?.id??null,z=v?.id??null,W=w?.id??null,n=r?.id??null;return{projectName:q,projectType:_.context.projectType,scale:_.context.scale,framework:O,database:T,orm:h,auth:z,hosting:m?.id??null,payments:W,backend:n,frameworkEntry:P,databaseEntry:j,ormEntry:K,authEntry:v,hostingEntry:m,paymentsEntry:w,backendEntry:r,hasAuth:!!v,hasPayments:!!w,hasDatabase:!!j,isNextjs:O==="nextjs",isSvelteKit:O==="sveltekit",isNuxt:O==="nuxt",isRemix:O==="remix",isAstro:O==="astro",isSolidStart:O==="solidstart",isTanStackStart:O==="tanstack-start",isPostgres:["postgres","neon","supabase"].includes(T??""),isSqlite:T==="sqlite",isMongoDB:T==="mongodb",isSupabase:T==="supabase",isTurso:T==="turso",isDrizzle:h==="drizzle",isPrisma:h==="prisma",isKysely:h==="kysely",isMongoose:h==="mongoose",isBetterAuth:z==="better-auth",isClerk:z==="clerk",isAuthJs:z==="authjs",isAuth0:z==="auth0",isLucia:z==="lucia",isSupabaseAuth:z==="supabase-auth",isStripe:W==="stripe",isPaddle:W==="paddle",isLemonSqueezy:W==="lemonsqueezy",isPolar:W==="polar",hasBackend:!!r,isHono:n==="hono",isElysia:n==="elysia",isExpress:n==="express",isFastify:n==="fastify",ecosystem:_.context.ecosystem||"javascript"}}function MK(q){let _=[];if(_.push(...E1(q)),q.framework==="nextjs")_.push(...g1(q));else if(q.framework==="sveltekit")_.push(...I1(q));else if(q.framework==="nuxt")_.push(...D1(q));else if(q.framework==="remix")_.push(...x1(q));else if(q.framework==="astro")_.push(...L1(q));else if(q.framework==="solidstart")_.push(...v5(q));else if(q.framework==="tanstack-start")_.push(...w5(q));if(q.auth==="better-auth")_.push(...s1(q));else if(q.auth==="clerk")_.push(...B1(q));else if(q.auth==="authjs")_.push(...U1(q));else if(q.auth==="auth0")_.push(...F1(q));else if(q.auth==="lucia")_.push(...Y5(q));else if(q.auth==="supabase")_.push(...T5(q));if(q.payments==="stripe")_.push(...Q1(q));else if(q.payments==="paddle")_.push(...q5(q));else if(q.payments==="lemonsqueezy")_.push(..._5(q));else if(q.payments==="polar")_.push(...m5(q));if(q.orm==="drizzle")_.push(...f5(q));else if(q.orm==="prisma")_.push(...K5(q));else if(q.orm==="kysely")_.push(...P5(q));else if(q.orm==="mongoose")_.push(...O5(q));if(q.backend==="hono")_.push(...j5(q));else if(q.backend==="elysia")_.push(...r5(q));else if(q.backend==="express")_.push(...k5(q));else if(q.backend==="fastify")_.push(...h5(q));return _}function E1(q){return[{src:"base/gitignore",dest:".gitignore"},{src:"base/env.example.hbs",dest:".env.example",isTemplate:!0},{src:"base/README.md.hbs",dest:"README.md",isTemplate:!0}]}function g1(q){return[{src:"frameworks/nextjs/next.config.ts.hbs",dest:"next.config.ts",isTemplate:!0},{src:"frameworks/nextjs/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/nextjs/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/nextjs/postcss.config.js",dest:"postcss.config.js"},{src:"frameworks/nextjs/app/layout.tsx.hbs",dest:"src/app/layout.tsx",isTemplate:!0},{src:"frameworks/nextjs/app/page.tsx.hbs",dest:"src/app/page.tsx",isTemplate:!0},{src:"frameworks/nextjs/app/globals.css",dest:"src/app/globals.css"},{src:"frameworks/nextjs/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/nextjs/components/ui/button.tsx",dest:"src/components/ui/button.tsx"},{src:"frameworks/nextjs/components/ui/card.tsx",dest:"src/components/ui/card.tsx"},{src:"frameworks/nextjs/components/ui/input.tsx",dest:"src/components/ui/input.tsx"},{src:"frameworks/nextjs/app/(marketing)/layout.tsx",dest:"src/app/(marketing)/layout.tsx"},{src:"frameworks/nextjs/app/(marketing)/pricing/page.tsx.hbs",dest:"src/app/(marketing)/pricing/page.tsx",isTemplate:!0},{src:"frameworks/nextjs/app/(dashboard)/layout.tsx.hbs",dest:"src/app/(dashboard)/layout.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nextjs/app/(dashboard)/dashboard/page.tsx.hbs",dest:"src/app/(dashboard)/dashboard/page.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nextjs/app/(dashboard)/settings/page.tsx.hbs",dest:"src/app/(dashboard)/settings/page.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nextjs/app/(dashboard)/billing/page.tsx.hbs",dest:"src/app/(dashboard)/billing/page.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/nextjs/components/header.tsx.hbs",dest:"src/components/header.tsx",isTemplate:!0},{src:"frameworks/nextjs/components/footer.tsx",dest:"src/components/footer.tsx"},{src:"frameworks/nextjs/components/sidebar.tsx.hbs",dest:"src/components/sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function I1(q){return[{src:"frameworks/sveltekit/svelte.config.js",dest:"svelte.config.js"},{src:"frameworks/sveltekit/vite.config.ts.hbs",dest:"vite.config.ts",isTemplate:!0},{src:"frameworks/sveltekit/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/sveltekit/app.d.ts.hbs",dest:"src/app.d.ts",isTemplate:!0},{src:"frameworks/sveltekit/app.css",dest:"src/app.css"},{src:"frameworks/sveltekit/app.html.hbs",dest:"src/app.html",isTemplate:!0},{src:"frameworks/sveltekit/routes/+layout.svelte.hbs",dest:"src/routes/+layout.svelte",isTemplate:!0},{src:"frameworks/sveltekit/routes/+page.svelte.hbs",dest:"src/routes/+page.svelte",isTemplate:!0},{src:"frameworks/sveltekit/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/sveltekit/components/ui/Button.svelte",dest:"src/lib/components/ui/Button.svelte"},{src:"frameworks/sveltekit/components/ui/Card.svelte",dest:"src/lib/components/ui/Card.svelte"},{src:"frameworks/sveltekit/components/ui/Input.svelte",dest:"src/lib/components/ui/Input.svelte"},{src:"frameworks/sveltekit/routes/(marketing)/pricing/+page.svelte.hbs",dest:"src/routes/(marketing)/pricing/+page.svelte",isTemplate:!0},{src:"frameworks/sveltekit/routes/(app)/+layout.svelte.hbs",dest:"src/routes/(app)/+layout.svelte",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/+layout.server.ts.hbs",dest:"src/routes/(app)/+layout.server.ts",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/dashboard/+page.svelte",dest:"src/routes/(app)/dashboard/+page.svelte",condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/settings/+page.svelte",dest:"src/routes/(app)/settings/+page.svelte",condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/billing/+page.svelte.hbs",dest:"src/routes/(app)/billing/+page.svelte",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/sveltekit/hooks.server.ts.hbs",dest:"src/hooks.server.ts",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/components/Header.svelte.hbs",dest:"src/lib/components/Header.svelte",isTemplate:!0},{src:"frameworks/sveltekit/components/Footer.svelte",dest:"src/lib/components/Footer.svelte"},{src:"frameworks/sveltekit/components/Sidebar.svelte.hbs",dest:"src/lib/components/Sidebar.svelte",isTemplate:!0,condition:(f)=>!!f.auth}]}function D1(q){return[{src:"frameworks/nuxt/nuxt.config.ts.hbs",dest:"nuxt.config.ts",isTemplate:!0},{src:"frameworks/nuxt/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/nuxt/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/nuxt/app.vue.hbs",dest:"app.vue",isTemplate:!0},{src:"frameworks/nuxt/assets/css/main.css",dest:"assets/css/main.css"},{src:"frameworks/nuxt/pages/index.vue.hbs",dest:"pages/index.vue",isTemplate:!0},{src:"frameworks/nuxt/pages/pricing.vue.hbs",dest:"pages/pricing.vue",isTemplate:!0},{src:"frameworks/nuxt/layouts/default.vue.hbs",dest:"layouts/default.vue",isTemplate:!0},{src:"frameworks/nuxt/layouts/dashboard.vue.hbs",dest:"layouts/dashboard.vue",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nuxt/pages/dashboard/index.vue.hbs",dest:"pages/dashboard/index.vue",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nuxt/pages/dashboard/settings.vue",dest:"pages/dashboard/settings.vue",condition:(f)=>!!f.auth},{src:"frameworks/nuxt/pages/dashboard/billing.vue.hbs",dest:"pages/dashboard/billing.vue",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/nuxt/utils/cn.ts",dest:"utils/cn.ts"},{src:"frameworks/nuxt/components/ui/Button.vue",dest:"components/ui/Button.vue"},{src:"frameworks/nuxt/components/ui/Card.vue",dest:"components/ui/Card.vue"},{src:"frameworks/nuxt/components/ui/Input.vue",dest:"components/ui/Input.vue"},{src:"frameworks/nuxt/components/Header.vue.hbs",dest:"components/Header.vue",isTemplate:!0},{src:"frameworks/nuxt/components/Footer.vue",dest:"components/Footer.vue"},{src:"frameworks/nuxt/components/Sidebar.vue.hbs",dest:"components/Sidebar.vue",isTemplate:!0,condition:(f)=>!!f.auth}]}function x1(q){return[{src:"frameworks/remix/vite.config.ts.hbs",dest:"vite.config.ts",isTemplate:!0},{src:"frameworks/remix/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/remix/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/remix/app/root.tsx.hbs",dest:"app/root.tsx",isTemplate:!0},{src:"frameworks/remix/app/entry.client.tsx",dest:"app/entry.client.tsx"},{src:"frameworks/remix/app/entry.server.tsx",dest:"app/entry.server.tsx"},{src:"frameworks/remix/app/tailwind.css",dest:"app/tailwind.css"},{src:"frameworks/remix/app/routes/_index.tsx.hbs",dest:"app/routes/_index.tsx",isTemplate:!0},{src:"frameworks/remix/app/routes/pricing.tsx.hbs",dest:"app/routes/pricing.tsx",isTemplate:!0},{src:"frameworks/remix/app/routes/dashboard.tsx.hbs",dest:"app/routes/dashboard.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/remix/app/routes/dashboard._index.tsx.hbs",dest:"app/routes/dashboard._index.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/remix/app/routes/dashboard.settings.tsx",dest:"app/routes/dashboard.settings.tsx",condition:(f)=>!!f.auth},{src:"frameworks/remix/app/routes/dashboard.billing.tsx.hbs",dest:"app/routes/dashboard.billing.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/remix/app/lib/utils.ts",dest:"app/lib/utils.ts"},{src:"frameworks/remix/app/components/ui/button.tsx",dest:"app/components/ui/button.tsx"},{src:"frameworks/remix/app/components/ui/card.tsx",dest:"app/components/ui/card.tsx"},{src:"frameworks/remix/app/components/ui/input.tsx",dest:"app/components/ui/input.tsx"},{src:"frameworks/remix/app/components/header.tsx.hbs",dest:"app/components/header.tsx",isTemplate:!0},{src:"frameworks/remix/app/components/footer.tsx",dest:"app/components/footer.tsx"},{src:"frameworks/remix/app/components/sidebar.tsx.hbs",dest:"app/components/sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function L1(q){return[{src:"frameworks/astro/astro.config.mjs.hbs",dest:"astro.config.mjs",isTemplate:!0},{src:"frameworks/astro/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/astro/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/astro/src/env.d.ts",dest:"src/env.d.ts"},{src:"frameworks/astro/src/styles/global.css",dest:"src/styles/global.css"},{src:"frameworks/astro/src/layouts/Layout.astro.hbs",dest:"src/layouts/Layout.astro",isTemplate:!0},{src:"frameworks/astro/src/layouts/DashboardLayout.astro.hbs",dest:"src/layouts/DashboardLayout.astro",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/astro/src/pages/index.astro.hbs",dest:"src/pages/index.astro",isTemplate:!0},{src:"frameworks/astro/src/pages/pricing.astro.hbs",dest:"src/pages/pricing.astro",isTemplate:!0},{src:"frameworks/astro/src/pages/dashboard/index.astro.hbs",dest:"src/pages/dashboard/index.astro",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/astro/src/pages/dashboard/settings.astro",dest:"src/pages/dashboard/settings.astro",condition:(f)=>!!f.auth},{src:"frameworks/astro/src/pages/dashboard/billing.astro.hbs",dest:"src/pages/dashboard/billing.astro",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/astro/src/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/astro/src/components/ui/Button.tsx",dest:"src/components/ui/Button.tsx"},{src:"frameworks/astro/src/components/ui/Card.tsx",dest:"src/components/ui/Card.tsx"},{src:"frameworks/astro/src/components/ui/Input.tsx",dest:"src/components/ui/Input.tsx"},{src:"frameworks/astro/src/components/Header.astro.hbs",dest:"src/components/Header.astro",isTemplate:!0},{src:"frameworks/astro/src/components/Footer.astro",dest:"src/components/Footer.astro"},{src:"frameworks/astro/src/components/Sidebar.astro.hbs",dest:"src/components/Sidebar.astro",isTemplate:!0,condition:(f)=>!!f.auth}]}function s1(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/better-auth/nextjs/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/better-auth/nextjs/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/better-auth/nextjs/api/auth/[...all]/route.ts",dest:"src/app/api/auth/[...all]/route.ts"},{src:"auth/better-auth/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/better-auth/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/better-auth/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/better-auth/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/better-auth/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/better-auth/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/better-auth/sveltekit/auth.ts.hbs",dest:"src/lib/server/auth.ts",isTemplate:!0},{src:"auth/better-auth/sveltekit/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/better-auth/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/better-auth/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/better-auth/sveltekit/components/AuthForm.svelte",dest:"src/lib/components/auth/AuthForm.svelte"},{src:"auth/better-auth/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/better-auth/nuxt/server/utils/auth.ts.hbs",dest:"server/utils/auth.ts",isTemplate:!0},{src:"auth/better-auth/nuxt/composables/useAuth.ts",dest:"composables/useAuth.ts"},{src:"auth/better-auth/nuxt/server/api/auth/[...all].ts",dest:"server/api/auth/[...all].ts"},{src:"auth/better-auth/nuxt/middleware/auth.ts",dest:"middleware/auth.ts"},{src:"auth/better-auth/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/better-auth/nuxt/pages/register.vue",dest:"pages/register.vue"},{src:"auth/better-auth/nuxt/components/AuthForm.vue",dest:"components/auth/AuthForm.vue"},{src:"auth/better-auth/nuxt/components/UserButton.vue",dest:"components/auth/UserButton.vue"});else if(q.framework==="remix")_.push({src:"auth/better-auth/remix/app/lib/auth.server.ts.hbs",dest:"app/lib/auth.server.ts",isTemplate:!0},{src:"auth/better-auth/remix/app/lib/auth.client.ts",dest:"app/lib/auth.client.ts"},{src:"auth/better-auth/remix/app/routes/api.auth.$.ts",dest:"app/routes/api.auth.$.ts"},{src:"auth/better-auth/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/better-auth/remix/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/better-auth/remix/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/better-auth/remix/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});else if(q.framework==="astro")_.push({src:"auth/better-auth/astro/src/lib/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/better-auth/astro/src/lib/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/better-auth/astro/src/pages/api/auth/[...all].ts",dest:"src/pages/api/auth/[...all].ts"},{src:"auth/better-auth/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/better-auth/astro/src/pages/register.astro",dest:"src/pages/register.astro"},{src:"auth/better-auth/astro/src/components/auth/AuthForm.tsx",dest:"src/components/auth/AuthForm.tsx"},{src:"auth/better-auth/astro/src/components/auth/UserButton.tsx",dest:"src/components/auth/UserButton.tsx"});else if(q.framework==="solidstart")_.push({src:"auth/better-auth/solidstart/src/lib/auth.server.ts.hbs",dest:"src/lib/auth.server.ts",isTemplate:!0},{src:"auth/better-auth/solidstart/src/lib/auth.client.ts",dest:"src/lib/auth.client.ts"},{src:"auth/better-auth/solidstart/src/routes/api/auth/[...all].ts",dest:"src/routes/api/auth/[...all].ts"},{src:"auth/better-auth/solidstart/src/routes/login.tsx",dest:"src/routes/login.tsx"},{src:"auth/better-auth/solidstart/src/routes/register.tsx",dest:"src/routes/register.tsx"},{src:"auth/better-auth/solidstart/src/components/auth/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/better-auth/solidstart/src/components/auth/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="tanstack-start")_.push({src:"auth/better-auth/tanstack-start/app/lib/auth.server.ts.hbs",dest:"app/lib/auth.server.ts",isTemplate:!0},{src:"auth/better-auth/tanstack-start/app/lib/auth.client.ts",dest:"app/lib/auth.client.ts"},{src:"auth/better-auth/tanstack-start/app/routes/api.auth.$.ts",dest:"app/routes/api.auth.$.ts"},{src:"auth/better-auth/tanstack-start/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/better-auth/tanstack-start/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/better-auth/tanstack-start/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/better-auth/tanstack-start/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});return _}function B1(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/clerk/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/clerk/nextjs/app/(auth)/sign-in/[[...sign-in]]/page.tsx",dest:"src/app/(auth)/sign-in/[[...sign-in]]/page.tsx"},{src:"auth/clerk/nextjs/app/(auth)/sign-up/[[...sign-up]]/page.tsx",dest:"src/app/(auth)/sign-up/[[...sign-up]]/page.tsx"});return _}function U1(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/authjs/nextjs/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/authjs/nextjs/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/authjs/nextjs/api/auth/[...nextauth]/route.ts",dest:"src/app/api/auth/[...nextauth]/route.ts"},{src:"auth/authjs/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/authjs/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/authjs/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/authjs/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/authjs/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/authjs/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/authjs/sveltekit/auth.ts.hbs",dest:"src/lib/server/auth.ts",isTemplate:!0},{src:"auth/authjs/sveltekit/hooks.server.ts",dest:"src/hooks.server.ts"},{src:"auth/authjs/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/authjs/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/authjs/sveltekit/components/AuthForm.svelte",dest:"src/lib/components/auth/AuthForm.svelte"},{src:"auth/authjs/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/authjs/nuxt/server/api/auth/[...].ts",dest:"server/api/auth/[...].ts"},{src:"auth/authjs/nuxt/composables/useAuth.ts",dest:"composables/useAuth.ts"},{src:"auth/authjs/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/authjs/nuxt/pages/register.vue",dest:"pages/register.vue"},{src:"auth/authjs/nuxt/components/AuthForm.vue",dest:"components/auth/AuthForm.vue"},{src:"auth/authjs/nuxt/components/UserButton.vue",dest:"components/auth/UserButton.vue"});else if(q.framework==="remix")_.push({src:"auth/authjs/remix/app/lib/auth.server.ts.hbs",dest:"app/lib/auth.server.ts",isTemplate:!0},{src:"auth/authjs/remix/app/lib/session.server.ts",dest:"app/lib/session.server.ts"},{src:"auth/authjs/remix/app/routes/auth.login.tsx",dest:"app/routes/auth.login.tsx"},{src:"auth/authjs/remix/app/routes/auth.logout.tsx",dest:"app/routes/auth.logout.tsx"},{src:"auth/authjs/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/authjs/remix/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/authjs/remix/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/authjs/remix/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});else if(q.framework==="astro")_.push({src:"auth/authjs/astro/src/lib/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/authjs/astro/auth.config.ts.hbs",dest:"auth.config.ts",isTemplate:!0},{src:"auth/authjs/astro/src/pages/api/auth/[...auth].ts",dest:"src/pages/api/auth/[...auth].ts"},{src:"auth/authjs/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/authjs/astro/src/pages/register.astro",dest:"src/pages/register.astro"},{src:"auth/authjs/astro/src/components/auth/AuthForm.tsx",dest:"src/components/auth/AuthForm.tsx"},{src:"auth/authjs/astro/src/components/auth/UserButton.tsx",dest:"src/components/auth/UserButton.tsx"});else if(q.framework==="solidstart")_.push({src:"auth/authjs/solidstart/src/lib/auth.server.ts.hbs",dest:"src/lib/auth.server.ts",isTemplate:!0},{src:"auth/authjs/solidstart/src/lib/auth.client.ts",dest:"src/lib/auth.client.ts"},{src:"auth/authjs/solidstart/src/routes/login.tsx",dest:"src/routes/login.tsx"},{src:"auth/authjs/solidstart/src/routes/register.tsx",dest:"src/routes/register.tsx"},{src:"auth/authjs/solidstart/src/routes/logout.tsx",dest:"src/routes/logout.tsx"},{src:"auth/authjs/solidstart/src/components/auth/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/authjs/solidstart/src/components/auth/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="tanstack-start")_.push({src:"auth/authjs/tanstack-start/app/lib/auth.server.ts.hbs",dest:"app/lib/auth.server.ts",isTemplate:!0},{src:"auth/authjs/tanstack-start/app/lib/auth.client.ts",dest:"app/lib/auth.client.ts"},{src:"auth/authjs/tanstack-start/app/routes/api.auth.me.ts",dest:"app/routes/api.auth.me.ts"},{src:"auth/authjs/tanstack-start/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/authjs/tanstack-start/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/authjs/tanstack-start/app/routes/logout.tsx",dest:"app/routes/logout.tsx"},{src:"auth/authjs/tanstack-start/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/authjs/tanstack-start/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});return _}function F1(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/auth0/nextjs/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/nextjs/api/auth/[auth0]/route.ts",dest:"src/app/api/auth/[auth0]/route.ts"},{src:"auth/auth0/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/auth0/nextjs/components/auth-button.tsx",dest:"src/components/auth/auth-button.tsx"},{src:"auth/auth0/nextjs/components/user-profile.tsx",dest:"src/components/auth/user-profile.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/auth0/sveltekit/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/sveltekit/hooks.client.ts",dest:"src/hooks.client.ts"},{src:"auth/auth0/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/auth0/sveltekit/routes/(auth)/callback/+page.svelte",dest:"src/routes/(auth)/callback/+page.svelte"},{src:"auth/auth0/sveltekit/components/AuthButton.svelte",dest:"src/lib/components/auth/AuthButton.svelte"},{src:"auth/auth0/sveltekit/components/UserProfile.svelte",dest:"src/lib/components/auth/UserProfile.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/auth0/nuxt/plugins/auth0.ts",dest:"plugins/auth0.ts"},{src:"auth/auth0/nuxt/composables/useAuth0.ts",dest:"composables/useAuth0.ts"},{src:"auth/auth0/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/auth0/nuxt/pages/callback.vue",dest:"pages/callback.vue"},{src:"auth/auth0/nuxt/components/AuthButton.vue",dest:"components/auth/AuthButton.vue"},{src:"auth/auth0/nuxt/components/UserProfile.vue",dest:"components/auth/UserProfile.vue"});else if(q.framework==="remix")_.push({src:"auth/auth0/remix/app/lib/auth0.ts",dest:"app/lib/auth0.ts"},{src:"auth/auth0/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/auth0/remix/app/routes/callback.tsx",dest:"app/routes/callback.tsx"},{src:"auth/auth0/remix/app/routes/logout.tsx",dest:"app/routes/logout.tsx"},{src:"auth/auth0/remix/app/components/auth/auth-button.tsx",dest:"app/components/auth/auth-button.tsx"},{src:"auth/auth0/remix/app/components/auth/user-profile.tsx",dest:"app/components/auth/user-profile.tsx"});else if(q.framework==="astro")_.push({src:"auth/auth0/astro/src/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/auth0/astro/src/pages/callback.astro",dest:"src/pages/callback.astro"},{src:"auth/auth0/astro/src/components/auth/AuthButton.tsx",dest:"src/components/auth/AuthButton.tsx"},{src:"auth/auth0/astro/src/components/auth/UserProfile.tsx",dest:"src/components/auth/UserProfile.tsx"});else if(q.framework==="solidstart")_.push({src:"auth/auth0/solidstart/src/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/solidstart/src/routes/login.tsx",dest:"src/routes/login.tsx"},{src:"auth/auth0/solidstart/src/routes/callback.tsx",dest:"src/routes/callback.tsx"},{src:"auth/auth0/solidstart/src/components/auth/auth-button.tsx",dest:"src/components/auth/auth-button.tsx"},{src:"auth/auth0/solidstart/src/components/auth/user-profile.tsx",dest:"src/components/auth/user-profile.tsx"});else if(q.framework==="tanstack-start")_.push({src:"auth/auth0/tanstack-start/app/lib/auth0.ts",dest:"app/lib/auth0.ts"},{src:"auth/auth0/tanstack-start/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/auth0/tanstack-start/app/routes/callback.tsx",dest:"app/routes/callback.tsx"},{src:"auth/auth0/tanstack-start/app/components/auth/auth-button.tsx",dest:"app/components/auth/auth-button.tsx"});return _}function Q1(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/stripe/nextjs/lib/stripe.ts",dest:"src/lib/stripe.ts"},{src:"payments/stripe/nextjs/lib/stripe-client.ts",dest:"src/lib/stripe-client.ts"},{src:"payments/stripe/nextjs/api/checkout/route.ts.hbs",dest:"src/app/api/checkout/route.ts",isTemplate:!0},{src:"payments/stripe/nextjs/api/webhooks/stripe/route.ts.hbs",dest:"src/app/api/webhooks/stripe/route.ts",isTemplate:!0},{src:"payments/stripe/nextjs/api/portal/route.ts",dest:"src/app/api/portal/route.ts"},{src:"payments/stripe/nextjs/components/pricing-card.tsx.hbs",dest:"src/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/nextjs/components/checkout-button.tsx",dest:"src/components/pricing/checkout-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/stripe/sveltekit/lib/stripe.ts",dest:"src/lib/server/stripe.ts"},{src:"payments/stripe/sveltekit/routes/api/checkout/+server.ts.hbs",dest:"src/routes/api/checkout/+server.ts",isTemplate:!0},{src:"payments/stripe/sveltekit/routes/api/webhooks/stripe/+server.ts.hbs",dest:"src/routes/api/webhooks/stripe/+server.ts",isTemplate:!0},{src:"payments/stripe/sveltekit/routes/api/portal/+server.ts",dest:"src/routes/api/portal/+server.ts"},{src:"payments/stripe/sveltekit/components/PricingCard.svelte.hbs",dest:"src/lib/components/pricing/PricingCard.svelte",isTemplate:!0},{src:"payments/stripe/sveltekit/components/CheckoutButton.svelte",dest:"src/lib/components/pricing/CheckoutButton.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/stripe/nuxt/server/utils/stripe.ts",dest:"server/utils/stripe.ts"},{src:"payments/stripe/nuxt/composables/useStripe.ts",dest:"composables/useStripe.ts"},{src:"payments/stripe/nuxt/server/api/checkout.post.ts.hbs",dest:"server/api/checkout.post.ts",isTemplate:!0},{src:"payments/stripe/nuxt/server/api/webhooks/stripe.post.ts.hbs",dest:"server/api/webhooks/stripe.post.ts",isTemplate:!0},{src:"payments/stripe/nuxt/server/api/portal.post.ts",dest:"server/api/portal.post.ts"},{src:"payments/stripe/nuxt/components/PricingCard.vue.hbs",dest:"components/pricing/PricingCard.vue",isTemplate:!0},{src:"payments/stripe/nuxt/components/CheckoutButton.vue",dest:"components/pricing/CheckoutButton.vue"});else if(q.framework==="remix")_.push({src:"payments/stripe/remix/app/lib/stripe.server.ts",dest:"app/lib/stripe.server.ts"},{src:"payments/stripe/remix/app/routes/api.checkout.ts.hbs",dest:"app/routes/api.checkout.ts",isTemplate:!0},{src:"payments/stripe/remix/app/routes/api.webhooks.stripe.ts.hbs",dest:"app/routes/api.webhooks.stripe.ts",isTemplate:!0},{src:"payments/stripe/remix/app/routes/api.portal.ts",dest:"app/routes/api.portal.ts"},{src:"payments/stripe/remix/app/components/pricing/pricing-card.tsx.hbs",dest:"app/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/remix/app/components/pricing/checkout-button.tsx",dest:"app/components/pricing/checkout-button.tsx"});else if(q.framework==="astro")_.push({src:"payments/stripe/astro/src/lib/stripe.ts",dest:"src/lib/stripe.ts"},{src:"payments/stripe/astro/src/pages/api/checkout.ts.hbs",dest:"src/pages/api/checkout.ts",isTemplate:!0},{src:"payments/stripe/astro/src/pages/api/webhooks/stripe.ts.hbs",dest:"src/pages/api/webhooks/stripe.ts",isTemplate:!0},{src:"payments/stripe/astro/src/pages/api/portal.ts",dest:"src/pages/api/portal.ts"},{src:"payments/stripe/astro/src/components/pricing/PricingCard.tsx.hbs",dest:"src/components/pricing/PricingCard.tsx",isTemplate:!0},{src:"payments/stripe/astro/src/components/pricing/CheckoutButton.tsx",dest:"src/components/pricing/CheckoutButton.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/stripe/solidstart/src/lib/stripe.server.ts",dest:"src/lib/stripe.server.ts"},{src:"payments/stripe/solidstart/src/routes/api/checkout.ts",dest:"src/routes/api/checkout.ts"},{src:"payments/stripe/solidstart/src/routes/api/webhooks/stripe.ts.hbs",dest:"src/routes/api/webhooks/stripe.ts",isTemplate:!0},{src:"payments/stripe/solidstart/src/routes/api/portal.ts",dest:"src/routes/api/portal.ts"},{src:"payments/stripe/solidstart/src/components/pricing/pricing-card.tsx.hbs",dest:"src/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/solidstart/src/components/pricing/checkout-button.tsx",dest:"src/components/pricing/checkout-button.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/stripe/tanstack-start/app/lib/stripe.server.ts",dest:"app/lib/stripe.server.ts"},{src:"payments/stripe/tanstack-start/app/routes/api.checkout.ts",dest:"app/routes/api.checkout.ts"},{src:"payments/stripe/tanstack-start/app/routes/api.webhooks.stripe.ts.hbs",dest:"app/routes/api.webhooks.stripe.ts",isTemplate:!0},{src:"payments/stripe/tanstack-start/app/components/pricing/pricing-card.tsx.hbs",dest:"app/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/tanstack-start/app/components/pricing/checkout-button.tsx",dest:"app/components/pricing/checkout-button.tsx"});return _}function q5(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/paddle/nextjs/lib/paddle.ts",dest:"src/lib/paddle.ts"},{src:"payments/paddle/nextjs/api/webhooks/paddle/route.ts.hbs",dest:"src/app/api/webhooks/paddle/route.ts",isTemplate:!0},{src:"payments/paddle/nextjs/components/paddle-checkout.tsx",dest:"src/components/pricing/paddle-checkout.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/paddle/sveltekit/lib/paddle.ts",dest:"src/lib/server/paddle.ts"},{src:"payments/paddle/sveltekit/routes/api/webhooks/paddle/+server.ts.hbs",dest:"src/routes/api/webhooks/paddle/+server.ts",isTemplate:!0},{src:"payments/paddle/sveltekit/components/PaddleCheckout.svelte",dest:"src/lib/components/pricing/PaddleCheckout.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/paddle/nuxt/server/utils/paddle.ts",dest:"server/utils/paddle.ts"},{src:"payments/paddle/nuxt/composables/usePaddle.ts",dest:"composables/usePaddle.ts"},{src:"payments/paddle/nuxt/server/api/webhooks/paddle.post.ts.hbs",dest:"server/api/webhooks/paddle.post.ts",isTemplate:!0},{src:"payments/paddle/nuxt/components/PaddleCheckout.vue",dest:"components/pricing/PaddleCheckout.vue"});else if(q.framework==="remix")_.push({src:"payments/paddle/remix/app/lib/paddle.server.ts",dest:"app/lib/paddle.server.ts"},{src:"payments/paddle/remix/app/routes/api.webhooks.paddle.ts.hbs",dest:"app/routes/api.webhooks.paddle.ts",isTemplate:!0},{src:"payments/paddle/remix/app/components/pricing/paddle-checkout.tsx",dest:"app/components/pricing/paddle-checkout.tsx"});else if(q.framework==="astro")_.push({src:"payments/paddle/astro/src/lib/paddle.ts",dest:"src/lib/paddle.ts"},{src:"payments/paddle/astro/src/pages/api/webhooks/paddle.ts.hbs",dest:"src/pages/api/webhooks/paddle.ts",isTemplate:!0},{src:"payments/paddle/astro/src/components/pricing/PaddleCheckout.tsx",dest:"src/components/pricing/PaddleCheckout.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/paddle/solidstart/src/lib/paddle.server.ts",dest:"src/lib/paddle.server.ts"},{src:"payments/paddle/solidstart/src/routes/api/webhooks/paddle.ts.hbs",dest:"src/routes/api/webhooks/paddle.ts",isTemplate:!0},{src:"payments/paddle/solidstart/src/components/pricing/paddle-checkout.tsx",dest:"src/components/pricing/paddle-checkout.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/paddle/tanstack-start/app/lib/paddle.server.ts",dest:"app/lib/paddle.server.ts"},{src:"payments/paddle/tanstack-start/app/routes/api.webhooks.paddle.ts.hbs",dest:"app/routes/api.webhooks.paddle.ts",isTemplate:!0},{src:"payments/paddle/tanstack-start/app/components/pricing/paddle-checkout.tsx",dest:"app/components/pricing/paddle-checkout.tsx"});return _}function _5(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/lemonsqueezy/nextjs/lib/lemonsqueezy.ts",dest:"src/lib/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/nextjs/api/webhooks/lemonsqueezy/route.ts.hbs",dest:"src/app/api/webhooks/lemonsqueezy/route.ts",isTemplate:!0},{src:"payments/lemonsqueezy/nextjs/components/lemonsqueezy-checkout.tsx",dest:"src/components/pricing/lemonsqueezy-checkout.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/lemonsqueezy/sveltekit/lib/lemonsqueezy.ts",dest:"src/lib/server/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/sveltekit/routes/api/webhooks/lemonsqueezy/+server.ts.hbs",dest:"src/routes/api/webhooks/lemonsqueezy/+server.ts",isTemplate:!0},{src:"payments/lemonsqueezy/sveltekit/components/LemonSqueezyCheckout.svelte",dest:"src/lib/components/pricing/LemonSqueezyCheckout.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/lemonsqueezy/nuxt/server/utils/lemonsqueezy.ts",dest:"server/utils/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/nuxt/composables/useLemonSqueezy.ts",dest:"composables/useLemonSqueezy.ts"},{src:"payments/lemonsqueezy/nuxt/server/api/webhooks/lemonsqueezy.post.ts.hbs",dest:"server/api/webhooks/lemonsqueezy.post.ts",isTemplate:!0},{src:"payments/lemonsqueezy/nuxt/components/LemonSqueezyCheckout.vue",dest:"components/pricing/LemonSqueezyCheckout.vue"});else if(q.framework==="remix")_.push({src:"payments/lemonsqueezy/remix/app/lib/lemonsqueezy.server.ts",dest:"app/lib/lemonsqueezy.server.ts"},{src:"payments/lemonsqueezy/remix/app/routes/api.webhooks.lemonsqueezy.ts.hbs",dest:"app/routes/api.webhooks.lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/remix/app/components/pricing/lemonsqueezy-checkout.tsx",dest:"app/components/pricing/lemonsqueezy-checkout.tsx"});else if(q.framework==="astro")_.push({src:"payments/lemonsqueezy/astro/src/lib/lemonsqueezy.ts",dest:"src/lib/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/astro/src/pages/api/webhooks/lemonsqueezy.ts.hbs",dest:"src/pages/api/webhooks/lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/astro/src/components/pricing/LemonSqueezyCheckout.tsx",dest:"src/components/pricing/LemonSqueezyCheckout.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/lemonsqueezy/solidstart/src/lib/lemonsqueezy.server.ts",dest:"src/lib/lemonsqueezy.server.ts"},{src:"payments/lemonsqueezy/solidstart/src/routes/api/webhooks/lemonsqueezy.ts.hbs",dest:"src/routes/api/webhooks/lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/solidstart/src/components/pricing/lemonsqueezy-checkout.tsx",dest:"src/components/pricing/lemonsqueezy-checkout.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/lemonsqueezy/tanstack-start/app/lib/lemonsqueezy.server.ts",dest:"app/lib/lemonsqueezy.server.ts"},{src:"payments/lemonsqueezy/tanstack-start/app/routes/api.webhooks.lemonsqueezy.ts.hbs",dest:"app/routes/api.webhooks.lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/tanstack-start/app/components/pricing/lemonsqueezy-checkout.tsx",dest:"app/components/pricing/lemonsqueezy-checkout.tsx"});return _}function CK(q){if(q.isRemix)return"app/lib";return"src/lib/db"}function f5(q){let _=CK(q),f=q.isRemix?"db.server.ts":"index.ts",$=q.isRemix?"db.schema.ts":"schema.ts";return[{src:"database/drizzle/drizzle.config.ts.hbs",dest:"drizzle.config.ts",isTemplate:!0},{src:"database/drizzle/schema.ts.hbs",dest:`${_}/${$}`,isTemplate:!0},{src:"database/drizzle/index.ts.hbs",dest:`${_}/${f}`,isTemplate:!0}]}function $5(q){if(q.isRemix)return"app/lib/db.server.ts";return"src/lib/db/index.ts"}function K5(q){return[{src:"database/prisma/schema.prisma.hbs",dest:"prisma/schema.prisma",isTemplate:!0},{src:"database/prisma/client.ts",dest:$5(q)}]}function P5(q){let _=CK(q),f=q.isRemix?"db.server.ts":"index.ts";return[{src:"database/kysely/db.ts.hbs",dest:`${_}/${f}`,isTemplate:!0},{src:"database/kysely/types.ts.hbs",dest:`${_}/types.ts`,isTemplate:!0},{src:"database/kysely/kysely.config.ts.hbs",dest:"kysely.config.ts",isTemplate:!0},{src:"database/kysely/migrations/001_initial.ts.hbs",dest:`${_}/migrations/001_initial.ts`,isTemplate:!0}]}function j5(q){let _=[{src:"backend/hono/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/hono/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/hono/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/hono/src/middleware/cors.ts",dest:"src/api/middleware/cors.ts"},{src:"backend/hono/src/middleware/logger.ts",dest:"src/api/middleware/logger.ts"},{src:"backend/hono/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/hono/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/hono/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/hono/src/middleware/auth.ts.hbs",dest:"src/api/middleware/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/hono/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}function v5(q){return[{src:"frameworks/solidstart/app.config.ts",dest:"app.config.ts"},{src:"frameworks/solidstart/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/solidstart/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/solidstart/src/app.tsx.hbs",dest:"src/app.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/app.css",dest:"src/app.css"},{src:"frameworks/solidstart/src/entry-client.tsx",dest:"src/entry-client.tsx"},{src:"frameworks/solidstart/src/entry-server.tsx",dest:"src/entry-server.tsx"},{src:"frameworks/solidstart/src/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/solidstart/src/components/ui/Button.tsx",dest:"src/components/ui/Button.tsx"},{src:"frameworks/solidstart/src/components/ui/Card.tsx",dest:"src/components/ui/Card.tsx"},{src:"frameworks/solidstart/src/components/ui/Input.tsx",dest:"src/components/ui/Input.tsx"},{src:"frameworks/solidstart/src/routes/index.tsx.hbs",dest:"src/routes/index.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/routes/pricing.tsx.hbs",dest:"src/routes/pricing.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/routes/dashboard.tsx.hbs",dest:"src/routes/dashboard.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/solidstart/src/routes/dashboard/index.tsx.hbs",dest:"src/routes/dashboard/index.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/solidstart/src/routes/dashboard/settings.tsx",dest:"src/routes/dashboard/settings.tsx",condition:(f)=>!!f.auth},{src:"frameworks/solidstart/src/routes/dashboard/billing.tsx.hbs",dest:"src/routes/dashboard/billing.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/solidstart/src/components/Header.tsx.hbs",dest:"src/components/Header.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/components/Footer.tsx",dest:"src/components/Footer.tsx"},{src:"frameworks/solidstart/src/components/Sidebar.tsx.hbs",dest:"src/components/Sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function w5(q){return[{src:"frameworks/tanstack-start/app.config.ts",dest:"app.config.ts"},{src:"frameworks/tanstack-start/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/tanstack-start/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/tanstack-start/app/client.tsx",dest:"app/client.tsx"},{src:"frameworks/tanstack-start/app/ssr.tsx",dest:"app/ssr.tsx"},{src:"frameworks/tanstack-start/app/router.tsx",dest:"app/router.tsx"},{src:"frameworks/tanstack-start/app/global.css",dest:"app/global.css"},{src:"frameworks/tanstack-start/app/lib/utils.ts",dest:"app/lib/utils.ts"},{src:"frameworks/tanstack-start/app/routes/__root.tsx.hbs",dest:"app/routes/__root.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/routes/index.tsx.hbs",dest:"app/routes/index.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/routes/pricing.tsx.hbs",dest:"app/routes/pricing.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/routes/dashboard.tsx.hbs",dest:"app/routes/dashboard.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/tanstack-start/app/routes/dashboard.index.tsx.hbs",dest:"app/routes/dashboard.index.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/tanstack-start/app/routes/dashboard.settings.tsx",dest:"app/routes/dashboard.settings.tsx",condition:(f)=>!!f.auth},{src:"frameworks/tanstack-start/app/routes/dashboard.billing.tsx.hbs",dest:"app/routes/dashboard.billing.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/tanstack-start/app/components/ui/button.tsx",dest:"app/components/ui/button.tsx"},{src:"frameworks/tanstack-start/app/components/ui/card.tsx",dest:"app/components/ui/card.tsx"},{src:"frameworks/tanstack-start/app/components/ui/input.tsx",dest:"app/components/ui/input.tsx"},{src:"frameworks/tanstack-start/app/components/header.tsx.hbs",dest:"app/components/header.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/components/footer.tsx",dest:"app/components/footer.tsx"},{src:"frameworks/tanstack-start/app/components/sidebar.tsx.hbs",dest:"app/components/sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function m5(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/polar/nextjs/lib/polar.ts",dest:"src/lib/polar.ts"},{src:"payments/polar/nextjs/api/webhooks/polar/route.ts.hbs",dest:"src/app/api/webhooks/polar/route.ts",isTemplate:!0},{src:"payments/polar/nextjs/components/polar-checkout.tsx",dest:"src/components/pricing/polar-checkout.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/polar/sveltekit/lib/polar.ts",dest:"src/lib/server/polar.ts"},{src:"payments/polar/sveltekit/routes/api/webhooks/polar/+server.ts.hbs",dest:"src/routes/api/webhooks/polar/+server.ts",isTemplate:!0},{src:"payments/polar/sveltekit/components/PolarCheckout.svelte",dest:"src/lib/components/pricing/PolarCheckout.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/polar/nuxt/server/utils/polar.ts",dest:"server/utils/polar.ts"},{src:"payments/polar/nuxt/composables/usePolar.ts",dest:"composables/usePolar.ts"},{src:"payments/polar/nuxt/server/api/webhooks/polar.post.ts.hbs",dest:"server/api/webhooks/polar.post.ts",isTemplate:!0},{src:"payments/polar/nuxt/components/PolarCheckout.vue",dest:"components/pricing/PolarCheckout.vue"});else if(q.framework==="remix")_.push({src:"payments/polar/remix/app/lib/polar.server.ts",dest:"app/lib/polar.server.ts"},{src:"payments/polar/remix/app/routes/api.webhooks.polar.ts.hbs",dest:"app/routes/api.webhooks.polar.ts",isTemplate:!0},{src:"payments/polar/remix/app/components/pricing/polar-checkout.tsx",dest:"app/components/pricing/polar-checkout.tsx"});else if(q.framework==="astro")_.push({src:"payments/polar/astro/src/lib/polar.ts",dest:"src/lib/polar.ts"},{src:"payments/polar/astro/src/pages/api/webhooks/polar.ts.hbs",dest:"src/pages/api/webhooks/polar.ts",isTemplate:!0},{src:"payments/polar/astro/src/components/pricing/PolarCheckout.tsx",dest:"src/components/pricing/PolarCheckout.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/polar/solidstart/src/lib/polar.server.ts",dest:"src/lib/polar.server.ts"},{src:"payments/polar/solidstart/src/routes/api/webhooks/polar.ts.hbs",dest:"src/routes/api/webhooks/polar.ts",isTemplate:!0},{src:"payments/polar/solidstart/src/components/pricing/polar-checkout.tsx",dest:"src/components/pricing/polar-checkout.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/polar/tanstack-start/app/lib/polar.server.ts",dest:"app/lib/polar.server.ts"},{src:"payments/polar/tanstack-start/app/routes/api.webhooks.polar.ts.hbs",dest:"app/routes/api.webhooks.polar.ts",isTemplate:!0},{src:"payments/polar/tanstack-start/app/components/pricing/polar-checkout.tsx",dest:"app/components/pricing/polar-checkout.tsx"});return _}function O5(q){return[{src:"database/mongoose/connection.ts.hbs",dest:"src/lib/db/connection.ts",isTemplate:!0},{src:"database/mongoose/index.ts",dest:"src/lib/db/index.ts"},{src:"database/mongoose/models/index.ts",dest:"src/lib/db/models/index.ts"},{src:"database/mongoose/models/user.ts.hbs",dest:"src/lib/db/models/user.ts",isTemplate:!0}]}function r5(q){let _=[{src:"backend/elysia/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/elysia/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/elysia/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/elysia/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/elysia/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/elysia/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/elysia/src/middleware/auth.ts.hbs",dest:"src/api/middleware/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/elysia/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}function T5(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/supabase/nextjs/supabase-client.ts",dest:"src/lib/supabase/client.ts"},{src:"auth/supabase/nextjs/supabase-server.ts",dest:"src/lib/supabase/server.ts"},{src:"auth/supabase/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/supabase/nextjs/app/auth/callback/route.ts",dest:"src/app/auth/callback/route.ts"},{src:"auth/supabase/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/supabase/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/supabase/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/supabase/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/supabase/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/supabase/sveltekit/supabase-client.ts",dest:"src/lib/supabase/client.ts"},{src:"auth/supabase/sveltekit/supabase-server.ts",dest:"src/lib/supabase/server.ts"},{src:"auth/supabase/sveltekit/hooks.server.ts",dest:"src/hooks.server.ts"},{src:"auth/supabase/sveltekit/routes/auth/callback/+server.ts",dest:"src/routes/auth/callback/+server.ts"},{src:"auth/supabase/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/supabase/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/supabase/sveltekit/components/AuthForm.svelte",dest:"src/lib/components/auth/AuthForm.svelte"},{src:"auth/supabase/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/supabase/nuxt/composables/useSupabaseAuth.ts",dest:"composables/useSupabaseAuth.ts"},{src:"auth/supabase/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/supabase/nuxt/pages/register.vue",dest:"pages/register.vue"},{src:"auth/supabase/nuxt/pages/auth/callback.vue",dest:"pages/auth/callback.vue"},{src:"auth/supabase/nuxt/components/AuthForm.vue",dest:"components/auth/AuthForm.vue"},{src:"auth/supabase/nuxt/components/UserButton.vue",dest:"components/auth/UserButton.vue"});else if(q.framework==="remix")_.push({src:"auth/supabase/remix/app/lib/supabase.server.ts",dest:"app/lib/supabase.server.ts"},{src:"auth/supabase/remix/app/lib/supabase.client.ts",dest:"app/lib/supabase.client.ts"},{src:"auth/supabase/remix/app/routes/auth.callback.tsx",dest:"app/routes/auth.callback.tsx"},{src:"auth/supabase/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/supabase/remix/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/supabase/remix/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/supabase/remix/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});else if(q.framework==="astro")_.push({src:"auth/supabase/astro/src/lib/supabase.ts",dest:"src/lib/supabase.ts"},{src:"auth/supabase/astro/src/pages/auth/callback.ts",dest:"src/pages/auth/callback.ts"},{src:"auth/supabase/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/supabase/astro/src/pages/register.astro",dest:"src/pages/register.astro"},{src:"auth/supabase/astro/src/components/auth/AuthForm.tsx",dest:"src/components/auth/AuthForm.tsx"},{src:"auth/supabase/astro/src/components/auth/UserButton.tsx",dest:"src/components/auth/UserButton.tsx"});return _}function Y5(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/lucia/nextjs/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/lucia/nextjs/auth-actions.ts",dest:"src/lib/auth-actions.ts"},{src:"auth/lucia/nextjs/validate-request.ts",dest:"src/lib/validate-request.ts"},{src:"auth/lucia/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/lucia/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/lucia/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/lucia/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/lucia/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/lucia/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/lucia/sveltekit/auth.ts.hbs",dest:"src/lib/server/auth.ts",isTemplate:!0},{src:"auth/lucia/sveltekit/hooks.server.ts",dest:"src/hooks.server.ts"},{src:"auth/lucia/sveltekit/app.d.ts",dest:"src/app.d.ts"},{src:"auth/lucia/sveltekit/routes/(auth)/login/+page.server.ts",dest:"src/routes/(auth)/login/+page.server.ts"},{src:"auth/lucia/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/lucia/sveltekit/routes/(auth)/register/+page.server.ts",dest:"src/routes/(auth)/register/+page.server.ts"},{src:"auth/lucia/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/lucia/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});return _}function k5(q){let _=[{src:"backend/express/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/express/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/express/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/express/src/middleware/error.ts",dest:"src/api/middleware/error.ts"},{src:"backend/express/src/middleware/validate.ts",dest:"src/api/middleware/validate.ts"},{src:"backend/express/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/express/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/express/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/express/src/middleware/auth.ts.hbs",dest:"src/api/middleware/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/express/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}function h5(q){let _=[{src:"backend/fastify/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/fastify/src/plugins/cors.ts",dest:"src/api/plugins/cors.ts"},{src:"backend/fastify/src/plugins/swagger.ts",dest:"src/api/plugins/swagger.ts"},{src:"backend/fastify/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/fastify/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/fastify/src/schemas/common.ts",dest:"src/api/schemas/common.ts"},{src:"backend/fastify/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/fastify/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/fastify/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/fastify/src/plugins/auth.ts.hbs",dest:"src/api/plugins/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/fastify/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}var k={next:"^15.1.0",react:"^19.0.0","react-dom":"^19.0.0",svelte:"^5.0.0","@sveltejs/kit":"^2.15.0","@sveltejs/adapter-auto":"^3.3.0","@sveltejs/adapter-node":"^5.2.0","@sveltejs/vite-plugin-svelte":"^5.0.0",nuxt:"^3.15.0",vue:"^3.5.0","@nuxtjs/tailwindcss":"^6.12.0","@vueuse/nuxt":"^12.0.0","@remix-run/node":"^2.15.0","@remix-run/react":"^2.15.0","@remix-run/serve":"^2.15.0","@remix-run/dev":"^2.15.0",isbot:"^5.1.0",astro:"^5.1.0","@astrojs/node":"^9.0.0","@astrojs/react":"^4.1.0","@astrojs/tailwind":"^6.0.0",vite:"^6.0.0","@solidjs/start":"^1.0.0","@solidjs/router":"^0.15.0","@solidjs/meta":"^0.29.0","solid-js":"^1.9.0",vinxi:"^0.5.0","@tanstack/react-start":"^1.95.0","@tanstack/react-router":"^1.95.0",typescript:"^5.7.0","@types/node":"^22.0.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","drizzle-orm":"^0.38.0","drizzle-kit":"^0.30.0",postgres:"^3.4.0","@prisma/client":"^6.0.0",prisma:"^6.0.0","@libsql/client":"^0.14.0","better-sqlite3":"^11.0.0","@types/better-sqlite3":"^7.6.0",kysely:"^0.27.0",pg:"^8.13.0","@types/pg":"^8.11.0","kysely-ctl":"^0.9.0",mongoose:"^8.9.0","better-auth":"^1.2.0","@better-auth/cli":"^1.2.0","@clerk/nextjs":"^6.0.0",lucia:"^3.2.0",oslo:"^1.2.0","@lucia-auth/adapter-drizzle":"^1.1.0","@lucia-auth/adapter-prisma":"^4.0.0","@oslojs/crypto":"^1.0.0","@oslojs/encoding":"^1.1.0","next-auth":"^5.0.0","@auth/core":"^0.37.0","@auth/sveltekit":"^1.7.0","@auth/drizzle-adapter":"^1.7.0","@sidebase/nuxt-auth":"^0.9.0","remix-auth":"^3.7.0","remix-auth-form":"^1.5.0","auth-astro":"^4.2.0","@auth0/nextjs-auth0":"^3.5.0","@auth0/auth0-vue":"^2.3.0","@auth0/auth0-spa-js":"^2.1.0","@auth0/auth0-react":"^2.2.0","@supabase/supabase-js":"^2.47.0","@supabase/ssr":"^0.5.0","@nuxtjs/supabase":"^1.4.0",stripe:"^17.0.0","@stripe/stripe-js":"^5.0.0","@paddle/paddle-node-sdk":"^1.6.0","@paddle/paddle-js":"^1.3.0","@lemonsqueezy/lemonsqueezy.js":"^3.4.0","@polar-sh/sdk":"^0.16.0",tailwindcss:"^4.0.0","@tailwindcss/vite":"^4.0.0",autoprefixer:"^10.4.0",postcss:"^8.4.0",clsx:"^2.1.0","tailwind-merge":"^2.6.0","lucide-react":"^0.469.0","lucide-svelte":"^0.469.0","lucide-vue-next":"^0.469.0",zod:"^3.24.0",nanoid:"^5.0.0","vite-tsconfig-paths":"^5.1.0",hono:"^4.6.0","@hono/node-server":"^1.13.0","@hono/zod-validator":"^0.4.0",elysia:"^1.2.0","@elysiajs/cors":"^1.1.0","@elysiajs/swagger":"^1.1.0",express:"^5.0.0","@types/express":"^5.0.0",helmet:"^8.0.0",cors:"^2.8.0","@types/cors":"^2.8.0","express-rate-limit":"^7.4.0",fastify:"^5.1.0","@fastify/cors":"^10.0.0","@fastify/helmet":"^12.0.0","@fastify/rate-limit":"^10.0.0","@fastify/swagger":"^9.0.0","@fastify/swagger-ui":"^5.0.0"};function VK(q){switch(q){case"nextjs":return{deps:{next:k.next,react:k.react,"react-dom":k["react-dom"]},devDeps:{typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"next dev --turbopack",build:"next build",start:"next start",typecheck:"tsc --noEmit"}};case"sveltekit":return{deps:{"@sveltejs/kit":k["@sveltejs/kit"],svelte:k.svelte},devDeps:{"@sveltejs/adapter-auto":k["@sveltejs/adapter-auto"],"@sveltejs/vite-plugin-svelte":k["@sveltejs/vite-plugin-svelte"],vite:k.vite,typescript:k.typescript,"@types/node":k["@types/node"]},scripts:{dev:"vite dev",build:"vite build",preview:"vite preview",typecheck:"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"}};case"nuxt":return{deps:{nuxt:k.nuxt,vue:k.vue,"@nuxtjs/tailwindcss":k["@nuxtjs/tailwindcss"],"@vueuse/nuxt":k["@vueuse/nuxt"]},devDeps:{typescript:k.typescript},scripts:{dev:"nuxi dev",build:"nuxi build",preview:"nuxi preview",generate:"nuxi generate",typecheck:"nuxi typecheck"}};case"remix":return{deps:{"@remix-run/node":k["@remix-run/node"],"@remix-run/react":k["@remix-run/react"],"@remix-run/serve":k["@remix-run/serve"],react:k.react,"react-dom":k["react-dom"],isbot:k.isbot},devDeps:{"@remix-run/dev":k["@remix-run/dev"],vite:k.vite,"vite-tsconfig-paths":k["vite-tsconfig-paths"],typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"remix vite:dev",build:"remix vite:build",start:"remix-serve ./build/server/index.js",typecheck:"tsc --noEmit"}};case"astro":return{deps:{astro:k.astro,"@astrojs/node":k["@astrojs/node"],"@astrojs/react":k["@astrojs/react"],react:k.react,"react-dom":k["react-dom"]},devDeps:{typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"astro dev",build:"astro build",preview:"astro preview",typecheck:"astro check && tsc --noEmit"}};case"solidstart":return{deps:{"@solidjs/start":k["@solidjs/start"],"@solidjs/router":k["@solidjs/router"],"@solidjs/meta":k["@solidjs/meta"],"solid-js":k["solid-js"],vinxi:k.vinxi},devDeps:{typescript:k.typescript,"@types/node":k["@types/node"]},scripts:{dev:"vinxi dev",build:"vinxi build",start:"vinxi start",typecheck:"tsc --noEmit"}};case"tanstack-start":return{deps:{"@tanstack/react-start":k["@tanstack/react-start"],"@tanstack/react-router":k["@tanstack/react-router"],react:k.react,"react-dom":k["react-dom"],vinxi:k.vinxi},devDeps:{vite:k.vite,"vite-tsconfig-paths":k["vite-tsconfig-paths"],typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"vinxi dev",build:"vinxi build",start:"vinxi start",typecheck:"tsc --noEmit"}};default:return{deps:{},devDeps:{},scripts:{}}}}function SK(q,_){switch(q){case"better-auth":return{deps:{"better-auth":k["better-auth"]},devDeps:{"@better-auth/cli":k["@better-auth/cli"]}};case"clerk":if(_==="nextjs")return{deps:{"@clerk/nextjs":k["@clerk/nextjs"]},devDeps:{}};return{deps:{},devDeps:{}};case"authjs":if(_==="nextjs")return{deps:{"next-auth":k["next-auth"],"@auth/drizzle-adapter":k["@auth/drizzle-adapter"]},devDeps:{}};else if(_==="sveltekit")return{deps:{"@auth/sveltekit":k["@auth/sveltekit"],"@auth/drizzle-adapter":k["@auth/drizzle-adapter"]},devDeps:{}};else if(_==="nuxt")return{deps:{"@sidebase/nuxt-auth":k["@sidebase/nuxt-auth"]},devDeps:{}};else if(_==="remix")return{deps:{"remix-auth":k["remix-auth"],"remix-auth-form":k["remix-auth-form"]},devDeps:{}};else if(_==="astro")return{deps:{"auth-astro":k["auth-astro"],"@auth/core":k["@auth/core"]},devDeps:{}};return{deps:{},devDeps:{}};case"auth0":if(_==="nextjs")return{deps:{"@auth0/nextjs-auth0":k["@auth0/nextjs-auth0"]},devDeps:{}};else if(_==="nuxt")return{deps:{"@auth0/auth0-vue":k["@auth0/auth0-vue"]},devDeps:{}};else return{deps:{"@auth0/auth0-spa-js":k["@auth0/auth0-spa-js"]},devDeps:{}};case"lucia":return{deps:{lucia:k.lucia,"@oslojs/crypto":k["@oslojs/crypto"],"@oslojs/encoding":k["@oslojs/encoding"]},devDeps:{}};case"supabase":if(_==="nuxt")return{deps:{"@nuxtjs/supabase":k["@nuxtjs/supabase"]},devDeps:{}};return{deps:{"@supabase/supabase-js":k["@supabase/supabase-js"],"@supabase/ssr":k["@supabase/ssr"]},devDeps:{}};default:return{deps:{},devDeps:{}}}}function cK(q){switch(q){case"stripe":return{deps:{stripe:k.stripe,"@stripe/stripe-js":k["@stripe/stripe-js"]},devDeps:{}};case"paddle":return{deps:{"@paddle/paddle-node-sdk":k["@paddle/paddle-node-sdk"],"@paddle/paddle-js":k["@paddle/paddle-js"]},devDeps:{}};case"lemonsqueezy":return{deps:{"@lemonsqueezy/lemonsqueezy.js":k["@lemonsqueezy/lemonsqueezy.js"]},devDeps:{}};case"polar":return{deps:{"@polar-sh/sdk":k["@polar-sh/sdk"]},devDeps:{}};default:return{deps:{},devDeps:{}}}}function NK(q,_){let f=["postgres","neon","supabase"].includes(_),$=["sqlite","turso"].includes(_);if(q==="drizzle"){let P={"drizzle-orm":k["drizzle-orm"]};if(f)P.postgres=k.postgres;else if($)if(_==="turso")P["@libsql/client"]=k["@libsql/client"];else P["better-sqlite3"]=k["better-sqlite3"];return{deps:P,devDeps:{"drizzle-kit":k["drizzle-kit"],...$&&_!=="turso"?{"@types/better-sqlite3":k["@types/better-sqlite3"]}:{}},scripts:{"db:generate":"drizzle-kit generate","db:migrate":"drizzle-kit migrate","db:push":"drizzle-kit push","db:studio":"drizzle-kit studio"}}}if(q==="prisma")return{deps:{"@prisma/client":k["@prisma/client"]},devDeps:{prisma:k.prisma},scripts:{"db:generate":"prisma generate","db:push":"prisma db push","db:migrate":"prisma migrate dev","db:studio":"prisma studio"}};if(q==="kysely"){let P={kysely:k.kysely};if(f)P.pg=k.pg;else if($)if(_==="turso")P["@libsql/client"]=k["@libsql/client"];else P["better-sqlite3"]=k["better-sqlite3"];return{deps:P,devDeps:{"kysely-ctl":k["kysely-ctl"],...f?{"@types/pg":k["@types/pg"]}:{},...$&&_!=="turso"?{"@types/better-sqlite3":k["@types/better-sqlite3"]}:{}},scripts:{"db:migrate":"kysely migrate:latest","db:migrate:down":"kysely migrate:down","db:migrate:make":"kysely migrate:make"}}}if(q==="mongoose")return{deps:{mongoose:k.mongoose},devDeps:{},scripts:{}};return{deps:{},devDeps:{},scripts:{}}}function yK(q){let _=q==="sveltekit"?"lucide-svelte":q==="nuxt"?"lucide-vue-next":"lucide-react";return{deps:{clsx:k.clsx,"tailwind-merge":k["tailwind-merge"],[_]:k[_]},devDeps:{tailwindcss:k.tailwindcss,"@tailwindcss/vite":k["@tailwindcss/vite"]}}}function RK(){return{deps:{zod:k.zod},devDeps:{}}}import{exec as z5}from"child_process";import{promisify as e5}from"util";import{copyFile as H5,access as Jf,constants as Zf}from"fs/promises";import{join as nf}from"path";var l8=e5(z5);async function EK(){try{return await l8("bun --version"),"bun"}catch{}try{return await l8("pnpm --version"),"pnpm"}catch{}return"npm"}async function W5(q,_){let f=_||await EK();try{let $=f==="npm"?"npm install":`${f} install`;return await l8($,{cwd:q,timeout:120000}),{success:!0,message:`Dependencies installed with ${f}`}}catch($){return{success:!1,message:`Failed to install dependencies with ${f}`,error:$}}}async function J5(q){try{try{return await Jf(nf(q,".git"),Zf.F_OK),{success:!0,message:"Git repository already initialized"}}catch{}return await l8("git init",{cwd:q}),await l8("git add -A",{cwd:q}),await l8('git commit -m "Initial commit from create-stacksfinder"',{cwd:q}),{success:!0,message:"Git repository initialized"}}catch(_){return{success:!1,message:"Failed to initialize git",error:_}}}async function Z5(q){let _=nf(q,".env.example"),f=nf(q,".env");try{try{return await Jf(f,Zf.F_OK),{success:!0,message:".env file already exists"}}catch{}try{await Jf(_,Zf.F_OK)}catch{return{success:!1,message:".env.example not found"}}return await H5(_,f),{success:!0,message:"Created .env from .env.example"}}catch($){return{success:!1,message:"Failed to create .env file",error:$}}}async function n5(q,_){if(!_.orm)return{success:!0,message:"No ORM configured, skipping database setup"};let f=await EK(),$=f==="npm"?"npm run":`${f} run`;try{if(_.isDrizzle)await l8(`${$} db:generate`,{cwd:q,timeout:60000});else if(_.isPrisma)await l8(`${$} db:generate`,{cwd:q,timeout:60000});return{success:!0,message:`Database setup completed (${_.orm})`}}catch(P){return{success:!1,message:"Database setup skipped (configure .env first)",error:P}}}async function gK(q,_,f={}){let $=[];if(!f.skipInstall){let P=await W5(q);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"✗"} ${P.message}`)}if(!f.skipEnv){let P=await Z5(q);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"✗"} ${P.message}`)}if(!f.skipGit){let P=await J5(q);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"✗"} ${P.message}`)}if(!f.skipDb&&_.orm){let P=await n5(q,_);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"⚠"} ${P.message}`)}return{results:$,allSuccess:$.every((P)=>P.success)}}var X5=d5(import.meta.url),A5=xK(X5),LK=Wq(A5,"templates");function a5(){if(d8.default.helpers.eq)return;d8.default.registerHelper("eq",(q,_)=>q===_),d8.default.registerHelper("neq",(q,_)=>q!==_),d8.default.registerHelper("or",(...q)=>q.slice(0,-1).some(Boolean)),d8.default.registerHelper("and",(...q)=>q.slice(0,-1).every(Boolean)),d8.default.registerHelper("json",(q)=>JSON.stringify(q,null,2)),d8.default.registerHelper("unless",function(q,_){return!q?_.fn(this):_.inverse(this)})}async function i5(q){try{return await u5(Wq(LK,q)),!0}catch{return!1}}async function t5(q,_,f){if(q.condition&&!q.condition(_))return!0;let $=Wq(LK,q.src),P=Wq(f,q.dest);if(await IK(xK(P),{recursive:!0}),!await i5(q.src))return console.warn(`Template not found: ${q.src}`),!1;try{if(q.isTemplate){let K=await o5($,"utf-8"),m=d8.default.compile(K,{noEscape:!0})(_);await DK(P,m)}else await p5($,P);return!0}catch(K){return console.error(`Error processing ${q.src}:`,K),!1}}function G5(q){let _=VK(q.framework||"nextjs"),f=q.orm?NK(q.orm,q.database||"postgres"):{deps:{},devDeps:{},scripts:{}},$=q.auth?SK(q.auth,q.framework||"nextjs"):{deps:{},devDeps:{}},P=q.payments?cK(q.payments):{deps:{},devDeps:{}},j=yK(q.framework||"nextjs"),K=RK();return{name:q.projectName,version:"0.1.0",private:!0,type:"module",scripts:{..._.scripts,...f.scripts},dependencies:{..._.deps,...f.deps,...$.deps,...P.deps,...j.deps,...K.deps},devDependencies:{..._.devDeps,...f.devDeps,...$.devDeps,...P.devDeps,...j.devDeps,...K.devDeps}}}async function sK(q,_,f,$={},P){a5();let j=Uq(q,_);await IK(f,{recursive:!0}),P?.({phase:"init",current:0,total:0});let K=G5(j);await DK(Wq(f,"package.json"),JSON.stringify(K,null,2)),P?.({phase:"config",file:"package.json",current:1,total:0});let v=MK(j),m=v.length,w=1,r=0,O="";for(let T=0;T<v.length;T++){let h=v[T],z=l5(h.src);if(z!==O)O=z,P?.({phase:z,current:T,total:m});if(await t5(h,j,f))w++,P?.({phase:O,file:h.dest,current:T+1,total:m});else r++}if(!$.skipInstall)P?.({phase:"install",current:m,total:m}),await gK(f,j,{skipInstall:$.skipInstall,skipGit:$.skipGit,verbose:$.verbose});return P?.({phase:"complete",current:m,total:m}),{success:r===0,generated:w,skipped:r,context:j}}function l5(q){if(q.includes("config")||q.includes("tsconfig")||q.includes("vite"))return"config";if(q.includes("auth"))return"auth";if(q.includes("database")||q.includes("drizzle")||q.includes("prisma"))return"database";if(q.includes("payment")||q.includes("stripe")||q.includes("paddle"))return"payments";if(q.includes("component"))return"components";if(q.includes("route")||q.includes("app/"))return"routes";return"files"}async function BK(q,_){let f=`https://stacksfinder.com/api/v1/blueprints/${q}`,$=await fetch(f,{method:"GET",headers:{Authorization:`Bearer ${_}`,"Content-Type":"application/json","User-Agent":"create-stacksfinder/0.1.0"}});if(!$.ok){if($.status===401)throw Error("Invalid API key. Get your key at stacksfinder.com/settings/api-keys");if($.status===403)throw Error("API access requires a Pro or Team subscription. Upgrade at stacksfinder.com/pro");if($.status===404)throw Error(`Blueprint "${q}" not found. Check the ID and try again.`);let P=await $.json().catch(()=>({}));throw Error(P.message||`API error: ${$.status} ${$.statusText}`)}return $.json()}function UK(q){if(q)return q;return process.env.STACKSFINDER_API_KEY}import{existsSync as FK,readFileSync as QK}from"fs";import{join as qP}from"path";var _P=[".stacksfinderrc.json",".stacksfinderrc","stacksfinder.config.json"],e8={projectType:"saas",scale:"mvp",priority:"speed",framework:"nextjs",database:"postgres",orm:"drizzle",auth:"better-auth",payments:null,hosting:"vercel"};async function of(){for(let _ of _P){let f=qP(process.cwd(),_);if(FK(f))try{let $=QK(f,"utf-8");return JSON.parse($)}catch($){return console.warn(`Warning: Failed to parse ${_}`),null}}let q=process.env.HOME||process.env.USERPROFILE;if(q)for(let _ of _P){let f=qP(q,_);if(FK(f))try{let $=QK(f,"utf-8");return JSON.parse($)}catch($){return console.warn(`Warning: Failed to parse ${_} in home directory`),null}}return null}async function b5(){let q=await of();if(!q?.defaults)return{};return{projectType:q.defaults.projectType,scale:q.defaults.scale,priority:q.defaults.priority,framework:q.defaults.framework,database:q.defaults.database,orm:q.defaults.orm,auth:q.defaults.auth,payments:q.defaults.payments}}async function fP(q){let _=await of();if(!_?.presets)return null;return _.presets[q]??null}async function $P(){let q=await of();if(!q?.presets)return[];return Object.keys(q.presets)}async function KP(){let q=await b5();return{...e8,...Object.fromEntries(Object.entries(q).filter(([_,f])=>f!==void 0))}}function PP(q){return{projectType:q.projectType??e8.projectType,scale:q.scale??e8.scale,priority:q.priority??e8.priority,framework:q.framework??e8.framework,database:q.database??e8.database,orm:q.orm??e8.orm,auth:q.auth!==void 0?q.auth:e8.auth,payments:q.payments!==void 0?q.payments:e8.payments,hosting:q.hosting??e8.hosting}}var b=F(P8(),1),M5={remix:{drizzle:"Drizzle's type-safe queries pair perfectly with Remix loaders",prisma:"Prisma's schema-first approach works well with Remix's data loading","better-auth":"Better Auth integrates natively with Remix's session handling",stripe:"Stripe webhooks fit naturally into Remix resource routes",supabase:"Supabase provides both database and auth for rapid Remix development"},nextjs:{drizzle:"Drizzle's edge-ready design complements Next.js middleware",prisma:"Prisma's mature ecosystem integrates seamlessly with Next.js API routes",clerk:"Clerk provides drop-in auth components for Next.js App Router","better-auth":"Better Auth's minimal footprint suits Next.js server components",stripe:"Next.js API routes provide a clean Stripe webhook integration",vercel:"Vercel's zero-config deployment is optimized for Next.js"},sveltekit:{drizzle:"Drizzle's lightweight design matches SvelteKit's performance focus",prisma:"Prisma works well with SvelteKit's server-side data loading","better-auth":"Better Auth's Svelte adapter provides native store integration",stripe:"SvelteKit endpoints handle Stripe webhooks efficiently",cloudflare:"Cloudflare Pages offers excellent SvelteKit adapter support"},nuxt:{drizzle:"Drizzle works well with Nuxt's server routes",prisma:"Prisma integrates with Nuxt's Nitro server","better-auth":"Better Auth provides Vue composables for Nuxt",stripe:"Nuxt server routes handle Stripe integration cleanly"}};function Jq(q,_){return M5[q]?.[_]}function C5(q,_){let f=_.framework;if(!f)return;let $=[];if(_.orm){let P=Jq(f,_.orm);if(P)$.push(P)}if(_.auth){let P=Jq(f,_.auth);if(P)$.push(P)}if(_.payments){let P=Jq(f,_.payments);if(P)$.push(P)}if(_.database){let P=Jq(f,_.database);if(P)$.push(P)}if(_.hosting){let P=Jq(f,_.hosting);if(P)$.push(P)}if($.length>0){console.log(""),console.log(b.default.dim(" Stack synergies detected:"));for(let P of $.slice(0,3))console.log(b.default.dim(` + ${P}`))}}function jP(q,_,f,$){if(console.log(""),console.log(b.default.dim(" ───────────────────────────────────────────────────")),console.log(""),console.log(` ${b.default.bold("Generation complete")}`),console.log(""),console.log(` ${b.default.cyan(String(f))} files generated`),$>0)console.log(b.default.yellow(` ${$} templates not found`));console.log(""),console.log(b.default.dim(" Stack composition:"));let P=_.frameworkEntry?.name||_.framework||"Unknown",j=_.databaseEntry?.name||_.database||"None",K=_.ormEntry?.name||_.orm||"None",v=_.authEntry?.name||_.auth||"None",m=_.paymentsEntry?.name||_.payments||"None";if(console.log(b.default.dim(` Framework: ${P}`)),console.log(b.default.dim(` Database: ${j} + ${K}`)),_.auth)console.log(b.default.dim(` Auth: ${v}`));if(_.payments)console.log(b.default.dim(` Payments: ${m}`));let w=q.stackScore?.grade||"A";console.log(""),console.log(` Overall stack grade: ${b.default.green(`[${w}]`)} ${V5(w)}`)}function V5(q){return{"A+":"Optimal choice for your requirements",A:"Excellent match with proven synergies","A-":"Strong choice with minor trade-offs","B+":"Good fit, some alternatives worth considering",B:"Solid option for your use case","B-":"Adequate, but better options exist",C:"Consider alternatives for better results"}[q]||""}function vP(q,_){console.log(""),console.log(b.default.dim(" ───────────────────────────────────────────────────")),console.log(""),console.log(` ${b.default.bold("Preparing generation...")}`),console.log("");let f=[];if(_.framework)f.push(`${_.frameworkEntry?.name||_.framework} project structure`);if(_.orm)f.push(`${_.ormEntry?.name||_.orm} database layer`);if(_.auth)f.push(`${_.authEntry?.name||_.auth} authentication`);if(_.payments)f.push(`${_.paymentsEntry?.name||_.payments} payment integration`);console.log(b.default.dim(" Generating:"));for(let $ of f)console.log(b.default.dim(` + ${$}`));C5(q,_)}function pf(q,_){if(console.log(""),console.log(b.default.dim(" ───────────────────────────────────────────────────")),console.log(` ${b.default.bold("Seed:")} ${b.default.cyan(q)}`),console.log(b.default.dim(" Reproduce this config: --seed <seed>")),_)console.log(""),console.log(b.default.green(` Saved as "${_}"`)),console.log(b.default.dim(` Use: bun create stacksfinder my-app --seed ${_}`))}import{join as N5}from"path";function S5(){return!!(process.env.STACKSFINDER_TELEMETRY_DISABLED||process.env.DO_NOT_TRACK||process.env.CI)}function Zq(q,_){if(S5())return;let f={v:"0.2.0",action:q,projectType:_?.projectType,scale:_?.scale,ecosystem:_?.ecosystem,priorityCount:_?.priorities?.length,constraintCount:_?.constraints?.length,os:process.platform,ts:Date.now()};fetch("https://stacksfinder.com/api/v1/cli/telemetry",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f),signal:AbortSignal.timeout(3000)}).catch(()=>{})}function wP(q){Zq("generate",q)}function mP(){Zq("error")}import{createHash as c5}from"crypto";var OP=1,_q="SF1-";function rP(q){let _={v:OP,t:q.projectType,s:q.scale};if(q.highPriorities&&q.highPriorities.length>0)_.hp=q.highPriorities;else if(q.priority)_.pr=q.priority;if(q.lowPriorities&&q.lowPriorities.length>0)_.lp=q.lowPriorities;if(q.ecosystem&&q.ecosystem!=="javascript")_.e=q.ecosystem;if(q.constraints&&q.constraints.length>0)_.c=q.constraints;let f=JSON.stringify(_),$=Buffer.from(f).toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"");return _q+$}function uf(q){if(!q.startsWith(_q))throw Error(`Invalid seed format. Seeds must start with "${_q}". Example: SF1-abc123...`);try{let _=q.slice(_q.length).replace(/-/g,"+").replace(/_/g,"/"),f=_+"=".repeat((4-_.length%4)%4),$=Buffer.from(f,"base64").toString("utf-8"),P=JSON.parse($),j=P.v||1;if(j>OP)throw Error(`Seed version ${j} is not supported. Please update create-stacksfinder.`);let K;if(P.t)K={projectType:P.t,scale:P.s,highPriorities:P.hp,lowPriorities:P.lp,priority:P.pr,ecosystem:P.e||"javascript",constraints:P.c||[]};else if(P.e&&P.p)K={projectType:"saas",scale:"mvp",highPriorities:[{pioneer:"speed",sprinter:"speed",guardian:"security",pragmatic:"dx"}[P.p]||"speed"],ecosystem:P.e||"javascript",constraints:P.c||[]};else throw Error("Seed is missing required fields");let v=c5("sha256").update(JSON.stringify(K)).digest("hex").slice(0,8);return{version:j,config:K,hash:v}}catch(_){if(_ instanceof SyntaxError)throw Error("Invalid seed: corrupted data");throw _}}function TP(q){let _=q.trim();if(!_.startsWith(_q))return!1;let f=_.slice(_q.length);return/^[A-Za-z0-9_-]+$/.test(f)&&f.length>0}function YP(){return`${process.env.HOME||process.env.USERPROFILE||process.cwd()}/.stacksfinder-seeds.json`}async function Fq(){let q=await import("fs/promises"),_=YP();try{let f=await q.readFile(_,"utf-8");return JSON.parse(f).seeds||[]}catch{return[]}}async function kP(q,_,f){let $=await import("fs/promises"),P=YP(),j=await Fq(),K=j.findIndex((v)=>v.name===q);if(K>=0)j[K]={name:q,seed:_,createdAt:new Date().toISOString(),description:f};else j.push({name:q,seed:_,createdAt:new Date().toISOString(),description:f});await $.writeFile(P,JSON.stringify({seeds:j},null,2))}async function hP(q){return(await Fq()).find((f)=>f.name===q)||null}var zP="0.5.0";function O8(q,_){let f=q.indexOf(_);return f!==-1&&q[f+1]&&!q[f+1].startsWith("-")?q[f+1]:void 0}var Qq=["saas","web-app","marketplace","api","e-commerce","blog","portfolio"],q_=["mvp","startup","growth","enterprise"],nq=["speed","dx","perf","cost","scale","security"];function __(q,_=2){if(!q)return[];return q.split(",").map((f)=>f.trim()).filter((f)=>nq.includes(f)).slice(0,_)}async function y5(){console.clear(),X6("box");let q=process.argv.slice(2),_=q.find((e)=>!e.startsWith("-")),f=q.includes("--recommend-only")||q.includes("-r"),$=q.includes("--json")||q.includes("-j"),P=q.includes("--expert")||q.includes("-e"),j=q.includes("--version")||q.includes("-v"),K=q.includes("--help")||q.includes("-h"),v=q.includes("--yes")||q.includes("-y"),m=q.includes("--verbose")||q.includes("-V"),w=q.includes("--no-install"),r=q.includes("--no-git"),O=O8(q,"--preset"),T=q.includes("--quick")||q.includes("-q"),h=O8(q,"--type"),z=O8(q,"--scale"),W=O8(q,"--priority"),n=O8(q,"--high-priority"),A=O8(q,"--low-priority"),R=O8(q,"--from-blueprint"),B=O8(q,"--api-key"),M=q.includes("--compare"),_8=O8(q,"--preset1")||"mvp",I=O8(q,"--preset2")||"enterprise",c=O8(q,"--seed"),b8=O8(q,"--save-seed"),X8=q.includes("--list-seeds");if(j){let e=T6();console.log(`create-stacksfinder v${zP}`),console.log(`Scoring data: v${e.scores}`),console.log(`Compatibility matrix: v${e.matrix}`),process.exit(0)}if(K)console.log(`
|
|
151
|
+
${p.default.bold("create-stacksfinder")} v${zP} - Scaffold optimized tech stacks
|
|
152
152
|
|
|
153
|
-
${
|
|
153
|
+
${p.default.bold("USAGE")}
|
|
154
154
|
bun create stacksfinder [project-name] [options]
|
|
155
155
|
|
|
156
|
-
${
|
|
156
|
+
${p.default.bold("INSTANT MODE")}
|
|
157
157
|
-y, --yes Use defaults, generate instantly (SaaS + MVP + speed)
|
|
158
158
|
--preset <name> Use a preset from .stacksfinderrc.json
|
|
159
159
|
--no-install Skip dependency installation
|
|
160
160
|
--no-git Skip git initialization
|
|
161
161
|
-V, --verbose Show each file as it's created
|
|
162
162
|
|
|
163
|
-
${
|
|
163
|
+
${p.default.bold("QUICK MODE")}
|
|
164
164
|
-q, --quick Skip prompts, use CLI flags
|
|
165
165
|
--type <type> Project type: saas, web-app, marketplace, api, e-commerce, blog, portfolio
|
|
166
166
|
--scale <scale> Scale: mvp, startup, growth, enterprise
|
|
@@ -168,55 +168,55 @@ ${u.default.bold("QUICK MODE")}
|
|
|
168
168
|
--low-priority <p1,p2> What can you compromise on (comma-separated, max 2)
|
|
169
169
|
--priority <priority> [Legacy] Single priority (use --high-priority instead)
|
|
170
170
|
|
|
171
|
-
${
|
|
171
|
+
${p.default.bold("SEEDS (Save & Reproduce Configs)")}
|
|
172
172
|
--seed <seed> Generate from a saved seed (e.g., sf_1_abc123...)
|
|
173
173
|
--save-seed <name> Save the current config as a named seed
|
|
174
174
|
--list-seeds List all saved seeds
|
|
175
175
|
|
|
176
|
-
${
|
|
176
|
+
${p.default.bold("ADVANCED")}
|
|
177
177
|
--from-blueprint <id> Generate from saved blueprint (requires API key)
|
|
178
178
|
--api-key <key> API key (or use STACKSFINDER_API_KEY env)
|
|
179
179
|
--compare Compare two preset stacks side-by-side
|
|
180
180
|
--preset1 <name> First preset: mvp, startup, enterprise, agency, ecommerce, api
|
|
181
181
|
--preset2 <name> Second preset (default: enterprise)
|
|
182
182
|
|
|
183
|
-
${
|
|
183
|
+
${p.default.bold("OTHER OPTIONS")}
|
|
184
184
|
-e, --expert Expert mode: configure all 27 constraints
|
|
185
185
|
-r, --recommend-only Only show recommendations, don't generate project
|
|
186
186
|
-j, --json Output recommendation as JSON
|
|
187
187
|
-v, --version Show version
|
|
188
188
|
-h, --help Show this help
|
|
189
189
|
|
|
190
|
-
${
|
|
191
|
-
${
|
|
190
|
+
${p.default.bold("EXAMPLES")}
|
|
191
|
+
${p.default.dim("# Interactive guided wizard (default)")}
|
|
192
192
|
bun create stacksfinder my-app
|
|
193
193
|
|
|
194
|
-
${
|
|
194
|
+
${p.default.dim("# Instant generation with defaults")}
|
|
195
195
|
bun create stacksfinder my-app --yes
|
|
196
196
|
|
|
197
|
-
${
|
|
197
|
+
${p.default.dim("# Custom instant generation")}
|
|
198
198
|
bun create stacksfinder my-app --yes --type marketplace --scale startup
|
|
199
199
|
|
|
200
|
-
${
|
|
200
|
+
${p.default.dim("# Team preset from config file")}
|
|
201
201
|
bun create stacksfinder my-app --preset company-standard
|
|
202
202
|
|
|
203
|
-
${
|
|
203
|
+
${p.default.dim("# Verbose mode (see each file)")}
|
|
204
204
|
bun create stacksfinder my-app --yes --verbose
|
|
205
205
|
|
|
206
|
-
${
|
|
206
|
+
${p.default.dim("# Compare presets")}
|
|
207
207
|
bun create stacksfinder --compare --preset1 mvp --preset2 enterprise
|
|
208
208
|
|
|
209
|
-
${
|
|
209
|
+
${p.default.dim("# From saved blueprint")}
|
|
210
210
|
bun create stacksfinder my-app --from-blueprint abc123 --api-key sk_...
|
|
211
211
|
|
|
212
|
-
${
|
|
212
|
+
${p.default.dim("# Use a seed to reproduce a config")}
|
|
213
213
|
bun create stacksfinder my-app --seed sf_1_eyJwIjoic2FhcyJ9
|
|
214
214
|
|
|
215
|
-
${
|
|
215
|
+
${p.default.dim("# Save your config as a named seed")}
|
|
216
216
|
bun create stacksfinder my-app --yes --save-seed my-favorite-stack
|
|
217
217
|
|
|
218
|
-
${
|
|
219
|
-
Create ${
|
|
218
|
+
${p.default.bold("CONFIG FILE")}
|
|
219
|
+
Create ${p.default.cyan(".stacksfinderrc.json")} for team defaults and presets:
|
|
220
220
|
|
|
221
221
|
{
|
|
222
222
|
"defaults": { "scale": "startup", "priority": "dx" },
|
|
@@ -230,12 +230,12 @@ ${u.default.bold("CONFIG FILE")}
|
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
232
|
|
|
233
|
-
${
|
|
234
|
-
${
|
|
235
|
-
`),process.exit(0);try{if(
|
|
233
|
+
${p.default.bold("LEARN MORE")}
|
|
234
|
+
${p.default.cyan("https://stacksfinder.com")}
|
|
235
|
+
`),process.exit(0);try{if(X8){let o=await Fq();if(o.length===0)y.info("No saved seeds yet."),y.info(p.default.dim("Save a seed with: bun create stacksfinder my-app --yes --save-seed <name>"));else{console.log(""),console.log(p.default.bold(" Saved Seeds:")),console.log("");for(let J of o){let l=uf(J.seed);if(console.log(` ${p.default.cyan(J.name)} - ${l.config.projectType}/${l.config.scale}/${l.config.priority}`),console.log(p.default.dim(` ${J.seed}`)),J.description)console.log(p.default.dim(` ${J.description}`));console.log("")}y.info(p.default.dim("Use a seed: bun create stacksfinder my-app --seed <seed>"))}process.exit(0)}if(M){if(!Vq(_8))C(`Invalid preset "${_8}". Available: ${Cq().join(", ")}`),process.exit(1);if(!Vq(I))C(`Invalid preset "${I}". Available: ${Cq().join(", ")}`),process.exit(1);let o=Mq(_8),J=Mq(I),l={projectName:`compare-${_8}`,projectType:o.projectType,scale:o.scale,ecosystem:"javascript",priorities:o.priorities,constraints:o.constraints||[]},r8={projectName:`compare-${I}`,projectType:J.projectType,scale:J.scale,ecosystem:"javascript",priorities:J.priorities,constraints:J.constraints||[]},K8=Z8();K8.start(`Comparing ${o.name} vs ${J.name}...`);let U=W8(l),H8=W8(r8);K8.stop("Comparison ready!"),d6(U,H8,o,J),Zq("compare",{projectType:`${_8}_vs_${I}`}),process.exit(0)}let e,t,E;if(c){if(!_)C("Seed mode requires a project name: bun create stacksfinder my-app --seed <seed>"),process.exit(1);let o=c;if(!TP(c)){let J=await hP(c);if(J)o=J.seed,y.info(p.default.dim(`Using saved seed: ${J.name}`));else C(`Invalid seed format: "${c}"
|
|
236
236
|
Seeds must start with 'sf_' (e.g., sf_1_abc123...)
|
|
237
|
-
Or use a saved seed name. List with: --list-seeds`),process.exit(1)}try{let J=uf(o);
|
|
237
|
+
Or use a saved seed name. List with: --list-seeds`),process.exit(1)}try{let J=uf(o);E=o;let l=J.config.highPriorities?.length?J.config.highPriorities:J.config.priority?[J.config.priority]:["speed"],r8=J.config.lowPriorities??[];e={projectName:_,projectType:J.config.projectType,scale:J.config.scale,ecosystem:J.config.ecosystem||"javascript",priorities:l,depriorities:r8,constraints:J.config.constraints||[]};let K8=e.priorities.join(", "),U=e.depriorities&&e.depriorities.length>0?` / compromise: ${e.depriorities.join(", ")}`:"";y.info(p.default.dim(`From seed: ${e.projectType} / ${e.scale} / ${K8}${U}`));let H8=Z8();H8.start("Analyzing 50+ technologies..."),t=W8(e),H8.stop("Analysis complete!")}catch(J){C(J instanceof Error?J.message:"Failed to parse seed"),process.exit(1)}}else if(R){let o=UK(B);if(!o)C(`Blueprint mode requires an API key.
|
|
238
238
|
Use --api-key <key> or set STACKSFINDER_API_KEY environment variable.
|
|
239
|
-
Get your key at: stacksfinder.com/settings/api-keys`),process.exit(1);if(!_)C("Blueprint mode requires a project name: bun create stacksfinder my-app --from-blueprint <id>"),process.exit(1);let J=
|
|
240
|
-
Available: ${
|
|
241
|
-
Create presets in .stacksfinderrc.json`),process.exit(1)}else{if(!_)C("Preset mode requires a project name: bun create stacksfinder my-app --preset <name>"),process.exit(1);let
|
|
239
|
+
Get your key at: stacksfinder.com/settings/api-keys`),process.exit(1);if(!_)C("Blueprint mode requires a project name: bun create stacksfinder my-app --from-blueprint <id>"),process.exit(1);let J=Z8();J.start(`Fetching blueprint ${R}...`);try{let l=await BK(R,o);J.stop(`Blueprint "${l.blueprint.name}" loaded!`),t=z6(l.blueprint,_),e=t.context,y.info(p.default.dim(`From blueprint: ${e.projectType} / ${e.scale}`))}catch(l){throw J.stop("Failed to fetch blueprint"),l}}else if(O){let o=await fP(O);if(!o){let l=await $P(),r8=Cq(),K8=[...new Set([...l,...r8])];if(Vq(O)){let U=Mq(O);if(!_)C("Preset mode requires a project name: bun create stacksfinder my-app --preset <name>"),process.exit(1);e={projectName:_,projectType:U.projectType,scale:U.scale,ecosystem:"javascript",priorities:U.priorities,constraints:U.constraints||[]},y.info(p.default.dim(`Using built-in preset: ${U.name}`))}else C(`Preset "${O}" not found.
|
|
240
|
+
Available: ${K8.length>0?K8.join(", "):"none"}
|
|
241
|
+
Create presets in .stacksfinderrc.json`),process.exit(1)}else{if(!_)C("Preset mode requires a project name: bun create stacksfinder my-app --preset <name>"),process.exit(1);let l=PP(o);e={projectName:_,projectType:l.projectType,scale:l.scale,ecosystem:"javascript",priorities:[l.priority],constraints:[]},y.info(p.default.dim(`Using preset: ${o.name}`))}let J=Z8();J.start("Analyzing 50+ technologies..."),t=W8(e),J.stop("Analysis complete!")}else if(v){if(!_)C("Yes mode requires a project name: bun create stacksfinder my-app --yes"),process.exit(1);let o=await KP(),J=h||o.projectType,l=z||o.scale,r8=__(n,2),K8=__(A,2),U=r8.filter((ZP)=>K8.includes(ZP));if(U.length>0)C(`Cannot use same priority as both high and low: ${U.join(", ")}`),process.exit(1);let H8=r8.length?r8:W?[W]:[o.priority],f_=K8;if(h&&!Qq.includes(h))C(`Invalid --type "${h}". Valid: ${Qq.join(", ")}`),process.exit(1);if(z&&!q_.includes(z))C(`Invalid --scale "${z}". Valid: ${q_.join(", ")}`),process.exit(1);if(W&&!nq.includes(W))C(`Invalid --priority "${W}". Valid: ${nq.join(", ")}`),process.exit(1);e={projectName:_,projectType:J,scale:l,ecosystem:"javascript",priorities:H8,depriorities:f_,constraints:[]};let WP=e.priorities.join(", "),JP=e.depriorities&&e.depriorities.length>0?` / compromise: ${e.depriorities.join(", ")}`:"";y.info(p.default.dim(`Yes mode: ${e.projectType} / ${e.scale} / ${WP}${JP}`));let Xf=Z8();Xf.start("Analyzing 50+ technologies..."),t=W8(e),Xf.stop("Analysis complete!")}else if(T){if(!_)C("Quick mode requires a project name: bun create stacksfinder my-app --quick"),process.exit(1);if(h&&!Qq.includes(h))C(`Invalid --type "${h}". Valid: ${Qq.join(", ")}`),process.exit(1);if(z&&!q_.includes(z))C(`Invalid --scale "${z}". Valid: ${q_.join(", ")}`),process.exit(1);let o=__(n,2),J=__(A,2),l=o.filter((f_)=>J.includes(f_));if(l.length>0)C(`Cannot use same priority as both high and low: ${l.join(", ")}`),process.exit(1);if(W&&!nq.includes(W))C(`Invalid --priority "${W}". Valid: ${nq.join(", ")}`),process.exit(1);let r8={projectName:_,projectType:h||"saas",scale:z||"mvp",priority:W,highPriorities:o.length?o:void 0,lowPriorities:J.length?J:void 0};e=W6(r8);let K8=e.priorities.length>0?e.priorities.join(", "):"speed (default)",U=e.depriorities&&e.depriorities.length>0?` / compromise: ${e.depriorities.join(", ")}`:"";y.info(p.default.dim(`Quick mode: ${e.projectType} / ${e.scale} / ${K8}${U}`));let H8=Z8();H8.start("Analyzing 50+ technologies..."),t=W8(e),H8.stop("Analysis complete!")}else{let o=await J6({expertMode:P});if(!o)process.exit(0);if(e=o.context,t=o.stack,_)e.projectName=_}if(Zq("recommend",{projectType:e.projectType,scale:e.scale,ecosystem:e.ecosystem,priorities:e.priorities,constraints:e.constraints}),$)console.log(n6(t)),process.exit(0);if(console.log(""),A_(t),console.log(""),t_(t,"post-recommendation"),f)console.log(""),bq(e),H_(p.default.dim("Generate this stack:")+` bun create stacksfinder ${e.projectName} --yes`),process.exit(0);let A8=!0;if(!v&&!T&&!O){let o=t.categories.map((J)=>({category:J.category,tech:J.recommended.tech.name,grade:J.recommended.grade}));A8=await Z6(o)}if(!A8)v8("Project generation cancelled."),process.exit(0);let k8=N5(process.cwd(),e.projectName),a8=Uq(e.projectName,t);vP(t,a8),console.log("");let x=Z8();x.start("Generating project structure...");let L="",df={init:"Initializing project",config:"Writing configuration files",database:"Setting up database layer",auth:"Configuring authentication",payments:"Integrating payment system",components:"Creating UI components",routes:"Building application routes",install:"Installing dependencies",complete:"Finalizing"},oq=await sK(e.projectName,t,k8,{skipInstall:w,skipGit:r,verbose:m},(o)=>{if(o.phase!==L&&df[o.phase])L=o.phase,x.message(df[o.phase])});if(wP({projectType:e.projectType,scale:e.scale,ecosystem:e.ecosystem??"universal",priorities:e.priorities,constraints:e.constraints}),x.stop(`Generated ${oq.generated} files`),jP(t,oq.context,oq.generated,oq.skipped),console.log(""),a_(e.projectName,k8),bq(e),!E)E=rP({projectType:e.projectType,scale:e.scale,highPriorities:e.priorities,lowPriorities:e.depriorities,ecosystem:e.ecosystem,constraints:e.constraints});let eP=e.priorities.join(", "),HP=e.depriorities&&e.depriorities.length>0?` / ↓${e.depriorities.join(", ")}`:"";if(b8)await kP(b8,E,`${e.projectType} / ${e.scale} / ${eP}${HP}`),pf(E,b8);else pf(E);t_(t,"post-generation",e.projectName),console.log("")}catch(e){mP(),C(e instanceof Error?e.message:"An unexpected error occurred"),A6(e instanceof Error?e.message:"Unknown error"),process.exit(1)}}y5().catch(console.error);
|