9remote 2.3.4 → 2.3.5

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 rs(){let{port:e,tunnelUrl:n}=Kt,r=process.p
9
9
  `}l||(t+=p)}else{var w=so(dr).times(o.getModuleCount()+3);t+=w+`
10
10
  `,o.modules.forEach(function(x){t+=dr,t+=x.map(Bc).join(""),t+=dr+`
11
11
  `}),t+=w}r?r(t):console.log(t)},setErrorLevel:function(e){this.error=Cs[e]||this.error}}});var Nn=require("fs"),en=require("path"),So=require("url"),To=k(require("os"),1);var Ln=k(require("dns"),1),Ie=k(require("path"),1),po=k(require("os"),1),ne="9remote",yr=process.env.NREMOTE_REGISTRY||`https://registry.npmjs.org/${ne}/latest`,$e=`${ne}@latest`,je=Ie.default.join(po.default.homedir(),".9remote"),re={ROOT:je,LOGS:Ie.default.join(je,"logs"),STATE:Ie.default.join(je,"state"),CONFIG:Ie.default.join(je,"config"),BIN:Ie.default.join(je,"bin"),PIDS:Ie.default.join(je,"pids"),BUFFERS:Ie.default.join(je,"buffers"),DAEMON:Ie.default.join(je,"daemon")},mo=new Ln.default.promises.Resolver;mo.setServers(["1.1.1.1","1.0.0.1","8.8.8.8"]);var gr=Ln.default.lookup,ia=/^(\d{1,3}\.){3}\d{1,3}$|^::1$|^[0-9a-f:]+$/i;Ln.default.lookup=(e,n,r)=>{if(typeof n=="function"&&(r=n,n={}),e==="localhost"||ia.test(e))return gr(e,n,r);mo.resolve4(e).then(o=>{if(!o?.length)return gr(e,n,r);n.all?r(null,o.map(t=>({address:t,family:4}))):r(null,o[0],4)}).catch(()=>gr(e,n,r))};var O=2208,ho=process.execPath,go=(e=process.env)=>process.versions.electron?{...e,ELECTRON_RUN_AS_NODE:"1"}:{...e};var fo=5173;var cl=[`http://localhost:${O}`,`http://127.0.0.1:${O}`,`http://localhost:${fo}`,`http://127.0.0.1:${fo}`],zt={fileName:"agent.log",rotatedName:"agent.log.1",maxBytes:2*1024*1024,cleanupAfterDays:7},yo=60,$={STOPPED:0,PREPARING:1,CONNECTING:2,TUNNELING:3,VERIFYING:4,READY:5},wo={showTunnelUrlInMenu:!1};var vo={CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN:"1"};var Eo={checkIntervalMs:3e4,requestTimeoutMs:5e3},ce={server:{strategy:"exp",baseMs:1e3,maxMs:6e4},tunnelRestart:{strategy:"exp",baseMs:2e3,maxMs:3e5},tunnelSpawn:{strategy:"linear",baseMs:5e3,maxMs:6e4},tunnelRateLimit:{strategy:"exp",baseMs:6e4,maxMs:9e5},internet:{strategy:"linear",baseMs:3e3,maxMs:6e4},sse:{strategy:"linear",baseMs:2e3,maxMs:2e3},urlSync:{strategy:"linear",baseMs:5e3,maxMs:6e4}},sa={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 K(e,n={}){return fetch(e,{...n,headers:{...sa,...n.headers}})}var aa=(0,en.dirname)((0,So.fileURLToPath)(__importMetaUrl)),ca=[(0,en.join)(To.default.homedir(),".9remote",".env"),(0,en.join)(aa,"..",".env")];function la(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 ca)if((0,Nn.existsSync)(e))try{la((0,Nn.readFileSync)(e,"utf8"))}catch{}for(let[e,n]of Object.entries(vo))process.env[e]||(process.env[e]=n);var Tr=k(require("path"),1),Po=k(require("fs"),1),Oo=require("url");var Ro=k(xo(),1),vr=k(require("crypto"),1),{machineIdSync:ua}=Ro.default;async function Et(e=null){let n=e||process.env.MACHINE_ID_SALT||"9remote-salt";try{let r=ua();return vr.default.createHash("sha256").update(r+n).digest("hex").substring(0,16)}catch(r){return console.error("Error getting machine ID:",r),vr.default.randomUUID().replace(/-/g,"").substring(0,16)}}var bo=k(require("crypto"),1),fa=process.env.API_KEY_SECRET||"9remote-api-key-secret";function pa(){let e="abcdefghijklmnopqrstuvwxyz0123456789",n="";for(let r=0;r<4;r++)n+=e.charAt(Math.floor(Math.random()*e.length));return n}function da(e,n){return bo.default.createHmac("sha256",fa).update(e+n).digest("hex").slice(0,6)}function St(e){let n=e.slice(0,8),r=pa(),o=da(n,r);return{key:`sk-${n}-${r}-${o}`,keyId:r}}function Mn(e){return!e||e.length<8?"sk-***":`${e.slice(0,3)}***${e.slice(-4)}`}var se=k(require("fs"),1),nn=k(require("path"),1);var ml=re.STATE,Er=nn.default.join(re.STATE,"state.json"),Sr=nn.default.join(re.ROOT,"keys.json"),Dn=nn.default.join(re.STATE,"cmd.json"),hl=nn.default.join(re.STATE,"settings.json");function Un(){for(let e of[re.ROOT,re.STATE])se.default.existsSync(e)||se.default.mkdirSync(e,{recursive:!0})}function Fn(e){try{Un(),se.default.writeFileSync(Er,JSON.stringify(e,null,2),{mode:384})}catch(n){console.error("Error saving state:",n)}}function Ao(){try{se.default.existsSync(Er)&&se.default.unlinkSync(Er)}catch{}}function Bn(){try{return Un(),se.default.existsSync(Sr)?JSON.parse(se.default.readFileSync(Sr,"utf8")):{machineId:null,key:null,name:"Default",createdAt:null}}catch{return{machineId:null,key:null,name:"Default",createdAt:null}}}function Tt(e){try{Un(),se.default.writeFileSync(Dn,JSON.stringify({cmd:e,ts:Date.now()}))}catch{}}function ko(){try{if(!se.default.existsSync(Dn))return null;let e=JSON.parse(se.default.readFileSync(Dn,"utf8"));return se.default.unlinkSync(Dn),e.cmd}catch{return null}}function it(e,n,r="Default"){try{Un();let o={machineId:e,key:n,name:r,createdAt:new Date().toISOString()};return se.default.writeFileSync(Sr,JSON.stringify(o,null,2),{mode:384}),o}catch(o){return console.error("Error saving key:",o),null}}function _o(){return process.env.CODESPACES==="true"}var ma=Tr.default.dirname((0,Oo.fileURLToPath)(__importMetaUrl));async function Ke(){let e=await Et();if(_o()&&process.env.NREMOTE_API_KEY)return it(e,process.env.NREMOTE_API_KEY,"Codespace");let n=Bn();if(!n.key){let{key:r}=St(e);n=it(e,r,"Default")}return n}function Ee(){return"2.3.4"}var Se=k(require("fs"),1),xr=k(require("path"),1);var jn=re.LOGS,rn=xr.default.join(jn,zt.fileName),Kn=xr.default.join(jn,zt.rotatedName),Io=!1,$o=null;function ha(){Se.default.existsSync(jn)||Se.default.mkdirSync(jn,{recursive:!0})}function ga(){try{if(Se.default.statSync(rn).size<zt.maxBytes)return;try{Se.default.rmSync(Kn,{force:!0})}catch{}Se.default.renameSync(rn,Kn)}catch{}}function ya(){try{let e=Se.default.statSync(Kn);Date.now()-e.mtimeMs>zt.cleanupAfterDays*864e5&&Se.default.rmSync(Kn,{force:!0})}catch{}}function Rr(e){try{ga(),Se.default.appendFileSync(rn,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 ca)if((0,Nn.existsSync)(e))try{la((0,Nn.readFileSync)(e,"utf8"))}catch{}for(let[e,n]of Object.entries(vo))process.env[e]||(process.env[e]=n);var Tr=k(require("path"),1),Po=k(require("fs"),1),Oo=require("url");var Ro=k(xo(),1),vr=k(require("crypto"),1),{machineIdSync:ua}=Ro.default;async function Et(e=null){let n=e||process.env.MACHINE_ID_SALT||"9remote-salt";try{let r=ua();return vr.default.createHash("sha256").update(r+n).digest("hex").substring(0,16)}catch(r){return console.error("Error getting machine ID:",r),vr.default.randomUUID().replace(/-/g,"").substring(0,16)}}var bo=k(require("crypto"),1),fa=process.env.API_KEY_SECRET||"9remote-api-key-secret";function pa(){let e="abcdefghijklmnopqrstuvwxyz0123456789",n="";for(let r=0;r<4;r++)n+=e.charAt(Math.floor(Math.random()*e.length));return n}function da(e,n){return bo.default.createHmac("sha256",fa).update(e+n).digest("hex").slice(0,6)}function St(e){let n=e.slice(0,8),r=pa(),o=da(n,r);return{key:`sk-${n}-${r}-${o}`,keyId:r}}function Mn(e){return!e||e.length<8?"sk-***":`${e.slice(0,3)}***${e.slice(-4)}`}var se=k(require("fs"),1),nn=k(require("path"),1);var ml=re.STATE,Er=nn.default.join(re.STATE,"state.json"),Sr=nn.default.join(re.ROOT,"keys.json"),Dn=nn.default.join(re.STATE,"cmd.json"),hl=nn.default.join(re.STATE,"settings.json");function Un(){for(let e of[re.ROOT,re.STATE])se.default.existsSync(e)||se.default.mkdirSync(e,{recursive:!0})}function Fn(e){try{Un(),se.default.writeFileSync(Er,JSON.stringify(e,null,2),{mode:384})}catch(n){console.error("Error saving state:",n)}}function Ao(){try{se.default.existsSync(Er)&&se.default.unlinkSync(Er)}catch{}}function Bn(){try{return Un(),se.default.existsSync(Sr)?JSON.parse(se.default.readFileSync(Sr,"utf8")):{machineId:null,key:null,name:"Default",createdAt:null}}catch{return{machineId:null,key:null,name:"Default",createdAt:null}}}function Tt(e){try{Un(),se.default.writeFileSync(Dn,JSON.stringify({cmd:e,ts:Date.now()}))}catch{}}function ko(){try{if(!se.default.existsSync(Dn))return null;let e=JSON.parse(se.default.readFileSync(Dn,"utf8"));return se.default.unlinkSync(Dn),e.cmd}catch{return null}}function it(e,n,r="Default"){try{Un();let o={machineId:e,key:n,name:r,createdAt:new Date().toISOString()};return se.default.writeFileSync(Sr,JSON.stringify(o,null,2),{mode:384}),o}catch(o){return console.error("Error saving key:",o),null}}function _o(){return process.env.CODESPACES==="true"}var ma=Tr.default.dirname((0,Oo.fileURLToPath)(__importMetaUrl));async function Ke(){let e=await Et();if(_o()&&process.env.NREMOTE_API_KEY)return it(e,process.env.NREMOTE_API_KEY,"Codespace");let n=Bn();if(!n.key){let{key:r}=St(e);n=it(e,r,"Default")}return n}function Ee(){return"2.3.5"}var Se=k(require("fs"),1),xr=k(require("path"),1);var jn=re.LOGS,rn=xr.default.join(jn,zt.fileName),Kn=xr.default.join(jn,zt.rotatedName),Io=!1,$o=null;function ha(){Se.default.existsSync(jn)||Se.default.mkdirSync(jn,{recursive:!0})}function ga(){try{if(Se.default.statSync(rn).size<zt.maxBytes)return;try{Se.default.rmSync(Kn,{force:!0})}catch{}Se.default.renameSync(rn,Kn)}catch{}}function ya(){try{let e=Se.default.statSync(Kn);Date.now()-e.mtimeMs>zt.cleanupAfterDays*864e5&&Se.default.rmSync(Kn,{force:!0})}catch{}}function Rr(e){try{ga(),Se.default.appendFileSync(rn,e+`
13
13
  `)}catch{}}function Hn(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 Co(){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 wa=/\x1b\[[0-9;]*m/g,va=/https?:\/\/[^\s]+/g;function Ea(e){return String(e).replace(wa,"").replace(va,"").replace(/\s+$/g,"")}function xt(e,n,r){let o=Ea(r);if(!o)return;let t=n==="info"?e:`${e}:${n}`,i=`${Co()} [${t}] ${o}`;if(Rr(i),$o)try{$o(i)}catch{}}function Sa(){process.on("uncaughtException",e=>xt("crash","error",`uncaughtException: ${e?.stack||e?.message||e}`)),process.on("unhandledRejection",e=>{let n=e instanceof Error?e.stack||e.message:String(e);xt("crash","error",`unhandledRejection: ${n}`)}),process.on("exit",e=>Rr(`${Co()} [exit] code=${e} pid=${process.pid}`))}function Lo(){Io||(Io=!0,ha(),ya(),Rr(`
14
14
  === SESSION ${new Date().toISOString()} pid=${process.pid} argv=${process.argv.slice(2).join(" ")} ===`),Sa())}function No(e=60){try{return Se.default.readFileSync(rn,"utf8").split(`
15
15
  `).filter(Boolean).slice(-e)}catch{return[]}}var Ta=process.env.NODE_ENV==="development"||process.env.AGENT_DEBUG==="1";function J(e){return{debug:(...n)=>{Ta&&xt(e,"debug",Hn(n))},info:(...n)=>xt(e,"info",Hn(n)),warn:(...n)=>xt(e,"warn",Hn(n)),error:(...n)=>xt(e,"error",Hn(n))}}var on=rn;var Mo=(e=0)=>n=>`\x1B[${n+e}m`,Do=(e=0)=>n=>`\x1B[${38+e};5;${n}m`,Uo=(e=0)=>(n,r,o)=>`\x1B[${38+e};2;${n};${r};${o}m`,N={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]}},bl=Object.keys(N.modifier),xa=Object.keys(N.color),Ra=Object.keys(N.bgColor),Al=[...xa,...Ra];function ba(){let e=new Map;for(let[n,r]of Object.entries(N)){for(let[o,t]of Object.entries(r))N[o]={open:`\x1B[${t[0]}m`,close:`\x1B[${t[1]}m`},r[o]=N[o],e.set(t[0],t[1]);Object.defineProperty(N,n,{value:r,enumerable:!1})}return Object.defineProperty(N,"codes",{value:e,enumerable:!1}),N.color.close="\x1B[39m",N.bgColor.close="\x1B[49m",N.color.ansi=Mo(),N.color.ansi256=Do(),N.color.ansi16m=Uo(),N.bgColor.ansi=Mo(10),N.bgColor.ansi256=Do(10),N.bgColor.ansi16m=Uo(10),Object.defineProperties(N,{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=>N.rgbToAnsi256(...N.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)=>N.ansi256ToAnsi(N.rgbToAnsi256(n,r,o)),enumerable:!1},hexToAnsi:{value:n=>N.ansi256ToAnsi(N.hexToAnsi256(n)),enumerable:!1}}),N}var Aa=ba(),he=Aa;var Wn=k(require("node:process"),1),Bo=k(require("node:os"),1),br=k(require("node:tty"),1);function le(e,n=globalThis.Deno?globalThis.Deno.args:Wn.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:M}=Wn.default,Gn;le("no-color")||le("no-colors")||le("color=false")||le("color=never")?Gn=0:(le("color")||le("colors")||le("color=true")||le("color=always"))&&(Gn=1);function ka(){if("FORCE_COLOR"in M)return M.FORCE_COLOR==="true"?1:M.FORCE_COLOR==="false"?0:M.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(M.FORCE_COLOR,10),3)}function _a(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Pa(e,{streamIsTTY:n,sniffFlags:r=!0}={}){let o=ka();o!==void 0&&(Gn=o);let t=r?Gn:o;if(t===0)return 0;if(r){if(le("color=16m")||le("color=full")||le("color=truecolor"))return 3;if(le("color=256"))return 2}if("TF_BUILD"in M&&"AGENT_NAME"in M)return 1;if(e&&!n&&t===void 0)return 0;let i=t||0;if(M.TERM==="dumb")return i;if(Wn.default.platform==="win32"){let s=Bo.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in M)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in M)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in M)||M.CI_NAME==="codeship"?1:i;if("TEAMCITY_VERSION"in M)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(M.TEAMCITY_VERSION)?1:0;if(M.COLORTERM==="truecolor"||M.TERM==="xterm-kitty"||M.TERM==="xterm-ghostty"||M.TERM==="wezterm")return 3;if("TERM_PROGRAM"in M){let s=Number.parseInt((M.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(M.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(M.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(M.TERM)||"COLORTERM"in M?1:i}function Fo(e,n={}){let r=Pa(e,{streamIsTTY:e&&e.isTTY,...n});return _a(r)}var Oa={stdout:Fo({isTTY:br.default.isatty(1)}),stderr:Fo({isTTY:br.default.isatty(2)})},Ho=Oa;function jo(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 Ko(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:${Jn}
71
71
 
72
72
  [Install]
73
73
  WantedBy=default.target
74
- `}function Ya(e){try{return(0,ct.execFileSync)("systemctl",["--user",...e],{stdio:"ignore"}),!0}catch{return!1}}function qa(){return(0,C.existsSync)(Q.linux)||(0,C.existsSync)(Q.linuxSystemd)}async function Ja(){try{if(process.platform==="darwin")return Ha();if(process.platform==="win32")return await Ga();if(process.platform==="linux")return qa()}catch{}return!1}async function ni(){try{if(process.platform==="win32"&&Ka(),!await Ja())return!1;if(process.platform==="darwin"){let e=Ba(xe(),We());return((0,C.existsSync)(Q.darwin)?(0,C.readFileSync)(Q.darwin,"utf8"):"")===e?!1:((0,C.writeFileSync)(Q.darwin,e),!0)}if(process.platform==="win32"){let e=ja();return((0,C.existsSync)(Q.win)?(0,C.readFileSync)(Q.win,"utf8"):"")===e?!1:((0,C.writeFileSync)(Q.win,e),!0)}if(process.platform==="linux"){if((0,C.existsSync)(Q.linuxSystemd)){let e=Va();return(0,C.readFileSync)(Q.linuxSystemd,"utf8")===e?!1:((0,C.writeFileSync)(Q.linuxSystemd,e),Ya(["daemon-reload"]),!0)}if((0,C.existsSync)(Q.linux)){let e=Wa();return(0,C.readFileSync)(Q.linux,"utf8")===e?!1:((0,C.writeFileSync)(Q.linux,e),!0)}}}catch{}return!1}var Qa=process.env.NODE_ENV==="development";var D=process.env.NREMOTE_WORKER_URL||(Qa?"https://dev.9remote.cc":"https://9remote.cc"),ri=3e4,oi=500,Lr=300,ge={cmdMs:1e3,pendingApprovalMs:3e3,statsMs:5e3,serverReadyIntervalMs:200,serverReadyTimeoutMs:5e3,bgServerReadyTimeoutMs:15e3,bgServerReadyIntervalMs:300},Ve={intervalMs:2e3,timeoutMs:18e4,fetchTimeoutMs:5e3,dnsTimeoutMs:2e3,maxLogEntries:80,postReadyHoldMs:2e3},ue={killCloudflaredMs:500,killCloudflaredTuiMs:300,serverBootMs:2e3,trayReadyMs:1e3,postReadyHoldMs:2e3,bgSpawnFlushMs:400};var Ce={maxLogLines:200,headerWidth:44},kt={checkIntervalMs:36e5,connectCheckDebounceMs:9e5,maxRetry:3,retryDelayMs:3e3,verifyTimeoutMs:15e3,lockTtlMs:3e5,lockFile:"update.lock"},ii=5e3,si=2,ai=3e4,fe={orange:h.rgb(230,138,110),orangeDim:h.rgb(200,120,95)};var Xa=Re.default.dirname((0,ci.fileURLToPath)(__importMetaUrl)),li=3e3;var zn=2208,Nr=Re.default.join(_t.default.homedir(),".9remote","cloudflared.pid");function Za(){try{Jo()}catch{}try{if((0,G.existsSync)(Nr)){let e=parseInt((0,G.readFileSync)(Nr,"utf8"));if(Number.isFinite(e))try{process.kill(e)}catch{}try{(0,G.unlinkSync)(Nr)}catch{}}}catch{}try{process.platform==="win32"?(0,un.execSync)(`for /f "tokens=5" %a in ('netstat -aon ^| findstr :${zn}') do taskkill /F /PID %a`,{stdio:"ignore",windowsHide:!0}):(0,un.execSync)(`lsof -ti:${zn} | xargs kill -9 2>/dev/null || true`,{stdio:"ignore"})}catch{}if(process.platform==="win32"){let e=Date.now()+1500;for(;Date.now()<e;);}}function ui(){return"2.3.4"}function fi(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 za(){return process.env.CODESPACES==="true"||process.env.GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN?"GitHub Codespaces":(0,G.existsSync)("/.dockerenv")?"Docker":null}function er(){Za()}async function pi(){try{let e=ui();if(!e)return null;let n=await K(yr,{signal:AbortSignal.timeout(li)});if(!n.ok)return null;let{version:r}=await n.json();return r&&fi(e,r)?{current:e,latest:r}:null}catch{return null}}var Zn=Re.default.join(re.STATE,kt.lockFile);function ec(){try{if((0,G.existsSync)(Zn)){let{pid:e,ts:n}=JSON.parse((0,G.readFileSync)(Zn,"utf8")),r=Date.now()-n<kt.lockTtlMs,o=!1;try{process.kill(e,0),o=!0}catch{}if(r&&o)return!1}}catch{}try{(0,G.writeFileSync)(Zn,JSON.stringify({pid:process.pid,ts:Date.now()}))}catch{}return!0}async function tc(){try{let e=await K(yr,{signal:AbortSignal.timeout(li)});if(!e.ok)return null;let{version:n}=await e.json();return n||null}catch{return null}}function nc(){try{if(process.env.NREMOTE_REGISTRY)return`--registry ${new URL(process.env.NREMOTE_REGISTRY).origin}`}catch{}return""}function rc(){let e=We(),n=Re.default.sep;for(let r of[`${n}lib${n}node_modules${n}`,`${n}node_modules${n}`]){let o=e.indexOf(r);if(o>0)return`--prefix "${e.slice(0,o)}"`}return""}function oc(){let e=process.env.NREMOTE_NPM_CLI;return e&&(0,G.existsSync)(e)?process.platform==="win32"?`"${xe()}" "${e}"`:`env ELECTRON_RUN_AS_NODE=1 "${xe()}" "${e}"`:"npm"}function ic({currentVersion:e,latest:n,agentPid:r}){let o=Qo(),t=nc(),i=xe(),s=zo(),a=We(),c=Zn,l=`--prefer-online --no-audit --no-fund ${t} ${rc()}`.trim(),u=oc();if(process.platform==="win32"){let d=Re.default.join(_t.default.tmpdir(),`${ne}-restart.vbs`),m=`@echo off
74
+ `}function Ya(e){try{return(0,ct.execFileSync)("systemctl",["--user",...e],{stdio:"ignore"}),!0}catch{return!1}}function qa(){return(0,C.existsSync)(Q.linux)||(0,C.existsSync)(Q.linuxSystemd)}async function Ja(){try{if(process.platform==="darwin")return Ha();if(process.platform==="win32")return await Ga();if(process.platform==="linux")return qa()}catch{}return!1}async function ni(){try{if(process.platform==="win32"&&Ka(),!await Ja())return!1;if(process.platform==="darwin"){let e=Ba(xe(),We());return((0,C.existsSync)(Q.darwin)?(0,C.readFileSync)(Q.darwin,"utf8"):"")===e?!1:((0,C.writeFileSync)(Q.darwin,e),!0)}if(process.platform==="win32"){let e=ja();return((0,C.existsSync)(Q.win)?(0,C.readFileSync)(Q.win,"utf8"):"")===e?!1:((0,C.writeFileSync)(Q.win,e),!0)}if(process.platform==="linux"){if((0,C.existsSync)(Q.linuxSystemd)){let e=Va();return(0,C.readFileSync)(Q.linuxSystemd,"utf8")===e?!1:((0,C.writeFileSync)(Q.linuxSystemd,e),Ya(["daemon-reload"]),!0)}if((0,C.existsSync)(Q.linux)){let e=Wa();return(0,C.readFileSync)(Q.linux,"utf8")===e?!1:((0,C.writeFileSync)(Q.linux,e),!0)}}}catch{}return!1}var Qa=process.env.NODE_ENV==="development";var D=process.env.NREMOTE_WORKER_URL||(Qa?"https://dev.9remote.cc":"https://9remote.cc"),ri=3e4,oi=500,Lr=300,ge={cmdMs:1e3,pendingApprovalMs:3e3,statsMs:5e3,serverReadyIntervalMs:200,serverReadyTimeoutMs:5e3,bgServerReadyTimeoutMs:15e3,bgServerReadyIntervalMs:300},Ve={intervalMs:2e3,timeoutMs:18e4,fetchTimeoutMs:5e3,dnsTimeoutMs:2e3,maxLogEntries:80,postReadyHoldMs:2e3},ue={killCloudflaredMs:500,killCloudflaredTuiMs:300,serverBootMs:2e3,trayReadyMs:1e3,postReadyHoldMs:2e3,bgSpawnFlushMs:400};var Ce={maxLogLines:200,headerWidth:44},kt={checkIntervalMs:36e5,connectCheckDebounceMs:9e5,maxRetry:3,retryDelayMs:3e3,verifyTimeoutMs:15e3,lockTtlMs:3e5,lockFile:"update.lock"},ii=5e3,si=2,ai=3e4,fe={orange:h.rgb(230,138,110),orangeDim:h.rgb(200,120,95)};var Xa=Re.default.dirname((0,ci.fileURLToPath)(__importMetaUrl)),li=3e3;var zn=2208,Nr=Re.default.join(_t.default.homedir(),".9remote","cloudflared.pid");function Za(){try{Jo()}catch{}try{if((0,G.existsSync)(Nr)){let e=parseInt((0,G.readFileSync)(Nr,"utf8"));if(Number.isFinite(e))try{process.kill(e)}catch{}try{(0,G.unlinkSync)(Nr)}catch{}}}catch{}try{process.platform==="win32"?(0,un.execSync)(`for /f "tokens=5" %a in ('netstat -aon ^| findstr :${zn}') do taskkill /F /PID %a`,{stdio:"ignore",windowsHide:!0}):(0,un.execSync)(`lsof -ti:${zn} | xargs kill -9 2>/dev/null || true`,{stdio:"ignore"})}catch{}if(process.platform==="win32"){let e=Date.now()+1500;for(;Date.now()<e;);}}function ui(){return"2.3.5"}function fi(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 za(){return process.env.CODESPACES==="true"||process.env.GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN?"GitHub Codespaces":(0,G.existsSync)("/.dockerenv")?"Docker":null}function er(){Za()}async function pi(){try{let e=ui();if(!e)return null;let n=await K(yr,{signal:AbortSignal.timeout(li)});if(!n.ok)return null;let{version:r}=await n.json();return r&&fi(e,r)?{current:e,latest:r}:null}catch{return null}}var Zn=Re.default.join(re.STATE,kt.lockFile);function ec(){try{if((0,G.existsSync)(Zn)){let{pid:e,ts:n}=JSON.parse((0,G.readFileSync)(Zn,"utf8")),r=Date.now()-n<kt.lockTtlMs,o=!1;try{process.kill(e,0),o=!0}catch{}if(r&&o)return!1}}catch{}try{(0,G.writeFileSync)(Zn,JSON.stringify({pid:process.pid,ts:Date.now()}))}catch{}return!0}async function tc(){try{let e=await K(yr,{signal:AbortSignal.timeout(li)});if(!e.ok)return null;let{version:n}=await e.json();return n||null}catch{return null}}function nc(){try{if(process.env.NREMOTE_REGISTRY)return`--registry ${new URL(process.env.NREMOTE_REGISTRY).origin}`}catch{}return""}function rc(){let e=We(),n=Re.default.sep;for(let r of[`${n}lib${n}node_modules${n}`,`${n}node_modules${n}`]){let o=e.indexOf(r);if(o>0)return`--prefix "${e.slice(0,o)}"`}return""}function oc(){let e=process.env.NREMOTE_NPM_CLI;return e&&(0,G.existsSync)(e)?process.platform==="win32"?`"${xe()}" "${e}"`:`env ELECTRON_RUN_AS_NODE=1 "${xe()}" "${e}"`:"npm"}function ic({currentVersion:e,latest:n,agentPid:r}){let o=Qo(),t=nc(),i=xe(),s=zo(),a=We(),c=Zn,l=`--prefer-online --no-audit --no-fund ${t} ${rc()}`.trim(),u=oc();if(process.platform==="win32"){let d=Re.default.join(_t.default.tmpdir(),`${ne}-restart.vbs`),m=`@echo off
75
75
  setlocal EnableDelayedExpansion
76
76
  set "NODE=${i}"
77
77
  set "CLI=${a}"