create-stacksfinder 0.6.2 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +6 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as hP}from"node:module";var OP=Object.create;var{getPrototypeOf:TP,defineProperty:nf,getOwnPropertyNames:YP}=Object;var kP=Object.prototype.hasOwnProperty;var L=(q,_,f)=>{f=q!=null?OP(TP(q)):{};let $=_||!q||!q.__esModule?nf(f,"default",{value:q,enumerable:!0}):f;for(let P of YP(q))if(!kP.call($,P))nf($,P,{get:()=>q[P],enumerable:!0});return $};var J=(q,_)=>()=>(_||q((_={exports:{}}).exports,_),_.exports);var t8=hP(import.meta.url);var Qq=J((a1,of)=>{var Fq={to(q,_){if(!_)return`\x1B[${q+1}G`;return`\x1B[${_+1};${q+1}H`},move(q,_){let f="";if(q<0)f+=`\x1B[${-q}D`;else if(q>0)f+=`\x1B[${q}C`;if(_<0)f+=`\x1B[${-_}A`;else if(_>0)f+=`\x1B[${_}B`;return f},up:(q=1)=>`\x1B[${q}A`,down:(q=1)=>`\x1B[${q}B`,forward:(q=1)=>`\x1B[${q}C`,backward:(q=1)=>`\x1B[${q}D`,nextLine:(q=1)=>"\x1B[E".repeat(q),prevLine:(q=1)=>"\x1B[F".repeat(q),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},zP={up:(q=1)=>"\x1B[S".repeat(q),down:(q=1)=>"\x1B[T".repeat(q)},eP={screen:"\x1B[2J",up:(q=1)=>"\x1B[1J".repeat(q),down:(q=1)=>"\x1B[J".repeat(q),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(q){let _="";for(let f=0;f<q;f++)_+=this.line+(f<q-1?Fq.up():"");if(q)_+=Fq.left;return _}};of.exports={cursor:Fq,scroll:zP,erase:eP,beep:"\x07"}});var f8=J((t1,q_)=>{var Zq=process||{},pf=Zq.argv||[],Jq=Zq.env||{},HP=!(!!Jq.NO_COLOR||pf.includes("--no-color"))&&(!!Jq.FORCE_COLOR||pf.includes("--color")||Zq.platform==="win32"||(Zq.stdout||{}).isTTY&&Jq.TERM!=="dumb"||!!Jq.CI),WP=(q,_,f=q)=>($)=>{let P=""+$,j=P.indexOf(_,q.length);return~j?q+JP(P,_,f,j)+_:q+P+_},JP=(q,_,f,$)=>{let P="",j=0;do P+=q.substring(j,$)+f,j=$+_.length,$=q.indexOf(_,j);while(~$);return P+q.substring(j)},uf=(q=HP)=>{let _=q?WP:()=>String;return{isColorSupported:q,reset:_("\x1B[0m","\x1B[0m"),bold:_("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:_("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:_("\x1B[3m","\x1B[23m"),underline:_("\x1B[4m","\x1B[24m"),inverse:_("\x1B[7m","\x1B[27m"),hidden:_("\x1B[8m","\x1B[28m"),strikethrough:_("\x1B[9m","\x1B[29m"),black:_("\x1B[30m","\x1B[39m"),red:_("\x1B[31m","\x1B[39m"),green:_("\x1B[32m","\x1B[39m"),yellow:_("\x1B[33m","\x1B[39m"),blue:_("\x1B[34m","\x1B[39m"),magenta:_("\x1B[35m","\x1B[39m"),cyan:_("\x1B[36m","\x1B[39m"),white:_("\x1B[37m","\x1B[39m"),gray:_("\x1B[90m","\x1B[39m"),bgBlack:_("\x1B[40m","\x1B[49m"),bgRed:_("\x1B[41m","\x1B[49m"),bgGreen:_("\x1B[42m","\x1B[49m"),bgYellow:_("\x1B[43m","\x1B[49m"),bgBlue:_("\x1B[44m","\x1B[49m"),bgMagenta:_("\x1B[45m","\x1B[49m"),bgCyan:_("\x1B[46m","\x1B[49m"),bgWhite:_("\x1B[47m","\x1B[49m"),blackBright:_("\x1B[90m","\x1B[39m"),redBright:_("\x1B[91m","\x1B[39m"),greenBright:_("\x1B[92m","\x1B[39m"),yellowBright:_("\x1B[93m","\x1B[39m"),blueBright:_("\x1B[94m","\x1B[39m"),magentaBright:_("\x1B[95m","\x1B[39m"),cyanBright:_("\x1B[96m","\x1B[39m"),whiteBright:_("\x1B[97m","\x1B[39m"),bgBlackBright:_("\x1B[100m","\x1B[49m"),bgRedBright:_("\x1B[101m","\x1B[49m"),bgGreenBright:_("\x1B[102m","\x1B[49m"),bgYellowBright:_("\x1B[103m","\x1B[49m"),bgBlueBright:_("\x1B[104m","\x1B[49m"),bgMagentaBright:_("\x1B[105m","\x1B[49m"),bgCyanBright:_("\x1B[106m","\x1B[49m"),bgWhiteBright:_("\x1B[107m","\x1B[49m")}};q_.exports=uf();q_.exports.createColors=uf});var D=J((P7)=>{P7.__esModule=!0;P7.extend=o6;P7.indexOf=Q9;P7.escapeExpression=q7;P7.isEmpty=_7;P7.createFrame=f7;P7.blockParams=$7;P7.appendContextPath=K7;var s9={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},B9=/[&<>"'`=]/g,U9=/[&<>"'`=]/;function F9(q){return s9[q]}function o6(q){for(var _=1;_<arguments.length;_++)for(var f in arguments[_])if(Object.prototype.hasOwnProperty.call(arguments[_],f))q[f]=arguments[_][f];return q}var A_=Object.prototype.toString;P7.toString=A_;var X_=function(_){return typeof _==="function"};if(X_(/x/))P7.isFunction=X_=function(q){return typeof q==="function"&&A_.call(q)==="[object Function]"};P7.isFunction=X_;var p6=Array.isArray||function(q){return q&&typeof q==="object"?A_.call(q)==="[object Array]":!1};P7.isArray=p6;function Q9(q,_){for(var f=0,$=q.length;f<$;f++)if(q[f]===_)return f;return-1}function q7(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(!U9.test(q))return q;return q.replace(B9,F9)}function _7(q){if(!q&&q!==0)return!0;else if(p6(q)&&q.length===0)return!0;else return!1}function f7(q){var _=o6({},q);return _._parent=q,_}function $7(q,_){return q.path=_,q}function K7(q,_){return(q?q+".":"")+_}});var K8=J((u6,i6)=>{u6.__esModule=!0;var a_=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function t_(q,_){var f=_&&_.loc,$=void 0,P=void 0,j=void 0,K=void 0;if(f)$=f.start.line,P=f.end.line,j=f.start.column,K=f.end.column,q+=" - "+$+":"+j;var v=Error.prototype.constructor.call(this,q);for(var r=0;r<a_.length;r++)this[a_[r]]=v[a_[r]];if(Error.captureStackTrace)Error.captureStackTrace(this,t_);try{if(f)if(this.lineNumber=$,this.endLineNumber=P,Object.defineProperty)Object.defineProperty(this,"column",{value:j,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:K,enumerable:!0});else this.column=j,this.endColumn=K}catch(w){}}t_.prototype=Error();u6.default=t_;i6.exports=u6.default});var A6=J((d6,X6)=>{d6.__esModule=!0;var G_=D();d6.default=function(q){q.registerHelper("blockHelperMissing",function(_,f){var{inverse:$,fn:P}=f;if(_===!0)return P(this);else if(_===!1||_==null)return $(this);else if(G_.isArray(_))if(_.length>0){if(f.ids)f.ids=[f.name];return q.helpers.each(_,f)}else return $(this);else{if(f.data&&f.ids){var j=G_.createFrame(f.data);j.contextPath=G_.appendContextPath(f.data.contextPath,f.name),f={data:j}}return P(_,f)}})};X6.exports=d6.default});var G6=J((a6,t6)=>{a6.__esModule=!0;function Z7(q){return q&&q.__esModule?q:{default:q}}var Pq=D(),n7=K8(),o7=Z7(n7);a6.default=function(q){q.registerHelper("each",function(_,f){if(!f)throw new o7.default("Must pass iterator to #each");var{fn:$,inverse:P}=f,j=0,K="",v=void 0,r=void 0;if(f.data&&f.ids)r=Pq.appendContextPath(f.data.contextPath,f.ids[0])+".";if(Pq.isFunction(_))_=_.call(this);if(f.data)v=Pq.createFrame(f.data);function w(z,H,o){if(v){if(v.key=z,v.index=H,v.first=H===0,v.last=!!o,r)v.contextPath=r+z}K=K+$(_[z],{data:v,blockParams:Pq.blockParams([_[z],z],[r+z,null])})}if(_&&typeof _==="object")if(Pq.isArray(_)){for(var O=_.length;j<O;j++)if(j in _)w(j,j,j===_.length-1)}else if(typeof Symbol==="function"&&_[Symbol.iterator]){var m=[],T=_[Symbol.iterator]();for(var h=T.next();!h.done;h=T.next())m.push(h.value);_=m;for(var O=_.length;j<O;j++)w(j,j,j===_.length-1)}else(function(){var z=void 0;if(Object.keys(_).forEach(function(H){if(z!==void 0)w(z,j-1);z=H,j++}),z!==void 0)w(z,j-1,!0)})();if(j===0)K=P(this);return K})};t6.exports=a6.default});var M6=J((l6,b6)=>{l6.__esModule=!0;function i7(q){return q&&q.__esModule?q:{default:q}}var d7=K8(),X7=i7(d7);l6.default=function(q){q.registerHelper("helperMissing",function(){if(arguments.length===1)return;else throw new X7.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})};b6.exports=l6.default});var N6=J((S6,c6)=>{S6.__esModule=!0;function t7(q){return q&&q.__esModule?q:{default:q}}var C6=D(),G7=K8(),V6=t7(G7);S6.default=function(q){q.registerHelper("if",function(_,f){if(arguments.length!=2)throw new V6.default("#if requires exactly one argument");if(C6.isFunction(_))_=_.call(this);if(!f.hash.includeZero&&!_||C6.isEmpty(_))return f.inverse(this);else return f.fn(this)}),q.registerHelper("unless",function(_,f){if(arguments.length!=2)throw new V6.default("#unless requires exactly one argument");return q.helpers.if.call(this,_,{fn:f.inverse,inverse:f.fn,hash:f.hash})})};c6.exports=S6.default});var g6=J((y6,R6)=>{y6.__esModule=!0;y6.default=function(q){q.registerHelper("log",function(){var _=[void 0],f=arguments[arguments.length-1];for(var $=0;$<arguments.length-1;$++)_.push(arguments[$]);var P=1;if(f.hash.level!=null)P=f.hash.level;else if(f.data&&f.data.level!=null)P=f.data.level;_[0]=P,q.log.apply(q,_)})};R6.exports=y6.default});var D6=J((E6,I6)=>{E6.__esModule=!0;E6.default=function(q){q.registerHelper("lookup",function(_,f,$){if(!_)return _;return $.lookupProperty(_,f)})};I6.exports=E6.default});var s6=J((x6,L6)=>{x6.__esModule=!0;function c7(q){return q&&q.__esModule?q:{default:q}}var jq=D(),N7=K8(),y7=c7(N7);x6.default=function(q){q.registerHelper("with",function(_,f){if(arguments.length!=2)throw new y7.default("#with requires exactly one argument");if(jq.isFunction(_))_=_.call(this);var $=f.fn;if(!jq.isEmpty(_)){var P=f.data;if(f.data&&f.ids)P=jq.createFrame(f.data),P.contextPath=jq.appendContextPath(f.data.contextPath,f.ids[0]);return $(_,{data:P,blockParams:jq.blockParams([_],[P&&P.contextPath])})}else return f.inverse(this)})};L6.exports=x6.default});var l_=J((jj)=>{jj.__esModule=!0;jj.registerDefaultHelpers=Kj;jj.moveHelperToHooks=Pj;function l8(q){return q&&q.__esModule?q:{default:q}}var E7=A6(),I7=l8(E7),D7=G6(),x7=l8(D7),L7=M6(),s7=l8(L7),B7=N6(),U7=l8(B7),F7=g6(),Q7=l8(F7),qj=D6(),_j=l8(qj),fj=s6(),$j=l8(fj);function Kj(q){I7.default(q),x7.default(q),s7.default(q),U7.default(q),Q7.default(q),_j.default(q),$j.default(q)}function Pj(q,_,f){if(q.helpers[_]){if(q.hooks[_]=q.helpers[_],!f)delete q.helpers[_]}}});var F6=J((B6,U6)=>{B6.__esModule=!0;var mj=D();B6.default=function(q){q.registerDecorator("inline",function(_,f,$,P){var j=_;if(!f.partials)f.partials={},j=function(K,v){var r=$.partials;$.partials=mj.extend({},r,f.partials);var w=_(K,v);return $.partials=r,w};return f.partials[P.args[0]]=P.fn,j})};U6.exports=B6.default});var Q6=J((ej)=>{ej.__esModule=!0;ej.registerDefaultDecorators=zj;function Yj(q){return q&&q.__esModule?q:{default:q}}var kj=F6(),hj=Yj(kj);function zj(q){hj.default(q)}});var b_=J((q$,_$)=>{q$.__esModule=!0;var Jj=D(),R8={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(_){if(typeof _==="string"){var f=Jj.indexOf(R8.methodMap,_.toLowerCase());if(f>=0)_=f;else _=parseInt(_,10)}return _},log:function(_){if(_=R8.lookupLevel(_),typeof console<"u"&&R8.lookupLevel(R8.level)<=_){var f=R8.methodMap[_];if(!console[f])f="log";for(var $=arguments.length,P=Array($>1?$-1:0),j=1;j<$;j++)P[j-1]=arguments[j];console[f].apply(console,P)}}};q$.default=R8;_$.exports=q$.default});var f$=J((uj)=>{uj.__esModule=!0;uj.createNewLookupObject=pj;var oj=D();function pj(){for(var q=arguments.length,_=Array(q),f=0;f<q;f++)_[f]=arguments[f];return oj.extend.apply(void 0,[Object.create(null)].concat(_))}});var M_=J((Mj)=>{Mj.__esModule=!0;Mj.createProtoAccessControl=tj;Mj.resultIsAllowed=Gj;Mj.resetLoggedProperties=bj;function Xj(q){return q&&q.__esModule?q:{default:q}}var $$=f$(),Aj=b_(),aj=Xj(Aj),Mq=Object.create(null);function tj(q){var _=Object.create(null);_.constructor=!1,_.__defineGetter__=!1,_.__defineSetter__=!1,_.__lookupGetter__=!1;var f=Object.create(null);return f.__proto__=!1,{properties:{whitelist:$$.createNewLookupObject(f,q.allowedProtoProperties),defaultValue:q.allowProtoPropertiesByDefault},methods:{whitelist:$$.createNewLookupObject(_,q.allowedProtoMethods),defaultValue:q.allowProtoMethodsByDefault}}}function Gj(q,_,f){if(typeof q==="function")return K$(_.methods,f);else return K$(_.properties,f)}function K$(q,_){if(q.whitelist[_]!==void 0)return q.whitelist[_]===!0;if(q.defaultValue!==void 0)return q.defaultValue;return lj(_),!1}function lj(q){if(Mq[q]!==!0)Mq[q]=!0,aj.default.log("error",'Handlebars: Access has been denied to resolve the property "'+q+`" because it is not an "own property" of its parent.
|
|
2
|
+
import{createRequire as hP}from"node:module";var OP=Object.create;var{getPrototypeOf:TP,defineProperty:nf,getOwnPropertyNames:YP}=Object;var kP=Object.prototype.hasOwnProperty;var L=(q,_,f)=>{f=q!=null?OP(TP(q)):{};let $=_||!q||!q.__esModule?nf(f,"default",{value:q,enumerable:!0}):f;for(let P of YP(q))if(!kP.call($,P))nf($,P,{get:()=>q[P],enumerable:!0});return $};var J=(q,_)=>()=>(_||q((_={exports:{}}).exports,_),_.exports);var t8=hP(import.meta.url);var Qq=J((l1,of)=>{var Fq={to(q,_){if(!_)return`\x1B[${q+1}G`;return`\x1B[${_+1};${q+1}H`},move(q,_){let f="";if(q<0)f+=`\x1B[${-q}D`;else if(q>0)f+=`\x1B[${q}C`;if(_<0)f+=`\x1B[${-_}A`;else if(_>0)f+=`\x1B[${_}B`;return f},up:(q=1)=>`\x1B[${q}A`,down:(q=1)=>`\x1B[${q}B`,forward:(q=1)=>`\x1B[${q}C`,backward:(q=1)=>`\x1B[${q}D`,nextLine:(q=1)=>"\x1B[E".repeat(q),prevLine:(q=1)=>"\x1B[F".repeat(q),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},zP={up:(q=1)=>"\x1B[S".repeat(q),down:(q=1)=>"\x1B[T".repeat(q)},eP={screen:"\x1B[2J",up:(q=1)=>"\x1B[1J".repeat(q),down:(q=1)=>"\x1B[J".repeat(q),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(q){let _="";for(let f=0;f<q;f++)_+=this.line+(f<q-1?Fq.up():"");if(q)_+=Fq.left;return _}};of.exports={cursor:Fq,scroll:zP,erase:eP,beep:"\x07"}});var f8=J((b1,q_)=>{var Zq=process||{},pf=Zq.argv||[],Jq=Zq.env||{},HP=!(!!Jq.NO_COLOR||pf.includes("--no-color"))&&(!!Jq.FORCE_COLOR||pf.includes("--color")||Zq.platform==="win32"||(Zq.stdout||{}).isTTY&&Jq.TERM!=="dumb"||!!Jq.CI),WP=(q,_,f=q)=>($)=>{let P=""+$,j=P.indexOf(_,q.length);return~j?q+JP(P,_,f,j)+_:q+P+_},JP=(q,_,f,$)=>{let P="",j=0;do P+=q.substring(j,$)+f,j=$+_.length,$=q.indexOf(_,j);while(~$);return P+q.substring(j)},uf=(q=HP)=>{let _=q?WP:()=>String;return{isColorSupported:q,reset:_("\x1B[0m","\x1B[0m"),bold:_("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:_("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:_("\x1B[3m","\x1B[23m"),underline:_("\x1B[4m","\x1B[24m"),inverse:_("\x1B[7m","\x1B[27m"),hidden:_("\x1B[8m","\x1B[28m"),strikethrough:_("\x1B[9m","\x1B[29m"),black:_("\x1B[30m","\x1B[39m"),red:_("\x1B[31m","\x1B[39m"),green:_("\x1B[32m","\x1B[39m"),yellow:_("\x1B[33m","\x1B[39m"),blue:_("\x1B[34m","\x1B[39m"),magenta:_("\x1B[35m","\x1B[39m"),cyan:_("\x1B[36m","\x1B[39m"),white:_("\x1B[37m","\x1B[39m"),gray:_("\x1B[90m","\x1B[39m"),bgBlack:_("\x1B[40m","\x1B[49m"),bgRed:_("\x1B[41m","\x1B[49m"),bgGreen:_("\x1B[42m","\x1B[49m"),bgYellow:_("\x1B[43m","\x1B[49m"),bgBlue:_("\x1B[44m","\x1B[49m"),bgMagenta:_("\x1B[45m","\x1B[49m"),bgCyan:_("\x1B[46m","\x1B[49m"),bgWhite:_("\x1B[47m","\x1B[49m"),blackBright:_("\x1B[90m","\x1B[39m"),redBright:_("\x1B[91m","\x1B[39m"),greenBright:_("\x1B[92m","\x1B[39m"),yellowBright:_("\x1B[93m","\x1B[39m"),blueBright:_("\x1B[94m","\x1B[39m"),magentaBright:_("\x1B[95m","\x1B[39m"),cyanBright:_("\x1B[96m","\x1B[39m"),whiteBright:_("\x1B[97m","\x1B[39m"),bgBlackBright:_("\x1B[100m","\x1B[49m"),bgRedBright:_("\x1B[101m","\x1B[49m"),bgGreenBright:_("\x1B[102m","\x1B[49m"),bgYellowBright:_("\x1B[103m","\x1B[49m"),bgBlueBright:_("\x1B[104m","\x1B[49m"),bgMagentaBright:_("\x1B[105m","\x1B[49m"),bgCyanBright:_("\x1B[106m","\x1B[49m"),bgWhiteBright:_("\x1B[107m","\x1B[49m")}};q_.exports=uf();q_.exports.createColors=uf});var D=J((P7)=>{P7.__esModule=!0;P7.extend=o6;P7.indexOf=Q9;P7.escapeExpression=q7;P7.isEmpty=_7;P7.createFrame=f7;P7.blockParams=$7;P7.appendContextPath=K7;var s9={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},B9=/[&<>"'`=]/g,U9=/[&<>"'`=]/;function F9(q){return s9[q]}function o6(q){for(var _=1;_<arguments.length;_++)for(var f in arguments[_])if(Object.prototype.hasOwnProperty.call(arguments[_],f))q[f]=arguments[_][f];return q}var A_=Object.prototype.toString;P7.toString=A_;var X_=function(_){return typeof _==="function"};if(X_(/x/))P7.isFunction=X_=function(q){return typeof q==="function"&&A_.call(q)==="[object Function]"};P7.isFunction=X_;var p6=Array.isArray||function(q){return q&&typeof q==="object"?A_.call(q)==="[object Array]":!1};P7.isArray=p6;function Q9(q,_){for(var f=0,$=q.length;f<$;f++)if(q[f]===_)return f;return-1}function q7(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(!U9.test(q))return q;return q.replace(B9,F9)}function _7(q){if(!q&&q!==0)return!0;else if(p6(q)&&q.length===0)return!0;else return!1}function f7(q){var _=o6({},q);return _._parent=q,_}function $7(q,_){return q.path=_,q}function K7(q,_){return(q?q+".":"")+_}});var K8=J((u6,i6)=>{u6.__esModule=!0;var a_=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function t_(q,_){var f=_&&_.loc,$=void 0,P=void 0,j=void 0,K=void 0;if(f)$=f.start.line,P=f.end.line,j=f.start.column,K=f.end.column,q+=" - "+$+":"+j;var v=Error.prototype.constructor.call(this,q);for(var r=0;r<a_.length;r++)this[a_[r]]=v[a_[r]];if(Error.captureStackTrace)Error.captureStackTrace(this,t_);try{if(f)if(this.lineNumber=$,this.endLineNumber=P,Object.defineProperty)Object.defineProperty(this,"column",{value:j,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:K,enumerable:!0});else this.column=j,this.endColumn=K}catch(w){}}t_.prototype=Error();u6.default=t_;i6.exports=u6.default});var A6=J((d6,X6)=>{d6.__esModule=!0;var G_=D();d6.default=function(q){q.registerHelper("blockHelperMissing",function(_,f){var{inverse:$,fn:P}=f;if(_===!0)return P(this);else if(_===!1||_==null)return $(this);else if(G_.isArray(_))if(_.length>0){if(f.ids)f.ids=[f.name];return q.helpers.each(_,f)}else return $(this);else{if(f.data&&f.ids){var j=G_.createFrame(f.data);j.contextPath=G_.appendContextPath(f.data.contextPath,f.name),f={data:j}}return P(_,f)}})};X6.exports=d6.default});var G6=J((a6,t6)=>{a6.__esModule=!0;function Z7(q){return q&&q.__esModule?q:{default:q}}var Pq=D(),n7=K8(),o7=Z7(n7);a6.default=function(q){q.registerHelper("each",function(_,f){if(!f)throw new o7.default("Must pass iterator to #each");var{fn:$,inverse:P}=f,j=0,K="",v=void 0,r=void 0;if(f.data&&f.ids)r=Pq.appendContextPath(f.data.contextPath,f.ids[0])+".";if(Pq.isFunction(_))_=_.call(this);if(f.data)v=Pq.createFrame(f.data);function w(z,H,o){if(v){if(v.key=z,v.index=H,v.first=H===0,v.last=!!o,r)v.contextPath=r+z}K=K+$(_[z],{data:v,blockParams:Pq.blockParams([_[z],z],[r+z,null])})}if(_&&typeof _==="object")if(Pq.isArray(_)){for(var O=_.length;j<O;j++)if(j in _)w(j,j,j===_.length-1)}else if(typeof Symbol==="function"&&_[Symbol.iterator]){var m=[],T=_[Symbol.iterator]();for(var h=T.next();!h.done;h=T.next())m.push(h.value);_=m;for(var O=_.length;j<O;j++)w(j,j,j===_.length-1)}else(function(){var z=void 0;if(Object.keys(_).forEach(function(H){if(z!==void 0)w(z,j-1);z=H,j++}),z!==void 0)w(z,j-1,!0)})();if(j===0)K=P(this);return K})};t6.exports=a6.default});var M6=J((l6,b6)=>{l6.__esModule=!0;function i7(q){return q&&q.__esModule?q:{default:q}}var d7=K8(),X7=i7(d7);l6.default=function(q){q.registerHelper("helperMissing",function(){if(arguments.length===1)return;else throw new X7.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})};b6.exports=l6.default});var N6=J((S6,c6)=>{S6.__esModule=!0;function t7(q){return q&&q.__esModule?q:{default:q}}var C6=D(),G7=K8(),V6=t7(G7);S6.default=function(q){q.registerHelper("if",function(_,f){if(arguments.length!=2)throw new V6.default("#if requires exactly one argument");if(C6.isFunction(_))_=_.call(this);if(!f.hash.includeZero&&!_||C6.isEmpty(_))return f.inverse(this);else return f.fn(this)}),q.registerHelper("unless",function(_,f){if(arguments.length!=2)throw new V6.default("#unless requires exactly one argument");return q.helpers.if.call(this,_,{fn:f.inverse,inverse:f.fn,hash:f.hash})})};c6.exports=S6.default});var g6=J((y6,R6)=>{y6.__esModule=!0;y6.default=function(q){q.registerHelper("log",function(){var _=[void 0],f=arguments[arguments.length-1];for(var $=0;$<arguments.length-1;$++)_.push(arguments[$]);var P=1;if(f.hash.level!=null)P=f.hash.level;else if(f.data&&f.data.level!=null)P=f.data.level;_[0]=P,q.log.apply(q,_)})};R6.exports=y6.default});var D6=J((E6,I6)=>{E6.__esModule=!0;E6.default=function(q){q.registerHelper("lookup",function(_,f,$){if(!_)return _;return $.lookupProperty(_,f)})};I6.exports=E6.default});var s6=J((x6,L6)=>{x6.__esModule=!0;function c7(q){return q&&q.__esModule?q:{default:q}}var jq=D(),N7=K8(),y7=c7(N7);x6.default=function(q){q.registerHelper("with",function(_,f){if(arguments.length!=2)throw new y7.default("#with requires exactly one argument");if(jq.isFunction(_))_=_.call(this);var $=f.fn;if(!jq.isEmpty(_)){var P=f.data;if(f.data&&f.ids)P=jq.createFrame(f.data),P.contextPath=jq.appendContextPath(f.data.contextPath,f.ids[0]);return $(_,{data:P,blockParams:jq.blockParams([_],[P&&P.contextPath])})}else return f.inverse(this)})};L6.exports=x6.default});var l_=J((jj)=>{jj.__esModule=!0;jj.registerDefaultHelpers=Kj;jj.moveHelperToHooks=Pj;function l8(q){return q&&q.__esModule?q:{default:q}}var E7=A6(),I7=l8(E7),D7=G6(),x7=l8(D7),L7=M6(),s7=l8(L7),B7=N6(),U7=l8(B7),F7=g6(),Q7=l8(F7),qj=D6(),_j=l8(qj),fj=s6(),$j=l8(fj);function Kj(q){I7.default(q),x7.default(q),s7.default(q),U7.default(q),Q7.default(q),_j.default(q),$j.default(q)}function Pj(q,_,f){if(q.helpers[_]){if(q.hooks[_]=q.helpers[_],!f)delete q.helpers[_]}}});var F6=J((B6,U6)=>{B6.__esModule=!0;var mj=D();B6.default=function(q){q.registerDecorator("inline",function(_,f,$,P){var j=_;if(!f.partials)f.partials={},j=function(K,v){var r=$.partials;$.partials=mj.extend({},r,f.partials);var w=_(K,v);return $.partials=r,w};return f.partials[P.args[0]]=P.fn,j})};U6.exports=B6.default});var Q6=J((ej)=>{ej.__esModule=!0;ej.registerDefaultDecorators=zj;function Yj(q){return q&&q.__esModule?q:{default:q}}var kj=F6(),hj=Yj(kj);function zj(q){hj.default(q)}});var b_=J((q$,_$)=>{q$.__esModule=!0;var Jj=D(),R8={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(_){if(typeof _==="string"){var f=Jj.indexOf(R8.methodMap,_.toLowerCase());if(f>=0)_=f;else _=parseInt(_,10)}return _},log:function(_){if(_=R8.lookupLevel(_),typeof console<"u"&&R8.lookupLevel(R8.level)<=_){var f=R8.methodMap[_];if(!console[f])f="log";for(var $=arguments.length,P=Array($>1?$-1:0),j=1;j<$;j++)P[j-1]=arguments[j];console[f].apply(console,P)}}};q$.default=R8;_$.exports=q$.default});var f$=J((uj)=>{uj.__esModule=!0;uj.createNewLookupObject=pj;var oj=D();function pj(){for(var q=arguments.length,_=Array(q),f=0;f<q;f++)_[f]=arguments[f];return oj.extend.apply(void 0,[Object.create(null)].concat(_))}});var M_=J((Mj)=>{Mj.__esModule=!0;Mj.createProtoAccessControl=tj;Mj.resultIsAllowed=Gj;Mj.resetLoggedProperties=bj;function Xj(q){return q&&q.__esModule?q:{default:q}}var $$=f$(),Aj=b_(),aj=Xj(Aj),Mq=Object.create(null);function tj(q){var _=Object.create(null);_.constructor=!1,_.__defineGetter__=!1,_.__defineSetter__=!1,_.__lookupGetter__=!1;var f=Object.create(null);return f.__proto__=!1,{properties:{whitelist:$$.createNewLookupObject(f,q.allowedProtoProperties),defaultValue:q.allowProtoPropertiesByDefault},methods:{whitelist:$$.createNewLookupObject(_,q.allowedProtoMethods),defaultValue:q.allowProtoMethodsByDefault}}}function Gj(q,_,f){if(typeof q==="function")return K$(_.methods,f);else return K$(_.properties,f)}function K$(q,_){if(q.whitelist[_]!==void 0)return q.whitelist[_]===!0;if(q.defaultValue!==void 0)return q.defaultValue;return lj(_),!1}function lj(q){if(Mq[q]!==!0)Mq[q]=!0,aj.default.log("error",'Handlebars: Access has been denied to resolve the property "'+q+`" because it is not an "own property" of its parent.
|
|
3
3
|
You can add a runtime option to disable the check or this warning:
|
|
4
4
|
See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details`)}function bj(){Object.keys(Mq).forEach(function(q){delete Mq[q]})}});var Vq=J((Bj)=>{Bj.__esModule=!0;Bj.HandlebarsEnvironment=S_;function P$(q){return q&&q.__esModule?q:{default:q}}var b8=D(),Nj=K8(),C_=P$(Nj),yj=l_(),Rj=Q6(),gj=b_(),Cq=P$(gj),Ej=M_(),Ij="4.7.8";Bj.VERSION=Ij;var Dj=8;Bj.COMPILER_REVISION=Dj;var xj=7;Bj.LAST_COMPATIBLE_COMPILER_REVISION=xj;var Lj={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"};Bj.REVISION_CHANGES=Lj;var V_="[object Object]";function S_(q,_,f){this.helpers=q||{},this.partials=_||{},this.decorators=f||{},yj.registerDefaultHelpers(this),Rj.registerDefaultDecorators(this)}S_.prototype={constructor:S_,logger:Cq.default,log:Cq.default.log,registerHelper:function(_,f){if(b8.toString.call(_)===V_){if(f)throw new C_.default("Arg not supported with multiple helpers");b8.extend(this.helpers,_)}else this.helpers[_]=f},unregisterHelper:function(_){delete this.helpers[_]},registerPartial:function(_,f){if(b8.toString.call(_)===V_)b8.extend(this.partials,_);else{if(typeof f>"u")throw new C_.default('Attempting to register a partial called "'+_+'" as undefined');this.partials[_]=f}},unregisterPartial:function(_){delete this.partials[_]},registerDecorator:function(_,f){if(b8.toString.call(_)===V_){if(f)throw new C_.default("Arg not supported with multiple decorators");b8.extend(this.decorators,_)}else this.decorators[_]=f},unregisterDecorator:function(_){delete this.decorators[_]},resetLoggedPropertyAccesses:function(){Ej.resetLoggedProperties()}};var sj=Cq.default.log;Bj.log=sj;Bj.createFrame=b8.createFrame;Bj.logger=Cq.default});var w$=J((j$,v$)=>{j$.__esModule=!0;function c_(q){this.string=q}c_.prototype.toString=c_.prototype.toHTML=function(){return""+this.string};j$.default=c_;v$.exports=j$.default});var r$=J((r3)=>{r3.__esModule=!0;r3.wrapHelper=w3;function w3(q,_){if(typeof q!=="function")return q;var f=function(){var P=arguments[arguments.length-1];return arguments[arguments.length-1]=_(P),q.apply(this,arguments)};return f}});var k$=J((p3)=>{p3.__esModule=!0;p3.checkRevision=e3;p3.template=H3;p3.wrapProgram=Sq;p3.resolvePartial=W3;p3.invokePartial=J3;p3.noop=T$;function T3(q){return q&&q.__esModule?q:{default:q}}function Y3(q){if(q&&q.__esModule)return q;else{var _={};if(q!=null){for(var f in q)if(Object.prototype.hasOwnProperty.call(q,f))_[f]=q[f]}return _.default=q,_}}var k3=D(),e8=Y3(k3),h3=K8(),H8=T3(h3),W8=Vq(),m$=l_(),z3=r$(),O$=M_();function e3(q){var _=q&&q[0]||1,f=W8.COMPILER_REVISION;if(_>=W8.LAST_COMPATIBLE_COMPILER_REVISION&&_<=W8.COMPILER_REVISION)return;if(_<W8.LAST_COMPATIBLE_COMPILER_REVISION){var $=W8.REVISION_CHANGES[f],P=W8.REVISION_CHANGES[_];throw new H8.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 H8.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 H3(q,_){if(!_)throw new H8.default("No environment passed to template");if(!q||!q.main)throw new H8.default("Unknown template object: "+typeof q);q.main.decorator=q.main_d,_.VM.checkRevision(q.compiler);var f=q.compiler&&q.compiler[0]===7;function $(K,v,r){if(r.hash){if(v=e8.extend({},v,r.hash),r.ids)r.ids[0]=!0}K=_.VM.resolvePartial.call(this,K,v,r);var w=e8.extend({},r,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),O=_.VM.invokePartial.call(this,K,v,w);if(O==null&&_.compile)r.partials[r.name]=_.compile(K,q.compilerOptions,_),O=r.partials[r.name](v,w);if(O!=null){if(r.indent){var m=O.split(`
|
|
5
5
|
`);for(var T=0,h=m.length;T<h;T++){if(!m[T]&&T+1===h)break;m[T]=r.indent+m[T]}O=m.join(`
|
|
@@ -21,7 +21,7 @@ Expecting `+n8.join(", ")+", got '"+(this.terminals_[A]||A)+"'";else S8="Parse e
|
|
|
21
21
|
return undefined
|
|
22
22
|
}
|
|
23
23
|
`.trim()},blockValue:function(_){var f=this.aliasable("container.hooks.blockHelperMissing"),$=[this.contextName(0)];this.setupHelperArgs(_,0,$);var P=this.popStack();$.splice(1,0,P),this.push(this.source.functionCall(f,"call",$))},ambiguousBlockValue:function(){var _=this.aliasable("container.hooks.blockHelperMissing"),f=[this.contextName(0)];this.setupHelperArgs("",0,f,!0),this.flushInline();var $=this.topStack();f.splice(1,0,$),this.pushSource(["if (!",this.lastHelper,") { ",$," = ",this.source.functionCall(_,"call",f),"}"])},appendContent:function(_){if(this.pendingContent)_=this.pendingContent+_;else this.pendingLocation=this.source.currentLocation;this.pendingContent=_},append:function(){if(this.isInline())this.replaceStack(function(f){return[" != null ? ",f,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var _=this.popStack();if(this.pushSource(["if (",_," != null) { ",this.appendToBuffer(_,void 0,!0)," }"]),this.environment.isSimple)this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(_){this.lastContext=_},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(_,f,$,P){var j=0;if(!P&&this.options.compat&&!this.lastContext)this.push(this.depthedLookup(_[j++]));else this.pushContext();this.resolvePath("context",_,j,f,$)},lookupBlockParam:function(_,f){this.useBlockParams=!0,this.push(["blockParams[",_[0],"][",_[1],"]"]),this.resolvePath("context",f,1)},lookupData:function(_,f,$){if(!_)this.pushStackLiteral("data");else this.pushStackLiteral("container.data(data, "+_+")");this.resolvePath("data",f,0,!0,$)},resolvePath:function(_,f,$,P,j){var K=this;if(this.options.strict||this.options.assumeObjects){this.push(r5(this.options.strict&&j,this,f,$,_));return}var v=f.length;for(;$<v;$++)this.replaceStack(function(r){var w=K.nameLookup(r,f[$],_);if(!P)return[" != null ? ",w," : ",r];else return[" && ",w]})},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(_,f){if(this.pushContext(),this.pushString(f),f!=="SubExpression")if(typeof _==="string")this.pushString(_);else this.pushStackLiteral(_)},emptyHash:function(_){if(this.trackIds)this.push("{}");if(this.stringParams)this.push("{}"),this.push("{}");this.pushStackLiteral(_?"undefined":"{}")},pushHash:function(){if(this.hash)this.hashes.push(this.hash);this.hash={values:{},types:[],contexts:[],ids:[]}},popHash:function(){var _=this.hash;if(this.hash=this.hashes.pop(),this.trackIds)this.push(this.objectLiteral(_.ids));if(this.stringParams)this.push(this.objectLiteral(_.contexts)),this.push(this.objectLiteral(_.types));this.push(this.objectLiteral(_.values))},pushString:function(_){this.pushStackLiteral(this.quotedString(_))},pushLiteral:function(_){this.pushStackLiteral(_)},pushProgram:function(_){if(_!=null)this.pushStackLiteral(this.programExpression(_));else this.pushStackLiteral(null)},registerDecorator:function(_,f){var $=this.nameLookup("decorators",f,"decorator"),P=this.setupHelperArgs(f,_);this.decorators.push(["fn = ",this.decorators.functionCall($,"",["fn","props","container",P])," || fn;"])},invokeHelper:function(_,f,$){var P=this.popStack(),j=this.setupHelper(_,f),K=[];if($)K.push(j.name);if(K.push(P),!this.options.strict)K.push(this.aliasable("container.hooks.helperMissing"));var v=["(",this.itemsSeparatedBy(K,"||"),")"],r=this.source.functionCall(v,"call",j.callParams);this.push(r)},itemsSeparatedBy:function(_,f){var $=[];$.push(_[0]);for(var P=1;P<_.length;P++)$.push(f,_[P]);return $},invokeKnownHelper:function(_,f){var $=this.setupHelper(_,f);this.push(this.source.functionCall($.name,"call",$.callParams))},invokeAmbiguous:function(_,f){this.useRegister("helper");var $=this.popStack();this.emptyHash();var P=this.setupHelper(0,_,f),j=this.lastHelper=this.nameLookup("helpers",_,"helper"),K=["(","(helper = ",j," || ",$,")"];if(!this.options.strict)K[0]="(helper = ",K.push(" != null ? helper : ",this.aliasable("container.hooks.helperMissing"));this.push(["(",K,P.paramsInit?["),(",P.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",P.callParams)," : helper))"])},invokePartial:function(_,f,$){var P=[],j=this.setupParams(f,1,P);if(_)f=this.popStack(),delete j.name;if($)j.indent=JSON.stringify($);if(j.helpers="helpers",j.partials="partials",j.decorators="container.decorators",!_)P.unshift(this.nameLookup("partials",f,"partial"));else P.unshift(f);if(this.options.compat)j.depths="depths";j=this.objectLiteral(j),P.push(j),this.push(this.source.functionCall("container.invokePartial","",P))},assignToHash:function(_){var f=this.popStack(),$=void 0,P=void 0,j=void 0;if(this.trackIds)j=this.popStack();if(this.stringParams)P=this.popStack(),$=this.popStack();var K=this.hash;if($)K.contexts[_]=$;if(P)K.types[_]=P;if(j)K.ids[_]=j;K.values[_]=f},pushId:function(_,f,$){if(_==="BlockParam")this.pushStackLiteral("blockParams["+f[0]+"].path["+f[1]+"]"+($?" + "+JSON.stringify("."+$):""));else if(_==="PathExpression")this.pushString(f);else if(_==="SubExpression")this.pushStackLiteral("true");else this.pushStackLiteral("null")},compiler:s8,compileChildren:function(_,f){var $=_.children,P=void 0,j=void 0;for(var K=0,v=$.length;K<v;K++){P=$[K],j=new this.compiler;var r=this.matchExistingProgram(P);if(r==null){this.context.programs.push("");var w=this.context.programs.length;P.index=w,P.name="program"+w,this.context.programs[w]=j.compile(P,f,this.context,!this.precompile),this.context.decorators[w]=j.decorators,this.context.environments[w]=P,this.useDepths=this.useDepths||j.useDepths,this.useBlockParams=this.useBlockParams||j.useBlockParams,P.useDepths=this.useDepths,P.useBlockParams=this.useBlockParams}else P.index=r.index,P.name="program"+r.index,this.useDepths=this.useDepths||r.useDepths,this.useBlockParams=this.useBlockParams||r.useBlockParams}},matchExistingProgram:function(_){for(var f=0,$=this.context.environments.length;f<$;f++){var P=this.context.environments[f];if(P&&P.equals(_))return P}},programExpression:function(_){var f=this.environment.children[_],$=[f.index,"data",f.blockParams];if(this.useBlockParams||this.useDepths)$.push("blockParams");if(this.useDepths)$.push("depths");return"container.program("+$.join(", ")+")"},useRegister:function(_){if(!this.registers[_])this.registers[_]=!0,this.registers.list.push(_)},push:function(_){if(!(_ instanceof L8))_=this.source.wrap(_);return this.inlineStack.push(_),_},pushStackLiteral:function(_){this.push(new L8(_))},pushSource:function(_){if(this.pendingContent)this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0;if(_)this.source.push(_)},replaceStack:function(_){var f=["("],$=void 0,P=void 0,j=void 0;if(!this.isInline())throw new Yf.default("replaceStack on non-inline");var K=this.popStack(!0);if(K instanceof L8)$=[K.value],f=["(",$],j=!0;else{P=!0;var v=this.incrStack();f=["((",this.push(v)," = ",K,")"],$=this.topStack()}var r=_.call(this,$);if(!j)this.popStack();if(P)this.stackSlot--;this.push(f.concat(r,")"))},incrStack:function(){if(this.stackSlot++,this.stackSlot>this.stackVars.length)this.stackVars.push("stack"+this.stackSlot);return this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var _=this.inlineStack;this.inlineStack=[];for(var f=0,$=_.length;f<$;f++){var P=_[f];if(P instanceof L8)this.compileStack.push(P);else{var j=this.incrStack();this.pushSource([j," = ",P,";"]),this.compileStack.push(j)}}},isInline:function(){return this.inlineStack.length},popStack:function(_){var f=this.isInline(),$=(f?this.inlineStack:this.compileStack).pop();if(!_&&$ instanceof L8)return $.value;else{if(!f){if(!this.stackSlot)throw new Yf.default("Invalid stack pop");this.stackSlot--}return $}},topStack:function(){var _=this.isInline()?this.inlineStack:this.compileStack,f=_[_.length-1];if(f instanceof L8)return f.value;else return f},contextName:function(_){if(this.useDepths&&_)return"depths["+_+"]";else return"depth"+_},quotedString:function(_){return this.source.quotedString(_)},objectLiteral:function(_){return this.source.objectLiteral(_)},aliasable:function(_){var f=this.aliases[_];if(f)return f.referenceCount++,f;return f=this.aliases[_]=this.source.wrap(_),f.aliasable=!0,f.referenceCount=1,f},setupHelper:function(_,f,$){var P=[],j=this.setupHelperArgs(f,_,P,$),K=this.nameLookup("helpers",f,"helper"),v=this.aliasable(this.contextName(0)+" != null ? "+this.contextName(0)+" : (container.nullContext || {})");return{params:P,paramsInit:j,name:K,callParams:[v].concat(P)}},setupParams:function(_,f,$){var P={},j=[],K=[],v=[],r=!$,w=void 0;if(r)$=[];if(P.name=this.quotedString(_),P.hash=this.popStack(),this.trackIds)P.hashIds=this.popStack();if(this.stringParams)P.hashTypes=this.popStack(),P.hashContexts=this.popStack();var O=this.popStack(),m=this.popStack();if(m||O)P.fn=m||"container.noop",P.inverse=O||"container.noop";var T=f;while(T--){if(w=this.popStack(),$[T]=w,this.trackIds)v[T]=this.popStack();if(this.stringParams)K[T]=this.popStack(),j[T]=this.popStack()}if(r)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(" "),_=s8.RESERVED_WORDS={};for(var f=0,$=q.length;f<$;f++)_[q[f]]=!0})();s8.isValidJavaScriptVariableName=function(q){return!s8.RESERVED_WORDS[q]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(q)};function r5(q,_,f,$,P){var j=_.popStack(),K=f.length;if(q)K--;for(;$<K;$++)j=_.nameLookup(j,f[$],P);if(q)return[_.aliasable("container.strict"),"(",j,", ",_.quotedString(f[$]),", ",JSON.stringify(_.source.currentLocation)," )"];else return j}eK.default=s8;HK.exports=eK.default});var oK=J((ZK,nK)=>{ZK.__esModule=!0;function kq(q){return q&&q.__esModule?q:{default:q}}var T5=n$(),Y5=kq(T5),k5=E_(),h5=kq(k5),kf=c$(),hf=g$(),z5=WK(),e5=kq(z5),H5=yq(),W5=kq(H5),J5=N_(),Z5=kq(J5),n5=Y5.default.create;function JK(){var q=n5();return q.compile=function(_,f){return hf.compile(_,f,q)},q.precompile=function(_,f){return hf.precompile(_,f,q)},q.AST=h5.default,q.Compiler=hf.Compiler,q.JavaScriptCompiler=e5.default,q.Parser=kf.parser,q.parse=kf.parse,q.parseWithoutProcessing=kf.parseWithoutProcessing,q}var B8=JK();B8.create=JK;Z5.default(B8);B8.Visitor=W5.default;B8.default=B8;ZK.default=B8;nK.exports=ZK.default});var pK=J((A5)=>{A5.__esModule=!0;A5.print=X5;A5.PrintVisitor=M;function u5(q){return q&&q.__esModule?q:{default:q}}var i5=yq(),d5=u5(i5);function X5(q){return new M().accept(q)}function M(){this.padding=0}M.prototype=new d5.default;M.prototype.pad=function(q){var _="";for(var f=0,$=this.padding;f<$;f++)_+=" ";return _+=q+`
|
|
24
|
-
`,_};M.prototype.Program=function(q){var _="",f=q.body,$=void 0,P=void 0;if(q.blockParams){var j="BLOCK PARAMS: [";for($=0,P=q.blockParams.length;$<P;$++)j+=" "+q.blockParams[$];j+=" ]",_+=this.pad(j)}for($=0,P=f.length;$<P;$++)_+=this.accept(f[$]);return this.padding--,_};M.prototype.MustacheStatement=function(q){return this.pad("{{ "+this.SubExpression(q)+" }}")};M.prototype.Decorator=function(q){return this.pad("{{ DIRECTIVE "+this.SubExpression(q)+" }}")};M.prototype.BlockStatement=M.prototype.DecoratorBlock=function(q){var _="";if(_+=this.pad((q.type==="DecoratorBlock"?"DIRECTIVE ":"")+"BLOCK:"),this.padding++,_+=this.pad(this.SubExpression(q)),q.program)_+=this.pad("PROGRAM:"),this.padding++,_+=this.accept(q.program),this.padding--;if(q.inverse){if(q.program)this.padding++;if(_+=this.pad("{{^}}"),this.padding++,_+=this.accept(q.inverse),this.padding--,q.program)this.padding--}return this.padding--,_};M.prototype.PartialStatement=function(q){var _="PARTIAL:"+q.name.original;if(q.params[0])_+=" "+this.accept(q.params[0]);if(q.hash)_+=" "+this.accept(q.hash);return this.pad("{{> "+_+" }}")};M.prototype.PartialBlockStatement=function(q){var _="PARTIAL BLOCK:"+q.name.original;if(q.params[0])_+=" "+this.accept(q.params[0]);if(q.hash)_+=" "+this.accept(q.hash);return _+=" "+this.pad("PROGRAM:"),this.padding++,_+=this.accept(q.program),this.padding--,this.pad("{{> "+_+" }}")};M.prototype.ContentStatement=function(q){return this.pad("CONTENT[ '"+q.value+"' ]")};M.prototype.CommentStatement=function(q){return this.pad("{{! '"+q.value+"' }}")};M.prototype.SubExpression=function(q){var _=q.params,f=[],$=void 0;for(var P=0,j=_.length;P<j;P++)f.push(this.accept(_[P]));return _="["+f.join(", ")+"]",$=q.hash?" "+this.accept(q.hash):"",this.accept(q.path)+" "+_+$};M.prototype.PathExpression=function(q){var _=q.parts.join("/");return(q.data?"@":"")+"PATH:"+_};M.prototype.StringLiteral=function(q){return'"'+q.value+'"'};M.prototype.NumberLiteral=function(q){return"NUMBER{"+q.value+"}"};M.prototype.BooleanLiteral=function(q){return"BOOLEAN{"+q.value+"}"};M.prototype.UndefinedLiteral=function(){return"UNDEFINED"};M.prototype.NullLiteral=function(){return"NULL"};M.prototype.Hash=function(q){var _=q.pairs,f=[];for(var $=0,P=_.length;$<P;$++)f.push(this.accept(_[$]));return"HASH{"+f.join(", ")+"}"};M.prototype.HashPair=function(q){return q.key+"="+this.accept(q.value)}});var XK=J((gw,dK)=>{var Dq=oK().default,iK=pK();Dq.PrintVisitor=iK.PrintVisitor;Dq.print=iK.print;dK.exports=Dq;function uK(q,_){var f=t8("fs"),$=f.readFileSync(_,"utf8");q.exports=Dq.compile($)}if(t8.extensions)t8.extensions[".handlebars"]=uK,t8.extensions[".hbs"]=uK});var E=L(Qq(),1),oq=L(f8(),1);import{stdin as Vf,stdout as Sf}from"node:process";import*as p8 from"node:readline";import df from"node:readline";import{WriteStream as ZP}from"node:tty";function nP({onlyFirst:q=!1}={}){let _=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(_,q?void 0:"g")}var oP=nP();function cf(q){if(typeof q!="string")throw TypeError(`Expected a \`string\`, got \`${typeof q}\``);return q.replace(oP,"")}function Nf(q){return q&&q.__esModule&&Object.prototype.hasOwnProperty.call(q,"default")?q.default:q}var yf={exports:{}};(function(q){var _={};q.exports=_,_.eastAsianWidth=function($){var P=$.charCodeAt(0),j=$.length==2?$.charCodeAt(1):0,K=P;return 55296<=P&&P<=56319&&56320<=j&&j<=57343&&(P&=1023,j&=1023,K=P<<10|j,K+=65536),K==12288||65281<=K&&K<=65376||65504<=K&&K<=65510?"F":K==8361||65377<=K&&K<=65470||65474<=K&&K<=65479||65482<=K&&K<=65487||65490<=K&&K<=65495||65498<=K&&K<=65500||65512<=K&&K<=65518?"H":4352<=K&&K<=4447||4515<=K&&K<=4519||4602<=K&&K<=4607||9001<=K&&K<=9002||11904<=K&&K<=11929||11931<=K&&K<=12019||12032<=K&&K<=12245||12272<=K&&K<=12283||12289<=K&&K<=12350||12353<=K&&K<=12438||12441<=K&&K<=12543||12549<=K&&K<=12589||12593<=K&&K<=12686||12688<=K&&K<=12730||12736<=K&&K<=12771||12784<=K&&K<=12830||12832<=K&&K<=12871||12880<=K&&K<=13054||13056<=K&&K<=19903||19968<=K&&K<=42124||42128<=K&&K<=42182||43360<=K&&K<=43388||44032<=K&&K<=55203||55216<=K&&K<=55238||55243<=K&&K<=55291||63744<=K&&K<=64255||65040<=K&&K<=65049||65072<=K&&K<=65106||65108<=K&&K<=65126||65128<=K&&K<=65131||110592<=K&&K<=110593||127488<=K&&K<=127490||127504<=K&&K<=127546||127552<=K&&K<=127560||127568<=K&&K<=127569||131072<=K&&K<=194367||177984<=K&&K<=196605||196608<=K&&K<=262141?"W":32<=K&&K<=126||162<=K&&K<=163||165<=K&&K<=166||K==172||K==175||10214<=K&&K<=10221||10629<=K&&K<=10630?"Na":K==161||K==164||167<=K&&K<=168||K==170||173<=K&&K<=174||176<=K&&K<=180||182<=K&&K<=186||188<=K&&K<=191||K==198||K==208||215<=K&&K<=216||222<=K&&K<=225||K==230||232<=K&&K<=234||236<=K&&K<=237||K==240||242<=K&&K<=243||247<=K&&K<=250||K==252||K==254||K==257||K==273||K==275||K==283||294<=K&&K<=295||K==299||305<=K&&K<=307||K==312||319<=K&&K<=322||K==324||328<=K&&K<=331||K==333||338<=K&&K<=339||358<=K&&K<=359||K==363||K==462||K==464||K==466||K==468||K==470||K==472||K==474||K==476||K==593||K==609||K==708||K==711||713<=K&&K<=715||K==717||K==720||728<=K&&K<=731||K==733||K==735||768<=K&&K<=879||913<=K&&K<=929||931<=K&&K<=937||945<=K&&K<=961||963<=K&&K<=969||K==1025||1040<=K&&K<=1103||K==1105||K==8208||8211<=K&&K<=8214||8216<=K&&K<=8217||8220<=K&&K<=8221||8224<=K&&K<=8226||8228<=K&&K<=8231||K==8240||8242<=K&&K<=8243||K==8245||K==8251||K==8254||K==8308||K==8319||8321<=K&&K<=8324||K==8364||K==8451||K==8453||K==8457||K==8467||K==8470||8481<=K&&K<=8482||K==8486||K==8491||8531<=K&&K<=8532||8539<=K&&K<=8542||8544<=K&&K<=8555||8560<=K&&K<=8569||K==8585||8592<=K&&K<=8601||8632<=K&&K<=8633||K==8658||K==8660||K==8679||K==8704||8706<=K&&K<=8707||8711<=K&&K<=8712||K==8715||K==8719||K==8721||K==8725||K==8730||8733<=K&&K<=8736||K==8739||K==8741||8743<=K&&K<=8748||K==8750||8756<=K&&K<=8759||8764<=K&&K<=8765||K==8776||K==8780||K==8786||8800<=K&&K<=8801||8804<=K&&K<=8807||8810<=K&&K<=8811||8814<=K&&K<=8815||8834<=K&&K<=8835||8838<=K&&K<=8839||K==8853||K==8857||K==8869||K==8895||K==8978||9312<=K&&K<=9449||9451<=K&&K<=9547||9552<=K&&K<=9587||9600<=K&&K<=9615||9618<=K&&K<=9621||9632<=K&&K<=9633||9635<=K&&K<=9641||9650<=K&&K<=9651||9654<=K&&K<=9655||9660<=K&&K<=9661||9664<=K&&K<=9665||9670<=K&&K<=9672||K==9675||9678<=K&&K<=9681||9698<=K&&K<=9701||K==9711||9733<=K&&K<=9734||K==9737||9742<=K&&K<=9743||9748<=K&&K<=9749||K==9756||K==9758||K==9792||K==9794||9824<=K&&K<=9825||9827<=K&&K<=9829||9831<=K&&K<=9834||9836<=K&&K<=9837||K==9839||9886<=K&&K<=9887||9918<=K&&K<=9919||9924<=K&&K<=9933||9935<=K&&K<=9953||K==9955||9960<=K&&K<=9983||K==10045||K==10071||10102<=K&&K<=10111||11093<=K&&K<=11097||12872<=K&&K<=12879||57344<=K&&K<=63743||65024<=K&&K<=65039||K==65533||127232<=K&&K<=127242||127248<=K&&K<=127277||127280<=K&&K<=127337||127344<=K&&K<=127386||917760<=K&&K<=917999||983040<=K&&K<=1048573||1048576<=K&&K<=1114109?"A":"N"},_.characterLength=function($){var P=this.eastAsianWidth($);return P=="F"||P=="W"||P=="A"?2:1};function f($){return $.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}_.length=function($){for(var P=f($),j=0,K=0;K<P.length;K++)j=j+this.characterLength(P[K]);return j},_.slice=function($,P,j){textLen=_.length($),P=P||0,j=j||1,P<0&&(P=textLen+P),j<0&&(j=textLen+j);for(var K="",v=0,r=f($),w=0;w<r.length;w++){var O=r[w],m=_.length(O);if(v>=P-(m==2?1:0))if(v+m<=j)K+=O;else break;v+=m}return K}})(yf);var pP=yf.exports,uP=Nf(pP),iP=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},dP=Nf(iP);function Q8(q,_={}){if(typeof q!="string"||q.length===0||(_={ambiguousIsNarrow:!0,..._},q=cf(q),q.length===0))return 0;q=q.replace(dP()," ");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(uP.eastAsianWidth(P)){case"F":case"W":$+=2;break;case"A":$+=f;break;default:$+=1}}return $}var __=10,Xf=(q=0)=>(_)=>`\x1B[${_+q}m`,Af=(q=0)=>(_)=>`\x1B[${38+q};5;${_}m`,af=(q=0)=>(_,f,$)=>`\x1B[${38+q};2;${_};${f};${$}m`,G={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(G.modifier);var XP=Object.keys(G.color),AP=Object.keys(G.bgColor);[...XP,...AP];function aP(){let q=new Map;for(let[_,f]of Object.entries(G)){for(let[$,P]of Object.entries(f))G[$]={open:`\x1B[${P[0]}m`,close:`\x1B[${P[1]}m`},f[$]=G[$],q.set(P[0],P[1]);Object.defineProperty(G,_,{value:f,enumerable:!1})}return Object.defineProperty(G,"codes",{value:q,enumerable:!1}),G.color.close="\x1B[39m",G.bgColor.close="\x1B[49m",G.color.ansi=Xf(),G.color.ansi256=Af(),G.color.ansi16m=af(),G.bgColor.ansi=Xf(__),G.bgColor.ansi256=Af(__),G.bgColor.ansi16m=af(__),Object.defineProperties(G,{rgbToAnsi256:{value:(_,f,$)=>_===f&&f===$?_<8?16:_>248?231:Math.round((_-8)/247*24)+232:16+36*Math.round(_/255*5)+6*Math.round(f/255*5)+Math.round($/255*5),enumerable:!1},hexToRgb:{value:(_)=>{let f=/[a-f\d]{6}|[a-f\d]{3}/i.exec(_.toString(16));if(!f)return[0,0,0];let[$]=f;$.length===3&&($=[...$].map((j)=>j+j).join(""));let P=Number.parseInt($,16);return[P>>16&255,P>>8&255,P&255]},enumerable:!1},hexToAnsi256:{value:(_)=>G.rgbToAnsi256(...G.hexToRgb(_)),enumerable:!1},ansi256ToAnsi:{value:(_)=>{if(_<8)return 30+_;if(_<16)return 90+(_-8);let f,$,P;if(_>=232)f=((_-232)*10+8)/255,$=f,P=f;else{_-=16;let v=_%36;f=Math.floor(_/36)/5,$=Math.floor(v/6)/5,P=v%6/5}let j=Math.max(f,$,P)*2;if(j===0)return 30;let K=30+(Math.round(P)<<2|Math.round($)<<1|Math.round(f));return j===2&&(K+=60),K},enumerable:!1},rgbToAnsi:{value:(_,f,$)=>G.ansi256ToAnsi(G.rgbToAnsi256(_,f,$)),enumerable:!1},hexToAnsi:{value:(_)=>G.ansi256ToAnsi(G.hexToAnsi256(_)),enumerable:!1}}),G}var tP=aP(),pq=new Set(["\x1B",""]),GP=39,$_="\x07",Rf="[",lP="]",gf="m",K_=`${lP}8;;`,tf=(q)=>`${pq.values().next().value}${Rf}${q}${gf}`,Gf=(q)=>`${pq.values().next().value}${K_}${q}${$_}`,bP=(q)=>q.split(" ").map((_)=>Q8(_)),f_=(q,_,f)=>{let $=[..._],P=!1,j=!1,K=Q8(cf(q[q.length-1]));for(let[v,r]of $.entries()){let w=Q8(r);if(K+w<=f?q[q.length-1]+=r:(q.push(r),K=0),pq.has(r)&&(P=!0,j=$.slice(v+1).join("").startsWith(K_)),P){j?r===$_&&(P=!1,j=!1):r===gf&&(P=!1);continue}K+=w,K===f&&v<$.length-1&&(q.push(""),K=0)}!K&&q[q.length-1].length>0&&q.length>1&&(q[q.length-2]+=q.pop())},MP=(q)=>{let _=q.split(" "),f=_.length;for(;f>0&&!(Q8(_[f-1])>0);)f--;return f===_.length?q:_.slice(0,f).join(" ")+_.slice(f).join("")},CP=(q,_,f={})=>{if(f.trim!==!1&&q.trim()==="")return"";let $="",P,j,K=bP(q),v=[""];for(let[w,O]of q.split(" ").entries()){f.trim!==!1&&(v[v.length-1]=v[v.length-1].trimStart());let m=Q8(v[v.length-1]);if(w!==0&&(m>=_&&(f.wordWrap===!1||f.trim===!1)&&(v.push(""),m=0),(m>0||f.trim===!1)&&(v[v.length-1]+=" ",m++)),f.hard&&K[w]>_){let T=_-m,h=1+Math.floor((K[w]-T-1)/_);Math.floor((K[w]-1)/_)<h&&v.push(""),f_(v,O,_);continue}if(m+K[w]>_&&m>0&&K[w]>0){if(f.wordWrap===!1&&m<_){f_(v,O,_);continue}v.push("")}if(m+K[w]>_&&f.wordWrap===!1){f_(v,O,_);continue}v[v.length-1]+=O}f.trim!==!1&&(v=v.map((w)=>MP(w)));let r=[...v.join(`
|
|
24
|
+
`,_};M.prototype.Program=function(q){var _="",f=q.body,$=void 0,P=void 0;if(q.blockParams){var j="BLOCK PARAMS: [";for($=0,P=q.blockParams.length;$<P;$++)j+=" "+q.blockParams[$];j+=" ]",_+=this.pad(j)}for($=0,P=f.length;$<P;$++)_+=this.accept(f[$]);return this.padding--,_};M.prototype.MustacheStatement=function(q){return this.pad("{{ "+this.SubExpression(q)+" }}")};M.prototype.Decorator=function(q){return this.pad("{{ DIRECTIVE "+this.SubExpression(q)+" }}")};M.prototype.BlockStatement=M.prototype.DecoratorBlock=function(q){var _="";if(_+=this.pad((q.type==="DecoratorBlock"?"DIRECTIVE ":"")+"BLOCK:"),this.padding++,_+=this.pad(this.SubExpression(q)),q.program)_+=this.pad("PROGRAM:"),this.padding++,_+=this.accept(q.program),this.padding--;if(q.inverse){if(q.program)this.padding++;if(_+=this.pad("{{^}}"),this.padding++,_+=this.accept(q.inverse),this.padding--,q.program)this.padding--}return this.padding--,_};M.prototype.PartialStatement=function(q){var _="PARTIAL:"+q.name.original;if(q.params[0])_+=" "+this.accept(q.params[0]);if(q.hash)_+=" "+this.accept(q.hash);return this.pad("{{> "+_+" }}")};M.prototype.PartialBlockStatement=function(q){var _="PARTIAL BLOCK:"+q.name.original;if(q.params[0])_+=" "+this.accept(q.params[0]);if(q.hash)_+=" "+this.accept(q.hash);return _+=" "+this.pad("PROGRAM:"),this.padding++,_+=this.accept(q.program),this.padding--,this.pad("{{> "+_+" }}")};M.prototype.ContentStatement=function(q){return this.pad("CONTENT[ '"+q.value+"' ]")};M.prototype.CommentStatement=function(q){return this.pad("{{! '"+q.value+"' }}")};M.prototype.SubExpression=function(q){var _=q.params,f=[],$=void 0;for(var P=0,j=_.length;P<j;P++)f.push(this.accept(_[P]));return _="["+f.join(", ")+"]",$=q.hash?" "+this.accept(q.hash):"",this.accept(q.path)+" "+_+$};M.prototype.PathExpression=function(q){var _=q.parts.join("/");return(q.data?"@":"")+"PATH:"+_};M.prototype.StringLiteral=function(q){return'"'+q.value+'"'};M.prototype.NumberLiteral=function(q){return"NUMBER{"+q.value+"}"};M.prototype.BooleanLiteral=function(q){return"BOOLEAN{"+q.value+"}"};M.prototype.UndefinedLiteral=function(){return"UNDEFINED"};M.prototype.NullLiteral=function(){return"NULL"};M.prototype.Hash=function(q){var _=q.pairs,f=[];for(var $=0,P=_.length;$<P;$++)f.push(this.accept(_[$]));return"HASH{"+f.join(", ")+"}"};M.prototype.HashPair=function(q){return q.key+"="+this.accept(q.value)}});var XK=J((Dw,dK)=>{var Dq=oK().default,iK=pK();Dq.PrintVisitor=iK.PrintVisitor;Dq.print=iK.print;dK.exports=Dq;function uK(q,_){var f=t8("fs"),$=f.readFileSync(_,"utf8");q.exports=Dq.compile($)}if(t8.extensions)t8.extensions[".handlebars"]=uK,t8.extensions[".hbs"]=uK});var E=L(Qq(),1),oq=L(f8(),1);import{stdin as Vf,stdout as Sf}from"node:process";import*as p8 from"node:readline";import df from"node:readline";import{WriteStream as ZP}from"node:tty";function nP({onlyFirst:q=!1}={}){let _=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(_,q?void 0:"g")}var oP=nP();function cf(q){if(typeof q!="string")throw TypeError(`Expected a \`string\`, got \`${typeof q}\``);return q.replace(oP,"")}function Nf(q){return q&&q.__esModule&&Object.prototype.hasOwnProperty.call(q,"default")?q.default:q}var yf={exports:{}};(function(q){var _={};q.exports=_,_.eastAsianWidth=function($){var P=$.charCodeAt(0),j=$.length==2?$.charCodeAt(1):0,K=P;return 55296<=P&&P<=56319&&56320<=j&&j<=57343&&(P&=1023,j&=1023,K=P<<10|j,K+=65536),K==12288||65281<=K&&K<=65376||65504<=K&&K<=65510?"F":K==8361||65377<=K&&K<=65470||65474<=K&&K<=65479||65482<=K&&K<=65487||65490<=K&&K<=65495||65498<=K&&K<=65500||65512<=K&&K<=65518?"H":4352<=K&&K<=4447||4515<=K&&K<=4519||4602<=K&&K<=4607||9001<=K&&K<=9002||11904<=K&&K<=11929||11931<=K&&K<=12019||12032<=K&&K<=12245||12272<=K&&K<=12283||12289<=K&&K<=12350||12353<=K&&K<=12438||12441<=K&&K<=12543||12549<=K&&K<=12589||12593<=K&&K<=12686||12688<=K&&K<=12730||12736<=K&&K<=12771||12784<=K&&K<=12830||12832<=K&&K<=12871||12880<=K&&K<=13054||13056<=K&&K<=19903||19968<=K&&K<=42124||42128<=K&&K<=42182||43360<=K&&K<=43388||44032<=K&&K<=55203||55216<=K&&K<=55238||55243<=K&&K<=55291||63744<=K&&K<=64255||65040<=K&&K<=65049||65072<=K&&K<=65106||65108<=K&&K<=65126||65128<=K&&K<=65131||110592<=K&&K<=110593||127488<=K&&K<=127490||127504<=K&&K<=127546||127552<=K&&K<=127560||127568<=K&&K<=127569||131072<=K&&K<=194367||177984<=K&&K<=196605||196608<=K&&K<=262141?"W":32<=K&&K<=126||162<=K&&K<=163||165<=K&&K<=166||K==172||K==175||10214<=K&&K<=10221||10629<=K&&K<=10630?"Na":K==161||K==164||167<=K&&K<=168||K==170||173<=K&&K<=174||176<=K&&K<=180||182<=K&&K<=186||188<=K&&K<=191||K==198||K==208||215<=K&&K<=216||222<=K&&K<=225||K==230||232<=K&&K<=234||236<=K&&K<=237||K==240||242<=K&&K<=243||247<=K&&K<=250||K==252||K==254||K==257||K==273||K==275||K==283||294<=K&&K<=295||K==299||305<=K&&K<=307||K==312||319<=K&&K<=322||K==324||328<=K&&K<=331||K==333||338<=K&&K<=339||358<=K&&K<=359||K==363||K==462||K==464||K==466||K==468||K==470||K==472||K==474||K==476||K==593||K==609||K==708||K==711||713<=K&&K<=715||K==717||K==720||728<=K&&K<=731||K==733||K==735||768<=K&&K<=879||913<=K&&K<=929||931<=K&&K<=937||945<=K&&K<=961||963<=K&&K<=969||K==1025||1040<=K&&K<=1103||K==1105||K==8208||8211<=K&&K<=8214||8216<=K&&K<=8217||8220<=K&&K<=8221||8224<=K&&K<=8226||8228<=K&&K<=8231||K==8240||8242<=K&&K<=8243||K==8245||K==8251||K==8254||K==8308||K==8319||8321<=K&&K<=8324||K==8364||K==8451||K==8453||K==8457||K==8467||K==8470||8481<=K&&K<=8482||K==8486||K==8491||8531<=K&&K<=8532||8539<=K&&K<=8542||8544<=K&&K<=8555||8560<=K&&K<=8569||K==8585||8592<=K&&K<=8601||8632<=K&&K<=8633||K==8658||K==8660||K==8679||K==8704||8706<=K&&K<=8707||8711<=K&&K<=8712||K==8715||K==8719||K==8721||K==8725||K==8730||8733<=K&&K<=8736||K==8739||K==8741||8743<=K&&K<=8748||K==8750||8756<=K&&K<=8759||8764<=K&&K<=8765||K==8776||K==8780||K==8786||8800<=K&&K<=8801||8804<=K&&K<=8807||8810<=K&&K<=8811||8814<=K&&K<=8815||8834<=K&&K<=8835||8838<=K&&K<=8839||K==8853||K==8857||K==8869||K==8895||K==8978||9312<=K&&K<=9449||9451<=K&&K<=9547||9552<=K&&K<=9587||9600<=K&&K<=9615||9618<=K&&K<=9621||9632<=K&&K<=9633||9635<=K&&K<=9641||9650<=K&&K<=9651||9654<=K&&K<=9655||9660<=K&&K<=9661||9664<=K&&K<=9665||9670<=K&&K<=9672||K==9675||9678<=K&&K<=9681||9698<=K&&K<=9701||K==9711||9733<=K&&K<=9734||K==9737||9742<=K&&K<=9743||9748<=K&&K<=9749||K==9756||K==9758||K==9792||K==9794||9824<=K&&K<=9825||9827<=K&&K<=9829||9831<=K&&K<=9834||9836<=K&&K<=9837||K==9839||9886<=K&&K<=9887||9918<=K&&K<=9919||9924<=K&&K<=9933||9935<=K&&K<=9953||K==9955||9960<=K&&K<=9983||K==10045||K==10071||10102<=K&&K<=10111||11093<=K&&K<=11097||12872<=K&&K<=12879||57344<=K&&K<=63743||65024<=K&&K<=65039||K==65533||127232<=K&&K<=127242||127248<=K&&K<=127277||127280<=K&&K<=127337||127344<=K&&K<=127386||917760<=K&&K<=917999||983040<=K&&K<=1048573||1048576<=K&&K<=1114109?"A":"N"},_.characterLength=function($){var P=this.eastAsianWidth($);return P=="F"||P=="W"||P=="A"?2:1};function f($){return $.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}_.length=function($){for(var P=f($),j=0,K=0;K<P.length;K++)j=j+this.characterLength(P[K]);return j},_.slice=function($,P,j){textLen=_.length($),P=P||0,j=j||1,P<0&&(P=textLen+P),j<0&&(j=textLen+j);for(var K="",v=0,r=f($),w=0;w<r.length;w++){var O=r[w],m=_.length(O);if(v>=P-(m==2?1:0))if(v+m<=j)K+=O;else break;v+=m}return K}})(yf);var pP=yf.exports,uP=Nf(pP),iP=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},dP=Nf(iP);function Q8(q,_={}){if(typeof q!="string"||q.length===0||(_={ambiguousIsNarrow:!0,..._},q=cf(q),q.length===0))return 0;q=q.replace(dP()," ");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(uP.eastAsianWidth(P)){case"F":case"W":$+=2;break;case"A":$+=f;break;default:$+=1}}return $}var __=10,Xf=(q=0)=>(_)=>`\x1B[${_+q}m`,Af=(q=0)=>(_)=>`\x1B[${38+q};5;${_}m`,af=(q=0)=>(_,f,$)=>`\x1B[${38+q};2;${_};${f};${$}m`,G={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(G.modifier);var XP=Object.keys(G.color),AP=Object.keys(G.bgColor);[...XP,...AP];function aP(){let q=new Map;for(let[_,f]of Object.entries(G)){for(let[$,P]of Object.entries(f))G[$]={open:`\x1B[${P[0]}m`,close:`\x1B[${P[1]}m`},f[$]=G[$],q.set(P[0],P[1]);Object.defineProperty(G,_,{value:f,enumerable:!1})}return Object.defineProperty(G,"codes",{value:q,enumerable:!1}),G.color.close="\x1B[39m",G.bgColor.close="\x1B[49m",G.color.ansi=Xf(),G.color.ansi256=Af(),G.color.ansi16m=af(),G.bgColor.ansi=Xf(__),G.bgColor.ansi256=Af(__),G.bgColor.ansi16m=af(__),Object.defineProperties(G,{rgbToAnsi256:{value:(_,f,$)=>_===f&&f===$?_<8?16:_>248?231:Math.round((_-8)/247*24)+232:16+36*Math.round(_/255*5)+6*Math.round(f/255*5)+Math.round($/255*5),enumerable:!1},hexToRgb:{value:(_)=>{let f=/[a-f\d]{6}|[a-f\d]{3}/i.exec(_.toString(16));if(!f)return[0,0,0];let[$]=f;$.length===3&&($=[...$].map((j)=>j+j).join(""));let P=Number.parseInt($,16);return[P>>16&255,P>>8&255,P&255]},enumerable:!1},hexToAnsi256:{value:(_)=>G.rgbToAnsi256(...G.hexToRgb(_)),enumerable:!1},ansi256ToAnsi:{value:(_)=>{if(_<8)return 30+_;if(_<16)return 90+(_-8);let f,$,P;if(_>=232)f=((_-232)*10+8)/255,$=f,P=f;else{_-=16;let v=_%36;f=Math.floor(_/36)/5,$=Math.floor(v/6)/5,P=v%6/5}let j=Math.max(f,$,P)*2;if(j===0)return 30;let K=30+(Math.round(P)<<2|Math.round($)<<1|Math.round(f));return j===2&&(K+=60),K},enumerable:!1},rgbToAnsi:{value:(_,f,$)=>G.ansi256ToAnsi(G.rgbToAnsi256(_,f,$)),enumerable:!1},hexToAnsi:{value:(_)=>G.ansi256ToAnsi(G.hexToAnsi256(_)),enumerable:!1}}),G}var tP=aP(),pq=new Set(["\x1B",""]),GP=39,$_="\x07",Rf="[",lP="]",gf="m",K_=`${lP}8;;`,tf=(q)=>`${pq.values().next().value}${Rf}${q}${gf}`,Gf=(q)=>`${pq.values().next().value}${K_}${q}${$_}`,bP=(q)=>q.split(" ").map((_)=>Q8(_)),f_=(q,_,f)=>{let $=[..._],P=!1,j=!1,K=Q8(cf(q[q.length-1]));for(let[v,r]of $.entries()){let w=Q8(r);if(K+w<=f?q[q.length-1]+=r:(q.push(r),K=0),pq.has(r)&&(P=!0,j=$.slice(v+1).join("").startsWith(K_)),P){j?r===$_&&(P=!1,j=!1):r===gf&&(P=!1);continue}K+=w,K===f&&v<$.length-1&&(q.push(""),K=0)}!K&&q[q.length-1].length>0&&q.length>1&&(q[q.length-2]+=q.pop())},MP=(q)=>{let _=q.split(" "),f=_.length;for(;f>0&&!(Q8(_[f-1])>0);)f--;return f===_.length?q:_.slice(0,f).join(" ")+_.slice(f).join("")},CP=(q,_,f={})=>{if(f.trim!==!1&&q.trim()==="")return"";let $="",P,j,K=bP(q),v=[""];for(let[w,O]of q.split(" ").entries()){f.trim!==!1&&(v[v.length-1]=v[v.length-1].trimStart());let m=Q8(v[v.length-1]);if(w!==0&&(m>=_&&(f.wordWrap===!1||f.trim===!1)&&(v.push(""),m=0),(m>0||f.trim===!1)&&(v[v.length-1]+=" ",m++)),f.hard&&K[w]>_){let T=_-m,h=1+Math.floor((K[w]-T-1)/_);Math.floor((K[w]-1)/_)<h&&v.push(""),f_(v,O,_);continue}if(m+K[w]>_&&m>0&&K[w]>0){if(f.wordWrap===!1&&m<_){f_(v,O,_);continue}v.push("")}if(m+K[w]>_&&f.wordWrap===!1){f_(v,O,_);continue}v[v.length-1]+=O}f.trim!==!1&&(v=v.map((w)=>MP(w)));let r=[...v.join(`
|
|
25
25
|
`)];for(let[w,O]of r.entries()){if($+=O,pq.has(O)){let{groups:T}=new RegExp(`(?:\\${Rf}(?<code>\\d+)m|\\${K_}(?<uri>.*)${$_})`).exec(r.slice(w).join(""))||{groups:{}};if(T.code!==void 0){let h=Number.parseFloat(T.code);P=h===GP?void 0:h}else T.uri!==void 0&&(j=T.uri.length===0?void 0:T.uri)}let m=tP.codes.get(Number(P));r[w+1]===`
|
|
26
26
|
`?(j&&($+=Gf("")),P&&m&&($+=tf(m))):O===`
|
|
27
27
|
`&&(P&&m&&($+=tf(P)),j&&($+=Gf(j)))}return $};function lf(q,_,f){return String(q).normalize().replace(/\r\n/g,`
|
|
@@ -34,7 +34,7 @@ Expecting `+n8.join(", ")+", got '"+(this.terminals_[A]||A)+"'";else S8="Parse e
|
|
|
34
34
|
`).length-1;this.output.write(E.cursor.move(-999,q*-1))}render(){let q=lf(this._render(this)??"",process.stdout.columns,{hard:!0});if(q!==this._prevFrame){if(this.state==="initial")this.output.write(E.cursor.hide);else{let _=cP(this._prevFrame,q);if(this.restoreCursor(),_&&_?.length===1){let f=_[0];this.output.write(E.cursor.move(0,f)),this.output.write(E.erase.lines(1));let $=q.split(`
|
|
35
35
|
`);this.output.write($[f]),this._prevFrame=q,this.output.write(E.cursor.move(0,$.length-f-1));return}else if(_&&_?.length>1){let f=_[0];this.output.write(E.cursor.move(0,f)),this.output.write(E.erase.down());let $=q.split(`
|
|
36
36
|
`).slice(f);this.output.write($.join(`
|
|
37
|
-
`)),this._prevFrame=q;return}this.output.write(E.erase.down())}this.output.write(q),this.state==="initial"&&(this.state="active"),this._prevFrame=q}}}class P_ extends qq{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(q){super(q,!1),this.value=!!q.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",(_)=>{this.output.write(E.cursor.move(0,-1)),this.value=_,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var yP=Object.defineProperty,RP=(q,_,f)=>(_ in q)?yP(q,_,{enumerable:!0,configurable:!0,writable:!0,value:f}):q[_]=f,Mf=(q,_,f)=>(RP(q,typeof _!="symbol"?_+"":_,f),f),If=class extends qq{constructor(q){super(q,!1),Mf(this,"options"),Mf(this,"cursor",0),this.options=q.options,this.value=[...q.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:_})=>_===q.cursorAt),0),this.on("key",(_)=>{_==="a"&&this.toggleAll()}),this.on("cursor",(_)=>{switch(_){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let q=this.value.length===this.options.length;this.value=q?[]:this.options.map((_)=>_.value)}toggleValue(){let q=this.value.includes(this._value);this.value=q?this.value.filter((_)=>_!==this._value):[...this.value,this._value]}};var gP=Object.defineProperty,EP=(q,_,f)=>(_ in q)?gP(q,_,{enumerable:!0,configurable:!0,writable:!0,value:f}):q[_]=f,Cf=(q,_,f)=>(EP(q,typeof _!="symbol"?_+"":_,f),f),Df=class extends qq{constructor(q){super(q,!1),Cf(this,"options"),Cf(this,"cursor",0),this.options=q.options,this.cursor=this.options.findIndex(({value:_})=>_===q.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",(_)=>{switch(_){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}};var IP=Object.defineProperty,DP=(q,_,f)=>(_ in q)?IP(q,_,{enumerable:!0,configurable:!0,writable:!0,value:f}):q[_]=f,xP=(q,_,f)=>(DP(q,typeof _!="symbol"?_+"":_,f),f);class j_ extends qq{constructor(q){super(q),xP(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}${oq.default.inverse(oq.default.hidden("_"))}`;else{let _=this.value.slice(0,this.cursor),f=this.value.slice(this.cursor);this.valueWithCursor=`${_}${oq.default.inverse(f[0])}${f.slice(1)}`}})}get cursor(){return this._cursor}}var LP=globalThis.process.platform.startsWith("win");function xf({input:q=Vf,output:_=Sf,overwrite:f=!0,hideCursor:$=!0}={}){let P=p8.createInterface({input:q,output:_,prompt:"",tabSize:1});p8.emitKeypressEvents(q,P),q.isTTY&&q.setRawMode(!0);let j=(K,{name:v})=>{if(String(K)==="\x03"){$&&_.write(E.cursor.show),process.exit(0);return}if(!f)return;p8.moveCursor(_,v==="return"?0:-1,v==="return"?-1:0,()=>{p8.clearLine(_,1,()=>{q.once("keypress",j)})})};return $&&_.write(E.cursor.hide),q.once("keypress",j),()=>{q.off("keypress",j),$&&_.write(E.cursor.show),q.isTTY&&!LP&&q.setRawMode(!1),P.terminal=!1,P.close()}}var Y=L(f8(),1),c8=L(Qq(),1);import v8 from"node:process";function sP(){return v8.platform!=="win32"?v8.env.TERM!=="linux":!!v8.env.CI||!!v8.env.WT_SESSION||!!v8.env.TERMINUS_SUBLIME||v8.env.ConEmuTask==="{cmd::Cmder}"||v8.env.TERM_PROGRAM==="Terminus-Sublime"||v8.env.TERM_PROGRAM==="vscode"||v8.env.TERM==="xterm-256color"||v8.env.TERM==="alacritty"||v8.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var w_=sP(),S=(q,_)=>w_?q:_,BP=S("◆","*"),Bf=S("■","x"),Uf=S("▲","x"),uq=S("◇","o"),UP=S("┌","T"),d=S("│","|"),u8=S("└","—"),r_=S("●",">"),m_=S("○"," "),FP=S("◻","[•]"),Lf=S("◼","[+]"),QP=S("◻","[ ]"),
|
|
37
|
+
`)),this._prevFrame=q;return}this.output.write(E.erase.down())}this.output.write(q),this.state==="initial"&&(this.state="active"),this._prevFrame=q}}}class P_ extends qq{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(q){super(q,!1),this.value=!!q.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",(_)=>{this.output.write(E.cursor.move(0,-1)),this.value=_,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var yP=Object.defineProperty,RP=(q,_,f)=>(_ in q)?yP(q,_,{enumerable:!0,configurable:!0,writable:!0,value:f}):q[_]=f,Mf=(q,_,f)=>(RP(q,typeof _!="symbol"?_+"":_,f),f),If=class extends qq{constructor(q){super(q,!1),Mf(this,"options"),Mf(this,"cursor",0),this.options=q.options,this.value=[...q.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:_})=>_===q.cursorAt),0),this.on("key",(_)=>{_==="a"&&this.toggleAll()}),this.on("cursor",(_)=>{switch(_){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let q=this.value.length===this.options.length;this.value=q?[]:this.options.map((_)=>_.value)}toggleValue(){let q=this.value.includes(this._value);this.value=q?this.value.filter((_)=>_!==this._value):[...this.value,this._value]}};var gP=Object.defineProperty,EP=(q,_,f)=>(_ in q)?gP(q,_,{enumerable:!0,configurable:!0,writable:!0,value:f}):q[_]=f,Cf=(q,_,f)=>(EP(q,typeof _!="symbol"?_+"":_,f),f),Df=class extends qq{constructor(q){super(q,!1),Cf(this,"options"),Cf(this,"cursor",0),this.options=q.options,this.cursor=this.options.findIndex(({value:_})=>_===q.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",(_)=>{switch(_){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}};var IP=Object.defineProperty,DP=(q,_,f)=>(_ in q)?IP(q,_,{enumerable:!0,configurable:!0,writable:!0,value:f}):q[_]=f,xP=(q,_,f)=>(DP(q,typeof _!="symbol"?_+"":_,f),f);class j_ extends qq{constructor(q){super(q),xP(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}${oq.default.inverse(oq.default.hidden("_"))}`;else{let _=this.value.slice(0,this.cursor),f=this.value.slice(this.cursor);this.valueWithCursor=`${_}${oq.default.inverse(f[0])}${f.slice(1)}`}})}get cursor(){return this._cursor}}var LP=globalThis.process.platform.startsWith("win");function xf({input:q=Vf,output:_=Sf,overwrite:f=!0,hideCursor:$=!0}={}){let P=p8.createInterface({input:q,output:_,prompt:"",tabSize:1});p8.emitKeypressEvents(q,P),q.isTTY&&q.setRawMode(!0);let j=(K,{name:v})=>{if(String(K)==="\x03"){$&&_.write(E.cursor.show),process.exit(0);return}if(!f)return;p8.moveCursor(_,v==="return"?0:-1,v==="return"?-1:0,()=>{p8.clearLine(_,1,()=>{q.once("keypress",j)})})};return $&&_.write(E.cursor.hide),q.once("keypress",j),()=>{q.off("keypress",j),$&&_.write(E.cursor.show),q.isTTY&&!LP&&q.setRawMode(!1),P.terminal=!1,P.close()}}var Y=L(f8(),1),c8=L(Qq(),1);import v8 from"node:process";function sP(){return v8.platform!=="win32"?v8.env.TERM!=="linux":!!v8.env.CI||!!v8.env.WT_SESSION||!!v8.env.TERMINUS_SUBLIME||v8.env.ConEmuTask==="{cmd::Cmder}"||v8.env.TERM_PROGRAM==="Terminus-Sublime"||v8.env.TERM_PROGRAM==="vscode"||v8.env.TERM==="xterm-256color"||v8.env.TERM==="alacritty"||v8.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var w_=sP(),S=(q,_)=>w_?q:_,BP=S("◆","*"),Bf=S("■","x"),Uf=S("▲","x"),uq=S("◇","o"),UP=S("┌","T"),d=S("│","|"),u8=S("└","—"),r_=S("●",">"),m_=S("○"," "),FP=S("◻","[•]"),Lf=S("◼","[+]"),QP=S("◻","[ ]"),D1=S("▪","•"),sf=S("─","-"),q9=S("╮","+"),_9=S("├","+"),f9=S("╯","+"),$9=S("●","•"),K9=S("◆","*"),P9=S("▲","!"),j9=S("■","x"),iq=(q)=>{switch(q){case"initial":case"active":return Y.default.cyan(BP);case"cancel":return Y.default.red(Bf);case"error":return Y.default.yellow(Uf);case"submit":return Y.default.green(uq)}},O_=(q)=>{let{cursor:_,options:f,style:$}=q,P=q.maxItems??1/0,j=Math.max(process.stdout.rows-4,0),K=Math.min(j,Math.max(P,5)),v=0;_>=v+K-3?v=Math.max(Math.min(_-K+3,f.length-K),0):_<v+2&&(v=Math.max(_-2,0));let r=K<f.length&&v>0,w=K<f.length&&v+K<f.length;return f.slice(v,v+K).map((O,m,T)=>{let h=m===0&&r,z=m===T.length-1&&w;return h||z?Y.default.dim("..."):$(O,m+v===_)})},Ff=(q)=>new j_({validate:q.validate,placeholder:q.placeholder,defaultValue:q.defaultValue,initialValue:q.initialValue,render(){let _=`${Y.default.gray(d)}
|
|
38
38
|
${iq(this.state)} ${q.message}
|
|
39
39
|
`,f=q.placeholder?Y.default.inverse(q.placeholder[0])+Y.default.dim(q.placeholder.slice(1)):Y.default.inverse(Y.default.hidden("_")),$=this.value?this.valueWithCursor:f;switch(this.state){case"error":return`${_.trim()}
|
|
40
40
|
${Y.default.yellow(d)} ${$}
|
|
@@ -92,7 +92,7 @@ Analyzes 50+ technologies across 6 criteria
|
|
|
92
92
|
to recommend your optimal stack.${$?`
|
|
93
93
|
|
|
94
94
|
`+$:""}`,"Welcome"),console.log(f.getFullHeader());let P=await Ff({message:"What's your project called?",placeholder:"my-awesome-app",validate:(b)=>{if(!b)return"Project name is required";if(!/^[a-z0-9-_]+$/i.test(b))return"Use only letters, numbers, hyphens, and underscores"}});if(B(P))return w8("Operation cancelled."),null;f.updateContext({projectName:P}),f.advance(),console.log(f.getFullHeader());let j=await i8({message:"What are you building?",options:[{value:"saas",label:"SaaS Application",hint:"Subscription-based product with auth & payments"},{value:"web-app",label:"Web Application",hint:"General purpose app"},{value:"marketplace",label:"Marketplace",hint:"Two-sided platform with transactions"},{value:"e-commerce",label:"E-commerce",hint:"Online store with products"},{value:"api",label:"API / Backend",hint:"Headless service or microservice"},{value:"blog",label:"Blog / Content",hint:"Content-focused site"},{value:"portfolio",label:"Portfolio",hint:"Personal showcase"}]});if(B(j))return w8("Operation cancelled."),null;f.updateContext({projectType:j}),f.advance(),console.log(f.getFullHeader());let K=await i8({message:"What scale are you targeting?",options:[{value:"mvp",label:"MVP",hint:"Ship fast, iterate later"},{value:"startup",label:"Startup",hint:"Growth-ready foundations"},{value:"growth",label:"Growth",hint:"Scaling to thousands of users"},{value:"enterprise",label:"Enterprise",hint:"Compliance & massive scale"}]});if(B(K))return w8("Operation cancelled."),null;f.updateContext({scale:K}),f.advance(),console.log(f.getFullHeader());let v=await i8({message:"What matters most?",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"}]});if(B(v))return w8("Operation cancelled."),null;f.updateContext({priority:v}),f.advance();let r={projectName:P,projectType:j,scale:K,ecosystem:"javascript",priorities:[v],constraints:[]};console.log(f.getFullHeader());let w=l9(r),O=await i8({message:"Choose your framework",options:w});if(B(O))return w8("Operation cancelled."),null;f.updateContext({framework:O}),f.advance(),console.log(f.getFullHeader());let m=b9(r),T=await i8({message:"Choose your database",options:m});if(B(T))return w8("Operation cancelled."),null;f.updateContext({database:T}),f.advance();let h=null;if(f.getCurrentStep()?.id==="auth"){console.log(f.getFullHeader());let b=await i8({message:"Add authentication?",options:[{value:"better-auth",label:`Better Auth ${F("A+")}`,hint:"Modern, TypeScript-native auth"},{value:"clerk",label:`Clerk ${F("A")}`,hint:"Drop-in auth components"},{value:"authjs",label:`Auth.js ${F("A-")}`,hint:"Flexible OAuth solution"},{value:"supabase-auth",label:`Supabase Auth ${F("B+")}`,hint:"Part of Supabase stack"},{value:"none",label:"Skip",hint:"No authentication needed"}]});if(B(b))return w8("Operation cancelled."),null;h=b==="none"?null:b,f.updateContext({auth:h}),f.advance()}let H=null;if(f.getCurrentStep()?.id==="payments"){console.log(f.getFullHeader());let b=await i8({message:"Add payments?",options:[{value:"stripe",label:`Stripe ${F("A+")}`,hint:"Industry standard, full-featured"},{value:"paddle",label:`Paddle ${F("A")}`,hint:"Merchant of record, global tax handling"},{value:"lemonsqueezy",label:`Lemon Squeezy ${F("A-")}`,hint:"Simple setup, MoR included"},{value:"polar",label:`Polar ${F("B+")}`,hint:"Developer-focused, open source friendly"},{value:"none",label:"Skip",hint:"No payments needed"}]});if(B(b))return w8("Operation cancelled."),null;H=b==="none"?null:b,f.updateContext({payments:H})}let X=[];if(_)X=await C9();let I={projectName:P,projectType:j,scale:K,ecosystem:"javascript",priorities:[v],constraints:X},R=z8();R.start("Analyzing 50+ technologies...");let A=k8(I);return R.stop("Analysis complete!"),{context:I,stack:A}}function l9(q){return[{id:"nextjs",name:"Next.js",grade:"A+",hint:"React meta-framework, great ecosystem"},{id:"sveltekit",name:"SvelteKit",grade:"A+",hint:"Svelte meta-framework, great DX"},{id:"nuxt",name:"Nuxt",grade:"A",hint:"Vue meta-framework, full-featured"},{id:"remix",name:"Remix",grade:"A",hint:"React, web-standard focused"},{id:"astro",name:"Astro",grade:"A-",hint:"Content-focused, partial hydration"},{id:"tanstack-start",name:"TanStack Start",grade:"B+",hint:"Type-safe, modern patterns"}].map((f)=>{let $=f.grade;if(q.priorities.includes("dx")&&f.id==="sveltekit")$="A+";if(q.scale==="enterprise"&&f.id==="nextjs")$="A+";if((q.projectType==="blog"||q.projectType==="portfolio")&&f.id==="astro")$="A+";return{value:f.id,label:`${f.name} ${F($)}`,hint:f.hint}})}function b9(q){return[{id:"postgres",name:"PostgreSQL",grade:"A+",hint:"Reliable, feature-rich"},{id:"neon",name:"Neon",grade:"A+",hint:"Serverless Postgres, branching"},{id:"supabase",name:"Supabase",grade:"A",hint:"Postgres + realtime + auth"},{id:"planetscale",name:"PlanetScale",grade:"A",hint:"MySQL, branching & scaling"},{id:"turso",name:"Turso",grade:"A-",hint:"Edge SQLite, low latency"},{id:"sqlite",name:"SQLite",grade:"B+",hint:"Simple, embedded database"},{id:"mongodb",name:"MongoDB",grade:"B",hint:"Document database, flexible"}].map((f)=>{let $=f.grade;if(q.scale==="mvp"&&f.id==="neon")$="A+";if((q.projectType==="blog"||q.projectType==="portfolio")&&f.id==="sqlite")$="A";if(q.projectType==="saas"&&f.id==="supabase")$="A+";return{value:f.id,label:`${f.name} ${F($)}`,hint:f.hint}})}function M9(){let q=P6(),_=new Map;for(let f of q){let $=f.category;if(!_.has($))_.set($,[]);_.get($).push({id:f.id,label:f.label,description:f.description})}return _}async function C9(){let q=M9(),_=[];for(let[f,$]of q){if(f==="ecosystem")continue;if($.length===0)continue;let P=G9[f]||{label:f,icon:"\uD83D\uDCCB"},j=await q6({message:`${P.icon} ${P.label}:`,required:!1,options:$.map((K)=>({value:K.id,label:K.label,hint:K.description}))});if(B(j))break;_.push(...j)}return _}async function h6(q){let _=q.map(($)=>`${$.category}: ${h8.default.cyan($.tech)} ${V9($.grade)}`).join(`
|
|
95
|
-
`);T_(_,"Recommended Stack");let f=await Qf({message:"Generate project with this stack?",initialValue:!0});return!B(f)&&f}function V9(q){if(q.startsWith("A"))return h8.default.green(`(${q})`);if(q.startsWith("B"))return h8.default.yellow(`(${q})`);return h8.default.red(`(${q})`)}function c(q){y.error(h8.default.red(q))}function z8(){return f6()}var m8=L(f8(),1);var
|
|
95
|
+
`);T_(_,"Recommended Stack");let f=await Qf({message:"Generate project with this stack?",initialValue:!0});return!B(f)&&f}function V9(q){if(q.startsWith("A"))return h8.default.green(`(${q})`);if(q.startsWith("B"))return h8.default.yellow(`(${q})`);return h8.default.red(`(${q})`)}function c(q){y.error(h8.default.red(q))}function z8(){return f6()}var m8=L(f8(),1);var ew={"A+":m8.default.green,A:m8.default.green,"A-":m8.default.green,"B+":m8.default.cyan,B:m8.default.cyan,"B-":m8.default.yellow,"C+":m8.default.yellow,C:m8.default.red,"C-":m8.default.red};function z6(q){let _={projectName:q.context.projectName,projectType:q.context.projectType,scale:q.context.scale,stack:Object.fromEntries(q.categories.map((f)=>[f.category,{recommended:f.recommended.tech.id,grade:f.recommended.grade,score:f.recommended.score}])),stackScore:q.stackScore,confidence:q.confidence};return JSON.stringify(_,null,2)}var i=L(f8(),1),S9={"meta-framework":"Framework",database:"Database",orm:"ORM",auth:"Auth",hosting:"Hosting",payments:"Payments",backend:"Backend",frontend:"Frontend"},W6={"A+":i.default.green,A:i.default.green,"A-":i.default.green,"B+":i.default.cyan,B:i.default.cyan,"B-":i.default.yellow,"C+":i.default.yellow,C:i.default.red,"C-":i.default.red};function J6(q,_,f,$){console.log(""),console.log(i.default.green("=".repeat(60))),console.log(i.default.green(i.default.bold(" STACK COMPARISON"))),console.log(i.default.green("=".repeat(60))),console.log("");let v=" "+i.default.bold("Category".padEnd(14))+i.default.cyan(f.name.padEnd(22))+i.default.magenta($.name.padEnd(22));console.log(v),console.log(i.default.dim(" "+"-".repeat(58)));let r=new Map,w=new Map;for(let o of q.categories)r.set(o.category,o);for(let o of _.categories)w.set(o.category,o);let O=new Set([...r.keys(),...w.keys()]);for(let o of O){let X=r.get(o),I=w.get(o),R=(S9[o]||o).padEnd(14),A=e6(X,22),b=e6(I,22);console.log(` ${i.default.bold(R)}${A}${b}`)}console.log(i.default.dim(" "+"-".repeat(58))),console.log("");let m=H6(q,22),T=H6(_,22);console.log(` ${i.default.bold("Stack Score".padEnd(14))}${m}${T}`);let h=f.priorities.join(", ").padEnd(22),z=$.priorities.join(", ").padEnd(22);console.log(` ${i.default.dim("Priorities".padEnd(14))}${i.default.dim(h)}${i.default.dim(z)}`),console.log(""),console.log(i.default.dim(" "+"-".repeat(60)));let H=q.stackScore.score-_.stackScore.score;if(Math.abs(H)<=5)console.log(i.default.dim(" Both stacks are well-suited. Choose based on your priorities."));else if(H>0)console.log(i.default.dim(` ${f.name} scores ${H} points higher for this comparison.`));else console.log(i.default.dim(` ${$.name} scores ${Math.abs(H)} points higher for this comparison.`));console.log(""),console.log(i.default.dim(" Explore more at ")+i.default.cyan("stacksfinder.com/builder")),console.log("")}function e6(q,_){if(!q)return i.default.dim("-".padEnd(_));let{tech:f,grade:$}=q.recommended,j=(W6[$]||i.default.white)(`[${$}]`),K=_-6;return((f.name.length>K?f.name.substring(0,K-1)+"…":f.name)+" "+j).padEnd(_+10)}function H6(q,_){let{grade:f,score:$}=q.stackScore;return((W6[f]||i.default.white)(f)+i.default.dim(` (${$}/100)`)).padEnd(_+10)}var i_={mvp:{name:"MVP",description:"Ship fast, iterate later",projectType:"saas",scale:"mvp",priorities:["speed"],constraints:[]},startup:{name:"Startup",description:"Growth-ready foundations",projectType:"saas",scale:"startup",priorities:["dx"],constraints:[]},enterprise:{name:"Enterprise",description:"Compliance & scale",projectType:"saas",scale:"enterprise",priorities:["security"],constraints:["soc2-compliant"]},agency:{name:"Agency",description:"Client projects, fast iteration",projectType:"web-app",scale:"growth",priorities:["dx"],constraints:[]},ecommerce:{name:"E-commerce",description:"Online store, optimized for sales",projectType:"e-commerce",scale:"startup",priorities:["perf"],constraints:["stripe-payments"]},api:{name:"API-first",description:"Backend services, headless architecture",projectType:"api",scale:"startup",priorities:["perf","scale"],constraints:[]}};function tq(q){return i_[q.toLowerCase()]}function Gq(){return Object.keys(i_)}function lq(q){return q.toLowerCase()in i_}var bq=L(f8(),1),c9=`
|
|
96
96
|
███████╗████████╗ █████╗ ██████╗██╗ ██╗███████╗
|
|
97
97
|
██╔════╝╚══██╔══╝██╔══██╗██╔════╝██║ ██╔╝██╔════╝
|
|
98
98
|
███████╗ ██║ ███████║██║ █████╔╝ ███████╗
|
|
@@ -147,7 +147,7 @@ to recommend your optimal stack.${$?`
|
|
|
147
147
|
│ ╰─────────────────────────────────────────────╯ │
|
|
148
148
|
│ │
|
|
149
149
|
╰──────────────────────────────────────────────────────╯
|
|
150
|
-
`;function I9(q="minimal"){switch(q){case"full":return c9;case"compact":return N9;case"box":return R9;case"oneline":return g9;case"shadow":return E9;case"minimal":default:return y9}}function D9(q="minimal"){let _=I9(q);console.log(bq.default.green(_))}function Z6(q="minimal"){D9(q),console.log(bq.default.dim(" Scaffold optimized tech stacks")),console.log(bq.default.dim(" Powered by deterministic scoring")),console.log("")}var y8=L(f8(),1);function x9(q,_,f){return{isEnterprise:q.context.scale==="enterprise",isHighScore:q.stackScore.score>=85,hasComplexStack:q.categories.length>=5,projectName:f,phase:_}}function L9(q){if(q.phase==="post-recommendation"){if(q.isEnterprise)return{message:"Need compliance reports & team collaboration?",link:"stacksfinder.com/enterprise"};return{message:"Fine-tune with 25+ constraints:",link:"stacksfinder.com/builder"}}if(q.isHighScore)return{message:"Save & share this stack:",link:"stacksfinder.com/blueprint/new"};if(q.isEnterprise)return{message:`Get compliance reports for ${q.projectName||"your project"}:`,link:"stacksfinder.com/enterprise"};return{message:"Use in Cursor/Claude:",link:"npm i -g @stacksfinder/mcp-server"}}function d_(q,_,f){let $=x9(q,_,f),P=L9($);console.log(""),console.log(y8.default.dim("─".repeat(50))),console.log(""),console.log(y8.default.dim(` ${P.message}`)),console.log(` ${y8.default.cyan(P.link)}`),console.log("")}function n6(q){console.log(""),console.log(y8.default.dim(" Something went wrong? Try the web version:")),console.log(` ${y8.default.cyan("stacksfinder.com/builder")}`)}var Z8=L(XK(),1);import{mkdir as SK,writeFile as cK,readFile as T1,copyFile as Y1,access as k1}from"fs/promises";import{join as hq,dirname as NK}from"path";function xq(q,_){let f=(X)=>{return _.categories.find((R)=>R.category===X)?.recommended.tech??null},$=(X)=>{return f(X)?.id??null},P=f("meta-framework"),j=f("database"),K=f("orm"),v=f("auth"),r=f("hosting"),w=f("payments"),O=f("backend"),m=P?.id??null,T=j?.id??null,h=K?.id??null,z=v?.id??null,H=w?.id??null,o=O?.id??null;return{projectName:q,projectType:_.context.projectType,scale:_.context.scale,framework:m,database:T,orm:h,auth:z,hosting:r?.id??null,payments:H,backend:o,frameworkEntry:P,databaseEntry:j,ormEntry:K,authEntry:v,hostingEntry:r,paymentsEntry:w,backendEntry:O,hasAuth:!!v,hasPayments:!!w,hasDatabase:!!j,isNextjs:m==="nextjs",isSvelteKit:m==="sveltekit",isNuxt:m==="nuxt",isRemix:m==="remix",isAstro:m==="astro",isSolidStart:m==="solidstart",isTanStackStart:m==="tanstack-start",isPostgres:["postgres","neon"].includes(T??""),isSqlite:T==="sqlite",isMongoDB:T==="mongodb",isSupabase:T==="supabase",isTurso:T==="turso",isDrizzle:h==="drizzle",isPrisma:h==="prisma",isKysely:h==="kysely",isMongoose:h==="mongoose",isBetterAuth:z==="better-auth",isClerk:z==="clerk",isAuthJs:z==="authjs",isAuth0:z==="auth0",isLucia:z==="lucia",isSupabaseAuth:z==="supabase-auth",isStripe:H==="stripe",isPaddle:H==="paddle",isLemonSqueezy:H==="lemonsqueezy",isPolar:H==="polar",hasBackend:!!O,isHono:o==="hono",isElysia:o==="elysia",isExpress:o==="express",isFastify:o==="fastify",ecosystem:_.context.ecosystem||"javascript"}}function AK(q){let _=[];if(_.push(...l5(q)),q.framework==="nextjs")_.push(...b5(q));else if(q.framework==="sveltekit")_.push(...M5(q));else if(q.framework==="nuxt")_.push(...C5(q));else if(q.framework==="remix")_.push(...V5(q));else if(q.framework==="astro")_.push(...S5(q));else if(q.framework==="solidstart")_.push(...B5(q));else if(q.framework==="tanstack-start")_.push(...U5(q));if(q.auth==="better-auth")_.push(...c5(q));else if(q.auth==="clerk")_.push(...N5(q));else if(q.auth==="authjs")_.push(...y5(q));else if(q.auth==="auth0")_.push(...R5(q));else if(q.auth==="lucia")_.push(...f1(q));else if(q.auth==="supabase")_.push(..._1(q));if(q.payments==="stripe")_.push(...g5(q));else if(q.payments==="paddle")_.push(...E5(q));else if(q.payments==="lemonsqueezy")_.push(...I5(q));else if(q.payments==="polar")_.push(...F5(q));if(q.orm==="drizzle")_.push(...D5(q));else if(q.orm==="prisma")_.push(...x5(q));else if(q.orm==="kysely")_.push(...L5(q));else if(q.orm==="mongoose")_.push(...Q5(q));if(q.backend==="hono")_.push(...s5(q));else if(q.backend==="elysia")_.push(...q1(q));else if(q.backend==="express")_.push(...$1(q));else if(q.backend==="fastify")_.push(...K1(q));return _}function l5(q){return[{src:"base/gitignore",dest:".gitignore"},{src:"base/env.example.hbs",dest:".env.example",isTemplate:!0},{src:"base/README.md.hbs",dest:"README.md",isTemplate:!0}]}function b5(q){return[{src:"frameworks/nextjs/next.config.ts.hbs",dest:"next.config.ts",isTemplate:!0},{src:"frameworks/nextjs/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/nextjs/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/nextjs/postcss.config.js",dest:"postcss.config.js"},{src:"frameworks/nextjs/app/layout.tsx.hbs",dest:"src/app/layout.tsx",isTemplate:!0},{src:"frameworks/nextjs/app/page.tsx.hbs",dest:"src/app/page.tsx",isTemplate:!0},{src:"frameworks/nextjs/app/globals.css",dest:"src/app/globals.css"},{src:"frameworks/nextjs/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/nextjs/components/ui/button.tsx",dest:"src/components/ui/button.tsx"},{src:"frameworks/nextjs/components/ui/card.tsx",dest:"src/components/ui/card.tsx"},{src:"frameworks/nextjs/components/ui/input.tsx",dest:"src/components/ui/input.tsx"},{src:"frameworks/nextjs/app/(marketing)/layout.tsx",dest:"src/app/(marketing)/layout.tsx"},{src:"frameworks/nextjs/app/(marketing)/pricing/page.tsx.hbs",dest:"src/app/(marketing)/pricing/page.tsx",isTemplate:!0},{src:"frameworks/nextjs/app/(dashboard)/layout.tsx.hbs",dest:"src/app/(dashboard)/layout.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nextjs/app/(dashboard)/dashboard/page.tsx.hbs",dest:"src/app/(dashboard)/dashboard/page.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nextjs/app/(dashboard)/settings/page.tsx.hbs",dest:"src/app/(dashboard)/settings/page.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nextjs/app/(dashboard)/billing/page.tsx.hbs",dest:"src/app/(dashboard)/billing/page.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/nextjs/components/header.tsx.hbs",dest:"src/components/header.tsx",isTemplate:!0},{src:"frameworks/nextjs/components/footer.tsx",dest:"src/components/footer.tsx"},{src:"frameworks/nextjs/components/sidebar.tsx.hbs",dest:"src/components/sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function M5(q){return[{src:"frameworks/sveltekit/svelte.config.js",dest:"svelte.config.js"},{src:"frameworks/sveltekit/vite.config.ts.hbs",dest:"vite.config.ts",isTemplate:!0},{src:"frameworks/sveltekit/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/sveltekit/app.d.ts.hbs",dest:"src/app.d.ts",isTemplate:!0},{src:"frameworks/sveltekit/app.css",dest:"src/app.css"},{src:"frameworks/sveltekit/app.html.hbs",dest:"src/app.html",isTemplate:!0},{src:"frameworks/sveltekit/routes/+layout.svelte.hbs",dest:"src/routes/+layout.svelte",isTemplate:!0},{src:"frameworks/sveltekit/routes/+page.svelte.hbs",dest:"src/routes/+page.svelte",isTemplate:!0},{src:"frameworks/sveltekit/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/sveltekit/components/ui/Button.svelte",dest:"src/lib/components/ui/Button.svelte"},{src:"frameworks/sveltekit/components/ui/Card.svelte",dest:"src/lib/components/ui/Card.svelte"},{src:"frameworks/sveltekit/components/ui/Input.svelte",dest:"src/lib/components/ui/Input.svelte"},{src:"frameworks/sveltekit/routes/(marketing)/pricing/+page.svelte.hbs",dest:"src/routes/(marketing)/pricing/+page.svelte",isTemplate:!0},{src:"frameworks/sveltekit/routes/(app)/+layout.svelte.hbs",dest:"src/routes/(app)/+layout.svelte",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/+layout.server.ts.hbs",dest:"src/routes/(app)/+layout.server.ts",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/dashboard/+page.svelte",dest:"src/routes/(app)/dashboard/+page.svelte",condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/settings/+page.svelte",dest:"src/routes/(app)/settings/+page.svelte",condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/billing/+page.svelte.hbs",dest:"src/routes/(app)/billing/+page.svelte",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/sveltekit/hooks.server.ts.hbs",dest:"src/hooks.server.ts",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/components/Header.svelte.hbs",dest:"src/lib/components/Header.svelte",isTemplate:!0},{src:"frameworks/sveltekit/components/Footer.svelte",dest:"src/lib/components/Footer.svelte"},{src:"frameworks/sveltekit/components/Sidebar.svelte.hbs",dest:"src/lib/components/Sidebar.svelte",isTemplate:!0,condition:(f)=>!!f.auth}]}function C5(q){return[{src:"frameworks/nuxt/nuxt.config.ts.hbs",dest:"nuxt.config.ts",isTemplate:!0},{src:"frameworks/nuxt/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/nuxt/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/nuxt/app.vue.hbs",dest:"app.vue",isTemplate:!0},{src:"frameworks/nuxt/assets/css/main.css",dest:"assets/css/main.css"},{src:"frameworks/nuxt/pages/index.vue.hbs",dest:"pages/index.vue",isTemplate:!0},{src:"frameworks/nuxt/pages/pricing.vue.hbs",dest:"pages/pricing.vue",isTemplate:!0},{src:"frameworks/nuxt/layouts/default.vue.hbs",dest:"layouts/default.vue",isTemplate:!0},{src:"frameworks/nuxt/layouts/dashboard.vue.hbs",dest:"layouts/dashboard.vue",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nuxt/pages/dashboard/index.vue.hbs",dest:"pages/dashboard/index.vue",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nuxt/pages/dashboard/settings.vue",dest:"pages/dashboard/settings.vue",condition:(f)=>!!f.auth},{src:"frameworks/nuxt/pages/dashboard/billing.vue.hbs",dest:"pages/dashboard/billing.vue",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/nuxt/utils/cn.ts",dest:"utils/cn.ts"},{src:"frameworks/nuxt/components/ui/Button.vue",dest:"components/ui/Button.vue"},{src:"frameworks/nuxt/components/ui/Card.vue",dest:"components/ui/Card.vue"},{src:"frameworks/nuxt/components/ui/Input.vue",dest:"components/ui/Input.vue"},{src:"frameworks/nuxt/components/Header.vue.hbs",dest:"components/Header.vue",isTemplate:!0},{src:"frameworks/nuxt/components/Footer.vue",dest:"components/Footer.vue"},{src:"frameworks/nuxt/components/Sidebar.vue.hbs",dest:"components/Sidebar.vue",isTemplate:!0,condition:(f)=>!!f.auth}]}function V5(q){return[{src:"frameworks/remix/vite.config.ts.hbs",dest:"vite.config.ts",isTemplate:!0},{src:"frameworks/remix/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/remix/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/remix/app/root.tsx.hbs",dest:"app/root.tsx",isTemplate:!0},{src:"frameworks/remix/app/entry.client.tsx",dest:"app/entry.client.tsx"},{src:"frameworks/remix/app/entry.server.tsx",dest:"app/entry.server.tsx"},{src:"frameworks/remix/app/tailwind.css",dest:"app/tailwind.css"},{src:"frameworks/remix/app/routes/_index.tsx.hbs",dest:"app/routes/_index.tsx",isTemplate:!0},{src:"frameworks/remix/app/routes/pricing.tsx.hbs",dest:"app/routes/pricing.tsx",isTemplate:!0},{src:"frameworks/remix/app/routes/dashboard.tsx.hbs",dest:"app/routes/dashboard.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/remix/app/routes/dashboard._index.tsx.hbs",dest:"app/routes/dashboard._index.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/remix/app/routes/dashboard.settings.tsx",dest:"app/routes/dashboard.settings.tsx",condition:(f)=>!!f.auth},{src:"frameworks/remix/app/routes/dashboard.billing.tsx.hbs",dest:"app/routes/dashboard.billing.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/remix/app/lib/utils.ts",dest:"app/lib/utils.ts"},{src:"frameworks/remix/app/components/ui/button.tsx",dest:"app/components/ui/button.tsx"},{src:"frameworks/remix/app/components/ui/card.tsx",dest:"app/components/ui/card.tsx"},{src:"frameworks/remix/app/components/ui/input.tsx",dest:"app/components/ui/input.tsx"},{src:"frameworks/remix/app/components/header.tsx.hbs",dest:"app/components/header.tsx",isTemplate:!0},{src:"frameworks/remix/app/components/footer.tsx",dest:"app/components/footer.tsx"},{src:"frameworks/remix/app/components/sidebar.tsx.hbs",dest:"app/components/sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function S5(q){return[{src:"frameworks/astro/astro.config.mjs.hbs",dest:"astro.config.mjs",isTemplate:!0},{src:"frameworks/astro/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/astro/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/astro/src/env.d.ts",dest:"src/env.d.ts"},{src:"frameworks/astro/src/styles/global.css",dest:"src/styles/global.css"},{src:"frameworks/astro/src/layouts/Layout.astro.hbs",dest:"src/layouts/Layout.astro",isTemplate:!0},{src:"frameworks/astro/src/layouts/DashboardLayout.astro.hbs",dest:"src/layouts/DashboardLayout.astro",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/astro/src/pages/index.astro.hbs",dest:"src/pages/index.astro",isTemplate:!0},{src:"frameworks/astro/src/pages/pricing.astro.hbs",dest:"src/pages/pricing.astro",isTemplate:!0},{src:"frameworks/astro/src/pages/dashboard/index.astro.hbs",dest:"src/pages/dashboard/index.astro",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/astro/src/pages/dashboard/settings.astro",dest:"src/pages/dashboard/settings.astro",condition:(f)=>!!f.auth},{src:"frameworks/astro/src/pages/dashboard/billing.astro.hbs",dest:"src/pages/dashboard/billing.astro",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/astro/src/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/astro/src/components/ui/Button.tsx",dest:"src/components/ui/Button.tsx"},{src:"frameworks/astro/src/components/ui/Card.tsx",dest:"src/components/ui/Card.tsx"},{src:"frameworks/astro/src/components/ui/Input.tsx",dest:"src/components/ui/Input.tsx"},{src:"frameworks/astro/src/components/Header.astro.hbs",dest:"src/components/Header.astro",isTemplate:!0},{src:"frameworks/astro/src/components/Footer.astro",dest:"src/components/Footer.astro"},{src:"frameworks/astro/src/components/Sidebar.astro.hbs",dest:"src/components/Sidebar.astro",isTemplate:!0,condition:(f)=>!!f.auth}]}function c5(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/better-auth/nextjs/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/better-auth/nextjs/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/better-auth/nextjs/api/auth/[...all]/route.ts",dest:"src/app/api/auth/[...all]/route.ts"},{src:"auth/better-auth/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/better-auth/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/better-auth/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/better-auth/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/better-auth/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/better-auth/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/better-auth/sveltekit/auth.ts.hbs",dest:"src/lib/server/auth.ts",isTemplate:!0},{src:"auth/better-auth/sveltekit/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/better-auth/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/better-auth/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/better-auth/sveltekit/components/AuthForm.svelte",dest:"src/lib/components/auth/AuthForm.svelte"},{src:"auth/better-auth/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/better-auth/nuxt/server/utils/auth.ts.hbs",dest:"server/utils/auth.ts",isTemplate:!0},{src:"auth/better-auth/nuxt/composables/useAuth.ts",dest:"composables/useAuth.ts"},{src:"auth/better-auth/nuxt/server/api/auth/[...all].ts",dest:"server/api/auth/[...all].ts"},{src:"auth/better-auth/nuxt/middleware/auth.ts",dest:"middleware/auth.ts"},{src:"auth/better-auth/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/better-auth/nuxt/pages/register.vue",dest:"pages/register.vue"},{src:"auth/better-auth/nuxt/components/AuthForm.vue",dest:"components/auth/AuthForm.vue"},{src:"auth/better-auth/nuxt/components/UserButton.vue",dest:"components/auth/UserButton.vue"});else if(q.framework==="remix")_.push({src:"auth/better-auth/remix/app/lib/auth.server.ts.hbs",dest:"app/lib/auth.server.ts",isTemplate:!0},{src:"auth/better-auth/remix/app/lib/auth.client.ts",dest:"app/lib/auth.client.ts"},{src:"auth/better-auth/remix/app/routes/api.auth.$.ts",dest:"app/routes/api.auth.$.ts"},{src:"auth/better-auth/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/better-auth/remix/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/better-auth/remix/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/better-auth/remix/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});else if(q.framework==="astro")_.push({src:"auth/better-auth/astro/src/lib/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/better-auth/astro/src/lib/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/better-auth/astro/src/pages/api/auth/[...all].ts",dest:"src/pages/api/auth/[...all].ts"},{src:"auth/better-auth/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/better-auth/astro/src/pages/register.astro",dest:"src/pages/register.astro"},{src:"auth/better-auth/astro/src/components/auth/AuthForm.tsx",dest:"src/components/auth/AuthForm.tsx"},{src:"auth/better-auth/astro/src/components/auth/UserButton.tsx",dest:"src/components/auth/UserButton.tsx"});else if(q.framework==="solidstart")_.push({src:"auth/better-auth/solidstart/src/lib/auth.server.ts.hbs",dest:"src/lib/auth.server.ts",isTemplate:!0},{src:"auth/better-auth/solidstart/src/lib/auth.client.ts",dest:"src/lib/auth.client.ts"},{src:"auth/better-auth/solidstart/src/routes/api/auth/[...all].ts",dest:"src/routes/api/auth/[...all].ts"},{src:"auth/better-auth/solidstart/src/routes/login.tsx",dest:"src/routes/login.tsx"},{src:"auth/better-auth/solidstart/src/routes/register.tsx",dest:"src/routes/register.tsx"},{src:"auth/better-auth/solidstart/src/components/auth/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/better-auth/solidstart/src/components/auth/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="tanstack-start")_.push({src:"auth/better-auth/tanstack-start/app/lib/auth.server.ts.hbs",dest:"app/lib/auth.server.ts",isTemplate:!0},{src:"auth/better-auth/tanstack-start/app/lib/auth.client.ts",dest:"app/lib/auth.client.ts"},{src:"auth/better-auth/tanstack-start/app/routes/api.auth.$.ts",dest:"app/routes/api.auth.$.ts"},{src:"auth/better-auth/tanstack-start/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/better-auth/tanstack-start/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/better-auth/tanstack-start/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/better-auth/tanstack-start/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});return _}function N5(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/clerk/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/clerk/nextjs/app/(auth)/sign-in/[[...sign-in]]/page.tsx",dest:"src/app/(auth)/sign-in/[[...sign-in]]/page.tsx"},{src:"auth/clerk/nextjs/app/(auth)/sign-up/[[...sign-up]]/page.tsx",dest:"src/app/(auth)/sign-up/[[...sign-up]]/page.tsx"});return _}function y5(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/authjs/nextjs/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/authjs/nextjs/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/authjs/nextjs/api/auth/[...nextauth]/route.ts",dest:"src/app/api/auth/[...nextauth]/route.ts"},{src:"auth/authjs/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/authjs/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/authjs/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/authjs/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/authjs/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/authjs/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/authjs/sveltekit/auth.ts.hbs",dest:"src/lib/server/auth.ts",isTemplate:!0},{src:"auth/authjs/sveltekit/hooks.server.ts",dest:"src/hooks.server.ts"},{src:"auth/authjs/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/authjs/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/authjs/sveltekit/components/AuthForm.svelte",dest:"src/lib/components/auth/AuthForm.svelte"},{src:"auth/authjs/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/authjs/nuxt/server/api/auth/[...].ts",dest:"server/api/auth/[...].ts"},{src:"auth/authjs/nuxt/composables/useAuth.ts",dest:"composables/useAuth.ts"},{src:"auth/authjs/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/authjs/nuxt/pages/register.vue",dest:"pages/register.vue"},{src:"auth/authjs/nuxt/components/AuthForm.vue",dest:"components/auth/AuthForm.vue"},{src:"auth/authjs/nuxt/components/UserButton.vue",dest:"components/auth/UserButton.vue"});else if(q.framework==="remix")_.push({src:"auth/authjs/remix/app/lib/auth.server.ts.hbs",dest:"app/lib/auth.server.ts",isTemplate:!0},{src:"auth/authjs/remix/app/lib/session.server.ts",dest:"app/lib/session.server.ts"},{src:"auth/authjs/remix/app/routes/auth.login.tsx",dest:"app/routes/auth.login.tsx"},{src:"auth/authjs/remix/app/routes/auth.logout.tsx",dest:"app/routes/auth.logout.tsx"},{src:"auth/authjs/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/authjs/remix/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/authjs/remix/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/authjs/remix/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});else if(q.framework==="astro")_.push({src:"auth/authjs/astro/src/lib/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/authjs/astro/auth.config.ts.hbs",dest:"auth.config.ts",isTemplate:!0},{src:"auth/authjs/astro/src/pages/api/auth/[...auth].ts",dest:"src/pages/api/auth/[...auth].ts"},{src:"auth/authjs/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/authjs/astro/src/pages/register.astro",dest:"src/pages/register.astro"},{src:"auth/authjs/astro/src/components/auth/AuthForm.tsx",dest:"src/components/auth/AuthForm.tsx"},{src:"auth/authjs/astro/src/components/auth/UserButton.tsx",dest:"src/components/auth/UserButton.tsx"});return _}function R5(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/auth0/nextjs/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/nextjs/api/auth/[auth0]/route.ts",dest:"src/app/api/auth/[auth0]/route.ts"},{src:"auth/auth0/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/auth0/nextjs/components/auth-button.tsx",dest:"src/components/auth/auth-button.tsx"},{src:"auth/auth0/nextjs/components/user-profile.tsx",dest:"src/components/auth/user-profile.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/auth0/sveltekit/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/sveltekit/hooks.client.ts",dest:"src/hooks.client.ts"},{src:"auth/auth0/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/auth0/sveltekit/routes/(auth)/callback/+page.svelte",dest:"src/routes/(auth)/callback/+page.svelte"},{src:"auth/auth0/sveltekit/components/AuthButton.svelte",dest:"src/lib/components/auth/AuthButton.svelte"},{src:"auth/auth0/sveltekit/components/UserProfile.svelte",dest:"src/lib/components/auth/UserProfile.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/auth0/nuxt/plugins/auth0.ts",dest:"plugins/auth0.ts"},{src:"auth/auth0/nuxt/composables/useAuth0.ts",dest:"composables/useAuth0.ts"},{src:"auth/auth0/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/auth0/nuxt/pages/callback.vue",dest:"pages/callback.vue"},{src:"auth/auth0/nuxt/components/AuthButton.vue",dest:"components/auth/AuthButton.vue"},{src:"auth/auth0/nuxt/components/UserProfile.vue",dest:"components/auth/UserProfile.vue"});else if(q.framework==="remix")_.push({src:"auth/auth0/remix/app/lib/auth0.ts",dest:"app/lib/auth0.ts"},{src:"auth/auth0/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/auth0/remix/app/routes/callback.tsx",dest:"app/routes/callback.tsx"},{src:"auth/auth0/remix/app/routes/logout.tsx",dest:"app/routes/logout.tsx"},{src:"auth/auth0/remix/app/components/auth/auth-button.tsx",dest:"app/components/auth/auth-button.tsx"},{src:"auth/auth0/remix/app/components/auth/user-profile.tsx",dest:"app/components/auth/user-profile.tsx"});else if(q.framework==="astro")_.push({src:"auth/auth0/astro/src/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/auth0/astro/src/pages/callback.astro",dest:"src/pages/callback.astro"},{src:"auth/auth0/astro/src/components/auth/AuthButton.tsx",dest:"src/components/auth/AuthButton.tsx"},{src:"auth/auth0/astro/src/components/auth/UserProfile.tsx",dest:"src/components/auth/UserProfile.tsx"});else if(q.framework==="solidstart")_.push({src:"auth/auth0/solidstart/src/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/solidstart/src/routes/login.tsx",dest:"src/routes/login.tsx"},{src:"auth/auth0/solidstart/src/routes/callback.tsx",dest:"src/routes/callback.tsx"},{src:"auth/auth0/solidstart/src/components/auth/auth-button.tsx",dest:"src/components/auth/auth-button.tsx"},{src:"auth/auth0/solidstart/src/components/auth/user-profile.tsx",dest:"src/components/auth/user-profile.tsx"});else if(q.framework==="tanstack-start")_.push({src:"auth/auth0/tanstack-start/app/lib/auth0.ts",dest:"app/lib/auth0.ts"},{src:"auth/auth0/tanstack-start/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/auth0/tanstack-start/app/routes/callback.tsx",dest:"app/routes/callback.tsx"},{src:"auth/auth0/tanstack-start/app/components/auth/auth-button.tsx",dest:"app/components/auth/auth-button.tsx"});return _}function g5(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/stripe/nextjs/lib/stripe.ts",dest:"src/lib/stripe.ts"},{src:"payments/stripe/nextjs/lib/stripe-client.ts",dest:"src/lib/stripe-client.ts"},{src:"payments/stripe/nextjs/api/checkout/route.ts.hbs",dest:"src/app/api/checkout/route.ts",isTemplate:!0},{src:"payments/stripe/nextjs/api/webhooks/stripe/route.ts.hbs",dest:"src/app/api/webhooks/stripe/route.ts",isTemplate:!0},{src:"payments/stripe/nextjs/api/portal/route.ts",dest:"src/app/api/portal/route.ts"},{src:"payments/stripe/nextjs/components/pricing-card.tsx.hbs",dest:"src/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/nextjs/components/checkout-button.tsx",dest:"src/components/pricing/checkout-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/stripe/sveltekit/lib/stripe.ts",dest:"src/lib/server/stripe.ts"},{src:"payments/stripe/sveltekit/routes/api/checkout/+server.ts.hbs",dest:"src/routes/api/checkout/+server.ts",isTemplate:!0},{src:"payments/stripe/sveltekit/routes/api/webhooks/stripe/+server.ts.hbs",dest:"src/routes/api/webhooks/stripe/+server.ts",isTemplate:!0},{src:"payments/stripe/sveltekit/routes/api/portal/+server.ts",dest:"src/routes/api/portal/+server.ts"},{src:"payments/stripe/sveltekit/components/PricingCard.svelte.hbs",dest:"src/lib/components/pricing/PricingCard.svelte",isTemplate:!0},{src:"payments/stripe/sveltekit/components/CheckoutButton.svelte",dest:"src/lib/components/pricing/CheckoutButton.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/stripe/nuxt/server/utils/stripe.ts",dest:"server/utils/stripe.ts"},{src:"payments/stripe/nuxt/composables/useStripe.ts",dest:"composables/useStripe.ts"},{src:"payments/stripe/nuxt/server/api/checkout.post.ts.hbs",dest:"server/api/checkout.post.ts",isTemplate:!0},{src:"payments/stripe/nuxt/server/api/webhooks/stripe.post.ts.hbs",dest:"server/api/webhooks/stripe.post.ts",isTemplate:!0},{src:"payments/stripe/nuxt/server/api/portal.post.ts",dest:"server/api/portal.post.ts"},{src:"payments/stripe/nuxt/components/PricingCard.vue.hbs",dest:"components/pricing/PricingCard.vue",isTemplate:!0},{src:"payments/stripe/nuxt/components/CheckoutButton.vue",dest:"components/pricing/CheckoutButton.vue"});else if(q.framework==="remix")_.push({src:"payments/stripe/remix/app/lib/stripe.server.ts",dest:"app/lib/stripe.server.ts"},{src:"payments/stripe/remix/app/routes/api.checkout.ts.hbs",dest:"app/routes/api.checkout.ts",isTemplate:!0},{src:"payments/stripe/remix/app/routes/api.webhooks.stripe.ts.hbs",dest:"app/routes/api.webhooks.stripe.ts",isTemplate:!0},{src:"payments/stripe/remix/app/routes/api.portal.ts",dest:"app/routes/api.portal.ts"},{src:"payments/stripe/remix/app/components/pricing/pricing-card.tsx.hbs",dest:"app/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/remix/app/components/pricing/checkout-button.tsx",dest:"app/components/pricing/checkout-button.tsx"});else if(q.framework==="astro")_.push({src:"payments/stripe/astro/src/lib/stripe.ts",dest:"src/lib/stripe.ts"},{src:"payments/stripe/astro/src/pages/api/checkout.ts.hbs",dest:"src/pages/api/checkout.ts",isTemplate:!0},{src:"payments/stripe/astro/src/pages/api/webhooks/stripe.ts.hbs",dest:"src/pages/api/webhooks/stripe.ts",isTemplate:!0},{src:"payments/stripe/astro/src/pages/api/portal.ts",dest:"src/pages/api/portal.ts"},{src:"payments/stripe/astro/src/components/pricing/PricingCard.tsx.hbs",dest:"src/components/pricing/PricingCard.tsx",isTemplate:!0},{src:"payments/stripe/astro/src/components/pricing/CheckoutButton.tsx",dest:"src/components/pricing/CheckoutButton.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/stripe/solidstart/src/lib/stripe.server.ts",dest:"src/lib/stripe.server.ts"},{src:"payments/stripe/solidstart/src/routes/api/checkout.ts",dest:"src/routes/api/checkout.ts"},{src:"payments/stripe/solidstart/src/routes/api/webhooks/stripe.ts.hbs",dest:"src/routes/api/webhooks/stripe.ts",isTemplate:!0},{src:"payments/stripe/solidstart/src/routes/api/portal.ts",dest:"src/routes/api/portal.ts"},{src:"payments/stripe/solidstart/src/components/pricing/pricing-card.tsx.hbs",dest:"src/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/solidstart/src/components/pricing/checkout-button.tsx",dest:"src/components/pricing/checkout-button.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/stripe/tanstack-start/app/lib/stripe.server.ts",dest:"app/lib/stripe.server.ts"},{src:"payments/stripe/tanstack-start/app/routes/api.checkout.ts",dest:"app/routes/api.checkout.ts"},{src:"payments/stripe/tanstack-start/app/routes/api.webhooks.stripe.ts.hbs",dest:"app/routes/api.webhooks.stripe.ts",isTemplate:!0},{src:"payments/stripe/tanstack-start/app/components/pricing/pricing-card.tsx.hbs",dest:"app/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/tanstack-start/app/components/pricing/checkout-button.tsx",dest:"app/components/pricing/checkout-button.tsx"});return _}function E5(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/paddle/nextjs/lib/paddle.ts",dest:"src/lib/paddle.ts"},{src:"payments/paddle/nextjs/api/webhooks/paddle/route.ts.hbs",dest:"src/app/api/webhooks/paddle/route.ts",isTemplate:!0},{src:"payments/paddle/nextjs/components/paddle-checkout.tsx",dest:"src/components/pricing/paddle-checkout.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/paddle/sveltekit/lib/paddle.ts",dest:"src/lib/server/paddle.ts"},{src:"payments/paddle/sveltekit/routes/api/webhooks/paddle/+server.ts.hbs",dest:"src/routes/api/webhooks/paddle/+server.ts",isTemplate:!0},{src:"payments/paddle/sveltekit/components/PaddleCheckout.svelte",dest:"src/lib/components/pricing/PaddleCheckout.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/paddle/nuxt/server/utils/paddle.ts",dest:"server/utils/paddle.ts"},{src:"payments/paddle/nuxt/composables/usePaddle.ts",dest:"composables/usePaddle.ts"},{src:"payments/paddle/nuxt/server/api/webhooks/paddle.post.ts.hbs",dest:"server/api/webhooks/paddle.post.ts",isTemplate:!0},{src:"payments/paddle/nuxt/components/PaddleCheckout.vue",dest:"components/pricing/PaddleCheckout.vue"});else if(q.framework==="remix")_.push({src:"payments/paddle/remix/app/lib/paddle.server.ts",dest:"app/lib/paddle.server.ts"},{src:"payments/paddle/remix/app/routes/api.webhooks.paddle.ts.hbs",dest:"app/routes/api.webhooks.paddle.ts",isTemplate:!0},{src:"payments/paddle/remix/app/components/pricing/paddle-checkout.tsx",dest:"app/components/pricing/paddle-checkout.tsx"});else if(q.framework==="astro")_.push({src:"payments/paddle/astro/src/lib/paddle.ts",dest:"src/lib/paddle.ts"},{src:"payments/paddle/astro/src/pages/api/webhooks/paddle.ts.hbs",dest:"src/pages/api/webhooks/paddle.ts",isTemplate:!0},{src:"payments/paddle/astro/src/components/pricing/PaddleCheckout.tsx",dest:"src/components/pricing/PaddleCheckout.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/paddle/solidstart/src/lib/paddle.server.ts",dest:"src/lib/paddle.server.ts"},{src:"payments/paddle/solidstart/src/routes/api/webhooks/paddle.ts.hbs",dest:"src/routes/api/webhooks/paddle.ts",isTemplate:!0},{src:"payments/paddle/solidstart/src/components/pricing/paddle-checkout.tsx",dest:"src/components/pricing/paddle-checkout.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/paddle/tanstack-start/app/lib/paddle.server.ts",dest:"app/lib/paddle.server.ts"},{src:"payments/paddle/tanstack-start/app/routes/api.webhooks.paddle.ts.hbs",dest:"app/routes/api.webhooks.paddle.ts",isTemplate:!0},{src:"payments/paddle/tanstack-start/app/components/pricing/paddle-checkout.tsx",dest:"app/components/pricing/paddle-checkout.tsx"});return _}function I5(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/lemonsqueezy/nextjs/lib/lemonsqueezy.ts",dest:"src/lib/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/nextjs/api/webhooks/lemonsqueezy/route.ts.hbs",dest:"src/app/api/webhooks/lemonsqueezy/route.ts",isTemplate:!0},{src:"payments/lemonsqueezy/nextjs/components/lemonsqueezy-checkout.tsx",dest:"src/components/pricing/lemonsqueezy-checkout.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/lemonsqueezy/sveltekit/lib/lemonsqueezy.ts",dest:"src/lib/server/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/sveltekit/routes/api/webhooks/lemonsqueezy/+server.ts.hbs",dest:"src/routes/api/webhooks/lemonsqueezy/+server.ts",isTemplate:!0},{src:"payments/lemonsqueezy/sveltekit/components/LemonSqueezyCheckout.svelte",dest:"src/lib/components/pricing/LemonSqueezyCheckout.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/lemonsqueezy/nuxt/server/utils/lemonsqueezy.ts",dest:"server/utils/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/nuxt/composables/useLemonSqueezy.ts",dest:"composables/useLemonSqueezy.ts"},{src:"payments/lemonsqueezy/nuxt/server/api/webhooks/lemonsqueezy.post.ts.hbs",dest:"server/api/webhooks/lemonsqueezy.post.ts",isTemplate:!0},{src:"payments/lemonsqueezy/nuxt/components/LemonSqueezyCheckout.vue",dest:"components/pricing/LemonSqueezyCheckout.vue"});else if(q.framework==="remix")_.push({src:"payments/lemonsqueezy/remix/app/lib/lemonsqueezy.server.ts",dest:"app/lib/lemonsqueezy.server.ts"},{src:"payments/lemonsqueezy/remix/app/routes/api.webhooks.lemonsqueezy.ts.hbs",dest:"app/routes/api.webhooks.lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/remix/app/components/pricing/lemonsqueezy-checkout.tsx",dest:"app/components/pricing/lemonsqueezy-checkout.tsx"});else if(q.framework==="astro")_.push({src:"payments/lemonsqueezy/astro/src/lib/lemonsqueezy.ts",dest:"src/lib/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/astro/src/pages/api/webhooks/lemonsqueezy.ts.hbs",dest:"src/pages/api/webhooks/lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/astro/src/components/pricing/LemonSqueezyCheckout.tsx",dest:"src/components/pricing/LemonSqueezyCheckout.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/lemonsqueezy/solidstart/src/lib/lemonsqueezy.server.ts",dest:"src/lib/lemonsqueezy.server.ts"},{src:"payments/lemonsqueezy/solidstart/src/routes/api/webhooks/lemonsqueezy.ts.hbs",dest:"src/routes/api/webhooks/lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/solidstart/src/components/pricing/lemonsqueezy-checkout.tsx",dest:"src/components/pricing/lemonsqueezy-checkout.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/lemonsqueezy/tanstack-start/app/lib/lemonsqueezy.server.ts",dest:"app/lib/lemonsqueezy.server.ts"},{src:"payments/lemonsqueezy/tanstack-start/app/routes/api.webhooks.lemonsqueezy.ts.hbs",dest:"app/routes/api.webhooks.lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/tanstack-start/app/components/pricing/lemonsqueezy-checkout.tsx",dest:"app/components/pricing/lemonsqueezy-checkout.tsx"});return _}function D5(q){return[{src:"database/drizzle/drizzle.config.ts.hbs",dest:"drizzle.config.ts",isTemplate:!0},{src:"database/drizzle/schema.ts.hbs",dest:"src/lib/db/schema.ts",isTemplate:!0},{src:"database/drizzle/index.ts.hbs",dest:"src/lib/db/index.ts",isTemplate:!0}]}function x5(q){return[{src:"database/prisma/schema.prisma.hbs",dest:"prisma/schema.prisma",isTemplate:!0},{src:"database/prisma/client.ts",dest:"src/lib/db/index.ts"}]}function L5(q){return[{src:"database/kysely/db.ts.hbs",dest:"src/lib/db/index.ts",isTemplate:!0},{src:"database/kysely/types.ts.hbs",dest:"src/lib/db/types.ts",isTemplate:!0},{src:"database/kysely/kysely.config.ts.hbs",dest:"kysely.config.ts",isTemplate:!0},{src:"database/kysely/migrations/001_initial.ts.hbs",dest:"src/lib/db/migrations/001_initial.ts",isTemplate:!0}]}function s5(q){let _=[{src:"backend/hono/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/hono/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/hono/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/hono/src/middleware/cors.ts",dest:"src/api/middleware/cors.ts"},{src:"backend/hono/src/middleware/logger.ts",dest:"src/api/middleware/logger.ts"},{src:"backend/hono/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/hono/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/hono/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/hono/src/middleware/auth.ts.hbs",dest:"src/api/middleware/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/hono/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}function B5(q){return[{src:"frameworks/solidstart/app.config.ts",dest:"app.config.ts"},{src:"frameworks/solidstart/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/solidstart/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/solidstart/src/app.tsx.hbs",dest:"src/app.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/app.css",dest:"src/app.css"},{src:"frameworks/solidstart/src/entry-client.tsx",dest:"src/entry-client.tsx"},{src:"frameworks/solidstart/src/entry-server.tsx",dest:"src/entry-server.tsx"},{src:"frameworks/solidstart/src/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/solidstart/src/components/ui/Button.tsx",dest:"src/components/ui/Button.tsx"},{src:"frameworks/solidstart/src/components/ui/Card.tsx",dest:"src/components/ui/Card.tsx"},{src:"frameworks/solidstart/src/components/ui/Input.tsx",dest:"src/components/ui/Input.tsx"},{src:"frameworks/solidstart/src/routes/index.tsx.hbs",dest:"src/routes/index.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/routes/pricing.tsx.hbs",dest:"src/routes/pricing.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/routes/dashboard.tsx.hbs",dest:"src/routes/dashboard.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/solidstart/src/routes/dashboard/index.tsx.hbs",dest:"src/routes/dashboard/index.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/solidstart/src/routes/dashboard/settings.tsx",dest:"src/routes/dashboard/settings.tsx",condition:(f)=>!!f.auth},{src:"frameworks/solidstart/src/routes/dashboard/billing.tsx.hbs",dest:"src/routes/dashboard/billing.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/solidstart/src/components/Header.tsx.hbs",dest:"src/components/Header.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/components/Footer.tsx",dest:"src/components/Footer.tsx"},{src:"frameworks/solidstart/src/components/Sidebar.tsx.hbs",dest:"src/components/Sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function U5(q){return[{src:"frameworks/tanstack-start/app.config.ts",dest:"app.config.ts"},{src:"frameworks/tanstack-start/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/tanstack-start/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/tanstack-start/app/client.tsx",dest:"app/client.tsx"},{src:"frameworks/tanstack-start/app/ssr.tsx",dest:"app/ssr.tsx"},{src:"frameworks/tanstack-start/app/router.tsx",dest:"app/router.tsx"},{src:"frameworks/tanstack-start/app/global.css",dest:"app/global.css"},{src:"frameworks/tanstack-start/app/lib/utils.ts",dest:"app/lib/utils.ts"},{src:"frameworks/tanstack-start/app/routes/__root.tsx.hbs",dest:"app/routes/__root.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/routes/index.tsx.hbs",dest:"app/routes/index.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/routes/pricing.tsx.hbs",dest:"app/routes/pricing.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/routes/dashboard.tsx.hbs",dest:"app/routes/dashboard.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/tanstack-start/app/routes/dashboard.index.tsx.hbs",dest:"app/routes/dashboard.index.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/tanstack-start/app/routes/dashboard.settings.tsx",dest:"app/routes/dashboard.settings.tsx",condition:(f)=>!!f.auth},{src:"frameworks/tanstack-start/app/routes/dashboard.billing.tsx.hbs",dest:"app/routes/dashboard.billing.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/tanstack-start/app/components/ui/button.tsx",dest:"app/components/ui/button.tsx"},{src:"frameworks/tanstack-start/app/components/ui/card.tsx",dest:"app/components/ui/card.tsx"},{src:"frameworks/tanstack-start/app/components/ui/input.tsx",dest:"app/components/ui/input.tsx"},{src:"frameworks/tanstack-start/app/components/header.tsx.hbs",dest:"app/components/header.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/components/footer.tsx",dest:"app/components/footer.tsx"},{src:"frameworks/tanstack-start/app/components/sidebar.tsx.hbs",dest:"app/components/sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function F5(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/polar/nextjs/lib/polar.ts",dest:"src/lib/polar.ts"},{src:"payments/polar/nextjs/api/webhooks/polar/route.ts.hbs",dest:"src/app/api/webhooks/polar/route.ts",isTemplate:!0},{src:"payments/polar/nextjs/components/polar-checkout.tsx",dest:"src/components/pricing/polar-checkout.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/polar/sveltekit/lib/polar.ts",dest:"src/lib/server/polar.ts"},{src:"payments/polar/sveltekit/routes/api/webhooks/polar/+server.ts.hbs",dest:"src/routes/api/webhooks/polar/+server.ts",isTemplate:!0},{src:"payments/polar/sveltekit/components/PolarCheckout.svelte",dest:"src/lib/components/pricing/PolarCheckout.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/polar/nuxt/server/utils/polar.ts",dest:"server/utils/polar.ts"},{src:"payments/polar/nuxt/composables/usePolar.ts",dest:"composables/usePolar.ts"},{src:"payments/polar/nuxt/server/api/webhooks/polar.post.ts.hbs",dest:"server/api/webhooks/polar.post.ts",isTemplate:!0},{src:"payments/polar/nuxt/components/PolarCheckout.vue",dest:"components/pricing/PolarCheckout.vue"});else if(q.framework==="remix")_.push({src:"payments/polar/remix/app/lib/polar.server.ts",dest:"app/lib/polar.server.ts"},{src:"payments/polar/remix/app/routes/api.webhooks.polar.ts.hbs",dest:"app/routes/api.webhooks.polar.ts",isTemplate:!0},{src:"payments/polar/remix/app/components/pricing/polar-checkout.tsx",dest:"app/components/pricing/polar-checkout.tsx"});else if(q.framework==="astro")_.push({src:"payments/polar/astro/src/lib/polar.ts",dest:"src/lib/polar.ts"},{src:"payments/polar/astro/src/pages/api/webhooks/polar.ts.hbs",dest:"src/pages/api/webhooks/polar.ts",isTemplate:!0},{src:"payments/polar/astro/src/components/pricing/PolarCheckout.tsx",dest:"src/components/pricing/PolarCheckout.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/polar/solidstart/src/lib/polar.server.ts",dest:"src/lib/polar.server.ts"},{src:"payments/polar/solidstart/src/routes/api/webhooks/polar.ts.hbs",dest:"src/routes/api/webhooks/polar.ts",isTemplate:!0},{src:"payments/polar/solidstart/src/components/pricing/polar-checkout.tsx",dest:"src/components/pricing/polar-checkout.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/polar/tanstack-start/app/lib/polar.server.ts",dest:"app/lib/polar.server.ts"},{src:"payments/polar/tanstack-start/app/routes/api.webhooks.polar.ts.hbs",dest:"app/routes/api.webhooks.polar.ts",isTemplate:!0},{src:"payments/polar/tanstack-start/app/components/pricing/polar-checkout.tsx",dest:"app/components/pricing/polar-checkout.tsx"});return _}function Q5(q){return[{src:"database/mongoose/connection.ts.hbs",dest:"src/lib/db/connection.ts",isTemplate:!0},{src:"database/mongoose/index.ts",dest:"src/lib/db/index.ts"},{src:"database/mongoose/models/index.ts",dest:"src/lib/db/models/index.ts"},{src:"database/mongoose/models/user.ts.hbs",dest:"src/lib/db/models/user.ts",isTemplate:!0}]}function q1(q){let _=[{src:"backend/elysia/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/elysia/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/elysia/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/elysia/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/elysia/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/elysia/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/elysia/src/middleware/auth.ts.hbs",dest:"src/api/middleware/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/elysia/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}function _1(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/supabase/nextjs/supabase-client.ts",dest:"src/lib/supabase/client.ts"},{src:"auth/supabase/nextjs/supabase-server.ts",dest:"src/lib/supabase/server.ts"},{src:"auth/supabase/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/supabase/nextjs/app/auth/callback/route.ts",dest:"src/app/auth/callback/route.ts"},{src:"auth/supabase/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/supabase/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/supabase/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/supabase/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/supabase/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/supabase/sveltekit/supabase-client.ts",dest:"src/lib/supabase/client.ts"},{src:"auth/supabase/sveltekit/supabase-server.ts",dest:"src/lib/supabase/server.ts"},{src:"auth/supabase/sveltekit/hooks.server.ts",dest:"src/hooks.server.ts"},{src:"auth/supabase/sveltekit/routes/auth/callback/+server.ts",dest:"src/routes/auth/callback/+server.ts"},{src:"auth/supabase/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/supabase/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/supabase/sveltekit/components/AuthForm.svelte",dest:"src/lib/components/auth/AuthForm.svelte"},{src:"auth/supabase/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/supabase/nuxt/composables/useSupabaseAuth.ts",dest:"composables/useSupabaseAuth.ts"},{src:"auth/supabase/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/supabase/nuxt/pages/register.vue",dest:"pages/register.vue"},{src:"auth/supabase/nuxt/pages/auth/callback.vue",dest:"pages/auth/callback.vue"},{src:"auth/supabase/nuxt/components/AuthForm.vue",dest:"components/auth/AuthForm.vue"},{src:"auth/supabase/nuxt/components/UserButton.vue",dest:"components/auth/UserButton.vue"});else if(q.framework==="remix")_.push({src:"auth/supabase/remix/app/lib/supabase.server.ts",dest:"app/lib/supabase.server.ts"},{src:"auth/supabase/remix/app/lib/supabase.client.ts",dest:"app/lib/supabase.client.ts"},{src:"auth/supabase/remix/app/routes/auth.callback.tsx",dest:"app/routes/auth.callback.tsx"},{src:"auth/supabase/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/supabase/remix/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/supabase/remix/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/supabase/remix/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});else if(q.framework==="astro")_.push({src:"auth/supabase/astro/src/lib/supabase.ts",dest:"src/lib/supabase.ts"},{src:"auth/supabase/astro/src/pages/auth/callback.ts",dest:"src/pages/auth/callback.ts"},{src:"auth/supabase/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/supabase/astro/src/pages/register.astro",dest:"src/pages/register.astro"},{src:"auth/supabase/astro/src/components/auth/AuthForm.tsx",dest:"src/components/auth/AuthForm.tsx"},{src:"auth/supabase/astro/src/components/auth/UserButton.tsx",dest:"src/components/auth/UserButton.tsx"});return _}function f1(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/lucia/nextjs/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/lucia/nextjs/auth-actions.ts",dest:"src/lib/auth-actions.ts"},{src:"auth/lucia/nextjs/validate-request.ts",dest:"src/lib/validate-request.ts"},{src:"auth/lucia/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/lucia/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/lucia/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/lucia/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/lucia/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/lucia/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/lucia/sveltekit/auth.ts.hbs",dest:"src/lib/server/auth.ts",isTemplate:!0},{src:"auth/lucia/sveltekit/hooks.server.ts",dest:"src/hooks.server.ts"},{src:"auth/lucia/sveltekit/app.d.ts",dest:"src/app.d.ts"},{src:"auth/lucia/sveltekit/routes/(auth)/login/+page.server.ts",dest:"src/routes/(auth)/login/+page.server.ts"},{src:"auth/lucia/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/lucia/sveltekit/routes/(auth)/register/+page.server.ts",dest:"src/routes/(auth)/register/+page.server.ts"},{src:"auth/lucia/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/lucia/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});return _}function $1(q){let _=[{src:"backend/express/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/express/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/express/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/express/src/middleware/error.ts",dest:"src/api/middleware/error.ts"},{src:"backend/express/src/middleware/validate.ts",dest:"src/api/middleware/validate.ts"},{src:"backend/express/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/express/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/express/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/express/src/middleware/auth.ts.hbs",dest:"src/api/middleware/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/express/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}function K1(q){let _=[{src:"backend/fastify/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/fastify/src/plugins/cors.ts",dest:"src/api/plugins/cors.ts"},{src:"backend/fastify/src/plugins/swagger.ts",dest:"src/api/plugins/swagger.ts"},{src:"backend/fastify/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/fastify/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/fastify/src/schemas/common.ts",dest:"src/api/schemas/common.ts"},{src:"backend/fastify/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/fastify/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/fastify/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/fastify/src/plugins/auth.ts.hbs",dest:"src/api/plugins/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/fastify/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}var k={next:"^15.1.0",react:"^19.0.0","react-dom":"^19.0.0",svelte:"^5.0.0","@sveltejs/kit":"^2.15.0","@sveltejs/adapter-auto":"^3.3.0","@sveltejs/adapter-node":"^5.2.0","@sveltejs/vite-plugin-svelte":"^5.0.0",nuxt:"^3.15.0",vue:"^3.5.0","@nuxtjs/tailwindcss":"^6.12.0","@vueuse/nuxt":"^12.0.0","@remix-run/node":"^2.15.0","@remix-run/react":"^2.15.0","@remix-run/serve":"^2.15.0","@remix-run/dev":"^2.15.0",isbot:"^5.1.0",astro:"^5.1.0","@astrojs/node":"^9.0.0","@astrojs/react":"^4.1.0","@astrojs/tailwind":"^6.0.0",vite:"^6.0.0","@solidjs/start":"^1.0.0","@solidjs/router":"^0.15.0","@solidjs/meta":"^0.29.0","solid-js":"^1.9.0",vinxi:"^0.5.0","@tanstack/react-start":"^1.95.0","@tanstack/react-router":"^1.95.0",typescript:"^5.7.0","@types/node":"^22.0.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","drizzle-orm":"^0.38.0","drizzle-kit":"^0.30.0",postgres:"^3.4.0","@prisma/client":"^6.0.0",prisma:"^6.0.0","@libsql/client":"^0.14.0","better-sqlite3":"^11.0.0","@types/better-sqlite3":"^7.6.0",kysely:"^0.27.0",pg:"^8.13.0","@types/pg":"^8.11.0","kysely-ctl":"^0.9.0",mongoose:"^8.9.0","better-auth":"^1.2.0","@better-auth/cli":"^1.2.0","@clerk/nextjs":"^6.0.0",lucia:"^3.2.0",oslo:"^1.2.0","@lucia-auth/adapter-drizzle":"^1.1.0","@lucia-auth/adapter-prisma":"^4.0.0","@oslojs/crypto":"^1.0.0","@oslojs/encoding":"^1.1.0","next-auth":"^5.0.0","@auth/core":"^0.37.0","@auth/sveltekit":"^1.7.0","@auth/drizzle-adapter":"^1.7.0","@sidebase/nuxt-auth":"^0.9.0","remix-auth":"^3.7.0","remix-auth-form":"^1.5.0","auth-astro":"^4.2.0","@auth0/nextjs-auth0":"^3.5.0","@auth0/auth0-vue":"^2.3.0","@auth0/auth0-spa-js":"^2.1.0","@auth0/auth0-react":"^2.2.0","@supabase/supabase-js":"^2.47.0","@supabase/ssr":"^0.5.0","@nuxtjs/supabase":"^1.4.0",stripe:"^17.0.0","@stripe/stripe-js":"^5.0.0","@paddle/paddle-node-sdk":"^1.6.0","@paddle/paddle-js":"^1.3.0","@lemonsqueezy/lemonsqueezy.js":"^3.4.0","@polar-sh/sdk":"^0.16.0",tailwindcss:"^4.0.0","@tailwindcss/vite":"^4.0.0",autoprefixer:"^10.4.0",postcss:"^8.4.0",clsx:"^2.1.0","tailwind-merge":"^2.6.0","lucide-react":"^0.469.0","lucide-svelte":"^0.469.0","lucide-vue-next":"^0.469.0",zod:"^3.24.0",nanoid:"^5.0.0","vite-tsconfig-paths":"^5.1.0",hono:"^4.6.0","@hono/node-server":"^1.13.0","@hono/zod-validator":"^0.4.0",elysia:"^1.2.0","@elysiajs/cors":"^1.1.0","@elysiajs/swagger":"^1.1.0",express:"^5.0.0","@types/express":"^5.0.0",helmet:"^8.0.0",cors:"^2.8.0","@types/cors":"^2.8.0","express-rate-limit":"^7.4.0",fastify:"^5.1.0","@fastify/cors":"^10.0.0","@fastify/helmet":"^12.0.0","@fastify/rate-limit":"^10.0.0","@fastify/swagger":"^9.0.0","@fastify/swagger-ui":"^5.0.0"};function aK(q){switch(q){case"nextjs":return{deps:{next:k.next,react:k.react,"react-dom":k["react-dom"]},devDeps:{typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"next dev --turbopack",build:"next build",start:"next start",typecheck:"tsc --noEmit"}};case"sveltekit":return{deps:{"@sveltejs/kit":k["@sveltejs/kit"],svelte:k.svelte},devDeps:{"@sveltejs/adapter-auto":k["@sveltejs/adapter-auto"],"@sveltejs/vite-plugin-svelte":k["@sveltejs/vite-plugin-svelte"],vite:k.vite,typescript:k.typescript,"@types/node":k["@types/node"]},scripts:{dev:"vite dev",build:"vite build",preview:"vite preview",typecheck:"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"}};case"nuxt":return{deps:{nuxt:k.nuxt,vue:k.vue,"@nuxtjs/tailwindcss":k["@nuxtjs/tailwindcss"],"@vueuse/nuxt":k["@vueuse/nuxt"]},devDeps:{typescript:k.typescript},scripts:{dev:"nuxi dev",build:"nuxi build",preview:"nuxi preview",generate:"nuxi generate",typecheck:"nuxi typecheck"}};case"remix":return{deps:{"@remix-run/node":k["@remix-run/node"],"@remix-run/react":k["@remix-run/react"],"@remix-run/serve":k["@remix-run/serve"],react:k.react,"react-dom":k["react-dom"],isbot:k.isbot},devDeps:{"@remix-run/dev":k["@remix-run/dev"],vite:k.vite,"vite-tsconfig-paths":k["vite-tsconfig-paths"],typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"remix vite:dev",build:"remix vite:build",start:"remix-serve ./build/server/index.js",typecheck:"tsc --noEmit"}};case"astro":return{deps:{astro:k.astro,"@astrojs/node":k["@astrojs/node"],"@astrojs/react":k["@astrojs/react"],react:k.react,"react-dom":k["react-dom"]},devDeps:{typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"astro dev",build:"astro build",preview:"astro preview",typecheck:"astro check && tsc --noEmit"}};case"solidstart":return{deps:{"@solidjs/start":k["@solidjs/start"],"@solidjs/router":k["@solidjs/router"],"@solidjs/meta":k["@solidjs/meta"],"solid-js":k["solid-js"],vinxi:k.vinxi},devDeps:{typescript:k.typescript,"@types/node":k["@types/node"]},scripts:{dev:"vinxi dev",build:"vinxi build",start:"vinxi start",typecheck:"tsc --noEmit"}};case"tanstack-start":return{deps:{"@tanstack/react-start":k["@tanstack/react-start"],"@tanstack/react-router":k["@tanstack/react-router"],react:k.react,"react-dom":k["react-dom"],vinxi:k.vinxi},devDeps:{vite:k.vite,"vite-tsconfig-paths":k["vite-tsconfig-paths"],typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"vinxi dev",build:"vinxi build",start:"vinxi start",typecheck:"tsc --noEmit"}};default:return{deps:{},devDeps:{},scripts:{}}}}function tK(q,_){switch(q){case"better-auth":return{deps:{"better-auth":k["better-auth"]},devDeps:{"@better-auth/cli":k["@better-auth/cli"]}};case"clerk":if(_==="nextjs")return{deps:{"@clerk/nextjs":k["@clerk/nextjs"]},devDeps:{}};return{deps:{},devDeps:{}};case"authjs":if(_==="nextjs")return{deps:{"next-auth":k["next-auth"],"@auth/drizzle-adapter":k["@auth/drizzle-adapter"]},devDeps:{}};else if(_==="sveltekit")return{deps:{"@auth/sveltekit":k["@auth/sveltekit"],"@auth/drizzle-adapter":k["@auth/drizzle-adapter"]},devDeps:{}};else if(_==="nuxt")return{deps:{"@sidebase/nuxt-auth":k["@sidebase/nuxt-auth"]},devDeps:{}};else if(_==="remix")return{deps:{"remix-auth":k["remix-auth"],"remix-auth-form":k["remix-auth-form"]},devDeps:{}};else if(_==="astro")return{deps:{"auth-astro":k["auth-astro"],"@auth/core":k["@auth/core"]},devDeps:{}};return{deps:{},devDeps:{}};case"auth0":if(_==="nextjs")return{deps:{"@auth0/nextjs-auth0":k["@auth0/nextjs-auth0"]},devDeps:{}};else if(_==="nuxt")return{deps:{"@auth0/auth0-vue":k["@auth0/auth0-vue"]},devDeps:{}};else return{deps:{"@auth0/auth0-spa-js":k["@auth0/auth0-spa-js"]},devDeps:{}};case"lucia":return{deps:{lucia:k.lucia,"@oslojs/crypto":k["@oslojs/crypto"],"@oslojs/encoding":k["@oslojs/encoding"]},devDeps:{}};case"supabase":if(_==="nuxt")return{deps:{"@nuxtjs/supabase":k["@nuxtjs/supabase"]},devDeps:{}};return{deps:{"@supabase/supabase-js":k["@supabase/supabase-js"],"@supabase/ssr":k["@supabase/ssr"]},devDeps:{}};default:return{deps:{},devDeps:{}}}}function GK(q){switch(q){case"stripe":return{deps:{stripe:k.stripe,"@stripe/stripe-js":k["@stripe/stripe-js"]},devDeps:{}};case"paddle":return{deps:{"@paddle/paddle-node-sdk":k["@paddle/paddle-node-sdk"],"@paddle/paddle-js":k["@paddle/paddle-js"]},devDeps:{}};case"lemonsqueezy":return{deps:{"@lemonsqueezy/lemonsqueezy.js":k["@lemonsqueezy/lemonsqueezy.js"]},devDeps:{}};case"polar":return{deps:{"@polar-sh/sdk":k["@polar-sh/sdk"]},devDeps:{}};default:return{deps:{},devDeps:{}}}}function lK(q,_){let f=["postgres","neon","supabase"].includes(_),$=["sqlite","turso"].includes(_);if(q==="drizzle"){let P={"drizzle-orm":k["drizzle-orm"]};if(f)P.postgres=k.postgres;else if($)if(_==="turso")P["@libsql/client"]=k["@libsql/client"];else P["better-sqlite3"]=k["better-sqlite3"];return{deps:P,devDeps:{"drizzle-kit":k["drizzle-kit"],...$&&_!=="turso"?{"@types/better-sqlite3":k["@types/better-sqlite3"]}:{}},scripts:{"db:generate":"drizzle-kit generate","db:migrate":"drizzle-kit migrate","db:push":"drizzle-kit push","db:studio":"drizzle-kit studio"}}}if(q==="prisma")return{deps:{"@prisma/client":k["@prisma/client"]},devDeps:{prisma:k.prisma},scripts:{"db:generate":"prisma generate","db:push":"prisma db push","db:migrate":"prisma migrate dev","db:studio":"prisma studio"}};if(q==="kysely"){let P={kysely:k.kysely};if(f)P.pg=k.pg;else if($)if(_==="turso")P["@libsql/client"]=k["@libsql/client"];else P["better-sqlite3"]=k["better-sqlite3"];return{deps:P,devDeps:{"kysely-ctl":k["kysely-ctl"],...f?{"@types/pg":k["@types/pg"]}:{},...$&&_!=="turso"?{"@types/better-sqlite3":k["@types/better-sqlite3"]}:{}},scripts:{"db:migrate":"kysely migrate:latest","db:migrate:down":"kysely migrate:down","db:migrate:make":"kysely migrate:make"}}}if(q==="mongoose")return{deps:{mongoose:k.mongoose},devDeps:{},scripts:{}};return{deps:{},devDeps:{},scripts:{}}}function bK(q){let _=q==="sveltekit"?"lucide-svelte":q==="nuxt"?"lucide-vue-next":"lucide-react";return{deps:{clsx:k.clsx,"tailwind-merge":k["tailwind-merge"],[_]:k[_]},devDeps:{tailwindcss:k.tailwindcss,"@tailwindcss/vite":k["@tailwindcss/vite"]}}}function MK(){return{deps:{zod:k.zod},devDeps:{}}}import{exec as P1}from"child_process";import{promisify as j1}from"util";import{copyFile as v1,access as zf,constants as ef}from"fs/promises";import{join as Hf}from"path";var X8=j1(P1);async function CK(){try{return await X8("bun --version"),"bun"}catch{}try{return await X8("pnpm --version"),"pnpm"}catch{}return"npm"}async function w1(q,_){let f=_||await CK();try{let $=f==="npm"?"npm install":`${f} install`;return await X8($,{cwd:q,timeout:120000}),{success:!0,message:`Dependencies installed with ${f}`}}catch($){return{success:!1,message:`Failed to install dependencies with ${f}`,error:$}}}async function r1(q){try{try{return await zf(Hf(q,".git"),ef.F_OK),{success:!0,message:"Git repository already initialized"}}catch{}return await X8("git init",{cwd:q}),await X8("git add -A",{cwd:q}),await X8('git commit -m "Initial commit from create-stacksfinder"',{cwd:q}),{success:!0,message:"Git repository initialized"}}catch(_){return{success:!1,message:"Failed to initialize git",error:_}}}async function m1(q){let _=Hf(q,".env.example"),f=Hf(q,".env");try{try{return await zf(f,ef.F_OK),{success:!0,message:".env file already exists"}}catch{}try{await zf(_,ef.F_OK)}catch{return{success:!1,message:".env.example not found"}}return await v1(_,f),{success:!0,message:"Created .env from .env.example"}}catch($){return{success:!1,message:"Failed to create .env file",error:$}}}async function O1(q,_){if(!_.orm)return{success:!0,message:"No ORM configured, skipping database setup"};let f=await CK(),$=f==="npm"?"npm run":`${f} run`;try{if(_.isDrizzle)await X8(`${$} db:generate`,{cwd:q,timeout:60000});else if(_.isPrisma)await X8(`${$} db:generate`,{cwd:q,timeout:60000});return{success:!0,message:`Database setup completed (${_.orm})`}}catch(P){return{success:!1,message:"Database setup skipped (configure .env first)",error:P}}}async function VK(q,_,f={}){let $=[];if(!f.skipInstall){let P=await w1(q);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"✗"} ${P.message}`)}if(!f.skipEnv){let P=await m1(q);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"✗"} ${P.message}`)}if(!f.skipGit){let P=await r1(q);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"✗"} ${P.message}`)}if(!f.skipDb&&_.orm){let P=await O1(q,_);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"⚠"} ${P.message}`)}return{results:$,allSuccess:$.every((P)=>P.success)}}var yK=hq(NK(import.meta.path),"templates");function h1(){if(Z8.default.helpers.eq)return;Z8.default.registerHelper("eq",(q,_)=>q===_),Z8.default.registerHelper("neq",(q,_)=>q!==_),Z8.default.registerHelper("or",(...q)=>q.slice(0,-1).some(Boolean)),Z8.default.registerHelper("and",(...q)=>q.slice(0,-1).every(Boolean)),Z8.default.registerHelper("json",(q)=>JSON.stringify(q,null,2)),Z8.default.registerHelper("unless",function(q,_){return!q?_.fn(this):_.inverse(this)})}async function z1(q){try{return await k1(hq(yK,q)),!0}catch{return!1}}async function e1(q,_,f){if(q.condition&&!q.condition(_))return!0;let $=hq(yK,q.src),P=hq(f,q.dest);if(await SK(NK(P),{recursive:!0}),!await z1(q.src))return console.warn(`Template not found: ${q.src}`),!1;try{if(q.isTemplate){let K=await T1($,"utf-8"),r=Z8.default.compile(K,{noEscape:!0})(_);await cK(P,r)}else await Y1($,P);return!0}catch(K){return console.error(`Error processing ${q.src}:`,K),!1}}function H1(q){let _=aK(q.framework||"nextjs"),f=q.orm?lK(q.orm,q.database||"postgres"):{deps:{},devDeps:{},scripts:{}},$=q.auth?tK(q.auth,q.framework||"nextjs"):{deps:{},devDeps:{}},P=q.payments?GK(q.payments):{deps:{},devDeps:{}},j=bK(q.framework||"nextjs"),K=MK();return{name:q.projectName,version:"0.1.0",private:!0,type:"module",scripts:{..._.scripts,...f.scripts},dependencies:{..._.deps,...f.deps,...$.deps,...P.deps,...j.deps,...K.deps},devDependencies:{..._.devDeps,...f.devDeps,...$.devDeps,...P.devDeps,...j.devDeps,...K.devDeps}}}async function RK(q,_,f,$={},P){h1();let j=xq(q,_);await SK(f,{recursive:!0}),P?.({phase:"init",current:0,total:0});let K=H1(j);await cK(hq(f,"package.json"),JSON.stringify(K,null,2)),P?.({phase:"config",file:"package.json",current:1,total:0});let v=AK(j),r=v.length,w=1,O=0,m="";for(let T=0;T<v.length;T++){let h=v[T],z=W1(h.src);if(z!==m)m=z,P?.({phase:z,current:T,total:r});if(await e1(h,j,f))w++,P?.({phase:m,file:h.dest,current:T+1,total:r});else O++}if(!$.skipInstall)P?.({phase:"install",current:r,total:r}),await VK(f,j,{skipInstall:$.skipInstall,skipGit:$.skipGit,verbose:$.verbose});return P?.({phase:"complete",current:r,total:r}),{success:O===0,generated:w,skipped:O,context:j}}function W1(q){if(q.includes("config")||q.includes("tsconfig")||q.includes("vite"))return"config";if(q.includes("auth"))return"auth";if(q.includes("database")||q.includes("drizzle")||q.includes("prisma"))return"database";if(q.includes("payment")||q.includes("stripe")||q.includes("paddle"))return"payments";if(q.includes("component"))return"components";if(q.includes("route")||q.includes("app/"))return"routes";return"files"}async function gK(q,_){let f=`https://stacksfinder.com/api/v1/blueprints/${q}`,$=await fetch(f,{method:"GET",headers:{Authorization:`Bearer ${_}`,"Content-Type":"application/json","User-Agent":"create-stacksfinder/0.1.0"}});if(!$.ok){if($.status===401)throw Error("Invalid API key. Get your key at stacksfinder.com/settings/api-keys");if($.status===403)throw Error("API access requires a Pro or Team subscription. Upgrade at stacksfinder.com/pro");if($.status===404)throw Error(`Blueprint "${q}" not found. Check the ID and try again.`);let P=await $.json().catch(()=>({}));throw Error(P.message||`API error: ${$.status} ${$.statusText}`)}return $.json()}function EK(q){if(q)return q;return process.env.STACKSFINDER_API_KEY}import{existsSync as IK,readFileSync as DK}from"fs";import{join as xK}from"path";var LK=[".stacksfinderrc.json",".stacksfinderrc","stacksfinder.config.json"],T8={projectType:"saas",scale:"mvp",priority:"speed",framework:"nextjs",database:"postgres",orm:"drizzle",auth:"better-auth",payments:null,hosting:"vercel"};async function Wf(){for(let _ of LK){let f=xK(process.cwd(),_);if(IK(f))try{let $=DK(f,"utf-8");return JSON.parse($)}catch($){return console.warn(`Warning: Failed to parse ${_}`),null}}let q=process.env.HOME||process.env.USERPROFILE;if(q)for(let _ of LK){let f=xK(q,_);if(IK(f))try{let $=DK(f,"utf-8");return JSON.parse($)}catch($){return console.warn(`Warning: Failed to parse ${_} in home directory`),null}}return null}async function J1(){let q=await Wf();if(!q?.defaults)return{};return{projectType:q.defaults.projectType,scale:q.defaults.scale,priority:q.defaults.priority,framework:q.defaults.framework,database:q.defaults.database,orm:q.defaults.orm,auth:q.defaults.auth,payments:q.defaults.payments}}async function sK(q){let _=await Wf();if(!_?.presets)return null;return _.presets[q]??null}async function BK(){let q=await Wf();if(!q?.presets)return[];return Object.keys(q.presets)}async function UK(){let q=await J1();return{...T8,...Object.fromEntries(Object.entries(q).filter(([_,f])=>f!==void 0))}}function FK(q){return{projectType:q.projectType??T8.projectType,scale:q.scale??T8.scale,priority:q.priority??T8.priority,framework:q.framework??T8.framework,database:q.database??T8.database,orm:q.orm??T8.orm,auth:q.auth!==void 0?q.auth:T8.auth,payments:q.payments!==void 0?q.payments:T8.payments,hosting:q.hosting??T8.hosting}}var l=L(f8(),1),Z1={remix:{drizzle:"Drizzle's type-safe queries pair perfectly with Remix loaders",prisma:"Prisma's schema-first approach works well with Remix's data loading","better-auth":"Better Auth integrates natively with Remix's session handling",stripe:"Stripe webhooks fit naturally into Remix resource routes",supabase:"Supabase provides both database and auth for rapid Remix development"},nextjs:{drizzle:"Drizzle's edge-ready design complements Next.js middleware",prisma:"Prisma's mature ecosystem integrates seamlessly with Next.js API routes",clerk:"Clerk provides drop-in auth components for Next.js App Router","better-auth":"Better Auth's minimal footprint suits Next.js server components",stripe:"Next.js API routes provide a clean Stripe webhook integration",vercel:"Vercel's zero-config deployment is optimized for Next.js"},sveltekit:{drizzle:"Drizzle's lightweight design matches SvelteKit's performance focus",prisma:"Prisma works well with SvelteKit's server-side data loading","better-auth":"Better Auth's Svelte adapter provides native store integration",stripe:"SvelteKit endpoints handle Stripe webhooks efficiently",cloudflare:"Cloudflare Pages offers excellent SvelteKit adapter support"},nuxt:{drizzle:"Drizzle works well with Nuxt's server routes",prisma:"Prisma integrates with Nuxt's Nitro server","better-auth":"Better Auth provides Vue composables for Nuxt",stripe:"Nuxt server routes handle Stripe integration cleanly"}};function zq(q,_){return Z1[q]?.[_]}function n1(q,_){let f=_.framework;if(!f)return;let $=[];if(_.orm){let P=zq(f,_.orm);if(P)$.push(P)}if(_.auth){let P=zq(f,_.auth);if(P)$.push(P)}if(_.payments){let P=zq(f,_.payments);if(P)$.push(P)}if(_.database){let P=zq(f,_.database);if(P)$.push(P)}if(_.hosting){let P=zq(f,_.hosting);if(P)$.push(P)}if($.length>0){console.log(""),console.log(l.default.dim(" Stack synergies detected:"));for(let P of $.slice(0,3))console.log(l.default.dim(` + ${P}`))}}function QK(q,_,f,$){if(console.log(""),console.log(l.default.dim(" ───────────────────────────────────────────────────")),console.log(""),console.log(` ${l.default.bold("Generation complete")}`),console.log(""),console.log(` ${l.default.cyan(String(f))} files generated`),$>0)console.log(l.default.yellow(` ${$} templates not found`));console.log(""),console.log(l.default.dim(" Stack composition:"));let P=_.frameworkEntry?.name||_.framework||"Unknown",j=_.databaseEntry?.name||_.database||"None",K=_.ormEntry?.name||_.orm||"None",v=_.authEntry?.name||_.auth||"None",r=_.paymentsEntry?.name||_.payments||"None";if(console.log(l.default.dim(` Framework: ${P}`)),console.log(l.default.dim(` Database: ${j} + ${K}`)),_.auth)console.log(l.default.dim(` Auth: ${v}`));if(_.payments)console.log(l.default.dim(` Payments: ${r}`));let w=q.stackScore?.grade||"A";console.log(""),console.log(` Overall stack grade: ${l.default.green(`[${w}]`)} ${o1(w)}`)}function o1(q){return{"A+":"Optimal choice for your requirements",A:"Excellent match with proven synergies","A-":"Strong choice with minor trade-offs","B+":"Good fit, some alternatives worth considering",B:"Solid option for your use case","B-":"Adequate, but better options exist",C:"Consider alternatives for better results"}[q]||""}function qP(q,_){console.log(""),console.log(l.default.dim(" ───────────────────────────────────────────────────")),console.log(""),console.log(` ${l.default.bold("Preparing generation...")}`),console.log("");let f=[];if(_.framework)f.push(`${_.frameworkEntry?.name||_.framework} project structure`);if(_.orm)f.push(`${_.ormEntry?.name||_.orm} database layer`);if(_.auth)f.push(`${_.authEntry?.name||_.auth} authentication`);if(_.payments)f.push(`${_.paymentsEntry?.name||_.payments} payment integration`);console.log(l.default.dim(" Generating:"));for(let $ of f)console.log(l.default.dim(` + ${$}`));n1(q,_)}function Jf(q,_){if(console.log(""),console.log(l.default.dim(" ───────────────────────────────────────────────────")),console.log(` ${l.default.bold("Seed:")} ${l.default.cyan(q)}`),console.log(l.default.dim(" Reproduce this config: --seed <seed>")),_)console.log(""),console.log(l.default.green(` Saved as "${_}"`)),console.log(l.default.dim(` Use: bun create stacksfinder my-app --seed ${_}`))}import{join as i1}from"path";function p1(){return!!(process.env.STACKSFINDER_TELEMETRY_DISABLED||process.env.DO_NOT_TRACK||process.env.CI)}function eq(q,_){if(p1())return;let f={v:"0.2.0",action:q,projectType:_?.projectType,scale:_?.scale,ecosystem:_?.ecosystem,priorityCount:_?.priorities?.length,constraintCount:_?.constraints?.length,os:process.platform,ts:Date.now()};fetch("https://stacksfinder.com/api/v1/cli/telemetry",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f),signal:AbortSignal.timeout(3000)}).catch(()=>{})}function _P(q){eq("generate",q)}function fP(){eq("error")}import{createHash as u1}from"crypto";var $P=1,U8="SF1-";function KP(q){let _={v:$P,t:q.projectType,s:q.scale,pr:q.priority,...q.ecosystem&&q.ecosystem!=="javascript"?{e:q.ecosystem}:{},...q.constraints&&q.constraints.length>0?{c:q.constraints}:{}},f=JSON.stringify(_),$=Buffer.from(f).toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"");return U8+$}function Zf(q){if(!q.startsWith(U8))throw Error(`Invalid seed format. Seeds must start with "${U8}". Example: SF1-abc123...`);try{let _=q.slice(U8.length).replace(/-/g,"+").replace(/_/g,"/"),f=_+"=".repeat((4-_.length%4)%4),$=Buffer.from(f,"base64").toString("utf-8"),P=JSON.parse($),j=P.v||1;if(j>$P)throw Error(`Seed version ${j} is not supported. Please update create-stacksfinder.`);let K;if(P.t)K={projectType:P.t,scale:P.s,priority:P.pr,ecosystem:P.e||"javascript",constraints:P.c||[]};else if(P.e&&P.p)K={projectType:"saas",scale:"mvp",priority:{pioneer:"speed",sprinter:"speed",guardian:"security",pragmatic:"dx"}[P.p]||"speed",ecosystem:P.e||"javascript",constraints:P.c||[]};else throw Error("Seed is missing required fields");let v=u1("sha256").update(JSON.stringify(K)).digest("hex").slice(0,8);return{version:j,config:K,hash:v}}catch(_){if(_ instanceof SyntaxError)throw Error("Invalid seed: corrupted data");throw _}}function PP(q){let _=q.trim();if(!_.startsWith(U8))return!1;let f=_.slice(U8.length);return/^[A-Za-z0-9_-]+$/.test(f)&&f.length>0}function jP(){return`${process.env.HOME||process.env.USERPROFILE||process.cwd()}/.stacksfinder-seeds.json`}async function Lq(){let q=await import("fs/promises"),_=jP();try{let f=await q.readFile(_,"utf-8");return JSON.parse(f).seeds||[]}catch{return[]}}async function vP(q,_,f){let $=await import("fs/promises"),P=jP(),j=await Lq(),K=j.findIndex((v)=>v.name===q);if(K>=0)j[K]={name:q,seed:_,createdAt:new Date().toISOString(),description:f};else j.push({name:q,seed:_,createdAt:new Date().toISOString(),description:f});await $.writeFile(P,JSON.stringify({seeds:j},null,2))}async function wP(q){return(await Lq()).find((f)=>f.name===q)||null}var rP="0.5.0";function Y8(q,_){let f=q.indexOf(_);return f!==-1&&q[f+1]&&!q[f+1].startsWith("-")?q[f+1]:void 0}var sq=["saas","web-app","marketplace","api","e-commerce","blog","portfolio"],Bq=["mvp","startup","growth","enterprise"],Uq=["speed","dx","perf","cost","scale","security"];async function d1(){console.clear(),Z6("box");let q=process.argv.slice(2),_=q.find((W)=>!W.startsWith("-")),f=q.includes("--recommend-only")||q.includes("-r"),$=q.includes("--json")||q.includes("-j"),P=q.includes("--expert")||q.includes("-e"),j=q.includes("--version")||q.includes("-v"),K=q.includes("--help")||q.includes("-h"),v=q.includes("--yes")||q.includes("-y"),r=q.includes("--verbose")||q.includes("-V"),w=q.includes("--no-install"),O=q.includes("--no-git"),m=Y8(q,"--preset"),T=q.includes("--quick")||q.includes("-q"),h=Y8(q,"--type"),z=Y8(q,"--scale"),H=Y8(q,"--priority"),o=Y8(q,"--from-blueprint"),X=Y8(q,"--api-key"),I=q.includes("--compare"),R=Y8(q,"--preset1")||"mvp",A=Y8(q,"--preset2")||"enterprise",b=Y8(q,"--seed"),j8=Y8(q,"--save-seed"),x=q.includes("--list-seeds");if(j){let W=v6();console.log(`create-stacksfinder v${rP}`),console.log(`Scoring data: v${W.scores}`),console.log(`Compatibility matrix: v${W.matrix}`),process.exit(0)}if(K)console.log(`
|
|
150
|
+
`;function I9(q="minimal"){switch(q){case"full":return c9;case"compact":return N9;case"box":return R9;case"oneline":return g9;case"shadow":return E9;case"minimal":default:return y9}}function D9(q="minimal"){let _=I9(q);console.log(bq.default.green(_))}function Z6(q="minimal"){D9(q),console.log(bq.default.dim(" Scaffold optimized tech stacks")),console.log(bq.default.dim(" Powered by deterministic scoring")),console.log("")}var y8=L(f8(),1);function x9(q,_,f){return{isEnterprise:q.context.scale==="enterprise",isHighScore:q.stackScore.score>=85,hasComplexStack:q.categories.length>=5,projectName:f,phase:_}}function L9(q){if(q.phase==="post-recommendation"){if(q.isEnterprise)return{message:"Need compliance reports & team collaboration?",link:"stacksfinder.com/enterprise"};return{message:"Fine-tune with 25+ constraints:",link:"stacksfinder.com/builder"}}if(q.isHighScore)return{message:"Save & share this stack:",link:"stacksfinder.com/blueprint/new"};if(q.isEnterprise)return{message:`Get compliance reports for ${q.projectName||"your project"}:`,link:"stacksfinder.com/enterprise"};return{message:"Use in Cursor/Claude:",link:"npm i -g @stacksfinder/mcp-server"}}function d_(q,_,f){let $=x9(q,_,f),P=L9($);console.log(""),console.log(y8.default.dim("─".repeat(50))),console.log(""),console.log(y8.default.dim(` ${P.message}`)),console.log(` ${y8.default.cyan(P.link)}`),console.log("")}function n6(q){console.log(""),console.log(y8.default.dim(" Something went wrong? Try the web version:")),console.log(` ${y8.default.cyan("stacksfinder.com/builder")}`)}var Z8=L(XK(),1);import{mkdir as SK,writeFile as cK,readFile as T1,copyFile as Y1,access as k1}from"fs/promises";import{join as hq,dirname as NK}from"path";import{fileURLToPath as h1}from"url";function xq(q,_){let f=(X)=>{return _.categories.find((R)=>R.category===X)?.recommended.tech??null},$=(X)=>{return f(X)?.id??null},P=f("meta-framework"),j=f("database"),K=f("orm"),v=f("auth"),r=f("hosting"),w=f("payments"),O=f("backend"),m=P?.id??null,T=j?.id??null,h=K?.id??null,z=v?.id??null,H=w?.id??null,o=O?.id??null;return{projectName:q,projectType:_.context.projectType,scale:_.context.scale,framework:m,database:T,orm:h,auth:z,hosting:r?.id??null,payments:H,backend:o,frameworkEntry:P,databaseEntry:j,ormEntry:K,authEntry:v,hostingEntry:r,paymentsEntry:w,backendEntry:O,hasAuth:!!v,hasPayments:!!w,hasDatabase:!!j,isNextjs:m==="nextjs",isSvelteKit:m==="sveltekit",isNuxt:m==="nuxt",isRemix:m==="remix",isAstro:m==="astro",isSolidStart:m==="solidstart",isTanStackStart:m==="tanstack-start",isPostgres:["postgres","neon"].includes(T??""),isSqlite:T==="sqlite",isMongoDB:T==="mongodb",isSupabase:T==="supabase",isTurso:T==="turso",isDrizzle:h==="drizzle",isPrisma:h==="prisma",isKysely:h==="kysely",isMongoose:h==="mongoose",isBetterAuth:z==="better-auth",isClerk:z==="clerk",isAuthJs:z==="authjs",isAuth0:z==="auth0",isLucia:z==="lucia",isSupabaseAuth:z==="supabase-auth",isStripe:H==="stripe",isPaddle:H==="paddle",isLemonSqueezy:H==="lemonsqueezy",isPolar:H==="polar",hasBackend:!!O,isHono:o==="hono",isElysia:o==="elysia",isExpress:o==="express",isFastify:o==="fastify",ecosystem:_.context.ecosystem||"javascript"}}function AK(q){let _=[];if(_.push(...l5(q)),q.framework==="nextjs")_.push(...b5(q));else if(q.framework==="sveltekit")_.push(...M5(q));else if(q.framework==="nuxt")_.push(...C5(q));else if(q.framework==="remix")_.push(...V5(q));else if(q.framework==="astro")_.push(...S5(q));else if(q.framework==="solidstart")_.push(...B5(q));else if(q.framework==="tanstack-start")_.push(...U5(q));if(q.auth==="better-auth")_.push(...c5(q));else if(q.auth==="clerk")_.push(...N5(q));else if(q.auth==="authjs")_.push(...y5(q));else if(q.auth==="auth0")_.push(...R5(q));else if(q.auth==="lucia")_.push(...f1(q));else if(q.auth==="supabase")_.push(..._1(q));if(q.payments==="stripe")_.push(...g5(q));else if(q.payments==="paddle")_.push(...E5(q));else if(q.payments==="lemonsqueezy")_.push(...I5(q));else if(q.payments==="polar")_.push(...F5(q));if(q.orm==="drizzle")_.push(...D5(q));else if(q.orm==="prisma")_.push(...x5(q));else if(q.orm==="kysely")_.push(...L5(q));else if(q.orm==="mongoose")_.push(...Q5(q));if(q.backend==="hono")_.push(...s5(q));else if(q.backend==="elysia")_.push(...q1(q));else if(q.backend==="express")_.push(...$1(q));else if(q.backend==="fastify")_.push(...K1(q));return _}function l5(q){return[{src:"base/gitignore",dest:".gitignore"},{src:"base/env.example.hbs",dest:".env.example",isTemplate:!0},{src:"base/README.md.hbs",dest:"README.md",isTemplate:!0}]}function b5(q){return[{src:"frameworks/nextjs/next.config.ts.hbs",dest:"next.config.ts",isTemplate:!0},{src:"frameworks/nextjs/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/nextjs/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/nextjs/postcss.config.js",dest:"postcss.config.js"},{src:"frameworks/nextjs/app/layout.tsx.hbs",dest:"src/app/layout.tsx",isTemplate:!0},{src:"frameworks/nextjs/app/page.tsx.hbs",dest:"src/app/page.tsx",isTemplate:!0},{src:"frameworks/nextjs/app/globals.css",dest:"src/app/globals.css"},{src:"frameworks/nextjs/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/nextjs/components/ui/button.tsx",dest:"src/components/ui/button.tsx"},{src:"frameworks/nextjs/components/ui/card.tsx",dest:"src/components/ui/card.tsx"},{src:"frameworks/nextjs/components/ui/input.tsx",dest:"src/components/ui/input.tsx"},{src:"frameworks/nextjs/app/(marketing)/layout.tsx",dest:"src/app/(marketing)/layout.tsx"},{src:"frameworks/nextjs/app/(marketing)/pricing/page.tsx.hbs",dest:"src/app/(marketing)/pricing/page.tsx",isTemplate:!0},{src:"frameworks/nextjs/app/(dashboard)/layout.tsx.hbs",dest:"src/app/(dashboard)/layout.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nextjs/app/(dashboard)/dashboard/page.tsx.hbs",dest:"src/app/(dashboard)/dashboard/page.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nextjs/app/(dashboard)/settings/page.tsx.hbs",dest:"src/app/(dashboard)/settings/page.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nextjs/app/(dashboard)/billing/page.tsx.hbs",dest:"src/app/(dashboard)/billing/page.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/nextjs/components/header.tsx.hbs",dest:"src/components/header.tsx",isTemplate:!0},{src:"frameworks/nextjs/components/footer.tsx",dest:"src/components/footer.tsx"},{src:"frameworks/nextjs/components/sidebar.tsx.hbs",dest:"src/components/sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function M5(q){return[{src:"frameworks/sveltekit/svelte.config.js",dest:"svelte.config.js"},{src:"frameworks/sveltekit/vite.config.ts.hbs",dest:"vite.config.ts",isTemplate:!0},{src:"frameworks/sveltekit/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/sveltekit/app.d.ts.hbs",dest:"src/app.d.ts",isTemplate:!0},{src:"frameworks/sveltekit/app.css",dest:"src/app.css"},{src:"frameworks/sveltekit/app.html.hbs",dest:"src/app.html",isTemplate:!0},{src:"frameworks/sveltekit/routes/+layout.svelte.hbs",dest:"src/routes/+layout.svelte",isTemplate:!0},{src:"frameworks/sveltekit/routes/+page.svelte.hbs",dest:"src/routes/+page.svelte",isTemplate:!0},{src:"frameworks/sveltekit/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/sveltekit/components/ui/Button.svelte",dest:"src/lib/components/ui/Button.svelte"},{src:"frameworks/sveltekit/components/ui/Card.svelte",dest:"src/lib/components/ui/Card.svelte"},{src:"frameworks/sveltekit/components/ui/Input.svelte",dest:"src/lib/components/ui/Input.svelte"},{src:"frameworks/sveltekit/routes/(marketing)/pricing/+page.svelte.hbs",dest:"src/routes/(marketing)/pricing/+page.svelte",isTemplate:!0},{src:"frameworks/sveltekit/routes/(app)/+layout.svelte.hbs",dest:"src/routes/(app)/+layout.svelte",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/+layout.server.ts.hbs",dest:"src/routes/(app)/+layout.server.ts",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/dashboard/+page.svelte",dest:"src/routes/(app)/dashboard/+page.svelte",condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/settings/+page.svelte",dest:"src/routes/(app)/settings/+page.svelte",condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/routes/(app)/billing/+page.svelte.hbs",dest:"src/routes/(app)/billing/+page.svelte",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/sveltekit/hooks.server.ts.hbs",dest:"src/hooks.server.ts",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/sveltekit/components/Header.svelte.hbs",dest:"src/lib/components/Header.svelte",isTemplate:!0},{src:"frameworks/sveltekit/components/Footer.svelte",dest:"src/lib/components/Footer.svelte"},{src:"frameworks/sveltekit/components/Sidebar.svelte.hbs",dest:"src/lib/components/Sidebar.svelte",isTemplate:!0,condition:(f)=>!!f.auth}]}function C5(q){return[{src:"frameworks/nuxt/nuxt.config.ts.hbs",dest:"nuxt.config.ts",isTemplate:!0},{src:"frameworks/nuxt/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/nuxt/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/nuxt/app.vue.hbs",dest:"app.vue",isTemplate:!0},{src:"frameworks/nuxt/assets/css/main.css",dest:"assets/css/main.css"},{src:"frameworks/nuxt/pages/index.vue.hbs",dest:"pages/index.vue",isTemplate:!0},{src:"frameworks/nuxt/pages/pricing.vue.hbs",dest:"pages/pricing.vue",isTemplate:!0},{src:"frameworks/nuxt/layouts/default.vue.hbs",dest:"layouts/default.vue",isTemplate:!0},{src:"frameworks/nuxt/layouts/dashboard.vue.hbs",dest:"layouts/dashboard.vue",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nuxt/pages/dashboard/index.vue.hbs",dest:"pages/dashboard/index.vue",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/nuxt/pages/dashboard/settings.vue",dest:"pages/dashboard/settings.vue",condition:(f)=>!!f.auth},{src:"frameworks/nuxt/pages/dashboard/billing.vue.hbs",dest:"pages/dashboard/billing.vue",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/nuxt/utils/cn.ts",dest:"utils/cn.ts"},{src:"frameworks/nuxt/components/ui/Button.vue",dest:"components/ui/Button.vue"},{src:"frameworks/nuxt/components/ui/Card.vue",dest:"components/ui/Card.vue"},{src:"frameworks/nuxt/components/ui/Input.vue",dest:"components/ui/Input.vue"},{src:"frameworks/nuxt/components/Header.vue.hbs",dest:"components/Header.vue",isTemplate:!0},{src:"frameworks/nuxt/components/Footer.vue",dest:"components/Footer.vue"},{src:"frameworks/nuxt/components/Sidebar.vue.hbs",dest:"components/Sidebar.vue",isTemplate:!0,condition:(f)=>!!f.auth}]}function V5(q){return[{src:"frameworks/remix/vite.config.ts.hbs",dest:"vite.config.ts",isTemplate:!0},{src:"frameworks/remix/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/remix/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/remix/app/root.tsx.hbs",dest:"app/root.tsx",isTemplate:!0},{src:"frameworks/remix/app/entry.client.tsx",dest:"app/entry.client.tsx"},{src:"frameworks/remix/app/entry.server.tsx",dest:"app/entry.server.tsx"},{src:"frameworks/remix/app/tailwind.css",dest:"app/tailwind.css"},{src:"frameworks/remix/app/routes/_index.tsx.hbs",dest:"app/routes/_index.tsx",isTemplate:!0},{src:"frameworks/remix/app/routes/pricing.tsx.hbs",dest:"app/routes/pricing.tsx",isTemplate:!0},{src:"frameworks/remix/app/routes/dashboard.tsx.hbs",dest:"app/routes/dashboard.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/remix/app/routes/dashboard._index.tsx.hbs",dest:"app/routes/dashboard._index.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/remix/app/routes/dashboard.settings.tsx",dest:"app/routes/dashboard.settings.tsx",condition:(f)=>!!f.auth},{src:"frameworks/remix/app/routes/dashboard.billing.tsx.hbs",dest:"app/routes/dashboard.billing.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/remix/app/lib/utils.ts",dest:"app/lib/utils.ts"},{src:"frameworks/remix/app/components/ui/button.tsx",dest:"app/components/ui/button.tsx"},{src:"frameworks/remix/app/components/ui/card.tsx",dest:"app/components/ui/card.tsx"},{src:"frameworks/remix/app/components/ui/input.tsx",dest:"app/components/ui/input.tsx"},{src:"frameworks/remix/app/components/header.tsx.hbs",dest:"app/components/header.tsx",isTemplate:!0},{src:"frameworks/remix/app/components/footer.tsx",dest:"app/components/footer.tsx"},{src:"frameworks/remix/app/components/sidebar.tsx.hbs",dest:"app/components/sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function S5(q){return[{src:"frameworks/astro/astro.config.mjs.hbs",dest:"astro.config.mjs",isTemplate:!0},{src:"frameworks/astro/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/astro/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/astro/src/env.d.ts",dest:"src/env.d.ts"},{src:"frameworks/astro/src/styles/global.css",dest:"src/styles/global.css"},{src:"frameworks/astro/src/layouts/Layout.astro.hbs",dest:"src/layouts/Layout.astro",isTemplate:!0},{src:"frameworks/astro/src/layouts/DashboardLayout.astro.hbs",dest:"src/layouts/DashboardLayout.astro",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/astro/src/pages/index.astro.hbs",dest:"src/pages/index.astro",isTemplate:!0},{src:"frameworks/astro/src/pages/pricing.astro.hbs",dest:"src/pages/pricing.astro",isTemplate:!0},{src:"frameworks/astro/src/pages/dashboard/index.astro.hbs",dest:"src/pages/dashboard/index.astro",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/astro/src/pages/dashboard/settings.astro",dest:"src/pages/dashboard/settings.astro",condition:(f)=>!!f.auth},{src:"frameworks/astro/src/pages/dashboard/billing.astro.hbs",dest:"src/pages/dashboard/billing.astro",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/astro/src/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/astro/src/components/ui/Button.tsx",dest:"src/components/ui/Button.tsx"},{src:"frameworks/astro/src/components/ui/Card.tsx",dest:"src/components/ui/Card.tsx"},{src:"frameworks/astro/src/components/ui/Input.tsx",dest:"src/components/ui/Input.tsx"},{src:"frameworks/astro/src/components/Header.astro.hbs",dest:"src/components/Header.astro",isTemplate:!0},{src:"frameworks/astro/src/components/Footer.astro",dest:"src/components/Footer.astro"},{src:"frameworks/astro/src/components/Sidebar.astro.hbs",dest:"src/components/Sidebar.astro",isTemplate:!0,condition:(f)=>!!f.auth}]}function c5(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/better-auth/nextjs/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/better-auth/nextjs/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/better-auth/nextjs/api/auth/[...all]/route.ts",dest:"src/app/api/auth/[...all]/route.ts"},{src:"auth/better-auth/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/better-auth/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/better-auth/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/better-auth/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/better-auth/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/better-auth/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/better-auth/sveltekit/auth.ts.hbs",dest:"src/lib/server/auth.ts",isTemplate:!0},{src:"auth/better-auth/sveltekit/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/better-auth/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/better-auth/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/better-auth/sveltekit/components/AuthForm.svelte",dest:"src/lib/components/auth/AuthForm.svelte"},{src:"auth/better-auth/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/better-auth/nuxt/server/utils/auth.ts.hbs",dest:"server/utils/auth.ts",isTemplate:!0},{src:"auth/better-auth/nuxt/composables/useAuth.ts",dest:"composables/useAuth.ts"},{src:"auth/better-auth/nuxt/server/api/auth/[...all].ts",dest:"server/api/auth/[...all].ts"},{src:"auth/better-auth/nuxt/middleware/auth.ts",dest:"middleware/auth.ts"},{src:"auth/better-auth/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/better-auth/nuxt/pages/register.vue",dest:"pages/register.vue"},{src:"auth/better-auth/nuxt/components/AuthForm.vue",dest:"components/auth/AuthForm.vue"},{src:"auth/better-auth/nuxt/components/UserButton.vue",dest:"components/auth/UserButton.vue"});else if(q.framework==="remix")_.push({src:"auth/better-auth/remix/app/lib/auth.server.ts.hbs",dest:"app/lib/auth.server.ts",isTemplate:!0},{src:"auth/better-auth/remix/app/lib/auth.client.ts",dest:"app/lib/auth.client.ts"},{src:"auth/better-auth/remix/app/routes/api.auth.$.ts",dest:"app/routes/api.auth.$.ts"},{src:"auth/better-auth/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/better-auth/remix/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/better-auth/remix/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/better-auth/remix/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});else if(q.framework==="astro")_.push({src:"auth/better-auth/astro/src/lib/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/better-auth/astro/src/lib/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/better-auth/astro/src/pages/api/auth/[...all].ts",dest:"src/pages/api/auth/[...all].ts"},{src:"auth/better-auth/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/better-auth/astro/src/pages/register.astro",dest:"src/pages/register.astro"},{src:"auth/better-auth/astro/src/components/auth/AuthForm.tsx",dest:"src/components/auth/AuthForm.tsx"},{src:"auth/better-auth/astro/src/components/auth/UserButton.tsx",dest:"src/components/auth/UserButton.tsx"});else if(q.framework==="solidstart")_.push({src:"auth/better-auth/solidstart/src/lib/auth.server.ts.hbs",dest:"src/lib/auth.server.ts",isTemplate:!0},{src:"auth/better-auth/solidstart/src/lib/auth.client.ts",dest:"src/lib/auth.client.ts"},{src:"auth/better-auth/solidstart/src/routes/api/auth/[...all].ts",dest:"src/routes/api/auth/[...all].ts"},{src:"auth/better-auth/solidstart/src/routes/login.tsx",dest:"src/routes/login.tsx"},{src:"auth/better-auth/solidstart/src/routes/register.tsx",dest:"src/routes/register.tsx"},{src:"auth/better-auth/solidstart/src/components/auth/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/better-auth/solidstart/src/components/auth/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="tanstack-start")_.push({src:"auth/better-auth/tanstack-start/app/lib/auth.server.ts.hbs",dest:"app/lib/auth.server.ts",isTemplate:!0},{src:"auth/better-auth/tanstack-start/app/lib/auth.client.ts",dest:"app/lib/auth.client.ts"},{src:"auth/better-auth/tanstack-start/app/routes/api.auth.$.ts",dest:"app/routes/api.auth.$.ts"},{src:"auth/better-auth/tanstack-start/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/better-auth/tanstack-start/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/better-auth/tanstack-start/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/better-auth/tanstack-start/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});return _}function N5(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/clerk/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/clerk/nextjs/app/(auth)/sign-in/[[...sign-in]]/page.tsx",dest:"src/app/(auth)/sign-in/[[...sign-in]]/page.tsx"},{src:"auth/clerk/nextjs/app/(auth)/sign-up/[[...sign-up]]/page.tsx",dest:"src/app/(auth)/sign-up/[[...sign-up]]/page.tsx"});return _}function y5(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/authjs/nextjs/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/authjs/nextjs/auth-client.ts",dest:"src/lib/auth-client.ts"},{src:"auth/authjs/nextjs/api/auth/[...nextauth]/route.ts",dest:"src/app/api/auth/[...nextauth]/route.ts"},{src:"auth/authjs/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/authjs/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/authjs/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/authjs/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/authjs/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/authjs/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/authjs/sveltekit/auth.ts.hbs",dest:"src/lib/server/auth.ts",isTemplate:!0},{src:"auth/authjs/sveltekit/hooks.server.ts",dest:"src/hooks.server.ts"},{src:"auth/authjs/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/authjs/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/authjs/sveltekit/components/AuthForm.svelte",dest:"src/lib/components/auth/AuthForm.svelte"},{src:"auth/authjs/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/authjs/nuxt/server/api/auth/[...].ts",dest:"server/api/auth/[...].ts"},{src:"auth/authjs/nuxt/composables/useAuth.ts",dest:"composables/useAuth.ts"},{src:"auth/authjs/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/authjs/nuxt/pages/register.vue",dest:"pages/register.vue"},{src:"auth/authjs/nuxt/components/AuthForm.vue",dest:"components/auth/AuthForm.vue"},{src:"auth/authjs/nuxt/components/UserButton.vue",dest:"components/auth/UserButton.vue"});else if(q.framework==="remix")_.push({src:"auth/authjs/remix/app/lib/auth.server.ts.hbs",dest:"app/lib/auth.server.ts",isTemplate:!0},{src:"auth/authjs/remix/app/lib/session.server.ts",dest:"app/lib/session.server.ts"},{src:"auth/authjs/remix/app/routes/auth.login.tsx",dest:"app/routes/auth.login.tsx"},{src:"auth/authjs/remix/app/routes/auth.logout.tsx",dest:"app/routes/auth.logout.tsx"},{src:"auth/authjs/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/authjs/remix/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/authjs/remix/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/authjs/remix/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});else if(q.framework==="astro")_.push({src:"auth/authjs/astro/src/lib/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/authjs/astro/auth.config.ts.hbs",dest:"auth.config.ts",isTemplate:!0},{src:"auth/authjs/astro/src/pages/api/auth/[...auth].ts",dest:"src/pages/api/auth/[...auth].ts"},{src:"auth/authjs/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/authjs/astro/src/pages/register.astro",dest:"src/pages/register.astro"},{src:"auth/authjs/astro/src/components/auth/AuthForm.tsx",dest:"src/components/auth/AuthForm.tsx"},{src:"auth/authjs/astro/src/components/auth/UserButton.tsx",dest:"src/components/auth/UserButton.tsx"});return _}function R5(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/auth0/nextjs/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/nextjs/api/auth/[auth0]/route.ts",dest:"src/app/api/auth/[auth0]/route.ts"},{src:"auth/auth0/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/auth0/nextjs/components/auth-button.tsx",dest:"src/components/auth/auth-button.tsx"},{src:"auth/auth0/nextjs/components/user-profile.tsx",dest:"src/components/auth/user-profile.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/auth0/sveltekit/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/sveltekit/hooks.client.ts",dest:"src/hooks.client.ts"},{src:"auth/auth0/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/auth0/sveltekit/routes/(auth)/callback/+page.svelte",dest:"src/routes/(auth)/callback/+page.svelte"},{src:"auth/auth0/sveltekit/components/AuthButton.svelte",dest:"src/lib/components/auth/AuthButton.svelte"},{src:"auth/auth0/sveltekit/components/UserProfile.svelte",dest:"src/lib/components/auth/UserProfile.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/auth0/nuxt/plugins/auth0.ts",dest:"plugins/auth0.ts"},{src:"auth/auth0/nuxt/composables/useAuth0.ts",dest:"composables/useAuth0.ts"},{src:"auth/auth0/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/auth0/nuxt/pages/callback.vue",dest:"pages/callback.vue"},{src:"auth/auth0/nuxt/components/AuthButton.vue",dest:"components/auth/AuthButton.vue"},{src:"auth/auth0/nuxt/components/UserProfile.vue",dest:"components/auth/UserProfile.vue"});else if(q.framework==="remix")_.push({src:"auth/auth0/remix/app/lib/auth0.ts",dest:"app/lib/auth0.ts"},{src:"auth/auth0/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/auth0/remix/app/routes/callback.tsx",dest:"app/routes/callback.tsx"},{src:"auth/auth0/remix/app/routes/logout.tsx",dest:"app/routes/logout.tsx"},{src:"auth/auth0/remix/app/components/auth/auth-button.tsx",dest:"app/components/auth/auth-button.tsx"},{src:"auth/auth0/remix/app/components/auth/user-profile.tsx",dest:"app/components/auth/user-profile.tsx"});else if(q.framework==="astro")_.push({src:"auth/auth0/astro/src/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/auth0/astro/src/pages/callback.astro",dest:"src/pages/callback.astro"},{src:"auth/auth0/astro/src/components/auth/AuthButton.tsx",dest:"src/components/auth/AuthButton.tsx"},{src:"auth/auth0/astro/src/components/auth/UserProfile.tsx",dest:"src/components/auth/UserProfile.tsx"});else if(q.framework==="solidstart")_.push({src:"auth/auth0/solidstart/src/lib/auth0.ts",dest:"src/lib/auth0.ts"},{src:"auth/auth0/solidstart/src/routes/login.tsx",dest:"src/routes/login.tsx"},{src:"auth/auth0/solidstart/src/routes/callback.tsx",dest:"src/routes/callback.tsx"},{src:"auth/auth0/solidstart/src/components/auth/auth-button.tsx",dest:"src/components/auth/auth-button.tsx"},{src:"auth/auth0/solidstart/src/components/auth/user-profile.tsx",dest:"src/components/auth/user-profile.tsx"});else if(q.framework==="tanstack-start")_.push({src:"auth/auth0/tanstack-start/app/lib/auth0.ts",dest:"app/lib/auth0.ts"},{src:"auth/auth0/tanstack-start/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/auth0/tanstack-start/app/routes/callback.tsx",dest:"app/routes/callback.tsx"},{src:"auth/auth0/tanstack-start/app/components/auth/auth-button.tsx",dest:"app/components/auth/auth-button.tsx"});return _}function g5(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/stripe/nextjs/lib/stripe.ts",dest:"src/lib/stripe.ts"},{src:"payments/stripe/nextjs/lib/stripe-client.ts",dest:"src/lib/stripe-client.ts"},{src:"payments/stripe/nextjs/api/checkout/route.ts.hbs",dest:"src/app/api/checkout/route.ts",isTemplate:!0},{src:"payments/stripe/nextjs/api/webhooks/stripe/route.ts.hbs",dest:"src/app/api/webhooks/stripe/route.ts",isTemplate:!0},{src:"payments/stripe/nextjs/api/portal/route.ts",dest:"src/app/api/portal/route.ts"},{src:"payments/stripe/nextjs/components/pricing-card.tsx.hbs",dest:"src/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/nextjs/components/checkout-button.tsx",dest:"src/components/pricing/checkout-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/stripe/sveltekit/lib/stripe.ts",dest:"src/lib/server/stripe.ts"},{src:"payments/stripe/sveltekit/routes/api/checkout/+server.ts.hbs",dest:"src/routes/api/checkout/+server.ts",isTemplate:!0},{src:"payments/stripe/sveltekit/routes/api/webhooks/stripe/+server.ts.hbs",dest:"src/routes/api/webhooks/stripe/+server.ts",isTemplate:!0},{src:"payments/stripe/sveltekit/routes/api/portal/+server.ts",dest:"src/routes/api/portal/+server.ts"},{src:"payments/stripe/sveltekit/components/PricingCard.svelte.hbs",dest:"src/lib/components/pricing/PricingCard.svelte",isTemplate:!0},{src:"payments/stripe/sveltekit/components/CheckoutButton.svelte",dest:"src/lib/components/pricing/CheckoutButton.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/stripe/nuxt/server/utils/stripe.ts",dest:"server/utils/stripe.ts"},{src:"payments/stripe/nuxt/composables/useStripe.ts",dest:"composables/useStripe.ts"},{src:"payments/stripe/nuxt/server/api/checkout.post.ts.hbs",dest:"server/api/checkout.post.ts",isTemplate:!0},{src:"payments/stripe/nuxt/server/api/webhooks/stripe.post.ts.hbs",dest:"server/api/webhooks/stripe.post.ts",isTemplate:!0},{src:"payments/stripe/nuxt/server/api/portal.post.ts",dest:"server/api/portal.post.ts"},{src:"payments/stripe/nuxt/components/PricingCard.vue.hbs",dest:"components/pricing/PricingCard.vue",isTemplate:!0},{src:"payments/stripe/nuxt/components/CheckoutButton.vue",dest:"components/pricing/CheckoutButton.vue"});else if(q.framework==="remix")_.push({src:"payments/stripe/remix/app/lib/stripe.server.ts",dest:"app/lib/stripe.server.ts"},{src:"payments/stripe/remix/app/routes/api.checkout.ts.hbs",dest:"app/routes/api.checkout.ts",isTemplate:!0},{src:"payments/stripe/remix/app/routes/api.webhooks.stripe.ts.hbs",dest:"app/routes/api.webhooks.stripe.ts",isTemplate:!0},{src:"payments/stripe/remix/app/routes/api.portal.ts",dest:"app/routes/api.portal.ts"},{src:"payments/stripe/remix/app/components/pricing/pricing-card.tsx.hbs",dest:"app/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/remix/app/components/pricing/checkout-button.tsx",dest:"app/components/pricing/checkout-button.tsx"});else if(q.framework==="astro")_.push({src:"payments/stripe/astro/src/lib/stripe.ts",dest:"src/lib/stripe.ts"},{src:"payments/stripe/astro/src/pages/api/checkout.ts.hbs",dest:"src/pages/api/checkout.ts",isTemplate:!0},{src:"payments/stripe/astro/src/pages/api/webhooks/stripe.ts.hbs",dest:"src/pages/api/webhooks/stripe.ts",isTemplate:!0},{src:"payments/stripe/astro/src/pages/api/portal.ts",dest:"src/pages/api/portal.ts"},{src:"payments/stripe/astro/src/components/pricing/PricingCard.tsx.hbs",dest:"src/components/pricing/PricingCard.tsx",isTemplate:!0},{src:"payments/stripe/astro/src/components/pricing/CheckoutButton.tsx",dest:"src/components/pricing/CheckoutButton.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/stripe/solidstart/src/lib/stripe.server.ts",dest:"src/lib/stripe.server.ts"},{src:"payments/stripe/solidstart/src/routes/api/checkout.ts",dest:"src/routes/api/checkout.ts"},{src:"payments/stripe/solidstart/src/routes/api/webhooks/stripe.ts.hbs",dest:"src/routes/api/webhooks/stripe.ts",isTemplate:!0},{src:"payments/stripe/solidstart/src/routes/api/portal.ts",dest:"src/routes/api/portal.ts"},{src:"payments/stripe/solidstart/src/components/pricing/pricing-card.tsx.hbs",dest:"src/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/solidstart/src/components/pricing/checkout-button.tsx",dest:"src/components/pricing/checkout-button.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/stripe/tanstack-start/app/lib/stripe.server.ts",dest:"app/lib/stripe.server.ts"},{src:"payments/stripe/tanstack-start/app/routes/api.checkout.ts",dest:"app/routes/api.checkout.ts"},{src:"payments/stripe/tanstack-start/app/routes/api.webhooks.stripe.ts.hbs",dest:"app/routes/api.webhooks.stripe.ts",isTemplate:!0},{src:"payments/stripe/tanstack-start/app/components/pricing/pricing-card.tsx.hbs",dest:"app/components/pricing/pricing-card.tsx",isTemplate:!0},{src:"payments/stripe/tanstack-start/app/components/pricing/checkout-button.tsx",dest:"app/components/pricing/checkout-button.tsx"});return _}function E5(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/paddle/nextjs/lib/paddle.ts",dest:"src/lib/paddle.ts"},{src:"payments/paddle/nextjs/api/webhooks/paddle/route.ts.hbs",dest:"src/app/api/webhooks/paddle/route.ts",isTemplate:!0},{src:"payments/paddle/nextjs/components/paddle-checkout.tsx",dest:"src/components/pricing/paddle-checkout.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/paddle/sveltekit/lib/paddle.ts",dest:"src/lib/server/paddle.ts"},{src:"payments/paddle/sveltekit/routes/api/webhooks/paddle/+server.ts.hbs",dest:"src/routes/api/webhooks/paddle/+server.ts",isTemplate:!0},{src:"payments/paddle/sveltekit/components/PaddleCheckout.svelte",dest:"src/lib/components/pricing/PaddleCheckout.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/paddle/nuxt/server/utils/paddle.ts",dest:"server/utils/paddle.ts"},{src:"payments/paddle/nuxt/composables/usePaddle.ts",dest:"composables/usePaddle.ts"},{src:"payments/paddle/nuxt/server/api/webhooks/paddle.post.ts.hbs",dest:"server/api/webhooks/paddle.post.ts",isTemplate:!0},{src:"payments/paddle/nuxt/components/PaddleCheckout.vue",dest:"components/pricing/PaddleCheckout.vue"});else if(q.framework==="remix")_.push({src:"payments/paddle/remix/app/lib/paddle.server.ts",dest:"app/lib/paddle.server.ts"},{src:"payments/paddle/remix/app/routes/api.webhooks.paddle.ts.hbs",dest:"app/routes/api.webhooks.paddle.ts",isTemplate:!0},{src:"payments/paddle/remix/app/components/pricing/paddle-checkout.tsx",dest:"app/components/pricing/paddle-checkout.tsx"});else if(q.framework==="astro")_.push({src:"payments/paddle/astro/src/lib/paddle.ts",dest:"src/lib/paddle.ts"},{src:"payments/paddle/astro/src/pages/api/webhooks/paddle.ts.hbs",dest:"src/pages/api/webhooks/paddle.ts",isTemplate:!0},{src:"payments/paddle/astro/src/components/pricing/PaddleCheckout.tsx",dest:"src/components/pricing/PaddleCheckout.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/paddle/solidstart/src/lib/paddle.server.ts",dest:"src/lib/paddle.server.ts"},{src:"payments/paddle/solidstart/src/routes/api/webhooks/paddle.ts.hbs",dest:"src/routes/api/webhooks/paddle.ts",isTemplate:!0},{src:"payments/paddle/solidstart/src/components/pricing/paddle-checkout.tsx",dest:"src/components/pricing/paddle-checkout.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/paddle/tanstack-start/app/lib/paddle.server.ts",dest:"app/lib/paddle.server.ts"},{src:"payments/paddle/tanstack-start/app/routes/api.webhooks.paddle.ts.hbs",dest:"app/routes/api.webhooks.paddle.ts",isTemplate:!0},{src:"payments/paddle/tanstack-start/app/components/pricing/paddle-checkout.tsx",dest:"app/components/pricing/paddle-checkout.tsx"});return _}function I5(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/lemonsqueezy/nextjs/lib/lemonsqueezy.ts",dest:"src/lib/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/nextjs/api/webhooks/lemonsqueezy/route.ts.hbs",dest:"src/app/api/webhooks/lemonsqueezy/route.ts",isTemplate:!0},{src:"payments/lemonsqueezy/nextjs/components/lemonsqueezy-checkout.tsx",dest:"src/components/pricing/lemonsqueezy-checkout.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/lemonsqueezy/sveltekit/lib/lemonsqueezy.ts",dest:"src/lib/server/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/sveltekit/routes/api/webhooks/lemonsqueezy/+server.ts.hbs",dest:"src/routes/api/webhooks/lemonsqueezy/+server.ts",isTemplate:!0},{src:"payments/lemonsqueezy/sveltekit/components/LemonSqueezyCheckout.svelte",dest:"src/lib/components/pricing/LemonSqueezyCheckout.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/lemonsqueezy/nuxt/server/utils/lemonsqueezy.ts",dest:"server/utils/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/nuxt/composables/useLemonSqueezy.ts",dest:"composables/useLemonSqueezy.ts"},{src:"payments/lemonsqueezy/nuxt/server/api/webhooks/lemonsqueezy.post.ts.hbs",dest:"server/api/webhooks/lemonsqueezy.post.ts",isTemplate:!0},{src:"payments/lemonsqueezy/nuxt/components/LemonSqueezyCheckout.vue",dest:"components/pricing/LemonSqueezyCheckout.vue"});else if(q.framework==="remix")_.push({src:"payments/lemonsqueezy/remix/app/lib/lemonsqueezy.server.ts",dest:"app/lib/lemonsqueezy.server.ts"},{src:"payments/lemonsqueezy/remix/app/routes/api.webhooks.lemonsqueezy.ts.hbs",dest:"app/routes/api.webhooks.lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/remix/app/components/pricing/lemonsqueezy-checkout.tsx",dest:"app/components/pricing/lemonsqueezy-checkout.tsx"});else if(q.framework==="astro")_.push({src:"payments/lemonsqueezy/astro/src/lib/lemonsqueezy.ts",dest:"src/lib/lemonsqueezy.ts"},{src:"payments/lemonsqueezy/astro/src/pages/api/webhooks/lemonsqueezy.ts.hbs",dest:"src/pages/api/webhooks/lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/astro/src/components/pricing/LemonSqueezyCheckout.tsx",dest:"src/components/pricing/LemonSqueezyCheckout.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/lemonsqueezy/solidstart/src/lib/lemonsqueezy.server.ts",dest:"src/lib/lemonsqueezy.server.ts"},{src:"payments/lemonsqueezy/solidstart/src/routes/api/webhooks/lemonsqueezy.ts.hbs",dest:"src/routes/api/webhooks/lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/solidstart/src/components/pricing/lemonsqueezy-checkout.tsx",dest:"src/components/pricing/lemonsqueezy-checkout.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/lemonsqueezy/tanstack-start/app/lib/lemonsqueezy.server.ts",dest:"app/lib/lemonsqueezy.server.ts"},{src:"payments/lemonsqueezy/tanstack-start/app/routes/api.webhooks.lemonsqueezy.ts.hbs",dest:"app/routes/api.webhooks.lemonsqueezy.ts",isTemplate:!0},{src:"payments/lemonsqueezy/tanstack-start/app/components/pricing/lemonsqueezy-checkout.tsx",dest:"app/components/pricing/lemonsqueezy-checkout.tsx"});return _}function D5(q){return[{src:"database/drizzle/drizzle.config.ts.hbs",dest:"drizzle.config.ts",isTemplate:!0},{src:"database/drizzle/schema.ts.hbs",dest:"src/lib/db/schema.ts",isTemplate:!0},{src:"database/drizzle/index.ts.hbs",dest:"src/lib/db/index.ts",isTemplate:!0}]}function x5(q){return[{src:"database/prisma/schema.prisma.hbs",dest:"prisma/schema.prisma",isTemplate:!0},{src:"database/prisma/client.ts",dest:"src/lib/db/index.ts"}]}function L5(q){return[{src:"database/kysely/db.ts.hbs",dest:"src/lib/db/index.ts",isTemplate:!0},{src:"database/kysely/types.ts.hbs",dest:"src/lib/db/types.ts",isTemplate:!0},{src:"database/kysely/kysely.config.ts.hbs",dest:"kysely.config.ts",isTemplate:!0},{src:"database/kysely/migrations/001_initial.ts.hbs",dest:"src/lib/db/migrations/001_initial.ts",isTemplate:!0}]}function s5(q){let _=[{src:"backend/hono/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/hono/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/hono/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/hono/src/middleware/cors.ts",dest:"src/api/middleware/cors.ts"},{src:"backend/hono/src/middleware/logger.ts",dest:"src/api/middleware/logger.ts"},{src:"backend/hono/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/hono/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/hono/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/hono/src/middleware/auth.ts.hbs",dest:"src/api/middleware/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/hono/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}function B5(q){return[{src:"frameworks/solidstart/app.config.ts",dest:"app.config.ts"},{src:"frameworks/solidstart/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/solidstart/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/solidstart/src/app.tsx.hbs",dest:"src/app.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/app.css",dest:"src/app.css"},{src:"frameworks/solidstart/src/entry-client.tsx",dest:"src/entry-client.tsx"},{src:"frameworks/solidstart/src/entry-server.tsx",dest:"src/entry-server.tsx"},{src:"frameworks/solidstart/src/lib/utils.ts",dest:"src/lib/utils.ts"},{src:"frameworks/solidstart/src/components/ui/Button.tsx",dest:"src/components/ui/Button.tsx"},{src:"frameworks/solidstart/src/components/ui/Card.tsx",dest:"src/components/ui/Card.tsx"},{src:"frameworks/solidstart/src/components/ui/Input.tsx",dest:"src/components/ui/Input.tsx"},{src:"frameworks/solidstart/src/routes/index.tsx.hbs",dest:"src/routes/index.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/routes/pricing.tsx.hbs",dest:"src/routes/pricing.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/routes/dashboard.tsx.hbs",dest:"src/routes/dashboard.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/solidstart/src/routes/dashboard/index.tsx.hbs",dest:"src/routes/dashboard/index.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/solidstart/src/routes/dashboard/settings.tsx",dest:"src/routes/dashboard/settings.tsx",condition:(f)=>!!f.auth},{src:"frameworks/solidstart/src/routes/dashboard/billing.tsx.hbs",dest:"src/routes/dashboard/billing.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/solidstart/src/components/Header.tsx.hbs",dest:"src/components/Header.tsx",isTemplate:!0},{src:"frameworks/solidstart/src/components/Footer.tsx",dest:"src/components/Footer.tsx"},{src:"frameworks/solidstart/src/components/Sidebar.tsx.hbs",dest:"src/components/Sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function U5(q){return[{src:"frameworks/tanstack-start/app.config.ts",dest:"app.config.ts"},{src:"frameworks/tanstack-start/tsconfig.json",dest:"tsconfig.json"},{src:"frameworks/tanstack-start/tailwind.config.ts",dest:"tailwind.config.ts"},{src:"frameworks/tanstack-start/app/client.tsx",dest:"app/client.tsx"},{src:"frameworks/tanstack-start/app/ssr.tsx",dest:"app/ssr.tsx"},{src:"frameworks/tanstack-start/app/router.tsx",dest:"app/router.tsx"},{src:"frameworks/tanstack-start/app/global.css",dest:"app/global.css"},{src:"frameworks/tanstack-start/app/lib/utils.ts",dest:"app/lib/utils.ts"},{src:"frameworks/tanstack-start/app/routes/__root.tsx.hbs",dest:"app/routes/__root.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/routes/index.tsx.hbs",dest:"app/routes/index.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/routes/pricing.tsx.hbs",dest:"app/routes/pricing.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/routes/dashboard.tsx.hbs",dest:"app/routes/dashboard.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/tanstack-start/app/routes/dashboard.index.tsx.hbs",dest:"app/routes/dashboard.index.tsx",isTemplate:!0,condition:(f)=>!!f.auth},{src:"frameworks/tanstack-start/app/routes/dashboard.settings.tsx",dest:"app/routes/dashboard.settings.tsx",condition:(f)=>!!f.auth},{src:"frameworks/tanstack-start/app/routes/dashboard.billing.tsx.hbs",dest:"app/routes/dashboard.billing.tsx",isTemplate:!0,condition:(f)=>!!f.auth&&!!f.payments},{src:"frameworks/tanstack-start/app/components/ui/button.tsx",dest:"app/components/ui/button.tsx"},{src:"frameworks/tanstack-start/app/components/ui/card.tsx",dest:"app/components/ui/card.tsx"},{src:"frameworks/tanstack-start/app/components/ui/input.tsx",dest:"app/components/ui/input.tsx"},{src:"frameworks/tanstack-start/app/components/header.tsx.hbs",dest:"app/components/header.tsx",isTemplate:!0},{src:"frameworks/tanstack-start/app/components/footer.tsx",dest:"app/components/footer.tsx"},{src:"frameworks/tanstack-start/app/components/sidebar.tsx.hbs",dest:"app/components/sidebar.tsx",isTemplate:!0,condition:(f)=>!!f.auth}]}function F5(q){let _=[];if(q.framework==="nextjs")_.push({src:"payments/polar/nextjs/lib/polar.ts",dest:"src/lib/polar.ts"},{src:"payments/polar/nextjs/api/webhooks/polar/route.ts.hbs",dest:"src/app/api/webhooks/polar/route.ts",isTemplate:!0},{src:"payments/polar/nextjs/components/polar-checkout.tsx",dest:"src/components/pricing/polar-checkout.tsx"});else if(q.framework==="sveltekit")_.push({src:"payments/polar/sveltekit/lib/polar.ts",dest:"src/lib/server/polar.ts"},{src:"payments/polar/sveltekit/routes/api/webhooks/polar/+server.ts.hbs",dest:"src/routes/api/webhooks/polar/+server.ts",isTemplate:!0},{src:"payments/polar/sveltekit/components/PolarCheckout.svelte",dest:"src/lib/components/pricing/PolarCheckout.svelte"});else if(q.framework==="nuxt")_.push({src:"payments/polar/nuxt/server/utils/polar.ts",dest:"server/utils/polar.ts"},{src:"payments/polar/nuxt/composables/usePolar.ts",dest:"composables/usePolar.ts"},{src:"payments/polar/nuxt/server/api/webhooks/polar.post.ts.hbs",dest:"server/api/webhooks/polar.post.ts",isTemplate:!0},{src:"payments/polar/nuxt/components/PolarCheckout.vue",dest:"components/pricing/PolarCheckout.vue"});else if(q.framework==="remix")_.push({src:"payments/polar/remix/app/lib/polar.server.ts",dest:"app/lib/polar.server.ts"},{src:"payments/polar/remix/app/routes/api.webhooks.polar.ts.hbs",dest:"app/routes/api.webhooks.polar.ts",isTemplate:!0},{src:"payments/polar/remix/app/components/pricing/polar-checkout.tsx",dest:"app/components/pricing/polar-checkout.tsx"});else if(q.framework==="astro")_.push({src:"payments/polar/astro/src/lib/polar.ts",dest:"src/lib/polar.ts"},{src:"payments/polar/astro/src/pages/api/webhooks/polar.ts.hbs",dest:"src/pages/api/webhooks/polar.ts",isTemplate:!0},{src:"payments/polar/astro/src/components/pricing/PolarCheckout.tsx",dest:"src/components/pricing/PolarCheckout.tsx"});else if(q.framework==="solidstart")_.push({src:"payments/polar/solidstart/src/lib/polar.server.ts",dest:"src/lib/polar.server.ts"},{src:"payments/polar/solidstart/src/routes/api/webhooks/polar.ts.hbs",dest:"src/routes/api/webhooks/polar.ts",isTemplate:!0},{src:"payments/polar/solidstart/src/components/pricing/polar-checkout.tsx",dest:"src/components/pricing/polar-checkout.tsx"});else if(q.framework==="tanstack-start")_.push({src:"payments/polar/tanstack-start/app/lib/polar.server.ts",dest:"app/lib/polar.server.ts"},{src:"payments/polar/tanstack-start/app/routes/api.webhooks.polar.ts.hbs",dest:"app/routes/api.webhooks.polar.ts",isTemplate:!0},{src:"payments/polar/tanstack-start/app/components/pricing/polar-checkout.tsx",dest:"app/components/pricing/polar-checkout.tsx"});return _}function Q5(q){return[{src:"database/mongoose/connection.ts.hbs",dest:"src/lib/db/connection.ts",isTemplate:!0},{src:"database/mongoose/index.ts",dest:"src/lib/db/index.ts"},{src:"database/mongoose/models/index.ts",dest:"src/lib/db/models/index.ts"},{src:"database/mongoose/models/user.ts.hbs",dest:"src/lib/db/models/user.ts",isTemplate:!0}]}function q1(q){let _=[{src:"backend/elysia/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/elysia/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/elysia/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/elysia/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/elysia/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/elysia/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/elysia/src/middleware/auth.ts.hbs",dest:"src/api/middleware/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/elysia/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}function _1(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/supabase/nextjs/supabase-client.ts",dest:"src/lib/supabase/client.ts"},{src:"auth/supabase/nextjs/supabase-server.ts",dest:"src/lib/supabase/server.ts"},{src:"auth/supabase/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/supabase/nextjs/app/auth/callback/route.ts",dest:"src/app/auth/callback/route.ts"},{src:"auth/supabase/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/supabase/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/supabase/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/supabase/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/supabase/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/supabase/sveltekit/supabase-client.ts",dest:"src/lib/supabase/client.ts"},{src:"auth/supabase/sveltekit/supabase-server.ts",dest:"src/lib/supabase/server.ts"},{src:"auth/supabase/sveltekit/hooks.server.ts",dest:"src/hooks.server.ts"},{src:"auth/supabase/sveltekit/routes/auth/callback/+server.ts",dest:"src/routes/auth/callback/+server.ts"},{src:"auth/supabase/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/supabase/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/supabase/sveltekit/components/AuthForm.svelte",dest:"src/lib/components/auth/AuthForm.svelte"},{src:"auth/supabase/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});else if(q.framework==="nuxt")_.push({src:"auth/supabase/nuxt/composables/useSupabaseAuth.ts",dest:"composables/useSupabaseAuth.ts"},{src:"auth/supabase/nuxt/pages/login.vue",dest:"pages/login.vue"},{src:"auth/supabase/nuxt/pages/register.vue",dest:"pages/register.vue"},{src:"auth/supabase/nuxt/pages/auth/callback.vue",dest:"pages/auth/callback.vue"},{src:"auth/supabase/nuxt/components/AuthForm.vue",dest:"components/auth/AuthForm.vue"},{src:"auth/supabase/nuxt/components/UserButton.vue",dest:"components/auth/UserButton.vue"});else if(q.framework==="remix")_.push({src:"auth/supabase/remix/app/lib/supabase.server.ts",dest:"app/lib/supabase.server.ts"},{src:"auth/supabase/remix/app/lib/supabase.client.ts",dest:"app/lib/supabase.client.ts"},{src:"auth/supabase/remix/app/routes/auth.callback.tsx",dest:"app/routes/auth.callback.tsx"},{src:"auth/supabase/remix/app/routes/login.tsx",dest:"app/routes/login.tsx"},{src:"auth/supabase/remix/app/routes/register.tsx",dest:"app/routes/register.tsx"},{src:"auth/supabase/remix/app/components/auth/auth-form.tsx",dest:"app/components/auth/auth-form.tsx"},{src:"auth/supabase/remix/app/components/auth/user-button.tsx",dest:"app/components/auth/user-button.tsx"});else if(q.framework==="astro")_.push({src:"auth/supabase/astro/src/lib/supabase.ts",dest:"src/lib/supabase.ts"},{src:"auth/supabase/astro/src/pages/auth/callback.ts",dest:"src/pages/auth/callback.ts"},{src:"auth/supabase/astro/src/pages/login.astro",dest:"src/pages/login.astro"},{src:"auth/supabase/astro/src/pages/register.astro",dest:"src/pages/register.astro"},{src:"auth/supabase/astro/src/components/auth/AuthForm.tsx",dest:"src/components/auth/AuthForm.tsx"},{src:"auth/supabase/astro/src/components/auth/UserButton.tsx",dest:"src/components/auth/UserButton.tsx"});return _}function f1(q){let _=[];if(q.framework==="nextjs")_.push({src:"auth/lucia/nextjs/auth.ts.hbs",dest:"src/lib/auth.ts",isTemplate:!0},{src:"auth/lucia/nextjs/auth-actions.ts",dest:"src/lib/auth-actions.ts"},{src:"auth/lucia/nextjs/validate-request.ts",dest:"src/lib/validate-request.ts"},{src:"auth/lucia/nextjs/middleware.ts",dest:"src/middleware.ts"},{src:"auth/lucia/nextjs/app/(auth)/layout.tsx",dest:"src/app/(auth)/layout.tsx"},{src:"auth/lucia/nextjs/app/(auth)/login/page.tsx",dest:"src/app/(auth)/login/page.tsx"},{src:"auth/lucia/nextjs/app/(auth)/register/page.tsx",dest:"src/app/(auth)/register/page.tsx"},{src:"auth/lucia/nextjs/components/auth-form.tsx",dest:"src/components/auth/auth-form.tsx"},{src:"auth/lucia/nextjs/components/user-button.tsx",dest:"src/components/auth/user-button.tsx"});else if(q.framework==="sveltekit")_.push({src:"auth/lucia/sveltekit/auth.ts.hbs",dest:"src/lib/server/auth.ts",isTemplate:!0},{src:"auth/lucia/sveltekit/hooks.server.ts",dest:"src/hooks.server.ts"},{src:"auth/lucia/sveltekit/app.d.ts",dest:"src/app.d.ts"},{src:"auth/lucia/sveltekit/routes/(auth)/login/+page.server.ts",dest:"src/routes/(auth)/login/+page.server.ts"},{src:"auth/lucia/sveltekit/routes/(auth)/login/+page.svelte",dest:"src/routes/(auth)/login/+page.svelte"},{src:"auth/lucia/sveltekit/routes/(auth)/register/+page.server.ts",dest:"src/routes/(auth)/register/+page.server.ts"},{src:"auth/lucia/sveltekit/routes/(auth)/register/+page.svelte",dest:"src/routes/(auth)/register/+page.svelte"},{src:"auth/lucia/sveltekit/components/UserButton.svelte",dest:"src/lib/components/auth/UserButton.svelte"});return _}function $1(q){let _=[{src:"backend/express/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/express/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/express/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/express/src/middleware/error.ts",dest:"src/api/middleware/error.ts"},{src:"backend/express/src/middleware/validate.ts",dest:"src/api/middleware/validate.ts"},{src:"backend/express/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/express/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/express/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/express/src/middleware/auth.ts.hbs",dest:"src/api/middleware/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/express/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}function K1(q){let _=[{src:"backend/fastify/src/index.ts.hbs",dest:"src/api/index.ts",isTemplate:!0},{src:"backend/fastify/src/plugins/cors.ts",dest:"src/api/plugins/cors.ts"},{src:"backend/fastify/src/plugins/swagger.ts",dest:"src/api/plugins/swagger.ts"},{src:"backend/fastify/src/routes/index.ts",dest:"src/api/routes/index.ts"},{src:"backend/fastify/src/routes/health.ts",dest:"src/api/routes/health.ts"},{src:"backend/fastify/src/schemas/common.ts",dest:"src/api/schemas/common.ts"},{src:"backend/fastify/src/lib/env.ts",dest:"src/api/lib/env.ts"},{src:"backend/fastify/tsconfig.api.json",dest:"tsconfig.api.json"}];if(q.hasAuth)_.push({src:"backend/fastify/src/routes/auth.ts.hbs",dest:"src/api/routes/auth.ts",isTemplate:!0}),_.push({src:"backend/fastify/src/plugins/auth.ts.hbs",dest:"src/api/plugins/auth.ts",isTemplate:!0});if(q.hasDatabase)_.push({src:"backend/fastify/src/lib/db.ts.hbs",dest:"src/api/lib/db.ts",isTemplate:!0});return _}var k={next:"^15.1.0",react:"^19.0.0","react-dom":"^19.0.0",svelte:"^5.0.0","@sveltejs/kit":"^2.15.0","@sveltejs/adapter-auto":"^3.3.0","@sveltejs/adapter-node":"^5.2.0","@sveltejs/vite-plugin-svelte":"^5.0.0",nuxt:"^3.15.0",vue:"^3.5.0","@nuxtjs/tailwindcss":"^6.12.0","@vueuse/nuxt":"^12.0.0","@remix-run/node":"^2.15.0","@remix-run/react":"^2.15.0","@remix-run/serve":"^2.15.0","@remix-run/dev":"^2.15.0",isbot:"^5.1.0",astro:"^5.1.0","@astrojs/node":"^9.0.0","@astrojs/react":"^4.1.0","@astrojs/tailwind":"^6.0.0",vite:"^6.0.0","@solidjs/start":"^1.0.0","@solidjs/router":"^0.15.0","@solidjs/meta":"^0.29.0","solid-js":"^1.9.0",vinxi:"^0.5.0","@tanstack/react-start":"^1.95.0","@tanstack/react-router":"^1.95.0",typescript:"^5.7.0","@types/node":"^22.0.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","drizzle-orm":"^0.38.0","drizzle-kit":"^0.30.0",postgres:"^3.4.0","@prisma/client":"^6.0.0",prisma:"^6.0.0","@libsql/client":"^0.14.0","better-sqlite3":"^11.0.0","@types/better-sqlite3":"^7.6.0",kysely:"^0.27.0",pg:"^8.13.0","@types/pg":"^8.11.0","kysely-ctl":"^0.9.0",mongoose:"^8.9.0","better-auth":"^1.2.0","@better-auth/cli":"^1.2.0","@clerk/nextjs":"^6.0.0",lucia:"^3.2.0",oslo:"^1.2.0","@lucia-auth/adapter-drizzle":"^1.1.0","@lucia-auth/adapter-prisma":"^4.0.0","@oslojs/crypto":"^1.0.0","@oslojs/encoding":"^1.1.0","next-auth":"^5.0.0","@auth/core":"^0.37.0","@auth/sveltekit":"^1.7.0","@auth/drizzle-adapter":"^1.7.0","@sidebase/nuxt-auth":"^0.9.0","remix-auth":"^3.7.0","remix-auth-form":"^1.5.0","auth-astro":"^4.2.0","@auth0/nextjs-auth0":"^3.5.0","@auth0/auth0-vue":"^2.3.0","@auth0/auth0-spa-js":"^2.1.0","@auth0/auth0-react":"^2.2.0","@supabase/supabase-js":"^2.47.0","@supabase/ssr":"^0.5.0","@nuxtjs/supabase":"^1.4.0",stripe:"^17.0.0","@stripe/stripe-js":"^5.0.0","@paddle/paddle-node-sdk":"^1.6.0","@paddle/paddle-js":"^1.3.0","@lemonsqueezy/lemonsqueezy.js":"^3.4.0","@polar-sh/sdk":"^0.16.0",tailwindcss:"^4.0.0","@tailwindcss/vite":"^4.0.0",autoprefixer:"^10.4.0",postcss:"^8.4.0",clsx:"^2.1.0","tailwind-merge":"^2.6.0","lucide-react":"^0.469.0","lucide-svelte":"^0.469.0","lucide-vue-next":"^0.469.0",zod:"^3.24.0",nanoid:"^5.0.0","vite-tsconfig-paths":"^5.1.0",hono:"^4.6.0","@hono/node-server":"^1.13.0","@hono/zod-validator":"^0.4.0",elysia:"^1.2.0","@elysiajs/cors":"^1.1.0","@elysiajs/swagger":"^1.1.0",express:"^5.0.0","@types/express":"^5.0.0",helmet:"^8.0.0",cors:"^2.8.0","@types/cors":"^2.8.0","express-rate-limit":"^7.4.0",fastify:"^5.1.0","@fastify/cors":"^10.0.0","@fastify/helmet":"^12.0.0","@fastify/rate-limit":"^10.0.0","@fastify/swagger":"^9.0.0","@fastify/swagger-ui":"^5.0.0"};function aK(q){switch(q){case"nextjs":return{deps:{next:k.next,react:k.react,"react-dom":k["react-dom"]},devDeps:{typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"next dev --turbopack",build:"next build",start:"next start",typecheck:"tsc --noEmit"}};case"sveltekit":return{deps:{"@sveltejs/kit":k["@sveltejs/kit"],svelte:k.svelte},devDeps:{"@sveltejs/adapter-auto":k["@sveltejs/adapter-auto"],"@sveltejs/vite-plugin-svelte":k["@sveltejs/vite-plugin-svelte"],vite:k.vite,typescript:k.typescript,"@types/node":k["@types/node"]},scripts:{dev:"vite dev",build:"vite build",preview:"vite preview",typecheck:"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"}};case"nuxt":return{deps:{nuxt:k.nuxt,vue:k.vue,"@nuxtjs/tailwindcss":k["@nuxtjs/tailwindcss"],"@vueuse/nuxt":k["@vueuse/nuxt"]},devDeps:{typescript:k.typescript},scripts:{dev:"nuxi dev",build:"nuxi build",preview:"nuxi preview",generate:"nuxi generate",typecheck:"nuxi typecheck"}};case"remix":return{deps:{"@remix-run/node":k["@remix-run/node"],"@remix-run/react":k["@remix-run/react"],"@remix-run/serve":k["@remix-run/serve"],react:k.react,"react-dom":k["react-dom"],isbot:k.isbot},devDeps:{"@remix-run/dev":k["@remix-run/dev"],vite:k.vite,"vite-tsconfig-paths":k["vite-tsconfig-paths"],typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"remix vite:dev",build:"remix vite:build",start:"remix-serve ./build/server/index.js",typecheck:"tsc --noEmit"}};case"astro":return{deps:{astro:k.astro,"@astrojs/node":k["@astrojs/node"],"@astrojs/react":k["@astrojs/react"],react:k.react,"react-dom":k["react-dom"]},devDeps:{typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"astro dev",build:"astro build",preview:"astro preview",typecheck:"astro check && tsc --noEmit"}};case"solidstart":return{deps:{"@solidjs/start":k["@solidjs/start"],"@solidjs/router":k["@solidjs/router"],"@solidjs/meta":k["@solidjs/meta"],"solid-js":k["solid-js"],vinxi:k.vinxi},devDeps:{typescript:k.typescript,"@types/node":k["@types/node"]},scripts:{dev:"vinxi dev",build:"vinxi build",start:"vinxi start",typecheck:"tsc --noEmit"}};case"tanstack-start":return{deps:{"@tanstack/react-start":k["@tanstack/react-start"],"@tanstack/react-router":k["@tanstack/react-router"],react:k.react,"react-dom":k["react-dom"],vinxi:k.vinxi},devDeps:{vite:k.vite,"vite-tsconfig-paths":k["vite-tsconfig-paths"],typescript:k.typescript,"@types/node":k["@types/node"],"@types/react":k["@types/react"],"@types/react-dom":k["@types/react-dom"]},scripts:{dev:"vinxi dev",build:"vinxi build",start:"vinxi start",typecheck:"tsc --noEmit"}};default:return{deps:{},devDeps:{},scripts:{}}}}function tK(q,_){switch(q){case"better-auth":return{deps:{"better-auth":k["better-auth"]},devDeps:{"@better-auth/cli":k["@better-auth/cli"]}};case"clerk":if(_==="nextjs")return{deps:{"@clerk/nextjs":k["@clerk/nextjs"]},devDeps:{}};return{deps:{},devDeps:{}};case"authjs":if(_==="nextjs")return{deps:{"next-auth":k["next-auth"],"@auth/drizzle-adapter":k["@auth/drizzle-adapter"]},devDeps:{}};else if(_==="sveltekit")return{deps:{"@auth/sveltekit":k["@auth/sveltekit"],"@auth/drizzle-adapter":k["@auth/drizzle-adapter"]},devDeps:{}};else if(_==="nuxt")return{deps:{"@sidebase/nuxt-auth":k["@sidebase/nuxt-auth"]},devDeps:{}};else if(_==="remix")return{deps:{"remix-auth":k["remix-auth"],"remix-auth-form":k["remix-auth-form"]},devDeps:{}};else if(_==="astro")return{deps:{"auth-astro":k["auth-astro"],"@auth/core":k["@auth/core"]},devDeps:{}};return{deps:{},devDeps:{}};case"auth0":if(_==="nextjs")return{deps:{"@auth0/nextjs-auth0":k["@auth0/nextjs-auth0"]},devDeps:{}};else if(_==="nuxt")return{deps:{"@auth0/auth0-vue":k["@auth0/auth0-vue"]},devDeps:{}};else return{deps:{"@auth0/auth0-spa-js":k["@auth0/auth0-spa-js"]},devDeps:{}};case"lucia":return{deps:{lucia:k.lucia,"@oslojs/crypto":k["@oslojs/crypto"],"@oslojs/encoding":k["@oslojs/encoding"]},devDeps:{}};case"supabase":if(_==="nuxt")return{deps:{"@nuxtjs/supabase":k["@nuxtjs/supabase"]},devDeps:{}};return{deps:{"@supabase/supabase-js":k["@supabase/supabase-js"],"@supabase/ssr":k["@supabase/ssr"]},devDeps:{}};default:return{deps:{},devDeps:{}}}}function GK(q){switch(q){case"stripe":return{deps:{stripe:k.stripe,"@stripe/stripe-js":k["@stripe/stripe-js"]},devDeps:{}};case"paddle":return{deps:{"@paddle/paddle-node-sdk":k["@paddle/paddle-node-sdk"],"@paddle/paddle-js":k["@paddle/paddle-js"]},devDeps:{}};case"lemonsqueezy":return{deps:{"@lemonsqueezy/lemonsqueezy.js":k["@lemonsqueezy/lemonsqueezy.js"]},devDeps:{}};case"polar":return{deps:{"@polar-sh/sdk":k["@polar-sh/sdk"]},devDeps:{}};default:return{deps:{},devDeps:{}}}}function lK(q,_){let f=["postgres","neon","supabase"].includes(_),$=["sqlite","turso"].includes(_);if(q==="drizzle"){let P={"drizzle-orm":k["drizzle-orm"]};if(f)P.postgres=k.postgres;else if($)if(_==="turso")P["@libsql/client"]=k["@libsql/client"];else P["better-sqlite3"]=k["better-sqlite3"];return{deps:P,devDeps:{"drizzle-kit":k["drizzle-kit"],...$&&_!=="turso"?{"@types/better-sqlite3":k["@types/better-sqlite3"]}:{}},scripts:{"db:generate":"drizzle-kit generate","db:migrate":"drizzle-kit migrate","db:push":"drizzle-kit push","db:studio":"drizzle-kit studio"}}}if(q==="prisma")return{deps:{"@prisma/client":k["@prisma/client"]},devDeps:{prisma:k.prisma},scripts:{"db:generate":"prisma generate","db:push":"prisma db push","db:migrate":"prisma migrate dev","db:studio":"prisma studio"}};if(q==="kysely"){let P={kysely:k.kysely};if(f)P.pg=k.pg;else if($)if(_==="turso")P["@libsql/client"]=k["@libsql/client"];else P["better-sqlite3"]=k["better-sqlite3"];return{deps:P,devDeps:{"kysely-ctl":k["kysely-ctl"],...f?{"@types/pg":k["@types/pg"]}:{},...$&&_!=="turso"?{"@types/better-sqlite3":k["@types/better-sqlite3"]}:{}},scripts:{"db:migrate":"kysely migrate:latest","db:migrate:down":"kysely migrate:down","db:migrate:make":"kysely migrate:make"}}}if(q==="mongoose")return{deps:{mongoose:k.mongoose},devDeps:{},scripts:{}};return{deps:{},devDeps:{},scripts:{}}}function bK(q){let _=q==="sveltekit"?"lucide-svelte":q==="nuxt"?"lucide-vue-next":"lucide-react";return{deps:{clsx:k.clsx,"tailwind-merge":k["tailwind-merge"],[_]:k[_]},devDeps:{tailwindcss:k.tailwindcss,"@tailwindcss/vite":k["@tailwindcss/vite"]}}}function MK(){return{deps:{zod:k.zod},devDeps:{}}}import{exec as P1}from"child_process";import{promisify as j1}from"util";import{copyFile as v1,access as zf,constants as ef}from"fs/promises";import{join as Hf}from"path";var X8=j1(P1);async function CK(){try{return await X8("bun --version"),"bun"}catch{}try{return await X8("pnpm --version"),"pnpm"}catch{}return"npm"}async function w1(q,_){let f=_||await CK();try{let $=f==="npm"?"npm install":`${f} install`;return await X8($,{cwd:q,timeout:120000}),{success:!0,message:`Dependencies installed with ${f}`}}catch($){return{success:!1,message:`Failed to install dependencies with ${f}`,error:$}}}async function r1(q){try{try{return await zf(Hf(q,".git"),ef.F_OK),{success:!0,message:"Git repository already initialized"}}catch{}return await X8("git init",{cwd:q}),await X8("git add -A",{cwd:q}),await X8('git commit -m "Initial commit from create-stacksfinder"',{cwd:q}),{success:!0,message:"Git repository initialized"}}catch(_){return{success:!1,message:"Failed to initialize git",error:_}}}async function m1(q){let _=Hf(q,".env.example"),f=Hf(q,".env");try{try{return await zf(f,ef.F_OK),{success:!0,message:".env file already exists"}}catch{}try{await zf(_,ef.F_OK)}catch{return{success:!1,message:".env.example not found"}}return await v1(_,f),{success:!0,message:"Created .env from .env.example"}}catch($){return{success:!1,message:"Failed to create .env file",error:$}}}async function O1(q,_){if(!_.orm)return{success:!0,message:"No ORM configured, skipping database setup"};let f=await CK(),$=f==="npm"?"npm run":`${f} run`;try{if(_.isDrizzle)await X8(`${$} db:generate`,{cwd:q,timeout:60000});else if(_.isPrisma)await X8(`${$} db:generate`,{cwd:q,timeout:60000});return{success:!0,message:`Database setup completed (${_.orm})`}}catch(P){return{success:!1,message:"Database setup skipped (configure .env first)",error:P}}}async function VK(q,_,f={}){let $=[];if(!f.skipInstall){let P=await w1(q);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"✗"} ${P.message}`)}if(!f.skipEnv){let P=await m1(q);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"✗"} ${P.message}`)}if(!f.skipGit){let P=await r1(q);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"✗"} ${P.message}`)}if(!f.skipDb&&_.orm){let P=await O1(q,_);if($.push(P),f.verbose)console.log(` ${P.success?"✓":"⚠"} ${P.message}`)}return{results:$,allSuccess:$.every((P)=>P.success)}}var z1=h1(import.meta.url),e1=NK(z1),yK=hq(e1,"templates");function H1(){if(Z8.default.helpers.eq)return;Z8.default.registerHelper("eq",(q,_)=>q===_),Z8.default.registerHelper("neq",(q,_)=>q!==_),Z8.default.registerHelper("or",(...q)=>q.slice(0,-1).some(Boolean)),Z8.default.registerHelper("and",(...q)=>q.slice(0,-1).every(Boolean)),Z8.default.registerHelper("json",(q)=>JSON.stringify(q,null,2)),Z8.default.registerHelper("unless",function(q,_){return!q?_.fn(this):_.inverse(this)})}async function W1(q){try{return await k1(hq(yK,q)),!0}catch{return!1}}async function J1(q,_,f){if(q.condition&&!q.condition(_))return!0;let $=hq(yK,q.src),P=hq(f,q.dest);if(await SK(NK(P),{recursive:!0}),!await W1(q.src))return console.warn(`Template not found: ${q.src}`),!1;try{if(q.isTemplate){let K=await T1($,"utf-8"),r=Z8.default.compile(K,{noEscape:!0})(_);await cK(P,r)}else await Y1($,P);return!0}catch(K){return console.error(`Error processing ${q.src}:`,K),!1}}function Z1(q){let _=aK(q.framework||"nextjs"),f=q.orm?lK(q.orm,q.database||"postgres"):{deps:{},devDeps:{},scripts:{}},$=q.auth?tK(q.auth,q.framework||"nextjs"):{deps:{},devDeps:{}},P=q.payments?GK(q.payments):{deps:{},devDeps:{}},j=bK(q.framework||"nextjs"),K=MK();return{name:q.projectName,version:"0.1.0",private:!0,type:"module",scripts:{..._.scripts,...f.scripts},dependencies:{..._.deps,...f.deps,...$.deps,...P.deps,...j.deps,...K.deps},devDependencies:{..._.devDeps,...f.devDeps,...$.devDeps,...P.devDeps,...j.devDeps,...K.devDeps}}}async function RK(q,_,f,$={},P){H1();let j=xq(q,_);await SK(f,{recursive:!0}),P?.({phase:"init",current:0,total:0});let K=Z1(j);await cK(hq(f,"package.json"),JSON.stringify(K,null,2)),P?.({phase:"config",file:"package.json",current:1,total:0});let v=AK(j),r=v.length,w=1,O=0,m="";for(let T=0;T<v.length;T++){let h=v[T],z=n1(h.src);if(z!==m)m=z,P?.({phase:z,current:T,total:r});if(await J1(h,j,f))w++,P?.({phase:m,file:h.dest,current:T+1,total:r});else O++}if(!$.skipInstall)P?.({phase:"install",current:r,total:r}),await VK(f,j,{skipInstall:$.skipInstall,skipGit:$.skipGit,verbose:$.verbose});return P?.({phase:"complete",current:r,total:r}),{success:O===0,generated:w,skipped:O,context:j}}function n1(q){if(q.includes("config")||q.includes("tsconfig")||q.includes("vite"))return"config";if(q.includes("auth"))return"auth";if(q.includes("database")||q.includes("drizzle")||q.includes("prisma"))return"database";if(q.includes("payment")||q.includes("stripe")||q.includes("paddle"))return"payments";if(q.includes("component"))return"components";if(q.includes("route")||q.includes("app/"))return"routes";return"files"}async function gK(q,_){let f=`https://stacksfinder.com/api/v1/blueprints/${q}`,$=await fetch(f,{method:"GET",headers:{Authorization:`Bearer ${_}`,"Content-Type":"application/json","User-Agent":"create-stacksfinder/0.1.0"}});if(!$.ok){if($.status===401)throw Error("Invalid API key. Get your key at stacksfinder.com/settings/api-keys");if($.status===403)throw Error("API access requires a Pro or Team subscription. Upgrade at stacksfinder.com/pro");if($.status===404)throw Error(`Blueprint "${q}" not found. Check the ID and try again.`);let P=await $.json().catch(()=>({}));throw Error(P.message||`API error: ${$.status} ${$.statusText}`)}return $.json()}function EK(q){if(q)return q;return process.env.STACKSFINDER_API_KEY}import{existsSync as IK,readFileSync as DK}from"fs";import{join as xK}from"path";var LK=[".stacksfinderrc.json",".stacksfinderrc","stacksfinder.config.json"],T8={projectType:"saas",scale:"mvp",priority:"speed",framework:"nextjs",database:"postgres",orm:"drizzle",auth:"better-auth",payments:null,hosting:"vercel"};async function Wf(){for(let _ of LK){let f=xK(process.cwd(),_);if(IK(f))try{let $=DK(f,"utf-8");return JSON.parse($)}catch($){return console.warn(`Warning: Failed to parse ${_}`),null}}let q=process.env.HOME||process.env.USERPROFILE;if(q)for(let _ of LK){let f=xK(q,_);if(IK(f))try{let $=DK(f,"utf-8");return JSON.parse($)}catch($){return console.warn(`Warning: Failed to parse ${_} in home directory`),null}}return null}async function o1(){let q=await Wf();if(!q?.defaults)return{};return{projectType:q.defaults.projectType,scale:q.defaults.scale,priority:q.defaults.priority,framework:q.defaults.framework,database:q.defaults.database,orm:q.defaults.orm,auth:q.defaults.auth,payments:q.defaults.payments}}async function sK(q){let _=await Wf();if(!_?.presets)return null;return _.presets[q]??null}async function BK(){let q=await Wf();if(!q?.presets)return[];return Object.keys(q.presets)}async function UK(){let q=await o1();return{...T8,...Object.fromEntries(Object.entries(q).filter(([_,f])=>f!==void 0))}}function FK(q){return{projectType:q.projectType??T8.projectType,scale:q.scale??T8.scale,priority:q.priority??T8.priority,framework:q.framework??T8.framework,database:q.database??T8.database,orm:q.orm??T8.orm,auth:q.auth!==void 0?q.auth:T8.auth,payments:q.payments!==void 0?q.payments:T8.payments,hosting:q.hosting??T8.hosting}}var l=L(f8(),1),p1={remix:{drizzle:"Drizzle's type-safe queries pair perfectly with Remix loaders",prisma:"Prisma's schema-first approach works well with Remix's data loading","better-auth":"Better Auth integrates natively with Remix's session handling",stripe:"Stripe webhooks fit naturally into Remix resource routes",supabase:"Supabase provides both database and auth for rapid Remix development"},nextjs:{drizzle:"Drizzle's edge-ready design complements Next.js middleware",prisma:"Prisma's mature ecosystem integrates seamlessly with Next.js API routes",clerk:"Clerk provides drop-in auth components for Next.js App Router","better-auth":"Better Auth's minimal footprint suits Next.js server components",stripe:"Next.js API routes provide a clean Stripe webhook integration",vercel:"Vercel's zero-config deployment is optimized for Next.js"},sveltekit:{drizzle:"Drizzle's lightweight design matches SvelteKit's performance focus",prisma:"Prisma works well with SvelteKit's server-side data loading","better-auth":"Better Auth's Svelte adapter provides native store integration",stripe:"SvelteKit endpoints handle Stripe webhooks efficiently",cloudflare:"Cloudflare Pages offers excellent SvelteKit adapter support"},nuxt:{drizzle:"Drizzle works well with Nuxt's server routes",prisma:"Prisma integrates with Nuxt's Nitro server","better-auth":"Better Auth provides Vue composables for Nuxt",stripe:"Nuxt server routes handle Stripe integration cleanly"}};function zq(q,_){return p1[q]?.[_]}function u1(q,_){let f=_.framework;if(!f)return;let $=[];if(_.orm){let P=zq(f,_.orm);if(P)$.push(P)}if(_.auth){let P=zq(f,_.auth);if(P)$.push(P)}if(_.payments){let P=zq(f,_.payments);if(P)$.push(P)}if(_.database){let P=zq(f,_.database);if(P)$.push(P)}if(_.hosting){let P=zq(f,_.hosting);if(P)$.push(P)}if($.length>0){console.log(""),console.log(l.default.dim(" Stack synergies detected:"));for(let P of $.slice(0,3))console.log(l.default.dim(` + ${P}`))}}function QK(q,_,f,$){if(console.log(""),console.log(l.default.dim(" ───────────────────────────────────────────────────")),console.log(""),console.log(` ${l.default.bold("Generation complete")}`),console.log(""),console.log(` ${l.default.cyan(String(f))} files generated`),$>0)console.log(l.default.yellow(` ${$} templates not found`));console.log(""),console.log(l.default.dim(" Stack composition:"));let P=_.frameworkEntry?.name||_.framework||"Unknown",j=_.databaseEntry?.name||_.database||"None",K=_.ormEntry?.name||_.orm||"None",v=_.authEntry?.name||_.auth||"None",r=_.paymentsEntry?.name||_.payments||"None";if(console.log(l.default.dim(` Framework: ${P}`)),console.log(l.default.dim(` Database: ${j} + ${K}`)),_.auth)console.log(l.default.dim(` Auth: ${v}`));if(_.payments)console.log(l.default.dim(` Payments: ${r}`));let w=q.stackScore?.grade||"A";console.log(""),console.log(` Overall stack grade: ${l.default.green(`[${w}]`)} ${i1(w)}`)}function i1(q){return{"A+":"Optimal choice for your requirements",A:"Excellent match with proven synergies","A-":"Strong choice with minor trade-offs","B+":"Good fit, some alternatives worth considering",B:"Solid option for your use case","B-":"Adequate, but better options exist",C:"Consider alternatives for better results"}[q]||""}function qP(q,_){console.log(""),console.log(l.default.dim(" ───────────────────────────────────────────────────")),console.log(""),console.log(` ${l.default.bold("Preparing generation...")}`),console.log("");let f=[];if(_.framework)f.push(`${_.frameworkEntry?.name||_.framework} project structure`);if(_.orm)f.push(`${_.ormEntry?.name||_.orm} database layer`);if(_.auth)f.push(`${_.authEntry?.name||_.auth} authentication`);if(_.payments)f.push(`${_.paymentsEntry?.name||_.payments} payment integration`);console.log(l.default.dim(" Generating:"));for(let $ of f)console.log(l.default.dim(` + ${$}`));u1(q,_)}function Jf(q,_){if(console.log(""),console.log(l.default.dim(" ───────────────────────────────────────────────────")),console.log(` ${l.default.bold("Seed:")} ${l.default.cyan(q)}`),console.log(l.default.dim(" Reproduce this config: --seed <seed>")),_)console.log(""),console.log(l.default.green(` Saved as "${_}"`)),console.log(l.default.dim(` Use: bun create stacksfinder my-app --seed ${_}`))}import{join as A1}from"path";function d1(){return!!(process.env.STACKSFINDER_TELEMETRY_DISABLED||process.env.DO_NOT_TRACK||process.env.CI)}function eq(q,_){if(d1())return;let f={v:"0.2.0",action:q,projectType:_?.projectType,scale:_?.scale,ecosystem:_?.ecosystem,priorityCount:_?.priorities?.length,constraintCount:_?.constraints?.length,os:process.platform,ts:Date.now()};fetch("https://stacksfinder.com/api/v1/cli/telemetry",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f),signal:AbortSignal.timeout(3000)}).catch(()=>{})}function _P(q){eq("generate",q)}function fP(){eq("error")}import{createHash as X1}from"crypto";var $P=1,U8="SF1-";function KP(q){let _={v:$P,t:q.projectType,s:q.scale,pr:q.priority,...q.ecosystem&&q.ecosystem!=="javascript"?{e:q.ecosystem}:{},...q.constraints&&q.constraints.length>0?{c:q.constraints}:{}},f=JSON.stringify(_),$=Buffer.from(f).toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"");return U8+$}function Zf(q){if(!q.startsWith(U8))throw Error(`Invalid seed format. Seeds must start with "${U8}". Example: SF1-abc123...`);try{let _=q.slice(U8.length).replace(/-/g,"+").replace(/_/g,"/"),f=_+"=".repeat((4-_.length%4)%4),$=Buffer.from(f,"base64").toString("utf-8"),P=JSON.parse($),j=P.v||1;if(j>$P)throw Error(`Seed version ${j} is not supported. Please update create-stacksfinder.`);let K;if(P.t)K={projectType:P.t,scale:P.s,priority:P.pr,ecosystem:P.e||"javascript",constraints:P.c||[]};else if(P.e&&P.p)K={projectType:"saas",scale:"mvp",priority:{pioneer:"speed",sprinter:"speed",guardian:"security",pragmatic:"dx"}[P.p]||"speed",ecosystem:P.e||"javascript",constraints:P.c||[]};else throw Error("Seed is missing required fields");let v=X1("sha256").update(JSON.stringify(K)).digest("hex").slice(0,8);return{version:j,config:K,hash:v}}catch(_){if(_ instanceof SyntaxError)throw Error("Invalid seed: corrupted data");throw _}}function PP(q){let _=q.trim();if(!_.startsWith(U8))return!1;let f=_.slice(U8.length);return/^[A-Za-z0-9_-]+$/.test(f)&&f.length>0}function jP(){return`${process.env.HOME||process.env.USERPROFILE||process.cwd()}/.stacksfinder-seeds.json`}async function Lq(){let q=await import("fs/promises"),_=jP();try{let f=await q.readFile(_,"utf-8");return JSON.parse(f).seeds||[]}catch{return[]}}async function vP(q,_,f){let $=await import("fs/promises"),P=jP(),j=await Lq(),K=j.findIndex((v)=>v.name===q);if(K>=0)j[K]={name:q,seed:_,createdAt:new Date().toISOString(),description:f};else j.push({name:q,seed:_,createdAt:new Date().toISOString(),description:f});await $.writeFile(P,JSON.stringify({seeds:j},null,2))}async function wP(q){return(await Lq()).find((f)=>f.name===q)||null}var rP="0.5.0";function Y8(q,_){let f=q.indexOf(_);return f!==-1&&q[f+1]&&!q[f+1].startsWith("-")?q[f+1]:void 0}var sq=["saas","web-app","marketplace","api","e-commerce","blog","portfolio"],Bq=["mvp","startup","growth","enterprise"],Uq=["speed","dx","perf","cost","scale","security"];async function a1(){console.clear(),Z6("box");let q=process.argv.slice(2),_=q.find((W)=>!W.startsWith("-")),f=q.includes("--recommend-only")||q.includes("-r"),$=q.includes("--json")||q.includes("-j"),P=q.includes("--expert")||q.includes("-e"),j=q.includes("--version")||q.includes("-v"),K=q.includes("--help")||q.includes("-h"),v=q.includes("--yes")||q.includes("-y"),r=q.includes("--verbose")||q.includes("-V"),w=q.includes("--no-install"),O=q.includes("--no-git"),m=Y8(q,"--preset"),T=q.includes("--quick")||q.includes("-q"),h=Y8(q,"--type"),z=Y8(q,"--scale"),H=Y8(q,"--priority"),o=Y8(q,"--from-blueprint"),X=Y8(q,"--api-key"),I=q.includes("--compare"),R=Y8(q,"--preset1")||"mvp",A=Y8(q,"--preset2")||"enterprise",b=Y8(q,"--seed"),j8=Y8(q,"--save-seed"),x=q.includes("--list-seeds");if(j){let W=v6();console.log(`create-stacksfinder v${rP}`),console.log(`Scoring data: v${W.scores}`),console.log(`Compatibility matrix: v${W.matrix}`),process.exit(0)}if(K)console.log(`
|
|
151
151
|
${u.default.bold("create-stacksfinder")} v${rP} - Scaffold optimized tech stacks
|
|
152
152
|
|
|
153
153
|
${u.default.bold("USAGE")}
|
|
@@ -236,4 +236,4 @@ ${u.default.bold("LEARN MORE")}
|
|
|
236
236
|
Use --api-key <key> or set STACKSFINDER_API_KEY environment variable.
|
|
237
237
|
Get your key at: stacksfinder.com/settings/api-keys`),process.exit(1);if(!_)c("Blueprint mode requires a project name: bun create stacksfinder my-app --from-blueprint <id>"),process.exit(1);let n=z8();n.start(`Fetching blueprint ${o}...`);try{let V=await gK(o,p);n.stop(`Blueprint "${V.blueprint.name}" loaded!`),C=m6(V.blueprint,_),W=C.context,y.info(u.default.dim(`From blueprint: ${W.projectType} / ${W.scale}`))}catch(V){throw n.stop("Failed to fetch blueprint"),V}}else if(m){let p=await sK(m);if(!p){let V=await BK(),F8=Gq(),o8=[...new Set([...V,...F8])];if(lq(m)){let a8=tq(m);if(!_)c("Preset mode requires a project name: bun create stacksfinder my-app --preset <name>"),process.exit(1);W={projectName:_,projectType:a8.projectType,scale:a8.scale,ecosystem:"javascript",priorities:a8.priorities,constraints:a8.constraints||[]},y.info(u.default.dim(`Using built-in preset: ${a8.name}`))}else c(`Preset "${m}" not found.
|
|
238
238
|
Available: ${o8.length>0?o8.join(", "):"none"}
|
|
239
|
-
Create presets in .stacksfinderrc.json`),process.exit(1)}else{if(!_)c("Preset mode requires a project name: bun create stacksfinder my-app --preset <name>"),process.exit(1);let V=FK(p);W={projectName:_,projectType:V.projectType,scale:V.scale,ecosystem:"javascript",priorities:[V.priority],constraints:[]},y.info(u.default.dim(`Using preset: ${p.name}`))}let n=z8();n.start("Analyzing 50+ technologies..."),C=k8(W),n.stop("Analysis complete!")}else if(v){if(!_)c("Yes mode requires a project name: bun create stacksfinder my-app --yes"),process.exit(1);let p=await UK(),n=h||p.projectType,V=z||p.scale,F8=H||p.priority;if(h&&!sq.includes(h))c(`Invalid --type "${h}". Valid: ${sq.join(", ")}`),process.exit(1);if(z&&!Bq.includes(z))c(`Invalid --scale "${z}". Valid: ${Bq.join(", ")}`),process.exit(1);if(H&&!Uq.includes(H))c(`Invalid --priority "${H}". Valid: ${Uq.join(", ")}`),process.exit(1);W={projectName:_,projectType:n,scale:V,ecosystem:"javascript",priorities:[F8],constraints:[]},y.info(u.default.dim(`Yes mode: ${W.projectType} / ${W.scale} / ${W.priorities[0]}`));let o8=z8();o8.start("Analyzing 50+ technologies..."),C=k8(W),o8.stop("Analysis complete!")}else if(T){if(!_)c("Quick mode requires a project name: bun create stacksfinder my-app --quick"),process.exit(1);if(h&&!sq.includes(h))c(`Invalid --type "${h}". Valid: ${sq.join(", ")}`),process.exit(1);if(z&&!Bq.includes(z))c(`Invalid --scale "${z}". Valid: ${Bq.join(", ")}`),process.exit(1);if(H&&!Uq.includes(H))c(`Invalid --priority "${H}". Valid: ${Uq.join(", ")}`),process.exit(1);W=Y6({projectName:_,projectType:h||"saas",scale:z||"mvp",priority:H||"speed"}),y.info(u.default.dim(`Quick mode: ${W.projectType} / ${W.scale} / ${W.priorities[0]}`));let n=z8();n.start("Analyzing 50+ technologies..."),C=k8(W),n.stop("Analysis complete!")}else{let p=await k6({expertMode:P});if(!p)process.exit(0);if(W=p.context,C=p.stack,_)W.projectName=_}if(eq("recommend",{projectType:W.projectType,scale:W.scale,ecosystem:W.ecosystem,priorities:W.priorities,constraints:W.constraints}),$)console.log(z6(C)),process.exit(0);if(console.log(""),o_(C),console.log(""),p_(C.confidence),d_(C,"post-recommendation"),f)console.log(""),aq(W),Y_(u.default.dim("Generate this stack:")+` bun create stacksfinder ${W.projectName} --yes`),process.exit(0);let A8=!0;if(!v&&!T&&!m){let p=C.categories.map((n)=>({category:n.category,tech:n.recommended.tech.name,grade:n.recommended.grade}));A8=await h6(p)}if(!A8)w8("Project generation cancelled."),process.exit(0);let q8=
|
|
239
|
+
Create presets in .stacksfinderrc.json`),process.exit(1)}else{if(!_)c("Preset mode requires a project name: bun create stacksfinder my-app --preset <name>"),process.exit(1);let V=FK(p);W={projectName:_,projectType:V.projectType,scale:V.scale,ecosystem:"javascript",priorities:[V.priority],constraints:[]},y.info(u.default.dim(`Using preset: ${p.name}`))}let n=z8();n.start("Analyzing 50+ technologies..."),C=k8(W),n.stop("Analysis complete!")}else if(v){if(!_)c("Yes mode requires a project name: bun create stacksfinder my-app --yes"),process.exit(1);let p=await UK(),n=h||p.projectType,V=z||p.scale,F8=H||p.priority;if(h&&!sq.includes(h))c(`Invalid --type "${h}". Valid: ${sq.join(", ")}`),process.exit(1);if(z&&!Bq.includes(z))c(`Invalid --scale "${z}". Valid: ${Bq.join(", ")}`),process.exit(1);if(H&&!Uq.includes(H))c(`Invalid --priority "${H}". Valid: ${Uq.join(", ")}`),process.exit(1);W={projectName:_,projectType:n,scale:V,ecosystem:"javascript",priorities:[F8],constraints:[]},y.info(u.default.dim(`Yes mode: ${W.projectType} / ${W.scale} / ${W.priorities[0]}`));let o8=z8();o8.start("Analyzing 50+ technologies..."),C=k8(W),o8.stop("Analysis complete!")}else if(T){if(!_)c("Quick mode requires a project name: bun create stacksfinder my-app --quick"),process.exit(1);if(h&&!sq.includes(h))c(`Invalid --type "${h}". Valid: ${sq.join(", ")}`),process.exit(1);if(z&&!Bq.includes(z))c(`Invalid --scale "${z}". Valid: ${Bq.join(", ")}`),process.exit(1);if(H&&!Uq.includes(H))c(`Invalid --priority "${H}". Valid: ${Uq.join(", ")}`),process.exit(1);W=Y6({projectName:_,projectType:h||"saas",scale:z||"mvp",priority:H||"speed"}),y.info(u.default.dim(`Quick mode: ${W.projectType} / ${W.scale} / ${W.priorities[0]}`));let n=z8();n.start("Analyzing 50+ technologies..."),C=k8(W),n.stop("Analysis complete!")}else{let p=await k6({expertMode:P});if(!p)process.exit(0);if(W=p.context,C=p.stack,_)W.projectName=_}if(eq("recommend",{projectType:W.projectType,scale:W.scale,ecosystem:W.ecosystem,priorities:W.priorities,constraints:W.constraints}),$)console.log(z6(C)),process.exit(0);if(console.log(""),o_(C),console.log(""),p_(C.confidence),d_(C,"post-recommendation"),f)console.log(""),aq(W),Y_(u.default.dim("Generate this stack:")+` bun create stacksfinder ${W.projectName} --yes`),process.exit(0);let A8=!0;if(!v&&!T&&!m){let p=C.categories.map((n)=>({category:n.category,tech:n.recommended.tech.name,grade:n.recommended.grade}));A8=await h6(p)}if(!A8)w8("Project generation cancelled."),process.exit(0);let q8=A1(process.cwd(),W.projectName),Hq=xq(W.projectName,C);qP(C,Hq),console.log("");let n8=z8();n8.start("Generating project structure...");let S8="",_8={init:"Initializing project",config:"Writing configuration files",database:"Setting up database layer",auth:"Configuring authentication",payments:"Integrating payment system",components:"Creating UI components",routes:"Building application routes",install:"Installing dependencies",complete:"Finalizing"},Wq=await RK(W.projectName,C,q8,{skipInstall:w,skipGit:O,verbose:r},(p)=>{if(p.phase!==S8&&_8[p.phase])S8=p.phase,n8.message(_8[p.phase])});if(_P({projectType:W.projectType,scale:W.scale,ecosystem:W.ecosystem??"universal",priorities:W.priorities,constraints:W.constraints}),n8.stop(`Generated ${Wq.generated} files`),QK(C,Wq.context,Wq.generated,Wq.skipped),console.log(""),u_(W.projectName,q8),aq(W),!s)s=KP({projectType:W.projectType,scale:W.scale,priority:W.priorities[0],ecosystem:W.ecosystem,constraints:W.constraints});if(j8)await vP(j8,s,`${W.projectType} / ${W.scale} / ${W.priorities[0]}`),Jf(s,j8);else Jf(s);d_(C,"post-generation",W.projectName),console.log("")}catch(W){fP(),c(W instanceof Error?W.message:"An unexpected error occurred"),n6(W instanceof Error?W.message:"Unknown error"),process.exit(1)}}a1().catch(console.error);
|