9remote 2.1.1 → 2.1.2

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.cjs CHANGED
@@ -9,7 +9,7 @@ Right-click to open / quit`}function Xi(){let{port:e,tunnelUrl:n}=Dt,r=process.p
9
9
  `}l||(t+=p)}else{var w=ro(ur).times(o.getModuleCount()+3);t+=w+`
10
10
  `,o.modules.forEach(function(T){t+=ur,t+=T.map(Pc).join(""),t+=ur+`
11
11
  `}),t+=w}r?r(t):console.log(t)},setErrorLevel:function(e){this.error=As[e]||this.error}}});var Pn=require("fs"),Yt=require("path"),go=require("url"),yo=A(require("os"),1);var _n=A(require("dns"),1),_e=A(require("path"),1),lo=A(require("os"),1),ne="9remote",mr=process.env.NREMOTE_REGISTRY||`https://registry.npmjs.org/${ne}/latest`,Pe=`${ne}@latest`,Fe=_e.default.join(lo.default.homedir(),".9remote"),re={ROOT:Fe,LOGS:_e.default.join(Fe,"logs"),STATE:_e.default.join(Fe,"state"),CONFIG:_e.default.join(Fe,"config"),BIN:_e.default.join(Fe,"bin"),PIDS:_e.default.join(Fe,"pids"),BUFFERS:_e.default.join(Fe,"buffers"),DAEMON:_e.default.join(Fe,"daemon")},uo=new _n.default.promises.Resolver;uo.setServers(["1.1.1.1","1.0.0.1","8.8.8.8"]);var dr=_n.default.lookup,Zs=/^(\d{1,3}\.){3}\d{1,3}$|^::1$|^[0-9a-f:]+$/i;_n.default.lookup=(e,n,r)=>{if(typeof n=="function"&&(r=n,n={}),e==="localhost"||Zs.test(e))return dr(e,n,r);uo.resolve4(e).then(o=>{if(!o?.length)return dr(e,n,r);n.all?r(null,o.map(t=>({address:t,family:4}))):r(null,o[0],4)}).catch(()=>dr(e,n,r))};var O=2208,co=5173;var Xc=[`http://localhost:${O}`,`http://127.0.0.1:${O}`,`http://localhost:${co}`,`http://127.0.0.1:${co}`],Vt={fileName:"agent.log",rotatedName:"agent.log.1",maxBytes:2*1024*1024,cleanupAfterDays:7},fo=60,$={STOPPED:0,PREPARING:1,CONNECTING:2,TUNNELING:3,VERIFYING:4,READY:5},po={showTunnelUrlInMenu:!1};var mo={CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN:"1"};var ho={checkIntervalMs:3e4,requestTimeoutMs:5e3},le={server:{strategy:"exp",baseMs:1e3,maxMs:6e4},tunnelRestart:{strategy:"exp",baseMs:2e3,maxMs:3e5},tunnelSpawn:{strategy:"linear",baseMs:5e3,maxMs:6e4},internet:{strategy:"linear",baseMs:3e3,maxMs:6e4},sse:{strategy:"linear",baseMs:2e3,maxMs:2e3},urlSync:{strategy:"linear",baseMs:5e3,maxMs:6e4}},zs={Accept:"application/json, text/plain, */*","Accept-Language":"en-US,en;q=0.9","Cache-Control":"no-cache",Pragma:"no-cache","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"};function G(e,n={}){return fetch(e,{...n,headers:{...zs,...n.headers}})}var ea=(0,Yt.dirname)((0,go.fileURLToPath)(__importMetaUrl)),ta=[(0,Yt.join)(yo.default.homedir(),".9remote",".env"),(0,Yt.join)(ea,"..",".env")];function na(e){for(let n of e.split(`
12
- `)){let r=n.trim();if(!r||r.startsWith("#"))continue;let o=r.match(/^([A-Z_][A-Z0-9_]*)\s*=\s*"?(.*?)"?$/);o&&!process.env[o[1]]&&(process.env[o[1]]=o[2])}}for(let e of ta)if((0,Pn.existsSync)(e))try{na((0,Pn.readFileSync)(e,"utf8"))}catch{}for(let[e,n]of Object.entries(mo))process.env[e]||(process.env[e]=n);var vr=A(require("path"),1),Ro=A(require("fs"),1),bo=require("url");var vo=A(wo(),1),gr=A(require("crypto"),1),{machineIdSync:ra}=vo.default;async function vt(e=null){let n=e||process.env.MACHINE_ID_SALT||"9remote-salt";try{let r=ra();return gr.default.createHash("sha256").update(r+n).digest("hex").substring(0,16)}catch(r){return console.error("Error getting machine ID:",r),gr.default.randomUUID().replace(/-/g,"").substring(0,16)}}var So=A(require("crypto"),1),oa=process.env.API_KEY_SECRET||"9remote-api-key-secret";function ia(){let e="abcdefghijklmnopqrstuvwxyz0123456789",n="";for(let r=0;r<4;r++)n+=e.charAt(Math.floor(Math.random()*e.length));return n}function sa(e,n){return So.default.createHmac("sha256",oa).update(e+n).digest("hex").slice(0,6)}function St(e){let n=e.slice(0,8),r=ia(),o=sa(n,r);return{key:`sk-${n}-${r}-${o}`,keyId:r}}function On(e){return!e||e.length<8?"sk-***":`${e.slice(0,3)}***${e.slice(-4)}`}var ae=A(require("fs"),1),Jt=A(require("path"),1);var rl=re.STATE,yr=Jt.default.join(re.STATE,"state.json"),wr=Jt.default.join(re.ROOT,"keys.json"),In=Jt.default.join(re.STATE,"cmd.json"),ol=Jt.default.join(re.STATE,"settings.json");function $n(){for(let e of[re.ROOT,re.STATE])ae.default.existsSync(e)||ae.default.mkdirSync(e,{recursive:!0})}function Cn(e){try{$n(),ae.default.writeFileSync(yr,JSON.stringify(e,null,2),{mode:384})}catch(n){console.error("Error saving state:",n)}}function Eo(){try{ae.default.existsSync(yr)&&ae.default.unlinkSync(yr)}catch{}}function Ln(){try{return $n(),ae.default.existsSync(wr)?JSON.parse(ae.default.readFileSync(wr,"utf8")):{machineId:null,key:null,name:"Default",createdAt:null}}catch{return{machineId:null,key:null,name:"Default",createdAt:null}}}function Et(e){try{$n(),ae.default.writeFileSync(In,JSON.stringify({cmd:e,ts:Date.now()}))}catch{}}function To(){try{if(!ae.default.existsSync(In))return null;let e=JSON.parse(ae.default.readFileSync(In,"utf8"));return ae.default.unlinkSync(In),e.cmd}catch{return null}}function nt(e,n,r="Default"){try{$n();let o={machineId:e,key:n,name:r,createdAt:new Date().toISOString()};return ae.default.writeFileSync(wr,JSON.stringify(o,null,2),{mode:384}),o}catch(o){return console.error("Error saving key:",o),null}}function xo(){return process.env.CODESPACES==="true"}var aa=vr.default.dirname((0,bo.fileURLToPath)(__importMetaUrl));async function Ue(){let e=await vt();if(xo()&&process.env.NREMOTE_API_KEY)return nt(e,process.env.NREMOTE_API_KEY,"Codespace");let n=Ln();if(!n.key){let{key:r}=St(e);n=nt(e,r,"Default")}return n}function Se(){return"2.1.1"}var Ee=A(require("fs"),1),Er=A(require("path"),1);var Mn=re.LOGS,Xt=Er.default.join(Mn,Vt.fileName),Nn=Er.default.join(Mn,Vt.rotatedName),Ao=!1,ko=null;function ca(){Ee.default.existsSync(Mn)||Ee.default.mkdirSync(Mn,{recursive:!0})}function la(){try{if(Ee.default.statSync(Xt).size<Vt.maxBytes)return;try{Ee.default.rmSync(Nn,{force:!0})}catch{}Ee.default.renameSync(Xt,Nn)}catch{}}function ua(){try{let e=Ee.default.statSync(Nn);Date.now()-e.mtimeMs>Vt.cleanupAfterDays*864e5&&Ee.default.rmSync(Nn,{force:!0})}catch{}}function Tr(e){try{la(),Ee.default.appendFileSync(Xt,e+`
12
+ `)){let r=n.trim();if(!r||r.startsWith("#"))continue;let o=r.match(/^([A-Z_][A-Z0-9_]*)\s*=\s*"?(.*?)"?$/);o&&!process.env[o[1]]&&(process.env[o[1]]=o[2])}}for(let e of ta)if((0,Pn.existsSync)(e))try{na((0,Pn.readFileSync)(e,"utf8"))}catch{}for(let[e,n]of Object.entries(mo))process.env[e]||(process.env[e]=n);var vr=A(require("path"),1),Ro=A(require("fs"),1),bo=require("url");var vo=A(wo(),1),gr=A(require("crypto"),1),{machineIdSync:ra}=vo.default;async function vt(e=null){let n=e||process.env.MACHINE_ID_SALT||"9remote-salt";try{let r=ra();return gr.default.createHash("sha256").update(r+n).digest("hex").substring(0,16)}catch(r){return console.error("Error getting machine ID:",r),gr.default.randomUUID().replace(/-/g,"").substring(0,16)}}var So=A(require("crypto"),1),oa=process.env.API_KEY_SECRET||"9remote-api-key-secret";function ia(){let e="abcdefghijklmnopqrstuvwxyz0123456789",n="";for(let r=0;r<4;r++)n+=e.charAt(Math.floor(Math.random()*e.length));return n}function sa(e,n){return So.default.createHmac("sha256",oa).update(e+n).digest("hex").slice(0,6)}function St(e){let n=e.slice(0,8),r=ia(),o=sa(n,r);return{key:`sk-${n}-${r}-${o}`,keyId:r}}function On(e){return!e||e.length<8?"sk-***":`${e.slice(0,3)}***${e.slice(-4)}`}var ae=A(require("fs"),1),Jt=A(require("path"),1);var rl=re.STATE,yr=Jt.default.join(re.STATE,"state.json"),wr=Jt.default.join(re.ROOT,"keys.json"),In=Jt.default.join(re.STATE,"cmd.json"),ol=Jt.default.join(re.STATE,"settings.json");function $n(){for(let e of[re.ROOT,re.STATE])ae.default.existsSync(e)||ae.default.mkdirSync(e,{recursive:!0})}function Cn(e){try{$n(),ae.default.writeFileSync(yr,JSON.stringify(e,null,2),{mode:384})}catch(n){console.error("Error saving state:",n)}}function Eo(){try{ae.default.existsSync(yr)&&ae.default.unlinkSync(yr)}catch{}}function Ln(){try{return $n(),ae.default.existsSync(wr)?JSON.parse(ae.default.readFileSync(wr,"utf8")):{machineId:null,key:null,name:"Default",createdAt:null}}catch{return{machineId:null,key:null,name:"Default",createdAt:null}}}function Et(e){try{$n(),ae.default.writeFileSync(In,JSON.stringify({cmd:e,ts:Date.now()}))}catch{}}function To(){try{if(!ae.default.existsSync(In))return null;let e=JSON.parse(ae.default.readFileSync(In,"utf8"));return ae.default.unlinkSync(In),e.cmd}catch{return null}}function nt(e,n,r="Default"){try{$n();let o={machineId:e,key:n,name:r,createdAt:new Date().toISOString()};return ae.default.writeFileSync(wr,JSON.stringify(o,null,2),{mode:384}),o}catch(o){return console.error("Error saving key:",o),null}}function xo(){return process.env.CODESPACES==="true"}var aa=vr.default.dirname((0,bo.fileURLToPath)(__importMetaUrl));async function Ue(){let e=await vt();if(xo()&&process.env.NREMOTE_API_KEY)return nt(e,process.env.NREMOTE_API_KEY,"Codespace");let n=Ln();if(!n.key){let{key:r}=St(e);n=nt(e,r,"Default")}return n}function Se(){return"2.1.2"}var Ee=A(require("fs"),1),Er=A(require("path"),1);var Mn=re.LOGS,Xt=Er.default.join(Mn,Vt.fileName),Nn=Er.default.join(Mn,Vt.rotatedName),Ao=!1,ko=null;function ca(){Ee.default.existsSync(Mn)||Ee.default.mkdirSync(Mn,{recursive:!0})}function la(){try{if(Ee.default.statSync(Xt).size<Vt.maxBytes)return;try{Ee.default.rmSync(Nn,{force:!0})}catch{}Ee.default.renameSync(Xt,Nn)}catch{}}function ua(){try{let e=Ee.default.statSync(Nn);Date.now()-e.mtimeMs>Vt.cleanupAfterDays*864e5&&Ee.default.rmSync(Nn,{force:!0})}catch{}}function Tr(e){try{la(),Ee.default.appendFileSync(Xt,e+`
13
13
  `)}catch{}}function Sr(e){return e.map(n=>{if(n instanceof Error)return n.stack||n.message;if(typeof n=="object")try{return JSON.stringify(n)}catch{return String(n)}return String(n)}).join(" ")}function _o(){let e=new Date,n=(r,o=2)=>String(r).padStart(o,"0");return`${n(e.getHours())}:${n(e.getMinutes())}:${n(e.getSeconds())}.${n(e.getMilliseconds(),3)}`}var fa=/\x1b\[[0-9;]*m/g,pa=/https?:\/\/[^\s]+/g;function da(e){return String(e).replace(fa,"").replace(pa,"").replace(/\s+$/g,"")}function Qt(e,n,r){let o=da(r);if(!o)return;let t=n==="info"?e:`${e}:${n}`,i=`${_o()} [${t}] ${o}`;if(Tr(i),ko)try{ko(i)}catch{}}function ma(){process.on("uncaughtException",e=>Qt("crash","error",`uncaughtException: ${e?.stack||e?.message||e}`)),process.on("unhandledRejection",e=>{let n=e instanceof Error?e.stack||e.message:String(e);Qt("crash","error",`unhandledRejection: ${n}`)}),process.on("exit",e=>Tr(`${_o()} [exit] code=${e} pid=${process.pid}`))}function Po(){Ao||(Ao=!0,ca(),ua(),Tr(`
14
14
  === SESSION ${new Date().toISOString()} pid=${process.pid} argv=${process.argv.slice(2).join(" ")} ===`),ma())}function Oo(e=60){try{return Ee.default.readFileSync(Xt,"utf8").split(`
15
15
  `).filter(Boolean).slice(-e)}catch{return[]}}function q(e){return{info:(...n)=>Qt(e,"info",Sr(n)),warn:(...n)=>Qt(e,"warn",Sr(n)),error:(...n)=>Qt(e,"error",Sr(n))}}var Zt=Xt;var Io=(e=0)=>n=>`\x1B[${n+e}m`,$o=(e=0)=>n=>`\x1B[${38+e};5;${n}m`,Co=(e=0)=>(n,r,o)=>`\x1B[${38+e};2;${n};${r};${o}m`,M={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]}},ml=Object.keys(M.modifier),ha=Object.keys(M.color),ga=Object.keys(M.bgColor),hl=[...ha,...ga];function ya(){let e=new Map;for(let[n,r]of Object.entries(M)){for(let[o,t]of Object.entries(r))M[o]={open:`\x1B[${t[0]}m`,close:`\x1B[${t[1]}m`},r[o]=M[o],e.set(t[0],t[1]);Object.defineProperty(M,n,{value:r,enumerable:!1})}return Object.defineProperty(M,"codes",{value:e,enumerable:!1}),M.color.close="\x1B[39m",M.bgColor.close="\x1B[49m",M.color.ansi=Io(),M.color.ansi256=$o(),M.color.ansi16m=Co(),M.bgColor.ansi=Io(10),M.bgColor.ansi256=$o(10),M.bgColor.ansi16m=Co(10),Object.defineProperties(M,{rgbToAnsi256:{value(n,r,o){return n===r&&r===o?n<8?16:n>248?231:Math.round((n-8)/247*24)+232:16+36*Math.round(n/255*5)+6*Math.round(r/255*5)+Math.round(o/255*5)},enumerable:!1},hexToRgb:{value(n){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(n.toString(16));if(!r)return[0,0,0];let[o]=r;o.length===3&&(o=[...o].map(i=>i+i).join(""));let t=Number.parseInt(o,16);return[t>>16&255,t>>8&255,t&255]},enumerable:!1},hexToAnsi256:{value:n=>M.rgbToAnsi256(...M.hexToRgb(n)),enumerable:!1},ansi256ToAnsi:{value(n){if(n<8)return 30+n;if(n<16)return 90+(n-8);let r,o,t;if(n>=232)r=((n-232)*10+8)/255,o=r,t=r;else{n-=16;let a=n%36;r=Math.floor(n/36)/5,o=Math.floor(a/6)/5,t=a%6/5}let i=Math.max(r,o,t)*2;if(i===0)return 30;let s=30+(Math.round(t)<<2|Math.round(o)<<1|Math.round(r));return i===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(n,r,o)=>M.ansi256ToAnsi(M.rgbToAnsi256(n,r,o)),enumerable:!1},hexToAnsi:{value:n=>M.ansi256ToAnsi(M.hexToAnsi256(n)),enumerable:!1}}),M}var wa=ya(),he=wa;var Fn=A(require("node:process"),1),Mo=A(require("node:os"),1),xr=A(require("node:tty"),1);function ue(e,n=globalThis.Deno?globalThis.Deno.args:Fn.default.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",o=n.indexOf(r+e),t=n.indexOf("--");return o!==-1&&(t===-1||o<t)}var{env:N}=Fn.default,Dn;ue("no-color")||ue("no-colors")||ue("color=false")||ue("color=never")?Dn=0:(ue("color")||ue("colors")||ue("color=true")||ue("color=always"))&&(Dn=1);function va(){if("FORCE_COLOR"in N)return N.FORCE_COLOR==="true"?1:N.FORCE_COLOR==="false"?0:N.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(N.FORCE_COLOR,10),3)}function Sa(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Ea(e,{streamIsTTY:n,sniffFlags:r=!0}={}){let o=va();o!==void 0&&(Dn=o);let t=r?Dn:o;if(t===0)return 0;if(r){if(ue("color=16m")||ue("color=full")||ue("color=truecolor"))return 3;if(ue("color=256"))return 2}if("TF_BUILD"in N&&"AGENT_NAME"in N)return 1;if(e&&!n&&t===void 0)return 0;let i=t||0;if(N.TERM==="dumb")return i;if(Fn.default.platform==="win32"){let s=Mo.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in N)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in N)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in N)||N.CI_NAME==="codeship"?1:i;if("TEAMCITY_VERSION"in N)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(N.TEAMCITY_VERSION)?1:0;if(N.COLORTERM==="truecolor"||N.TERM==="xterm-kitty"||N.TERM==="xterm-ghostty"||N.TERM==="wezterm")return 3;if("TERM_PROGRAM"in N){let s=Number.parseInt((N.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(N.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(N.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(N.TERM)||"COLORTERM"in N?1:i}function Lo(e,n={}){let r=Ea(e,{streamIsTTY:e&&e.isTTY,...n});return Sa(r)}var Ta={stdout:Lo({isTTY:xr.default.isatty(1)}),stderr:Lo({isTTY:xr.default.isatty(2)})},No=Ta;function Do(e,n,r){let o=e.indexOf(n);if(o===-1)return e;let t=n.length,i=0,s="";do s+=e.slice(i,o)+n+r,i=o+t,o=e.indexOf(n,i);while(o!==-1);return s+=e.slice(i),s}function Fo(e,n,r,o){let t=0,i="";do{let s=e[o-1]==="\r";i+=e.slice(t,s?o-1:o)+n+(s?`\r
@@ -71,7 +71,7 @@ StandardError=append:${Kn}
71
71
 
72
72
  [Install]
73
73
  WantedBy=default.target
74
- `}function Ua(e){try{return(0,it.execFileSync)("systemctl",["--user",...e],{stdio:"ignore"}),!0}catch{return!1}}function Ba(){return(0,C.existsSync)(J.linux)||(0,C.existsSync)(J.linuxSystemd)}async function Ha(){try{if(process.platform==="darwin")return Ca();if(process.platform==="win32")return await Na();if(process.platform==="linux")return Ba()}catch{}return!1}async function Xo(){try{if(process.platform==="win32"&&Ma(),!await Ha())return!1;if(process.platform==="darwin"){let e=$a(je(),st());return((0,C.existsSync)(J.darwin)?(0,C.readFileSync)(J.darwin,"utf8"):"")===e?!1:((0,C.writeFileSync)(J.darwin,e),!0)}if(process.platform==="win32"){let e=La();return((0,C.existsSync)(J.win)?(0,C.readFileSync)(J.win,"utf8"):"")===e?!1:((0,C.writeFileSync)(J.win,e),!0)}if(process.platform==="linux"){if((0,C.existsSync)(J.linuxSystemd)){let e=Fa();return(0,C.readFileSync)(J.linuxSystemd,"utf8")===e?!1:((0,C.writeFileSync)(J.linuxSystemd,e),Ua(["daemon-reload"]),!0)}if((0,C.existsSync)(J.linux)){let e=Da();return(0,C.readFileSync)(J.linux,"utf8")===e?!1:((0,C.writeFileSync)(J.linux,e),!0)}}}catch{}return!1}var D="https://9remote.cc",Zo=3e4,zo=500,Ir=300,ge={cmdMs:1e3,pendingApprovalMs:3e3,statsMs:5e3,serverReadyIntervalMs:200,serverReadyTimeoutMs:5e3,bgServerReadyTimeoutMs:15e3,bgServerReadyIntervalMs:300},Ke={intervalMs:2e3,timeoutMs:18e4,fetchTimeoutMs:5e3,dnsTimeoutMs:2e3,maxLogEntries:80,postReadyHoldMs:2e3},oe={killCloudflaredMs:500,killCloudflaredTuiMs:300,serverBootMs:2e3,trayReadyMs:1e3,postReadyHoldMs:2e3,bgSpawnFlushMs:400},Oe={maxLogLines:200,headerWidth:44},bt={checkIntervalMs:36e5,connectCheckDebounceMs:9e5,maxRetry:3,retryDelayMs:3e3,verifyTimeoutMs:15e3,lockTtlMs:3e5,lockFile:"update.lock"},ei=5e3,ti=2,ni=3e4,fe={orange:m.rgb(230,138,110),orangeDim:m.rgb(200,120,95)};var ja=Ie.default.dirname((0,ri.fileURLToPath)(__importMetaUrl)),oi=3e3;var Yn=2208,$r=Ie.default.join(At.default.homedir(),".9remote","cloudflared.pid");function Ka(){try{Wo()}catch{}try{if((0,Q.existsSync)($r)){let e=parseInt((0,Q.readFileSync)($r,"utf8"));if(Number.isFinite(e))try{process.kill(e)}catch{}try{(0,Q.unlinkSync)($r)}catch{}}}catch{}try{process.platform==="win32"?(0,nn.execSync)(`for /f "tokens=5" %a in ('netstat -aon ^| findstr :${Yn}') do taskkill /F /PID %a`,{stdio:"ignore",windowsHide:!0}):(0,nn.execSync)(`lsof -ti:${Yn} | xargs kill -9 2>/dev/null || true`,{stdio:"ignore"})}catch{}if(process.platform==="win32"){let e=Date.now()+1500;for(;Date.now()<e;);}}function ii(){return"2.1.1"}function si(e,n){let r=e.split(".").map(Number),o=n.split(".").map(Number);for(let t=0;t<3;t++){if(o[t]>r[t])return!0;if(o[t]<r[t])return!1}return!1}function Ga(){return process.env.CODESPACES==="true"||process.env.GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN?"GitHub Codespaces":(0,Q.existsSync)("/.dockerenv")?"Docker":null}function qn(){Ka()}async function ai(){try{let e=ii();if(!e)return null;let n=await G(mr,{signal:AbortSignal.timeout(oi)});if(!n.ok)return null;let{version:r}=await n.json();return r&&si(e,r)?{current:e,latest:r}:null}catch{return null}}var Vn=Ie.default.join(re.STATE,bt.lockFile);function Wa(){try{if((0,Q.existsSync)(Vn)){let{pid:e,ts:n}=JSON.parse((0,Q.readFileSync)(Vn,"utf8")),r=Date.now()-n<bt.lockTtlMs,o=!1;try{process.kill(e,0),o=!0}catch{}if(r&&o)return!1}}catch{}try{(0,Q.writeFileSync)(Vn,JSON.stringify({pid:process.pid,ts:Date.now()}))}catch{}return!0}async function Va(){try{let e=await G(mr,{signal:AbortSignal.timeout(oi)});if(!e.ok)return null;let{version:n}=await e.json();return n||null}catch{return null}}function Ya(){try{if(process.env.NREMOTE_REGISTRY)return`--registry ${new URL(process.env.NREMOTE_REGISTRY).origin}`}catch{}return""}function qa({currentVersion:e,latest:n,agentPid:r}){let o=Vo(),t=Ya(),i=je(),s=st(),a=Vn,c=`--prefer-online --no-audit --no-fund ${t}`.trim();if(process.platform==="win32"){let f=Ie.default.join(At.default.tmpdir(),`${ne}-restart.vbs`),p=`@echo off
74
+ `}function Ua(e){try{return(0,it.execFileSync)("systemctl",["--user",...e],{stdio:"ignore"}),!0}catch{return!1}}function Ba(){return(0,C.existsSync)(J.linux)||(0,C.existsSync)(J.linuxSystemd)}async function Ha(){try{if(process.platform==="darwin")return Ca();if(process.platform==="win32")return await Na();if(process.platform==="linux")return Ba()}catch{}return!1}async function Xo(){try{if(process.platform==="win32"&&Ma(),!await Ha())return!1;if(process.platform==="darwin"){let e=$a(je(),st());return((0,C.existsSync)(J.darwin)?(0,C.readFileSync)(J.darwin,"utf8"):"")===e?!1:((0,C.writeFileSync)(J.darwin,e),!0)}if(process.platform==="win32"){let e=La();return((0,C.existsSync)(J.win)?(0,C.readFileSync)(J.win,"utf8"):"")===e?!1:((0,C.writeFileSync)(J.win,e),!0)}if(process.platform==="linux"){if((0,C.existsSync)(J.linuxSystemd)){let e=Fa();return(0,C.readFileSync)(J.linuxSystemd,"utf8")===e?!1:((0,C.writeFileSync)(J.linuxSystemd,e),Ua(["daemon-reload"]),!0)}if((0,C.existsSync)(J.linux)){let e=Da();return(0,C.readFileSync)(J.linux,"utf8")===e?!1:((0,C.writeFileSync)(J.linux,e),!0)}}}catch{}return!1}var D="https://9remote.cc",Zo=3e4,zo=500,Ir=300,ge={cmdMs:1e3,pendingApprovalMs:3e3,statsMs:5e3,serverReadyIntervalMs:200,serverReadyTimeoutMs:5e3,bgServerReadyTimeoutMs:15e3,bgServerReadyIntervalMs:300},Ke={intervalMs:2e3,timeoutMs:18e4,fetchTimeoutMs:5e3,dnsTimeoutMs:2e3,maxLogEntries:80,postReadyHoldMs:2e3},oe={killCloudflaredMs:500,killCloudflaredTuiMs:300,serverBootMs:2e3,trayReadyMs:1e3,postReadyHoldMs:2e3,bgSpawnFlushMs:400},Oe={maxLogLines:200,headerWidth:44},bt={checkIntervalMs:36e5,connectCheckDebounceMs:9e5,maxRetry:3,retryDelayMs:3e3,verifyTimeoutMs:15e3,lockTtlMs:3e5,lockFile:"update.lock"},ei=5e3,ti=2,ni=3e4,fe={orange:m.rgb(230,138,110),orangeDim:m.rgb(200,120,95)};var ja=Ie.default.dirname((0,ri.fileURLToPath)(__importMetaUrl)),oi=3e3;var Yn=2208,$r=Ie.default.join(At.default.homedir(),".9remote","cloudflared.pid");function Ka(){try{Wo()}catch{}try{if((0,Q.existsSync)($r)){let e=parseInt((0,Q.readFileSync)($r,"utf8"));if(Number.isFinite(e))try{process.kill(e)}catch{}try{(0,Q.unlinkSync)($r)}catch{}}}catch{}try{process.platform==="win32"?(0,nn.execSync)(`for /f "tokens=5" %a in ('netstat -aon ^| findstr :${Yn}') do taskkill /F /PID %a`,{stdio:"ignore",windowsHide:!0}):(0,nn.execSync)(`lsof -ti:${Yn} | xargs kill -9 2>/dev/null || true`,{stdio:"ignore"})}catch{}if(process.platform==="win32"){let e=Date.now()+1500;for(;Date.now()<e;);}}function ii(){return"2.1.2"}function si(e,n){let r=e.split(".").map(Number),o=n.split(".").map(Number);for(let t=0;t<3;t++){if(o[t]>r[t])return!0;if(o[t]<r[t])return!1}return!1}function Ga(){return process.env.CODESPACES==="true"||process.env.GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN?"GitHub Codespaces":(0,Q.existsSync)("/.dockerenv")?"Docker":null}function qn(){Ka()}async function ai(){try{let e=ii();if(!e)return null;let n=await G(mr,{signal:AbortSignal.timeout(oi)});if(!n.ok)return null;let{version:r}=await n.json();return r&&si(e,r)?{current:e,latest:r}:null}catch{return null}}var Vn=Ie.default.join(re.STATE,bt.lockFile);function Wa(){try{if((0,Q.existsSync)(Vn)){let{pid:e,ts:n}=JSON.parse((0,Q.readFileSync)(Vn,"utf8")),r=Date.now()-n<bt.lockTtlMs,o=!1;try{process.kill(e,0),o=!0}catch{}if(r&&o)return!1}}catch{}try{(0,Q.writeFileSync)(Vn,JSON.stringify({pid:process.pid,ts:Date.now()}))}catch{}return!0}async function Va(){try{let e=await G(mr,{signal:AbortSignal.timeout(oi)});if(!e.ok)return null;let{version:n}=await e.json();return n||null}catch{return null}}function Ya(){try{if(process.env.NREMOTE_REGISTRY)return`--registry ${new URL(process.env.NREMOTE_REGISTRY).origin}`}catch{}return""}function qa({currentVersion:e,latest:n,agentPid:r}){let o=Vo(),t=Ya(),i=je(),s=st(),a=Vn,c=`--prefer-online --no-audit --no-fund ${t}`.trim();if(process.platform==="win32"){let f=Ie.default.join(At.default.tmpdir(),`${ne}-restart.vbs`),p=`@echo off
75
75
  setlocal EnableDelayedExpansion
76
76
  set "NODE=${i}"
77
77
  set "CLI=${s}"