simplecloud 0.0.1-beta.82 → 0.0.1-beta.83
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/cli.js +3 -3
- package/dist/index.js +3 -3
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -117,7 +117,7 @@ ${Q.join(`
|
|
|
117
117
|
`;G.forEach((Q)=>{O+=Q}),q.fail(O)}};let K={};_.conflicts=function(Z,G){if(bA("<string|object> [array|string]",[Z,G],arguments.length),typeof Z==="object")Object.keys(Z).forEach((O)=>{_.conflicts(O,Z[O])});else{if(A.global(Z),!K[Z])K[Z]=[];if(Array.isArray(G))G.forEach((O)=>_.conflicts(Z,O));else K[Z].push(G)}},_.getConflicting=()=>K,_.conflicting=function(Z){if(Object.keys(Z).forEach((G)=>{if(K[G])K[G].forEach((O)=>{if(O&&Z[G]!==void 0&&Z[O]!==void 0)q.fail(g("Arguments %s and %s are mutually exclusive",G,O))})}),A.getInternalMethods().getParserConfiguration()["strip-dashed"])Object.keys(K).forEach((G)=>{K[G].forEach((O)=>{if(O&&Z[F.Parser.camelCase(G)]!==void 0&&Z[F.Parser.camelCase(O)]!==void 0)q.fail(g("Arguments %s and %s are mutually exclusive",G,O))})})},_.recommendCommands=function(Z,G){G=G.sort((J,I)=>I.length-J.length);let Q=null,Y=1/0;for(let J=0,I;(I=G[J])!==void 0;J++){let X=A1A(Z,I);if(X<=3&&X<Y)Y=X,Q=I}if(Q)q.fail(g("Did you mean %s?",Q))},_.reset=function(Z){return D=j2(D,(G)=>!Z[G]),K=j2(K,(G)=>!Z[G]),_};let $=[];return _.freeze=function(){$.push({implied:D,conflicting:K})},_.unfreeze=function(){let Z=$.pop();yE(Z,void 0,F),{implied:D,conflicting:K}=Z},_}var q1A;var g1A=W(()=>{kN();vN();q1A=["$0","--","_"]});function sQ(A,q,F,g){tQ=g;let E={};if(Object.prototype.hasOwnProperty.call(A,"extends")){if(typeof A.extends!=="string")return E;let _=/\.json|\..*rc$/.test(A.extends),D=null;if(!_)try{D=import.meta.resolve(A.extends)}catch(j){return A}else D=gnA(q,A.extends);FnA(D),Dk.push(D),E=_?JSON.parse(tQ.readFileSync(D,"utf8")):g.require(A.extends),delete A.extends,E=sQ(E,tQ.path.dirname(D),F,tQ)}return Dk=[],F?E1A(E,A):Object.assign({},E,A)}function FnA(A){if(Dk.indexOf(A)>-1)throw new dF(`Circular extended configurations: '${A}'.`)}function gnA(A,q){return tQ.path.resolve(A,q)}function E1A(A,q){let F={};function g(E){return E&&typeof E==="object"&&!Array.isArray(E)}Object.assign(F,A);for(let E of Object.keys(q))if(g(q[E])&&g(F[E]))F[E]=E1A(A[E],q[E]);else F[E]=q[E];return F}var Dk,tQ;var jk=W(()=>{oQ();Dk=[]});function V1A(A){return(q=[],F=A.process.cwd(),g)=>{let E=new T1A(q,F,g,A);return Object.defineProperty(E,"argv",{get:()=>{return E.parse()},enumerable:!0}),E.help(),E.version(),E}}function f2A(A){return!!A&&typeof A.getInternalMethods==="function"}var uA=function(A,q,F,g,E){if(g==="m")throw TypeError("Private method is not writable");if(g==="a"&&!E)throw TypeError("Private accessor was defined without a setter");if(typeof q==="function"?A!==q||!E:!q.has(A))throw TypeError("Cannot write private member to an object whose class did not declare it");return g==="a"?E.call(A,F):E?E.value=F:q.set(A,F),F},C=function(A,q,F,g){if(F==="a"&&!g)throw TypeError("Private accessor was defined without a getter");if(typeof q==="function"?A!==q||!g:!q.has(A))throw TypeError("Cannot read private member from an object whose class did not declare it");return F==="m"?g:F==="a"?g.call(A):g?g.value:q.get(A)},aF,FG,eQ,Q_,gD,mN,$2,gG,cN,iD,dN,lD,vK,ED,oD,aN,EG,bg,iA,rN,fN,_D,_G,_7,DG,U2,nN,Uq,jG,KG,$G,Iq,pN,yK,hF,_1A,D1A,Kk,j1A,K1A,$1A,UG,U1A,$k,Z1A,G1A,Uk,Z2,D7,Zk,Gk,Ok,Qk,Yk,O1A,Q1A,Y1A,J1A,H1A,I1A,M1A,X1A,iN,P1A,ZG,N1A,Jk,AY,Hk,L1A,GG,EnA="en_US",T1A;var Ek=W(()=>{gk();oQ();i2A();kN();e2A();g1A();vN();jk();qk();Fk();_1A=Symbol("copyDoubleDash"),D1A=Symbol("copyDoubleDash"),Kk=Symbol("deleteFromParserHintObject"),j1A=Symbol("emitWarning"),K1A=Symbol("freeze"),$1A=Symbol("getDollarZero"),UG=Symbol("getParserConfiguration"),U1A=Symbol("getUsageConfiguration"),$k=Symbol("guessLocale"),Z1A=Symbol("guessVersion"),G1A=Symbol("parsePositionalNumbers"),Uk=Symbol("pkgUp"),Z2=Symbol("populateParserHintArray"),D7=Symbol("populateParserHintSingleValueDictionary"),Zk=Symbol("populateParserHintArrayDictionary"),Gk=Symbol("populateParserHintDictionary"),Ok=Symbol("sanitizeKey"),Qk=Symbol("setKey"),Yk=Symbol("unfreeze"),O1A=Symbol("validateAsync"),Q1A=Symbol("getCommandInstance"),Y1A=Symbol("getContext"),J1A=Symbol("getHasOutput"),H1A=Symbol("getLoggerInstance"),I1A=Symbol("getParseContext"),M1A=Symbol("getUsageInstance"),X1A=Symbol("getValidationInstance"),iN=Symbol("hasParseCallback"),P1A=Symbol("isGlobalContext"),ZG=Symbol("postProcess"),N1A=Symbol("rebase"),Jk=Symbol("reset"),AY=Symbol("runYargsParserAndExecuteCommands"),Hk=Symbol("runValidation"),L1A=Symbol("setHasOutput"),GG=Symbol("kTrackManuallySetKeys");T1A=class T1A{constructor(A=[],q,F,g){this.customScriptName=!1,this.parsed=!1,aF.set(this,void 0),FG.set(this,void 0),eQ.set(this,{commands:[],fullCommands:[]}),Q_.set(this,null),gD.set(this,null),mN.set(this,"show-hidden"),$2.set(this,null),gG.set(this,!0),cN.set(this,{}),iD.set(this,!0),dN.set(this,[]),lD.set(this,void 0),vK.set(this,{}),ED.set(this,!1),oD.set(this,null),aN.set(this,!0),EG.set(this,void 0),bg.set(this,""),iA.set(this,void 0),rN.set(this,void 0),fN.set(this,{}),_D.set(this,null),_G.set(this,null),_7.set(this,{}),DG.set(this,{}),U2.set(this,void 0),nN.set(this,!1),Uq.set(this,void 0),jG.set(this,!1),KG.set(this,!1),$G.set(this,!1),Iq.set(this,void 0),pN.set(this,{}),yK.set(this,null),hF.set(this,void 0),uA(this,Uq,g,"f"),uA(this,U2,A,"f"),uA(this,FG,q,"f"),uA(this,rN,F,"f"),uA(this,lD,new Ak(this),"f"),this.$0=this[$1A](),this[Jk](),uA(this,aF,C(this,aF,"f"),"f"),uA(this,Iq,C(this,Iq,"f"),"f"),uA(this,hF,C(this,hF,"f"),"f"),uA(this,iA,C(this,iA,"f"),"f"),C(this,iA,"f").showHiddenOpt=C(this,mN,"f"),uA(this,EG,this[D1A](),"f"),C(this,Uq,"f").y18n.setLocale(EnA)}addHelpOpt(A,q){if(bA("[string|boolean] [string]",[A,q],arguments.length),C(this,oD,"f"))this[Kk](C(this,oD,"f")),uA(this,oD,null,"f");if(A===!1&&q===void 0)return this;return uA(this,oD,typeof A==="string"?A:"help","f"),this.boolean(C(this,oD,"f")),this.describe(C(this,oD,"f"),q||C(this,Iq,"f").deferY18nLookup("Show help")),this}help(A,q){return this.addHelpOpt(A,q)}addShowHiddenOpt(A,q){if(bA("[string|boolean] [string]",[A,q],arguments.length),A===!1&&q===void 0)return this;let F=typeof A==="string"?A:C(this,mN,"f");return this.boolean(F),this.describe(F,q||C(this,Iq,"f").deferY18nLookup("Show hidden options")),C(this,iA,"f").showHiddenOpt=F,this}showHidden(A,q){return this.addShowHiddenOpt(A,q)}alias(A,q){return bA("<object|string|array> [string|array]",[A,q],arguments.length),this[Zk](this.alias.bind(this),"alias",A,q),this}array(A){return bA("<array|string>",[A],arguments.length),this[Z2]("array",A),this[GG](A),this}boolean(A){return bA("<array|string>",[A],arguments.length),this[Z2]("boolean",A),this[GG](A),this}check(A,q){return bA("<function> [boolean]",[A,q],arguments.length),this.middleware((F,g)=>{return qG(()=>{return A(F,g.getOptions())},(E)=>{if(!E)C(this,Iq,"f").fail(C(this,Uq,"f").y18n.__("Argument check failed: %s",A.toString()));else if(typeof E==="string"||E instanceof Error)C(this,Iq,"f").fail(E.toString(),E);return F},(E)=>{return C(this,Iq,"f").fail(E.message?E.message:E.toString(),E),F})},!1,q),this}choices(A,q){return bA("<object|string|array> [string|array]",[A,q],arguments.length),this[Zk](this.choices.bind(this),"choices",A,q),this}coerce(A,q){if(bA("<object|string|array> [function]",[A,q],arguments.length),Array.isArray(A)){if(!q)throw new dF("coerce callback must be provided");for(let g of A)this.coerce(g,q);return this}else if(typeof A==="object"){for(let g of Object.keys(A))this.coerce(g,A[g]);return this}if(!q)throw new dF("coerce callback must be provided");let F=A;return C(this,iA,"f").key[F]=!0,C(this,lD,"f").addCoerceMiddleware((g,E)=>{var _;let D=(_=E.getAliases()[F])!==null&&_!==void 0?_:[],j=[F,...D].filter((K)=>Object.prototype.hasOwnProperty.call(g,K));if(j.length===0)return g;return qG(()=>{return q(g[j[0]])},(K)=>{return j.forEach(($)=>{g[$]=K}),g},(K)=>{throw new dF(K.message)})},F),this}conflicts(A,q){return bA("<string|object> [string|array]",[A,q],arguments.length),C(this,hF,"f").conflicts(A,q),this}config(A="config",q,F){if(bA("[object|string] [string|function] [function]",[A,q,F],arguments.length),typeof A==="object"&&!Array.isArray(A))return A=sQ(A,C(this,FG,"f"),this[UG]()["deep-merge-config"]||!1,C(this,Uq,"f")),C(this,iA,"f").configObjects=(C(this,iA,"f").configObjects||[]).concat(A),this;if(typeof q==="function")F=q,q=void 0;return this.describe(A,q||C(this,Iq,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(A)?A:[A]).forEach((g)=>{C(this,iA,"f").config[g]=F||!0}),this}completion(A,q,F){if(bA("[string] [string|boolean|function] [function]",[A,q,F],arguments.length),typeof q==="function")F=q,q=void 0;if(uA(this,gD,A||C(this,gD,"f")||"completion","f"),!q&&q!==!1)q="generate completion script";if(this.command(C(this,gD,"f"),q),F)C(this,Q_,"f").registerFunction(F);return this}command(A,q,F,g,E,_){return bA("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[A,q,F,g,E,_],arguments.length),C(this,aF,"f").addHandler(A,q,F,g,E,_),this}commands(A,q,F,g,E,_){return this.command(A,q,F,g,E,_)}commandDir(A,q){bA("<string> [object]",[A,q],arguments.length);let F=C(this,rN,"f")||C(this,Uq,"f").require;return C(this,aF,"f").addDirectory(A,F,C(this,Uq,"f").getCallerFile(),q),this}count(A){return bA("<array|string>",[A],arguments.length),this[Z2]("count",A),this[GG](A),this}default(A,q,F){if(bA("<object|string|array> [*] [string]",[A,q,F],arguments.length),F)eb(A,C(this,Uq,"f")),C(this,iA,"f").defaultDescription[A]=F;if(typeof q==="function"){if(eb(A,C(this,Uq,"f")),!C(this,iA,"f").defaultDescription[A])C(this,iA,"f").defaultDescription[A]=C(this,Iq,"f").functionDescription(q);q=q.call()}return this[D7](this.default.bind(this),"default",A,q),this}defaults(A,q,F){return this.default(A,q,F)}demandCommand(A=1,q,F,g){if(bA("[number] [number|string] [string|null|undefined] [string|null|undefined]",[A,q,F,g],arguments.length),typeof q!=="number")F=q,q=1/0;return this.global("_",!1),C(this,iA,"f").demandedCommands._={min:A,max:q,minMsg:F,maxMsg:g},this}demand(A,q,F){if(Array.isArray(q))q.forEach((g)=>{yE(F,!0,C(this,Uq,"f")),this.demandOption(g,F)}),q=1/0;else if(typeof q!=="number")F=q,q=1/0;if(typeof A==="number")yE(F,!0,C(this,Uq,"f")),this.demandCommand(A,q,F,F);else if(Array.isArray(A))A.forEach((g)=>{yE(F,!0,C(this,Uq,"f")),this.demandOption(g,F)});else if(typeof F==="string")this.demandOption(A,F);else if(F===!0||typeof F>"u")this.demandOption(A);return this}demandOption(A,q){return bA("<object|string|array> [string]",[A,q],arguments.length),this[D7](this.demandOption.bind(this),"demandedOptions",A,q),this}deprecateOption(A,q){return bA("<string> [string|boolean]",[A,q],arguments.length),C(this,iA,"f").deprecatedOptions[A]=q,this}describe(A,q){return bA("<object|string|array> [string]",[A,q],arguments.length),this[Qk](A,!0),C(this,Iq,"f").describe(A,q),this}detectLocale(A){return bA("<boolean>",[A],arguments.length),uA(this,gG,A,"f"),this}env(A){if(bA("[string|boolean]",[A],arguments.length),A===!1)delete C(this,iA,"f").envPrefix;else C(this,iA,"f").envPrefix=A||"";return this}epilogue(A){return bA("<string>",[A],arguments.length),C(this,Iq,"f").epilog(A),this}epilog(A){return this.epilogue(A)}example(A,q){if(bA("<string|array> [string]",[A,q],arguments.length),Array.isArray(A))A.forEach((F)=>this.example(...F));else C(this,Iq,"f").example(A,q);return this}exit(A,q){if(uA(this,ED,!0,"f"),uA(this,$2,q,"f"),C(this,iD,"f"))C(this,Uq,"f").process.exit(A)}exitProcess(A=!0){return bA("[boolean]",[A],arguments.length),uA(this,iD,A,"f"),this}fail(A){if(bA("<function|boolean>",[A],arguments.length),typeof A==="boolean"&&A!==!1)throw new dF("Invalid first argument. Expected function or boolean 'false'");return C(this,Iq,"f").failFn(A),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(A,q){if(bA("<array> [function]",[A,q],arguments.length),!q)return new Promise((F,g)=>{C(this,Q_,"f").getCompletion(A,(E,_)=>{if(E)g(E);else F(_)})});else return C(this,Q_,"f").getCompletion(A,q)}getDemandedOptions(){return bA([],0),C(this,iA,"f").demandedOptions}getDemandedCommands(){return bA([],0),C(this,iA,"f").demandedCommands}getDeprecatedOptions(){return bA([],0),C(this,iA,"f").deprecatedOptions}getDetectLocale(){return C(this,gG,"f")}getExitProcess(){return C(this,iD,"f")}getGroups(){return Object.assign({},C(this,vK,"f"),C(this,DG,"f"))}getHelp(){if(uA(this,ED,!0,"f"),!C(this,Iq,"f").hasCachedHelpMessage()){if(!this.parsed){let q=this[AY](C(this,U2,"f"),void 0,void 0,0,!0);if(t6(q))return q.then(()=>{return C(this,Iq,"f").help()})}let A=C(this,aF,"f").runDefaultBuilderOn(this);if(t6(A))return A.then(()=>{return C(this,Iq,"f").help()})}return Promise.resolve(C(this,Iq,"f").help())}getOptions(){return C(this,iA,"f")}getStrict(){return C(this,jG,"f")}getStrictCommands(){return C(this,KG,"f")}getStrictOptions(){return C(this,$G,"f")}global(A,q){if(bA("<string|array> [boolean]",[A,q],arguments.length),A=[].concat(A),q!==!1)C(this,iA,"f").local=C(this,iA,"f").local.filter((F)=>A.indexOf(F)===-1);else A.forEach((F)=>{if(!C(this,iA,"f").local.includes(F))C(this,iA,"f").local.push(F)});return this}group(A,q){bA("<string|array> <string>",[A,q],arguments.length);let F=C(this,DG,"f")[q]||C(this,vK,"f")[q];if(C(this,DG,"f")[q])delete C(this,DG,"f")[q];let g={};return C(this,vK,"f")[q]=(F||[]).concat(A).filter((E)=>{if(g[E])return!1;return g[E]=!0}),this}hide(A){return bA("<string>",[A],arguments.length),C(this,iA,"f").hiddenOptions.push(A),this}implies(A,q){return bA("<string|object> [number|string|array]",[A,q],arguments.length),C(this,hF,"f").implies(A,q),this}locale(A){if(bA("[string]",[A],arguments.length),A===void 0)return this[$k](),C(this,Uq,"f").y18n.getLocale();return uA(this,gG,!1,"f"),C(this,Uq,"f").y18n.setLocale(A),this}middleware(A,q,F){return C(this,lD,"f").addMiddleware(A,!!q,F)}nargs(A,q){return bA("<string|object|array> [number]",[A,q],arguments.length),this[D7](this.nargs.bind(this),"narg",A,q),this}normalize(A){return bA("<array|string>",[A],arguments.length),this[Z2]("normalize",A),this}number(A){return bA("<array|string>",[A],arguments.length),this[Z2]("number",A),this[GG](A),this}option(A,q){if(bA("<string|object> [object]",[A,q],arguments.length),typeof A==="object")Object.keys(A).forEach((F)=>{this.options(F,A[F])});else{if(typeof q!=="object")q={};if(this[GG](A),C(this,yK,"f")&&(A==="version"||(q===null||q===void 0?void 0:q.alias)==="version"))this[j1A](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join(`
|
|
118
118
|
`),void 0,"versionWarning");if(C(this,iA,"f").key[A]=!0,q.alias)this.alias(A,q.alias);let F=q.deprecate||q.deprecated;if(F)this.deprecateOption(A,F);let g=q.demand||q.required||q.require;if(g)this.demand(A,g);if(q.demandOption)this.demandOption(A,typeof q.demandOption==="string"?q.demandOption:void 0);if(q.conflicts)this.conflicts(A,q.conflicts);if("default"in q)this.default(A,q.default);if(q.implies!==void 0)this.implies(A,q.implies);if(q.nargs!==void 0)this.nargs(A,q.nargs);if(q.config)this.config(A,q.configParser);if(q.normalize)this.normalize(A);if(q.choices)this.choices(A,q.choices);if(q.coerce)this.coerce(A,q.coerce);if(q.group)this.group(A,q.group);if(q.boolean||q.type==="boolean"){if(this.boolean(A),q.alias)this.boolean(q.alias)}if(q.array||q.type==="array"){if(this.array(A),q.alias)this.array(q.alias)}if(q.number||q.type==="number"){if(this.number(A),q.alias)this.number(q.alias)}if(q.string||q.type==="string"){if(this.string(A),q.alias)this.string(q.alias)}if(q.count||q.type==="count")this.count(A);if(typeof q.global==="boolean")this.global(A,q.global);if(q.defaultDescription)C(this,iA,"f").defaultDescription[A]=q.defaultDescription;if(q.skipValidation)this.skipValidation(A);let E=q.describe||q.description||q.desc,_=C(this,Iq,"f").getDescriptions();if(!Object.prototype.hasOwnProperty.call(_,A)||typeof E==="string")this.describe(A,E);if(q.hidden)this.hide(A);if(q.requiresArg)this.requiresArg(A)}return this}options(A,q){return this.option(A,q)}parse(A,q,F){if(bA("[string|array] [function|boolean|object] [function]",[A,q,F],arguments.length),this[K1A](),typeof A>"u")A=C(this,U2,"f");if(typeof q==="object")uA(this,_G,q,"f"),q=F;if(typeof q==="function")uA(this,_D,q,"f"),q=!1;if(!q)uA(this,U2,A,"f");if(C(this,_D,"f"))uA(this,iD,!1,"f");let g=this[AY](A,!!q),E=this.parsed;if(C(this,Q_,"f").setParsed(this.parsed),t6(g))return g.then((_)=>{if(C(this,_D,"f"))C(this,_D,"f").call(this,C(this,$2,"f"),_,C(this,bg,"f"));return _}).catch((_)=>{if(C(this,_D,"f"))C(this,_D,"f")(_,this.parsed.argv,C(this,bg,"f"));throw _}).finally(()=>{this[Yk](),this.parsed=E});else{if(C(this,_D,"f"))C(this,_D,"f").call(this,C(this,$2,"f"),g,C(this,bg,"f"));this[Yk](),this.parsed=E}return g}parseAsync(A,q,F){let g=this.parse(A,q,F);return!t6(g)?Promise.resolve(g):g}parseSync(A,q,F){let g=this.parse(A,q,F);if(t6(g))throw new dF(".parseSync() must not be used with asynchronous builders, handlers, or middleware");return g}parserConfiguration(A){return bA("<object>",[A],arguments.length),uA(this,fN,A,"f"),this}pkgConf(A,q){bA("<string> [string]",[A,q],arguments.length);let F=null,g=this[Uk](q||C(this,FG,"f"));if(g[A]&&typeof g[A]==="object")F=sQ(g[A],q||C(this,FG,"f"),this[UG]()["deep-merge-config"]||!1,C(this,Uq,"f")),C(this,iA,"f").configObjects=(C(this,iA,"f").configObjects||[]).concat(F);return this}positional(A,q){bA("<string> <object>",[A,q],arguments.length);let F=["default","defaultDescription","implies","normalize","choices","conflicts","coerce","type","describe","desc","description","alias"];q=j2(q,(_,D)=>{if(_==="type"&&!["string","number","boolean"].includes(D))return!1;return F.includes(_)});let g=C(this,eQ,"f").fullCommands[C(this,eQ,"f").fullCommands.length-1],E=g?C(this,aF,"f").cmdToParseOptions(g):{array:[],alias:{},default:{},demand:{}};return g7(E).forEach((_)=>{let D=E[_];if(Array.isArray(D)){if(D.indexOf(A)!==-1)q[_]=!0}else if(D[A]&&!(_ in q))q[_]=D[A]}),this.group(A,C(this,Iq,"f").getPositionalGroupName()),this.option(A,q)}recommendCommands(A=!0){return bA("[boolean]",[A],arguments.length),uA(this,nN,A,"f"),this}required(A,q,F){return this.demand(A,q,F)}require(A,q,F){return this.demand(A,q,F)}requiresArg(A){if(bA("<array|string|object> [number]",[A],arguments.length),typeof A==="string"&&C(this,iA,"f").narg[A])return this;else this[D7](this.requiresArg.bind(this),"narg",A,NaN);return this}showCompletionScript(A,q){return bA("[string] [string]",[A,q],arguments.length),A=A||this.$0,C(this,EG,"f").log(C(this,Q_,"f").generateCompletionScript(A,q||C(this,gD,"f")||"completion")),this}showHelp(A){if(bA("[string|function]",[A],arguments.length),uA(this,ED,!0,"f"),!C(this,Iq,"f").hasCachedHelpMessage()){if(!this.parsed){let F=this[AY](C(this,U2,"f"),void 0,void 0,0,!0);if(t6(F))return F.then(()=>{C(this,Iq,"f").showHelp(A)}),this}let q=C(this,aF,"f").runDefaultBuilderOn(this);if(t6(q))return q.then(()=>{C(this,Iq,"f").showHelp(A)}),this}return C(this,Iq,"f").showHelp(A),this}scriptName(A){return this.customScriptName=!0,this.$0=A,this}showHelpOnFail(A,q){return bA("[boolean|string] [string]",[A,q],arguments.length),C(this,Iq,"f").showHelpOnFail(A,q),this}showVersion(A){return bA("[string|function]",[A],arguments.length),C(this,Iq,"f").showVersion(A),this}skipValidation(A){return bA("<array|string>",[A],arguments.length),this[Z2]("skipValidation",A),this}strict(A){return bA("[boolean]",[A],arguments.length),uA(this,jG,A!==!1,"f"),this}strictCommands(A){return bA("[boolean]",[A],arguments.length),uA(this,KG,A!==!1,"f"),this}strictOptions(A){return bA("[boolean]",[A],arguments.length),uA(this,$G,A!==!1,"f"),this}string(A){return bA("<array|string>",[A],arguments.length),this[Z2]("string",A),this[GG](A),this}terminalWidth(){return bA([],0),C(this,Uq,"f").process.stdColumns}updateLocale(A){return this.updateStrings(A)}updateStrings(A){return bA("<object>",[A],arguments.length),uA(this,gG,!1,"f"),C(this,Uq,"f").y18n.updateLocale(A),this}usage(A,q,F,g){if(bA("<string|null|undefined> [string|boolean] [function|object] [function]",[A,q,F,g],arguments.length),q!==void 0)if(yE(A,null,C(this,Uq,"f")),(A||"").match(/^\$0( |$)/))return this.command(A,q,F,g);else throw new dF(".usage() description must start with $0 if being used as alias for .command()");else return C(this,Iq,"f").usage(A),this}usageConfiguration(A){return bA("<object>",[A],arguments.length),uA(this,pN,A,"f"),this}version(A,q,F){if(bA("[boolean|string] [string] [string]",[A,q,F],arguments.length),C(this,yK,"f"))this[Kk](C(this,yK,"f")),C(this,Iq,"f").version(void 0),uA(this,yK,null,"f");if(arguments.length===0)F=this[Z1A](),A="version";else if(arguments.length===1){if(A===!1)return this;F=A,A="version"}else if(arguments.length===2)F=q,q=void 0;return uA(this,yK,typeof A==="string"?A:"version","f"),q=q||C(this,Iq,"f").deferY18nLookup("Show version number"),C(this,Iq,"f").version(F||void 0),this.boolean(C(this,yK,"f")),this.describe(C(this,yK,"f"),q),this}wrap(A){return bA("<number|null|undefined>",[A],arguments.length),C(this,Iq,"f").wrap(A),this}[(aF=new WeakMap,FG=new WeakMap,eQ=new WeakMap,Q_=new WeakMap,gD=new WeakMap,mN=new WeakMap,$2=new WeakMap,gG=new WeakMap,cN=new WeakMap,iD=new WeakMap,dN=new WeakMap,lD=new WeakMap,vK=new WeakMap,ED=new WeakMap,oD=new WeakMap,aN=new WeakMap,EG=new WeakMap,bg=new WeakMap,iA=new WeakMap,rN=new WeakMap,fN=new WeakMap,_D=new WeakMap,_G=new WeakMap,_7=new WeakMap,DG=new WeakMap,U2=new WeakMap,nN=new WeakMap,Uq=new WeakMap,jG=new WeakMap,KG=new WeakMap,$G=new WeakMap,Iq=new WeakMap,pN=new WeakMap,yK=new WeakMap,hF=new WeakMap,_1A)](A){if(!A._||!A["--"])return A;A._.push.apply(A._,A["--"]);try{delete A["--"]}catch(q){}return A}[D1A](){return{log:(...A)=>{if(!this[iN]())console.log(...A);if(uA(this,ED,!0,"f"),C(this,bg,"f").length)uA(this,bg,C(this,bg,"f")+`
|
|
119
119
|
`,"f");uA(this,bg,C(this,bg,"f")+A.join(" "),"f")},error:(...A)=>{if(!this[iN]())console.error(...A);if(uA(this,ED,!0,"f"),C(this,bg,"f").length)uA(this,bg,C(this,bg,"f")+`
|
|
120
|
-
`,"f");uA(this,bg,C(this,bg,"f")+A.join(" "),"f")}}}[Kk](A){g7(C(this,iA,"f")).forEach((q)=>{if(((g)=>g==="configObjects")(q))return;let F=C(this,iA,"f")[q];if(Array.isArray(F)){if(F.includes(A))F.splice(F.indexOf(A),1)}else if(typeof F==="object")delete F[A]}),delete C(this,Iq,"f").getDescriptions()[A]}[j1A](A,q,F){if(!C(this,cN,"f")[F])C(this,Uq,"f").process.emitWarning(A,q),C(this,cN,"f")[F]=!0}[K1A](){C(this,dN,"f").push({options:C(this,iA,"f"),configObjects:C(this,iA,"f").configObjects.slice(0),exitProcess:C(this,iD,"f"),groups:C(this,vK,"f"),strict:C(this,jG,"f"),strictCommands:C(this,KG,"f"),strictOptions:C(this,$G,"f"),completionCommand:C(this,gD,"f"),output:C(this,bg,"f"),exitError:C(this,$2,"f"),hasOutput:C(this,ED,"f"),parsed:this.parsed,parseFn:C(this,_D,"f"),parseContext:C(this,_G,"f")}),C(this,Iq,"f").freeze(),C(this,hF,"f").freeze(),C(this,aF,"f").freeze(),C(this,lD,"f").freeze()}[$1A](){let A="",q;if(/\b(node|iojs|electron)(\.exe)?$/.test(C(this,Uq,"f").process.argv()[0]))q=C(this,Uq,"f").process.argv().slice(1,2);else q=C(this,Uq,"f").process.argv().slice(0,1);if(A=q.map((F)=>{let g=this[N1A](C(this,FG,"f"),F);return F.match(/^(\/|([a-zA-Z]:)?\\)/)&&g.length<F.length?g:F}).join(" ").trim(),C(this,Uq,"f").getEnv("_")&&C(this,Uq,"f").getProcessArgvBin()===C(this,Uq,"f").getEnv("_"))A=C(this,Uq,"f").getEnv("_").replace(`${C(this,Uq,"f").path.dirname(C(this,Uq,"f").process.execPath())}/`,"");return A}[UG](){return C(this,fN,"f")}[U1A](){return C(this,pN,"f")}[$k](){if(!C(this,gG,"f"))return;let A=C(this,Uq,"f").getEnv("LC_ALL")||C(this,Uq,"f").getEnv("LC_MESSAGES")||C(this,Uq,"f").getEnv("LANG")||C(this,Uq,"f").getEnv("LANGUAGE")||"en_US";this.locale(A.replace(/[.:].*/,""))}[Z1A](){return this[Uk]().version||"unknown"}[G1A](A){let q=A["--"]?A["--"]:A._;for(let F=0,g;(g=q[F])!==void 0;F++)if(C(this,Uq,"f").Parser.looksLikeNumber(g)&&Number.isSafeInteger(Math.floor(parseFloat(`${g}`))))q[F]=Number(g);return A}[Uk](A){let q=A||"*";if(C(this,_7,"f")[q])return C(this,_7,"f")[q];let F={};try{let g=A||C(this,Uq,"f").mainFilename;if(C(this,Uq,"f").path.extname(g))g=C(this,Uq,"f").path.dirname(g);let E=C(this,Uq,"f").findUp(g,(_,D)=>{if(D.includes("package.json"))return"package.json";else return});yE(E,void 0,C(this,Uq,"f")),F=JSON.parse(C(this,Uq,"f").readFileSync(E,"utf8"))}catch(g){}return C(this,_7,"f")[q]=F||{},C(this,_7,"f")[q]}[Z2](A,q){q=[].concat(q),q.forEach((F)=>{F=this[Ok](F),C(this,iA,"f")[A].push(F)})}[D7](A,q,F,g){this[Gk](A,q,F,g,(E,_,D)=>{C(this,iA,"f")[E][_]=D})}[Zk](A,q,F,g){this[Gk](A,q,F,g,(E,_,D)=>{C(this,iA,"f")[E][_]=(C(this,iA,"f")[E][_]||[]).concat(D)})}[Gk](A,q,F,g,E){if(Array.isArray(F))F.forEach((_)=>{A(_,g)});else if(((_)=>typeof _==="object")(F))for(let _ of g7(F))A(_,F[_]);else E(q,this[Ok](F),g)}[Ok](A){if(A==="__proto__")return"___proto___";return A}[Qk](A,q){return this[D7](this[Qk].bind(this),"key",A,q),this}[Yk](){var A,q,F,g,E,_,D,j,K,$,U,Z;let G=C(this,dN,"f").pop();yE(G,void 0,C(this,Uq,"f"));let O;A=this,q=this,F=this,g=this,E=this,_=this,D=this,j=this,K=this,$=this,U=this,Z=this,{options:{set value(Q){uA(A,iA,Q,"f")}}.value,configObjects:O,exitProcess:{set value(Q){uA(q,iD,Q,"f")}}.value,groups:{set value(Q){uA(F,vK,Q,"f")}}.value,output:{set value(Q){uA(g,bg,Q,"f")}}.value,exitError:{set value(Q){uA(E,$2,Q,"f")}}.value,hasOutput:{set value(Q){uA(_,ED,Q,"f")}}.value,parsed:this.parsed,strict:{set value(Q){uA(D,jG,Q,"f")}}.value,strictCommands:{set value(Q){uA(j,KG,Q,"f")}}.value,strictOptions:{set value(Q){uA(K,$G,Q,"f")}}.value,completionCommand:{set value(Q){uA($,gD,Q,"f")}}.value,parseFn:{set value(Q){uA(U,_D,Q,"f")}}.value,parseContext:{set value(Q){uA(Z,_G,Q,"f")}}.value}=G,C(this,iA,"f").configObjects=O,C(this,Iq,"f").unfreeze(),C(this,hF,"f").unfreeze(),C(this,aF,"f").unfreeze(),C(this,lD,"f").unfreeze()}[O1A](A,q){return qG(q,(F)=>{return A(F),F})}getInternalMethods(){return{getCommandInstance:this[Q1A].bind(this),getContext:this[Y1A].bind(this),getHasOutput:this[J1A].bind(this),getLoggerInstance:this[H1A].bind(this),getParseContext:this[I1A].bind(this),getParserConfiguration:this[UG].bind(this),getUsageConfiguration:this[U1A].bind(this),getUsageInstance:this[M1A].bind(this),getValidationInstance:this[X1A].bind(this),hasParseCallback:this[iN].bind(this),isGlobalContext:this[P1A].bind(this),postProcess:this[ZG].bind(this),reset:this[Jk].bind(this),runValidation:this[Hk].bind(this),runYargsParserAndExecuteCommands:this[AY].bind(this),setHasOutput:this[L1A].bind(this)}}[Q1A](){return C(this,aF,"f")}[Y1A](){return C(this,eQ,"f")}[J1A](){return C(this,ED,"f")}[H1A](){return C(this,EG,"f")}[I1A](){return C(this,_G,"f")||{}}[M1A](){return C(this,Iq,"f")}[X1A](){return C(this,hF,"f")}[iN](){return!!C(this,_D,"f")}[P1A](){return C(this,aN,"f")}[ZG](A,q,F,g){if(F)return A;if(t6(A))return A;if(!q)A=this[_1A](A);if(this[UG]()["parse-positional-numbers"]||this[UG]()["parse-positional-numbers"]===void 0)A=this[G1A](A);if(g)A=AG(A,this,C(this,lD,"f").getMiddleware(),!1);return A}[Jk](A={}){uA(this,iA,C(this,iA,"f")||{},"f");let q={};q.local=C(this,iA,"f").local||[],q.configObjects=C(this,iA,"f").configObjects||[];let F={};q.local.forEach((_)=>{F[_]=!0,(A[_]||[]).forEach((D)=>{F[D]=!0})}),Object.assign(C(this,DG,"f"),Object.keys(C(this,vK,"f")).reduce((_,D)=>{let j=C(this,vK,"f")[D].filter((K)=>!(K in F));if(j.length>0)_[D]=j;return _},{})),uA(this,vK,{},"f");let g=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],E=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];if(g.forEach((_)=>{q[_]=(C(this,iA,"f")[_]||[]).filter((D)=>!F[D])}),E.forEach((_)=>{q[_]=j2(C(this,iA,"f")[_],(D)=>!F[D])}),q.envPrefix=C(this,iA,"f").envPrefix,uA(this,iA,q,"f"),uA(this,Iq,C(this,Iq,"f")?C(this,Iq,"f").reset(F):p2A(this,C(this,Uq,"f")),"f"),uA(this,hF,C(this,hF,"f")?C(this,hF,"f").reset(F):F1A(this,C(this,Iq,"f"),C(this,Uq,"f")),"f"),uA(this,aF,C(this,aF,"f")?C(this,aF,"f").reset():r2A(C(this,Iq,"f"),C(this,hF,"f"),C(this,lD,"f"),C(this,Uq,"f")),"f"),!C(this,Q_,"f"))uA(this,Q_,s2A(this,C(this,Iq,"f"),C(this,aF,"f"),C(this,Uq,"f")),"f");return C(this,lD,"f").reset(),uA(this,gD,null,"f"),uA(this,bg,"","f"),uA(this,$2,null,"f"),uA(this,ED,!1,"f"),this.parsed=!1,this}[N1A](A,q){return C(this,Uq,"f").path.relative(A,q)}[AY](A,q,F,g=0,E=!1){var _,D,j,K;let $=!!F||E;A=A||C(this,U2,"f"),C(this,iA,"f").__=C(this,Uq,"f").y18n.__,C(this,iA,"f").configuration=this[UG]();let U=!!C(this,iA,"f").configuration["populate--"],Z=Object.assign({},C(this,iA,"f").configuration,{"populate--":!0}),G=C(this,Uq,"f").Parser.detailed(A,Object.assign({},C(this,iA,"f"),{configuration:{"parse-positional-numbers":!1,...Z}})),O=Object.assign(G.argv,C(this,_G,"f")),Q=void 0,Y=G.aliases,J=!1,I=!1;if(Object.keys(O).forEach((X)=>{if(X===C(this,oD,"f")&&O[X])J=!0;else if(X===C(this,yK,"f")&&O[X])I=!0}),O.$0=this.$0,this.parsed=G,g===0)C(this,Iq,"f").clearCachedHelpMessage();try{if(this[$k](),q)return this[ZG](O,U,!!F,!1);if(C(this,oD,"f")){if([C(this,oD,"f")].concat(Y[C(this,oD,"f")]||[]).filter((V)=>V.length>1).includes(""+O._[O._.length-1]))O._.pop(),J=!0}uA(this,aN,!1,"f");let X=C(this,aF,"f").getCommands(),L=((_=C(this,Q_,"f"))===null||_===void 0?void 0:_.completionKey)?[(D=C(this,Q_,"f"))===null||D===void 0?void 0:D.completionKey,...(K=this.getAliases()[(j=C(this,Q_,"f"))===null||j===void 0?void 0:j.completionKey])!==null&&K!==void 0?K:[]].some((T)=>Object.prototype.hasOwnProperty.call(O,T)):!1,M=J||L||E;if(O._.length){if(X.length){let T;for(let V=g||0,N;O._[V]!==void 0;V++)if(N=String(O._[V]),X.includes(N)&&N!==C(this,gD,"f")){let B=C(this,aF,"f").runCommand(N,this,G,V+1,E,J||I||E);return this[ZG](B,U,!!F,!1)}else if(!T&&N!==C(this,gD,"f")){T=N;break}if(!C(this,aF,"f").hasDefaultCommand()&&C(this,nN,"f")&&T&&!M)C(this,hF,"f").recommendCommands(T,X)}if(C(this,gD,"f")&&O._.includes(C(this,gD,"f"))&&!L){if(C(this,iD,"f"))K2(!0);this.showCompletionScript(),this.exit(0)}}if(C(this,aF,"f").hasDefaultCommand()&&!M){let T=C(this,aF,"f").runCommand(null,this,G,0,E,J||I||E);return this[ZG](T,U,!!F,!1)}if(L){if(C(this,iD,"f"))K2(!0);A=[].concat(A);let T=A.slice(A.indexOf(`--${C(this,Q_,"f").completionKey}`)+1);return C(this,Q_,"f").getCompletion(T,(V,N)=>{if(V)throw new dF(V.message);(N||[]).forEach((B)=>{C(this,EG,"f").log(B)}),this.exit(0)}),this[ZG](O,!U,!!F,!1)}if(!C(this,ED,"f")){if(J){if(C(this,iD,"f"))K2(!0);$=!0,this.showHelp((T)=>{C(this,EG,"f").log(T),this.exit(0)})}else if(I){if(C(this,iD,"f"))K2(!0);$=!0,C(this,Iq,"f").showVersion("log"),this.exit(0)}}if(!$&&C(this,iA,"f").skipValidation.length>0)$=Object.keys(O).some((T)=>C(this,iA,"f").skipValidation.indexOf(T)>=0&&O[T]===!0);if(!$){if(G.error)throw new dF(G.error.message);if(!L){let T=this[Hk](Y,{},G.error);if(!F)Q=AG(O,this,C(this,lD,"f").getMiddleware(),!0);if(Q=this[O1A](T,Q!==null&&Q!==void 0?Q:O),t6(Q)&&!F)Q=Q.then(()=>{return AG(O,this,C(this,lD,"f").getMiddleware(),!1)})}}}catch(X){if(X instanceof dF)C(this,Iq,"f").fail(X.message,X);else throw X}return this[ZG](Q!==null&&Q!==void 0?Q:O,U,!!F,!0)}[Hk](A,q,F,g){let E={...this.getDemandedOptions()};return(_)=>{if(F)throw new dF(F.message);C(this,hF,"f").nonOptionCount(_),C(this,hF,"f").requiredArguments(_,E);let D=!1;if(C(this,KG,"f"))D=C(this,hF,"f").unknownCommands(_);if(C(this,jG,"f")&&!D)C(this,hF,"f").unknownArguments(_,A,q,!!g);else if(C(this,$G,"f"))C(this,hF,"f").unknownArguments(_,A,{},!1,!1);C(this,hF,"f").limitedChoices(_),C(this,hF,"f").implications(_),C(this,hF,"f").conflicting(_)}}[L1A](){uA(this,ED,!0,"f")}[GG](A){if(typeof A==="string")C(this,iA,"f").key[A]=!0;else for(let q of A)C(this,iA,"f").key[q]=!0}}});var _nA,W1A;var B1A=W(()=>{sb();Ek();_nA=V1A(tb),W1A=_nA});var R1A=W(()=>{jk();fb();sb()});var qY="0.0.1-beta.82";var Ik=()=>{};function R6(A,q){if(typeof process<"u"&&process.env)return process.env[A]??q;if(typeof Deno<"u")return Deno.env.get(A)??q;if(typeof Bun<"u")return Bun.env[A]??q;return q}function S1A(){if(R6("FORCE_COLOR")!==void 0)switch(R6("FORCE_COLOR")){case"":case"1":case"true":return kg;case"2":return mK;case"3":return DD;default:return gY}if(R6("NODE_DISABLE_COLORS")!==void 0&&R6("NODE_DISABLE_COLORS")!==""||R6("NO_COLOR")!==void 0&&R6("NO_COLOR")!==""||R6("TERM")==="dumb")return gY;if(R6("TMUX"))return DD;if("TF_BUILD"in Y_&&"AGENT_NAME"in Y_)return kg;if("CI"in Y_){for(let{0:A,1:q}of $nA)if(A in Y_)return q;if(R6("CI_NAME")==="codeship")return mK;return gY}if("TEAMCITY_VERSION"in Y_)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.exec(R6("TEAMCITY_VERSION"))!==null?kg:gY;switch(R6("TERM_PROGRAM")){case"iTerm.app":if(!R6("TERM_PROGRAM_VERSION")||/^[0-2]\./.exec(R6("TERM_PROGRAM_VERSION"))!==null)return mK;return DD;case"HyperTerm":case"MacTerm":return DD;case"Apple_Terminal":return mK}if(R6("COLORTERM")==="truecolor"||R6("COLORTERM")==="24bit")return DD;if(R6("TERM")){if(/truecolor/.exec(R6("TERM"))!==null)return DD;if(/^xterm-256/.exec(R6("TERM"))!==null)return mK;let A=R6("TERM").toLowerCase();if(w1A[A])return w1A[A];if(UnA.some((q)=>q.exec(A)!==null))return kg}if(R6("COLORTERM"))return kg;return gY}function C1A(A,q){return oN.indexOf(q)>=oN.indexOf(A)}var lN,FY=(A)=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(A?lN:globalThis),Y_,jnA,KnA,gY=1,kg=4,mK=8,DD=24,w1A,$nA,UnA,aj,oN,ZnA,GnA=(A,q,F)=>{let g=new Date().toISOString();if(F)return`${aj.dim}${g}${aj.reset} ${ZnA[A]}${A.toUpperCase()}${aj.reset} ${aj.bright}[Better Auth]:${aj.reset} ${q}`;return`${g} ${A.toUpperCase()} [Better Auth]: ${q}`},z1A=(A)=>{let q=A?.disabled!==!0,F=A?.level??"error",g=A?.disableColors!==void 0?!A.disableColors:S1A()!==1,E=(_,D,j=[])=>{if(!q||!C1A(F,_))return;let K=GnA(_,D,g);if(!A||typeof A.log!=="function"){if(_==="error")console.error(K,...j);else if(_==="warn")console.warn(K,...j);else console.log(K,...j);return}A.log(_==="success"?"info":_,D,...j)};return{...Object.fromEntries(oN.map((_)=>[_,(...[D,...j])=>E(_,D,j)])),get level(){return F}}},x1A;var EY=W(()=>{lN=Object.create(null),Y_=new Proxy(lN,{get(A,q){return FY()[q]??lN[q]},has(A,q){return q in FY()||q in lN},set(A,q,F){let g=FY(!0);return g[q]=F,!0},deleteProperty(A,q){if(!q)return!1;let F=FY(!0);return delete F[q],!0},ownKeys(){let A=FY(!0);return Object.keys(A)}}),jnA=typeof process<"u"&&process.env&&"development"||"";KnA=Object.freeze({get BETTER_AUTH_SECRET(){return R6("BETTER_AUTH_SECRET")},get AUTH_SECRET(){return R6("AUTH_SECRET")},get BETTER_AUTH_TELEMETRY(){return R6("BETTER_AUTH_TELEMETRY")},get BETTER_AUTH_TELEMETRY_ID(){return R6("BETTER_AUTH_TELEMETRY_ID")},get NODE_ENV(){return R6("NODE_ENV","development")},get PACKAGE_VERSION(){return R6("PACKAGE_VERSION","0.0.0")},get BETTER_AUTH_TELEMETRY_ENDPOINT(){return R6("BETTER_AUTH_TELEMETRY_ENDPOINT","https://telemetry.better-auth.com/v1/track")}}),w1A={eterm:kg,cons25:kg,console:kg,cygwin:kg,dtterm:kg,gnome:kg,hurd:kg,jfbterm:kg,konsole:kg,kterm:kg,mlterm:kg,mosh:DD,putty:kg,st:kg,"rxvt-unicode-24bit":DD,terminator:DD,"xterm-kitty":DD},$nA=new Map(Object.entries({APPVEYOR:mK,BUILDKITE:mK,CIRCLECI:DD,DRONE:mK,GITEA_ACTIONS:DD,GITHUB_ACTIONS:DD,GITLAB_CI:mK,TRAVIS:mK})),UnA=[/ansi/,/color/,/linux/,/direct/,/^con[0-9]*x[0-9]/,/^rxvt/,/^screen/,/^xterm/,/^vt100/,/^vt220/];aj={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",undim:"\x1B[22m",underscore:"\x1B[4m",blink:"\x1B[5m",reverse:"\x1B[7m",hidden:"\x1B[8m",fg:{black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m"},bg:{black:"\x1B[40m",red:"\x1B[41m",green:"\x1B[42m",yellow:"\x1B[43m",blue:"\x1B[44m",magenta:"\x1B[45m",cyan:"\x1B[46m",white:"\x1B[47m"}},oN=["debug","info","success","warn","error"];ZnA={info:aj.fg.blue,success:aj.fg.green,warn:aj.fg.yellow,error:aj.fg.red,debug:aj.fg.magenta},x1A=z1A()});var h1A=W(()=>{EY()});var b1A=()=>{};function Mk(A){return A}function Xk(A){return A.charAt(0).toUpperCase()+A.slice(1)}var tN=W(()=>{EY();b1A()});var OnA,I$;var k1A=W(()=>{tN();OnA=Mk({USER_NOT_FOUND:"User not found",FAILED_TO_CREATE_USER:"Failed to create user",FAILED_TO_CREATE_SESSION:"Failed to create session",FAILED_TO_UPDATE_USER:"Failed to update user",FAILED_TO_GET_SESSION:"Failed to get session",INVALID_PASSWORD:"Invalid password",INVALID_EMAIL:"Invalid email",INVALID_EMAIL_OR_PASSWORD:"Invalid email or password",SOCIAL_ACCOUNT_ALREADY_LINKED:"Social account already linked",PROVIDER_NOT_FOUND:"Provider not found",INVALID_TOKEN:"Invalid token",ID_TOKEN_NOT_SUPPORTED:"id_token not supported",FAILED_TO_GET_USER_INFO:"Failed to get user info",USER_EMAIL_NOT_FOUND:"User email not found",EMAIL_NOT_VERIFIED:"Email not verified",PASSWORD_TOO_SHORT:"Password too short",PASSWORD_TOO_LONG:"Password too long",USER_ALREADY_EXISTS:"User already exists.",USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL:"User already exists. Use another email.",EMAIL_CAN_NOT_BE_UPDATED:"Email can not be updated",CREDENTIAL_ACCOUNT_NOT_FOUND:"Credential account not found",SESSION_EXPIRED:"Session expired. Re-authenticate to perform this action.",FAILED_TO_UNLINK_LAST_ACCOUNT:"You can't unlink your last account",ACCOUNT_NOT_FOUND:"Account not found",USER_ALREADY_HAS_PASSWORD:"User already has a password. Provide that to delete the account."}),I$=class extends Error{constructor(A,q){super(A);this.name="BetterAuthError",this.message=A,this.cause=q,this.stack=""}}});var Pk=W(()=>{EY();tN();k1A()});function QnA(A){try{return(new URL(A).pathname.replace(/\/+$/,"")||"/")!=="/"}catch(q){throw new I$(`Invalid base URL: ${A}. Please provide a valid base URL.`)}}function YnA(A){try{let q=new URL(A);if(q.protocol!=="http:"&&q.protocol!=="https:")throw new I$(`Invalid base URL: ${A}. URL must include 'http://' or 'https://'`)}catch(q){if(q instanceof I$)throw q;throw new I$(`Invalid base URL: ${A}. Please provide a valid base URL.`,String(q))}}function _Y(A,q="/api/auth"){if(YnA(A),QnA(A))return A;let F=A.replace(/\/+$/,"");if(!q||q==="/")return F;return q=q.startsWith("/")?q:`/${q}`,`${F}${q}`}function u1A(A,q,F,g,E){if(A)return _Y(A,q);if(g!==!1){let j=Y_.BETTER_AUTH_URL||Y_.NEXT_PUBLIC_BETTER_AUTH_URL||Y_.PUBLIC_BETTER_AUTH_URL||Y_.NUXT_PUBLIC_BETTER_AUTH_URL||Y_.NUXT_PUBLIC_AUTH_URL||(Y_.BASE_URL!=="/"?Y_.BASE_URL:void 0);if(j)return _Y(j,q)}let _=F?.headers.get("x-forwarded-host"),D=F?.headers.get("x-forwarded-proto");if(_&&D&&E)return _Y(`${D}://${_}`,q);if(F){let j=JnA(F.url);if(!j)throw new I$("Could not get origin from request. Please provide a valid base URL.");return _Y(j,q)}if(typeof window<"u"&&window.location)return _Y(window.location.origin,q)}function JnA(A){try{let q=new URL(A);return q.origin==="null"?null:q.origin}catch(q){return null}}var sN=W(()=>{h1A();Pk()});function XnA(A){return A instanceof Date&&!isNaN(A.getTime())}function PnA(A){let q=MnA.exec(A);if(!q)return null;let[,F,g,E,_,D,j,K,$,U,Z]=q,G=new Date(Date.UTC(parseInt(F,10),parseInt(g,10)-1,parseInt(E,10),parseInt(_,10),parseInt(D,10),parseInt(j,10),K?parseInt(K.padEnd(3,"0"),10):0));if($){let O=(parseInt(U,10)*60+parseInt(Z,10))*($==="+"?-1:1);G.setUTCMinutes(G.getUTCMinutes()+O)}return XnA(G)?G:null}function NnA(A,q={}){let{strict:F=!1,warnings:g=!1,reviver:E,parseDates:_=!0}=q;if(typeof A!=="string")return A;let D=A.trim();if(D.length>0&&D[0]==='"'&&D.endsWith('"')&&!D.slice(1,-1).includes('"'))return D.slice(1,-1);let j=D.toLowerCase();if(j.length<=9&&j in v1A)return v1A[j];if(!InA.test(D)){if(F)throw SyntaxError("[better-json] Invalid JSON");return A}if(Object.entries(HnA).some(([K,$])=>{let U=$.test(D);if(U&&g)console.warn(`[better-json] Detected potential prototype pollution attempt using ${K} pattern`);return U})&&F)throw Error("[better-json] Potential prototype pollution attempt detected");try{return JSON.parse(D,($,U)=>{if($==="__proto__"||$==="constructor"&&U&&typeof U==="object"&&"prototype"in U){if(g)console.warn(`[better-json] Dropping "${$}" key to prevent prototype pollution`);return}if(_&&typeof U==="string"){let Z=PnA(U);if(Z)return Z}return E?E($,U):U})}catch(K){if(F)throw K;return A}}function y1A(A,q={strict:!0}){return NnA(A,q)}var HnA,InA,v1A,MnA;var eN=W(()=>{HnA={proto:/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,constructor:/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,protoShort:/"__proto__"\s*:/,constructorShort:/"constructor"\s*:/},InA=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/,v1A={true:!0,false:!1,null:null,undefined:void 0,nan:NaN,infinity:Number.POSITIVE_INFINITY,"-infinity":Number.NEGATIVE_INFINITY},MnA=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,7}))?(?:Z|([+-])(\d{2}):(\d{2}))$/});var DY;var Nk=W(()=>{DY=Symbol("clean")});var rj,G2=0,AL=4,LnA=0,M$=(A)=>{let q=[],F={get(){if(!F.lc)F.listen(()=>{})();return F.value},lc:0,listen(g){return F.lc=q.push(g),()=>{for(let _=G2+AL;_<rj.length;)if(rj[_]===g)rj.splice(_,AL);else _+=AL;let E=q.indexOf(g);if(~E){if(q.splice(E,1),!--F.lc)F.off()}}},notify(g,E){LnA++;let _=!rj.length;for(let D of q)rj.push(D,F.value,g,E);if(_){for(G2=0;G2<rj.length;G2+=AL)rj[G2](rj[G2+1],rj[G2+2],rj[G2+3]);rj.length=0}},off(){},set(g){let E=F.value;if(E!==g)F.value=g,F.notify(E)},subscribe(g){let E=F.listen(g);return g(F.value),E},value:A};return F[DY]=()=>{q=[],F.lc=0,F.off()},F};var m1A=W(()=>{Nk();rj=[]});var VnA=5,j7=6,qL=10,TnA=(A,q,F,g)=>{if(A.events=A.events||{},!A.events[F+qL])A.events[F+qL]=g((E)=>{A.events[F].reduceRight((_,D)=>(D(_),_),{shared:{},...E})});return A.events[F]=A.events[F]||[],A.events[F].push(q),()=>{let E=A.events[F],_=E.indexOf(q);if(E.splice(_,1),!E.length)delete A.events[F],A.events[F+qL](),delete A.events[F+qL]}},c1A=1000,FL=(A,q)=>{return TnA(A,(g)=>{let E=q(g);if(E)A.events[j7].push(E)},VnA,(g)=>{let E=A.listen;A.listen=(...D)=>{if(!A.lc&&!A.active)A.active=!0,g();return E(...D)};let _=A.off;A.events[j7]=[],A.off=()=>{_(),setTimeout(()=>{if(A.active&&!A.lc){A.active=!1;for(let D of A.events[j7])D();A.events[j7]=[]}},c1A)};{let D=A[DY];A[DY]=()=>{for(let j of A.events[j7])j();A.events[j7]=[],A.active=!1,D()}}return()=>{A.listen=E,A.off=_}})};var d1A=W(()=>{Nk()});var Lk=W(()=>{m1A();d1A()});function hnA(A){if(typeof A==="number")return new f1A({type:"linear",attempts:A,delay:1000});switch(A.type){case"linear":return new f1A(A);case"exponential":return new xnA(A);default:throw Error("Invalid retry strategy")}}function unA(A){let q=A.headers.get("content-type"),F=new Set(["image/svg","application/xml","application/xhtml","application/html"]);if(!q)return"json";let g=q.split(";").shift()||"";if(knA.test(g))return"json";if(F.has(g)||g.startsWith("text/"))return"text";return"blob"}function vnA(A){try{return JSON.parse(A),!0}catch(q){return!1}}function i1A(A){if(A===void 0)return!1;let q=typeof A;if(q==="string"||q==="number"||q==="boolean"||q===null)return!0;if(q!=="object")return!1;if(Array.isArray(A))return!0;if(A.buffer)return!1;return A.constructor&&A.constructor.name==="Object"||typeof A.toJSON==="function"}function n1A(A){try{return JSON.parse(A)}catch(q){return A}}function p1A(A){return typeof A==="function"}function ynA(A){if(A==null?void 0:A.customFetchImpl)return A.customFetchImpl;if(typeof globalThis<"u"&&p1A(globalThis.fetch))return globalThis.fetch;if(typeof window<"u"&&p1A(window.fetch))return window.fetch;throw Error("No fetch implementation found")}async function mnA(A){let q=new Headers(A==null?void 0:A.headers),F=await bnA(A);for(let[g,E]of Object.entries(F||{}))q.set(g,E);if(!q.has("content-type")){let g=cnA(A==null?void 0:A.body);if(g)q.set("content-type",g)}return q}function cnA(A){if(i1A(A))return"application/json";return null}function dnA(A){if(!(A==null?void 0:A.body))return null;let q=new Headers(A==null?void 0:A.headers);if(i1A(A.body)&&!q.has("content-type")){for(let[F,g]of Object.entries(A==null?void 0:A.body))if(g instanceof Date)A.body[F]=g.toISOString();return JSON.stringify(A.body)}return A.body}function anA(A,q){var F;if(q==null?void 0:q.method)return q.method.toUpperCase();if(A.startsWith("@")){let g=(F=A.split("@")[1])==null?void 0:F.split("/")[0];if(!l1A.includes(g))return(q==null?void 0:q.body)?"POST":"GET";return g.toUpperCase()}return(q==null?void 0:q.body)?"POST":"GET"}function rnA(A,q){let F;if(!(A==null?void 0:A.signal)&&(A==null?void 0:A.timeout))F=setTimeout(()=>q==null?void 0:q.abort(),A==null?void 0:A.timeout);return{abortTimeout:F,clearTimeout:()=>{if(F)clearTimeout(F)}}}async function gL(A,q){let F=await A["~standard"].validate(q);if(F.issues)throw new fnA(F.issues);return F.value}function pnA(A,q){let{baseURL:F,params:g,query:E}=q||{query:{},params:{},baseURL:""},_=A.startsWith("http")?A.split("/").slice(0,3).join("/"):F||"";if(A.startsWith("@")){let Z=A.toString().split("@")[1].split("/")[0];if(l1A.includes(Z))A=A.replace(`@${Z}/`,"/")}if(!_.endsWith("/"))_+="/";let[D,j]=A.replace(_,"").split("?"),K=new URLSearchParams(j);for(let[Z,G]of Object.entries(E||{})){if(G==null)continue;K.set(Z,String(G))}if(g)if(Array.isArray(g)){let Z=D.split("/").filter((G)=>G.startsWith(":"));for(let[G,O]of Z.entries()){let Q=g[G];D=D.replace(O,Q)}}else for(let[Z,G]of Object.entries(g))D=D.replace(`:${Z}`,String(G));if(D=D.split("/").map(encodeURIComponent).join("/"),D.startsWith("/"))D=D.slice(1);let $=K.toString();if($=$.length>0?`?${$}`.replace(/\+/g,"%20"):"",!_.startsWith("http"))return`${_}${D}${$}`;return new URL(`${D}${$}`,_)}var WnA,BnA,RnA,a1A,wnA,SnA,r1A=(A,q,F)=>(q in A)?WnA(A,q,{enumerable:!0,configurable:!0,writable:!0,value:F}):A[q]=F,fj=(A,q)=>{for(var F in q||(q={}))if(wnA.call(q,F))r1A(A,F,q[F]);if(a1A){for(var F of a1A(q))if(SnA.call(q,F))r1A(A,F,q[F])}return A},cK=(A,q)=>BnA(A,RnA(q)),CnA,znA=async(A,q)=>{var F,g,E,_,D,j;let K=q||{},$={onRequest:[q==null?void 0:q.onRequest],onResponse:[q==null?void 0:q.onResponse],onSuccess:[q==null?void 0:q.onSuccess],onError:[q==null?void 0:q.onError],onRetry:[q==null?void 0:q.onRetry]};if(!q||!(q==null?void 0:q.plugins))return{url:A,options:K,hooks:$};for(let U of(q==null?void 0:q.plugins)||[]){if(U.init){let Z=await((F=U.init)==null?void 0:F.call(U,A.toString(),q));K=Z.options||K,A=Z.url}$.onRequest.push((g=U.hooks)==null?void 0:g.onRequest),$.onResponse.push((E=U.hooks)==null?void 0:E.onResponse),$.onSuccess.push((_=U.hooks)==null?void 0:_.onSuccess),$.onError.push((D=U.hooks)==null?void 0:D.onError),$.onRetry.push((j=U.hooks)==null?void 0:j.onRetry)}return{url:A,options:K,hooks:$}},f1A=class{constructor(A){this.options=A}shouldAttemptRetry(A,q){if(this.options.shouldRetry)return Promise.resolve(A<this.options.attempts&&this.options.shouldRetry(q));return Promise.resolve(A<this.options.attempts)}getDelay(){return this.options.delay}},xnA=class{constructor(A){this.options=A}shouldAttemptRetry(A,q){if(this.options.shouldRetry)return Promise.resolve(A<this.options.attempts&&this.options.shouldRetry(q));return Promise.resolve(A<this.options.attempts)}getDelay(A){return Math.min(this.options.maxDelay,this.options.baseDelay*2**A)}},bnA=async(A)=>{let q={},F=async(g)=>typeof g==="function"?await g():g;if(A==null?void 0:A.auth){if(A.auth.type==="Bearer"){let g=await F(A.auth.token);if(!g)return q;q.authorization=`Bearer ${g}`}else if(A.auth.type==="Basic"){let g=F(A.auth.username),E=F(A.auth.password);if(!g||!E)return q;q.authorization=`Basic ${btoa(`${g}:${E}`)}`}else if(A.auth.type==="Custom"){let g=F(A.auth.value);if(!g)return q;q.authorization=`${F(A.auth.prefix)} ${g}`}}return q},knA,fnA,l1A,nnA=(A)=>({id:"apply-schema",name:"Apply Schema",version:"1.0.0",async init(q,F){var g,E,_,D;let j=((E=(g=A.plugins)==null?void 0:g.find((K)=>{var $;return(($=K.schema)==null?void 0:$.config)?q.startsWith(K.schema.config.baseURL||"")||q.startsWith(K.schema.config.prefix||""):!1}))==null?void 0:E.schema)||A.schema;if(j){let K=q;if((_=j.config)==null?void 0:_.prefix){if(K.startsWith(j.config.prefix)){if(K=K.replace(j.config.prefix,""),j.config.baseURL)q=q.replace(j.config.prefix,j.config.baseURL)}}if((D=j.config)==null?void 0:D.baseURL){if(K.startsWith(j.config.baseURL))K=K.replace(j.config.baseURL,"")}let $=j.schema[K];if($){let U=cK(fj({},F),{method:$.method,output:$.output});if(!(F==null?void 0:F.disableValidation))U=cK(fj({},U),{body:$.input?await gL($.input,F==null?void 0:F.body):F==null?void 0:F.body,params:$.params?await gL($.params,F==null?void 0:F.params):F==null?void 0:F.params,query:$.query?await gL($.query,F==null?void 0:F.query):F==null?void 0:F.query});return{url:q,options:U}}}return{url:q,options:F}}}),o1A=(A)=>{async function q(F,g){let E=cK(fj(fj({},A),g),{plugins:[...(A==null?void 0:A.plugins)||[],nnA(A||{})]});if(A==null?void 0:A.catchAllError)try{return await Vk(F,E)}catch(_){return{data:null,error:{status:500,statusText:"Fetch Error",message:"Fetch related error. Captured by catchAllError option. See error property for more details.",error:_}}}return await Vk(F,E)}return q},Vk=async(A,q)=>{var F,g,E,_,D,j,K,$;let{hooks:U,url:Z,options:G}=await znA(A,q),O=ynA(G),Q=new AbortController,Y=(F=G.signal)!=null?F:Q.signal,J=pnA(Z,G),I=dnA(G),X=await mnA(G),L=anA(Z,G),M=cK(fj({},G),{url:J,headers:X,body:I,method:L,signal:Y});for(let h of U.onRequest)if(h){let c=await h(M);if(c instanceof Object)M=c}if("pipeTo"in M&&typeof M.pipeTo==="function"||typeof((g=q==null?void 0:q.body)==null?void 0:g.pipe)==="function"){if(!("duplex"in M))M.duplex="half"}let{clearTimeout:T}=rnA(G,Q),V=await O(M.url,M);T();let N={response:V,request:M};for(let h of U.onResponse)if(h){let c=await h(cK(fj({},N),{response:((E=q==null?void 0:q.hookOptions)==null?void 0:E.cloneResponse)?V.clone():V}));if(c instanceof Response)V=c;else if(c instanceof Object)V=c.response}if(V.ok){if(M.method==="HEAD")return{data:"",error:null};let c=unA(V),e={data:"",response:V,request:M};if(c==="json"||c==="text"){let AA=await V.text(),IA=await((_=M.jsonParser)!=null?_:n1A)(AA);e.data=IA}else e.data=await V[c]();if(M==null?void 0:M.output){if(M.output&&!M.disableValidation)e.data=await gL(M.output,e.data)}for(let AA of U.onSuccess)if(AA)await AA(cK(fj({},e),{response:((D=q==null?void 0:q.hookOptions)==null?void 0:D.cloneResponse)?V.clone():V}));if(q==null?void 0:q.throw)return e.data;return{data:e.data,error:null}}let B=(j=q==null?void 0:q.jsonParser)!=null?j:n1A,z=await V.text(),x=vnA(z),S=x?await B(z):null,b={response:V,responseText:z,request:M,error:cK(fj({},S),{status:V.status,statusText:V.statusText})};for(let h of U.onError)if(h)await h(cK(fj({},b),{response:((K=q==null?void 0:q.hookOptions)==null?void 0:K.cloneResponse)?V.clone():V}));if(q==null?void 0:q.retry){let h=hnA(q.retry),c=($=q.retryAttempt)!=null?$:0;if(await h.shouldAttemptRetry(c,V)){for(let AA of U.onRetry)if(AA)await AA(N);let e=h.getDelay(c);return await new Promise((AA)=>setTimeout(AA,e)),await Vk(A,cK(fj({},q),{retryAttempt:c+1}))}}if(q==null?void 0:q.throw)throw new CnA(V.status,V.statusText,x?S:z);return{data:null,error:cK(fj({},S),{status:V.status,statusText:V.statusText})}};var t1A=W(()=>{WnA=Object.defineProperty,BnA=Object.defineProperties,RnA=Object.getOwnPropertyDescriptors,a1A=Object.getOwnPropertySymbols,wnA=Object.prototype.hasOwnProperty,SnA=Object.prototype.propertyIsEnumerable,CnA=class extends Error{constructor(A,q,F){super(q||A.toString(),{cause:F});this.status=A,this.statusText=q,this.error=F}};knA=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;fnA=class A extends Error{constructor(q,F){super(F||JSON.stringify(q,null,2));this.issues=q,Object.setPrototypeOf(this,A.prototype)}};l1A=["get","post","put","patch","delete"]});function _L(A="better-auth.message"){if(!globalThis[EL])globalThis[EL]=new lnA(A);return globalThis[EL]}function s1A(){if(!globalThis[DL])globalThis[DL]=new onA;return globalThis[DL]}function Tk(){if(!globalThis[jL])globalThis[jL]=new tnA;return globalThis[jL]}function e1A(A){let{sessionAtom:q,sessionSignal:F,$fetch:g,options:E={}}=A,_=E.sessionOptions?.refetchInterval??0,D=E.sessionOptions?.refetchOnWindowFocus??!0,j=E.sessionOptions?.refetchWhenOffline??!1,K={lastSync:0,lastSessionRequest:0,cachedSession:void 0},$=()=>{return j||Tk().isOnline},U=(X)=>{if(!$())return;if(X?.event==="storage"){K.lastSync=K7(),F.set(!F.get());return}let L=q.get();if(X?.event==="poll"){K.lastSessionRequest=K7(),g("/get-session").then((M)=>{q.set({...L,data:M.data,error:M.error||null}),K.lastSync=K7(),F.set(!F.get())}).catch(()=>{});return}if(X?.event==="visibilitychange"){if(K7()-K.lastSessionRequest<enA&&L?.data!==null&&L?.data!==void 0)return}if(L?.data===null||L?.data===void 0||X?.event==="visibilitychange"){if(X?.event==="visibilitychange")K.lastSessionRequest=K7();K.lastSync=K7(),F.set(!F.get())}},Z=(X)=>{_L().post({event:"session",data:{trigger:X},clientId:Math.random().toString(36).substring(7)})},G=()=>{if(_&&_>0)K.pollInterval=setInterval(()=>{if(q.get()?.data)U({event:"poll"})},_*1000)},O=()=>{K.unsubscribeBroadcast=_L().subscribe(()=>{U({event:"storage"})})},Q=()=>{if(!D)return;K.unsubscribeFocus=s1A().subscribe(()=>{U({event:"visibilitychange"})})},Y=()=>{K.unsubscribeOnline=Tk().subscribe((X)=>{if(X)U({event:"visibilitychange"})})};return{init:()=>{G(),O(),Q(),Y(),_L().setup(),s1A().setup(),Tk().setup()},cleanup:()=>{if(K.pollInterval)clearInterval(K.pollInterval),K.pollInterval=void 0;if(K.unsubscribeBroadcast)K.unsubscribeBroadcast(),K.unsubscribeBroadcast=void 0;if(K.unsubscribeFocus)K.unsubscribeFocus(),K.unsubscribeFocus=void 0;if(K.unsubscribeOnline)K.unsubscribeOnline(),K.unsubscribeOnline=void 0;K.lastSync=0,K.lastSessionRequest=0,K.cachedSession=void 0},triggerRefetch:U,broadcastSessionUpdate:Z}}function qpA(A,q){let F=M$(!1),g=OG(F,"/get-session",A,{method:"GET"});return FL(g,()=>{let E=e1A({sessionAtom:g,sessionSignal:F,$fetch:A,options:q});return E.init(),()=>{E.cleanup()}}),{session:g,$sessionSignal:F}}function FpA(A){return typeof A==="object"&&A!==null&&"get"in A&&typeof A.get==="function"&&"lc"in A&&typeof A.lc==="number"}function gpA(A,q,F){let g=q[A],{fetchOptions:E,query:_,...D}=F||{};if(g)return g;if(E?.method)return E.method;if(D&&Object.keys(D).length>0)return"POST";return"GET"}function qZA(A,q,F,g,E){function _(D=[]){return new Proxy(function(){},{get(j,K){if(typeof K!=="string")return;if(K==="then"||K==="catch"||K==="finally")return;let $=[...D,K],U=A;for(let Z of $)if(U&&typeof U==="object"&&Z in U)U=U[Z];else{U=void 0;break}if(typeof U==="function")return U;if(FpA(U))return U;return _($)},apply:async(j,K,$)=>{let U="/"+D.map((X)=>X.replace(/[A-Z]/g,(L)=>`-${L.toLowerCase()}`)).join("/"),Z=$[0]||{},G=$[1]||{},{query:O,fetchOptions:Q,...Y}=Z,J={...G,...Q},I=gpA(U,F,Z);return await q(U,{...J,body:I==="GET"?void 0:{...Y,...J?.body||{}},query:O||J?.query,method:I,async onSuccess(X){if(await J?.onSuccess?.(X),!E||J.disableSignal)return;let L=E.filter((M)=>M.matcher(U));if(!L.length)return;for(let M of L){let T=g[M.signal];if(!T)return;let V=T.get();setTimeout(()=>{T.set(!V)},10)}}})}})}return _()}var EL,inA=()=>Math.floor(Date.now()/1000),lnA=class{listeners=new Set;name;constructor(A="better-auth.message"){this.name=A}subscribe(A){return this.listeners.add(A),()=>{this.listeners.delete(A)}}post(A){if(typeof window>"u")return;try{localStorage.setItem(this.name,JSON.stringify({...A,timestamp:inA()}))}catch{}}setup(){if(typeof window>"u"||typeof window.addEventListener>"u")return()=>{};let A=(q)=>{if(q.key!==this.name)return;let F=JSON.parse(q.newValue??"{}");if(F?.event!=="session"||!F?.data)return;this.listeners.forEach((g)=>g(F))};return window.addEventListener("storage",A),()=>{window.removeEventListener("storage",A)}}},DL,onA=class{listeners=new Set;subscribe(A){return this.listeners.add(A),()=>{this.listeners.delete(A)}}setFocused(A){this.listeners.forEach((q)=>q(A))}setup(){if(typeof window>"u"||typeof document>"u"||typeof window.addEventListener>"u")return()=>{};let A=()=>{if(document.visibilityState==="visible")this.setFocused(!0)};return document.addEventListener("visibilitychange",A,!1),()=>{document.removeEventListener("visibilitychange",A,!1)}}},jL,tnA=class{listeners=new Set;isOnline=typeof navigator<"u"?navigator.onLine:!0;subscribe(A){return this.listeners.add(A),()=>{this.listeners.delete(A)}}setOnline(A){this.isOnline=A,this.listeners.forEach((q)=>q(A))}setup(){if(typeof window>"u"||typeof window.addEventListener>"u")return()=>{};let A=()=>this.setOnline(!0),q=()=>this.setOnline(!1);return window.addEventListener("online",A,!1),window.addEventListener("offline",q,!1),()=>{window.removeEventListener("online",A,!1),window.removeEventListener("offline",q,!1)}}},snA=()=>typeof window>"u",OG=(A,q,F,g)=>{let E=M$({data:null,error:null,isPending:!0,isRefetching:!1,refetch:(j)=>_(j)}),_=async(j)=>{return new Promise((K)=>{let $=typeof g==="function"?g({data:E.get().data,error:E.get().error,isPending:E.get().isPending}):g;F(q,{...$,query:{...$?.query,...j?.query},async onSuccess(U){E.set({data:U.data,error:null,isPending:!1,isRefetching:!1,refetch:E.value.refetch}),await $?.onSuccess?.(U)},async onError(U){let{request:Z}=U,G=typeof Z.retry==="number"?Z.retry:Z.retry?.attempts,O=Z.retryAttempt||0;if(G&&O<G)return;E.set({error:U.error,data:null,isPending:!1,isRefetching:!1,refetch:E.value.refetch}),await $?.onError?.(U)},async onRequest(U){let Z=E.get();E.set({isPending:Z.data===null,data:Z.data,error:null,isRefetching:!0,refetch:E.value.refetch}),await $?.onRequest?.(U)}}).catch((U)=>{E.set({error:U,data:null,isPending:!1,isRefetching:!1,refetch:E.value.refetch})}).finally(()=>{K(void 0)})})};A=Array.isArray(A)?A:[A];let D=!1;for(let j of A)j.subscribe(async()=>{if(snA())return;if(D)await _();else FL(E,()=>{let K=setTimeout(async()=>{if(!D)await _(),D=!0},0);return()=>{E.off(),j.off(),clearTimeout(K)}})});return E},K7=()=>Math.floor(Date.now()/1000),enA=5,ApA,AZA=(A,q)=>{let F="credentials"in Request.prototype,g=u1A(A?.baseURL,A?.basePath,void 0,q)??"/api/auth",E=A?.plugins?.flatMap((M)=>M.fetchPlugins).filter((M)=>M!==void 0)||[],_={id:"lifecycle-hooks",name:"lifecycle-hooks",hooks:{onSuccess:A?.fetchOptions?.onSuccess,onError:A?.fetchOptions?.onError,onRequest:A?.fetchOptions?.onRequest,onResponse:A?.fetchOptions?.onResponse}},{onSuccess:D,onError:j,onRequest:K,onResponse:$,...U}=A?.fetchOptions||{},Z=o1A({baseURL:g,...F?{credentials:"include"}:{},method:"GET",jsonParser(M){if(!M)return null;return y1A(M,{strict:!1})},customFetchImpl:fetch,...U,plugins:[_,...U.plugins||[],...A?.disableDefaultFetchPlugins?[]:[ApA],...E]}),{$sessionSignal:G,session:O}=qpA(Z,A),Q=A?.plugins||[],Y={},J={$sessionSignal:G,session:O},I={"/sign-out":"POST","/revoke-sessions":"POST","/revoke-other-sessions":"POST","/delete-user":"POST"},X=[{signal:"$sessionSignal",matcher(M){return M==="/sign-out"||M==="/update-user"||M==="/sign-up/email"||M==="/sign-in/email"||M==="/delete-user"||M==="/verify-email"||M==="/revoke-sessions"||M==="/revoke-session"||M==="/change-email"}}];for(let M of Q){if(M.getAtoms)Object.assign(J,M.getAtoms?.(Z));if(M.pathMethods)Object.assign(I,M.pathMethods);if(M.atomListeners)X.push(...M.atomListeners)}let L={notify:(M)=>{J[M].set(!J[M].get())},listen:(M,T)=>{J[M].subscribe(T)},atoms:J};for(let M of Q)if(M.getActions)Object.assign(Y,M.getActions?.(Z,L,A));return{get baseURL(){return g},pluginsActions:Y,pluginsAtoms:J,pluginPathMethods:I,atomListeners:X,$fetch:Z,$store:L}};var KL=W(()=>{sN();eN();Lk();t1A();EL=Symbol.for("better-auth:broadcast-channel");DL=Symbol.for("better-auth:focus-manager");jL=Symbol.for("better-auth:online-manager");ApA={id:"redirect",name:"Redirect",hooks:{onSuccess(A){if(A.data?.url&&A.data?.redirect){if(typeof window<"u"&&window.location){if(window.location)try{window.location.href=A.data.url}catch{}}}}}}});var FZA=W(()=>{EY();tN()});function Wk(A){let{pluginPathMethods:q,pluginsActions:F,pluginsAtoms:g,$fetch:E,atomListeners:_,$store:D}=AZA(A),j={};for(let[K,$]of Object.entries(g))j[`use${Xk(K)}`]=$;return qZA({...F,...j,$fetch:E,$store:D},E,q,g,_)}var Bk=W(()=>{KL();FZA()});var gZA=W(()=>{sN();KL();eN();Bk()});function EpA(A){return{authorize(q,F="AND"){let g=!1;for(let[E,_]of Object.entries(q)){let D=A[E];if(!D)return{success:!1,error:`You are not allowed to access resource: ${E}`};if(Array.isArray(_))g=_.every((j)=>D.includes(j));else if(typeof _==="object"){let j=_;if(j.connector==="OR")g=j.actions.some((K)=>D.includes(K));else g=j.actions.every((K)=>D.includes(K))}else throw new I$("Invalid access control request");if(g&&F==="OR")return{success:g};if(!g&&F==="AND")return{success:!1,error:`unauthorized to access resource "${E}"`}}if(g)return{success:g};return{success:!1,error:"Not authorized"}},statements:A}}function $L(A){return{newRole(q){return EpA(q)},statements:A}}var UL=W(()=>{Pk()});var _pA,EZA,DpA,jpA;var Rk=W(()=>{UL();_pA={user:["create","list","set-role","ban","impersonate","delete","set-password","get","update"],session:["list","revoke","delete"]},EZA=$L(_pA),DpA=EZA.newRole({user:["create","list","set-role","ban","impersonate","delete","set-password","get","update"],session:["list","revoke","delete"]}),jpA=EZA.newRole({user:[],session:[]})});var _ZA=W(()=>{Rk()});var KpA,wk,Sk,Ck,zk,DZA;var jZA=W(()=>{UL();KpA={organization:["update","delete"],member:["create","update","delete"],invitation:["create","cancel"],team:["create","update","delete"],ac:["create","read","update","delete"]},wk=$L(KpA),Sk=wk.newRole({organization:["update"],invitation:["create","cancel"],member:["create","update","delete"],team:["create","update","delete"],ac:["create","read","update","delete"]}),Ck=wk.newRole({organization:["update","delete"],member:["create","update","delete"],invitation:["create","cancel"],team:["create","update","delete"],ac:["create","read","update","delete"]}),zk=wk.newRole({organization:[],member:[],invitation:[],team:[],ac:["read"]}),DZA={admin:Sk,owner:Ck,member:zk}});var KZA=(A,q)=>{if(!A.permissions&&!A.permission)return!1;let F=A.role.split(","),g=A.options.creatorRole||"owner",E=F.includes(g),_=A.allowCreatorAllPermissions||!1;if(E&&_)return!0;for(let D of F)if(q[D]?.authorize(A.permissions??A.permission)?.success)return!0;return!1};var $ZA=()=>{};var UZA=()=>{};var ZZA=()=>{return{id:"device-authorization",$InferServerPlugin:{},pathMethods:{"/device/code":"POST","/device/token":"POST","/device":"GET","/device/approve":"POST","/device/deny":"POST"}}},GZA=(A)=>{let q=A?.jwks?.jwksPath??"/jwks";return{id:"better-auth-client",$InferServerPlugin:{},pathMethods:{[q]:"GET"},getActions:(F)=>({jwks:async(g)=>{return await F(q,{method:"GET",...g})}})}},$pA=(A)=>{return KZA(A,A.options.roles||DZA)},OZA=(A)=>{let q=M$(!1),F=M$(!1),g=M$(!1),E=M$(!1),_={admin:Sk,member:zk,owner:Ck,...A?.roles};return{id:"organization",$InferServerPlugin:{},getActions:(D,j,K)=>({$Infer:{ActiveOrganization:{},Organization:{},Invitation:{},Member:{},Team:{}},organization:{checkRolePermission:($)=>{return $pA({role:$.role,options:{ac:A?.ac,roles:_},permissions:$.permissions??$.permission})}}}),getAtoms:(D)=>{let j=OG(q,"/organization/list",D,{method:"GET"});return{$listOrg:q,$activeOrgSignal:F,$activeMemberSignal:g,$activeMemberRoleSignal:E,activeOrganization:OG([F],"/organization/get-full-organization",D,()=>({method:"GET"})),listOrganizations:j,activeMember:OG([g],"/organization/get-active-member",D,{method:"GET"}),activeMemberRole:OG([E],"/organization/get-active-member-role",D,{method:"GET"})}},pathMethods:{"/organization/get-full-organization":"GET","/organization/list-user-teams":"GET"},atomListeners:[{matcher(D){return D==="/organization/create"||D==="/organization/delete"||D==="/organization/update"},signal:"$listOrg"},{matcher(D){return D.startsWith("/organization")},signal:"$activeOrgSignal"},{matcher(D){return D.startsWith("/organization/set-active")},signal:"$sessionSignal"},{matcher(D){return D.includes("/organization/update-member-role")},signal:"$activeMemberSignal"},{matcher(D){return D.includes("/organization/update-member-role")},signal:"$activeMemberRoleSignal"}]}};var QZA=W(()=>{sN();KL();eN();Bk();UL();Rk();_ZA();jZA();$ZA();UZA();Lk()});var YZA=(A,q,F)=>(...g)=>s8((E)=>{try{A(...g,(_,D)=>{if(_)E(qg(q?q(_,g):_));else E(Q6(D))})}catch(_){E(F?qg(F(_,g)):O$(_))}});var JZA=W(()=>{AE()});var ZF;var HZA=W(()=>{JZA();ZF=YZA});var IZA;var MZA=W(()=>{LQ();IZA=PQ});var xk=(A,q)=>{switch(q._tag){case"StringKeyword":case"TemplateLiteral":return Object.keys(A);case"SymbolKeyword":return Object.getOwnPropertySymbols(A);case"Refinement":return xk(A,q.from)}},jY=(A)=>{let q=!1,F;return()=>{if(q)return F;return F=A(),q=!0,F}},hk=(A)=>Array.isArray(A),PZA=(A)=>!Array.isArray(A),XZA=(A)=>`[${$U(A)}]`,ZL=(A)=>hk(A)?A.map(XZA).join(""):XZA(A);var KY=W(()=>{b6()});var O2=(A,q,F,g)=>{let E=A;if(F&&M6(F))E+=`
|
|
120
|
+
`,"f");uA(this,bg,C(this,bg,"f")+A.join(" "),"f")}}}[Kk](A){g7(C(this,iA,"f")).forEach((q)=>{if(((g)=>g==="configObjects")(q))return;let F=C(this,iA,"f")[q];if(Array.isArray(F)){if(F.includes(A))F.splice(F.indexOf(A),1)}else if(typeof F==="object")delete F[A]}),delete C(this,Iq,"f").getDescriptions()[A]}[j1A](A,q,F){if(!C(this,cN,"f")[F])C(this,Uq,"f").process.emitWarning(A,q),C(this,cN,"f")[F]=!0}[K1A](){C(this,dN,"f").push({options:C(this,iA,"f"),configObjects:C(this,iA,"f").configObjects.slice(0),exitProcess:C(this,iD,"f"),groups:C(this,vK,"f"),strict:C(this,jG,"f"),strictCommands:C(this,KG,"f"),strictOptions:C(this,$G,"f"),completionCommand:C(this,gD,"f"),output:C(this,bg,"f"),exitError:C(this,$2,"f"),hasOutput:C(this,ED,"f"),parsed:this.parsed,parseFn:C(this,_D,"f"),parseContext:C(this,_G,"f")}),C(this,Iq,"f").freeze(),C(this,hF,"f").freeze(),C(this,aF,"f").freeze(),C(this,lD,"f").freeze()}[$1A](){let A="",q;if(/\b(node|iojs|electron)(\.exe)?$/.test(C(this,Uq,"f").process.argv()[0]))q=C(this,Uq,"f").process.argv().slice(1,2);else q=C(this,Uq,"f").process.argv().slice(0,1);if(A=q.map((F)=>{let g=this[N1A](C(this,FG,"f"),F);return F.match(/^(\/|([a-zA-Z]:)?\\)/)&&g.length<F.length?g:F}).join(" ").trim(),C(this,Uq,"f").getEnv("_")&&C(this,Uq,"f").getProcessArgvBin()===C(this,Uq,"f").getEnv("_"))A=C(this,Uq,"f").getEnv("_").replace(`${C(this,Uq,"f").path.dirname(C(this,Uq,"f").process.execPath())}/`,"");return A}[UG](){return C(this,fN,"f")}[U1A](){return C(this,pN,"f")}[$k](){if(!C(this,gG,"f"))return;let A=C(this,Uq,"f").getEnv("LC_ALL")||C(this,Uq,"f").getEnv("LC_MESSAGES")||C(this,Uq,"f").getEnv("LANG")||C(this,Uq,"f").getEnv("LANGUAGE")||"en_US";this.locale(A.replace(/[.:].*/,""))}[Z1A](){return this[Uk]().version||"unknown"}[G1A](A){let q=A["--"]?A["--"]:A._;for(let F=0,g;(g=q[F])!==void 0;F++)if(C(this,Uq,"f").Parser.looksLikeNumber(g)&&Number.isSafeInteger(Math.floor(parseFloat(`${g}`))))q[F]=Number(g);return A}[Uk](A){let q=A||"*";if(C(this,_7,"f")[q])return C(this,_7,"f")[q];let F={};try{let g=A||C(this,Uq,"f").mainFilename;if(C(this,Uq,"f").path.extname(g))g=C(this,Uq,"f").path.dirname(g);let E=C(this,Uq,"f").findUp(g,(_,D)=>{if(D.includes("package.json"))return"package.json";else return});yE(E,void 0,C(this,Uq,"f")),F=JSON.parse(C(this,Uq,"f").readFileSync(E,"utf8"))}catch(g){}return C(this,_7,"f")[q]=F||{},C(this,_7,"f")[q]}[Z2](A,q){q=[].concat(q),q.forEach((F)=>{F=this[Ok](F),C(this,iA,"f")[A].push(F)})}[D7](A,q,F,g){this[Gk](A,q,F,g,(E,_,D)=>{C(this,iA,"f")[E][_]=D})}[Zk](A,q,F,g){this[Gk](A,q,F,g,(E,_,D)=>{C(this,iA,"f")[E][_]=(C(this,iA,"f")[E][_]||[]).concat(D)})}[Gk](A,q,F,g,E){if(Array.isArray(F))F.forEach((_)=>{A(_,g)});else if(((_)=>typeof _==="object")(F))for(let _ of g7(F))A(_,F[_]);else E(q,this[Ok](F),g)}[Ok](A){if(A==="__proto__")return"___proto___";return A}[Qk](A,q){return this[D7](this[Qk].bind(this),"key",A,q),this}[Yk](){var A,q,F,g,E,_,D,j,K,$,U,Z;let G=C(this,dN,"f").pop();yE(G,void 0,C(this,Uq,"f"));let O;A=this,q=this,F=this,g=this,E=this,_=this,D=this,j=this,K=this,$=this,U=this,Z=this,{options:{set value(Q){uA(A,iA,Q,"f")}}.value,configObjects:O,exitProcess:{set value(Q){uA(q,iD,Q,"f")}}.value,groups:{set value(Q){uA(F,vK,Q,"f")}}.value,output:{set value(Q){uA(g,bg,Q,"f")}}.value,exitError:{set value(Q){uA(E,$2,Q,"f")}}.value,hasOutput:{set value(Q){uA(_,ED,Q,"f")}}.value,parsed:this.parsed,strict:{set value(Q){uA(D,jG,Q,"f")}}.value,strictCommands:{set value(Q){uA(j,KG,Q,"f")}}.value,strictOptions:{set value(Q){uA(K,$G,Q,"f")}}.value,completionCommand:{set value(Q){uA($,gD,Q,"f")}}.value,parseFn:{set value(Q){uA(U,_D,Q,"f")}}.value,parseContext:{set value(Q){uA(Z,_G,Q,"f")}}.value}=G,C(this,iA,"f").configObjects=O,C(this,Iq,"f").unfreeze(),C(this,hF,"f").unfreeze(),C(this,aF,"f").unfreeze(),C(this,lD,"f").unfreeze()}[O1A](A,q){return qG(q,(F)=>{return A(F),F})}getInternalMethods(){return{getCommandInstance:this[Q1A].bind(this),getContext:this[Y1A].bind(this),getHasOutput:this[J1A].bind(this),getLoggerInstance:this[H1A].bind(this),getParseContext:this[I1A].bind(this),getParserConfiguration:this[UG].bind(this),getUsageConfiguration:this[U1A].bind(this),getUsageInstance:this[M1A].bind(this),getValidationInstance:this[X1A].bind(this),hasParseCallback:this[iN].bind(this),isGlobalContext:this[P1A].bind(this),postProcess:this[ZG].bind(this),reset:this[Jk].bind(this),runValidation:this[Hk].bind(this),runYargsParserAndExecuteCommands:this[AY].bind(this),setHasOutput:this[L1A].bind(this)}}[Q1A](){return C(this,aF,"f")}[Y1A](){return C(this,eQ,"f")}[J1A](){return C(this,ED,"f")}[H1A](){return C(this,EG,"f")}[I1A](){return C(this,_G,"f")||{}}[M1A](){return C(this,Iq,"f")}[X1A](){return C(this,hF,"f")}[iN](){return!!C(this,_D,"f")}[P1A](){return C(this,aN,"f")}[ZG](A,q,F,g){if(F)return A;if(t6(A))return A;if(!q)A=this[_1A](A);if(this[UG]()["parse-positional-numbers"]||this[UG]()["parse-positional-numbers"]===void 0)A=this[G1A](A);if(g)A=AG(A,this,C(this,lD,"f").getMiddleware(),!1);return A}[Jk](A={}){uA(this,iA,C(this,iA,"f")||{},"f");let q={};q.local=C(this,iA,"f").local||[],q.configObjects=C(this,iA,"f").configObjects||[];let F={};q.local.forEach((_)=>{F[_]=!0,(A[_]||[]).forEach((D)=>{F[D]=!0})}),Object.assign(C(this,DG,"f"),Object.keys(C(this,vK,"f")).reduce((_,D)=>{let j=C(this,vK,"f")[D].filter((K)=>!(K in F));if(j.length>0)_[D]=j;return _},{})),uA(this,vK,{},"f");let g=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],E=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];if(g.forEach((_)=>{q[_]=(C(this,iA,"f")[_]||[]).filter((D)=>!F[D])}),E.forEach((_)=>{q[_]=j2(C(this,iA,"f")[_],(D)=>!F[D])}),q.envPrefix=C(this,iA,"f").envPrefix,uA(this,iA,q,"f"),uA(this,Iq,C(this,Iq,"f")?C(this,Iq,"f").reset(F):p2A(this,C(this,Uq,"f")),"f"),uA(this,hF,C(this,hF,"f")?C(this,hF,"f").reset(F):F1A(this,C(this,Iq,"f"),C(this,Uq,"f")),"f"),uA(this,aF,C(this,aF,"f")?C(this,aF,"f").reset():r2A(C(this,Iq,"f"),C(this,hF,"f"),C(this,lD,"f"),C(this,Uq,"f")),"f"),!C(this,Q_,"f"))uA(this,Q_,s2A(this,C(this,Iq,"f"),C(this,aF,"f"),C(this,Uq,"f")),"f");return C(this,lD,"f").reset(),uA(this,gD,null,"f"),uA(this,bg,"","f"),uA(this,$2,null,"f"),uA(this,ED,!1,"f"),this.parsed=!1,this}[N1A](A,q){return C(this,Uq,"f").path.relative(A,q)}[AY](A,q,F,g=0,E=!1){var _,D,j,K;let $=!!F||E;A=A||C(this,U2,"f"),C(this,iA,"f").__=C(this,Uq,"f").y18n.__,C(this,iA,"f").configuration=this[UG]();let U=!!C(this,iA,"f").configuration["populate--"],Z=Object.assign({},C(this,iA,"f").configuration,{"populate--":!0}),G=C(this,Uq,"f").Parser.detailed(A,Object.assign({},C(this,iA,"f"),{configuration:{"parse-positional-numbers":!1,...Z}})),O=Object.assign(G.argv,C(this,_G,"f")),Q=void 0,Y=G.aliases,J=!1,I=!1;if(Object.keys(O).forEach((X)=>{if(X===C(this,oD,"f")&&O[X])J=!0;else if(X===C(this,yK,"f")&&O[X])I=!0}),O.$0=this.$0,this.parsed=G,g===0)C(this,Iq,"f").clearCachedHelpMessage();try{if(this[$k](),q)return this[ZG](O,U,!!F,!1);if(C(this,oD,"f")){if([C(this,oD,"f")].concat(Y[C(this,oD,"f")]||[]).filter((V)=>V.length>1).includes(""+O._[O._.length-1]))O._.pop(),J=!0}uA(this,aN,!1,"f");let X=C(this,aF,"f").getCommands(),L=((_=C(this,Q_,"f"))===null||_===void 0?void 0:_.completionKey)?[(D=C(this,Q_,"f"))===null||D===void 0?void 0:D.completionKey,...(K=this.getAliases()[(j=C(this,Q_,"f"))===null||j===void 0?void 0:j.completionKey])!==null&&K!==void 0?K:[]].some((T)=>Object.prototype.hasOwnProperty.call(O,T)):!1,M=J||L||E;if(O._.length){if(X.length){let T;for(let V=g||0,N;O._[V]!==void 0;V++)if(N=String(O._[V]),X.includes(N)&&N!==C(this,gD,"f")){let B=C(this,aF,"f").runCommand(N,this,G,V+1,E,J||I||E);return this[ZG](B,U,!!F,!1)}else if(!T&&N!==C(this,gD,"f")){T=N;break}if(!C(this,aF,"f").hasDefaultCommand()&&C(this,nN,"f")&&T&&!M)C(this,hF,"f").recommendCommands(T,X)}if(C(this,gD,"f")&&O._.includes(C(this,gD,"f"))&&!L){if(C(this,iD,"f"))K2(!0);this.showCompletionScript(),this.exit(0)}}if(C(this,aF,"f").hasDefaultCommand()&&!M){let T=C(this,aF,"f").runCommand(null,this,G,0,E,J||I||E);return this[ZG](T,U,!!F,!1)}if(L){if(C(this,iD,"f"))K2(!0);A=[].concat(A);let T=A.slice(A.indexOf(`--${C(this,Q_,"f").completionKey}`)+1);return C(this,Q_,"f").getCompletion(T,(V,N)=>{if(V)throw new dF(V.message);(N||[]).forEach((B)=>{C(this,EG,"f").log(B)}),this.exit(0)}),this[ZG](O,!U,!!F,!1)}if(!C(this,ED,"f")){if(J){if(C(this,iD,"f"))K2(!0);$=!0,this.showHelp((T)=>{C(this,EG,"f").log(T),this.exit(0)})}else if(I){if(C(this,iD,"f"))K2(!0);$=!0,C(this,Iq,"f").showVersion("log"),this.exit(0)}}if(!$&&C(this,iA,"f").skipValidation.length>0)$=Object.keys(O).some((T)=>C(this,iA,"f").skipValidation.indexOf(T)>=0&&O[T]===!0);if(!$){if(G.error)throw new dF(G.error.message);if(!L){let T=this[Hk](Y,{},G.error);if(!F)Q=AG(O,this,C(this,lD,"f").getMiddleware(),!0);if(Q=this[O1A](T,Q!==null&&Q!==void 0?Q:O),t6(Q)&&!F)Q=Q.then(()=>{return AG(O,this,C(this,lD,"f").getMiddleware(),!1)})}}}catch(X){if(X instanceof dF)C(this,Iq,"f").fail(X.message,X);else throw X}return this[ZG](Q!==null&&Q!==void 0?Q:O,U,!!F,!0)}[Hk](A,q,F,g){let E={...this.getDemandedOptions()};return(_)=>{if(F)throw new dF(F.message);C(this,hF,"f").nonOptionCount(_),C(this,hF,"f").requiredArguments(_,E);let D=!1;if(C(this,KG,"f"))D=C(this,hF,"f").unknownCommands(_);if(C(this,jG,"f")&&!D)C(this,hF,"f").unknownArguments(_,A,q,!!g);else if(C(this,$G,"f"))C(this,hF,"f").unknownArguments(_,A,{},!1,!1);C(this,hF,"f").limitedChoices(_),C(this,hF,"f").implications(_),C(this,hF,"f").conflicting(_)}}[L1A](){uA(this,ED,!0,"f")}[GG](A){if(typeof A==="string")C(this,iA,"f").key[A]=!0;else for(let q of A)C(this,iA,"f").key[q]=!0}}});var _nA,W1A;var B1A=W(()=>{sb();Ek();_nA=V1A(tb),W1A=_nA});var R1A=W(()=>{jk();fb();sb()});var qY="0.0.1-beta.83";var Ik=()=>{};function R6(A,q){if(typeof process<"u"&&process.env)return process.env[A]??q;if(typeof Deno<"u")return Deno.env.get(A)??q;if(typeof Bun<"u")return Bun.env[A]??q;return q}function S1A(){if(R6("FORCE_COLOR")!==void 0)switch(R6("FORCE_COLOR")){case"":case"1":case"true":return kg;case"2":return mK;case"3":return DD;default:return gY}if(R6("NODE_DISABLE_COLORS")!==void 0&&R6("NODE_DISABLE_COLORS")!==""||R6("NO_COLOR")!==void 0&&R6("NO_COLOR")!==""||R6("TERM")==="dumb")return gY;if(R6("TMUX"))return DD;if("TF_BUILD"in Y_&&"AGENT_NAME"in Y_)return kg;if("CI"in Y_){for(let{0:A,1:q}of $nA)if(A in Y_)return q;if(R6("CI_NAME")==="codeship")return mK;return gY}if("TEAMCITY_VERSION"in Y_)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.exec(R6("TEAMCITY_VERSION"))!==null?kg:gY;switch(R6("TERM_PROGRAM")){case"iTerm.app":if(!R6("TERM_PROGRAM_VERSION")||/^[0-2]\./.exec(R6("TERM_PROGRAM_VERSION"))!==null)return mK;return DD;case"HyperTerm":case"MacTerm":return DD;case"Apple_Terminal":return mK}if(R6("COLORTERM")==="truecolor"||R6("COLORTERM")==="24bit")return DD;if(R6("TERM")){if(/truecolor/.exec(R6("TERM"))!==null)return DD;if(/^xterm-256/.exec(R6("TERM"))!==null)return mK;let A=R6("TERM").toLowerCase();if(w1A[A])return w1A[A];if(UnA.some((q)=>q.exec(A)!==null))return kg}if(R6("COLORTERM"))return kg;return gY}function C1A(A,q){return oN.indexOf(q)>=oN.indexOf(A)}var lN,FY=(A)=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(A?lN:globalThis),Y_,jnA,KnA,gY=1,kg=4,mK=8,DD=24,w1A,$nA,UnA,aj,oN,ZnA,GnA=(A,q,F)=>{let g=new Date().toISOString();if(F)return`${aj.dim}${g}${aj.reset} ${ZnA[A]}${A.toUpperCase()}${aj.reset} ${aj.bright}[Better Auth]:${aj.reset} ${q}`;return`${g} ${A.toUpperCase()} [Better Auth]: ${q}`},z1A=(A)=>{let q=A?.disabled!==!0,F=A?.level??"error",g=A?.disableColors!==void 0?!A.disableColors:S1A()!==1,E=(_,D,j=[])=>{if(!q||!C1A(F,_))return;let K=GnA(_,D,g);if(!A||typeof A.log!=="function"){if(_==="error")console.error(K,...j);else if(_==="warn")console.warn(K,...j);else console.log(K,...j);return}A.log(_==="success"?"info":_,D,...j)};return{...Object.fromEntries(oN.map((_)=>[_,(...[D,...j])=>E(_,D,j)])),get level(){return F}}},x1A;var EY=W(()=>{lN=Object.create(null),Y_=new Proxy(lN,{get(A,q){return FY()[q]??lN[q]},has(A,q){return q in FY()||q in lN},set(A,q,F){let g=FY(!0);return g[q]=F,!0},deleteProperty(A,q){if(!q)return!1;let F=FY(!0);return delete F[q],!0},ownKeys(){let A=FY(!0);return Object.keys(A)}}),jnA=typeof process<"u"&&process.env&&"development"||"";KnA=Object.freeze({get BETTER_AUTH_SECRET(){return R6("BETTER_AUTH_SECRET")},get AUTH_SECRET(){return R6("AUTH_SECRET")},get BETTER_AUTH_TELEMETRY(){return R6("BETTER_AUTH_TELEMETRY")},get BETTER_AUTH_TELEMETRY_ID(){return R6("BETTER_AUTH_TELEMETRY_ID")},get NODE_ENV(){return R6("NODE_ENV","development")},get PACKAGE_VERSION(){return R6("PACKAGE_VERSION","0.0.0")},get BETTER_AUTH_TELEMETRY_ENDPOINT(){return R6("BETTER_AUTH_TELEMETRY_ENDPOINT","https://telemetry.better-auth.com/v1/track")}}),w1A={eterm:kg,cons25:kg,console:kg,cygwin:kg,dtterm:kg,gnome:kg,hurd:kg,jfbterm:kg,konsole:kg,kterm:kg,mlterm:kg,mosh:DD,putty:kg,st:kg,"rxvt-unicode-24bit":DD,terminator:DD,"xterm-kitty":DD},$nA=new Map(Object.entries({APPVEYOR:mK,BUILDKITE:mK,CIRCLECI:DD,DRONE:mK,GITEA_ACTIONS:DD,GITHUB_ACTIONS:DD,GITLAB_CI:mK,TRAVIS:mK})),UnA=[/ansi/,/color/,/linux/,/direct/,/^con[0-9]*x[0-9]/,/^rxvt/,/^screen/,/^xterm/,/^vt100/,/^vt220/];aj={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",undim:"\x1B[22m",underscore:"\x1B[4m",blink:"\x1B[5m",reverse:"\x1B[7m",hidden:"\x1B[8m",fg:{black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m"},bg:{black:"\x1B[40m",red:"\x1B[41m",green:"\x1B[42m",yellow:"\x1B[43m",blue:"\x1B[44m",magenta:"\x1B[45m",cyan:"\x1B[46m",white:"\x1B[47m"}},oN=["debug","info","success","warn","error"];ZnA={info:aj.fg.blue,success:aj.fg.green,warn:aj.fg.yellow,error:aj.fg.red,debug:aj.fg.magenta},x1A=z1A()});var h1A=W(()=>{EY()});var b1A=()=>{};function Mk(A){return A}function Xk(A){return A.charAt(0).toUpperCase()+A.slice(1)}var tN=W(()=>{EY();b1A()});var OnA,I$;var k1A=W(()=>{tN();OnA=Mk({USER_NOT_FOUND:"User not found",FAILED_TO_CREATE_USER:"Failed to create user",FAILED_TO_CREATE_SESSION:"Failed to create session",FAILED_TO_UPDATE_USER:"Failed to update user",FAILED_TO_GET_SESSION:"Failed to get session",INVALID_PASSWORD:"Invalid password",INVALID_EMAIL:"Invalid email",INVALID_EMAIL_OR_PASSWORD:"Invalid email or password",SOCIAL_ACCOUNT_ALREADY_LINKED:"Social account already linked",PROVIDER_NOT_FOUND:"Provider not found",INVALID_TOKEN:"Invalid token",ID_TOKEN_NOT_SUPPORTED:"id_token not supported",FAILED_TO_GET_USER_INFO:"Failed to get user info",USER_EMAIL_NOT_FOUND:"User email not found",EMAIL_NOT_VERIFIED:"Email not verified",PASSWORD_TOO_SHORT:"Password too short",PASSWORD_TOO_LONG:"Password too long",USER_ALREADY_EXISTS:"User already exists.",USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL:"User already exists. Use another email.",EMAIL_CAN_NOT_BE_UPDATED:"Email can not be updated",CREDENTIAL_ACCOUNT_NOT_FOUND:"Credential account not found",SESSION_EXPIRED:"Session expired. Re-authenticate to perform this action.",FAILED_TO_UNLINK_LAST_ACCOUNT:"You can't unlink your last account",ACCOUNT_NOT_FOUND:"Account not found",USER_ALREADY_HAS_PASSWORD:"User already has a password. Provide that to delete the account."}),I$=class extends Error{constructor(A,q){super(A);this.name="BetterAuthError",this.message=A,this.cause=q,this.stack=""}}});var Pk=W(()=>{EY();tN();k1A()});function QnA(A){try{return(new URL(A).pathname.replace(/\/+$/,"")||"/")!=="/"}catch(q){throw new I$(`Invalid base URL: ${A}. Please provide a valid base URL.`)}}function YnA(A){try{let q=new URL(A);if(q.protocol!=="http:"&&q.protocol!=="https:")throw new I$(`Invalid base URL: ${A}. URL must include 'http://' or 'https://'`)}catch(q){if(q instanceof I$)throw q;throw new I$(`Invalid base URL: ${A}. Please provide a valid base URL.`,String(q))}}function _Y(A,q="/api/auth"){if(YnA(A),QnA(A))return A;let F=A.replace(/\/+$/,"");if(!q||q==="/")return F;return q=q.startsWith("/")?q:`/${q}`,`${F}${q}`}function u1A(A,q,F,g,E){if(A)return _Y(A,q);if(g!==!1){let j=Y_.BETTER_AUTH_URL||Y_.NEXT_PUBLIC_BETTER_AUTH_URL||Y_.PUBLIC_BETTER_AUTH_URL||Y_.NUXT_PUBLIC_BETTER_AUTH_URL||Y_.NUXT_PUBLIC_AUTH_URL||(Y_.BASE_URL!=="/"?Y_.BASE_URL:void 0);if(j)return _Y(j,q)}let _=F?.headers.get("x-forwarded-host"),D=F?.headers.get("x-forwarded-proto");if(_&&D&&E)return _Y(`${D}://${_}`,q);if(F){let j=JnA(F.url);if(!j)throw new I$("Could not get origin from request. Please provide a valid base URL.");return _Y(j,q)}if(typeof window<"u"&&window.location)return _Y(window.location.origin,q)}function JnA(A){try{let q=new URL(A);return q.origin==="null"?null:q.origin}catch(q){return null}}var sN=W(()=>{h1A();Pk()});function XnA(A){return A instanceof Date&&!isNaN(A.getTime())}function PnA(A){let q=MnA.exec(A);if(!q)return null;let[,F,g,E,_,D,j,K,$,U,Z]=q,G=new Date(Date.UTC(parseInt(F,10),parseInt(g,10)-1,parseInt(E,10),parseInt(_,10),parseInt(D,10),parseInt(j,10),K?parseInt(K.padEnd(3,"0"),10):0));if($){let O=(parseInt(U,10)*60+parseInt(Z,10))*($==="+"?-1:1);G.setUTCMinutes(G.getUTCMinutes()+O)}return XnA(G)?G:null}function NnA(A,q={}){let{strict:F=!1,warnings:g=!1,reviver:E,parseDates:_=!0}=q;if(typeof A!=="string")return A;let D=A.trim();if(D.length>0&&D[0]==='"'&&D.endsWith('"')&&!D.slice(1,-1).includes('"'))return D.slice(1,-1);let j=D.toLowerCase();if(j.length<=9&&j in v1A)return v1A[j];if(!InA.test(D)){if(F)throw SyntaxError("[better-json] Invalid JSON");return A}if(Object.entries(HnA).some(([K,$])=>{let U=$.test(D);if(U&&g)console.warn(`[better-json] Detected potential prototype pollution attempt using ${K} pattern`);return U})&&F)throw Error("[better-json] Potential prototype pollution attempt detected");try{return JSON.parse(D,($,U)=>{if($==="__proto__"||$==="constructor"&&U&&typeof U==="object"&&"prototype"in U){if(g)console.warn(`[better-json] Dropping "${$}" key to prevent prototype pollution`);return}if(_&&typeof U==="string"){let Z=PnA(U);if(Z)return Z}return E?E($,U):U})}catch(K){if(F)throw K;return A}}function y1A(A,q={strict:!0}){return NnA(A,q)}var HnA,InA,v1A,MnA;var eN=W(()=>{HnA={proto:/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,constructor:/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,protoShort:/"__proto__"\s*:/,constructorShort:/"constructor"\s*:/},InA=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/,v1A={true:!0,false:!1,null:null,undefined:void 0,nan:NaN,infinity:Number.POSITIVE_INFINITY,"-infinity":Number.NEGATIVE_INFINITY},MnA=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,7}))?(?:Z|([+-])(\d{2}):(\d{2}))$/});var DY;var Nk=W(()=>{DY=Symbol("clean")});var rj,G2=0,AL=4,LnA=0,M$=(A)=>{let q=[],F={get(){if(!F.lc)F.listen(()=>{})();return F.value},lc:0,listen(g){return F.lc=q.push(g),()=>{for(let _=G2+AL;_<rj.length;)if(rj[_]===g)rj.splice(_,AL);else _+=AL;let E=q.indexOf(g);if(~E){if(q.splice(E,1),!--F.lc)F.off()}}},notify(g,E){LnA++;let _=!rj.length;for(let D of q)rj.push(D,F.value,g,E);if(_){for(G2=0;G2<rj.length;G2+=AL)rj[G2](rj[G2+1],rj[G2+2],rj[G2+3]);rj.length=0}},off(){},set(g){let E=F.value;if(E!==g)F.value=g,F.notify(E)},subscribe(g){let E=F.listen(g);return g(F.value),E},value:A};return F[DY]=()=>{q=[],F.lc=0,F.off()},F};var m1A=W(()=>{Nk();rj=[]});var VnA=5,j7=6,qL=10,TnA=(A,q,F,g)=>{if(A.events=A.events||{},!A.events[F+qL])A.events[F+qL]=g((E)=>{A.events[F].reduceRight((_,D)=>(D(_),_),{shared:{},...E})});return A.events[F]=A.events[F]||[],A.events[F].push(q),()=>{let E=A.events[F],_=E.indexOf(q);if(E.splice(_,1),!E.length)delete A.events[F],A.events[F+qL](),delete A.events[F+qL]}},c1A=1000,FL=(A,q)=>{return TnA(A,(g)=>{let E=q(g);if(E)A.events[j7].push(E)},VnA,(g)=>{let E=A.listen;A.listen=(...D)=>{if(!A.lc&&!A.active)A.active=!0,g();return E(...D)};let _=A.off;A.events[j7]=[],A.off=()=>{_(),setTimeout(()=>{if(A.active&&!A.lc){A.active=!1;for(let D of A.events[j7])D();A.events[j7]=[]}},c1A)};{let D=A[DY];A[DY]=()=>{for(let j of A.events[j7])j();A.events[j7]=[],A.active=!1,D()}}return()=>{A.listen=E,A.off=_}})};var d1A=W(()=>{Nk()});var Lk=W(()=>{m1A();d1A()});function hnA(A){if(typeof A==="number")return new f1A({type:"linear",attempts:A,delay:1000});switch(A.type){case"linear":return new f1A(A);case"exponential":return new xnA(A);default:throw Error("Invalid retry strategy")}}function unA(A){let q=A.headers.get("content-type"),F=new Set(["image/svg","application/xml","application/xhtml","application/html"]);if(!q)return"json";let g=q.split(";").shift()||"";if(knA.test(g))return"json";if(F.has(g)||g.startsWith("text/"))return"text";return"blob"}function vnA(A){try{return JSON.parse(A),!0}catch(q){return!1}}function i1A(A){if(A===void 0)return!1;let q=typeof A;if(q==="string"||q==="number"||q==="boolean"||q===null)return!0;if(q!=="object")return!1;if(Array.isArray(A))return!0;if(A.buffer)return!1;return A.constructor&&A.constructor.name==="Object"||typeof A.toJSON==="function"}function n1A(A){try{return JSON.parse(A)}catch(q){return A}}function p1A(A){return typeof A==="function"}function ynA(A){if(A==null?void 0:A.customFetchImpl)return A.customFetchImpl;if(typeof globalThis<"u"&&p1A(globalThis.fetch))return globalThis.fetch;if(typeof window<"u"&&p1A(window.fetch))return window.fetch;throw Error("No fetch implementation found")}async function mnA(A){let q=new Headers(A==null?void 0:A.headers),F=await bnA(A);for(let[g,E]of Object.entries(F||{}))q.set(g,E);if(!q.has("content-type")){let g=cnA(A==null?void 0:A.body);if(g)q.set("content-type",g)}return q}function cnA(A){if(i1A(A))return"application/json";return null}function dnA(A){if(!(A==null?void 0:A.body))return null;let q=new Headers(A==null?void 0:A.headers);if(i1A(A.body)&&!q.has("content-type")){for(let[F,g]of Object.entries(A==null?void 0:A.body))if(g instanceof Date)A.body[F]=g.toISOString();return JSON.stringify(A.body)}return A.body}function anA(A,q){var F;if(q==null?void 0:q.method)return q.method.toUpperCase();if(A.startsWith("@")){let g=(F=A.split("@")[1])==null?void 0:F.split("/")[0];if(!l1A.includes(g))return(q==null?void 0:q.body)?"POST":"GET";return g.toUpperCase()}return(q==null?void 0:q.body)?"POST":"GET"}function rnA(A,q){let F;if(!(A==null?void 0:A.signal)&&(A==null?void 0:A.timeout))F=setTimeout(()=>q==null?void 0:q.abort(),A==null?void 0:A.timeout);return{abortTimeout:F,clearTimeout:()=>{if(F)clearTimeout(F)}}}async function gL(A,q){let F=await A["~standard"].validate(q);if(F.issues)throw new fnA(F.issues);return F.value}function pnA(A,q){let{baseURL:F,params:g,query:E}=q||{query:{},params:{},baseURL:""},_=A.startsWith("http")?A.split("/").slice(0,3).join("/"):F||"";if(A.startsWith("@")){let Z=A.toString().split("@")[1].split("/")[0];if(l1A.includes(Z))A=A.replace(`@${Z}/`,"/")}if(!_.endsWith("/"))_+="/";let[D,j]=A.replace(_,"").split("?"),K=new URLSearchParams(j);for(let[Z,G]of Object.entries(E||{})){if(G==null)continue;K.set(Z,String(G))}if(g)if(Array.isArray(g)){let Z=D.split("/").filter((G)=>G.startsWith(":"));for(let[G,O]of Z.entries()){let Q=g[G];D=D.replace(O,Q)}}else for(let[Z,G]of Object.entries(g))D=D.replace(`:${Z}`,String(G));if(D=D.split("/").map(encodeURIComponent).join("/"),D.startsWith("/"))D=D.slice(1);let $=K.toString();if($=$.length>0?`?${$}`.replace(/\+/g,"%20"):"",!_.startsWith("http"))return`${_}${D}${$}`;return new URL(`${D}${$}`,_)}var WnA,BnA,RnA,a1A,wnA,SnA,r1A=(A,q,F)=>(q in A)?WnA(A,q,{enumerable:!0,configurable:!0,writable:!0,value:F}):A[q]=F,fj=(A,q)=>{for(var F in q||(q={}))if(wnA.call(q,F))r1A(A,F,q[F]);if(a1A){for(var F of a1A(q))if(SnA.call(q,F))r1A(A,F,q[F])}return A},cK=(A,q)=>BnA(A,RnA(q)),CnA,znA=async(A,q)=>{var F,g,E,_,D,j;let K=q||{},$={onRequest:[q==null?void 0:q.onRequest],onResponse:[q==null?void 0:q.onResponse],onSuccess:[q==null?void 0:q.onSuccess],onError:[q==null?void 0:q.onError],onRetry:[q==null?void 0:q.onRetry]};if(!q||!(q==null?void 0:q.plugins))return{url:A,options:K,hooks:$};for(let U of(q==null?void 0:q.plugins)||[]){if(U.init){let Z=await((F=U.init)==null?void 0:F.call(U,A.toString(),q));K=Z.options||K,A=Z.url}$.onRequest.push((g=U.hooks)==null?void 0:g.onRequest),$.onResponse.push((E=U.hooks)==null?void 0:E.onResponse),$.onSuccess.push((_=U.hooks)==null?void 0:_.onSuccess),$.onError.push((D=U.hooks)==null?void 0:D.onError),$.onRetry.push((j=U.hooks)==null?void 0:j.onRetry)}return{url:A,options:K,hooks:$}},f1A=class{constructor(A){this.options=A}shouldAttemptRetry(A,q){if(this.options.shouldRetry)return Promise.resolve(A<this.options.attempts&&this.options.shouldRetry(q));return Promise.resolve(A<this.options.attempts)}getDelay(){return this.options.delay}},xnA=class{constructor(A){this.options=A}shouldAttemptRetry(A,q){if(this.options.shouldRetry)return Promise.resolve(A<this.options.attempts&&this.options.shouldRetry(q));return Promise.resolve(A<this.options.attempts)}getDelay(A){return Math.min(this.options.maxDelay,this.options.baseDelay*2**A)}},bnA=async(A)=>{let q={},F=async(g)=>typeof g==="function"?await g():g;if(A==null?void 0:A.auth){if(A.auth.type==="Bearer"){let g=await F(A.auth.token);if(!g)return q;q.authorization=`Bearer ${g}`}else if(A.auth.type==="Basic"){let g=F(A.auth.username),E=F(A.auth.password);if(!g||!E)return q;q.authorization=`Basic ${btoa(`${g}:${E}`)}`}else if(A.auth.type==="Custom"){let g=F(A.auth.value);if(!g)return q;q.authorization=`${F(A.auth.prefix)} ${g}`}}return q},knA,fnA,l1A,nnA=(A)=>({id:"apply-schema",name:"Apply Schema",version:"1.0.0",async init(q,F){var g,E,_,D;let j=((E=(g=A.plugins)==null?void 0:g.find((K)=>{var $;return(($=K.schema)==null?void 0:$.config)?q.startsWith(K.schema.config.baseURL||"")||q.startsWith(K.schema.config.prefix||""):!1}))==null?void 0:E.schema)||A.schema;if(j){let K=q;if((_=j.config)==null?void 0:_.prefix){if(K.startsWith(j.config.prefix)){if(K=K.replace(j.config.prefix,""),j.config.baseURL)q=q.replace(j.config.prefix,j.config.baseURL)}}if((D=j.config)==null?void 0:D.baseURL){if(K.startsWith(j.config.baseURL))K=K.replace(j.config.baseURL,"")}let $=j.schema[K];if($){let U=cK(fj({},F),{method:$.method,output:$.output});if(!(F==null?void 0:F.disableValidation))U=cK(fj({},U),{body:$.input?await gL($.input,F==null?void 0:F.body):F==null?void 0:F.body,params:$.params?await gL($.params,F==null?void 0:F.params):F==null?void 0:F.params,query:$.query?await gL($.query,F==null?void 0:F.query):F==null?void 0:F.query});return{url:q,options:U}}}return{url:q,options:F}}}),o1A=(A)=>{async function q(F,g){let E=cK(fj(fj({},A),g),{plugins:[...(A==null?void 0:A.plugins)||[],nnA(A||{})]});if(A==null?void 0:A.catchAllError)try{return await Vk(F,E)}catch(_){return{data:null,error:{status:500,statusText:"Fetch Error",message:"Fetch related error. Captured by catchAllError option. See error property for more details.",error:_}}}return await Vk(F,E)}return q},Vk=async(A,q)=>{var F,g,E,_,D,j,K,$;let{hooks:U,url:Z,options:G}=await znA(A,q),O=ynA(G),Q=new AbortController,Y=(F=G.signal)!=null?F:Q.signal,J=pnA(Z,G),I=dnA(G),X=await mnA(G),L=anA(Z,G),M=cK(fj({},G),{url:J,headers:X,body:I,method:L,signal:Y});for(let h of U.onRequest)if(h){let c=await h(M);if(c instanceof Object)M=c}if("pipeTo"in M&&typeof M.pipeTo==="function"||typeof((g=q==null?void 0:q.body)==null?void 0:g.pipe)==="function"){if(!("duplex"in M))M.duplex="half"}let{clearTimeout:T}=rnA(G,Q),V=await O(M.url,M);T();let N={response:V,request:M};for(let h of U.onResponse)if(h){let c=await h(cK(fj({},N),{response:((E=q==null?void 0:q.hookOptions)==null?void 0:E.cloneResponse)?V.clone():V}));if(c instanceof Response)V=c;else if(c instanceof Object)V=c.response}if(V.ok){if(M.method==="HEAD")return{data:"",error:null};let c=unA(V),e={data:"",response:V,request:M};if(c==="json"||c==="text"){let AA=await V.text(),IA=await((_=M.jsonParser)!=null?_:n1A)(AA);e.data=IA}else e.data=await V[c]();if(M==null?void 0:M.output){if(M.output&&!M.disableValidation)e.data=await gL(M.output,e.data)}for(let AA of U.onSuccess)if(AA)await AA(cK(fj({},e),{response:((D=q==null?void 0:q.hookOptions)==null?void 0:D.cloneResponse)?V.clone():V}));if(q==null?void 0:q.throw)return e.data;return{data:e.data,error:null}}let B=(j=q==null?void 0:q.jsonParser)!=null?j:n1A,z=await V.text(),x=vnA(z),S=x?await B(z):null,b={response:V,responseText:z,request:M,error:cK(fj({},S),{status:V.status,statusText:V.statusText})};for(let h of U.onError)if(h)await h(cK(fj({},b),{response:((K=q==null?void 0:q.hookOptions)==null?void 0:K.cloneResponse)?V.clone():V}));if(q==null?void 0:q.retry){let h=hnA(q.retry),c=($=q.retryAttempt)!=null?$:0;if(await h.shouldAttemptRetry(c,V)){for(let AA of U.onRetry)if(AA)await AA(N);let e=h.getDelay(c);return await new Promise((AA)=>setTimeout(AA,e)),await Vk(A,cK(fj({},q),{retryAttempt:c+1}))}}if(q==null?void 0:q.throw)throw new CnA(V.status,V.statusText,x?S:z);return{data:null,error:cK(fj({},S),{status:V.status,statusText:V.statusText})}};var t1A=W(()=>{WnA=Object.defineProperty,BnA=Object.defineProperties,RnA=Object.getOwnPropertyDescriptors,a1A=Object.getOwnPropertySymbols,wnA=Object.prototype.hasOwnProperty,SnA=Object.prototype.propertyIsEnumerable,CnA=class extends Error{constructor(A,q,F){super(q||A.toString(),{cause:F});this.status=A,this.statusText=q,this.error=F}};knA=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;fnA=class A extends Error{constructor(q,F){super(F||JSON.stringify(q,null,2));this.issues=q,Object.setPrototypeOf(this,A.prototype)}};l1A=["get","post","put","patch","delete"]});function _L(A="better-auth.message"){if(!globalThis[EL])globalThis[EL]=new lnA(A);return globalThis[EL]}function s1A(){if(!globalThis[DL])globalThis[DL]=new onA;return globalThis[DL]}function Tk(){if(!globalThis[jL])globalThis[jL]=new tnA;return globalThis[jL]}function e1A(A){let{sessionAtom:q,sessionSignal:F,$fetch:g,options:E={}}=A,_=E.sessionOptions?.refetchInterval??0,D=E.sessionOptions?.refetchOnWindowFocus??!0,j=E.sessionOptions?.refetchWhenOffline??!1,K={lastSync:0,lastSessionRequest:0,cachedSession:void 0},$=()=>{return j||Tk().isOnline},U=(X)=>{if(!$())return;if(X?.event==="storage"){K.lastSync=K7(),F.set(!F.get());return}let L=q.get();if(X?.event==="poll"){K.lastSessionRequest=K7(),g("/get-session").then((M)=>{q.set({...L,data:M.data,error:M.error||null}),K.lastSync=K7(),F.set(!F.get())}).catch(()=>{});return}if(X?.event==="visibilitychange"){if(K7()-K.lastSessionRequest<enA&&L?.data!==null&&L?.data!==void 0)return}if(L?.data===null||L?.data===void 0||X?.event==="visibilitychange"){if(X?.event==="visibilitychange")K.lastSessionRequest=K7();K.lastSync=K7(),F.set(!F.get())}},Z=(X)=>{_L().post({event:"session",data:{trigger:X},clientId:Math.random().toString(36).substring(7)})},G=()=>{if(_&&_>0)K.pollInterval=setInterval(()=>{if(q.get()?.data)U({event:"poll"})},_*1000)},O=()=>{K.unsubscribeBroadcast=_L().subscribe(()=>{U({event:"storage"})})},Q=()=>{if(!D)return;K.unsubscribeFocus=s1A().subscribe(()=>{U({event:"visibilitychange"})})},Y=()=>{K.unsubscribeOnline=Tk().subscribe((X)=>{if(X)U({event:"visibilitychange"})})};return{init:()=>{G(),O(),Q(),Y(),_L().setup(),s1A().setup(),Tk().setup()},cleanup:()=>{if(K.pollInterval)clearInterval(K.pollInterval),K.pollInterval=void 0;if(K.unsubscribeBroadcast)K.unsubscribeBroadcast(),K.unsubscribeBroadcast=void 0;if(K.unsubscribeFocus)K.unsubscribeFocus(),K.unsubscribeFocus=void 0;if(K.unsubscribeOnline)K.unsubscribeOnline(),K.unsubscribeOnline=void 0;K.lastSync=0,K.lastSessionRequest=0,K.cachedSession=void 0},triggerRefetch:U,broadcastSessionUpdate:Z}}function qpA(A,q){let F=M$(!1),g=OG(F,"/get-session",A,{method:"GET"});return FL(g,()=>{let E=e1A({sessionAtom:g,sessionSignal:F,$fetch:A,options:q});return E.init(),()=>{E.cleanup()}}),{session:g,$sessionSignal:F}}function FpA(A){return typeof A==="object"&&A!==null&&"get"in A&&typeof A.get==="function"&&"lc"in A&&typeof A.lc==="number"}function gpA(A,q,F){let g=q[A],{fetchOptions:E,query:_,...D}=F||{};if(g)return g;if(E?.method)return E.method;if(D&&Object.keys(D).length>0)return"POST";return"GET"}function qZA(A,q,F,g,E){function _(D=[]){return new Proxy(function(){},{get(j,K){if(typeof K!=="string")return;if(K==="then"||K==="catch"||K==="finally")return;let $=[...D,K],U=A;for(let Z of $)if(U&&typeof U==="object"&&Z in U)U=U[Z];else{U=void 0;break}if(typeof U==="function")return U;if(FpA(U))return U;return _($)},apply:async(j,K,$)=>{let U="/"+D.map((X)=>X.replace(/[A-Z]/g,(L)=>`-${L.toLowerCase()}`)).join("/"),Z=$[0]||{},G=$[1]||{},{query:O,fetchOptions:Q,...Y}=Z,J={...G,...Q},I=gpA(U,F,Z);return await q(U,{...J,body:I==="GET"?void 0:{...Y,...J?.body||{}},query:O||J?.query,method:I,async onSuccess(X){if(await J?.onSuccess?.(X),!E||J.disableSignal)return;let L=E.filter((M)=>M.matcher(U));if(!L.length)return;for(let M of L){let T=g[M.signal];if(!T)return;let V=T.get();setTimeout(()=>{T.set(!V)},10)}}})}})}return _()}var EL,inA=()=>Math.floor(Date.now()/1000),lnA=class{listeners=new Set;name;constructor(A="better-auth.message"){this.name=A}subscribe(A){return this.listeners.add(A),()=>{this.listeners.delete(A)}}post(A){if(typeof window>"u")return;try{localStorage.setItem(this.name,JSON.stringify({...A,timestamp:inA()}))}catch{}}setup(){if(typeof window>"u"||typeof window.addEventListener>"u")return()=>{};let A=(q)=>{if(q.key!==this.name)return;let F=JSON.parse(q.newValue??"{}");if(F?.event!=="session"||!F?.data)return;this.listeners.forEach((g)=>g(F))};return window.addEventListener("storage",A),()=>{window.removeEventListener("storage",A)}}},DL,onA=class{listeners=new Set;subscribe(A){return this.listeners.add(A),()=>{this.listeners.delete(A)}}setFocused(A){this.listeners.forEach((q)=>q(A))}setup(){if(typeof window>"u"||typeof document>"u"||typeof window.addEventListener>"u")return()=>{};let A=()=>{if(document.visibilityState==="visible")this.setFocused(!0)};return document.addEventListener("visibilitychange",A,!1),()=>{document.removeEventListener("visibilitychange",A,!1)}}},jL,tnA=class{listeners=new Set;isOnline=typeof navigator<"u"?navigator.onLine:!0;subscribe(A){return this.listeners.add(A),()=>{this.listeners.delete(A)}}setOnline(A){this.isOnline=A,this.listeners.forEach((q)=>q(A))}setup(){if(typeof window>"u"||typeof window.addEventListener>"u")return()=>{};let A=()=>this.setOnline(!0),q=()=>this.setOnline(!1);return window.addEventListener("online",A,!1),window.addEventListener("offline",q,!1),()=>{window.removeEventListener("online",A,!1),window.removeEventListener("offline",q,!1)}}},snA=()=>typeof window>"u",OG=(A,q,F,g)=>{let E=M$({data:null,error:null,isPending:!0,isRefetching:!1,refetch:(j)=>_(j)}),_=async(j)=>{return new Promise((K)=>{let $=typeof g==="function"?g({data:E.get().data,error:E.get().error,isPending:E.get().isPending}):g;F(q,{...$,query:{...$?.query,...j?.query},async onSuccess(U){E.set({data:U.data,error:null,isPending:!1,isRefetching:!1,refetch:E.value.refetch}),await $?.onSuccess?.(U)},async onError(U){let{request:Z}=U,G=typeof Z.retry==="number"?Z.retry:Z.retry?.attempts,O=Z.retryAttempt||0;if(G&&O<G)return;E.set({error:U.error,data:null,isPending:!1,isRefetching:!1,refetch:E.value.refetch}),await $?.onError?.(U)},async onRequest(U){let Z=E.get();E.set({isPending:Z.data===null,data:Z.data,error:null,isRefetching:!0,refetch:E.value.refetch}),await $?.onRequest?.(U)}}).catch((U)=>{E.set({error:U,data:null,isPending:!1,isRefetching:!1,refetch:E.value.refetch})}).finally(()=>{K(void 0)})})};A=Array.isArray(A)?A:[A];let D=!1;for(let j of A)j.subscribe(async()=>{if(snA())return;if(D)await _();else FL(E,()=>{let K=setTimeout(async()=>{if(!D)await _(),D=!0},0);return()=>{E.off(),j.off(),clearTimeout(K)}})});return E},K7=()=>Math.floor(Date.now()/1000),enA=5,ApA,AZA=(A,q)=>{let F="credentials"in Request.prototype,g=u1A(A?.baseURL,A?.basePath,void 0,q)??"/api/auth",E=A?.plugins?.flatMap((M)=>M.fetchPlugins).filter((M)=>M!==void 0)||[],_={id:"lifecycle-hooks",name:"lifecycle-hooks",hooks:{onSuccess:A?.fetchOptions?.onSuccess,onError:A?.fetchOptions?.onError,onRequest:A?.fetchOptions?.onRequest,onResponse:A?.fetchOptions?.onResponse}},{onSuccess:D,onError:j,onRequest:K,onResponse:$,...U}=A?.fetchOptions||{},Z=o1A({baseURL:g,...F?{credentials:"include"}:{},method:"GET",jsonParser(M){if(!M)return null;return y1A(M,{strict:!1})},customFetchImpl:fetch,...U,plugins:[_,...U.plugins||[],...A?.disableDefaultFetchPlugins?[]:[ApA],...E]}),{$sessionSignal:G,session:O}=qpA(Z,A),Q=A?.plugins||[],Y={},J={$sessionSignal:G,session:O},I={"/sign-out":"POST","/revoke-sessions":"POST","/revoke-other-sessions":"POST","/delete-user":"POST"},X=[{signal:"$sessionSignal",matcher(M){return M==="/sign-out"||M==="/update-user"||M==="/sign-up/email"||M==="/sign-in/email"||M==="/delete-user"||M==="/verify-email"||M==="/revoke-sessions"||M==="/revoke-session"||M==="/change-email"}}];for(let M of Q){if(M.getAtoms)Object.assign(J,M.getAtoms?.(Z));if(M.pathMethods)Object.assign(I,M.pathMethods);if(M.atomListeners)X.push(...M.atomListeners)}let L={notify:(M)=>{J[M].set(!J[M].get())},listen:(M,T)=>{J[M].subscribe(T)},atoms:J};for(let M of Q)if(M.getActions)Object.assign(Y,M.getActions?.(Z,L,A));return{get baseURL(){return g},pluginsActions:Y,pluginsAtoms:J,pluginPathMethods:I,atomListeners:X,$fetch:Z,$store:L}};var KL=W(()=>{sN();eN();Lk();t1A();EL=Symbol.for("better-auth:broadcast-channel");DL=Symbol.for("better-auth:focus-manager");jL=Symbol.for("better-auth:online-manager");ApA={id:"redirect",name:"Redirect",hooks:{onSuccess(A){if(A.data?.url&&A.data?.redirect){if(typeof window<"u"&&window.location){if(window.location)try{window.location.href=A.data.url}catch{}}}}}}});var FZA=W(()=>{EY();tN()});function Wk(A){let{pluginPathMethods:q,pluginsActions:F,pluginsAtoms:g,$fetch:E,atomListeners:_,$store:D}=AZA(A),j={};for(let[K,$]of Object.entries(g))j[`use${Xk(K)}`]=$;return qZA({...F,...j,$fetch:E,$store:D},E,q,g,_)}var Bk=W(()=>{KL();FZA()});var gZA=W(()=>{sN();KL();eN();Bk()});function EpA(A){return{authorize(q,F="AND"){let g=!1;for(let[E,_]of Object.entries(q)){let D=A[E];if(!D)return{success:!1,error:`You are not allowed to access resource: ${E}`};if(Array.isArray(_))g=_.every((j)=>D.includes(j));else if(typeof _==="object"){let j=_;if(j.connector==="OR")g=j.actions.some((K)=>D.includes(K));else g=j.actions.every((K)=>D.includes(K))}else throw new I$("Invalid access control request");if(g&&F==="OR")return{success:g};if(!g&&F==="AND")return{success:!1,error:`unauthorized to access resource "${E}"`}}if(g)return{success:g};return{success:!1,error:"Not authorized"}},statements:A}}function $L(A){return{newRole(q){return EpA(q)},statements:A}}var UL=W(()=>{Pk()});var _pA,EZA,DpA,jpA;var Rk=W(()=>{UL();_pA={user:["create","list","set-role","ban","impersonate","delete","set-password","get","update"],session:["list","revoke","delete"]},EZA=$L(_pA),DpA=EZA.newRole({user:["create","list","set-role","ban","impersonate","delete","set-password","get","update"],session:["list","revoke","delete"]}),jpA=EZA.newRole({user:[],session:[]})});var _ZA=W(()=>{Rk()});var KpA,wk,Sk,Ck,zk,DZA;var jZA=W(()=>{UL();KpA={organization:["update","delete"],member:["create","update","delete"],invitation:["create","cancel"],team:["create","update","delete"],ac:["create","read","update","delete"]},wk=$L(KpA),Sk=wk.newRole({organization:["update"],invitation:["create","cancel"],member:["create","update","delete"],team:["create","update","delete"],ac:["create","read","update","delete"]}),Ck=wk.newRole({organization:["update","delete"],member:["create","update","delete"],invitation:["create","cancel"],team:["create","update","delete"],ac:["create","read","update","delete"]}),zk=wk.newRole({organization:[],member:[],invitation:[],team:[],ac:["read"]}),DZA={admin:Sk,owner:Ck,member:zk}});var KZA=(A,q)=>{if(!A.permissions&&!A.permission)return!1;let F=A.role.split(","),g=A.options.creatorRole||"owner",E=F.includes(g),_=A.allowCreatorAllPermissions||!1;if(E&&_)return!0;for(let D of F)if(q[D]?.authorize(A.permissions??A.permission)?.success)return!0;return!1};var $ZA=()=>{};var UZA=()=>{};var ZZA=()=>{return{id:"device-authorization",$InferServerPlugin:{},pathMethods:{"/device/code":"POST","/device/token":"POST","/device":"GET","/device/approve":"POST","/device/deny":"POST"}}},GZA=(A)=>{let q=A?.jwks?.jwksPath??"/jwks";return{id:"better-auth-client",$InferServerPlugin:{},pathMethods:{[q]:"GET"},getActions:(F)=>({jwks:async(g)=>{return await F(q,{method:"GET",...g})}})}},$pA=(A)=>{return KZA(A,A.options.roles||DZA)},OZA=(A)=>{let q=M$(!1),F=M$(!1),g=M$(!1),E=M$(!1),_={admin:Sk,member:zk,owner:Ck,...A?.roles};return{id:"organization",$InferServerPlugin:{},getActions:(D,j,K)=>({$Infer:{ActiveOrganization:{},Organization:{},Invitation:{},Member:{},Team:{}},organization:{checkRolePermission:($)=>{return $pA({role:$.role,options:{ac:A?.ac,roles:_},permissions:$.permissions??$.permission})}}}),getAtoms:(D)=>{let j=OG(q,"/organization/list",D,{method:"GET"});return{$listOrg:q,$activeOrgSignal:F,$activeMemberSignal:g,$activeMemberRoleSignal:E,activeOrganization:OG([F],"/organization/get-full-organization",D,()=>({method:"GET"})),listOrganizations:j,activeMember:OG([g],"/organization/get-active-member",D,{method:"GET"}),activeMemberRole:OG([E],"/organization/get-active-member-role",D,{method:"GET"})}},pathMethods:{"/organization/get-full-organization":"GET","/organization/list-user-teams":"GET"},atomListeners:[{matcher(D){return D==="/organization/create"||D==="/organization/delete"||D==="/organization/update"},signal:"$listOrg"},{matcher(D){return D.startsWith("/organization")},signal:"$activeOrgSignal"},{matcher(D){return D.startsWith("/organization/set-active")},signal:"$sessionSignal"},{matcher(D){return D.includes("/organization/update-member-role")},signal:"$activeMemberSignal"},{matcher(D){return D.includes("/organization/update-member-role")},signal:"$activeMemberRoleSignal"}]}};var QZA=W(()=>{sN();KL();eN();Bk();UL();Rk();_ZA();jZA();$ZA();UZA();Lk()});var YZA=(A,q,F)=>(...g)=>s8((E)=>{try{A(...g,(_,D)=>{if(_)E(qg(q?q(_,g):_));else E(Q6(D))})}catch(_){E(F?qg(F(_,g)):O$(_))}});var JZA=W(()=>{AE()});var ZF;var HZA=W(()=>{JZA();ZF=YZA});var IZA;var MZA=W(()=>{LQ();IZA=PQ});var xk=(A,q)=>{switch(q._tag){case"StringKeyword":case"TemplateLiteral":return Object.keys(A);case"SymbolKeyword":return Object.getOwnPropertySymbols(A);case"Refinement":return xk(A,q.from)}},jY=(A)=>{let q=!1,F;return()=>{if(q)return F;return F=A(),q=!0,F}},hk=(A)=>Array.isArray(A),PZA=(A)=>!Array.isArray(A),XZA=(A)=>`[${$U(A)}]`,ZL=(A)=>hk(A)?A.map(XZA).join(""):XZA(A);var KY=W(()=>{b6()});var O2=(A,q,F,g)=>{let E=A;if(F&&M6(F))E+=`
|
|
121
121
|
at path: ${ZL(F)}`;if(q!==void 0)E+=`
|
|
122
122
|
details: ${q}`;if(g)E+=`
|
|
123
123
|
schema (${g._tag}): ${g}`;return E},bk=(A,q,F)=>O2("Unsupported schema or overlapping types",`cannot extend ${A} with ${q}`,F),NZA=(A)=>O2("Unsupported key schema",void 0,void 0,A),LZA=(A)=>O2("Unsupported literal",`literal value: ${v_(A)}`),kk=(A)=>O2("Duplicate index signature",`${A} index signature`),VZA,TZA,uk=(A)=>O2("Duplicate property signature transformation",`Duplicate key ${v_(A)}`),OL=(A)=>O2("Duplicate property signature",`Duplicate key ${v_(A)}`);var vk=W(()=>{o6();b6();KY();VZA=O2("Unsupported index signature parameter","An index signature parameter type must be `string`, `symbol`, a template literal type or a refinement of the previous types"),TZA=O2("Invalid element","A required element cannot follow an optional element. ts(1257)")});var BZA;var RZA=W(()=>{BZA=Symbol.for("effect/SchemaId/DateFromSelf")});class $7{typeParameters;decodeUnknown;encodeUnknown;annotations;_tag="Declaration";constructor(A,q,F,g={}){this.typeParameters=A,this.decodeUnknown=q,this.encodeUnknown=F,this.annotations=g}toString(){return Bq(aK(this),()=>"<declaration schema>")}toJSON(){return{_tag:this._tag,typeParameters:this.typeParameters.map((A)=>A.toJSON()),annotations:VF(this.annotations)}}}class U7{literal;annotations;_tag="Literal";constructor(A,q={}){this.literal=A,this.annotations=q}toString(){return Bq(aK(this),()=>v_(this.literal))}toJSON(){return{_tag:this._tag,literal:jU(this.literal)?String(this.literal):this.literal,annotations:VF(this.annotations)}}}class YL{symbol;annotations;_tag="UniqueSymbol";constructor(A,q={}){this.symbol=A,this.annotations=q}toString(){return Bq(aK(this),()=>v_(this.symbol))}toJSON(){return{_tag:this._tag,symbol:String(this.symbol),annotations:VF(this.annotations)}}}class dZA{annotations;_tag="UndefinedKeyword";constructor(A={}){this.annotations=A}toString(){return pj(this)}toJSON(){return{_tag:this._tag,annotations:VF(this.annotations)}}}class aZA{annotations;_tag="VoidKeyword";constructor(A={}){this.annotations=A}toString(){return pj(this)}toJSON(){return{_tag:this._tag,annotations:VF(this.annotations)}}}class rZA{annotations;_tag="NeverKeyword";constructor(A={}){this.annotations=A}toString(){return pj(this)}toJSON(){return{_tag:this._tag,annotations:VF(this.annotations)}}}class fZA{annotations;_tag="UnknownKeyword";constructor(A={}){this.annotations=A}toString(){return pj(this)}toJSON(){return{_tag:this._tag,annotations:VF(this.annotations)}}}class nZA{annotations;_tag="AnyKeyword";constructor(A={}){this.annotations=A}toString(){return pj(this)}toJSON(){return{_tag:this._tag,annotations:VF(this.annotations)}}}class iZA{annotations;_tag="StringKeyword";constructor(A={}){this.annotations=A}toString(){return pj(this)}toJSON(){return{_tag:this._tag,annotations:VF(this.annotations)}}}class lZA{annotations;_tag="NumberKeyword";constructor(A={}){this.annotations=A}toString(){return pj(this)}toJSON(){return{_tag:this._tag,annotations:VF(this.annotations)}}}class oZA{annotations;_tag="BooleanKeyword";constructor(A={}){this.annotations=A}toString(){return pj(this)}toJSON(){return{_tag:this._tag,annotations:VF(this.annotations)}}}class tZA{annotations;_tag="BigIntKeyword";constructor(A={}){this.annotations=A}toString(){return pj(this)}toJSON(){return{_tag:this._tag,annotations:VF(this.annotations)}}}class sZA{annotations;_tag="SymbolKeyword";constructor(A={}){this.annotations=A}toString(){return pj(this)}toJSON(){return{_tag:this._tag,annotations:VF(this.annotations)}}}class AGA{annotations;_tag="ObjectKeyword";constructor(A={}){this.annotations=A}toString(){return pj(this)}toJSON(){return{_tag:this._tag,annotations:VF(this.annotations)}}}class GY{type;annotations;constructor(A,q={}){this.type=A,this.annotations=q}toJSON(){return{type:this.type.toJSON(),annotations:VF(this.annotations)}}toString(){return String(this.type)}}class PL{elements;rest;isReadonly;annotations;_tag="TupleType";constructor(A,q,F,g={}){this.elements=A,this.rest=q,this.isReadonly=F,this.annotations=g;let E=!1,_=!1;for(let D of A)if(D.isOptional)E=!0;else if(E){_=!0;break}if(_||E&&q.length>1)throw Error(TZA)}toString(){return Bq(aK(this),()=>XpA(this))}toJSON(){return{_tag:this._tag,elements:this.elements.map((A)=>A.toJSON()),rest:this.rest.map((A)=>A.toJSON()),isReadonly:this.isReadonly,annotations:VF(this.annotations)}}}class Z7{type;isReadonly;parameter;constructor(A,q,F){if(this.type=q,this.isReadonly=F,FGA(A))this.parameter=A;else throw Error(VZA)}toString(){return(this.isReadonly?"readonly ":"")+`[x: ${this.parameter}]: ${this.type}`}toJSON(){return{parameter:this.parameter.toJSON(),type:this.type.toJSON(),isReadonly:this.isReadonly}}}class nj{annotations;_tag="TypeLiteral";propertySignatures;indexSignatures;constructor(A,q,F={}){this.annotations=F;let g={};for(let _=0;_<A.length;_++){let D=A[_].name;if(Object.prototype.hasOwnProperty.call(g,D))throw Error(OL(D));g[D]=null}let E={string:!1,symbol:!1};for(let _=0;_<q.length;_++){let D=Qu(q[_].parameter);if(ML(D)){if(E.string)throw Error(kk("string"));E.string=!0}else if(eZA(D)){if(E.symbol)throw Error(kk("symbol"));E.symbol=!0}}this.propertySignatures=A,this.indexSignatures=q}toString(){return Bq(aK(this),()=>PpA(this))}toJSON(){return{_tag:this._tag,propertySignatures:this.propertySignatures.map((A)=>A.toJSON()),indexSignatures:this.indexSignatures.map((A)=>A.toJSON()),annotations:VF(this.annotations)}}}class NE{types;annotations;static make=(A,q)=>{return NL(A)?new NE(A,q):A.length===1?A[0]:HL};static unify=(A,q)=>{return NE.make(VpA(gGA(A)),q)};_tag="Union";constructor(A,q={}){this.types=A,this.annotations=q}toString(){return Bq(aK(this),()=>this.types.map(String).join(" | "))}toJSON(){return{_tag:this._tag,types:this.types.map((A)=>A.toJSON()),annotations:VF(this.annotations)}}}class G7{f;annotations;_tag="Suspend";constructor(A,q={}){this.f=A,this.annotations=q,this.f=jY(A)}toString(){return aK(this).pipe(wD(()=>wF(n9(this.f)(),(A)=>aK(A))),Bq(()=>"<suspended schema>"))}toJSON(){let A=this.f(),q=yk.get(A);if(q)return q;return yk.set(A,{_tag:this._tag}),q={_tag:this._tag,ast:A.toJSON(),annotations:VF(this.annotations)},yk.set(A,q),q}}class O7{from;filter;annotations;_tag="Refinement";constructor(A,q,F={}){this.from=A,this.filter=q,this.annotations=F}toString(){return ZY(this).pipe(Bq(()=>Pq(GGA(this),{onNone:()=>`{ ${this.from} | filter }`,onSome:(A)=>Q2(this.from)?String(this.from)+" & "+A:A})))}toJSON(){return{_tag:this._tag,from:this.from.toJSON(),annotations:VF(this.annotations)}}}class Y2{from;to;transformation;annotations;_tag="Transformation";constructor(A,q,F,g={}){this.from=A,this.to=q,this.transformation=F,this.annotations=g}toString(){return Bq(aK(this),()=>`(${String(this.from)} <-> ${String(this.to)})`)}toJSON(){return{_tag:this._tag,from:this.from.toJSON(),to:this.to.toJSON(),annotations:VF(this.annotations)}}}class TL{decode;encode;_tag="FinalTransformation";constructor(A,q){this.decode=A,this.encode=q}}class DGA{_tag="ComposeTransformation"}class Uu{from;to;decode;encode;constructor(A,q,F,g){this.from=A,this.to=q,this.decode=F,this.encode=g}}class OY{propertySignatureTransformations;_tag="TypeLiteralTransformation";constructor(A){this.propertySignatureTransformations=A;let q={},F={};for(let g of A){let E=g.from;if(q[E])throw Error(uk(E));q[E]=!0;let _=g.to;if(F[_])throw Error(uk(_));F[_]=!0}}}function tD(A,q){let F=!1,g=d1(A.length);for(let E=0;E<A.length;E++){let _=A[E],D=q(_);if(D!==_)F=!0;g[E]=D}return F?g:A}function SpA(A){return Pq(hZA(A),{onNone:()=>"",onSome:(q)=>q.map((F)=>` & Brand<${v_(F)}>`).join("")})}var SZA,CZA,ck,QL,$Y,J_,QG,X$,dk,ak,rk,fk,nk,pk,zZA,ik,lk,ok,tk,sk,UY,xZA,LE,hZA,bZA,kZA,ek,Au,ZY,qu,uZA,vZA,yZA,mZA,cZA,Fu,OpA,gu=(A)=>uw(OpA(A),(q)=>q===!0),Eu,QpA,YpA=(A)=>wD(QpA(A),()=>ZY(A)),P$=(A)=>(q)=>q._tag===A,YG,JL,JpA,HL,_u,pZA,IL,ML,XL,Du,ju,Ku,HpA,IpA,eZA,MpA,JG,qGA=(A)=>A.map((q)=>q.type),XpA=(A)=>{let q=A.elements.map(String).join(", ");return hs(A.rest,{onEmpty:()=>`readonly [${q}]`,onNonEmpty:(F,g)=>{let E=String(F),_=E.includes(" | ")?`(${E})`:E;if(g.length>0){let D=g.map(String).join(", ");if(A.elements.length>0)return`readonly [${q}, ...${_}[], ${D}]`;else return`readonly [...${_}[], ${D}]`}else if(A.elements.length>0)return`readonly [${q}, ...${_}[]]`;else return`ReadonlyArray<${E}>`}})},gg,FGA=(A)=>{switch(A._tag){case"StringKeyword":case"SymbolKeyword":case"TemplateLiteral":return!0;case"Refinement":return FGA(A.from)}return!1},wZA=(A)=>A.map(String).join("; "),PpA=(A)=>{if(A.propertySignatures.length>0){let q=A.propertySignatures.map(String).join("; ");if(A.indexSignatures.length>0)return`{ ${q}; ${wZA(A.indexSignatures)} }`;else return`{ ${q} }`}else if(A.indexSignatures.length>0)return`{ ${wZA(A.indexSignatures)} }`;else return"{}"},$u,NpA,LpA,gGA=(A)=>a1(A,(q)=>LL(q)?gGA(q.types):[q]),VpA=(A)=>{let q=NpA(A),F=[],g={},E=[];for(let _ of q)switch(_._tag){case"NeverKeyword":break;case"AnyKeyword":return[pZA];case"UnknownKeyword":return[_u];case"ObjectKeyword":case"UndefinedKeyword":case"VoidKeyword":case"StringKeyword":case"NumberKeyword":case"BooleanKeyword":case"BigIntKeyword":case"SymbolKeyword":{if(!g[_._tag])g[_._tag]=_,F.push(_);break}case"Literal":{let D=typeof _.literal;switch(D){case"string":case"number":case"bigint":case"boolean":{let j=LpA[D];if(!g[j]&&!E.includes(_.literal))E.push(_.literal),F.push(_);break}case"object":{if(!E.includes(_.literal))E.push(_.literal),F.push(_);break}}break}case"UniqueSymbol":{if(!g.SymbolKeyword&&!E.includes(_.symbol))E.push(_.symbol),F.push(_);break}case"TupleType":{if(!g.ObjectKeyword)F.push(_);break}case"TypeLiteral":{if(_.propertySignatures.length===0&&_.indexSignatures.length===0){if(!g["{}"])g["{}"]=_,F.push(_)}else if(!g.ObjectKeyword)F.push(_);break}default:F.push(_)}return F},EGA=(A,q)=>A.map(q),NL=(A)=>A.length>1,LL,yk,Q2,VL,_GA,TpA=(A)=>(q)=>q._tag===A,jGA,Zu,WL=(A,q)=>{let F=Object.getOwnPropertyDescriptors(A),g={...A.annotations};delete g[$Y];let E={...g,...q},_=Fu(A);if(jq(_))E[UY]=WL(_.value,q);return F.annotations.value=E,Object.create(Object.getPrototypeOf(A),F)},WpA="[\\s\\S]*?",BpA="[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?",KGA=(A,q)=>{switch(A._tag){case"Literal":return Y8(String(A.literal));case"StringKeyword":return WpA;case"NumberKeyword":return BpA;case"TemplateLiteral":return $GA(A,q,!1);case"Union":return A.types.map((F)=>KGA(F,q)).join("|")}},RpA=(A,q,F,g)=>{if(LL(A)){if(F&&!g)return`(?:${q})`}else if(!F||!g)return q;return`(${q})`},$GA=(A,q,F)=>{let g="";if(A.head!==""){let E=Y8(A.head);g+=q&&F?`(${E})`:E}for(let E of A.spans){let _=KGA(E.type,q);if(g+=RpA(E.type,_,q,F),E.literal!==""){let D=Y8(E.literal);g+=q&&F?`(${D})`:D}}return g},UGA=(A)=>new RegExp(`^${$GA(A,!1,!0)}$`),Gu=(A,q)=>{let F=[],g=[],E=(_)=>{switch(_._tag){case"NeverKeyword":break;case"StringKeyword":case"SymbolKeyword":case"TemplateLiteral":case"Refinement":g.push(new Z7(_,q,!0));break;case"Literal":if(lF(_.literal)||zE(_.literal))F.push(new gg(_.literal,q,!1,!0));else throw Error(LZA(_.literal));break;case"Enums":{for(let[D,j]of _.enums)F.push(new gg(j,q,!1,!0));break}case"UniqueSymbol":F.push(new gg(_.symbol,q,!1,!0));break;case"Union":_.types.forEach(E);break;default:throw Error(NZA(_))}};return E(A),{propertySignatures:F,indexSignatures:g}},Ou=(A)=>(q)=>{let F=void 0;for(let g of A)if(Object.prototype.hasOwnProperty.call(q.annotations,g)){if(F===void 0)F={};F[g]=q.annotations[g]}return F},ZGA=(A)=>(q)=>{let F={...q.annotations};for(let g of A)delete F[g];return F},wpA,bF=(A)=>{switch(A._tag){case"Declaration":{let q=tD(A.typeParameters,bF);return q===A.typeParameters?A:new $7(q,A.decodeUnknown,A.encodeUnknown,A.annotations)}case"TupleType":{let q=tD(A.elements,(E)=>{let _=bF(E.type);return _===E.type?E:new JG(_,E.isOptional)}),F=qGA(A.rest),g=tD(F,bF);return q===A.elements&&g===F?A:new PL(q,g.map((E)=>new GY(E)),A.isReadonly,A.annotations)}case"TypeLiteral":{let q=tD(A.propertySignatures,(g)=>{let E=bF(g.type);return E===g.type?g:new gg(g.name,E,g.isOptional,g.isReadonly)}),F=tD(A.indexSignatures,(g)=>{let E=bF(g.type);return E===g.type?g:new Z7(g.parameter,E,g.isReadonly)});return q===A.propertySignatures&&F===A.indexSignatures?A:new nj(q,F,A.annotations)}case"Union":{let q=tD(A.types,bF);return q===A.types?A:NE.make(q,A.annotations)}case"Suspend":return new G7(()=>bF(A.f()),A.annotations);case"Refinement":{let q=bF(A.from);return q===A.from?A:new O7(q,A.filter,A.annotations)}case"Transformation":{let q=wpA(A);return bF(q!==void 0?WL(A.to,q):A.to)}}return A},mk=(A)=>{switch(A._tag){case"Transformation":return A.from;case"Refinement":return mk(A.from);case"Suspend":return mk(A.f())}},dK=(A,q)=>{switch(A._tag){case"Declaration":{let F=tD(A.typeParameters,(g)=>dK(g,q));return F===A.typeParameters?A:new $7(F,A.decodeUnknown,A.encodeUnknown)}case"TupleType":{let F=tD(A.elements,(_)=>{let D=dK(_.type,q);return D===_.type?_:new JG(D,_.isOptional)}),g=qGA(A.rest),E=tD(g,(_)=>dK(_,q));return F===A.elements&&E===g?A:new PL(F,E.map((_)=>new GY(_)),A.isReadonly)}case"TypeLiteral":{let F=tD(A.propertySignatures,(E)=>{let _=dK(E.type,q);return _===E.type?E:new gg(E.name,_,E.isOptional,E.isReadonly)}),g=tD(A.indexSignatures,(E)=>{let _=dK(E.type,q);return _===E.type?E:new Z7(E.parameter,_,E.isReadonly)});return F===A.propertySignatures&&g===A.indexSignatures?A:new nj(F,g)}case"Union":{let F=tD(A.types,(g)=>dK(g,q));return F===A.types?A:NE.make(F)}case"Suspend":{let F=void 0,g=YpA(A);if(jq(g)){let E=q?"Bound":"";F={[Eu]:`${g.value}Encoded${E}`}}return new G7(()=>dK(A.f(),q),F)}case"Refinement":{let F=dK(A.from,q);if(q){if(F===A.from)return A;if(mk(A.from)===void 0&&gu(A))return new O7(F,A.filter,A.annotations);return F}else return F}case"Transformation":return dK(A.from,q)}return A},QY=(A)=>dK(A,!1),VF=(A)=>{let q={};for(let F of Object.getOwnPropertySymbols(A))q[String(F)]=A[F];return q},Qu=(A)=>{switch(A._tag){case"StringKeyword":case"SymbolKeyword":case"TemplateLiteral":return A;case"Refinement":return Qu(A.from)}},pj=(A)=>Bq(aK(A),()=>A._tag),GGA=(A)=>ek(A).pipe(wD(()=>qu(A)),wD(()=>Au(A)),k6((q)=>q+SpA(A))),aK=(A)=>wD(ZY(A),()=>GGA(A));var Yu=W(()=>{o6();GA();b6();vk();KY();Q8();Rq();f9();Wq();kC();SZA=Symbol.for("effect/annotation/Brand"),CZA=Symbol.for("effect/annotation/SchemaId"),ck=Symbol.for("effect/annotation/Message"),QL=Symbol.for("effect/annotation/MissingMessage"),$Y=Symbol.for("effect/annotation/Identifier"),J_=Symbol.for("effect/annotation/Title"),QG=Symbol.for("effect/annotation/AutoTitle"),X$=Symbol.for("effect/annotation/Description"),dk=Symbol.for("effect/annotation/Examples"),ak=Symbol.for("effect/annotation/Default"),rk=Symbol.for("effect/annotation/JSONSchema"),fk=Symbol.for("effect/annotation/Arbitrary"),nk=Symbol.for("effect/annotation/Pretty"),pk=Symbol.for("effect/annotation/Equivalence"),zZA=Symbol.for("effect/annotation/Documentation"),ik=Symbol.for("effect/annotation/Concurrency"),lk=Symbol.for("effect/annotation/Batching"),ok=Symbol.for("effect/annotation/ParseIssueTitle"),tk=Symbol.for("effect/annotation/ParseOptions"),sk=Symbol.for("effect/annotation/DecodingFallback"),UY=Symbol.for("effect/annotation/Surrogate"),xZA=Symbol.for("effect/annotation/StableFilter"),LE=P(2,(A,q)=>Object.prototype.hasOwnProperty.call(A.annotations,q)?n(A.annotations[q]):p()),hZA=LE(SZA),bZA=LE(ck),kZA=LE(QL),ek=LE(J_),Au=LE(QG),ZY=LE($Y),qu=LE(X$),uZA=LE(ik),vZA=LE(lk),yZA=LE(ok),mZA=LE(tk),cZA=LE(sk),Fu=LE(UY),OpA=LE(xZA),Eu=Symbol.for("effect/annotation/JSONIdentifier"),QpA=LE(Eu);YG=P$("Literal");JL=new dZA({[J_]:"undefined"});JpA=new aZA({[J_]:"void"});HL=new rZA({[J_]:"never"});_u=new fZA({[J_]:"unknown"});pZA=new nZA({[J_]:"any"});IL=new iZA({[J_]:"string",[X$]:"a string"}),ML=P$("StringKeyword");XL=new lZA({[J_]:"number",[X$]:"a number"}),Du=P$("NumberKeyword");ju=new oZA({[J_]:"boolean",[X$]:"a boolean"}),Ku=P$("BooleanKeyword");HpA=new tZA({[J_]:"bigint",[X$]:"a bigint"});IpA=new sZA({[J_]:"symbol",[X$]:"a symbol"}),eZA=P$("SymbolKeyword");MpA=new AGA({[J_]:"object",[X$]:"an object in the TypeScript meaning, i.e. the `object` type"});JG=class JG extends GY{isOptional;constructor(A,q,F={}){super(A,F);this.isOptional=q}toJSON(){return{type:this.type.toJSON(),isOptional:this.isOptional,annotations:VF(this.annotations)}}toString(){return String(this.type)+(this.isOptional?"?":"")}};gg=class gg extends JG{name;isReadonly;constructor(A,q,F,g,E){super(q,F,E);this.name=A,this.isReadonly=g}toString(){return(this.isReadonly?"readonly ":"")+String(this.name)+(this.isOptional?"?":"")+": "+this.type}toJSON(){return{name:String(this.name),type:this.type.toJSON(),isOptional:this.isOptional,isReadonly:this.isReadonly,annotations:VF(this.annotations)}}};$u=P$("TypeLiteral"),NpA=ZE(hI(tg,(A)=>{switch(A._tag){case"AnyKeyword":return 0;case"UnknownKeyword":return 1;case"ObjectKeyword":return 2;case"StringKeyword":case"NumberKeyword":case"BooleanKeyword":case"BigIntKeyword":case"SymbolKeyword":return 3}return 4})),LpA={string:"StringKeyword",number:"NumberKeyword",boolean:"BooleanKeyword",bigint:"BigIntKeyword"};LL=P$("Union"),yk=mA(Symbol.for("effect/Schema/AST/toJSONMemoMap"),()=>new WeakMap);Q2=P$("Refinement"),VL={};_GA=P$("Transformation");jGA=new DGA;Zu=TpA("TypeLiteralTransformation"),wpA=Ou([dk,ak,rk,fk,nk,pk])});class Jg{path;actual;issue;_tag="Pointer";constructor(A,q,F){this.path=A,this.actual=q,this.issue=F}}class Iu{actual;message;_tag="Unexpected";constructor(A,q){this.actual=A,this.message=q}}class Q7{ast;message;_tag="Missing";actual=void 0;constructor(A,q){this.ast=A,this.message=q}}class TF{ast;actual;issues;output;_tag="Composite";constructor(A,q,F,g){this.ast=A,this.actual=q,this.issues=F,this.output=g}}class RL{ast;actual;kind;issue;_tag="Refinement";constructor(A,q,F,g){this.ast=A,this.actual=q,this.kind=F,this.issue=g}}class wL{ast;actual;kind;issue;_tag="Transformation";constructor(A,q,F,g){this.ast=A,this.actual=q,this.kind=F,this.issue=g}}class KD{ast;actual;message;_tag="Type";constructor(A,q,F){this.ast=A,this.actual=q,this.message=F}}class Mu{ast;actual;message;_tag="Forbidden";constructor(A,q,F){this.ast=A,this.actual=q,this.message=F}}function ij(A){return A.sort(upA).map((q)=>q[1])}function apA(A){return qu(A).pipe(wD(()=>ek(A)),wD(()=>Au(A)),wD(()=>ZY(A)),Bq(()=>`{ ${A.from} | filter }`))}function rpA(A){if(A.message!==void 0)return A.message;return`Expected ${Q2(A.ast)?apA(A.ast):String(A.ast)}, actual ${v_(A.actual)}`}var QGA,HGA,IGA=(A)=>new HGA({issue:A}),J7,Pu,H_,N$,I_,SL,MGA,CL=(A,q)=>{if(q===void 0||zE(q))return A;if(A===void 0)return q;return{...A,...q}},CpA=(A,q,F)=>{let g=ug(A,q);return(E,_)=>g(E,CL(F,_))},zpA=(A,q,F)=>{let g=CpA(A,q,F);return(E,_)=>r9(g(E,_),IGA)},xpA=(A,q,F)=>{let g=ug(A,q);return(E,_)=>g(E,{...CL(F,_),isEffectAllowed:!0})},XGA=(A,q)=>xpA(A.ast,!1,q),zL=(A,q)=>zpA(bF(A.ast),!0,q),PGA=(A,q)=>{let F=ug(bF(A.ast),!0);return(g,E)=>eE(F(g,{exact:!0,...CL(q,E)}))},hpA,bpA,ug=(A,q)=>{let F=q?hpA:bpA,g=F.get(A);if(g)return g;let E=kpA(A,q),_=mZA(A),D=jq(_)?($,U)=>E($,CL(U,_.value)):E,j=cZA(A),K=q&&jq(j)?($,U)=>JY(MGA(D($,U),j.value),A,$,U):D;return F.set(A,K),K},Ju=(A)=>l6(uZA(A)),Hu=(A)=>l6(vZA(A)),kpA=(A,q)=>{switch(A._tag){case"Refinement":if(q){let F=ug(A.from,!0);return(g,E)=>{E=E??VL;let _=E?.errors==="all",D=N$(MGA(F(g,E),(j)=>{let K=new RL(A,g,"From",j);if(_&&gu(A)&&WGA(j))return Pq(A.filter(g,E,A),{onNone:()=>xA(K),onSome:($)=>xA(new TF(A,g,[K,new RL(A,g,"Predicate",$)]))});return xA(K)}),(j)=>Pq(A.filter(j,E,A),{onNone:()=>fA(j),onSome:(K)=>xA(new RL(A,g,"Predicate",K))}));return JY(D,A,g,E)}}else{let F=ug(bF(A),!0),g=ug(LGA(A.from),!1);return(E,_)=>JY(N$(F(E,_),(D)=>g(D,_)),A,E,_)}case"Transformation":{let F=vpA(A.transformation,q),g=q?ug(A.from,!0):ug(A.to,!1),E=q?ug(A.to,!0):ug(A.from,!1);return(_,D)=>JY(N$(SL(g(_,D),(j)=>new wL(A,_,q?"Encoded":"Type",j)),(j)=>N$(SL(F(j,D??VL,A,_),(K)=>new wL(A,_,"Transformation",K)),(K)=>SL(E(K,D),($)=>new wL(A,_,q?"Type":"Encoded",$)))),A,_,D)}case"Declaration":{let F=q?A.decodeUnknown(...A.typeParameters):A.encodeUnknown(...A.typeParameters);return(g,E)=>JY(F(g,E??VL,A),A,g,E)}case"Literal":return jD(A,(F)=>F===A.literal);case"UniqueSymbol":return jD(A,(F)=>F===A.symbol);case"UndefinedKeyword":return jD(A,Tt);case"NeverKeyword":return jD(A,Wt);case"UnknownKeyword":case"AnyKeyword":case"VoidKeyword":return fA;case"StringKeyword":return jD(A,lF);case"NumberKeyword":return jD(A,zE);case"BooleanKeyword":return jD(A,H0);case"BigIntKeyword":return jD(A,jU);case"SymbolKeyword":return jD(A,z1);case"ObjectKeyword":return jD(A,Rg);case"Enums":return jD(A,(F)=>A.enums.some(([g,E])=>E===F));case"TemplateLiteral":{let F=UGA(A);return jD(A,(g)=>lF(g)&&F.test(g))}case"TupleType":{let F=A.elements.map(($)=>ug($.type,q)),g=A.rest.map(($)=>ug($.type,q)),E=A.elements.filter(($)=>!$.isOptional);if(A.rest.length>0)E=E.concat(A.rest.slice(1));let _=E.length,D=A.elements.length>0?A.elements.map(($,U)=>U).join(" | "):"never",j=Ju(A),K=Hu(A);return($,U)=>{if(!cw($))return xA(new KD(A,$));let Z=U?.errors==="all",G=[],O=0,Q=[],Y=$.length;for(let L=Y;L<=_-1;L++){let M=new Jg(L,$,new Q7(E[L-Y]));if(Z){G.push([O++,M]);continue}else return xA(new TF(A,$,M,Q))}if(A.rest.length===0)for(let L=A.elements.length;L<=Y-1;L++){let M=new Jg(L,$,new Iu($[L],`is unexpected, expected: ${D}`));if(Z){G.push([O++,M]);continue}else return xA(new TF(A,$,M,Q))}let J=0,I=void 0;for(;J<F.length;J++)if(Y<J+1){if(A.elements[J].isOptional)continue}else{let L=F[J],M=L($[J],U);if(H_(M)){if(T6(M)){let T=new Jg(J,$,M.left);if(Z){G.push([O++,T]);continue}else return xA(new TF(A,$,T,ij(Q)))}Q.push([O++,M.right])}else{let T=O++,V=J;if(!I)I=[];I.push(({es:N,output:B})=>nA(E2(M),(z)=>{if(T6(z)){let x=new Jg(V,$,z.left);if(Z)return N.push([T,x]),Nq;else return xA(new TF(A,$,x,ij(B)))}return B.push([T,z.right]),Nq}))}}if(M6(g)){let[L,...M]=g;for(;J<Y-M.length;J++){let T=L($[J],U);if(H_(T))if(T6(T)){let V=new Jg(J,$,T.left);if(Z){G.push([O++,V]);continue}else return xA(new TF(A,$,V,ij(Q)))}else Q.push([O++,T.right]);else{let V=O++,N=J;if(!I)I=[];I.push(({es:B,output:z})=>nA(E2(T),(x)=>{if(T6(x)){let S=new Jg(N,$,x.left);if(Z)return B.push([V,S]),Nq;else return xA(new TF(A,$,S,ij(z)))}else return z.push([V,x.right]),Nq}))}}for(let T=0;T<M.length;T++)if(J+=T,Y<J+1)continue;else{let V=M[T]($[J],U);if(H_(V)){if(T6(V)){let N=new Jg(J,$,V.left);if(Z){G.push([O++,N]);continue}else return xA(new TF(A,$,N,ij(Q)))}Q.push([O++,V.right])}else{let N=O++,B=J;if(!I)I=[];I.push(({es:z,output:x})=>nA(E2(V),(S)=>{if(T6(S)){let b=new Jg(B,$,S.left);if(Z)return z.push([N,b]),Nq;else return xA(new TF(A,$,b,ij(x)))}return x.push([N,S.right]),Nq}))}}}let X=({es:L,output:M})=>C0(L)?xA(new TF(A,$,ij(L),ij(M))):fA(ij(M));if(I&&I.length>0){let L=I;return E6(()=>{let M={es:v4(G),output:v4(Q)};return nA(vE(L,(T)=>T(M),{concurrency:j,batching:K,discard:!0}),()=>X(M))})}return X({output:Q,es:G})}}case"TypeLiteral":{if(A.propertySignatures.length===0&&A.indexSignatures.length===0)return jD(A,Bt);let F=[],g={},E=[];for(let U of A.propertySignatures)F.push([ug(U.type,q),U]),g[U.name]=null,E.push(U.name);let _=A.indexSignatures.map((U)=>[ug(U.parameter,q),ug(U.type,q),U.parameter]),D=NE.make(A.indexSignatures.map((U)=>U.parameter).concat(E.map((U)=>z1(U)?new YL(U):new U7(U)))),j=ug(D,q),K=Ju(A),$=Hu(A);return(U,Z)=>{if(!Ew(U))return xA(new KD(A,U));let G=Z?.errors==="all",O=[],Q=0,Y=Z?.onExcessProperty==="error",J=Z?.onExcessProperty==="preserve",I={},X;if(Y||J){X=Reflect.ownKeys(U);for(let V of X){let N=j(V,Z);if(H_(N)&&T6(N))if(Y){let B=new Jg(V,U,new Iu(U[V],`is unexpected, expected: ${String(D)}`));if(G){O.push([Q++,B]);continue}else return xA(new TF(A,U,B,I))}else I[V]=U[V]}}let L=void 0,M=Z?.exact===!0;for(let V=0;V<F.length;V++){let N=F[V][1],B=N.name,z=Object.prototype.hasOwnProperty.call(U,B);if(!z){if(N.isOptional)continue;else if(M){let b=new Jg(B,U,new Q7(N));if(G){O.push([Q++,b]);continue}else return xA(new TF(A,U,b,I))}}let x=F[V][0],S=x(U[B],Z);if(H_(S)){if(T6(S)){let b=new Jg(B,U,z?S.left:new Q7(N));if(G){O.push([Q++,b]);continue}else return xA(new TF(A,U,b,I))}I[B]=S.right}else{let b=Q++,h=B;if(!L)L=[];L.push(({es:c,output:e})=>nA(E2(S),(AA)=>{if(T6(AA)){let FA=new Jg(h,U,z?AA.left:new Q7(N));if(G)return c.push([b,FA]),Nq;else return xA(new TF(A,U,FA,e))}return e[h]=AA.right,Nq}))}}for(let V=0;V<_.length;V++){let N=_[V],B=N[0],z=N[1],x=xk(U,N[2]);for(let S of x){let b=B(S,Z);if(H_(b)&&eE(b)){let h=z(U[S],Z);if(H_(h)){if(T6(h)){let c=new Jg(S,U,h.left);if(G){O.push([Q++,c]);continue}else return xA(new TF(A,U,c,I))}else if(!Object.prototype.hasOwnProperty.call(g,S))I[S]=h.right}else{let c=Q++,e=S;if(!L)L=[];L.push(({es:AA,output:FA})=>nA(E2(h),(IA)=>{if(T6(IA)){let oA=new Jg(e,U,IA.left);if(G)return AA.push([c,oA]),Nq;else return xA(new TF(A,U,oA,FA))}else{if(!Object.prototype.hasOwnProperty.call(g,S))FA[S]=IA.right;return Nq}}))}}}}let T=({es:V,output:N})=>{if(C0(V))return xA(new TF(A,U,ij(V),N));if(Z?.propertyOrder==="original"){let B=X||Reflect.ownKeys(U);for(let x of E)if(B.indexOf(x)===-1)B.push(x);let z={};for(let x of B)if(Object.prototype.hasOwnProperty.call(N,x))z[x]=N[x];return fA(z)}return fA(N)};if(L&&L.length>0){let V=L;return E6(()=>{let N={es:v4(O),output:Object.assign({},I)};return nA(vE(V,(B)=>B(N),{concurrency:K,batching:$,discard:!0}),()=>T(N))})}return T({es:O,output:I})}}case"Union":{let F=NGA(A.types,q),g=Reflect.ownKeys(F.keys),E=g.length,_=A.types.length,D=new Map;for(let $=0;$<_;$++)D.set(A.types[$],ug(A.types[$],q));let j=Ju(A)??1,K=Hu(A);return($,U)=>{let Z=[],G=0,O=[];if(E>0)if(C9($))for(let J=0;J<E;J++){let I=g[J],X=F.keys[I].buckets;if(Object.prototype.hasOwnProperty.call($,I)){let L=String($[I]);if(Object.prototype.hasOwnProperty.call(X,L))O=O.concat(X[L]);else{let{candidates:M,literals:T}=F.keys[I],V=NE.make(T),N=M.length===_?new nj([new gg(I,V,!1,!0)],[]):NE.make(M);Z.push([G++,new TF(N,$,new Jg(I,$,new KD(V,$[I])))])}}else{let{candidates:L,literals:M}=F.keys[I],T=new gg(I,NE.make(M),!1,!0),V=L.length===_?new nj([T],[]):NE.make(L);Z.push([G++,new TF(V,$,new Jg(I,$,new Q7(T)))])}}else{let J=F.candidates.length===_?A:NE.make(F.candidates);Z.push([G++,new KD(J,$)])}if(F.otherwise.length>0)O=O.concat(F.otherwise);let Q=void 0;for(let J=0;J<O.length;J++){let I=O[J],X=D.get(I)($,U);if(H_(X)&&(!Q||Q.length===0))if(eE(X))return X;else Z.push([G++,X.left]);else{let L=G++;if(!Q)Q=[];Q.push((M)=>E6(()=>{if("finalResult"in M)return Nq;else return nA(E2(X),(T)=>{if(eE(T))M.finalResult=T;else M.es.push([L,T.left]);return Nq})}))}}let Y=(J)=>C0(J)?J.length===1&&J[0][1]._tag==="Type"?xA(J[0][1]):xA(new TF(A,$,ij(J))):xA(new KD(A,$));if(Q&&Q.length>0){let J=Q;return E6(()=>{let I={es:v4(Z)};return nA(vE(J,(X)=>X(I),{concurrency:j,batching:K,discard:!0}),()=>{if("finalResult"in I)return I.finalResult;return Y(I.es)})})}return Y(Z)}}case"Suspend":{let F=jY(()=>ug(A.f(),q));return(g,E)=>F()(g,E)}}},jD=(A,q)=>(F)=>q(F)?fA(F):xA(new KD(A,F)),YY=(A,q)=>{switch(A._tag){case"Declaration":{let F=Fu(A);if(jq(F))return YY(F.value,q);break}case"TypeLiteral":{let F=[];for(let g=0;g<A.propertySignatures.length;g++){let E=A.propertySignatures[g],_=q?QY(E.type):bF(E.type);if(YG(_)&&!E.isOptional)F.push([E.name,_])}return F}case"TupleType":{let F=[];for(let g=0;g<A.elements.length;g++){let E=A.elements[g],_=q?QY(E.type):bF(E.type);if(YG(_)&&!E.isOptional)F.push([g,_])}return F}case"Refinement":return YY(A.from,q);case"Suspend":return YY(A.f(),q);case"Transformation":return YY(q?A.from:A.to,q)}return[]},NGA=(A,q)=>{let F={},g=[],E=[];for(let _=0;_<A.length;_++){let D=A[_],j=YY(D,q);if(j.length>0){E.push(D);for(let K=0;K<j.length;K++){let[$,U]=j[K],Z=String(U.literal);F[$]=F[$]||{buckets:{},literals:[],candidates:[]};let G=F[$].buckets;if(Object.prototype.hasOwnProperty.call(G,Z)){if(K<j.length-1)continue;G[Z].push(D),F[$].literals.push(U),F[$].candidates.push(D)}else{G[Z]=[D],F[$].literals.push(U),F[$].candidates.push(D);break}}}else g.push(D)}return{keys:F,otherwise:g,candidates:E}},LGA=(A)=>Q2(A)?LGA(A.from):A,JY=(A,q,F,g)=>{if(g?.isEffectAllowed===!0)return A;if(H_(A))return A;let E=new f3,_=RN(A,{scheduler:E});E.flush();let D=_.unsafePoll();if(D){if(qx(D))return fA(D.value);let j=D.cause;if(pDA(j))return xA(j.error);return xA(new Mu(q,F,oDA(j)))}return xA(new Mu(q,F,"cannot be be resolved synchronously, this is caused by using runSync on an effect that performs async work"))},upA=([A],[q])=>A>q?1:A<q?-1:0,vpA=(A,q)=>{switch(A._tag){case"FinalTransformation":return q?A.decode:A.encode;case"ComposeTransformation":return fA;case"TypeLiteralTransformation":return(F)=>{let g=fA(F);for(let E of A.propertySignatureTransformations){let[_,D]=q?[E.from,E.to]:[E.to,E.from],j=q?E.decode:E.encode;g=I_(g,($)=>{let U=j(Object.prototype.hasOwnProperty.call($,_)?n($[_]):p());if(delete $[_],jq(U))$[D]=U.value;return $})}return g}}},mE=(A,q=[])=>({value:A,forest:q}),HY,ypA=(A)=>A.value+VGA(`
|
|
@@ -487,7 +487,7 @@ Stopped streaming logs.`)),g()};process.on("SIGINT",D),process.on("SIGTERM",D),z
|
|
|
487
487
|
server stop <group> --all
|
|
488
488
|
server stop --all`)}let F=[],g=0;while(g<A.length){let E=A[g],_=A[g+1];if(_&&E8q.test(_)){let D=_8q(_);F.push({type:"group",groupIdentifier:E,numericalIds:{kind:"specific",ids:D}}),g+=2}else if(q)F.push({type:"group",groupIdentifier:E,numericalIds:{kind:"all"}}),g+=1;else if(A.length===1)F.push({type:"server-id",identifier:E}),g+=1;else throw new tA(`Ambiguous target: "${E}"`,"Specify numerical IDs (e.g. lobby 1-3) or use --all to stop all servers in a group")}return F}var E8q;var GLA=W(()=>{N_();E8q=/^[\d,-]+$/});function D8q(A,q){if(A.persistent_server?.name)return A.persistent_server.name;return`${q.find((E)=>E.server_group_id===A.server_group_id)?.name||A.server_group_id||"unknown"} ${A.numerical_id??"?"}`}function j8q(A,q,F){let g=[],E=[];for(let j of A){if(j.type==="server-id"){let $=iO(j.identifier,q);if($?.server_id)g.push($);else E.push(`No server matched "${j.identifier}"`);continue}if(j.groupIdentifier==="*"){g.push(...q.filter(($)=>$.server_id));continue}let K=g4(j.groupIdentifier,F);if(!K?.server_group_id){E.push(`Group "${j.groupIdentifier}" not found`);continue}if(j.numericalIds.kind==="all"){let $=q.filter((U)=>U.server_group_id===K.server_group_id&&U.server_id);if($.length===0)E.push(`No running servers in group "${K.name||j.groupIdentifier}"`);g.push(...$)}else for(let $ of j.numericalIds.ids){let U=lO(j.groupIdentifier,$,q,F);if(U?.server_id)g.push(U);else E.push(`No server found for ${K.name||j.groupIdentifier} ${$}`)}}let _=new Set;return{resolved:g.filter((j)=>{if(!j.server_id||_.has(j.server_id))return!1;return _.add(j.server_id),!0}),warnings:E}}async function OLA(A,q){await Gq();let F=hA("Looking up servers...",{color:"cyan"}),[g,E]=await Promise.all([Ig(),kF()]);F();let _=g.data?.servers??[],D=E.data?.server_groups??[],j=ZLA(A,q),{resolved:K,warnings:$}=j8q(j,_,D);for(let Y of $)console.log(H.yellow(`Warning: ${Y}`));if(K.length===0)console.log(H.yellow(`
|
|
489
489
|
No servers to stop.`)),console.log(H.yellow('Try "server list" to see available servers.')),process.exit(1);let U=K.map((Y)=>D8q(Y,D));console.log(H.dim(`
|
|
490
|
-
Stopping ${lq(K.length,"server")}: ${U.join(", ")}`));let Z=hA(`Stopping ${lq(K.length,"server")}...`,{color:"red"}),G=await Promise.allSettled(K.map(async(Y)=>{let J=await r2(Y.server_id);return{server:Y,response:J}}));Z();let O=0,Q=0;for(let Y=0;Y<G.length;Y++){let J=G[Y],I=U[Y],L=K[Y].server_id?.slice(0,8)??"";if(J.status==="fulfilled"&&!J.value.response.error){O++;let M=J.value.response.data?.state||"STOPPING";console.log(H.green(` ${I} ${H.dim(`(${L}...)`)} ${H.dim(`\u2192 ${M}`)}`))}else{Q++;let M=J.status==="rejected"?J.reason instanceof Error?J.reason.message:String(J.reason):"API error";console.log(H.red(` ${I} ${H.dim(`(${L}...)`)} \u2192 ${M}`))}}if(console.log(),Q===0)console.log(H.green.bold(`Sent stop request for ${lq(O,"server")}`));else console.log(`${H.green.bold(`${lq(O,"server")} stopped`)}, ${H.red.bold(`${lq(Q,"server")} failed`)}`);console.log()}var QLA=W(()=>{rA();_6();B_();ej();Dg();y$();GLA()});function YLA(A){A.command({command:"server <command>",aliases:["servers"],describe:"Manage running servers",builder:(q)=>q.command({command:"list",aliases:["ls"],describe:"List all servers",builder:{filter:{type:"string",describe:"Filter results by name"},group:{type:"string",describe:"Filter results by group"},state:{type:"string",describe:"Filter results by state"},sort:{choices:["created","players","memory","state"],describe:"Sort results by field"},reverse:{type:"boolean",default:!1,describe:"Reverse sort order"}},handler:JA(async(F)=>{await DLA({filter:F.filter,group:F.group,state:F.state,sort:F.sort,reverse:F.reverse})})}).command({command:"info <server> [numerical-id]",aliases:["get","show"],describe:"Show server information",builder:(F)=>F.positional("server",{describe:"Server identifier",type:"string",demandOption:!0}).positional("numerical-id",{describe:"Server numerical ID",type:"number"}),handler:JA(async(F)=>{await gLA(F.server,F.numericalId)})}).command({command:"stop [targets..]",describe:"Stop one or more servers",builder:(F)=>F.positional("targets",{describe:"Server targets: server-id, group + IDs (e.g. lobby 1-3), or group names with --all",type:"string",array:!0}).option("all",{alias:"a",type:"boolean",default:!1,describe:"Stop all servers in specified groups, or all servers globally"}).example("$0 server stop lobby 1-3 proxy 1","Stop lobby 1, 2, 3 and proxy 1").example("$0 server stop lobby --all","Stop all servers in lobby").example("$0 server stop --all","Stop ALL servers"),handler:JA(async(F)=>{let g=F.targets??[];await OLA(g,F.all)})}).command({command:"logs <server> [numerical-id]",describe:"View server logs",builder:(F)=>F.positional("server",{describe:"Server identifier (ID, group name, or persistent server name)",type:"string",demandOption:!0}).positional("numerical-id",{describe:"Server numerical ID (when using group name)",type:"number"}).option("follow",{alias:"f",type:"boolean",describe:"Follow log output in real-time",default:!1}).option("severity",{type:"string",describe:"Filter by severity (ERROR, WARN, INFO, DEBUG)"}).option("search",{type:"string",describe:"Full-text search in log messages"}).option("from",{type:"string",describe:"Start time (ISO8601 format)"}).option("to",{type:"string",describe:"End time (ISO8601 format)"}).option("limit",{type:"number",describe:"Maximum number of log entries (default 100, max 1000)"}).option("no-prefix",{type:"boolean",describe:"Hide [server-name] prefix",default:!1}),handler:JA(async(F)=>{await $LA(F.server,F.numericalId,{follow:F.follow,severity:F.severity,search:F.search,from:F.from,to:F.to,limit:F.limit,noPrefix:F.noPrefix})})}).demandCommand(1,"You must specify a subcommand"),handler:()=>{}})}var JLA=W(()=>{ELA();jLA();ULA();QLA();Hg()});import*as HLA from"os";var oO=(A)=>{let q=A.trim().toLowerCase();if(!q)return null;let F=q.match(/^(\d+(?:\.\d+)?)\s*%$/);if(F){let D=Number.parseFloat(F[1]);if(Number.isNaN(D)||D<=0||D>100)return null;let j=Math.floor(HLA.totalmem()/1048576);return Math.floor(j*D/100)}let g=q.match(/^(\d+(?:\.\d+)?)\s*(gb?|mb?)?$/);if(!g)return null;let E=Number.parseFloat(g[1]),_=g[2]||"m";if(Number.isNaN(E)||E<=0)return null;if(_.startsWith("g"))return Math.floor(E*1024);return Math.floor(E)},tO=(A)=>{if(A>=1024){let q=A/1024;return Number.isInteger(q)?`${q}gb`:`${q.toFixed(1)}gb`}return`${A}mb`};var ep=()=>{};import*as OB from"fs/promises";import*as WH from"path";var K8q="secrets",$8q="network-id.key",U8q="network-secret.key",Z8q="serverhost-id.key",Ai=(A,q)=>u.tryPromise({try:async()=>{await OB.writeFile(A,q,{mode:384,encoding:"utf-8"})},catch:(F)=>Error(`Failed to write secret file ${A}: ${F}`)}),G8q=(A,q)=>u.gen(function*(){let F=WH.join(A,K8q);yield*u.tryPromise({try:async()=>{await OB.mkdir(F,{recursive:!0})},catch:(g)=>Error(`Failed to create secrets directory: ${g}`)}),yield*Ai(WH.join(F,$8q),q.networkId),yield*Ai(WH.join(F,U8q),q.networkSecret),yield*Ai(WH.join(F,Z8q),q.serverhostId)}),QB=async(A,q)=>{return u.runPromise(G8q(A,q))};var qi=W(()=>{Fg()});import*as ILA from"fs/promises";import*as MLA from"path";var O8q="secrets",Q8q="serverhost-id.key",Y8q=(A)=>{return typeof A==="object"&&A!==null&&"code"in A&&A.code==="ENOENT"},YB=async(A)=>{let q=MLA.join(A,O8q,Q8q);try{let F=(await ILA.readFile(q,"utf-8")).trim();return F.length>0?F:null}catch(F){if(Y8q(F))return null;throw F}};var Fi=()=>{};import*as JB from"fs/promises";import*as HB from"os";import*as sO from"path";var J8q=()=>{let A=HB.totalmem(),q=Math.floor(A/1048576);return Math.floor(q*0.8)},XLA=(A)=>{if(typeof A==="string"&&A.trim().length>0)return A.trim();if(!A||typeof A!=="object")return;let q=A;for(let F of["message","error","detail","reason"]){let g=XLA(q[F]);if(g)return g}return},PLA=(A)=>{if(A instanceof Error&&A.message.trim().length>0)return A.message;let q=XLA(A);if(!A||typeof A!=="object")return q??"Unknown error";let F=A,g=typeof F.status==="number"?F.status:void 0,E=typeof F.statusText==="string"?F.statusText:void 0,_=g?`HTTP ${g}${E?` ${E}`:""}`:void 0;if(_&&q)return`${_}: ${q}`;if(q)return q;if(_)return _;return"Unknown error"},H8q=async(A,q,F,g,E)=>{let D=await yG({networkId:A,networkSecret:q,baseURL:F}).v0.serverhostsRegisterCreate({host_name:g,maximum_memory:E});if(!D.data?.serverhost_id)throw Error("Failed to register serverhost: No serverhost ID returned");return{serverhostId:D.data.serverhost_id}},I8q=async(A,q,F,g)=>{let _=await yG({networkId:A,networkSecret:q,baseURL:F}).v0.
|
|
490
|
+
Stopping ${lq(K.length,"server")}: ${U.join(", ")}`));let Z=hA(`Stopping ${lq(K.length,"server")}...`,{color:"red"}),G=await Promise.allSettled(K.map(async(Y)=>{let J=await r2(Y.server_id);return{server:Y,response:J}}));Z();let O=0,Q=0;for(let Y=0;Y<G.length;Y++){let J=G[Y],I=U[Y],L=K[Y].server_id?.slice(0,8)??"";if(J.status==="fulfilled"&&!J.value.response.error){O++;let M=J.value.response.data?.state||"STOPPING";console.log(H.green(` ${I} ${H.dim(`(${L}...)`)} ${H.dim(`\u2192 ${M}`)}`))}else{Q++;let M=J.status==="rejected"?J.reason instanceof Error?J.reason.message:String(J.reason):"API error";console.log(H.red(` ${I} ${H.dim(`(${L}...)`)} \u2192 ${M}`))}}if(console.log(),Q===0)console.log(H.green.bold(`Sent stop request for ${lq(O,"server")}`));else console.log(`${H.green.bold(`${lq(O,"server")} stopped`)}, ${H.red.bold(`${lq(Q,"server")} failed`)}`);console.log()}var QLA=W(()=>{rA();_6();B_();ej();Dg();y$();GLA()});function YLA(A){A.command({command:"server <command>",aliases:["servers"],describe:"Manage running servers",builder:(q)=>q.command({command:"list",aliases:["ls"],describe:"List all servers",builder:{filter:{type:"string",describe:"Filter results by name"},group:{type:"string",describe:"Filter results by group"},state:{type:"string",describe:"Filter results by state"},sort:{choices:["created","players","memory","state"],describe:"Sort results by field"},reverse:{type:"boolean",default:!1,describe:"Reverse sort order"}},handler:JA(async(F)=>{await DLA({filter:F.filter,group:F.group,state:F.state,sort:F.sort,reverse:F.reverse})})}).command({command:"info <server> [numerical-id]",aliases:["get","show"],describe:"Show server information",builder:(F)=>F.positional("server",{describe:"Server identifier",type:"string",demandOption:!0}).positional("numerical-id",{describe:"Server numerical ID",type:"number"}),handler:JA(async(F)=>{await gLA(F.server,F.numericalId)})}).command({command:"stop [targets..]",describe:"Stop one or more servers",builder:(F)=>F.positional("targets",{describe:"Server targets: server-id, group + IDs (e.g. lobby 1-3), or group names with --all",type:"string",array:!0}).option("all",{alias:"a",type:"boolean",default:!1,describe:"Stop all servers in specified groups, or all servers globally"}).example("$0 server stop lobby 1-3 proxy 1","Stop lobby 1, 2, 3 and proxy 1").example("$0 server stop lobby --all","Stop all servers in lobby").example("$0 server stop --all","Stop ALL servers"),handler:JA(async(F)=>{let g=F.targets??[];await OLA(g,F.all)})}).command({command:"logs <server> [numerical-id]",describe:"View server logs",builder:(F)=>F.positional("server",{describe:"Server identifier (ID, group name, or persistent server name)",type:"string",demandOption:!0}).positional("numerical-id",{describe:"Server numerical ID (when using group name)",type:"number"}).option("follow",{alias:"f",type:"boolean",describe:"Follow log output in real-time",default:!1}).option("severity",{type:"string",describe:"Filter by severity (ERROR, WARN, INFO, DEBUG)"}).option("search",{type:"string",describe:"Full-text search in log messages"}).option("from",{type:"string",describe:"Start time (ISO8601 format)"}).option("to",{type:"string",describe:"End time (ISO8601 format)"}).option("limit",{type:"number",describe:"Maximum number of log entries (default 100, max 1000)"}).option("no-prefix",{type:"boolean",describe:"Hide [server-name] prefix",default:!1}),handler:JA(async(F)=>{await $LA(F.server,F.numericalId,{follow:F.follow,severity:F.severity,search:F.search,from:F.from,to:F.to,limit:F.limit,noPrefix:F.noPrefix})})}).demandCommand(1,"You must specify a subcommand"),handler:()=>{}})}var JLA=W(()=>{ELA();jLA();ULA();QLA();Hg()});import*as HLA from"os";var oO=(A)=>{let q=A.trim().toLowerCase();if(!q)return null;let F=q.match(/^(\d+(?:\.\d+)?)\s*%$/);if(F){let D=Number.parseFloat(F[1]);if(Number.isNaN(D)||D<=0||D>100)return null;let j=Math.floor(HLA.totalmem()/1048576);return Math.floor(j*D/100)}let g=q.match(/^(\d+(?:\.\d+)?)\s*(gb?|mb?)?$/);if(!g)return null;let E=Number.parseFloat(g[1]),_=g[2]||"m";if(Number.isNaN(E)||E<=0)return null;if(_.startsWith("g"))return Math.floor(E*1024);return Math.floor(E)},tO=(A)=>{if(A>=1024){let q=A/1024;return Number.isInteger(q)?`${q}gb`:`${q.toFixed(1)}gb`}return`${A}mb`};var ep=()=>{};import*as OB from"fs/promises";import*as WH from"path";var K8q="secrets",$8q="network-id.key",U8q="network-secret.key",Z8q="serverhost-id.key",Ai=(A,q)=>u.tryPromise({try:async()=>{await OB.writeFile(A,q,{mode:384,encoding:"utf-8"})},catch:(F)=>Error(`Failed to write secret file ${A}: ${F}`)}),G8q=(A,q)=>u.gen(function*(){let F=WH.join(A,K8q);yield*u.tryPromise({try:async()=>{await OB.mkdir(F,{recursive:!0})},catch:(g)=>Error(`Failed to create secrets directory: ${g}`)}),yield*Ai(WH.join(F,$8q),q.networkId),yield*Ai(WH.join(F,U8q),q.networkSecret),yield*Ai(WH.join(F,Z8q),q.serverhostId)}),QB=async(A,q)=>{return u.runPromise(G8q(A,q))};var qi=W(()=>{Fg()});import*as ILA from"fs/promises";import*as MLA from"path";var O8q="secrets",Q8q="serverhost-id.key",Y8q=(A)=>{return typeof A==="object"&&A!==null&&"code"in A&&A.code==="ENOENT"},YB=async(A)=>{let q=MLA.join(A,O8q,Q8q);try{let F=(await ILA.readFile(q,"utf-8")).trim();return F.length>0?F:null}catch(F){if(Y8q(F))return null;throw F}};var Fi=()=>{};import*as JB from"fs/promises";import*as HB from"os";import*as sO from"path";var J8q=()=>{let A=HB.totalmem(),q=Math.floor(A/1048576);return Math.floor(q*0.8)},XLA=(A)=>{if(typeof A==="string"&&A.trim().length>0)return A.trim();if(!A||typeof A!=="object")return;let q=A;for(let F of["message","error","detail","reason"]){let g=XLA(q[F]);if(g)return g}return},PLA=(A)=>{if(A instanceof Error&&A.message.trim().length>0)return A.message;let q=XLA(A);if(!A||typeof A!=="object")return q??"Unknown error";let F=A,g=typeof F.status==="number"?F.status:void 0,E=typeof F.statusText==="string"?F.statusText:void 0,_=g?`HTTP ${g}${E?` ${E}`:""}`:void 0;if(_&&q)return`${_}: ${q}`;if(q)return q;if(_)return _;return"Unknown error"},H8q=async(A,q,F,g,E)=>{let D=await yG({networkId:A,networkSecret:q,baseURL:F}).v0.serverhostsRegisterCreate({host_name:g,maximum_memory:E});if(!D.data?.serverhost_id)throw Error("Failed to register serverhost: No serverhost ID returned");return{serverhostId:D.data.serverhost_id}},I8q=async(A,q,F,g)=>{let _=await yG({networkId:A,networkSecret:q,baseURL:F}).v0.networksPasswordsCreate({name:g}).catch((j)=>{throw Error(`Failed to create network secret: ${PLA(j)}`)});if(!_.ok){let j=_.error?JSON.stringify(_.error):`HTTP ${_.status}`;throw Error(`Failed to create network secret: ${j}`)}let D=_.data?.password??_.data?.secret;if(!D)throw Error("Failed to create network secret: Secret value not returned");return D},M8q=async(A,q)=>{let F=await u.runPromise(b7().pipe(u.provide(Qq)));if(k.step("Checking authentication..."),!await V2()){k.info("Please log in to continue.");let Y=await d2({skipExistingCheck:!0});if(!Y)k.error(H.red("Login cancelled. Adding serverhost requires authentication.")),process.exit(1);k.success(`Authenticated as ${Y.userName}`)}else k.success("Already authenticated.");k.step("Setting up network...");let E=await yT(A,q.network),_=sO.join(process.cwd(),"simplecloud"),D=sO.resolve(await A.text({name:"installationDir",message:"Installation directory (created if missing):",initialValue:_,validate:(Y)=>{if(!Y||Y.trim().length===0)return"Installation directory cannot be empty"}})),j=!1;try{if(!(await JB.stat(D)).isDirectory())k.error(H.red(`Installation path exists but is not a directory: ${D}`)),process.exit(1);j=!0}catch(Y){if(Y.code!=="ENOENT")throw Y}let K=await YB(D);if(K)k.error(H.red(`This directory already contains a serverhost installation (${K}).
|
|
491
491
|
Choose a different installation directory.`)),process.exit(1);if(!j)k.info(`Creating installation directory: ${H.dim(D)}`);await JB.mkdir(D,{recursive:!0}),await A.markReady(),k.step("Registering serverhost...");let $=await A.text({name:"hostName",message:"Serverhost name:",initialValue:HB.hostname(),validate:(Y)=>{if(!Y||Y.trim().length===0)return"Serverhost name cannot be empty"}}),U=J8q(),Z=await A.text({name:"maxMemory",message:"Maximum memory for servers (e.g. 80%, 32gb, 4096mb, 4096):",initialValue:tO(U),validate:(Y)=>{let J=oO(Y);if(J===null)return"Please enter a valid memory value (e.g. 80%, 32gb, 4096mb, 4096)";if(J<512)return"Minimum memory is 512 MB"}}),G=oO(Z);if(G===null)throw Error("Please enter a valid memory value");let O=G,Q=WF({indicator:"dots"});Q.start("Getting authentication token...");try{let Y=await vG();Q.message("Registering serverhost...");let{serverhostId:J}=await H8q(E.networkId,Y,F,$,O);Q.message("Creating network secret...");let I=await I8q(E.networkId,Y,F,`serverhost-${J}`);Q.stop(`Serverhost registered: ${H.dim(J)}`),k.step("Saving credentials..."),await QB(D,{networkId:E.networkId,networkSecret:I,serverhostId:J}),k.success("Credentials saved to secrets directory.");let X=await u.runPromise(nK().pipe(u.provide(Qq))),L;if(Object.keys(X).length===0)L="default";else L=await A.text({name:"contextName",message:"Context name for this installation:",initialValue:E.orgSlug||sO.basename(D),required:!1,validate:(M)=>{if(!M||M.trim().length===0)return"Context name cannot be empty";if(X[M.trim()])return`Context "${M.trim()}" already exists`}});await u.runPromise(u7(L,{orgId:E.orgId,orgName:E.orgName,orgSlug:E.orgSlug,baseURL:F,installationDir:D}).pipe(u.provide(Qq))),await u.runPromise(k7(L).pipe(u.provide(Qq))),k.success(`Context "${L}" created and set as current.`),await A.complete()}catch(Y){Q.stop("Registration failed");let J=PLA(Y);if(process.env.SC_DEBUG==="1")console.error(Y);k.error(H.red(`Failed to register serverhost: ${J}`)),process.exit(1)}mg(H.green.bold("Serverhost added")),console.log(),console.log(H.dim("Next steps:")),console.log(H.dim(` 1. Navigate to your installation: cd ${D}`)),console.log(H.dim(" 2. Start the serverhost: sc start")),console.log()},NLA=async(A={})=>{w2(H.cyan.bold("Add Serverhost"));let q=await W_("serverhost-add");if(q.hasPreviousSession()){let F=await q.promptResume();if(F==="cancel")k.warn("Cancelled."),process.exit(0);if(F==="retry")q.enableSkipMode()}try{await M8q(q,A)}catch(F){if(F instanceof Error&&F.message==="Setup cancelled.")k.warn("Cancelled. Your progress has been saved."),process.exit(0);throw F}};var LLA=W(()=>{iq();rA();Fg();iK();VE();_6();$f();FO();ep();qi();Fi();c2();cJ()});function VLA(A){A.command({command:"serverhost <command>",aliases:["serverhosts","host","hosts"],describe:"Manage server hosts",builder:(q)=>q.command({command:"add",describe:"Add a new serverhost with interactive wizard",builder:(F)=>F.option("network",{type:"string",alias:"n",describe:"Network ID or slug to use (skips interactive selection)"}).option("org",{type:"string",alias:"o",describe:"Deprecated alias for --network"}).hide("org"),handler:JA(async(F)=>{await NLA({network:F.network||F.org})})}).command({command:"register",describe:"Register a new serverhost",builder:{"host-name":{type:"string",describe:"Name of the serverhost",demandOption:!0},"max-memory":{type:"number",describe:"Maximum memory in MB",demandOption:!0}},handler:JA(async(F)=>{let{hostName:g,maxMemory:E}=F;await Gq();let _=hA("Registering serverhost...",{color:"cyan"}),D=await FIA(g,E);if(_(),D.error)qq(D.error,"Failed to register serverhost"),process.exit(1);console.log(H.green.bold(`
|
|
492
492
|
Serverhost registered
|
|
493
493
|
`)),console.log(H.blueBright("Serverhost details:")),console.log(` Host Name: ${H.bold(D.data?.host_name||"N/A")}`),console.log(` Serverhost ID: ${H.bold(D.data?.serverhost_id||"N/A")}`),console.log(` Network ID: ${H.bold(D.data?.network_id||"N/A")}`),console.log(` Max Memory: ${H.bold(D.data?.maximum_memory?.toString()||"N/A")} MB`),console.log(` Last Keep Alive: ${H.bold(D.data?.last_keep_alive||"N/A")}
|
|
@@ -636,7 +636,7 @@ Please report this to https://github.com/markedjs/marked.`,A){let g="<p>An error
|
|
|
636
636
|
`)}};_RA=class _RA extends gI{constructor(A,q){let F={...q,link:{url:q.href}};super(null,F)}};PYq={box:QF,text:k_,input:I1,select:I9,textarea:U0,ascii_font:LR,tab_select:M9,scrollbox:H9,code:fF,diff:go,line_number:VR,markdown:Oo,span:gI,strong:Vo,b:Vo,em:To,i:To,u:gRA,br:ERA,a:_RA},DRA={...PYq};wo=CBA();bR=new Map;L9=class L9 extends Zj{static fromString(A,q={}){let F=new L9(q);return F.add(A),F}};({render:CYq,effect:Y6,memo:Tg,createComponent:kA,createElement:_A,createTextNode:nF,insertNode:YA,insert:pA,spread:$K6,setProp:w,mergeProps:UK6,use:ZK6}=BYq({createElement(A){fg("Creating element:",A);let q=So(A),F=qI(wo);if(!F)throw Error("No renderer found");let g=LYq();if(!g[A])throw Error(`[Reconciler] Unknown component type: ${A}`);let E=new g[A](F,{id:q});return fg("Element created with id:",q),E},createTextNode:(A)=>ARA(A,!0),createDynamicTextNode:(A)=>ARA(A,!1),createSlotNode:SYq,replaceText(A,q){if(fg("Replacing text:",q,"in node:",Vg(A)),!(A instanceof L9))return;A.replace(q,0)},setProperty(A,q,F,g){if(q.startsWith("on:")){let E=q.slice(3);if(F)A.on(E,F);if(g)A.off(E,g);return}if(DE(A)){if(q==="href"){A.link={url:F};return}if(q==="style"){A.attributes|=z_(F),A.fg=F.fg?a(F.fg):A.fg,A.bg=F.bg?a(F.bg):A.bg;return}return}switch(q){case"id":fg("Id mapped",A.id,"=",F),A[q]=F;break;case"focused":if(!(A instanceof I6))return;if(F)A.focus();else A.blur();break;case"onChange":let E=void 0;if(A instanceof I9)E=oH.SELECTION_CHANGED;else if(A instanceof M9)E=tH.SELECTION_CHANGED;else if(A instanceof I1)E=H4.CHANGE;if(!E)break;if(F)A.on(E,F);if(g)A.off(E,g);break;case"onInput":if(A instanceof I1){if(F)A.on(H4.INPUT,F);if(g)A.off(H4.INPUT,g)}break;case"onSubmit":if(A instanceof I1){if(F)A.on(H4.ENTER,F);if(g)A.off(H4.ENTER,g)}else A[q]=F;break;case"onSelect":if(A instanceof I9){if(F)A.on(oH.ITEM_SELECTED,F);if(g)A.off(oH.ITEM_SELECTED,g)}else if(A instanceof M9){if(F)A.on(tH.ITEM_SELECTED,F);if(g)A.off(tH.ITEM_SELECTED,g)}break;case"style":for(let _ in F){let D=F[_];if(g!==void 0&&D===g[_])continue;A[_]=D}break;case"text":case"content":{let _=typeof F==="string"?F:Array.isArray(F)?F.join(""):`${F}`;A[q]=_;break}default:A[q]=F}},isTextNode(A){return A instanceof L9},insertNode:RYq,removeNode:wYq,getParentNode:qRA,getFirstChild(A){fg("Getting first child of node:",Vg(A));let q=Wo(A)[0];if(!q){fg("No first child found for node:",Vg(A));return}return fg("First child found:",Vg(q),"for node:",Vg(A)),q},getNextSibling(A){fg("Getting next sibling of node:",Vg(A));let q=qRA(A);if(!q){fg("No parent found for node:",Vg(A));return}if(A instanceof V9){let _=A.getSlotChildForRemoval(q);if(_)A=_}let F=Wo(q),g=F.indexOf(A);if(g===-1||g===F.length-1){fg("No next sibling found for node:",Vg(A));return}let E=F[g+1];if(!E){fg("Next sibling is null for node:",Vg(A));return}return fg("Next sibling found:",Vg(E),"for node:",Vg(A)),E}}));Co=class Co extends DK{constructor(A){super({id:A})}add(A,q){throw Error("Can't add children on an Slot renderable")}getChildren(){return[]}remove(A){}insertBefore(A,q){throw Error("Can't add children on an Slot renderable")}getRenderable(A){return}getChildrenCount(){return 0}requestRender(){}findDescendantById(A){return}};Bo=class Bo extends Zj{slotParent;destroyed=!1;constructor(A,q){super({id:A});this._visible=!1,this.slotParent=q}detachFromSlot(){this.slotParent=void 0}disposeWithoutSlotCascade(){if(this.destroyed)return;this.destroyed=!0,this.detachFromSlot()}destroy(){if(this.destroyed)return;this.destroyed=!0;let A=this.slotParent;this.slotParent=void 0,A?.destroy(),super.destroy()}};Ro=class Ro extends Co{yogaNode;slotParent;destroyed=!1;yogaNodeConstructor;yogaNodeFreed=!1;constructor(A,q,F){super(A);this._visible=!1,this.slotParent=q,this.yogaNodeConstructor=FRA(F),this.yogaNode=zYq(this.yogaNodeConstructor),this.yogaNode.setDisplay(xH.Display.None)}getLayoutNode(){return this.yogaNode}updateFromLayout(){}updateLayout(){}onRemove(){}isCompatibleWith(A){return this.yogaNodeConstructor===FRA(A)}detachFromSlot(){this.slotParent=void 0}freeYogaNode(){if(this.yogaNodeFreed)return;this.yogaNodeFreed=!0;try{this.yogaNode.free()}catch{}}disposeWithoutSlotCascade(){if(this.destroyed)return;this.destroyed=!0,this.detachFromSlot(),this.freeYogaNode()}destroy(){if(this.destroyed)return;this.destroyed=!0;let A=this.slotParent;this.slotParent=void 0,this.freeYogaNode(),A?.destroy()}};V9=class V9 extends Co{destroyed=!1;layoutNodesByParent=new Map;textNodesByParent=new Map;layoutNodeCount=0;textNodeCount=0;constructor(A){super(A);this._visible=!1}get layoutNode(){return this.getCurrentSlotChild(this.layoutNodesByParent)}get textNode(){return this.getCurrentSlotChild(this.textNodesByParent)}isTextSlotParent(A){return DE(A)||A instanceof k_}getCurrentSlotChild(A){for(let q of A.values())if(q.parent)return q;return A.values().next().value}getTextNodeForParent(A){let q=this.textNodesByParent.get(A);if(q)return q;for(let[F,g]of this.textNodesByParent){if(g.parent!==A)continue;return this.textNodesByParent.delete(F),this.textNodesByParent.set(A,g),g}}getLayoutNodeForParent(A){let q=this.layoutNodesByParent.get(A);if(q)return q;for(let[F,g]of this.layoutNodesByParent){if(g.parent!==A)continue;return this.layoutNodesByParent.delete(F),this.layoutNodesByParent.set(A,g),g}}takeReusableTextNode(A){for(let[q,F]of this.textNodesByParent){if(F.parent)continue;return this.textNodesByParent.delete(q),this.textNodesByParent.set(A,F),F}}takeReusableLayoutNode(A){for(let[q,F]of this.layoutNodesByParent){if(F.parent)continue;if(!F.isCompatibleWith(A))continue;return this.layoutNodesByParent.delete(q),this.layoutNodesByParent.set(A,F),F}}disposeDetachedTextNodes(){for(let[A,q]of this.textNodesByParent){if(q.parent)continue;this.textNodesByParent.delete(A),q.disposeWithoutSlotCascade()}}disposeDetachedIncompatibleLayoutNodes(A){for(let[q,F]of this.layoutNodesByParent){if(F.parent||F.isCompatibleWith(A))continue;this.layoutNodesByParent.delete(q),F.disposeWithoutSlotCascade()}}getAttachedSlotParent(A){for(let q of this.textNodesByParent.values())if(q!==A&&q.parent)return q.parent;for(let q of this.layoutNodesByParent.values())if(q!==A&&q.parent)return q.parent;return null}hasOtherAttachedSlotChildren(A){return this.getAttachedSlotParent(A)!==null}getSlotChild(A){if(this.isTextSlotParent(A)){let E=this.getTextNodeForParent(A);if(E)return E;let _=this.takeReusableTextNode(A);if(_)return _;this.disposeDetachedIncompatibleLayoutNodes(A);let D=new Bo(`slot-text-${this.id}-${++this.textNodeCount}`,this);return this.textNodesByParent.set(A,D),D}let q=this.getLayoutNodeForParent(A);if(q)return q;let F=this.takeReusableLayoutNode(A);if(F)return F;this.disposeDetachedTextNodes(),this.disposeDetachedIncompatibleLayoutNodes(A);let g=new Ro(`slot-layout-${this.id}-${++this.layoutNodeCount}`,this,A);return this.layoutNodesByParent.set(A,g),g}getSlotChildForRemoval(A){if(this.isTextSlotParent(A))return this.getTextNodeForParent(A);return this.getLayoutNodeForParent(A)}didRemoveSlotChild(A,q){let F=this.hasOtherAttachedSlotChildren(q);if(F&&q instanceof Bo&&this.getTextNodeForParent(A)===q)this.textNodesByParent.delete(A),q.disposeWithoutSlotCascade();if(F&&q instanceof Ro&&this.getLayoutNodeForParent(A)===q)this.layoutNodesByParent.delete(A),q.disposeWithoutSlotCascade();if(this.parent===A)this.parent=this.getAttachedSlotParent(q)}destroy(){if(this.destroyed)return;this.destroyed=!0;let A=new Set(this.layoutNodesByParent.values());this.layoutNodesByParent.clear();for(let F of A)F.destroy();let q=new Set(this.textNodesByParent.values());this.textNodesByParent.clear();for(let F of q)F.destroy()}};NYq({time_to_first_draw:Qo})});var UA,xo=()=>[(()=>{var A=_A("text");return YA(A,nF("\u03DF")),Y6((q)=>w(A,"fg",UA.logo,q)),A})(),(()=>{var A=_A("text"),q=_A("strong");return YA(A,q),w(A,"marginLeft",1),YA(q,nF("simplecloud")),Y6((F)=>w(A,"fg",UA.text,F)),A})()],zo=(A)=>{let q=N6(()=>Array.from(A.text)),F=N6(()=>{let E=A.sweepFrames??24,_=A.pauseFrames??3,D=A.frame%(E+_);if(D>=E)return q().length+5;let j=D/Math.max(1,E-1);return-3+(1-Math.cos(Math.PI*j))/2*(q().length+6)}),g=N6(()=>q().map((E,_)=>{let D=Math.abs(_-F()),j=Math.max(0,1-D/5),K=j*j*(3-2*j)*(A.strength??1),U=`#${Math.round(102+133*K).toString(16).padStart(2,"0").repeat(3)}`;return{character:E,color:U}}));return(()=>{var E=_A("text");return pA(E,kA(mBA,{get each(){return g()},children:(_)=>(()=>{var D=_A("span");return pA(D,()=>_().character),Y6((j)=>w(D,"style",{fg:_().color},j)),D})()})),Y6((_)=>w(E,"marginLeft",A.marginLeft??0,_)),E})()},hYq=(A)=>A.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,50),bYq=(A)=>A.split(/[\\/]/).filter(Boolean).at(-1)??A,kYq=(A)=>{switch(A){case"done":return"\u25CF";case"running":return"\u25C9";case"warning":return"\u25C6";case"error":return"\xD7";case"skipped":return"\u2013";default:return"\u25CB"}},uYq=(A)=>{switch(A){case"done":return UA.green;case"running":return UA.brand;case"warning":return UA.amber;case"error":return UA.red;case"skipped":return UA.subtle;default:return UA.subtle}},X1=(A)=>(()=>{var q=_A("box"),F=_A("text"),g=_A("strong"),E=_A("text");return YA(q,F),YA(q,E),w(q,"flexDirection","column"),w(q,"marginBottom",2),YA(F,g),pA(g,()=>A.title),w(E,"marginTop",1),w(E,"wrapMode","word"),pA(E,()=>A.description),Y6((_)=>{var{text:D,muted:j}=UA;return D!==_.e&&(_.e=w(F,"fg",D,_.e)),j!==_.t&&(_.t=w(E,"fg",j,_.t)),_},{e:void 0,t:void 0}),q})(),vR=(A)=>(()=>{var q=_A("box"),F=_A("box"),g=_A("input"),E=_A("text");return YA(q,F),YA(q,E),w(q,"flexDirection","column"),pA(q,kA(X1,{get title(){return A.title},get description(){return A.description}}),F),YA(F,g),w(F,"border",!0),w(F,"borderStyle","rounded"),w(F,"height",3),w(F,"paddingLeft",1),w(F,"paddingRight",1),w(E,"marginTop",2),w(E,"height",1),pA(E,()=>A.error??"Enter to continue"),Y6((_)=>{var D=A.error?UA.red:UA.borderStrong,j=UA.background,K=A.focused??!0,$=A.initialValue??"",U=A.placeholder??"",Z=UA.text,G=UA.text,O=UA.cyan,Q=UA.background,Y=UA.background,J=UA.subtle,I=A.onConfirm,X=A.error?UA.red:UA.subtle;return D!==_.e&&(_.e=w(F,"borderColor",D,_.e)),j!==_.t&&(_.t=w(F,"backgroundColor",j,_.t)),K!==_.a&&(_.a=w(g,"focused",K,_.a)),$!==_.o&&(_.o=w(g,"value",$,_.o)),U!==_.i&&(_.i=w(g,"placeholder",U,_.i)),Z!==_.n&&(_.n=w(g,"textColor",Z,_.n)),G!==_.s&&(_.s=w(g,"focusedTextColor",G,_.s)),O!==_.h&&(_.h=w(g,"cursorColor",O,_.h)),Q!==_.r&&(_.r=w(g,"backgroundColor",Q,_.r)),Y!==_.d&&(_.d=w(g,"focusedBackgroundColor",Y,_.d)),J!==_.l&&(_.l=w(g,"placeholderColor",J,_.l)),I!==_.u&&(_.u=w(g,"onSubmit",I,_.u)),X!==_.c&&(_.c=w(E,"fg",X,_.c)),_},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0}),q})(),EI=(A)=>(()=>{var q=_A("box"),F=_A("select"),g=_A("text");return YA(q,F),YA(q,g),w(q,"flexDirection","column"),pA(q,kA(X1,{get title(){return A.title},get description(){return A.description}}),F),pA(q,kA(wE,{get when(){return A.context},get fallback(){return(()=>{var E=_A("box");return w(E,"height",0),E})()},children:(E)=>(()=>{var _=_A("box"),D=_A("text"),j=_A("text");return YA(_,D),YA(_,j),w(_,"flexDirection","column"),w(_,"paddingLeft",1),w(_,"paddingRight",1),w(_,"paddingTop",1),w(_,"paddingBottom",1),w(_,"marginBottom",1),pA(D,()=>E().label),w(j,"wrapMode","word"),pA(j,()=>E().value),Y6((K)=>{var{surfaceRaised:$,muted:U,text:Z}=UA;return $!==K.e&&(K.e=w(_,"backgroundColor",$,K.e)),U!==K.t&&(K.t=w(D,"fg",U,K.t)),Z!==K.a&&(K.a=w(j,"fg",Z,K.a)),K},{e:void 0,t:void 0,a:void 0}),_})()}),F),w(F,"wrapSelection",!0),w(F,"onChange",(E,_)=>{if(_?.value!==void 0)A.onHighlight?.(String(_.value))}),w(F,"onSelect",(E,_)=>{if(_?.value!==void 0)A.onChoose(String(_.value))}),w(g,"marginTop",2),pA(g,()=>A.hint??"\u2191\u2193 choose \xB7 Enter continue"),Y6((E)=>{var _=A.focused??!0,D=A.rows??(A.showDescriptions===!1?Math.min(9,Math.max(3,A.options.length)):Math.min(10,Math.max(3,A.options.length*2))),j=A.options,K=A.showDescriptions??!0,$=UA.surface,U=UA.surface,Z=UA.text,G=UA.text,O=UA.brand,Q=UA.text,Y=UA.muted,J=UA.muted,I=UA.subtle;return _!==E.e&&(E.e=w(F,"focused",_,E.e)),D!==E.t&&(E.t=w(F,"height",D,E.t)),j!==E.a&&(E.a=w(F,"options",j,E.a)),K!==E.o&&(E.o=w(F,"showDescription",K,E.o)),$!==E.i&&(E.i=w(F,"backgroundColor",$,E.i)),U!==E.n&&(E.n=w(F,"focusedBackgroundColor",U,E.n)),Z!==E.s&&(E.s=w(F,"textColor",Z,E.s)),G!==E.h&&(E.h=w(F,"focusedTextColor",G,E.h)),O!==E.r&&(E.r=w(F,"selectedBackgroundColor",O,E.r)),Q!==E.d&&(E.d=w(F,"selectedTextColor",Q,E.d)),Y!==E.l&&(E.l=w(F,"descriptionColor",Y,E.l)),J!==E.u&&(E.u=w(F,"selectedDescriptionColor",J,E.u)),I!==E.c&&(E.c=w(g,"fg",I,E.c)),E},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0}),q})(),vYq=(A)=>{let q=T9(),F=uR(),g=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827"],E=A.options.defaults,[_,D]=xq(),[j,K]=xq(),[$,U]=xq(),[Z,G]=xq(A.options.progress.snapshot()),[O,Q]=xq(),[Y,J]=xq(0),[I,X]=xq(0),[L,M]=xq(0),[T,V]=xq(E.fixedNetworkId??(E.networks.length===1?E.networks[0]?.id:void 0)),[N,B]=xq(""),[z,x]=xq(""),[S,b]=xq(E.hostName??"host-1"),[h,c]=xq(E.maxMemory??E.defaultMemory),[e,AA]=xq(E.installDir??E.recommendedInstallDir),[FA,IA]=xq(E.recommendedInstallDir),[oA,eA]=xq("__suggested__"),[Z6,hq]=xq(E.autoInstallDeps??!0),[vA,pF]=xq(E.start??!0),[GK,PA]=xq(),[yA,Tq]=xq(),[Fq,FF]=xq(!1),bq=new AbortController,x6=!1,y=(()=>{if(E.fixedNetworkId||E.networks.length===1){if(E.missingDependencies.length>0&&E.autoInstallDeps===void 0)return"dependencies";if(!E.hostName)return"host";if(!E.maxMemory)return"memory";if(!E.installDir)return"location";if(E.start===void 0)return"start";return}if(E.networks.length===0)return"network-name";return"network"})(),[m,jA]=xq(y?"form":"installing"),[i,f]=xq(y??"location"),[SA,NA]=xq([]),zA=(XA)=>{Q(void 0),NA((F6)=>[...F6,i()]),f(XA),q.requestRender()},iF=()=>{let XA=SA(),F6=XA.at(-1);if(!F6)return;Q(void 0),NA(XA.slice(0,-1)),f(F6),q.requestRender()},Wg=()=>{if(E.start===void 0)zA("start");else UI()},$I=()=>{if(E.installDir)Wg();else zA("location")},eo=()=>{if(E.missingDependencies.length>0&&E.autoInstallDeps===void 0)zA("dependencies");else if(!E.hostName)zA("host");else if(!E.maxMemory)zA("memory");else $I()},TwA=()=>{if(!E.hostName)zA("host");else if(!E.maxMemory)zA("memory");else $I()},WwA=()=>{if(!E.maxMemory)zA("memory");else $I()},At=(XA)=>{AA(XA),Tq(void 0),Wg()},oR=(XA)=>{if(!A.options.browseDirectory){Tq("Directory browsing is unavailable");return}FF(!0),Tq(void 0),A.options.browseDirectory(XA).then((F6)=>{PA(F6),eA("__suggested__")}).catch((F6)=>{Tq(F6 instanceof Error?F6.message:String(F6))}).finally(()=>{FF(!1),q.requestRender()})},qt=(XA)=>{if(i()!=="location")return;if(XA==="__browse__"){zA("directory-browser"),oR(E.currentDirectory);return}At(XA)},Ft=(XA)=>{if(i()!=="directory-browser")return;let F6=GK();if(!F6||Fq())return;if(XA==="__suggested__"){At(F6.suggestedInstallDir);return}oR(XA)},BwA=()=>({networkId:N()?void 0:T(),newNetwork:N()?{name:N(),slug:z()}:void 0,hostName:S(),maxMemory:h(),installDir:e(),autoInstallDeps:Z6(),start:vA()}),gt={signal:bq.signal,suspend:async(XA)=>{q.suspend();try{return await XA()}finally{q.resume()}}},tR=(XA)=>{A.options.onDependencyInstallRequested(gt,XA)};if(E.autoInstallDeps===!0)queueMicrotask(()=>tR(!0));else if(A.options.startBackgroundPreparation)queueMicrotask(()=>tR(!1));let UI=async()=>{jA("installing"),D(void 0);try{let XA=await A.options.validateInstallDir(e());if(XA){Tq(XA),NA([]),f("location"),jA("form"),q.requestRender();return}let F6=await A.options.onInstall(BwA(),gt);if(bq.signal.aborted)return;U(F6),jA("done")}catch(XA){if(bq.signal.aborted)return;D(XA instanceof Error?XA.message:String(XA)),jA("error")}};if(!y)queueMicrotask(()=>void UI());let L4=(XA)=>{if(x6)return;if(x6=!0,XA===null)bq.abort(Error("Setup cancelled")),A.options.onCancel?.();A.onExit(XA),q.destroy()},Et=()=>{if(m()==="form"&&SA().length>0)iF();else if(m()==="form")L4(null);else if(m()==="installing")L4(null);else if(m()==="done"||m()==="error")L4($()??null)},_t=(XA)=>{let F6=XA.name==="escape"||XA.sequence==="\x1B",Ug=XA.ctrl&&XA.name.toLowerCase()==="c"||XA.sequence==="\x03";if(F6){Et();return}if(Ug){L4($()??null);return}if(m()==="form"&&i()==="directory-browser"&&!Fq()&&(XA.name==="backspace"||XA.name==="left")){let YF=GK()?.parent;if(YF)oR(YF);return}if(m()==="done"&&XA.name==="return"&&A.options.canOpenDashboard!==!1){let YF=$();if(YF)K(void 0),A.options.onOpenDashboard().then(()=>L4(YF)).catch(()=>{K("Could not open a browser. Visit dash.simplecloud.app manually.")});return}if(m()==="error"&&XA.name==="return")UI()},Dt=(XA)=>{let F6=()=>{let YF=q.currentFocusedRenderable?.getSelectedOption?.()?.value;return YF===void 0?void 0:String(YF)};if(XA==="\x1B")return Et(),!0;if(XA==="\x03")return L4($()??null),!0;if((XA==="\r"||XA===`
|
|
637
637
|
`)&&m()==="form"&&i()==="location")return qt(F6()??FA()),!0;if((XA==="\r"||XA===`
|
|
638
638
|
`)&&m()==="form"&&i()==="directory-browser")return Ft(F6()??oA()),!0;return!1};q.prependInputHandler(Dt),q.keyInput.on("keypress",_t),lE(()=>{if(!bq.signal.aborted&&!$())bq.abort(Error("Setup cancelled"));q.removeInputHandler(Dt),q.keyInput.off("keypress",_t)});let RwA=A.options.progress.subscribe(G);lE(RwA);let wwA=setInterval(()=>{if(m()!=="done")return;J((XA)=>Math.min(1,XA+0.035)),X((XA)=>XA+0.18)},80);lE(()=>clearInterval(wwA));let SwA=setInterval(()=>{if(m()==="form"||m()==="installing")M((XA)=>XA+1)},90);lE(()=>clearInterval(SwA));let jt=N6(()=>Math.max(44,Math.min(72,F().width-6))),J0=N6(()=>Z().tasks.find((XA)=>XA.state==="error")??Z().tasks.find((XA)=>XA.state==="warning")??Z().tasks.find((XA)=>XA.state==="running")),Kt=N6(()=>{let XA=Z().tasks,F6=["dependencies","components","registration","files","services","start"];for(let Ug of F6){let YF=XA.find((Yj)=>Yj.id===Ug&&Yj.state==="running");if(YF)return YF}return XA.find((Ug)=>Ug.state==="waiting")}),CwA=N6(()=>{let XA=Kt();if(!XA)return"Finishing setup";switch(XA.id){case"components":return XA.detail==="Downloading"?"Downloading serverhost":XA.detail;case"dependencies":return XA.detail.replace(/\bjava\b/i,"Java");case"registration":return XA.detail==="Connecting"?"Connecting to your network":XA.detail;case"files":return XA.detail==="Installing"?"Installing SimpleCloud":XA.detail;case"services":return XA.detail;case"start":return XA.detail==="Starting"?"Starting SimpleCloud":XA.detail;default:return XA.detail}}),zwA=N6(()=>{switch(Kt()?.id){case"dependencies":return"This can take a few minutes";case"components":return"Downloading and verifying";case"registration":return"Connecting to your network";case"files":return"Moving files into place";case"services":return"Preparing isolated service bundles";case"start":return"Starting your serverhost";default:return"Preparing your installation"}}),xwA=N6(()=>zwA().padStart(28," ")),hwA=N6(()=>{if(E.recommendedInstallDir===E.currentDirectory)return{name:"Current folder",description:`${E.currentDirectory} \xB7 Recommended`,value:E.recommendedInstallDir};if(E.recommendedInstallDir.startsWith(`${E.currentDirectory}/`))return{name:"Create a SimpleCloud folder",description:"./simplecloud \xB7 Recommended",value:E.recommendedInstallDir};return{name:"Requested location",description:E.recommendedInstallDir,value:E.recommendedInstallDir}}),bwA=N6(()=>SLA(Math.max(20,F().width),Math.max(8,F().height),Y(),I())),kwA=N6(()=>{return $()?.installationDir??""}),$t=N6(()=>{if(/(dependency|java|screen)/i.test(_()??""))return{title:"A dependency could not be installed",description:"Completed downloads and dependencies are kept. Fix the issue, then continue."};return{title:"Setup paused",description:"Completed work is kept. Continue from the step that needs attention."}});return(()=>{var XA=_A("box"),F6=_A("box"),Ug=_A("box"),YF=_A("box"),Yj=_A("box");return YA(XA,F6),w(XA,"width","100%"),w(XA,"height","100%"),w(XA,"flexDirection","column"),pA(XA,kA(wE,{get when(){return m()==="done"},get fallback(){return(()=>{var gA=_A("box");return w(gA,"height",0),gA})()},get children(){var gA=_A("box"),VA=_A("text");return YA(gA,VA),w(gA,"position","absolute"),w(gA,"left",0),w(gA,"top",0),w(gA,"width","100%"),w(gA,"height","100%"),w(gA,"overflow","hidden"),w(gA,"zIndex",0),pA(VA,()=>bwA().join(`
|
|
639
|
-
`)),Y6((gq)=>w(VA,"fg",UA.dither,gq)),gA}}),F6),YA(F6,Ug),w(F6,"flexGrow",1),w(F6,"flexDirection","column"),w(F6,"alignItems","center"),w(F6,"justifyContent","center"),w(F6,"padding",3),w(F6,"zIndex",1),YA(Ug,YF),YA(Ug,Yj),w(Ug,"minHeight",18),w(Ug,"flexDirection","column"),w(Ug,"border",!0),w(Ug,"borderStyle","rounded"),w(Ug,"zIndex",2),w(YF,"height",4),w(YF,"flexDirection","row"),w(YF,"alignItems","center"),w(YF,"paddingTop",1),w(YF,"paddingBottom",1),w(YF,"paddingLeft",3),w(YF,"paddingRight",3),w(YF,"border",["bottom"]),pA(YF,kA(xo,{})),w(Yj,"flexDirection","column"),w(Yj,"position","relative"),w(Yj,"paddingTop",2),w(Yj,"paddingBottom",2),w(Yj,"paddingLeft",3),w(Yj,"paddingRight",3),pA(Yj,kA(hR,{get children(){return[kA(ag,{get when(){return m()==="form"},get children(){return kA(hR,{get children(){return[kA(ag,{get when(){return i()==="network"},get children(){return kA(EI,{get focused(){return Tg(()=>m()==="form")()&&i()==="network"},title:"Where should this serverhost live?",description:"Choose an existing network or create a fresh one.",get options(){return[...E.networks.map((gA)=>({name:gA.name,description:gA.slug,value:gA.id})),{name:"Create a new network",description:"Start with an empty SimpleCloud network",value:"__create__"}]},showDescriptions:!1,onChoose:(gA)=>{if(gA==="__create__"){zA("network-name");return}B(""),V(gA),eo()}})}}),kA(ag,{get when(){return i()==="network-name"},get children(){return kA(vR,{get focused(){return Tg(()=>m()==="form")()&&i()==="network-name"},title:"Give your network a name",description:"This is the name you will see in the dashboard.",placeholder:"My Minecraft Network",get error(){return O()},onConfirm:(gA)=>{let VA=gA.trim();if(!VA){Q("Network name cannot be empty");return}if(VA.length>100){Q("Keep the name under 100 characters");return}B(VA),x(hYq(VA)),zA("network-slug")}})}}),kA(ag,{get when(){return i()==="network-slug"},get children(){return kA(vR,{get focused(){return Tg(()=>m()==="form")()&&i()==="network-slug"},title:"Choose its dashboard address",description:"Lowercase letters, numbers, and hyphens only.",get initialValue(){return z()},get error(){return O()},onConfirm:(gA)=>{let VA=gA.trim();if(!/^[a-z0-9-]+$/.test(VA)||VA.length>50){Q("Use up to 50 lowercase letters, numbers, or hyphens");return}x(VA),eo()}})}}),kA(ag,{get when(){return i()==="dependencies"},get children(){return kA(EI,{get focused(){return Tg(()=>m()==="form")()&&i()==="dependencies"},get title(){return`Install ${E.missingDependencies.join(" and ")}?`},description:"Setup can prepare missing dependencies while you finish the remaining details.",options:[{name:"Install in the background",description:"Recommended \xB7 setup handles the required packages",value:"yes"},{name:"I\u2019ll install them myself",description:"Finish setup after the dependencies are available",value:"no"}],onChoose:(gA)=>{let VA=gA==="yes";if(hq(VA),VA)tR(!0);TwA()}})}}),kA(ag,{get when(){return i()==="host"},get children(){return kA(vR,{get focused(){return Tg(()=>m()==="form")()&&i()==="host"},title:"What should we call this machine?",description:"Use a short, recognizable name. You can change it later.",get initialValue(){return S()},get error(){return O()},onConfirm:(gA)=>{let VA=gA.trim();if(!VA){Q("Serverhost name cannot be empty");return}b(VA),WwA()}})}}),kA(ag,{get when(){return i()==="memory"},get children(){return kA(vR,{get focused(){return Tg(()=>m()==="form")()&&i()==="memory"},title:"How much memory can SimpleCloud use?",description:"Leave enough room for the operating system and anything else on this machine.",get initialValue(){return h()},placeholder:"80%, 16gb, or 4096mb",get error(){return O()},onConfirm:(gA)=>{let VA=A.options.validateMemory(gA);if(VA){Q(VA);return}c(gA.trim()),$I()}})}}),kA(ag,{get when(){return i()==="location"},get children(){var gA=_A("box");return w(gA,"flexDirection","column"),pA(gA,kA(EI,{get focused(){return Tg(()=>m()==="form")()&&i()==="location"},title:"Where should SimpleCloud live?",description:"Choose a new or empty folder.",get options(){return[hwA(),{name:"Home folder",description:"~/simplecloud",value:E.homeInstallDir},{name:"Choose another folder\u2026",description:"Browse folders",value:"__browse__"}]},onHighlight:(VA)=>{IA(VA)},onChoose:qt}),null),pA(gA,kA(wE,{get when(){return yA()},get fallback(){return(()=>{var VA=_A("box");return w(VA,"height",0),VA})()},get children(){var VA=_A("text");return w(VA,"marginTop",1),w(VA,"wrapMode","word"),pA(VA,yA),Y6((gq)=>w(VA,"fg",UA.red,gq)),VA}}),null),gA}}),kA(ag,{get when(){return i()==="directory-browser"},get children(){return kA(wE,{get when(){return GK()},get fallback(){return(()=>{var gA=_A("box");return w(gA,"flexDirection","column"),pA(gA,kA(X1,{title:"Choose a folder",description:"Opening the folder browser\u2026"}),null),pA(gA,kA(wE,{get when(){return yA()},get fallback(){return(()=>{var VA=_A("text"),gq=nF(" Opening folder browser");return YA(VA,gq),pA(VA,()=>g[L()%g.length],gq),Y6((oq)=>w(VA,"fg",UA.brand,oq)),VA})()},get children(){var VA=_A("text");return pA(VA,yA),Y6((gq)=>w(VA,"fg",UA.red,gq)),VA}}),null),gA})()},children:(gA)=>(()=>{var VA=_A("box");return w(VA,"flexDirection","column"),pA(VA,kA(EI,{get focused(){return Tg(()=>m()==="form"&&i()==="directory-browser")()&&!Fq()},title:"Choose an installation folder",get description(){return gA().directory},showDescriptions:!1,rows:6,get options(){return[{name:gA().usesCurrentDirectory?"Select this folder":`Create ${bYq(gA().suggestedInstallDir)}/ here`,description:gA().usesCurrentDirectory?"Install directly in this empty folder":"Create a new SimpleCloud folder here",value:"__suggested__"},...gA().parent?[{name:"../",description:"Go up one folder",value:gA().parent??""}]:[],...gA().entries.map((gq)=>({name:`${gq.name}/`,description:"Open folder",value:gq.path}))]},get hint(){return Tg(()=>!!Fq())()?`${g[L()%g.length]} Opening folder`:"\u2191\u2193 navigate \xB7 Enter choose \xB7 Backspace/\u2190 up \xB7 Esc back"},onHighlight:eA,onChoose:Ft}),null),pA(VA,kA(wE,{get when(){return yA()},get fallback(){return(()=>{var gq=_A("box");return w(gq,"height",0),gq})()},get children(){var gq=_A("text");return w(gq,"marginTop",1),pA(gq,yA),Y6((oq)=>w(gq,"fg",UA.red,oq)),gq}}),null),VA})()})}}),kA(ag,{get when(){return i()==="start"},get children(){return kA(EI,{get focused(){return Tg(()=>m()==="form")()&&i()==="start"},title:"Start SimpleCloud right away?",description:"You can also start it later with sc start.",options:[{name:"Start SimpleCloud",description:"Recommended \xB7 bring this serverhost online now",value:"yes"},{name:"Finish without starting",description:"Install and register only",value:"no"}],onChoose:(gA)=>{pF(gA==="yes"),UI()}})}})]}})}}),kA(ag,{get when(){return m()==="installing"},get children(){var gA=_A("box"),VA=_A("box"),gq=_A("box"),oq=_A("box"),KE=_A("text"),Bg=_A("box"),PD=_A("text");return YA(gA,VA),YA(gA,Bg),w(gA,"flexDirection","column"),w(gA,"minHeight",12),YA(VA,gq),w(VA,"flexGrow",1),w(VA,"alignItems","center"),w(VA,"justifyContent","center"),YA(gq,oq),w(gq,"flexDirection","row"),w(gq,"alignItems","center"),w(gq,"justifyContent","space-between"),w(gq,"width","100%"),w(gq,"height",3),w(gq,"paddingLeft",2),w(gq,"paddingRight",2),YA(oq,KE),w(oq,"flexDirection","row"),w(oq,"alignItems","center"),w(oq,"flexGrow",1),w(oq,"height",1),pA(KE,()=>g[L()%g.length]),pA(oq,kA(zo,{get text(){return CwA()},get frame(){return L()},marginLeft:1}),null),pA(gq,kA(wE,{get when(){return jt()>=58},get fallback(){return(()=>{var JF=_A("box");return w(JF,"height",0),JF})()},get children(){var JF=_A("box"),ND=_A("text");return YA(JF,ND),w(JF,"width",28),w(JF,"flexShrink",0),w(JF,"justifyContent","flex-end"),w(JF,"marginLeft",2),w(ND,"width",28),w(ND,"fg","#626262"),Y6((OK)=>w(ND,"content",xwA(),OK)),JF}}),null),YA(Bg,PD),w(Bg,"height",2),w(Bg,"flexDirection","row"),w(Bg,"alignItems","flex-end"),w(Bg,"paddingLeft",2),YA(PD,nF("Esc cancel")),w(PD,"fg","#595959"),Y6((JF)=>{var{surfaceRaised:ND,brand:OK}=UA;return ND!==JF.e&&(JF.e=w(gq,"backgroundColor",ND,JF.e)),OK!==JF.t&&(JF.t=w(KE,"fg",OK,JF.t)),JF},{e:void 0,t:void 0}),gA}}),kA(ag,{get when(){return m()==="error"},get children(){return[kA(X1,{get title(){return $t().title},get description(){return $t().description}}),(()=>{var gA=_A("box"),VA=_A("text");return YA(gA,VA),w(gA,"border",!0),w(gA,"borderStyle","rounded"),w(gA,"padding",2),w(VA,"wrapMode","word"),pA(VA,_),Y6((gq)=>{var{red:oq,surfaceRaised:KE,red:Bg}=UA;return oq!==gq.e&&(gq.e=w(gA,"borderColor",oq,gq.e)),KE!==gq.t&&(gq.t=w(gA,"backgroundColor",KE,gq.t)),Bg!==gq.a&&(gq.a=w(VA,"fg",Bg,gq.a)),gq},{e:void 0,t:void 0,a:void 0}),gA})(),(()=>{var gA=_A("text");return YA(gA,nF("Enter continue \xB7 Esc return to the terminal")),w(gA,"marginTop",2),Y6((VA)=>w(gA,"fg",UA.muted,VA)),gA})()]}}),kA(ag,{get when(){return m()==="done"},get children(){var gA=_A("box"),VA=_A("box"),gq=_A("text"),oq=_A("text"),KE=_A("strong"),Bg=nF(" is ready"),PD=_A("text"),JF=_A("box"),ND=_A("text"),OK=_A("text"),ZI=_A("text");return YA(gA,VA),YA(gA,PD),YA(gA,JF),YA(gA,ZI),w(gA,"flexGrow",1),w(gA,"width","100%"),w(gA,"flexDirection","column"),w(gA,"justifyContent","center"),w(gA,"zIndex",2),YA(VA,gq),YA(VA,oq),w(VA,"flexDirection","row"),w(VA,"alignItems","center"),YA(gq,nF("\u2713")),YA(oq,KE),w(oq,"marginLeft",1),YA(KE,Bg),pA(KE,()=>$()?.hostName,Bg),w(PD,"marginTop",1),w(PD,"marginLeft",2),pA(PD,(()=>{var j6=Tg(()=>!!$()?.started);return()=>j6()?`Running on ${$()?.networkName}`:`Connected to ${$()?.networkName} \xB7 Ready to start`})()),YA(JF,ND),YA(JF,OK),w(JF,"flexDirection","row"),w(JF,"marginTop",3),YA(ND,nF("Installed")),w(ND,"width",12),w(OK,"flexGrow",1),w(OK,"wrapMode","word"),pA(OK,kwA),YA(ZI,nF("Return to the dashboard to manage your network.")),w(ZI,"marginTop",3),pA(gA,kA(wE,{get when(){return A.options.canOpenDashboard!==!1},get fallback(){return(()=>{var j6=_A("box"),$E=_A("text"),Jj=_A("text");return YA(j6,$E),YA(j6,Jj),w(j6,"flexDirection","column"),YA($E,nF("dash.simplecloud.app")),w($E,"marginTop",1),YA(Jj,nF("Esc close setup")),w(Jj,"marginTop",2),Y6((u_)=>{var{text:Hj,subtle:gF}=UA;return Hj!==u_.e&&(u_.e=w($E,"fg",Hj,u_.e)),gF!==u_.t&&(u_.t=w(Jj,"fg",gF,u_.t)),u_},{e:void 0,t:void 0}),j6})()},get children(){var j6=_A("box"),$E=_A("box"),Jj=_A("text"),u_=_A("strong"),Hj=_A("text");return YA(j6,$E),YA(j6,Hj),w(j6,"flexDirection","column"),YA($E,Jj),w($E,"width",22),w($E,"height",3),w($E,"alignItems","center"),w($E,"justifyContent","center"),w($E,"marginTop",1),YA(Jj,u_),YA(u_,nF("Open dashboard")),pA(j6,kA(wE,{get when(){return j()},get fallback(){return(()=>{var gF=_A("box");return w(gF,"height",0),gF})()},get children(){var gF=_A("text");return w(gF,"marginTop",1),pA(gF,j),Y6((S1)=>w(gF,"fg",UA.red,S1)),gF}}),Hj),YA(Hj,nF("Enter open dashboard \xB7 Esc close setup")),w(Hj,"marginTop",1),Y6((gF)=>{var{brand:S1,text:Ut,subtle:Zt}=UA;return S1!==gF.e&&(gF.e=w($E,"backgroundColor",S1,gF.e)),Ut!==gF.t&&(gF.t=w(Jj,"fg",Ut,gF.t)),Zt!==gF.a&&(gF.a=w(Hj,"fg",Zt,gF.a)),gF},{e:void 0,t:void 0,a:void 0}),j6}}),null),Y6((j6)=>{var{green:$E,text:Jj,muted:u_,muted:Hj,text:gF,muted:S1}=UA;return $E!==j6.e&&(j6.e=w(gq,"fg",$E,j6.e)),Jj!==j6.t&&(j6.t=w(oq,"fg",Jj,j6.t)),u_!==j6.a&&(j6.a=w(PD,"fg",u_,j6.a)),Hj!==j6.o&&(j6.o=w(ND,"fg",Hj,j6.o)),gF!==j6.i&&(j6.i=w(OK,"fg",gF,j6.i)),S1!==j6.n&&(j6.n=w(ZI,"fg",S1,j6.n)),j6},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),gA}})]}})),pA(F6,kA(wE,{get when(){return Tg(()=>!!(m()==="form"&&J0()))()?J0():void 0},get fallback(){return(()=>{var gA=_A("box");return w(gA,"height",0),gA})()},get children(){var gA=_A("box"),VA=_A("text"),gq=nF(" ");return YA(gA,VA),w(gA,"position","absolute"),w(gA,"left",0),w(gA,"right",0),w(gA,"bottom",0),w(gA,"width","100%"),w(gA,"height",1),w(gA,"flexDirection","row"),w(gA,"paddingRight",2),w(gA,"alignItems","center"),w(gA,"zIndex",3),YA(VA,gq),w(VA,"marginLeft","auto"),pA(VA,(()=>{var oq=Tg(()=>J0()?.state==="running");return()=>oq()?g[L()%g.length]:kYq(J0()?.state??"waiting")})(),gq),pA(VA,()=>J0()?.detail,null),pA(VA,(()=>{var oq=Tg(()=>J0()?.state!=="running"||J0()?.progress===void 0);return()=>oq()?"":` \xB7 ${Math.round((J0()?.progress??0)*100)}%`})(),null),Y6((oq)=>{var KE=UA.background,Bg=uYq(J0()?.state??"waiting");return KE!==oq.e&&(oq.e=w(gA,"backgroundColor",KE,oq.e)),Bg!==oq.t&&(oq.t=w(VA,"fg",Bg,oq.t)),oq},{e:void 0,t:void 0}),gA}}),null),Y6((gA)=>{var VA=UA.background,gq=jt(),oq=Math.max(18,F().height-6),KE=UA.surface,Bg=UA.border,PD=UA.border;return VA!==gA.e&&(gA.e=w(XA,"backgroundColor",VA,gA.e)),gq!==gA.t&&(gA.t=w(Ug,"width",gq,gA.t)),oq!==gA.a&&(gA.a=w(Ug,"maxHeight",oq,gA.a)),KE!==gA.o&&(gA.o=w(Ug,"backgroundColor",KE,gA.o)),Bg!==gA.i&&(gA.i=w(Ug,"borderColor",Bg,gA.i)),PD!==gA.n&&(gA.n=w(YF,"borderColor",PD,gA.n)),gA},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),XA})()},yYq=(A)=>{let q=T9(),F=uR(),[g,E]=xq("Requesting one-time sign-in code"),[_,D]=xq(),[j,K]=xq(),[$,U]=xq(0),Z=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827"],G=new AbortController,O=!1,Q=(L)=>{if(O)return;if(O=!0,G.abort(),A.onExit(L),A.destroyOnExit!==!1)q.destroy()},Y=(L)=>{let M=_()?.verificationUrl;if(L.name==="return"&&M&&A.options.canOpenUrl!==!1){A.options.onOpenUrl(M).catch(()=>{});return}let T=L.name==="escape"||L.sequence==="\x1B",V=L.ctrl&&L.name.toLowerCase()==="c"||L.sequence==="\x03";if(T||V)Q(!1)},J=(L)=>{if(L==="\x1B"||L==="\x03")return Q(!1),!0;return!1};q.prependInputHandler(J),q.keyInput.on("keypress",Y),lE(()=>{q.removeInputHandler(J),q.keyInput.off("keypress",Y)});let I=setInterval(()=>U((L)=>L+1),60);lE(()=>clearInterval(I)),lE(()=>G.abort()),A.options.authenticate({onDetails:D,onStatus:E,signal:G.signal}).then(()=>{E("Connected to your SimpleCloud account"),setTimeout(()=>Q(!0),350)}).catch((L)=>{if(G.signal.aborted)return;K(L instanceof Error?L.message:String(L))});let X=N6(()=>Math.max(44,Math.min(68,F().width-6)));return(()=>{var L=_A("box"),M=_A("box"),T=_A("box"),V=_A("box"),N=_A("box"),B=_A("text");return YA(L,M),w(L,"width","100%"),w(L,"height","100%"),w(L,"flexDirection","column"),YA(M,T),w(M,"flexGrow",1),w(M,"flexDirection","column"),w(M,"alignItems","center"),w(M,"justifyContent","center"),w(M,"padding",3),YA(T,V),YA(T,N),w(T,"flexDirection","column"),w(T,"border",!0),w(T,"borderStyle","rounded"),w(V,"height",4),w(V,"flexDirection","row"),w(V,"alignItems","center"),w(V,"paddingTop",1),w(V,"paddingBottom",1),w(V,"paddingLeft",3),w(V,"paddingRight",3),w(V,"border",["bottom"]),pA(V,kA(xo,{})),YA(N,B),w(N,"flexDirection","column"),w(N,"paddingTop",2),w(N,"paddingBottom",2),w(N,"paddingLeft",3),w(N,"paddingRight",3),pA(N,kA(wE,{get when(){return!j()},get fallback(){return(()=>{var z=_A("box"),x=_A("box"),S=_A("text");return YA(z,x),w(z,"flexDirection","column"),pA(z,kA(X1,{title:"Sign-in could not start",description:"Nothing was installed. Return to the terminal and try again."}),x),YA(x,S),w(x,"border",!0),w(x,"borderStyle","rounded"),w(x,"padding",2),w(S,"wrapMode","word"),pA(S,j),Y6((b)=>{var{red:h,surfaceRaised:c,red:e}=UA;return h!==b.e&&(b.e=w(x,"borderColor",h,b.e)),c!==b.t&&(b.t=w(x,"backgroundColor",c,b.t)),e!==b.a&&(b.a=w(S,"fg",e,b.a)),b},{e:void 0,t:void 0,a:void 0}),z})()},get children(){return kA(wE,{get when(){return _()},get fallback(){return(()=>{var z=_A("box"),x=_A("box"),S=_A("text");return YA(z,x),w(z,"flexDirection","column"),pA(z,kA(X1,{title:"Sign in to SimpleCloud",description:"Preparing a secure one-time code for this terminal."}),x),YA(x,S),w(x,"height",3),w(x,"flexDirection","row"),w(x,"alignItems","center"),w(x,"paddingLeft",2),w(x,"paddingRight",2),pA(S,()=>Z[Math.floor($()/2)%Z.length]),pA(x,kA(zo,{get text(){return g()},get frame(){return $()},marginLeft:1,sweepFrames:34,pauseFrames:4,strength:0.72}),null),Y6((b)=>{var{surfaceRaised:h,brand:c}=UA;return h!==b.e&&(b.e=w(x,"backgroundColor",h,b.e)),c!==b.t&&(b.t=w(S,"fg",c,b.t)),b},{e:void 0,t:void 0}),z})()},children:(z)=>(()=>{var x=_A("box"),S=_A("box"),b=_A("text"),h=_A("text"),c=_A("strong"),e=_A("text"),AA=_A("text"),FA=_A("box"),IA=_A("box"),oA=_A("text"),eA=_A("text"),Z6=nF(" min");return YA(x,S),YA(x,e),YA(x,AA),YA(x,FA),w(x,"flexDirection","column"),pA(x,kA(X1,{get title(){return z().browserOpened?"Finish signing in":"Sign in from any browser"},get description(){return z().browserOpened?"We opened the authorization page. Use the code below if the browser asks for it.":"Open the address below, then enter the one-time code."}}),S),YA(S,b),YA(S,h),w(S,"height",3),w(S,"flexDirection","row"),w(S,"alignItems","center"),w(S,"justifyContent","space-between"),w(S,"paddingLeft",2),w(S,"paddingRight",2),YA(b,nF("Code")),YA(h,c),pA(c,()=>z().userCode),YA(e,nF("Open")),w(e,"marginTop",2),w(AA,"wrapMode","word"),pA(AA,()=>z().verificationUrl),YA(FA,IA),YA(FA,eA),w(FA,"flexDirection","row"),w(FA,"alignItems","center"),w(FA,"marginTop",2),YA(IA,oA),w(IA,"flexDirection","row"),w(IA,"alignItems","center"),w(IA,"flexGrow",1),w(oA,"width",3),pA(oA,()=>Z[Math.floor($()/2)%Z.length]),pA(IA,kA(zo,{get text(){return g()},get frame(){return $()},sweepFrames:34,pauseFrames:4,strength:0.72}),null),YA(eA,Z6),w(eA,"marginLeft",2),pA(eA,()=>Math.max(1,Math.floor(z().expiresIn/60)),Z6),Y6((hq)=>{var{surfaceRaised:vA,muted:pF,text:GK,muted:PA,cyan:yA,brand:Tq,subtle:Fq}=UA;return vA!==hq.e&&(hq.e=w(S,"backgroundColor",vA,hq.e)),pF!==hq.t&&(hq.t=w(b,"fg",pF,hq.t)),GK!==hq.a&&(hq.a=w(h,"fg",GK,hq.a)),PA!==hq.o&&(hq.o=w(e,"fg",PA,hq.o)),yA!==hq.i&&(hq.i=w(AA,"fg",yA,hq.i)),Tq!==hq.n&&(hq.n=w(oA,"fg",Tq,hq.n)),Fq!==hq.s&&(hq.s=w(eA,"fg",Fq,hq.s)),hq},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),x})()})}}),B),w(B,"marginTop",2),pA(B,(()=>{var z=Tg(()=>!!j());return()=>z()?"Esc return to terminal":Tg(()=>!!_())()?A.options.canOpenUrl===!1?"Open the link manually \xB7 Esc cancel":"Enter open link \xB7 Esc cancel":"Esc cancel"})()),Y6((z)=>{var x=UA.background,S=X(),b=UA.surface,h=j()?UA.red:UA.border,c=UA.border,e=UA.subtle;return x!==z.e&&(z.e=w(L,"backgroundColor",x,z.e)),S!==z.t&&(z.t=w(T,"width",S,z.t)),b!==z.a&&(z.a=w(T,"backgroundColor",b,z.a)),h!==z.o&&(z.o=w(T,"borderColor",h,z.o)),c!==z.i&&(z.i=w(V,"borderColor",c,z.i)),e!==z.n&&(z.n=w(B,"fg",e,z.n)),z},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),L})()},mYq=(A)=>{let q=T9(),F=uR(),[g,E]=xq(A.options.auth?"auth":"loading"),[_,D]=xq(),[j,K]=xq(),[$,U]=xq(!1),Z=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827"],[G,O]=xq(0),Q=!1,Y,J=(V)=>{A.onExit(V)},I=()=>{A.onExit(null),q.destroy()},X=(V=!1)=>{if(Q)return;if(Q=!0,!V)E("loading"),Y=setTimeout(()=>U(!0),300);A.options.loadSetup().then((N)=>{if(Y)clearTimeout(Y);D(N),E("setup")}).catch((N)=>{if(Y)clearTimeout(Y);K(N instanceof Error?N.message:String(N)),E("error")})};if(!A.options.auth)X();let L=(V)=>{if((V==="\x1B"||V==="\x03")&&(g()==="loading"||g()==="error"))return I(),!0;return!1};q.prependInputHandler(L),lE(()=>q.removeInputHandler(L));let M=setInterval(()=>O((V)=>(V+1)%Z.length),100);lE(()=>clearInterval(M)),lE(()=>{if(Y)clearTimeout(Y)});let T=N6(()=>Math.max(44,Math.min(68,F().width-6)));return kA(hR,{get children(){return[kA(ag,{get when(){return Tg(()=>g()==="auth")()&&A.options.auth},get children(){return kA(wE,{get when(){return A.options.auth},get fallback(){return(()=>{var V=_A("box");return w(V,"height",0),V})()},children:(V)=>kA(yYq,{get options(){return V()},destroyOnExit:!1,onExit:(N)=>{if(N)X(!0);else I()}})})}}),kA(ag,{get when(){return Tg(()=>g()==="setup")()&&_()},get children(){return kA(wE,{get when(){return _()},get fallback(){return(()=>{var V=_A("box");return w(V,"height",0),V})()},children:(V)=>kA(vYq,{get options(){return V()},onExit:J})})}}),kA(ag,{get when(){return g()==="loading"},get children(){var V=_A("box");return w(V,"width","100%"),w(V,"height","100%"),w(V,"position","relative"),pA(V,kA(wE,{get when(){return $()},get fallback(){return(()=>{var N=_A("box");return w(N,"height",0),N})()},get children(){var N=_A("box"),B=_A("text"),z=nF(" Preparing setup"),x=_A("text");return YA(N,B),YA(N,x),w(N,"position","absolute"),w(N,"left",0),w(N,"right",0),w(N,"bottom",0),w(N,"width","100%"),w(N,"height",3),w(N,"flexDirection","row"),w(N,"alignItems","center"),w(N,"paddingLeft",2),w(N,"paddingRight",2),w(N,"border",["top"]),YA(B,z),pA(B,()=>Z[G()],z),YA(x,nF("Esc cancel")),w(x,"marginLeft","auto"),Y6((S)=>{var{surface:b,border:h,brand:c,subtle:e}=UA;return b!==S.e&&(S.e=w(N,"backgroundColor",b,S.e)),h!==S.t&&(S.t=w(N,"borderColor",h,S.t)),c!==S.a&&(S.a=w(B,"fg",c,S.a)),e!==S.o&&(S.o=w(x,"fg",e,S.o)),S},{e:void 0,t:void 0,a:void 0,o:void 0}),N}})),Y6((N)=>w(V,"backgroundColor",UA.background,N)),V}}),kA(ag,{get when(){return g()==="error"},get children(){var V=_A("box"),N=_A("box"),B=_A("box"),z=_A("box"),x=_A("box"),S=_A("text"),b=_A("text");return YA(V,N),YA(V,b),w(V,"width","100%"),w(V,"height","100%"),w(V,"flexDirection","column"),w(V,"alignItems","center"),w(V,"justifyContent","center"),w(V,"padding",3),YA(N,B),YA(N,z),w(N,"flexDirection","column"),w(N,"border",!0),w(N,"borderStyle","rounded"),w(B,"height",4),w(B,"flexDirection","row"),w(B,"alignItems","center"),w(B,"paddingTop",1),w(B,"paddingBottom",1),w(B,"paddingLeft",3),w(B,"paddingRight",3),w(B,"border",["bottom"]),pA(B,kA(xo,{})),YA(z,x),w(z,"flexDirection","column"),w(z,"paddingTop",2),w(z,"paddingBottom",2),w(z,"paddingLeft",3),w(z,"paddingRight",3),pA(z,kA(X1,{title:"Setup could not continue",description:"Nothing was installed on this machine."}),x),YA(x,S),w(x,"border",!0),w(x,"borderStyle","rounded"),w(x,"padding",2),w(S,"wrapMode","word"),pA(S,j),YA(b,nF("Esc cancel")),w(b,"marginTop",1),Y6((h)=>{var c=UA.background,e=T(),AA=UA.surface,FA=UA.red,IA=UA.border,oA=UA.surfaceRaised,eA=UA.red,Z6=UA.red,hq=UA.subtle;return c!==h.e&&(h.e=w(V,"backgroundColor",c,h.e)),e!==h.t&&(h.t=w(N,"width",e,h.t)),AA!==h.a&&(h.a=w(N,"backgroundColor",AA,h.a)),FA!==h.o&&(h.o=w(N,"borderColor",FA,h.o)),IA!==h.i&&(h.i=w(B,"borderColor",IA,h.i)),oA!==h.n&&(h.n=w(x,"backgroundColor",oA,h.n)),eA!==h.s&&(h.s=w(x,"borderColor",eA,h.s)),Z6!==h.h&&(h.h=w(S,"fg",Z6,h.h)),hq!==h.r&&(h.r=w(b,"fg",hq,h.r)),h},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),V}})]}})},KRA=async(A)=>{let q=()=>{},F=new Promise((_)=>{q=_}),g=jRA(()=>kA(mYq,{options:A,onExit:q}),{backgroundColor:UA.background,exitOnCtrlC:!1,screenMode:"alternate-screen",consoleMode:"disabled",useMouse:!1,targetFps:30}),E=await F;return await g,E};var $RA=W(async()=>{N9();_i();await GI([O0(),O0(),O0(),O0(),O0(),O0(),O0(),O0(),O0()]);UA={background:"#1e1e1e",surface:"#282828",surfaceRaised:"#2b2b2b",border:"#383838",borderStrong:"#4a4a4a",text:"#ebebeb",muted:"#9e9e9e",subtle:"#707070",logo:"#4ba6dd",brand:"#306ce2",dither:"#244f87",cyan:"#0fa2ec",green:"#28d26e",amber:"#f59e0b",red:"#ea3939"}});import*as ZRA from"fs/promises";import*as yR from"os";import*as FU from"path";var URA="host-1",cYq="https://dash.simplecloud.app",ho=()=>Math.floor(yR.totalmem()/1048576*0.8),dYq=async(A)=>{let q=FU.resolve(A),F=await ZRA.readdir(q,{withFileTypes:!0}),g=FU.dirname(q),E=await gi(q);return{directory:q,parent:g===q?void 0:g,suggestedInstallDir:E,usesCurrentDirectory:E===q,entries:F.filter((_)=>_.isDirectory()).sort((_,D)=>_.name.localeCompare(D.name,void 0,{sensitivity:"base"})).map((_)=>({name:_.name,path:FU.join(q,_.name)}))}},GRA=(A)=>{let q=oO(A);if(q===null)return"Use a value like 80%, 16gb, 4096mb, or 4096";if(q<512)return"Minimum memory is 512 MB";return},aYq=(A)=>{let q=GRA(A);if(q)throw Error(q);let F=oO(A);if(F===null)throw Error("Invalid memory value");return F},rYq=async(A)=>{if(A instanceof Error)return A;if(A instanceof Response){let q="";try{let g=(await A.text()).trim();if(g)try{let E=JSON.parse(g);q=E.message??E.detail??E.error??g}catch{q=g}}catch{}let F=`${A.status} ${A.statusText}`.trim();return Error(`SimpleCloud API request failed (${F})${q?`: ${q.slice(0,300)}`:""}`)}return Error(String(A))},fYq=(A)=>(A??[]).flatMap((q)=>q.split(",")).map((q)=>{let F=q.trim(),g=Math.max(F.indexOf(":"),F.indexOf("@"));return g<0?{id:F}:{id:F.slice(0,g),version:F.slice(g+1)}}).filter((q)=>q.id.length>0),nYq=(A)=>A.flatMap((q)=>{let F=k2(q);return F?[{id:q.id,name:q.name,slug:q.slug,networkId:F}]:[]}),pYq=(A,q)=>{if(!A)return;let F=q.find((g)=>g.id===A||g.slug===A||g.networkId===A);if(!F)throw new tA(`Network "${A}" was not found`);return F},iYq=async(A,q,F)=>{if(F.update("registration",{state:"running",detail:A.newNetwork?"Creating":"Connecting"}),A.newNetwork){let E=await kJ(A.newNetwork.name,A.newNetwork.slug),_=k2(E);if(!_)throw Error("The new network did not return a network ID");return F.update("registration",{state:"done",detail:`Ready \xB7 ${E.name}`,progress:void 0}),{orgId:E.id,orgName:E.name,orgSlug:E.slug,networkId:_}}let g=q.find((E)=>E.id===A.networkId);if(!g)throw Error("Select a network before continuing");return F.update("registration",{state:"done",detail:`Ready \xB7 ${g.name}`,progress:void 0}),{orgId:g.id,orgName:g.name,orgSlug:g.slug,networkId:g.networkId}},lYq=async(A,q,F,g,E)=>{let _=yG({networkId:A,networkSecret:q,baseURL:F}),D=await z$((K)=>_.v0.serverhostsRegisterCreate({host_name:g,maximum_memory:E},{signal:K}),{operation:"Registering the serverhost"});if(!D.ok)throw D;let j=D.data?.serverhost_id;if(!j)throw Error("The controller did not return a serverhost ID");return j},oYq=async(A,q,F,g)=>{let E=yG({networkId:A,networkSecret:q,baseURL:F}),_=await z$((j)=>E.v0.networksSecretsCreate({name:`serverhost-${g}`},{signal:j}),{operation:"Creating the serverhost secret"}),D=_.data;if(!_.ok)throw _;if(!D?.secret)throw Error("The controller did not return a network secret");return D.secret},tYq=async(A,q,F)=>{let g=await u.runPromise(nK().pipe(u.provide(Qq))),E=(A.orgSlug||FU.basename(F)||"default").trim()||"default",_=Object.keys(g).length===0?"default":E,D=2;while(g[_])_=`${E}-${D}`,D+=1;return await u.runPromise(u7(_,{orgId:A.orgId,orgName:A.orgName,orgSlug:A.orgSlug,baseURL:q,installationDir:F}).pipe(u.provide(Qq))),await u.runPromise(k7(_).pipe(u.provide(Qq))),_},sYq=async(A,q,F,g)=>{if(A.length===0)return;g.update("dependencies",{state:"running",detail:`Installing ${A.map((_)=>_.id).join(", ")}`});let E=async()=>{for(let _ of A)if(!await hO(_.id,{version:_.version,yes:!0,embedded:!0,silent:!0,nonInteractiveSudo:MB(q)}))throw Error(`Unknown setup installable: ${_.id}`);if(A.some((_)=>_.id.toLowerCase()==="java")&&!await MH())throw Error("Java 21+ could not be verified after installation")};if(MB(q)){if(g.update("dependencies",{state:"running",detail:"Waiting for installation approval"}),!await F.suspend(xO))throw Error("Administrator permission was not granted")}await E(),g.update("dependencies",{state:"done",detail:"Dependencies installed"})},eYq=()=>{return{signal:new AbortController().signal,suspend:(q)=>q()}},AJq=async(A)=>{let q=process.stdout.write,F=process.stderr.write;process.stdout.write=()=>!0,process.stderr.write=()=>!0;try{return await A()}finally{process.stdout.write=q,process.stderr.write=F}},qJq=(A)=>{let q=new Map;return A.subscribe(({tasks:F})=>{for(let g of F){let E=`${g.state}:${g.detail}`;if((g.state==="running"||g.state==="done"||g.state==="error")&&q.get(g.id)!==E){q.set(g.id,E);let _=g.state==="done"?H.green("\u2713"):g.state==="error"?H.red("\xD7"):H.cyan("\u25C6");console.log(`${_} ${g.label}: ${g.detail}`)}}})},ORA=async(A={})=>{let q=dq(),F=F1(),g=await ZPA();if(q==="windows")throw new tA("Automated serverhost setup is not supported on Windows","Use WSL or install the serverhost on Linux or macOS.");let E=process.stdin.isTTY===!0&&process.stdout.isTTY===!0,_=BLA(),D=new AbortController,j=!1,K,$=()=>{j=!1;let M=RLA(q,F,_,D.signal);return M.catch(()=>{if(K===M)j=!0}),M};K=$();let U=()=>{if(j)K=$();return K},Z=zLA(q,_),G=await V2(),O={canOpenUrl:g,authenticate:async({onDetails:M,onStatus:T,signal:V})=>{if(!await d2({skipExistingCheck:!0,silent:!0,noBrowser:!0,code:A.code,onDeviceAuthorization:async(B)=>{let z=!1;if(!A.noBrowser&&g)try{await MO(B.verificationUrl),z=!0}catch{}M({...B,browserOpened:z})},onStatus:T,signal:V}))throw new v7("Login cancelled")},onOpenUrl:async(M)=>{await MO(M)}},Q=async()=>{let M=await u.runPromise(b7().pipe(u.provide(Qq))),T=qO(),[V,N]=await Promise.all([T,Z]),B=nYq(V),z=pYq(A.network,B),x=fYq(A.install),b=x.some((PA)=>PA.id.toLowerCase()==="java")?{...N,java:!0,missing:N.missing.filter((PA)=>!PA.startsWith("Java"))}:N,h=new ji(q,b,_),c=A.autoInstallDeps??(A.yes?!0:void 0),e=process.cwd(),AA=A.installDir?.trim()||void 0,FA=AA||await gi(e),IA=FU.join(yR.homedir(),"simplecloud"),oA,eA,Z6=(PA,yA)=>{if(!PA)return h.complete(!1,yA);if(!oA){let Tq=h.complete(!0,yA);oA=Tq,Tq.catch(()=>{if(oA===Tq)oA=void 0})}return oA},hq=(PA)=>{if(!eA){let yA=sYq(x,q,PA,_);eA=yA,yA.catch(()=>{if(eA===yA)eA=void 0})}return eA},vA=(PA,yA)=>{if(h.requestBackgroundInstall(),b.missing.length>0&&!PA)return;Z6(!0,yA).then(()=>hq(yA)).catch((Tq)=>{_.update("dependencies",{state:"error",detail:Tq instanceof Error?Tq.message:"Dependency installation failed"})})},pF=async(PA,yA)=>{let Tq,Fq=!1,FF=[];_.update("files",{state:"waiting",detail:"Ready"}),_.update("start",{state:PA.start?"waiting":"skipped",detail:PA.start?"After installation":""}),_.update("services",{state:A.service?.length?"waiting":"skipped",detail:A.service?.length?"After installation":"Not requested"});try{let[bq,x6]=await Promise.all([iYq(PA,B,_),U(),(async()=>{await Z6(PA.autoInstallDeps,yA),await hq(yA)})()]),N4=aYq(PA.maxMemory),y=await Ei(PA.installDir);if(_.update("registration",{state:"running",detail:"Registering host",progress:void 0}),E)await new Promise((SA)=>setTimeout(SA,34));let m=await vG(),jA=await lYq(bq.networkId,m,M,PA.hostName,N4),i=await oYq(bq.networkId,m,M,jA);if(await QB(x6.stagingDir,{networkId:bq.networkId,networkSecret:i,serverhostId:jA}),_.update("registration",{state:"done",detail:`Connected \xB7 ${bq.orgName}`}),A.service?.length){_.update("services",{state:"running",detail:"Preparing"});let SA={signal:yA.signal,nonInteractiveSudo:!0,templateVariables:{networkSlug:bq.orgSlug},onStatus:(NA)=>{_.update("services",{state:"running",detail:NA})},onSystemInstallRequired:async(NA)=>{if(q!=="linux"||typeof process.getuid==="function"&&process.getuid()===0||Fq)return;if(_.update("services",{state:"running",detail:`Waiting for ${NA} permission`}),Fq=await yA.suspend(async()=>{return console.log(`
|
|
639
|
+
`)),Y6((gq)=>w(VA,"fg",UA.dither,gq)),gA}}),F6),YA(F6,Ug),w(F6,"flexGrow",1),w(F6,"flexDirection","column"),w(F6,"alignItems","center"),w(F6,"justifyContent","center"),w(F6,"padding",3),w(F6,"zIndex",1),YA(Ug,YF),YA(Ug,Yj),w(Ug,"minHeight",18),w(Ug,"flexDirection","column"),w(Ug,"border",!0),w(Ug,"borderStyle","rounded"),w(Ug,"zIndex",2),w(YF,"height",4),w(YF,"flexDirection","row"),w(YF,"alignItems","center"),w(YF,"paddingTop",1),w(YF,"paddingBottom",1),w(YF,"paddingLeft",3),w(YF,"paddingRight",3),w(YF,"border",["bottom"]),pA(YF,kA(xo,{})),w(Yj,"flexDirection","column"),w(Yj,"position","relative"),w(Yj,"paddingTop",2),w(Yj,"paddingBottom",2),w(Yj,"paddingLeft",3),w(Yj,"paddingRight",3),pA(Yj,kA(hR,{get children(){return[kA(ag,{get when(){return m()==="form"},get children(){return kA(hR,{get children(){return[kA(ag,{get when(){return i()==="network"},get children(){return kA(EI,{get focused(){return Tg(()=>m()==="form")()&&i()==="network"},title:"Where should this serverhost live?",description:"Choose an existing network or create a fresh one.",get options(){return[...E.networks.map((gA)=>({name:gA.name,description:gA.slug,value:gA.id})),{name:"Create a new network",description:"Start with an empty SimpleCloud network",value:"__create__"}]},showDescriptions:!1,onChoose:(gA)=>{if(gA==="__create__"){zA("network-name");return}B(""),V(gA),eo()}})}}),kA(ag,{get when(){return i()==="network-name"},get children(){return kA(vR,{get focused(){return Tg(()=>m()==="form")()&&i()==="network-name"},title:"Give your network a name",description:"This is the name you will see in the dashboard.",placeholder:"My Minecraft Network",get error(){return O()},onConfirm:(gA)=>{let VA=gA.trim();if(!VA){Q("Network name cannot be empty");return}if(VA.length>100){Q("Keep the name under 100 characters");return}B(VA),x(hYq(VA)),zA("network-slug")}})}}),kA(ag,{get when(){return i()==="network-slug"},get children(){return kA(vR,{get focused(){return Tg(()=>m()==="form")()&&i()==="network-slug"},title:"Choose its dashboard address",description:"Lowercase letters, numbers, and hyphens only.",get initialValue(){return z()},get error(){return O()},onConfirm:(gA)=>{let VA=gA.trim();if(!/^[a-z0-9-]+$/.test(VA)||VA.length>50){Q("Use up to 50 lowercase letters, numbers, or hyphens");return}x(VA),eo()}})}}),kA(ag,{get when(){return i()==="dependencies"},get children(){return kA(EI,{get focused(){return Tg(()=>m()==="form")()&&i()==="dependencies"},get title(){return`Install ${E.missingDependencies.join(" and ")}?`},description:"Setup can prepare missing dependencies while you finish the remaining details.",options:[{name:"Install in the background",description:"Recommended \xB7 setup handles the required packages",value:"yes"},{name:"I\u2019ll install them myself",description:"Finish setup after the dependencies are available",value:"no"}],onChoose:(gA)=>{let VA=gA==="yes";if(hq(VA),VA)tR(!0);TwA()}})}}),kA(ag,{get when(){return i()==="host"},get children(){return kA(vR,{get focused(){return Tg(()=>m()==="form")()&&i()==="host"},title:"What should we call this machine?",description:"Use a short, recognizable name. You can change it later.",get initialValue(){return S()},get error(){return O()},onConfirm:(gA)=>{let VA=gA.trim();if(!VA){Q("Serverhost name cannot be empty");return}b(VA),WwA()}})}}),kA(ag,{get when(){return i()==="memory"},get children(){return kA(vR,{get focused(){return Tg(()=>m()==="form")()&&i()==="memory"},title:"How much memory can SimpleCloud use?",description:"Leave enough room for the operating system and anything else on this machine.",get initialValue(){return h()},placeholder:"80%, 16gb, or 4096mb",get error(){return O()},onConfirm:(gA)=>{let VA=A.options.validateMemory(gA);if(VA){Q(VA);return}c(gA.trim()),$I()}})}}),kA(ag,{get when(){return i()==="location"},get children(){var gA=_A("box");return w(gA,"flexDirection","column"),pA(gA,kA(EI,{get focused(){return Tg(()=>m()==="form")()&&i()==="location"},title:"Where should SimpleCloud live?",description:"Choose a new or empty folder.",get options(){return[hwA(),{name:"Home folder",description:"~/simplecloud",value:E.homeInstallDir},{name:"Choose another folder\u2026",description:"Browse folders",value:"__browse__"}]},onHighlight:(VA)=>{IA(VA)},onChoose:qt}),null),pA(gA,kA(wE,{get when(){return yA()},get fallback(){return(()=>{var VA=_A("box");return w(VA,"height",0),VA})()},get children(){var VA=_A("text");return w(VA,"marginTop",1),w(VA,"wrapMode","word"),pA(VA,yA),Y6((gq)=>w(VA,"fg",UA.red,gq)),VA}}),null),gA}}),kA(ag,{get when(){return i()==="directory-browser"},get children(){return kA(wE,{get when(){return GK()},get fallback(){return(()=>{var gA=_A("box");return w(gA,"flexDirection","column"),pA(gA,kA(X1,{title:"Choose a folder",description:"Opening the folder browser\u2026"}),null),pA(gA,kA(wE,{get when(){return yA()},get fallback(){return(()=>{var VA=_A("text"),gq=nF(" Opening folder browser");return YA(VA,gq),pA(VA,()=>g[L()%g.length],gq),Y6((oq)=>w(VA,"fg",UA.brand,oq)),VA})()},get children(){var VA=_A("text");return pA(VA,yA),Y6((gq)=>w(VA,"fg",UA.red,gq)),VA}}),null),gA})()},children:(gA)=>(()=>{var VA=_A("box");return w(VA,"flexDirection","column"),pA(VA,kA(EI,{get focused(){return Tg(()=>m()==="form"&&i()==="directory-browser")()&&!Fq()},title:"Choose an installation folder",get description(){return gA().directory},showDescriptions:!1,rows:6,get options(){return[{name:gA().usesCurrentDirectory?"Select this folder":`Create ${bYq(gA().suggestedInstallDir)}/ here`,description:gA().usesCurrentDirectory?"Install directly in this empty folder":"Create a new SimpleCloud folder here",value:"__suggested__"},...gA().parent?[{name:"../",description:"Go up one folder",value:gA().parent??""}]:[],...gA().entries.map((gq)=>({name:`${gq.name}/`,description:"Open folder",value:gq.path}))]},get hint(){return Tg(()=>!!Fq())()?`${g[L()%g.length]} Opening folder`:"\u2191\u2193 navigate \xB7 Enter choose \xB7 Backspace/\u2190 up \xB7 Esc back"},onHighlight:eA,onChoose:Ft}),null),pA(VA,kA(wE,{get when(){return yA()},get fallback(){return(()=>{var gq=_A("box");return w(gq,"height",0),gq})()},get children(){var gq=_A("text");return w(gq,"marginTop",1),pA(gq,yA),Y6((oq)=>w(gq,"fg",UA.red,oq)),gq}}),null),VA})()})}}),kA(ag,{get when(){return i()==="start"},get children(){return kA(EI,{get focused(){return Tg(()=>m()==="form")()&&i()==="start"},title:"Start SimpleCloud right away?",description:"You can also start it later with sc start.",options:[{name:"Start SimpleCloud",description:"Recommended \xB7 bring this serverhost online now",value:"yes"},{name:"Finish without starting",description:"Install and register only",value:"no"}],onChoose:(gA)=>{pF(gA==="yes"),UI()}})}})]}})}}),kA(ag,{get when(){return m()==="installing"},get children(){var gA=_A("box"),VA=_A("box"),gq=_A("box"),oq=_A("box"),KE=_A("text"),Bg=_A("box"),PD=_A("text");return YA(gA,VA),YA(gA,Bg),w(gA,"flexDirection","column"),w(gA,"minHeight",12),YA(VA,gq),w(VA,"flexGrow",1),w(VA,"alignItems","center"),w(VA,"justifyContent","center"),YA(gq,oq),w(gq,"flexDirection","row"),w(gq,"alignItems","center"),w(gq,"justifyContent","space-between"),w(gq,"width","100%"),w(gq,"height",3),w(gq,"paddingLeft",2),w(gq,"paddingRight",2),YA(oq,KE),w(oq,"flexDirection","row"),w(oq,"alignItems","center"),w(oq,"flexGrow",1),w(oq,"height",1),pA(KE,()=>g[L()%g.length]),pA(oq,kA(zo,{get text(){return CwA()},get frame(){return L()},marginLeft:1}),null),pA(gq,kA(wE,{get when(){return jt()>=58},get fallback(){return(()=>{var JF=_A("box");return w(JF,"height",0),JF})()},get children(){var JF=_A("box"),ND=_A("text");return YA(JF,ND),w(JF,"width",28),w(JF,"flexShrink",0),w(JF,"justifyContent","flex-end"),w(JF,"marginLeft",2),w(ND,"width",28),w(ND,"fg","#626262"),Y6((OK)=>w(ND,"content",xwA(),OK)),JF}}),null),YA(Bg,PD),w(Bg,"height",2),w(Bg,"flexDirection","row"),w(Bg,"alignItems","flex-end"),w(Bg,"paddingLeft",2),YA(PD,nF("Esc cancel")),w(PD,"fg","#595959"),Y6((JF)=>{var{surfaceRaised:ND,brand:OK}=UA;return ND!==JF.e&&(JF.e=w(gq,"backgroundColor",ND,JF.e)),OK!==JF.t&&(JF.t=w(KE,"fg",OK,JF.t)),JF},{e:void 0,t:void 0}),gA}}),kA(ag,{get when(){return m()==="error"},get children(){return[kA(X1,{get title(){return $t().title},get description(){return $t().description}}),(()=>{var gA=_A("box"),VA=_A("text");return YA(gA,VA),w(gA,"border",!0),w(gA,"borderStyle","rounded"),w(gA,"padding",2),w(VA,"wrapMode","word"),pA(VA,_),Y6((gq)=>{var{red:oq,surfaceRaised:KE,red:Bg}=UA;return oq!==gq.e&&(gq.e=w(gA,"borderColor",oq,gq.e)),KE!==gq.t&&(gq.t=w(gA,"backgroundColor",KE,gq.t)),Bg!==gq.a&&(gq.a=w(VA,"fg",Bg,gq.a)),gq},{e:void 0,t:void 0,a:void 0}),gA})(),(()=>{var gA=_A("text");return YA(gA,nF("Enter continue \xB7 Esc return to the terminal")),w(gA,"marginTop",2),Y6((VA)=>w(gA,"fg",UA.muted,VA)),gA})()]}}),kA(ag,{get when(){return m()==="done"},get children(){var gA=_A("box"),VA=_A("box"),gq=_A("text"),oq=_A("text"),KE=_A("strong"),Bg=nF(" is ready"),PD=_A("text"),JF=_A("box"),ND=_A("text"),OK=_A("text"),ZI=_A("text");return YA(gA,VA),YA(gA,PD),YA(gA,JF),YA(gA,ZI),w(gA,"flexGrow",1),w(gA,"width","100%"),w(gA,"flexDirection","column"),w(gA,"justifyContent","center"),w(gA,"zIndex",2),YA(VA,gq),YA(VA,oq),w(VA,"flexDirection","row"),w(VA,"alignItems","center"),YA(gq,nF("\u2713")),YA(oq,KE),w(oq,"marginLeft",1),YA(KE,Bg),pA(KE,()=>$()?.hostName,Bg),w(PD,"marginTop",1),w(PD,"marginLeft",2),pA(PD,(()=>{var j6=Tg(()=>!!$()?.started);return()=>j6()?`Running on ${$()?.networkName}`:`Connected to ${$()?.networkName} \xB7 Ready to start`})()),YA(JF,ND),YA(JF,OK),w(JF,"flexDirection","row"),w(JF,"marginTop",3),YA(ND,nF("Installed")),w(ND,"width",12),w(OK,"flexGrow",1),w(OK,"wrapMode","word"),pA(OK,kwA),YA(ZI,nF("Return to the dashboard to manage your network.")),w(ZI,"marginTop",3),pA(gA,kA(wE,{get when(){return A.options.canOpenDashboard!==!1},get fallback(){return(()=>{var j6=_A("box"),$E=_A("text"),Jj=_A("text");return YA(j6,$E),YA(j6,Jj),w(j6,"flexDirection","column"),YA($E,nF("dash.simplecloud.app")),w($E,"marginTop",1),YA(Jj,nF("Esc close setup")),w(Jj,"marginTop",2),Y6((u_)=>{var{text:Hj,subtle:gF}=UA;return Hj!==u_.e&&(u_.e=w($E,"fg",Hj,u_.e)),gF!==u_.t&&(u_.t=w(Jj,"fg",gF,u_.t)),u_},{e:void 0,t:void 0}),j6})()},get children(){var j6=_A("box"),$E=_A("box"),Jj=_A("text"),u_=_A("strong"),Hj=_A("text");return YA(j6,$E),YA(j6,Hj),w(j6,"flexDirection","column"),YA($E,Jj),w($E,"width",22),w($E,"height",3),w($E,"alignItems","center"),w($E,"justifyContent","center"),w($E,"marginTop",1),YA(Jj,u_),YA(u_,nF("Open dashboard")),pA(j6,kA(wE,{get when(){return j()},get fallback(){return(()=>{var gF=_A("box");return w(gF,"height",0),gF})()},get children(){var gF=_A("text");return w(gF,"marginTop",1),pA(gF,j),Y6((S1)=>w(gF,"fg",UA.red,S1)),gF}}),Hj),YA(Hj,nF("Enter open dashboard \xB7 Esc close setup")),w(Hj,"marginTop",1),Y6((gF)=>{var{brand:S1,text:Ut,subtle:Zt}=UA;return S1!==gF.e&&(gF.e=w($E,"backgroundColor",S1,gF.e)),Ut!==gF.t&&(gF.t=w(Jj,"fg",Ut,gF.t)),Zt!==gF.a&&(gF.a=w(Hj,"fg",Zt,gF.a)),gF},{e:void 0,t:void 0,a:void 0}),j6}}),null),Y6((j6)=>{var{green:$E,text:Jj,muted:u_,muted:Hj,text:gF,muted:S1}=UA;return $E!==j6.e&&(j6.e=w(gq,"fg",$E,j6.e)),Jj!==j6.t&&(j6.t=w(oq,"fg",Jj,j6.t)),u_!==j6.a&&(j6.a=w(PD,"fg",u_,j6.a)),Hj!==j6.o&&(j6.o=w(ND,"fg",Hj,j6.o)),gF!==j6.i&&(j6.i=w(OK,"fg",gF,j6.i)),S1!==j6.n&&(j6.n=w(ZI,"fg",S1,j6.n)),j6},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),gA}})]}})),pA(F6,kA(wE,{get when(){return Tg(()=>!!(m()==="form"&&J0()))()?J0():void 0},get fallback(){return(()=>{var gA=_A("box");return w(gA,"height",0),gA})()},get children(){var gA=_A("box"),VA=_A("text"),gq=nF(" ");return YA(gA,VA),w(gA,"position","absolute"),w(gA,"left",0),w(gA,"right",0),w(gA,"bottom",0),w(gA,"width","100%"),w(gA,"height",1),w(gA,"flexDirection","row"),w(gA,"paddingRight",2),w(gA,"alignItems","center"),w(gA,"zIndex",3),YA(VA,gq),w(VA,"marginLeft","auto"),pA(VA,(()=>{var oq=Tg(()=>J0()?.state==="running");return()=>oq()?g[L()%g.length]:kYq(J0()?.state??"waiting")})(),gq),pA(VA,()=>J0()?.detail,null),pA(VA,(()=>{var oq=Tg(()=>J0()?.state!=="running"||J0()?.progress===void 0);return()=>oq()?"":` \xB7 ${Math.round((J0()?.progress??0)*100)}%`})(),null),Y6((oq)=>{var KE=UA.background,Bg=uYq(J0()?.state??"waiting");return KE!==oq.e&&(oq.e=w(gA,"backgroundColor",KE,oq.e)),Bg!==oq.t&&(oq.t=w(VA,"fg",Bg,oq.t)),oq},{e:void 0,t:void 0}),gA}}),null),Y6((gA)=>{var VA=UA.background,gq=jt(),oq=Math.max(18,F().height-6),KE=UA.surface,Bg=UA.border,PD=UA.border;return VA!==gA.e&&(gA.e=w(XA,"backgroundColor",VA,gA.e)),gq!==gA.t&&(gA.t=w(Ug,"width",gq,gA.t)),oq!==gA.a&&(gA.a=w(Ug,"maxHeight",oq,gA.a)),KE!==gA.o&&(gA.o=w(Ug,"backgroundColor",KE,gA.o)),Bg!==gA.i&&(gA.i=w(Ug,"borderColor",Bg,gA.i)),PD!==gA.n&&(gA.n=w(YF,"borderColor",PD,gA.n)),gA},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),XA})()},yYq=(A)=>{let q=T9(),F=uR(),[g,E]=xq("Requesting one-time sign-in code"),[_,D]=xq(),[j,K]=xq(),[$,U]=xq(0),Z=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827"],G=new AbortController,O=!1,Q=(L)=>{if(O)return;if(O=!0,G.abort(),A.onExit(L),A.destroyOnExit!==!1)q.destroy()},Y=(L)=>{let M=_()?.verificationUrl;if(L.name==="return"&&M&&A.options.canOpenUrl!==!1){A.options.onOpenUrl(M).catch(()=>{});return}let T=L.name==="escape"||L.sequence==="\x1B",V=L.ctrl&&L.name.toLowerCase()==="c"||L.sequence==="\x03";if(T||V)Q(!1)},J=(L)=>{if(L==="\x1B"||L==="\x03")return Q(!1),!0;return!1};q.prependInputHandler(J),q.keyInput.on("keypress",Y),lE(()=>{q.removeInputHandler(J),q.keyInput.off("keypress",Y)});let I=setInterval(()=>U((L)=>L+1),60);lE(()=>clearInterval(I)),lE(()=>G.abort()),A.options.authenticate({onDetails:D,onStatus:E,signal:G.signal}).then(()=>{E("Connected to your SimpleCloud account"),setTimeout(()=>Q(!0),350)}).catch((L)=>{if(G.signal.aborted)return;K(L instanceof Error?L.message:String(L))});let X=N6(()=>Math.max(44,Math.min(68,F().width-6)));return(()=>{var L=_A("box"),M=_A("box"),T=_A("box"),V=_A("box"),N=_A("box"),B=_A("text");return YA(L,M),w(L,"width","100%"),w(L,"height","100%"),w(L,"flexDirection","column"),YA(M,T),w(M,"flexGrow",1),w(M,"flexDirection","column"),w(M,"alignItems","center"),w(M,"justifyContent","center"),w(M,"padding",3),YA(T,V),YA(T,N),w(T,"flexDirection","column"),w(T,"border",!0),w(T,"borderStyle","rounded"),w(V,"height",4),w(V,"flexDirection","row"),w(V,"alignItems","center"),w(V,"paddingTop",1),w(V,"paddingBottom",1),w(V,"paddingLeft",3),w(V,"paddingRight",3),w(V,"border",["bottom"]),pA(V,kA(xo,{})),YA(N,B),w(N,"flexDirection","column"),w(N,"paddingTop",2),w(N,"paddingBottom",2),w(N,"paddingLeft",3),w(N,"paddingRight",3),pA(N,kA(wE,{get when(){return!j()},get fallback(){return(()=>{var z=_A("box"),x=_A("box"),S=_A("text");return YA(z,x),w(z,"flexDirection","column"),pA(z,kA(X1,{title:"Sign-in could not start",description:"Nothing was installed. Return to the terminal and try again."}),x),YA(x,S),w(x,"border",!0),w(x,"borderStyle","rounded"),w(x,"padding",2),w(S,"wrapMode","word"),pA(S,j),Y6((b)=>{var{red:h,surfaceRaised:c,red:e}=UA;return h!==b.e&&(b.e=w(x,"borderColor",h,b.e)),c!==b.t&&(b.t=w(x,"backgroundColor",c,b.t)),e!==b.a&&(b.a=w(S,"fg",e,b.a)),b},{e:void 0,t:void 0,a:void 0}),z})()},get children(){return kA(wE,{get when(){return _()},get fallback(){return(()=>{var z=_A("box"),x=_A("box"),S=_A("text");return YA(z,x),w(z,"flexDirection","column"),pA(z,kA(X1,{title:"Sign in to SimpleCloud",description:"Preparing a secure one-time code for this terminal."}),x),YA(x,S),w(x,"height",3),w(x,"flexDirection","row"),w(x,"alignItems","center"),w(x,"paddingLeft",2),w(x,"paddingRight",2),pA(S,()=>Z[Math.floor($()/2)%Z.length]),pA(x,kA(zo,{get text(){return g()},get frame(){return $()},marginLeft:1,sweepFrames:34,pauseFrames:4,strength:0.72}),null),Y6((b)=>{var{surfaceRaised:h,brand:c}=UA;return h!==b.e&&(b.e=w(x,"backgroundColor",h,b.e)),c!==b.t&&(b.t=w(S,"fg",c,b.t)),b},{e:void 0,t:void 0}),z})()},children:(z)=>(()=>{var x=_A("box"),S=_A("box"),b=_A("text"),h=_A("text"),c=_A("strong"),e=_A("text"),AA=_A("text"),FA=_A("box"),IA=_A("box"),oA=_A("text"),eA=_A("text"),Z6=nF(" min");return YA(x,S),YA(x,e),YA(x,AA),YA(x,FA),w(x,"flexDirection","column"),pA(x,kA(X1,{get title(){return z().browserOpened?"Finish signing in":"Sign in from any browser"},get description(){return z().browserOpened?"We opened the authorization page. Use the code below if the browser asks for it.":"Open the address below, then enter the one-time code."}}),S),YA(S,b),YA(S,h),w(S,"height",3),w(S,"flexDirection","row"),w(S,"alignItems","center"),w(S,"justifyContent","space-between"),w(S,"paddingLeft",2),w(S,"paddingRight",2),YA(b,nF("Code")),YA(h,c),pA(c,()=>z().userCode),YA(e,nF("Open")),w(e,"marginTop",2),w(AA,"wrapMode","word"),pA(AA,()=>z().verificationUrl),YA(FA,IA),YA(FA,eA),w(FA,"flexDirection","row"),w(FA,"alignItems","center"),w(FA,"marginTop",2),YA(IA,oA),w(IA,"flexDirection","row"),w(IA,"alignItems","center"),w(IA,"flexGrow",1),w(oA,"width",3),pA(oA,()=>Z[Math.floor($()/2)%Z.length]),pA(IA,kA(zo,{get text(){return g()},get frame(){return $()},sweepFrames:34,pauseFrames:4,strength:0.72}),null),YA(eA,Z6),w(eA,"marginLeft",2),pA(eA,()=>Math.max(1,Math.floor(z().expiresIn/60)),Z6),Y6((hq)=>{var{surfaceRaised:vA,muted:pF,text:GK,muted:PA,cyan:yA,brand:Tq,subtle:Fq}=UA;return vA!==hq.e&&(hq.e=w(S,"backgroundColor",vA,hq.e)),pF!==hq.t&&(hq.t=w(b,"fg",pF,hq.t)),GK!==hq.a&&(hq.a=w(h,"fg",GK,hq.a)),PA!==hq.o&&(hq.o=w(e,"fg",PA,hq.o)),yA!==hq.i&&(hq.i=w(AA,"fg",yA,hq.i)),Tq!==hq.n&&(hq.n=w(oA,"fg",Tq,hq.n)),Fq!==hq.s&&(hq.s=w(eA,"fg",Fq,hq.s)),hq},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),x})()})}}),B),w(B,"marginTop",2),pA(B,(()=>{var z=Tg(()=>!!j());return()=>z()?"Esc return to terminal":Tg(()=>!!_())()?A.options.canOpenUrl===!1?"Open the link manually \xB7 Esc cancel":"Enter open link \xB7 Esc cancel":"Esc cancel"})()),Y6((z)=>{var x=UA.background,S=X(),b=UA.surface,h=j()?UA.red:UA.border,c=UA.border,e=UA.subtle;return x!==z.e&&(z.e=w(L,"backgroundColor",x,z.e)),S!==z.t&&(z.t=w(T,"width",S,z.t)),b!==z.a&&(z.a=w(T,"backgroundColor",b,z.a)),h!==z.o&&(z.o=w(T,"borderColor",h,z.o)),c!==z.i&&(z.i=w(V,"borderColor",c,z.i)),e!==z.n&&(z.n=w(B,"fg",e,z.n)),z},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),L})()},mYq=(A)=>{let q=T9(),F=uR(),[g,E]=xq(A.options.auth?"auth":"loading"),[_,D]=xq(),[j,K]=xq(),[$,U]=xq(!1),Z=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827"],[G,O]=xq(0),Q=!1,Y,J=(V)=>{A.onExit(V)},I=()=>{A.onExit(null),q.destroy()},X=(V=!1)=>{if(Q)return;if(Q=!0,!V)E("loading"),Y=setTimeout(()=>U(!0),300);A.options.loadSetup().then((N)=>{if(Y)clearTimeout(Y);D(N),E("setup")}).catch((N)=>{if(Y)clearTimeout(Y);K(N instanceof Error?N.message:String(N)),E("error")})};if(!A.options.auth)X();let L=(V)=>{if((V==="\x1B"||V==="\x03")&&(g()==="loading"||g()==="error"))return I(),!0;return!1};q.prependInputHandler(L),lE(()=>q.removeInputHandler(L));let M=setInterval(()=>O((V)=>(V+1)%Z.length),100);lE(()=>clearInterval(M)),lE(()=>{if(Y)clearTimeout(Y)});let T=N6(()=>Math.max(44,Math.min(68,F().width-6)));return kA(hR,{get children(){return[kA(ag,{get when(){return Tg(()=>g()==="auth")()&&A.options.auth},get children(){return kA(wE,{get when(){return A.options.auth},get fallback(){return(()=>{var V=_A("box");return w(V,"height",0),V})()},children:(V)=>kA(yYq,{get options(){return V()},destroyOnExit:!1,onExit:(N)=>{if(N)X(!0);else I()}})})}}),kA(ag,{get when(){return Tg(()=>g()==="setup")()&&_()},get children(){return kA(wE,{get when(){return _()},get fallback(){return(()=>{var V=_A("box");return w(V,"height",0),V})()},children:(V)=>kA(vYq,{get options(){return V()},onExit:J})})}}),kA(ag,{get when(){return g()==="loading"},get children(){var V=_A("box");return w(V,"width","100%"),w(V,"height","100%"),w(V,"position","relative"),pA(V,kA(wE,{get when(){return $()},get fallback(){return(()=>{var N=_A("box");return w(N,"height",0),N})()},get children(){var N=_A("box"),B=_A("text"),z=nF(" Preparing setup"),x=_A("text");return YA(N,B),YA(N,x),w(N,"position","absolute"),w(N,"left",0),w(N,"right",0),w(N,"bottom",0),w(N,"width","100%"),w(N,"height",3),w(N,"flexDirection","row"),w(N,"alignItems","center"),w(N,"paddingLeft",2),w(N,"paddingRight",2),w(N,"border",["top"]),YA(B,z),pA(B,()=>Z[G()],z),YA(x,nF("Esc cancel")),w(x,"marginLeft","auto"),Y6((S)=>{var{surface:b,border:h,brand:c,subtle:e}=UA;return b!==S.e&&(S.e=w(N,"backgroundColor",b,S.e)),h!==S.t&&(S.t=w(N,"borderColor",h,S.t)),c!==S.a&&(S.a=w(B,"fg",c,S.a)),e!==S.o&&(S.o=w(x,"fg",e,S.o)),S},{e:void 0,t:void 0,a:void 0,o:void 0}),N}})),Y6((N)=>w(V,"backgroundColor",UA.background,N)),V}}),kA(ag,{get when(){return g()==="error"},get children(){var V=_A("box"),N=_A("box"),B=_A("box"),z=_A("box"),x=_A("box"),S=_A("text"),b=_A("text");return YA(V,N),YA(V,b),w(V,"width","100%"),w(V,"height","100%"),w(V,"flexDirection","column"),w(V,"alignItems","center"),w(V,"justifyContent","center"),w(V,"padding",3),YA(N,B),YA(N,z),w(N,"flexDirection","column"),w(N,"border",!0),w(N,"borderStyle","rounded"),w(B,"height",4),w(B,"flexDirection","row"),w(B,"alignItems","center"),w(B,"paddingTop",1),w(B,"paddingBottom",1),w(B,"paddingLeft",3),w(B,"paddingRight",3),w(B,"border",["bottom"]),pA(B,kA(xo,{})),YA(z,x),w(z,"flexDirection","column"),w(z,"paddingTop",2),w(z,"paddingBottom",2),w(z,"paddingLeft",3),w(z,"paddingRight",3),pA(z,kA(X1,{title:"Setup could not continue",description:"Nothing was installed on this machine."}),x),YA(x,S),w(x,"border",!0),w(x,"borderStyle","rounded"),w(x,"padding",2),w(S,"wrapMode","word"),pA(S,j),YA(b,nF("Esc cancel")),w(b,"marginTop",1),Y6((h)=>{var c=UA.background,e=T(),AA=UA.surface,FA=UA.red,IA=UA.border,oA=UA.surfaceRaised,eA=UA.red,Z6=UA.red,hq=UA.subtle;return c!==h.e&&(h.e=w(V,"backgroundColor",c,h.e)),e!==h.t&&(h.t=w(N,"width",e,h.t)),AA!==h.a&&(h.a=w(N,"backgroundColor",AA,h.a)),FA!==h.o&&(h.o=w(N,"borderColor",FA,h.o)),IA!==h.i&&(h.i=w(B,"borderColor",IA,h.i)),oA!==h.n&&(h.n=w(x,"backgroundColor",oA,h.n)),eA!==h.s&&(h.s=w(x,"borderColor",eA,h.s)),Z6!==h.h&&(h.h=w(S,"fg",Z6,h.h)),hq!==h.r&&(h.r=w(b,"fg",hq,h.r)),h},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),V}})]}})},KRA=async(A)=>{let q=()=>{},F=new Promise((_)=>{q=_}),g=jRA(()=>kA(mYq,{options:A,onExit:q}),{backgroundColor:UA.background,exitOnCtrlC:!1,screenMode:"alternate-screen",consoleMode:"disabled",useMouse:!1,targetFps:30}),E=await F;return await g,E};var $RA=W(async()=>{N9();_i();await GI([O0(),O0(),O0(),O0(),O0(),O0(),O0(),O0(),O0()]);UA={background:"#1e1e1e",surface:"#282828",surfaceRaised:"#2b2b2b",border:"#383838",borderStrong:"#4a4a4a",text:"#ebebeb",muted:"#9e9e9e",subtle:"#707070",logo:"#4ba6dd",brand:"#306ce2",dither:"#244f87",cyan:"#0fa2ec",green:"#28d26e",amber:"#f59e0b",red:"#ea3939"}});import*as ZRA from"fs/promises";import*as yR from"os";import*as FU from"path";var URA="host-1",cYq="https://dash.simplecloud.app",ho=()=>Math.floor(yR.totalmem()/1048576*0.8),dYq=async(A)=>{let q=FU.resolve(A),F=await ZRA.readdir(q,{withFileTypes:!0}),g=FU.dirname(q),E=await gi(q);return{directory:q,parent:g===q?void 0:g,suggestedInstallDir:E,usesCurrentDirectory:E===q,entries:F.filter((_)=>_.isDirectory()).sort((_,D)=>_.name.localeCompare(D.name,void 0,{sensitivity:"base"})).map((_)=>({name:_.name,path:FU.join(q,_.name)}))}},GRA=(A)=>{let q=oO(A);if(q===null)return"Use a value like 80%, 16gb, 4096mb, or 4096";if(q<512)return"Minimum memory is 512 MB";return},aYq=(A)=>{let q=GRA(A);if(q)throw Error(q);let F=oO(A);if(F===null)throw Error("Invalid memory value");return F},rYq=async(A)=>{if(A instanceof Error)return A;if(A instanceof Response){let q="";try{let g=(await A.text()).trim();if(g)try{let E=JSON.parse(g);q=E.message??E.detail??E.error??g}catch{q=g}}catch{}let F=`${A.status} ${A.statusText}`.trim();return Error(`SimpleCloud API request failed (${F})${q?`: ${q.slice(0,300)}`:""}`)}return Error(String(A))},fYq=(A)=>(A??[]).flatMap((q)=>q.split(",")).map((q)=>{let F=q.trim(),g=Math.max(F.indexOf(":"),F.indexOf("@"));return g<0?{id:F}:{id:F.slice(0,g),version:F.slice(g+1)}}).filter((q)=>q.id.length>0),nYq=(A)=>A.flatMap((q)=>{let F=k2(q);return F?[{id:q.id,name:q.name,slug:q.slug,networkId:F}]:[]}),pYq=(A,q)=>{if(!A)return;let F=q.find((g)=>g.id===A||g.slug===A||g.networkId===A);if(!F)throw new tA(`Network "${A}" was not found`);return F},iYq=async(A,q,F)=>{if(F.update("registration",{state:"running",detail:A.newNetwork?"Creating":"Connecting"}),A.newNetwork){let E=await kJ(A.newNetwork.name,A.newNetwork.slug),_=k2(E);if(!_)throw Error("The new network did not return a network ID");return F.update("registration",{state:"done",detail:`Ready \xB7 ${E.name}`,progress:void 0}),{orgId:E.id,orgName:E.name,orgSlug:E.slug,networkId:_}}let g=q.find((E)=>E.id===A.networkId);if(!g)throw Error("Select a network before continuing");return F.update("registration",{state:"done",detail:`Ready \xB7 ${g.name}`,progress:void 0}),{orgId:g.id,orgName:g.name,orgSlug:g.slug,networkId:g.networkId}},lYq=async(A,q,F,g,E)=>{let _=yG({networkId:A,networkSecret:q,baseURL:F}),D=await z$((K)=>_.v0.serverhostsRegisterCreate({host_name:g,maximum_memory:E},{signal:K}),{operation:"Registering the serverhost"});if(!D.ok)throw D;let j=D.data?.serverhost_id;if(!j)throw Error("The controller did not return a serverhost ID");return j},oYq=async(A,q,F,g)=>{let E=yG({networkId:A,networkSecret:q,baseURL:F}),_=await z$((j)=>E.v0.networksPasswordsCreate({name:`serverhost-${g}`},{signal:j}),{operation:"Creating the serverhost secret"});if(!_.ok)throw _;let D=_.data?.password??_.data?.secret;if(!D)throw Error("The controller did not return a network secret");return D},tYq=async(A,q,F)=>{let g=await u.runPromise(nK().pipe(u.provide(Qq))),E=(A.orgSlug||FU.basename(F)||"default").trim()||"default",_=Object.keys(g).length===0?"default":E,D=2;while(g[_])_=`${E}-${D}`,D+=1;return await u.runPromise(u7(_,{orgId:A.orgId,orgName:A.orgName,orgSlug:A.orgSlug,baseURL:q,installationDir:F}).pipe(u.provide(Qq))),await u.runPromise(k7(_).pipe(u.provide(Qq))),_},sYq=async(A,q,F,g)=>{if(A.length===0)return;g.update("dependencies",{state:"running",detail:`Installing ${A.map((_)=>_.id).join(", ")}`});let E=async()=>{for(let _ of A)if(!await hO(_.id,{version:_.version,yes:!0,embedded:!0,silent:!0,nonInteractiveSudo:MB(q)}))throw Error(`Unknown setup installable: ${_.id}`);if(A.some((_)=>_.id.toLowerCase()==="java")&&!await MH())throw Error("Java 21+ could not be verified after installation")};if(MB(q)){if(g.update("dependencies",{state:"running",detail:"Waiting for installation approval"}),!await F.suspend(xO))throw Error("Administrator permission was not granted")}await E(),g.update("dependencies",{state:"done",detail:"Dependencies installed"})},eYq=()=>{return{signal:new AbortController().signal,suspend:(q)=>q()}},AJq=async(A)=>{let q=process.stdout.write,F=process.stderr.write;process.stdout.write=()=>!0,process.stderr.write=()=>!0;try{return await A()}finally{process.stdout.write=q,process.stderr.write=F}},qJq=(A)=>{let q=new Map;return A.subscribe(({tasks:F})=>{for(let g of F){let E=`${g.state}:${g.detail}`;if((g.state==="running"||g.state==="done"||g.state==="error")&&q.get(g.id)!==E){q.set(g.id,E);let _=g.state==="done"?H.green("\u2713"):g.state==="error"?H.red("\xD7"):H.cyan("\u25C6");console.log(`${_} ${g.label}: ${g.detail}`)}}})},ORA=async(A={})=>{let q=dq(),F=F1(),g=await ZPA();if(q==="windows")throw new tA("Automated serverhost setup is not supported on Windows","Use WSL or install the serverhost on Linux or macOS.");let E=process.stdin.isTTY===!0&&process.stdout.isTTY===!0,_=BLA(),D=new AbortController,j=!1,K,$=()=>{j=!1;let M=RLA(q,F,_,D.signal);return M.catch(()=>{if(K===M)j=!0}),M};K=$();let U=()=>{if(j)K=$();return K},Z=zLA(q,_),G=await V2(),O={canOpenUrl:g,authenticate:async({onDetails:M,onStatus:T,signal:V})=>{if(!await d2({skipExistingCheck:!0,silent:!0,noBrowser:!0,code:A.code,onDeviceAuthorization:async(B)=>{let z=!1;if(!A.noBrowser&&g)try{await MO(B.verificationUrl),z=!0}catch{}M({...B,browserOpened:z})},onStatus:T,signal:V}))throw new v7("Login cancelled")},onOpenUrl:async(M)=>{await MO(M)}},Q=async()=>{let M=await u.runPromise(b7().pipe(u.provide(Qq))),T=qO(),[V,N]=await Promise.all([T,Z]),B=nYq(V),z=pYq(A.network,B),x=fYq(A.install),b=x.some((PA)=>PA.id.toLowerCase()==="java")?{...N,java:!0,missing:N.missing.filter((PA)=>!PA.startsWith("Java"))}:N,h=new ji(q,b,_),c=A.autoInstallDeps??(A.yes?!0:void 0),e=process.cwd(),AA=A.installDir?.trim()||void 0,FA=AA||await gi(e),IA=FU.join(yR.homedir(),"simplecloud"),oA,eA,Z6=(PA,yA)=>{if(!PA)return h.complete(!1,yA);if(!oA){let Tq=h.complete(!0,yA);oA=Tq,Tq.catch(()=>{if(oA===Tq)oA=void 0})}return oA},hq=(PA)=>{if(!eA){let yA=sYq(x,q,PA,_);eA=yA,yA.catch(()=>{if(eA===yA)eA=void 0})}return eA},vA=(PA,yA)=>{if(h.requestBackgroundInstall(),b.missing.length>0&&!PA)return;Z6(!0,yA).then(()=>hq(yA)).catch((Tq)=>{_.update("dependencies",{state:"error",detail:Tq instanceof Error?Tq.message:"Dependency installation failed"})})},pF=async(PA,yA)=>{let Tq,Fq=!1,FF=[];_.update("files",{state:"waiting",detail:"Ready"}),_.update("start",{state:PA.start?"waiting":"skipped",detail:PA.start?"After installation":""}),_.update("services",{state:A.service?.length?"waiting":"skipped",detail:A.service?.length?"After installation":"Not requested"});try{let[bq,x6]=await Promise.all([iYq(PA,B,_),U(),(async()=>{await Z6(PA.autoInstallDeps,yA),await hq(yA)})()]),N4=aYq(PA.maxMemory),y=await Ei(PA.installDir);if(_.update("registration",{state:"running",detail:"Registering host",progress:void 0}),E)await new Promise((SA)=>setTimeout(SA,34));let m=await vG(),jA=await lYq(bq.networkId,m,M,PA.hostName,N4),i=await oYq(bq.networkId,m,M,jA);if(await QB(x6.stagingDir,{networkId:bq.networkId,networkSecret:i,serverhostId:jA}),_.update("registration",{state:"done",detail:`Connected \xB7 ${bq.orgName}`}),A.service?.length){_.update("services",{state:"running",detail:"Preparing"});let SA={signal:yA.signal,nonInteractiveSudo:!0,templateVariables:{networkSlug:bq.orgSlug},onStatus:(NA)=>{_.update("services",{state:"running",detail:NA})},onSystemInstallRequired:async(NA)=>{if(q!=="linux"||typeof process.getuid==="function"&&process.getuid()===0||Fq)return;if(_.update("services",{state:"running",detail:`Waiting for ${NA} permission`}),Fq=await yA.suspend(async()=>{return console.log(`
|
|
640
640
|
SimpleCloud needs permission to install ${NA}.
|
|
641
641
|
`),xO()}),!Fq)throw Error("Administrator permission was not granted")}};FF=await tPA(A.service,x6.stagingDir,{...SA,start:!1})}if(_.update("files",{state:"running",detail:"Installing"}),Tq=await wLA(x6,y),await IB(x6),_.update("files",{state:"done",detail:"Installed"}),FF.length>0){let SA=oPA(FF,Tq);await fO(SA,"start",{signal:yA.signal,nonInteractiveSudo:!0,onStatus:(NA)=>{_.update("services",{state:"running",detail:NA})}}),_.update("services",{state:"done",detail:"Running"})}let f=await tYq(bq,M,Tq);if(PA.start){if(_.update("start",{state:"running",detail:"Starting"}),E)await AJq(()=>K1({skipVersionCheck:!0,embedded:!0,includeServices:!1}));else await K1({skipVersionCheck:!0,embedded:!0,includeServices:!1});_.update("start",{state:"done",detail:"Online"})}else _.update("start",{state:"skipped",detail:""});return{networkName:bq.orgName,hostName:PA.hostName,contextName:f,installationDir:Tq,started:PA.start}}catch(bq){if(!E)K.then(IB).catch(()=>{});throw await rYq(bq)}};return{uiOptions:{defaults:{networks:B,fixedNetworkId:z?.id,hostName:A.yes===!0?A.hostName?.trim()||URA:A.hostName,maxMemory:A.yes===!0?A.maxMemory?.trim()||tO(ho()):A.maxMemory,installDir:AA,autoInstallDeps:c,start:A.yes===!0?A.start??!0:A.start,recommendedInstallDir:FA,homeInstallDir:IA,currentDirectory:e,defaultMemory:tO(ho()),missingDependencies:b.missing,platformLabel:`${q} / ${F}`},progress:_,canOpenDashboard:g,startBackgroundPreparation:x.length>0&&b.missing.length===0,validateMemory:GRA,validateInstallDir:async(PA)=>{try{let yA=await A9(PA);return yA.state==="available"||yA.state==="empty"?void 0:yA.detail}catch(yA){return yA instanceof Error?yA.message:String(yA)}},browseDirectory:dYq,onDependencyInstallRequested:(PA,yA)=>vA(yA,PA),onInstall:pF,onCancel:()=>{D.abort(Error("Setup cancelled"))},onOpenDashboard:async()=>{await MO(cYq)}},networks:B,fixedNetwork:z,recommendedInstallDir:FA,performInstall:pF}};if(E){if(!await KRA({auth:G?void 0:O,loadSetup:async()=>(await Q()).uiOptions}))throw K.then(IB).catch(()=>{}),new v7("Setup cancelled");return}if(!G){if(!await d2({skipExistingCheck:!0,code:A.code,noBrowser:A.noBrowser,waitMessage:A.code?"Waiting for the dashboard to finish sign-in...":"Waiting for browser authorization..."}))throw new v7("Login cancelled")}let{networks:Y,fixedNetwork:J,recommendedInstallDir:I,performInstall:X}=await Q(),L=qJq(_);try{let M=J;if(!M&&Y.length===1)M=Y[0];if(!M)throw new tA("Non-interactive setup needs --network","Pass a network ID or slug when more than one network is available.");let T=await X({networkId:M.id,hostName:A.hostName?.trim()||URA,maxMemory:A.maxMemory?.trim()||tO(ho()),installDir:providedInstallDir||I,autoInstallDeps:A.autoInstallDeps??!0,start:A.start??!0},eYq());console.log(H.green(`
|
|
642
642
|
\u2713 ${T.hostName} is ready in ${T.installationDir}`))}finally{L()}};var QRA=W(async()=>{rA();Fg();hf();iK();VE();N_();_6();dW();FO();ep();gE();qi();FB();cJ();_B();_i();xLA();await $RA()});function YRA(A){A.command({command:"setup",describe:"Set up SimpleCloud",builder:(q)=>q.option("network",{type:"string",alias:"n",describe:"Network ID or slug to use"}).option("org",{type:"string",alias:"o",describe:"Deprecated alias for --network"}).hide("org").option("code",{type:"string",describe:"Use a pre-approved dashboard login code"}).option("browser",{type:"boolean",default:!0,describe:"Open the browser automatically (disable with --no-browser)"}).option("install-dir",{type:"string",describe:"Use a new or empty installation directory"}).option("host-name",{type:"string",describe:"Serverhost display name"}).option("max-memory",{type:"string",describe:"Maximum memory, e.g. 80%, 32gb, or 4096mb"}).option("start",{type:"boolean",describe:"Start SimpleCloud after setup"}).option("auto-install-deps",{type:"boolean",describe:"Install required system dependencies automatically"}).option("install",{type:"array",string:!0,describe:"Install an extra manifest installable, e.g. java:17"}).option("service",{type:"array",string:!0,describe:"Install a manifest service, e.g. postgresql"}).option("yes",{alias:"y",type:"boolean",default:!1,describe:"Use safe defaults for optional setup questions"}).example("$0 setup","Open the full-screen setup experience").example("$0 setup --network my-network --yes","Open setup with optional values prefilled"),handler:JA(async(q)=>{await ORA({network:q.network||q.org,code:q.code,noBrowser:!q.browser,installDir:q.installDir,hostName:q.hostName,maxMemory:q.maxMemory,start:q.start,autoInstallDeps:q.autoInstallDeps,install:q.install,service:q.service,yes:q.yes})})})}var JRA=W(async()=>{Hg();await QRA()});function MRA(A){A.command({command:"start [components..]",describe:"Start SimpleCloud components and services",builder:(q)=>q.positional("components",{describe:"Specific components or service instances to start (default: all, supports <component>@<version>)",type:"string",array:!0}).option("runner",{choices:["screen","docker","native"],describe:"Override the runner type for this session"}).option("configure",{type:"boolean",default:!1,describe:"Configure the default runner"}).option("skip-version-check",{type:"boolean",default:!1,describe:"Skip version check before starting"}).option("update",{type:"boolean",describe:"Auto-update outdated components (use --no-update to skip)"}).option("set",{alias:"s",type:"string",array:!0,describe:"Pin component version(s) for update with <component>=<version> (repeatable)"}),handler:JA(async(q)=>{let F=IRA(q.components,q.set);await K1({components:F.components,runner:q.runner,configure:q.configure,skipVersionCheck:q.skipVersionCheck,autoUpdate:q.update,updatePinnedVersions:F.pinnedVersions})})}),A.command({command:"stop [components..]",describe:"Stop SimpleCloud components and services",builder:(q)=>q.positional("components",{describe:"Specific components or service instances to stop (default: all)",type:"string",array:!0}).option("stop-servers",{type:"boolean",describe:"Stop all servers on serverhost before stopping (use --no-stop-servers to skip)"}),handler:JA(async(q)=>{let F=q.components;await cp({components:F&&F.length>0?F:void 0,stopServers:q.stopServers})})}),A.command({command:"restart [components..]",describe:"Restart SimpleCloud components (stop then start)",builder:(q)=>q.positional("components",{describe:"Specific components to restart (default: all, supports <component>@<version>)",type:"string",array:!0}).option("runner",{choices:["screen","docker","native"],describe:"Override the runner type for this session"}).option("skip-version-check",{type:"boolean",default:!1,describe:"Skip version check before starting"}).option("update",{type:"boolean",describe:"Auto-update outdated components (use --no-update to skip)"}).option("set",{alias:"s",type:"string",array:!0,describe:"Pin component version(s) for update with <component>=<version> (repeatable)"}).option("stop-servers",{type:"boolean",describe:"Stop all servers on serverhost before stopping (use --no-stop-servers to skip)"}),handler:JA(async(q)=>{let F=IRA(q.components,q.set);await qNA({components:F.components,runner:q.runner,skipVersionCheck:q.skipVersionCheck,autoUpdate:q.update,stopServers:q.stopServers,updatePinnedVersions:F.pinnedVersions})})}),A.command({command:"status [components..]",describe:"Check status of SimpleCloud components",builder:(q)=>q.positional("components",{describe:"Specific components to check (default: all)",type:"string",array:!0}),handler:JA(async(q)=>{let F=q.components;await FNA(F&&F.length>0?F:void 0)})}),A.command({command:"logs <component>",describe:"View logs for a component",builder:(q)=>q.positional("component",{describe:"Component to view logs for",type:"string",demandOption:!0}).option("lines",{alias:"n",type:"number",default:100,describe:"Number of lines to show"}),handler:JA(async(q)=>{await gNA(q.component,q.lines)})}),A.command({command:"attach <component>",describe:"Attach to a running component console",builder:(q)=>q.positional("component",{describe:"Component to attach to",type:"string",demandOption:!0}),handler:JA(async(q)=>{await ENA(q.component)})})}var HRA=(A,q)=>{let F=A.indexOf(q);if(F<=0||F>=A.length-1)return null;let g=A.slice(0,F).trim(),E=A.slice(F+1).trim();if(!g||!E)return null;return{componentId:g,version:E}},IRA=(A,q)=>{let F=[],g=new Map,E=(_,D,j)=>{let K=g.get(_);if(K&&K!==D)throw Error(`Conflicting pinned versions for '${_}': '${K}' and '${D}' (${j})`);g.set(_,D)};for(let _ of A??[]){let D=HRA(_,"@");if(!D){F.push(_);continue}F.push(D.componentId),E(D.componentId,D.version,`from component '${_}'`)}for(let _ of q??[]){let D=HRA(_,"=");if(!D)throw Error(`Invalid --set value '${_}'. Expected format: <component>=<version>`);E(D.componentId,D.version,`from --set '${_}'`)}return{components:F.length>0?F:void 0,pinnedVersions:g.size>0?Object.fromEntries(g):void 0}};var XRA=W(()=>{Hg();_B()});import*as EU from"fs/promises";import*as gU from"path";var _I,NRA,FJq,gJq=".simplecloud-sync.json",PRA=(A)=>gU.resolve(A).replace(/[\\/]+$/,""),LRA=(A,q,F)=>{switch(q){case"templates":return{...A,templatesId:F};case"workflows":return{...A,workflowsId:F};case"options":return{...A,optionsId:F}}},P1=(A,q)=>NRA.map((F)=>({key:F.key,label:F.label,relativePath:F.relativePath,absolutePath:gU.join(A,F.relativePath),folderId:q[F.idKey]})),mR=(A,q)=>{let F={};for(let g of NRA){let E=PRA(gU.join(q,g.relativePath)),_=A.find((j)=>PRA(j.path)===E);if(_){F[g.key]=_;continue}let D=A.find((j)=>j.label?.toLowerCase()===g.label);if(D)F[g.key]=D}return F},cR=async(A)=>{for(let q of _I){let F=gU.join(A,q);await EU.mkdir(F,{recursive:!0})}},dR=async(A)=>{let q=gU.join(A,"templates"),F=gU.join(q,".stignore"),g="cache/";await EU.mkdir(q,{recursive:!0});let E="";try{E=await EU.readFile(F,"utf-8")}catch(j){if(j.code!=="ENOENT")throw j}let _=E.split(/\r?\n/).map((j)=>j.trim()).filter(Boolean);if(_.includes("cache/")||_.includes("/cache/")||_.includes("templates/cache/"))return!1;let D=E.length>0&&!E.endsWith(`
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var hRA=Object.create;var{getPrototypeOf:bRA,defineProperty:TD,getOwnPropertyNames:kRA}=Object;var yRA=Object.prototype.hasOwnProperty;function vRA(A){return this[A]}var mRA,cRA,w6=(A,q,g)=>{var E=A!=null&&typeof A==="object";if(E){var _=q?mRA??=new WeakMap:cRA??=new WeakMap,F=_.get(A);if(F)return F}g=A!=null?hRA(bRA(A)):{};let j=q||!A||!A.__esModule?TD(g,"default",{value:A,enumerable:!0}):g;for(let K of kRA(A))if(!yRA.call(j,K))TD(j,K,{get:vRA.bind(A,K),enumerable:!0});if(E)_.set(A,j);return j};var f=(A,q)=>()=>(q||A((q={exports:{}}).exports,q),q.exports);var uRA=(A)=>A;function aRA(A,q){this[A]=uRA.bind(null,q)}var PE=(A,q)=>{for(var g in q)TD(A,g,{get:q[g],enumerable:!0,configurable:!0,set:aRA.bind(q,g)})};var D=(A,q)=>()=>(A&&(q=A(A=0)),q);var EX=(A)=>Promise.all(A),pF=import.meta.require;var RD="0.0.1-beta.
|
|
2
|
+
var hRA=Object.create;var{getPrototypeOf:bRA,defineProperty:TD,getOwnPropertyNames:kRA}=Object;var yRA=Object.prototype.hasOwnProperty;function vRA(A){return this[A]}var mRA,cRA,w6=(A,q,g)=>{var E=A!=null&&typeof A==="object";if(E){var _=q?mRA??=new WeakMap:cRA??=new WeakMap,F=_.get(A);if(F)return F}g=A!=null?hRA(bRA(A)):{};let j=q||!A||!A.__esModule?TD(g,"default",{value:A,enumerable:!0}):g;for(let K of kRA(A))if(!yRA.call(j,K))TD(j,K,{get:vRA.bind(A,K),enumerable:!0});if(E)_.set(A,j);return j};var f=(A,q)=>()=>(q||A((q={exports:{}}).exports,q),q.exports);var uRA=(A)=>A;function aRA(A,q){this[A]=uRA.bind(null,q)}var PE=(A,q)=>{for(var g in q)TD(A,g,{get:q[g],enumerable:!0,configurable:!0,set:aRA.bind(q,g)})};var D=(A,q)=>()=>(A&&(q=A(A=0)),q);var EX=(A)=>Promise.all(A),pF=import.meta.require;var RD="0.0.1-beta.83";var WD=()=>{};function fRA(){let A=new Map;for(let[q,g]of Object.entries(y6)){for(let[E,_]of Object.entries(g))y6[E]={open:`\x1B[${_[0]}m`,close:`\x1B[${_[1]}m`},g[E]=y6[E],A.set(_[0],_[1]);Object.defineProperty(y6,q,{value:g,enumerable:!1})}return Object.defineProperty(y6,"codes",{value:A,enumerable:!1}),y6.color.close="\x1B[39m",y6.bgColor.close="\x1B[49m",y6.color.ansi=lp(),y6.color.ansi256=op(),y6.color.ansi16m=tp(),y6.bgColor.ansi=lp(10),y6.bgColor.ansi256=op(10),y6.bgColor.ansi16m=tp(10),Object.defineProperties(y6,{rgbToAnsi256:{value(q,g,E){if(q===g&&g===E){if(q<8)return 16;if(q>248)return 231;return Math.round((q-8)/247*24)+232}return 16+36*Math.round(q/255*5)+6*Math.round(g/255*5)+Math.round(E/255*5)},enumerable:!1},hexToRgb:{value(q){let g=/[a-f\d]{6}|[a-f\d]{3}/i.exec(q.toString(16));if(!g)return[0,0,0];let[E]=g;if(E.length===3)E=[...E].map((F)=>F+F).join("");let _=Number.parseInt(E,16);return[_>>16&255,_>>8&255,_&255]},enumerable:!1},hexToAnsi256:{value:(q)=>y6.rgbToAnsi256(...y6.hexToRgb(q)),enumerable:!1},ansi256ToAnsi:{value(q){if(q<8)return 30+q;if(q<16)return 90+(q-8);let g,E,_;if(q>=232)g=((q-232)*10+8)/255,E=g,_=g;else{q-=16;let K=q%36;g=Math.floor(q/36)/5,E=Math.floor(K/6)/5,_=K%6/5}let F=Math.max(g,E,_)*2;if(F===0)return 30;let j=30+(Math.round(_)<<2|Math.round(E)<<1|Math.round(g));if(F===2)j+=60;return j},enumerable:!1},rgbToAnsi:{value:(q,g,E)=>y6.ansi256ToAnsi(y6.rgbToAnsi256(q,g,E)),enumerable:!1},hexToAnsi:{value:(q)=>y6.ansi256ToAnsi(y6.hexToAnsi256(q)),enumerable:!1}}),y6}var lp=(A=0)=>(q)=>`\x1B[${q+A}m`,op=(A=0)=>(q)=>`\x1B[${38+A};5;${q}m`,tp=(A=0)=>(q,g,E)=>`\x1B[${38+A};2;${q};${g};${E}m`,y6,W9q,dRA,nRA,R9q,iRA,uj;var sp=D(()=>{y6={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]}},W9q=Object.keys(y6.modifier),dRA=Object.keys(y6.color),nRA=Object.keys(y6.bgColor),R9q=[...dRA,...nRA];iRA=fRA(),uj=iRA});import DD from"process";import pRA from"os";import ep from"tty";function lF(A,q=globalThis.Deno?globalThis.Deno.args:DD.argv){let g=A.startsWith("-")?"":A.length===1?"-":"--",E=q.indexOf(g+A),_=q.indexOf("--");return E!==-1&&(_===-1||E<_)}function lRA(){if("FORCE_COLOR"in v6){if(v6.FORCE_COLOR==="true")return 1;if(v6.FORCE_COLOR==="false")return 0;return v6.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(v6.FORCE_COLOR,10),3)}}function oRA(A){if(A===0)return!1;return{level:A,hasBasic:!0,has256:A>=2,has16m:A>=3}}function tRA(A,{streamIsTTY:q,sniffFlags:g=!0}={}){let E=lRA();if(E!==void 0)_X=E;let _=g?_X:E;if(_===0)return 0;if(g){if(lF("color=16m")||lF("color=full")||lF("color=truecolor"))return 3;if(lF("color=256"))return 2}if("TF_BUILD"in v6&&"AGENT_NAME"in v6)return 1;if(A&&!q&&_===void 0)return 0;let F=_||0;if(v6.TERM==="dumb")return F;if(DD.platform==="win32"){let j=pRA.release().split(".");if(Number(j[0])>=10&&Number(j[2])>=10586)return Number(j[2])>=14931?3:2;return 1}if("CI"in v6){if(["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some((j)=>(j in v6)))return 3;if(["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some((j)=>(j in v6))||v6.CI_NAME==="codeship")return 1;return F}if("TEAMCITY_VERSION"in v6)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(v6.TEAMCITY_VERSION)?1:0;if(v6.COLORTERM==="truecolor")return 3;if(v6.TERM==="xterm-kitty")return 3;if(v6.TERM==="xterm-ghostty")return 3;if(v6.TERM==="wezterm")return 3;if("TERM_PROGRAM"in v6){let j=Number.parseInt((v6.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(v6.TERM_PROGRAM){case"iTerm.app":return j>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(v6.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(v6.TERM))return 1;if("COLORTERM"in v6)return 1;return F}function Al(A,q={}){let g=tRA(A,{streamIsTTY:A&&A.isTTY,...q});return oRA(g)}var v6,_X,sRA,ql;var gl=D(()=>{({env:v6}=DD);if(lF("no-color")||lF("no-colors")||lF("color=false")||lF("color=never"))_X=0;else if(lF("color")||lF("colors")||lF("color=true")||lF("color=always"))_X=1;sRA={stdout:Al({isTTY:ep.isatty(1)}),stderr:Al({isTTY:ep.isatty(2)})},ql=sRA});function El(A,q,g){let E=A.indexOf(q);if(E===-1)return A;let _=q.length,F=0,j="";do j+=A.slice(F,E)+q+g,F=E+_,E=A.indexOf(q,F);while(E!==-1);return j+=A.slice(F),j}function _l(A,q,g,E){let _=0,F="";do{let j=A[E-1]==="\r";F+=A.slice(_,j?E-1:E)+q+(j?`\r
|
|
3
3
|
`:`
|
|
4
4
|
`)+g,_=E+1,E=A.indexOf(`
|
|
5
5
|
`,_)}while(E!==-1);return F+=A.slice(_),F}function w9(A){return A3A(A)}var Fl,jl,wD,D4,D9,Kl,w4,eRA=(A,q={})=>{if(q.level&&!(Number.isInteger(q.level)&&q.level>=0&&q.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let g=Fl?Fl.level:0;A.level=q.level===void 0?g:q.level},A3A=(A)=>{let q=(...g)=>g.join(" ");return eRA(q,A),Object.setPrototypeOf(q,w9.prototype),q},SD=(A,q,g,...E)=>{if(A==="rgb"){if(q==="ansi16m")return uj[g].ansi16m(...E);if(q==="ansi256")return uj[g].ansi256(uj.rgbToAnsi256(...E));return uj[g].ansi(uj.rgbToAnsi(...E))}if(A==="hex")return SD("rgb",q,g,...uj.hexToRgb(...E));return uj[g][A](...E)},q3A,g3A,BD=(A,q,g)=>{let E,_;if(g===void 0)E=A,_=q;else E=g.openAll+A,_=q+g.closeAll;return{open:A,close:q,openAll:E,closeAll:_,parent:g}},FX=(A,q,g)=>{let E=(..._)=>E3A(E,_.length===1?""+_[0]:_.join(" "));return Object.setPrototypeOf(E,g3A),E[wD]=A,E[D4]=q,E[D9]=g,E},E3A=(A,q)=>{if(A.level<=0||!q)return A[D9]?"":q;let g=A[D4];if(g===void 0)return q;let{openAll:E,closeAll:_}=g;if(q.includes("\x1B"))while(g!==void 0)q=El(q,g.close,g.open),g=g.parent;let F=q.indexOf(`
|
|
@@ -408,7 +408,7 @@ Stopped streaming logs.`)),E()};process.on("SIGINT",j),process.on("SIGTERM",j),S
|
|
|
408
408
|
server stop <group> --all
|
|
409
409
|
server stop --all`)}let g=[],E=0;while(E<A.length){let _=A[E],F=A[E+1];if(F&&uGq.test(F)){let j=aGq(F);g.push({type:"group",groupIdentifier:_,numericalIds:{kind:"specific",ids:j}}),E+=2}else if(q)g.push({type:"group",groupIdentifier:_,numericalIds:{kind:"all"}}),E+=1;else if(A.length===1)g.push({type:"server-id",identifier:_}),E+=1;else throw new bA(`Ambiguous target: "${_}"`,"Specify numerical IDs (e.g. lobby 1-3) or use --all to stop all servers in a group")}return g}var uGq;var UNA=D(()=>{zF();uGq=/^[\d,-]+$/});function rGq(A,q){if(A.persistent_server?.name)return A.persistent_server.name;return`${q.find((_)=>_.server_group_id===A.server_group_id)?.name||A.server_group_id||"unknown"} ${A.numerical_id??"?"}`}function dGq(A,q,g){let E=[],_=[];for(let K of A){if(K.type==="server-id"){let U=nH(K.identifier,q);if(U?.server_id)E.push(U);else _.push(`No server matched "${K.identifier}"`);continue}if(K.groupIdentifier==="*"){E.push(...q.filter((U)=>U.server_id));continue}let $=j4(K.groupIdentifier,g);if(!$?.server_group_id){_.push(`Group "${K.groupIdentifier}" not found`);continue}if(K.numericalIds.kind==="all"){let U=q.filter((Z)=>Z.server_group_id===$.server_group_id&&Z.server_id);if(U.length===0)_.push(`No running servers in group "${$.name||K.groupIdentifier}"`);E.push(...U)}else for(let U of K.numericalIds.ids){let Z=fH(K.groupIdentifier,U,q,g);if(Z?.server_id)E.push(Z);else _.push(`No server found for ${$.name||K.groupIdentifier} ${U}`)}}let F=new Set;return{resolved:E.filter((K)=>{if(!K.server_id||F.has(K.server_id))return!1;return F.add(K.server_id),!0}),warnings:_}}async function ZNA(A,q){await pA();let g=NA("Looking up servers...",{color:"cyan"}),[E,_]=await Promise.all([ig(),Qg()]);g();let F=E.data?.servers??[],j=_.data?.server_groups??[],K=$NA(A,q),{resolved:$,warnings:U}=dGq(K,F,j);for(let H of U)console.log(J.yellow(`Warning: ${H}`));if($.length===0)console.log(J.yellow(`
|
|
410
410
|
No servers to stop.`)),console.log(J.yellow('Try "server list" to see available servers.')),process.exit(1);let Z=$.map((H)=>rGq(H,j));console.log(J.dim(`
|
|
411
|
-
Stopping ${wq($.length,"server")}: ${Z.join(", ")}`));let G=NA(`Stopping ${wq($.length,"server")}...`,{color:"red"}),O=await Promise.allSettled($.map(async(H)=>{let I=await _1(H.server_id);return{server:H,response:I}}));G();let Q=0,Y=0;for(let H=0;H<O.length;H++){let I=O[H],M=Z[H],L=$[H].server_id?.slice(0,8)??"";if(I.status==="fulfilled"&&!I.value.response.error){Q++;let X=I.value.response.data?.state||"STOPPING";console.log(J.green(` ${M} ${J.dim(`(${L}...)`)} ${J.dim(`\u2192 ${X}`)}`))}else{Y++;let X=I.status==="rejected"?I.reason instanceof Error?I.reason.message:String(I.reason):"API error";console.log(J.red(` ${M} ${J.dim(`(${L}...)`)} \u2192 ${X}`))}}if(console.log(),Y===0)console.log(J.green.bold(`Sent stop request for ${wq(Q,"server")}`));else console.log(`${J.green.bold(`${wq(Q,"server")} stopped`)}, ${J.red.bold(`${wq(Y,"server")} failed`)}`);console.log()}var GNA=D(()=>{xA();vq();vF();LK();bg();FZ();UNA()});function ONA(A){A.command({command:"server <command>",aliases:["servers"],describe:"Manage running servers",builder:(q)=>q.command({command:"list",aliases:["ls"],describe:"List all servers",builder:{filter:{type:"string",describe:"Filter results by name"},group:{type:"string",describe:"Filter results by group"},state:{type:"string",describe:"Filter results by state"},sort:{choices:["created","players","memory","state"],describe:"Sort results by field"},reverse:{type:"boolean",default:!1,describe:"Reverse sort order"}},handler:UA(async(g)=>{await ENA({filter:g.filter,group:g.group,state:g.state,sort:g.sort,reverse:g.reverse})})}).command({command:"info <server> [numerical-id]",aliases:["get","show"],describe:"Show server information",builder:(g)=>g.positional("server",{describe:"Server identifier",type:"string",demandOption:!0}).positional("numerical-id",{describe:"Server numerical ID",type:"number"}),handler:UA(async(g)=>{await ANA(g.server,g.numericalId)})}).command({command:"stop [targets..]",describe:"Stop one or more servers",builder:(g)=>g.positional("targets",{describe:"Server targets: server-id, group + IDs (e.g. lobby 1-3), or group names with --all",type:"string",array:!0}).option("all",{alias:"a",type:"boolean",default:!1,describe:"Stop all servers in specified groups, or all servers globally"}).example("$0 server stop lobby 1-3 proxy 1","Stop lobby 1, 2, 3 and proxy 1").example("$0 server stop lobby --all","Stop all servers in lobby").example("$0 server stop --all","Stop ALL servers"),handler:UA(async(g)=>{let E=g.targets??[];await ZNA(E,g.all)})}).command({command:"logs <server> [numerical-id]",describe:"View server logs",builder:(g)=>g.positional("server",{describe:"Server identifier (ID, group name, or persistent server name)",type:"string",demandOption:!0}).positional("numerical-id",{describe:"Server numerical ID (when using group name)",type:"number"}).option("follow",{alias:"f",type:"boolean",describe:"Follow log output in real-time",default:!1}).option("severity",{type:"string",describe:"Filter by severity (ERROR, WARN, INFO, DEBUG)"}).option("search",{type:"string",describe:"Full-text search in log messages"}).option("from",{type:"string",describe:"Start time (ISO8601 format)"}).option("to",{type:"string",describe:"End time (ISO8601 format)"}).option("limit",{type:"number",describe:"Maximum number of log entries (default 100, max 1000)"}).option("no-prefix",{type:"boolean",describe:"Hide [server-name] prefix",default:!1}),handler:UA(async(g)=>{await jNA(g.server,g.numericalId,{follow:g.follow,severity:g.severity,search:g.search,from:g.from,to:g.to,limit:g.limit,noPrefix:g.noPrefix})})}).demandCommand(1,"You must specify a subcommand"),handler:()=>{}})}var QNA=D(()=>{qNA();_NA();KNA();GNA();fg()});import*as YNA from"os";var iH=(A)=>{let q=A.trim().toLowerCase();if(!q)return null;let g=q.match(/^(\d+(?:\.\d+)?)\s*%$/);if(g){let j=Number.parseFloat(g[1]);if(Number.isNaN(j)||j<=0||j>100)return null;let K=Math.floor(YNA.totalmem()/1048576);return Math.floor(K*j/100)}let E=q.match(/^(\d+(?:\.\d+)?)\s*(gb?|mb?)?$/);if(!E)return null;let _=Number.parseFloat(E[1]),F=E[2]||"m";if(Number.isNaN(_)||_<=0)return null;if(F.startsWith("g"))return Math.floor(_*1024);return Math.floor(_)},pH=(A)=>{if(A>=1024){let q=A/1024;return Number.isInteger(q)?`${q}gb`:`${q.toFixed(1)}gb`}return`${A}mb`};var bn=()=>{};import*as mR from"fs/promises";import*as JP from"path";var nGq="secrets",fGq="network-id.key",iGq="network-secret.key",pGq="serverhost-id.key",kn=(A,q)=>h.tryPromise({try:async()=>{await mR.writeFile(A,q,{mode:384,encoding:"utf-8"})},catch:(g)=>Error(`Failed to write secret file ${A}: ${g}`)}),lGq=(A,q)=>h.gen(function*(){let g=JP.join(A,nGq);yield*h.tryPromise({try:async()=>{await mR.mkdir(g,{recursive:!0})},catch:(E)=>Error(`Failed to create secrets directory: ${E}`)}),yield*kn(JP.join(g,fGq),q.networkId),yield*kn(JP.join(g,iGq),q.networkSecret),yield*kn(JP.join(g,pGq),q.serverhostId)}),cR=async(A,q)=>{return h.runPromise(lGq(A,q))};var yn=D(()=>{Cg()});import*as HNA from"fs/promises";import*as JNA from"path";var oGq="secrets",tGq="serverhost-id.key",sGq=(A)=>{return typeof A==="object"&&A!==null&&"code"in A&&A.code==="ENOENT"},uR=async(A)=>{let q=JNA.join(A,oGq,tGq);try{let g=(await HNA.readFile(q,"utf-8")).trim();return g.length>0?g:null}catch(g){if(sGq(g))return null;throw g}};var vn=()=>{};import*as aR from"fs/promises";import*as rR from"os";import*as lH from"path";var eGq=()=>{let A=rR.totalmem(),q=Math.floor(A/1048576);return Math.floor(q*0.8)},INA=(A)=>{if(typeof A==="string"&&A.trim().length>0)return A.trim();if(!A||typeof A!=="object")return;let q=A;for(let g of["message","error","detail","reason"]){let E=INA(q[g]);if(E)return E}return},MNA=(A)=>{if(A instanceof Error&&A.message.trim().length>0)return A.message;let q=INA(A);if(!A||typeof A!=="object")return q??"Unknown error";let g=A,E=typeof g.status==="number"?g.status:void 0,_=typeof g.statusText==="string"?g.statusText:void 0,F=E?`HTTP ${E}${_?` ${_}`:""}`:void 0;if(F&&q)return`${F}: ${q}`;if(q)return q;if(F)return F;return"Unknown error"},A1q=async(A,q,g,E,_)=>{let j=await u0({networkId:A,networkSecret:q,baseURL:g}).v0.serverhostsRegisterCreate({host_name:E,maximum_memory:_});if(!j.data?.serverhost_id)throw Error("Failed to register serverhost: No serverhost ID returned");return{serverhostId:j.data.serverhost_id}},q1q=async(A,q,g,E)=>{let F=await u0({networkId:A,networkSecret:q,baseURL:g}).v0.
|
|
411
|
+
Stopping ${wq($.length,"server")}: ${Z.join(", ")}`));let G=NA(`Stopping ${wq($.length,"server")}...`,{color:"red"}),O=await Promise.allSettled($.map(async(H)=>{let I=await _1(H.server_id);return{server:H,response:I}}));G();let Q=0,Y=0;for(let H=0;H<O.length;H++){let I=O[H],M=Z[H],L=$[H].server_id?.slice(0,8)??"";if(I.status==="fulfilled"&&!I.value.response.error){Q++;let X=I.value.response.data?.state||"STOPPING";console.log(J.green(` ${M} ${J.dim(`(${L}...)`)} ${J.dim(`\u2192 ${X}`)}`))}else{Y++;let X=I.status==="rejected"?I.reason instanceof Error?I.reason.message:String(I.reason):"API error";console.log(J.red(` ${M} ${J.dim(`(${L}...)`)} \u2192 ${X}`))}}if(console.log(),Y===0)console.log(J.green.bold(`Sent stop request for ${wq(Q,"server")}`));else console.log(`${J.green.bold(`${wq(Q,"server")} stopped`)}, ${J.red.bold(`${wq(Y,"server")} failed`)}`);console.log()}var GNA=D(()=>{xA();vq();vF();LK();bg();FZ();UNA()});function ONA(A){A.command({command:"server <command>",aliases:["servers"],describe:"Manage running servers",builder:(q)=>q.command({command:"list",aliases:["ls"],describe:"List all servers",builder:{filter:{type:"string",describe:"Filter results by name"},group:{type:"string",describe:"Filter results by group"},state:{type:"string",describe:"Filter results by state"},sort:{choices:["created","players","memory","state"],describe:"Sort results by field"},reverse:{type:"boolean",default:!1,describe:"Reverse sort order"}},handler:UA(async(g)=>{await ENA({filter:g.filter,group:g.group,state:g.state,sort:g.sort,reverse:g.reverse})})}).command({command:"info <server> [numerical-id]",aliases:["get","show"],describe:"Show server information",builder:(g)=>g.positional("server",{describe:"Server identifier",type:"string",demandOption:!0}).positional("numerical-id",{describe:"Server numerical ID",type:"number"}),handler:UA(async(g)=>{await ANA(g.server,g.numericalId)})}).command({command:"stop [targets..]",describe:"Stop one or more servers",builder:(g)=>g.positional("targets",{describe:"Server targets: server-id, group + IDs (e.g. lobby 1-3), or group names with --all",type:"string",array:!0}).option("all",{alias:"a",type:"boolean",default:!1,describe:"Stop all servers in specified groups, or all servers globally"}).example("$0 server stop lobby 1-3 proxy 1","Stop lobby 1, 2, 3 and proxy 1").example("$0 server stop lobby --all","Stop all servers in lobby").example("$0 server stop --all","Stop ALL servers"),handler:UA(async(g)=>{let E=g.targets??[];await ZNA(E,g.all)})}).command({command:"logs <server> [numerical-id]",describe:"View server logs",builder:(g)=>g.positional("server",{describe:"Server identifier (ID, group name, or persistent server name)",type:"string",demandOption:!0}).positional("numerical-id",{describe:"Server numerical ID (when using group name)",type:"number"}).option("follow",{alias:"f",type:"boolean",describe:"Follow log output in real-time",default:!1}).option("severity",{type:"string",describe:"Filter by severity (ERROR, WARN, INFO, DEBUG)"}).option("search",{type:"string",describe:"Full-text search in log messages"}).option("from",{type:"string",describe:"Start time (ISO8601 format)"}).option("to",{type:"string",describe:"End time (ISO8601 format)"}).option("limit",{type:"number",describe:"Maximum number of log entries (default 100, max 1000)"}).option("no-prefix",{type:"boolean",describe:"Hide [server-name] prefix",default:!1}),handler:UA(async(g)=>{await jNA(g.server,g.numericalId,{follow:g.follow,severity:g.severity,search:g.search,from:g.from,to:g.to,limit:g.limit,noPrefix:g.noPrefix})})}).demandCommand(1,"You must specify a subcommand"),handler:()=>{}})}var QNA=D(()=>{qNA();_NA();KNA();GNA();fg()});import*as YNA from"os";var iH=(A)=>{let q=A.trim().toLowerCase();if(!q)return null;let g=q.match(/^(\d+(?:\.\d+)?)\s*%$/);if(g){let j=Number.parseFloat(g[1]);if(Number.isNaN(j)||j<=0||j>100)return null;let K=Math.floor(YNA.totalmem()/1048576);return Math.floor(K*j/100)}let E=q.match(/^(\d+(?:\.\d+)?)\s*(gb?|mb?)?$/);if(!E)return null;let _=Number.parseFloat(E[1]),F=E[2]||"m";if(Number.isNaN(_)||_<=0)return null;if(F.startsWith("g"))return Math.floor(_*1024);return Math.floor(_)},pH=(A)=>{if(A>=1024){let q=A/1024;return Number.isInteger(q)?`${q}gb`:`${q.toFixed(1)}gb`}return`${A}mb`};var bn=()=>{};import*as mR from"fs/promises";import*as JP from"path";var nGq="secrets",fGq="network-id.key",iGq="network-secret.key",pGq="serverhost-id.key",kn=(A,q)=>h.tryPromise({try:async()=>{await mR.writeFile(A,q,{mode:384,encoding:"utf-8"})},catch:(g)=>Error(`Failed to write secret file ${A}: ${g}`)}),lGq=(A,q)=>h.gen(function*(){let g=JP.join(A,nGq);yield*h.tryPromise({try:async()=>{await mR.mkdir(g,{recursive:!0})},catch:(E)=>Error(`Failed to create secrets directory: ${E}`)}),yield*kn(JP.join(g,fGq),q.networkId),yield*kn(JP.join(g,iGq),q.networkSecret),yield*kn(JP.join(g,pGq),q.serverhostId)}),cR=async(A,q)=>{return h.runPromise(lGq(A,q))};var yn=D(()=>{Cg()});import*as HNA from"fs/promises";import*as JNA from"path";var oGq="secrets",tGq="serverhost-id.key",sGq=(A)=>{return typeof A==="object"&&A!==null&&"code"in A&&A.code==="ENOENT"},uR=async(A)=>{let q=JNA.join(A,oGq,tGq);try{let g=(await HNA.readFile(q,"utf-8")).trim();return g.length>0?g:null}catch(g){if(sGq(g))return null;throw g}};var vn=()=>{};import*as aR from"fs/promises";import*as rR from"os";import*as lH from"path";var eGq=()=>{let A=rR.totalmem(),q=Math.floor(A/1048576);return Math.floor(q*0.8)},INA=(A)=>{if(typeof A==="string"&&A.trim().length>0)return A.trim();if(!A||typeof A!=="object")return;let q=A;for(let g of["message","error","detail","reason"]){let E=INA(q[g]);if(E)return E}return},MNA=(A)=>{if(A instanceof Error&&A.message.trim().length>0)return A.message;let q=INA(A);if(!A||typeof A!=="object")return q??"Unknown error";let g=A,E=typeof g.status==="number"?g.status:void 0,_=typeof g.statusText==="string"?g.statusText:void 0,F=E?`HTTP ${E}${_?` ${_}`:""}`:void 0;if(F&&q)return`${F}: ${q}`;if(q)return q;if(F)return F;return"Unknown error"},A1q=async(A,q,g,E,_)=>{let j=await u0({networkId:A,networkSecret:q,baseURL:g}).v0.serverhostsRegisterCreate({host_name:E,maximum_memory:_});if(!j.data?.serverhost_id)throw Error("Failed to register serverhost: No serverhost ID returned");return{serverhostId:j.data.serverhost_id}},q1q=async(A,q,g,E)=>{let F=await u0({networkId:A,networkSecret:q,baseURL:g}).v0.networksPasswordsCreate({name:E}).catch((K)=>{throw Error(`Failed to create network secret: ${MNA(K)}`)});if(!F.ok){let K=F.error?JSON.stringify(F.error):`HTTP ${F.status}`;throw Error(`Failed to create network secret: ${K}`)}let j=F.data?.password??F.data?.secret;if(!j)throw Error("Failed to create network secret: Secret value not returned");return j},g1q=async(A,q)=>{let g=await h.runPromise(xY().pipe(h.provide(oA)));if(x.step("Checking authentication..."),!await vG()){x.info("Please log in to continue.");let H=await g1({skipExistingCheck:!0});if(!H)x.error(J.red("Login cancelled. Adding serverhost requires authentication.")),process.exit(1);x.success(`Authenticated as ${H.userName}`)}else x.success("Already authenticated.");x.step("Setting up network...");let _=await G5(A,q.network),F=lH.join(process.cwd(),"simplecloud"),j=lH.resolve(await A.text({name:"installationDir",message:"Installation directory (created if missing):",initialValue:F,validate:(H)=>{if(!H||H.trim().length===0)return"Installation directory cannot be empty"}})),K=!1;try{if(!(await aR.stat(j)).isDirectory())x.error(J.red(`Installation path exists but is not a directory: ${j}`)),process.exit(1);K=!0}catch(H){if(H.code!=="ENOENT")throw H}let $=await uR(j);if($)x.error(J.red(`This directory already contains a serverhost installation (${$}).
|
|
412
412
|
Choose a different installation directory.`)),process.exit(1);if(!K)x.info(`Creating installation directory: ${J.dim(j)}`);await aR.mkdir(j,{recursive:!0}),await A.markReady(),x.step("Registering serverhost...");let U=await A.text({name:"hostName",message:"Serverhost name:",initialValue:rR.hostname(),validate:(H)=>{if(!H||H.trim().length===0)return"Serverhost name cannot be empty"}}),Z=eGq(),G=await A.text({name:"maxMemory",message:"Maximum memory for servers (e.g. 80%, 32gb, 4096mb, 4096):",initialValue:pH(Z),validate:(H)=>{let I=iH(H);if(I===null)return"Please enter a valid memory value (e.g. 80%, 32gb, 4096mb, 4096)";if(I<512)return"Minimum memory is 512 MB"}}),O=iH(G);if(O===null)throw Error("Please enter a valid memory value");let Q=O,Y=_g({indicator:"dots"});Y.start("Getting authentication token...");try{let H=await c0();Y.message("Registering serverhost...");let{serverhostId:I}=await A1q(_.networkId,H,g,U,Q);Y.message("Creating network secret...");let M=await q1q(_.networkId,H,g,`serverhost-${I}`);Y.stop(`Serverhost registered: ${J.dim(I)}`),x.step("Saving credentials..."),await cR(j,{networkId:_.networkId,networkSecret:M,serverhostId:I}),x.success("Credentials saved to secrets directory.");let N=await h.runPromise(O$().pipe(h.provide(oA))),L;if(Object.keys(N).length===0)L="default";else L=await A.text({name:"contextName",message:"Context name for this installation:",initialValue:_.orgSlug||lH.basename(j),required:!1,validate:(X)=>{if(!X||X.trim().length===0)return"Context name cannot be empty";if(N[X.trim()])return`Context "${X.trim()}" already exists`}});await h.runPromise(bY(L,{orgId:_.orgId,orgName:_.orgName,orgSlug:_.orgSlug,baseURL:g,installationDir:j}).pipe(h.provide(oA))),await h.runPromise(hY(L).pipe(h.provide(oA))),x.success(`Context "${L}" created and set as current.`),await A.complete()}catch(H){Y.stop("Registration failed");let I=MNA(H);if(process.env.SC_DEBUG==="1")console.error(H);x.error(J.red(`Failed to register serverhost: ${I}`)),process.exit(1)}QE(J.green.bold("Serverhost added")),console.log(),console.log(J.dim("Next steps:")),console.log(J.dim(` 1. Navigate to your installation: cd ${j}`)),console.log(J.dim(" 2. Start the serverhost: sc start")),console.log()},PNA=async(A={})=>{rG(J.cyan.bold("Add Serverhost"));let q=await t_("serverhost-add");if(q.hasPreviousSession()){let g=await q.promptResume();if(g==="cancel")x.warn("Cancelled."),process.exit(0);if(g==="retry")q.enableSkipMode()}try{await g1q(q,A)}catch(g){if(g instanceof Error&&g.message==="Setup cancelled.")x.warn("Cancelled. Your progress has been saved."),process.exit(0);throw g}};var XNA=D(()=>{Dq();xA();Cg();Y$();wE();vq();ia();AH();bn();yn();vn();q1();zM()});function LNA(A){A.command({command:"serverhost <command>",aliases:["serverhosts","host","hosts"],describe:"Manage server hosts",builder:(q)=>q.command({command:"add",describe:"Add a new serverhost with interactive wizard",builder:(g)=>g.option("network",{type:"string",alias:"n",describe:"Network ID or slug to use (skips interactive selection)"}).option("org",{type:"string",alias:"o",describe:"Deprecated alias for --network"}).hide("org"),handler:UA(async(g)=>{await PNA({network:g.network||g.org})})}).command({command:"register",describe:"Register a new serverhost",builder:{"host-name":{type:"string",describe:"Name of the serverhost",demandOption:!0},"max-memory":{type:"number",describe:"Maximum memory in MB",demandOption:!0}},handler:UA(async(g)=>{let{hostName:E,maxMemory:_}=g;await pA();let F=NA("Registering serverhost...",{color:"cyan"}),j=await e7A(E,_);if(F(),j.error)vA(j.error,"Failed to register serverhost"),process.exit(1);console.log(J.green.bold(`
|
|
413
413
|
Serverhost registered
|
|
414
414
|
`)),console.log(J.blueBright("Serverhost details:")),console.log(` Host Name: ${J.bold(j.data?.host_name||"N/A")}`),console.log(` Serverhost ID: ${J.bold(j.data?.serverhost_id||"N/A")}`),console.log(` Network ID: ${J.bold(j.data?.network_id||"N/A")}`),console.log(` Max Memory: ${J.bold(j.data?.maximum_memory?.toString()||"N/A")} MB`),console.log(` Last Keep Alive: ${J.bold(j.data?.last_keep_alive||"N/A")}
|
|
@@ -557,7 +557,7 @@ Please report this to https://github.com/markedjs/marked.`,A){let E="<p>An error
|
|
|
557
557
|
`)}};_5A=class _5A extends pP{constructor(A,q){let g={...q,link:{url:q.href}};super(null,g)}};_Hq={box:f6,text:KF,input:C1,select:H9,textarea:B$,ascii_font:l3,tab_select:J9,scrollbox:Y9,code:Lg,diff:ci,line_number:o3,markdown:oi,span:pP,strong:Kp,b:Kp,em:$p,i:$p,u:g5A,br:E5A,a:_5A},F5A={..._Hq};Op=BWA();KD=new Map;X9=class X9 extends Cj{static fromString(A,q={}){let g=new X9(q);return g.add(A),g}};({render:YHq,effect:lq,memo:AE,createComponent:VA,createElement:t,createTextNode:Ng,insertNode:KA,insert:CA,spread:Kq6,setProp:S,mergeProps:$q6,use:Uq6}=ZHq({createElement(A){ME("Creating element:",A);let q=Qp(A),g=fP(Op);if(!g)throw Error("No renderer found");let E=jHq();if(!E[A])throw Error(`[Reconciler] Unknown component type: ${A}`);let _=new E[A](g,{id:q});return ME("Element created with id:",q),_},createTextNode:(A)=>eWA(A,!0),createDynamicTextNode:(A)=>eWA(A,!1),createSlotNode:QHq,replaceText(A,q){if(ME("Replacing text:",q,"in node:",eg(A)),!(A instanceof X9))return;A.replace(q,0)},setProperty(A,q,g,E){if(q.startsWith("on:")){let _=q.slice(3);if(g)A.on(_,g);if(E)A.off(_,E);return}if(hE(A)){if(q==="href"){A.link={url:g};return}if(q==="style"){A.attributes|=EF(g),A.fg=g.fg?m(g.fg):A.fg,A.bg=g.bg?m(g.bg):A.bg;return}return}switch(q){case"id":ME("Id mapped",A.id,"=",g),A[q]=g;break;case"focused":if(!(A instanceof sq))return;if(g)A.focus();else A.blur();break;case"onChange":let _=void 0;if(A instanceof H9)_=uP.SELECTION_CHANGED;else if(A instanceof J9)_=aP.SELECTION_CHANGED;else if(A instanceof C1)_=X4.CHANGE;if(!_)break;if(g)A.on(_,g);if(E)A.off(_,E);break;case"onInput":if(A instanceof C1){if(g)A.on(X4.INPUT,g);if(E)A.off(X4.INPUT,E)}break;case"onSubmit":if(A instanceof C1){if(g)A.on(X4.ENTER,g);if(E)A.off(X4.ENTER,E)}else A[q]=g;break;case"onSelect":if(A instanceof H9){if(g)A.on(uP.ITEM_SELECTED,g);if(E)A.off(uP.ITEM_SELECTED,E)}else if(A instanceof J9){if(g)A.on(aP.ITEM_SELECTED,g);if(E)A.off(aP.ITEM_SELECTED,E)}break;case"style":for(let F in g){let j=g[F];if(E!==void 0&&j===E[F])continue;A[F]=j}break;case"text":case"content":{let F=typeof g==="string"?g:Array.isArray(g)?g.join(""):`${g}`;A[q]=F;break}default:A[q]=g}},isTextNode(A){return A instanceof X9},insertNode:GHq,removeNode:OHq,getParentNode:A5A,getFirstChild(A){ME("Getting first child of node:",eg(A));let q=Up(A)[0];if(!q){ME("No first child found for node:",eg(A));return}return ME("First child found:",eg(q),"for node:",eg(A)),q},getNextSibling(A){ME("Getting next sibling of node:",eg(A));let q=A5A(A);if(!q){ME("No parent found for node:",eg(A));return}if(A instanceof L9){let F=A.getSlotChildForRemoval(q);if(F)A=F}let g=Up(q),E=g.indexOf(A);if(E===-1||E===g.length-1){ME("No next sibling found for node:",eg(A));return}let _=g[E+1];if(!_){ME("Next sibling is null for node:",eg(A));return}return ME("Next sibling found:",eg(_),"for node:",eg(A)),_}}));Yp=class Yp extends wK{constructor(A){super({id:A})}add(A,q){throw Error("Can't add children on an Slot renderable")}getChildren(){return[]}remove(A){}insertBefore(A,q){throw Error("Can't add children on an Slot renderable")}getRenderable(A){return}getChildrenCount(){return 0}requestRender(){}findDescendantById(A){return}};Zp=class Zp extends Cj{slotParent;destroyed=!1;constructor(A,q){super({id:A});this._visible=!1,this.slotParent=q}detachFromSlot(){this.slotParent=void 0}disposeWithoutSlotCascade(){if(this.destroyed)return;this.destroyed=!0,this.detachFromSlot()}destroy(){if(this.destroyed)return;this.destroyed=!0;let A=this.slotParent;this.slotParent=void 0,A?.destroy(),super.destroy()}};Gp=class Gp extends Yp{yogaNode;slotParent;destroyed=!1;yogaNodeConstructor;yogaNodeFreed=!1;constructor(A,q,g){super(A);this._visible=!1,this.slotParent=q,this.yogaNodeConstructor=q5A(g),this.yogaNode=HHq(this.yogaNodeConstructor),this.yogaNode.setDisplay(VP.Display.None)}getLayoutNode(){return this.yogaNode}updateFromLayout(){}updateLayout(){}onRemove(){}isCompatibleWith(A){return this.yogaNodeConstructor===q5A(A)}detachFromSlot(){this.slotParent=void 0}freeYogaNode(){if(this.yogaNodeFreed)return;this.yogaNodeFreed=!0;try{this.yogaNode.free()}catch{}}disposeWithoutSlotCascade(){if(this.destroyed)return;this.destroyed=!0,this.detachFromSlot(),this.freeYogaNode()}destroy(){if(this.destroyed)return;this.destroyed=!0;let A=this.slotParent;this.slotParent=void 0,this.freeYogaNode(),A?.destroy()}};L9=class L9 extends Yp{destroyed=!1;layoutNodesByParent=new Map;textNodesByParent=new Map;layoutNodeCount=0;textNodeCount=0;constructor(A){super(A);this._visible=!1}get layoutNode(){return this.getCurrentSlotChild(this.layoutNodesByParent)}get textNode(){return this.getCurrentSlotChild(this.textNodesByParent)}isTextSlotParent(A){return hE(A)||A instanceof KF}getCurrentSlotChild(A){for(let q of A.values())if(q.parent)return q;return A.values().next().value}getTextNodeForParent(A){let q=this.textNodesByParent.get(A);if(q)return q;for(let[g,E]of this.textNodesByParent){if(E.parent!==A)continue;return this.textNodesByParent.delete(g),this.textNodesByParent.set(A,E),E}}getLayoutNodeForParent(A){let q=this.layoutNodesByParent.get(A);if(q)return q;for(let[g,E]of this.layoutNodesByParent){if(E.parent!==A)continue;return this.layoutNodesByParent.delete(g),this.layoutNodesByParent.set(A,E),E}}takeReusableTextNode(A){for(let[q,g]of this.textNodesByParent){if(g.parent)continue;return this.textNodesByParent.delete(q),this.textNodesByParent.set(A,g),g}}takeReusableLayoutNode(A){for(let[q,g]of this.layoutNodesByParent){if(g.parent)continue;if(!g.isCompatibleWith(A))continue;return this.layoutNodesByParent.delete(q),this.layoutNodesByParent.set(A,g),g}}disposeDetachedTextNodes(){for(let[A,q]of this.textNodesByParent){if(q.parent)continue;this.textNodesByParent.delete(A),q.disposeWithoutSlotCascade()}}disposeDetachedIncompatibleLayoutNodes(A){for(let[q,g]of this.layoutNodesByParent){if(g.parent||g.isCompatibleWith(A))continue;this.layoutNodesByParent.delete(q),g.disposeWithoutSlotCascade()}}getAttachedSlotParent(A){for(let q of this.textNodesByParent.values())if(q!==A&&q.parent)return q.parent;for(let q of this.layoutNodesByParent.values())if(q!==A&&q.parent)return q.parent;return null}hasOtherAttachedSlotChildren(A){return this.getAttachedSlotParent(A)!==null}getSlotChild(A){if(this.isTextSlotParent(A)){let _=this.getTextNodeForParent(A);if(_)return _;let F=this.takeReusableTextNode(A);if(F)return F;this.disposeDetachedIncompatibleLayoutNodes(A);let j=new Zp(`slot-text-${this.id}-${++this.textNodeCount}`,this);return this.textNodesByParent.set(A,j),j}let q=this.getLayoutNodeForParent(A);if(q)return q;let g=this.takeReusableLayoutNode(A);if(g)return g;this.disposeDetachedTextNodes(),this.disposeDetachedIncompatibleLayoutNodes(A);let E=new Gp(`slot-layout-${this.id}-${++this.layoutNodeCount}`,this,A);return this.layoutNodesByParent.set(A,E),E}getSlotChildForRemoval(A){if(this.isTextSlotParent(A))return this.getTextNodeForParent(A);return this.getLayoutNodeForParent(A)}didRemoveSlotChild(A,q){let g=this.hasOtherAttachedSlotChildren(q);if(g&&q instanceof Zp&&this.getTextNodeForParent(A)===q)this.textNodesByParent.delete(A),q.disposeWithoutSlotCascade();if(g&&q instanceof Gp&&this.getLayoutNodeForParent(A)===q)this.layoutNodesByParent.delete(A),q.disposeWithoutSlotCascade();if(this.parent===A)this.parent=this.getAttachedSlotParent(q)}destroy(){if(this.destroyed)return;this.destroyed=!0;let A=new Set(this.layoutNodesByParent.values());this.layoutNodesByParent.clear();for(let g of A)g.destroy();let q=new Set(this.textNodesByParent.values());this.textNodesByParent.clear();for(let g of q)g.destroy()}};FHq({time_to_first_draw:ti})});var EA,Jp=()=>[(()=>{var A=t("text");return KA(A,Ng("\u03DF")),lq((q)=>S(A,"fg",EA.logo,q)),A})(),(()=>{var A=t("text"),q=t("strong");return KA(A,q),S(A,"marginLeft",1),KA(q,Ng("simplecloud")),lq((g)=>S(A,"fg",EA.text,g)),A})()],Hp=(A)=>{let q=E6(()=>Array.from(A.text)),g=E6(()=>{let _=A.sweepFrames??24,F=A.pauseFrames??3,j=A.frame%(_+F);if(j>=_)return q().length+5;let K=j/Math.max(1,_-1);return-3+(1-Math.cos(Math.PI*K))/2*(q().length+6)}),E=E6(()=>q().map((_,F)=>{let j=Math.abs(F-g()),K=Math.max(0,1-j/5),$=K*K*(3-2*K)*(A.strength??1),Z=`#${Math.round(102+133*$).toString(16).padStart(2,"0").repeat(3)}`;return{character:_,color:Z}}));return(()=>{var _=t("text");return CA(_,VA(mWA,{get each(){return E()},children:(F)=>(()=>{var j=t("span");return CA(j,()=>F().character),lq((K)=>S(j,"style",{fg:F().color},K)),j})()})),lq((F)=>S(_,"marginLeft",A.marginLeft??0,F)),_})()},IHq=(A)=>A.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,50),MHq=(A)=>A.split(/[\\/]/).filter(Boolean).at(-1)??A,PHq=(A)=>{switch(A){case"done":return"\u25CF";case"running":return"\u25C9";case"warning":return"\u25C6";case"error":return"\xD7";case"skipped":return"\u2013";default:return"\u25CB"}},XHq=(A)=>{switch(A){case"done":return EA.green;case"running":return EA.brand;case"warning":return EA.amber;case"error":return EA.red;case"skipped":return EA.subtle;default:return EA.subtle}},h1=(A)=>(()=>{var q=t("box"),g=t("text"),E=t("strong"),_=t("text");return KA(q,g),KA(q,_),S(q,"flexDirection","column"),S(q,"marginBottom",2),KA(g,E),CA(E,()=>A.title),S(_,"marginTop",1),S(_,"wrapMode","word"),CA(_,()=>A.description),lq((F)=>{var{text:j,muted:K}=EA;return j!==F.e&&(F.e=S(g,"fg",j,F.e)),K!==F.t&&(F.t=S(_,"fg",K,F.t)),F},{e:void 0,t:void 0}),q})(),ZD=(A)=>(()=>{var q=t("box"),g=t("box"),E=t("input"),_=t("text");return KA(q,g),KA(q,_),S(q,"flexDirection","column"),CA(q,VA(h1,{get title(){return A.title},get description(){return A.description}}),g),KA(g,E),S(g,"border",!0),S(g,"borderStyle","rounded"),S(g,"height",3),S(g,"paddingLeft",1),S(g,"paddingRight",1),S(_,"marginTop",2),S(_,"height",1),CA(_,()=>A.error??"Enter to continue"),lq((F)=>{var j=A.error?EA.red:EA.borderStrong,K=EA.background,$=A.focused??!0,U=A.initialValue??"",Z=A.placeholder??"",G=EA.text,O=EA.text,Q=EA.cyan,Y=EA.background,H=EA.background,I=EA.subtle,M=A.onConfirm,N=A.error?EA.red:EA.subtle;return j!==F.e&&(F.e=S(g,"borderColor",j,F.e)),K!==F.t&&(F.t=S(g,"backgroundColor",K,F.t)),$!==F.a&&(F.a=S(E,"focused",$,F.a)),U!==F.o&&(F.o=S(E,"value",U,F.o)),Z!==F.i&&(F.i=S(E,"placeholder",Z,F.i)),G!==F.n&&(F.n=S(E,"textColor",G,F.n)),O!==F.s&&(F.s=S(E,"focusedTextColor",O,F.s)),Q!==F.h&&(F.h=S(E,"cursorColor",Q,F.h)),Y!==F.r&&(F.r=S(E,"backgroundColor",Y,F.r)),H!==F.d&&(F.d=S(E,"focusedBackgroundColor",H,F.d)),I!==F.l&&(F.l=S(E,"placeholderColor",I,F.l)),M!==F.u&&(F.u=S(E,"onSubmit",M,F.u)),N!==F.c&&(F.c=S(_,"fg",N,F.c)),F},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0}),q})(),lP=(A)=>(()=>{var q=t("box"),g=t("select"),E=t("text");return KA(q,g),KA(q,E),S(q,"flexDirection","column"),CA(q,VA(h1,{get title(){return A.title},get description(){return A.description}}),g),CA(q,VA(E_,{get when(){return A.context},get fallback(){return(()=>{var _=t("box");return S(_,"height",0),_})()},children:(_)=>(()=>{var F=t("box"),j=t("text"),K=t("text");return KA(F,j),KA(F,K),S(F,"flexDirection","column"),S(F,"paddingLeft",1),S(F,"paddingRight",1),S(F,"paddingTop",1),S(F,"paddingBottom",1),S(F,"marginBottom",1),CA(j,()=>_().label),S(K,"wrapMode","word"),CA(K,()=>_().value),lq(($)=>{var{surfaceRaised:U,muted:Z,text:G}=EA;return U!==$.e&&($.e=S(F,"backgroundColor",U,$.e)),Z!==$.t&&($.t=S(j,"fg",Z,$.t)),G!==$.a&&($.a=S(K,"fg",G,$.a)),$},{e:void 0,t:void 0,a:void 0}),F})()}),g),S(g,"wrapSelection",!0),S(g,"onChange",(_,F)=>{if(F?.value!==void 0)A.onHighlight?.(String(F.value))}),S(g,"onSelect",(_,F)=>{if(F?.value!==void 0)A.onChoose(String(F.value))}),S(E,"marginTop",2),CA(E,()=>A.hint??"\u2191\u2193 choose \xB7 Enter continue"),lq((_)=>{var F=A.focused??!0,j=A.rows??(A.showDescriptions===!1?Math.min(9,Math.max(3,A.options.length)):Math.min(10,Math.max(3,A.options.length*2))),K=A.options,$=A.showDescriptions??!0,U=EA.surface,Z=EA.surface,G=EA.text,O=EA.text,Q=EA.brand,Y=EA.text,H=EA.muted,I=EA.muted,M=EA.subtle;return F!==_.e&&(_.e=S(g,"focused",F,_.e)),j!==_.t&&(_.t=S(g,"height",j,_.t)),K!==_.a&&(_.a=S(g,"options",K,_.a)),$!==_.o&&(_.o=S(g,"showDescription",$,_.o)),U!==_.i&&(_.i=S(g,"backgroundColor",U,_.i)),Z!==_.n&&(_.n=S(g,"focusedBackgroundColor",Z,_.n)),G!==_.s&&(_.s=S(g,"textColor",G,_.s)),O!==_.h&&(_.h=S(g,"focusedTextColor",O,_.h)),Q!==_.r&&(_.r=S(g,"selectedBackgroundColor",Q,_.r)),Y!==_.d&&(_.d=S(g,"selectedTextColor",Y,_.d)),H!==_.l&&(_.l=S(g,"descriptionColor",H,_.l)),I!==_.u&&(_.u=S(g,"selectedDescriptionColor",I,_.u)),M!==_.c&&(_.c=S(E,"fg",M,_.c)),_},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0}),q})(),LHq=(A)=>{let q=N9(),g=UD(),E=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827"],_=A.options.defaults,[F,j]=Qq(),[K,$]=Qq(),[U,Z]=Qq(),[G,O]=Qq(A.options.progress.snapshot()),[Q,Y]=Qq(),[H,I]=Qq(0),[M,N]=Qq(0),[L,X]=Qq(0),[W,T]=Qq(_.fixedNetworkId??(_.networks.length===1?_.networks[0]?.id:void 0)),[V,R]=Qq(""),[z,B]=Qq(""),[C,y]=Qq(_.hostName??"host-1"),[b,n]=Qq(_.maxMemory??_.defaultMemory),[AA,s]=Qq(_.installDir??_.recommendedInstallDir),[$A,TA]=Qq(_.recommendedInstallDir),[iA,_6]=Qq("__suggested__"),[Ig,cq]=Qq(_.autoInstallDeps??!0),[nF,$F]=Qq(_.start??!0),[d1,eq]=Qq(),[Nq,Vg]=Qq(),[kj,W4]=Qq(!1),kE=new AbortController,n1=!1,W9=(()=>{if(_.fixedNetworkId||_.networks.length===1){if(_.missingDependencies.length>0&&_.autoInstallDeps===void 0)return"dependencies";if(!_.hostName)return"host";if(!_.maxMemory)return"memory";if(!_.installDir)return"location";if(_.start===void 0)return"start";return}if(_.networks.length===0)return"network-name";return"network"})(),[nq,f1]=Qq(W9?"form":"installing"),[V6,R9]=Qq(W9??"location"),[RZ,hK]=Qq([]),yj=(OA)=>{Y(void 0),hK((bq)=>[...bq,V6()]),R9(OA),q.requestRender()},LRA=()=>{let OA=RZ(),bq=OA.at(-1);if(!bq)return;Y(void 0),hK(OA.slice(0,-1)),R9(bq),q.requestRender()},bp=()=>{if(_.start===void 0)yj("start");else qX()},AX=()=>{if(_.installDir)bp();else yj("location")},kp=()=>{if(_.missingDependencies.length>0&&_.autoInstallDeps===void 0)yj("dependencies");else if(!_.hostName)yj("host");else if(!_.maxMemory)yj("memory");else AX()},NRA=()=>{if(!_.hostName)yj("host");else if(!_.maxMemory)yj("memory");else AX()},VRA=()=>{if(!_.maxMemory)yj("memory");else AX()},yp=(OA)=>{s(OA),Vg(void 0),bp()},ND=(OA)=>{if(!A.options.browseDirectory){Vg("Directory browsing is unavailable");return}W4(!0),Vg(void 0),A.options.browseDirectory(OA).then((bq)=>{eq(bq),_6("__suggested__")}).catch((bq)=>{Vg(bq instanceof Error?bq.message:String(bq))}).finally(()=>{W4(!1),q.requestRender()})},vp=(OA)=>{if(V6()!=="location")return;if(OA==="__browse__"){yj("directory-browser"),ND(_.currentDirectory);return}yp(OA)},mp=(OA)=>{if(V6()!=="directory-browser")return;let bq=d1();if(!bq||kj())return;if(OA==="__suggested__"){yp(bq.suggestedInstallDir);return}ND(OA)},TRA=()=>({networkId:V()?void 0:W(),newNetwork:V()?{name:V(),slug:z()}:void 0,hostName:C(),maxMemory:b(),installDir:AA(),autoInstallDeps:Ig(),start:nF()}),cp={signal:kE.signal,suspend:async(OA)=>{q.suspend();try{return await OA()}finally{q.resume()}}},VD=(OA)=>{A.options.onDependencyInstallRequested(cp,OA)};if(_.autoInstallDeps===!0)queueMicrotask(()=>VD(!0));else if(A.options.startBackgroundPreparation)queueMicrotask(()=>VD(!1));let qX=async()=>{f1("installing"),j(void 0);try{let OA=await A.options.validateInstallDir(AA());if(OA){Vg(OA),hK([]),R9("location"),f1("form"),q.requestRender();return}let bq=await A.options.onInstall(TRA(),cp);if(kE.signal.aborted)return;Z(bq),f1("done")}catch(OA){if(kE.signal.aborted)return;j(OA instanceof Error?OA.message:String(OA)),f1("error")}};if(!W9)queueMicrotask(()=>void qX());let R4=(OA)=>{if(n1)return;if(n1=!0,OA===null)kE.abort(Error("Setup cancelled")),A.options.onCancel?.();A.onExit(OA),q.destroy()},up=()=>{if(nq()==="form"&&RZ().length>0)LRA();else if(nq()==="form")R4(null);else if(nq()==="installing")R4(null);else if(nq()==="done"||nq()==="error")R4(U()??null)},ap=(OA)=>{let bq=OA.name==="escape"||OA.sequence==="\x1B",mg=OA.ctrl&&OA.name.toLowerCase()==="c"||OA.sequence==="\x03";if(bq){up();return}if(mg){R4(U()??null);return}if(nq()==="form"&&V6()==="directory-browser"&&!kj()&&(OA.name==="backspace"||OA.name==="left")){let i6=d1()?.parent;if(i6)ND(i6);return}if(nq()==="done"&&OA.name==="return"&&A.options.canOpenDashboard!==!1){let i6=U();if(i6)$(void 0),A.options.onOpenDashboard().then(()=>R4(i6)).catch(()=>{$("Could not open a browser. Visit dash.simplecloud.app manually.")});return}if(nq()==="error"&&OA.name==="return")qX()},rp=(OA)=>{let bq=()=>{let i6=q.currentFocusedRenderable?.getSelectedOption?.()?.value;return i6===void 0?void 0:String(i6)};if(OA==="\x1B")return up(),!0;if(OA==="\x03")return R4(U()??null),!0;if((OA==="\r"||OA===`
|
|
558
558
|
`)&&nq()==="form"&&V6()==="location")return vp(bq()??$A()),!0;if((OA==="\r"||OA===`
|
|
559
559
|
`)&&nq()==="form"&&V6()==="directory-browser")return mp(bq()??iA()),!0;return!1};q.prependInputHandler(rp),q.keyInput.on("keypress",ap),N_(()=>{if(!kE.signal.aborted&&!U())kE.abort(Error("Setup cancelled"));q.removeInputHandler(rp),q.keyInput.off("keypress",ap)});let WRA=A.options.progress.subscribe(O);N_(WRA);let RRA=setInterval(()=>{if(nq()!=="done")return;I((OA)=>Math.min(1,OA+0.035)),N((OA)=>OA+0.18)},80);N_(()=>clearInterval(RRA));let DRA=setInterval(()=>{if(nq()==="form"||nq()==="installing")X((OA)=>OA+1)},90);N_(()=>clearInterval(DRA));let dp=E6(()=>Math.max(44,Math.min(72,g().width-6))),y$=E6(()=>G().tasks.find((OA)=>OA.state==="error")??G().tasks.find((OA)=>OA.state==="warning")??G().tasks.find((OA)=>OA.state==="running")),np=E6(()=>{let OA=G().tasks,bq=["dependencies","components","registration","files","services","start"];for(let mg of bq){let i6=OA.find((vj)=>vj.id===mg&&vj.state==="running");if(i6)return i6}return OA.find((mg)=>mg.state==="waiting")}),wRA=E6(()=>{let OA=np();if(!OA)return"Finishing setup";switch(OA.id){case"components":return OA.detail==="Downloading"?"Downloading serverhost":OA.detail;case"dependencies":return OA.detail.replace(/\bjava\b/i,"Java");case"registration":return OA.detail==="Connecting"?"Connecting to your network":OA.detail;case"files":return OA.detail==="Installing"?"Installing SimpleCloud":OA.detail;case"services":return OA.detail;case"start":return OA.detail==="Starting"?"Starting SimpleCloud":OA.detail;default:return OA.detail}}),SRA=E6(()=>{switch(np()?.id){case"dependencies":return"This can take a few minutes";case"components":return"Downloading and verifying";case"registration":return"Connecting to your network";case"files":return"Moving files into place";case"services":return"Preparing isolated service bundles";case"start":return"Starting your serverhost";default:return"Preparing your installation"}}),BRA=E6(()=>SRA().padStart(28," ")),zRA=E6(()=>{if(_.recommendedInstallDir===_.currentDirectory)return{name:"Current folder",description:`${_.currentDirectory} \xB7 Recommended`,value:_.recommendedInstallDir};if(_.recommendedInstallDir.startsWith(`${_.currentDirectory}/`))return{name:"Create a SimpleCloud folder",description:"./simplecloud \xB7 Recommended",value:_.recommendedInstallDir};return{name:"Requested location",description:_.recommendedInstallDir,value:_.recommendedInstallDir}}),CRA=E6(()=>DNA(Math.max(20,g().width),Math.max(8,g().height),H(),M())),xRA=E6(()=>{return U()?.installationDir??""}),fp=E6(()=>{if(/(dependency|java|screen)/i.test(F()??""))return{title:"A dependency could not be installed",description:"Completed downloads and dependencies are kept. Fix the issue, then continue."};return{title:"Setup paused",description:"Completed work is kept. Continue from the step that needs attention."}});return(()=>{var OA=t("box"),bq=t("box"),mg=t("box"),i6=t("box"),vj=t("box");return KA(OA,bq),S(OA,"width","100%"),S(OA,"height","100%"),S(OA,"flexDirection","column"),CA(OA,VA(E_,{get when(){return nq()==="done"},get fallback(){return(()=>{var l=t("box");return S(l,"height",0),l})()},get children(){var l=t("box"),YA=t("text");return KA(l,YA),S(l,"position","absolute"),S(l,"left",0),S(l,"top",0),S(l,"width","100%"),S(l,"height","100%"),S(l,"overflow","hidden"),S(l,"zIndex",0),CA(YA,()=>CRA().join(`
|
|
560
|
-
`)),lq((mA)=>S(YA,"fg",EA.dither,mA)),l}}),bq),KA(bq,mg),S(bq,"flexGrow",1),S(bq,"flexDirection","column"),S(bq,"alignItems","center"),S(bq,"justifyContent","center"),S(bq,"padding",3),S(bq,"zIndex",1),KA(mg,i6),KA(mg,vj),S(mg,"minHeight",18),S(mg,"flexDirection","column"),S(mg,"border",!0),S(mg,"borderStyle","rounded"),S(mg,"zIndex",2),S(i6,"height",4),S(i6,"flexDirection","row"),S(i6,"alignItems","center"),S(i6,"paddingTop",1),S(i6,"paddingBottom",1),S(i6,"paddingLeft",3),S(i6,"paddingRight",3),S(i6,"border",["bottom"]),CA(i6,VA(Jp,{})),S(vj,"flexDirection","column"),S(vj,"position","relative"),S(vj,"paddingTop",2),S(vj,"paddingBottom",2),S(vj,"paddingLeft",3),S(vj,"paddingRight",3),CA(vj,VA(jD,{get children(){return[VA(JE,{get when(){return nq()==="form"},get children(){return VA(jD,{get children(){return[VA(JE,{get when(){return V6()==="network"},get children(){return VA(lP,{get focused(){return AE(()=>nq()==="form")()&&V6()==="network"},title:"Where should this serverhost live?",description:"Choose an existing network or create a fresh one.",get options(){return[..._.networks.map((l)=>({name:l.name,description:l.slug,value:l.id})),{name:"Create a new network",description:"Start with an empty SimpleCloud network",value:"__create__"}]},showDescriptions:!1,onChoose:(l)=>{if(l==="__create__"){yj("network-name");return}R(""),T(l),kp()}})}}),VA(JE,{get when(){return V6()==="network-name"},get children(){return VA(ZD,{get focused(){return AE(()=>nq()==="form")()&&V6()==="network-name"},title:"Give your network a name",description:"This is the name you will see in the dashboard.",placeholder:"My Minecraft Network",get error(){return Q()},onConfirm:(l)=>{let YA=l.trim();if(!YA){Y("Network name cannot be empty");return}if(YA.length>100){Y("Keep the name under 100 characters");return}R(YA),B(IHq(YA)),yj("network-slug")}})}}),VA(JE,{get when(){return V6()==="network-slug"},get children(){return VA(ZD,{get focused(){return AE(()=>nq()==="form")()&&V6()==="network-slug"},title:"Choose its dashboard address",description:"Lowercase letters, numbers, and hyphens only.",get initialValue(){return z()},get error(){return Q()},onConfirm:(l)=>{let YA=l.trim();if(!/^[a-z0-9-]+$/.test(YA)||YA.length>50){Y("Use up to 50 lowercase letters, numbers, or hyphens");return}B(YA),kp()}})}}),VA(JE,{get when(){return V6()==="dependencies"},get children(){return VA(lP,{get focused(){return AE(()=>nq()==="form")()&&V6()==="dependencies"},get title(){return`Install ${_.missingDependencies.join(" and ")}?`},description:"Setup can prepare missing dependencies while you finish the remaining details.",options:[{name:"Install in the background",description:"Recommended \xB7 setup handles the required packages",value:"yes"},{name:"I\u2019ll install them myself",description:"Finish setup after the dependencies are available",value:"no"}],onChoose:(l)=>{let YA=l==="yes";if(cq(YA),YA)VD(!0);NRA()}})}}),VA(JE,{get when(){return V6()==="host"},get children(){return VA(ZD,{get focused(){return AE(()=>nq()==="form")()&&V6()==="host"},title:"What should we call this machine?",description:"Use a short, recognizable name. You can change it later.",get initialValue(){return C()},get error(){return Q()},onConfirm:(l)=>{let YA=l.trim();if(!YA){Y("Serverhost name cannot be empty");return}y(YA),VRA()}})}}),VA(JE,{get when(){return V6()==="memory"},get children(){return VA(ZD,{get focused(){return AE(()=>nq()==="form")()&&V6()==="memory"},title:"How much memory can SimpleCloud use?",description:"Leave enough room for the operating system and anything else on this machine.",get initialValue(){return b()},placeholder:"80%, 16gb, or 4096mb",get error(){return Q()},onConfirm:(l)=>{let YA=A.options.validateMemory(l);if(YA){Y(YA);return}n(l.trim()),AX()}})}}),VA(JE,{get when(){return V6()==="location"},get children(){var l=t("box");return S(l,"flexDirection","column"),CA(l,VA(lP,{get focused(){return AE(()=>nq()==="form")()&&V6()==="location"},title:"Where should SimpleCloud live?",description:"Choose a new or empty folder.",get options(){return[zRA(),{name:"Home folder",description:"~/simplecloud",value:_.homeInstallDir},{name:"Choose another folder\u2026",description:"Browse folders",value:"__browse__"}]},onHighlight:(YA)=>{TA(YA)},onChoose:vp}),null),CA(l,VA(E_,{get when(){return Nq()},get fallback(){return(()=>{var YA=t("box");return S(YA,"height",0),YA})()},get children(){var YA=t("text");return S(YA,"marginTop",1),S(YA,"wrapMode","word"),CA(YA,Nq),lq((mA)=>S(YA,"fg",EA.red,mA)),YA}}),null),l}}),VA(JE,{get when(){return V6()==="directory-browser"},get children(){return VA(E_,{get when(){return d1()},get fallback(){return(()=>{var l=t("box");return S(l,"flexDirection","column"),CA(l,VA(h1,{title:"Choose a folder",description:"Opening the folder browser\u2026"}),null),CA(l,VA(E_,{get when(){return Nq()},get fallback(){return(()=>{var YA=t("text"),mA=Ng(" Opening folder browser");return KA(YA,mA),CA(YA,()=>E[L()%E.length],mA),lq((Sq)=>S(YA,"fg",EA.brand,Sq)),YA})()},get children(){var YA=t("text");return CA(YA,Nq),lq((mA)=>S(YA,"fg",EA.red,mA)),YA}}),null),l})()},children:(l)=>(()=>{var YA=t("box");return S(YA,"flexDirection","column"),CA(YA,VA(lP,{get focused(){return AE(()=>nq()==="form"&&V6()==="directory-browser")()&&!kj()},title:"Choose an installation folder",get description(){return l().directory},showDescriptions:!1,rows:6,get options(){return[{name:l().usesCurrentDirectory?"Select this folder":`Create ${MHq(l().suggestedInstallDir)}/ here`,description:l().usesCurrentDirectory?"Install directly in this empty folder":"Create a new SimpleCloud folder here",value:"__suggested__"},...l().parent?[{name:"../",description:"Go up one folder",value:l().parent??""}]:[],...l().entries.map((mA)=>({name:`${mA.name}/`,description:"Open folder",value:mA.path}))]},get hint(){return AE(()=>!!kj())()?`${E[L()%E.length]} Opening folder`:"\u2191\u2193 navigate \xB7 Enter choose \xB7 Backspace/\u2190 up \xB7 Esc back"},onHighlight:_6,onChoose:mp}),null),CA(YA,VA(E_,{get when(){return Nq()},get fallback(){return(()=>{var mA=t("box");return S(mA,"height",0),mA})()},get children(){var mA=t("text");return S(mA,"marginTop",1),CA(mA,Nq),lq((Sq)=>S(mA,"fg",EA.red,Sq)),mA}}),null),YA})()})}}),VA(JE,{get when(){return V6()==="start"},get children(){return VA(lP,{get focused(){return AE(()=>nq()==="form")()&&V6()==="start"},title:"Start SimpleCloud right away?",description:"You can also start it later with sc start.",options:[{name:"Start SimpleCloud",description:"Recommended \xB7 bring this serverhost online now",value:"yes"},{name:"Finish without starting",description:"Install and register only",value:"no"}],onChoose:(l)=>{$F(l==="yes"),qX()}})}})]}})}}),VA(JE,{get when(){return nq()==="installing"},get children(){var l=t("box"),YA=t("box"),mA=t("box"),Sq=t("box"),yE=t("text"),qE=t("box"),fF=t("text");return KA(l,YA),KA(l,qE),S(l,"flexDirection","column"),S(l,"minHeight",12),KA(YA,mA),S(YA,"flexGrow",1),S(YA,"alignItems","center"),S(YA,"justifyContent","center"),KA(mA,Sq),S(mA,"flexDirection","row"),S(mA,"alignItems","center"),S(mA,"justifyContent","space-between"),S(mA,"width","100%"),S(mA,"height",3),S(mA,"paddingLeft",2),S(mA,"paddingRight",2),KA(Sq,yE),S(Sq,"flexDirection","row"),S(Sq,"alignItems","center"),S(Sq,"flexGrow",1),S(Sq,"height",1),CA(yE,()=>E[L()%E.length]),CA(Sq,VA(Hp,{get text(){return wRA()},get frame(){return L()},marginLeft:1}),null),CA(mA,VA(E_,{get when(){return dp()>=58},get fallback(){return(()=>{var p6=t("box");return S(p6,"height",0),p6})()},get children(){var p6=t("box"),iF=t("text");return KA(p6,iF),S(p6,"width",28),S(p6,"flexShrink",0),S(p6,"justifyContent","flex-end"),S(p6,"marginLeft",2),S(iF,"width",28),S(iF,"fg","#626262"),lq((bK)=>S(iF,"content",BRA(),bK)),p6}}),null),KA(qE,fF),S(qE,"height",2),S(qE,"flexDirection","row"),S(qE,"alignItems","flex-end"),S(qE,"paddingLeft",2),KA(fF,Ng("Esc cancel")),S(fF,"fg","#595959"),lq((p6)=>{var{surfaceRaised:iF,brand:bK}=EA;return iF!==p6.e&&(p6.e=S(mA,"backgroundColor",iF,p6.e)),bK!==p6.t&&(p6.t=S(yE,"fg",bK,p6.t)),p6},{e:void 0,t:void 0}),l}}),VA(JE,{get when(){return nq()==="error"},get children(){return[VA(h1,{get title(){return fp().title},get description(){return fp().description}}),(()=>{var l=t("box"),YA=t("text");return KA(l,YA),S(l,"border",!0),S(l,"borderStyle","rounded"),S(l,"padding",2),S(YA,"wrapMode","word"),CA(YA,F),lq((mA)=>{var{red:Sq,surfaceRaised:yE,red:qE}=EA;return Sq!==mA.e&&(mA.e=S(l,"borderColor",Sq,mA.e)),yE!==mA.t&&(mA.t=S(l,"backgroundColor",yE,mA.t)),qE!==mA.a&&(mA.a=S(YA,"fg",qE,mA.a)),mA},{e:void 0,t:void 0,a:void 0}),l})(),(()=>{var l=t("text");return KA(l,Ng("Enter continue \xB7 Esc return to the terminal")),S(l,"marginTop",2),lq((YA)=>S(l,"fg",EA.muted,YA)),l})()]}}),VA(JE,{get when(){return nq()==="done"},get children(){var l=t("box"),YA=t("box"),mA=t("text"),Sq=t("text"),yE=t("strong"),qE=Ng(" is ready"),fF=t("text"),p6=t("box"),iF=t("text"),bK=t("text"),gX=t("text");return KA(l,YA),KA(l,fF),KA(l,p6),KA(l,gX),S(l,"flexGrow",1),S(l,"width","100%"),S(l,"flexDirection","column"),S(l,"justifyContent","center"),S(l,"zIndex",2),KA(YA,mA),KA(YA,Sq),S(YA,"flexDirection","row"),S(YA,"alignItems","center"),KA(mA,Ng("\u2713")),KA(Sq,yE),S(Sq,"marginLeft",1),KA(yE,qE),CA(yE,()=>U()?.hostName,qE),S(fF,"marginTop",1),S(fF,"marginLeft",2),CA(fF,(()=>{var uq=AE(()=>!!U()?.started);return()=>uq()?`Running on ${U()?.networkName}`:`Connected to ${U()?.networkName} \xB7 Ready to start`})()),KA(p6,iF),KA(p6,bK),S(p6,"flexDirection","row"),S(p6,"marginTop",3),KA(iF,Ng("Installed")),S(iF,"width",12),S(bK,"flexGrow",1),S(bK,"wrapMode","word"),CA(bK,xRA),KA(gX,Ng("Return to the dashboard to manage your network.")),S(gX,"marginTop",3),CA(l,VA(E_,{get when(){return A.options.canOpenDashboard!==!1},get fallback(){return(()=>{var uq=t("box"),vE=t("text"),mj=t("text");return KA(uq,vE),KA(uq,mj),S(uq,"flexDirection","column"),KA(vE,Ng("dash.simplecloud.app")),S(vE,"marginTop",1),KA(mj,Ng("Esc close setup")),S(mj,"marginTop",2),lq((UF)=>{var{text:cj,subtle:k6}=EA;return cj!==UF.e&&(UF.e=S(vE,"fg",cj,UF.e)),k6!==UF.t&&(UF.t=S(mj,"fg",k6,UF.t)),UF},{e:void 0,t:void 0}),uq})()},get children(){var uq=t("box"),vE=t("box"),mj=t("text"),UF=t("strong"),cj=t("text");return KA(uq,vE),KA(uq,cj),S(uq,"flexDirection","column"),KA(vE,mj),S(vE,"width",22),S(vE,"height",3),S(vE,"alignItems","center"),S(vE,"justifyContent","center"),S(vE,"marginTop",1),KA(mj,UF),KA(UF,Ng("Open dashboard")),CA(uq,VA(E_,{get when(){return K()},get fallback(){return(()=>{var k6=t("box");return S(k6,"height",0),k6})()},get children(){var k6=t("text");return S(k6,"marginTop",1),CA(k6,K),lq((i1)=>S(k6,"fg",EA.red,i1)),k6}}),cj),KA(cj,Ng("Enter open dashboard \xB7 Esc close setup")),S(cj,"marginTop",1),lq((k6)=>{var{brand:i1,text:ip,subtle:pp}=EA;return i1!==k6.e&&(k6.e=S(vE,"backgroundColor",i1,k6.e)),ip!==k6.t&&(k6.t=S(mj,"fg",ip,k6.t)),pp!==k6.a&&(k6.a=S(cj,"fg",pp,k6.a)),k6},{e:void 0,t:void 0,a:void 0}),uq}}),null),lq((uq)=>{var{green:vE,text:mj,muted:UF,muted:cj,text:k6,muted:i1}=EA;return vE!==uq.e&&(uq.e=S(mA,"fg",vE,uq.e)),mj!==uq.t&&(uq.t=S(Sq,"fg",mj,uq.t)),UF!==uq.a&&(uq.a=S(fF,"fg",UF,uq.a)),cj!==uq.o&&(uq.o=S(iF,"fg",cj,uq.o)),k6!==uq.i&&(uq.i=S(bK,"fg",k6,uq.i)),i1!==uq.n&&(uq.n=S(gX,"fg",i1,uq.n)),uq},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),l}})]}})),CA(bq,VA(E_,{get when(){return AE(()=>!!(nq()==="form"&&y$()))()?y$():void 0},get fallback(){return(()=>{var l=t("box");return S(l,"height",0),l})()},get children(){var l=t("box"),YA=t("text"),mA=Ng(" ");return KA(l,YA),S(l,"position","absolute"),S(l,"left",0),S(l,"right",0),S(l,"bottom",0),S(l,"width","100%"),S(l,"height",1),S(l,"flexDirection","row"),S(l,"paddingRight",2),S(l,"alignItems","center"),S(l,"zIndex",3),KA(YA,mA),S(YA,"marginLeft","auto"),CA(YA,(()=>{var Sq=AE(()=>y$()?.state==="running");return()=>Sq()?E[L()%E.length]:PHq(y$()?.state??"waiting")})(),mA),CA(YA,()=>y$()?.detail,null),CA(YA,(()=>{var Sq=AE(()=>y$()?.state!=="running"||y$()?.progress===void 0);return()=>Sq()?"":` \xB7 ${Math.round((y$()?.progress??0)*100)}%`})(),null),lq((Sq)=>{var yE=EA.background,qE=XHq(y$()?.state??"waiting");return yE!==Sq.e&&(Sq.e=S(l,"backgroundColor",yE,Sq.e)),qE!==Sq.t&&(Sq.t=S(YA,"fg",qE,Sq.t)),Sq},{e:void 0,t:void 0}),l}}),null),lq((l)=>{var YA=EA.background,mA=dp(),Sq=Math.max(18,g().height-6),yE=EA.surface,qE=EA.border,fF=EA.border;return YA!==l.e&&(l.e=S(OA,"backgroundColor",YA,l.e)),mA!==l.t&&(l.t=S(mg,"width",mA,l.t)),Sq!==l.a&&(l.a=S(mg,"maxHeight",Sq,l.a)),yE!==l.o&&(l.o=S(mg,"backgroundColor",yE,l.o)),qE!==l.i&&(l.i=S(mg,"borderColor",qE,l.i)),fF!==l.n&&(l.n=S(i6,"borderColor",fF,l.n)),l},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),OA})()},NHq=(A)=>{let q=N9(),g=UD(),[E,_]=Qq("Requesting one-time sign-in code"),[F,j]=Qq(),[K,$]=Qq(),[U,Z]=Qq(0),G=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827"],O=new AbortController,Q=!1,Y=(L)=>{if(Q)return;if(Q=!0,O.abort(),A.onExit(L),A.destroyOnExit!==!1)q.destroy()},H=(L)=>{let X=F()?.verificationUrl;if(L.name==="return"&&X&&A.options.canOpenUrl!==!1){A.options.onOpenUrl(X).catch(()=>{});return}let W=L.name==="escape"||L.sequence==="\x1B",T=L.ctrl&&L.name.toLowerCase()==="c"||L.sequence==="\x03";if(W||T)Y(!1)},I=(L)=>{if(L==="\x1B"||L==="\x03")return Y(!1),!0;return!1};q.prependInputHandler(I),q.keyInput.on("keypress",H),N_(()=>{q.removeInputHandler(I),q.keyInput.off("keypress",H)});let M=setInterval(()=>Z((L)=>L+1),60);N_(()=>clearInterval(M)),N_(()=>O.abort()),A.options.authenticate({onDetails:j,onStatus:_,signal:O.signal}).then(()=>{_("Connected to your SimpleCloud account"),setTimeout(()=>Y(!0),350)}).catch((L)=>{if(O.signal.aborted)return;$(L instanceof Error?L.message:String(L))});let N=E6(()=>Math.max(44,Math.min(68,g().width-6)));return(()=>{var L=t("box"),X=t("box"),W=t("box"),T=t("box"),V=t("box"),R=t("text");return KA(L,X),S(L,"width","100%"),S(L,"height","100%"),S(L,"flexDirection","column"),KA(X,W),S(X,"flexGrow",1),S(X,"flexDirection","column"),S(X,"alignItems","center"),S(X,"justifyContent","center"),S(X,"padding",3),KA(W,T),KA(W,V),S(W,"flexDirection","column"),S(W,"border",!0),S(W,"borderStyle","rounded"),S(T,"height",4),S(T,"flexDirection","row"),S(T,"alignItems","center"),S(T,"paddingTop",1),S(T,"paddingBottom",1),S(T,"paddingLeft",3),S(T,"paddingRight",3),S(T,"border",["bottom"]),CA(T,VA(Jp,{})),KA(V,R),S(V,"flexDirection","column"),S(V,"paddingTop",2),S(V,"paddingBottom",2),S(V,"paddingLeft",3),S(V,"paddingRight",3),CA(V,VA(E_,{get when(){return!K()},get fallback(){return(()=>{var z=t("box"),B=t("box"),C=t("text");return KA(z,B),S(z,"flexDirection","column"),CA(z,VA(h1,{title:"Sign-in could not start",description:"Nothing was installed. Return to the terminal and try again."}),B),KA(B,C),S(B,"border",!0),S(B,"borderStyle","rounded"),S(B,"padding",2),S(C,"wrapMode","word"),CA(C,K),lq((y)=>{var{red:b,surfaceRaised:n,red:AA}=EA;return b!==y.e&&(y.e=S(B,"borderColor",b,y.e)),n!==y.t&&(y.t=S(B,"backgroundColor",n,y.t)),AA!==y.a&&(y.a=S(C,"fg",AA,y.a)),y},{e:void 0,t:void 0,a:void 0}),z})()},get children(){return VA(E_,{get when(){return F()},get fallback(){return(()=>{var z=t("box"),B=t("box"),C=t("text");return KA(z,B),S(z,"flexDirection","column"),CA(z,VA(h1,{title:"Sign in to SimpleCloud",description:"Preparing a secure one-time code for this terminal."}),B),KA(B,C),S(B,"height",3),S(B,"flexDirection","row"),S(B,"alignItems","center"),S(B,"paddingLeft",2),S(B,"paddingRight",2),CA(C,()=>G[Math.floor(U()/2)%G.length]),CA(B,VA(Hp,{get text(){return E()},get frame(){return U()},marginLeft:1,sweepFrames:34,pauseFrames:4,strength:0.72}),null),lq((y)=>{var{surfaceRaised:b,brand:n}=EA;return b!==y.e&&(y.e=S(B,"backgroundColor",b,y.e)),n!==y.t&&(y.t=S(C,"fg",n,y.t)),y},{e:void 0,t:void 0}),z})()},children:(z)=>(()=>{var B=t("box"),C=t("box"),y=t("text"),b=t("text"),n=t("strong"),AA=t("text"),s=t("text"),$A=t("box"),TA=t("box"),iA=t("text"),_6=t("text"),Ig=Ng(" min");return KA(B,C),KA(B,AA),KA(B,s),KA(B,$A),S(B,"flexDirection","column"),CA(B,VA(h1,{get title(){return z().browserOpened?"Finish signing in":"Sign in from any browser"},get description(){return z().browserOpened?"We opened the authorization page. Use the code below if the browser asks for it.":"Open the address below, then enter the one-time code."}}),C),KA(C,y),KA(C,b),S(C,"height",3),S(C,"flexDirection","row"),S(C,"alignItems","center"),S(C,"justifyContent","space-between"),S(C,"paddingLeft",2),S(C,"paddingRight",2),KA(y,Ng("Code")),KA(b,n),CA(n,()=>z().userCode),KA(AA,Ng("Open")),S(AA,"marginTop",2),S(s,"wrapMode","word"),CA(s,()=>z().verificationUrl),KA($A,TA),KA($A,_6),S($A,"flexDirection","row"),S($A,"alignItems","center"),S($A,"marginTop",2),KA(TA,iA),S(TA,"flexDirection","row"),S(TA,"alignItems","center"),S(TA,"flexGrow",1),S(iA,"width",3),CA(iA,()=>G[Math.floor(U()/2)%G.length]),CA(TA,VA(Hp,{get text(){return E()},get frame(){return U()},sweepFrames:34,pauseFrames:4,strength:0.72}),null),KA(_6,Ig),S(_6,"marginLeft",2),CA(_6,()=>Math.max(1,Math.floor(z().expiresIn/60)),Ig),lq((cq)=>{var{surfaceRaised:nF,muted:$F,text:d1,muted:eq,cyan:Nq,brand:Vg,subtle:kj}=EA;return nF!==cq.e&&(cq.e=S(C,"backgroundColor",nF,cq.e)),$F!==cq.t&&(cq.t=S(y,"fg",$F,cq.t)),d1!==cq.a&&(cq.a=S(b,"fg",d1,cq.a)),eq!==cq.o&&(cq.o=S(AA,"fg",eq,cq.o)),Nq!==cq.i&&(cq.i=S(s,"fg",Nq,cq.i)),Vg!==cq.n&&(cq.n=S(iA,"fg",Vg,cq.n)),kj!==cq.s&&(cq.s=S(_6,"fg",kj,cq.s)),cq},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),B})()})}}),R),S(R,"marginTop",2),CA(R,(()=>{var z=AE(()=>!!K());return()=>z()?"Esc return to terminal":AE(()=>!!F())()?A.options.canOpenUrl===!1?"Open the link manually \xB7 Esc cancel":"Enter open link \xB7 Esc cancel":"Esc cancel"})()),lq((z)=>{var B=EA.background,C=N(),y=EA.surface,b=K()?EA.red:EA.border,n=EA.border,AA=EA.subtle;return B!==z.e&&(z.e=S(L,"backgroundColor",B,z.e)),C!==z.t&&(z.t=S(W,"width",C,z.t)),y!==z.a&&(z.a=S(W,"backgroundColor",y,z.a)),b!==z.o&&(z.o=S(W,"borderColor",b,z.o)),n!==z.i&&(z.i=S(T,"borderColor",n,z.i)),AA!==z.n&&(z.n=S(R,"fg",AA,z.n)),z},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),L})()},VHq=(A)=>{let q=N9(),g=UD(),[E,_]=Qq(A.options.auth?"auth":"loading"),[F,j]=Qq(),[K,$]=Qq(),[U,Z]=Qq(!1),G=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827"],[O,Q]=Qq(0),Y=!1,H,I=(T)=>{A.onExit(T)},M=()=>{A.onExit(null),q.destroy()},N=(T=!1)=>{if(Y)return;if(Y=!0,!T)_("loading"),H=setTimeout(()=>Z(!0),300);A.options.loadSetup().then((V)=>{if(H)clearTimeout(H);j(V),_("setup")}).catch((V)=>{if(H)clearTimeout(H);$(V instanceof Error?V.message:String(V)),_("error")})};if(!A.options.auth)N();let L=(T)=>{if((T==="\x1B"||T==="\x03")&&(E()==="loading"||E()==="error"))return M(),!0;return!1};q.prependInputHandler(L),N_(()=>q.removeInputHandler(L));let X=setInterval(()=>Q((T)=>(T+1)%G.length),100);N_(()=>clearInterval(X)),N_(()=>{if(H)clearTimeout(H)});let W=E6(()=>Math.max(44,Math.min(68,g().width-6)));return VA(jD,{get children(){return[VA(JE,{get when(){return AE(()=>E()==="auth")()&&A.options.auth},get children(){return VA(E_,{get when(){return A.options.auth},get fallback(){return(()=>{var T=t("box");return S(T,"height",0),T})()},children:(T)=>VA(NHq,{get options(){return T()},destroyOnExit:!1,onExit:(V)=>{if(V)N(!0);else M()}})})}}),VA(JE,{get when(){return AE(()=>E()==="setup")()&&F()},get children(){return VA(E_,{get when(){return F()},get fallback(){return(()=>{var T=t("box");return S(T,"height",0),T})()},children:(T)=>VA(LHq,{get options(){return T()},onExit:I})})}}),VA(JE,{get when(){return E()==="loading"},get children(){var T=t("box");return S(T,"width","100%"),S(T,"height","100%"),S(T,"position","relative"),CA(T,VA(E_,{get when(){return U()},get fallback(){return(()=>{var V=t("box");return S(V,"height",0),V})()},get children(){var V=t("box"),R=t("text"),z=Ng(" Preparing setup"),B=t("text");return KA(V,R),KA(V,B),S(V,"position","absolute"),S(V,"left",0),S(V,"right",0),S(V,"bottom",0),S(V,"width","100%"),S(V,"height",3),S(V,"flexDirection","row"),S(V,"alignItems","center"),S(V,"paddingLeft",2),S(V,"paddingRight",2),S(V,"border",["top"]),KA(R,z),CA(R,()=>G[O()],z),KA(B,Ng("Esc cancel")),S(B,"marginLeft","auto"),lq((C)=>{var{surface:y,border:b,brand:n,subtle:AA}=EA;return y!==C.e&&(C.e=S(V,"backgroundColor",y,C.e)),b!==C.t&&(C.t=S(V,"borderColor",b,C.t)),n!==C.a&&(C.a=S(R,"fg",n,C.a)),AA!==C.o&&(C.o=S(B,"fg",AA,C.o)),C},{e:void 0,t:void 0,a:void 0,o:void 0}),V}})),lq((V)=>S(T,"backgroundColor",EA.background,V)),T}}),VA(JE,{get when(){return E()==="error"},get children(){var T=t("box"),V=t("box"),R=t("box"),z=t("box"),B=t("box"),C=t("text"),y=t("text");return KA(T,V),KA(T,y),S(T,"width","100%"),S(T,"height","100%"),S(T,"flexDirection","column"),S(T,"alignItems","center"),S(T,"justifyContent","center"),S(T,"padding",3),KA(V,R),KA(V,z),S(V,"flexDirection","column"),S(V,"border",!0),S(V,"borderStyle","rounded"),S(R,"height",4),S(R,"flexDirection","row"),S(R,"alignItems","center"),S(R,"paddingTop",1),S(R,"paddingBottom",1),S(R,"paddingLeft",3),S(R,"paddingRight",3),S(R,"border",["bottom"]),CA(R,VA(Jp,{})),KA(z,B),S(z,"flexDirection","column"),S(z,"paddingTop",2),S(z,"paddingBottom",2),S(z,"paddingLeft",3),S(z,"paddingRight",3),CA(z,VA(h1,{title:"Setup could not continue",description:"Nothing was installed on this machine."}),B),KA(B,C),S(B,"border",!0),S(B,"borderStyle","rounded"),S(B,"padding",2),S(C,"wrapMode","word"),CA(C,K),KA(y,Ng("Esc cancel")),S(y,"marginTop",1),lq((b)=>{var n=EA.background,AA=W(),s=EA.surface,$A=EA.red,TA=EA.border,iA=EA.surfaceRaised,_6=EA.red,Ig=EA.red,cq=EA.subtle;return n!==b.e&&(b.e=S(T,"backgroundColor",n,b.e)),AA!==b.t&&(b.t=S(V,"width",AA,b.t)),s!==b.a&&(b.a=S(V,"backgroundColor",s,b.a)),$A!==b.o&&(b.o=S(V,"borderColor",$A,b.o)),TA!==b.i&&(b.i=S(R,"borderColor",TA,b.i)),iA!==b.n&&(b.n=S(B,"backgroundColor",iA,b.n)),_6!==b.s&&(b.s=S(B,"borderColor",_6,b.s)),Ig!==b.h&&(b.h=S(C,"fg",Ig,b.h)),cq!==b.r&&(b.r=S(y,"fg",cq,b.r)),b},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),T}})]}})},K5A=async(A)=>{let q=()=>{},g=new Promise((F)=>{q=F}),E=j5A(()=>VA(VHq,{options:A,onExit:q}),{backgroundColor:EA.background,exitOnCtrlC:!1,screenMode:"alternate-screen",consoleMode:"disabled",useMouse:!1,targetFps:30}),_=await g;return await E,_};var $5A=D(async()=>{P9();un();await EX([h$(),h$(),h$(),h$(),h$(),h$(),h$(),h$(),h$()]);EA={background:"#1e1e1e",surface:"#282828",surfaceRaised:"#2b2b2b",border:"#383838",borderStrong:"#4a4a4a",text:"#ebebeb",muted:"#9e9e9e",subtle:"#707070",logo:"#4ba6dd",brand:"#306ce2",dither:"#244f87",cyan:"#0fa2ec",green:"#28d26e",amber:"#f59e0b",red:"#ea3939"}});import*as Z5A from"fs/promises";import*as GD from"os";import*as LZ from"path";var U5A="host-1",THq="https://dash.simplecloud.app",Ip=()=>Math.floor(GD.totalmem()/1048576*0.8),WHq=async(A)=>{let q=LZ.resolve(A),g=await Z5A.readdir(q,{withFileTypes:!0}),E=LZ.dirname(q),_=await mn(q);return{directory:q,parent:E===q?void 0:E,suggestedInstallDir:_,usesCurrentDirectory:_===q,entries:g.filter((F)=>F.isDirectory()).sort((F,j)=>F.name.localeCompare(j.name,void 0,{sensitivity:"base"})).map((F)=>({name:F.name,path:LZ.join(q,F.name)}))}},G5A=(A)=>{let q=iH(A);if(q===null)return"Use a value like 80%, 16gb, 4096mb, or 4096";if(q<512)return"Minimum memory is 512 MB";return},RHq=(A)=>{let q=G5A(A);if(q)throw Error(q);let g=iH(A);if(g===null)throw Error("Invalid memory value");return g},DHq=async(A)=>{if(A instanceof Error)return A;if(A instanceof Response){let q="";try{let E=(await A.text()).trim();if(E)try{let _=JSON.parse(E);q=_.message??_.detail??_.error??E}catch{q=E}}catch{}let g=`${A.status} ${A.statusText}`.trim();return Error(`SimpleCloud API request failed (${g})${q?`: ${q.slice(0,300)}`:""}`)}return Error(String(A))},wHq=(A)=>(A??[]).flatMap((q)=>q.split(",")).map((q)=>{let g=q.trim(),E=Math.max(g.indexOf(":"),g.indexOf("@"));return E<0?{id:g}:{id:g.slice(0,E),version:g.slice(E+1)}}).filter((q)=>q.id.length>0),SHq=(A)=>A.flatMap((q)=>{let g=oG(q);return g?[{id:q.id,name:q.name,slug:q.slug,networkId:g}]:[]}),BHq=(A,q)=>{if(!A)return;let g=q.find((E)=>E.id===A||E.slug===A||E.networkId===A);if(!g)throw new bA(`Network "${A}" was not found`);return g},zHq=async(A,q,g)=>{if(g.update("registration",{state:"running",detail:A.newNetwork?"Creating":"Connecting"}),A.newNetwork){let _=await RM(A.newNetwork.name,A.newNetwork.slug),F=oG(_);if(!F)throw Error("The new network did not return a network ID");return g.update("registration",{state:"done",detail:`Ready \xB7 ${_.name}`,progress:void 0}),{orgId:_.id,orgName:_.name,orgSlug:_.slug,networkId:F}}let E=q.find((_)=>_.id===A.networkId);if(!E)throw Error("Select a network before continuing");return g.update("registration",{state:"done",detail:`Ready \xB7 ${E.name}`,progress:void 0}),{orgId:E.id,orgName:E.name,orgSlug:E.slug,networkId:E.networkId}},CHq=async(A,q,g,E,_)=>{let F=u0({networkId:A,networkSecret:q,baseURL:g}),j=await sU(($)=>F.v0.serverhostsRegisterCreate({host_name:E,maximum_memory:_},{signal:$}),{operation:"Registering the serverhost"});if(!j.ok)throw j;let K=j.data?.serverhost_id;if(!K)throw Error("The controller did not return a serverhost ID");return K},xHq=async(A,q,g,E)=>{let _=u0({networkId:A,networkSecret:q,baseURL:g}),F=await sU((K)=>_.v0.networksSecretsCreate({name:`serverhost-${E}`},{signal:K}),{operation:"Creating the serverhost secret"}),j=F.data;if(!F.ok)throw F;if(!j?.secret)throw Error("The controller did not return a network secret");return j.secret},hHq=async(A,q,g)=>{let E=await h.runPromise(O$().pipe(h.provide(oA))),_=(A.orgSlug||LZ.basename(g)||"default").trim()||"default",F=Object.keys(E).length===0?"default":_,j=2;while(E[F])F=`${_}-${j}`,j+=1;return await h.runPromise(bY(F,{orgId:A.orgId,orgName:A.orgName,orgSlug:A.orgSlug,baseURL:q,installationDir:g}).pipe(h.provide(oA))),await h.runPromise(hY(F).pipe(h.provide(oA))),F},bHq=async(A,q,g,E)=>{if(A.length===0)return;E.update("dependencies",{state:"running",detail:`Installing ${A.map((F)=>F.id).join(", ")}`});let _=async()=>{for(let F of A)if(!await CH(F.id,{version:F.version,yes:!0,embedded:!0,silent:!0,nonInteractiveSudo:nR(q)}))throw Error(`Unknown setup installable: ${F.id}`);if(A.some((F)=>F.id.toLowerCase()==="java")&&!await UP())throw Error("Java 21+ could not be verified after installation")};if(nR(q)){if(E.update("dependencies",{state:"running",detail:"Waiting for installation approval"}),!await g.suspend(zH))throw Error("Administrator permission was not granted")}await _(),E.update("dependencies",{state:"done",detail:"Dependencies installed"})},kHq=()=>{return{signal:new AbortController().signal,suspend:(q)=>q()}},yHq=async(A)=>{let q=process.stdout.write,g=process.stderr.write;process.stdout.write=()=>!0,process.stderr.write=()=>!0;try{return await A()}finally{process.stdout.write=q,process.stderr.write=g}},vHq=(A)=>{let q=new Map;return A.subscribe(({tasks:g})=>{for(let E of g){let _=`${E.state}:${E.detail}`;if((E.state==="running"||E.state==="done"||E.state==="error")&&q.get(E.id)!==_){q.set(E.id,_);let F=E.state==="done"?J.green("\u2713"):E.state==="error"?J.red("\xD7"):J.cyan("\u25C6");console.log(`${F} ${E.label}: ${E.detail}`)}}})},O5A=async(A={})=>{let q=Xq(),g=J1(),E=await $XA();if(q==="windows")throw new bA("Automated serverhost setup is not supported on Windows","Use WSL or install the serverhost on Linux or macOS.");let _=process.stdin.isTTY===!0&&process.stdout.isTTY===!0,F=TNA(),j=new AbortController,K=!1,$,U=()=>{K=!1;let X=WNA(q,g,F,j.signal);return X.catch(()=>{if($===X)K=!0}),X};$=U();let Z=()=>{if(K)$=U();return $},G=SNA(q,F),O=await vG(),Q={canOpenUrl:E,authenticate:async({onDetails:X,onStatus:W,signal:T})=>{if(!await g1({skipExistingCheck:!0,silent:!0,noBrowser:!0,code:A.code,onDeviceAuthorization:async(R)=>{let z=!1;if(!A.noBrowser&&E)try{await IH(R.verificationUrl),z=!0}catch{}X({...R,browserOpened:z})},onStatus:W,signal:T}))throw new kY("Login cancelled")},onOpenUrl:async(X)=>{await IH(X)}},Y=async()=>{let X=await h.runPromise(xY().pipe(h.provide(oA))),W=eY(),[T,V]=await Promise.all([W,G]),R=SHq(T),z=BHq(A.network,R),B=wHq(A.install),y=B.some((eq)=>eq.id.toLowerCase()==="java")?{...V,java:!0,missing:V.missing.filter((eq)=>!eq.startsWith("Java"))}:V,b=new rn(q,y,F),n=A.autoInstallDeps??(A.yes?!0:void 0),AA=process.cwd(),s=A.installDir?.trim()||void 0,$A=s||await mn(AA),TA=LZ.join(GD.homedir(),"simplecloud"),iA,_6,Ig=(eq,Nq)=>{if(!eq)return b.complete(!1,Nq);if(!iA){let Vg=b.complete(!0,Nq);iA=Vg,Vg.catch(()=>{if(iA===Vg)iA=void 0})}return iA},cq=(eq)=>{if(!_6){let Nq=bHq(B,q,eq,F);_6=Nq,Nq.catch(()=>{if(_6===Nq)_6=void 0})}return _6},nF=(eq,Nq)=>{if(b.requestBackgroundInstall(),y.missing.length>0&&!eq)return;Ig(!0,Nq).then(()=>cq(Nq)).catch((Vg)=>{F.update("dependencies",{state:"error",detail:Vg instanceof Error?Vg.message:"Dependency installation failed"})})},$F=async(eq,Nq)=>{let Vg,kj=!1,W4=[];F.update("files",{state:"waiting",detail:"Ready"}),F.update("start",{state:eq.start?"waiting":"skipped",detail:eq.start?"After installation":""}),F.update("services",{state:A.service?.length?"waiting":"skipped",detail:A.service?.length?"After installation":"Not requested"});try{let[kE,n1]=await Promise.all([zHq(eq,R,F),Z(),(async()=>{await Ig(eq.autoInstallDeps,Nq),await cq(Nq)})()]),hp=RHq(eq.maxMemory),W9=await cn(eq.installDir);if(F.update("registration",{state:"running",detail:"Registering host",progress:void 0}),_)await new Promise((RZ)=>setTimeout(RZ,34));let nq=await c0(),f1=await CHq(kE.networkId,nq,X,eq.hostName,hp),V6=await xHq(kE.networkId,nq,X,f1);if(await cR(n1.stagingDir,{networkId:kE.networkId,networkSecret:V6,serverhostId:f1}),F.update("registration",{state:"done",detail:`Connected \xB7 ${kE.orgName}`}),A.service?.length){F.update("services",{state:"running",detail:"Preparing"});let RZ={signal:Nq.signal,nonInteractiveSudo:!0,templateVariables:{networkSlug:kE.orgSlug},onStatus:(hK)=>{F.update("services",{state:"running",detail:hK})},onSystemInstallRequired:async(hK)=>{if(q!=="linux"||typeof process.getuid==="function"&&process.getuid()===0||kj)return;if(F.update("services",{state:"running",detail:`Waiting for ${hK} permission`}),kj=await Nq.suspend(async()=>{return console.log(`
|
|
560
|
+
`)),lq((mA)=>S(YA,"fg",EA.dither,mA)),l}}),bq),KA(bq,mg),S(bq,"flexGrow",1),S(bq,"flexDirection","column"),S(bq,"alignItems","center"),S(bq,"justifyContent","center"),S(bq,"padding",3),S(bq,"zIndex",1),KA(mg,i6),KA(mg,vj),S(mg,"minHeight",18),S(mg,"flexDirection","column"),S(mg,"border",!0),S(mg,"borderStyle","rounded"),S(mg,"zIndex",2),S(i6,"height",4),S(i6,"flexDirection","row"),S(i6,"alignItems","center"),S(i6,"paddingTop",1),S(i6,"paddingBottom",1),S(i6,"paddingLeft",3),S(i6,"paddingRight",3),S(i6,"border",["bottom"]),CA(i6,VA(Jp,{})),S(vj,"flexDirection","column"),S(vj,"position","relative"),S(vj,"paddingTop",2),S(vj,"paddingBottom",2),S(vj,"paddingLeft",3),S(vj,"paddingRight",3),CA(vj,VA(jD,{get children(){return[VA(JE,{get when(){return nq()==="form"},get children(){return VA(jD,{get children(){return[VA(JE,{get when(){return V6()==="network"},get children(){return VA(lP,{get focused(){return AE(()=>nq()==="form")()&&V6()==="network"},title:"Where should this serverhost live?",description:"Choose an existing network or create a fresh one.",get options(){return[..._.networks.map((l)=>({name:l.name,description:l.slug,value:l.id})),{name:"Create a new network",description:"Start with an empty SimpleCloud network",value:"__create__"}]},showDescriptions:!1,onChoose:(l)=>{if(l==="__create__"){yj("network-name");return}R(""),T(l),kp()}})}}),VA(JE,{get when(){return V6()==="network-name"},get children(){return VA(ZD,{get focused(){return AE(()=>nq()==="form")()&&V6()==="network-name"},title:"Give your network a name",description:"This is the name you will see in the dashboard.",placeholder:"My Minecraft Network",get error(){return Q()},onConfirm:(l)=>{let YA=l.trim();if(!YA){Y("Network name cannot be empty");return}if(YA.length>100){Y("Keep the name under 100 characters");return}R(YA),B(IHq(YA)),yj("network-slug")}})}}),VA(JE,{get when(){return V6()==="network-slug"},get children(){return VA(ZD,{get focused(){return AE(()=>nq()==="form")()&&V6()==="network-slug"},title:"Choose its dashboard address",description:"Lowercase letters, numbers, and hyphens only.",get initialValue(){return z()},get error(){return Q()},onConfirm:(l)=>{let YA=l.trim();if(!/^[a-z0-9-]+$/.test(YA)||YA.length>50){Y("Use up to 50 lowercase letters, numbers, or hyphens");return}B(YA),kp()}})}}),VA(JE,{get when(){return V6()==="dependencies"},get children(){return VA(lP,{get focused(){return AE(()=>nq()==="form")()&&V6()==="dependencies"},get title(){return`Install ${_.missingDependencies.join(" and ")}?`},description:"Setup can prepare missing dependencies while you finish the remaining details.",options:[{name:"Install in the background",description:"Recommended \xB7 setup handles the required packages",value:"yes"},{name:"I\u2019ll install them myself",description:"Finish setup after the dependencies are available",value:"no"}],onChoose:(l)=>{let YA=l==="yes";if(cq(YA),YA)VD(!0);NRA()}})}}),VA(JE,{get when(){return V6()==="host"},get children(){return VA(ZD,{get focused(){return AE(()=>nq()==="form")()&&V6()==="host"},title:"What should we call this machine?",description:"Use a short, recognizable name. You can change it later.",get initialValue(){return C()},get error(){return Q()},onConfirm:(l)=>{let YA=l.trim();if(!YA){Y("Serverhost name cannot be empty");return}y(YA),VRA()}})}}),VA(JE,{get when(){return V6()==="memory"},get children(){return VA(ZD,{get focused(){return AE(()=>nq()==="form")()&&V6()==="memory"},title:"How much memory can SimpleCloud use?",description:"Leave enough room for the operating system and anything else on this machine.",get initialValue(){return b()},placeholder:"80%, 16gb, or 4096mb",get error(){return Q()},onConfirm:(l)=>{let YA=A.options.validateMemory(l);if(YA){Y(YA);return}n(l.trim()),AX()}})}}),VA(JE,{get when(){return V6()==="location"},get children(){var l=t("box");return S(l,"flexDirection","column"),CA(l,VA(lP,{get focused(){return AE(()=>nq()==="form")()&&V6()==="location"},title:"Where should SimpleCloud live?",description:"Choose a new or empty folder.",get options(){return[zRA(),{name:"Home folder",description:"~/simplecloud",value:_.homeInstallDir},{name:"Choose another folder\u2026",description:"Browse folders",value:"__browse__"}]},onHighlight:(YA)=>{TA(YA)},onChoose:vp}),null),CA(l,VA(E_,{get when(){return Nq()},get fallback(){return(()=>{var YA=t("box");return S(YA,"height",0),YA})()},get children(){var YA=t("text");return S(YA,"marginTop",1),S(YA,"wrapMode","word"),CA(YA,Nq),lq((mA)=>S(YA,"fg",EA.red,mA)),YA}}),null),l}}),VA(JE,{get when(){return V6()==="directory-browser"},get children(){return VA(E_,{get when(){return d1()},get fallback(){return(()=>{var l=t("box");return S(l,"flexDirection","column"),CA(l,VA(h1,{title:"Choose a folder",description:"Opening the folder browser\u2026"}),null),CA(l,VA(E_,{get when(){return Nq()},get fallback(){return(()=>{var YA=t("text"),mA=Ng(" Opening folder browser");return KA(YA,mA),CA(YA,()=>E[L()%E.length],mA),lq((Sq)=>S(YA,"fg",EA.brand,Sq)),YA})()},get children(){var YA=t("text");return CA(YA,Nq),lq((mA)=>S(YA,"fg",EA.red,mA)),YA}}),null),l})()},children:(l)=>(()=>{var YA=t("box");return S(YA,"flexDirection","column"),CA(YA,VA(lP,{get focused(){return AE(()=>nq()==="form"&&V6()==="directory-browser")()&&!kj()},title:"Choose an installation folder",get description(){return l().directory},showDescriptions:!1,rows:6,get options(){return[{name:l().usesCurrentDirectory?"Select this folder":`Create ${MHq(l().suggestedInstallDir)}/ here`,description:l().usesCurrentDirectory?"Install directly in this empty folder":"Create a new SimpleCloud folder here",value:"__suggested__"},...l().parent?[{name:"../",description:"Go up one folder",value:l().parent??""}]:[],...l().entries.map((mA)=>({name:`${mA.name}/`,description:"Open folder",value:mA.path}))]},get hint(){return AE(()=>!!kj())()?`${E[L()%E.length]} Opening folder`:"\u2191\u2193 navigate \xB7 Enter choose \xB7 Backspace/\u2190 up \xB7 Esc back"},onHighlight:_6,onChoose:mp}),null),CA(YA,VA(E_,{get when(){return Nq()},get fallback(){return(()=>{var mA=t("box");return S(mA,"height",0),mA})()},get children(){var mA=t("text");return S(mA,"marginTop",1),CA(mA,Nq),lq((Sq)=>S(mA,"fg",EA.red,Sq)),mA}}),null),YA})()})}}),VA(JE,{get when(){return V6()==="start"},get children(){return VA(lP,{get focused(){return AE(()=>nq()==="form")()&&V6()==="start"},title:"Start SimpleCloud right away?",description:"You can also start it later with sc start.",options:[{name:"Start SimpleCloud",description:"Recommended \xB7 bring this serverhost online now",value:"yes"},{name:"Finish without starting",description:"Install and register only",value:"no"}],onChoose:(l)=>{$F(l==="yes"),qX()}})}})]}})}}),VA(JE,{get when(){return nq()==="installing"},get children(){var l=t("box"),YA=t("box"),mA=t("box"),Sq=t("box"),yE=t("text"),qE=t("box"),fF=t("text");return KA(l,YA),KA(l,qE),S(l,"flexDirection","column"),S(l,"minHeight",12),KA(YA,mA),S(YA,"flexGrow",1),S(YA,"alignItems","center"),S(YA,"justifyContent","center"),KA(mA,Sq),S(mA,"flexDirection","row"),S(mA,"alignItems","center"),S(mA,"justifyContent","space-between"),S(mA,"width","100%"),S(mA,"height",3),S(mA,"paddingLeft",2),S(mA,"paddingRight",2),KA(Sq,yE),S(Sq,"flexDirection","row"),S(Sq,"alignItems","center"),S(Sq,"flexGrow",1),S(Sq,"height",1),CA(yE,()=>E[L()%E.length]),CA(Sq,VA(Hp,{get text(){return wRA()},get frame(){return L()},marginLeft:1}),null),CA(mA,VA(E_,{get when(){return dp()>=58},get fallback(){return(()=>{var p6=t("box");return S(p6,"height",0),p6})()},get children(){var p6=t("box"),iF=t("text");return KA(p6,iF),S(p6,"width",28),S(p6,"flexShrink",0),S(p6,"justifyContent","flex-end"),S(p6,"marginLeft",2),S(iF,"width",28),S(iF,"fg","#626262"),lq((bK)=>S(iF,"content",BRA(),bK)),p6}}),null),KA(qE,fF),S(qE,"height",2),S(qE,"flexDirection","row"),S(qE,"alignItems","flex-end"),S(qE,"paddingLeft",2),KA(fF,Ng("Esc cancel")),S(fF,"fg","#595959"),lq((p6)=>{var{surfaceRaised:iF,brand:bK}=EA;return iF!==p6.e&&(p6.e=S(mA,"backgroundColor",iF,p6.e)),bK!==p6.t&&(p6.t=S(yE,"fg",bK,p6.t)),p6},{e:void 0,t:void 0}),l}}),VA(JE,{get when(){return nq()==="error"},get children(){return[VA(h1,{get title(){return fp().title},get description(){return fp().description}}),(()=>{var l=t("box"),YA=t("text");return KA(l,YA),S(l,"border",!0),S(l,"borderStyle","rounded"),S(l,"padding",2),S(YA,"wrapMode","word"),CA(YA,F),lq((mA)=>{var{red:Sq,surfaceRaised:yE,red:qE}=EA;return Sq!==mA.e&&(mA.e=S(l,"borderColor",Sq,mA.e)),yE!==mA.t&&(mA.t=S(l,"backgroundColor",yE,mA.t)),qE!==mA.a&&(mA.a=S(YA,"fg",qE,mA.a)),mA},{e:void 0,t:void 0,a:void 0}),l})(),(()=>{var l=t("text");return KA(l,Ng("Enter continue \xB7 Esc return to the terminal")),S(l,"marginTop",2),lq((YA)=>S(l,"fg",EA.muted,YA)),l})()]}}),VA(JE,{get when(){return nq()==="done"},get children(){var l=t("box"),YA=t("box"),mA=t("text"),Sq=t("text"),yE=t("strong"),qE=Ng(" is ready"),fF=t("text"),p6=t("box"),iF=t("text"),bK=t("text"),gX=t("text");return KA(l,YA),KA(l,fF),KA(l,p6),KA(l,gX),S(l,"flexGrow",1),S(l,"width","100%"),S(l,"flexDirection","column"),S(l,"justifyContent","center"),S(l,"zIndex",2),KA(YA,mA),KA(YA,Sq),S(YA,"flexDirection","row"),S(YA,"alignItems","center"),KA(mA,Ng("\u2713")),KA(Sq,yE),S(Sq,"marginLeft",1),KA(yE,qE),CA(yE,()=>U()?.hostName,qE),S(fF,"marginTop",1),S(fF,"marginLeft",2),CA(fF,(()=>{var uq=AE(()=>!!U()?.started);return()=>uq()?`Running on ${U()?.networkName}`:`Connected to ${U()?.networkName} \xB7 Ready to start`})()),KA(p6,iF),KA(p6,bK),S(p6,"flexDirection","row"),S(p6,"marginTop",3),KA(iF,Ng("Installed")),S(iF,"width",12),S(bK,"flexGrow",1),S(bK,"wrapMode","word"),CA(bK,xRA),KA(gX,Ng("Return to the dashboard to manage your network.")),S(gX,"marginTop",3),CA(l,VA(E_,{get when(){return A.options.canOpenDashboard!==!1},get fallback(){return(()=>{var uq=t("box"),vE=t("text"),mj=t("text");return KA(uq,vE),KA(uq,mj),S(uq,"flexDirection","column"),KA(vE,Ng("dash.simplecloud.app")),S(vE,"marginTop",1),KA(mj,Ng("Esc close setup")),S(mj,"marginTop",2),lq((UF)=>{var{text:cj,subtle:k6}=EA;return cj!==UF.e&&(UF.e=S(vE,"fg",cj,UF.e)),k6!==UF.t&&(UF.t=S(mj,"fg",k6,UF.t)),UF},{e:void 0,t:void 0}),uq})()},get children(){var uq=t("box"),vE=t("box"),mj=t("text"),UF=t("strong"),cj=t("text");return KA(uq,vE),KA(uq,cj),S(uq,"flexDirection","column"),KA(vE,mj),S(vE,"width",22),S(vE,"height",3),S(vE,"alignItems","center"),S(vE,"justifyContent","center"),S(vE,"marginTop",1),KA(mj,UF),KA(UF,Ng("Open dashboard")),CA(uq,VA(E_,{get when(){return K()},get fallback(){return(()=>{var k6=t("box");return S(k6,"height",0),k6})()},get children(){var k6=t("text");return S(k6,"marginTop",1),CA(k6,K),lq((i1)=>S(k6,"fg",EA.red,i1)),k6}}),cj),KA(cj,Ng("Enter open dashboard \xB7 Esc close setup")),S(cj,"marginTop",1),lq((k6)=>{var{brand:i1,text:ip,subtle:pp}=EA;return i1!==k6.e&&(k6.e=S(vE,"backgroundColor",i1,k6.e)),ip!==k6.t&&(k6.t=S(mj,"fg",ip,k6.t)),pp!==k6.a&&(k6.a=S(cj,"fg",pp,k6.a)),k6},{e:void 0,t:void 0,a:void 0}),uq}}),null),lq((uq)=>{var{green:vE,text:mj,muted:UF,muted:cj,text:k6,muted:i1}=EA;return vE!==uq.e&&(uq.e=S(mA,"fg",vE,uq.e)),mj!==uq.t&&(uq.t=S(Sq,"fg",mj,uq.t)),UF!==uq.a&&(uq.a=S(fF,"fg",UF,uq.a)),cj!==uq.o&&(uq.o=S(iF,"fg",cj,uq.o)),k6!==uq.i&&(uq.i=S(bK,"fg",k6,uq.i)),i1!==uq.n&&(uq.n=S(gX,"fg",i1,uq.n)),uq},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),l}})]}})),CA(bq,VA(E_,{get when(){return AE(()=>!!(nq()==="form"&&y$()))()?y$():void 0},get fallback(){return(()=>{var l=t("box");return S(l,"height",0),l})()},get children(){var l=t("box"),YA=t("text"),mA=Ng(" ");return KA(l,YA),S(l,"position","absolute"),S(l,"left",0),S(l,"right",0),S(l,"bottom",0),S(l,"width","100%"),S(l,"height",1),S(l,"flexDirection","row"),S(l,"paddingRight",2),S(l,"alignItems","center"),S(l,"zIndex",3),KA(YA,mA),S(YA,"marginLeft","auto"),CA(YA,(()=>{var Sq=AE(()=>y$()?.state==="running");return()=>Sq()?E[L()%E.length]:PHq(y$()?.state??"waiting")})(),mA),CA(YA,()=>y$()?.detail,null),CA(YA,(()=>{var Sq=AE(()=>y$()?.state!=="running"||y$()?.progress===void 0);return()=>Sq()?"":` \xB7 ${Math.round((y$()?.progress??0)*100)}%`})(),null),lq((Sq)=>{var yE=EA.background,qE=XHq(y$()?.state??"waiting");return yE!==Sq.e&&(Sq.e=S(l,"backgroundColor",yE,Sq.e)),qE!==Sq.t&&(Sq.t=S(YA,"fg",qE,Sq.t)),Sq},{e:void 0,t:void 0}),l}}),null),lq((l)=>{var YA=EA.background,mA=dp(),Sq=Math.max(18,g().height-6),yE=EA.surface,qE=EA.border,fF=EA.border;return YA!==l.e&&(l.e=S(OA,"backgroundColor",YA,l.e)),mA!==l.t&&(l.t=S(mg,"width",mA,l.t)),Sq!==l.a&&(l.a=S(mg,"maxHeight",Sq,l.a)),yE!==l.o&&(l.o=S(mg,"backgroundColor",yE,l.o)),qE!==l.i&&(l.i=S(mg,"borderColor",qE,l.i)),fF!==l.n&&(l.n=S(i6,"borderColor",fF,l.n)),l},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),OA})()},NHq=(A)=>{let q=N9(),g=UD(),[E,_]=Qq("Requesting one-time sign-in code"),[F,j]=Qq(),[K,$]=Qq(),[U,Z]=Qq(0),G=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827"],O=new AbortController,Q=!1,Y=(L)=>{if(Q)return;if(Q=!0,O.abort(),A.onExit(L),A.destroyOnExit!==!1)q.destroy()},H=(L)=>{let X=F()?.verificationUrl;if(L.name==="return"&&X&&A.options.canOpenUrl!==!1){A.options.onOpenUrl(X).catch(()=>{});return}let W=L.name==="escape"||L.sequence==="\x1B",T=L.ctrl&&L.name.toLowerCase()==="c"||L.sequence==="\x03";if(W||T)Y(!1)},I=(L)=>{if(L==="\x1B"||L==="\x03")return Y(!1),!0;return!1};q.prependInputHandler(I),q.keyInput.on("keypress",H),N_(()=>{q.removeInputHandler(I),q.keyInput.off("keypress",H)});let M=setInterval(()=>Z((L)=>L+1),60);N_(()=>clearInterval(M)),N_(()=>O.abort()),A.options.authenticate({onDetails:j,onStatus:_,signal:O.signal}).then(()=>{_("Connected to your SimpleCloud account"),setTimeout(()=>Y(!0),350)}).catch((L)=>{if(O.signal.aborted)return;$(L instanceof Error?L.message:String(L))});let N=E6(()=>Math.max(44,Math.min(68,g().width-6)));return(()=>{var L=t("box"),X=t("box"),W=t("box"),T=t("box"),V=t("box"),R=t("text");return KA(L,X),S(L,"width","100%"),S(L,"height","100%"),S(L,"flexDirection","column"),KA(X,W),S(X,"flexGrow",1),S(X,"flexDirection","column"),S(X,"alignItems","center"),S(X,"justifyContent","center"),S(X,"padding",3),KA(W,T),KA(W,V),S(W,"flexDirection","column"),S(W,"border",!0),S(W,"borderStyle","rounded"),S(T,"height",4),S(T,"flexDirection","row"),S(T,"alignItems","center"),S(T,"paddingTop",1),S(T,"paddingBottom",1),S(T,"paddingLeft",3),S(T,"paddingRight",3),S(T,"border",["bottom"]),CA(T,VA(Jp,{})),KA(V,R),S(V,"flexDirection","column"),S(V,"paddingTop",2),S(V,"paddingBottom",2),S(V,"paddingLeft",3),S(V,"paddingRight",3),CA(V,VA(E_,{get when(){return!K()},get fallback(){return(()=>{var z=t("box"),B=t("box"),C=t("text");return KA(z,B),S(z,"flexDirection","column"),CA(z,VA(h1,{title:"Sign-in could not start",description:"Nothing was installed. Return to the terminal and try again."}),B),KA(B,C),S(B,"border",!0),S(B,"borderStyle","rounded"),S(B,"padding",2),S(C,"wrapMode","word"),CA(C,K),lq((y)=>{var{red:b,surfaceRaised:n,red:AA}=EA;return b!==y.e&&(y.e=S(B,"borderColor",b,y.e)),n!==y.t&&(y.t=S(B,"backgroundColor",n,y.t)),AA!==y.a&&(y.a=S(C,"fg",AA,y.a)),y},{e:void 0,t:void 0,a:void 0}),z})()},get children(){return VA(E_,{get when(){return F()},get fallback(){return(()=>{var z=t("box"),B=t("box"),C=t("text");return KA(z,B),S(z,"flexDirection","column"),CA(z,VA(h1,{title:"Sign in to SimpleCloud",description:"Preparing a secure one-time code for this terminal."}),B),KA(B,C),S(B,"height",3),S(B,"flexDirection","row"),S(B,"alignItems","center"),S(B,"paddingLeft",2),S(B,"paddingRight",2),CA(C,()=>G[Math.floor(U()/2)%G.length]),CA(B,VA(Hp,{get text(){return E()},get frame(){return U()},marginLeft:1,sweepFrames:34,pauseFrames:4,strength:0.72}),null),lq((y)=>{var{surfaceRaised:b,brand:n}=EA;return b!==y.e&&(y.e=S(B,"backgroundColor",b,y.e)),n!==y.t&&(y.t=S(C,"fg",n,y.t)),y},{e:void 0,t:void 0}),z})()},children:(z)=>(()=>{var B=t("box"),C=t("box"),y=t("text"),b=t("text"),n=t("strong"),AA=t("text"),s=t("text"),$A=t("box"),TA=t("box"),iA=t("text"),_6=t("text"),Ig=Ng(" min");return KA(B,C),KA(B,AA),KA(B,s),KA(B,$A),S(B,"flexDirection","column"),CA(B,VA(h1,{get title(){return z().browserOpened?"Finish signing in":"Sign in from any browser"},get description(){return z().browserOpened?"We opened the authorization page. Use the code below if the browser asks for it.":"Open the address below, then enter the one-time code."}}),C),KA(C,y),KA(C,b),S(C,"height",3),S(C,"flexDirection","row"),S(C,"alignItems","center"),S(C,"justifyContent","space-between"),S(C,"paddingLeft",2),S(C,"paddingRight",2),KA(y,Ng("Code")),KA(b,n),CA(n,()=>z().userCode),KA(AA,Ng("Open")),S(AA,"marginTop",2),S(s,"wrapMode","word"),CA(s,()=>z().verificationUrl),KA($A,TA),KA($A,_6),S($A,"flexDirection","row"),S($A,"alignItems","center"),S($A,"marginTop",2),KA(TA,iA),S(TA,"flexDirection","row"),S(TA,"alignItems","center"),S(TA,"flexGrow",1),S(iA,"width",3),CA(iA,()=>G[Math.floor(U()/2)%G.length]),CA(TA,VA(Hp,{get text(){return E()},get frame(){return U()},sweepFrames:34,pauseFrames:4,strength:0.72}),null),KA(_6,Ig),S(_6,"marginLeft",2),CA(_6,()=>Math.max(1,Math.floor(z().expiresIn/60)),Ig),lq((cq)=>{var{surfaceRaised:nF,muted:$F,text:d1,muted:eq,cyan:Nq,brand:Vg,subtle:kj}=EA;return nF!==cq.e&&(cq.e=S(C,"backgroundColor",nF,cq.e)),$F!==cq.t&&(cq.t=S(y,"fg",$F,cq.t)),d1!==cq.a&&(cq.a=S(b,"fg",d1,cq.a)),eq!==cq.o&&(cq.o=S(AA,"fg",eq,cq.o)),Nq!==cq.i&&(cq.i=S(s,"fg",Nq,cq.i)),Vg!==cq.n&&(cq.n=S(iA,"fg",Vg,cq.n)),kj!==cq.s&&(cq.s=S(_6,"fg",kj,cq.s)),cq},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),B})()})}}),R),S(R,"marginTop",2),CA(R,(()=>{var z=AE(()=>!!K());return()=>z()?"Esc return to terminal":AE(()=>!!F())()?A.options.canOpenUrl===!1?"Open the link manually \xB7 Esc cancel":"Enter open link \xB7 Esc cancel":"Esc cancel"})()),lq((z)=>{var B=EA.background,C=N(),y=EA.surface,b=K()?EA.red:EA.border,n=EA.border,AA=EA.subtle;return B!==z.e&&(z.e=S(L,"backgroundColor",B,z.e)),C!==z.t&&(z.t=S(W,"width",C,z.t)),y!==z.a&&(z.a=S(W,"backgroundColor",y,z.a)),b!==z.o&&(z.o=S(W,"borderColor",b,z.o)),n!==z.i&&(z.i=S(T,"borderColor",n,z.i)),AA!==z.n&&(z.n=S(R,"fg",AA,z.n)),z},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),L})()},VHq=(A)=>{let q=N9(),g=UD(),[E,_]=Qq(A.options.auth?"auth":"loading"),[F,j]=Qq(),[K,$]=Qq(),[U,Z]=Qq(!1),G=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827"],[O,Q]=Qq(0),Y=!1,H,I=(T)=>{A.onExit(T)},M=()=>{A.onExit(null),q.destroy()},N=(T=!1)=>{if(Y)return;if(Y=!0,!T)_("loading"),H=setTimeout(()=>Z(!0),300);A.options.loadSetup().then((V)=>{if(H)clearTimeout(H);j(V),_("setup")}).catch((V)=>{if(H)clearTimeout(H);$(V instanceof Error?V.message:String(V)),_("error")})};if(!A.options.auth)N();let L=(T)=>{if((T==="\x1B"||T==="\x03")&&(E()==="loading"||E()==="error"))return M(),!0;return!1};q.prependInputHandler(L),N_(()=>q.removeInputHandler(L));let X=setInterval(()=>Q((T)=>(T+1)%G.length),100);N_(()=>clearInterval(X)),N_(()=>{if(H)clearTimeout(H)});let W=E6(()=>Math.max(44,Math.min(68,g().width-6)));return VA(jD,{get children(){return[VA(JE,{get when(){return AE(()=>E()==="auth")()&&A.options.auth},get children(){return VA(E_,{get when(){return A.options.auth},get fallback(){return(()=>{var T=t("box");return S(T,"height",0),T})()},children:(T)=>VA(NHq,{get options(){return T()},destroyOnExit:!1,onExit:(V)=>{if(V)N(!0);else M()}})})}}),VA(JE,{get when(){return AE(()=>E()==="setup")()&&F()},get children(){return VA(E_,{get when(){return F()},get fallback(){return(()=>{var T=t("box");return S(T,"height",0),T})()},children:(T)=>VA(LHq,{get options(){return T()},onExit:I})})}}),VA(JE,{get when(){return E()==="loading"},get children(){var T=t("box");return S(T,"width","100%"),S(T,"height","100%"),S(T,"position","relative"),CA(T,VA(E_,{get when(){return U()},get fallback(){return(()=>{var V=t("box");return S(V,"height",0),V})()},get children(){var V=t("box"),R=t("text"),z=Ng(" Preparing setup"),B=t("text");return KA(V,R),KA(V,B),S(V,"position","absolute"),S(V,"left",0),S(V,"right",0),S(V,"bottom",0),S(V,"width","100%"),S(V,"height",3),S(V,"flexDirection","row"),S(V,"alignItems","center"),S(V,"paddingLeft",2),S(V,"paddingRight",2),S(V,"border",["top"]),KA(R,z),CA(R,()=>G[O()],z),KA(B,Ng("Esc cancel")),S(B,"marginLeft","auto"),lq((C)=>{var{surface:y,border:b,brand:n,subtle:AA}=EA;return y!==C.e&&(C.e=S(V,"backgroundColor",y,C.e)),b!==C.t&&(C.t=S(V,"borderColor",b,C.t)),n!==C.a&&(C.a=S(R,"fg",n,C.a)),AA!==C.o&&(C.o=S(B,"fg",AA,C.o)),C},{e:void 0,t:void 0,a:void 0,o:void 0}),V}})),lq((V)=>S(T,"backgroundColor",EA.background,V)),T}}),VA(JE,{get when(){return E()==="error"},get children(){var T=t("box"),V=t("box"),R=t("box"),z=t("box"),B=t("box"),C=t("text"),y=t("text");return KA(T,V),KA(T,y),S(T,"width","100%"),S(T,"height","100%"),S(T,"flexDirection","column"),S(T,"alignItems","center"),S(T,"justifyContent","center"),S(T,"padding",3),KA(V,R),KA(V,z),S(V,"flexDirection","column"),S(V,"border",!0),S(V,"borderStyle","rounded"),S(R,"height",4),S(R,"flexDirection","row"),S(R,"alignItems","center"),S(R,"paddingTop",1),S(R,"paddingBottom",1),S(R,"paddingLeft",3),S(R,"paddingRight",3),S(R,"border",["bottom"]),CA(R,VA(Jp,{})),KA(z,B),S(z,"flexDirection","column"),S(z,"paddingTop",2),S(z,"paddingBottom",2),S(z,"paddingLeft",3),S(z,"paddingRight",3),CA(z,VA(h1,{title:"Setup could not continue",description:"Nothing was installed on this machine."}),B),KA(B,C),S(B,"border",!0),S(B,"borderStyle","rounded"),S(B,"padding",2),S(C,"wrapMode","word"),CA(C,K),KA(y,Ng("Esc cancel")),S(y,"marginTop",1),lq((b)=>{var n=EA.background,AA=W(),s=EA.surface,$A=EA.red,TA=EA.border,iA=EA.surfaceRaised,_6=EA.red,Ig=EA.red,cq=EA.subtle;return n!==b.e&&(b.e=S(T,"backgroundColor",n,b.e)),AA!==b.t&&(b.t=S(V,"width",AA,b.t)),s!==b.a&&(b.a=S(V,"backgroundColor",s,b.a)),$A!==b.o&&(b.o=S(V,"borderColor",$A,b.o)),TA!==b.i&&(b.i=S(R,"borderColor",TA,b.i)),iA!==b.n&&(b.n=S(B,"backgroundColor",iA,b.n)),_6!==b.s&&(b.s=S(B,"borderColor",_6,b.s)),Ig!==b.h&&(b.h=S(C,"fg",Ig,b.h)),cq!==b.r&&(b.r=S(y,"fg",cq,b.r)),b},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),T}})]}})},K5A=async(A)=>{let q=()=>{},g=new Promise((F)=>{q=F}),E=j5A(()=>VA(VHq,{options:A,onExit:q}),{backgroundColor:EA.background,exitOnCtrlC:!1,screenMode:"alternate-screen",consoleMode:"disabled",useMouse:!1,targetFps:30}),_=await g;return await E,_};var $5A=D(async()=>{P9();un();await EX([h$(),h$(),h$(),h$(),h$(),h$(),h$(),h$(),h$()]);EA={background:"#1e1e1e",surface:"#282828",surfaceRaised:"#2b2b2b",border:"#383838",borderStrong:"#4a4a4a",text:"#ebebeb",muted:"#9e9e9e",subtle:"#707070",logo:"#4ba6dd",brand:"#306ce2",dither:"#244f87",cyan:"#0fa2ec",green:"#28d26e",amber:"#f59e0b",red:"#ea3939"}});import*as Z5A from"fs/promises";import*as GD from"os";import*as LZ from"path";var U5A="host-1",THq="https://dash.simplecloud.app",Ip=()=>Math.floor(GD.totalmem()/1048576*0.8),WHq=async(A)=>{let q=LZ.resolve(A),g=await Z5A.readdir(q,{withFileTypes:!0}),E=LZ.dirname(q),_=await mn(q);return{directory:q,parent:E===q?void 0:E,suggestedInstallDir:_,usesCurrentDirectory:_===q,entries:g.filter((F)=>F.isDirectory()).sort((F,j)=>F.name.localeCompare(j.name,void 0,{sensitivity:"base"})).map((F)=>({name:F.name,path:LZ.join(q,F.name)}))}},G5A=(A)=>{let q=iH(A);if(q===null)return"Use a value like 80%, 16gb, 4096mb, or 4096";if(q<512)return"Minimum memory is 512 MB";return},RHq=(A)=>{let q=G5A(A);if(q)throw Error(q);let g=iH(A);if(g===null)throw Error("Invalid memory value");return g},DHq=async(A)=>{if(A instanceof Error)return A;if(A instanceof Response){let q="";try{let E=(await A.text()).trim();if(E)try{let _=JSON.parse(E);q=_.message??_.detail??_.error??E}catch{q=E}}catch{}let g=`${A.status} ${A.statusText}`.trim();return Error(`SimpleCloud API request failed (${g})${q?`: ${q.slice(0,300)}`:""}`)}return Error(String(A))},wHq=(A)=>(A??[]).flatMap((q)=>q.split(",")).map((q)=>{let g=q.trim(),E=Math.max(g.indexOf(":"),g.indexOf("@"));return E<0?{id:g}:{id:g.slice(0,E),version:g.slice(E+1)}}).filter((q)=>q.id.length>0),SHq=(A)=>A.flatMap((q)=>{let g=oG(q);return g?[{id:q.id,name:q.name,slug:q.slug,networkId:g}]:[]}),BHq=(A,q)=>{if(!A)return;let g=q.find((E)=>E.id===A||E.slug===A||E.networkId===A);if(!g)throw new bA(`Network "${A}" was not found`);return g},zHq=async(A,q,g)=>{if(g.update("registration",{state:"running",detail:A.newNetwork?"Creating":"Connecting"}),A.newNetwork){let _=await RM(A.newNetwork.name,A.newNetwork.slug),F=oG(_);if(!F)throw Error("The new network did not return a network ID");return g.update("registration",{state:"done",detail:`Ready \xB7 ${_.name}`,progress:void 0}),{orgId:_.id,orgName:_.name,orgSlug:_.slug,networkId:F}}let E=q.find((_)=>_.id===A.networkId);if(!E)throw Error("Select a network before continuing");return g.update("registration",{state:"done",detail:`Ready \xB7 ${E.name}`,progress:void 0}),{orgId:E.id,orgName:E.name,orgSlug:E.slug,networkId:E.networkId}},CHq=async(A,q,g,E,_)=>{let F=u0({networkId:A,networkSecret:q,baseURL:g}),j=await sU(($)=>F.v0.serverhostsRegisterCreate({host_name:E,maximum_memory:_},{signal:$}),{operation:"Registering the serverhost"});if(!j.ok)throw j;let K=j.data?.serverhost_id;if(!K)throw Error("The controller did not return a serverhost ID");return K},xHq=async(A,q,g,E)=>{let _=u0({networkId:A,networkSecret:q,baseURL:g}),F=await sU((K)=>_.v0.networksPasswordsCreate({name:`serverhost-${E}`},{signal:K}),{operation:"Creating the serverhost secret"});if(!F.ok)throw F;let j=F.data?.password??F.data?.secret;if(!j)throw Error("The controller did not return a network secret");return j},hHq=async(A,q,g)=>{let E=await h.runPromise(O$().pipe(h.provide(oA))),_=(A.orgSlug||LZ.basename(g)||"default").trim()||"default",F=Object.keys(E).length===0?"default":_,j=2;while(E[F])F=`${_}-${j}`,j+=1;return await h.runPromise(bY(F,{orgId:A.orgId,orgName:A.orgName,orgSlug:A.orgSlug,baseURL:q,installationDir:g}).pipe(h.provide(oA))),await h.runPromise(hY(F).pipe(h.provide(oA))),F},bHq=async(A,q,g,E)=>{if(A.length===0)return;E.update("dependencies",{state:"running",detail:`Installing ${A.map((F)=>F.id).join(", ")}`});let _=async()=>{for(let F of A)if(!await CH(F.id,{version:F.version,yes:!0,embedded:!0,silent:!0,nonInteractiveSudo:nR(q)}))throw Error(`Unknown setup installable: ${F.id}`);if(A.some((F)=>F.id.toLowerCase()==="java")&&!await UP())throw Error("Java 21+ could not be verified after installation")};if(nR(q)){if(E.update("dependencies",{state:"running",detail:"Waiting for installation approval"}),!await g.suspend(zH))throw Error("Administrator permission was not granted")}await _(),E.update("dependencies",{state:"done",detail:"Dependencies installed"})},kHq=()=>{return{signal:new AbortController().signal,suspend:(q)=>q()}},yHq=async(A)=>{let q=process.stdout.write,g=process.stderr.write;process.stdout.write=()=>!0,process.stderr.write=()=>!0;try{return await A()}finally{process.stdout.write=q,process.stderr.write=g}},vHq=(A)=>{let q=new Map;return A.subscribe(({tasks:g})=>{for(let E of g){let _=`${E.state}:${E.detail}`;if((E.state==="running"||E.state==="done"||E.state==="error")&&q.get(E.id)!==_){q.set(E.id,_);let F=E.state==="done"?J.green("\u2713"):E.state==="error"?J.red("\xD7"):J.cyan("\u25C6");console.log(`${F} ${E.label}: ${E.detail}`)}}})},O5A=async(A={})=>{let q=Xq(),g=J1(),E=await $XA();if(q==="windows")throw new bA("Automated serverhost setup is not supported on Windows","Use WSL or install the serverhost on Linux or macOS.");let _=process.stdin.isTTY===!0&&process.stdout.isTTY===!0,F=TNA(),j=new AbortController,K=!1,$,U=()=>{K=!1;let X=WNA(q,g,F,j.signal);return X.catch(()=>{if($===X)K=!0}),X};$=U();let Z=()=>{if(K)$=U();return $},G=SNA(q,F),O=await vG(),Q={canOpenUrl:E,authenticate:async({onDetails:X,onStatus:W,signal:T})=>{if(!await g1({skipExistingCheck:!0,silent:!0,noBrowser:!0,code:A.code,onDeviceAuthorization:async(R)=>{let z=!1;if(!A.noBrowser&&E)try{await IH(R.verificationUrl),z=!0}catch{}X({...R,browserOpened:z})},onStatus:W,signal:T}))throw new kY("Login cancelled")},onOpenUrl:async(X)=>{await IH(X)}},Y=async()=>{let X=await h.runPromise(xY().pipe(h.provide(oA))),W=eY(),[T,V]=await Promise.all([W,G]),R=SHq(T),z=BHq(A.network,R),B=wHq(A.install),y=B.some((eq)=>eq.id.toLowerCase()==="java")?{...V,java:!0,missing:V.missing.filter((eq)=>!eq.startsWith("Java"))}:V,b=new rn(q,y,F),n=A.autoInstallDeps??(A.yes?!0:void 0),AA=process.cwd(),s=A.installDir?.trim()||void 0,$A=s||await mn(AA),TA=LZ.join(GD.homedir(),"simplecloud"),iA,_6,Ig=(eq,Nq)=>{if(!eq)return b.complete(!1,Nq);if(!iA){let Vg=b.complete(!0,Nq);iA=Vg,Vg.catch(()=>{if(iA===Vg)iA=void 0})}return iA},cq=(eq)=>{if(!_6){let Nq=bHq(B,q,eq,F);_6=Nq,Nq.catch(()=>{if(_6===Nq)_6=void 0})}return _6},nF=(eq,Nq)=>{if(b.requestBackgroundInstall(),y.missing.length>0&&!eq)return;Ig(!0,Nq).then(()=>cq(Nq)).catch((Vg)=>{F.update("dependencies",{state:"error",detail:Vg instanceof Error?Vg.message:"Dependency installation failed"})})},$F=async(eq,Nq)=>{let Vg,kj=!1,W4=[];F.update("files",{state:"waiting",detail:"Ready"}),F.update("start",{state:eq.start?"waiting":"skipped",detail:eq.start?"After installation":""}),F.update("services",{state:A.service?.length?"waiting":"skipped",detail:A.service?.length?"After installation":"Not requested"});try{let[kE,n1]=await Promise.all([zHq(eq,R,F),Z(),(async()=>{await Ig(eq.autoInstallDeps,Nq),await cq(Nq)})()]),hp=RHq(eq.maxMemory),W9=await cn(eq.installDir);if(F.update("registration",{state:"running",detail:"Registering host",progress:void 0}),_)await new Promise((RZ)=>setTimeout(RZ,34));let nq=await c0(),f1=await CHq(kE.networkId,nq,X,eq.hostName,hp),V6=await xHq(kE.networkId,nq,X,f1);if(await cR(n1.stagingDir,{networkId:kE.networkId,networkSecret:V6,serverhostId:f1}),F.update("registration",{state:"done",detail:`Connected \xB7 ${kE.orgName}`}),A.service?.length){F.update("services",{state:"running",detail:"Preparing"});let RZ={signal:Nq.signal,nonInteractiveSudo:!0,templateVariables:{networkSlug:kE.orgSlug},onStatus:(hK)=>{F.update("services",{state:"running",detail:hK})},onSystemInstallRequired:async(hK)=>{if(q!=="linux"||typeof process.getuid==="function"&&process.getuid()===0||kj)return;if(F.update("services",{state:"running",detail:`Waiting for ${hK} permission`}),kj=await Nq.suspend(async()=>{return console.log(`
|
|
561
561
|
SimpleCloud needs permission to install ${hK}.
|
|
562
562
|
`),zH()}),!kj)throw Error("Administrator permission was not granted")}};W4=await pXA(A.service,n1.stagingDir,{...RZ,start:!1})}if(F.update("files",{state:"running",detail:"Installing"}),Vg=await RNA(n1,W9),await dR(n1),F.update("files",{state:"done",detail:"Installed"}),W4.length>0){let RZ=iXA(W4,Vg);await aH(RZ,"start",{signal:Nq.signal,nonInteractiveSudo:!0,onStatus:(hK)=>{F.update("services",{state:"running",detail:hK})}}),F.update("services",{state:"done",detail:"Running"})}let R9=await hHq(kE,X,Vg);if(eq.start){if(F.update("start",{state:"running",detail:"Starting"}),_)await yHq(()=>N1({skipVersionCheck:!0,embedded:!0,includeServices:!1}));else await N1({skipVersionCheck:!0,embedded:!0,includeServices:!1});F.update("start",{state:"done",detail:"Online"})}else F.update("start",{state:"skipped",detail:""});return{networkName:kE.orgName,hostName:eq.hostName,contextName:R9,installationDir:Vg,started:eq.start}}catch(kE){if(!_)$.then(dR).catch(()=>{});throw await DHq(kE)}};return{uiOptions:{defaults:{networks:R,fixedNetworkId:z?.id,hostName:A.yes===!0?A.hostName?.trim()||U5A:A.hostName,maxMemory:A.yes===!0?A.maxMemory?.trim()||pH(Ip()):A.maxMemory,installDir:s,autoInstallDeps:n,start:A.yes===!0?A.start??!0:A.start,recommendedInstallDir:$A,homeInstallDir:TA,currentDirectory:AA,defaultMemory:pH(Ip()),missingDependencies:y.missing,platformLabel:`${q} / ${g}`},progress:F,canOpenDashboard:E,startBackgroundPreparation:B.length>0&&y.missing.length===0,validateMemory:G5A,validateInstallDir:async(eq)=>{try{let Nq=await tH(eq);return Nq.state==="available"||Nq.state==="empty"?void 0:Nq.detail}catch(Nq){return Nq instanceof Error?Nq.message:String(Nq)}},browseDirectory:WHq,onDependencyInstallRequested:(eq,Nq)=>nF(Nq,eq),onInstall:$F,onCancel:()=>{j.abort(Error("Setup cancelled"))},onOpenDashboard:async()=>{await IH(THq)}},networks:R,fixedNetwork:z,recommendedInstallDir:$A,performInstall:$F}};if(_){if(!await K5A({auth:O?void 0:Q,loadSetup:async()=>(await Y()).uiOptions}))throw $.then(dR).catch(()=>{}),new kY("Setup cancelled");return}if(!O){if(!await g1({skipExistingCheck:!0,code:A.code,noBrowser:A.noBrowser,waitMessage:A.code?"Waiting for the dashboard to finish sign-in...":"Waiting for browser authorization..."}))throw new kY("Login cancelled")}let{networks:H,fixedNetwork:I,recommendedInstallDir:M,performInstall:N}=await Y(),L=vHq(F);try{let X=I;if(!X&&H.length===1)X=H[0];if(!X)throw new bA("Non-interactive setup needs --network","Pass a network ID or slug when more than one network is available.");let W=await N({networkId:X.id,hostName:A.hostName?.trim()||U5A,maxMemory:A.maxMemory?.trim()||pH(Ip()),installDir:providedInstallDir||M,autoInstallDeps:A.autoInstallDeps??!0,start:A.start??!0},kHq());console.log(J.green(`
|
|
563
563
|
\u2713 ${W.hostName} is ready in ${W.installationDir}`))}finally{L()}};var Q5A=D(async()=>{xA();Cg();Mr();Y$();wE();zF();vq();YR();AH();bn();zE();yn();wR();zM();zR();un();BNA();await $5A()});function Y5A(A){A.command({command:"setup",describe:"Set up SimpleCloud",builder:(q)=>q.option("network",{type:"string",alias:"n",describe:"Network ID or slug to use"}).option("org",{type:"string",alias:"o",describe:"Deprecated alias for --network"}).hide("org").option("code",{type:"string",describe:"Use a pre-approved dashboard login code"}).option("browser",{type:"boolean",default:!0,describe:"Open the browser automatically (disable with --no-browser)"}).option("install-dir",{type:"string",describe:"Use a new or empty installation directory"}).option("host-name",{type:"string",describe:"Serverhost display name"}).option("max-memory",{type:"string",describe:"Maximum memory, e.g. 80%, 32gb, or 4096mb"}).option("start",{type:"boolean",describe:"Start SimpleCloud after setup"}).option("auto-install-deps",{type:"boolean",describe:"Install required system dependencies automatically"}).option("install",{type:"array",string:!0,describe:"Install an extra manifest installable, e.g. java:17"}).option("service",{type:"array",string:!0,describe:"Install a manifest service, e.g. postgresql"}).option("yes",{alias:"y",type:"boolean",default:!1,describe:"Use safe defaults for optional setup questions"}).example("$0 setup","Open the full-screen setup experience").example("$0 setup --network my-network --yes","Open setup with optional values prefilled"),handler:UA(async(q)=>{await O5A({network:q.network||q.org,code:q.code,noBrowser:!q.browser,installDir:q.installDir,hostName:q.hostName,maxMemory:q.maxMemory,start:q.start,autoInstallDeps:q.autoInstallDeps,install:q.install,service:q.service,yes:q.yes})})})}var H5A=D(async()=>{fg();await Q5A()});function M5A(A){A.command({command:"start [components..]",describe:"Start SimpleCloud components and services",builder:(q)=>q.positional("components",{describe:"Specific components or service instances to start (default: all, supports <component>@<version>)",type:"string",array:!0}).option("runner",{choices:["screen","docker","native"],describe:"Override the runner type for this session"}).option("configure",{type:"boolean",default:!1,describe:"Configure the default runner"}).option("skip-version-check",{type:"boolean",default:!1,describe:"Skip version check before starting"}).option("update",{type:"boolean",describe:"Auto-update outdated components (use --no-update to skip)"}).option("set",{alias:"s",type:"string",array:!0,describe:"Pin component version(s) for update with <component>=<version> (repeatable)"}),handler:UA(async(q)=>{let g=I5A(q.components,q.set);await N1({components:g.components,runner:q.runner,configure:q.configure,skipVersionCheck:q.skipVersionCheck,autoUpdate:q.update,updatePinnedVersions:g.pinnedVersions})})}),A.command({command:"stop [components..]",describe:"Stop SimpleCloud components and services",builder:(q)=>q.positional("components",{describe:"Specific components or service instances to stop (default: all)",type:"string",array:!0}).option("stop-servers",{type:"boolean",describe:"Stop all servers on serverhost before stopping (use --no-stop-servers to skip)"}),handler:UA(async(q)=>{let g=q.components;await Vn({components:g&&g.length>0?g:void 0,stopServers:q.stopServers})})}),A.command({command:"restart [components..]",describe:"Restart SimpleCloud components (stop then start)",builder:(q)=>q.positional("components",{describe:"Specific components to restart (default: all, supports <component>@<version>)",type:"string",array:!0}).option("runner",{choices:["screen","docker","native"],describe:"Override the runner type for this session"}).option("skip-version-check",{type:"boolean",default:!1,describe:"Skip version check before starting"}).option("update",{type:"boolean",describe:"Auto-update outdated components (use --no-update to skip)"}).option("set",{alias:"s",type:"string",array:!0,describe:"Pin component version(s) for update with <component>=<version> (repeatable)"}).option("stop-servers",{type:"boolean",describe:"Stop all servers on serverhost before stopping (use --no-stop-servers to skip)"}),handler:UA(async(q)=>{let g=I5A(q.components,q.set);await sXA({components:g.components,runner:q.runner,skipVersionCheck:q.skipVersionCheck,autoUpdate:q.update,stopServers:q.stopServers,updatePinnedVersions:g.pinnedVersions})})}),A.command({command:"status [components..]",describe:"Check status of SimpleCloud components",builder:(q)=>q.positional("components",{describe:"Specific components to check (default: all)",type:"string",array:!0}),handler:UA(async(q)=>{let g=q.components;await eXA(g&&g.length>0?g:void 0)})}),A.command({command:"logs <component>",describe:"View logs for a component",builder:(q)=>q.positional("component",{describe:"Component to view logs for",type:"string",demandOption:!0}).option("lines",{alias:"n",type:"number",default:100,describe:"Number of lines to show"}),handler:UA(async(q)=>{await ALA(q.component,q.lines)})}),A.command({command:"attach <component>",describe:"Attach to a running component console",builder:(q)=>q.positional("component",{describe:"Component to attach to",type:"string",demandOption:!0}),handler:UA(async(q)=>{await qLA(q.component)})})}var J5A=(A,q)=>{let g=A.indexOf(q);if(g<=0||g>=A.length-1)return null;let E=A.slice(0,g).trim(),_=A.slice(g+1).trim();if(!E||!_)return null;return{componentId:E,version:_}},I5A=(A,q)=>{let g=[],E=new Map,_=(F,j,K)=>{let $=E.get(F);if($&&$!==j)throw Error(`Conflicting pinned versions for '${F}': '${$}' and '${j}' (${K})`);E.set(F,j)};for(let F of A??[]){let j=J5A(F,"@");if(!j){g.push(F);continue}g.push(j.componentId),_(j.componentId,j.version,`from component '${F}'`)}for(let F of q??[]){let j=J5A(F,"=");if(!j)throw Error(`Invalid --set value '${F}'. Expected format: <component>=<version>`);_(j.componentId,j.version,`from --set '${F}'`)}return{components:g.length>0?g:void 0,pinnedVersions:E.size>0?Object.fromEntries(E):void 0}};var P5A=D(()=>{fg();zR()});import*as VZ from"fs/promises";import*as NZ from"path";var oP,L5A,mHq,cHq=".simplecloud-sync.json",X5A=(A)=>NZ.resolve(A).replace(/[\\/]+$/,""),N5A=(A,q,g)=>{switch(q){case"templates":return{...A,templatesId:g};case"workflows":return{...A,workflowsId:g};case"options":return{...A,optionsId:g}}},b1=(A,q)=>L5A.map((g)=>({key:g.key,label:g.label,relativePath:g.relativePath,absolutePath:NZ.join(A,g.relativePath),folderId:q[g.idKey]})),OD=(A,q)=>{let g={};for(let E of L5A){let _=X5A(NZ.join(q,E.relativePath)),F=A.find((K)=>X5A(K.path)===_);if(F){g[E.key]=F;continue}let j=A.find((K)=>K.label?.toLowerCase()===E.label);if(j)g[E.key]=j}return g},QD=async(A)=>{for(let q of oP){let g=NZ.join(A,q);await VZ.mkdir(g,{recursive:!0})}},YD=async(A)=>{let q=NZ.join(A,"templates"),g=NZ.join(q,".stignore"),E="cache/";await VZ.mkdir(q,{recursive:!0});let _="";try{_=await VZ.readFile(g,"utf-8")}catch(K){if(K.code!=="ENOENT")throw K}let F=_.split(/\r?\n/).map((K)=>K.trim()).filter(Boolean);if(F.includes("cache/")||F.includes("/cache/")||F.includes("templates/cache/"))return!1;let j=_.length>0&&!_.endsWith(`
|