9remote 2.1.20 → 2.2.1

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.
@@ -1,12 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  const __importMetaUrl = require('url').pathToFileURL(__filename).href;
3
- var U=Object.create;var L=Object.defineProperty;var Z=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var J=Object.getPrototypeOf,V=Object.prototype.hasOwnProperty;var K=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of W(r))!V.call(e,s)&&s!==t&&L(e,s,{get:()=>r[s],enumerable:!(n=Z(r,s))||n.enumerable});return e};var I=(e,r,t)=>(t=e!=null?U(J(e)):{},K(r||!e||!e.__esModule?L(t,"default",{value:e,enumerable:!0}):t,e));var H=I(require("net"),1),a=I(require("fs"),1),g=I(require("path"),1),v=I(require("os"),1),G=I(require("node-pty"),1);var A="44",k={win32:[{id:"cmd",label:"Command Prompt",path:"cmd.exe",args:[]},{id:"powershell",label:"PowerShell",path:"powershell.exe",args:["-NoLogo"]},{id:"pwsh",label:"PowerShell Core",path:"pwsh.exe",args:["-NoLogo"]}],unix:[{id:"bash",label:"Bash",path:"/bin/bash",args:["-l"]},{id:"zsh",label:"Zsh",path:"/bin/zsh",args:["-l"]},{id:"sh",label:"Sh",path:"/bin/sh",args:["-l"]}]};function B(e){if(process.platform==="win32"){let n=e?k.win32.find(i=>i.id===e):null;if(n)return n;let s=process.env.COMSPEC;return s?{id:"cmd",label:"Command Prompt",path:s,args:[]}:k.win32[0]}let r=process.env.SHELL||"/bin/bash",t=r.split("/").pop();return{id:t,label:t,path:r,args:["-l"]}}function R(e){return e?.length?e.reduce((r,t)=>r+t.length,0):0}function _(e,r){if(!e?.length||r<=0)return Buffer.alloc(0);let t=r,n=[];for(let i=e.length-1;i>=0&&t>0;i--){let o=e[i];o.length<=t?(n.push(o),t-=o.length):(n.push(o.subarray(o.length-t)),t=0)}n.reverse();let s=Buffer.concat(n);if(s.length>1&&s[0]!==27){let i=Math.min(s.length,512);for(let o=1;o<i;o++)if(s[o]===27)return s.subarray(o)}return s}function X(e,r,t=512){if(r<=0||!e?.length)return r;let n=0;for(let o of e)n+=o.length;let s=n,i=t;for(let o=e.length-1;o>=0&&i>0;o--){let c=e[o];if(c.length===0){s-=0;continue}let p=s-c.length;if(p>=r){s=p;continue}let f=Math.min(c.length,r-p);for(let l=f-1;l>=0&&i>0;l--){if(c[l]===27)return p+l;i--}s=p}return r}function F(e,r,t){if(!e?.length||t<=0)return{prefix:Buffer.alloc(0),trimmed:0,extra:0};let n=R(e),s=n-Math.max(0,Math.min(r,n)),i=s-t;if(i<0&&(t+=i,i=0),t<=0)return{prefix:Buffer.alloc(0),trimmed:0,extra:0};let o=0;if(i>0){let f=X(e,i);f<i&&(o=i-f,i=f,t+=o)}let c=0,p=[];for(let f=0;f<e.length&&t>0;f++){let l=e[f],b=c+l.length;if(b<=i){c=b;continue}if(c>=s)break;let u=Math.max(0,i-c),S=Math.min(t,l.length-u);p.push(l.subarray(u,u+S)),t-=S,c=b}return{prefix:Buffer.concat(p),trimmed:0,extra:o}}var D=g.default.join(v.default.homedir(),".9remote"),E=process.platform==="win32"?"\\\\.\\pipe\\9remote-pty":g.default.join(D,"pty-daemon.sock"),C=g.default.join(D,"pids","ptyDaemon.pid"),m=new Map,M=new Set,j=2*1024*1024,Y=128*1024,Q=128*1024,ee=5*1024*1024,te=["1049","1047","1000","1002","1003","1006","1015","1005"],se=/\x1b\[\?([0-9;]+)([hl])/g;function re(e,r){typeof r!="string"&&(r=String(r));for(let t of r.matchAll(se)){let n=t[2]==="h";for(let s of t[1].split(";"))e[n?"add":"delete"](`?${s}`)}}function ne(e){let r=te.filter(t=>e.has(`?${t}`));return r.length?`\x1B[?${r.join(";")}h`:""}var N=g.default.join(D,"logs"),O=g.default.join(N,"daemon.log");try{a.default.existsSync(N)||a.default.mkdirSync(N,{recursive:!0})}catch{}function oe(){try{if(a.default.existsSync(O)&&a.default.statSync(O).size>ee){let t=a.default.readFileSync(O,"utf8").slice(-1024*1024);a.default.writeFileSync(O,t)}}catch{}}function x(e,r=null){oe();let n=`[${new Date().toISOString()}] ERROR: ${e}`;r&&(n+=` - ${r.message||r}`),n+=`
4
- `;try{a.default.appendFileSync(O,n)}catch{}console.error(n.trim())}function ie(){return process.env.CODESPACES==="true"?process.env.CODESPACE_VSCODE_FOLDER||"/workspaces":process.env.HOME||process.env.USERPROFILE||v.default.homedir()}function ce(e){let r={...process.env,TERM:"xterm-256color",COLORTERM:"truecolor",LANG:process.env.LANG||"en_US.UTF-8"};delete r.PORT;let t=e.includes("zsh"),n=e.includes("bash"),s=null;if(t){s=a.default.mkdtempSync(g.default.join(v.default.tmpdir(),"9remote-zsh-"));let i=g.default.join(s,".zshrc"),o=r.HOME||v.default.homedir(),c="";c+=`[ -f "${o}/.zprofile" ] && source "${o}/.zprofile"
3
+ var Z=Object.create;var q=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty;var X=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of J(r))!K.call(e,s)&&s!==t&&q(e,s,{get:()=>r[s],enumerable:!(n=W(r,s))||n.enumerable});return e};var I=(e,r,t)=>(t=e!=null?Z(V(e)):{},X(r||!e||!e.__esModule?q(t,"default",{value:e,enumerable:!0}):t,e));var G=I(require("net"),1),a=I(require("fs"),1),g=I(require("path"),1),M=I(require("os"),1),U=I(require("node-pty"),1);var k="46";function Y(){return`function prompt { $p = $PWD.Path -replace '\\\\','/'; "$([char]27)]7;file://$([System.Net.Dns]::GetHostName())$p$([char]27)\\PS $($PWD.Path)> " }`}function B(e){return e.id==="powershell"||e.id==="pwsh"?[...e.args,"-NoExit","-Command",Y()]:e.args}var L={win32:[{id:"cmd",label:"Command Prompt",path:"cmd.exe",args:[]},{id:"powershell",label:"PowerShell",path:"powershell.exe",args:["-NoLogo"]},{id:"pwsh",label:"PowerShell Core",path:"pwsh.exe",args:["-NoLogo"]}],unix:[{id:"bash",label:"Bash",path:"/bin/bash",args:["-l"]},{id:"zsh",label:"Zsh",path:"/bin/zsh",args:["-l"]},{id:"sh",label:"Sh",path:"/bin/sh",args:["-l"]}]};function F(e){if(process.platform==="win32"){let n=e?L.win32.find(i=>i.id===e):null;if(n)return n;let s=process.env.COMSPEC;return s?{id:"cmd",label:"Command Prompt",path:s,args:[]}:L.win32[0]}let r=process.env.SHELL||"/bin/bash",t=r.split("/").pop();return{id:t,label:t,path:r,args:["-l"]}}function O(e){return e?.length?e.reduce((r,t)=>r+t.length,0):0}function N(e,r){if(!e?.length||r<=0)return Buffer.alloc(0);let t=r,n=[];for(let i=e.length-1;i>=0&&t>0;i--){let o=e[i];o.length<=t?(n.push(o),t-=o.length):(n.push(o.subarray(o.length-t)),t=0)}n.reverse();let s=Buffer.concat(n);if(s.length>1&&s[0]!==27){let i=Math.min(s.length,512);for(let o=1;o<i;o++)if(s[o]===27)return s.subarray(o)}return s}function Q(e,r,t=512){if(r<=0||!e?.length)return r;let n=0;for(let o of e)n+=o.length;let s=n,i=t;for(let o=e.length-1;o>=0&&i>0;o--){let c=e[o];if(c.length===0){s-=0;continue}let d=s-c.length;if(d>=r){s=d;continue}let f=Math.min(c.length,r-d);for(let l=f-1;l>=0&&i>0;l--){if(c[l]===27)return d+l;i--}s=d}return r}function j(e,r,t){if(!e?.length||t<=0)return{prefix:Buffer.alloc(0),trimmed:0,extra:0};let n=O(e),s=n-Math.max(0,Math.min(r,n)),i=s-t;if(i<0&&(t+=i,i=0),t<=0)return{prefix:Buffer.alloc(0),trimmed:0,extra:0};let o=0;if(i>0){let f=Q(e,i);f<i&&(o=i-f,i=f,t+=o)}let c=0,d=[];for(let f=0;f<e.length&&t>0;f++){let l=e[f],b=c+l.length;if(b<=i){c=b;continue}if(c>=s)break;let p=Math.max(0,i-c),S=Math.min(t,l.length-p);d.push(l.subarray(p,p+S)),t-=S,c=b}return{prefix:Buffer.concat(d),trimmed:0,extra:o}}var $=g.default.join(M.default.homedir(),".9remote"),E=process.platform==="win32"?"\\\\.\\pipe\\9remote-pty":g.default.join($,"pty-daemon.sock"),_=g.default.join($,"pids","ptyDaemon.pid"),m=new Map,v=new Set,H=2*1024*1024,ee=128*1024,te=128*1024,se=5*1024*1024,re=["1049","1047","1000","1002","1003","1006","1015","1005"],ne=/\x1b\[\?([0-9;]+)([hl])/g;function oe(e,r){typeof r!="string"&&(r=String(r));for(let t of r.matchAll(ne)){let n=t[2]==="h";for(let s of t[1].split(";"))e[n?"add":"delete"](`?${s}`)}}function ie(e){let r=re.filter(t=>e.has(`?${t}`));return r.length?`\x1B[?${r.join(";")}h`:""}var C=g.default.join($,"logs"),R=g.default.join(C,"daemon.log");try{a.default.existsSync(C)||a.default.mkdirSync(C,{recursive:!0})}catch{}function ce(){try{if(a.default.existsSync(R)&&a.default.statSync(R).size>se){let t=a.default.readFileSync(R,"utf8").slice(-1024*1024);a.default.writeFileSync(R,t)}}catch{}}function x(e,r=null){ce();let n=`[${new Date().toISOString()}] ERROR: ${e}`;r&&(n+=` - ${r.message||r}`),n+=`
4
+ `;try{a.default.appendFileSync(R,n)}catch{}console.error(n.trim())}function le(){return process.env.CODESPACES==="true"?process.env.CODESPACE_VSCODE_FOLDER||"/workspaces":process.env.HOME||process.env.USERPROFILE||M.default.homedir()}function ae(e){let r={...process.env,TERM:"xterm-256color",COLORTERM:"truecolor",LANG:process.env.LANG||"en_US.UTF-8"};delete r.PORT;let t=e.includes("zsh"),n=e.includes("bash"),s=null;if(t){s=a.default.mkdtempSync(g.default.join(M.default.tmpdir(),"9remote-zsh-"));let i=g.default.join(s,".zshrc"),o=r.HOME||M.default.homedir(),c="";c+=`[ -f "${o}/.zprofile" ] && source "${o}/.zprofile"
5
5
  `,c+=`[ -f "${o}/.zshrc" ] && source "${o}/.zshrc"
6
6
  `,c+=`[ -f "${o}/.zlogin" ] && source "${o}/.zlogin"
7
7
  `,c+='NineRemoteOsc7() { print -Pn "\\e]7;file://%m${PWD}\\e\\\\" }\n',c+=`precmd_functions+=( NineRemoteOsc7 )
8
- `,a.default.writeFileSync(i,c),r.ZDOTDIR=s}else if(n){let i=r.PROMPT_COMMAND||"";r.PROMPT_COMMAND=`printf "\\e]7;file://%s\\a" "\${HOSTNAME}\${PWD}"${i?`; ${i}`:""}`}return{env:r,zdotDir:s}}function $(e){let r=JSON.stringify(e)+`
9
- `;for(let t of M)try{t.write(r)}catch{}}function h(e,r){try{e.write(JSON.stringify(r)+`
10
- `)}catch{}}function le(e,r,t=80,n=24,s=null,i=null){if(m.has(e))return{success:!1,error:"Session already exists"};let o=B(s);(!i||!a.default.existsSync(i))&&(i=ie());try{let{env:c,zdotDir:p}=ce(o.path);c.NINE_REMOTE_SESSION_ID=e;let f=G.default.spawn(o.path,o.args,{name:"xterm-256color",cols:t,rows:n,cwd:i,env:c,useConpty:process.platform==="win32"});if(o.id==="powershell"||o.id==="pwsh"){let u=`function prompt { $p = $PWD.Path -replace '\\\\','/'; "$([char]27)]7;file://$([System.Net.Dns]::GetHostName())$p$([char]27)\\PS $($PWD.Path)> " }\r
11
- `;setTimeout(()=>{try{f.write(u)}catch{}},500)}let l={pty:f,buffer:[],modes:new Set,name:r,createdAt:Date.now(),cwd:i,shellId:o.id,shellLabel:o.label,zdotDir:p,pending:null,flushScheduled:!1},b=()=>{l.flushScheduled=!1;let u=l.pending;u&&(l.pending=null,$({type:"output",sessionId:e,enc:"b64",data:Buffer.from(u).toString("base64")}))};return f.onData(u=>{l.buffer.push(Buffer.from(u,"utf-8")),re(l.modes,u);let S=u.match(/\x1b\]7;file:\/\/[^/]*([^\x07\x1b]*)/);if(S){let d;try{d=decodeURIComponent(S[1])}catch{d=S[1]}d&&d!==l.cwd&&(l.cwd=d,$({type:"cwdChange",sessionId:e,cwd:d}))}R(l.buffer)>j&&(l.buffer=[_(l.buffer,j)]),l.pending=l.pending===null?u:l.pending+u,l.flushScheduled||(l.flushScheduled=!0,setImmediate(b))}),f.onExit(()=>{m.delete(e),l.zdotDir&&a.default.rm(l.zdotDir,{recursive:!0,force:!0},()=>{}),$({type:"sessionClosed",sessionId:e})}),m.set(e,l),{success:!0,sessionId:e,cwd:i,shellId:o.id,shellLabel:o.label}}catch(c){return x("Failed to create session",c),{success:!1,error:c.message}}}function ae(e,r){let{type:t,sessionId:n,...s}=r;switch(t){case"ping":h(e,{type:"pong",version:A,requestId:s.requestId});break;case"listSessions":let i=Array.from(m.entries()).map(([d,y])=>({id:d,name:y.name,createdAt:y.createdAt,shellId:y.shellId,shellLabel:y.shellLabel,cwd:y.cwd}));h(e,{type:"sessionList",sessions:i,requestId:s.requestId});break;case"createSession":let o=le(n||`session-${Date.now()}`,s.name,s.cols,s.rows,s.shellId,s.cwd);h(e,{type:"createResult",...o,requestId:s.requestId});break;case"joinSession":let c=m.get(n);if(!c){h(e,{type:"joinResult",success:!1,error:"Session not found",requestId:s.requestId});return}let p=ne(c.modes);p&&h(e,{type:"output",sessionId:n,enc:"b64",replay:!0,data:Buffer.from(p).toString("base64")});let f=_(c.buffer,Y);f&&f.length&&h(e,{type:"output",sessionId:n,enc:"b64",replay:!0,data:f.toString("base64")});let l=R(c.buffer);h(e,{type:"joinResult",success:!0,name:c.name,cwd:c.cwd,shellId:c.shellId,shellLabel:c.shellLabel,total:l,replaySize:f?f.length:0,requestId:s.requestId});break;case"requestHistory":{let d=m.get(n);if(!d){h(e,{type:"historyResult",success:!1,error:"Session not found",requestId:s.requestId});return}let y=R(d.buffer),z=Math.max(0,Math.min(s.have||0,y)),q=y-z,P=Math.min(Q,q),{prefix:w,extra:ue=0}=P>0?F(d.buffer,z,P):{prefix:Buffer.alloc(0),extra:0};h(e,{type:"historyResult",success:!0,sessionId:n,enc:"b64",prefix:w&&w.length?w.toString("base64"):"",prefixLen:w?w.length:0,total:y,remaining:Math.max(0,q-P),requestId:s.requestId});break}case"input":let b=m.get(n);b?.pty&&b.pty.write(s.data);break;case"resize":let u=m.get(n);if(u?.pty)try{u.pty.resize(s.cols,s.rows)}catch{}break;case"deleteSession":let S=m.get(n);S?(S.pty&&S.pty.kill(),m.delete(n),$({type:"sessionClosed",sessionId:n}),h(e,{type:"deleteResult",success:!0,requestId:s.requestId})):h(e,{type:"deleteResult",success:!1,error:"Session not found",requestId:s.requestId});break;case"getCwd":let T=m.get(n);h(e,{type:"cwdResult",cwd:T?.cwd||null,requestId:s.requestId});break;default:x(`Unknown message type: ${t}`)}}function fe(){if(!a.default.existsSync(D))try{a.default.mkdirSync(D,{recursive:!0})}catch(t){x("Failed to create socket directory",t),process.exit(1)}if(process.platform!=="win32"&&a.default.existsSync(E))try{a.default.unlinkSync(E)}catch(t){x("Failed to remove stale socket",t),process.exit(1)}let e=H.default.createServer(t=>{M.add(t);let n="";t.on("data",s=>{n+=s.toString();let i=n.split(`
12
- `);n=i.pop()||"";for(let o of i)if(o.trim())try{let c=JSON.parse(o);ae(t,c)}catch{x("Invalid message",o)}}),t.on("close",()=>{M.delete(t)}),t.on("error",s=>{x("Client error",s),M.delete(t)})});e.on("error",t=>{x("Server error",t),t.code==="EADDRINUSE"&&x("Socket already in use, exiting"),process.exit(1)}),e.listen(E,()=>{if(process.platform!=="win32")try{a.default.chmodSync(E,384)}catch{}});try{a.default.mkdirSync(g.default.dirname(C),{recursive:!0}),a.default.writeFileSync(C,String(process.pid),{mode:384})}catch{}let r=()=>{for(let[,t]of m)if(t.pty)try{t.pty.kill()}catch{}try{e.close()}catch{}if(process.platform!=="win32"&&a.default.existsSync(E))try{a.default.unlinkSync(E)}catch{}try{a.default.unlinkSync(C)}catch{}process.exit(0)};process.on("SIGTERM",r),process.on("SIGINT",r)}fe();
8
+ `,a.default.writeFileSync(i,c),r.ZDOTDIR=s}else if(n){let i=r.PROMPT_COMMAND||"";r.PROMPT_COMMAND=`printf "\\e]7;file://%s\\a" "\${HOSTNAME}\${PWD}"${i?`; ${i}`:""}`}return/cmd\.exe$/i.test(e)&&(r.PROMPT=`$E]7;file://${process.env.COMPUTERNAME||""}/$P$E\\$G$S`),{env:r,zdotDir:s}}function D(e){let r=JSON.stringify(e)+`
9
+ `;for(let t of v)try{t.write(r)}catch{}}function h(e,r){try{e.write(JSON.stringify(r)+`
10
+ `)}catch{}}function fe(e,r,t=80,n=24,s=null,i=null){if(m.has(e))return{success:!1,error:"Session already exists"};let o=F(s);(!i||!a.default.existsSync(i))&&(i=le());try{let{env:c,zdotDir:d}=ae(o.path);c.NINE_REMOTE_SESSION_ID=e;let f=U.default.spawn(o.path,B(o),{name:"xterm-256color",cols:t,rows:n,cwd:i,env:c,useConpty:process.platform==="win32"}),l={pty:f,buffer:[],modes:new Set,name:r,createdAt:Date.now(),cwd:i,shellId:o.id,shellLabel:o.label,zdotDir:d,pending:null,flushScheduled:!1},b=()=>{l.flushScheduled=!1;let p=l.pending;p&&(l.pending=null,D({type:"output",sessionId:e,enc:"b64",data:Buffer.from(p).toString("base64")}))};return f.onData(p=>{l.buffer.push(Buffer.from(p,"utf-8")),oe(l.modes,p);let S=p.match(/\x1b\]7;file:\/\/[^/]*([^\x07\x1b]*)/);if(S){let u;try{u=decodeURIComponent(S[1])}catch{u=S[1]}process.platform==="win32"&&/^\/[a-zA-Z]:[\\/]/.test(u)&&(u=u.slice(1)),u&&u!==l.cwd&&(l.cwd=u,D({type:"cwdChange",sessionId:e,cwd:u}))}O(l.buffer)>H&&(l.buffer=[N(l.buffer,H)]),l.pending=l.pending===null?p:l.pending+p,l.flushScheduled||(l.flushScheduled=!0,setImmediate(b))}),f.onExit(()=>{m.delete(e),l.zdotDir&&a.default.rm(l.zdotDir,{recursive:!0,force:!0},()=>{}),D({type:"sessionClosed",sessionId:e})}),m.set(e,l),{success:!0,sessionId:e,cwd:i,shellId:o.id,shellLabel:o.label}}catch(c){return x("Failed to create session",c),{success:!1,error:c.message}}}function ue(e,r){let{type:t,sessionId:n,...s}=r;switch(t){case"ping":h(e,{type:"pong",version:k,requestId:s.requestId});break;case"listSessions":let i=Array.from(m.entries()).map(([u,y])=>({id:u,name:y.name,createdAt:y.createdAt,shellId:y.shellId,shellLabel:y.shellLabel,cwd:y.cwd}));h(e,{type:"sessionList",sessions:i,requestId:s.requestId});break;case"createSession":let o=fe(n||`session-${Date.now()}`,s.name,s.cols,s.rows,s.shellId,s.cwd);h(e,{type:"createResult",...o,requestId:s.requestId});break;case"joinSession":let c=m.get(n);if(!c){h(e,{type:"joinResult",success:!1,error:"Session not found",requestId:s.requestId});return}let d=ie(c.modes);d&&h(e,{type:"output",sessionId:n,enc:"b64",replay:!0,data:Buffer.from(d).toString("base64")});let f=N(c.buffer,ee);f&&f.length&&h(e,{type:"output",sessionId:n,enc:"b64",replay:!0,data:f.toString("base64")});let l=O(c.buffer);h(e,{type:"joinResult",success:!0,name:c.name,cwd:c.cwd,shellId:c.shellId,shellLabel:c.shellLabel,total:l,replaySize:f?f.length:0,requestId:s.requestId});break;case"requestHistory":{let u=m.get(n);if(!u){h(e,{type:"historyResult",success:!1,error:"Session not found",requestId:s.requestId});return}let y=O(u.buffer),z=Math.max(0,Math.min(s.have||0,y)),A=y-z,P=Math.min(te,A),{prefix:w,extra:de=0}=P>0?j(u.buffer,z,P):{prefix:Buffer.alloc(0),extra:0};h(e,{type:"historyResult",success:!0,sessionId:n,enc:"b64",prefix:w&&w.length?w.toString("base64"):"",prefixLen:w?w.length:0,total:y,remaining:Math.max(0,A-P),requestId:s.requestId});break}case"input":let b=m.get(n);b?.pty&&b.pty.write(s.data);break;case"resize":let p=m.get(n);if(p?.pty)try{p.pty.resize(s.cols,s.rows)}catch{}break;case"deleteSession":let S=m.get(n);S?(S.pty&&S.pty.kill(),m.delete(n),D({type:"sessionClosed",sessionId:n}),h(e,{type:"deleteResult",success:!0,requestId:s.requestId})):h(e,{type:"deleteResult",success:!1,error:"Session not found",requestId:s.requestId});break;case"getCwd":let T=m.get(n);h(e,{type:"cwdResult",cwd:T?.cwd||null,requestId:s.requestId});break;default:x(`Unknown message type: ${t}`)}}function pe(){if(!a.default.existsSync($))try{a.default.mkdirSync($,{recursive:!0})}catch(t){x("Failed to create socket directory",t),process.exit(1)}if(process.platform!=="win32"&&a.default.existsSync(E))try{a.default.unlinkSync(E)}catch(t){x("Failed to remove stale socket",t),process.exit(1)}let e=G.default.createServer(t=>{v.add(t);let n="";t.on("data",s=>{n+=s.toString();let i=n.split(`
11
+ `);n=i.pop()||"";for(let o of i)if(o.trim())try{let c=JSON.parse(o);ue(t,c)}catch{x("Invalid message",o)}}),t.on("close",()=>{v.delete(t)}),t.on("error",s=>{x("Client error",s),v.delete(t)})});e.on("error",t=>{x("Server error",t),t.code==="EADDRINUSE"&&x("Socket already in use, exiting"),process.exit(1)}),e.listen(E,()=>{if(process.platform!=="win32")try{a.default.chmodSync(E,384)}catch{}});try{a.default.mkdirSync(g.default.dirname(_),{recursive:!0}),a.default.writeFileSync(_,String(process.pid),{mode:384})}catch{}let r=()=>{for(let[,t]of m)if(t.pty)try{t.pty.kill()}catch{}try{e.close()}catch{}if(process.platform!=="win32"&&a.default.existsSync(E))try{a.default.unlinkSync(E)}catch{}try{a.default.unlinkSync(_)}catch{}process.exit(0)};process.on("SIGTERM",r),process.on("SIGINT",r)}pe();