9remote 0.1.26 → 0.1.28

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,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  const __importMetaUrl = require('url').pathToFileURL(__filename).href;
3
- var A=Object.create;var v=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var C=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty;var F=(e,s,o,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let t of T(s))!D.call(e,t)&&t!==o&&v(e,t,{get:()=>s[t],enumerable:!(r=L(s,t))||r.enumerable});return e};var S=(e,s,o)=>(o=e!=null?A(C(e)):{},F(s||!e||!e.__esModule?v(o,"default",{value:e,enumerable:!0}):o,e));var x=S(require("net"),1),c=S(require("fs"),1),E=S(require("path"),1),k=S(require("os"),1),O=S(require("node-pty"),1),w=E.default.join(k.default.homedir(),".9remote"),g=process.platform==="win32"?"\\\\.\\pipe\\9remote-pty":E.default.join(w,"pty-daemon.sock"),n=new Map,I=new Set,M=50*1024,_=5*1024*1024,h=E.default.join(w,"daemon.log");function j(){try{if(c.default.existsSync(h)&&c.default.statSync(h).size>_){let o=c.default.readFileSync(h,"utf8").slice(-1024*1024);c.default.writeFileSync(h,o)}}catch{}}function f(e,s=null){j();let r=`[${new Date().toISOString()}] ERROR: ${e}`;s&&(r+=` - ${s.message||s}`),r+=`
4
- `;try{c.default.appendFileSync(h,r)}catch{}console.error(r.trim())}function z(){return process.platform==="win32"?process.env.COMSPEC||"cmd.exe":process.env.SHELL||"/bin/bash"}function G(){return process.env.HOME||process.env.USERPROFILE||k.default.homedir()}function N(){return{...process.env,TERM:"xterm-256color",COLORTERM:"truecolor",LANG:process.env.LANG||"en_US.UTF-8"}}function R(e){let s=JSON.stringify(e)+`
5
- `;for(let o of I)try{o.write(s)}catch{}}function u(e,s){try{e.write(JSON.stringify(s)+`
6
- `)}catch{}}function U(e,s,o=80,r=24){if(n.has(e))return{success:!1,error:"Session already exists"};let t=z(),p=process.platform==="win32"?[]:["-l"];try{let i=O.default.spawn(t,p,{name:"xterm-256color",cols:o,rows:r,cwd:G(),env:N(),useConpty:process.platform==="win32"}),a={pty:i,buffer:[],name:s||`Terminal ${n.size+1}`,createdAt:Date.now()};return i.onData(m=>{a.buffer.push(m);let y=a.buffer.reduce((l,d)=>l+d.length,0);for(;y>M&&a.buffer.length>1;)a.buffer.shift(),y=a.buffer.reduce((l,d)=>l+d.length,0);R({type:"output",sessionId:e,data:Buffer.from(m).toString("base64")})}),i.onExit(()=>{n.delete(e),R({type:"sessionClosed",sessionId:e})}),n.set(e,a),{success:!0,sessionId:e}}catch(i){return f("Failed to create session",i),{success:!1,error:i.message}}}function $(e,s){let{type:o,sessionId:r,...t}=s;switch(o){case"ping":u(e,{type:"pong"});break;case"listSessions":let p=Array.from(n.entries()).map(([b,q])=>({id:b,name:q.name,createdAt:q.createdAt}));u(e,{type:"sessionList",sessions:p,requestId:t.requestId});break;case"createSession":let i=U(t.sessionId||`session-${Date.now()}`,t.name,t.cols,t.rows);u(e,{type:"createResult",...i,requestId:t.requestId});break;case"joinSession":let a=n.get(r);if(!a){u(e,{type:"joinResult",success:!1,error:"Session not found",requestId:t.requestId});return}if(a.buffer.length>0){let b=a.buffer.join("");u(e,{type:"output",sessionId:r,data:Buffer.from(b).toString("base64")})}u(e,{type:"joinResult",success:!0,name:a.name,requestId:t.requestId});break;case"input":let m=n.get(r);m?.pty&&m.pty.write(t.data);break;case"resize":let y=n.get(r);if(y?.pty)try{y.pty.resize(t.cols,t.rows)}catch{}break;case"deleteSession":let l=n.get(r);l?(l.pty&&l.pty.kill(),n.delete(r),R({type:"sessionClosed",sessionId:r}),u(e,{type:"deleteResult",success:!0,requestId:t.requestId})):u(e,{type:"deleteResult",success:!1,error:"Session not found",requestId:t.requestId});break;case"renameSession":let d=n.get(r);d?(d.name=t.name,R({type:"sessionRenamed",sessionId:r,name:t.name}),u(e,{type:"renameResult",success:!0,requestId:t.requestId})):u(e,{type:"renameResult",success:!1,error:"Session not found",requestId:t.requestId});break;default:f(`Unknown message type: ${o}`)}}function P(){if(!c.default.existsSync(w))try{c.default.mkdirSync(w,{recursive:!0})}catch(s){f("Failed to create socket directory",s),process.exit(1)}if(process.platform!=="win32"&&c.default.existsSync(g))try{c.default.unlinkSync(g)}catch(s){f("Failed to remove stale socket",s),process.exit(1)}let e=x.default.createServer(s=>{I.add(s);let o="";s.on("data",r=>{o+=r.toString();let t=o.split(`
7
- `);o=t.pop()||"";for(let p of t)if(p.trim())try{let i=JSON.parse(p);$(s,i)}catch{f("Invalid message",p)}}),s.on("close",()=>{I.delete(s)}),s.on("error",r=>{f("Client error",r),I.delete(s)})});e.on("error",s=>{f("Server error",s),s.code==="EADDRINUSE"&&f("Socket already in use, exiting"),process.exit(1)}),e.listen(g),process.on("SIGTERM",()=>{for(let[,s]of n)s.pty&&s.pty.kill();e.close(),process.platform!=="win32"&&c.default.existsSync(g)&&c.default.unlinkSync(g),process.exit(0)}),process.on("SIGINT",()=>{process.emit("SIGTERM")})}P();
3
+ var x=Object.create;var v=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var T=(e,s,o,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let t of D(s))!F.call(e,t)&&t!==o&&v(e,t,{get:()=>s[t],enumerable:!(r=A(s,t))||r.enumerable});return e};var S=(e,s,o)=>(o=e!=null?x(L(e)):{},T(s||!e||!e.__esModule?v(o,"default",{value:e,enumerable:!0}):o,e));var q=S(require("net"),1),c=S(require("fs"),1),R=S(require("path"),1),k=S(require("os"),1),C=S(require("node-pty"),1),w=R.default.join(k.default.homedir(),".9remote"),g=process.platform==="win32"?"\\\\.\\pipe\\9remote-pty":R.default.join(w,"pty-daemon.sock"),n=new Map,b=new Set,M=50*1024,_=5*1024*1024,h=R.default.join(w,"daemon.log");function j(){try{if(c.default.existsSync(h)&&c.default.statSync(h).size>_){let o=c.default.readFileSync(h,"utf8").slice(-1024*1024);c.default.writeFileSync(h,o)}}catch{}}function f(e,s=null){j();let r=`[${new Date().toISOString()}] ERROR: ${e}`;s&&(r+=` - ${s.message||s}`),r+=`
4
+ `;try{c.default.appendFileSync(h,r)}catch{}console.error(r.trim())}function z(){return process.platform==="win32"?process.env.COMSPEC||"cmd.exe":process.env.SHELL||"/bin/bash"}function G(){return process.env.CODESPACES==="true"?process.env.CODESPACE_VSCODE_FOLDER||"/workspaces":process.env.HOME||process.env.USERPROFILE||k.default.homedir()}function N(){return{...process.env,TERM:"xterm-256color",COLORTERM:"truecolor",LANG:process.env.LANG||"en_US.UTF-8"}}function I(e){let s=JSON.stringify(e)+`
5
+ `;for(let o of b)try{o.write(s)}catch{}}function u(e,s){try{e.write(JSON.stringify(s)+`
6
+ `)}catch{}}function P(e,s,o=80,r=24){if(n.has(e))return{success:!1,error:"Session already exists"};let t=z(),p=process.platform==="win32"?[]:["-l"];try{let i=C.default.spawn(t,p,{name:"xterm-256color",cols:o,rows:r,cwd:G(),env:N(),useConpty:process.platform==="win32"}),a={pty:i,buffer:[],name:s||`Terminal ${n.size+1}`,createdAt:Date.now()};return i.onData(m=>{a.buffer.push(m);let y=a.buffer.reduce((l,d)=>l+d.length,0);for(;y>M&&a.buffer.length>1;)a.buffer.shift(),y=a.buffer.reduce((l,d)=>l+d.length,0);I({type:"output",sessionId:e,data:Buffer.from(m).toString("base64")})}),i.onExit(()=>{n.delete(e),I({type:"sessionClosed",sessionId:e})}),n.set(e,a),{success:!0,sessionId:e}}catch(i){return f("Failed to create session",i),{success:!1,error:i.message}}}function U(e,s){let{type:o,sessionId:r,...t}=s;switch(o){case"ping":u(e,{type:"pong"});break;case"listSessions":let p=Array.from(n.entries()).map(([E,O])=>({id:E,name:O.name,createdAt:O.createdAt}));u(e,{type:"sessionList",sessions:p,requestId:t.requestId});break;case"createSession":let i=P(t.sessionId||`session-${Date.now()}`,t.name,t.cols,t.rows);u(e,{type:"createResult",...i,requestId:t.requestId});break;case"joinSession":let a=n.get(r);if(!a){u(e,{type:"joinResult",success:!1,error:"Session not found",requestId:t.requestId});return}if(a.buffer.length>0){let E=a.buffer.join("");u(e,{type:"output",sessionId:r,data:Buffer.from(E).toString("base64")})}u(e,{type:"joinResult",success:!0,name:a.name,requestId:t.requestId});break;case"input":let m=n.get(r);m?.pty&&m.pty.write(t.data);break;case"resize":let y=n.get(r);if(y?.pty)try{y.pty.resize(t.cols,t.rows)}catch{}break;case"deleteSession":let l=n.get(r);l?(l.pty&&l.pty.kill(),n.delete(r),I({type:"sessionClosed",sessionId:r}),u(e,{type:"deleteResult",success:!0,requestId:t.requestId})):u(e,{type:"deleteResult",success:!1,error:"Session not found",requestId:t.requestId});break;case"renameSession":let d=n.get(r);d?(d.name=t.name,I({type:"sessionRenamed",sessionId:r,name:t.name}),u(e,{type:"renameResult",success:!0,requestId:t.requestId})):u(e,{type:"renameResult",success:!1,error:"Session not found",requestId:t.requestId});break;default:f(`Unknown message type: ${o}`)}}function $(){if(!c.default.existsSync(w))try{c.default.mkdirSync(w,{recursive:!0})}catch(s){f("Failed to create socket directory",s),process.exit(1)}if(process.platform!=="win32"&&c.default.existsSync(g))try{c.default.unlinkSync(g)}catch(s){f("Failed to remove stale socket",s),process.exit(1)}let e=q.default.createServer(s=>{b.add(s);let o="";s.on("data",r=>{o+=r.toString();let t=o.split(`
7
+ `);o=t.pop()||"";for(let p of t)if(p.trim())try{let i=JSON.parse(p);U(s,i)}catch{f("Invalid message",p)}}),s.on("close",()=>{b.delete(s)}),s.on("error",r=>{f("Client error",r),b.delete(s)})});e.on("error",s=>{f("Server error",s),s.code==="EADDRINUSE"&&f("Socket already in use, exiting"),process.exit(1)}),e.listen(g),process.on("SIGTERM",()=>{for(let[,s]of n)s.pty&&s.pty.kill();e.close(),process.platform!=="win32"&&c.default.existsSync(g)&&c.default.unlinkSync(g),process.exit(0)}),process.on("SIGINT",()=>{process.emit("SIGTERM")})}$();