9remote 2.0.30 → 2.0.31
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 +3 -3
- package/dist/install.cjs +1 -1
- package/dist/server.cjs +2 -2
- package/dist/ui/assets/{index-DiqZaXWJ.js → index-CzK2QQU8.js} +2339 -2333
- package/dist/ui/index.html +1 -1
- package/package.json +1 -1
package/dist/cli.cjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
const __importMetaUrl = require('url').pathToFileURL(__filename).href;
|
|
3
3
|
var ls=Object.create;var Gn=Object.defineProperty;var us=Object.getOwnPropertyDescriptor;var fs=Object.getOwnPropertyNames;var ps=Object.getPrototypeOf,ds=Object.prototype.hasOwnProperty;var ms=(e,n)=>()=>(e&&(n=e(e=0)),n);var ne=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),hs=(e,n)=>{for(var r in n)Gn(e,r,{get:n[r],enumerable:!0})},gs=(e,n,r,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of fs(n))!ds.call(e,t)&&t!==r&&Gn(e,t,{get:()=>n[t],enumerable:!(o=us(n,t))||o.enumerable});return e};var A=(e,n,r)=>(r=e!=null?ls(ps(e)):{},gs(n||!e||!e.__esModule?Gn(r,"default",{value:e,enumerable:!0}):r,e));var ui={};hs(ui,{initTray:()=>Tr,killTray:()=>Dn,openBrowser:()=>en,showTrayNotification:()=>Er,updateTrayTooltip:()=>Nn});function Ta(){if(process.platform==="win32"){for(let e of Sa)try{if(Zt.default.existsSync(e))return Zt.default.readFileSync(e).toString("base64")}catch{}return ii}return ii}function Ea(){let e=process.platform;return!(!["darwin","win32","linux"].includes(e)||e==="linux"&&!process.env.DISPLAY)}function Ra(){let{port:e,tunnelUrl:n,running:r}=zt,o=r?n?"Tunnel ON":"Local only":"Idle",t=`http://localhost:${e}`;return`9Remote \u2022 ${o}
|
|
4
4
|
Local: ${t}
|
|
5
|
-
Right-click to open / quit`}function li(){let{port:e,tunnelUrl:n}=zt,r=process.platform==="win32",o=n?`9Remote (Port ${e}) \u2022 Tunnel ON`:`9Remote (Port ${e}) \u2022 Local only`;return{icon:Ta(),title:r?`9Remote - Port ${e}`:"",tooltip:Ra(),items:[{title:o,tooltip:n||`http://localhost:${e}`,checked:!1,enabled:!1},{title:"Open Web UI",tooltip:`Open http://localhost:${e} in your browser`,checked:!1,enabled:!0},{title:"Shutdown",tooltip:"Stop 9Remote server, tunnel and quit",checked:!1,enabled:!0}]}}function xa(){let e=[Ue.default.join(ci,"systray2"),"systray2"];for(let n of e)try{let r=require(n);return r.default?.default||r.default||r}catch{}return null}async function Tr({port:e,onQuit:n,onOpenUI:r}){if(!Ea())return null;try{let o=xa();if(!o)return null;let t=process.platform==="darwin"?"tray_darwin_release":"tray_linux_release",i=Ue.default.join(ci,"systray2","traybin",t);try{Zt.default.existsSync(i)&&Zt.default.chmodSync(i,493)}catch{}return zt={port:e,tunnelUrl:"",running:!0},pe=new o({menu:li(),debug:!1,copyDir:!0}),pe.onClick(s=>{let a=s.item?.title||s.item;a==="Open Web UI"?r?.():a==="Shutdown"&&(n?.(),Dn(),setTimeout(()=>process.exit(0),500))}),typeof pe.ready=="function"?pe.ready().catch(()=>{}):(pe.onReady(()=>{}),pe.onError(()=>{})),pe}catch{return null}}function Nn({tunnelUrl:e,running:n}={}){if(e!==void 0&&(zt.tunnelUrl=e),n!==void 0&&(zt.running=n),!!pe)try{pe.sendAction({type:"update-menu",menu:li(),seq_id:-1})}catch{}}function Dn(){let e=pe;if(pe=null,e)try{e.kill(!0)}catch{}}function Er({title:e="9Remote",message:n}){let r=process.platform;if(n){if(r==="win32"){let o=c=>String(c).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,"""),t=c=>String(c).replace(/'/g,"''"),i="9Remote",s=`<toast><visual><binding template="ToastText02"><text id="1">${o(e)}</text><text id="2">${o(n)}</text></binding></visual></toast>`,a=["try {","[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType=WindowsRuntime] > $null;","[Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType=WindowsRuntime] > $null;","$xml = New-Object Windows.Data.Xml.Dom.XmlDocument;",`$xml.LoadXml('${t(s)}');`,"$toast = [Windows.UI.Notifications.ToastNotification]::new($xml);",`[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier('${t(i)}').Show($toast);`,"} catch {","Add-Type -AssemblyName System.Windows.Forms;","$n = New-Object System.Windows.Forms.NotifyIcon;","$n.Icon = [System.Drawing.SystemIcons]::Information;",`$n.BalloonTipTitle = '${t(e)}';`,`$n.BalloonTipText = '${t(n)}';`,"$n.Visible = $true;","$n.ShowBalloonTip(5000);","Start-Sleep -Seconds 6;","$n.Dispose();","}"].join(" ");try{(0,De.spawn)("powershell.exe",["-NoProfile","-WindowStyle","Hidden","-Command",a],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()}catch{}return}if(r==="darwin"){try{let o=s=>String(s).replace(/"/g,'\\"'),t=`display notification "${o(n)}" with title "${o(e)}"`;(0,De.spawn)("osascript",["-e",t],{detached:!0,stdio:"ignore"}).unref()}catch{}return}try{(0,De.spawn)("notify-send",[e,n],{detached:!0,stdio:"ignore"}).unref()}catch{}}}function en(e){let n=process.platform;if(n==="win32"){try{(0,De.spawn)("rundll32.exe",["url.dll,FileProtocolHandler",e],{detached:!0,stdio:"ignore",windowsHide:!0}).unref();return}catch{}try{(0,De.spawn)("cmd.exe",["/d","/s","/c","start","",e],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()}catch{}return}if(n==="darwin"){try{(0,De.spawn)("open",[e],{detached:!0,stdio:"ignore"}).unref()}catch{}return}let r=[["setsid",["--fork","xdg-open",e]],["setsid",["xdg-open",e]],["xdg-open",[e]],["gio",["open",e]],["sensible-browser",[e]],["x-www-browser",[e]]];for(let[o,t]of r)try{(0,De.spawn)(o,t,{detached:!0,stdio:"ignore",env:{...process.env}}).unref();return}catch{}}var De,Zt,Ue,si,ai,ci,pe,zt,oi,ii,Sa,Tt=ms(()=>{De=require("child_process"),Zt=A(require("fs"),1),Ue=A(require("path"),1),si=A(require("os"),1),ai=require("url"),ci=(0,Ue.join)(si.default.homedir(),".9remote","runtime","node_modules"),pe=null,zt={port:0,tunnelUrl:"",running:!1},oi=Ue.default.dirname((0,ai.fileURLToPath)(__importMetaUrl)),ii="iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAAFw0lEQVR4nOWbaWwUVQDHf2+2tXRbCqmoKGgAuRIJoBwKkSAoDVKamDYLxUYUBSJHNCD30RhAbVWQqKCgXFGodKUfqGLljERsRaNQQoKoCKGFRhBp6XZ7sPv8MF0o7NTO7hzb4/dt5/9m3v/9d/fNO2YEOpEZiQnUeZMRYjQwAOgGdASi9V7DIuqAq8BZBMeQ8iDeuK/F7svX9JwsmiogJ8b0RjgWIkkHnAbN2kUVkIPDly121Pz+fwUbDUC6iEWJXQniVSDKbIc2UQdyLbHeTLGVaq0CmgHIZ2N64XPkAf0stWcfRUSTKj6vuni7EBSATHc+jORb4C5brNmFpASHSBY5nuKGh28JoP6bP0Jra3wASQlSDBFuT1ngkHJDe4F2+BxuWmvjAQRdccivpIvYwKEbAeCNXYV6e2vdSAahOBcFPgqov9XhOEnL7e1DpRK/6CXcnjL1FyAcC2k7jQeIR5GZAEJmJCZwvfoiLWeQYxYevM57Feq8ybS9xgPE4fSMU+rH9m0TKUZHEUrPH9cBnp4F9/SA4/vg+53WmbOH/lFAd11FHVGwvAC69Vc/j5gEPQfD1vnW2bMaSQ8FSNBVuO/wm40PMHYmpC7SLt8SEHRQgDsMXWTCchgz1RxD9hOjNF2mnlM/wNlibW3KGngs1SRP9qI/AN91eDsNLp3TuIoDZm+CAU+ZaM0e9AcAcOUCvJEC5X8Ha1F3wNwc6P2oSdbsIbQAAMr+hOw08FYGazFOmO+GLn1MsGYPoQcAcOYXeNcFdTXBWvs7YWk+dHrAoDV7CC8AgJOH4f3nwe8L1hK7wLJ8SGj+SwvhBwDwUz5snqOtde4JC76EdvGGqrAaYwEA7N8EuSu1tZ6DYd5OiI4xXI1VGA8AIC8L9nygrfV7AmZsAGFOVWZjnqvPFsN327W14S6Ystq0qszEvACkhI2z4NhebT1perOcN5j7u/TVwXsZ8Fuhtj5huTqdbkaY/8esqVKHzOdOaOuTs2BYmunVhos1PZOnXB0tXj4frAkFZn4SPLWOENZ1zVdK4c0UqLgcrEXHwJMvWlZ1KDTPe5ONWBdAYhdYkg8JnYK1uho4sNmyqkPBmgDaJ8KS3dDp/mBN+mH9tMYXV2zG/ABinDAvF7r21da3LYTCXaZXGy7mBuCIhjnboc8wbT13BRSsN7VKo5gXgBAwfR0MTNLW926EvGzTqjML8wJ4LgtGZmhrR3Jhy2umVWUm5gSQthjGzdbWThyCj19WO79miPEAxkwF1zJt7Y+fYXW69tJZM8FYAENS1D0BLUpOQdYzUK2xeNqMCD+Ah0bCK9vUPYHbuVKqNr7yXwPW7CG8AB4cpN7rtZa6rv0Dq8ZrT4SaIaEHEFjsjNVY7KypgndccOG0CdbsIbTnghLvU5e7O9wdrF2vhTWT4PSPobt4fCIMSIJoA/u0UkLpKfhmnTod14n+ABxRsGCX9oaH3wcfvgTH9+u+3A1SF6krRWYxOAWWjlD3MnWg/y+g9XxAgC1zoShP96VuYeyM8M5rjG79Va86UYBaQxXmroR9nxq6RASpUYAKXUW1ng8oWK/uCRih4CNj59/O2WLVqx4k5UJOdB4Fhug6waqHpCLXCRYJme7ciGRa+DW3aDYoSHkw0i4ihzwgpIt4FGcZEBdpOzbjwV/VWRFuKoEvIu3GdgQ7hJtKdRzg8GWjvn7WVqhF8WdB/UBIfbVMro2sJzuRa8SO6jPQcCQY680EiiJlyTYEhVR4X7/5sQHSFdcZRR4FNBb0WwUX8Muhwu0tDRy4ZS4g3J4yFDEeSYn93iznPH4xtmHjQWMyJHI8xUjlERCH7fNmMYJC/GKocHuC9uw1Z4PCXXmJCk8SsALwWO3PQmoRvEV51aiG7wo2pOmXp9V+IROYTMsZLHmA7Tj82YHevjGaDCCAdBGPIzYZKUYBA5F0R9ARo4/bG6cWyVUEfyH4Fb88hPTuqR/gNcl/yU6WmseVCn8AAAAASUVORK5CYII=",Sa=[Ue.default.join(oi,"assets","trayIcon.ico"),Ue.default.join(oi,"..","assets","trayIcon.ico")]});var hi=ne((rn,xr)=>{(function(e,n){typeof rn=="object"&&typeof xr=="object"?xr.exports=n(require("child_process"),require("crypto")):typeof define=="function"&&define.amd?define(["child_process","crypto"],n):typeof rn=="object"?rn["electron-machine-id"]=n(require("child_process"),require("crypto")):e["electron-machine-id"]=n(e.child_process,e.crypto)})(rn,function(e,n){return(function(r){function o(i){if(t[i])return t[i].exports;var s=t[i]={exports:{},id:i,loaded:!1};return r[i].call(s.exports,s,s.exports,o),s.loaded=!0,s.exports}var t={};return o.m=r,o.c=t,o.p="",o(0)})([function(r,o,t){r.exports=t(34)},function(r,o,t){var i=t(29)("wks"),s=t(33),a=t(2).Symbol,c=typeof a=="function",l=r.exports=function(u){return i[u]||(i[u]=c&&a[u]||(c?a:s)("Symbol."+u))};l.store=i},function(r,o){var t=r.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=t)},function(r,o,t){var i=t(9);r.exports=function(s){if(!i(s))throw TypeError(s+" is not an object!");return s}},function(r,o,t){r.exports=!t(24)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},function(r,o,t){var i=t(12),s=t(17);r.exports=t(4)?function(a,c,l){return i.f(a,c,s(1,l))}:function(a,c,l){return a[c]=l,a}},function(r,o){var t=r.exports={version:"2.4.0"};typeof __e=="number"&&(__e=t)},function(r,o,t){var i=t(14);r.exports=function(s,a,c){if(i(s),a===void 0)return s;switch(c){case 1:return function(l){return s.call(a,l)};case 2:return function(l,u){return s.call(a,l,u)};case 3:return function(l,u,f){return s.call(a,l,u,f)}}return function(){return s.apply(a,arguments)}}},function(r,o){var t={}.hasOwnProperty;r.exports=function(i,s){return t.call(i,s)}},function(r,o){r.exports=function(t){return typeof t=="object"?t!==null:typeof t=="function"}},function(r,o){r.exports={}},function(r,o){var t={}.toString;r.exports=function(i){return t.call(i).slice(8,-1)}},function(r,o,t){var i=t(3),s=t(26),a=t(32),c=Object.defineProperty;o.f=t(4)?Object.defineProperty:function(l,u,f){if(i(l),u=a(u,!0),i(f),s)try{return c(l,u,f)}catch{}if("get"in f||"set"in f)throw TypeError("Accessors not supported!");return"value"in f&&(l[u]=f.value),l}},function(r,o,t){var i=t(42),s=t(15);r.exports=function(a){return i(s(a))}},function(r,o){r.exports=function(t){if(typeof t!="function")throw TypeError(t+" is not a function!");return t}},function(r,o){r.exports=function(t){if(t==null)throw TypeError("Can't call method on "+t);return t}},function(r,o,t){var i=t(9),s=t(2).document,a=i(s)&&i(s.createElement);r.exports=function(c){return a?s.createElement(c):{}}},function(r,o){r.exports=function(t,i){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:i}}},function(r,o,t){var i=t(12).f,s=t(8),a=t(1)("toStringTag");r.exports=function(c,l,u){c&&!s(c=u?c:c.prototype,a)&&i(c,a,{configurable:!0,value:l})}},function(r,o,t){var i=t(29)("keys"),s=t(33);r.exports=function(a){return i[a]||(i[a]=s(a))}},function(r,o){var t=Math.ceil,i=Math.floor;r.exports=function(s){return isNaN(s=+s)?0:(s>0?i:t)(s)}},function(r,o,t){var i=t(11),s=t(1)("toStringTag"),a=i((function(){return arguments})())=="Arguments",c=function(l,u){try{return l[u]}catch{}};r.exports=function(l){var u,f,p;return l===void 0?"Undefined":l===null?"Null":typeof(f=c(u=Object(l),s))=="string"?f:a?i(u):(p=i(u))=="Object"&&typeof u.callee=="function"?"Arguments":p}},function(r,o){r.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(r,o,t){var i=t(2),s=t(6),a=t(7),c=t(5),l="prototype",u=function(f,p,d){var h,v,E,O=f&u.F,R=f&u.G,b=f&u.S,_=f&u.P,S=f&u.B,g=f&u.W,k=R?s:s[p]||(s[p]={}),P=k[l],D=R?i:b?i[p]:(i[p]||{})[l];R&&(d=p);for(h in d)v=!O&&D&&D[h]!==void 0,v&&h in k||(E=v?D[h]:d[h],k[h]=R&&typeof D[h]!="function"?d[h]:S&&v?a(E,i):g&&D[h]==E?(function(H){var ae=function(ce,X,Te){if(this instanceof H){switch(arguments.length){case 0:return new H;case 1:return new H(ce);case 2:return new H(ce,X)}return new H(ce,X,Te)}return H.apply(this,arguments)};return ae[l]=H[l],ae})(E):_&&typeof E=="function"?a(Function.call,E):E,_&&((k.virtual||(k.virtual={}))[h]=E,f&u.R&&P&&!P[h]&&c(P,h,E)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,r.exports=u},function(r,o){r.exports=function(t){try{return!!t()}catch{return!0}}},function(r,o,t){r.exports=t(2).document&&document.documentElement},function(r,o,t){r.exports=!t(4)&&!t(24)(function(){return Object.defineProperty(t(16)("div"),"a",{get:function(){return 7}}).a!=7})},function(r,o,t){"use strict";var i=t(28),s=t(23),a=t(57),c=t(5),l=t(8),u=t(10),f=t(45),p=t(18),d=t(52),h=t(1)("iterator"),v=!([].keys&&"next"in[].keys()),E="@@iterator",O="keys",R="values",b=function(){return this};r.exports=function(_,S,g,k,P,D,H){f(g,S,k);var ae,ce,X,Te=function(w){if(!v&&w in q)return q[w];switch(w){case O:return function(){return new g(this,w)};case R:return function(){return new g(this,w)}}return function(){return new g(this,w)}},st=S+" Iterator",Qe=P==R,_t=!1,q=_.prototype,_e=q[h]||q[E]||P&&q[P],ee=_e||Te(P),kt=P?Qe?Te("entries"):ee:void 0,y=S=="Array"&&q.entries||_e;if(y&&(X=d(y.call(new _)),X!==Object.prototype&&(p(X,st,!0),i||l(X,h)||c(X,h,b))),Qe&&_e&&_e.name!==R&&(_t=!0,ee=function(){return _e.call(this)}),i&&!H||!v&&!_t&&q[h]||c(q,h,ee),u[S]=ee,u[st]=b,P)if(ae={values:Qe?ee:Te(R),keys:D?ee:Te(O),entries:kt},H)for(ce in ae)ce in q||a(q,ce,ae[ce]);else s(s.P+s.F*(v||_t),S,ae);return ae}},function(r,o){r.exports=!0},function(r,o,t){var i=t(2),s="__core-js_shared__",a=i[s]||(i[s]={});r.exports=function(c){return a[c]||(a[c]={})}},function(r,o,t){var i,s,a,c=t(7),l=t(41),u=t(25),f=t(16),p=t(2),d=p.process,h=p.setImmediate,v=p.clearImmediate,E=p.MessageChannel,O=0,R={},b="onreadystatechange",_=function(){var g=+this;if(R.hasOwnProperty(g)){var k=R[g];delete R[g],k()}},S=function(g){_.call(g.data)};h&&v||(h=function(g){for(var k=[],P=1;arguments.length>P;)k.push(arguments[P++]);return R[++O]=function(){l(typeof g=="function"?g:Function(g),k)},i(O),O},v=function(g){delete R[g]},t(11)(d)=="process"?i=function(g){d.nextTick(c(_,g,1))}:E?(s=new E,a=s.port2,s.port1.onmessage=S,i=c(a.postMessage,a,1)):p.addEventListener&&typeof postMessage=="function"&&!p.importScripts?(i=function(g){p.postMessage(g+"","*")},p.addEventListener("message",S,!1)):i=b in f("script")?function(g){u.appendChild(f("script"))[b]=function(){u.removeChild(this),_.call(g)}}:function(g){setTimeout(c(_,g,1),0)}),r.exports={set:h,clear:v}},function(r,o,t){var i=t(20),s=Math.min;r.exports=function(a){return a>0?s(i(a),9007199254740991):0}},function(r,o,t){var i=t(9);r.exports=function(s,a){if(!i(s))return s;var c,l;if(a&&typeof(c=s.toString)=="function"&&!i(l=c.call(s))||typeof(c=s.valueOf)=="function"&&!i(l=c.call(s))||!a&&typeof(c=s.toString)=="function"&&!i(l=c.call(s)))return l;throw TypeError("Can't convert object to primitive value")}},function(r,o){var t=0,i=Math.random();r.exports=function(s){return"Symbol(".concat(s===void 0?"":s,")_",(++t+i).toString(36))}},function(r,o,t){"use strict";function i(b){return b&&b.__esModule?b:{default:b}}function s(){return process.platform!=="win32"?"":process.arch==="ia32"&&process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432")?"mixed":"native"}function a(b){return(0,h.createHash)("sha256").update(b).digest("hex")}function c(b){switch(E){case"darwin":return b.split("IOPlatformUUID")[1].split(`
|
|
5
|
+
Right-click to open / quit`}function li(){let{port:e,tunnelUrl:n}=zt,r=process.platform==="win32",o=n?`9Remote (Port ${e}) \u2022 Tunnel ON`:`9Remote (Port ${e}) \u2022 Local only`;return{icon:Ta(),title:r?`9Remote - Port ${e}`:"",tooltip:Ra(),items:[{title:o,tooltip:n||`http://localhost:${e}`,checked:!1,enabled:!1},{title:"Open Web UI",tooltip:`Open http://localhost:${e} in your browser`,checked:!1,enabled:!0},{title:"Shutdown",tooltip:"Stop 9Remote server, tunnel and quit",checked:!1,enabled:!0}]}}function xa(){try{let e=require(Ue.default.join(ci,"systray2"));return e.default?.default||e.default||e}catch{return null}}async function Tr({port:e,onQuit:n,onOpenUI:r}){if(!Ea())return null;try{let o=xa();if(!o)return null;let t=process.platform==="darwin"?"tray_darwin_release":"tray_linux_release",i=Ue.default.join(ci,"systray2","traybin",t);if(!Zt.default.existsSync(i))return null;try{Zt.default.chmodSync(i,493)}catch{}return zt={port:e,tunnelUrl:"",running:!0},pe=new o({menu:li(),debug:!1,copyDir:!0}),pe.onClick(s=>{let a=s.item?.title||s.item;a==="Open Web UI"?r?.():a==="Shutdown"&&(n?.(),Dn(),setTimeout(()=>process.exit(0),500))}),typeof pe.ready=="function"?pe.ready().catch(()=>{}):(pe.onReady(()=>{}),pe.onError(()=>{})),pe}catch{return null}}function Nn({tunnelUrl:e,running:n}={}){if(e!==void 0&&(zt.tunnelUrl=e),n!==void 0&&(zt.running=n),!!pe)try{pe.sendAction({type:"update-menu",menu:li(),seq_id:-1})}catch{}}function Dn(){let e=pe;if(pe=null,e)try{e.kill(!0)}catch{}}function Er({title:e="9Remote",message:n}){let r=process.platform;if(n){if(r==="win32"){let o=c=>String(c).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,"""),t=c=>String(c).replace(/'/g,"''"),i="9Remote",s=`<toast><visual><binding template="ToastText02"><text id="1">${o(e)}</text><text id="2">${o(n)}</text></binding></visual></toast>`,a=["try {","[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType=WindowsRuntime] > $null;","[Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType=WindowsRuntime] > $null;","$xml = New-Object Windows.Data.Xml.Dom.XmlDocument;",`$xml.LoadXml('${t(s)}');`,"$toast = [Windows.UI.Notifications.ToastNotification]::new($xml);",`[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier('${t(i)}').Show($toast);`,"} catch {","Add-Type -AssemblyName System.Windows.Forms;","$n = New-Object System.Windows.Forms.NotifyIcon;","$n.Icon = [System.Drawing.SystemIcons]::Information;",`$n.BalloonTipTitle = '${t(e)}';`,`$n.BalloonTipText = '${t(n)}';`,"$n.Visible = $true;","$n.ShowBalloonTip(5000);","Start-Sleep -Seconds 6;","$n.Dispose();","}"].join(" ");try{(0,De.spawn)("powershell.exe",["-NoProfile","-WindowStyle","Hidden","-Command",a],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()}catch{}return}if(r==="darwin"){try{let o=s=>String(s).replace(/"/g,'\\"'),t=`display notification "${o(n)}" with title "${o(e)}"`;(0,De.spawn)("osascript",["-e",t],{detached:!0,stdio:"ignore"}).unref()}catch{}return}try{(0,De.spawn)("notify-send",[e,n],{detached:!0,stdio:"ignore"}).unref()}catch{}}}function en(e){let n=process.platform;if(n==="win32"){try{(0,De.spawn)("rundll32.exe",["url.dll,FileProtocolHandler",e],{detached:!0,stdio:"ignore",windowsHide:!0}).unref();return}catch{}try{(0,De.spawn)("cmd.exe",["/d","/s","/c","start","",e],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()}catch{}return}if(n==="darwin"){try{(0,De.spawn)("open",[e],{detached:!0,stdio:"ignore"}).unref()}catch{}return}let r=[["setsid",["--fork","xdg-open",e]],["setsid",["xdg-open",e]],["xdg-open",[e]],["gio",["open",e]],["sensible-browser",[e]],["x-www-browser",[e]]];for(let[o,t]of r)try{(0,De.spawn)(o,t,{detached:!0,stdio:"ignore",env:{...process.env}}).unref();return}catch{}}var De,Zt,Ue,si,ai,ci,pe,zt,oi,ii,Sa,Tt=ms(()=>{De=require("child_process"),Zt=A(require("fs"),1),Ue=A(require("path"),1),si=A(require("os"),1),ai=require("url"),ci=(0,Ue.join)(si.default.homedir(),".9remote","runtime","node_modules"),pe=null,zt={port:0,tunnelUrl:"",running:!1},oi=Ue.default.dirname((0,ai.fileURLToPath)(__importMetaUrl)),ii="iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAAFw0lEQVR4nOWbaWwUVQDHf2+2tXRbCqmoKGgAuRIJoBwKkSAoDVKamDYLxUYUBSJHNCD30RhAbVWQqKCgXFGodKUfqGLljERsRaNQQoKoCKGFRhBp6XZ7sPv8MF0o7NTO7hzb4/dt5/9m3v/9d/fNO2YEOpEZiQnUeZMRYjQwAOgGdASi9V7DIuqAq8BZBMeQ8iDeuK/F7svX9JwsmiogJ8b0RjgWIkkHnAbN2kUVkIPDly121Pz+fwUbDUC6iEWJXQniVSDKbIc2UQdyLbHeTLGVaq0CmgHIZ2N64XPkAf0stWcfRUSTKj6vuni7EBSATHc+jORb4C5brNmFpASHSBY5nuKGh28JoP6bP0Jra3wASQlSDBFuT1ngkHJDe4F2+BxuWmvjAQRdccivpIvYwKEbAeCNXYV6e2vdSAahOBcFPgqov9XhOEnL7e1DpRK/6CXcnjL1FyAcC2k7jQeIR5GZAEJmJCZwvfoiLWeQYxYevM57Feq8ybS9xgPE4fSMU+rH9m0TKUZHEUrPH9cBnp4F9/SA4/vg+53WmbOH/lFAd11FHVGwvAC69Vc/j5gEPQfD1vnW2bMaSQ8FSNBVuO/wm40PMHYmpC7SLt8SEHRQgDsMXWTCchgz1RxD9hOjNF2mnlM/wNlibW3KGngs1SRP9qI/AN91eDsNLp3TuIoDZm+CAU+ZaM0e9AcAcOUCvJEC5X8Ha1F3wNwc6P2oSdbsIbQAAMr+hOw08FYGazFOmO+GLn1MsGYPoQcAcOYXeNcFdTXBWvs7YWk+dHrAoDV7CC8AgJOH4f3nwe8L1hK7wLJ8SGj+SwvhBwDwUz5snqOtde4JC76EdvGGqrAaYwEA7N8EuSu1tZ6DYd5OiI4xXI1VGA8AIC8L9nygrfV7AmZsAGFOVWZjnqvPFsN327W14S6Ystq0qszEvACkhI2z4NhebT1perOcN5j7u/TVwXsZ8Fuhtj5huTqdbkaY/8esqVKHzOdOaOuTs2BYmunVhos1PZOnXB0tXj4frAkFZn4SPLWOENZ1zVdK4c0UqLgcrEXHwJMvWlZ1KDTPe5ONWBdAYhdYkg8JnYK1uho4sNmyqkPBmgDaJ8KS3dDp/mBN+mH9tMYXV2zG/ABinDAvF7r21da3LYTCXaZXGy7mBuCIhjnboc8wbT13BRSsN7VKo5gXgBAwfR0MTNLW926EvGzTqjML8wJ4LgtGZmhrR3Jhy2umVWUm5gSQthjGzdbWThyCj19WO79miPEAxkwF1zJt7Y+fYXW69tJZM8FYAENS1D0BLUpOQdYzUK2xeNqMCD+Ah0bCK9vUPYHbuVKqNr7yXwPW7CG8AB4cpN7rtZa6rv0Dq8ZrT4SaIaEHEFjsjNVY7KypgndccOG0CdbsIbTnghLvU5e7O9wdrF2vhTWT4PSPobt4fCIMSIJoA/u0UkLpKfhmnTod14n+ABxRsGCX9oaH3wcfvgTH9+u+3A1SF6krRWYxOAWWjlD3MnWg/y+g9XxAgC1zoShP96VuYeyM8M5rjG79Va86UYBaQxXmroR9nxq6RASpUYAKXUW1ng8oWK/uCRih4CNj59/O2WLVqx4k5UJOdB4Fhug6waqHpCLXCRYJme7ciGRa+DW3aDYoSHkw0i4ihzwgpIt4FGcZEBdpOzbjwV/VWRFuKoEvIu3GdgQ7hJtKdRzg8GWjvn7WVqhF8WdB/UBIfbVMro2sJzuRa8SO6jPQcCQY680EiiJlyTYEhVR4X7/5sQHSFdcZRR4FNBb0WwUX8Muhwu0tDRy4ZS4g3J4yFDEeSYn93iznPH4xtmHjQWMyJHI8xUjlERCH7fNmMYJC/GKocHuC9uw1Z4PCXXmJCk8SsALwWO3PQmoRvEV51aiG7wo2pOmXp9V+IROYTMsZLHmA7Tj82YHevjGaDCCAdBGPIzYZKUYBA5F0R9ARo4/bG6cWyVUEfyH4Fb88hPTuqR/gNcl/yU6WmseVCn8AAAAASUVORK5CYII=",Sa=[Ue.default.join(oi,"assets","trayIcon.ico"),Ue.default.join(oi,"..","assets","trayIcon.ico")]});var hi=ne((rn,xr)=>{(function(e,n){typeof rn=="object"&&typeof xr=="object"?xr.exports=n(require("child_process"),require("crypto")):typeof define=="function"&&define.amd?define(["child_process","crypto"],n):typeof rn=="object"?rn["electron-machine-id"]=n(require("child_process"),require("crypto")):e["electron-machine-id"]=n(e.child_process,e.crypto)})(rn,function(e,n){return(function(r){function o(i){if(t[i])return t[i].exports;var s=t[i]={exports:{},id:i,loaded:!1};return r[i].call(s.exports,s,s.exports,o),s.loaded=!0,s.exports}var t={};return o.m=r,o.c=t,o.p="",o(0)})([function(r,o,t){r.exports=t(34)},function(r,o,t){var i=t(29)("wks"),s=t(33),a=t(2).Symbol,c=typeof a=="function",l=r.exports=function(u){return i[u]||(i[u]=c&&a[u]||(c?a:s)("Symbol."+u))};l.store=i},function(r,o){var t=r.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=t)},function(r,o,t){var i=t(9);r.exports=function(s){if(!i(s))throw TypeError(s+" is not an object!");return s}},function(r,o,t){r.exports=!t(24)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},function(r,o,t){var i=t(12),s=t(17);r.exports=t(4)?function(a,c,l){return i.f(a,c,s(1,l))}:function(a,c,l){return a[c]=l,a}},function(r,o){var t=r.exports={version:"2.4.0"};typeof __e=="number"&&(__e=t)},function(r,o,t){var i=t(14);r.exports=function(s,a,c){if(i(s),a===void 0)return s;switch(c){case 1:return function(l){return s.call(a,l)};case 2:return function(l,u){return s.call(a,l,u)};case 3:return function(l,u,f){return s.call(a,l,u,f)}}return function(){return s.apply(a,arguments)}}},function(r,o){var t={}.hasOwnProperty;r.exports=function(i,s){return t.call(i,s)}},function(r,o){r.exports=function(t){return typeof t=="object"?t!==null:typeof t=="function"}},function(r,o){r.exports={}},function(r,o){var t={}.toString;r.exports=function(i){return t.call(i).slice(8,-1)}},function(r,o,t){var i=t(3),s=t(26),a=t(32),c=Object.defineProperty;o.f=t(4)?Object.defineProperty:function(l,u,f){if(i(l),u=a(u,!0),i(f),s)try{return c(l,u,f)}catch{}if("get"in f||"set"in f)throw TypeError("Accessors not supported!");return"value"in f&&(l[u]=f.value),l}},function(r,o,t){var i=t(42),s=t(15);r.exports=function(a){return i(s(a))}},function(r,o){r.exports=function(t){if(typeof t!="function")throw TypeError(t+" is not a function!");return t}},function(r,o){r.exports=function(t){if(t==null)throw TypeError("Can't call method on "+t);return t}},function(r,o,t){var i=t(9),s=t(2).document,a=i(s)&&i(s.createElement);r.exports=function(c){return a?s.createElement(c):{}}},function(r,o){r.exports=function(t,i){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:i}}},function(r,o,t){var i=t(12).f,s=t(8),a=t(1)("toStringTag");r.exports=function(c,l,u){c&&!s(c=u?c:c.prototype,a)&&i(c,a,{configurable:!0,value:l})}},function(r,o,t){var i=t(29)("keys"),s=t(33);r.exports=function(a){return i[a]||(i[a]=s(a))}},function(r,o){var t=Math.ceil,i=Math.floor;r.exports=function(s){return isNaN(s=+s)?0:(s>0?i:t)(s)}},function(r,o,t){var i=t(11),s=t(1)("toStringTag"),a=i((function(){return arguments})())=="Arguments",c=function(l,u){try{return l[u]}catch{}};r.exports=function(l){var u,f,p;return l===void 0?"Undefined":l===null?"Null":typeof(f=c(u=Object(l),s))=="string"?f:a?i(u):(p=i(u))=="Object"&&typeof u.callee=="function"?"Arguments":p}},function(r,o){r.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(r,o,t){var i=t(2),s=t(6),a=t(7),c=t(5),l="prototype",u=function(f,p,d){var h,v,E,O=f&u.F,R=f&u.G,b=f&u.S,_=f&u.P,S=f&u.B,g=f&u.W,k=R?s:s[p]||(s[p]={}),P=k[l],D=R?i:b?i[p]:(i[p]||{})[l];R&&(d=p);for(h in d)v=!O&&D&&D[h]!==void 0,v&&h in k||(E=v?D[h]:d[h],k[h]=R&&typeof D[h]!="function"?d[h]:S&&v?a(E,i):g&&D[h]==E?(function(H){var ae=function(ce,X,Te){if(this instanceof H){switch(arguments.length){case 0:return new H;case 1:return new H(ce);case 2:return new H(ce,X)}return new H(ce,X,Te)}return H.apply(this,arguments)};return ae[l]=H[l],ae})(E):_&&typeof E=="function"?a(Function.call,E):E,_&&((k.virtual||(k.virtual={}))[h]=E,f&u.R&&P&&!P[h]&&c(P,h,E)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,r.exports=u},function(r,o){r.exports=function(t){try{return!!t()}catch{return!0}}},function(r,o,t){r.exports=t(2).document&&document.documentElement},function(r,o,t){r.exports=!t(4)&&!t(24)(function(){return Object.defineProperty(t(16)("div"),"a",{get:function(){return 7}}).a!=7})},function(r,o,t){"use strict";var i=t(28),s=t(23),a=t(57),c=t(5),l=t(8),u=t(10),f=t(45),p=t(18),d=t(52),h=t(1)("iterator"),v=!([].keys&&"next"in[].keys()),E="@@iterator",O="keys",R="values",b=function(){return this};r.exports=function(_,S,g,k,P,D,H){f(g,S,k);var ae,ce,X,Te=function(w){if(!v&&w in q)return q[w];switch(w){case O:return function(){return new g(this,w)};case R:return function(){return new g(this,w)}}return function(){return new g(this,w)}},st=S+" Iterator",Qe=P==R,_t=!1,q=_.prototype,_e=q[h]||q[E]||P&&q[P],ee=_e||Te(P),kt=P?Qe?Te("entries"):ee:void 0,y=S=="Array"&&q.entries||_e;if(y&&(X=d(y.call(new _)),X!==Object.prototype&&(p(X,st,!0),i||l(X,h)||c(X,h,b))),Qe&&_e&&_e.name!==R&&(_t=!0,ee=function(){return _e.call(this)}),i&&!H||!v&&!_t&&q[h]||c(q,h,ee),u[S]=ee,u[st]=b,P)if(ae={values:Qe?ee:Te(R),keys:D?ee:Te(O),entries:kt},H)for(ce in ae)ce in q||a(q,ce,ae[ce]);else s(s.P+s.F*(v||_t),S,ae);return ae}},function(r,o){r.exports=!0},function(r,o,t){var i=t(2),s="__core-js_shared__",a=i[s]||(i[s]={});r.exports=function(c){return a[c]||(a[c]={})}},function(r,o,t){var i,s,a,c=t(7),l=t(41),u=t(25),f=t(16),p=t(2),d=p.process,h=p.setImmediate,v=p.clearImmediate,E=p.MessageChannel,O=0,R={},b="onreadystatechange",_=function(){var g=+this;if(R.hasOwnProperty(g)){var k=R[g];delete R[g],k()}},S=function(g){_.call(g.data)};h&&v||(h=function(g){for(var k=[],P=1;arguments.length>P;)k.push(arguments[P++]);return R[++O]=function(){l(typeof g=="function"?g:Function(g),k)},i(O),O},v=function(g){delete R[g]},t(11)(d)=="process"?i=function(g){d.nextTick(c(_,g,1))}:E?(s=new E,a=s.port2,s.port1.onmessage=S,i=c(a.postMessage,a,1)):p.addEventListener&&typeof postMessage=="function"&&!p.importScripts?(i=function(g){p.postMessage(g+"","*")},p.addEventListener("message",S,!1)):i=b in f("script")?function(g){u.appendChild(f("script"))[b]=function(){u.removeChild(this),_.call(g)}}:function(g){setTimeout(c(_,g,1),0)}),r.exports={set:h,clear:v}},function(r,o,t){var i=t(20),s=Math.min;r.exports=function(a){return a>0?s(i(a),9007199254740991):0}},function(r,o,t){var i=t(9);r.exports=function(s,a){if(!i(s))return s;var c,l;if(a&&typeof(c=s.toString)=="function"&&!i(l=c.call(s))||typeof(c=s.valueOf)=="function"&&!i(l=c.call(s))||!a&&typeof(c=s.toString)=="function"&&!i(l=c.call(s)))return l;throw TypeError("Can't convert object to primitive value")}},function(r,o){var t=0,i=Math.random();r.exports=function(s){return"Symbol(".concat(s===void 0?"":s,")_",(++t+i).toString(36))}},function(r,o,t){"use strict";function i(b){return b&&b.__esModule?b:{default:b}}function s(){return process.platform!=="win32"?"":process.arch==="ia32"&&process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432")?"mixed":"native"}function a(b){return(0,h.createHash)("sha256").update(b).digest("hex")}function c(b){switch(E){case"darwin":return b.split("IOPlatformUUID")[1].split(`
|
|
6
6
|
`)[0].replace(/\=|\s+|\"/gi,"").toLowerCase();case"win32":return b.toString().split("REG_SZ")[1].replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"linux":return b.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"freebsd":return b.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();default:throw new Error("Unsupported platform: "+process.platform)}}function l(b){var _=c((0,d.execSync)(R[E]).toString());return b?_:a(_)}function u(b){return new p.default(function(_,S){return(0,d.exec)(R[E],{},function(g,k,P){if(g)return S(new Error("Error while obtaining machine id: "+g.stack));var D=c(k.toString());return _(b?D:a(D))})})}Object.defineProperty(o,"__esModule",{value:!0});var f=t(35),p=i(f);o.machineIdSync=l,o.machineId=u;var d=t(70),h=t(71),v=process,E=v.platform,O={native:"%windir%\\System32",mixed:"%windir%\\sysnative\\cmd.exe /c %windir%\\System32"},R={darwin:"ioreg -rd1 -c IOPlatformExpertDevice",win32:O[s()]+"\\REG.exe QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",linux:"( cat /var/lib/dbus/machine-id /etc/machine-id 2> /dev/null || hostname ) | head -n 1 || :",freebsd:"kenv -q smbios.system.uuid || sysctl -n kern.hostuuid"}},function(r,o,t){r.exports={default:t(36),__esModule:!0}},function(r,o,t){t(66),t(68),t(69),t(67),r.exports=t(6).Promise},function(r,o){r.exports=function(){}},function(r,o){r.exports=function(t,i,s,a){if(!(t instanceof i)||a!==void 0&&a in t)throw TypeError(s+": incorrect invocation!");return t}},function(r,o,t){var i=t(13),s=t(31),a=t(62);r.exports=function(c){return function(l,u,f){var p,d=i(l),h=s(d.length),v=a(f,h);if(c&&u!=u){for(;h>v;)if(p=d[v++],p!=p)return!0}else for(;h>v;v++)if((c||v in d)&&d[v]===u)return c||v||0;return!c&&-1}}},function(r,d,t){var i=t(7),s=t(44),a=t(43),c=t(3),l=t(31),u=t(64),f={},p={},d=r.exports=function(h,v,E,O,R){var b,_,S,g,k=R?function(){return h}:u(h),P=i(E,O,v?2:1),D=0;if(typeof k!="function")throw TypeError(h+" is not iterable!");if(a(k)){for(b=l(h.length);b>D;D++)if(g=v?P(c(_=h[D])[0],_[1]):P(h[D]),g===f||g===p)return g}else for(S=k.call(h);!(_=S.next()).done;)if(g=s(S,P,_.value,v),g===f||g===p)return g};d.BREAK=f,d.RETURN=p},function(r,o){r.exports=function(t,i,s){var a=s===void 0;switch(i.length){case 0:return a?t():t.call(s);case 1:return a?t(i[0]):t.call(s,i[0]);case 2:return a?t(i[0],i[1]):t.call(s,i[0],i[1]);case 3:return a?t(i[0],i[1],i[2]):t.call(s,i[0],i[1],i[2]);case 4:return a?t(i[0],i[1],i[2],i[3]):t.call(s,i[0],i[1],i[2],i[3])}return t.apply(s,i)}},function(r,o,t){var i=t(11);r.exports=Object("z").propertyIsEnumerable(0)?Object:function(s){return i(s)=="String"?s.split(""):Object(s)}},function(r,o,t){var i=t(10),s=t(1)("iterator"),a=Array.prototype;r.exports=function(c){return c!==void 0&&(i.Array===c||a[s]===c)}},function(r,o,t){var i=t(3);r.exports=function(s,a,c,l){try{return l?a(i(c)[0],c[1]):a(c)}catch(f){var u=s.return;throw u!==void 0&&i(u.call(s)),f}}},function(r,o,t){"use strict";var i=t(49),s=t(17),a=t(18),c={};t(5)(c,t(1)("iterator"),function(){return this}),r.exports=function(l,u,f){l.prototype=i(c,{next:s(1,f)}),a(l,u+" Iterator")}},function(r,o,t){var i=t(1)("iterator"),s=!1;try{var a=[7][i]();a.return=function(){s=!0},Array.from(a,function(){throw 2})}catch{}r.exports=function(c,l){if(!l&&!s)return!1;var u=!1;try{var f=[7],p=f[i]();p.next=function(){return{done:u=!0}},f[i]=function(){return p},c(f)}catch{}return u}},function(r,o){r.exports=function(t,i){return{value:i,done:!!t}}},function(r,o,t){var i=t(2),s=t(30).set,a=i.MutationObserver||i.WebKitMutationObserver,c=i.process,l=i.Promise,u=t(11)(c)=="process";r.exports=function(){var f,p,d,h=function(){var R,b;for(u&&(R=c.domain)&&R.exit();f;){b=f.fn,f=f.next;try{b()}catch(_){throw f?d():p=void 0,_}}p=void 0,R&&R.enter()};if(u)d=function(){c.nextTick(h)};else if(a){var v=!0,E=document.createTextNode("");new a(h).observe(E,{characterData:!0}),d=function(){E.data=v=!v}}else if(l&&l.resolve){var O=l.resolve();d=function(){O.then(h)}}else d=function(){s.call(i,h)};return function(R){var b={fn:R,next:void 0};p&&(p.next=b),f||(f=b,d()),p=b}}},function(r,o,t){var i=t(3),s=t(50),a=t(22),c=t(19)("IE_PROTO"),l=function(){},u="prototype",f=function(){var p,d=t(16)("iframe"),h=a.length,v=">";for(d.style.display="none",t(25).appendChild(d),d.src="javascript:",p=d.contentWindow.document,p.open(),p.write("<script>document.F=Object</script"+v),p.close(),f=p.F;h--;)delete f[u][a[h]];return f()};r.exports=Object.create||function(p,d){var h;return p!==null?(l[u]=i(p),h=new l,l[u]=null,h[c]=p):h=f(),d===void 0?h:s(h,d)}},function(r,o,t){var i=t(12),s=t(3),a=t(54);r.exports=t(4)?Object.defineProperties:function(c,l){s(c);for(var u,f=a(l),p=f.length,d=0;p>d;)i.f(c,u=f[d++],l[u]);return c}},function(r,o,t){var i=t(55),s=t(17),a=t(13),c=t(32),l=t(8),u=t(26),f=Object.getOwnPropertyDescriptor;o.f=t(4)?f:function(p,d){if(p=a(p),d=c(d,!0),u)try{return f(p,d)}catch{}if(l(p,d))return s(!i.f.call(p,d),p[d])}},function(r,o,t){var i=t(8),s=t(63),a=t(19)("IE_PROTO"),c=Object.prototype;r.exports=Object.getPrototypeOf||function(l){return l=s(l),i(l,a)?l[a]:typeof l.constructor=="function"&&l instanceof l.constructor?l.constructor.prototype:l instanceof Object?c:null}},function(r,o,t){var i=t(8),s=t(13),a=t(39)(!1),c=t(19)("IE_PROTO");r.exports=function(l,u){var f,p=s(l),d=0,h=[];for(f in p)f!=c&&i(p,f)&&h.push(f);for(;u.length>d;)i(p,f=u[d++])&&(~a(h,f)||h.push(f));return h}},function(r,o,t){var i=t(53),s=t(22);r.exports=Object.keys||function(a){return i(a,s)}},function(r,o){o.f={}.propertyIsEnumerable},function(r,o,t){var i=t(5);r.exports=function(s,a,c){for(var l in a)c&&s[l]?s[l]=a[l]:i(s,l,a[l]);return s}},function(r,o,t){r.exports=t(5)},function(r,o,t){var i=t(9),s=t(3),a=function(c,l){if(s(c),!i(l)&&l!==null)throw TypeError(l+": can't set as prototype!")};r.exports={set:Object.setPrototypeOf||("__proto__"in{}?(function(c,l,u){try{u=t(7)(Function.call,t(51).f(Object.prototype,"__proto__").set,2),u(c,[]),l=!(c instanceof Array)}catch{l=!0}return function(f,p){return a(f,p),l?f.__proto__=p:u(f,p),f}})({},!1):void 0),check:a}},function(r,o,t){"use strict";var i=t(2),s=t(6),a=t(12),c=t(4),l=t(1)("species");r.exports=function(u){var f=typeof s[u]=="function"?s[u]:i[u];c&&f&&!f[l]&&a.f(f,l,{configurable:!0,get:function(){return this}})}},function(r,o,t){var i=t(3),s=t(14),a=t(1)("species");r.exports=function(c,l){var u,f=i(c).constructor;return f===void 0||(u=i(f)[a])==null?l:s(u)}},function(r,o,t){var i=t(20),s=t(15);r.exports=function(a){return function(c,l){var u,f,p=String(s(c)),d=i(l),h=p.length;return d<0||d>=h?a?"":void 0:(u=p.charCodeAt(d),u<55296||u>56319||d+1===h||(f=p.charCodeAt(d+1))<56320||f>57343?a?p.charAt(d):u:a?p.slice(d,d+2):(u-55296<<10)+(f-56320)+65536)}}},function(r,o,t){var i=t(20),s=Math.max,a=Math.min;r.exports=function(c,l){return c=i(c),c<0?s(c+l,0):a(c,l)}},function(r,o,t){var i=t(15);r.exports=function(s){return Object(i(s))}},function(r,o,t){var i=t(21),s=t(1)("iterator"),a=t(10);r.exports=t(6).getIteratorMethod=function(c){if(c!=null)return c[s]||c["@@iterator"]||a[i(c)]}},function(r,o,t){"use strict";var i=t(37),s=t(47),a=t(10),c=t(13);r.exports=t(27)(Array,"Array",function(l,u){this._t=c(l),this._i=0,this._k=u},function(){var l=this._t,u=this._k,f=this._i++;return!l||f>=l.length?(this._t=void 0,s(1)):u=="keys"?s(0,f):u=="values"?s(0,l[f]):s(0,[f,l[f]])},"values"),a.Arguments=a.Array,i("keys"),i("values"),i("entries")},function(r,o){},function(r,o,t){"use strict";var i,s,a,c=t(28),l=t(2),u=t(7),f=t(21),p=t(23),d=t(9),h=(t(3),t(14)),v=t(38),E=t(40),O=(t(58).set,t(60)),R=t(30).set,b=t(48)(),_="Promise",S=l.TypeError,k=l.process,g=l[_],k=l.process,P=f(k)=="process",D=function(){},H=!!(function(){try{var y=g.resolve(1),w=(y.constructor={})[t(1)("species")]=function(x){x(D,D)};return(P||typeof PromiseRejectionEvent=="function")&&y.then(D)instanceof w}catch{}})(),ae=function(y,w){return y===w||y===g&&w===a},ce=function(y){var w;return!(!d(y)||typeof(w=y.then)!="function")&&w},X=function(y){return ae(g,y)?new Te(y):new s(y)},Te=s=function(y){var w,x;this.promise=new y(function(L,W){if(w!==void 0||x!==void 0)throw S("Bad Promise constructor");w=L,x=W}),this.resolve=h(w),this.reject=h(x)},st=function(y){try{y()}catch(w){return{error:w}}},Qe=function(y,w){if(!y._n){y._n=!0;var x=y._c;b(function(){for(var L=y._v,W=y._s==1,Je=0,at=function(ke){var me,ln,Ot=W?ke.ok:ke.fail,It=ke.resolve,ct=ke.reject,un=ke.domain;try{Ot?(W||(y._h==2&&_e(y),y._h=1),Ot===!0?me=L:(un&&un.enter(),me=Ot(L),un&&un.exit()),me===ke.promise?ct(S("Promise-chain cycle")):(ln=ce(me))?ln.call(me,It,ct):It(me)):ct(L)}catch(cs){ct(cs)}};x.length>Je;)at(x[Je++]);y._c=[],y._n=!1,w&&!y._h&&_t(y)})}},_t=function(y){R.call(l,function(){var w,x,L,W=y._v;if(q(y)&&(w=st(function(){P?k.emit("unhandledRejection",W,y):(x=l.onunhandledrejection)?x({promise:y,reason:W}):(L=l.console)&&L.error&&L.error("Unhandled promise rejection",W)}),y._h=P||q(y)?2:1),y._a=void 0,w)throw w.error})},q=function(y){if(y._h==1)return!1;for(var w,x=y._a||y._c,L=0;x.length>L;)if(w=x[L++],w.fail||!q(w.promise))return!1;return!0},_e=function(y){R.call(l,function(){var w;P?k.emit("rejectionHandled",y):(w=l.onrejectionhandled)&&w({promise:y,reason:y._v})})},ee=function(y){var w=this;w._d||(w._d=!0,w=w._w||w,w._v=y,w._s=2,w._a||(w._a=w._c.slice()),Qe(w,!0))},kt=function(y){var w,x=this;if(!x._d){x._d=!0,x=x._w||x;try{if(x===y)throw S("Promise can't be resolved itself");(w=ce(y))?b(function(){var L={_w:x,_d:!1};try{w.call(y,u(kt,L,1),u(ee,L,1))}catch(W){ee.call(L,W)}}):(x._v=y,x._s=1,Qe(x,!1))}catch(L){ee.call({_w:x,_d:!1},L)}}};H||(g=function(y){v(this,g,_,"_h"),h(y),i.call(this);try{y(u(kt,this,1),u(ee,this,1))}catch(w){ee.call(this,w)}},i=function(y){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},i.prototype=t(56)(g.prototype,{then:function(y,w){var x=X(O(this,g));return x.ok=typeof y!="function"||y,x.fail=typeof w=="function"&&w,x.domain=P?k.domain:void 0,this._c.push(x),this._a&&this._a.push(x),this._s&&Qe(this,!1),x.promise},catch:function(y){return this.then(void 0,y)}}),Te=function(){var y=new i;this.promise=y,this.resolve=u(kt,y,1),this.reject=u(ee,y,1)}),p(p.G+p.W+p.F*!H,{Promise:g}),t(18)(g,_),t(59)(_),a=t(6)[_],p(p.S+p.F*!H,_,{reject:function(y){var w=X(this),x=w.reject;return x(y),w.promise}}),p(p.S+p.F*(c||!H),_,{resolve:function(y){if(y instanceof g&&ae(y.constructor,this))return y;var w=X(this),x=w.resolve;return x(y),w.promise}}),p(p.S+p.F*!(H&&t(46)(function(y){g.all(y).catch(D)})),_,{all:function(y){var w=this,x=X(w),L=x.resolve,W=x.reject,Je=st(function(){var at=[],ke=0,me=1;E(y,!1,function(ln){var Ot=ke++,It=!1;at.push(void 0),me++,w.resolve(ln).then(function(ct){It||(It=!0,at[Ot]=ct,--me||L(at))},W)}),--me||L(at)});return Je&&W(Je.error),x.promise},race:function(y){var w=this,x=X(w),L=x.reject,W=st(function(){E(y,!1,function(Je){w.resolve(Je).then(x.resolve,L)})});return W&&L(W.error),x.promise}})},function(r,o,t){"use strict";var i=t(61)(!0);t(27)(String,"String",function(s){this._t=String(s),this._i=0},function(){var s,a=this._t,c=this._i;return c>=a.length?{value:void 0,done:!0}:(s=i(a,c),this._i+=s.length,{value:s,done:!1})})},function(r,o,t){t(65);for(var i=t(2),s=t(5),a=t(10),c=t(1)("toStringTag"),l=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],u=0;u<5;u++){var f=l[u],p=i[f],d=p&&p.prototype;d&&!d[c]&&s(d,c,f),a[f]=a.Array}},function(r,o){r.exports=require("child_process")},function(r,o){r.exports=require("crypto")}])})});var kr=ne((Cl,Si)=>{Si.exports={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8}});var Ri=ne((Ll,Ei)=>{var Pa=kr();function Ti(e){this.mode=Pa.MODE_8BIT_BYTE,this.data=e}Ti.prototype={getLength:function(){return this.data.length},write:function(e){for(var n=0;n<this.data.length;n++)e.put(this.data.charCodeAt(n),8)}};Ei.exports=Ti});var Or=ne((Ml,xi)=>{var de={glog:function(e){if(e<1)throw new Error("glog("+e+")");return de.LOG_TABLE[e]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return de.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(F=0;F<8;F++)de.EXP_TABLE[F]=1<<F;var F;for(F=8;F<256;F++)de.EXP_TABLE[F]=de.EXP_TABLE[F-4]^de.EXP_TABLE[F-5]^de.EXP_TABLE[F-6]^de.EXP_TABLE[F-8];var F;for(F=0;F<255;F++)de.LOG_TABLE[de.EXP_TABLE[F]]=F;var F;xi.exports=de});var Ir=ne(($l,bi)=>{var ot=Or();function Fn(e,n){if(e.length===void 0)throw new Error(e.length+"/"+n);for(var r=0;r<e.length&&e[r]===0;)r++;this.num=new Array(e.length-r+n);for(var o=0;o<e.length-r;o++)this.num[o]=e[o+r]}Fn.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var n=new Array(this.getLength()+e.getLength()-1),r=0;r<this.getLength();r++)for(var o=0;o<e.getLength();o++)n[r+o]^=ot.gexp(ot.glog(this.get(r))+ot.glog(e.get(o)));return new Fn(n,0)},mod:function(e){if(this.getLength()-e.getLength()<0)return this;for(var n=ot.glog(this.get(0))-ot.glog(e.get(0)),r=new Array(this.getLength()),o=0;o<this.getLength();o++)r[o]=this.get(o);for(var t=0;t<e.getLength();t++)r[t]^=ot.gexp(ot.glog(e.get(t))+n);return new Fn(r,0).mod(e)}};bi.exports=Fn});var _i=ne((Nl,Ai)=>{Ai.exports={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7}});var Ii=ne((Dl,Oi)=>{var se=kr(),ki=Ir(),Ca=Or(),Ke=_i(),G={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(e){for(var n=e<<10;G.getBCHDigit(n)-G.getBCHDigit(G.G15)>=0;)n^=G.G15<<G.getBCHDigit(n)-G.getBCHDigit(G.G15);return(e<<10|n)^G.G15_MASK},getBCHTypeNumber:function(e){for(var n=e<<12;G.getBCHDigit(n)-G.getBCHDigit(G.G18)>=0;)n^=G.G18<<G.getBCHDigit(n)-G.getBCHDigit(G.G18);return e<<12|n},getBCHDigit:function(e){for(var n=0;e!==0;)n++,e>>>=1;return n},getPatternPosition:function(e){return G.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,n,r){switch(e){case Ke.PATTERN000:return(n+r)%2===0;case Ke.PATTERN001:return n%2===0;case Ke.PATTERN010:return r%3===0;case Ke.PATTERN011:return(n+r)%3===0;case Ke.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2===0;case Ke.PATTERN101:return n*r%2+n*r%3===0;case Ke.PATTERN110:return(n*r%2+n*r%3)%2===0;case Ke.PATTERN111:return(n*r%3+(n+r)%2)%2===0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var n=new ki([1],0),r=0;r<e;r++)n=n.multiply(new ki([1,Ca.gexp(r)],0));return n},getLengthInBits:function(e,n){if(1<=n&&n<10)switch(e){case se.MODE_NUMBER:return 10;case se.MODE_ALPHA_NUM:return 9;case se.MODE_8BIT_BYTE:return 8;case se.MODE_KANJI:return 8;default:throw new Error("mode:"+e)}else if(n<27)switch(e){case se.MODE_NUMBER:return 12;case se.MODE_ALPHA_NUM:return 11;case se.MODE_8BIT_BYTE:return 16;case se.MODE_KANJI:return 10;default:throw new Error("mode:"+e)}else if(n<41)switch(e){case se.MODE_NUMBER:return 14;case se.MODE_ALPHA_NUM:return 13;case se.MODE_8BIT_BYTE:return 16;case se.MODE_KANJI:return 12;default:throw new Error("mode:"+e)}else throw new Error("type:"+n)},getLostPoint:function(e){var n=e.getModuleCount(),r=0,o=0,t=0;for(o=0;o<n;o++)for(t=0;t<n;t++){for(var i=0,s=e.isDark(o,t),a=-1;a<=1;a++)if(!(o+a<0||n<=o+a))for(var c=-1;c<=1;c++)t+c<0||n<=t+c||a===0&&c===0||s===e.isDark(o+a,t+c)&&i++;i>5&&(r+=3+i-5)}for(o=0;o<n-1;o++)for(t=0;t<n-1;t++){var l=0;e.isDark(o,t)&&l++,e.isDark(o+1,t)&&l++,e.isDark(o,t+1)&&l++,e.isDark(o+1,t+1)&&l++,(l===0||l===4)&&(r+=3)}for(o=0;o<n;o++)for(t=0;t<n-6;t++)e.isDark(o,t)&&!e.isDark(o,t+1)&&e.isDark(o,t+2)&&e.isDark(o,t+3)&&e.isDark(o,t+4)&&!e.isDark(o,t+5)&&e.isDark(o,t+6)&&(r+=40);for(t=0;t<n;t++)for(o=0;o<n-6;o++)e.isDark(o,t)&&!e.isDark(o+1,t)&&e.isDark(o+2,t)&&e.isDark(o+3,t)&&e.isDark(o+4,t)&&!e.isDark(o+5,t)&&e.isDark(o+6,t)&&(r+=40);var u=0;for(t=0;t<n;t++)for(o=0;o<n;o++)e.isDark(o,t)&&u++;var f=Math.abs(100*u/n/n-50)/5;return r+=f*10,r}};Oi.exports=G});var Pr=ne((Ul,Pi)=>{Pi.exports={L:1,M:0,Q:3,H:2}});var Li=ne((Bl,Ci)=>{var Hn=Pr();function ve(e,n){this.totalCount=e,this.dataCount=n}ve.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];ve.getRSBlocks=function(e,n){var r=ve.getRsBlockTable(e,n);if(r===void 0)throw new Error("bad rs block @ typeNumber:"+e+"/errorCorrectLevel:"+n);for(var o=r.length/3,t=[],i=0;i<o;i++)for(var s=r[i*3+0],a=r[i*3+1],c=r[i*3+2],l=0;l<s;l++)t.push(new ve(a,c));return t};ve.getRsBlockTable=function(e,n){switch(n){case Hn.L:return ve.RS_BLOCK_TABLE[(e-1)*4+0];case Hn.M:return ve.RS_BLOCK_TABLE[(e-1)*4+1];case Hn.Q:return ve.RS_BLOCK_TABLE[(e-1)*4+2];case Hn.H:return ve.RS_BLOCK_TABLE[(e-1)*4+3];default:return}};Ci.exports=ve});var Ni=ne((Fl,$i)=>{function Mi(){this.buffer=[],this.length=0}Mi.prototype={get:function(e){var n=Math.floor(e/8);return(this.buffer[n]>>>7-e%8&1)==1},put:function(e,n){for(var r=0;r<n;r++)this.putBit((e>>>n-r-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){var n=Math.floor(this.length/8);this.buffer.length<=n&&this.buffer.push(0),e&&(this.buffer[n]|=128>>>this.length%8),this.length++}};$i.exports=Mi});var Fi=ne((Hl,Bi)=>{var La=Ri(),je=Ii(),Ma=Ir(),Di=Li(),Ui=Ni();function Se(e,n){this.typeNumber=e,this.errorCorrectLevel=n,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}Se.prototype={addData:function(e){var n=new La(e);this.dataList.push(n),this.dataCache=null},isDark:function(e,n){if(e<0||this.moduleCount<=e||n<0||this.moduleCount<=n)throw new Error(e+","+n);return this.modules[e][n]},getModuleCount:function(){return this.moduleCount},make:function(){if(this.typeNumber<1){var e=1;for(e=1;e<40;e++){for(var n=Di.getRSBlocks(e,this.errorCorrectLevel),r=new Ui,o=0,t=0;t<n.length;t++)o+=n[t].dataCount;for(var i=0;i<this.dataList.length;i++){var s=this.dataList[i];r.put(s.mode,4),r.put(s.getLength(),je.getLengthInBits(s.mode,e)),s.write(r)}if(r.getLengthInBits()<=o*8)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(e,n){this.moduleCount=this.typeNumber*4+17,this.modules=new Array(this.moduleCount);for(var r=0;r<this.moduleCount;r++){this.modules[r]=new Array(this.moduleCount);for(var o=0;o<this.moduleCount;o++)this.modules[r][o]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,n),this.typeNumber>=7&&this.setupTypeNumber(e),this.dataCache===null&&(this.dataCache=Se.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,n)},setupPositionProbePattern:function(e,n){for(var r=-1;r<=7;r++)if(!(e+r<=-1||this.moduleCount<=e+r))for(var o=-1;o<=7;o++)n+o<=-1||this.moduleCount<=n+o||(0<=r&&r<=6&&(o===0||o===6)||0<=o&&o<=6&&(r===0||r===6)||2<=r&&r<=4&&2<=o&&o<=4?this.modules[e+r][n+o]=!0:this.modules[e+r][n+o]=!1)},getBestMaskPattern:function(){for(var e=0,n=0,r=0;r<8;r++){this.makeImpl(!0,r);var o=je.getLostPoint(this);(r===0||e>o)&&(e=o,n=r)}return n},createMovieClip:function(e,n,r){var o=e.createEmptyMovieClip(n,r),t=1;this.make();for(var i=0;i<this.modules.length;i++)for(var s=i*t,a=0;a<this.modules[i].length;a++){var c=a*t,l=this.modules[i][a];l&&(o.beginFill(0,100),o.moveTo(c,s),o.lineTo(c+t,s),o.lineTo(c+t,s+t),o.lineTo(c,s+t),o.endFill())}return o},setupTimingPattern:function(){for(var e=8;e<this.moduleCount-8;e++)this.modules[e][6]===null&&(this.modules[e][6]=e%2===0);for(var n=8;n<this.moduleCount-8;n++)this.modules[6][n]===null&&(this.modules[6][n]=n%2===0)},setupPositionAdjustPattern:function(){for(var e=je.getPatternPosition(this.typeNumber),n=0;n<e.length;n++)for(var r=0;r<e.length;r++){var o=e[n],t=e[r];if(this.modules[o][t]===null)for(var i=-2;i<=2;i++)for(var s=-2;s<=2;s++)Math.abs(i)===2||Math.abs(s)===2||i===0&&s===0?this.modules[o+i][t+s]=!0:this.modules[o+i][t+s]=!1}},setupTypeNumber:function(e){for(var n=je.getBCHTypeNumber(this.typeNumber),r,o=0;o<18;o++)r=!e&&(n>>o&1)===1,this.modules[Math.floor(o/3)][o%3+this.moduleCount-8-3]=r;for(var t=0;t<18;t++)r=!e&&(n>>t&1)===1,this.modules[t%3+this.moduleCount-8-3][Math.floor(t/3)]=r},setupTypeInfo:function(e,n){for(var r=this.errorCorrectLevel<<3|n,o=je.getBCHTypeInfo(r),t,i=0;i<15;i++)t=!e&&(o>>i&1)===1,i<6?this.modules[i][8]=t:i<8?this.modules[i+1][8]=t:this.modules[this.moduleCount-15+i][8]=t;for(var s=0;s<15;s++)t=!e&&(o>>s&1)===1,s<8?this.modules[8][this.moduleCount-s-1]=t:s<9?this.modules[8][15-s-1+1]=t:this.modules[8][15-s-1]=t;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,n){for(var r=-1,o=this.moduleCount-1,t=7,i=0,s=this.moduleCount-1;s>0;s-=2)for(s===6&&s--;;){for(var a=0;a<2;a++)if(this.modules[o][s-a]===null){var c=!1;i<e.length&&(c=(e[i]>>>t&1)===1);var l=je.getMask(n,o,s-a);l&&(c=!c),this.modules[o][s-a]=c,t--,t===-1&&(i++,t=7)}if(o+=r,o<0||this.moduleCount<=o){o-=r,r=-r;break}}}};Se.PAD0=236;Se.PAD1=17;Se.createData=function(e,n,r){for(var o=Di.getRSBlocks(e,n),t=new Ui,i=0;i<r.length;i++){var s=r[i];t.put(s.mode,4),t.put(s.getLength(),je.getLengthInBits(s.mode,e)),s.write(t)}for(var a=0,c=0;c<o.length;c++)a+=o[c].dataCount;if(t.getLengthInBits()>a*8)throw new Error("code length overflow. ("+t.getLengthInBits()+">"+a*8+")");for(t.getLengthInBits()+4<=a*8&&t.put(0,4);t.getLengthInBits()%8!==0;)t.putBit(!1);for(;!(t.getLengthInBits()>=a*8||(t.put(Se.PAD0,8),t.getLengthInBits()>=a*8));)t.put(Se.PAD1,8);return Se.createBytes(t,o)};Se.createBytes=function(e,n){for(var r=0,o=0,t=0,i=new Array(n.length),s=new Array(n.length),a=0;a<n.length;a++){var c=n[a].dataCount,l=n[a].totalCount-c;o=Math.max(o,c),t=Math.max(t,l),i[a]=new Array(c);for(var u=0;u<i[a].length;u++)i[a][u]=255&e.buffer[u+r];r+=c;var f=je.getErrorCorrectPolynomial(l),p=new Ma(i[a],f.getLength()-1),d=p.mod(f);s[a]=new Array(f.getLength()-1);for(var h=0;h<s[a].length;h++){var v=h+d.getLength()-s[a].length;s[a][h]=v>=0?d.get(v):0}}for(var E=0,O=0;O<n.length;O++)E+=n[O].totalCount;for(var R=new Array(E),b=0,_=0;_<o;_++)for(var S=0;S<n.length;S++)_<i[S].length&&(R[b++]=i[S][_]);for(var g=0;g<t;g++)for(var k=0;k<n.length;k++)g<s[k].length&&(R[b++]=s[k][g]);return R};Bi.exports=Se});var ji=ne((Kl,Ki)=>{var $a=Fi(),Hi=Pr(),Na="\x1B[40m \x1B[0m",Kn="\x1B[47m \x1B[0m",Da=function(e){return e?Na:Kn},Cr=function(e){return{times:function(n){return new Array(n).join(e)}}},Ua=function(e,n){for(var r=new Array(e),o=0;o<e;o++)r[o]=n;return r};Ki.exports={error:Hi.L,generate:function(e,n,r){typeof n=="function"&&(r=n,n={});var o=new $a(-1,this.error);o.addData(e),o.make();var t="";if(n&&n.small){var i=!0,s=!1,a=o.getModuleCount(),c=o.modules.slice(),l=a%2===1;l&&c.push(Ua(a,s));var u={WHITE_ALL:"\u2588",WHITE_BLACK:"\u2580",BLACK_WHITE:"\u2584",BLACK_ALL:" "},f=Cr(u.BLACK_WHITE).times(a+3),p=Cr(u.WHITE_BLACK).times(a+3);t+=f+`
|
|
7
7
|
`;for(var d=0;d<a;d+=2){t+=u.WHITE_ALL;for(var h=0;h<a;h++)c[d][h]===s&&c[d+1][h]===s?t+=u.WHITE_ALL:c[d][h]===s&&c[d+1][h]===i?t+=u.WHITE_BLACK:c[d][h]===i&&c[d+1][h]===s?t+=u.BLACK_WHITE:t+=u.BLACK_ALL;t+=u.WHITE_ALL+`
|
|
8
8
|
`}l||(t+=p)}else{var v=Cr(Kn).times(o.getModuleCount()+3);t+=v+`
|
|
@@ -15,7 +15,7 @@ Right-click to open / quit`}function li(){let{port:e,tunnelUrl:n}=zt,r=process.p
|
|
|
15
15
|
`:`
|
|
16
16
|
`)+r,t=o+1,o=e.indexOf(`
|
|
17
17
|
`,t)}while(o!==-1);return i+=e.slice(t),i}var{stdout:so,stderr:ao}=ro,Xn=Symbol("GENERATOR"),lt=Symbol("STYLER"),Nt=Symbol("IS_EMPTY"),co=["ansi","ansi","ansi256","ansi16m"],ut=Object.create(null),Ds=(e,n={})=>{if(n.level&&!(Number.isInteger(n.level)&&n.level>=0&&n.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=so?so.level:0;e.level=n.level===void 0?r:n.level};var Us=e=>{let n=(...r)=>r.join(" ");return Ds(n,e),Object.setPrototypeOf(n,Dt.prototype),n};function Dt(e){return Us(e)}Object.setPrototypeOf(Dt.prototype,Function.prototype);for(let[e,n]of Object.entries(le))ut[e]={get(){let r=yn(this,Zn(n.open,n.close,this[lt]),this[Nt]);return Object.defineProperty(this,e,{value:r}),r}};ut.visible={get(){let e=yn(this,this[lt],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var qn=(e,n,r,...o)=>e==="rgb"?n==="ansi16m"?le[r].ansi16m(...o):n==="ansi256"?le[r].ansi256(le.rgbToAnsi256(...o)):le[r].ansi(le.rgbToAnsi(...o)):e==="hex"?qn("rgb",n,r,...le.hexToRgb(...o)):le[r][e](...o),Bs=["rgb","hex","ansi256"];for(let e of Bs){ut[e]={get(){let{level:r}=this;return function(...o){let t=Zn(qn(e,co[r],"color",...o),le.color.close,this[lt]);return yn(this,t,this[Nt])}}};let n="bg"+e[0].toUpperCase()+e.slice(1);ut[n]={get(){let{level:r}=this;return function(...o){let t=Zn(qn(e,co[r],"bgColor",...o),le.bgColor.close,this[lt]);return yn(this,t,this[Nt])}}}}var Fs=Object.defineProperties(()=>{},{...ut,level:{enumerable:!0,get(){return this[Xn].level},set(e){this[Xn].level=e}}}),Zn=(e,n,r)=>{let o,t;return r===void 0?(o=e,t=n):(o=r.openAll+e,t=n+r.closeAll),{open:e,close:n,openAll:o,closeAll:t,parent:r}},yn=(e,n,r)=>{let o=(...t)=>Hs(o,t.length===1?""+t[0]:t.join(" "));return Object.setPrototypeOf(o,Fs),o[Xn]=e,o[lt]=n,o[Nt]=r,o},Hs=(e,n)=>{if(e.level<=0||!n)return e[Nt]?"":n;let r=e[lt];if(r===void 0)return n;let{openAll:o,closeAll:t}=r;if(n.includes("\x1B"))for(;r!==void 0;)n=oo(n,r.close,r.open),r=r.parent;let i=n.indexOf(`
|
|
18
|
-
`);return i!==-1&&(n=io(n,t,o,i)),o+n+t};Object.defineProperties(Dt.prototype,ut);var Ks=Dt(),vc=Dt({level:ao?ao.level:0});var m=Ks;var Ce=require("fs"),ho=require("url"),vn=require("child_process"),Sn=A(require("path"),1),go=A(require("os"),1);var ft=A(require("fs"),1),er=A(require("path"),1),lo=A(require("os"),1),uo=require("child_process"),zn=er.default.join(lo.default.homedir(),".9remote","pids");function js(){try{ft.default.existsSync(zn)||ft.default.mkdirSync(zn,{recursive:!0})}catch{}}function tr(e){return er.default.join(zn,`${e}.pid`)}function Ie(e,n){if(n)try{js(),ft.default.writeFileSync(tr(e),String(n))}catch{}}function wn(e){try{let n=ft.default.readFileSync(tr(e),"utf8").trim(),r=parseInt(n,10);return Number.isFinite(r)&&r>0?r:null}catch{return null}}function Pe(e){try{ft.default.unlinkSync(tr(e))}catch{}}function fo(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}function Gs(e){let n=wn(e);if(Pe(e),!n)return!1;try{process.platform==="win32"?(0,uo.execSync)(`taskkill /F /T /PID ${n}`,{stdio:"ignore",windowsHide:!0}):process.kill(n,"SIGKILL")}catch{}return!0}var Ws=["cloudflared","agent"];function po(){for(let e of Ws)Gs(e)}var Ys=Sn.default.dirname((0,ho.fileURLToPath)(__importMetaUrl)),Vs="9remote",Qs=`https://registry.npmjs.org/${Vs}/latest`,Js=3e3;var mo=2208,nr=Sn.default.join(go.default.homedir(),".9remote","cloudflared.pid");function Xs(){try{po()}catch{}try{if((0,Ce.existsSync)(nr)){let e=parseInt((0,Ce.readFileSync)(nr,"utf8"));if(Number.isFinite(e))try{process.kill(e)}catch{}try{(0,Ce.unlinkSync)(nr)}catch{}}}catch{}try{process.platform==="win32"?(0,vn.execSync)(`for /f "tokens=5" %a in ('netstat -aon ^| findstr :${mo}') do taskkill /F /PID %a`,{stdio:"ignore",windowsHide:!0}):(0,vn.execSync)(`lsof -ti:${mo} | xargs kill -9 2>/dev/null || true`,{stdio:"ignore"})}catch{}if(process.platform==="win32"){let e=Date.now()+1500;for(;Date.now()<e;);}}function qs(){return"2.0.
|
|
18
|
+
`);return i!==-1&&(n=io(n,t,o,i)),o+n+t};Object.defineProperties(Dt.prototype,ut);var Ks=Dt(),vc=Dt({level:ao?ao.level:0});var m=Ks;var Ce=require("fs"),ho=require("url"),vn=require("child_process"),Sn=A(require("path"),1),go=A(require("os"),1);var ft=A(require("fs"),1),er=A(require("path"),1),lo=A(require("os"),1),uo=require("child_process"),zn=er.default.join(lo.default.homedir(),".9remote","pids");function js(){try{ft.default.existsSync(zn)||ft.default.mkdirSync(zn,{recursive:!0})}catch{}}function tr(e){return er.default.join(zn,`${e}.pid`)}function Ie(e,n){if(n)try{js(),ft.default.writeFileSync(tr(e),String(n))}catch{}}function wn(e){try{let n=ft.default.readFileSync(tr(e),"utf8").trim(),r=parseInt(n,10);return Number.isFinite(r)&&r>0?r:null}catch{return null}}function Pe(e){try{ft.default.unlinkSync(tr(e))}catch{}}function fo(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}function Gs(e){let n=wn(e);if(Pe(e),!n)return!1;try{process.platform==="win32"?(0,uo.execSync)(`taskkill /F /T /PID ${n}`,{stdio:"ignore",windowsHide:!0}):process.kill(n,"SIGKILL")}catch{}return!0}var Ws=["cloudflared","agent"];function po(){for(let e of Ws)Gs(e)}var Ys=Sn.default.dirname((0,ho.fileURLToPath)(__importMetaUrl)),Vs="9remote",Qs=`https://registry.npmjs.org/${Vs}/latest`,Js=3e3;var mo=2208,nr=Sn.default.join(go.default.homedir(),".9remote","cloudflared.pid");function Xs(){try{po()}catch{}try{if((0,Ce.existsSync)(nr)){let e=parseInt((0,Ce.readFileSync)(nr,"utf8"));if(Number.isFinite(e))try{process.kill(e)}catch{}try{(0,Ce.unlinkSync)(nr)}catch{}}}catch{}try{process.platform==="win32"?(0,vn.execSync)(`for /f "tokens=5" %a in ('netstat -aon ^| findstr :${mo}') do taskkill /F /PID %a`,{stdio:"ignore",windowsHide:!0}):(0,vn.execSync)(`lsof -ti:${mo} | xargs kill -9 2>/dev/null || true`,{stdio:"ignore"})}catch{}if(process.platform==="win32"){let e=Date.now()+1500;for(;Date.now()<e;);}}function qs(){return"2.0.31"}function Zs(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 Tn(){Xs()}async function yo(){try{let e=qs();if(!e)return null;let n=await Y(Qs,{signal:AbortSignal.timeout(Js)});if(!n.ok)return null;let{version:r}=await n.json();return r&&Zs(e,r)?{current:e,latest:r}:null}catch{return null}}var te=A(require("fs"),1),Ut=A(require("path"),1);var _c=he.STATE,rr=Ut.default.join(he.STATE,"state.json"),or=Ut.default.join(he.ROOT,"keys.json"),En=Ut.default.join(he.STATE,"cmd.json"),kc=Ut.default.join(he.STATE,"settings.json");function Rn(){for(let e of[he.ROOT,he.STATE])te.default.existsSync(e)||te.default.mkdirSync(e,{recursive:!0})}function xn(e){try{Rn(),te.default.writeFileSync(rr,JSON.stringify(e,null,2),{mode:384})}catch(n){console.error("Error saving state:",n)}}function wo(){try{te.default.existsSync(rr)&&te.default.unlinkSync(rr)}catch{}}function bn(){try{return Rn(),te.default.existsSync(or)?JSON.parse(te.default.readFileSync(or,"utf8")):{machineId:null,key:null,name:"Default",createdAt:null}}catch{return{machineId:null,key:null,name:"Default",createdAt:null}}}function pt(e){try{Rn(),te.default.writeFileSync(En,JSON.stringify({cmd:e,ts:Date.now()}))}catch{}}function vo(){try{if(!te.default.existsSync(En))return null;let e=JSON.parse(te.default.readFileSync(En,"utf8"));return te.default.unlinkSync(En),e.cmd}catch{return null}}function Xe(e,n,r="Default"){try{Rn();let o={machineId:e,key:n,name:r,createdAt:new Date().toISOString()};return te.default.writeFileSync(or,JSON.stringify(o,null,2),{mode:384}),o}catch(o){return console.error("Error saving key:",o),null}}var Lo=A(require("os"),1);var On=A(require("readline"),1),Eo=A(require("http"),1);var ir=require("child_process"),zs={screenRecording:"x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture",accessibility:"x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"};function An(e){let n=zs[e];n&&process.platform==="darwin"&&(0,ir.exec)(`open "${n}"`,()=>{})}function ue({strategy:e,baseMs:n,maxMs:r},o){let t=Math.max(1,o),i=e==="exp"?n*Math.pow(2,t-1):n*t;return Math.min(i,r)}async function So({config:e,task:n,label:r="task",log:o=()=>{},ctx:t={}}){let i=0;for(;!t.cancelled;){i++;try{if(await n(i))return!0}catch(a){o(`\u274C ${r} attempt ${i} error: ${a?.message||a}`)}if(t.cancelled)return!1;let s=ue(e,i);o(`\u{1F504} ${r} retry in ${s}ms (attempt ${i})`),await new Promise(a=>setTimeout(a,s))}return!1}var T={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",orange:"\x1B[38;2;230;138;110m",green:"\x1B[32m",red:"\x1B[31m",yellow:"\x1B[33m",cyan:"\x1B[36m",white:"\x1B[37m"},Ro=()=>Math.min(44,process.stdout.columns||44);function ar(e,n=null){let o=Ro()-2,t=(a="")=>{let c=a.replace(/\x1b\[[0-9;]*m/g,""),l=Math.max(0,o-c.length);return T.orange+"\u2551"+T.reset+a+" ".repeat(l)+T.orange+"\u2551"+T.reset},i=(a,c=l=>l)=>{let l=a.replace(/\x1b\[[0-9;]*m/g,""),u=Math.floor((o-l.length)/2),f=o-l.length-u;return T.orange+"\u2551"+T.reset+" ".repeat(u)+c(a)+" ".repeat(f)+T.orange+"\u2551"+T.reset},s=["",T.orange+"\u2554"+"\u2550".repeat(o)+"\u2557"+T.reset,t(),i(`\u{1F680} 9Remote v${e}`,a=>T.bold+T.orange+a+T.reset),i("Remote terminal access from anywhere",a=>T.dim+a+T.reset),t()];return n&&(s.push(i(`\u2B06 New version v${n} available!`,a=>T.yellow+T.bold+a+T.reset)),s.push(i("Run: npm i -g 9remote@latest",a=>T.dim+a+T.reset)),s.push(t())),s.push(T.orange+"\u255A"+"\u2550".repeat(o)+"\u255D"+T.reset),s.push(""),s.join(`
|
|
19
19
|
`)}function mt(e,n=null){console.log(ar(e,n))}var To=["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"],sr=[{label:"Preparing",desc:"Checking dependencies"},{label:"Connecting",desc:"Creating session"},{label:"Starting tunnel",desc:"Spawning tunnel"},{label:"Verifying tunnel",desc:"Health check"},{label:"Ready",desc:"Tunnel is live"}],ea=process.platform==="win32",ta=ea?120:80;process.on("exit",()=>process.stdout.write("\x1B[?25h"));var xo=(e,n)=>{process.stdout.write("\x1B[?25h"),process.listenerCount(e)<=1&&process.exit(n)};process.on("SIGINT",()=>xo("SIGINT",130));process.on("SIGTERM",()=>xo("SIGTERM",143));var Re=0,qe=null,_n=0,ye=-1,Bt=null,dt=null,kn=!1;function bo(){let e=[],n=ye===sr.length-1;return sr.forEach((r,o)=>{let t=o===ye&&Bt?Bt:r.desc;if(o<ye||n&&o===ye)e.push(` ${T.green}\u2713${T.reset} ${T.dim}${r.label}${T.reset}`),dt&&o===dt.afterIdx&&e.push(` ${T.green}\u2713${T.reset} ${T.cyan}${dt.text}${T.reset}`);else if(o===ye){let i=To[_n%To.length];e.push(` ${T.orange}${i}${T.reset} ${T.bold}${r.label}${T.reset} ${T.dim}${t}${T.reset}`)}else e.push(` ${T.dim}\u25CB ${r.label}${T.reset}`)}),e}function Ao(){let e=bo();Re>0&&process.stdout.write(`\x1B[${Re}A\x1B[0J`),process.stdout.write(e.join(`
|
|
20
20
|
`)+`
|
|
21
21
|
`),Re=e.length}function _o(){if(Re===0||ye<0)return;let e=bo();if(e.length!==Re){Ao();return}let n=ye+(dt&&dt.afterIdx<ye?1:0),r=Re-n;process.stdout.write(`\x1B[${r}A\r\x1B[2K${e[n]}\x1B[${r}B\r`)}function na(){kn||(process.stdout.write("\x1B[?25l"),kn=!0)}function ko(){kn&&(process.stdout.write("\x1B[?25h"),kn=!1)}function Oo(e,n=!1,r=null){qe&&(clearInterval(qe),qe=null),ye=e,Bt=r,_n=0,n||(Re=0),Ao(),e<sr.length-1?(na(),qe=setInterval(()=>{_n++,_o()},ta)):ko()}function ht(e){Bt=e,Re>0&&_o()}function Io(){qe&&(clearInterval(qe),qe=null),ko(),Re=0,ye=-1,Bt=null,dt=null,_n=0}function we(e,n,r=0,o="",t=null,i=null){return new Promise(s=>{let a=r,c=!0,l=!0,u=process.platform==="win32",f=()=>{if(!c)return;process.stdout.write(l?"\x1B[2J\x1B[H":"\x1B[H"),l=!1;let v=typeof o=="function"?o():o;if(v)for(let E of v.split(`
|
|
@@ -53,7 +53,7 @@ QR expires in 30 minutes (one-time use)
|
|
|
53
53
|
`))):i.push(m.gray(`
|
|
54
54
|
(One-time key used \u2014 generate a new one from menu)
|
|
55
55
|
`)),i.push(ie.orange("\u2550".repeat(t)),m.white("App URL".padEnd(14))+m.gray(`${N}/login`)),Kr.showTunnelUrlInMenu&&i.push(m.white("Tunnel".padEnd(14))+(o?m.cyan(o):m.gray("\u2014"))),i.push(m.white("One-Time Key".padEnd(14))+(e?ie.orange.bold(e)+m.dim(" (expires in 30m)"):m.gray("\u2014")),m.white("Key".padEnd(14))+m.dim(n),ie.orange("\u2550".repeat(t))),i.join(`
|
|
56
|
-
`)}var it=V("cmd");function Ge(e,n,r){let o=!1;setInterval(async()=>{if(o)return;let t=vo();if(t){o=!0;try{if(t==="stop-tunnel")await Gi(e,n);else if(t==="restart-tunnel")await Gi(e,n),await Wi(e,n,r);else if(t==="start-tunnel"){if(await Wi(e,n,r)==="alreadyRunning"){o=!1;return}}else t==="regenerate-key"?await Ka():t==="shutdown"&&ja(e,n)}finally{o=!1}}},fe.cmdMs)}async function Gi(e,n){jt();let r=e();r&&(r.kill(),n(null),it.info("\u{1F6D1} Tunnel stopped")),await K(C.STOPPED,{tunnelUrl:"",oneTimeKey:"",oneTimeKeyExpiresAt:null}),Nn({tunnelUrl:"",running:!0})}async function Wi(e,n,r){let o=e();if(o)if(o.killed||o.exitCode!=null)n(null);else{let t=await j("/api/ui/state");return await K(C.READY,{tunnelUrl:t?.tunnelUrl||""}),"alreadyRunning"}it.info("\u{1F680} Starting tunnel...");try{await K(C.PREPARING),await qt(In),await K(C.CONNECTING);let t=await Y(`${N}/api/session/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:r})});if(!t.ok)throw new Error(`Session create failed: ${t.status}`);await K(C.TUNNELING);let i=async c=>{await Ae(r,c),await U({tunnelUrl:c}),wt(c)},s=await rt(I,i,xt({onUrlUpdate:i,setTunnel:c=>n(c)}));n(s.child),await K(C.VERIFYING),await He(s.tunnelUrl)||it.warn("\u26A0\uFE0F Tunnel health check timed out, proceeding anyway..."),await Ae(r,s.tunnelUrl),Nn({tunnelUrl:s.tunnelUrl,running:!0}),await new Promise(c=>setTimeout(c,z.postReadyHoldMs)),await jn(r,s.tunnelUrl)}catch(t){it.error(`\u274C Failed to start tunnel: ${t.message}`),await K(C.STOPPED)}}async function Ka(){let e=await Et(),{key:n}=Rt(e),r=bn();Xe(e,n,r?.name||"Default"),await U({permanentKey:n}),it.info(`\u2705 Key regenerated: ${Bn(n)}`)}function ja(e,n){it.info("\u{1F6D1} Shutting down 9Remote completely...");let r=e();n(null),nt({tunnelProcess:r}),it.info("\u2705 9Remote stopped")}var Mr=A(require("path"),1),Vi=A(require("fs"),1),Qi=require("url");function Yi(){return process.env.CODESPACES==="true"}var Ga=Mr.default.dirname((0,Qi.fileURLToPath)(__importMetaUrl));async function We(){let e=await Et();if(Yi()&&process.env.NREMOTE_API_KEY)return Xe(e,process.env.NREMOTE_API_KEY,"Codespace");let n=bn();if(!n.key){let{key:r}=Rt(e);n=Xe(e,r,"Default")}return n}function Ye(){return"2.0.
|
|
56
|
+
`)}var it=V("cmd");function Ge(e,n,r){let o=!1;setInterval(async()=>{if(o)return;let t=vo();if(t){o=!0;try{if(t==="stop-tunnel")await Gi(e,n);else if(t==="restart-tunnel")await Gi(e,n),await Wi(e,n,r);else if(t==="start-tunnel"){if(await Wi(e,n,r)==="alreadyRunning"){o=!1;return}}else t==="regenerate-key"?await Ka():t==="shutdown"&&ja(e,n)}finally{o=!1}}},fe.cmdMs)}async function Gi(e,n){jt();let r=e();r&&(r.kill(),n(null),it.info("\u{1F6D1} Tunnel stopped")),await K(C.STOPPED,{tunnelUrl:"",oneTimeKey:"",oneTimeKeyExpiresAt:null}),Nn({tunnelUrl:"",running:!0})}async function Wi(e,n,r){let o=e();if(o)if(o.killed||o.exitCode!=null)n(null);else{let t=await j("/api/ui/state");return await K(C.READY,{tunnelUrl:t?.tunnelUrl||""}),"alreadyRunning"}it.info("\u{1F680} Starting tunnel...");try{await K(C.PREPARING),await qt(In),await K(C.CONNECTING);let t=await Y(`${N}/api/session/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:r})});if(!t.ok)throw new Error(`Session create failed: ${t.status}`);await K(C.TUNNELING);let i=async c=>{await Ae(r,c),await U({tunnelUrl:c}),wt(c)},s=await rt(I,i,xt({onUrlUpdate:i,setTunnel:c=>n(c)}));n(s.child),await K(C.VERIFYING),await He(s.tunnelUrl)||it.warn("\u26A0\uFE0F Tunnel health check timed out, proceeding anyway..."),await Ae(r,s.tunnelUrl),Nn({tunnelUrl:s.tunnelUrl,running:!0}),await new Promise(c=>setTimeout(c,z.postReadyHoldMs)),await jn(r,s.tunnelUrl)}catch(t){it.error(`\u274C Failed to start tunnel: ${t.message}`),await K(C.STOPPED)}}async function Ka(){let e=await Et(),{key:n}=Rt(e),r=bn();Xe(e,n,r?.name||"Default"),await U({permanentKey:n}),it.info(`\u2705 Key regenerated: ${Bn(n)}`)}function ja(e,n){it.info("\u{1F6D1} Shutting down 9Remote completely...");let r=e();n(null),nt({tunnelProcess:r}),it.info("\u2705 9Remote stopped")}var Mr=A(require("path"),1),Vi=A(require("fs"),1),Qi=require("url");function Yi(){return process.env.CODESPACES==="true"}var Ga=Mr.default.dirname((0,Qi.fileURLToPath)(__importMetaUrl));async function We(){let e=await Et();if(Yi()&&process.env.NREMOTE_API_KEY)return Xe(e,process.env.NREMOTE_API_KEY,"Codespace");let n=bn();if(!n.key){let{key:r}=Rt(e);n=Xe(e,r,"Default")}return n}function Ye(){return"2.0.31"}async function Ji(){Ie("agent",process.pid),mt(Ye());let e=await We(),n=process.argv.find(a=>a.startsWith("--theme=")),r=n?n.split("=")[1]:null,o=await Z(),t=o?{getProcess:()=>null,shutdown:()=>{}}:Be(null,null);o||await new Promise(a=>setTimeout(a,z.serverBootMs));let i=`http://localhost:${I}`;console.log(m.green(`
|
|
57
57
|
\u{1F310} UI ready at ${i}`));let s=null;await U({permanentKey:e.key,step:C.STOPPED,theme:r}),Fe(t,null),Ge(()=>s,a=>{s=a},e.key),process.argv.includes("--start")&&pt("start-tunnel"),await new Promise(()=>{})}Tt();async function Xi(){Ie("agent",process.pid);let e=await We(),n=process.argv.find(l=>l.startsWith("--theme=")),r=n?n.split("=")[1]:null,o=await Z(),t=o?{getProcess:()=>null,shutdown:()=>{}}:Be(null,null);o||await new Promise(l=>setTimeout(l,z.serverBootMs));let i=`http://localhost:${I}`,s=null;await U({permanentKey:e.key,step:C.STOPPED,theme:r});let a=()=>{let l=s;s=null,nt({serverManager:t,tunnelProcess:l,exit:!1})};Fe(t,null),Ge(()=>s,l=>{s=l},e.key);try{Pe("cloudflared")}catch{}process.argv.includes("--start")&&pt("start-tunnel"),await Tr({port:I,onQuit:a,onOpenUI:()=>en(i)})&&Er({title:"9Remote is running",message:`Open ${i} or use the tray icon to manage.`}),await new Promise(()=>{})}var Ve=V("mode");async function Wa(e){Ve.info("\u{1F680} Starting server..."),await K(C.PREPARING);try{tt(),await new Promise(s=>setTimeout(s,z.killCloudflaredMs))}catch{}try{let s=await Y(`${N}/api/session/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:e})});if(!s.ok)return Ve.error(`\u274C Session create failed: ${s.status}`),null}catch(s){return Ve.error(`\u274C Session create failed: ${s.message}`),null}let n=await Z(),r=n?{getProcess:()=>null,shutdown:()=>{}}:Be(null,null);n||await new Promise(s=>setTimeout(s,z.serverBootMs)),Ve.info("\u2705 Starting tunnel..."),await K(C.CONNECTING);let o={current:null},t,i=async s=>{Ve.info(`\u{1F504} Tunnel URL rotated: ${s}`),await Ae(e,s),U({tunnelUrl:s}),wt(s)};try{let s=await rt(I,i,xt({onUrlUpdate:i,setTunnel:a=>{o.current=a}}));o.current=s.child,t=s.tunnelUrl}catch(s){return Ve.error(`\u274C Failed to start tunnel: ${s.message}`),r.shutdown(),null}return await He(t)||Ve.warn("\u26A0\uFE0F Tunnel health check timed out, proceeding anyway..."),await Ae(e,t),xn({apiKey:e,tunnelUrl:t,serverPid:r.getProcess()?.pid,tunnelPid:o.current?.pid}),{serverManager:r,tunnelRef:o,tunnelUrl:t}}async function qi(){mt(Ye());let e=await We();Ve.info(`Using key: ${Bn(e.key)} (${e.name})`);let n=await Wa(e.key);n||process.exit(1);let{serverManager:r,tunnelRef:o,tunnelUrl:t}=n;await jn(e.key,t),Fe(r,o.current),Ge(()=>o.current,s=>{o.current=s},e.key);let i=Date.now();setInterval(()=>{let s=Math.floor((Date.now()-i)/1e3),a=Math.floor(s/3600),c=Math.floor(s%3600/60),l=s%60;U({uptime:`${a}:${String(c).padStart(2,"0")}:${String(l).padStart(2,"0")}`})},fe.statsMs),await new Promise(()=>{})}var Zi=require("child_process"),$r=A(require("path"),1),zi=A(require("fs"),1),es=require("url");Tt();var mf=$r.default.dirname((0,es.fileURLToPath)(__importMetaUrl));async function ts(){let e=`http://localhost:${I}`;await Z()&&(Un(I),await new Promise(l=>setTimeout(l,500)));let r=[process.argv[1],"--tray"],o=process.argv.find(l=>l.startsWith("--theme="));o&&r.push(o);let t=$t;try{zi.default.mkdirSync($r.default.dirname(t),{recursive:!0})}catch{}let i=null;try{let l=(0,Zi.spawn)(process.execPath,r,{detached:!0,windowsHide:!0,stdio:"ignore",env:{...process.env}});l.unref(),i=l.pid,l.pid&&Ie("agent",l.pid)}catch(l){console.log(m.red(`
|
|
58
58
|
\u274C Failed to launch background: ${l.message}`)),process.exit(1)}let s=Date.now()+fe.bgServerReadyTimeoutMs,a=!1;for(;Date.now()<s;){if(await Z()){a=!0;break}await new Promise(l=>setTimeout(l,fe.bgServerReadyIntervalMs))}a||(console.log(m.red(`
|
|
59
59
|
\u274C Background server failed to start.`)),console.log(m.gray(` Check log: ${t}
|
package/dist/install.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
const __importMetaUrl = require('url').pathToFileURL(__filename).href;
|
|
3
|
-
var
|
|
3
|
+
var d=Object.create;var l=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var _=(e,t,s,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of p(t))!h.call(e,o)&&o!==s&&l(e,o,{get:()=>t[o],enumerable:!(c=f(t,o))||c.enumerable});return e};var b=(e,t,s)=>(s=e!=null?d(S(e)):{},_(t||!e||!e.__esModule?l(s,"default",{value:e,enumerable:!0}):s,e));var{spawnSync:R}=require("child_process"),n=require("fs"),u=require("os"),r=require("path"),a="systray2",j="2.1.4",w=r.join(u.homedir(),".9remote"),i=r.join(w,"runtime"),m=r.join(i,"node_modules");function v(){n.existsSync(i)||n.mkdirSync(i,{recursive:!0});let e=r.join(i,"package.json");n.existsSync(e)||n.writeFileSync(e,JSON.stringify({name:"9remote-runtime",version:"1.0.0",private:!0},null,2))}function g(){let e=process.platform==="darwin"?"tray_darwin_release":"tray_linux_release";return n.existsSync(r.join(m,a,"traybin",e))}function y(){if(process.platform==="win32")return;let e=process.platform==="darwin"?"tray_darwin_release":"tray_linux_release",t=r.join(m,a,"traybin",e);try{n.existsSync(t)&&n.chmodSync(t,493)}catch{}}function x(){if(process.platform==="win32")return;v();try{n.rmSync(r.join(u.homedir(),".cache","node-systray"),{recursive:!0,force:!0})}catch{}if(g()){y();return}console.log("\u23F3 Installing system tray (first run)..."),R("npm",["install",`${a}@${j}`,"--no-save"],{cwd:i,stdio:"inherit",timeout:12e4,shell:process.platform==="win32"}).status===0?(y(),console.log("\u2705 System tray ready")):console.warn("\u26A0\uFE0F System tray install failed \u2014 tray disabled")}function k(){try{require.resolve("@hurdlegroup/robotjs"),console.log("\u2705 robotjs installed (Remote desktop available)")}catch{console.log("\u2139\uFE0F robotjs not available (Remote desktop disabled)")}}try{k()}catch{}try{x()}catch{}process.exit(0);
|
package/dist/server.cjs
CHANGED
|
@@ -129,7 +129,7 @@ export const ${OT} = async () => ({
|
|
|
129
129
|
else if (event.type === "permission.asked") post("notification");
|
|
130
130
|
},
|
|
131
131
|
});
|
|
132
|
-
`}function u3(){let r=_n.opencode(),e=Ht.default.dirname(r);return ht.default.existsSync(e)||ht.default.mkdirSync(e,{recursive:!0}),ht.default.writeFileSync(r,l3(),"utf8"),{success:!0}}function p3(r){switch(r){case"claude":{let e=ea(_n.claude());return!!(e.hooks?.Stop||e.hooks?.Notification)}case"codex":{let e=_n.codex();return ht.default.existsSync(e)&&ht.default.readFileSync(e,"utf8").includes("# 9Remote notification")}case"gemini":{let e=ea(_n.gemini());return!!(e.hooks?.AfterAgent||e.hooks?.Notification)}case"opencode":return ht.default.existsSync(_n.opencode());default:return!1}}function f3(r){let e=r3[r]?.();return e?(Array.isArray(e)?e:[e]).some(n=>ht.default.existsSync(n)):!1}var d3={claude:n3,codex:a3,gemini:c3,opencode:u3};var h3=Rv;function m3(r){return d3[r]?.()||{success:!1,error:"Unknown tool"}}function MT(){let r={};for(let e of h3)if(!(!f3(e)||p3(e)))try{r[e]=m3(e).success}catch{r[e]=!1}return r}function IT(){let r=_n.claude(),e=ea(r);if(!e.hooks?.Stop&&!e.hooks?.Notification)return;let t=e.env||{};Object.keys(Zs).some(i=>t[i]!==Zs[i])&&(PT(e),fu(r,e))}var bz=(0,LT.dirname)((0,DT.fileURLToPath)(__importMetaUrl)),wz=_v.rgb(230,138,110),dm="daemon",g3="2.0.
|
|
132
|
+
`}function u3(){let r=_n.opencode(),e=Ht.default.dirname(r);return ht.default.existsSync(e)||ht.default.mkdirSync(e,{recursive:!0}),ht.default.writeFileSync(r,l3(),"utf8"),{success:!0}}function p3(r){switch(r){case"claude":{let e=ea(_n.claude());return!!(e.hooks?.Stop||e.hooks?.Notification)}case"codex":{let e=_n.codex();return ht.default.existsSync(e)&&ht.default.readFileSync(e,"utf8").includes("# 9Remote notification")}case"gemini":{let e=ea(_n.gemini());return!!(e.hooks?.AfterAgent||e.hooks?.Notification)}case"opencode":return ht.default.existsSync(_n.opencode());default:return!1}}function f3(r){let e=r3[r]?.();return e?(Array.isArray(e)?e:[e]).some(n=>ht.default.existsSync(n)):!1}var d3={claude:n3,codex:a3,gemini:c3,opencode:u3};var h3=Rv;function m3(r){return d3[r]?.()||{success:!1,error:"Unknown tool"}}function MT(){let r={};for(let e of h3)if(!(!f3(e)||p3(e)))try{r[e]=m3(e).success}catch{r[e]=!1}return r}function IT(){let r=_n.claude(),e=ea(r);if(!e.hooks?.Stop&&!e.hooks?.Notification)return;let t=e.env||{};Object.keys(Zs).some(i=>t[i]!==Zs[i])&&(PT(e),fu(r,e))}var bz=(0,LT.dirname)((0,DT.fileURLToPath)(__importMetaUrl)),wz=_v.rgb(230,138,110),dm="daemon",g3="2.0.31",zn=new Map,BT=new Map,jT={};async function NT(){let r=await ml(),e=new Map(r.map(n=>[n.id,n])),t=Ah();for(let n of r)if(!t[n.id])try{await fi(n.id)}catch{}zn.clear();for(let[n,i]of Object.entries(t)){let s=e.get(n);zn.set(n,{daemon:!0,name:i.name,createdAt:i.createdAt,shellId:i.shellId,cwd:s?.cwd||i.cwd,needsRespawn:!s})}xn(zn)}async function FT(){let r=GS();for(let n of r.groups)BT.set(n.id,n);Object.assign(jT,r.sessionGroups);try{IT()}catch{}try{MT()}catch{}if(dm==="daemon")if(!await aw())console.error("\u274C Failed to connect to PTY daemon, falling back to buffer mode");else{await NT(),dl("connected",()=>{NT().catch(()=>{})});return}console.log("\u{1F4E6} Buffer persistence mode - scrollback enabled");let e=WS(),t=Ah();for(let n of e){let i=t[n]||{};zn.set(n,{pty:null,name:i.name||`Terminal ${zn.size+1}`,createdAt:i.createdAt||Date.now(),buffer:[],needsRestore:!0}),console.log(`\u{1F504} Found saved session: ${n}`)}e.length>0&&console.log(`\u2705 Found ${e.length} saved session(s)`)}function du(r,e){dm==="daemon"&&(dl("output",({sessionId:n,data:i})=>wt(r,"output",{sessionId:n,data:i})),dl("sessionClosed",n=>{zn.delete(n),pu(n),wt(r,"sessionClosed",n),wt(r,"notificationCleared",n)}));let t=()=>({version:g3,remoteAvailable:ys(),daemonMode:dm==="daemon"&&Cr(),platform:process.platform,...DS()});Uw(()=>{let n=t();for(let i of r.sockets.sockets.values())i.data?.approved&&i.emit("serverInfo",n)}),du._buildServerInfo=t}async function HT(r,e,t){BS(),r.emit("serverInfo",du._buildServerInfo?.()),YS(r,e,zn,BT,jT),QS(r,zn),AT(r),RS()&&await LS(r,t).catch(n=>{console.error("\u274C Failed to setup remote handlers:",n.message)}),r.on("disconnect",()=>{_T(r.id),jS()})}var se=X(require("fs"),1),yr=X(require("path"),1),Vr=X(require("os"),1),Us=require("child_process"),vR=X(cR(),1);var wg=["node_modules",".git","dist","build",".next","coverage","__pycache__",".cache",".vscode",".idea",".turbo",".vercel",".output","out",".nuxt",".svelte-kit","target","vendor",".gradle",".pytest_cache",".mypy_cache",".tox",".venv","venv","env",".DS_Store",".parcel-cache",".rollup.cache"],Du=[".png",".jpg",".jpeg",".gif",".webp",".ico",".svg",".bmp",".pdf",".zip",".tar",".gz",".rar",".7z",".exe",".dll",".so",".dylib",".mp3",".mp4",".wav",".avi",".mov",".webm",".woff",".woff2",".ttf",".eot",".otf",".sqlite",".db"];var lR=[".ssh",".aws",".gnupg",".kube",".docker",".cargo",".npmrc",".netrc",".pypirc",".config/gh",".config/gcloud"],uR=["/etc/shadow","/etc/sudoers","/etc/ssh","/root","/private/etc/sudoers"];var pR=X(require("fs"),1),ga=X(require("path"),1),fR=X(require("os"),1);var dR=fR.default.homedir();function vU(r){if(!r)return null;let e=r.startsWith("~")?r.replace(/^~/,dR):r;try{return pR.default.realpathSync(e)}catch{return ga.default.resolve(e)}}function En(r){let e=vU(r);if(!e)return!1;for(let t of uR)if(e===t||e.startsWith(t+ga.default.sep))return!0;for(let t of lR){let n=ga.default.join(dR,t);if(e===n||e.startsWith(n+ga.default.sep))return!0}return!1}function Bu(r){return wg.includes(r)}function Ws(r){return Du.includes(yr.default.extname(r).toLowerCase())}function yU(r,e){return r.isDirectory()?"folder":Ws(e)?"binary":"file"}function va(r){return r<1024?`${r}B`:r<1024*1024?`${(r/1024).toFixed(1)}KB`:`${(r/(1024*1024)).toFixed(1)}MB`}function xR(r,e,t,n=50){if(!(t.length>=n))try{for(let i of se.default.readdirSync(r)){if(t.length>=n)return;if(i.startsWith(".")||Bu(i))continue;let s=yr.default.join(r,i);try{let o=se.default.statSync(s);o.isDirectory()?xR(s,e,t,n):i.toLowerCase().includes(e.toLowerCase())&&t.push({name:i,path:s,type:Ws(i)?"binary":"file",size:o.size,sizeFormatted:va(o.size)})}catch{}}}catch{}}function gR(r){if(!r)return null;let e=r.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,"::ANY::").replace(/\*/g,"[^/]*").replace(/::ANY::/g,".*").replace(/\?/g,".");return new RegExp(`^${e}$`)}function yR(r,e,t,n,i,s){if(s.length>=200)return;let o;try{o=se.default.readdirSync(r,{withFileTypes:!0})}catch{return}for(let a of o){if(s.length>=200)return;if(Bu(a.name))continue;let c=yr.default.join(r,a.name),u=yr.default.relative(e,c);if(a.isDirectory()){yR(c,e,t,n,i,s);continue}if(a.isFile()&&!Ws(a.name)&&!(i&&i.test(u))&&!(n&&!n.test(u)))try{if(se.default.statSync(c).size>512e3)continue;let m=se.default.readFileSync(c,"utf-8").split(`
|
|
133
133
|
`),y=[];for(let _=0;_<m.length&&y.length<10;_++){let S=m[_],A=t(S);for(let P of A){if(y.length>=10)break;y.push({line:_+1,column:P.column+1,lineText:S,matchLength:P.length})}}y.length&&s.push({path:c,matches:y})}catch{}}}function _R(r,e,t){let n;try{n=se.default.readdirSync(r,{withFileTypes:!0})}catch{return[]}let i=[];for(let s of n){if(!t&&s.name.startsWith(".")&&s.name!==".env"&&s.name!==".env.example"||Bu(s.name))continue;let o=yr.default.join(r,s.name);if(s.isDirectory()){let a={name:s.name,path:o,type:"folder"};e>0&&(a.children=_R(o,e-1,t)),i.push(a)}else s.isFile()&&i.push({name:s.name,path:o,type:Ws(s.name)?"binary":"file"})}return i.sort((s,o)=>s.type==="folder"&&o.type!=="folder"?-1:s.type!=="folder"&&o.type==="folder"?1:s.name.localeCompare(o.name)),i}function _U(){if(process.platform!=="win32")return[];try{return(0,Us.execSync)("wmic logicaldisk get name",{encoding:"utf-8",stdio:["pipe","pipe","pipe"],windowsHide:!0}).split(/\r?\n/).map(e=>e.trim()).filter(e=>/^[A-Z]:$/.test(e)).map(e=>({letter:e[0],path:e+"\\"}))}catch{return"CDEFGHIJ".split("").map(r=>`${r}:\\`).filter(r=>se.default.existsSync(r)).map(r=>({letter:r[0],path:r}))}}function bR(r){r.on("getSystemInfo",t=>{let n=process.platform;t({success:!0,platform:n,isWindows:n==="win32",drives:n==="win32"?_U():[],homedir:Vr.default.homedir()})}),r.on("getFiles",({dirPath:t,showHidden:n},i)=>{try{let s=t||Vr.default.homedir(),o=s.startsWith("~")?s.replace("~",Vr.default.homedir()):s;if(En(o))return i({success:!1,error:"Access denied"});if(!se.default.existsSync(o))return i({success:!1,error:"Directory not found"});let a=[];for(let c of se.default.readdirSync(o))if(!(!n&&c.startsWith(".")&&c!==".env"&&c!==".env.example")&&!Bu(c))try{let u=yr.default.join(o,c),p=se.default.statSync(u);a.push({name:c,path:u,type:yU(p,c),size:p.isFile()?p.size:null,sizeFormatted:p.isFile()?va(p.size):null,modified:p.mtime.getTime()})}catch{}a.sort((c,u)=>c.type==="folder"&&u.type!=="folder"?-1:c.type!=="folder"&&u.type==="folder"?1:c.name.localeCompare(u.name)),i({success:!0,files:a,currentPath:o,parentPath:yr.default.dirname(o)})}catch(s){i({success:!1,error:s.message})}}),r.on("searchFiles",({workspace:t,query:n},i)=>{try{if(!n||n.length<2)return i({success:!0,files:[]});let s=(t||Vr.default.homedir()).replace(/^~/,Vr.default.homedir());if(!se.default.existsSync(s))return i({success:!1,error:"Workspace not found"});let o=[];xR(s,n,o,50),o.sort((a,c)=>{let u=a.name.toLowerCase()===n.toLowerCase(),p=c.name.toLowerCase()===n.toLowerCase();return u&&!p?-1:!u&&p?1:a.path.length-c.path.length}),i({success:!0,files:o})}catch(s){i({success:!1,error:s.message})}}),r.on("readFile",({filePath:t},n)=>{try{if(En(t))return n({success:!1,error:"Access denied"});if(!se.default.existsSync(t))return n({success:!1,error:"File not found"});let i=se.default.statSync(t);if(i.size>512e3)return n({success:!1,error:`File too large (${va(i.size)}). Max ${va(512e3)}`});if(Ws(t))return n({success:!1,error:"Cannot open binary file"});n({success:!0,content:se.default.readFileSync(t,"utf-8")})}catch(i){n({success:!1,error:i.message})}}),r.on("readImage",({filePath:t},n)=>{try{if(En(t))return n({success:!1,error:"Access denied"});if(!se.default.existsSync(t))return n({success:!1,error:"File not found"});let i=se.default.statSync(t),s=10*1024*1024;if(i.size>s)return n({success:!1,error:`Image too large (${va(i.size)})`});let o=yr.default.extname(t).toLowerCase().slice(1),c={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",ico:"image/x-icon",bmp:"image/bmp"}[o]||"application/octet-stream",u=se.default.readFileSync(t),p=`data:${c};base64,${u.toString("base64")}`;n({success:!0,dataUrl:p,size:i.size,mime:c})}catch(i){n({success:!1,error:i.message})}}),r.on("writeFile",({filePath:t,content:n},i)=>{try{if(En(t))return i({success:!1,error:"Access denied"});se.default.writeFileSync(t,n,"utf-8"),i({success:!0})}catch(s){i({success:!1,error:s.message})}}),r.on("createItem",({itemPath:t,type:n},i)=>{try{if(En(t))return i({success:!1,error:"Access denied"});if(se.default.existsSync(t))return i({success:!1,error:"Item already exists"});n==="folder"?se.default.mkdirSync(t,{recursive:!0}):se.default.writeFileSync(t,"","utf-8"),i({success:!0})}catch(s){i({success:!1,error:s.message})}}),r.on("deleteItem",({itemPath:t},n)=>{try{if(En(t))return n({success:!1,error:"Access denied"});if(!se.default.existsSync(t))return n({success:!1,error:"Item not found"});se.default.statSync(t).isDirectory()?se.default.rmSync(t,{recursive:!0}):se.default.unlinkSync(t),n({success:!0})}catch(i){n({success:!1,error:i.message})}}),r.on("renameItem",({oldPath:t,newPath:n},i)=>{try{if(En(t)||En(n))return i({success:!1,error:"Access denied"});if(!se.default.existsSync(t))return i({success:!1,error:"Item not found"});if(se.default.existsSync(n))return i({success:!1,error:"Target already exists"});se.default.renameSync(t,n),i({success:!0})}catch(s){i({success:!1,error:s.message})}}),r.on("searchInFiles",({workspace:t,query:n,caseSensitive:i,regex:s,includeGlob:o,excludeGlob:a},c)=>{try{if(!n)return c({success:!0,results:[]});let u=(t||Vr.default.homedir()).replace(/^~/,Vr.default.homedir());if(!se.default.existsSync(u))return c({success:!1,error:"Workspace not found"});let p;if(s){let _;try{_=new RegExp(n,i?"g":"gi")}catch(S){return c({success:!1,error:`Invalid regex: ${S.message}`})}p=S=>{let A=[],P;for(_.lastIndex=0;(P=_.exec(S))!==null;)A.push({column:P.index,length:P[0].length}),P.index===_.lastIndex&&_.lastIndex++;return A}}else{let _=i?n:n.toLowerCase();p=S=>{let A=i?S:S.toLowerCase(),P=[],L=0;for(;(L=A.indexOf(_,L))!==-1;)P.push({column:L,length:_.length}),L+=_.length||1;return P}}let f=gR(o),m=gR(a),y=[];yR(u,u,p,f,m,y),c({success:!0,results:y})}catch(u){c({success:!1,error:u.message})}}),r.on("replaceInFiles",({workspace:t,query:n,replacement:i,caseSensitive:s,regex:o,files:a},c)=>{try{if(!n||!Array.isArray(a)||!a.length)return c({success:!0,replacedCount:0,fileCount:0});let u;if(o){let m;try{m=new RegExp(n,s?"g":"gi")}catch(y){return c({success:!1,error:`Invalid regex: ${y.message}`})}u=y=>{let _=0;return{next:y.replace(m,A=>(_++,i)),count:_}}}else u=m=>{let y=0,_=s?"g":"gi",S=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),A=new RegExp(S,_);return{next:m.replace(A,()=>(y++,i)),count:y}};let p=0,f=0;for(let m of a)try{if(!se.default.existsSync(m)||Ws(m))continue;let y=se.default.statSync(m);if(!y.isFile()||y.size>512e3)continue;let _=se.default.readFileSync(m,"utf-8"),{next:S,count:A}=u(_);A>0&&(se.default.writeFileSync(m,S,"utf-8"),p+=A,f++)}catch{}c({success:!0,replacedCount:p,fileCount:f})}catch(u){c({success:!1,error:u.message})}});let e=new Map;r.on("watchDir",({dirPath:t},n)=>{try{if(!t||!se.default.existsSync(t))return n({success:!1,error:"Directory not found"});if(e.has(t))return n({success:!0});let i=vR.default.watch(t,{depth:0,ignoreInitial:!0,persistent:!0,ignored:o=>wg.includes(yr.default.basename(o))}),s=o=>a=>r.emit("fileChange",{type:o,path:a});i.on("add",s("add")).on("change",s("change")).on("unlink",s("unlink")).on("addDir",s("addDir")).on("unlinkDir",s("unlinkDir")),e.set(t,i),n({success:!0})}catch(i){n({success:!1,error:i.message})}}),r.on("unwatchDir",({dirPath:t},n)=>{try{let i=e.get(t);i&&(i.close(),e.delete(t)),n({success:!0})}catch(i){n({success:!1,error:i.message})}}),r.once("disconnect",()=>{for(let t of e.values())try{t.close()}catch{}e.clear()}),r.on("revealInOS",({filePath:t},n)=>{try{if(!t)return n({success:!1,error:"No path"});let i=process.platform,s,o;i==="darwin"?(s="open",o=["-R",t]):i==="win32"?(s="explorer",o=[`/select,${t}`]):(s="xdg-open",o=[yr.default.dirname(t)]);let a=(0,Us.spawn)(s,o,{detached:!0,stdio:"ignore",windowsHide:!0});a.on("error",c=>n({success:!1,error:c.message})),a.unref(),n({success:!0})}catch(i){n({success:!1,error:i.message})}}),r.on("openInTerminal",({dirPath:t},n)=>{try{if(!t||!se.default.existsSync(t))return n({success:!1,error:"Directory not found"});let i=process.platform,s,o,a={detached:!0,stdio:"ignore",windowsHide:!0};i==="darwin"?(s="open",o=["-a","Terminal",t]):i==="win32"?(s="cmd",o=["/C","start","cmd","/K",`cd /d "${t}"`],a.shell=!1):(s="gnome-terminal",o=[`--working-directory=${t}`]);let c=(0,Us.spawn)(s,o,a);c.on("error",()=>{if(i==="linux"){let u=(0,Us.spawn)("xterm",["-e",`cd "${t}" && bash`],a);u.on("error",p=>n({success:!1,error:p.message})),u.unref()}else n({success:!1,error:"Failed to open terminal"})}),c.unref(),n({success:!0})}catch(i){n({success:!1,error:i.message})}}),r.on("getFileTree",({dirPath:t,depth:n,showHidden:i},s)=>{try{let o=(t||Vr.default.homedir()).replace(/^~/,Vr.default.homedir());if(!se.default.existsSync(o))return s({success:!1,error:"Directory not found"});let c=_R(o,typeof n=="number"?n:3,!!i);s({success:!0,tree:{name:yr.default.basename(o)||o,path:o,type:"folder",children:c}})}catch(o){s({success:!1,error:o.message})}})}var Ut=X(require("fs"),1),Si=X(require("path"),1),Mr=require("child_process");function wi(r,e){return new Promise(t=>{let n=(0,Mr.spawn)("git",r,{cwd:e,windowsHide:!0}),i="",s="";n.stdout.on("data",o=>{i+=o.toString()}),n.stderr.on("data",o=>{s+=o.toString()}),n.on("error",o=>t({code:-1,stdout:i,stderr:o.message})),n.on("close",o=>t({code:o,stdout:i,stderr:s}))})}function wR(r){return Du.includes(Si.default.extname(r).toLowerCase())}function SR(r){r.on("gitStatus",({repoPath:e},t)=>{try{let n=(0,Mr.execSync)("git status --porcelain",{cwd:e,encoding:"utf-8",stdio:["pipe","pipe","pipe"],windowsHide:!0}),i={};try{(0,Mr.execSync)("git diff HEAD --numstat",{cwd:e,encoding:"utf-8",stdio:["pipe","pipe","pipe"],windowsHide:!0}).trim().split(`
|
|
134
134
|
`).filter(Boolean).forEach(a=>{let c=a.split(" ");c.length>=3&&(i[c[2]]={added:c[0]==="-"?0:parseInt(c[0],10)||0,deleted:c[1]==="-"?0:parseInt(c[1],10)||0})})}catch{}let s=[];for(let o of n.trim().split(`
|
|
135
135
|
`).filter(Boolean)){let a=o.match(/^([MADRCU?! ]{1,2})\s+(.+)$/);if(!a)continue;let c=a[1],u=a[2];if(!u)continue;let p;c.includes("?")?p="?":c.includes("A")?p="A":c.includes("D")?p="D":c.includes("M")?p="M":c.includes("R")?p="R":p=c.trim()[0]||"?";let f=i[u]||{added:0,deleted:0};if(p==="?")try{let m=Si.default.join(e,u);if(Ut.default.existsSync(m)&&!wR(u)){let y=Ut.default.readFileSync(m,"utf-8");f.added=y.split(`
|
|
@@ -259,7 +259,7 @@ self.addEventListener('fetch', (event) => {
|
|
|
259
259
|
</body>
|
|
260
260
|
</html>
|
|
261
261
|
`);return}e._proxyTargetPort=n,e.url=i+(s||""),r.web(e,t,{target:`http://localhost:${n}`,changeOrigin:!0},o=>{t.writeHead(502),t.end(`Bad Gateway: ${o.message}`)})}var Dk=X(require("http"),1),Bk=X(require("https"),1),jk=require("child_process"),Fk=require("util"),i4=(0,Fk.promisify)(jk.exec);async function s4(){let r=process.platform,e=new Set([80,443]);try{let t;if(r==="win32")t="netstat -ano | findstr LISTENING";else{let s="/dev/null";t=`lsof -iTCP -sTCP:LISTEN -P -n 2>${s} || netstat -tlnp 2>${s}`}let{stdout:n}=await i4(t),i=n.split(`
|
|
262
|
-
`);for(let s of i){let o=s.match(/[:\*\]](\d{2,5})(?:\s|$)/g);if(o)for(let a of o){let c=parseInt(a.replace(/[:\*\]\s]/g,""),10);c>0&&c<=65535&&(c===80||c===443||c>=1024)&&e.add(c)}}return Array.from(e)}catch(t){return console.error("Failed to get listening ports:",t.message),[80,443,3e3,3001,4200,5e3,5173,8e3,8080,9e3]}}function o4(r,e=2e3){return new Promise(t=>{let n=Dk.default.request({host:"localhost",port:r,method:"GET",path:"/",timeout:e},i=>{i.on("data",()=>{}),i.on("end",()=>{}),t({active:!0,protocol:"http",status:i.statusCode})});n.on("error",i=>{t({active:!1,error:i.message})}),n.on("timeout",()=>{n.destroy(),t({active:!1,error:"timeout"})}),n.end()})}function a4(r,e=2e3){return new Promise(t=>{let n=Bk.default.request({host:"localhost",port:r,method:"GET",path:"/",timeout:e,rejectUnauthorized:!1},i=>{i.on("data",()=>{}),i.on("end",()=>{}),t({active:!0,protocol:"https",status:i.statusCode})});n.on("error",i=>{t({active:!1,error:i.message})}),n.on("timeout",()=>{n.destroy(),t({active:!1,error:"timeout"})}),n.end()})}async function c4(r){let[e,t]=await Promise.all([o4(r),a4(r)]);return t.active?{port:r,...t}:e.active?{port:r,...e}:{port:r,active:!1}}async function Hk(){let r=await s4();return(await Promise.all(r.map(t=>c4(t)))).filter(t=>t.active).map(t=>({port:t.port,protocol:t.protocol,url:`${t.protocol}://localhost:${t.port}`,name:`localhost:${t.port}`,status:t.status})).sort((t,n)=>t.port-n.port)}var $k=X(require("crypto"),1),l4=process.env.API_KEY_SECRET||"9remote-api-key-secret";function u4(){let r="abcdefghijklmnopqrstuvwxyz0123456789",e="";for(let t=0;t<4;t++)e+=r.charAt(Math.floor(Math.random()*r.length));return e}function qk(r,e){return $k.default.createHmac("sha256",l4).update(r+e).digest("hex").slice(0,6)}function Uk(r){let e=r.slice(0,8),t=u4(),n=qk(e,t);return{key:`sk-${e}-${t}-${n}`,keyId:t}}function p4(r){if(!r||!r.startsWith("sk-"))return null;let e=r.split("-");if(e.length===4){let[,t,n,i]=e,s=qk(t,n);return i!==s?null:{machineId:t,keyId:n}}return null}function zu(r){return p4(r)!==null}async function Wk(r,e){let t=r.headers.authorization;if(!t||!t.startsWith("Bearer ")){e.setHeader("Content-Type","application/json"),e.writeHead(401),e.end(JSON.stringify({error:"Unauthorized: Missing API key"}));return}let n=t.slice(7);if(!zu(n)){e.setHeader("Content-Type","application/json"),e.writeHead(401),e.end(JSON.stringify({error:"Unauthorized: Invalid API key"}));return}let i=await Hk();e.setHeader("Content-Type","application/json"),e.writeHead(200),e.end(JSON.stringify(i))}tl();var Kk=require("url");var Wg=X(require("path"),1),Vk=X(require("os"),1);vt();var Gk=X(require("path"),1),zk=X(require("os"),1);var tV=Gk.default.join(zk.default.homedir(),".9remote","pids");var aV=Wg.default.dirname((0,Kk.fileURLToPath)(__importMetaUrl)),f4="9remote",cV=`https://registry.npmjs.org/${f4}/latest`;var lV=Wg.default.join(Vk.default.homedir(),".9remote","cloudflared.pid");function Yk(r,e){let t=r.split(".").map(Number),n=e.split(".").map(Number);for(let i=0;i<3;i++){if(n[i]>t[i])return!0;if(n[i]<t[i])return!1}return!1}$n();Gt();vt();Io();var Jk=X(Xk(),1),zg=X(require("crypto"),1),{machineIdSync:d4}=Jk.default;async function Qk(r=null){let e=r||process.env.MACHINE_ID_SALT||"9remote-salt";try{let t=d4();return zg.default.createHash("sha256").update(t+e).digest("hex").substring(0,16)}catch(t){return console.error("Error getting machine ID:",t),zg.default.randomUUID().replace(/-/g,"").substring(0,16)}}$n();async function Zk(r,e){let t=Hw(),n=t.workerUrl||"https://9remote.cc";if(!t.permanentKey){he(e,400,"No permanent key set");return}try{let s=await(await eo(`${n}/api/temp-key/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:t.permanentKey,expiryMinutes:30})})).json(),o=`${n}/login?k=${s.tempKey}`;hn({oneTimeKey:s.tempKey,oneTimeKeyExpiresAt:s.expiresAt,qrUrl:o}),ee(e,{oneTimeKey:s.tempKey,expiresAt:s.expiresAt,qrUrl:o})}catch(i){he(e,500,i.message)}}async function eO(r,e){try{let t=await Qk(),{key:n}=Uk(t),i=_w();bw(t,n,i?.name||"Default"),hn({permanentKey:n}),ee(e,{ok:!0,permanentKey:n})}catch(t){he(e,500,t.message)}}Gt();async function tO(r,e){let t=await It(r,e);if(!t)return;let n=WR(t.socketId);ee(e,{ok:n})}async function rO(r,e){let t=await It(r,e);if(!t)return;let n=zR(t.socketId);ee(e,{ok:n})}function nO(r,e){ee(e,{pending:LR()})}function iO(r,e){ee(e,{devices:MR()})}function sO(r,e){ee(e,{rejected:FR()})}async function oO(r,e){let t=await It(r,e);if(!t)return;let n=GR(t.deviceId);ee(e,{ok:n})}async function aO(r,e){let t=await It(r,e);t&&($u(t.deviceId),Ks(t.deviceId),ee(e))}async function cO(r,e){let t=await It(r,e);t&&($u(t.deviceId),OR(t.deviceId),ee(e))}async function lO(r,e){let t=await It(r,e);if(!t)return;let n=$u(t.deviceId);ee(e,{disconnected:n})}function uO(r,e){ee(e,{enabled:Hu()})}async function pO(r,e){let t=await It(r,e);if(!t)return;let n=PR(t.deviceId,t.label);ee(e,{ok:n})}async function fO(r,e){let t=await It(r,e);if(!t)return;let n=$R(!!t.enabled);ee(e,{enabled:n})}Gt();var dO={},h4=1e4;function hO(r,e){if(e)return{type:e.type||"stop",sessionId:e.sessionId||"",tool:e.tool||"claude"};let t=JSON.parse(r||"{}");return{type:t.type||"stop",sessionId:t.sessionId||"",tool:t.tool||"claude"}}async function mO(r,e){let t="";await new Promise(n=>{r.on("data",i=>t+=i),r.on("end",n)});try{vO(hO(t,null)),ee(e,{success:!0})}catch{he(e,400,"Invalid JSON")}}function gO(r,e,{query:t}){vO(hO(null,t)),ee(e,{success:!0})}function vO({type:r,sessionId:e,tool:t}){let n=Date.now(),i=_a();if(!i||!e)return;let s={type:r,sessionId:e,tool:t,timestamp:n};if(TT(e,s),wt(i,"chatNotification",s),!ET()||!xT())return;let o=`${t}:${r}`;n-(dO[o]||0)<h4||(dO[o]=n,wT(s))}Gt();Cl();Io();bt();$n();function xO(){return{mode:fh(),active:ph(),presets:Object.keys(Z.sleepInhibit?.presets||{})}}function yO(r,e){ee(e,xO())}async function _O(r,e){let t=await It(r,e);if(!t)return;let n=$o(t.mode);yw({sleepInhibitMode:n});let i=xO();St("sleepInhibit",i),ee(e,i)}Gt();async function bO(r,e){try{let t=await ml();ee(e,{sessions:t})}catch(t){he(e,500,t.message)}}async function wO(r,e){let t=await It(r,e);if(t){if(!t.sessionId)return he(e,400,"sessionId required");try{await fi(t.sessionId),ee(e)}catch(n){he(e,500,n.message)}}}Cl();Io();bt();Mv();var Kn=Rn("server"),Vn=(0,TO.fileURLToPath)(new URL(".",__importMetaUrl)),CO=process.env.NODE_ENV==="development",m4=5173,g4="https://registry.npmjs.org/9remote/latest",Kg=(0,Ri.existsSync)((0,tr.join)(Vn,"ui","dist"))?(0,tr.join)(Vn,"ui","dist"):(0,tr.join)(Vn,"ui"),v4={".html":"text/html",".js":"application/javascript",".css":"text/css",".svg":"image/svg+xml",".png":"image/png",".ico":"image/x-icon",".woff2":"font/woff2",".woff":"font/woff"};function x4(r,e,t){let n=(0,Ku.request)({hostname:"localhost",port:m4,path:r.url,method:r.method,headers:r.headers},i=>{e.writeHead(i.statusCode,i.headers),i.pipe(e)});n.on("error",()=>t?t():void(e.writeHead(502),e.end("Vite dev server not ready"))),r.pipe(n)}function SO(r,e){if(!(0,Ri.existsSync)(e))return!1;let t=v4[(0,tr.extname)(e)]||"application/octet-stream";return r.setHeader("Content-Type",t),r.writeHead(200),r.end((0,Ri.readFileSync)(e)),!0}async function y4(r){try{let e=await eo(g4);if(!e.ok)return;let{version:t}=await e.json();t&&Yk(r,t)&&St("updateAvailable",{version:t})}catch{}}function _4(r,e){if(process.env.CODESPACES!=="true"){he(e,400,"Not running on Codespaces");return}let t=process.env.CODESPACE_NAME;if(!t){he(e,400,"Codespace name not found");return}let n=_a();n&&n.emit("codespace:stopping"),ee(e,{success:!0,message:"Stopping codespace..."}),setTimeout(()=>(0,Vu.execFile)("gh",["codespace","stop","-c",t],{windowsHide:!0}),500)}var AO;async function EO(r,e,{pathname:t}){let n=r.headers.authorization;if(!n||!n.startsWith("Bearer ")||!zu(n.slice(7))){he(e,401,"Unauthorized");return}let{parseJsonBody:i}=await Promise.resolve().then(()=>(Gt(),Pi)),s=await i(r,e);if(s){if(!s.port){he(e,400,"Port required");return}t.endsWith("start")?Mk(s.port):Ik(s.port),ee(e,{success:!0})}}function b4(r,e,{pathname:t,search:n}){let i=t.match(/^\/proxy\/(\d+)(\/.*)?$/);i?Lk(AO,r,e,i[1],i[2]||"/",n):he(e,404,"Not found")}var w4=[{path:"/api/health",method:"GET",public:!0,handler:(r,e)=>ee(e,{status:"ok",timestamp:Date.now()})},{path:"/api/version",method:"GET",public:!0,handler:(r,e)=>{ee(e,{version:"2.0.30"})}},{path:"/api/notify",method:"POST",public:!0,handler:mO},{path:"/api/notify",method:"GET",public:!0,handler:gO},{path:"/proxy/*",method:"*",public:!0,handler:b4},{path:"/api/ui/events",method:"GET",handler:Vw},{path:"/api/local-token",method:"GET",handler:Ww},{path:"/api/ui/state",method:"GET",handler:Yw},{path:"/api/ui/state",method:"POST",handler:Xw},{path:"/api/ui/stop",method:"POST",handler:Jw},{path:"/api/ui/start",method:"POST",handler:Qw},{path:"/api/ui/stop-tunnel",method:"POST",handler:Zw},{path:"/api/ui/shutdown",method:"POST",handler:eS},{path:"/api/key/one-time",method:"POST",handler:Zk},{path:"/api/key/regenerate",method:"POST",handler:eO},{path:"/api/device/approve",method:"POST",handler:tO},{path:"/api/device/reject",method:"POST",handler:rO},{path:"/api/device/pending",method:"GET",handler:nO},{path:"/api/device/approved",method:"GET",handler:iO},{path:"/api/device/rejected",method:"GET",handler:sO},{path:"/api/device/approve-rejected",method:"POST",handler:oO},{path:"/api/device/clear-rejected",method:"POST",handler:aO},{path:"/api/device/remove",method:"POST",handler:cO},{path:"/api/device/label",method:"POST",handler:pO},{path:"/api/device/disconnect",method:"POST",handler:lO},{path:"/api/device/auto-approve",method:"GET",handler:uO},{path:"/api/device/auto-approve",method:"POST",handler:fO},{path:"/api/connections",method:"GET",handler:tS},{path:"/api/logs",method:"GET",handler:rS},{path:"/api/permissions",method:"GET",handler:iS},{path:"/api/permissions/request",method:"POST",handler:aS},{path:"/api/desktop/toggle",method:"POST",handler:nS},{path:"/api/autostart",method:"GET",handler:sS},{path:"/api/autostart",method:"POST",handler:oS},{path:"/api/sleep-inhibit",method:"GET",handler:yO},{path:"/api/sleep-inhibit",method:"POST",handler:_O},{path:"/api/sessions",method:"GET",handler:bO},{path:"/api/sessions/delete",method:"POST",handler:wO},{path:"/api/local-sites",method:"*",public:!0,handler:Wk},{path:"/api/codespace/stop",method:"POST",handler:_4},{path:"/api/proxy/start",method:"POST",public:!0,handler:EO},{path:"/api/proxy/end",method:"POST",public:!0,handler:EO}];var S4=parseInt(process.env.PORT||"2208",10),ka=null;function E4(){if(!CO)return;let r=(0,tr.join)(Vn,"vite.config.js");if(!(0,Ri.existsSync)(r))return;let e=(0,Ri.existsSync)((0,tr.join)(Vn,"node_modules",".bin","vite"))?(0,tr.join)(Vn,"node_modules",".bin","vite"):(0,tr.join)(Vn,"..","node_modules",".bin","vite");ka=(0,Vu.spawn)("node",[e,"--config",r],{cwd:Vn,stdio:"ignore",detached:!1}),ka.on("error",()=>{}),ka.unref()}async function RO(){let r=nh(),e=r.sleepInhibitMode;e||(r.sleepInhibit===!1?e="never":e=Z.sleepInhibit?.defaultMode||"never"),$o(e),await FT(),AO=Nk(),E4();let n=xp(w4,{fallback:(a,c,{pathname:u})=>{if(u.startsWith("/api/")||u.startsWith("/socket.io")){he(c,404,"Not found");return}let p=!!a.headers["cf-connecting-ip"],f=a.socket.remoteAddress==="127.0.0.1"||a.socket.remoteAddress==="::1";if(p||!f){he(c,403,"Forbidden");return}let m=()=>{let y=u==="/"||u===""?(0,tr.join)(Kg,"index.html"):(0,tr.join)(Kg,u);SO(c,y)||SO(c,(0,tr.join)(Kg,"index.html"))};if(CO){x4(a,c,m);return}m()}}),i=(0,Ku.createServer)(async(a,c)=>{VR(c),!YR(a,c)&&await n(a,c)});jd(),jw(),Fw(),Rl(),process.platform==="darwin"&&setInterval(Rl,Tv),await KR(i),i.listen(S4,a=>{if(a)throw a;y4("2.0.30")});let s=!1,o=async a=>{if(s)return;s=!0,uh(),Kn.info(`\u{1F6D1} Received ${a}, shutting down gracefully...`);let c=setTimeout(()=>{Kn.error("\u26A0\uFE0F Forced exit"),process.exit(1)},5e3);try{if(i.close(()=>Kn.info("\u2713 HTTP server closed")),ka)try{ka.kill()}catch{}let u=_a();u&&(u.emit("server:shutdown"),u.close(()=>Kn.info("\u2713 Socket.IO closed"))),await new Promise(p=>setTimeout(p,500)),clearTimeout(c),Kn.info("\u2705 Server stopped cleanly"),process.exit(0)}catch(u){Kn.error(`\u274C Error during shutdown: ${u?.message||u}`),clearTimeout(c),process.exit(1)}};return process.on("SIGINT",()=>o("SIGINT")),process.on("SIGTERM",()=>o("SIGTERM")),process.platform==="win32"&&process.on("SIGBREAK",()=>o("SIGBREAK")),process.on("uncaughtException",a=>{Kn.error(`\u26A0\uFE0F uncaughtException: ${a?.stack||a}`)}),process.on("unhandledRejection",a=>{Kn.error(`\u26A0\uFE0F unhandledRejection: ${a?.stack||a}`)}),i}RO();0&&(module.exports={startServer});
|
|
262
|
+
`);for(let s of i){let o=s.match(/[:\*\]](\d{2,5})(?:\s|$)/g);if(o)for(let a of o){let c=parseInt(a.replace(/[:\*\]\s]/g,""),10);c>0&&c<=65535&&(c===80||c===443||c>=1024)&&e.add(c)}}return Array.from(e)}catch(t){return console.error("Failed to get listening ports:",t.message),[80,443,3e3,3001,4200,5e3,5173,8e3,8080,9e3]}}function o4(r,e=2e3){return new Promise(t=>{let n=Dk.default.request({host:"localhost",port:r,method:"GET",path:"/",timeout:e},i=>{i.on("data",()=>{}),i.on("end",()=>{}),t({active:!0,protocol:"http",status:i.statusCode})});n.on("error",i=>{t({active:!1,error:i.message})}),n.on("timeout",()=>{n.destroy(),t({active:!1,error:"timeout"})}),n.end()})}function a4(r,e=2e3){return new Promise(t=>{let n=Bk.default.request({host:"localhost",port:r,method:"GET",path:"/",timeout:e,rejectUnauthorized:!1},i=>{i.on("data",()=>{}),i.on("end",()=>{}),t({active:!0,protocol:"https",status:i.statusCode})});n.on("error",i=>{t({active:!1,error:i.message})}),n.on("timeout",()=>{n.destroy(),t({active:!1,error:"timeout"})}),n.end()})}async function c4(r){let[e,t]=await Promise.all([o4(r),a4(r)]);return t.active?{port:r,...t}:e.active?{port:r,...e}:{port:r,active:!1}}async function Hk(){let r=await s4();return(await Promise.all(r.map(t=>c4(t)))).filter(t=>t.active).map(t=>({port:t.port,protocol:t.protocol,url:`${t.protocol}://localhost:${t.port}`,name:`localhost:${t.port}`,status:t.status})).sort((t,n)=>t.port-n.port)}var $k=X(require("crypto"),1),l4=process.env.API_KEY_SECRET||"9remote-api-key-secret";function u4(){let r="abcdefghijklmnopqrstuvwxyz0123456789",e="";for(let t=0;t<4;t++)e+=r.charAt(Math.floor(Math.random()*r.length));return e}function qk(r,e){return $k.default.createHmac("sha256",l4).update(r+e).digest("hex").slice(0,6)}function Uk(r){let e=r.slice(0,8),t=u4(),n=qk(e,t);return{key:`sk-${e}-${t}-${n}`,keyId:t}}function p4(r){if(!r||!r.startsWith("sk-"))return null;let e=r.split("-");if(e.length===4){let[,t,n,i]=e,s=qk(t,n);return i!==s?null:{machineId:t,keyId:n}}return null}function zu(r){return p4(r)!==null}async function Wk(r,e){let t=r.headers.authorization;if(!t||!t.startsWith("Bearer ")){e.setHeader("Content-Type","application/json"),e.writeHead(401),e.end(JSON.stringify({error:"Unauthorized: Missing API key"}));return}let n=t.slice(7);if(!zu(n)){e.setHeader("Content-Type","application/json"),e.writeHead(401),e.end(JSON.stringify({error:"Unauthorized: Invalid API key"}));return}let i=await Hk();e.setHeader("Content-Type","application/json"),e.writeHead(200),e.end(JSON.stringify(i))}tl();var Kk=require("url");var Wg=X(require("path"),1),Vk=X(require("os"),1);vt();var Gk=X(require("path"),1),zk=X(require("os"),1);var tV=Gk.default.join(zk.default.homedir(),".9remote","pids");var aV=Wg.default.dirname((0,Kk.fileURLToPath)(__importMetaUrl)),f4="9remote",cV=`https://registry.npmjs.org/${f4}/latest`;var lV=Wg.default.join(Vk.default.homedir(),".9remote","cloudflared.pid");function Yk(r,e){let t=r.split(".").map(Number),n=e.split(".").map(Number);for(let i=0;i<3;i++){if(n[i]>t[i])return!0;if(n[i]<t[i])return!1}return!1}$n();Gt();vt();Io();var Jk=X(Xk(),1),zg=X(require("crypto"),1),{machineIdSync:d4}=Jk.default;async function Qk(r=null){let e=r||process.env.MACHINE_ID_SALT||"9remote-salt";try{let t=d4();return zg.default.createHash("sha256").update(t+e).digest("hex").substring(0,16)}catch(t){return console.error("Error getting machine ID:",t),zg.default.randomUUID().replace(/-/g,"").substring(0,16)}}$n();async function Zk(r,e){let t=Hw(),n=t.workerUrl||"https://9remote.cc";if(!t.permanentKey){he(e,400,"No permanent key set");return}try{let s=await(await eo(`${n}/api/temp-key/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:t.permanentKey,expiryMinutes:30})})).json(),o=`${n}/login?k=${s.tempKey}`;hn({oneTimeKey:s.tempKey,oneTimeKeyExpiresAt:s.expiresAt,qrUrl:o}),ee(e,{oneTimeKey:s.tempKey,expiresAt:s.expiresAt,qrUrl:o})}catch(i){he(e,500,i.message)}}async function eO(r,e){try{let t=await Qk(),{key:n}=Uk(t),i=_w();bw(t,n,i?.name||"Default"),hn({permanentKey:n}),ee(e,{ok:!0,permanentKey:n})}catch(t){he(e,500,t.message)}}Gt();async function tO(r,e){let t=await It(r,e);if(!t)return;let n=WR(t.socketId);ee(e,{ok:n})}async function rO(r,e){let t=await It(r,e);if(!t)return;let n=zR(t.socketId);ee(e,{ok:n})}function nO(r,e){ee(e,{pending:LR()})}function iO(r,e){ee(e,{devices:MR()})}function sO(r,e){ee(e,{rejected:FR()})}async function oO(r,e){let t=await It(r,e);if(!t)return;let n=GR(t.deviceId);ee(e,{ok:n})}async function aO(r,e){let t=await It(r,e);t&&($u(t.deviceId),Ks(t.deviceId),ee(e))}async function cO(r,e){let t=await It(r,e);t&&($u(t.deviceId),OR(t.deviceId),ee(e))}async function lO(r,e){let t=await It(r,e);if(!t)return;let n=$u(t.deviceId);ee(e,{disconnected:n})}function uO(r,e){ee(e,{enabled:Hu()})}async function pO(r,e){let t=await It(r,e);if(!t)return;let n=PR(t.deviceId,t.label);ee(e,{ok:n})}async function fO(r,e){let t=await It(r,e);if(!t)return;let n=$R(!!t.enabled);ee(e,{enabled:n})}Gt();var dO={},h4=1e4;function hO(r,e){if(e)return{type:e.type||"stop",sessionId:e.sessionId||"",tool:e.tool||"claude"};let t=JSON.parse(r||"{}");return{type:t.type||"stop",sessionId:t.sessionId||"",tool:t.tool||"claude"}}async function mO(r,e){let t="";await new Promise(n=>{r.on("data",i=>t+=i),r.on("end",n)});try{vO(hO(t,null)),ee(e,{success:!0})}catch{he(e,400,"Invalid JSON")}}function gO(r,e,{query:t}){vO(hO(null,t)),ee(e,{success:!0})}function vO({type:r,sessionId:e,tool:t}){let n=Date.now(),i=_a();if(!i||!e)return;let s={type:r,sessionId:e,tool:t,timestamp:n};if(TT(e,s),wt(i,"chatNotification",s),!ET()||!xT())return;let o=`${t}:${r}`;n-(dO[o]||0)<h4||(dO[o]=n,wT(s))}Gt();Cl();Io();bt();$n();function xO(){return{mode:fh(),active:ph(),presets:Object.keys(Z.sleepInhibit?.presets||{})}}function yO(r,e){ee(e,xO())}async function _O(r,e){let t=await It(r,e);if(!t)return;let n=$o(t.mode);yw({sleepInhibitMode:n});let i=xO();St("sleepInhibit",i),ee(e,i)}Gt();async function bO(r,e){try{let t=await ml();ee(e,{sessions:t})}catch(t){he(e,500,t.message)}}async function wO(r,e){let t=await It(r,e);if(t){if(!t.sessionId)return he(e,400,"sessionId required");try{await fi(t.sessionId),ee(e)}catch(n){he(e,500,n.message)}}}Cl();Io();bt();Mv();var Kn=Rn("server"),Vn=(0,TO.fileURLToPath)(new URL(".",__importMetaUrl)),CO=process.env.NODE_ENV==="development",m4=5173,g4="https://registry.npmjs.org/9remote/latest",Kg=(0,Ri.existsSync)((0,tr.join)(Vn,"ui","dist"))?(0,tr.join)(Vn,"ui","dist"):(0,tr.join)(Vn,"ui"),v4={".html":"text/html",".js":"application/javascript",".css":"text/css",".svg":"image/svg+xml",".png":"image/png",".ico":"image/x-icon",".woff2":"font/woff2",".woff":"font/woff"};function x4(r,e,t){let n=(0,Ku.request)({hostname:"localhost",port:m4,path:r.url,method:r.method,headers:r.headers},i=>{e.writeHead(i.statusCode,i.headers),i.pipe(e)});n.on("error",()=>t?t():void(e.writeHead(502),e.end("Vite dev server not ready"))),r.pipe(n)}function SO(r,e){if(!(0,Ri.existsSync)(e))return!1;let t=v4[(0,tr.extname)(e)]||"application/octet-stream";return r.setHeader("Content-Type",t),r.writeHead(200),r.end((0,Ri.readFileSync)(e)),!0}async function y4(r){try{let e=await eo(g4);if(!e.ok)return;let{version:t}=await e.json();t&&Yk(r,t)&&St("updateAvailable",{version:t})}catch{}}function _4(r,e){if(process.env.CODESPACES!=="true"){he(e,400,"Not running on Codespaces");return}let t=process.env.CODESPACE_NAME;if(!t){he(e,400,"Codespace name not found");return}let n=_a();n&&n.emit("codespace:stopping"),ee(e,{success:!0,message:"Stopping codespace..."}),setTimeout(()=>(0,Vu.execFile)("gh",["codespace","stop","-c",t],{windowsHide:!0}),500)}var AO;async function EO(r,e,{pathname:t}){let n=r.headers.authorization;if(!n||!n.startsWith("Bearer ")||!zu(n.slice(7))){he(e,401,"Unauthorized");return}let{parseJsonBody:i}=await Promise.resolve().then(()=>(Gt(),Pi)),s=await i(r,e);if(s){if(!s.port){he(e,400,"Port required");return}t.endsWith("start")?Mk(s.port):Ik(s.port),ee(e,{success:!0})}}function b4(r,e,{pathname:t,search:n}){let i=t.match(/^\/proxy\/(\d+)(\/.*)?$/);i?Lk(AO,r,e,i[1],i[2]||"/",n):he(e,404,"Not found")}var w4=[{path:"/api/health",method:"GET",public:!0,handler:(r,e)=>ee(e,{status:"ok",timestamp:Date.now()})},{path:"/api/version",method:"GET",public:!0,handler:(r,e)=>{ee(e,{version:"2.0.31"})}},{path:"/api/notify",method:"POST",public:!0,handler:mO},{path:"/api/notify",method:"GET",public:!0,handler:gO},{path:"/proxy/*",method:"*",public:!0,handler:b4},{path:"/api/ui/events",method:"GET",handler:Vw},{path:"/api/local-token",method:"GET",handler:Ww},{path:"/api/ui/state",method:"GET",handler:Yw},{path:"/api/ui/state",method:"POST",handler:Xw},{path:"/api/ui/stop",method:"POST",handler:Jw},{path:"/api/ui/start",method:"POST",handler:Qw},{path:"/api/ui/stop-tunnel",method:"POST",handler:Zw},{path:"/api/ui/shutdown",method:"POST",handler:eS},{path:"/api/key/one-time",method:"POST",handler:Zk},{path:"/api/key/regenerate",method:"POST",handler:eO},{path:"/api/device/approve",method:"POST",handler:tO},{path:"/api/device/reject",method:"POST",handler:rO},{path:"/api/device/pending",method:"GET",handler:nO},{path:"/api/device/approved",method:"GET",handler:iO},{path:"/api/device/rejected",method:"GET",handler:sO},{path:"/api/device/approve-rejected",method:"POST",handler:oO},{path:"/api/device/clear-rejected",method:"POST",handler:aO},{path:"/api/device/remove",method:"POST",handler:cO},{path:"/api/device/label",method:"POST",handler:pO},{path:"/api/device/disconnect",method:"POST",handler:lO},{path:"/api/device/auto-approve",method:"GET",handler:uO},{path:"/api/device/auto-approve",method:"POST",handler:fO},{path:"/api/connections",method:"GET",handler:tS},{path:"/api/logs",method:"GET",handler:rS},{path:"/api/permissions",method:"GET",handler:iS},{path:"/api/permissions/request",method:"POST",handler:aS},{path:"/api/desktop/toggle",method:"POST",handler:nS},{path:"/api/autostart",method:"GET",handler:sS},{path:"/api/autostart",method:"POST",handler:oS},{path:"/api/sleep-inhibit",method:"GET",handler:yO},{path:"/api/sleep-inhibit",method:"POST",handler:_O},{path:"/api/sessions",method:"GET",handler:bO},{path:"/api/sessions/delete",method:"POST",handler:wO},{path:"/api/local-sites",method:"*",public:!0,handler:Wk},{path:"/api/codespace/stop",method:"POST",handler:_4},{path:"/api/proxy/start",method:"POST",public:!0,handler:EO},{path:"/api/proxy/end",method:"POST",public:!0,handler:EO}];var S4=parseInt(process.env.PORT||"2208",10),ka=null;function E4(){if(!CO)return;let r=(0,tr.join)(Vn,"vite.config.js");if(!(0,Ri.existsSync)(r))return;let e=(0,Ri.existsSync)((0,tr.join)(Vn,"node_modules",".bin","vite"))?(0,tr.join)(Vn,"node_modules",".bin","vite"):(0,tr.join)(Vn,"..","node_modules",".bin","vite");ka=(0,Vu.spawn)("node",[e,"--config",r],{cwd:Vn,stdio:"ignore",detached:!1}),ka.on("error",()=>{}),ka.unref()}async function RO(){let r=nh(),e=r.sleepInhibitMode;e||(r.sleepInhibit===!1?e="never":e=Z.sleepInhibit?.defaultMode||"never"),$o(e),await FT(),AO=Nk(),E4();let n=xp(w4,{fallback:(a,c,{pathname:u})=>{if(u.startsWith("/api/")||u.startsWith("/socket.io")){he(c,404,"Not found");return}let p=!!a.headers["cf-connecting-ip"],f=a.socket.remoteAddress==="127.0.0.1"||a.socket.remoteAddress==="::1";if(p||!f){he(c,403,"Forbidden");return}let m=()=>{let y=u==="/"||u===""?(0,tr.join)(Kg,"index.html"):(0,tr.join)(Kg,u);SO(c,y)||SO(c,(0,tr.join)(Kg,"index.html"))};if(CO){x4(a,c,m);return}m()}}),i=(0,Ku.createServer)(async(a,c)=>{VR(c),!YR(a,c)&&await n(a,c)});jd(),jw(),Fw(),Rl(),process.platform==="darwin"&&setInterval(Rl,Tv),await KR(i),i.listen(S4,a=>{if(a)throw a;y4("2.0.31")});let s=!1,o=async a=>{if(s)return;s=!0,uh(),Kn.info(`\u{1F6D1} Received ${a}, shutting down gracefully...`);let c=setTimeout(()=>{Kn.error("\u26A0\uFE0F Forced exit"),process.exit(1)},5e3);try{if(i.close(()=>Kn.info("\u2713 HTTP server closed")),ka)try{ka.kill()}catch{}let u=_a();u&&(u.emit("server:shutdown"),u.close(()=>Kn.info("\u2713 Socket.IO closed"))),await new Promise(p=>setTimeout(p,500)),clearTimeout(c),Kn.info("\u2705 Server stopped cleanly"),process.exit(0)}catch(u){Kn.error(`\u274C Error during shutdown: ${u?.message||u}`),clearTimeout(c),process.exit(1)}};return process.on("SIGINT",()=>o("SIGINT")),process.on("SIGTERM",()=>o("SIGTERM")),process.platform==="win32"&&process.on("SIGBREAK",()=>o("SIGBREAK")),process.on("uncaughtException",a=>{Kn.error(`\u26A0\uFE0F uncaughtException: ${a?.stack||a}`)}),process.on("unhandledRejection",a=>{Kn.error(`\u26A0\uFE0F unhandledRejection: ${a?.stack||a}`)}),i}RO();0&&(module.exports={startServer});
|
|
263
263
|
/*! Bundled license information:
|
|
264
264
|
|
|
265
265
|
negotiator/index.js:
|