create-stacksfinder 0.1.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/README.md +235 -0
- package/dist/index.js +415 -0
- package/package.json +60 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{createRequire as g$}from"node:module";var V$=Object.create;var{getPrototypeOf:C$,defineProperty:bq,getOwnPropertyNames:N$}=Object;var y$=Object.prototype.hasOwnProperty;var E=(q,f,_)=>{_=q!=null?V$(C$(q)):{};let $=f||!q||!q.__esModule?bq(_,"default",{value:q,enumerable:!0}):_;for(let P of N$(q))if(!y$.call($,P))bq($,P,{get:()=>q[P],enumerable:!0});return $};var z=(q,f)=>()=>(f||q((f={exports:{}}).exports,f),f.exports);var Z8=g$(import.meta.url);var of=z((H4,cq)=>{var zf={to(q,f){if(!f)return`\x1B[${q+1}G`;return`\x1B[${f+1};${q+1}H`},move(q,f){let _="";if(q<0)_+=`\x1B[${-q}D`;else if(q>0)_+=`\x1B[${q}C`;if(f<0)_+=`\x1B[${-f}A`;else if(f>0)_+=`\x1B[${f}B`;return _},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"},R$={up:(q=1)=>"\x1B[S".repeat(q),down:(q=1)=>"\x1B[T".repeat(q)},E$={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 f="";for(let _=0;_<q;_++)f+=this.line+(_<q-1?zf.up():"");if(q)f+=zf.left;return f}};cq.exports={cursor:zf,scroll:R$,erase:E$,beep:"\x07"}});var F=z((p4,nf)=>{var E8=process||{},Sq=E8.argv||[],R8=E8.env||{},I$=!(!!R8.NO_COLOR||Sq.includes("--no-color"))&&(!!R8.FORCE_COLOR||Sq.includes("--color")||E8.platform==="win32"||(E8.stdout||{}).isTTY&&R8.TERM!=="dumb"||!!R8.CI),D$=(q,f,_=q)=>($)=>{let P=""+$,j=P.indexOf(f,q.length);return~j?q+x$(P,f,_,j)+f:q+P+f},x$=(q,f,_,$)=>{let P="",j=0;do P+=q.substring(j,$)+_,j=$+f.length,$=q.indexOf(f,j);while(~$);return P+q.substring(j)},Mq=(q=I$)=>{let f=q?D$:()=>String;return{isColorSupported:q,reset:f("\x1B[0m","\x1B[0m"),bold:f("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:f("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:f("\x1B[3m","\x1B[23m"),underline:f("\x1B[4m","\x1B[24m"),inverse:f("\x1B[7m","\x1B[27m"),hidden:f("\x1B[8m","\x1B[28m"),strikethrough:f("\x1B[9m","\x1B[29m"),black:f("\x1B[30m","\x1B[39m"),red:f("\x1B[31m","\x1B[39m"),green:f("\x1B[32m","\x1B[39m"),yellow:f("\x1B[33m","\x1B[39m"),blue:f("\x1B[34m","\x1B[39m"),magenta:f("\x1B[35m","\x1B[39m"),cyan:f("\x1B[36m","\x1B[39m"),white:f("\x1B[37m","\x1B[39m"),gray:f("\x1B[90m","\x1B[39m"),bgBlack:f("\x1B[40m","\x1B[49m"),bgRed:f("\x1B[41m","\x1B[49m"),bgGreen:f("\x1B[42m","\x1B[49m"),bgYellow:f("\x1B[43m","\x1B[49m"),bgBlue:f("\x1B[44m","\x1B[49m"),bgMagenta:f("\x1B[45m","\x1B[49m"),bgCyan:f("\x1B[46m","\x1B[49m"),bgWhite:f("\x1B[47m","\x1B[49m"),blackBright:f("\x1B[90m","\x1B[39m"),redBright:f("\x1B[91m","\x1B[39m"),greenBright:f("\x1B[92m","\x1B[39m"),yellowBright:f("\x1B[93m","\x1B[39m"),blueBright:f("\x1B[94m","\x1B[39m"),magentaBright:f("\x1B[95m","\x1B[39m"),cyanBright:f("\x1B[96m","\x1B[39m"),whiteBright:f("\x1B[97m","\x1B[39m"),bgBlackBright:f("\x1B[100m","\x1B[49m"),bgRedBright:f("\x1B[101m","\x1B[49m"),bgGreenBright:f("\x1B[102m","\x1B[49m"),bgYellowBright:f("\x1B[103m","\x1B[49m"),bgBlueBright:f("\x1B[104m","\x1B[49m"),bgMagentaBright:f("\x1B[105m","\x1B[49m"),bgCyanBright:f("\x1B[106m","\x1B[49m"),bgWhiteBright:f("\x1B[107m","\x1B[49m")}};nf.exports=Mq();nf.exports.createColors=Mq});var G=z((uP)=>{uP.__esModule=!0;uP.extend=X_;uP.indexOf=nP;uP.escapeExpression=HP;uP.isEmpty=pP;uP.createFrame=WP;uP.blockParams=JP;uP.appendContextPath=ZP;var YP={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},kP=/[&<>"'`=]/g,zP=/[&<>"'`=]/;function oP(q){return YP[q]}function X_(q){for(var f=1;f<arguments.length;f++)for(var _ in arguments[f])if(Object.prototype.hasOwnProperty.call(arguments[f],_))q[_]=arguments[f][_];return q}var If=Object.prototype.toString;uP.toString=If;var Ef=function(f){return typeof f==="function"};if(Ef(/x/))uP.isFunction=Ef=function(q){return typeof q==="function"&&If.call(q)==="[object Function]"};uP.isFunction=Ef;var l_=Array.isArray||function(q){return q&&typeof q==="object"?If.call(q)==="[object Array]":!1};uP.isArray=l_;function nP(q,f){for(var _=0,$=q.length;_<$;_++)if(q[_]===f)return _;return-1}function HP(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(!zP.test(q))return q;return q.replace(kP,oP)}function pP(q){if(!q&&q!==0)return!0;else if(l_(q)&&q.length===0)return!0;else return!1}function WP(q){var f=X_({},q);return f._parent=q,f}function JP(q,f){return q.path=f,q}function ZP(q,f){return(q?q+".":"")+f}});var C=z((G_,b_)=>{G_.__esModule=!0;var Df=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function xf(q,f){var _=f&&f.loc,$=void 0,P=void 0,j=void 0,K=void 0;if(_)$=_.start.line,P=_.end.line,j=_.start.column,K=_.end.column,q+=" - "+$+":"+j;var v=Error.prototype.constructor.call(this,q);for(var e=0;e<Df.length;e++)this[Df[e]]=v[Df[e]];if(Error.captureStackTrace)Error.captureStackTrace(this,xf);try{if(_)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(r){}}xf.prototype=Error();G_.default=xf;b_.exports=G_.default});var M_=z((c_,S_)=>{c_.__esModule=!0;var Lf=G();c_.default=function(q){q.registerHelper("blockHelperMissing",function(f,_){var{inverse:$,fn:P}=_;if(f===!0)return P(this);else if(f===!1||f==null)return $(this);else if(Lf.isArray(f))if(f.length>0){if(_.ids)_.ids=[_.name];return q.helpers.each(f,_)}else return $(this);else{if(_.data&&_.ids){var j=Lf.createFrame(_.data);j.contextPath=Lf.appendContextPath(_.data.contextPath,_.name),_={data:j}}return P(f,_)}})};S_.exports=c_.default});var N_=z((V_,C_)=>{V_.__esModule=!0;function yP(q){return q&&q.__esModule?q:{default:q}}var A8=G(),gP=C(),RP=yP(gP);V_.default=function(q){q.registerHelper("each",function(f,_){if(!_)throw new RP.default("Must pass iterator to #each");var{fn:$,inverse:P}=_,j=0,K="",v=void 0,e=void 0;if(_.data&&_.ids)e=A8.appendContextPath(_.data.contextPath,_.ids[0])+".";if(A8.isFunction(f))f=f.call(this);if(_.data)v=A8.createFrame(_.data);function r(k,p,c){if(v){if(v.key=k,v.index=p,v.first=p===0,v.last=!!c,e)v.contextPath=e+k}K=K+$(f[k],{data:v,blockParams:A8.blockParams([f[k],k],[e+k,null])})}if(f&&typeof f==="object")if(A8.isArray(f)){for(var m=f.length;j<m;j++)if(j in f)r(j,j,j===f.length-1)}else if(typeof Symbol==="function"&&f[Symbol.iterator]){var w=[],T=f[Symbol.iterator]();for(var h=T.next();!h.done;h=T.next())w.push(h.value);f=w;for(var m=f.length;j<m;j++)r(j,j,j===f.length-1)}else(function(){var k=void 0;if(Object.keys(f).forEach(function(p){if(k!==void 0)r(k,j-1);k=p,j++}),k!==void 0)r(k,j-1,!0)})();if(j===0)K=P(this);return K})};C_.exports=V_.default});var R_=z((y_,g_)=>{y_.__esModule=!0;function DP(q){return q&&q.__esModule?q:{default:q}}var xP=C(),LP=DP(xP);y_.default=function(q){q.registerHelper("helperMissing",function(){if(arguments.length===1)return;else throw new LP.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})};g_.exports=y_.default});var L_=z((D_,x_)=>{D_.__esModule=!0;function UP(q){return q&&q.__esModule?q:{default:q}}var E_=G(),FP=C(),I_=UP(FP);D_.default=function(q){q.registerHelper("if",function(f,_){if(arguments.length!=2)throw new I_.default("#if requires exactly one argument");if(E_.isFunction(f))f=f.call(this);if(!_.hash.includeZero&&!f||E_.isEmpty(f))return _.inverse(this);else return _.fn(this)}),q.registerHelper("unless",function(f,_){if(arguments.length!=2)throw new I_.default("#unless requires exactly one argument");return q.helpers.if.call(this,f,{fn:_.inverse,inverse:_.fn,hash:_.hash})})};x_.exports=D_.default});var U_=z((s_,B_)=>{s_.__esModule=!0;s_.default=function(q){q.registerHelper("log",function(){var f=[void 0],_=arguments[arguments.length-1];for(var $=0;$<arguments.length-1;$++)f.push(arguments[$]);var P=1;if(_.hash.level!=null)P=_.hash.level;else if(_.data&&_.data.level!=null)P=_.data.level;f[0]=P,q.log.apply(q,f)})};B_.exports=s_.default});var f6=z((F_,Q_)=>{F_.__esModule=!0;F_.default=function(q){q.registerHelper("lookup",function(f,_,$){if(!f)return f;return $.lookupProperty(f,_)})};Q_.exports=F_.default});var $6=z((q6,_6)=>{q6.__esModule=!0;function Pj(q){return q&&q.__esModule?q:{default:q}}var X8=G(),jj=C(),vj=Pj(jj);q6.default=function(q){q.registerHelper("with",function(f,_){if(arguments.length!=2)throw new vj.default("#with requires exactly one argument");if(X8.isFunction(f))f=f.call(this);var $=_.fn;if(!X8.isEmpty(f)){var P=_.data;if(_.data&&_.ids)P=X8.createFrame(_.data),P.contextPath=X8.appendContextPath(_.data.contextPath,_.ids[0]);return $(f,{data:P,blockParams:X8.blockParams([f],[P&&P.contextPath])})}else return _.inverse(this)})};_6.exports=q6.default});var sf=z((tj)=>{tj.__esModule=!0;tj.registerDefaultHelpers=Zj;tj.moveHelperToHooks=uj;function j8(q){return q&&q.__esModule?q:{default:q}}var wj=M_(),mj=j8(wj),Oj=N_(),Tj=j8(Oj),hj=R_(),Yj=j8(hj),kj=L_(),zj=j8(kj),oj=U_(),nj=j8(oj),Hj=f6(),pj=j8(Hj),Wj=$6(),Jj=j8(Wj);function Zj(q){mj.default(q),Tj.default(q),Yj.default(q),zj.default(q),nj.default(q),pj.default(q),Jj.default(q)}function uj(q,f,_){if(q.helpers[f]){if(q.hooks[f]=q.helpers[f],!_)delete q.helpers[f]}}});var j6=z((K6,P6)=>{K6.__esModule=!0;var Aj=G();K6.default=function(q){q.registerDecorator("inline",function(f,_,$,P){var j=f;if(!_.partials)_.partials={},j=function(K,v){var e=$.partials;$.partials=Aj.extend({},e,_.partials);var r=f(K,v);return $.partials=e,r};return _.partials[P.args[0]]=P.fn,j})};P6.exports=K6.default});var v6=z((Mj)=>{Mj.__esModule=!0;Mj.registerDefaultDecorators=Sj;function Gj(q){return q&&q.__esModule?q:{default:q}}var bj=j6(),cj=Gj(bj);function Sj(q){cj.default(q)}});var Bf=z((r6,e6)=>{r6.__esModule=!0;var Nj=G(),Y8={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(f){if(typeof f==="string"){var _=Nj.indexOf(Y8.methodMap,f.toLowerCase());if(_>=0)f=_;else f=parseInt(f,10)}return f},log:function(f){if(f=Y8.lookupLevel(f),typeof console<"u"&&Y8.lookupLevel(Y8.level)<=f){var _=Y8.methodMap[f];if(!console[_])_="log";for(var $=arguments.length,P=Array($>1?$-1:0),j=1;j<$;j++)P[j-1]=arguments[j];console[_].apply(console,P)}}};r6.default=Y8;e6.exports=r6.default});var w6=z((Ij)=>{Ij.__esModule=!0;Ij.createNewLookupObject=Ej;var Rj=G();function Ej(){for(var q=arguments.length,f=Array(q),_=0;_<q;_++)f[_]=arguments[_];return Rj.extend.apply(void 0,[Object.create(null)].concat(f))}});var Uf=z((q9)=>{q9.__esModule=!0;q9.createProtoAccessControl=Uj;q9.resultIsAllowed=Fj;q9.resetLoggedProperties=f9;function Lj(q){return q&&q.__esModule?q:{default:q}}var m6=w6(),sj=Bf(),Bj=Lj(sj),_f=Object.create(null);function Uj(q){var f=Object.create(null);f.constructor=!1,f.__defineGetter__=!1,f.__defineSetter__=!1,f.__lookupGetter__=!1;var _=Object.create(null);return _.__proto__=!1,{properties:{whitelist:m6.createNewLookupObject(_,q.allowedProtoProperties),defaultValue:q.allowProtoPropertiesByDefault},methods:{whitelist:m6.createNewLookupObject(f,q.allowedProtoMethods),defaultValue:q.allowProtoMethodsByDefault}}}function Fj(q,f,_){if(typeof q==="function")return O6(f.methods,_);else return O6(f.properties,_)}function O6(q,f){if(q.whitelist[f]!==void 0)return q.whitelist[f]===!0;if(q.defaultValue!==void 0)return q.defaultValue;return Qj(f),!1}function Qj(q){if(_f[q]!==!0)_f[q]=!0,Bj.default.log("error",'Handlebars: Access has been denied to resolve the property "'+q+`" because it is not an "own property" of its parent.
|
|
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 f9(){Object.keys(_f).forEach(function(q){delete _f[q]})}});var Kf=z((k9)=>{k9.__esModule=!0;k9.HandlebarsEnvironment=fq;function T6(q){return q&&q.__esModule?q:{default:q}}var v8=G(),j9=C(),Ff=T6(j9),v9=sf(),r9=v6(),e9=Bf(),$f=T6(e9),w9=Uf(),m9="4.7.8";k9.VERSION=m9;var O9=8;k9.COMPILER_REVISION=O9;var T9=7;k9.LAST_COMPATIBLE_COMPILER_REVISION=T9;var h9={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"};k9.REVISION_CHANGES=h9;var Qf="[object Object]";function fq(q,f,_){this.helpers=q||{},this.partials=f||{},this.decorators=_||{},v9.registerDefaultHelpers(this),r9.registerDefaultDecorators(this)}fq.prototype={constructor:fq,logger:$f.default,log:$f.default.log,registerHelper:function(f,_){if(v8.toString.call(f)===Qf){if(_)throw new Ff.default("Arg not supported with multiple helpers");v8.extend(this.helpers,f)}else this.helpers[f]=_},unregisterHelper:function(f){delete this.helpers[f]},registerPartial:function(f,_){if(v8.toString.call(f)===Qf)v8.extend(this.partials,f);else{if(typeof _>"u")throw new Ff.default('Attempting to register a partial called "'+f+'" as undefined');this.partials[f]=_}},unregisterPartial:function(f){delete this.partials[f]},registerDecorator:function(f,_){if(v8.toString.call(f)===Qf){if(_)throw new Ff.default("Arg not supported with multiple decorators");v8.extend(this.decorators,f)}else this.decorators[f]=_},unregisterDecorator:function(f){delete this.decorators[f]},resetLoggedPropertyAccesses:function(){w9.resetLoggedProperties()}};var Y9=$f.default.log;k9.log=Y9;k9.createFrame=v8.createFrame;k9.logger=$f.default});var k6=z((h6,Y6)=>{h6.__esModule=!0;function qq(q){this.string=q}qq.prototype.toString=qq.prototype.toHTML=function(){return""+this.string};h6.default=qq;Y6.exports=h6.default});var z6=z((d9)=>{d9.__esModule=!0;d9.wrapHelper=i9;function i9(q,f){if(typeof q!=="function")return q;var _=function(){var P=arguments[arguments.length-1];return arguments[arguments.length-1]=f(P),q.apply(this,arguments)};return _}});var W6=z((E9)=>{E9.__esModule=!0;E9.checkRevision=M9;E9.template=V9;E9.wrapProgram=Pf;E9.resolvePartial=C9;E9.invokePartial=N9;E9.noop=H6;function l9(q){return q&&q.__esModule?q:{default:q}}function G9(q){if(q&&q.__esModule)return q;else{var f={};if(q!=null){for(var _ in q)if(Object.prototype.hasOwnProperty.call(q,_))f[_]=q[_]}return f.default=q,f}}var b9=G(),L=G9(b9),c9=C(),s=l9(c9),B=Kf(),o6=sf(),S9=z6(),n6=Uf();function M9(q){var f=q&&q[0]||1,_=B.COMPILER_REVISION;if(f>=B.LAST_COMPATIBLE_COMPILER_REVISION&&f<=B.COMPILER_REVISION)return;if(f<B.LAST_COMPATIBLE_COMPILER_REVISION){var $=B.REVISION_CHANGES[_],P=B.REVISION_CHANGES[f];throw new s.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 s.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 V9(q,f){if(!f)throw new s.default("No environment passed to template");if(!q||!q.main)throw new s.default("Unknown template object: "+typeof q);q.main.decorator=q.main_d,f.VM.checkRevision(q.compiler);var _=q.compiler&&q.compiler[0]===7;function $(K,v,e){if(e.hash){if(v=L.extend({},v,e.hash),e.ids)e.ids[0]=!0}K=f.VM.resolvePartial.call(this,K,v,e);var r=L.extend({},e,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),m=f.VM.invokePartial.call(this,K,v,r);if(m==null&&f.compile)e.partials[e.name]=f.compile(K,q.compilerOptions,f),m=e.partials[e.name](v,r);if(m!=null){if(e.indent){var w=m.split(`
|
|
5
|
+
`);for(var T=0,h=w.length;T<h;T++){if(!w[T]&&T+1===h)break;w[T]=e.indent+w[T]}m=w.join(`
|
|
6
|
+
`)}return m}else throw new s.default("The partial "+e.name+" could not be compiled when running in runtime-only mode")}var P={strict:function(v,e,r){if(!v||!(e in v))throw new s.default('"'+e+'" not defined in '+v,{loc:r});return P.lookupProperty(v,e)},lookupProperty:function(v,e){var r=v[e];if(r==null)return r;if(Object.prototype.hasOwnProperty.call(v,e))return r;if(n6.resultIsAllowed(r,P.protoAccessControl,e))return r;return},lookup:function(v,e){var r=v.length;for(var m=0;m<r;m++){var w=v[m]&&P.lookupProperty(v[m],e);if(w!=null)return v[m][e]}},lambda:function(v,e){return typeof v==="function"?v.call(e):v},escapeExpression:L.escapeExpression,invokePartial:$,fn:function(v){var e=q[v];return e.decorator=q[v+"_d"],e},programs:[],program:function(v,e,r,m,w){var T=this.programs[v],h=this.fn(v);if(e||w||m||r)T=Pf(this,v,h,e,r,m,w);else if(!T)T=this.programs[v]=Pf(this,v,h);return T},data:function(v,e){while(v&&e--)v=v._parent;return v},mergeIfNeeded:function(v,e){var r=v||e;if(v&&e&&v!==e)r=L.extend({},e,v);return r},nullContext:Object.seal({}),noop:f.VM.noop,compilerInfo:q.compiler};function j(K){var v=arguments.length<=1||arguments[1]===void 0?{}:arguments[1],e=v.data;if(j._setup(v),!v.partial&&q.useData)e=y9(K,e);var r=void 0,m=q.useBlockParams?[]:void 0;if(q.useDepths)if(v.depths)r=K!=v.depths[0]?[K].concat(v.depths):v.depths;else r=[K];function w(T){return""+q.main(P,T,P.helpers,P.partials,e,m,r)}return w=p6(q.main,w,P,v.depths||[],e,m),w(K,v)}return j.isTop=!0,j._setup=function(K){if(!K.partial){var v=L.extend({},f.helpers,K.helpers);if(g9(v,P),P.helpers=v,q.usePartial)P.partials=P.mergeIfNeeded(K.partials,f.partials);if(q.usePartial||q.useDecorators)P.decorators=L.extend({},f.decorators,K.decorators);P.hooks={},P.protoAccessControl=n6.createProtoAccessControl(K);var e=K.allowCallsToHelperMissing||_;o6.moveHelperToHooks(P,"helperMissing",e),o6.moveHelperToHooks(P,"blockHelperMissing",e)}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,e,r){if(q.useBlockParams&&!e)throw new s.default("must pass block params");if(q.useDepths&&!r)throw new s.default("must pass parent depths");return Pf(P,K,q[K],v,0,e,r)},j}function Pf(q,f,_,$,P,j,K){function v(e){var r=arguments.length<=1||arguments[1]===void 0?{}:arguments[1],m=K;if(K&&e!=K[0]&&!(e===q.nullContext&&K[0]===null))m=[e].concat(K);return _(q,e,q.helpers,q.partials,r.data||$,j&&[r.blockParams].concat(j),m)}return v=p6(_,v,q,K,$,j),v.program=f,v.depth=K?K.length:0,v.blockParams=P||0,v}function C9(q,f,_){if(!q)if(_.name==="@partial-block")q=_.data["partial-block"];else q=_.partials[_.name];else if(!q.call&&!_.name)_.name=q,q=_.partials[q];return q}function N9(q,f,_){var $=_.data&&_.data["partial-block"];if(_.partial=!0,_.ids)_.data.contextPath=_.ids[0]||_.data.contextPath;var P=void 0;if(_.fn&&_.fn!==H6)(function(){_.data=B.createFrame(_.data);var j=_.fn;if(P=_.data["partial-block"]=function(v){var e=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];return e.data=B.createFrame(e.data),e.data["partial-block"]=$,j(v,e)},j.partials)_.partials=L.extend({},_.partials,j.partials)})();if(q===void 0&&P)q=P;if(q===void 0)throw new s.default("The partial "+_.name+" could not be found");else if(q instanceof Function)return q(f,_)}function H6(){return""}function y9(q,f){if(!f||!("root"in f))f=f?B.createFrame(f):{},f.root=q;return f}function p6(q,f,_,$,P,j){if(q.decorator){var K={};f=q.decorator(f,K,_,$&&$[0],P,j,$),L.extend(f,K)}return f}function g9(q,f){Object.keys(q).forEach(function(_){var $=q[_];q[_]=R9($,f)})}function R9(q,f){var _=f.lookupProperty;return S9.wrapHelper(q,function($){return L.extend({lookupProperty:_},$)})}});var _q=z((J6,Z6)=>{J6.__esModule=!0;J6.default=function(q){(function(){if(typeof globalThis==="object")return;Object.prototype.__defineGetter__("__magic__",function(){return this}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__})();var f=globalThis.Handlebars;q.noConflict=function(){if(globalThis.Handlebars===q)globalThis.Handlebars=f;return q}};Z6.exports=J6.default});var A6=z((i6,d6)=>{i6.__esModule=!0;function Kq(q){return q&&q.__esModule?q:{default:q}}function Pq(q){if(q&&q.__esModule)return q;else{var f={};if(q!=null){for(var _ in q)if(Object.prototype.hasOwnProperty.call(q,_))f[_]=q[_]}return f.default=q,f}}var f7=Kf(),u6=Pq(f7),q7=k6(),_7=Kq(q7),$7=C(),K7=Kq($7),P7=G(),$q=Pq(P7),j7=W6(),t6=Pq(j7),v7=_q(),r7=Kq(v7);function a6(){var q=new u6.HandlebarsEnvironment;return $q.extend(q,u6),q.SafeString=_7.default,q.Exception=K7.default,q.Utils=$q,q.escapeExpression=$q.escapeExpression,q.VM=t6,q.template=function(f){return t6.template(f,q)},q}var l8=a6();l8.create=a6;r7.default(l8);l8.default=l8;i6.default=l8;d6.exports=i6.default});var jq=z((l6,G6)=>{l6.__esModule=!0;var X6={helpers:{helperExpression:function(f){return f.type==="SubExpression"||(f.type==="MustacheStatement"||f.type==="BlockStatement")&&!!(f.params&&f.params.length||f.hash)},scopedId:function(f){return/^\.|this\b/.test(f.original)},simpleId:function(f){return f.parts.length===1&&!X6.helpers.scopedId(f)&&!f.depth}}};l6.default=X6;G6.exports=l6.default});var S6=z((b6,c6)=>{b6.__esModule=!0;var T7=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,e,r,m){var w=r.length-1;switch(e){case 1:return r[w-1];case 2:this.$=v.prepareProgram(r[w]);break;case 3:this.$=r[w];break;case 4:this.$=r[w];break;case 5:this.$=r[w];break;case 6:this.$=r[w];break;case 7:this.$=r[w];break;case 8:this.$=r[w];break;case 9:this.$={type:"CommentStatement",value:v.stripComment(r[w]),strip:v.stripFlags(r[w],r[w]),loc:v.locInfo(this._$)};break;case 10:this.$={type:"ContentStatement",original:r[w],value:r[w],loc:v.locInfo(this._$)};break;case 11:this.$=v.prepareRawBlock(r[w-2],r[w-1],r[w],this._$);break;case 12:this.$={path:r[w-3],params:r[w-2],hash:r[w-1]};break;case 13:this.$=v.prepareBlock(r[w-3],r[w-2],r[w-1],r[w],!1,this._$);break;case 14:this.$=v.prepareBlock(r[w-3],r[w-2],r[w-1],r[w],!0,this._$);break;case 15:this.$={open:r[w-5],path:r[w-4],params:r[w-3],hash:r[w-2],blockParams:r[w-1],strip:v.stripFlags(r[w-5],r[w])};break;case 16:this.$={path:r[w-4],params:r[w-3],hash:r[w-2],blockParams:r[w-1],strip:v.stripFlags(r[w-5],r[w])};break;case 17:this.$={path:r[w-4],params:r[w-3],hash:r[w-2],blockParams:r[w-1],strip:v.stripFlags(r[w-5],r[w])};break;case 18:this.$={strip:v.stripFlags(r[w-1],r[w-1]),program:r[w]};break;case 19:var T=v.prepareBlock(r[w-2],r[w-1],r[w],r[w],!1,this._$),h=v.prepareProgram([T],r[w-1].loc);h.chained=!0,this.$={strip:r[w-2].strip,program:h,chain:!0};break;case 20:this.$=r[w];break;case 21:this.$={path:r[w-1],strip:v.stripFlags(r[w-2],r[w])};break;case 22:this.$=v.prepareMustache(r[w-3],r[w-2],r[w-1],r[w-4],v.stripFlags(r[w-4],r[w]),this._$);break;case 23:this.$=v.prepareMustache(r[w-3],r[w-2],r[w-1],r[w-4],v.stripFlags(r[w-4],r[w]),this._$);break;case 24:this.$={type:"PartialStatement",name:r[w-3],params:r[w-2],hash:r[w-1],indent:"",strip:v.stripFlags(r[w-4],r[w]),loc:v.locInfo(this._$)};break;case 25:this.$=v.preparePartialBlock(r[w-2],r[w-1],r[w],this._$);break;case 26:this.$={path:r[w-3],params:r[w-2],hash:r[w-1],strip:v.stripFlags(r[w-4],r[w])};break;case 27:this.$=r[w];break;case 28:this.$=r[w];break;case 29:this.$={type:"SubExpression",path:r[w-3],params:r[w-2],hash:r[w-1],loc:v.locInfo(this._$)};break;case 30:this.$={type:"Hash",pairs:r[w],loc:v.locInfo(this._$)};break;case 31:this.$={type:"HashPair",key:v.id(r[w-2]),value:r[w],loc:v.locInfo(this._$)};break;case 32:this.$=v.id(r[w-1]);break;case 33:this.$=r[w];break;case 34:this.$=r[w];break;case 35:this.$={type:"StringLiteral",value:r[w],original:r[w],loc:v.locInfo(this._$)};break;case 36:this.$={type:"NumberLiteral",value:Number(r[w]),original:Number(r[w]),loc:v.locInfo(this._$)};break;case 37:this.$={type:"BooleanLiteral",value:r[w]==="true",original:r[w]==="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.$=r[w];break;case 41:this.$=r[w];break;case 42:this.$=v.preparePath(!0,r[w],this._$);break;case 43:this.$=v.preparePath(!1,r[w],this._$);break;case 44:r[w-2].push({part:v.id(r[w]),original:r[w],separator:r[w-1]}),this.$=r[w-2];break;case 45:this.$=[{part:v.id(r[w]),original:r[w]}];break;case 46:this.$=[];break;case 47:r[w-1].push(r[w]);break;case 48:this.$=[];break;case 49:r[w-1].push(r[w]);break;case 50:this.$=[];break;case 51:r[w-1].push(r[w]);break;case 58:this.$=[];break;case 59:r[w-1].push(r[w]);break;case 64:this.$=[];break;case 65:r[w-1].push(r[w]);break;case 70:this.$=[];break;case 71:r[w-1].push(r[w]);break;case 78:this.$=[];break;case 79:r[w-1].push(r[w]);break;case 82:this.$=[];break;case 83:r[w-1].push(r[w]);break;case 86:this.$=[];break;case 87:r[w-1].push(r[w]);break;case 90:this.$=[];break;case 91:r[w-1].push(r[w]);break;case 94:this.$=[];break;case 95:r[w-1].push(r[w]);break;case 98:this.$=[r[w]];break;case 99:r[w-1].push(r[w]);break;case 100:this.$=[r[w]];break;case 101:r[w-1].push(r[w]);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],e=[],r=this.table,m="",w=0,T=0,h=0,k=2,p=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 c=this.lexer.yylloc;e.push(c);var a=this.lexer.options&&this.lexer.options.ranges;if(typeof this.yy.parseError==="function")this.parseError=this.yy.parseError;function K8(x){K.length=K.length-2*x,v.length=v.length-x,e.length=e.length-x}function N8(){var x=j.lexer.lex()||1;if(typeof x!=="number")x=j.symbols_[x]||x;return x}var l,hf,P8,S,z4,Yf,O8={},y8,D,Gq,g8;while(!0){if(P8=K[K.length-1],this.defaultActions[P8])S=this.defaultActions[P8];else{if(l===null||typeof l>"u")l=N8();S=r[P8]&&r[P8][l]}if(typeof S>"u"||!S.length||!S[0]){var kf="";if(!h){g8=[];for(y8 in r[P8])if(this.terminals_[y8]&&y8>2)g8.push("'"+this.terminals_[y8]+"'");if(this.lexer.showPosition)kf="Parse error on line "+(w+1)+`:
|
|
7
|
+
`+this.lexer.showPosition()+`
|
|
8
|
+
Expecting `+g8.join(", ")+", got '"+(this.terminals_[l]||l)+"'";else kf="Parse error on line "+(w+1)+": Unexpected "+(l==1?"end of input":"'"+(this.terminals_[l]||l)+"'");this.parseError(kf,{text:this.lexer.match,token:this.terminals_[l]||l,line:this.lexer.yylineno,loc:c,expected:g8})}}if(S[0]instanceof Array&&S.length>1)throw Error("Parse Error: multiple actions possible at state: "+P8+", token: "+l);switch(S[0]){case 1:if(K.push(l),v.push(this.lexer.yytext),e.push(this.lexer.yylloc),K.push(S[1]),l=null,!hf){if(T=this.lexer.yyleng,m=this.lexer.yytext,w=this.lexer.yylineno,c=this.lexer.yylloc,h>0)h--}else l=hf,hf=null;break;case 2:if(D=this.productions_[S[1]][1],O8.$=v[v.length-D],O8._$={first_line:e[e.length-(D||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(D||1)].first_column,last_column:e[e.length-1].last_column},a)O8._$.range=[e[e.length-(D||1)].range[0],e[e.length-1].range[1]];if(Yf=this.performAction.call(O8,m,T,w,this.yy,S[1],v,e),typeof Yf<"u")return Yf;if(D)K=K.slice(0,-1*D*2),v=v.slice(0,-1*D),e=e.slice(0,-1*D);K.push(this.productions_[S[1]][0]),v.push(O8.$),e.push(O8._$),Gq=r[K[K.length-2]][K[K.length-1]],K.push(Gq);break;case 3:return!0}}return!0}},f=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 e=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 r=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===e.length?this.yylloc.first_column:0)+e[e.length-v.length].length-v[0].length:this.yylloc.first_column-K},this.options.ranges)this.yylloc.range=[r[0],r[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,e,r,m;if(!this._more)this.yytext="",this.match="";var w=this._currentRules();for(var T=0;T<w.length;T++)if(v=this._input.match(this.rules[w[T]]),v&&(!K||v[0].length>K[0].length)){if(K=v,e=T,!this.options.flex)break}if(K){if(m=K[0].match(/(?:\r\n?|\n).*/g),m)this.yylineno+=m.length;if(this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:m?m[m.length-1].length-m[m.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,w[e],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,e){function r(w,T){return K.yytext=K.yytext.substring(w,K.yyleng-T+w)}var m=e;switch(v){case 0:if(K.yytext.slice(-2)==="\\\\")r(0,1),this.begin("mu");else if(K.yytext.slice(-1)==="\\")r(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 r(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=r(1,2).replace(/\\"/g,'"'),80;break;case 32:return K.yytext=r(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=f;function _(){this.yy={}}return _.prototype=q,q.Parser=_,new _}();b6.default=T7;c6.exports=b6.default});var rf=z((C6,N6)=>{C6.__esModule=!0;function k7(q){return q&&q.__esModule?q:{default:q}}var z7=C(),vq=k7(z7);function jf(){this.parents=[]}jf.prototype={constructor:jf,mutating:!1,acceptKey:function(f,_){var $=this.accept(f[_]);if(this.mutating){if($&&!jf.prototype[$.type])throw new vq.default('Unexpected node type "'+$.type+'" found when accepting '+_+" on "+f.type);f[_]=$}},acceptRequired:function(f,_){if(this.acceptKey(f,_),!f[_])throw new vq.default(f.type+" requires "+_)},acceptArray:function(f){for(var _=0,$=f.length;_<$;_++)if(this.acceptKey(f,_),!f[_])f.splice(_,1),_--,$--},accept:function(f){if(!f)return;if(!this[f.type])throw new vq.default("Unknown type: "+f.type,f);if(this.current)this.parents.unshift(this.current);this.current=f;var _=this[f.type](f);if(this.current=this.parents.shift(),!this.mutating||_)return _;else if(_!==!1)return f},Program:function(f){this.acceptArray(f.body)},MustacheStatement:vf,Decorator:vf,BlockStatement:M6,DecoratorBlock:M6,PartialStatement:V6,PartialBlockStatement:function(f){V6.call(this,f),this.acceptKey(f,"program")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:vf,PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(f){this.acceptArray(f.pairs)},HashPair:function(f){this.acceptRequired(f,"value")}};function vf(q){this.acceptRequired(q,"path"),this.acceptArray(q.params),this.acceptKey(q,"hash")}function M6(q){vf.call(this,q),this.acceptKey(q,"program"),this.acceptKey(q,"inverse")}function V6(q){this.acceptRequired(q,"name"),this.acceptArray(q.params),this.acceptKey(q,"hash")}C6.default=jf;N6.exports=C6.default});var R6=z((y6,g6)=>{y6.__esModule=!0;function H7(q){return q&&q.__esModule?q:{default:q}}var p7=rf(),W7=H7(p7);function I(){var q=arguments.length<=0||arguments[0]===void 0?{}:arguments[0];this.options=q}I.prototype=new W7.default;I.prototype.Program=function(q){var f=!this.options.ignoreStandalone,_=!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 e=rq($,P,_),r=eq($,P,_),m=v.openStandalone&&e,w=v.closeStandalone&&r,T=v.inlineStandalone&&e&&r;if(v.close)r8($,P,!0);if(v.open)_8($,P,!0);if(f&&T){if(r8($,P),_8($,P)){if(K.type==="PartialStatement")K.indent=/([ \t]+$)/.exec($[P-1].original)[1]}}if(f&&m)r8((K.program||K.inverse).body),_8($,P);if(f&&w)r8($,P),_8((K.inverse||K.program).body)}return q};I.prototype.BlockStatement=I.prototype.DecoratorBlock=I.prototype.PartialBlockStatement=function(q){this.accept(q.program),this.accept(q.inverse);var f=q.program||q.inverse,_=q.program&&q.inverse,$=_,P=_;if(_&&_.chained){$=_.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:eq(f.body),closeStandalone:rq(($||f).body)};if(q.openStrip.close)r8(f.body,null,!0);if(_){var K=q.inverseStrip;if(K.open)_8(f.body,null,!0);if(K.close)r8($.body,null,!0);if(q.closeStrip.open)_8(P.body,null,!0);if(!this.options.ignoreStandalone&&rq(f.body)&&eq($.body))_8(f.body),r8($.body)}else if(q.closeStrip.open)_8(f.body,null,!0);return j};I.prototype.Decorator=I.prototype.MustacheStatement=function(q){return q.strip};I.prototype.PartialStatement=I.prototype.CommentStatement=function(q){var f=q.strip||{};return{inlineStandalone:!0,open:f.open,close:f.close}};function rq(q,f,_){if(f===void 0)f=q.length;var $=q[f-1],P=q[f-2];if(!$)return _;if($.type==="ContentStatement")return(P||!_?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test($.original)}function eq(q,f,_){if(f===void 0)f=-1;var $=q[f+1],P=q[f+2];if(!$)return _;if($.type==="ContentStatement")return(P||!_?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test($.original)}function r8(q,f,_){var $=q[f==null?0:f+1];if(!$||$.type!=="ContentStatement"||!_&&$.rightStripped)return;var P=$.value;$.value=$.value.replace(_?/^\s+/:/^[ \t]*\r?\n?/,""),$.rightStripped=$.value!==P}function _8(q,f,_){var $=q[f==null?q.length-1:f-1];if(!$||$.type!=="ContentStatement"||!_&&$.leftStripped)return;var P=$.value;return $.value=$.value.replace(_?/\s+$/:/[ \t]+$/,""),$.leftStripped=$.value!==P,$.leftStripped}y6.default=I;g6.exports=y6.default});var E6=z((M7)=>{M7.__esModule=!0;M7.SourceLocation=a7;M7.id=i7;M7.stripFlags=d7;M7.stripComment=A7;M7.preparePath=X7;M7.prepareMustache=l7;M7.prepareRawBlock=G7;M7.prepareBlock=b7;M7.prepareProgram=c7;M7.preparePartialBlock=S7;function u7(q){return q&&q.__esModule?q:{default:q}}var t7=C(),wq=u7(t7);function mq(q,f){if(f=f.path?f.path.original:f,q.path.original!==f){var _={loc:q.path.loc};throw new wq.default(q.path.original+" doesn't match "+f,_)}}function a7(q,f){this.source=q,this.start={line:f.first_line,column:f.first_column},this.end={line:f.last_line,column:f.last_column}}function i7(q){if(/^\[.*\]$/.test(q))return q.substring(1,q.length-1);else return q}function d7(q,f){return{open:q.charAt(2)==="~",close:f.charAt(f.length-3)==="~"}}function A7(q){return q.replace(/^\{\{~?!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function X7(q,f,_){_=this.locInfo(_);var $=q?"@":"",P=[],j=0;for(var K=0,v=f.length;K<v;K++){var e=f[K].part,r=f[K].original!==e;if($+=(f[K].separator||"")+e,!r&&(e===".."||e==="."||e==="this")){if(P.length>0)throw new wq.default("Invalid path: "+$,{loc:_});else if(e==="..")j++}else P.push(e)}return{type:"PathExpression",data:q,depth:j,parts:P,original:$,loc:_}}function l7(q,f,_,$,P,j){var K=$.charAt(3)||$.charAt(2),v=K!=="{"&&K!=="&",e=/\*/.test($);return{type:e?"Decorator":"MustacheStatement",path:q,params:f,hash:_,escaped:v,strip:P,loc:this.locInfo(j)}}function G7(q,f,_,$){mq(q,_),$=this.locInfo($);var P={type:"Program",body:f,strip:{},loc:$};return{type:"BlockStatement",path:q.path,params:q.params,hash:q.hash,program:P,openStrip:{},inverseStrip:{},closeStrip:{},loc:$}}function b7(q,f,_,$,P,j){if($&&$.path)mq(q,$);var K=/\*/.test(q.open);f.blockParams=q.blockParams;var v=void 0,e=void 0;if(_){if(K)throw new wq.default("Unexpected inverse block on decorator",_);if(_.chain)_.program.body[0].closeStrip=$.strip;e=_.strip,v=_.program}if(P)P=v,v=f,f=P;return{type:K?"DecoratorBlock":"BlockStatement",path:q.path,params:q.params,hash:q.hash,program:f,inverse:v,openStrip:q.strip,inverseStrip:e,closeStrip:$&&$.strip,loc:this.locInfo(j)}}function c7(q,f){if(!f&&q.length){var _=q[0].loc,$=q[q.length-1].loc;if(_&&$)f={source:_.source,start:{line:_.start.line,column:_.start.column},end:{line:$.end.line,column:$.end.column}}}return{type:"Program",body:q,strip:{},loc:f}}function S7(q,f,_,$){return mq(q,_),{type:"PartialBlockStatement",name:q.path,params:q.params,hash:q.hash,program:f,openStrip:q.strip,closeStrip:_&&_.strip,loc:this.locInfo($)}}});var x6=z(($3)=>{$3.__esModule=!0;$3.parseWithoutProcessing=D6;$3.parse=_3;function s7(q){if(q&&q.__esModule)return q;else{var f={};if(q!=null){for(var _ in q)if(Object.prototype.hasOwnProperty.call(q,_))f[_]=q[_]}return f.default=q,f}}function I6(q){return q&&q.__esModule?q:{default:q}}var B7=S6(),Oq=I6(B7),U7=R6(),F7=I6(U7),Q7=E6(),f3=s7(Q7),q3=G();$3.parser=Oq.default;var ef={};q3.extend(ef,f3);function D6(q,f){if(q.type==="Program")return q;Oq.default.yy=ef,ef.locInfo=function($){return new ef.SourceLocation(f&&f.srcName,$)};var _=Oq.default.parse(q);return _}function _3(q,f){var _=D6(q,f),$=new F7.default(f);return $.accept(_)}});var U6=z((T3)=>{T3.__esModule=!0;T3.Compiler=Tq;T3.precompile=m3;T3.compile=O3;function s6(q){return q&&q.__esModule?q:{default:q}}var r3=C(),b8=s6(r3),c8=G(),e3=jq(),G8=s6(e3),w3=[].slice;function Tq(){}Tq.prototype={compiler:Tq,equals:function(f){var _=this.opcodes.length;if(f.opcodes.length!==_)return!1;for(var $=0;$<_;$++){var P=this.opcodes[$],j=f.opcodes[$];if(P.opcode!==j.opcode||!B6(P.args,j.args))return!1}_=this.children.length;for(var $=0;$<_;$++)if(!this.children[$].equals(f.children[$]))return!1;return!0},guid:0,compile:function(f,_){return this.sourceNode=[],this.opcodes=[],this.children=[],this.options=_,this.stringParams=_.stringParams,this.trackIds=_.trackIds,_.blockParams=_.blockParams||[],_.knownHelpers=c8.extend(Object.create(null),{helperMissing:!0,blockHelperMissing:!0,each:!0,if:!0,unless:!0,with:!0,log:!0,lookup:!0},_.knownHelpers),this.accept(f)},compileProgram:function(f){var _=new this.compiler,$=_.compile(f,this.options),P=this.guid++;return this.usePartial=this.usePartial||$.usePartial,this.children[P]=$,this.useDepths=this.useDepths||$.useDepths,P},accept:function(f){if(!this[f.type])throw new b8.default("Unknown type: "+f.type,f);this.sourceNode.unshift(f);var _=this[f.type](f);return this.sourceNode.shift(),_},Program:function(f){this.options.blockParams.unshift(f.blockParams);var _=f.body,$=_.length;for(var P=0;P<$;P++)this.accept(_[P]);return this.options.blockParams.shift(),this.isSimple=$===1,this.blockParams=f.blockParams?f.blockParams.length:0,this},BlockStatement:function(f){L6(f);var{program:_,inverse:$}=f;_=_&&this.compileProgram(_),$=$&&this.compileProgram($);var P=this.classifySexpr(f);if(P==="helper")this.helperSexpr(f,_,$);else if(P==="simple")this.simpleSexpr(f),this.opcode("pushProgram",_),this.opcode("pushProgram",$),this.opcode("emptyHash"),this.opcode("blockValue",f.path.original);else this.ambiguousSexpr(f,_,$),this.opcode("pushProgram",_),this.opcode("pushProgram",$),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue");this.opcode("append")},DecoratorBlock:function(f){var _=f.program&&this.compileProgram(f.program),$=this.setupFullMustacheParams(f,_,void 0),P=f.path;this.useDecorators=!0,this.opcode("registerDecorator",$.length,P.original)},PartialStatement:function(f){this.usePartial=!0;var _=f.program;if(_)_=this.compileProgram(f.program);var $=f.params;if($.length>1)throw new b8.default("Unsupported number of partial arguments: "+$.length,f);else if(!$.length)if(this.options.explicitPartialContext)this.opcode("pushLiteral","undefined");else $.push({type:"PathExpression",parts:[],depth:0});var P=f.name.original,j=f.name.type==="SubExpression";if(j)this.accept(f.name);this.setupFullMustacheParams(f,_,void 0,!0);var K=f.indent||"";if(this.options.preventIndent&&K)this.opcode("appendContent",K),K="";this.opcode("invokePartial",j,P,K),this.opcode("append")},PartialBlockStatement:function(f){this.PartialStatement(f)},MustacheStatement:function(f){if(this.SubExpression(f),f.escaped&&!this.options.noEscape)this.opcode("appendEscaped");else this.opcode("append")},Decorator:function(f){this.DecoratorBlock(f)},ContentStatement:function(f){if(f.value)this.opcode("appendContent",f.value)},CommentStatement:function(){},SubExpression:function(f){L6(f);var _=this.classifySexpr(f);if(_==="simple")this.simpleSexpr(f);else if(_==="helper")this.helperSexpr(f);else this.ambiguousSexpr(f)},ambiguousSexpr:function(f,_,$){var P=f.path,j=P.parts[0],K=_!=null||$!=null;this.opcode("getContext",P.depth),this.opcode("pushProgram",_),this.opcode("pushProgram",$),P.strict=!0,this.accept(P),this.opcode("invokeAmbiguous",j,K)},simpleSexpr:function(f){var _=f.path;_.strict=!0,this.accept(_),this.opcode("resolvePossibleLambda")},helperSexpr:function(f,_,$){var P=this.setupFullMustacheParams(f,_,$),j=f.path,K=j.parts[0];if(this.options.knownHelpers[K])this.opcode("invokeKnownHelper",P.length,K);else if(this.options.knownHelpersOnly)throw new b8.default("You specified knownHelpersOnly, but used the unknown helper "+K,f);else j.strict=!0,j.falsy=!0,this.accept(j),this.opcode("invokeHelper",P.length,j.original,G8.default.helpers.simpleId(j))},PathExpression:function(f){this.addDepth(f.depth),this.opcode("getContext",f.depth);var _=f.parts[0],$=G8.default.helpers.scopedId(f),P=!f.depth&&!$&&this.blockParamIndex(_);if(P)this.opcode("lookupBlockParam",P,f.parts);else if(!_)this.opcode("pushContext");else if(f.data)this.options.data=!0,this.opcode("lookupData",f.depth,f.parts,f.strict);else this.opcode("lookupOnContext",f.parts,f.falsy,f.strict,$)},StringLiteral:function(f){this.opcode("pushString",f.value)},NumberLiteral:function(f){this.opcode("pushLiteral",f.value)},BooleanLiteral:function(f){this.opcode("pushLiteral",f.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(f){var _=f.pairs,$=0,P=_.length;this.opcode("pushHash");for(;$<P;$++)this.pushParam(_[$].value);while($--)this.opcode("assignToHash",_[$].key);this.opcode("popHash")},opcode:function(f){this.opcodes.push({opcode:f,args:w3.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(f){if(!f)return;this.useDepths=!0},classifySexpr:function(f){var _=G8.default.helpers.simpleId(f.path),$=_&&!!this.blockParamIndex(f.path.parts[0]),P=!$&&G8.default.helpers.helperExpression(f),j=!$&&(P||_);if(j&&!P){var K=f.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(f){for(var _=0,$=f.length;_<$;_++)this.pushParam(f[_])},pushParam:function(f){var _=f.value!=null?f.value:f.original||"";if(this.stringParams){if(_.replace)_=_.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".");if(f.depth)this.addDepth(f.depth);if(this.opcode("getContext",f.depth||0),this.opcode("pushStringParam",_,f.type),f.type==="SubExpression")this.accept(f)}else{if(this.trackIds){var $=void 0;if(f.parts&&!G8.default.helpers.scopedId(f)&&!f.depth)$=this.blockParamIndex(f.parts[0]);if($){var P=f.parts.slice(1).join(".");this.opcode("pushId","BlockParam",$,P)}else{if(_=f.original||_,_.replace)_=_.replace(/^this(?:\.|$)/,"").replace(/^\.\//,"").replace(/^\.$/,"");this.opcode("pushId",f.type,_)}}this.accept(f)}},setupFullMustacheParams:function(f,_,$,P){var j=f.params;if(this.pushParams(j),this.opcode("pushProgram",_),this.opcode("pushProgram",$),f.hash)this.accept(f.hash);else this.opcode("emptyHash",P);return j},blockParamIndex:function(f){for(var _=0,$=this.options.blockParams.length;_<$;_++){var P=this.options.blockParams[_],j=P&&c8.indexOf(P,f);if(P&&j>=0)return[_,j]}}};function m3(q,f,_){if(q==null||typeof q!=="string"&&q.type!=="Program")throw new b8.default("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+q);if(f=f||{},!("data"in f))f.data=!0;if(f.compat)f.useDepths=!0;var $=_.parse(q,f),P=new _.Compiler().compile($,f);return new _.JavaScriptCompiler().compile(P,f)}function O3(q,f,_){if(f===void 0)f={};if(q==null||typeof q!=="string"&&q.type!=="Program")throw new b8.default("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+q);if(f=c8.extend({},f),!("data"in f))f.data=!0;if(f.compat)f.useDepths=!0;var $=void 0;function P(){var K=_.parse(q,f),v=new _.Compiler().compile(K,f),e=new _.JavaScriptCompiler().compile(v,f,void 0,!0);return _.template(e)}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,e,r){if(!$)$=P();return $._child(K,v,e,r)},j}function B6(q,f){if(q===f)return!0;if(c8.isArray(q)&&c8.isArray(f)&&q.length===f.length){for(var _=0;_<q.length;_++)if(!B6(q[_],f[_]))return!1;return!0}}function L6(q){if(!q.path.parts){var f=q.path;q.path={type:"PathExpression",data:!1,depth:0,parts:[f.original+""],original:f.original+"",loc:f.loc}}}});var Q6=z((o3)=>{var F6="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");o3.encode=function(q){if(0<=q&&q<F6.length)return F6[q];throw TypeError("Must be between 0 and 63: "+q)};o3.decode=function(q){var f=65,_=90,$=97,P=122,j=48,K=57,v=43,e=47,r=26,m=52;if(f<=q&&q<=_)return q-f;if($<=q&&q<=P)return q-$+r;if(j<=q&&q<=K)return q-j+m;if(q==v)return 62;if(q==e)return 63;return-1}});var Yq=z((J3)=>{var f$=Q6(),hq=5,q$=1<<hq,_$=q$-1,$$=q$;function p3(q){return q<0?(-q<<1)+1:(q<<1)+0}function W3(q){var f=(q&1)===1,_=q>>1;return f?-_:_}J3.encode=function(f){var _="",$,P=p3(f);do{if($=P&_$,P>>>=hq,P>0)$|=$$;_+=f$.encode($)}while(P>0);return _};J3.decode=function(f,_,$){var P=f.length,j=0,K=0,v,e;do{if(_>=P)throw Error("Expected more digits in base 64 VLQ value.");if(e=f$.decode(f.charCodeAt(_++)),e===-1)throw Error("Invalid base64 digit: "+f.charAt(_-1));v=!!(e&$$),e&=_$,j=j+(e<<K),K+=hq}while(v);$.value=W3(j),$.rest=_}});var o8=z((S3)=>{function t3(q,f,_){if(f in q)return q[f];else if(arguments.length===3)return _;else throw Error('"'+f+'" is a required argument.')}S3.getArg=t3;var K$=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,a3=/^data:.+\,.+$/;function S8(q){var f=q.match(K$);if(!f)return null;return{scheme:f[1],auth:f[2],host:f[3],port:f[4],path:f[5]}}S3.urlParse=S8;function k8(q){var f="";if(q.scheme)f+=q.scheme+":";if(f+="//",q.auth)f+=q.auth+"@";if(q.host)f+=q.host;if(q.port)f+=":"+q.port;if(q.path)f+=q.path;return f}S3.urlGenerate=k8;function kq(q){var f=q,_=S8(q);if(_){if(!_.path)return q;f=_.path}var $=S3.isAbsolute(f),P=f.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(f=P.join("/"),f==="")f=$?"/":".";if(_)return _.path=f,k8(_);return f}S3.normalize=kq;function P$(q,f){if(q==="")q=".";if(f==="")f=".";var _=S8(f),$=S8(q);if($)q=$.path||"/";if(_&&!_.scheme){if($)_.scheme=$.scheme;return k8(_)}if(_||f.match(a3))return f;if($&&!$.host&&!$.path)return $.host=f,k8($);var P=f.charAt(0)==="/"?f:kq(q.replace(/\/+$/,"")+"/"+f);if($)return $.path=P,k8($);return P}S3.join=P$;S3.isAbsolute=function(q){return q.charAt(0)==="/"||K$.test(q)};function i3(q,f){if(q==="")q=".";q=q.replace(/\/$/,"");var _=0;while(f.indexOf(q+"/")!==0){var $=q.lastIndexOf("/");if($<0)return f;if(q=q.slice(0,$),q.match(/^([^\/]+:\/)?\/*$/))return f;++_}return Array(_+1).join("../")+f.substr(q.length+1)}S3.relative=i3;var j$=function(){var q=Object.create(null);return!("__proto__"in q)}();function v$(q){return q}function d3(q){if(r$(q))return"$"+q;return q}S3.toSetString=j$?v$:d3;function A3(q){if(r$(q))return q.slice(1);return q}S3.fromSetString=j$?v$:A3;function r$(q){if(!q)return!1;var f=q.length;if(f<9)return!1;if(q.charCodeAt(f-1)!==95||q.charCodeAt(f-2)!==95||q.charCodeAt(f-3)!==111||q.charCodeAt(f-4)!==116||q.charCodeAt(f-5)!==111||q.charCodeAt(f-6)!==114||q.charCodeAt(f-7)!==112||q.charCodeAt(f-8)!==95||q.charCodeAt(f-9)!==95)return!1;for(var _=f-10;_>=0;_--)if(q.charCodeAt(_)!==36)return!1;return!0}function X3(q,f,_){var $=z8(q.source,f.source);if($!==0)return $;if($=q.originalLine-f.originalLine,$!==0)return $;if($=q.originalColumn-f.originalColumn,$!==0||_)return $;if($=q.generatedColumn-f.generatedColumn,$!==0)return $;if($=q.generatedLine-f.generatedLine,$!==0)return $;return z8(q.name,f.name)}S3.compareByOriginalPositions=X3;function l3(q,f,_){var $=q.generatedLine-f.generatedLine;if($!==0)return $;if($=q.generatedColumn-f.generatedColumn,$!==0||_)return $;if($=z8(q.source,f.source),$!==0)return $;if($=q.originalLine-f.originalLine,$!==0)return $;if($=q.originalColumn-f.originalColumn,$!==0)return $;return z8(q.name,f.name)}S3.compareByGeneratedPositionsDeflated=l3;function z8(q,f){if(q===f)return 0;if(q===null)return 1;if(f===null)return-1;if(q>f)return 1;return-1}function G3(q,f){var _=q.generatedLine-f.generatedLine;if(_!==0)return _;if(_=q.generatedColumn-f.generatedColumn,_!==0)return _;if(_=z8(q.source,f.source),_!==0)return _;if(_=q.originalLine-f.originalLine,_!==0)return _;if(_=q.originalColumn-f.originalColumn,_!==0)return _;return z8(q.name,f.name)}S3.compareByGeneratedPositionsInflated=G3;function b3(q){return JSON.parse(q.replace(/^\)]}'[^\n]*\n/,""))}S3.parseSourceMapInput=b3;function c3(q,f,_){if(f=f||"",q){if(q[q.length-1]!=="/"&&f[0]!=="/")q+="/";f=q+f}if(_){var $=S8(_);if(!$)throw Error("sourceMapURL could not be parsed");if($.path){var P=$.path.lastIndexOf("/");if(P>=0)$.path=$.path.substring(0,P+1)}f=P$(k8($),f)}return kq(f)}S3.computeSourceURL=c3});var nq=z((U3)=>{var zq=o8(),oq=Object.prototype.hasOwnProperty,e8=typeof Map<"u";function U(){this._array=[],this._set=e8?new Map:Object.create(null)}U.fromArray=function(f,_){var $=new U;for(var P=0,j=f.length;P<j;P++)$.add(f[P],_);return $};U.prototype.size=function(){return e8?this._set.size:Object.getOwnPropertyNames(this._set).length};U.prototype.add=function(f,_){var $=e8?f:zq.toSetString(f),P=e8?this.has(f):oq.call(this._set,$),j=this._array.length;if(!P||_)this._array.push(f);if(!P)if(e8)this._set.set(f,j);else this._set[$]=j};U.prototype.has=function(f){if(e8)return this._set.has(f);else{var _=zq.toSetString(f);return oq.call(this._set,_)}};U.prototype.indexOf=function(f){if(e8){var _=this._set.get(f);if(_>=0)return _}else{var $=zq.toSetString(f);if(oq.call(this._set,$))return this._set[$]}throw Error('"'+f+'" is not in the set.')};U.prototype.at=function(f){if(f>=0&&f<this._array.length)return this._array[f];throw Error("No element indexed by "+f)};U.prototype.toArray=function(){return this._array.slice()};U3.ArraySet=U});var w$=z((fv)=>{var e$=o8();function Q3(q,f){var _=q.generatedLine,$=f.generatedLine,P=q.generatedColumn,j=f.generatedColumn;return $>_||$==_&&j>=P||e$.compareByGeneratedPositionsInflated(q,f)<=0}function wf(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}wf.prototype.unsortedForEach=function(f,_){this._array.forEach(f,_)};wf.prototype.add=function(f){if(Q3(this._last,f))this._last=f,this._array.push(f);else this._sorted=!1,this._array.push(f)};wf.prototype.toArray=function(){if(!this._sorted)this._array.sort(e$.compareByGeneratedPositionsInflated),this._sorted=!0;return this._array};fv.MappingList=wf});var Hq=z(($v)=>{var M8=Yq(),i=o8(),mf=nq().ArraySet,_v=w$().MappingList;function N(q){if(!q)q={};this._file=i.getArg(q,"file",null),this._sourceRoot=i.getArg(q,"sourceRoot",null),this._skipValidation=i.getArg(q,"skipValidation",!1),this._sources=new mf,this._names=new mf,this._mappings=new _v,this._sourcesContents=null}N.prototype._version=3;N.fromSourceMap=function(f){var _=f.sourceRoot,$=new N({file:f.file,sourceRoot:_});return f.eachMapping(function(P){var j={generated:{line:P.generatedLine,column:P.generatedColumn}};if(P.source!=null){if(j.source=P.source,_!=null)j.source=i.relative(_,j.source);if(j.original={line:P.originalLine,column:P.originalColumn},P.name!=null)j.name=P.name}$.addMapping(j)}),f.sources.forEach(function(P){var j=P;if(_!==null)j=i.relative(_,P);if(!$._sources.has(j))$._sources.add(j);var K=f.sourceContentFor(P);if(K!=null)$.setSourceContent(P,K)}),$};N.prototype.addMapping=function(f){var _=i.getArg(f,"generated"),$=i.getArg(f,"original",null),P=i.getArg(f,"source",null),j=i.getArg(f,"name",null);if(!this._skipValidation)this._validateMapping(_,$,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:_.line,generatedColumn:_.column,originalLine:$!=null&&$.line,originalColumn:$!=null&&$.column,source:P,name:j})};N.prototype.setSourceContent=function(f,_){var $=f;if(this._sourceRoot!=null)$=i.relative(this._sourceRoot,$);if(_!=null){if(!this._sourcesContents)this._sourcesContents=Object.create(null);this._sourcesContents[i.toSetString($)]=_}else if(this._sourcesContents){if(delete this._sourcesContents[i.toSetString($)],Object.keys(this._sourcesContents).length===0)this._sourcesContents=null}};N.prototype.applySourceMap=function(f,_,$){var P=_;if(_==null){if(f.file==null)throw Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);P=f.file}var j=this._sourceRoot;if(j!=null)P=i.relative(j,P);var K=new mf,v=new mf;this._mappings.unsortedForEach(function(e){if(e.source===P&&e.originalLine!=null){var r=f.originalPositionFor({line:e.originalLine,column:e.originalColumn});if(r.source!=null){if(e.source=r.source,$!=null)e.source=i.join($,e.source);if(j!=null)e.source=i.relative(j,e.source);if(e.originalLine=r.line,e.originalColumn=r.column,r.name!=null)e.name=r.name}}var m=e.source;if(m!=null&&!K.has(m))K.add(m);var w=e.name;if(w!=null&&!v.has(w))v.add(w)},this),this._sources=K,this._names=v,f.sources.forEach(function(e){var r=f.sourceContentFor(e);if(r!=null){if($!=null)e=i.join($,e);if(j!=null)e=i.relative(j,e);this.setSourceContent(e,r)}},this)};N.prototype._validateMapping=function(f,_,$,P){if(_&&typeof _.line!=="number"&&typeof _.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(f&&"line"in f&&"column"in f&&f.line>0&&f.column>=0&&!_&&!$&&!P)return;else if(f&&"line"in f&&"column"in f&&_&&"line"in _&&"column"in _&&f.line>0&&f.column>=0&&_.line>0&&_.column>=0&&$)return;else throw Error("Invalid mapping: "+JSON.stringify({generated:f,source:$,original:_,name:P}))};N.prototype._serializeMappings=function(){var f=0,_=1,$=0,P=0,j=0,K=0,v="",e,r,m,w,T=this._mappings.toArray();for(var h=0,k=T.length;h<k;h++){if(r=T[h],e="",r.generatedLine!==_){f=0;while(r.generatedLine!==_)e+=";",_++}else if(h>0){if(!i.compareByGeneratedPositionsInflated(r,T[h-1]))continue;e+=","}if(e+=M8.encode(r.generatedColumn-f),f=r.generatedColumn,r.source!=null){if(w=this._sources.indexOf(r.source),e+=M8.encode(w-K),K=w,e+=M8.encode(r.originalLine-1-P),P=r.originalLine-1,e+=M8.encode(r.originalColumn-$),$=r.originalColumn,r.name!=null)m=this._names.indexOf(r.name),e+=M8.encode(m-j),j=m}v+=e}return v};N.prototype._generateSourcesContent=function(f,_){return f.map(function($){if(!this._sourcesContents)return null;if(_!=null)$=i.relative(_,$);var P=i.toSetString($);return Object.prototype.hasOwnProperty.call(this._sourcesContents,P)?this._sourcesContents[P]:null},this)};N.prototype.toJSON=function(){var f={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};if(this._file!=null)f.file=this._file;if(this._sourceRoot!=null)f.sourceRoot=this._sourceRoot;if(this._sourcesContents)f.sourcesContent=this._generateSourcesContent(f.sources,f.sourceRoot);return f};N.prototype.toString=function(){return JSON.stringify(this.toJSON())};$v.SourceMapGenerator=N});var O$=z((Pv)=>{Pv.GREATEST_LOWER_BOUND=1;Pv.LEAST_UPPER_BOUND=2;function pq(q,f,_,$,P,j){var K=Math.floor((f-q)/2)+q,v=P(_,$[K],!0);if(v===0)return K;else if(v>0){if(f-K>1)return pq(K,f,_,$,P,j);if(j==Pv.LEAST_UPPER_BOUND)return f<$.length?f:-1;else return K}else{if(K-q>1)return pq(q,K,_,$,P,j);if(j==Pv.LEAST_UPPER_BOUND)return K;else return q<0?-1:q}}Pv.search=function(f,_,$,P){if(_.length===0)return-1;var j=pq(-1,_.length,f,_,$,P||Pv.GREATEST_LOWER_BOUND);if(j<0)return-1;while(j-1>=0){if($(_[j],_[j-1],!0)!==0)break;--j}return j}});var T$=z((rv)=>{function Jq(q,f,_){var $=q[f];q[f]=q[_],q[_]=$}function vv(q,f){return Math.round(q+Math.random()*(f-q))}function Zq(q,f,_,$){if(_<$){var P=vv(_,$),j=_-1;Jq(q,P,$);var K=q[$];for(var v=_;v<$;v++)if(f(q[v],K)<=0)j+=1,Jq(q,j,v);Jq(q,j+1,v);var e=j+1;Zq(q,f,_,e-1),Zq(q,f,e+1,$)}}rv.quickSort=function(q,f){Zq(q,f,0,q.length-1)}});var Y$=z((mv)=>{var Y=o8(),uq=O$(),n8=nq().ArraySet,wv=Yq(),V8=T$().quickSort;function W(q,f){var _=q;if(typeof q==="string")_=Y.parseSourceMapInput(q);return _.sections!=null?new R(_,f):new d(_,f)}W.fromSourceMap=function(q,f){return d.fromSourceMap(q,f)};W.prototype._version=3;W.prototype.__generatedMappings=null;Object.defineProperty(W.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){if(!this.__generatedMappings)this._parseMappings(this._mappings,this.sourceRoot);return this.__generatedMappings}});W.prototype.__originalMappings=null;Object.defineProperty(W.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){if(!this.__originalMappings)this._parseMappings(this._mappings,this.sourceRoot);return this.__originalMappings}});W.prototype._charIsMappingSeparator=function(f,_){var $=f.charAt(_);return $===";"||$===","};W.prototype._parseMappings=function(f,_){throw Error("Subclasses must implement _parseMappings")};W.GENERATED_ORDER=1;W.ORIGINAL_ORDER=2;W.GREATEST_LOWER_BOUND=1;W.LEAST_UPPER_BOUND=2;W.prototype.eachMapping=function(f,_,$){var P=_||null,j=$||W.GENERATED_ORDER,K;switch(j){case W.GENERATED_ORDER:K=this._generatedMappings;break;case W.ORIGINAL_ORDER:K=this._originalMappings;break;default:throw Error("Unknown order of iteration.")}var v=this.sourceRoot;K.map(function(e){var r=e.source===null?null:this._sources.at(e.source);return r=Y.computeSourceURL(v,r,this._sourceMapURL),{source:r,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:e.name===null?null:this._names.at(e.name)}},this).forEach(f,P)};W.prototype.allGeneratedPositionsFor=function(f){var _=Y.getArg(f,"line"),$={source:Y.getArg(f,"source"),originalLine:_,originalColumn:Y.getArg(f,"column",0)};if($.source=this._findSourceIndex($.source),$.source<0)return[];var P=[],j=this._findMapping($,this._originalMappings,"originalLine","originalColumn",Y.compareByOriginalPositions,uq.LEAST_UPPER_BOUND);if(j>=0){var K=this._originalMappings[j];if(f.column===void 0){var v=K.originalLine;while(K&&K.originalLine===v)P.push({line:Y.getArg(K,"generatedLine",null),column:Y.getArg(K,"generatedColumn",null),lastColumn:Y.getArg(K,"lastGeneratedColumn",null)}),K=this._originalMappings[++j]}else{var e=K.originalColumn;while(K&&K.originalLine===_&&K.originalColumn==e)P.push({line:Y.getArg(K,"generatedLine",null),column:Y.getArg(K,"generatedColumn",null),lastColumn:Y.getArg(K,"lastGeneratedColumn",null)}),K=this._originalMappings[++j]}}return P};mv.SourceMapConsumer=W;function d(q,f){var _=q;if(typeof q==="string")_=Y.parseSourceMapInput(q);var $=Y.getArg(_,"version"),P=Y.getArg(_,"sources"),j=Y.getArg(_,"names",[]),K=Y.getArg(_,"sourceRoot",null),v=Y.getArg(_,"sourcesContent",null),e=Y.getArg(_,"mappings"),r=Y.getArg(_,"file",null);if($!=this._version)throw Error("Unsupported version: "+$);if(K)K=Y.normalize(K);P=P.map(String).map(Y.normalize).map(function(m){return K&&Y.isAbsolute(K)&&Y.isAbsolute(m)?Y.relative(K,m):m}),this._names=n8.fromArray(j.map(String),!0),this._sources=n8.fromArray(P,!0),this._absoluteSources=this._sources.toArray().map(function(m){return Y.computeSourceURL(K,m,f)}),this.sourceRoot=K,this.sourcesContent=v,this._mappings=e,this._sourceMapURL=f,this.file=r}d.prototype=Object.create(W.prototype);d.prototype.consumer=W;d.prototype._findSourceIndex=function(q){var f=q;if(this.sourceRoot!=null)f=Y.relative(this.sourceRoot,f);if(this._sources.has(f))return this._sources.indexOf(f);var _;for(_=0;_<this._absoluteSources.length;++_)if(this._absoluteSources[_]==q)return _;return-1};d.fromSourceMap=function(f,_){var $=Object.create(d.prototype),P=$._names=n8.fromArray(f._names.toArray(),!0),j=$._sources=n8.fromArray(f._sources.toArray(),!0);$.sourceRoot=f._sourceRoot,$.sourcesContent=f._generateSourcesContent($._sources.toArray(),$.sourceRoot),$.file=f._file,$._sourceMapURL=_,$._absoluteSources=$._sources.toArray().map(function(h){return Y.computeSourceURL($.sourceRoot,h,_)});var K=f._mappings.toArray().slice(),v=$.__generatedMappings=[],e=$.__originalMappings=[];for(var r=0,m=K.length;r<m;r++){var w=K[r],T=new h$;if(T.generatedLine=w.generatedLine,T.generatedColumn=w.generatedColumn,w.source){if(T.source=j.indexOf(w.source),T.originalLine=w.originalLine,T.originalColumn=w.originalColumn,w.name)T.name=P.indexOf(w.name);e.push(T)}v.push(T)}return V8($.__originalMappings,Y.compareByOriginalPositions),$};d.prototype._version=3;Object.defineProperty(d.prototype,"sources",{get:function(){return this._absoluteSources.slice()}});function h$(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}d.prototype._parseMappings=function(f,_){var $=1,P=0,j=0,K=0,v=0,e=0,r=f.length,m=0,w={},T={},h=[],k=[],p,c,a,K8,N8;while(m<r)if(f.charAt(m)===";")$++,m++,P=0;else if(f.charAt(m)===",")m++;else{p=new h$,p.generatedLine=$;for(K8=m;K8<r;K8++)if(this._charIsMappingSeparator(f,K8))break;if(c=f.slice(m,K8),a=w[c],a)m+=c.length;else{a=[];while(m<K8)wv.decode(f,m,T),N8=T.value,m=T.rest,a.push(N8);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");w[c]=a}if(p.generatedColumn=P+a[0],P=p.generatedColumn,a.length>1){if(p.source=v+a[1],v+=a[1],p.originalLine=j+a[2],j=p.originalLine,p.originalLine+=1,p.originalColumn=K+a[3],K=p.originalColumn,a.length>4)p.name=e+a[4],e+=a[4]}if(k.push(p),typeof p.originalLine==="number")h.push(p)}V8(k,Y.compareByGeneratedPositionsDeflated),this.__generatedMappings=k,V8(h,Y.compareByOriginalPositions),this.__originalMappings=h};d.prototype._findMapping=function(f,_,$,P,j,K){if(f[$]<=0)throw TypeError("Line must be greater than or equal to 1, got "+f[$]);if(f[P]<0)throw TypeError("Column must be greater than or equal to 0, got "+f[P]);return uq.search(f,_,j,K)};d.prototype.computeColumnSpans=function(){for(var f=0;f<this._generatedMappings.length;++f){var _=this._generatedMappings[f];if(f+1<this._generatedMappings.length){var $=this._generatedMappings[f+1];if(_.generatedLine===$.generatedLine){_.lastGeneratedColumn=$.generatedColumn-1;continue}}_.lastGeneratedColumn=1/0}};d.prototype.originalPositionFor=function(f){var _={generatedLine:Y.getArg(f,"line"),generatedColumn:Y.getArg(f,"column")},$=this._findMapping(_,this._generatedMappings,"generatedLine","generatedColumn",Y.compareByGeneratedPositionsDeflated,Y.getArg(f,"bias",W.GREATEST_LOWER_BOUND));if($>=0){var P=this._generatedMappings[$];if(P.generatedLine===_.generatedLine){var j=Y.getArg(P,"source",null);if(j!==null)j=this._sources.at(j),j=Y.computeSourceURL(this.sourceRoot,j,this._sourceMapURL);var K=Y.getArg(P,"name",null);if(K!==null)K=this._names.at(K);return{source:j,line:Y.getArg(P,"originalLine",null),column:Y.getArg(P,"originalColumn",null),name:K}}}return{source:null,line:null,column:null,name:null}};d.prototype.hasContentsOfAllSources=function(){if(!this.sourcesContent)return!1;return this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(f){return f==null})};d.prototype.sourceContentFor=function(f,_){if(!this.sourcesContent)return null;var $=this._findSourceIndex(f);if($>=0)return this.sourcesContent[$];var P=f;if(this.sourceRoot!=null)P=Y.relative(this.sourceRoot,P);var j;if(this.sourceRoot!=null&&(j=Y.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(_)return null;else throw Error('"'+P+'" is not in the SourceMap.')};d.prototype.generatedPositionFor=function(f){var _=Y.getArg(f,"source");if(_=this._findSourceIndex(_),_<0)return{line:null,column:null,lastColumn:null};var $={source:_,originalLine:Y.getArg(f,"line"),originalColumn:Y.getArg(f,"column")},P=this._findMapping($,this._originalMappings,"originalLine","originalColumn",Y.compareByOriginalPositions,Y.getArg(f,"bias",W.GREATEST_LOWER_BOUND));if(P>=0){var j=this._originalMappings[P];if(j.source===$.source)return{line:Y.getArg(j,"generatedLine",null),column:Y.getArg(j,"generatedColumn",null),lastColumn:Y.getArg(j,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}};mv.BasicSourceMapConsumer=d;function R(q,f){var _=q;if(typeof q==="string")_=Y.parseSourceMapInput(q);var $=Y.getArg(_,"version"),P=Y.getArg(_,"sections");if($!=this._version)throw Error("Unsupported version: "+$);this._sources=new n8,this._names=new n8;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=Y.getArg(K,"offset"),e=Y.getArg(v,"line"),r=Y.getArg(v,"column");if(e<j.line||e===j.line&&r<j.column)throw Error("Section offsets must be ordered and non-overlapping.");return j=v,{generatedOffset:{generatedLine:e+1,generatedColumn:r+1},consumer:new W(Y.getArg(K,"map"),f)}})}R.prototype=Object.create(W.prototype);R.prototype.constructor=W;R.prototype._version=3;Object.defineProperty(R.prototype,"sources",{get:function(){var q=[];for(var f=0;f<this._sections.length;f++)for(var _=0;_<this._sections[f].consumer.sources.length;_++)q.push(this._sections[f].consumer.sources[_]);return q}});R.prototype.originalPositionFor=function(f){var _={generatedLine:Y.getArg(f,"line"),generatedColumn:Y.getArg(f,"column")},$=uq.search(_,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:_.generatedLine-(P.generatedOffset.generatedLine-1),column:_.generatedColumn-(P.generatedOffset.generatedLine===_.generatedLine?P.generatedOffset.generatedColumn-1:0),bias:f.bias})};R.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(f){return f.consumer.hasContentsOfAllSources()})};R.prototype.sourceContentFor=function(f,_){for(var $=0;$<this._sections.length;$++){var P=this._sections[$],j=P.consumer.sourceContentFor(f,!0);if(j)return j}if(_)return null;else throw Error('"'+f+'" is not in the SourceMap.')};R.prototype.generatedPositionFor=function(f){for(var _=0;_<this._sections.length;_++){var $=this._sections[_];if($.consumer._findSourceIndex(Y.getArg(f,"source"))===-1)continue;var P=$.consumer.generatedPositionFor(f);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}};R.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],e=P.consumer._sources.at(v.source);e=Y.computeSourceURL(P.consumer.sourceRoot,e,this._sourceMapURL),this._sources.add(e),e=this._sources.indexOf(e);var r=null;if(v.name)r=P.consumer._names.at(v.name),this._names.add(r),r=this._names.indexOf(r);var m={source:e,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:r};if(this.__generatedMappings.push(m),typeof m.originalLine==="number")this.__originalMappings.push(m)}}V8(this.__generatedMappings,Y.compareByGeneratedPositionsDeflated),V8(this.__originalMappings,Y.compareByOriginalPositions)};mv.IndexedSourceMapConsumer=R});var k$=z((ov)=>{var Yv=Hq().SourceMapGenerator,Of=o8(),kv=/(\r?\n)/,zv=10,H8="$$$isSourceNode$$$";function b(q,f,_,$,P){if(this.children=[],this.sourceContents={},this.line=q==null?null:q,this.column=f==null?null:f,this.source=_==null?null:_,this.name=P==null?null:P,this[H8]=!0,$!=null)this.add($)}b.fromStringWithSourceMap=function(f,_,$){var P=new b,j=f.split(kv),K=0,v=function(){var T=k(),h=k()||"";return T+h;function k(){return K<j.length?j[K++]:void 0}},e=1,r=0,m=null;if(_.eachMapping(function(T){if(m!==null)if(e<T.generatedLine)w(m,v()),e++,r=0;else{var h=j[K]||"",k=h.substr(0,T.generatedColumn-r);j[K]=h.substr(T.generatedColumn-r),r=T.generatedColumn,w(m,k),m=T;return}while(e<T.generatedLine)P.add(v()),e++;if(r<T.generatedColumn){var h=j[K]||"";P.add(h.substr(0,T.generatedColumn)),j[K]=h.substr(T.generatedColumn),r=T.generatedColumn}m=T},this),K<j.length){if(m)w(m,v());P.add(j.splice(K).join(""))}return _.sources.forEach(function(T){var h=_.sourceContentFor(T);if(h!=null){if($!=null)T=Of.join($,T);P.setSourceContent(T,h)}}),P;function w(T,h){if(T===null||T.source===void 0)P.add(h);else{var k=$?Of.join($,T.source):T.source;P.add(new b(T.originalLine,T.originalColumn,k,h,T.name))}}};b.prototype.add=function(f){if(Array.isArray(f))f.forEach(function(_){this.add(_)},this);else if(f[H8]||typeof f==="string"){if(f)this.children.push(f)}else throw TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+f);return this};b.prototype.prepend=function(f){if(Array.isArray(f))for(var _=f.length-1;_>=0;_--)this.prepend(f[_]);else if(f[H8]||typeof f==="string")this.children.unshift(f);else throw TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+f);return this};b.prototype.walk=function(f){var _;for(var $=0,P=this.children.length;$<P;$++)if(_=this.children[$],_[H8])_.walk(f);else if(_!=="")f(_,{source:this.source,line:this.line,column:this.column,name:this.name})};b.prototype.join=function(f){var _,$,P=this.children.length;if(P>0){_=[];for($=0;$<P-1;$++)_.push(this.children[$]),_.push(f);_.push(this.children[$]),this.children=_}return this};b.prototype.replaceRight=function(f,_){var $=this.children[this.children.length-1];if($[H8])$.replaceRight(f,_);else if(typeof $==="string")this.children[this.children.length-1]=$.replace(f,_);else this.children.push("".replace(f,_));return this};b.prototype.setSourceContent=function(f,_){this.sourceContents[Of.toSetString(f)]=_};b.prototype.walkSourceContents=function(f){for(var _=0,$=this.children.length;_<$;_++)if(this.children[_][H8])this.children[_].walkSourceContents(f);var P=Object.keys(this.sourceContents);for(var _=0,$=P.length;_<$;_++)f(Of.fromSetString(P[_]),this.sourceContents[P[_]])};b.prototype.toString=function(){var f="";return this.walk(function(_){f+=_}),f};b.prototype.toStringWithSourceMap=function(f){var _={code:"",line:1,column:0},$=new Yv(f),P=!1,j=null,K=null,v=null,e=null;return this.walk(function(r,m){if(_.code+=r,m.source!==null&&m.line!==null&&m.column!==null){if(j!==m.source||K!==m.line||v!==m.column||e!==m.name)$.addMapping({source:m.source,original:{line:m.line,column:m.column},generated:{line:_.line,column:_.column},name:m.name});j=m.source,K=m.line,v=m.column,e=m.name,P=!0}else if(P)$.addMapping({generated:{line:_.line,column:_.column}}),j=null,P=!1;for(var w=0,T=r.length;w<T;w++)if(r.charCodeAt(w)===zv){if(_.line++,_.column=0,w+1===T)j=null,P=!1;else if(P)$.addMapping({source:m.source,original:{line:m.line,column:m.column},generated:{line:_.line,column:_.column},name:m.name})}else _.column++}),this.walkSourceContents(function(r,m){$.setSourceContent(r,m)}),{code:_.code,map:$}};ov.SourceNode=b});var z$=z((Hv)=>{Hv.SourceMapGenerator=Hq().SourceMapGenerator;Hv.SourceMapConsumer=Y$().SourceMapConsumer;Hv.SourceNode=k$().SourceNode});var p$=z((n$,H$)=>{n$.__esModule=!0;var aq=G(),w8=void 0;try{if(typeof define!=="function"||!define.amd)iq=z$(),w8=iq.SourceNode}catch(q){}var iq;if(!w8)w8=function(q,f,_,$){if(this.src="",$)this.add($)},w8.prototype={add:function(f){if(aq.isArray(f))f=f.join("");this.src+=f},prepend:function(f){if(aq.isArray(f))f=f.join("");this.src=f+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}};function tq(q,f,_){if(aq.isArray(q)){var $=[];for(var P=0,j=q.length;P<j;P++)$.push(f.wrap(q[P],_));return $}else if(typeof q==="boolean"||typeof q==="number")return q+"";return q}function o$(q){this.srcFile=q,this.source=[]}o$.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 f=this.empty();return this.each(function(_){f.add([" ",_,`
|
|
11
|
+
`])}),f},each:function(f){for(var _=0,$=this.source.length;_<$;_++)f(this.source[_])},empty:function(){var f=this.currentLocation||{start:{}};return new w8(f.start.line,f.start.column,this.srcFile)},wrap:function(f){var _=arguments.length<=1||arguments[1]===void 0?this.currentLocation||{start:{}}:arguments[1];if(f instanceof w8)return f;return f=tq(f,this,_),new w8(_.start.line,_.start.column,this.srcFile,f)},functionCall:function(f,_,$){return $=this.generateList($),this.wrap([f,_?"."+_+"(":"(",$,")"])},quotedString:function(f){return'"'+(f+"").replace(/\\/g,"\\\\").replace(/"/g,"\\\"").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(f){var _=this,$=[];Object.keys(f).forEach(function(j){var K=tq(f[j],_);if(K!=="undefined")$.push([_.quotedString(j),":",K])});var P=this.generateList($);return P.prepend("{"),P.add("}"),P},generateList:function(f){var _=this.empty();for(var $=0,P=f.length;$<P;$++){if($)_.add(",");_.add(tq(f[$],this))}return _},generateArray:function(f){var _=this.generateList(f);return _.prepend("["),_.add("]"),_}};n$.default=o$;H$.exports=n$.default});var a$=z((u$,t$)=>{u$.__esModule=!0;function Z$(q){return q&&q.__esModule?q:{default:q}}var W$=Kf(),tv=C(),dq=Z$(tv),av=G(),iv=p$(),J$=Z$(iv);function p8(q){this.value=q}function W8(){}W8.prototype={nameLookup:function(f,_){return this.internalNameLookup(f,_)},depthedLookup:function(f){return[this.aliasable("container.lookup"),"(depths, ",JSON.stringify(f),")"]},compilerInfo:function(){var f=W$.COMPILER_REVISION,_=W$.REVISION_CHANGES[f];return[f,_]},appendToBuffer:function(f,_,$){if(!av.isArray(f))f=[f];if(f=this.source.wrap(f,_),this.environment.isSimple)return["return ",f,";"];else if($)return["buffer += ",f,";"];else return f.appendToBuffer=!0,f},initializeBuffer:function(){return this.quotedString("")},internalNameLookup:function(f,_){return this.lookupPropertyFunctionIsUsed=!0,["lookupProperty(",f,",",JSON.stringify(_),")"]},lookupPropertyFunctionIsUsed:!1,compile:function(f,_,$,P){this.environment=f,this.options=_,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||f.useDepths||f.useDecorators||this.options.compat,this.useBlockParams=this.useBlockParams||f.useBlockParams;var j=f.opcodes,K=void 0,v=void 0,e=void 0,r=void 0;for(e=0,r=j.length;e<r;e++)K=j[e],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 dq.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
|
+
`]),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
|
+
`),this.decorators.push(`}
|
|
14
|
+
`),this.decorators=this.decorators.merge();else this.decorators=void 0;var m=this.createFunctionContext(P);if(!this.isChild){var w={compiler:this.compilerInfo(),main:m};if(this.decorators)w.main_d=this.decorators,w.useDecorators=!0;var T=this.context,h=T.programs,k=T.decorators;for(e=0,r=h.length;e<r;e++)if(h[e]){if(w[e]=h[e],k[e])w[e+"_d"]=k[e],w.useDecorators=!0}if(this.environment.usePartial)w.usePartial=!0;if(this.options.data)w.useData=!0;if(this.useDepths)w.useDepths=!0;if(this.useBlockParams)w.useBlockParams=!0;if(this.options.compat)w.compat=!0;if(!P)if(w.compiler=JSON.stringify(w.compiler),this.source.currentLocation={start:{line:1,column:0}},w=this.objectLiteral(w),_.srcName)w=w.toStringWithSourceMap({file:_.destName}),w.map=w.map&&w.map.toString();else w=w.toString();else w.compilerOptions=this.options;return w}else return m},preamble:function(){this.lastContext=0,this.source=new J$.default(this.options.srcName),this.decorators=new J$.default(this.options.srcName)},createFunctionContext:function(f){var _=this,$="",P=this.stackVars.concat(this.registers.list);if(P.length>0)$+=", "+P.join(", ");var j=0;if(Object.keys(this.aliases).forEach(function(e){var r=_.aliases[e];if(r.children&&r.referenceCount>1)$+=", alias"+ ++j+"="+e,r.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(f)return K.push(v),Function.apply(this,K);else return this.source.wrap(["function(",K.join(","),`) {
|
|
15
|
+
`,v,"}"])},mergeSource:function(f){var _=this.environment.isSimple,$=!this.forceBuffer,P=void 0,j=void 0,K=void 0,v=void 0;if(this.source.each(function(e){if(e.appendToBuffer){if(K)e.prepend(" + ");else K=e;v=e}else{if(K){if(!j)P=!0;else K.prepend("buffer += ");v.add(";"),K=v=void 0}if(j=!0,!_)$=!1}}),$){if(K)K.prepend("return "),v.add(";");else if(!j)this.source.push('return "";')}else if(f+=", buffer = "+(P?"":this.initializeBuffer()),K)K.prepend("return buffer + "),v.add(";");else this.source.push("return buffer;");if(f)this.source.prepend("var "+f.substring(2)+(P?"":`;
|
|
16
|
+
`));return this.source.merge()},lookupPropertyFunctionVarDeclaration:function(){return`
|
|
17
|
+
lookupProperty = container.lookupProperty || function(parent, propertyName) {
|
|
18
|
+
if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
|
|
19
|
+
return parent[propertyName];
|
|
20
|
+
}
|
|
21
|
+
return undefined
|
|
22
|
+
}
|
|
23
|
+
`.trim()},blockValue:function(f){var _=this.aliasable("container.hooks.blockHelperMissing"),$=[this.contextName(0)];this.setupHelperArgs(f,0,$);var P=this.popStack();$.splice(1,0,P),this.push(this.source.functionCall(_,"call",$))},ambiguousBlockValue:function(){var f=this.aliasable("container.hooks.blockHelperMissing"),_=[this.contextName(0)];this.setupHelperArgs("",0,_,!0),this.flushInline();var $=this.topStack();_.splice(1,0,$),this.pushSource(["if (!",this.lastHelper,") { ",$," = ",this.source.functionCall(f,"call",_),"}"])},appendContent:function(f){if(this.pendingContent)f=this.pendingContent+f;else this.pendingLocation=this.source.currentLocation;this.pendingContent=f},append:function(){if(this.isInline())this.replaceStack(function(_){return[" != null ? ",_,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var f=this.popStack();if(this.pushSource(["if (",f," != null) { ",this.appendToBuffer(f,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(f){this.lastContext=f},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(f[j++]));else this.pushContext();this.resolvePath("context",f,j,_,$)},lookupBlockParam:function(f,_){this.useBlockParams=!0,this.push(["blockParams[",f[0],"][",f[1],"]"]),this.resolvePath("context",_,1)},lookupData:function(f,_,$){if(!f)this.pushStackLiteral("data");else this.pushStackLiteral("container.data(data, "+f+")");this.resolvePath("data",_,0,!0,$)},resolvePath:function(f,_,$,P,j){var K=this;if(this.options.strict||this.options.assumeObjects){this.push(dv(this.options.strict&&j,this,_,$,f));return}var v=_.length;for(;$<v;$++)this.replaceStack(function(e){var r=K.nameLookup(e,_[$],f);if(!P)return[" != null ? ",r," : ",e];else return[" && ",r]})},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(f,_){if(this.pushContext(),this.pushString(_),_!=="SubExpression")if(typeof f==="string")this.pushString(f);else this.pushStackLiteral(f)},emptyHash:function(f){if(this.trackIds)this.push("{}");if(this.stringParams)this.push("{}"),this.push("{}");this.pushStackLiteral(f?"undefined":"{}")},pushHash:function(){if(this.hash)this.hashes.push(this.hash);this.hash={values:{},types:[],contexts:[],ids:[]}},popHash:function(){var f=this.hash;if(this.hash=this.hashes.pop(),this.trackIds)this.push(this.objectLiteral(f.ids));if(this.stringParams)this.push(this.objectLiteral(f.contexts)),this.push(this.objectLiteral(f.types));this.push(this.objectLiteral(f.values))},pushString:function(f){this.pushStackLiteral(this.quotedString(f))},pushLiteral:function(f){this.pushStackLiteral(f)},pushProgram:function(f){if(f!=null)this.pushStackLiteral(this.programExpression(f));else this.pushStackLiteral(null)},registerDecorator:function(f,_){var $=this.nameLookup("decorators",_,"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,"||"),")"],e=this.source.functionCall(v,"call",j.callParams);this.push(e)},itemsSeparatedBy:function(f,_){var $=[];$.push(f[0]);for(var P=1;P<f.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",f,"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(_,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",!f)P.unshift(this.nameLookup("partials",_,"partial"));else P.unshift(_);if(this.options.compat)j.depths="depths";j=this.objectLiteral(j),P.push(j),this.push(this.source.functionCall("container.invokePartial","",P))},assignToHash:function(f){var _=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[f]=$;if(P)K.types[f]=P;if(j)K.ids[f]=j;K.values[f]=_},pushId:function(f,_,$){if(f==="BlockParam")this.pushStackLiteral("blockParams["+_[0]+"].path["+_[1]+"]"+($?" + "+JSON.stringify("."+$):""));else if(f==="PathExpression")this.pushString(_);else if(f==="SubExpression")this.pushStackLiteral("true");else this.pushStackLiteral("null")},compiler:W8,compileChildren:function(f,_){var $=f.children,P=void 0,j=void 0;for(var K=0,v=$.length;K<v;K++){P=$[K],j=new this.compiler;var e=this.matchExistingProgram(P);if(e==null){this.context.programs.push("");var r=this.context.programs.length;P.index=r,P.name="program"+r,this.context.programs[r]=j.compile(P,_,this.context,!this.precompile),this.context.decorators[r]=j.decorators,this.context.environments[r]=P,this.useDepths=this.useDepths||j.useDepths,this.useBlockParams=this.useBlockParams||j.useBlockParams,P.useDepths=this.useDepths,P.useBlockParams=this.useBlockParams}else P.index=e.index,P.name="program"+e.index,this.useDepths=this.useDepths||e.useDepths,this.useBlockParams=this.useBlockParams||e.useBlockParams}},matchExistingProgram:function(f){for(var _=0,$=this.context.environments.length;_<$;_++){var P=this.context.environments[_];if(P&&P.equals(f))return P}},programExpression:function(f){var _=this.environment.children[f],$=[_.index,"data",_.blockParams];if(this.useBlockParams||this.useDepths)$.push("blockParams");if(this.useDepths)$.push("depths");return"container.program("+$.join(", ")+")"},useRegister:function(f){if(!this.registers[f])this.registers[f]=!0,this.registers.list.push(f)},push:function(f){if(!(f instanceof p8))f=this.source.wrap(f);return this.inlineStack.push(f),f},pushStackLiteral:function(f){this.push(new p8(f))},pushSource:function(f){if(this.pendingContent)this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0;if(f)this.source.push(f)},replaceStack:function(f){var _=["("],$=void 0,P=void 0,j=void 0;if(!this.isInline())throw new dq.default("replaceStack on non-inline");var K=this.popStack(!0);if(K instanceof p8)$=[K.value],_=["(",$],j=!0;else{P=!0;var v=this.incrStack();_=["((",this.push(v)," = ",K,")"],$=this.topStack()}var e=f.call(this,$);if(!j)this.popStack();if(P)this.stackSlot--;this.push(_.concat(e,")"))},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 f=this.inlineStack;this.inlineStack=[];for(var _=0,$=f.length;_<$;_++){var P=f[_];if(P instanceof p8)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(f){var _=this.isInline(),$=(_?this.inlineStack:this.compileStack).pop();if(!f&&$ instanceof p8)return $.value;else{if(!_){if(!this.stackSlot)throw new dq.default("Invalid stack pop");this.stackSlot--}return $}},topStack:function(){var f=this.isInline()?this.inlineStack:this.compileStack,_=f[f.length-1];if(_ instanceof p8)return _.value;else return _},contextName:function(f){if(this.useDepths&&f)return"depths["+f+"]";else return"depth"+f},quotedString:function(f){return this.source.quotedString(f)},objectLiteral:function(f){return this.source.objectLiteral(f)},aliasable:function(f){var _=this.aliases[f];if(_)return _.referenceCount++,_;return _=this.aliases[f]=this.source.wrap(f),_.aliasable=!0,_.referenceCount=1,_},setupHelper:function(f,_,$){var P=[],j=this.setupHelperArgs(_,f,P,$),K=this.nameLookup("helpers",_,"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=[],e=!$,r=void 0;if(e)$=[];if(P.name=this.quotedString(f),P.hash=this.popStack(),this.trackIds)P.hashIds=this.popStack();if(this.stringParams)P.hashTypes=this.popStack(),P.hashContexts=this.popStack();var m=this.popStack(),w=this.popStack();if(w||m)P.fn=w||"container.noop",P.inverse=m||"container.noop";var T=_;while(T--){if(r=this.popStack(),$[T]=r,this.trackIds)v[T]=this.popStack();if(this.stringParams)K[T]=this.popStack(),j[T]=this.popStack()}if(e)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(" "),f=W8.RESERVED_WORDS={};for(var _=0,$=q.length;_<$;_++)f[q[_]]=!0})();W8.isValidJavaScriptVariableName=function(q){return!W8.RESERVED_WORDS[q]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(q)};function dv(q,f,_,$,P){var j=f.popStack(),K=_.length;if(q)K--;for(;$<K;$++)j=f.nameLookup(j,_[$],P);if(q)return[f.aliasable("container.strict"),"(",j,", ",f.quotedString(_[$]),", ",JSON.stringify(f.source.currentLocation)," )"];else return j}u$.default=W8;t$.exports=u$.default});var X$=z((d$,A$)=>{d$.__esModule=!0;function C8(q){return q&&q.__esModule?q:{default:q}}var lv=A6(),Gv=C8(lv),bv=jq(),cv=C8(bv),Aq=x6(),Xq=U6(),Sv=a$(),Mv=C8(Sv),Vv=rf(),Cv=C8(Vv),Nv=_q(),yv=C8(Nv),gv=Gv.default.create;function i$(){var q=gv();return q.compile=function(f,_){return Xq.compile(f,_,q)},q.precompile=function(f,_){return Xq.precompile(f,_,q)},q.AST=cv.default,q.Compiler=Xq.Compiler,q.JavaScriptCompiler=Mv.default,q.Parser=Aq.parser,q.parse=Aq.parse,q.parseWithoutProcessing=Aq.parseWithoutProcessing,q}var J8=i$();J8.create=i$;yv.default(J8);J8.Visitor=Cv.default;J8.default=J8;d$.default=J8;A$.exports=d$.default});var l$=z((sv)=>{sv.__esModule=!0;sv.print=Lv;sv.PrintVisitor=Z;function Iv(q){return q&&q.__esModule?q:{default:q}}var Dv=rf(),xv=Iv(Dv);function Lv(q){return new Z().accept(q)}function Z(){this.padding=0}Z.prototype=new xv.default;Z.prototype.pad=function(q){var f="";for(var _=0,$=this.padding;_<$;_++)f+=" ";return f+=q+`
|
|
24
|
+
`,f};Z.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+=" ]",f+=this.pad(j)}for($=0,P=_.length;$<P;$++)f+=this.accept(_[$]);return this.padding--,f};Z.prototype.MustacheStatement=function(q){return this.pad("{{ "+this.SubExpression(q)+" }}")};Z.prototype.Decorator=function(q){return this.pad("{{ DIRECTIVE "+this.SubExpression(q)+" }}")};Z.prototype.BlockStatement=Z.prototype.DecoratorBlock=function(q){var f="";if(f+=this.pad((q.type==="DecoratorBlock"?"DIRECTIVE ":"")+"BLOCK:"),this.padding++,f+=this.pad(this.SubExpression(q)),q.program)f+=this.pad("PROGRAM:"),this.padding++,f+=this.accept(q.program),this.padding--;if(q.inverse){if(q.program)this.padding++;if(f+=this.pad("{{^}}"),this.padding++,f+=this.accept(q.inverse),this.padding--,q.program)this.padding--}return this.padding--,f};Z.prototype.PartialStatement=function(q){var f="PARTIAL:"+q.name.original;if(q.params[0])f+=" "+this.accept(q.params[0]);if(q.hash)f+=" "+this.accept(q.hash);return this.pad("{{> "+f+" }}")};Z.prototype.PartialBlockStatement=function(q){var f="PARTIAL BLOCK:"+q.name.original;if(q.params[0])f+=" "+this.accept(q.params[0]);if(q.hash)f+=" "+this.accept(q.hash);return f+=" "+this.pad("PROGRAM:"),this.padding++,f+=this.accept(q.program),this.padding--,this.pad("{{> "+f+" }}")};Z.prototype.ContentStatement=function(q){return this.pad("CONTENT[ '"+q.value+"' ]")};Z.prototype.CommentStatement=function(q){return this.pad("{{! '"+q.value+"' }}")};Z.prototype.SubExpression=function(q){var f=q.params,_=[],$=void 0;for(var P=0,j=f.length;P<j;P++)_.push(this.accept(f[P]));return f="["+_.join(", ")+"]",$=q.hash?" "+this.accept(q.hash):"",this.accept(q.path)+" "+f+$};Z.prototype.PathExpression=function(q){var f=q.parts.join("/");return(q.data?"@":"")+"PATH:"+f};Z.prototype.StringLiteral=function(q){return'"'+q.value+'"'};Z.prototype.NumberLiteral=function(q){return"NUMBER{"+q.value+"}"};Z.prototype.BooleanLiteral=function(q){return"BOOLEAN{"+q.value+"}"};Z.prototype.UndefinedLiteral=function(){return"UNDEFINED"};Z.prototype.NullLiteral=function(){return"NULL"};Z.prototype.Hash=function(q){var f=q.pairs,_=[];for(var $=0,P=f.length;$<P;$++)_.push(this.accept(f[$]));return"HASH{"+_.join(", ")+"}"};Z.prototype.HashPair=function(q){return q.key+"="+this.accept(q.value)}});var S$=z((W5,c$)=>{var Tf=X$().default,b$=l$();Tf.PrintVisitor=b$.PrintVisitor;Tf.print=b$.print;c$.exports=Tf;function G$(q,f){var _=Z8("fs"),$=_.readFileSync(f,"utf8");q.exports=Tf.compile($)}if(Z8.extensions)Z8.extensions[".handlebars"]=G$,Z8.extensions[".hbs"]=G$});var A=E(of(),1),D8=E(F(),1);import{stdin as Lq,stdout as sq}from"node:process";import*as Q from"node:readline";import Vq from"node:readline";import{WriteStream as L$}from"node:tty";function s$({onlyFirst:q=!1}={}){let f=["[\\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(f,q?void 0:"g")}var B$=s$();function Bq(q){if(typeof q!="string")throw TypeError(`Expected a \`string\`, got \`${typeof q}\``);return q.replace(B$,"")}function Uq(q){return q&&q.__esModule&&Object.prototype.hasOwnProperty.call(q,"default")?q.default:q}var Fq={exports:{}};(function(q){var f={};q.exports=f,f.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"},f.characterLength=function($){var P=this.eastAsianWidth($);return P=="F"||P=="W"||P=="A"?2:1};function _($){return $.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}f.length=function($){for(var P=_($),j=0,K=0;K<P.length;K++)j=j+this.characterLength(P[K]);return j},f.slice=function($,P,j){textLen=f.length($),P=P||0,j=j||1,P<0&&(P=textLen+P),j<0&&(j=textLen+j);for(var K="",v=0,e=_($),r=0;r<e.length;r++){var m=e[r],w=f.length(m);if(v>=P-(w==2?1:0))if(v+w<=j)K+=m;else break;v+=w}return K}})(Fq);var U$=Fq.exports,F$=Uq(U$),Q$=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},fK=Uq(Q$);function u8(q,f={}){if(typeof q!="string"||q.length===0||(f={ambiguousIsNarrow:!0,...f},q=Bq(q),q.length===0))return 0;q=q.replace(fK()," ");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(F$.eastAsianWidth(P)){case"F":case"W":$+=2;break;case"A":$+=_;break;default:$+=1}}return $}var Hf=10,Cq=(q=0)=>(f)=>`\x1B[${f+q}m`,Nq=(q=0)=>(f)=>`\x1B[${38+q};5;${f}m`,yq=(q=0)=>(f,_,$)=>`\x1B[${38+q};2;${f};${_};${$}m`,J={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(J.modifier);var qK=Object.keys(J.color),_K=Object.keys(J.bgColor);[...qK,..._K];function $K(){let q=new Map;for(let[f,_]of Object.entries(J)){for(let[$,P]of Object.entries(_))J[$]={open:`\x1B[${P[0]}m`,close:`\x1B[${P[1]}m`},_[$]=J[$],q.set(P[0],P[1]);Object.defineProperty(J,f,{value:_,enumerable:!1})}return Object.defineProperty(J,"codes",{value:q,enumerable:!1}),J.color.close="\x1B[39m",J.bgColor.close="\x1B[49m",J.color.ansi=Cq(),J.color.ansi256=Nq(),J.color.ansi16m=yq(),J.bgColor.ansi=Cq(Hf),J.bgColor.ansi256=Nq(Hf),J.bgColor.ansi16m=yq(Hf),Object.defineProperties(J,{rgbToAnsi256:{value:(f,_,$)=>f===_&&_===$?f<8?16:f>248?231:Math.round((f-8)/247*24)+232:16+36*Math.round(f/255*5)+6*Math.round(_/255*5)+Math.round($/255*5),enumerable:!1},hexToRgb:{value:(f)=>{let _=/[a-f\d]{6}|[a-f\d]{3}/i.exec(f.toString(16));if(!_)return[0,0,0];let[$]=_;$.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:(f)=>J.rgbToAnsi256(...J.hexToRgb(f)),enumerable:!1},ansi256ToAnsi:{value:(f)=>{if(f<8)return 30+f;if(f<16)return 90+(f-8);let _,$,P;if(f>=232)_=((f-232)*10+8)/255,$=_,P=_;else{f-=16;let v=f%36;_=Math.floor(f/36)/5,$=Math.floor(v/6)/5,P=v%6/5}let j=Math.max(_,$,P)*2;if(j===0)return 30;let K=30+(Math.round(P)<<2|Math.round($)<<1|Math.round(_));return j===2&&(K+=60),K},enumerable:!1},rgbToAnsi:{value:(f,_,$)=>J.ansi256ToAnsi(J.rgbToAnsi256(f,_,$)),enumerable:!1},hexToAnsi:{value:(f)=>J.ansi256ToAnsi(J.hexToAnsi256(f)),enumerable:!1}}),J}var KK=$K(),x8=new Set(["\x1B",""]),PK=39,Wf="\x07",Qq="[",jK="]",f_="m",Jf=`${jK}8;;`,gq=(q)=>`${x8.values().next().value}${Qq}${q}${f_}`,Rq=(q)=>`${x8.values().next().value}${Jf}${q}${Wf}`,vK=(q)=>q.split(" ").map((f)=>u8(f)),pf=(q,f,_)=>{let $=[...f],P=!1,j=!1,K=u8(Bq(q[q.length-1]));for(let[v,e]of $.entries()){let r=u8(e);if(K+r<=_?q[q.length-1]+=e:(q.push(e),K=0),x8.has(e)&&(P=!0,j=$.slice(v+1).join("").startsWith(Jf)),P){j?e===Wf&&(P=!1,j=!1):e===f_&&(P=!1);continue}K+=r,K===_&&v<$.length-1&&(q.push(""),K=0)}!K&&q[q.length-1].length>0&&q.length>1&&(q[q.length-2]+=q.pop())},rK=(q)=>{let f=q.split(" "),_=f.length;for(;_>0&&!(u8(f[_-1])>0);)_--;return _===f.length?q:f.slice(0,_).join(" ")+f.slice(_).join("")},eK=(q,f,_={})=>{if(_.trim!==!1&&q.trim()==="")return"";let $="",P,j,K=vK(q),v=[""];for(let[r,m]of q.split(" ").entries()){_.trim!==!1&&(v[v.length-1]=v[v.length-1].trimStart());let w=u8(v[v.length-1]);if(r!==0&&(w>=f&&(_.wordWrap===!1||_.trim===!1)&&(v.push(""),w=0),(w>0||_.trim===!1)&&(v[v.length-1]+=" ",w++)),_.hard&&K[r]>f){let T=f-w,h=1+Math.floor((K[r]-T-1)/f);Math.floor((K[r]-1)/f)<h&&v.push(""),pf(v,m,f);continue}if(w+K[r]>f&&w>0&&K[r]>0){if(_.wordWrap===!1&&w<f){pf(v,m,f);continue}v.push("")}if(w+K[r]>f&&_.wordWrap===!1){pf(v,m,f);continue}v[v.length-1]+=m}_.trim!==!1&&(v=v.map((r)=>rK(r)));let e=[...v.join(`
|
|
25
|
+
`)];for(let[r,m]of e.entries()){if($+=m,x8.has(m)){let{groups:T}=new RegExp(`(?:\\${Qq}(?<code>\\d+)m|\\${Jf}(?<uri>.*)${Wf})`).exec(e.slice(r).join(""))||{groups:{}};if(T.code!==void 0){let h=Number.parseFloat(T.code);P=h===PK?void 0:h}else T.uri!==void 0&&(j=T.uri.length===0?void 0:T.uri)}let w=KK.codes.get(Number(P));e[r+1]===`
|
|
26
|
+
`?(j&&($+=Rq("")),P&&w&&($+=gq(w))):m===`
|
|
27
|
+
`&&(P&&w&&($+=gq(P)),j&&($+=Rq(j)))}return $};function Eq(q,f,_){return String(q).normalize().replace(/\r\n/g,`
|
|
28
|
+
`).split(`
|
|
29
|
+
`).map(($)=>eK($,f,_)).join(`
|
|
30
|
+
`)}var wK=Object.defineProperty,mK=(q,f,_)=>(f in q)?wK(q,f,{enumerable:!0,configurable:!0,writable:!0,value:_}):q[f]=_,M=(q,f,_)=>(mK(q,typeof f!="symbol"?f+"":f,_),_);function OK(q,f){if(q===f)return;let _=q.split(`
|
|
31
|
+
`),$=f.split(`
|
|
32
|
+
`),P=[];for(let j=0;j<Math.max(_.length,$.length);j++)_[j]!==$[j]&&P.push(j);return P}var q_=Symbol("clack:cancel");function T8(q){return q===q_}function I8(q,f){q.isTTY&&q.setRawMode(f)}var Iq=new Map([["k","up"],["j","down"],["h","left"],["l","right"]]),TK=new Set(["up","down","left","right","space","enter"]);class t8{constructor({render:q,input:f=Lq,output:_=sq,...$},P=!0){M(this,"input"),M(this,"output"),M(this,"rl"),M(this,"opts"),M(this,"_track",!1),M(this,"_render"),M(this,"_cursor",0),M(this,"state","initial"),M(this,"value"),M(this,"error",""),M(this,"subscribers",new Map),M(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=f,this.output=_}prompt(){let q=new L$(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=Vq.createInterface({input:this.input,output:q,tabSize:2,prompt:"",escapeCodeTimeout:50}),Vq.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),I8(this.input,!0),this.output.on("resize",this.render),this.render(),new Promise((f,_)=>{this.once("submit",()=>{this.output.write(A.cursor.show),this.output.off("resize",this.render),I8(this.input,!1),f(this.value)}),this.once("cancel",()=>{this.output.write(A.cursor.show),this.output.off("resize",this.render),I8(this.input,!1),f(q_)})})}on(q,f){let _=this.subscribers.get(q)??[];_.push({cb:f}),this.subscribers.set(q,_)}once(q,f){let _=this.subscribers.get(q)??[];_.push({cb:f,once:!0}),this.subscribers.set(q,_)}emit(q,...f){let _=this.subscribers.get(q)??[],$=[];for(let P of _)P.cb(...f),P.once&&$.push(()=>_.splice(_.indexOf(P),1));for(let P of $)P()}unsubscribe(){this.subscribers.clear()}onKeypress(q,f){if(this.state==="error"&&(this.state="active"),f?.name&&!this._track&&Iq.has(f.name)&&this.emit("cursor",Iq.get(f.name)),f?.name&&TK.has(f.name)&&this.emit("cursor",f.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()),f?.name==="return"){if(this.opts.validate){let _=this.opts.validate(this.value);_&&(this.error=_,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
|
+
`),I8(this.input,!1),this.rl.close(),this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let q=Eq(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
|
|
34
|
+
`).length-1;this.output.write(A.cursor.move(-999,q*-1))}render(){let q=Eq(this._render(this)??"",process.stdout.columns,{hard:!0});if(q!==this._prevFrame){if(this.state==="initial")this.output.write(A.cursor.hide);else{let f=OK(this._prevFrame,q);if(this.restoreCursor(),f&&f?.length===1){let _=f[0];this.output.write(A.cursor.move(0,_)),this.output.write(A.erase.lines(1));let $=q.split(`
|
|
35
|
+
`);this.output.write($[_]),this._prevFrame=q,this.output.write(A.cursor.move(0,$.length-_-1));return}else if(f&&f?.length>1){let _=f[0];this.output.write(A.cursor.move(0,_)),this.output.write(A.erase.down());let $=q.split(`
|
|
36
|
+
`).slice(_);this.output.write($.join(`
|
|
37
|
+
`)),this._prevFrame=q;return}this.output.write(A.erase.down())}this.output.write(q),this.state==="initial"&&(this.state="active"),this._prevFrame=q}}}class Zf extends t8{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",(f)=>{this.output.write(A.cursor.move(0,-1)),this.value=f,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var hK=Object.defineProperty,YK=(q,f,_)=>(f in q)?hK(q,f,{enumerable:!0,configurable:!0,writable:!0,value:_}):q[f]=_,Dq=(q,f,_)=>(YK(q,typeof f!="symbol"?f+"":f,_),_),__=class extends t8{constructor(q){super(q,!1),Dq(this,"options"),Dq(this,"cursor",0),this.options=q.options,this.value=[...q.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:f})=>f===q.cursorAt),0),this.on("key",(f)=>{f==="a"&&this.toggleAll()}),this.on("cursor",(f)=>{switch(f){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((f)=>f.value)}toggleValue(){let q=this.value.includes(this._value);this.value=q?this.value.filter((f)=>f!==this._value):[...this.value,this._value]}};var kK=Object.defineProperty,zK=(q,f,_)=>(f in q)?kK(q,f,{enumerable:!0,configurable:!0,writable:!0,value:_}):q[f]=_,xq=(q,f,_)=>(zK(q,typeof f!="symbol"?f+"":f,_),_),$_=class extends t8{constructor(q){super(q,!1),xq(this,"options"),xq(this,"cursor",0),this.options=q.options,this.cursor=this.options.findIndex(({value:f})=>f===q.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",(f)=>{switch(f){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 oK=Object.defineProperty,nK=(q,f,_)=>(f in q)?oK(q,f,{enumerable:!0,configurable:!0,writable:!0,value:_}):q[f]=_,HK=(q,f,_)=>(nK(q,typeof f!="symbol"?f+"":f,_),_);class uf extends t8{constructor(q){super(q),HK(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}${D8.default.inverse(D8.default.hidden("_"))}`;else{let f=this.value.slice(0,this.cursor),_=this.value.slice(this.cursor);this.valueWithCursor=`${f}${D8.default.inverse(_[0])}${_.slice(1)}`}})}get cursor(){return this._cursor}}var pK=globalThis.process.platform.startsWith("win");function K_({input:q=Lq,output:f=sq,overwrite:_=!0,hideCursor:$=!0}={}){let P=Q.createInterface({input:q,output:f,prompt:"",tabSize:1});Q.emitKeypressEvents(q,P),q.isTTY&&q.setRawMode(!0);let j=(K,{name:v})=>{if(String(K)==="\x03"){$&&f.write(A.cursor.show),process.exit(0);return}if(!_)return;Q.moveCursor(f,v==="return"?0:-1,v==="return"?-1:0,()=>{Q.clearLine(f,1,()=>{q.once("keypress",j)})})};return $&&f.write(A.cursor.hide),q.once("keypress",j),()=>{q.off("keypress",j),$&&f.write(A.cursor.show),q.isTTY&&!pK&&q.setRawMode(!1),P.terminal=!1,P.close()}}var O=E(F(),1),h8=E(of(),1);import y from"node:process";function WK(){return y.platform!=="win32"?y.env.TERM!=="linux":!!y.env.CI||!!y.env.WT_SESSION||!!y.env.TERMINUS_SUBLIME||y.env.ConEmuTask==="{cmd::Cmder}"||y.env.TERM_PROGRAM==="Terminus-Sublime"||y.env.TERM_PROGRAM==="vscode"||y.env.TERM==="xterm-256color"||y.env.TERM==="alacritty"||y.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var af=WK(),u=(q,f)=>af?q:f,JK=u("◆","*"),v_=u("■","x"),r_=u("▲","x"),L8=u("◇","o"),ZK=u("┌","T"),n=u("│","|"),q8=u("└","—"),df=u("●",">"),Af=u("○"," "),uK=u("◻","[•]"),P_=u("◼","[+]"),tK=u("◻","[ ]"),G4=u("▪","•"),j_=u("─","-"),aK=u("╮","+"),iK=u("├","+"),dK=u("╯","+"),AK=u("●","•"),XK=u("◆","*"),lK=u("▲","!"),GK=u("■","x"),s8=(q)=>{switch(q){case"initial":case"active":return O.default.cyan(JK);case"cancel":return O.default.red(v_);case"error":return O.default.yellow(r_);case"submit":return O.default.green(L8)}},Xf=(q)=>{let{cursor:f,options:_,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;f>=v+K-3?v=Math.max(Math.min(f-K+3,_.length-K),0):f<v+2&&(v=Math.max(f-2,0));let e=K<_.length&&v>0,r=K<_.length&&v+K<_.length;return _.slice(v,v+K).map((m,w,T)=>{let h=w===0&&e,k=w===T.length-1&&r;return h||k?O.default.dim("..."):$(m,w+v===f)})},e_=(q)=>new uf({validate:q.validate,placeholder:q.placeholder,defaultValue:q.defaultValue,initialValue:q.initialValue,render(){let f=`${O.default.gray(n)}
|
|
38
|
+
${s8(this.state)} ${q.message}
|
|
39
|
+
`,_=q.placeholder?O.default.inverse(q.placeholder[0])+O.default.dim(q.placeholder.slice(1)):O.default.inverse(O.default.hidden("_")),$=this.value?this.valueWithCursor:_;switch(this.state){case"error":return`${f.trim()}
|
|
40
|
+
${O.default.yellow(n)} ${$}
|
|
41
|
+
${O.default.yellow(q8)} ${O.default.yellow(this.error)}
|
|
42
|
+
`;case"submit":return`${f}${O.default.gray(n)} ${O.default.dim(this.value||q.placeholder)}`;case"cancel":return`${f}${O.default.gray(n)} ${O.default.strikethrough(O.default.dim(this.value??""))}${this.value?.trim()?`
|
|
43
|
+
`+O.default.gray(n):""}`;default:return`${f}${O.default.cyan(n)} ${$}
|
|
44
|
+
${O.default.cyan(q8)}
|
|
45
|
+
`}}}).prompt();var lf=(q)=>{let f=q.active??"Yes",_=q.inactive??"No";return new Zf({active:f,inactive:_,initialValue:q.initialValue??!0,render(){let $=`${O.default.gray(n)}
|
|
46
|
+
${s8(this.state)} ${q.message}
|
|
47
|
+
`,P=this.value?f:_;switch(this.state){case"submit":return`${$}${O.default.gray(n)} ${O.default.dim(P)}`;case"cancel":return`${$}${O.default.gray(n)} ${O.default.strikethrough(O.default.dim(P))}
|
|
48
|
+
${O.default.gray(n)}`;default:return`${$}${O.default.cyan(n)} ${this.value?`${O.default.green(df)} ${f}`:`${O.default.dim(Af)} ${O.default.dim(f)}`} ${O.default.dim("/")} ${this.value?`${O.default.dim(Af)} ${O.default.dim(_)}`:`${O.default.green(df)} ${_}`}
|
|
49
|
+
${O.default.cyan(q8)}
|
|
50
|
+
`}}}).prompt()},B8=(q)=>{let f=(_,$)=>{let P=_.label??String(_.value);switch($){case"selected":return`${O.default.dim(P)}`;case"active":return`${O.default.green(df)} ${P} ${_.hint?O.default.dim(`(${_.hint})`):""}`;case"cancelled":return`${O.default.strikethrough(O.default.dim(P))}`;default:return`${O.default.dim(Af)} ${O.default.dim(P)}`}};return new $_({options:q.options,initialValue:q.initialValue,render(){let _=`${O.default.gray(n)}
|
|
51
|
+
${s8(this.state)} ${q.message}
|
|
52
|
+
`;switch(this.state){case"submit":return`${_}${O.default.gray(n)} ${f(this.options[this.cursor],"selected")}`;case"cancel":return`${_}${O.default.gray(n)} ${f(this.options[this.cursor],"cancelled")}
|
|
53
|
+
${O.default.gray(n)}`;default:return`${_}${O.default.cyan(n)} ${Xf({cursor:this.cursor,options:this.options,maxItems:q.maxItems,style:($,P)=>f($,P?"active":"inactive")}).join(`
|
|
54
|
+
${O.default.cyan(n)} `)}
|
|
55
|
+
${O.default.cyan(q8)}
|
|
56
|
+
`}}}).prompt()};var Gf=(q)=>{let f=(_,$)=>{let P=_.label??String(_.value);return $==="active"?`${O.default.cyan(uK)} ${P} ${_.hint?O.default.dim(`(${_.hint})`):""}`:$==="selected"?`${O.default.green(P_)} ${O.default.dim(P)}`:$==="cancelled"?`${O.default.strikethrough(O.default.dim(P))}`:$==="active-selected"?`${O.default.green(P_)} ${P} ${_.hint?O.default.dim(`(${_.hint})`):""}`:$==="submitted"?`${O.default.dim(P)}`:`${O.default.dim(tK)} ${O.default.dim(P)}`};return new __({options:q.options,initialValues:q.initialValues,required:q.required??!0,cursorAt:q.cursorAt,validate(_){if(this.required&&_.length===0)return`Please select at least one option.
|
|
57
|
+
${O.default.reset(O.default.dim(`Press ${O.default.gray(O.default.bgWhite(O.default.inverse(" space ")))} to select, ${O.default.gray(O.default.bgWhite(O.default.inverse(" enter ")))} to submit`))}`},render(){let _=`${O.default.gray(n)}
|
|
58
|
+
${s8(this.state)} ${q.message}
|
|
59
|
+
`,$=(P,j)=>{let K=this.value.includes(P.value);return j&&K?f(P,"active-selected"):K?f(P,"selected"):f(P,j?"active":"inactive")};switch(this.state){case"submit":return`${_}${O.default.gray(n)} ${this.options.filter(({value:P})=>this.value.includes(P)).map((P)=>f(P,"submitted")).join(O.default.dim(", "))||O.default.dim("none")}`;case"cancel":{let P=this.options.filter(({value:j})=>this.value.includes(j)).map((j)=>f(j,"cancelled")).join(O.default.dim(", "));return`${_}${O.default.gray(n)} ${P.trim()?`${P}
|
|
60
|
+
${O.default.gray(n)}`:""}`}case"error":{let P=this.error.split(`
|
|
61
|
+
`).map((j,K)=>K===0?`${O.default.yellow(q8)} ${O.default.yellow(j)}`:` ${j}`).join(`
|
|
62
|
+
`);return _+O.default.yellow(n)+" "+Xf({options:this.options,cursor:this.cursor,maxItems:q.maxItems,style:$}).join(`
|
|
63
|
+
${O.default.yellow(n)} `)+`
|
|
64
|
+
`+P+`
|
|
65
|
+
`}default:return`${_}${O.default.cyan(n)} ${Xf({options:this.options,cursor:this.cursor,maxItems:q.maxItems,style:$}).join(`
|
|
66
|
+
${O.default.cyan(n)} `)}
|
|
67
|
+
${O.default.cyan(q8)}
|
|
68
|
+
`}}}).prompt()};var tf=(q)=>q.replace(bK(),""),U8=(q="",f="")=>{let _=`
|
|
69
|
+
${q}
|
|
70
|
+
`.split(`
|
|
71
|
+
`),$=tf(f).length,P=Math.max(_.reduce((K,v)=>(v=tf(v),v.length>K?v.length:K),0),$)+2,j=_.map((K)=>`${O.default.gray(n)} ${O.default.dim(K)}${" ".repeat(P-tf(K).length)}${O.default.gray(n)}`).join(`
|
|
72
|
+
`);process.stdout.write(`${O.default.gray(n)}
|
|
73
|
+
${O.default.green(L8)} ${O.default.reset(f)} ${O.default.gray(j_.repeat(Math.max(P-$-1,1))+aK)}
|
|
74
|
+
${j}
|
|
75
|
+
${O.default.gray(iK+j_.repeat(P+2)+dK)}
|
|
76
|
+
`)},F8=(q="")=>{process.stdout.write(`${O.default.gray(q8)} ${O.default.red(q)}
|
|
77
|
+
|
|
78
|
+
`)},w_=(q="")=>{process.stdout.write(`${O.default.gray(ZK)} ${q}
|
|
79
|
+
`)},Q8=(q="")=>{process.stdout.write(`${O.default.gray(n)}
|
|
80
|
+
${O.default.gray(q8)} ${q}
|
|
81
|
+
|
|
82
|
+
`)},f8={message:(q="",{symbol:f=O.default.gray(n)}={})=>{let _=[`${O.default.gray(n)}`];if(q){let[$,...P]=q.split(`
|
|
83
|
+
`);_.push(`${f} ${$}`,...P.map((j)=>`${O.default.gray(n)} ${j}`))}process.stdout.write(`${_.join(`
|
|
84
|
+
`)}
|
|
85
|
+
`)},info:(q)=>{f8.message(q,{symbol:O.default.blue(AK)})},success:(q)=>{f8.message(q,{symbol:O.default.green(XK)})},step:(q)=>{f8.message(q,{symbol:O.default.green(L8)})},warn:(q)=>{f8.message(q,{symbol:O.default.yellow(lK)})},warning:(q)=>{f8.warn(q)},error:(q)=>{f8.message(q,{symbol:O.default.red(GK)})}},m_=()=>{let q=af?["◒","◐","◓","◑"]:["•","o","O","0"],f=af?80:120,_,$,P=!1,j="",K=(h)=>{let k=h>1?"Something went wrong":"Canceled";P&&T(k,h)},v=()=>K(2),e=()=>K(1),r=()=>{process.on("uncaughtExceptionMonitor",v),process.on("unhandledRejection",v),process.on("SIGINT",e),process.on("SIGTERM",e),process.on("exit",K)},m=()=>{process.removeListener("uncaughtExceptionMonitor",v),process.removeListener("unhandledRejection",v),process.removeListener("SIGINT",e),process.removeListener("SIGTERM",e),process.removeListener("exit",K)},w=(h="")=>{P=!0,_=K_(),j=h.replace(/\.+$/,""),process.stdout.write(`${O.default.gray(n)}
|
|
86
|
+
`);let k=0,p=0;r(),$=setInterval(()=>{let c=O.default.magenta(q[k]),a=".".repeat(Math.floor(p)).slice(0,3);process.stdout.write(h8.cursor.move(-999,0)),process.stdout.write(h8.erase.down(1)),process.stdout.write(`${c} ${j}${a}`),k=k+1<q.length?k+1:0,p=p<q.length?p+0.125:0},f)},T=(h="",k=0)=>{j=h??j,P=!1,clearInterval($);let p=k===0?O.default.green(L8):k===1?O.default.red(v_):O.default.red(r_);process.stdout.write(h8.cursor.move(-999,0)),process.stdout.write(h8.erase.down(1)),process.stdout.write(`${p} ${j}
|
|
87
|
+
`),m(),_()};return{start:w,stop:T,message:(h="")=>{j=h??j}}};function bK(){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 O_=async(q,f)=>{let _={},$=Object.keys(q);for(let P of $){let j=q[P],K=await j({results:_})?.catch((v)=>{throw v});if(typeof f?.onCancel=="function"&&T8(K)){_[P]="canceled",f.onCancel({results:_});continue}_[P]=K}return _};var $8=E(F(),1);var V=E(F(),1);var bf={$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 cf={$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 Sf={$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},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 a8=null,ff=null,i8=null;function h_(){if(a8)return a8;let q=bf;a8=new Map;for(let[f,_]of Object.entries(q.technologies))a8.set(f,_);return a8}function Y_(){if(ff)return ff;return ff=cf.matrix,ff}function Mf(){if(i8)return i8;let q=Sf;i8=new Map;for(let f of q.constraints)i8.set(f.id,f);return i8}function k_(){return Array.from(Mf().values())}function z_(){let q=bf,f=cf,_=Sf;return{scores:q.$version,matrix:f.$version,constraints:_.$version}}async function o_(){w_(V.default.cyan(" create-stacksfinder ")),U8(`Powered by ${V.default.cyan("stacksfinder.dev")}
|
|
88
|
+
Analyzes 50+ technologies across 6 criteria
|
|
89
|
+
to recommend your optimal stack.`,"Welcome");let q=await O_({projectName:()=>e_({message:"What is your project name?",placeholder:"my-awesome-app",validate:(_)=>{if(!_)return"Project name is required";if(!/^[a-z0-9-_]+$/i.test(_))return"Use only letters, numbers, hyphens, and underscores"}}),projectType:()=>B8({message:"What are you building?",options:[{value:"saas",label:"SaaS Application",hint:"subscription-based product"},{value:"web-app",label:"Web Application",hint:"general purpose app"},{value:"marketplace",label:"Marketplace",hint:"two-sided platform"},{value:"e-commerce",label:"E-commerce",hint:"online store"},{value:"api",label:"API / Backend",hint:"headless service"},{value:"blog",label:"Blog / Content",hint:"content-focused site"},{value:"portfolio",label:"Portfolio",hint:"personal showcase"}]}),scale:()=>B8({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 & scale"}]}),ecosystem:()=>B8({message:"Preferred ecosystem?",initialValue:"javascript",options:[{value:"javascript",label:"JavaScript/TypeScript",hint:"most popular"},{value:"rust",label:"Rust",hint:"maximum performance"},{value:"php",label:"PHP",hint:"Laravel ecosystem"},{value:"universal",label:"No preference",hint:"best fit overall"}]}),priorities:()=>Gf({message:"Top 3 priorities? (order matters)",required:!0,options:[{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"},{value:"compliance",label:"Compliance",hint:"GDPR, SOC2, etc."}]}),hasConstraints:()=>lf({message:"Do you have specific technical requirements?",initialValue:!1})},{onCancel:()=>{return F8("Operation cancelled."),null}});if(!q||q.projectName===void 0)return null;let f=[];if(q.hasConstraints)f=await VK();return{projectName:q.projectName,projectType:q.projectType,scale:q.scale,ecosystem:q.ecosystem,priorities:q.priorities.slice(0,3),constraints:f}}async function VK(){let q=k_(),f=[...new Set(q.map(($)=>$.category))],_=[];for(let $ of f){let P=q.filter((v)=>v.category===$);if(P.length===0)continue;let j=CK($),K=await Gf({message:`${j} requirements:`,required:!1,options:P.map((v)=>({value:v.id,label:v.label,hint:v.description}))});if(T8(K))break;_.push(...K)}return _}function CK(q){return{performance:"Performance",compliance:"Compliance",infrastructure:"Infrastructure",features:"Features",team:"Team"}[q]||q}async function n_(q){let f=q.map(($)=>`${$.category}: ${V.default.cyan($.tech)} ${NK($.grade)}`).join(`
|
|
90
|
+
`);U8(f,"Recommended Stack");let _=await lf({message:"Generate project with this stack?",initialValue:!0});return!T8(_)&&_}function NK(q){if(q.startsWith("A"))return V.default.green(`(${q})`);if(q.startsWith("B"))return V.default.yellow(`(${q})`);return V.default.red(`(${q})`)}function H_(q,f){let _=[`cd ${q}`,"bun install","bun run dev"].join(`
|
|
91
|
+
`);U8(_,"Next steps"),Q8(`${V.default.green("Done.")} Project created at ${V.default.cyan(f)}
|
|
92
|
+
|
|
93
|
+
${V.default.dim("More options at")} ${V.default.cyan("stacksfinder.dev")}`)}function p_(q){f8.error(V.default.red(q))}function Vf(){return m_()}var o=E(F(),1),W_={"A+":o.default.green,A:o.default.green,"A-":o.default.green,"B+":o.default.cyan,B:o.default.cyan,"B-":o.default.yellow,"C+":o.default.yellow,C:o.default.red,"C-":o.default.red},yK={"meta-framework":"Framework",database:"Database",orm:"ORM",auth:"Auth",hosting:"Hosting",payments:"Payments",backend:"Backend",frontend:"Frontend"};function J_(q){console.log("");let f="=".repeat(50);console.log(o.default.green(f)),console.log(o.default.green(o.default.bold(" RECOMMENDED STACK"))),console.log(o.default.green(f)),console.log("");for(let _ of q.categories)gK(_);console.log(""),RK(q),EK(q),console.log(""),console.log(o.default.dim("-".repeat(50))),console.log(o.default.dim(" Customize at ")+o.default.cyan("stacksfinder.dev")),console.log("")}function gK(q){let f=yK[q.category]||q.category,_=q.recommended,P=(W_[_.grade]||o.default.white)(`[${_.grade}]`);if(console.log(` ${o.default.bold(f.padEnd(12))} ${o.default.cyan(_.tech.name.padEnd(15))} `+P+o.default.dim(` ${_.gradeLabel}`)),q.alternatives.length>0){let j=q.alternatives.slice(0,2).map((K)=>`${K.tech.name} (${K.grade})`).join(", ");console.log(o.default.dim(` Alt: ${j}`))}}function RK(q){let{stackScore:f}=q,_=W_[f.grade]||o.default.white;console.log(o.default.dim("-".repeat(50))),console.log(""),console.log(` ${o.default.bold("Stack Score:")} `+_(o.default.bold(f.grade))+o.default.dim(` (${f.score}/100)`)),console.log(` ${o.default.dim(f.explanation)}`)}function EK(q){let{confidence:f}=q,$={high:o.default.green,medium:o.default.yellow,low:o.default.red}[f.level]||o.default.white;if(console.log(""),console.log(` ${o.default.bold("Confidence:")} `+$(f.level.toUpperCase())),f.reasons.length>0)for(let P of f.reasons)console.log(` ${o.default.dim("-")} ${o.default.dim(P)}`)}function Z_(q){let f={projectName:q.context.projectName,projectType:q.context.projectType,scale:q.context.scale,stack:Object.fromEntries(q.categories.map((_)=>[_.category,{recommended:_.recommended.tech.id,grade:_.recommended.grade,score:_.recommended.score}])),stackScore:q.stackScore,confidence:q.confidence};return JSON.stringify(f,null,2)}var qf=E(F(),1),IK=`
|
|
94
|
+
███████╗████████╗ █████╗ ██████╗██╗ ██╗███████╗
|
|
95
|
+
██╔════╝╚══██╔══╝██╔══██╗██╔════╝██║ ██╔╝██╔════╝
|
|
96
|
+
███████╗ ██║ ███████║██║ █████╔╝ ███████╗
|
|
97
|
+
╚════██║ ██║ ██╔══██║██║ ██╔═██╗ ╚════██║
|
|
98
|
+
███████║ ██║ ██║ ██║╚██████╗██║ ██╗███████║
|
|
99
|
+
╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝
|
|
100
|
+
|
|
101
|
+
███████╗██╗███╗ ██╗██████╗ ███████╗██████╗
|
|
102
|
+
██╔════╝██║████╗ ██║██╔══██╗██╔════╝██╔══██╗
|
|
103
|
+
█████╗ ██║██╔██╗ ██║██║ ██║█████╗ ██████╔╝
|
|
104
|
+
██╔══╝ ██║██║╚██╗██║██║ ██║██╔══╝ ██╔══██╗
|
|
105
|
+
██║ ██║██║ ╚████║██████╔╝███████╗██║ ██║
|
|
106
|
+
╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ ╚══════╝╚═╝ ╚═╝
|
|
107
|
+
`,DK=`
|
|
108
|
+
_____ _ _ ______ _ _
|
|
109
|
+
/ ____| | | | | ____(_) | |
|
|
110
|
+
| (___ | |_ __ _ ___| | _____| |__ _ _ __ __| | ___ _ __
|
|
111
|
+
\\___ \\| __/ _\` |/ __| |/ / __| __| | | '_ \\ / _\` |/ _ \\ '__|
|
|
112
|
+
____) | || (_| | (__| <\\__ \\ | | | | | | (_| | __/ |
|
|
113
|
+
|_____/ \\__\\__,_|\\___|_|\\_\\___/_| |_|_| |_|\\__,_|\\___|_|
|
|
114
|
+
`,xK=`
|
|
115
|
+
____ _ _ _____ _ _
|
|
116
|
+
/ ___|| |_ __ _ ___| | _____ | ___|(_) _ __ __| | ___ _ __
|
|
117
|
+
\\___ \\| __/ _\` |/ __| |/ / __|| |_ | || '_ \\ / _\` |/ _ \\| '__|
|
|
118
|
+
___) | || (_| | (__| <\\__ \\| _| | || | | || (_| | __/| |
|
|
119
|
+
|____/ \\__\\__,_|\\___|_|\\_\\___/|_| |_||_| |_| \\__,_|\\___||_|
|
|
120
|
+
`,LK=`
|
|
121
|
+
╔═══════════════════════════════════════════════════════╗
|
|
122
|
+
║ ║
|
|
123
|
+
║ ███████╗████████╗ █████╗ ██████╗██╗ ██╗███████╗ ║
|
|
124
|
+
║ ██╔════╝╚══██╔══╝██╔══██╗██╔════╝██║ ██╔╝██╔════╝ ║
|
|
125
|
+
║ ███████╗ ██║ ███████║██║ █████╔╝ ███████╗ ║
|
|
126
|
+
║ ╚════██║ ██║ ██╔══██║██║ ██╔═██╗ ╚════██║ ║
|
|
127
|
+
║ ███████║ ██║ ██║ ██║╚██████╗██║ ██╗███████║ ║
|
|
128
|
+
║ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝ ║
|
|
129
|
+
║ finder ║
|
|
130
|
+
║ ║
|
|
131
|
+
╚═══════════════════════════════════════════════════════╝
|
|
132
|
+
`,sK=`
|
|
133
|
+
[ S T A C K S F I N D E R ]
|
|
134
|
+
`,BK=`
|
|
135
|
+
╭──────────────────────────────────────────────────────╮
|
|
136
|
+
│ │
|
|
137
|
+
│ _____ _____ _ ____ _ ______ │
|
|
138
|
+
│ / ____|_ _|/ \\ / ___| |/ / ___| │
|
|
139
|
+
│ \\___ \\ | | / _ \\| | | ' /\\___ \\ │
|
|
140
|
+
│ ___) | | |/ ___ \\ |___| . \\ ___) | │
|
|
141
|
+
│ |____/ |_/_/ \\_\\____|_|\\_\\____/ │
|
|
142
|
+
│ │
|
|
143
|
+
│ ╭─────────────────────────────────────────────╮ │
|
|
144
|
+
│ │ F I N D E R │ │
|
|
145
|
+
│ ╰─────────────────────────────────────────────╯ │
|
|
146
|
+
│ │
|
|
147
|
+
╰──────────────────────────────────────────────────────╯
|
|
148
|
+
`;function UK(q="minimal"){switch(q){case"full":return IK;case"compact":return DK;case"box":return LK;case"oneline":return sK;case"shadow":return BK;case"minimal":default:return xK}}function FK(q="minimal"){let f=UK(q);console.log(qf.default.green(f))}function u_(q="minimal"){FK(q),console.log(qf.default.dim(" Scaffold optimized tech stacks")),console.log(qf.default.dim(" Powered by deterministic scoring")),console.log("")}var X=E(F(),1),Cf={audits:"AI-powered code audits",blueprints:"Save & share blueprints",migrations:"Migration recommendations",mcp:"IDE integration via MCP",team:"Team collaboration",compliance:"Compliance reports"};function Nf(q){let f=q.context.scale==="enterprise",_=q.stackScore.score>=85,$=q.categories.length>=5,P="blueprints";if(f)P="compliance";else if(q.context.constraints.length>2)P="audits";else if($)P="migrations";return{isEnterprise:f,isHighScore:_,hasComplexStack:$,primaryNeed:P}}function t_(q){let{isEnterprise:f,primaryNeed:_}=Nf(q);if(console.log(""),console.log(X.default.dim(" "+"-".repeat(48))),f)console.log(X.default.dim(" Need compliance reports & team collaboration?")),console.log(` ${X.default.cyan("stacksfinder.dev/enterprise")}`);else console.log(X.default.dim(" Fine-tune with 25+ constraints:")),console.log(` ${X.default.cyan("stacksfinder.dev/builder")}`)}function a_(q,f){let{primaryNeed:_}=Nf(q);console.log(""),console.log(X.default.dim(" "+"-".repeat(48))),console.log(X.default.dim(" Pro features for "+f+":")),console.log("");let $=[Cf.audits,Cf.blueprints,Cf[_]],P=[...new Set($)];for(let j of P.slice(0,3))console.log(X.default.dim(` - ${j}`));console.log(""),console.log(` ${X.default.cyan("stacksfinder.dev/pro")}`)}function yf(q){let{isHighScore:f}=Nf(q);if(console.log(""),f)console.log(X.default.dim(" Save this stack: ")+X.default.cyan("stacksfinder.dev/blueprint/new"));else console.log(X.default.dim(" Explore more options: ")+X.default.cyan("stacksfinder.dev"))}function i_(q){console.log(""),console.log(X.default.dim(" Something went wrong? Try the web version:")),console.log(` ${X.default.cyan("stacksfinder.dev/builder")}`)}var g=["perf","dx","ecosystem","maintain","cost","compliance"],d8={perf:0,dx:0,ecosystem:0,maintain:0,cost:0,compliance:0},gf=["meta-framework","database","orm","auth","hosting","payments"],d_=75;var QK={perf:0.15,dx:0.2,ecosystem:0.2,maintain:0.2,cost:0.15,compliance:0.1},fP={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 qP(q){let f={...QK};for(let $ of q.slice(0,3)){let P=fP[$];if(P){for(let j of g)if(P[j]!==void 0)f[j]+=P[j]}}for(let $ of g)f[$]=Math.max(0.05,Math.min(0.35,f[$]));let _=g.reduce(($,P)=>$+f[P],0);for(let $ of g)f[$]=Math.round(f[$]/_*1e4)/1e4;return f}function _P(q){return[`${q.projectType}_${q.scale}`,`${q.projectType}_default`,`default_${q.scale}`,q.scale,"default"]}function $P(q,f){let _=_P(f);for(let $ of _)if(q.scores[$])return{...q.scores[$]};if(q.scores.default)return{...q.scores.default};throw Error(`No scores found for ${q.id}`)}function KP(q,f){let _=Mf(),$={...d8};for(let K of f){let v=_.get(K);if(!v)continue;let e=v.techModifiers[q];if(e)for(let r of g){let m=e[r];if(m!==void 0)$[r]+=m}}let j=f.some((K)=>K.startsWith("language-"))?100:30;for(let K of g)$[K]=Math.max(-j,Math.min(j,$[K]));return $}function PP(q,f,_){if(_[q]?.[f]!==void 0)return _[q][f];if(_[f]?.[q]!==void 0)return _[f][q];return d_}function jP(q){if(q<50)return{dx:-15,maintain:-10};if(q<80)return{dx:-5,maintain:-3};return{}}function vP(q,f,_){let $={...d8},P=[];for(let[j,K]of Object.entries(f)){if(!K)continue;if(j===q.category)continue;let v=PP(q.id,K,_);if(v===0){P.push(K);continue}let e=jP(v);for(let r of g){let m=e[r];if(m!==void 0)$[r]+=m}}if(P.length>0)return{isCompatible:!1,vec:d8,incompatibleWith:P};for(let j of g)$[j]=Math.max(-30,$[j]);return{isCompatible:!0,vec:$,incompatibleWith:[]}}function Rf(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 rP(q,f){if(f.length===0)return{...Rf(0),percentile:0};let _=f.length,$=f.filter((v)=>v>q).length,P=f.filter((v)=>v===q).length,j=$+(P-1)/2,K=Math.round((1-j/_)*100);return{...Rf(K),percentile:K}}function eP(q,f,_){return Math.max(f,Math.min(_,q))}function wP(q,f,_){let $={...d8};for(let P of g){let j=q[P]+f[P]+_[P];$[P]=eP(j,0,100)}return $}function mP(q,f){let _=0;for(let $ of g)_+=f[$]*q[$];return Math.round(_)}function OP(q,f,_,$,P){try{let j=$P(q,f),K=KP(q.id,f.constraints),v=vP(q,_,P);if(!v.isCompatible)return null;let e=wP(j,K,v.vec),r=mP(e,$);return{tech:q,score:r,displayScore:0,percentile:0,grade:"B",gradeLabel:"Solid",gradeColor:"yellow",breakdown:e,isRecommended:!1,incompatibleWith:[]}}catch{return null}}function A_(q){let f=h_(),_=Y_(),$=qP(q.priorities),P={"meta-framework":null,database:null,orm:null,auth:null,hosting:null,payments:null,backend:null,frontend:null},j=[];for(let v of gf){let e=Array.from(f.values()).filter((h)=>h.category===v).filter((h)=>!h.deprecated).filter((h)=>{if(q.ecosystem&&q.ecosystem!=="universal")return h.ecosystem===q.ecosystem||h.ecosystem==="universal";return!0});if(e.length===0)continue;let r=e.map((h)=>OP(h,q,P,$,_)).filter((h)=>h!==null);if(r.length===0)continue;let m=r.map((h)=>h.score),w=r.map((h)=>{let k=rP(h.score,m);return{...h,displayScore:k.percentile,percentile:k.percentile,grade:k.grade,gradeLabel:k.label,gradeColor:k.color}});w.sort((h,k)=>k.score-h.score);let T=w[0];T.isRecommended=!0,P[v]=T.tech.id,j.push({category:v,recommended:T,alternatives:w.slice(1,4)})}let K=TP(j);return{categories:j,stackScore:K,confidence:hP(j),context:q}}function TP(q){if(q.length===0)return{score:0,grade:"C-",gradeLabel:"Incomplete",explanation:"No technologies could be recommended."};let f=Math.round(q.reduce((j,K)=>j+K.recommended.score,0)/q.length),_=Rf(f),$=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:f,grade:_.grade,gradeLabel:_.label,explanation:P}}function hP(q){let f=[],_=q.every((j)=>{if(j.alternatives.length===0)return!0;return j.recommended.score-j.alternatives[0].score>=5});if(_)f.push("Clear winners in each category");let $=q.length/gf.length;if($>=0.8)f.push("Full stack coverage");let P="medium";if(_&&$>=0.8)P="high";else if(!_&&$<0.5)P="low";return{level:P,reasons:f}}var lq=E(S$(),1);import{mkdir as m8,writeFile as t}from"fs/promises";import{join as H}from"path";function Qv(){lq.default.registerHelper("eq",(q,f)=>q===f),lq.default.registerHelper("ifCond",function(q,f,_,$){switch(f){case"==":return q==_?$.fn(this):$.inverse(this);case"===":return q===_?$.fn(this):$.inverse(this);case"!=":return q!=_?$.fn(this):$.inverse(this);default:return $.inverse(this)}})}function f4(q,f){let _=(r)=>{return f.categories.find((w)=>w.category===r)?.recommended.tech??null},$=_("meta-framework"),P=_("database"),j=_("orm"),K=_("auth"),v=_("hosting"),e=_("payments");return{projectName:q,projectType:f.context.projectType,scale:f.context.scale,framework:$,database:P,orm:j,auth:K,hosting:v,payments:e,hasAuth:!!K,hasPayments:!!e,isTypeScript:!0,isNextjs:$?.id==="nextjs",isSvelteKit:$?.id==="sveltekit",isNuxt:$?.id==="nuxt",isRemix:$?.id==="remix",isPostgres:P?.id==="postgres"||P?.id==="neon",isSqlite:P?.id==="sqlite"||P?.id==="turso",isMongoDB:P?.id==="mongodb",isSupabase:P?.id==="supabase",isFirebase:P?.id==="firebase",isDrizzle:j?.id==="drizzle",isPrisma:j?.id==="prisma",ecosystem:f.context.ecosystem||"javascript"}}async function M$(q,f,_){Qv();let $=f4(q,f);await m8(_,{recursive:!0}),await q4($,_),await j4($,_),await m4($,_),await h4($,_)}async function q4(q,f){let _=_4(q);await t(H(f,"package.json"),JSON.stringify(_,null,2));let $=$4(q);await t(H(f,"tsconfig.json"),JSON.stringify($,null,2)),await t(H(f,".gitignore"),K4()),await t(H(f,".env.example"),P4(q))}function _4(q){let f={},_={typescript:"^5.7.0","@types/node":"^22.0.0"},$={typecheck:"tsc --noEmit"};if(q.isNextjs)f.next="^15.0.0",f.react="^19.0.0",f["react-dom"]="^19.0.0",_["@types/react"]="^19.0.0",_["@types/react-dom"]="^19.0.0",$.dev="next dev",$.build="next build",$.start="next start";else if(q.isSvelteKit)f["@sveltejs/kit"]="^2.0.0",f.svelte="^5.0.0",_["@sveltejs/adapter-auto"]="^3.0.0",_["@sveltejs/vite-plugin-svelte"]="^4.0.0",_.vite="^6.0.0",$.dev="vite dev",$.build="vite build",$.preview="vite preview";else if(q.isNuxt)f.nuxt="^3.14.0",f.vue="^3.5.0",$.dev="nuxt dev",$.build="nuxt build",$.generate="nuxt generate";else if(q.isRemix)f["@remix-run/node"]="^2.15.0",f["@remix-run/react"]="^2.15.0",f.react="^19.0.0",f["react-dom"]="^19.0.0",_["@remix-run/dev"]="^2.15.0",$.dev="remix vite:dev",$.build="remix vite:build",$.start="remix-serve ./build/server/index.js";if(q.isDrizzle){if(f["drizzle-orm"]="^0.38.0",_["drizzle-kit"]="^0.30.0",$["db:push"]="drizzle-kit push",$["db:studio"]="drizzle-kit studio",q.isPostgres)f.postgres="^3.4.0";else if(q.isSqlite)f["better-sqlite3"]="^11.0.0",_["@types/better-sqlite3"]="^7.6.0"}else if(q.isPrisma)f["@prisma/client"]="^6.0.0",_.prisma="^6.0.0",$["db:push"]="prisma db push",$["db:studio"]="prisma studio";if(q.auth){if(q.auth.id==="clerk")f["@clerk/nextjs"]="^6.0.0";else if(q.auth.id==="better-auth")f["better-auth"]="^1.0.0";else if(q.auth.id==="authjs")f["next-auth"]="^5.0.0"}if(q.payments){if(q.payments.id==="stripe")f.stripe="^17.0.0";else if(q.payments.id==="paddle")f["@paddle/paddle-node-sdk"]="^1.0.0"}return{name:q.projectName,version:"0.1.0",private:!0,type:"module",scripts:$,dependencies:f,devDependencies:_}}function $4(q){let f={compilerOptions:{target:"ES2022",module:"ESNext",moduleResolution:"bundler",strict:!0,esModuleInterop:!0,skipLibCheck:!0,forceConsistentCasingInFileNames:!0,resolveJsonModule:!0},include:["src/**/*"],exclude:["node_modules"]};if(q.isNextjs)return{...f,compilerOptions:{...f.compilerOptions,lib:["dom","dom.iterable","esnext"],jsx:"preserve",incremental:!0,plugins:[{name:"next"}],paths:{"@/*":["./src/*"]}},include:["next-env.d.ts","**/*.ts","**/*.tsx",".next/types/**/*.ts"]};if(q.isSvelteKit)return{extends:"./.svelte-kit/tsconfig.json",compilerOptions:{...f.compilerOptions,paths:{"$lib/*":["./src/lib/*"]}},include:["src/**/*.ts","src/**/*.svelte"]};return f}function K4(){return`# Dependencies
|
|
149
|
+
node_modules/
|
|
150
|
+
.pnp/
|
|
151
|
+
.pnp.js
|
|
152
|
+
|
|
153
|
+
# Build outputs
|
|
154
|
+
dist/
|
|
155
|
+
build/
|
|
156
|
+
.next/
|
|
157
|
+
.nuxt/
|
|
158
|
+
.svelte-kit/
|
|
159
|
+
.output/
|
|
160
|
+
|
|
161
|
+
# Environment
|
|
162
|
+
.env
|
|
163
|
+
.env.local
|
|
164
|
+
.env.*.local
|
|
165
|
+
|
|
166
|
+
# IDE
|
|
167
|
+
.vscode/
|
|
168
|
+
.idea/
|
|
169
|
+
*.swp
|
|
170
|
+
*.swo
|
|
171
|
+
|
|
172
|
+
# OS
|
|
173
|
+
.DS_Store
|
|
174
|
+
Thumbs.db
|
|
175
|
+
|
|
176
|
+
# Misc
|
|
177
|
+
*.log
|
|
178
|
+
npm-debug.log*
|
|
179
|
+
yarn-debug.log*
|
|
180
|
+
yarn-error.log*
|
|
181
|
+
`}function P4(q){let f=["# Environment Variables",""];if(q.isPostgres||q.database?.id==="neon")f.push("# Database"),f.push('DATABASE_URL="postgresql://user:password@localhost:5432/db"'),f.push("");if(q.isSupabase)f.push("# Supabase"),f.push('SUPABASE_URL="https://your-project.supabase.co"'),f.push('SUPABASE_ANON_KEY="your-anon-key"'),f.push("");if(q.auth?.id==="clerk")f.push("# Clerk Auth"),f.push('NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=""'),f.push('CLERK_SECRET_KEY=""'),f.push("");if(q.payments?.id==="stripe")f.push("# Stripe"),f.push('STRIPE_SECRET_KEY=""'),f.push('STRIPE_WEBHOOK_SECRET=""'),f.push('NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=""'),f.push("");return f.join(`
|
|
182
|
+
`)}async function j4(q,f){if(q.isNextjs)await v4(q,f);else if(q.isSvelteKit)await r4(q,f);else if(q.isNuxt)await e4(q,f);else if(q.isRemix)await w4(q,f)}async function v4(q,f){let _=H(f,"src"),$=H(_,"app");await m8($,{recursive:!0}),await t(H(f,"next.config.ts"),`import type { NextConfig } from 'next';
|
|
183
|
+
|
|
184
|
+
const nextConfig: NextConfig = {
|
|
185
|
+
// Add your config here
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
export default nextConfig;
|
|
189
|
+
`),await t(H($,"layout.tsx"),`import type { Metadata } from 'next';
|
|
190
|
+
import './globals.css';
|
|
191
|
+
|
|
192
|
+
export const metadata: Metadata = {
|
|
193
|
+
title: '${q.projectName}',
|
|
194
|
+
description: 'Generated by create-stacksfinder',
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
export default function RootLayout({
|
|
198
|
+
children,
|
|
199
|
+
}: {
|
|
200
|
+
children: React.ReactNode;
|
|
201
|
+
}) {
|
|
202
|
+
return (
|
|
203
|
+
<html lang="en">
|
|
204
|
+
<body>{children}</body>
|
|
205
|
+
</html>
|
|
206
|
+
);
|
|
207
|
+
}
|
|
208
|
+
`),await t(H($,"page.tsx"),`export default function Home() {
|
|
209
|
+
return (
|
|
210
|
+
<main className="flex min-h-screen flex-col items-center justify-center p-24">
|
|
211
|
+
<h1 className="text-4xl font-bold">${q.projectName}</h1>
|
|
212
|
+
<p className="mt-4 text-lg text-gray-600">
|
|
213
|
+
Built with Next.js${q.isDrizzle?" + Drizzle":q.isPrisma?" + Prisma":""}
|
|
214
|
+
</p>
|
|
215
|
+
</main>
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
`),await t(H($,"globals.css"),`@tailwind base;
|
|
219
|
+
@tailwind components;
|
|
220
|
+
@tailwind utilities;
|
|
221
|
+
`)}async function r4(q,f){let _=H(f,"src"),$=H(_,"routes");await m8($,{recursive:!0}),await t(H(f,"svelte.config.js"),`import adapter from '@sveltejs/adapter-auto';
|
|
222
|
+
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
|
|
223
|
+
|
|
224
|
+
/** @type {import('@sveltejs/kit').Config} */
|
|
225
|
+
const config = {
|
|
226
|
+
preprocess: vitePreprocess(),
|
|
227
|
+
kit: {
|
|
228
|
+
adapter: adapter()
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
export default config;
|
|
233
|
+
`),await t(H(f,"vite.config.ts"),`import { sveltekit } from '@sveltejs/kit/vite';
|
|
234
|
+
import { defineConfig } from 'vite';
|
|
235
|
+
|
|
236
|
+
export default defineConfig({
|
|
237
|
+
plugins: [sveltekit()]
|
|
238
|
+
});
|
|
239
|
+
`),await t(H($,"+page.svelte"),`<script lang="ts">
|
|
240
|
+
// Add your logic here
|
|
241
|
+
</script>
|
|
242
|
+
|
|
243
|
+
<main class="flex min-h-screen flex-col items-center justify-center p-24">
|
|
244
|
+
<h1 class="text-4xl font-bold">${q.projectName}</h1>
|
|
245
|
+
<p class="mt-4 text-lg text-gray-600">
|
|
246
|
+
Built with SvelteKit${q.isDrizzle?" + Drizzle":q.isPrisma?" + Prisma":""}
|
|
247
|
+
</p>
|
|
248
|
+
</main>
|
|
249
|
+
`),await t(H(_,"app.html"),`<!doctype html>
|
|
250
|
+
<html lang="en">
|
|
251
|
+
<head>
|
|
252
|
+
<meta charset="utf-8" />
|
|
253
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
254
|
+
<title>${q.projectName}</title>
|
|
255
|
+
%sveltekit.head%
|
|
256
|
+
</head>
|
|
257
|
+
<body data-sveltekit-preload-data="hover">
|
|
258
|
+
<div style="display: contents">%sveltekit.body%</div>
|
|
259
|
+
</body>
|
|
260
|
+
</html>
|
|
261
|
+
`)}async function e4(q,f){let _=H(f,"pages");await m8(_,{recursive:!0}),await t(H(f,"nuxt.config.ts"),`export default defineNuxtConfig({
|
|
262
|
+
devtools: { enabled: true },
|
|
263
|
+
modules: [],
|
|
264
|
+
});
|
|
265
|
+
`),await t(H(_,"index.vue"),`<template>
|
|
266
|
+
<main class="flex min-h-screen flex-col items-center justify-center p-24">
|
|
267
|
+
<h1 class="text-4xl font-bold">${q.projectName}</h1>
|
|
268
|
+
<p class="mt-4 text-lg text-gray-600">
|
|
269
|
+
Built with Nuxt${q.isDrizzle?" + Drizzle":q.isPrisma?" + Prisma":""}
|
|
270
|
+
</p>
|
|
271
|
+
</main>
|
|
272
|
+
</template>
|
|
273
|
+
`)}async function w4(q,f){let _=H(f,"app"),$=H(_,"routes");await m8($,{recursive:!0}),await t(H(f,"vite.config.ts"),`import { vitePlugin as remix } from '@remix-run/dev';
|
|
274
|
+
import { defineConfig } from 'vite';
|
|
275
|
+
|
|
276
|
+
export default defineConfig({
|
|
277
|
+
plugins: [remix()],
|
|
278
|
+
});
|
|
279
|
+
`),await t(H(_,"root.tsx"),`import { Links, Meta, Outlet, Scripts, ScrollRestoration } from '@remix-run/react';
|
|
280
|
+
|
|
281
|
+
export default function App() {
|
|
282
|
+
return (
|
|
283
|
+
<html lang="en">
|
|
284
|
+
<head>
|
|
285
|
+
<meta charSet="utf-8" />
|
|
286
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
287
|
+
<Meta />
|
|
288
|
+
<Links />
|
|
289
|
+
</head>
|
|
290
|
+
<body>
|
|
291
|
+
<Outlet />
|
|
292
|
+
<ScrollRestoration />
|
|
293
|
+
<Scripts />
|
|
294
|
+
</body>
|
|
295
|
+
</html>
|
|
296
|
+
);
|
|
297
|
+
}
|
|
298
|
+
`),await t(H($,"_index.tsx"),`export default function Index() {
|
|
299
|
+
return (
|
|
300
|
+
<main className="flex min-h-screen flex-col items-center justify-center p-24">
|
|
301
|
+
<h1 className="text-4xl font-bold">${q.projectName}</h1>
|
|
302
|
+
<p className="mt-4 text-lg text-gray-600">
|
|
303
|
+
Built with Remix${q.isDrizzle?" + Drizzle":q.isPrisma?" + Prisma":""}
|
|
304
|
+
</p>
|
|
305
|
+
</main>
|
|
306
|
+
);
|
|
307
|
+
}
|
|
308
|
+
`)}async function m4(q,f){if(q.isDrizzle)await O4(q,f);else if(q.isPrisma)await T4(q,f)}async function O4(q,f){let _=H(f,"src","lib","db");await m8(_,{recursive:!0});let $="";if(q.isPostgres)$=`import { defineConfig } from 'drizzle-kit';
|
|
309
|
+
|
|
310
|
+
export default defineConfig({
|
|
311
|
+
schema: './src/lib/db/schema.ts',
|
|
312
|
+
out: './drizzle',
|
|
313
|
+
dialect: 'postgresql',
|
|
314
|
+
dbCredentials: {
|
|
315
|
+
url: process.env.DATABASE_URL!,
|
|
316
|
+
},
|
|
317
|
+
});
|
|
318
|
+
`;else if(q.isSqlite)$=`import { defineConfig } from 'drizzle-kit';
|
|
319
|
+
|
|
320
|
+
export default defineConfig({
|
|
321
|
+
schema: './src/lib/db/schema.ts',
|
|
322
|
+
out: './drizzle',
|
|
323
|
+
dialect: 'sqlite',
|
|
324
|
+
dbCredentials: {
|
|
325
|
+
url: './local.db',
|
|
326
|
+
},
|
|
327
|
+
});
|
|
328
|
+
`;await t(H(f,"drizzle.config.ts"),$);let P="";if(q.isPostgres)P=`import { pgTable, serial, text, timestamp } from 'drizzle-orm/pg-core';
|
|
329
|
+
|
|
330
|
+
export const users = pgTable('users', {
|
|
331
|
+
id: serial('id').primaryKey(),
|
|
332
|
+
name: text('name').notNull(),
|
|
333
|
+
email: text('email').notNull().unique(),
|
|
334
|
+
createdAt: timestamp('created_at').defaultNow().notNull(),
|
|
335
|
+
});
|
|
336
|
+
`;else if(q.isSqlite)P=`import { sqliteTable, integer, text } from 'drizzle-orm/sqlite-core';
|
|
337
|
+
|
|
338
|
+
export const users = sqliteTable('users', {
|
|
339
|
+
id: integer('id').primaryKey({ autoIncrement: true }),
|
|
340
|
+
name: text('name').notNull(),
|
|
341
|
+
email: text('email').notNull().unique(),
|
|
342
|
+
createdAt: text('created_at').default('CURRENT_TIMESTAMP').notNull(),
|
|
343
|
+
});
|
|
344
|
+
`;await t(H(_,"schema.ts"),P)}async function T4(q,f){let _=H(f,"prisma");await m8(_,{recursive:!0});let $="postgresql";if(q.isSqlite)$="sqlite";if(q.isMongoDB)$="mongodb";let P=`generator client {
|
|
345
|
+
provider = "prisma-client-js"
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
datasource db {
|
|
349
|
+
provider = "${$}"
|
|
350
|
+
url = env("DATABASE_URL")
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
model User {
|
|
354
|
+
id Int @id @default(autoincrement())
|
|
355
|
+
name String
|
|
356
|
+
email String @unique
|
|
357
|
+
createdAt DateTime @default(now())
|
|
358
|
+
}
|
|
359
|
+
`;await t(H(_,"schema.prisma"),P)}async function h4(q,f){let _=[q.framework&&`- **Framework:** ${q.framework.name}`,q.database&&`- **Database:** ${q.database.name}`,q.orm&&`- **ORM:** ${q.orm.name}`,q.auth&&`- **Auth:** ${q.auth.name}`,q.hosting&&`- **Hosting:** ${q.hosting.name}`,q.payments&&`- **Payments:** ${q.payments.name}`].filter(Boolean).join(`
|
|
360
|
+
`),$=`# ${q.projectName}
|
|
361
|
+
|
|
362
|
+
Generated by [create-stacksfinder](https://stacksfinder.dev)
|
|
363
|
+
|
|
364
|
+
## Stack
|
|
365
|
+
|
|
366
|
+
${_}
|
|
367
|
+
|
|
368
|
+
## Getting Started
|
|
369
|
+
|
|
370
|
+
\`\`\`bash
|
|
371
|
+
# Install dependencies
|
|
372
|
+
bun install
|
|
373
|
+
|
|
374
|
+
# Set up environment variables
|
|
375
|
+
cp .env.example .env
|
|
376
|
+
|
|
377
|
+
${q.isDrizzle||q.isPrisma?`# Set up database
|
|
378
|
+
bun run db:push
|
|
379
|
+
|
|
380
|
+
`:""}# Start development server
|
|
381
|
+
bun run dev
|
|
382
|
+
\`\`\`
|
|
383
|
+
|
|
384
|
+
## Scripts
|
|
385
|
+
|
|
386
|
+
- \`bun run dev\` - Start development server
|
|
387
|
+
- \`bun run build\` - Build for production
|
|
388
|
+
- \`bun run typecheck\` - Run TypeScript checks
|
|
389
|
+
${q.isDrizzle||q.isPrisma?"- `bun run db:push` - Push database schema\n- `bun run db:studio` - Open database studio":""}
|
|
390
|
+
|
|
391
|
+
## Learn More
|
|
392
|
+
|
|
393
|
+
- [StacksFinder](https://stacksfinder.dev) - Find your optimal tech stack
|
|
394
|
+
${q.framework?.url?`- [${q.framework.name} Docs](${q.framework.url})`:""}
|
|
395
|
+
${q.orm?.url?`- [${q.orm.name} Docs](${q.orm.url})`:""}
|
|
396
|
+
`;await t(H(f,"README.md"),$)}import{join as Y4}from"path";async function k4(){console.clear(),u_("box");let q=process.argv.slice(2),f=q.find((K)=>!K.startsWith("-")),_=q.includes("--recommend-only")||q.includes("-r"),$=q.includes("--json")||q.includes("-j"),P=q.includes("--version")||q.includes("-v"),j=q.includes("--help")||q.includes("-h");if(P){let K=z_();console.log("create-stacksfinder v0.1.0"),console.log(`Scoring data: v${K.scores}`),console.log(`Compatibility matrix: v${K.matrix}`),process.exit(0)}if(j)console.log(`
|
|
397
|
+
${$8.default.bold("create-stacksfinder")} - Scaffold optimized tech stacks
|
|
398
|
+
|
|
399
|
+
${$8.default.bold("USAGE")}
|
|
400
|
+
bun create stacksfinder [project-name] [options]
|
|
401
|
+
|
|
402
|
+
${$8.default.bold("OPTIONS")}
|
|
403
|
+
-r, --recommend-only Only show recommendations, don't generate project
|
|
404
|
+
-j, --json Output recommendation as JSON
|
|
405
|
+
-v, --version Show version
|
|
406
|
+
-h, --help Show this help
|
|
407
|
+
|
|
408
|
+
${$8.default.bold("EXAMPLES")}
|
|
409
|
+
bun create stacksfinder my-app
|
|
410
|
+
bun create stacksfinder --recommend-only
|
|
411
|
+
bun create stacksfinder my-api --json
|
|
412
|
+
|
|
413
|
+
${$8.default.bold("LEARN MORE")}
|
|
414
|
+
${$8.default.cyan("https://stacksfinder.dev")}
|
|
415
|
+
`),process.exit(0);try{let K=await o_();if(!K)process.exit(0);if(f)K.projectName=f;let v=Vf();v.start("Analyzing 50+ technologies...");let e=A_(K);if(v.stop("Analysis complete!"),$)console.log(Z_(e)),process.exit(0);if(J_(e),t_(e),_)yf(e),Q8(`${$8.default.dim("Generate this stack:")} bun create stacksfinder ${K.projectName}`),process.exit(0);let r=e.categories.map((h)=>({category:h.category,tech:h.recommended.tech.name,grade:h.recommended.grade}));if(!await n_(r))F8("Project generation cancelled."),process.exit(0);let w=Y4(process.cwd(),K.projectName),T=Vf();T.start("Generating project..."),await M$(K.projectName,e,w),T.stop("Project generated!"),H_(K.projectName,w),a_(e,K.projectName),yf(e)}catch(K){p_(K instanceof Error?K.message:"An unexpected error occurred"),i_(K instanceof Error?K.message:"Unknown error"),process.exit(1)}}k4().catch(console.error);
|