9remote 3.0.12 → 3.0.13
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/README.md +12 -10
- package/dist/cli.cjs +71 -71
- package/dist/server.cjs +175 -175
- package/dist/ui/assets/index-WDGxckRM.js +8 -0
- package/dist/ui/index.html +1 -1
- package/dist/web/404.html +1 -1
- package/dist/web/__next.__PAGE__.txt +2 -2
- package/dist/web/__next._full.txt +3 -3
- package/dist/web/__next._head.txt +1 -1
- package/dist/web/__next._index.txt +2 -2
- package/dist/web/__next._tree.txt +2 -2
- package/dist/web/_next/static/chunks/3346-23aafd4add63869a.js +1 -0
- package/dist/web/_next/static/chunks/4023-66934a18c86e64c8.js +1 -0
- package/dist/web/_next/static/chunks/4958-179397687a9efabd.js +86 -0
- package/dist/web/_next/static/chunks/8387-9ffbf41a5664cf04.js +1 -0
- package/dist/web/_next/static/chunks/8669-9e059733295a6fc1.js +1 -0
- package/dist/web/_next/static/chunks/9958-35139b04963145ff.js +1 -0
- package/dist/web/_next/static/chunks/app/admin/admins/{page-55a5b7d9e2cce009.js → page-cbe0a81654621c59.js} +1 -1
- package/dist/web/_next/static/chunks/app/admin/login/{page-0ee5816b25a58124.js → page-385a65c442c5f9eb.js} +1 -1
- package/dist/web/_next/static/chunks/app/admin/modes/{page-4a42062c1aa3bdfe.js → page-3c1c39a594e21bf9.js} +1 -1
- package/dist/web/_next/static/chunks/app/admin/ota/{page-f933a80b41b1fa71.js → page-71f6fb68d1dc9334.js} +1 -1
- package/dist/web/_next/static/chunks/app/admin/{page-9af75732b2cda9b6.js → page-680a917a0c0b046c.js} +1 -1
- package/dist/web/_next/static/chunks/app/admin/turn/{page-fbb8e50d077e6051.js → page-271235635424b233.js} +1 -1
- package/dist/web/_next/static/chunks/app/dev/question/page-8dc068c655f29856.js +1 -0
- package/dist/web/_next/static/chunks/app/login/page-798b68f514800b19.js +1 -0
- package/dist/web/_next/static/chunks/app/page-81affa2ae3534100.js +22 -0
- package/dist/web/_next/static/chunks/app/workspace/layout-123d4cfb7b9f0946.js +14 -0
- package/dist/web/_next/static/chunks/webpack-34aa84f85d3087cb.js +1 -0
- package/dist/web/_next/static/css/7bac24727badd523.css +1 -0
- package/dist/web/_not-found/__next._full.txt +2 -2
- package/dist/web/_not-found/__next._head.txt +1 -1
- package/dist/web/_not-found/__next._index.txt +2 -2
- package/dist/web/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/dist/web/_not-found/__next._not-found.txt +1 -1
- package/dist/web/_not-found/__next._tree.txt +2 -2
- package/dist/web/_not-found.html +1 -1
- package/dist/web/_not-found.txt +2 -2
- package/dist/web/admin/__next._full.txt +3 -3
- package/dist/web/admin/__next._head.txt +1 -1
- package/dist/web/admin/__next._index.txt +2 -2
- package/dist/web/admin/__next._tree.txt +2 -2
- package/dist/web/admin/__next.admin.__PAGE__.txt +2 -2
- package/dist/web/admin/__next.admin.txt +1 -1
- package/dist/web/admin/admins/__next._full.txt +3 -3
- package/dist/web/admin/admins/__next._head.txt +1 -1
- package/dist/web/admin/admins/__next._index.txt +2 -2
- package/dist/web/admin/admins/__next._tree.txt +2 -2
- package/dist/web/admin/admins/__next.admin.admins.__PAGE__.txt +2 -2
- package/dist/web/admin/admins/__next.admin.admins.txt +1 -1
- package/dist/web/admin/admins/__next.admin.txt +1 -1
- package/dist/web/admin/admins.html +1 -1
- package/dist/web/admin/admins.txt +3 -3
- package/dist/web/admin/login/__next._full.txt +3 -3
- package/dist/web/admin/login/__next._head.txt +1 -1
- package/dist/web/admin/login/__next._index.txt +2 -2
- package/dist/web/admin/login/__next._tree.txt +2 -2
- package/dist/web/admin/login/__next.admin.login.__PAGE__.txt +2 -2
- package/dist/web/admin/login/__next.admin.login.txt +1 -1
- package/dist/web/admin/login/__next.admin.txt +1 -1
- package/dist/web/admin/login.html +1 -1
- package/dist/web/admin/login.txt +3 -3
- package/dist/web/admin/modes/__next._full.txt +3 -3
- package/dist/web/admin/modes/__next._head.txt +1 -1
- package/dist/web/admin/modes/__next._index.txt +2 -2
- package/dist/web/admin/modes/__next._tree.txt +2 -2
- package/dist/web/admin/modes/__next.admin.modes.__PAGE__.txt +2 -2
- package/dist/web/admin/modes/__next.admin.modes.txt +1 -1
- package/dist/web/admin/modes/__next.admin.txt +1 -1
- package/dist/web/admin/modes.html +1 -1
- package/dist/web/admin/modes.txt +3 -3
- package/dist/web/admin/ota/__next._full.txt +3 -3
- package/dist/web/admin/ota/__next._head.txt +1 -1
- package/dist/web/admin/ota/__next._index.txt +2 -2
- package/dist/web/admin/ota/__next._tree.txt +2 -2
- package/dist/web/admin/ota/__next.admin.ota.__PAGE__.txt +2 -2
- package/dist/web/admin/ota/__next.admin.ota.txt +1 -1
- package/dist/web/admin/ota/__next.admin.txt +1 -1
- package/dist/web/admin/ota.html +1 -1
- package/dist/web/admin/ota.txt +3 -3
- package/dist/web/admin/turn/__next._full.txt +3 -3
- package/dist/web/admin/turn/__next._head.txt +1 -1
- package/dist/web/admin/turn/__next._index.txt +2 -2
- package/dist/web/admin/turn/__next._tree.txt +2 -2
- package/dist/web/admin/turn/__next.admin.turn.__PAGE__.txt +2 -2
- package/dist/web/admin/turn/__next.admin.turn.txt +1 -1
- package/dist/web/admin/turn/__next.admin.txt +1 -1
- package/dist/web/admin/turn.html +1 -1
- package/dist/web/admin/turn.txt +3 -3
- package/dist/web/admin.html +1 -1
- package/dist/web/admin.txt +3 -3
- package/dist/web/dev/question/__next._full.txt +3 -3
- package/dist/web/dev/question/__next._head.txt +1 -1
- package/dist/web/dev/question/__next._index.txt +2 -2
- package/dist/web/dev/question/__next._tree.txt +2 -2
- package/dist/web/dev/question/__next.dev.question.__PAGE__.txt +2 -2
- package/dist/web/dev/question/__next.dev.question.txt +1 -1
- package/dist/web/dev/question/__next.dev.txt +1 -1
- package/dist/web/dev/question.html +1 -1
- package/dist/web/dev/question.txt +3 -3
- package/dist/web/index.html +1 -1
- package/dist/web/index.txt +3 -3
- package/dist/web/login/__next._full.txt +3 -3
- package/dist/web/login/__next._head.txt +1 -1
- package/dist/web/login/__next._index.txt +2 -2
- package/dist/web/login/__next._tree.txt +2 -2
- package/dist/web/login/__next.login.__PAGE__.txt +2 -2
- package/dist/web/login/__next.login.txt +1 -1
- package/dist/web/login.html +1 -1
- package/dist/web/login.txt +3 -3
- package/dist/web/workspace/__next._full.txt +3 -3
- package/dist/web/workspace/__next._head.txt +1 -1
- package/dist/web/workspace/__next._index.txt +2 -2
- package/dist/web/workspace/__next._tree.txt +2 -2
- package/dist/web/workspace/__next.workspace.__PAGE__.txt +1 -1
- package/dist/web/workspace/__next.workspace.txt +2 -2
- package/dist/web/workspace/browse/__next._full.txt +3 -3
- package/dist/web/workspace/browse/__next._head.txt +1 -1
- package/dist/web/workspace/browse/__next._index.txt +2 -2
- package/dist/web/workspace/browse/__next._tree.txt +2 -2
- package/dist/web/workspace/browse/__next.workspace.browse.__PAGE__.txt +1 -1
- package/dist/web/workspace/browse/__next.workspace.browse.txt +1 -1
- package/dist/web/workspace/browse/__next.workspace.txt +2 -2
- package/dist/web/workspace/browse.html +1 -1
- package/dist/web/workspace/browse.txt +3 -3
- package/dist/web/workspace/editor/__next._full.txt +3 -3
- package/dist/web/workspace/editor/__next._head.txt +1 -1
- package/dist/web/workspace/editor/__next._index.txt +2 -2
- package/dist/web/workspace/editor/__next._tree.txt +2 -2
- package/dist/web/workspace/editor/__next.workspace.editor.__PAGE__.txt +1 -1
- package/dist/web/workspace/editor/__next.workspace.editor.txt +1 -1
- package/dist/web/workspace/editor/__next.workspace.txt +2 -2
- package/dist/web/workspace/editor.html +1 -1
- package/dist/web/workspace/editor.txt +3 -3
- package/dist/web/workspace/files/__next._full.txt +3 -3
- package/dist/web/workspace/files/__next._head.txt +1 -1
- package/dist/web/workspace/files/__next._index.txt +2 -2
- package/dist/web/workspace/files/__next._tree.txt +2 -2
- package/dist/web/workspace/files/__next.workspace.files.__PAGE__.txt +1 -1
- package/dist/web/workspace/files/__next.workspace.files.txt +1 -1
- package/dist/web/workspace/files/__next.workspace.txt +2 -2
- package/dist/web/workspace/files.html +1 -1
- package/dist/web/workspace/files.txt +3 -3
- package/dist/web/workspace/git/__next._full.txt +3 -3
- package/dist/web/workspace/git/__next._head.txt +1 -1
- package/dist/web/workspace/git/__next._index.txt +2 -2
- package/dist/web/workspace/git/__next._tree.txt +2 -2
- package/dist/web/workspace/git/__next.workspace.git.__PAGE__.txt +1 -1
- package/dist/web/workspace/git/__next.workspace.git.txt +1 -1
- package/dist/web/workspace/git/__next.workspace.txt +2 -2
- package/dist/web/workspace/git.html +1 -1
- package/dist/web/workspace/git.txt +3 -3
- package/dist/web/workspace/mobile/__next._full.txt +3 -3
- package/dist/web/workspace/mobile/__next._head.txt +1 -1
- package/dist/web/workspace/mobile/__next._index.txt +2 -2
- package/dist/web/workspace/mobile/__next._tree.txt +2 -2
- package/dist/web/workspace/mobile/__next.workspace.mobile.__PAGE__.txt +1 -1
- package/dist/web/workspace/mobile/__next.workspace.mobile.txt +1 -1
- package/dist/web/workspace/mobile/__next.workspace.txt +2 -2
- package/dist/web/workspace/mobile.html +1 -1
- package/dist/web/workspace/mobile.txt +3 -3
- package/dist/web/workspace/remote/__next._full.txt +3 -3
- package/dist/web/workspace/remote/__next._head.txt +1 -1
- package/dist/web/workspace/remote/__next._index.txt +2 -2
- package/dist/web/workspace/remote/__next._tree.txt +2 -2
- package/dist/web/workspace/remote/__next.workspace.remote.__PAGE__.txt +1 -1
- package/dist/web/workspace/remote/__next.workspace.remote.txt +1 -1
- package/dist/web/workspace/remote/__next.workspace.txt +2 -2
- package/dist/web/workspace/remote.html +1 -1
- package/dist/web/workspace/remote.txt +3 -3
- package/dist/web/workspace/terminal/default/__next._full.txt +3 -3
- package/dist/web/workspace/terminal/default/__next._head.txt +1 -1
- package/dist/web/workspace/terminal/default/__next._index.txt +2 -2
- package/dist/web/workspace/terminal/default/__next._tree.txt +2 -2
- package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.__PAGE__.txt +1 -1
- package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.txt +1 -1
- package/dist/web/workspace/terminal/default/__next.workspace.terminal.txt +1 -1
- package/dist/web/workspace/terminal/default/__next.workspace.txt +2 -2
- package/dist/web/workspace/terminal/default.html +1 -1
- package/dist/web/workspace/terminal/default.txt +3 -3
- package/dist/web/workspace/workspaces/__next._full.txt +3 -3
- package/dist/web/workspace/workspaces/__next._head.txt +1 -1
- package/dist/web/workspace/workspaces/__next._index.txt +2 -2
- package/dist/web/workspace/workspaces/__next._tree.txt +2 -2
- package/dist/web/workspace/workspaces/__next.workspace.txt +2 -2
- package/dist/web/workspace/workspaces/__next.workspace.workspaces.__PAGE__.txt +1 -1
- package/dist/web/workspace/workspaces/__next.workspace.workspaces.txt +1 -1
- package/dist/web/workspace/workspaces.html +1 -1
- package/dist/web/workspace/workspaces.txt +3 -3
- package/dist/web/workspace.html +1 -1
- package/dist/web/workspace.txt +3 -3
- package/package.json +1 -1
- package/dist/ui/assets/index-Dpl_RN3z.js +0 -8
- package/dist/web/_next/static/chunks/3977.8cfd8dec4cb8e893.js +0 -1
- package/dist/web/_next/static/chunks/5018-0af0eec430de34c7.js +0 -86
- package/dist/web/_next/static/chunks/635-d6ae421935055337.js +0 -1
- package/dist/web/_next/static/chunks/774-72d0e3531439cf1c.js +0 -1
- package/dist/web/_next/static/chunks/8439-43c6c0f6514a09d9.js +0 -1
- package/dist/web/_next/static/chunks/9958-448e936357b2d620.js +0 -1
- package/dist/web/_next/static/chunks/app/dev/question/page-c28a92f80ec9e5a7.js +0 -1
- package/dist/web/_next/static/chunks/app/login/page-4515f1948afb340b.js +0 -1
- package/dist/web/_next/static/chunks/app/page-0697c18fdefef84e.js +0 -22
- package/dist/web/_next/static/chunks/app/workspace/layout-69aa78d0d618e242.js +0 -14
- package/dist/web/_next/static/chunks/webpack-d869f11e68050bab.js +0 -1
- package/dist/web/_next/static/css/98e745d5833fdea2.css +0 -1
- /package/dist/web/_next/static/{DzBpmOtMidkKu3UY9el_- → eD-pRSm_Yh2oF-5ufptf0}/_buildManifest.js +0 -0
- /package/dist/web/_next/static/{DzBpmOtMidkKu3UY9el_- → eD-pRSm_Yh2oF-5ufptf0}/_ssgManifest.js +0 -0
package/dist/cli.cjs
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
const __importMetaUrl = require('url').pathToFileURL(__filename).href;
|
|
3
|
-
var Wa=Object.create;var
|
|
4
|
-
`)[0].replace(/\=|\s+|\"/gi,"").toLowerCase();case"win32":return P.toString().split("REG_SZ")[1].replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"linux":return P.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"freebsd":return P.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();default:throw new Error("Unsupported platform: "+process.platform)}}function l(P){var g=c((0,d.execSync)(A[T]).toString());return P?g:a(g)}function u(P){return new p.default(function(g,b){return(0,d.exec)(A[T],{},function(S,O,_){if(S)return b(new Error("Error while obtaining machine id: "+S.stack));var U=c(O.toString());return g(P?U:a(U))})})}Object.defineProperty(o,"__esModule",{value:!0});var f=n(35),p=i(f);o.machineIdSync=l,o.machineId=u;var d=n(70),h=n(71),w=process,T=w.platform,I={native:"%windir%\\System32",mixed:"%windir%\\sysnative\\cmd.exe /c %windir%\\System32"},A={darwin:"ioreg -rd1 -c IOPlatformExpertDevice",win32:I[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,n){r.exports={default:n(36),__esModule:!0}},function(r,o,n){n(66),n(68),n(69),n(67),r.exports=n(6).Promise},function(r,o){r.exports=function(){}},function(r,o){r.exports=function(n,i,s,a){if(!(n instanceof i)||a!==void 0&&a in n)throw TypeError(s+": incorrect invocation!");return n}},function(r,o,n){var i=n(13),s=n(31),a=n(62);r.exports=function(c){return function(l,u,f){var p,d=i(l),h=s(d.length),w=a(f,h);if(c&&u!=u){for(;h>w;)if(p=d[w++],p!=p)return!0}else for(;h>w;w++)if((c||w in d)&&d[w]===u)return c||w||0;return!c&&-1}}},function(r,d,n){var i=n(7),s=n(44),a=n(43),c=n(3),l=n(31),u=n(64),f={},p={},d=r.exports=function(h,w,T,I,A){var P,g,b,S,O=A?function(){return h}:u(h),_=i(T,I,w?2:1),U=0;if(typeof O!="function")throw TypeError(h+" is not iterable!");if(a(O)){for(P=l(h.length);P>U;U++)if(S=w?_(c(g=h[U])[0],g[1]):_(h[U]),S===f||S===p)return S}else for(b=O.call(h);!(g=b.next()).done;)if(S=s(b,_,g.value,w),S===f||S===p)return S};d.BREAK=f,d.RETURN=p},function(r,o){r.exports=function(n,i,s){var a=s===void 0;switch(i.length){case 0:return a?n():n.call(s);case 1:return a?n(i[0]):n.call(s,i[0]);case 2:return a?n(i[0],i[1]):n.call(s,i[0],i[1]);case 3:return a?n(i[0],i[1],i[2]):n.call(s,i[0],i[1],i[2]);case 4:return a?n(i[0],i[1],i[2],i[3]):n.call(s,i[0],i[1],i[2],i[3])}return n.apply(s,i)}},function(r,o,n){var i=n(11);r.exports=Object("z").propertyIsEnumerable(0)?Object:function(s){return i(s)=="String"?s.split(""):Object(s)}},function(r,o,n){var i=n(10),s=n(1)("iterator"),a=Array.prototype;r.exports=function(c){return c!==void 0&&(i.Array===c||a[s]===c)}},function(r,o,n){var i=n(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,n){"use strict";var i=n(49),s=n(17),a=n(18),c={};n(5)(c,n(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,n){var i=n(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(n,i){return{value:i,done:!!n}}},function(r,o,n){var i=n(2),s=n(30).set,a=i.MutationObserver||i.WebKitMutationObserver,c=i.process,l=i.Promise,u=n(11)(c)=="process";r.exports=function(){var f,p,d,h=function(){var A,P;for(u&&(A=c.domain)&&A.exit();f;){P=f.fn,f=f.next;try{P()}catch(g){throw f?d():p=void 0,g}}p=void 0,A&&A.enter()};if(u)d=function(){c.nextTick(h)};else if(a){var w=!0,T=document.createTextNode("");new a(h).observe(T,{characterData:!0}),d=function(){T.data=w=!w}}else if(l&&l.resolve){var I=l.resolve();d=function(){I.then(h)}}else d=function(){s.call(i,h)};return function(A){var P={fn:A,next:void 0};p&&(p.next=P),f||(f=P,d()),p=P}}},function(r,o,n){var i=n(3),s=n(50),a=n(22),c=n(19)("IE_PROTO"),l=function(){},u="prototype",f=function(){var p,d=n(16)("iframe"),h=a.length,w=">";for(d.style.display="none",n(25).appendChild(d),d.src="javascript:",p=d.contentWindow.document,p.open(),p.write("<script>document.F=Object</script"+w),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,n){var i=n(12),s=n(3),a=n(54);r.exports=n(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,n){var i=n(55),s=n(17),a=n(13),c=n(32),l=n(8),u=n(26),f=Object.getOwnPropertyDescriptor;o.f=n(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,n){var i=n(8),s=n(63),a=n(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,n){var i=n(8),s=n(13),a=n(39)(!1),c=n(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,n){var i=n(53),s=n(22);r.exports=Object.keys||function(a){return i(a,s)}},function(r,o){o.f={}.propertyIsEnumerable},function(r,o,n){var i=n(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,n){r.exports=n(5)},function(r,o,n){var i=n(9),s=n(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=n(7)(Function.call,n(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,n){"use strict";var i=n(2),s=n(6),a=n(12),c=n(4),l=n(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,n){var i=n(3),s=n(14),a=n(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,n){var i=n(20),s=n(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,n){var i=n(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,n){var i=n(15);r.exports=function(s){return Object(i(s))}},function(r,o,n){var i=n(21),s=n(1)("iterator"),a=n(10);r.exports=n(6).getIteratorMethod=function(c){if(c!=null)return c[s]||c["@@iterator"]||a[i(c)]}},function(r,o,n){"use strict";var i=n(37),s=n(47),a=n(10),c=n(13);r.exports=n(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,n){"use strict";var i,s,a,c=n(28),l=n(2),u=n(7),f=n(21),p=n(23),d=n(9),h=(n(3),n(14)),w=n(38),T=n(40),I=(n(58).set,n(60)),A=n(30).set,P=n(48)(),g="Promise",b=l.TypeError,O=l.process,S=l[g],O=l.process,_=f(O)=="process",U=function(){},Z=!!(function(){try{var y=S.resolve(1),v=(y.constructor={})[n(1)("species")]=function(x){x(U,U)};return(_||typeof PromiseRejectionEvent=="function")&&y.then(U)instanceof v}catch{}})(),ge=function(y,v){return y===v||y===S&&v===a},ye=function(y){var v;return!(!d(y)||typeof(v=y.then)!="function")&&v},ne=function(y){return ge(S,y)?new De(y):new s(y)},De=s=function(y){var v,x;this.promise=new y(function(N,z){if(v!==void 0||x!==void 0)throw b("Bad Promise constructor");v=N,x=z}),this.resolve=h(v),this.reject=h(x)},Ot=function(y){try{y()}catch(v){return{error:v}}},gt=function(y,v){if(!y._n){y._n=!0;var x=y._c;P(function(){for(var N=y._v,z=y._s==1,yt=0,Lt=function(Ze){var be,zn,gn=z?Ze.ok:Ze.fail,yn=Ze.resolve,_t=Ze.reject,er=Ze.domain;try{gn?(z||(y._h==2&&Je(y),y._h=1),gn===!0?be=N:(er&&er.enter(),be=gn(N),er&&er.exit()),be===Ze.promise?_t(b("Promise-chain cycle")):(zn=ye(be))?zn.call(be,yn,_t):yn(be)):_t(N)}catch(Ha){_t(Ha)}};x.length>yt;)Lt(x[yt++]);y._c=[],y._n=!1,v&&!y._h&&mn(y)})}},mn=function(y){A.call(l,function(){var v,x,N,z=y._v;if(re(y)&&(v=Ot(function(){_?O.emit("unhandledRejection",z,y):(x=l.onunhandledrejection)?x({promise:y,reason:z}):(N=l.console)&&N.error&&N.error("Unhandled promise rejection",z)}),y._h=_||re(y)?2:1),y._a=void 0,v)throw v.error})},re=function(y){if(y._h==1)return!1;for(var v,x=y._a||y._c,N=0;x.length>N;)if(v=x[N++],v.fail||!re(v.promise))return!1;return!0},Je=function(y){A.call(l,function(){var v;_?O.emit("rejectionHandled",y):(v=l.onrejectionhandled)&&v({promise:y,reason:y._v})})},ae=function(y){var v=this;v._d||(v._d=!0,v=v._w||v,v._v=y,v._s=2,v._a||(v._a=v._c.slice()),gt(v,!0))},hn=function(y){var v,x=this;if(!x._d){x._d=!0,x=x._w||x;try{if(x===y)throw b("Promise can't be resolved itself");(v=ye(y))?P(function(){var N={_w:x,_d:!1};try{v.call(y,u(hn,N,1),u(ae,N,1))}catch(z){ae.call(N,z)}}):(x._v=y,x._s=1,gt(x,!1))}catch(N){ae.call({_w:x,_d:!1},N)}}};Z||(S=function(y){w(this,S,g,"_h"),h(y),i.call(this);try{y(u(hn,this,1),u(ae,this,1))}catch(v){ae.call(this,v)}},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=n(56)(S.prototype,{then:function(y,v){var x=ne(I(this,S));return x.ok=typeof y!="function"||y,x.fail=typeof v=="function"&&v,x.domain=_?O.domain:void 0,this._c.push(x),this._a&&this._a.push(x),this._s&>(this,!1),x.promise},catch:function(y){return this.then(void 0,y)}}),De=function(){var y=new i;this.promise=y,this.resolve=u(hn,y,1),this.reject=u(ae,y,1)}),p(p.G+p.W+p.F*!Z,{Promise:S}),n(18)(S,g),n(59)(g),a=n(6)[g],p(p.S+p.F*!Z,g,{reject:function(y){var v=ne(this),x=v.reject;return x(y),v.promise}}),p(p.S+p.F*(c||!Z),g,{resolve:function(y){if(y instanceof S&&ge(y.constructor,this))return y;var v=ne(this),x=v.resolve;return x(y),v.promise}}),p(p.S+p.F*!(Z&&n(46)(function(y){S.all(y).catch(U)})),g,{all:function(y){var v=this,x=ne(v),N=x.resolve,z=x.reject,yt=Ot(function(){var Lt=[],Ze=0,be=1;T(y,!1,function(zn){var gn=Ze++,yn=!1;Lt.push(void 0),be++,v.resolve(zn).then(function(_t){yn||(yn=!0,Lt[gn]=_t,--be||N(Lt))},z)}),--be||N(Lt)});return yt&&z(yt.error),x.promise},race:function(y){var v=this,x=ne(v),N=x.reject,z=Ot(function(){T(y,!1,function(yt){v.resolve(yt).then(x.resolve,N)})});return z&&N(z.error),x.promise}})},function(r,o,n){"use strict";var i=n(61)(!0);n(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,n){n(65);for(var i=n(2),s=n(5),a=n(10),c=n(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 Fs={};Qa(Fs,{initTray:()=>To,killTray:()=>Gn,openBrowser:()=>Vn,showTrayNotification:()=>Ao,updateTrayTooltip:()=>Ir});function _s(e){for(let t of e)try{if(rn.default.existsSync(t))return t}catch{}return null}function kl(){if(process.platform==="win32"){for(let e of Ds)try{if(rn.default.existsSync(e))return rn.default.readFileSync(e).toString("base64")}catch{}return Ls}return Ls}function Il(){if(process.env.NREMOTE_DESKTOP)return!1;let e=process.platform;return!(!["darwin","win32","linux"].includes(e)||e==="linux"&&!process.env.DISPLAY)}function Bs(){let{port:e,tunnelUrl:t,running:r}=on,o=r?t?"Tunnel ON":"Local only":"Idle",n=`http://localhost:${e}`;return`9Remote \u2022 ${o}
|
|
3
|
+
var Wa=Object.create;var Ur=Object.defineProperty;var ja=Object.getOwnPropertyDescriptor;var Ga=Object.getOwnPropertyNames;var Va=Object.getPrototypeOf,Ya=Object.prototype.hasOwnProperty;var Xa=(e,t)=>()=>(e&&(t=e(e=0)),t);var ue=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),qa=(e,t)=>{for(var r in t)Ur(e,r,{get:t[r],enumerable:!0})},Qa=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Ga(t))!Ya.call(e,n)&&n!==r&&Ur(e,n,{get:()=>t[n],enumerable:!(o=ja(t,n))||o.enumerable});return e};var R=(e,t,r)=>(r=e!=null?Wa(Va(e)):{},Qa(t||!e||!e.__esModule?Ur(r,"default",{value:e,enumerable:!0}):r,e));var zo=ue((Sn,Hr)=>{(function(e,t){typeof Sn=="object"&&typeof Hr=="object"?Hr.exports=t(require("child_process"),require("crypto")):typeof define=="function"&&define.amd?define(["child_process","crypto"],t):typeof Sn=="object"?Sn["electron-machine-id"]=t(require("child_process"),require("crypto")):e["electron-machine-id"]=t(e.child_process,e.crypto)})(Sn,function(e,t){return(function(r){function o(i){if(n[i])return n[i].exports;var s=n[i]={exports:{},id:i,loaded:!1};return r[i].call(s.exports,s,s.exports,o),s.loaded=!0,s.exports}var n={};return o.m=r,o.c=n,o.p="",o(0)})([function(r,o,n){r.exports=n(34)},function(r,o,n){var i=n(29)("wks"),s=n(33),a=n(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 n=r.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=n)},function(r,o,n){var i=n(9);r.exports=function(s){if(!i(s))throw TypeError(s+" is not an object!");return s}},function(r,o,n){r.exports=!n(24)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},function(r,o,n){var i=n(12),s=n(17);r.exports=n(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 n=r.exports={version:"2.4.0"};typeof __e=="number"&&(__e=n)},function(r,o,n){var i=n(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 n={}.hasOwnProperty;r.exports=function(i,s){return n.call(i,s)}},function(r,o){r.exports=function(n){return typeof n=="object"?n!==null:typeof n=="function"}},function(r,o){r.exports={}},function(r,o){var n={}.toString;r.exports=function(i){return n.call(i).slice(8,-1)}},function(r,o,n){var i=n(3),s=n(26),a=n(32),c=Object.defineProperty;o.f=n(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,n){var i=n(42),s=n(15);r.exports=function(a){return i(s(a))}},function(r,o){r.exports=function(n){if(typeof n!="function")throw TypeError(n+" is not a function!");return n}},function(r,o){r.exports=function(n){if(n==null)throw TypeError("Can't call method on "+n);return n}},function(r,o,n){var i=n(9),s=n(2).document,a=i(s)&&i(s.createElement);r.exports=function(c){return a?s.createElement(c):{}}},function(r,o){r.exports=function(n,i){return{enumerable:!(1&n),configurable:!(2&n),writable:!(4&n),value:i}}},function(r,o,n){var i=n(12).f,s=n(8),a=n(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,n){var i=n(29)("keys"),s=n(33);r.exports=function(a){return i[a]||(i[a]=s(a))}},function(r,o){var n=Math.ceil,i=Math.floor;r.exports=function(s){return isNaN(s=+s)?0:(s>0?i:n)(s)}},function(r,o,n){var i=n(11),s=n(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,n){var i=n(2),s=n(6),a=n(7),c=n(5),l="prototype",u=function(f,p,d){var h,w,T,O=f&u.F,A=f&u.G,P=f&u.S,g=f&u.P,b=f&u.B,S=f&u.W,I=A?s:s[p]||(s[p]={}),_=I[l],U=A?i:P?i[p]:(i[p]||{})[l];A&&(d=p);for(h in d)w=!O&&U&&U[h]!==void 0,w&&h in I||(T=w?U[h]:d[h],I[h]=A&&typeof U[h]!="function"?d[h]:b&&w?a(T,i):S&&U[h]==T?(function(Z){var ge=function(ye,ne,De){if(this instanceof Z){switch(arguments.length){case 0:return new Z;case 1:return new Z(ye);case 2:return new Z(ye,ne)}return new Z(ye,ne,De)}return Z.apply(this,arguments)};return ge[l]=Z[l],ge})(T):g&&typeof T=="function"?a(Function.call,T):T,g&&((I.virtual||(I.virtual={}))[h]=T,f&u.R&&_&&!_[h]&&c(_,h,T)))};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(n){try{return!!n()}catch{return!0}}},function(r,o,n){r.exports=n(2).document&&document.documentElement},function(r,o,n){r.exports=!n(4)&&!n(24)(function(){return Object.defineProperty(n(16)("div"),"a",{get:function(){return 7}}).a!=7})},function(r,o,n){"use strict";var i=n(28),s=n(23),a=n(57),c=n(5),l=n(8),u=n(10),f=n(45),p=n(18),d=n(52),h=n(1)("iterator"),w=!([].keys&&"next"in[].keys()),T="@@iterator",O="keys",A="values",P=function(){return this};r.exports=function(g,b,S,I,_,U,Z){f(S,b,I);var ge,ye,ne,De=function(v){if(!w&&v in re)return re[v];switch(v){case O:return function(){return new S(this,v)};case A:return function(){return new S(this,v)}}return function(){return new S(this,v)}},It=b+" Iterator",gt=_==A,mn=!1,re=g.prototype,Je=re[h]||re[T]||_&&re[_],ae=Je||De(_),hn=_?gt?De("entries"):ae:void 0,y=b=="Array"&&re.entries||Je;if(y&&(ne=d(y.call(new g)),ne!==Object.prototype&&(p(ne,It,!0),i||l(ne,h)||c(ne,h,P))),gt&&Je&&Je.name!==A&&(mn=!0,ae=function(){return Je.call(this)}),i&&!Z||!w&&!mn&&re[h]||c(re,h,ae),u[b]=ae,u[It]=P,_)if(ge={values:gt?ae:De(A),keys:U?ae:De(O),entries:hn},Z)for(ye in ge)ye in re||a(re,ye,ge[ye]);else s(s.P+s.F*(w||mn),b,ge);return ge}},function(r,o){r.exports=!0},function(r,o,n){var i=n(2),s="__core-js_shared__",a=i[s]||(i[s]={});r.exports=function(c){return a[c]||(a[c]={})}},function(r,o,n){var i,s,a,c=n(7),l=n(41),u=n(25),f=n(16),p=n(2),d=p.process,h=p.setImmediate,w=p.clearImmediate,T=p.MessageChannel,O=0,A={},P="onreadystatechange",g=function(){var S=+this;if(A.hasOwnProperty(S)){var I=A[S];delete A[S],I()}},b=function(S){g.call(S.data)};h&&w||(h=function(S){for(var I=[],_=1;arguments.length>_;)I.push(arguments[_++]);return A[++O]=function(){l(typeof S=="function"?S:Function(S),I)},i(O),O},w=function(S){delete A[S]},n(11)(d)=="process"?i=function(S){d.nextTick(c(g,S,1))}:T?(s=new T,a=s.port2,s.port1.onmessage=b,i=c(a.postMessage,a,1)):p.addEventListener&&typeof postMessage=="function"&&!p.importScripts?(i=function(S){p.postMessage(S+"","*")},p.addEventListener("message",b,!1)):i=P in f("script")?function(S){u.appendChild(f("script"))[P]=function(){u.removeChild(this),g.call(S)}}:function(S){setTimeout(c(g,S,1),0)}),r.exports={set:h,clear:w}},function(r,o,n){var i=n(20),s=Math.min;r.exports=function(a){return a>0?s(i(a),9007199254740991):0}},function(r,o,n){var i=n(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 n=0,i=Math.random();r.exports=function(s){return"Symbol(".concat(s===void 0?"":s,")_",(++n+i).toString(36))}},function(r,o,n){"use strict";function i(P){return P&&P.__esModule?P:{default:P}}function s(){return process.platform!=="win32"?"":process.arch==="ia32"&&process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432")?"mixed":"native"}function a(P){return(0,h.createHash)("sha256").update(P).digest("hex")}function c(P){switch(T){case"darwin":return P.split("IOPlatformUUID")[1].split(`
|
|
4
|
+
`)[0].replace(/\=|\s+|\"/gi,"").toLowerCase();case"win32":return P.toString().split("REG_SZ")[1].replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"linux":return P.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"freebsd":return P.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();default:throw new Error("Unsupported platform: "+process.platform)}}function l(P){var g=c((0,d.execSync)(A[T]).toString());return P?g:a(g)}function u(P){return new p.default(function(g,b){return(0,d.exec)(A[T],{},function(S,I,_){if(S)return b(new Error("Error while obtaining machine id: "+S.stack));var U=c(I.toString());return g(P?U:a(U))})})}Object.defineProperty(o,"__esModule",{value:!0});var f=n(35),p=i(f);o.machineIdSync=l,o.machineId=u;var d=n(70),h=n(71),w=process,T=w.platform,O={native:"%windir%\\System32",mixed:"%windir%\\sysnative\\cmd.exe /c %windir%\\System32"},A={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,n){r.exports={default:n(36),__esModule:!0}},function(r,o,n){n(66),n(68),n(69),n(67),r.exports=n(6).Promise},function(r,o){r.exports=function(){}},function(r,o){r.exports=function(n,i,s,a){if(!(n instanceof i)||a!==void 0&&a in n)throw TypeError(s+": incorrect invocation!");return n}},function(r,o,n){var i=n(13),s=n(31),a=n(62);r.exports=function(c){return function(l,u,f){var p,d=i(l),h=s(d.length),w=a(f,h);if(c&&u!=u){for(;h>w;)if(p=d[w++],p!=p)return!0}else for(;h>w;w++)if((c||w in d)&&d[w]===u)return c||w||0;return!c&&-1}}},function(r,d,n){var i=n(7),s=n(44),a=n(43),c=n(3),l=n(31),u=n(64),f={},p={},d=r.exports=function(h,w,T,O,A){var P,g,b,S,I=A?function(){return h}:u(h),_=i(T,O,w?2:1),U=0;if(typeof I!="function")throw TypeError(h+" is not iterable!");if(a(I)){for(P=l(h.length);P>U;U++)if(S=w?_(c(g=h[U])[0],g[1]):_(h[U]),S===f||S===p)return S}else for(b=I.call(h);!(g=b.next()).done;)if(S=s(b,_,g.value,w),S===f||S===p)return S};d.BREAK=f,d.RETURN=p},function(r,o){r.exports=function(n,i,s){var a=s===void 0;switch(i.length){case 0:return a?n():n.call(s);case 1:return a?n(i[0]):n.call(s,i[0]);case 2:return a?n(i[0],i[1]):n.call(s,i[0],i[1]);case 3:return a?n(i[0],i[1],i[2]):n.call(s,i[0],i[1],i[2]);case 4:return a?n(i[0],i[1],i[2],i[3]):n.call(s,i[0],i[1],i[2],i[3])}return n.apply(s,i)}},function(r,o,n){var i=n(11);r.exports=Object("z").propertyIsEnumerable(0)?Object:function(s){return i(s)=="String"?s.split(""):Object(s)}},function(r,o,n){var i=n(10),s=n(1)("iterator"),a=Array.prototype;r.exports=function(c){return c!==void 0&&(i.Array===c||a[s]===c)}},function(r,o,n){var i=n(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,n){"use strict";var i=n(49),s=n(17),a=n(18),c={};n(5)(c,n(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,n){var i=n(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(n,i){return{value:i,done:!!n}}},function(r,o,n){var i=n(2),s=n(30).set,a=i.MutationObserver||i.WebKitMutationObserver,c=i.process,l=i.Promise,u=n(11)(c)=="process";r.exports=function(){var f,p,d,h=function(){var A,P;for(u&&(A=c.domain)&&A.exit();f;){P=f.fn,f=f.next;try{P()}catch(g){throw f?d():p=void 0,g}}p=void 0,A&&A.enter()};if(u)d=function(){c.nextTick(h)};else if(a){var w=!0,T=document.createTextNode("");new a(h).observe(T,{characterData:!0}),d=function(){T.data=w=!w}}else if(l&&l.resolve){var O=l.resolve();d=function(){O.then(h)}}else d=function(){s.call(i,h)};return function(A){var P={fn:A,next:void 0};p&&(p.next=P),f||(f=P,d()),p=P}}},function(r,o,n){var i=n(3),s=n(50),a=n(22),c=n(19)("IE_PROTO"),l=function(){},u="prototype",f=function(){var p,d=n(16)("iframe"),h=a.length,w=">";for(d.style.display="none",n(25).appendChild(d),d.src="javascript:",p=d.contentWindow.document,p.open(),p.write("<script>document.F=Object</script"+w),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,n){var i=n(12),s=n(3),a=n(54);r.exports=n(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,n){var i=n(55),s=n(17),a=n(13),c=n(32),l=n(8),u=n(26),f=Object.getOwnPropertyDescriptor;o.f=n(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,n){var i=n(8),s=n(63),a=n(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,n){var i=n(8),s=n(13),a=n(39)(!1),c=n(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,n){var i=n(53),s=n(22);r.exports=Object.keys||function(a){return i(a,s)}},function(r,o){o.f={}.propertyIsEnumerable},function(r,o,n){var i=n(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,n){r.exports=n(5)},function(r,o,n){var i=n(9),s=n(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=n(7)(Function.call,n(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,n){"use strict";var i=n(2),s=n(6),a=n(12),c=n(4),l=n(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,n){var i=n(3),s=n(14),a=n(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,n){var i=n(20),s=n(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,n){var i=n(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,n){var i=n(15);r.exports=function(s){return Object(i(s))}},function(r,o,n){var i=n(21),s=n(1)("iterator"),a=n(10);r.exports=n(6).getIteratorMethod=function(c){if(c!=null)return c[s]||c["@@iterator"]||a[i(c)]}},function(r,o,n){"use strict";var i=n(37),s=n(47),a=n(10),c=n(13);r.exports=n(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,n){"use strict";var i,s,a,c=n(28),l=n(2),u=n(7),f=n(21),p=n(23),d=n(9),h=(n(3),n(14)),w=n(38),T=n(40),O=(n(58).set,n(60)),A=n(30).set,P=n(48)(),g="Promise",b=l.TypeError,I=l.process,S=l[g],I=l.process,_=f(I)=="process",U=function(){},Z=!!(function(){try{var y=S.resolve(1),v=(y.constructor={})[n(1)("species")]=function(x){x(U,U)};return(_||typeof PromiseRejectionEvent=="function")&&y.then(U)instanceof v}catch{}})(),ge=function(y,v){return y===v||y===S&&v===a},ye=function(y){var v;return!(!d(y)||typeof(v=y.then)!="function")&&v},ne=function(y){return ge(S,y)?new De(y):new s(y)},De=s=function(y){var v,x;this.promise=new y(function(N,z){if(v!==void 0||x!==void 0)throw b("Bad Promise constructor");v=N,x=z}),this.resolve=h(v),this.reject=h(x)},It=function(y){try{y()}catch(v){return{error:v}}},gt=function(y,v){if(!y._n){y._n=!0;var x=y._c;P(function(){for(var N=y._v,z=y._s==1,yt=0,Lt=function(Ze){var be,er,gn=z?Ze.ok:Ze.fail,yn=Ze.resolve,_t=Ze.reject,tr=Ze.domain;try{gn?(z||(y._h==2&&Je(y),y._h=1),gn===!0?be=N:(tr&&tr.enter(),be=gn(N),tr&&tr.exit()),be===Ze.promise?_t(b("Promise-chain cycle")):(er=ye(be))?er.call(be,yn,_t):yn(be)):_t(N)}catch(Ha){_t(Ha)}};x.length>yt;)Lt(x[yt++]);y._c=[],y._n=!1,v&&!y._h&&mn(y)})}},mn=function(y){A.call(l,function(){var v,x,N,z=y._v;if(re(y)&&(v=It(function(){_?I.emit("unhandledRejection",z,y):(x=l.onunhandledrejection)?x({promise:y,reason:z}):(N=l.console)&&N.error&&N.error("Unhandled promise rejection",z)}),y._h=_||re(y)?2:1),y._a=void 0,v)throw v.error})},re=function(y){if(y._h==1)return!1;for(var v,x=y._a||y._c,N=0;x.length>N;)if(v=x[N++],v.fail||!re(v.promise))return!1;return!0},Je=function(y){A.call(l,function(){var v;_?I.emit("rejectionHandled",y):(v=l.onrejectionhandled)&&v({promise:y,reason:y._v})})},ae=function(y){var v=this;v._d||(v._d=!0,v=v._w||v,v._v=y,v._s=2,v._a||(v._a=v._c.slice()),gt(v,!0))},hn=function(y){var v,x=this;if(!x._d){x._d=!0,x=x._w||x;try{if(x===y)throw b("Promise can't be resolved itself");(v=ye(y))?P(function(){var N={_w:x,_d:!1};try{v.call(y,u(hn,N,1),u(ae,N,1))}catch(z){ae.call(N,z)}}):(x._v=y,x._s=1,gt(x,!1))}catch(N){ae.call({_w:x,_d:!1},N)}}};Z||(S=function(y){w(this,S,g,"_h"),h(y),i.call(this);try{y(u(hn,this,1),u(ae,this,1))}catch(v){ae.call(this,v)}},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=n(56)(S.prototype,{then:function(y,v){var x=ne(O(this,S));return x.ok=typeof y!="function"||y,x.fail=typeof v=="function"&&v,x.domain=_?I.domain:void 0,this._c.push(x),this._a&&this._a.push(x),this._s&>(this,!1),x.promise},catch:function(y){return this.then(void 0,y)}}),De=function(){var y=new i;this.promise=y,this.resolve=u(hn,y,1),this.reject=u(ae,y,1)}),p(p.G+p.W+p.F*!Z,{Promise:S}),n(18)(S,g),n(59)(g),a=n(6)[g],p(p.S+p.F*!Z,g,{reject:function(y){var v=ne(this),x=v.reject;return x(y),v.promise}}),p(p.S+p.F*(c||!Z),g,{resolve:function(y){if(y instanceof S&&ge(y.constructor,this))return y;var v=ne(this),x=v.resolve;return x(y),v.promise}}),p(p.S+p.F*!(Z&&n(46)(function(y){S.all(y).catch(U)})),g,{all:function(y){var v=this,x=ne(v),N=x.resolve,z=x.reject,yt=It(function(){var Lt=[],Ze=0,be=1;T(y,!1,function(er){var gn=Ze++,yn=!1;Lt.push(void 0),be++,v.resolve(er).then(function(_t){yn||(yn=!0,Lt[gn]=_t,--be||N(Lt))},z)}),--be||N(Lt)});return yt&&z(yt.error),x.promise},race:function(y){var v=this,x=ne(v),N=x.reject,z=It(function(){T(y,!1,function(yt){v.resolve(yt).then(x.resolve,N)})});return z&&N(z.error),x.promise}})},function(r,o,n){"use strict";var i=n(61)(!0);n(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,n){n(65);for(var i=n(2),s=n(5),a=n(10),c=n(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 Fs={};qa(Fs,{initTray:()=>bo,killTray:()=>Vn,openBrowser:()=>Yn,showTrayNotification:()=>xo,updateTrayTooltip:()=>Ir});function _s(e){for(let t of e)try{if(rn.default.existsSync(t))return t}catch{}return null}function kl(){if(process.platform==="win32"){for(let e of Ds)try{if(rn.default.existsSync(e))return rn.default.readFileSync(e).toString("base64")}catch{}return Ls}return Ls}function Ol(){if(process.env.NREMOTE_DESKTOP)return!1;let e=process.platform;return!(!["darwin","win32","linux"].includes(e)||e==="linux"&&!process.env.DISPLAY)}function Bs(){let{port:e,tunnelUrl:t,running:r}=on,o=r?t?"Tunnel ON":"Local only":"Idle",n=`http://localhost:${e}`;return`9Remote \u2022 ${o}
|
|
5
5
|
Local: ${n}
|
|
6
|
-
Right-click to open / quit`}function Us(){let{port:e,tunnelUrl:t}=on,r=process.platform==="win32",o=t?`9Remote (Port ${e}) \u2022 Tunnel ON`:`9Remote (Port ${e}) \u2022 Local only`;return{icon:kl(),title:r?`9Remote - Port ${e}`:"",tooltip:Bs(),items:[{title:o,tooltip:t||`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
|
|
7
|
-
`,"utf8")}catch{}};return Cs.default.createInterface({input:i.stdout}).on("line",c=>{try{let l=JSON.parse(c);if(l.type!=="click")return;l.index===0?r?.():l.index===1&&(t?.(),Gn(),setTimeout(()=>process.exit(0),500))}catch{}}),i.on("error",()=>{}),i.stderr.on("data",()=>{}),["Open Web UI","Shutdown"].forEach((c,l)=>s({action:"add-item",index:l,title:c,enabled:!0})),{_isWin:!0,_setTooltip(c){s({action:"set-tooltip",text:c})},sendAction(){},kill(){try{s({action:"kill"})}catch{}setTimeout(()=>{try{i&&!i.killed&&i.kill()}catch{}},300)}}}async function To({port:e,onQuit:t,onOpenUI:r}){if(!Il())return null;if(process.platform==="win32")return on={port:e,tunnelUrl:"",running:!0},te=Ll({port:e,onQuit:t,onOpenUI:r}),te;try{let o=Ol();if(!o)return null;let i={darwin:"tray_darwin_release",win32:"tray_windows_release.exe",linux:"tray_linux_release"}[process.platform];if(!i)return null;let s=Ce.default.join(Ns,"systray2","traybin",i);if(!rn.default.existsSync(s))return null;if(process.platform!=="win32")try{rn.default.chmodSync(s,493)}catch{}return on={port:e,tunnelUrl:"",running:!0},te=new o({menu:Us(),debug:!1,copyDir:!0}),te.onClick(a=>{let c=a.item?.title||a.item;c==="Open Web UI"?r?.():c==="Shutdown"&&(t?.(),Gn(),setTimeout(()=>process.exit(0),500))}),typeof te.ready=="function"?te.ready().catch(()=>{}):(te.onReady(()=>{}),te.onError(()=>{})),te}catch{return null}}function Ir({tunnelUrl:e,running:t}={}){if(e!==void 0&&(on.tunnelUrl=e),t!==void 0&&(on.running=t),!!te){if(te._isWin){te._setTooltip?.(Bs());return}try{te.sendAction({type:"update-menu",menu:Us(),seq_id:-1})}catch{}}}function Gn(){let e=te;if(te=null,e)try{e.kill(!0)}catch{}}function Ao({title:e="9Remote",message:t}){let r=process.platform;if(t){if(r==="win32"){let o=c=>String(c).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,"""),n=c=>String(c).replace(/'/g,"''"),i="9Remote",s=`<toast><visual><binding template="ToastText02"><text id="1">${o(e)}</text><text id="2">${o(t)}</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('${n(s)}');`,"$toast = [Windows.UI.Notifications.ToastNotification]::new($xml);",`[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier('${n(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 = '${n(e)}';`,`$n.BalloonTipText = '${n(t)}';`,"$n.Visible = $true;","$n.ShowBalloonTip(5000);","Start-Sleep -Seconds 6;","$n.Dispose();","}"].join(" ");try{(0,Ye.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,'\\"'),n=`display notification "${o(t)}" with title "${o(e)}"`;(0,Ye.spawn)("osascript",["-e",n],{detached:!0,stdio:"ignore"}).unref()}catch{}return}try{(0,Ye.spawn)("notify-send",[e,t],{detached:!0,stdio:"ignore"}).unref()}catch{}}}function Vn(e){let t=process.platform;if(t==="win32"){try{(0,Ye.spawn)("rundll32.exe",["url.dll,FileProtocolHandler",e],{detached:!0,stdio:"ignore",windowsHide:!0}).unref();return}catch{}try{(0,Ye.spawn)("cmd.exe",["/d","/s","/c","start","",e],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()}catch{}return}if(t==="darwin"){try{(0,Ye.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,n]of r)try{(0,Ye.spawn)(o,n,{detached:!0,stdio:"ignore",env:{...process.env}}).unref();return}catch{}}var Ye,Cs,rn,Ce,Ms,$s,Ns,te,on,kr,Ls,Ds,Pl,sn=Xa(()=>{Ye=require("child_process"),Cs=R(require("readline"),1),rn=R(require("fs"),1),Ce=R(require("path"),1),Ms=R(require("os"),1),$s=require("url"),Ns=(0,Ce.join)(Ms.default.homedir(),".9remote","runtime","node_modules"),te=null,on={port:0,tunnelUrl:"",running:!1},kr=Ce.default.dirname((0,$s.fileURLToPath)(__importMetaUrl)),Ls="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",Ds=[Ce.default.join(kr,"assets","trayIcon.ico"),Ce.default.join(kr,"..","assets","trayIcon.ico")],Pl=[Ce.default.join(kr,"assets","tray.ps1"),Ce.default.join(kr,"..","assets","tray.ps1")]});var Lo=ue((kp,oa)=>{oa.exports={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8}});var aa=ue((Ip,sa)=>{var Wl=Lo();function ia(e){this.mode=Wl.MODE_8BIT_BYTE,this.data=e}ia.prototype={getLength:function(){return this.data.length},write:function(e){for(var t=0;t<this.data.length;t++)e.put(this.data.charCodeAt(t),8)}};sa.exports=ia});var _o=ue((Op,ca)=>{var Ae={glog:function(e){if(e<1)throw new Error("glog("+e+")");return Ae.LOG_TABLE[e]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return Ae.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(j=0;j<8;j++)Ae.EXP_TABLE[j]=1<<j;var j;for(j=8;j<256;j++)Ae.EXP_TABLE[j]=Ae.EXP_TABLE[j-4]^Ae.EXP_TABLE[j-5]^Ae.EXP_TABLE[j-6]^Ae.EXP_TABLE[j-8];var j;for(j=0;j<255;j++)Ae.LOG_TABLE[Ae.EXP_TABLE[j]]=j;var j;ca.exports=Ae});var Co=ue((Lp,la)=>{var It=_o();function Mr(e,t){if(e.length===void 0)throw new Error(e.length+"/"+t);for(var r=0;r<e.length&&e[r]===0;)r++;this.num=new Array(e.length-r+t);for(var o=0;o<e.length-r;o++)this.num[o]=e[o+r]}Mr.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=new Array(this.getLength()+e.getLength()-1),r=0;r<this.getLength();r++)for(var o=0;o<e.getLength();o++)t[r+o]^=It.gexp(It.glog(this.get(r))+It.glog(e.get(o)));return new Mr(t,0)},mod:function(e){if(this.getLength()-e.getLength()<0)return this;for(var t=It.glog(this.get(0))-It.glog(e.get(0)),r=new Array(this.getLength()),o=0;o<this.getLength();o++)r[o]=this.get(o);for(var n=0;n<e.getLength();n++)r[n]^=It.gexp(It.glog(e.get(n))+t);return new Mr(r,0).mod(e)}};la.exports=Mr});var fa=ue((_p,ua)=>{ua.exports={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7}});var ma=ue((Cp,da)=>{var he=Lo(),pa=Co(),jl=_o(),pt=fa(),J={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 t=e<<10;J.getBCHDigit(t)-J.getBCHDigit(J.G15)>=0;)t^=J.G15<<J.getBCHDigit(t)-J.getBCHDigit(J.G15);return(e<<10|t)^J.G15_MASK},getBCHTypeNumber:function(e){for(var t=e<<12;J.getBCHDigit(t)-J.getBCHDigit(J.G18)>=0;)t^=J.G18<<J.getBCHDigit(t)-J.getBCHDigit(J.G18);return e<<12|t},getBCHDigit:function(e){for(var t=0;e!==0;)t++,e>>>=1;return t},getPatternPosition:function(e){return J.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,r){switch(e){case pt.PATTERN000:return(t+r)%2===0;case pt.PATTERN001:return t%2===0;case pt.PATTERN010:return r%3===0;case pt.PATTERN011:return(t+r)%3===0;case pt.PATTERN100:return(Math.floor(t/2)+Math.floor(r/3))%2===0;case pt.PATTERN101:return t*r%2+t*r%3===0;case pt.PATTERN110:return(t*r%2+t*r%3)%2===0;case pt.PATTERN111:return(t*r%3+(t+r)%2)%2===0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new pa([1],0),r=0;r<e;r++)t=t.multiply(new pa([1,jl.gexp(r)],0));return t},getLengthInBits:function(e,t){if(1<=t&&t<10)switch(e){case he.MODE_NUMBER:return 10;case he.MODE_ALPHA_NUM:return 9;case he.MODE_8BIT_BYTE:return 8;case he.MODE_KANJI:return 8;default:throw new Error("mode:"+e)}else if(t<27)switch(e){case he.MODE_NUMBER:return 12;case he.MODE_ALPHA_NUM:return 11;case he.MODE_8BIT_BYTE:return 16;case he.MODE_KANJI:return 10;default:throw new Error("mode:"+e)}else if(t<41)switch(e){case he.MODE_NUMBER:return 14;case he.MODE_ALPHA_NUM:return 13;case he.MODE_8BIT_BYTE:return 16;case he.MODE_KANJI:return 12;default:throw new Error("mode:"+e)}else throw new Error("type:"+t)},getLostPoint:function(e){var t=e.getModuleCount(),r=0,o=0,n=0;for(o=0;o<t;o++)for(n=0;n<t;n++){for(var i=0,s=e.isDark(o,n),a=-1;a<=1;a++)if(!(o+a<0||t<=o+a))for(var c=-1;c<=1;c++)n+c<0||t<=n+c||a===0&&c===0||s===e.isDark(o+a,n+c)&&i++;i>5&&(r+=3+i-5)}for(o=0;o<t-1;o++)for(n=0;n<t-1;n++){var l=0;e.isDark(o,n)&&l++,e.isDark(o+1,n)&&l++,e.isDark(o,n+1)&&l++,e.isDark(o+1,n+1)&&l++,(l===0||l===4)&&(r+=3)}for(o=0;o<t;o++)for(n=0;n<t-6;n++)e.isDark(o,n)&&!e.isDark(o,n+1)&&e.isDark(o,n+2)&&e.isDark(o,n+3)&&e.isDark(o,n+4)&&!e.isDark(o,n+5)&&e.isDark(o,n+6)&&(r+=40);for(n=0;n<t;n++)for(o=0;o<t-6;o++)e.isDark(o,n)&&!e.isDark(o+1,n)&&e.isDark(o+2,n)&&e.isDark(o+3,n)&&e.isDark(o+4,n)&&!e.isDark(o+5,n)&&e.isDark(o+6,n)&&(r+=40);var u=0;for(n=0;n<t;n++)for(o=0;o<t;o++)e.isDark(o,n)&&u++;var f=Math.abs(100*u/t/t-50)/5;return r+=f*10,r}};da.exports=J});var Mo=ue((Mp,ha)=>{ha.exports={L:1,M:0,Q:3,H:2}});var ya=ue(($p,ga)=>{var $r=Mo();function Me(e,t){this.totalCount=e,this.dataCount=t}Me.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]];Me.getRSBlocks=function(e,t){var r=Me.getRsBlockTable(e,t);if(r===void 0)throw new Error("bad rs block @ typeNumber:"+e+"/errorCorrectLevel:"+t);for(var o=r.length/3,n=[],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++)n.push(new Me(a,c));return n};Me.getRsBlockTable=function(e,t){switch(t){case $r.L:return Me.RS_BLOCK_TABLE[(e-1)*4+0];case $r.M:return Me.RS_BLOCK_TABLE[(e-1)*4+1];case $r.Q:return Me.RS_BLOCK_TABLE[(e-1)*4+2];case $r.H:return Me.RS_BLOCK_TABLE[(e-1)*4+3];default:return}};ga.exports=Me});var Ea=ue((Np,va)=>{function wa(){this.buffer=[],this.length=0}wa.prototype={get:function(e){var t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(var r=0;r<t;r++)this.putBit((e>>>t-r-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};va.exports=wa});var ba=ue((Dp,Aa)=>{var Gl=aa(),dt=ma(),Vl=Co(),Sa=ya(),Ta=Ea();function $e(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}$e.prototype={addData:function(e){var t=new Gl(e);this.dataList.push(t),this.dataCache=null},isDark:function(e,t){if(e<0||this.moduleCount<=e||t<0||this.moduleCount<=t)throw new Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){if(this.typeNumber<1){var e=1;for(e=1;e<40;e++){for(var t=Sa.getRSBlocks(e,this.errorCorrectLevel),r=new Ta,o=0,n=0;n<t.length;n++)o+=t[n].dataCount;for(var i=0;i<this.dataList.length;i++){var s=this.dataList[i];r.put(s.mode,4),r.put(s.getLength(),dt.getLengthInBits(s.mode,e)),s.write(r)}if(r.getLengthInBits()<=o*8)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(e,t){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,t),this.typeNumber>=7&&this.setupTypeNumber(e),this.dataCache===null&&(this.dataCache=$e.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},setupPositionProbePattern:function(e,t){for(var r=-1;r<=7;r++)if(!(e+r<=-1||this.moduleCount<=e+r))for(var o=-1;o<=7;o++)t+o<=-1||this.moduleCount<=t+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][t+o]=!0:this.modules[e+r][t+o]=!1)},getBestMaskPattern:function(){for(var e=0,t=0,r=0;r<8;r++){this.makeImpl(!0,r);var o=dt.getLostPoint(this);(r===0||e>o)&&(e=o,t=r)}return t},createMovieClip:function(e,t,r){var o=e.createEmptyMovieClip(t,r),n=1;this.make();for(var i=0;i<this.modules.length;i++)for(var s=i*n,a=0;a<this.modules[i].length;a++){var c=a*n,l=this.modules[i][a];l&&(o.beginFill(0,100),o.moveTo(c,s),o.lineTo(c+n,s),o.lineTo(c+n,s+n),o.lineTo(c,s+n),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 t=8;t<this.moduleCount-8;t++)this.modules[6][t]===null&&(this.modules[6][t]=t%2===0)},setupPositionAdjustPattern:function(){for(var e=dt.getPatternPosition(this.typeNumber),t=0;t<e.length;t++)for(var r=0;r<e.length;r++){var o=e[t],n=e[r];if(this.modules[o][n]===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][n+s]=!0:this.modules[o+i][n+s]=!1}},setupTypeNumber:function(e){for(var t=dt.getBCHTypeNumber(this.typeNumber),r,o=0;o<18;o++)r=!e&&(t>>o&1)===1,this.modules[Math.floor(o/3)][o%3+this.moduleCount-8-3]=r;for(var n=0;n<18;n++)r=!e&&(t>>n&1)===1,this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=r},setupTypeInfo:function(e,t){for(var r=this.errorCorrectLevel<<3|t,o=dt.getBCHTypeInfo(r),n,i=0;i<15;i++)n=!e&&(o>>i&1)===1,i<6?this.modules[i][8]=n:i<8?this.modules[i+1][8]=n:this.modules[this.moduleCount-15+i][8]=n;for(var s=0;s<15;s++)n=!e&&(o>>s&1)===1,s<8?this.modules[8][this.moduleCount-s-1]=n:s<9?this.modules[8][15-s-1+1]=n:this.modules[8][15-s-1]=n;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var r=-1,o=this.moduleCount-1,n=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]>>>n&1)===1);var l=dt.getMask(t,o,s-a);l&&(c=!c),this.modules[o][s-a]=c,n--,n===-1&&(i++,n=7)}if(o+=r,o<0||this.moduleCount<=o){o-=r,r=-r;break}}}};$e.PAD0=236;$e.PAD1=17;$e.createData=function(e,t,r){for(var o=Sa.getRSBlocks(e,t),n=new Ta,i=0;i<r.length;i++){var s=r[i];n.put(s.mode,4),n.put(s.getLength(),dt.getLengthInBits(s.mode,e)),s.write(n)}for(var a=0,c=0;c<o.length;c++)a+=o[c].dataCount;if(n.getLengthInBits()>a*8)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+a*8+")");for(n.getLengthInBits()+4<=a*8&&n.put(0,4);n.getLengthInBits()%8!==0;)n.putBit(!1);for(;!(n.getLengthInBits()>=a*8||(n.put($e.PAD0,8),n.getLengthInBits()>=a*8));)n.put($e.PAD1,8);return $e.createBytes(n,o)};$e.createBytes=function(e,t){for(var r=0,o=0,n=0,i=new Array(t.length),s=new Array(t.length),a=0;a<t.length;a++){var c=t[a].dataCount,l=t[a].totalCount-c;o=Math.max(o,c),n=Math.max(n,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=dt.getErrorCorrectPolynomial(l),p=new Vl(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 w=h+d.getLength()-s[a].length;s[a][h]=w>=0?d.get(w):0}}for(var T=0,I=0;I<t.length;I++)T+=t[I].totalCount;for(var A=new Array(T),P=0,g=0;g<o;g++)for(var b=0;b<t.length;b++)g<i[b].length&&(A[P++]=i[b][g]);for(var S=0;S<n;S++)for(var O=0;O<t.length;O++)S<s[O].length&&(A[P++]=s[O][S]);return A};Aa.exports=$e});var Pa=ue((Bp,Ra)=>{var Yl=ba(),xa=Mo(),Xl="\x1B[40m \x1B[0m",Nr="\x1B[47m \x1B[0m",Ql=function(e){return e?Xl:Nr},$o=function(e){return{times:function(t){return new Array(t).join(e)}}},ql=function(e,t){for(var r=new Array(e),o=0;o<e;o++)r[o]=t;return r};Ra.exports={error:xa.L,generate:function(e,t,r){typeof t=="function"&&(r=t,t={});var o=new Yl(-1,this.error);o.addData(e),o.make();var n="";if(t&&t.small){var i=!0,s=!1,a=o.getModuleCount(),c=o.modules.slice(),l=a%2===1;l&&c.push(ql(a,s));var u={WHITE_ALL:"\u2588",WHITE_BLACK:"\u2580",BLACK_WHITE:"\u2584",BLACK_ALL:" "},f=$o(u.BLACK_WHITE).times(a+3),p=$o(u.WHITE_BLACK).times(a+3);n+=f+`
|
|
6
|
+
Right-click to open / quit`}function Us(){let{port:e,tunnelUrl:t}=on,r=process.platform==="win32",o=t?`9Remote (Port ${e}) \u2022 Tunnel ON`:`9Remote (Port ${e}) \u2022 Local only`;return{icon:kl(),title:r?`9Remote - Port ${e}`:"",tooltip:Bs(),items:[{title:o,tooltip:t||`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 Il(){try{let e=require(Ce.default.join(Ns,"systray2"));return e.default?.default||e.default||e}catch{return null}}function Ll({port:e,onQuit:t,onOpenUI:r}){let o=_s(Ds),n=_s(Pl);if(!o||!n)return null;let i;try{i=(0,Ye.spawn)("powershell.exe",["-NoProfile","-ExecutionPolicy","Bypass","-WindowStyle","Hidden","-InputFormat","Text","-OutputFormat","Text","-File",n,"-IconPath",o,"-Tooltip",`9Remote - Port ${e}`],{windowsHide:!0,stdio:["pipe","pipe","pipe"]})}catch{return null}let s=c=>{try{i.stdin.writable&&i.stdin.write(`${JSON.stringify(c)}
|
|
7
|
+
`,"utf8")}catch{}};return Cs.default.createInterface({input:i.stdout}).on("line",c=>{try{let l=JSON.parse(c);if(l.type!=="click")return;l.index===0?r?.():l.index===1&&(t?.(),Vn(),setTimeout(()=>process.exit(0),500))}catch{}}),i.on("error",()=>{}),i.stderr.on("data",()=>{}),["Open Web UI","Shutdown"].forEach((c,l)=>s({action:"add-item",index:l,title:c,enabled:!0})),{_isWin:!0,_setTooltip(c){s({action:"set-tooltip",text:c})},sendAction(){},kill(){try{s({action:"kill"})}catch{}setTimeout(()=>{try{i&&!i.killed&&i.kill()}catch{}},300)}}}async function bo({port:e,onQuit:t,onOpenUI:r}){if(!Ol())return null;if(process.platform==="win32")return on={port:e,tunnelUrl:"",running:!0},te=Ll({port:e,onQuit:t,onOpenUI:r}),te;try{let o=Il();if(!o)return null;let i={darwin:"tray_darwin_release",win32:"tray_windows_release.exe",linux:"tray_linux_release"}[process.platform];if(!i)return null;let s=Ce.default.join(Ns,"systray2","traybin",i);if(!rn.default.existsSync(s))return null;if(process.platform!=="win32")try{rn.default.chmodSync(s,493)}catch{}return on={port:e,tunnelUrl:"",running:!0},te=new o({menu:Us(),debug:!1,copyDir:!0}),te.onClick(a=>{let c=a.item?.title||a.item;c==="Open Web UI"?r?.():c==="Shutdown"&&(t?.(),Vn(),setTimeout(()=>process.exit(0),500))}),typeof te.ready=="function"?te.ready().catch(()=>{}):(te.onReady(()=>{}),te.onError(()=>{})),te}catch{return null}}function Ir({tunnelUrl:e,running:t}={}){if(e!==void 0&&(on.tunnelUrl=e),t!==void 0&&(on.running=t),!!te){if(te._isWin){te._setTooltip?.(Bs());return}try{te.sendAction({type:"update-menu",menu:Us(),seq_id:-1})}catch{}}}function Vn(){let e=te;if(te=null,e)try{e.kill(!0)}catch{}}function xo({title:e="9Remote",message:t}){let r=process.platform;if(t){if(r==="win32"){let o=c=>String(c).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,"""),n=c=>String(c).replace(/'/g,"''"),i="9Remote",s=`<toast><visual><binding template="ToastText02"><text id="1">${o(e)}</text><text id="2">${o(t)}</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('${n(s)}');`,"$toast = [Windows.UI.Notifications.ToastNotification]::new($xml);",`[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier('${n(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 = '${n(e)}';`,`$n.BalloonTipText = '${n(t)}';`,"$n.Visible = $true;","$n.ShowBalloonTip(5000);","Start-Sleep -Seconds 6;","$n.Dispose();","}"].join(" ");try{(0,Ye.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,'\\"'),n=`display notification "${o(t)}" with title "${o(e)}"`;(0,Ye.spawn)("osascript",["-e",n],{detached:!0,stdio:"ignore"}).unref()}catch{}return}try{(0,Ye.spawn)("notify-send",[e,t],{detached:!0,stdio:"ignore"}).unref()}catch{}}}function Yn(e){let t=process.platform;if(t==="win32"){try{(0,Ye.spawn)("rundll32.exe",["url.dll,FileProtocolHandler",e],{detached:!0,stdio:"ignore",windowsHide:!0}).unref();return}catch{}try{(0,Ye.spawn)("cmd.exe",["/d","/s","/c","start","",e],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()}catch{}return}if(t==="darwin"){try{(0,Ye.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,n]of r)try{(0,Ye.spawn)(o,n,{detached:!0,stdio:"ignore",env:{...process.env}}).unref();return}catch{}}var Ye,Cs,rn,Ce,Ms,$s,Ns,te,on,Or,Ls,Ds,Pl,sn=Xa(()=>{Ye=require("child_process"),Cs=R(require("readline"),1),rn=R(require("fs"),1),Ce=R(require("path"),1),Ms=R(require("os"),1),$s=require("url"),Ns=(0,Ce.join)(Ms.default.homedir(),".9remote","runtime","node_modules"),te=null,on={port:0,tunnelUrl:"",running:!1},Or=Ce.default.dirname((0,$s.fileURLToPath)(__importMetaUrl)),Ls="iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAHhlWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAAEsAAAAAQAAASwAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAECgAwAEAAAAAQAAAEAAAAAAEz0GrAAAAAlwSFlzAAAuIwAALiMBeKU/dgAAGNhJREFUeAHVm1lsncd1x8/dF5IiJZmSbMlUJFuWE8l2FMdNlDSrYANugSLphqZ9KZo8JECbti/tQ1HA701fkj4VyWMTBAhaBEGBJM2CpLHj2nVtI5LtWLaszRIlUiTF5e5L/78z39z7kbxXko2+dMi5s505c/5nzpxZLpmx24dpkTyieDKbzX5B6f1ju2TMMv2M9fWjrPUzmZCqzG9SGHSnNdCSqlmd+n31pTNtyicF76qKwMP7iYSyt5AOcm/0er2vq/is4kuKNxXfVTisXl9RPKfICIMoAQf5dH0i1+i2VP9NfWL9OJ6xPZWOHT9Fk4zxllIw3Kd4xwH9f1lxQfHdgfk/6vcOgN5OTrD8paLbltKxoaSWbyjejuH/13awgXFkyKp2AH6r9jOZzHbQI8x2K53WOQ5he9+Ukr0P/CMdacyn6CTfoB75to4lf3HLcbx/wAhWD2mT+AvVfDWpH3iUWNaAwedQoXxwb7E1ppIvckzSWEy60dW1MaxXziuRfdiWRhIb3Od5gY8hh0GVMu44aU0E2VpmBPFhiX+NfpHLIeVfUNyZSEPbyBD4xm6BxCdLVV7LR5JPsthAUucU3slzfATcXhezPoYKPTX2EpII3lO1BdohPxikwZKPu4wz3/yxpOKjiudzSf3fK/10kr9lEjUbiJIZlxwudJJiXzlJmJUIWTVksoqZbMhDo7LX08aPyjDgh/qcaJV48FrQqqwd1utjW6DgMxC7bDRGbQ0JtuYqqugq/pCeOxRPK96reIsgUcI4ThOWWzI09YokWYCL0EmpS/IOJJCpzVuTzzibpP2gtFzGegLR6fU8BQ86oA4l9CgkoS8TGRYD32gJkWZMelH1D+X18X7FTeAROs0kDRxmA/CMp5gkEl55ZltpeoZRiisioaVH5AEgRyAajDYv8HkxajE/vax1MlICNGrNKoMyWHLUAVzGEjIkVChE+UkJm7EMsM2p6REU8FGI0mFzB1oYMnwOlAFvRcbfBFAEXqdGloCbfiBQ3rvQLXSOiZjHE2FZ6HMi7Pc7WkeilBLcF0hTPfgAHq0JrfuHhKcrRs6m7xrVOImgaSwMt6X8UcmXfaPf6409KQU+UWQJwIChqFlOwLOmxZxBcwBX6j+qBAx09HN6bwk8EjbBpCV8VtM5USi4smutltW7PdOvuZknSuqJrgt4rQPAdMUEtfCBEjxlsCRsARyrPRX4N4Q/K/zocnsIQAMztwFlQ10y8+oCaAADLseckxdwB0udYl4VUUFhaaAPfkJwufVRzGVtR6lgjU7X1lptq3U68gOigYBEvLvSSFsaARiA8QssB0egMnVERvAQCpFFqEs+hd1YAiNDNKHQKI7ip/FDqsStWigdvMqAz3o50DHzRaEPFhDohnkUKAW4jC6tW8FkMW/T5bwt1XvyBVkrCFkCwxXaFWlPdTlfDgF8RuWsQPqqgDiIqgS+qtAg461A/iaOAOBI6PnQXZ/pjLMUWKUJWBSAQFlVMuvMOLGgAjMPaGLey4nC1B6sRhlft/DN2Gy1aOVCzjbaXSsodsQ0x9KAsfBgGViXq4+ZVRuR2c+KAL+poQJ0Nen3tkEWEMgieHoM8mJGIEmyYUwVQl0CXgICGlAFCVgAuGJRMe/gwzLAw3sbdPBA2iTQf7Za8rGrmv0N8ewrBRF8WzL9TEYKoAtKADW2rzzy+g4hLFR5cFi3V0HebWeErqJskR9MqcN0EQLhcXieSghmGfDMeiGXs5KISgKAKTP75AFWUSyqf5E+GheFFOX51zt92zdRspVG22krhbz49KVIrXs5vFa368pk28MvdJQS+jhDycFOkZUl9t0qVI/gt8c/3gc4dz4Am6SMSR7QBT+thXWM+QqXgwE8W1lZFeV83v0AoKdVt7dgdqCatd3Tkza9c8aqVR3INHsba2tW39gQbc5O3+jaTS2DrhwzTg+FLtZaruCi+FEPXPw2OwLWgSNU4oYBZpYCgqKL2+lgrBMMUJPuMPcBAuDgYDTbsltMV3rX7DDbOasIaCWPEnI2WczZtMDsyWfsfTuLduzRE3bvxx63yaMnrLBrn2WKZUmora62Zu3rl6x2+pc287P/sOor5+ytjaL7gNVWx1ak3Ir4dOQFG8IGYKxHic+0z7xosAZAEyTWHViB6OVgtA1u1lNYm6FOE+Dc8ipSj0Nyx6YhckJfFWC2L0JBTmtSgk7Im5POVgr23smcPXz4bjv0e39mez7xGStO6b7FNuZbbxxX/TUQdRuXX7dL//rPdvk/f2y/Xm7Z6aWa3Wh2rAb4dkcOsmfNXtdacohN1XWkhS6pFNJ1vloeKEfyqKgPFBZkR8aBf1M+6042k30qXQkRiDEpj5INbfp6V56ZZt2ytr1dbZjuRLGgZRFMdocUsFv7+fHpgr3/6EHb//m/s3s/9VnLc8jp6oTn4BP+DKdyX6CQuDyzx6oPfURjtqxy+VVbXG/rsBPubMLuAADkAPUZ5i7sYMDGKgikyO1BmVgfq0g5pQpX5qmtrQALBEFI5pe1hkNCAcw86xpTx9vDnPL+ybJbQ1ntRyaL9uGj+23mj/7Kjnz8Sct028KHycl/FEvu1ev1prXl0Yrlki8fDmQoolwqW+nww7a2NG+zi+flIE0WoAMQ614gcYqadAdPmfE9BrFVCBl3hLFuRIoCtDoH9CNIQhU0HqUElgF5lkJRCgA4ykGCm1qv+7SXH1B8eFfJZh7/Azvyid+yfqfpAuZEiwd/+t+/a0svP2OV5rrMuGvtnfvswU//jh0/ccLazYZ1Om2bmpq0ud/9kk0svW3Xnnnello50fbUP2etXM9a4pMlJrIhT74v/uyPCCgtBOsgPz4MzgGbSeCg2dJnjGFbkWpVobG8Ha2z/mfKMn9V+lLSqPfo1e3oB0/Y7k9+RiaGxw6HGcB//xv/ZMs/+pZdunLdFjaablUHdlRs9cWf2+qf/o19+NTj1tE9gLh7335rfPL37dDrr9il+rqt6orIlooPQgQUX9Q6zurG2JYscguyIFmkyq5xxEwCc4TwW5e7FEBLYjOQBEqo3YsmWFVPjX8k1IEZd/aOAO7SEXZ3uWi7tPbnqj2bOfmETczMWqfdxtNq/ZfsmR993659/1/suV9ftDPLTWtoWEBMX6vZSW113W9+zeYePGb79u6xNr6i3bKZh05a79hDNnv1GVuQY11ptn1rrCqP72lp/CbIZUlsf+4H/BN5N4et4KHGgjaFQDRUCI1eQljlhUVqCIogxQrYlljLtO+t5u2RI3dbce5B68qUuxKsp3XdaLbsxotP2+sXrtpLNxq2qklaV581xQUdgn7x9qrVLp2zCy89pwFkNyhW/XPlCZs69iGb0jYE/+mSFF0p2s5KSY43545X1b608A0DkAgdIwQjg5bNyPpYKQbOA7yKHDMll46owRYKcnac4jjuQsdxtaFbnFUmrT+x07o++6JVe6NZs8zKdbu4UvO9vK5ZYwsjdLV2OVidv75ij1y7JGV2XHEoD8eZP3DEDuyetBuZts3XOrZQk/XowtSS8uDDHQFLTAefIv9QLTjCUGkSz/sTw7badAUdEwZ+9ZRA3MfbGpDjKeaPT0AZHIwmdB7Ge7SlDGa+K1PuiC4vh1nQSW5VCkIYzJWHja5H9nOzVZn3Tp0SOe0BnogvMC2luf17bEa867okrehcsCbaGhemBLhbZrROgEvpaSWoODIEfzayKalURxxgogel8q5SNlsSXhmB1uT9ucG1tTe5prstq62u+NLoMjuaUdbOXXOHrKwRsQisRmcwrWeiLyabmajY7nsPud9AcV0sgWWUL+tUWLYb6w1blwKZCHyHO0TxZXve/iP5JfcY3APEHPC2BUCgMU/V6uD9YK1zt1Lu35p4n+WGbmjspRyUCta0K7rmLc4vWv7yOZvaf0gA5ANEn9EpbvLw++y+2Z329uUVv+mhBMYpyvx3Zzv2wKGDltl1j3XZBUTv/oOtT4otloo2zdFaTrapwTkFtt0C9WQm/n42kKTMqB+HSVmu29BtrpDyMk8NHEeqDcH06wKSwQFRpsIfM1SChgFDK7PPza1nO3ry1Dt32q5jj2n2tY51woMsMzljpfqKLZ89Yxs6BLF1VtSwU7v3x+7fZx/83BfsrgdPWC9ZNlEJnA0qZ5+1pesLtigXUxPPhhTTliI64i1XEJaNxlC1H5aYPJ841Xl+hCb8IKT2sYE+jk8ZHGBGnGDWlYrRMuuXbUiwXRFZOalruq28tty33a++YFffOmt75w77EmCWiuWKHf/cl2zf/Q/YuWd/bpcvXLKijtAPHD9u95w8ZdMP6rsK+Y1WsntgPe4LWk3LK892t6713/DlBnAi1iifkcgGmMGEIjwgFJgsZN8ahrvAJuJhgT7eOWEAE7k3/WSlbVYe8y8FyKvhiPLyB29umL3n3FtW+9F3bPqPv6z+opLwbGv5SsUO6F5w+NRntG3UJV/GOoWytfyc27Vr1+YdwOTklLW1iwCm2ahZvt6Q05USZTX4JEcmWZAnAvZ6b9OHGjwL6digW6WEeyoySNMhM4HEsxqIOi8rQ55rKBk1KYTzOWuxqZlZqnfsQH3BajqpzcwdcSFxhsxqWzPakBevS2l1AW8IXL+n3aJZt//5wb/Zjtl7LK/7Agro9btWv7lspTNP28WFmzbfkBWIT/ABYRm0BTa8FGOVsghJIzFcLleQy7f9g4kZqwDIAZlOQe9OJlFLaA7KgNbLKESDN6WcpZsbVpk/a7XaulX3zVlelxzf2lCElISX5wpM343lG3bxB9+2PatvW+m9HwqWoXa20uaNa5Y984y9ubhqV6TYNR2JUQD3CKyC8wRLIa5/VbnCUUSYHMoBS/rTd6MR9WmaYT6gdUbRBHuSnF2fReDbo7JtCZzRSUlvOnZeB5zVs9ftA2vfsd7bb9rMwyetevCIlaZ36XjMNUSefGPN1i6+rlPiL+zqfz9rx5/4bf9uoCnHxxM4t8fW0nXr1HWAEiK2P1ZLABxnPsw6kgQ8SBPzQwijciNvg2gmLAtQB2YJ/iEPKhR9IH1ARZ7rcokDiRTRF4B1aev5Kzft3MLP7J7nXrC7daCpzuy2bKniPmFjZdmuXrlqFxfXbF8lbx9/4Jg/drR0dMZaStr2OEEurG7YosyfMwejcQ3mKh480hCwzzSCxJDOx7pBylF4CzLAD8Pm3umSU2k03GBGhxlS9vWi4kG9BXzwvv3+MsSZgcDn4s1V+8FL57SFveF1rN025iQ/UVLygcN7bGLuAbuyUfPlofWhGdd3BEuX7Vq9bYuKa9oB2ALxNZg/uwu8h6MkZQQMlT7W6A8dwrYSpR0isqMPT+EAU0WSdAEa6rimTshkT+6ftic+/0Ur+YVIM6bGbC5v9Rd/auf/8av2ei1jddasGHOmKMqk95e69hsf/01bzlbkFFddeI7PGwvzNjV/3q7L/hvyF5wBOAIDviUeDh4liAfXbiUhqAG5aR8fNGm3JtjcFZDxlAVnPxyBXgHwVT1lH5yp2myhb2+efllOb5/27o6v25zuAQfvO2FPPPqgLT592hblHzhB8Li5Sy8bp44ftqlHT9mllXWdBPH+Pd0dKpadf9PaK0t2RQoAMI7OZ1957iLcSTiPoAqwABrYwzzlccGf3Udvg+ku7vmFE6wRtJa6A+MlpqRL0LTeAWf1rs/7f07b1716DG0fOOogeRPoSRH1XMnump2193SXrdKu27Redo7fNWFPfvhhO3Dqs3atMmvtBi9CHalGwulEef/1F21l/pq9fKNpy/J+KAEnyAMIFsQS8odRFANw1QPfLcGVEZWSRhTyvgtsrwZodIIBtNOEiU56KhENP3z/N6GZ53nMb2eaoh2ZgmUXr1r73MuWPfKYrrdtKStra/IBtZk5O/gnf22Pddesox2gr/v+SuUuu1Jra0fYEABJLTMrl6o2feMN6557za639eo0WbX5Vk2mzuUn7ydDbpk5nYO7WhLaCKUBhJR7jMApJvkg+NZPLFAHoUGPre0qM+vw8aiPaAHxdbik9wC8MUdizJMnsrIUkpdwh7Nrtlje7dteSxccPwPokrPS1InPKnajMGNXOjm7sVrTtbfp7dwbyno9zq/oQfSVn9gvX5+3Cy15inzBunKWdRaN8hnRWLZgfY3NbKM4f0SRHDISB+7WgD4RfkRgorlJPhU1NoJmqAAxgRHLga+VecDgOkrgTE4ORUgfTtfRGj9azdiB3LpdaBetuGPGPTaXIw5A7WZTR1yZO8uDLVM8CrIieDbOn7E9p39sL7163t5o5uxmL289fYkyoeNxoVI1052iWK7qhliRYtSmaY4HLJaDW5GAuyJcwtEfyRJA9PF2Elscqj6C4WNofrx3UIBGBazJhrwzX140dM17bb1vD5y/aO9bW7W31t5rnb1HLFedFBPsKATpTArTDEsJneV5y196xWYv/MpevLpsr9U147pu7zm4z/7wi39u0zNSosbhRZjTHjKwvL79rW/a9777XbEVH8mIzFHuZJixychdwH0ALCIn0Dv4wMf3Xr9sSx14c9G5QxIITmoIhxs7s7RhF1azdmy1ZYdX162vNb02c7dtTM5at1C1rGYvoztAvqEj8+o1y119yxavXrefLNZsXt9+NqSclvjtldIe+9TjVp2Q8kaE55/7LylDM4+cCJoEV4ZXAmRUkPzSmpYduhwdUAaa8JlSjpL8nh9R+XM2TlJ8UUId5lvRS+3sRFlboqTXuFN6vZ3RDrFTXwffO5G3I7sqeiGW2UowFIn5r+mlZ2GjYRfX2nZJp72bWJBE6uvswHqf2nWXHT123KpTO3SeYM3r/om18VVZrWavvnrG3jyn22e9rlulXpDkGJkUhz0Ou3Dw1ZjwD/9EJmhMLVsC9QD3VBkMmJn2LyNQgLSDgjgJ8oXolI6vPGayJfLtUfjCVH//o/xefWmC965LeN4XeAusCTAvxBx06kp5amOr62HS7vCk5pwcY6GoFIuTlcnMmjL/DfmRpvxJQ060qWf0tnaE8PdDUkAKvFt1ugIMUsDwPUBA0qfAtA7oB3gCPLEXfxxRpsvXdlgQX0iIG4cUHjf5kxmqmamWvs0BWJ1vdFTmQYMyFxGet3jZ4XbIBYfHVN4WOSb3WGYq93hpzvH9QpORgwzQ6qrcliKZdXxBTzyRNUy90lQYjY2j8CCk1DWoG2ZiKydBlpVEU1CBDCahPO+C/GUXjyNF/XEDPxxUANiUBlvyloLis88Jju7q4sABj5C8//nBBgWouceuIaKeXpsYiCMvL1I8ybCEMHdXnpQhFuLJqOnAzG2uSbemFDCsZrbFZxCiH6DOLUGpfJ8LiEL863UBBlRHr0SyUg3JEVUaVhlwHJUBhjJ4SXb+jKNR6O9fbatAH9pI/c2AdhSAvlTH0xxt7oihUeQngIcmio2Dg9egwmVPFZ12pAIii5gyAHokMBDbPzNBJd5XK1VPeQKnATGGvrTDQJocOUaOtOHpm/OaX2LkA6JYCEg+AAr86Ct2Phbj4U9QEL2g9T7eHhQSQSET7YRYF0rhc2sdk6ldIKM/lOzflyYcl/fZVyPKGOSFGNDhGxZpnbIaUYpHytIYFsArMMpj1ggDgQBD2evCbMa8VpTD9m0OOjopQo81OA8nDjxUPeRL4RZB4M9yGZsQzalb0HlTOBsE8JHWlYA8qiASpAIvxH2ZGaSR2aEOJ4llAMxnWfRu7qKhDlOHxmnVlTRah7NKwIc8I4o3/EP2jsEH8v5XWAJPJ30Hyagtg0bAYX4A9wH1MVCC6sKMhGWgos8SFxu2Layhr8uK8DkPFZ2f/9F0Ir0DhTfRUUWTFy+VIYsxIk6Dh2OgUDImbMH2ND34c/lfKc7FPluIAuBESGgcdEIMg3Q5AAt1OEjaWRLYflCWKkHoHWGieucdAFITwAfQlF2xXk8pBICjBO+arkvyIWGQIcUWXBfV+BC7OJvrAcWPKIZAvzsIm4CLPt1tOGwUIUiLQ3MnJvoAAuABPGWWgC8f8tAkMeKgTN5T8grOJ2TfyefXRfy9KPMhFZJ/mXknPAQ6clC3QVaZmKcdYUmpQ1hv84J/hMYE0jZgsUJpKvtuQUdw2/5lZkUtNcUnI8WdpA4uSkUHRxZ6xmpPk0KcKVZA8AUBVKR1h5kMHGlBTXuk8TQWEtp3kfyt+vxwaz92s28o4uVu/y9p4V8+omyBPpxSB3Vb+WgNOt3WFDopT/1ol4dI8/a22B50Efu7rFE/6T6xbnQKRrCODPxT4dddmATMJmFGM9ws8Bga8Q2KuYWgiTscKjD2uU16JzIm47Pux/7jpNo8YMhfVlwYqekRwrwDAd4xOMnxjvsIwNY+/OssmFKLVKXbhMNq/wfFc4pjZ/mOwLsZbxPKhcTk4e/LYLvgm4EkyyTQI9MYnkM+yH7Lf56+E42k/n0+83kdH4+Ew1AYnU/37Js4qTZ6Ma/nCEUItORwoC6+Z6jx1qRu+1Slx0jnQ8/QLTDpn9XlinV+R/8+/7/EshPRLVmq9wAAAABJRU5ErkJggg==",Ds=[Ce.default.join(Or,"assets","trayIcon.ico"),Ce.default.join(Or,"..","assets","trayIcon.ico")],Pl=[Ce.default.join(Or,"assets","tray.ps1"),Ce.default.join(Or,"..","assets","tray.ps1")]});var Co=ue((kp,oa)=>{oa.exports={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8}});var aa=ue((Op,sa)=>{var Wl=Co();function ia(e){this.mode=Wl.MODE_8BIT_BYTE,this.data=e}ia.prototype={getLength:function(){return this.data.length},write:function(e){for(var t=0;t<this.data.length;t++)e.put(this.data.charCodeAt(t),8)}};sa.exports=ia});var Mo=ue((Ip,ca)=>{var Ae={glog:function(e){if(e<1)throw new Error("glog("+e+")");return Ae.LOG_TABLE[e]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return Ae.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(j=0;j<8;j++)Ae.EXP_TABLE[j]=1<<j;var j;for(j=8;j<256;j++)Ae.EXP_TABLE[j]=Ae.EXP_TABLE[j-4]^Ae.EXP_TABLE[j-5]^Ae.EXP_TABLE[j-6]^Ae.EXP_TABLE[j-8];var j;for(j=0;j<255;j++)Ae.LOG_TABLE[Ae.EXP_TABLE[j]]=j;var j;ca.exports=Ae});var $o=ue((Lp,la)=>{var Ot=Mo();function $r(e,t){if(e.length===void 0)throw new Error(e.length+"/"+t);for(var r=0;r<e.length&&e[r]===0;)r++;this.num=new Array(e.length-r+t);for(var o=0;o<e.length-r;o++)this.num[o]=e[o+r]}$r.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=new Array(this.getLength()+e.getLength()-1),r=0;r<this.getLength();r++)for(var o=0;o<e.getLength();o++)t[r+o]^=Ot.gexp(Ot.glog(this.get(r))+Ot.glog(e.get(o)));return new $r(t,0)},mod:function(e){if(this.getLength()-e.getLength()<0)return this;for(var t=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 n=0;n<e.getLength();n++)r[n]^=Ot.gexp(Ot.glog(e.get(n))+t);return new $r(r,0).mod(e)}};la.exports=$r});var fa=ue((_p,ua)=>{ua.exports={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7}});var ma=ue((Cp,da)=>{var he=Co(),pa=$o(),jl=Mo(),pt=fa(),J={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 t=e<<10;J.getBCHDigit(t)-J.getBCHDigit(J.G15)>=0;)t^=J.G15<<J.getBCHDigit(t)-J.getBCHDigit(J.G15);return(e<<10|t)^J.G15_MASK},getBCHTypeNumber:function(e){for(var t=e<<12;J.getBCHDigit(t)-J.getBCHDigit(J.G18)>=0;)t^=J.G18<<J.getBCHDigit(t)-J.getBCHDigit(J.G18);return e<<12|t},getBCHDigit:function(e){for(var t=0;e!==0;)t++,e>>>=1;return t},getPatternPosition:function(e){return J.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,r){switch(e){case pt.PATTERN000:return(t+r)%2===0;case pt.PATTERN001:return t%2===0;case pt.PATTERN010:return r%3===0;case pt.PATTERN011:return(t+r)%3===0;case pt.PATTERN100:return(Math.floor(t/2)+Math.floor(r/3))%2===0;case pt.PATTERN101:return t*r%2+t*r%3===0;case pt.PATTERN110:return(t*r%2+t*r%3)%2===0;case pt.PATTERN111:return(t*r%3+(t+r)%2)%2===0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new pa([1],0),r=0;r<e;r++)t=t.multiply(new pa([1,jl.gexp(r)],0));return t},getLengthInBits:function(e,t){if(1<=t&&t<10)switch(e){case he.MODE_NUMBER:return 10;case he.MODE_ALPHA_NUM:return 9;case he.MODE_8BIT_BYTE:return 8;case he.MODE_KANJI:return 8;default:throw new Error("mode:"+e)}else if(t<27)switch(e){case he.MODE_NUMBER:return 12;case he.MODE_ALPHA_NUM:return 11;case he.MODE_8BIT_BYTE:return 16;case he.MODE_KANJI:return 10;default:throw new Error("mode:"+e)}else if(t<41)switch(e){case he.MODE_NUMBER:return 14;case he.MODE_ALPHA_NUM:return 13;case he.MODE_8BIT_BYTE:return 16;case he.MODE_KANJI:return 12;default:throw new Error("mode:"+e)}else throw new Error("type:"+t)},getLostPoint:function(e){var t=e.getModuleCount(),r=0,o=0,n=0;for(o=0;o<t;o++)for(n=0;n<t;n++){for(var i=0,s=e.isDark(o,n),a=-1;a<=1;a++)if(!(o+a<0||t<=o+a))for(var c=-1;c<=1;c++)n+c<0||t<=n+c||a===0&&c===0||s===e.isDark(o+a,n+c)&&i++;i>5&&(r+=3+i-5)}for(o=0;o<t-1;o++)for(n=0;n<t-1;n++){var l=0;e.isDark(o,n)&&l++,e.isDark(o+1,n)&&l++,e.isDark(o,n+1)&&l++,e.isDark(o+1,n+1)&&l++,(l===0||l===4)&&(r+=3)}for(o=0;o<t;o++)for(n=0;n<t-6;n++)e.isDark(o,n)&&!e.isDark(o,n+1)&&e.isDark(o,n+2)&&e.isDark(o,n+3)&&e.isDark(o,n+4)&&!e.isDark(o,n+5)&&e.isDark(o,n+6)&&(r+=40);for(n=0;n<t;n++)for(o=0;o<t-6;o++)e.isDark(o,n)&&!e.isDark(o+1,n)&&e.isDark(o+2,n)&&e.isDark(o+3,n)&&e.isDark(o+4,n)&&!e.isDark(o+5,n)&&e.isDark(o+6,n)&&(r+=40);var u=0;for(n=0;n<t;n++)for(o=0;o<t;o++)e.isDark(o,n)&&u++;var f=Math.abs(100*u/t/t-50)/5;return r+=f*10,r}};da.exports=J});var No=ue((Mp,ha)=>{ha.exports={L:1,M:0,Q:3,H:2}});var ya=ue(($p,ga)=>{var Nr=No();function Me(e,t){this.totalCount=e,this.dataCount=t}Me.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]];Me.getRSBlocks=function(e,t){var r=Me.getRsBlockTable(e,t);if(r===void 0)throw new Error("bad rs block @ typeNumber:"+e+"/errorCorrectLevel:"+t);for(var o=r.length/3,n=[],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++)n.push(new Me(a,c));return n};Me.getRsBlockTable=function(e,t){switch(t){case Nr.L:return Me.RS_BLOCK_TABLE[(e-1)*4+0];case Nr.M:return Me.RS_BLOCK_TABLE[(e-1)*4+1];case Nr.Q:return Me.RS_BLOCK_TABLE[(e-1)*4+2];case Nr.H:return Me.RS_BLOCK_TABLE[(e-1)*4+3];default:return}};ga.exports=Me});var Ea=ue((Np,va)=>{function wa(){this.buffer=[],this.length=0}wa.prototype={get:function(e){var t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(var r=0;r<t;r++)this.putBit((e>>>t-r-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};va.exports=wa});var ba=ue((Dp,Aa)=>{var Gl=aa(),dt=ma(),Vl=$o(),Sa=ya(),Ta=Ea();function $e(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}$e.prototype={addData:function(e){var t=new Gl(e);this.dataList.push(t),this.dataCache=null},isDark:function(e,t){if(e<0||this.moduleCount<=e||t<0||this.moduleCount<=t)throw new Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){if(this.typeNumber<1){var e=1;for(e=1;e<40;e++){for(var t=Sa.getRSBlocks(e,this.errorCorrectLevel),r=new Ta,o=0,n=0;n<t.length;n++)o+=t[n].dataCount;for(var i=0;i<this.dataList.length;i++){var s=this.dataList[i];r.put(s.mode,4),r.put(s.getLength(),dt.getLengthInBits(s.mode,e)),s.write(r)}if(r.getLengthInBits()<=o*8)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(e,t){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,t),this.typeNumber>=7&&this.setupTypeNumber(e),this.dataCache===null&&(this.dataCache=$e.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},setupPositionProbePattern:function(e,t){for(var r=-1;r<=7;r++)if(!(e+r<=-1||this.moduleCount<=e+r))for(var o=-1;o<=7;o++)t+o<=-1||this.moduleCount<=t+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][t+o]=!0:this.modules[e+r][t+o]=!1)},getBestMaskPattern:function(){for(var e=0,t=0,r=0;r<8;r++){this.makeImpl(!0,r);var o=dt.getLostPoint(this);(r===0||e>o)&&(e=o,t=r)}return t},createMovieClip:function(e,t,r){var o=e.createEmptyMovieClip(t,r),n=1;this.make();for(var i=0;i<this.modules.length;i++)for(var s=i*n,a=0;a<this.modules[i].length;a++){var c=a*n,l=this.modules[i][a];l&&(o.beginFill(0,100),o.moveTo(c,s),o.lineTo(c+n,s),o.lineTo(c+n,s+n),o.lineTo(c,s+n),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 t=8;t<this.moduleCount-8;t++)this.modules[6][t]===null&&(this.modules[6][t]=t%2===0)},setupPositionAdjustPattern:function(){for(var e=dt.getPatternPosition(this.typeNumber),t=0;t<e.length;t++)for(var r=0;r<e.length;r++){var o=e[t],n=e[r];if(this.modules[o][n]===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][n+s]=!0:this.modules[o+i][n+s]=!1}},setupTypeNumber:function(e){for(var t=dt.getBCHTypeNumber(this.typeNumber),r,o=0;o<18;o++)r=!e&&(t>>o&1)===1,this.modules[Math.floor(o/3)][o%3+this.moduleCount-8-3]=r;for(var n=0;n<18;n++)r=!e&&(t>>n&1)===1,this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=r},setupTypeInfo:function(e,t){for(var r=this.errorCorrectLevel<<3|t,o=dt.getBCHTypeInfo(r),n,i=0;i<15;i++)n=!e&&(o>>i&1)===1,i<6?this.modules[i][8]=n:i<8?this.modules[i+1][8]=n:this.modules[this.moduleCount-15+i][8]=n;for(var s=0;s<15;s++)n=!e&&(o>>s&1)===1,s<8?this.modules[8][this.moduleCount-s-1]=n:s<9?this.modules[8][15-s-1+1]=n:this.modules[8][15-s-1]=n;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var r=-1,o=this.moduleCount-1,n=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]>>>n&1)===1);var l=dt.getMask(t,o,s-a);l&&(c=!c),this.modules[o][s-a]=c,n--,n===-1&&(i++,n=7)}if(o+=r,o<0||this.moduleCount<=o){o-=r,r=-r;break}}}};$e.PAD0=236;$e.PAD1=17;$e.createData=function(e,t,r){for(var o=Sa.getRSBlocks(e,t),n=new Ta,i=0;i<r.length;i++){var s=r[i];n.put(s.mode,4),n.put(s.getLength(),dt.getLengthInBits(s.mode,e)),s.write(n)}for(var a=0,c=0;c<o.length;c++)a+=o[c].dataCount;if(n.getLengthInBits()>a*8)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+a*8+")");for(n.getLengthInBits()+4<=a*8&&n.put(0,4);n.getLengthInBits()%8!==0;)n.putBit(!1);for(;!(n.getLengthInBits()>=a*8||(n.put($e.PAD0,8),n.getLengthInBits()>=a*8));)n.put($e.PAD1,8);return $e.createBytes(n,o)};$e.createBytes=function(e,t){for(var r=0,o=0,n=0,i=new Array(t.length),s=new Array(t.length),a=0;a<t.length;a++){var c=t[a].dataCount,l=t[a].totalCount-c;o=Math.max(o,c),n=Math.max(n,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=dt.getErrorCorrectPolynomial(l),p=new Vl(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 w=h+d.getLength()-s[a].length;s[a][h]=w>=0?d.get(w):0}}for(var T=0,O=0;O<t.length;O++)T+=t[O].totalCount;for(var A=new Array(T),P=0,g=0;g<o;g++)for(var b=0;b<t.length;b++)g<i[b].length&&(A[P++]=i[b][g]);for(var S=0;S<n;S++)for(var I=0;I<t.length;I++)S<s[I].length&&(A[P++]=s[I][S]);return A};Aa.exports=$e});var Pa=ue((Bp,Ra)=>{var Yl=ba(),xa=No(),Xl="\x1B[40m \x1B[0m",Dr="\x1B[47m \x1B[0m",ql=function(e){return e?Xl:Dr},Do=function(e){return{times:function(t){return new Array(t).join(e)}}},Ql=function(e,t){for(var r=new Array(e),o=0;o<e;o++)r[o]=t;return r};Ra.exports={error:xa.L,generate:function(e,t,r){typeof t=="function"&&(r=t,t={});var o=new Yl(-1,this.error);o.addData(e),o.make();var n="";if(t&&t.small){var i=!0,s=!1,a=o.getModuleCount(),c=o.modules.slice(),l=a%2===1;l&&c.push(Ql(a,s));var u={WHITE_ALL:"\u2588",WHITE_BLACK:"\u2580",BLACK_WHITE:"\u2584",BLACK_ALL:" "},f=Do(u.BLACK_WHITE).times(a+3),p=Do(u.WHITE_BLACK).times(a+3);n+=f+`
|
|
8
8
|
`;for(var d=0;d<a;d+=2){n+=u.WHITE_ALL;for(var h=0;h<a;h++)c[d][h]===s&&c[d+1][h]===s?n+=u.WHITE_ALL:c[d][h]===s&&c[d+1][h]===i?n+=u.WHITE_BLACK:c[d][h]===i&&c[d+1][h]===s?n+=u.BLACK_WHITE:n+=u.BLACK_ALL;n+=u.WHITE_ALL+`
|
|
9
|
-
`}l||(n+=p)}else{var w
|
|
10
|
-
`,o.modules.forEach(function(T){n+=
|
|
11
|
-
`}),n+=w}r?r(n):console.log(n)},setErrorLevel:function(e){this.error=xa[e]||this.error}}});var
|
|
12
|
-
`)){let r=t.trim();if(!r||r.startsWith("#"))continue;let o=r.match(/^([A-Z_][A-Z0-9_]*)\s*=\s*"?(.*?)"?$/);o&&!process.env[o[1]]&&(process.env[o[1]]=o[2])}}for(let e of ec)if((0,
|
|
13
|
-
`)}catch{}}function
|
|
14
|
-
=== SESSION ${new Date().toISOString()} pid=${process.pid} argv=${process.argv.slice(2).join(" ")} ===`),dc())}function
|
|
15
|
-
`).filter(Boolean).slice(-e)}catch{return[]}}var mc=process.env.NODE_ENV==="development"||process.env.AGENT_DEBUG==="1";function H(e){return{debug:(...t)=>{mc&&Nt(e,"debug",
|
|
9
|
+
`}l||(n+=p)}else{var w=Do(Dr).times(o.getModuleCount()+3);n+=w+`
|
|
10
|
+
`,o.modules.forEach(function(T){n+=Dr,n+=T.map(ql).join(""),n+=Dr+`
|
|
11
|
+
`}),n+=w}r?r(n):console.log(n)},setErrorLevel:function(e){this.error=xa[e]||this.error}}});var rr=require("fs"),En=require("path"),Jo=require("url"),Zo=R(require("os"),1);var nr=R(require("dns"),1),we=R(require("path"),1),jo=R(require("os"),1),oe="9remote",Kr=process.env.NREMOTE_REGISTRY||`https://registry.npmjs.org/${oe}/latest`,Be=`${oe}@latest`,xe=process.env.NREMOTE_HOME||we.default.join(jo.default.homedir(),".9remote"),G={ROOT:xe,LOGS:we.default.join(xe,"logs"),STATE:we.default.join(xe,"state"),CONFIG:we.default.join(xe,"config"),BIN:we.default.join(xe,"bin"),PIDS:we.default.join(xe,"pids"),BUFFERS:we.default.join(xe,"buffers"),DAEMON:we.default.join(xe,"daemon"),AI_SESSIONS:we.default.join(xe,"ai-sessions"),BACKGROUNDS:we.default.join(xe,"backgrounds")},wn=new nr.default.promises.Resolver;wn.setServers(["1.1.1.1","1.0.0.1","8.8.8.8"]);var Fr=nr.default.lookup,Ja=/^(\d{1,3}\.){3}\d{1,3}$|^::1$|^[0-9a-f:]+$/i;nr.default.lookup=(e,t,r)=>{if(typeof t=="function"&&(r=t,t={}),e==="localhost"||Ja.test(e))return Fr(e,t,r);(async()=>{if(t.family===6)return{addrs:await wn.resolve6(e),family:6};if(t.family===4)return{addrs:await wn.resolve4(e),family:4};let[n,i]=await Promise.allSettled([wn.resolve4(e),wn.resolve6(e)]);return n.status==="fulfilled"&&n.value?.length?{addrs:n.value,family:4}:i.status==="fulfilled"&&i.value?.length?{addrs:i.value,family:6}:null})().then(n=>{if(!n?.addrs?.length)return Fr(e,t,r);t.all?r(null,n.addrs.map(i=>({address:i,family:n.family}))):r(null,n.addrs[0],n.family)}).catch(()=>Fr(e,t,r))};var k=2208,Go=process.execPath,Vo=(e=process.env)=>process.versions.electron?{...e,ELECTRON_RUN_AS_NODE:"1"}:{...e};var Ho=5173,Wo=3e3;var yu=[`http://localhost:${k}`,`http://127.0.0.1:${k}`,`http://localhost:${Ho}`,`http://127.0.0.1:${Ho}`,`http://localhost:${Wo}`,`http://127.0.0.1:${Wo}`],vn={fileName:"agent.log",rotatedName:"agent.log.1",maxBytes:2*1024*1024,cleanupAfterDays:7},Yo=60,L={STOPPED:0,PREPARING:1,CONNECTING:2,TUNNELING:3,VERIFYING:4,READY:5},Xo={showTunnelUrlInMenu:!1};var qo={CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN:"1"};var Qo={checkIntervalMs:3e4,requestTimeoutMs:5e3},ce={server:{strategy:"exp",baseMs:1e3,maxMs:6e4},tunnelRestart:{strategy:"exp",baseMs:2e3,maxMs:3e5},tunnelSpawn:{strategy:"linear",baseMs:5e3,maxMs:6e4},tunnelRateLimit:{strategy:"exp",baseMs:6e4,maxMs:9e5},internet:{strategy:"linear",baseMs:3e3,maxMs:6e4},sse:{strategy:"linear",baseMs:2e3,maxMs:2e3},urlSync:{strategy:"linear",baseMs:5e3,maxMs:6e4}},Za={Accept:"application/json, text/plain, */*","Accept-Language":"en-US,en;q=0.9","Cache-Control":"no-cache",Pragma:"no-cache","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"};function K(e,t={}){return fetch(e,{...t,headers:{...Za,...t.headers}})}var za=(0,En.dirname)((0,Jo.fileURLToPath)(__importMetaUrl)),ec=[(0,En.join)(Zo.default.homedir(),".9remote",".env"),(0,En.join)(za,"..",".env")];function tc(e){for(let t of e.split(`
|
|
12
|
+
`)){let r=t.trim();if(!r||r.startsWith("#"))continue;let o=r.match(/^([A-Z_][A-Z0-9_]*)\s*=\s*"?(.*?)"?$/);o&&!process.env[o[1]]&&(process.env[o[1]]=o[2])}}for(let e of ec)if((0,rr.existsSync)(e))try{tc((0,rr.readFileSync)(e,"utf8"))}catch{}for(let[e,t]of Object.entries(qo))process.env[e]||(process.env[e]=t);var Gr=R(require("path"),1),ui=R(require("fs"),1),fi=require("url");var ei=R(zo(),1),Wr=R(require("crypto"),1),{machineIdSync:nc}=ei.default;async function Ct(e=null){let t=e||process.env.MACHINE_ID_SALT||"9remote-salt";try{let r=nc();return Wr.default.createHash("sha256").update(r+t).digest("hex").substring(0,16)}catch(r){return console.error("Error getting machine ID:",r),Wr.default.randomUUID().replace(/-/g,"").substring(0,16)}}var ri=R(require("crypto"),1),Su=process.env.API_KEY_SECRET||process.env.APP_SECRET;var ti="abcdefghijklmnpqrstuvwxyz123456789",rc=8;function ni(){let e="";for(let t=0;t<rc;t++)e+=ti[ri.default.randomInt(ti.length)];return e}function Mt(e){return`sk-${(e||"").slice(0,8).toLowerCase()}-${ni()}-${ni()}`}function oc(e){return/^sk-[a-z0-9]{8}-[a-np-z1-9]{8}-[a-np-z1-9]{8}$/.test(e||"")}function V(e){if(!oc(e))return e||null;let t=e.split("-");return`${t[0]}-${t[1]}-${t[2]}`}function or(e){return!e||e.length<8?"sk-***":`${e.slice(0,3)}***${e.slice(-4)}`}var fe=R(require("fs"),1),An=R(require("path"),1);var le=require("fs"),oi=require("path"),ic=0;function Ue(e,t,r={}){let{mode:o=384,spaces:n=2}=r;(0,le.mkdirSync)((0,oi.dirname)(e),{recursive:!0});let i=`${e}.${process.pid}.${++ic}.tmp`;try{(0,le.writeFileSync)(i,JSON.stringify(t,null,n),{mode:o}),(0,le.renameSync)(i,e)}catch(s){try{(0,le.existsSync)(i)&&(0,le.unlinkSync)(i)}catch{}throw s}}function ii(e,t=null){try{return(0,le.existsSync)(e)?JSON.parse((0,le.readFileSync)(e,"utf8")):t}catch{return t}}var Ru=G.STATE,Tn=An.default.join(G.STATE,"state.json"),jr=An.default.join(G.ROOT,"keys.json"),ir=An.default.join(G.STATE,"cmd.json"),Pu=An.default.join(G.STATE,"settings.json");function bn(){for(let e of[G.ROOT,G.STATE])fe.default.existsSync(e)||fe.default.mkdirSync(e,{recursive:!0})}function si(){try{return bn(),fe.default.existsSync(Tn)?JSON.parse(fe.default.readFileSync(Tn,"utf8")):null}catch{return null}}function xn(e){try{bn(),Ue(Tn,e)}catch(t){console.error("Error saving state:",t)}}function ai(){try{fe.default.existsSync(Tn)&&fe.default.unlinkSync(Tn)}catch{}}function sr(){try{return bn(),fe.default.existsSync(jr)?JSON.parse(fe.default.readFileSync(jr,"utf8")):{machineId:null,key:null,name:"Default",createdAt:null}}catch{return{machineId:null,key:null,name:"Default",createdAt:null}}}function $t(e){try{bn(),Ue(ir,{cmd:e,ts:Date.now()},{spaces:0})}catch{}}function ci(){try{if(!fe.default.existsSync(ir))return null;let e=JSON.parse(fe.default.readFileSync(ir,"utf8"));return fe.default.unlinkSync(ir),e.cmd}catch{return null}}function wt(e,t,r="Default"){try{bn();let o={machineId:e,key:t,name:r,createdAt:new Date().toISOString()};return Ue(jr,o),o}catch(o){return console.error("Error saving key:",o),null}}function li(){return process.env.CODESPACES==="true"}var sc=Gr.default.dirname((0,fi.fileURLToPath)(__importMetaUrl));async function ze(){let e=await Ct();if(li()&&process.env.NREMOTE_API_KEY)return wt(e,process.env.NREMOTE_API_KEY,"Codespace");let t=sr();if(!t.key){let r=Mt(e);t=wt(e,r,"Default")}return t}function Re(){return"3.0.13"}var Pe=R(require("fs"),1),Vr=R(require("path"),1);var cr=G.LOGS,Rn=Vr.default.join(cr,vn.fileName),lr=Vr.default.join(cr,vn.rotatedName),pi=!1,di=null;function ac(){Pe.default.existsSync(cr)||Pe.default.mkdirSync(cr,{recursive:!0})}function cc(){try{if(Pe.default.statSync(Rn).size<vn.maxBytes)return;try{Pe.default.rmSync(lr,{force:!0})}catch{}Pe.default.renameSync(Rn,lr)}catch{}}function lc(){try{let e=Pe.default.statSync(lr);Date.now()-e.mtimeMs>vn.cleanupAfterDays*864e5&&Pe.default.rmSync(lr,{force:!0})}catch{}}function Yr(e){try{cc(),Pe.default.appendFileSync(Rn,e+`
|
|
13
|
+
`)}catch{}}function ar(e){return e.map(t=>{if(t instanceof Error)return t.stack||t.message;if(typeof t=="object")try{return JSON.stringify(t)}catch{return String(t)}return String(t)}).join(" ")}function mi(){let e=new Date,t=(r,o=2)=>String(r).padStart(o,"0");return`${t(e.getHours())}:${t(e.getMinutes())}:${t(e.getSeconds())}.${t(e.getMilliseconds(),3)}`}var uc=/\x1b\[[0-9;]*m/g,fc=/https?:\/\/[^\s]+/g;function pc(e){return String(e).replace(uc,"").replace(fc,"").replace(/\s+$/g,"")}function Nt(e,t,r){let o=pc(r);if(!o)return;let n=t==="info"?e:`${e}:${t}`,i=`${mi()} [${n}] ${o}`;if(Yr(i),di)try{di(i)}catch{}}function dc(){process.on("uncaughtException",e=>Nt("crash","error",`uncaughtException: ${e?.stack||e?.message||e}`)),process.on("unhandledRejection",e=>{let t=e instanceof Error?e.stack||e.message:String(e);Nt("crash","error",`unhandledRejection: ${t}`)}),process.on("exit",e=>Yr(`${mi()} [exit] code=${e} pid=${process.pid}`))}function hi(){pi||(pi=!0,ac(),lc(),Yr(`
|
|
14
|
+
=== SESSION ${new Date().toISOString()} pid=${process.pid} argv=${process.argv.slice(2).join(" ")} ===`),dc())}function gi(e=60){try{return Pe.default.readFileSync(Rn,"utf8").split(`
|
|
15
|
+
`).filter(Boolean).slice(-e)}catch{return[]}}var mc=process.env.NODE_ENV==="development"||process.env.AGENT_DEBUG==="1";function H(e){return{debug:(...t)=>{mc&&Nt(e,"debug",ar(t))},info:(...t)=>Nt(e,"info",ar(t)),warn:(...t)=>Nt(e,"warn",ar(t)),error:(...t)=>Nt(e,"error",ar(t))}}var Pn=Rn;var yi=(e=0)=>t=>`\x1B[${t+e}m`,wi=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,vi=(e=0)=>(t,r,o)=>`\x1B[${38+e};2;${t};${r};${o}m`,D={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},Du=Object.keys(D.modifier),hc=Object.keys(D.color),gc=Object.keys(D.bgColor),Bu=[...hc,...gc];function yc(){let e=new Map;for(let[t,r]of Object.entries(D)){for(let[o,n]of Object.entries(r))D[o]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},r[o]=D[o],e.set(n[0],n[1]);Object.defineProperty(D,t,{value:r,enumerable:!1})}return Object.defineProperty(D,"codes",{value:e,enumerable:!1}),D.color.close="\x1B[39m",D.bgColor.close="\x1B[49m",D.color.ansi=yi(),D.color.ansi256=wi(),D.color.ansi16m=vi(),D.bgColor.ansi=yi(10),D.bgColor.ansi256=wi(10),D.bgColor.ansi16m=vi(10),Object.defineProperties(D,{rgbToAnsi256:{value(t,r,o){return t===r&&r===o?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(o/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[o]=r;o.length===3&&(o=[...o].map(i=>i+i).join(""));let n=Number.parseInt(o,16);return[n>>16&255,n>>8&255,n&255]},enumerable:!1},hexToAnsi256:{value:t=>D.rgbToAnsi256(...D.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,o,n;if(t>=232)r=((t-232)*10+8)/255,o=r,n=r;else{t-=16;let a=t%36;r=Math.floor(t/36)/5,o=Math.floor(a/6)/5,n=a%6/5}let i=Math.max(r,o,n)*2;if(i===0)return 30;let s=30+(Math.round(n)<<2|Math.round(o)<<1|Math.round(r));return i===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(t,r,o)=>D.ansi256ToAnsi(D.rgbToAnsi256(t,r,o)),enumerable:!1},hexToAnsi:{value:t=>D.ansi256ToAnsi(D.hexToAnsi256(t)),enumerable:!1}}),D}var wc=yc(),ve=wc;var fr=R(require("node:process"),1),Si=R(require("node:os"),1),Xr=R(require("node:tty"),1);function pe(e,t=globalThis.Deno?globalThis.Deno.args:fr.default.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",o=t.indexOf(r+e),n=t.indexOf("--");return o!==-1&&(n===-1||o<n)}var{env:B}=fr.default,ur;pe("no-color")||pe("no-colors")||pe("color=false")||pe("color=never")?ur=0:(pe("color")||pe("colors")||pe("color=true")||pe("color=always"))&&(ur=1);function vc(){if("FORCE_COLOR"in B)return B.FORCE_COLOR==="true"?1:B.FORCE_COLOR==="false"?0:B.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(B.FORCE_COLOR,10),3)}function Ec(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Sc(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let o=vc();o!==void 0&&(ur=o);let n=r?ur:o;if(n===0)return 0;if(r){if(pe("color=16m")||pe("color=full")||pe("color=truecolor"))return 3;if(pe("color=256"))return 2}if("TF_BUILD"in B&&"AGENT_NAME"in B)return 1;if(e&&!t&&n===void 0)return 0;let i=n||0;if(B.TERM==="dumb")return i;if(fr.default.platform==="win32"){let s=Si.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in B)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in B)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in B)||B.CI_NAME==="codeship"?1:i;if("TEAMCITY_VERSION"in B)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(B.TEAMCITY_VERSION)?1:0;if(B.COLORTERM==="truecolor"||B.TERM==="xterm-kitty"||B.TERM==="xterm-ghostty"||B.TERM==="wezterm")return 3;if("TERM_PROGRAM"in B){let s=Number.parseInt((B.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(B.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(B.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(B.TERM)||"COLORTERM"in B?1:i}function Ei(e,t={}){let r=Sc(e,{streamIsTTY:e&&e.isTTY,...t});return Ec(r)}var Tc={stdout:Ei({isTTY:Xr.default.isatty(1)}),stderr:Ei({isTTY:Xr.default.isatty(2)})},Ti=Tc;function Ai(e,t,r){let o=e.indexOf(t);if(o===-1)return e;let n=t.length,i=0,s="";do s+=e.slice(i,o)+t+r,i=o+n,o=e.indexOf(t,i);while(o!==-1);return s+=e.slice(i),s}function bi(e,t,r,o){let n=0,i="";do{let s=e[o-1]==="\r";i+=e.slice(n,s?o-1:o)+t+(s?`\r
|
|
16
16
|
`:`
|
|
17
17
|
`)+r,n=o+1,o=e.indexOf(`
|
|
18
|
-
`,n)}while(o!==-1);return i+=e.slice(n),i}var{stdout:
|
|
19
|
-
`);return i!==-1&&(t=
|
|
20
|
-
`),(0,St.execFile)("wscript.exe",[i],{windowsHide:!0}).unref?.(),null}let o=(0,St.spawn)(t,[r,...e],{detached:!0,stdio:"ignore"});return o.unref(),o.pid||null}function
|
|
18
|
+
`,n)}while(o!==-1);return i+=e.slice(n),i}var{stdout:xi,stderr:Ri}=Ti,qr=Symbol("GENERATOR"),Dt=Symbol("STYLER"),kn=Symbol("IS_EMPTY"),Pi=["ansi","ansi","ansi256","ansi16m"],Bt=Object.create(null),Ac=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=xi?xi.level:0;e.level=t.level===void 0?r:t.level};var bc=e=>{let t=(...r)=>r.join(" ");return Ac(t,e),Object.setPrototypeOf(t,On.prototype),t};function On(e){return bc(e)}Object.setPrototypeOf(On.prototype,Function.prototype);for(let[e,t]of Object.entries(ve))Bt[e]={get(){let r=pr(this,Jr(t.open,t.close,this[Dt]),this[kn]);return Object.defineProperty(this,e,{value:r}),r}};Bt.visible={get(){let e=pr(this,this[Dt],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var Qr=(e,t,r,...o)=>e==="rgb"?t==="ansi16m"?ve[r].ansi16m(...o):t==="ansi256"?ve[r].ansi256(ve.rgbToAnsi256(...o)):ve[r].ansi(ve.rgbToAnsi(...o)):e==="hex"?Qr("rgb",t,r,...ve.hexToRgb(...o)):ve[r][e](...o),xc=["rgb","hex","ansi256"];for(let e of xc){Bt[e]={get(){let{level:r}=this;return function(...o){let n=Jr(Qr(e,Pi[r],"color",...o),ve.color.close,this[Dt]);return pr(this,n,this[kn])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);Bt[t]={get(){let{level:r}=this;return function(...o){let n=Jr(Qr(e,Pi[r],"bgColor",...o),ve.bgColor.close,this[Dt]);return pr(this,n,this[kn])}}}}var Rc=Object.defineProperties(()=>{},{...Bt,level:{enumerable:!0,get(){return this[qr].level},set(e){this[qr].level=e}}}),Jr=(e,t,r)=>{let o,n;return r===void 0?(o=e,n=t):(o=r.openAll+e,n=t+r.closeAll),{open:e,close:t,openAll:o,closeAll:n,parent:r}},pr=(e,t,r)=>{let o=(...n)=>Pc(o,n.length===1?""+n[0]:n.join(" "));return Object.setPrototypeOf(o,Rc),o[qr]=e,o[Dt]=t,o[kn]=r,o},Pc=(e,t)=>{if(e.level<=0||!t)return e[kn]?"":t;let r=e[Dt];if(r===void 0)return t;let{openAll:o,closeAll:n}=r;if(t.includes("\x1B"))for(;r!==void 0;)t=Ai(t,r.close,r.open),r=r.parent;let i=t.indexOf(`
|
|
19
|
+
`);return i!==-1&&(t=bi(t,n,o,i)),o+t+n};Object.defineProperties(On.prototype,Bt);var kc=On(),Gu=On({level:Ri?Ri.level:0});var m=kc;var X=require("fs"),Gi=require("url"),_n=require("child_process"),Ie=R(require("path"),1),Kt=R(require("os"),1);var Ut=R(require("fs"),1),Zr=R(require("path"),1),ki=R(require("os"),1),Oi=require("child_process"),dr=Zr.default.join(ki.default.homedir(),".9remote","pids");function Oc(){try{Ut.default.existsSync(dr)||Ut.default.mkdirSync(dr,{recursive:!0})}catch{}}function zr(e){return Zr.default.join(dr,`${e}.pid`)}function ke(e,t){if(t)try{Oc(),Ut.default.writeFileSync(zr(e),String(t))}catch{}}function In(e){try{let t=Ut.default.readFileSync(zr(e),"utf8").trim(),r=parseInt(t,10);return Number.isFinite(r)&&r>0?r:null}catch{return null}}function Fe(e){try{Ut.default.unlinkSync(zr(e))}catch{}}function eo(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}function Ic(e){let t=In(e);if(Fe(e),!t)return!1;try{process.platform==="win32"?(0,Oi.execSync)(`taskkill /F /T /PID ${t}`,{stdio:"ignore",windowsHide:!0}):process.kill(t,"SIGKILL")}catch{}return!0}var Lc=["cloudflared","agent"];function Ii(){for(let e of Lc)Ic(e)}function Li(){return dr}var St=require("child_process"),M=require("fs"),vt=require("path"),no=R(require("os"),1),Et=R(require("path"),1),Ci=require("url");var hr=(0,vt.join)(G.LOGS,"autostart.log"),mr="cc.9remote.agent",gr="9Remote",yr=["--tray","--skip-update","--start"],Ln=no.default.homedir(),_i=Et.default.dirname((0,Ci.fileURLToPath)(__importMetaUrl)),ee={darwin:(0,vt.join)(Ln,"Library","LaunchAgents",`${mr}.plist`),linux:(0,vt.join)(Ln,".config","autostart",`${mr}.desktop`),linuxSystemd:(0,vt.join)(Ln,".config","systemd","user",`${mr}.service`),win:(0,vt.join)(process.env.APPDATA||"","Microsoft","Windows","Start Menu","Programs","Startup",`${gr}.vbs`)};function et(){for(let e=_i,t=null;e!==t;t=e,e=Et.default.dirname(e)){let r=Et.default.join(e,"package.json");if((0,M.existsSync)(r)){try{let o=JSON.parse((0,M.readFileSync)(r,"utf8"));if(o.name!==oe)continue;let n=typeof o.bin=="string"?o.bin:o.bin?.[oe];if(n){let i=Et.default.resolve(e,n);if((0,M.existsSync)(i))return i}}catch{}break}}return process.argv[1]||Et.default.resolve(_i,"..","index.js")}function Oe(){return process.execPath}function Mi(){return process.versions.electron?"env ELECTRON_RUN_AS_NODE=1 ":""}function $i(e){let t=Oe(),r=et();if(process.platform==="win32"){let n=e.join(" "),i=(0,vt.join)(no.default.tmpdir(),`${oe}-launch.vbs`);return(0,M.writeFileSync)(i,`CreateObject("WScript.Shell").Run """${t}"" ""${r}"" ${n}", 0, False
|
|
20
|
+
`),(0,St.execFile)("wscript.exe",[i],{windowsHide:!0}).unref?.(),null}let o=(0,St.spawn)(t,[r,...e],{detached:!0,stdio:"ignore"});return o.unref(),o.pid||null}function Ni(){let e=Et.default.dirname(Oe()),t=["/usr/local/bin","/usr/bin","/bin","/usr/sbin","/sbin","/opt/homebrew/bin"];return t.includes(e)||t.unshift(e),t.join(":")}function to(e){return String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function _c(e,t){let r=[e,t,...yr].map(o=>` <string>${to(o)}</string>`).join(`
|
|
21
21
|
`);return`<?xml version="1.0" encoding="UTF-8"?>
|
|
22
22
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
23
23
|
<plist version="1.0">
|
|
24
24
|
<dict>
|
|
25
25
|
<key>Label</key>
|
|
26
|
-
<string>${
|
|
26
|
+
<string>${mr}</string>
|
|
27
27
|
<key>ProgramArguments</key>
|
|
28
28
|
<array>
|
|
29
29
|
${r}
|
|
@@ -35,43 +35,43 @@ ${r}
|
|
|
35
35
|
<key>EnvironmentVariables</key>
|
|
36
36
|
<dict>
|
|
37
37
|
<key>PATH</key>
|
|
38
|
-
<string>${
|
|
38
|
+
<string>${to(Ni())}</string>
|
|
39
39
|
<key>HOME</key>
|
|
40
|
-
<string>${
|
|
40
|
+
<string>${to(Ln)}</string>
|
|
41
41
|
</dict>
|
|
42
42
|
<key>StandardOutPath</key>
|
|
43
|
-
<string>${
|
|
43
|
+
<string>${hr}</string>
|
|
44
44
|
<key>StandardErrorPath</key>
|
|
45
|
-
<string>${
|
|
45
|
+
<string>${hr}</string>
|
|
46
46
|
</dict>
|
|
47
47
|
</plist>
|
|
48
|
-
`}function Cc(){return(0,M.existsSync)(ee.darwin)}function Mc(){let e=
|
|
49
|
-
WshShell.Run """${
|
|
50
|
-
`}function $c(){try{(0,St.execFileSync)("reg",["DELETE","HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run","/V",
|
|
48
|
+
`}function Cc(){return(0,M.existsSync)(ee.darwin)}function Mc(){let e=yr.join(" ");return`Set WshShell = CreateObject("WScript.Shell")
|
|
49
|
+
WshShell.Run """${Oe()}"" ""${et()}"" ${e}", 0, False
|
|
50
|
+
`}function $c(){try{(0,St.execFileSync)("reg",["DELETE","HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run","/V",gr,"/F"],{windowsHide:!0,stdio:"ignore"})}catch{}}function Nc(){return(0,M.existsSync)(ee.win)}function Dc(){let e=`${Oe()} ${et()} ${yr.join(" ")}`;return`[Desktop Entry]
|
|
51
51
|
Type=Application
|
|
52
|
-
Name=${
|
|
52
|
+
Name=${gr}
|
|
53
53
|
Exec=${e}
|
|
54
54
|
X-GNOME-Autostart-enabled=true
|
|
55
55
|
NoDisplay=false
|
|
56
56
|
Terminal=false
|
|
57
|
-
`}function Bc(){let e=
|
|
58
|
-
Description=${
|
|
57
|
+
`}function Bc(){let e=yr.map(t=>`'${t}'`).join(" ");return`[Unit]
|
|
58
|
+
Description=${gr} Agent
|
|
59
59
|
After=network-online.target
|
|
60
60
|
Wants=network-online.target
|
|
61
61
|
|
|
62
62
|
[Service]
|
|
63
63
|
Type=simple
|
|
64
|
-
ExecStart=${
|
|
64
|
+
ExecStart=${Oe()} ${et()} ${e}
|
|
65
65
|
Restart=always
|
|
66
66
|
RestartSec=10
|
|
67
|
-
Environment=PATH=${
|
|
68
|
-
Environment=HOME=${
|
|
69
|
-
StandardOutput=append:${
|
|
70
|
-
StandardError=append:${
|
|
67
|
+
Environment=PATH=${Ni()}
|
|
68
|
+
Environment=HOME=${Ln}
|
|
69
|
+
StandardOutput=append:${hr}
|
|
70
|
+
StandardError=append:${hr}
|
|
71
71
|
|
|
72
72
|
[Install]
|
|
73
73
|
WantedBy=default.target
|
|
74
|
-
`}function Uc(e){try{return(0,St.execFileSync)("systemctl",["--user",...e],{stdio:"ignore"}),!0}catch{return!1}}function Fc(){return(0,M.existsSync)(ee.linux)||(0,M.existsSync)(ee.linuxSystemd)}async function Kc(){try{if(process.platform==="darwin")return Cc();if(process.platform==="win32")return await Nc();if(process.platform==="linux")return Fc()}catch{}return!1}async function
|
|
74
|
+
`}function Uc(e){try{return(0,St.execFileSync)("systemctl",["--user",...e],{stdio:"ignore"}),!0}catch{return!1}}function Fc(){return(0,M.existsSync)(ee.linux)||(0,M.existsSync)(ee.linuxSystemd)}async function Kc(){try{if(process.platform==="darwin")return Cc();if(process.platform==="win32")return await Nc();if(process.platform==="linux")return Fc()}catch{}return!1}async function Di(){try{if(process.platform==="win32"&&$c(),!await Kc())return!1;if(process.platform==="darwin"){let e=_c(Oe(),et());return((0,M.existsSync)(ee.darwin)?(0,M.readFileSync)(ee.darwin,"utf8"):"")===e?!1:((0,M.writeFileSync)(ee.darwin,e),!0)}if(process.platform==="win32"){let e=Mc();return((0,M.existsSync)(ee.win)?(0,M.readFileSync)(ee.win,"utf8"):"")===e?!1:((0,M.writeFileSync)(ee.win,e),!0)}if(process.platform==="linux"){if((0,M.existsSync)(ee.linuxSystemd)){let e=Bc();return(0,M.readFileSync)(ee.linuxSystemd,"utf8")===e?!1:((0,M.writeFileSync)(ee.linuxSystemd,e),Uc(["daemon-reload"]),!0)}if((0,M.existsSync)(ee.linux)){let e=Dc();return(0,M.readFileSync)(ee.linux,"utf8")===e?!1:((0,M.writeFileSync)(ee.linux,e),!0)}}}catch{}return!1}var Ju=process.env.NODE_ENV==="development";var C=process.env.NREMOTE_WORKER_URL||"https://9remote.cc",Bi=3e4,Ui=500,ro=300,Ee={cmdMs:1e3,pendingApprovalMs:3e3,statsMs:5e3,serverReadyIntervalMs:200,serverReadyTimeoutMs:5e3,bgServerReadyTimeoutMs:15e3,bgServerReadyIntervalMs:300},tt={intervalMs:2e3,timeoutMs:12e4,fetchTimeoutMs:5e3,dnsTimeoutMs:2e3,maxLogEntries:80,postReadyHoldMs:2e3},de={killCloudflaredMs:500,killCloudflaredTuiMs:300,serverBootMs:2e3,trayReadyMs:1e3,postReadyHoldMs:2e3,bgSpawnFlushMs:400};var Ke={maxLogLines:200,headerWidth:44},Ft={checkIntervalMs:36e5,connectCheckDebounceMs:9e5,maxRetry:3,retryDelayMs:3e3,verifyTimeoutMs:15e3,lockTtlMs:3e5,lockFile:"update.lock"},Fi=5e3,oo=12e4,Ki=1500,Hi=2,Wi=3e4,ie={orange:m.rgb(230,138,110),orangeDim:m.rgb(200,120,95)};var Hc=Ie.default.dirname((0,Gi.fileURLToPath)(__importMetaUrl)),Vi=3e3;var vr=2208,io=Ie.default.join(Kt.default.homedir(),".9remote","cloudflared.pid");function Wc(){try{Ii()}catch{}try{if((0,X.existsSync)(io)){let e=parseInt((0,X.readFileSync)(io,"utf8"));if(Number.isFinite(e))try{process.kill(e)}catch{}try{(0,X.unlinkSync)(io)}catch{}}}catch{}try{process.platform==="win32"?(0,_n.execSync)(`for /f "tokens=5" %a in ('netstat -aon ^| findstr :${vr}') do taskkill /F /PID %a`,{stdio:"ignore",windowsHide:!0}):(0,_n.execSync)(`lsof -ti:${vr} | xargs kill -9 2>/dev/null || true`,{stdio:"ignore"})}catch{}if(process.platform==="win32"){let e=Date.now()+1500;for(;Date.now()<e;);}}function Yi(){return"3.0.13"}function Xi(e,t){let r=e.split(".").map(Number),o=t.split(".").map(Number);for(let n=0;n<3;n++){if(o[n]>r[n])return!0;if(o[n]<r[n])return!1}return!1}function jc(){return process.env.CODESPACES==="true"||process.env.GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN?"GitHub Codespaces":(0,X.existsSync)("/.dockerenv")?"Docker":null}function Er(){Wc()}async function qi(){try{let e=Yi();if(!e)return null;let t=await K(Kr,{signal:AbortSignal.timeout(Vi)});if(!t.ok)return null;let{version:r}=await t.json();return r&&Xi(e,r)?{current:e,latest:r}:null}catch{return null}}var wr=Ie.default.join(G.STATE,Ft.lockFile);function Gc(){try{if((0,X.existsSync)(wr)){let{pid:e,ts:t}=JSON.parse((0,X.readFileSync)(wr,"utf8")),r=Date.now()-t<Ft.lockTtlMs,o=!1;try{process.kill(e,0),o=!0}catch{}if(r&&o)return!1}}catch{}try{(0,X.writeFileSync)(wr,JSON.stringify({pid:process.pid,ts:Date.now()}))}catch{}return!0}async function Vc(){try{let e=await K(Kr,{signal:AbortSignal.timeout(Vi)});if(!e.ok)return null;let{version:t}=await e.json();return t||null}catch{return null}}function Yc(){try{if(process.env.NREMOTE_REGISTRY)return`--registry ${new URL(process.env.NREMOTE_REGISTRY).origin}`}catch{}return""}function Xc(){let e=et(),t=Ie.default.sep,r=`${t}lib${t}node_modules${t}`,o=e.indexOf(r);return o>0?{global:"-g",prefix:`--prefix "${e.slice(0,o)}"`}:(o=e.indexOf(`${t}node_modules${t}`),o>0?{global:"",prefix:`--prefix "${e.slice(0,o)}"`}:{global:"-g",prefix:""})}function ji(){let e=process.argv.slice(2).filter(r=>r!=="--skip-update");return e.includes("ui")||e.includes("start")||e.some(r=>["--tray","--auto","--start"].includes(r))?`${e.join(" ")} --skip-update`:"--tray --skip-update --start"}function qc(){let e=process.env.NREMOTE_NPM_CLI;return e&&(0,X.existsSync)(e)?process.platform==="win32"?`"${Oe()}" "${e}"`:`env ELECTRON_RUN_AS_NODE=1 "${Oe()}" "${e}"`:"npm"}function Qc({currentVersion:e,latest:t,agentPid:r}){let o=Li(),n=Yc(),i=Oe(),s=Mi(),a=et(),c=wr,{global:l,prefix:u}=Xc(),f=`${l} --prefer-online --no-audit --no-fund ${n} ${u}`.trim(),p=qc();if(process.platform==="win32"){let w=Ie.default.join(Kt.default.tmpdir(),`${oe}-restart.vbs`),T=`@echo off
|
|
75
75
|
setlocal EnableDelayedExpansion
|
|
76
76
|
set "NODE=${i}"
|
|
77
77
|
set "CLI=${a}"
|
|
@@ -90,7 +90,7 @@ for %%N in (cloudflared agent) do (
|
|
|
90
90
|
del /f /q "${o}\\%%N.pid" >nul 2>&1
|
|
91
91
|
)
|
|
92
92
|
)
|
|
93
|
-
for /f "tokens=5" %%a in ('netstat -aon ^| findstr :${
|
|
93
|
+
for /f "tokens=5" %%a in ('netstat -aon ^| findstr :${vr}') do taskkill /F /PID %%a >nul 2>&1
|
|
94
94
|
timeout /t 3 /nobreak >nul
|
|
95
95
|
|
|
96
96
|
set ATTEMPT=0
|
|
@@ -124,8 +124,8 @@ del /f /q "${c}" >nul 2>&1
|
|
|
124
124
|
|
|
125
125
|
wscript "${w}"
|
|
126
126
|
exit /b 0
|
|
127
|
-
`,
|
|
128
|
-
`);let A=
|
|
127
|
+
`,O=Ie.default.join(Kt.default.tmpdir(),`${oe}-update.bat`);(0,X.writeFileSync)(O,T),(0,X.writeFileSync)(w,`CreateObject("WScript.Shell").Run """%NODE%"" ""%CLI%"" ${ji()}", 0, False`.replace("%NODE%",i).replace("%CLI%",a)+`
|
|
128
|
+
`);let A=Ie.default.join(Kt.default.tmpdir(),`${oe}-update.vbs`);return(0,X.writeFileSync)(A,`CreateObject("WScript.Shell").Run "cmd /c ""${O}""", 0, False
|
|
129
129
|
`),{shellCmd:["wscript.exe",[A]],windowsVerbatim:!1}}let d=`#!/bin/bash
|
|
130
130
|
# Wait for agent to exit so it releases the cli.cjs file lock
|
|
131
131
|
while kill -0 ${r} 2>/dev/null; do sleep 1; done
|
|
@@ -139,7 +139,7 @@ for name in cloudflared agent; do
|
|
|
139
139
|
rm -f "$f"
|
|
140
140
|
fi
|
|
141
141
|
done
|
|
142
|
-
lsof -ti:${
|
|
142
|
+
lsof -ti:${vr} | xargs kill -9 2>/dev/null || true
|
|
143
143
|
sleep 2
|
|
144
144
|
|
|
145
145
|
attempt=0
|
|
@@ -162,18 +162,18 @@ if [ "$NEWVER" != "${t}" ]; then
|
|
|
162
162
|
fi
|
|
163
163
|
|
|
164
164
|
rm -f "${c}"
|
|
165
|
-
${s}"${i}" "${a}" ${
|
|
166
|
-
`,h=
|
|
167
|
-
`)}function Wt(e,t=null){console.log(
|
|
165
|
+
${s}"${i}" "${a}" ${ji()}
|
|
166
|
+
`,h=Ie.default.join(Kt.default.tmpdir(),`${oe}-update.sh`);return(0,X.writeFileSync)(h,d,{mode:493}),{shellCmd:["sh",[h]],windowsVerbatim:!1}}async function Qi(){let e=Yi();if(!e||jc())return!1;let t=await Vc();if(!t||!Xi(e,t)||!Gc())return!1;let{shellCmd:r,windowsVerbatim:o}=Qc({currentVersion:e,latest:t,agentPid:process.pid});return(0,_n.spawn)(r[0],r[1],{detached:!0,stdio:"ignore",windowsHide:!0,windowsVerbatimArguments:o}).unref(),setTimeout(()=>process.exit(0),500),!0}var ls=R(require("os"),1);var xr=R(require("readline"),1),Zi=R(require("http"),1);var so=require("child_process"),Jc={screenRecording:"x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture",accessibility:"x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"};function Sr(e){let t=Jc[e];t&&process.platform==="darwin"&&(0,so.exec)(`open "${t}"`,()=>{})}function Se({strategy:e,baseMs:t,maxMs:r},o){let n=Math.max(1,o),i=e==="exp"?t*Math.pow(2,n-1):t*n;return Math.min(i,r)}async function Tr({config:e,task:t,label:r="task",log:o=()=>{},ctx:n={}}){let i=0;for(;!n.cancelled;){i++;try{if(await t(i))return!0}catch(a){o(`\u274C ${r} attempt ${i} error: ${a?.message||a}`)}if(n.cancelled)return!1;let s=Se(e,i);o(`\u{1F504} ${r} retry in ${s}ms (attempt ${i})`),await new Promise(a=>setTimeout(a,s))}return!1}var E={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"},zi=()=>Math.min(44,process.stdout.columns||44);function co(e,t=null){let o=zi()-2,n=(a="")=>{let c=a.replace(/\x1b\[[0-9;]*m/g,""),l=Math.max(0,o-c.length);return E.orange+"\u2551"+E.reset+a+" ".repeat(l)+E.orange+"\u2551"+E.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 E.orange+"\u2551"+E.reset+" ".repeat(u)+c(a)+" ".repeat(f)+E.orange+"\u2551"+E.reset},s=["",E.orange+"\u2554"+"\u2550".repeat(o)+"\u2557"+E.reset,n(),i(`\u{1F680} 9Remote v${e}`,a=>E.bold+E.orange+a+E.reset),i("Remote terminal access from anywhere",a=>E.dim+a+E.reset),n()];return t&&(s.push(i(`\u2B06 New version v${t} available!`,a=>E.yellow+E.bold+a+E.reset)),s.push(i(`Run: npm i -g ${Be}`,a=>E.dim+a+E.reset)),s.push(n())),s.push(E.orange+"\u255A"+"\u2550".repeat(o)+"\u255D"+E.reset),s.push(""),s.join(`
|
|
167
|
+
`)}function Wt(e,t=null){console.log(co(e,t))}var Ji=["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"],ao=[{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"}],Zc=process.platform==="win32",zc=Zc?120:80;process.on("exit",()=>process.stdout.write("\x1B[?25h"));var es=(e,t)=>{process.stdout.write("\x1B[?25h"),process.listenerCount(e)<=1&&process.exit(t)};process.on("SIGINT",()=>es("SIGINT",130));process.on("SIGTERM",()=>es("SIGTERM",143));var He=0,Tt=null,Ar=0,Le=-1,Cn=null,Ht=null,br=!1;function ts(){let e=[],t=Le===ao.length-1;return ao.forEach((r,o)=>{let n=o===Le&&Cn?Cn:r.desc;if(o<Le||t&&o===Le)e.push(` ${E.green}\u2713${E.reset} ${E.dim}${r.label}${E.reset}`),Ht&&o===Ht.afterIdx&&e.push(` ${E.green}\u2713${E.reset} ${E.cyan}${Ht.text}${E.reset}`);else if(o===Le){let i=Ji[Ar%Ji.length];e.push(` ${E.orange}${i}${E.reset} ${E.bold}${r.label}${E.reset} ${E.dim}${n}${E.reset}`)}else e.push(` ${E.dim}\u25CB ${r.label}${E.reset}`)}),e}function ns(){let e=ts();He>0&&process.stdout.write(`\x1B[${He}A\x1B[0J`),process.stdout.write(e.join(`
|
|
168
168
|
`)+`
|
|
169
|
-
`),He=e.length}function
|
|
169
|
+
`),He=e.length}function rs(){if(He===0||Le<0)return;let e=ts();if(e.length!==He){ns();return}let t=Le+(Ht&&Ht.afterIdx<Le?1:0),r=He-t;process.stdout.write(`\x1B[${r}A\r\x1B[2K${e[t]}\x1B[${r}B\r`)}function el(){br||(process.stdout.write("\x1B[?25l"),br=!0)}function os(){br&&(process.stdout.write("\x1B[?25h"),br=!1)}function is(e,t=!1,r=null){Tt&&(clearInterval(Tt),Tt=null),Le=e,Cn=r,Ar=0,t||(He=0),ns(),e<ao.length-1?(el(),Tt=setInterval(()=>{Ar++,rs()},zc)):os()}function jt(e){Cn=e,He>0&&rs()}function ss(){Tt&&(clearInterval(Tt),Tt=null),os(),He=0,Le=-1,Cn=null,Ht=null,Ar=0}function _e(e,t,r=0,o="",n=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 w=typeof o=="function"?o():o;if(w)for(let T of w.split(`
|
|
170
170
|
`))process.stdout.write(T+`\x1B[K
|
|
171
171
|
`);e&&process.stdout.write(`${E.dim}${e}${E.reset}\x1B[K
|
|
172
172
|
\x1B[K
|
|
173
|
-
`),t.forEach((T,
|
|
174
|
-
`)}),process.stdout.write("\x1B[J")},p=()=>{if(c){if(c=!1,process.stdin.isTTY)try{process.stdin.setRawMode(!1)}catch{}process.stdin.removeListener("keypress",d),process.stdin.pause()}},d=(w,T)=>{!c||!T||(T.name==="up"?(a=(a-1+t.length)%t.length,f()):T.name==="down"?(a=(a+1)%t.length,f()):T.name==="return"?(p(),s(a)):T.name==="escape"?(p(),s(-1)):T.ctrl&&T.name==="c"&&(p(),i&&i(),process.exit(0)))};if(process.stdin.removeAllListeners("keypress"),
|
|
173
|
+
`),t.forEach((T,O)=>{let A=O===a?u?">":"\u2605":u?" ":"\u2606",P=O===a?` \x1B[7m${E.bold}${A} ${T.label}${E.reset}`:` ${A} ${T.label}`;process.stdout.write(P+`\x1B[K
|
|
174
|
+
`)}),process.stdout.write("\x1B[J")},p=()=>{if(c){if(c=!1,process.stdin.isTTY)try{process.stdin.setRawMode(!1)}catch{}process.stdin.removeListener("keypress",d),process.stdin.pause()}},d=(w,T)=>{!c||!T||(T.name==="up"?(a=(a-1+t.length)%t.length,f()):T.name==="down"?(a=(a+1)%t.length,f()):T.name==="return"?(p(),s(a)):T.name==="escape"?(p(),s(-1)):T.ctrl&&T.name==="c"&&(p(),i&&i(),process.exit(0)))};if(process.stdin.removeAllListeners("keypress"),xr.default.emitKeypressEvents(process.stdin),process.stdin.isTTY)try{process.stdin.setRawMode(!0)}catch{s(-1);return}process.stdin.on("keypress",d),process.stdin.resume(),f(),n&&n(f,()=>{c&&(p(),s(-2))})})}function lo(e){return new Promise(t=>{if(process.stdin.removeAllListeners("keypress"),process.stdin.isTTY)try{process.stdin.setRawMode(!1)}catch{}if(process.stdin.pause(),process.stdout.write(`${e} (y/N): `),xr.default.emitKeypressEvents(process.stdin),process.stdin.isTTY)try{process.stdin.setRawMode(!0)}catch{}process.stdin.resume();let r=(o,n)=>{if(!n)return;if(process.stdin.removeListener("keypress",r),process.stdin.isTTY)try{process.stdin.setRawMode(!1)}catch{}process.stdin.pause(),n.ctrl&&n.name==="c"&&(process.stdout.write(`
|
|
175
175
|
`),process.exit(0));let i=(n.name||"").toLowerCase()==="y";process.stdout.write((i?"y":"n")+`
|
|
176
|
-
`),t(i)};process.stdin.on("keypress",r)})}function
|
|
176
|
+
`),t(i)};process.stdin.on("keypress",r)})}function as(e,t){return new Promise(r=>{let o=e?e.slice(0,8):"unknown",n=zi(),i=process.stdin.listeners("keypress").slice();if(process.stdin.removeAllListeners("keypress"),process.stdin.isTTY)try{process.stdin.setRawMode(!1)}catch{}process.stdin.pause();let s=`${E.orange}${"\u2550".repeat(n)}${E.reset}`;if(process.stdout.write(`\x1B[2J\x1B[H
|
|
177
177
|
${s}
|
|
178
178
|
${E.orange}${E.bold} \u{1F514} New Device Connection${E.reset}
|
|
179
179
|
${s}
|
|
@@ -181,69 +181,69 @@ ${s}
|
|
|
181
181
|
IP: ${E.cyan}${t}${E.reset}
|
|
182
182
|
${s}
|
|
183
183
|
|
|
184
|
-
Allow this device? ${E.dim}(y/n)${E.reset} `),
|
|
184
|
+
Allow this device? ${E.dim}(y/n)${E.reset} `),xr.default.emitKeypressEvents(process.stdin),process.stdin.isTTY)try{process.stdin.setRawMode(!0)}catch{}process.stdin.resume();let a=()=>{for(let l of i)process.stdin.on("keypress",l);if(i.length>0){if(process.stdin.isTTY)try{process.stdin.setRawMode(!0)}catch{}process.stdin.resume()}},c=(l,u)=>{if(!u)return;let f=(u.name||"").toLowerCase(),p=f==="y"||u.name==="return",d=f==="n"||u.name==="escape",h=u.ctrl&&u.name==="c";if(!p&&!d&&!h)return;try{if(process.stdin.removeListener("keypress",c),process.stdin.isTTY)try{process.stdin.setRawMode(!1)}catch{}process.stdin.pause()}catch{}h&&process.exit(0);let w=p,T=w?`${E.green}y${E.reset}
|
|
185
185
|
|
|
186
186
|
${E.green}\u2713 Device approved${E.reset}
|
|
187
187
|
`:`${E.red}n${E.reset}
|
|
188
188
|
|
|
189
189
|
${E.red}\u2717 Device rejected${E.reset}
|
|
190
|
-
`;process.stdout.write(T),setTimeout(()=>{try{a()}catch{}r(w)},500)};process.stdin.on("keypress",c)})}function
|
|
191
|
-
`);u=p.pop();let d="";for(let h of p)if(h.startsWith("data: "))d=h.slice(6);else if(h===""&&d){try{let w=JSON.parse(d);Promise.resolve(t(w.type,w)).catch(()=>{})}catch{}d=""}}),l.on("end",()=>{n&&clearTimeout(n),o||setTimeout(a,Se(ce.sse,1))})}),r.on("error",()=>{n&&clearTimeout(n),o||setTimeout(a,Se(ce.sse,1))})};return a(),()=>{o=!0,n&&clearTimeout(n),r?.destroy()}}var
|
|
192
|
-
`).find(c=>c.includes(r));if(!n){
|
|
193
|
-
`,"utf8");let s=!1,a=()=>{if(!s){s=!0;try{W.default.rmSync(n,{recursive:!0,force:!0})}catch{}}},c=(0,Ge.spawn)(o,["tunnel","--url",`http://localhost:${e}`,"--config",i,"--no-autoupdate","--protocol","http2"],{detached:!1,windowsHide:!0,stdio:["ignore","pipe","pipe"]});return ke("cloudflared",c.pid),Jt=c.pid,
|
|
194
|
-
`).slice(-5).join(" | ");Jt=null,u(new Error(`cloudflared exited (code=${T}, signal=${
|
|
195
|
-
`).flatMap(t=>{let r=t.match(/^\s*(\d+)\s+(.+)$/);return r?[{pid:Number(r[1]),args:r[2].trim()}]:[]}):[]}function El(e,t){return Array.isArray(e)?e.filter(r=>{if(!r?.args||typeof r.pid!="number")return!1;let o=r.args.split(/\s+/);return o.includes(t)&&o.includes("tunnel")}).map(r=>r.pid):[]}function Sl(e){try{let t=nn?(0,Ge.execSync)(`powershell -NoProfile -Command "Get-CimInstance Win32_Process -Filter 'Name=\\'cloudflared.exe\\'' | ForEach-Object { \\"$($_.ProcessId) $($_.CommandLine)\\"" }"`,{encoding:"utf8",windowsHide:!0,stdio:["ignore","pipe","ignore"]}):(0,Ge.execSync)("ps -eo pid=,args=",{encoding:"utf8",stdio:["ignore","pipe","ignore"]});return El(vl(t),e)}catch{return[]}}function Tl(e){let t=Sl(e);for(let r of t)r!==process.pid&&(
|
|
196
|
-
`).map(o=>+o.trim()).filter(Boolean);for(let r of new Set(t))Pr(r)}catch{}}function Te(){if(!wo){wo=!0;try{try{if(W.default.existsSync(vo)){let t=parseInt(W.default.readFileSync(vo,"utf8"));Number.isFinite(t)&&(Fn=!0,Pr(t)),W.default.unlinkSync(vo)}}catch{}let e=In("cloudflared");Fn=!0,Jt=null,e&&(Pr(e),Fe("cloudflared")),Al(k)}finally{setTimeout(()=>{wo=!1},2e3)}}}function Is(){if(!me)return!1;let e=In("cloudflared");return!!e&&zr(e)}function Os(){Dn=0,en=!1,Hn=null,zt=null,me=null,je=0,Wn=0,Zt=null,Rl()}var bl=/^(utun|awdl|llw|anpi|bridge|gif|stf|ipsec|ap|tun|tap|vmnet|veth|docker)/i;function As(){let e=ot.default.networkInterfaces(),t=[];for(let[r,o]of Object.entries(e))if(o&&!bl.test(r))for(let n of o)!n.internal&&n.family==="IPv4"&&t.push(`${r}:${n.address}`);return t.sort().join("|")}function xl(){Un||(Rr=As(),go=Date.now(),Un=setInterval(async()=>{try{let e=Date.now(),t=e-go;if(go=e,Eo||en||!Hn||zt==null)return;if(t>ll){if(q.info(`Sleep/wake detected (gap=${t}ms)`),me){let s=!1;for(let a=0;a<3;a++){if((await Yt(me)).ok){s=!0;break}a<2&&await new Promise(l=>setTimeout(l,3e3))}if(s)return;q.info("tunnel unresponsive after sleep \u2192 restarting")}bt("unreachable"),Te(),Kn(zt,"woke from sleep");return}let r=As(),o=r!==Rr;Rr=r;let n=In("cloudflared"),i=!n||!zr(n);if(!o&&!i){if(me&&tn&&Date.now()-tn>Ss&&e-Wn>=We.edgeProbeIntervalMs){Wn=e;let s=await Yt(me);if(s.ok)je=0;else if(++je>=We.edgeProbeFailureThreshold){let a=await al(We.readyTimeoutMs);if(a>0){q.info(`edge probe failing but cloudflared holds ${a} connection(s) \u2014 not restarting`),je=0;return}q.warn(`tunnel unreachable but cloudflared alive \u2014 edge lost after ${je} probes (ready=${a??"unknown"}), restarting`),je=0,bt("unreachable"),Te(),Kn(zt,"tunnel unreachable (edge lost)")}else q.debug(`edge probe failed (${je}/${We.edgeProbeFailureThreshold}) \u2014 ${s.dnsCode??s.httpStatus??"no response"}`)}return}if(o&&!i&&tn&&Date.now()-tn<Ss||(o&&q.info("Network change detected"),i&&q.warn("cloudflared not alive \u2014 watchdog"),bt("unreachable"),await new Promise(s=>setTimeout(s,We.networkRestoreDelayMs)),!await Rs()))return;if(o&&!i&&me){let s=!1;for(let a=0;a<2;a++){if((await Yt(me)).ok){s=!0;break}a===0&&await new Promise(l=>setTimeout(l,2e3))}if(s){q.info("Tunnel survived network change, skip restart");return}}o&&!i&&Te(),Kn(zt,o?"network change":"liveness watchdog")}catch(e){q.error(`network monitor tick failed: ${e?.message||e}`)}},We.networkCheckIntervalMs))}function Rl(){Un&&(clearInterval(Un),Un=null),Rr=null}sn();var it=R(require("crypto"),1),cn=require("fs");var Ks=require("path");var Of=Buffer.from("302a300506032b656e","hex");var Or=(0,Ks.join)(G.CONFIG,"hostKey.json"),Df=Buffer.from("302a300506032b6570032100","hex"),an=null;function bo(){if(an)return an;try{if((0,cn.existsSync)(Or)){let s=JSON.parse((0,cn.readFileSync)(Or,"utf8")),a=Buffer.from(s.publicKey,"base64");if(!s.x25519PrivateKey){let l=it.default.generateKeyPairSync("x25519");s.x25519PrivateKey=l.privateKey.export({type:"pkcs8",format:"der"}).toString("base64"),s.x25519PublicKey=l.publicKey.export({type:"spki",format:"der"}).toString("base64"),Ue(Or,s)}let c=Buffer.from(s.x25519PublicKey,"base64");return an={privateKey:it.default.createPrivateKey({key:Buffer.from(s.privateKey,"base64"),format:"der",type:"pkcs8"}),publicKey:it.default.createPublicKey({key:a,format:"der",type:"spki"}),publicKeyB64:a.subarray(-32).toString("base64"),x25519PrivateKey:it.default.createPrivateKey({key:Buffer.from(s.x25519PrivateKey,"base64"),format:"der",type:"pkcs8"}),x25519PublicKeyB64:c.subarray(-32).toString("base64")},an}}catch{}(0,cn.mkdirSync)(G.CONFIG,{recursive:!0});let{privateKey:e,publicKey:t}=it.default.generateKeyPairSync("ed25519"),r=t.export({type:"spki",format:"der"}).toString("base64"),o=e.export({type:"pkcs8",format:"der"}).toString("base64"),n=it.default.generateKeyPairSync("x25519"),i=n.publicKey.export({type:"spki",format:"der"}).toString("base64");return Ue(Or,{privateKey:o,publicKey:r,x25519PrivateKey:n.privateKey.export({type:"pkcs8",format:"der"}).toString("base64"),x25519PublicKey:i}),an={privateKey:e,publicKey:t,publicKeyB64:Buffer.from(r,"base64").subarray(-32).toString("base64"),x25519PrivateKey:n.privateKey,x25519PublicKeyB64:Buffer.from(i,"base64").subarray(-32).toString("base64")},an}function st(){return bo().publicKeyB64}function at(){return bo().x25519PublicKeyB64}var _l="9remote-session-v1";function Cl({apiKey:e,tunnelUrl:t,localIp:r,expiryMinutes:o,ts:n}){let i=a=>{let c=a==null?"":String(a);return`${c.length}:${c}`},s=`${_l}|${i(e)}${i(t)}${i(r)}${i(o)}${i(n)}`;return it.default.sign(null,Buffer.from(s,"utf8"),bo().privateKey).toString("base64")}function xt(e){let t=Date.now();return{ts:t,sig:Cl({...e,ts:t})}}async function ct(e,t={}){let r=t.intervalMs??tt.intervalMs,o=t.timeoutMs??tt.timeoutMs,n=`${e}/api/health`,i=(()=>{try{return new URL(e).hostname}catch{return null}})(),s=Date.now(),a=0,c=[];await F({healthCheck:{running:!0,timeoutMs:o,startedAt:s,logs:[]}});let l=u=>{c.push(u);let f=c.length>tt.maxLogEntries?c.slice(-tt.maxLogEntries):c;F({healthCheck:{running:!0,timeoutMs:o,startedAt:s,logs:f}})};for(;Date.now()-s<o;){if(a++,Vt(),i){let f=await fo(i,tt.dnsTimeoutMs);if(!f.ok){let p=f.code==="ENOTFOUND"||f.code==="ETIMEOUT"||f.code==="ESERVFAIL",d=p?"connecting...":f.code;jt(`#${a} \u2192 ${d}`),l({attempt:a,status:d,elapsedMs:f.elapsedMs,ok:!1,waiting:p,time:Date.now()}),await new Promise(h=>setTimeout(h,r));continue}}let u=Date.now();try{let f=await K(n,{signal:AbortSignal.timeout(tt.fetchTimeoutMs)}),p=Date.now()-u;if(jt(`#${a} \u2192 ${f.status}`),l({attempt:a,status:String(f.status),elapsedMs:p,ok:f.ok,time:Date.now()}),f.ok)return await F({healthCheck:{running:!1,timeoutMs:0,startedAt:null,logs:[]}}),await new Promise(d=>setTimeout(d,tt.postReadyHoldMs)),!0}catch(f){let p=Date.now()-u,d=f.cause?.code||f.code||f.message,h=d==="ENOTFOUND",w=h?"connecting...":d;jt(`#${a} \u2192 ${w}`),l({attempt:a,status:w,elapsedMs:p,ok:!1,waiting:h,time:Date.now()})}await new Promise(f=>setTimeout(f,r))}return await F({healthCheck:{running:!1,timeoutMs:o,startedAt:s,logs:c}}),!1}var lt=H("tunnel"),xo=null,Hs=null,Ws=0;async function Rt(e,t){if(lt.debug(`updateTunnelUrl: key=${e?.slice(0,8)} url=${t}`),Ml(e),t&&t===Hs&&Date.now()-Ws<Ui){lt.debug("updateTunnelUrl: skipped (debounce, same URL)");return}xo&&(xo.cancelled=!0);let r={cancelled:!1};xo=r;let o=fs();Sr({config:ce.urlSync,label:`urlSync ${t}`,log:n=>lt.warn(n),ctx:r,task:async()=>{let n=await K(`${C}/api/session/update`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify((()=>{let s={apiKey:V(e),tunnelUrl:t,localIp:o?`${o}:${k}`:null};return{...s,...xt(s)}})())});if(r.cancelled)return!0;if(n.ok)return Hs=t,Ws=Date.now(),lt.debug(`urlSync OK: pushed ${t} to server`),$l(t),!0;let i=await n.text().catch(()=>"");return lt.warn(`urlSync HTTP ${n.status}: ${i.slice(0,200)}`),!1}}),t&&ys(t)}var ln=null,un=null,Ro=!1,ko=0;async function js(e,t){let r={apiKey:e,online:t},o=await K(`${C}/api/session/heartbeat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...r,...xt(r)})});return o.ok||lt.warn(`heartbeat online=${t} HTTP ${o.status}`),o.ok}async function Po(){if(!(Ro||!un)){Ro=!0;try{await js(un,!0),ko=Date.now()}catch(e){lt.debug(`heartbeat failed: ${e?.message||e}`)}finally{Ro=!1}}}function Ml(e){let t=V(e);if(t){if(ln&&un===t){Date.now()-ko>=ro&&Po();return}Io(),un=t,Po(),ln=setInterval(Po,ro),ln.unref?.()}}function Io({offline:e=!1}={}){ln&&(clearInterval(ln),ln=null);let t=un;return un=null,ko=0,!e||!t?null:js(t,!1).catch(r=>lt.debug(`goodbye failed: ${r?.message||r}`))}var Yn=null;async function $l(e){if(Yn?.url===e)return;let t={url:e};Yn=t,ws();try{let r=await ct(e,{timeoutMs:Hi});if(Yn!==t)return;r&&bt("healthy")}catch{}finally{Yn===t&&(Yn=null),vs()}}var Xe=H("server"),Xs=Qn.default.dirname((0,Ys.fileURLToPath)(__importMetaUrl)),Nl=Qn.default.resolve(Xs,"./server.cjs"),Gs=Qn.default.resolve(Xs,"../../index.js");function Lr(e){try{process.platform==="win32"?(0,Xn.execSync)(`for /f "tokens=5" %a in ('netstat -aon ^| findstr :${e}') do taskkill /F /PID %a`,{stdio:"ignore",windowsHide:!0}):(0,Xn.execSync)(`lsof -ti:${e} | xargs kill -9 2>/dev/null || true`,{stdio:"ignore"})}catch{}}function ut(e,t,r){let o=null,n=!1,i=!1,s=!0,a=0,c=null,l=()=>{s&&(Lr(k),s=!1);let u=process.env.NODE_ENV==="development"&&Oo.default.existsSync(Gs),f=u?Gs:Nl;Oo.default.existsSync(f)||(Xe.error(`Server not found: ${f}`),process.exit(1));let p={...process.env,PORT:String(k)};u||delete p.NODE_ENV,o=(0,Xn.spawn)(jo,[f],{cwd:Qn.default.dirname(f),stdio:["ignore","inherit","inherit"],detached:!1,windowsHide:!0,env:Go(p)}),c&&clearTimeout(c),c=setTimeout(()=>{a=0},Di),o.on("exit",(d,h)=>{if(c&&(clearTimeout(c),c=null),n)return;if(i){i=!1,Xe.info("Restarting server (requested)..."),setTimeout(()=>{l(),r?.()},500);return}Xe.error(`Server exited unexpectedly (code: ${d}, signal: ${h})`),a++;let w=Se(ce.server,a);Xe.warn(`Restarting server in ${w}ms (fail#${a})`),t&&t(),setTimeout(()=>{l(),r?.()},w)}),o.on("error",d=>{Xe.error(`Server error: ${d.message}`)}),e?.(o)};return l(),{getProcess:()=>o,shutdown:()=>{if(n=!0,!!o){try{o.kill("SIGTERM")}catch{}setTimeout(()=>{try{o&&o.kill("SIGKILL")}catch{}},2e3)}},restart:()=>{if(!o)return!1;i=!0;try{o.kill("SIGTERM")}catch{}return setTimeout(()=>{try{o&&i&&o.kill("SIGKILL")}catch{}},2e3),!0}}}function Qs(e){return e?.restart?e.restart():!1}function Pt({serverManager:e,tunnelProcess:t,exit:r=!0,code:o=0}={}){try{Nn()}catch{}try{e?.shutdown?.()}catch{}try{t?.kill?.()}catch{}try{Te()}catch{}try{Gn()}catch{}try{Lr(k)}catch{}try{Os()}catch{}try{si()}catch{}try{Fe("agent")}catch{}try{Fe("cloudflared")}catch{}let n=Io({offline:!0});if(r){let i=new Promise(a=>setTimeout(a,Bi)),s=n?Promise.race([n,new Promise(a=>setTimeout(a,Fi))]):null;Promise.all([i,s]).finally(()=>process.exit(o))}}var Vs=!1;function ft(e,t){if(Vs)return;Vs=!0;let r=!1,o=n=>{r||(r=!0,Xe.info(`Stopping 9Remote (${n})...`),Pt({serverManager:e,tunnelProcess:t}),Xe.info("Server stopped"))};if(process.on("SIGINT",()=>o("SIGINT")),process.on("SIGTERM",()=>o("SIGTERM")),process.on("SIGHUP",()=>o("SIGHUP")),process.platform==="win32"){process.on("SIGBREAK",()=>o("SIGBREAK"));try{import("readline").then(({createInterface:n})=>{n({input:process.stdin,output:process.stdout}).on("SIGINT",()=>o("SIGINT")),process.stdin.isTTY&&process.stdin.unref?.()}).catch(()=>{})}catch{}}process.on("uncaughtException",n=>{Xe.error(`Uncaught exception: ${n?.stack||n?.message||n}`),o("uncaughtException"),setTimeout(()=>process.exit(1),no)}),process.on("unhandledRejection",n=>{Xe.error(`Unhandled rejection: ${n?.stack||n?.message||n}`),o("unhandledRejection"),setTimeout(()=>process.exit(1),no)})}sn();var Js=R(require("crypto"),1),Zs=require("path");var Dl=H("pairing"),zs=(0,Zs.join)(G.STATE,"pairing.json"),qs="ABCDEFGHIJKLMNPQRSTUVWXYZ123456789",Bl=2;function ea(){let e="";for(let t=0;t<Bl;t++)e+=qs[Js.default.randomInt(qs.length)];return e}function Ul(){let e=oi(zs,null);return!e||Date.now()>e.expiresAt?null:e}function Fl(e){try{Ue(zs,e)}catch(t){Dl.error(`persist pairing state: ${t.message}`)}}function ta(e,t,r,o=null){Fl({tempKey:e,tail:t,expiresAt:r,workerUrl:o})}function na(){let e=Ul();return e?{tempKey:e.tempKey,tail:e.tail,expiresAt:e.expiresAt}:null}var ra=H("session"),Kl=10;async function qn(e,t){try{let r=await K(`${t}/api/temp-key/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify((()=>{let i={apiKey:V(e),expiryMinutes:Kl};return{...i,...xt(i)}})())});if(!r.ok){let i=await r.json().catch(()=>null);throw new Error(i?.error||`HTTP ${r.status}`)}let o=await r.json(),n=ea();return ta(o.tempKey,n,o.expiresAt,t),{...o,oneTimeKey:`${o.tempKey}${n}`}}catch(r){return ra.error(`Temp key creation failed: ${r?.message||r}`),null}}function Jn(e,t){return t?.tempKey?`${e}/login?k=${t.tempKey}#${t.oneTimeKey}`:`${e}/login`}async function _r(e,t,r,o){try{let n=await K(`${t}/api/session/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:V(e),hostPublicKey:st(),hostX25519Key:at(),tempKey:na()?.tempKey||void 0})});if(!n.ok)throw new Error(`HTTP ${n.status}`);return r&&await K(`${t}/api/session/update`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:V(e),tunnelUrl:r,...xt({apiKey:V(e),tunnelUrl:r})})}).catch(()=>{}),o&&V(o)!==V(e)&&await K(`${t}/api/session/delete`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:V(o),...xt({apiKey:V(o)})})}).catch(()=>{}),!0}catch(n){return ra.error(`Session registration failed: ${n?.message||n}`),!1}}var kt=H("tunnel");async function Hl(e,t,r,o){let n=0;for(;;){n++;try{return await Ve(e,t,r)}catch(i){let s=Se(ce.tunnelSpawn,n);kt.warn(`spawn attempt ${n} failed: ${i?.message||i} \u2014 retry in ${s}ms`),o?.({attempt:n,delay:s}),await new Promise(a=>setTimeout(a,s))}}}function Qe({onUrlUpdate:e,setTunnel:t,onRetry:r}){return async o=>{try{let n=await Hl(o,e,null,r);qe(),t(n.child),await e(n.tunnelUrl),kt.info(`Tunnel restarted: ${n.tunnelUrl}`)}catch(n){kt.error(`Tunnel restart failed: ${n?.message||n}`)}}}var Cr=null;function qe(){Cr&&(Cr.cancelled=!0,Cr=null)}function fn(e,{onUrlUpdate:t,onRestart:r,setActiveTunnel:o,onReady:n}){qe();let i={cancelled:!1};return Cr=i,Sr({config:ce.tunnelRateLimit,task:async()=>{if(i.cancelled)return!0;if(Is())return kt.info("bg-tunnel: a tunnel is already live \u2014 standing down"),!0;let s=await Ve(e,t,r);if(i.cancelled){try{Te()}catch{}return!0}try{o?.(s.child),await t?.(s.tunnelUrl),await n?.(s),kt.info(`bg tunnel up: ${s.tunnelUrl}`)}catch(a){kt.error(`bg tunnel post-spawn failed: ${a?.message||a}`)}return!0},label:"bg-tunnel",log:s=>kt.info(s),ctx:i}),i}var No=R(Pa(),1);var Jl=H("session");function Zl(e,t="\u{1F4F1} Scan QR to connect:"){console.log(ie.orange(`
|
|
197
|
-
${t}`)),
|
|
198
|
-
`+r.trim())})})}async function
|
|
199
|
-
\u274C Failed to create one-time key \u2014 generate a new one from the menu`)),console.log(ie.orange("\u2550".repeat(o))),console.log(m.white("App URL".padEnd(14))+m.gray(`${C}/login`)),console.log(m.white("Key".padEnd(14))+m.gray(e)),console.log(ie.orange("\u2550".repeat(o)));return}let n=
|
|
190
|
+
`;process.stdout.write(T),setTimeout(()=>{try{a()}catch{}r(w)},500)};process.stdin.on("keypress",c)})}function cs(e,t){let r=null,o=!1,n=null,i=45e3,s=()=>{n&&clearTimeout(n),n=setTimeout(()=>{try{r?.destroy()}catch{}},i)},a=async()=>{if(o)return;let c=await Gt();r=Zi.default.get(`http://${c}:${e}/api/ui/events`,l=>{let u="";s(),l.on("data",f=>{s(),u+=f.toString();let p=u.split(`
|
|
191
|
+
`);u=p.pop();let d="";for(let h of p)if(h.startsWith("data: "))d=h.slice(6);else if(h===""&&d){try{let w=JSON.parse(d);Promise.resolve(t(w.type,w)).catch(()=>{})}catch{}d=""}}),l.on("end",()=>{n&&clearTimeout(n),o||setTimeout(a,Se(ce.sse,1))})}),r.on("error",()=>{n&&clearTimeout(n),o||setTimeout(a,Se(ce.sse,1))})};return a(),()=>{o=!0,n&&clearTimeout(n),r?.destroy()}}var uo=!1;function us(e){uo=e}var Mn=null;async function Gt(){if(Mn)return Mn;let e=o=>fetch(`http://${o}:${k}/api/health`,{signal:AbortSignal.timeout(2e3)}).then(n=>n.ok?o:Promise.reject()),r=(await Promise.allSettled(["localhost","127.0.0.1"].map(e))).map((o,n)=>o.status==="fulfilled"?["localhost","127.0.0.1"][n]:null);return Mn=r.find(o=>o==="localhost")||r.find(Boolean)||null,Mn||"127.0.0.1"}function fs(){Mn=null}async function Y(e,t){let r=await Gt();try{return await fetch(`http://${r}:${k}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}catch{return fs(),null}}async function q(e){let t=await Gt();try{let r=await fetch(`http://${t}:${k}${e}`);return r.ok?await r.json():null}catch{return fs(),null}}async function F(e){await Y("/api/ui/state",e)}async function $(e,t={}){uo&&is(e-1,e>L.PREPARING),await F({step:e,stepDesc:"",...t})}function Rr({phase:e,percent:t}){let r=e==="download"?`Downloading tunnel binary ${t??0}%`:"Extracting tunnel binary";uo&&jt(r),F({stepDesc:r})}async function se(){return!!await q("/api/health")}async function fo(){let[e,t,r,o]=await Promise.all([q("/api/ui/state"),q("/api/device/auto-approve"),q("/api/autostart"),q("/api/sleep-inhibit")]);return{desktopEnabled:!!e?.desktopEnabled,remoteAvailable:!!e?.remoteAvailable,autoApprove:!!t?.enabled,autoStart:!!r?.enabled,sleepInhibitMode:o?.mode||"never",sleepInhibitActive:!!o?.active,sleepInhibitPresets:Array.isArray(o?.presets)?o.presets:[]}}function ps(){let e=ls.default.networkInterfaces();for(let t of Object.values(e))for(let r of t)if(r.family==="IPv4"&&!r.internal)return r.address;return null}var qn=require("child_process"),Qn=R(require("path"),1),_o=R(require("fs"),1),Ys=require("url");var W=R(require("fs"),1),rt=R(require("path"),1),Ao=R(require("https"),1),ot=R(require("os"),1),bs=R(require("net"),1),Ge=require("child_process");var ds=R(require("dns"),1),ms=require("child_process");var tl=2e3,nl=5e3,po=new ds.default.promises.Resolver;po.setServers(["1.1.1.1","1.0.0.1","8.8.8.8"]);function Vt(){process.platform==="win32"&&(0,ms.execFile)("ipconfig",["/flushdns"],{windowsHide:!0},()=>{})}async function mo(e,t=tl){let r=Date.now();try{let o=async()=>{let[i,s]=await Promise.allSettled([po.resolve4(e),po.resolve6(e)]);if(i.status==="fulfilled"&&i.value?.length)return i.value;if(s.status==="fulfilled"&&s.value?.length)return s.value;throw i.reason||s.reason||Object.assign(new Error("DNS query failed"),{code:"ENOTFOUND"})};return{ok:!0,addrs:await Promise.race([o(),new Promise((i,s)=>setTimeout(()=>s(Object.assign(new Error("DNS timeout"),{code:"ETIMEOUT"})),t))]),elapsedMs:Date.now()-r}}catch(o){return{ok:!1,code:o.code||o.message,elapsedMs:Date.now()-r}}}async function Yt(e,{flushDns:t=!1}={}){let r=Date.now(),o=null;try{o=new URL(e).hostname}catch{}if(t&&Vt(),o){let n=await mo(o);if(!n.ok)return Vt(),{ok:!1,dnsCode:n.code,elapsedMs:Date.now()-r}}try{let n=await K(`${e}/api/health`,{signal:AbortSignal.timeout(nl)});return{ok:n.ok,httpStatus:n.status,elapsedMs:Date.now()-r}}catch(n){return{ok:!1,dnsCode:n.cause?.code||n.code||n.message,elapsedMs:Date.now()-r}}}var rl=H("tunnel"),$n=null,Nn=null,Xt=null,At=null,nt=0,go=!1;async function yo(e){try{let t=await Gt();await fetch(`http://${t}:${k}/api/ui/state`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}catch{}}var ho=!1;async function hs(){if(!(!Nn||go||ho)){ho=!0;try{await ol()}finally{ho=!1}}}async function ol(){let e=await Yt(Nn),t=e.ok?"healthy":"unreachable";if(t===Xt){At=null,nt=0;return}if(t!==At){At=t,nt=1;return}nt++,!(nt<Hi)&&(rl.info(`${Xt??"init"} \u2192 ${t}${e.ok?"":` (http=${e.httpStatus??"-"} dns=${e.dnsCode??"-"})`}`),Xt=t,At=null,nt=0,await yo({tunnelHealth:{status:t,checkedAt:Date.now()}}))}function gs(e){if(!e)return Dn();e!==Nn&&(Nn=e,Xt=null,At=null,nt=0,Vt(),$n||($n=setInterval(hs,Qo.checkIntervalMs)),hs())}var ys=gs,qt=gs;function ws(){go=!0}function vs(){go=!1}function bt(e){Xt=e,At=null,nt=0,yo({tunnelHealth:{status:e,checkedAt:Date.now()}})}function Dn(){$n&&(clearInterval($n),$n=null),Nn=null,Xt=null,At=null,nt=0,yo({tunnelHealth:{status:"unknown",checkedAt:null}})}var Q=H("tunnel"),We={networkCheckIntervalMs:5e3,networkRestoreDelayMs:2500,internetCheckTimeoutMs:3e3,internetCheckHost:"1.1.1.1",internetCheckPort:443,edgeProbeIntervalMs:15e3,edgeProbeFailureThreshold:3,readyTimeoutMs:1500},il=[20241,20242,20243,20244,20245],Zt=null;async function sl(e,t){try{let o=await(await fetch(`http://localhost:${e}/ready`,{signal:AbortSignal.timeout(t)})).json();return typeof o?.readyConnections=="number"?o:null}catch{return null}}async function Es(e,t){let r=await sl(e,t);if(!r)return null;let o=await cl(e,t);return o&&me&&!me.includes(o)?null:r.readyConnections}async function al(e){if(Zt!==null){let o=await Es(Zt,e);if(o!==null)return o;Zt=null}let r=(await Promise.all(il.map(async o=>({port:o,conns:await Es(o,e)})))).find(o=>o.conns!==null);return r?(Zt=r.port,r.conns):null}async function cl(e,t){try{return(await(await fetch(`http://localhost:${e}/quicktunnel`,{signal:AbortSignal.timeout(t)})).json())?.hostname||null}catch{return null}}var ll=3e4,wo=0,Fn=null,Pr=null,zt=null,Wn=null,en=!1,Bn=0,To=!1,me=null,tn=0,vo=0,Eo=!1,jn=0,je=0,Ss=3e4,ul=5e3,Un=rt.default.join(ot.default.homedir(),".9remote","bin"),Ts="cloudflared",nn=ot.default.platform()==="win32",fl=nn?`${Ts}.exe`:Ts,Qt=rt.default.join(Un,fl),So=rt.default.join(ot.default.homedir(),".9remote","cloudflared.pid"),Kn=!1,Jt=null,pl="2026.6.1",xs=`https://github.com/cloudflare/cloudflared/releases/download/${pl}`;function Rs(){return new Promise(e=>{let t=new bs.default.Socket,r=!1,o=n=>{if(!r){r=!0;try{t.destroy()}catch{}e(n)}};t.setTimeout(We.internetCheckTimeoutMs),t.once("connect",()=>o(!0)),t.once("timeout",()=>o(!1)),t.once("error",()=>o(!1));try{t.connect(We.internetCheckPort,We.internetCheckHost)}catch{o(!1)}})}async function dl(){To=!0;try{let e=0;for(;;){if(e++,await Rs())return;await new Promise(t=>setTimeout(t,Se(ce.internet,e)))}}finally{To=!1}}async function Hn(e,t){if(!Wn){Q.warn("No restartCallback registered \u2014 skip");return}if(!en&&!(Date.now()-vo<ul)){vo=Date.now(),en=!0;try{await dl();let r=Se(ce.tunnelRestart,Bn+1);await new Promise(o=>setTimeout(o,r)),await Wn(e),Bn=0,vo=0}catch(r){Bn++,Q.error(`restart failed (#${Bn}): ${r?.message||r}`),setImmediate(()=>{en=!1,Hn(e,"retry after fail")});return}finally{en=!1}}}var ml={darwin:{x64:"cloudflared-darwin-amd64.tgz",arm64:"cloudflared-darwin-arm64.tgz"},win32:{x64:"cloudflared-windows-amd64.exe"},linux:{x64:"cloudflared-linux-amd64",arm64:"cloudflared-linux-arm64"}};function hl(){let e=ot.default.platform(),t=ot.default.arch(),r=ml[e];if(!r)throw new Error(`Unsupported platform: ${e}`);let o=r[t];if(!o)throw new Error(`Unsupported architecture: ${t} for platform ${e}`);return`${xs}/${o}`}var gl=150;async function Ps(e,t,r){return new Promise((o,n)=>{let i=W.default.createWriteStream(t);Ao.default.get(e,s=>{if([301,302].includes(s.statusCode)){i.close(),W.default.unlinkSync(t),Ps(s.headers.location,t,r).then(o).catch(n);return}if(s.statusCode!==200){i.close(),W.default.unlinkSync(t),n(new Error(`Download failed with status ${s.statusCode}`));return}let a=parseInt(s.headers["content-length"]||"0",10),c=0,l=0,u=-1;s.on("data",f=>{if(c+=f.length,!r||!a)return;let p=Date.now(),d=Math.min(100,Math.floor(c/a*100));d!==u&&p-l>=gl&&(l=p,u=d,r(d))}),s.pipe(i),i.on("finish",()=>{r&&a&&r(100),i.close(()=>o(t))}),i.on("error",f=>{i.close(),W.default.unlinkSync(t),n(f)})}).on("error",s=>{i.close(),W.default.existsSync(t)&&W.default.unlinkSync(t),n(s)})})}async function Gn(e){if(W.default.existsSync(Un)||W.default.mkdirSync(Un,{recursive:!0}),W.default.existsSync(Qt))return nn||W.default.chmodSync(Qt,"755"),Qt;let t=hl(),r=t.endsWith(".tgz"),o=r?rt.default.join(Un,"cloudflared.tgz"):Qt;try{return e?.({phase:"download",percent:0}),await Ps(t,o,n=>{e?.({phase:"download",percent:n})}),await yl(t,o),r&&(e?.({phase:"extract"}),(0,Ge.execSync)(`tar -xzf "${o}" -C "${Un}"`,{stdio:"pipe",windowsHide:!0}),W.default.unlinkSync(o)),nn||W.default.chmodSync(Qt,"755"),Qt}catch(n){try{W.default.existsSync(o)&&W.default.unlinkSync(o)}catch{}throw console.error("Failed to download cloudflared:",n.message),n}}function ks(e){return new Promise((t,r)=>{Ao.default.get(e,o=>{if([301,302].includes(o.statusCode))return ks(o.headers.location).then(t).catch(r);if(o.statusCode!==200)return r(new Error(`HTTP ${o.statusCode}`));let n="";o.on("data",i=>n+=i),o.on("end",()=>t(n))}).on("error",r)})}async function yl(e,t){let r=rt.default.basename(e),o;try{o=await ks(`${xs}/sha256sum.txt`)}catch(c){Q.warn(`sha256 manifest unavailable (${c.message}), skipping verify`);return}let n=o.split(`
|
|
192
|
+
`).find(c=>c.includes(r));if(!n){Q.warn(`No sha256 entry for ${r}, skipping verify`);return}let i=n.trim().split(/\s+/)[0],{createHash:s}=await import("crypto"),a=s("sha256").update(W.default.readFileSync(t)).digest("hex");if(a!==i)throw new Error(`Integrity check failed: SHA256 mismatch (expected ${i}, got ${a})`)}function wl(e){let t=/https:\/\/([a-z0-9-]+)\.trycloudflare\.com/gi,r=[];for(let o of e.matchAll(t))o[1]!=="api"&&r.push(`https://${o[1]}.trycloudflare.com`);return r.length?r[r.length-1]:null}async function Ve(e,t=null,r=null){let o=await Gn();Tl(o),r&&(Wn=r),zt=e;let n=W.default.mkdtempSync(rt.default.join(ot.default.tmpdir(),"9remote-quick-")),i=rt.default.join(n,"config.yml");W.default.writeFileSync(i,`# quick-tunnel
|
|
193
|
+
`,"utf8");let s=!1,a=()=>{if(!s){s=!0;try{W.default.rmSync(n,{recursive:!0,force:!0})}catch{}}},c=(0,Ge.spawn)(o,["tunnel","--url",`http://localhost:${e}`,"--config",i,"--no-autoupdate","--protocol","http2"],{detached:!1,windowsHide:!0,stdio:["ignore","pipe","pipe"]});return ke("cloudflared",c.pid),Jt=c.pid,Kn=!1,new Promise((l,u)=>{let f=!1,p=null,d="",h=setTimeout(()=>{if(!f){f=!0,a(),Jt===c.pid&&(Jt=null);try{c.kill("SIGKILL")}catch{}Fe("cloudflared"),u(new Error("Quick tunnel timed out after 90s"))}},9e4),w=T=>{let O=T.toString();d+=O,d.length>4096&&(d=d.slice(-4096));let A=wl(O);if(A){if(!f){f=!0,p=A,me=A,tn=Date.now(),je=0,jn=0,Zt=null,clearTimeout(h),a(),xl(),Q.info(`tunnel ready: ${A}`),l({child:c,tunnelUrl:A});return}A!==p&&(Q.info(`URL rotated: ${A}`),p=A,me=A,tn=Date.now(),je=0,jn=0,t?.(A))}};c.stdout.on("data",w),c.stderr.on("data",w),c.on("error",T=>{f||(f=!0,clearTimeout(h),a(),u(T))}),c.on("exit",(T,O)=>{a();let A=Jt!==c.pid,P=Kn||A;if(Q.info(`cloudflared exited (intentional=${Kn} superseded=${A})`),P||bt("unreachable"),!f){f=!0,clearTimeout(h);let g=d.trim().split(`
|
|
194
|
+
`).slice(-5).join(" | ");Jt=null,u(new Error(`cloudflared exited (code=${T}, signal=${O}) output: ${g||"(empty)"}`));return}P||Hn(e,`quick tunnel exit code ${T}`)})})}function kr(e){if(nn)try{(0,Ge.execSync)(`taskkill /PID ${e} /T /F`,{windowsHide:!0,stdio:"ignore"})}catch{}else try{process.kill(e,"SIGKILL")}catch{}}function vl(e){return e?e.split(`
|
|
195
|
+
`).flatMap(t=>{let r=t.match(/^\s*(\d+)\s+(.+)$/);return r?[{pid:Number(r[1]),args:r[2].trim()}]:[]}):[]}function El(e,t){return Array.isArray(e)?e.filter(r=>{if(!r?.args||typeof r.pid!="number")return!1;let o=r.args.split(/\s+/);return o.includes(t)&&o.includes("tunnel")}).map(r=>r.pid):[]}function Sl(e){try{let t=nn?(0,Ge.execSync)(`powershell -NoProfile -Command "Get-CimInstance Win32_Process -Filter 'Name=\\'cloudflared.exe\\'' | ForEach-Object { \\"$($_.ProcessId) $($_.CommandLine)\\"" }"`,{encoding:"utf8",windowsHide:!0,stdio:["ignore","pipe","ignore"]}):(0,Ge.execSync)("ps -eo pid=,args=",{encoding:"utf8",stdio:["ignore","pipe","ignore"]});return El(vl(t),e)}catch{return[]}}function Tl(e){let t=Sl(e);for(let r of t)r!==process.pid&&(Q.info(`killing leftover cloudflared pid=${r}`),kr(r));return t}function Al(e){try{let t=[];if(nn){let r=`Get-NetTCPConnection -LocalPort ${e} -State Established -ErrorAction SilentlyContinue | Where-Object { (Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name -eq 'cloudflared' } | Select-Object -ExpandProperty OwningProcess -Unique`;t=(0,Ge.execSync)(`powershell -NoProfile -Command "${r}"`,{encoding:"utf8",windowsHide:!0,stdio:["ignore","pipe","ignore"]}).split(/\r?\n/).map(n=>+n.trim()).filter(Boolean)}else t=(0,Ge.execSync)(`lsof -nP -iTCP:${e} -sTCP:ESTABLISHED 2>/dev/null | awk '/cloudflar/ {print $2}' | sort -u`,{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).split(`
|
|
196
|
+
`).map(o=>+o.trim()).filter(Boolean);for(let r of new Set(t))kr(r)}catch{}}function Te(){if(!Eo){Eo=!0;try{try{if(W.default.existsSync(So)){let t=parseInt(W.default.readFileSync(So,"utf8"));Number.isFinite(t)&&(Kn=!0,kr(t)),W.default.unlinkSync(So)}}catch{}let e=In("cloudflared");Kn=!0,Jt=null,e&&(kr(e),Fe("cloudflared")),Al(k)}finally{setTimeout(()=>{Eo=!1},2e3)}}}function Os(){if(!me)return!1;let e=In("cloudflared");return!!e&&eo(e)}function Is(){Bn=0,en=!1,Wn=null,zt=null,me=null,je=0,jn=0,Zt=null,Rl()}var bl=/^(utun|awdl|llw|anpi|bridge|gif|stf|ipsec|ap|tun|tap|vmnet|veth|docker)/i;function As(){let e=ot.default.networkInterfaces(),t=[];for(let[r,o]of Object.entries(e))if(o&&!bl.test(r))for(let n of o)!n.internal&&n.family==="IPv4"&&t.push(`${r}:${n.address}`);return t.sort().join("|")}function xl(){Fn||(Pr=As(),wo=Date.now(),Fn=setInterval(async()=>{try{let e=Date.now(),t=e-wo;if(wo=e,To||en||!Wn||zt==null)return;if(t>ll){if(Q.info(`Sleep/wake detected (gap=${t}ms)`),me){let s=!1;for(let a=0;a<3;a++){if((await Yt(me)).ok){s=!0;break}a<2&&await new Promise(l=>setTimeout(l,3e3))}if(s)return;Q.info("tunnel unresponsive after sleep \u2192 restarting")}bt("unreachable"),Te(),Hn(zt,"woke from sleep");return}let r=As(),o=r!==Pr;Pr=r;let n=In("cloudflared"),i=!n||!eo(n);if(!o&&!i){if(me&&tn&&Date.now()-tn>Ss&&e-jn>=We.edgeProbeIntervalMs){jn=e;let s=await Yt(me);if(s.ok)je=0;else if(++je>=We.edgeProbeFailureThreshold){let a=await al(We.readyTimeoutMs);if(a>0){Q.info(`edge probe failing but cloudflared holds ${a} connection(s) \u2014 not restarting`),je=0;return}Q.warn(`tunnel unreachable but cloudflared alive \u2014 edge lost after ${je} probes (ready=${a??"unknown"}), restarting`),je=0,bt("unreachable"),Te(),Hn(zt,"tunnel unreachable (edge lost)")}else Q.debug(`edge probe failed (${je}/${We.edgeProbeFailureThreshold}) \u2014 ${s.dnsCode??s.httpStatus??"no response"}`)}return}if(o&&!i&&tn&&Date.now()-tn<Ss||(o&&Q.info("Network change detected"),i&&Q.warn("cloudflared not alive \u2014 watchdog"),bt("unreachable"),await new Promise(s=>setTimeout(s,We.networkRestoreDelayMs)),!await Rs()))return;if(o&&!i&&me){let s=!1;for(let a=0;a<2;a++){if((await Yt(me)).ok){s=!0;break}a===0&&await new Promise(l=>setTimeout(l,2e3))}if(s){Q.info("Tunnel survived network change, skip restart");return}}o&&!i&&Te(),Hn(zt,o?"network change":"liveness watchdog")}catch(e){Q.error(`network monitor tick failed: ${e?.message||e}`)}},We.networkCheckIntervalMs))}function Rl(){Fn&&(clearInterval(Fn),Fn=null),Pr=null}sn();var it=R(require("crypto"),1),cn=require("fs");var Ks=require("path");var If=Buffer.from("302a300506032b656e","hex");var Lr=(0,Ks.join)(G.CONFIG,"hostKey.json"),Df=Buffer.from("302a300506032b6570032100","hex"),an=null;function Ro(){if(an)return an;try{if((0,cn.existsSync)(Lr)){let s=JSON.parse((0,cn.readFileSync)(Lr,"utf8")),a=Buffer.from(s.publicKey,"base64");if(!s.x25519PrivateKey){let l=it.default.generateKeyPairSync("x25519");s.x25519PrivateKey=l.privateKey.export({type:"pkcs8",format:"der"}).toString("base64"),s.x25519PublicKey=l.publicKey.export({type:"spki",format:"der"}).toString("base64"),Ue(Lr,s)}let c=Buffer.from(s.x25519PublicKey,"base64");return an={privateKey:it.default.createPrivateKey({key:Buffer.from(s.privateKey,"base64"),format:"der",type:"pkcs8"}),publicKey:it.default.createPublicKey({key:a,format:"der",type:"spki"}),publicKeyB64:a.subarray(-32).toString("base64"),x25519PrivateKey:it.default.createPrivateKey({key:Buffer.from(s.x25519PrivateKey,"base64"),format:"der",type:"pkcs8"}),x25519PublicKeyB64:c.subarray(-32).toString("base64")},an}}catch{}(0,cn.mkdirSync)(G.CONFIG,{recursive:!0});let{privateKey:e,publicKey:t}=it.default.generateKeyPairSync("ed25519"),r=t.export({type:"spki",format:"der"}).toString("base64"),o=e.export({type:"pkcs8",format:"der"}).toString("base64"),n=it.default.generateKeyPairSync("x25519"),i=n.publicKey.export({type:"spki",format:"der"}).toString("base64");return Ue(Lr,{privateKey:o,publicKey:r,x25519PrivateKey:n.privateKey.export({type:"pkcs8",format:"der"}).toString("base64"),x25519PublicKey:i}),an={privateKey:e,publicKey:t,publicKeyB64:Buffer.from(r,"base64").subarray(-32).toString("base64"),x25519PrivateKey:n.privateKey,x25519PublicKeyB64:Buffer.from(i,"base64").subarray(-32).toString("base64")},an}function st(){return Ro().publicKeyB64}function at(){return Ro().x25519PublicKeyB64}var _l="9remote-session-v1";function Cl({apiKey:e,tunnelUrl:t,localIp:r,expiryMinutes:o,ts:n}){let i=a=>{let c=a==null?"":String(a);return`${c.length}:${c}`},s=`${_l}|${i(e)}${i(t)}${i(r)}${i(o)}${i(n)}`;return it.default.sign(null,Buffer.from(s,"utf8"),Ro().privateKey).toString("base64")}function xt(e){let t=Date.now();return{ts:t,sig:Cl({...e,ts:t})}}async function ct(e,t={}){let r=t.intervalMs??tt.intervalMs,o=t.timeoutMs??tt.timeoutMs,n=`${e}/api/health`,i=(()=>{try{return new URL(e).hostname}catch{return null}})(),s=Date.now(),a=0,c=[];await F({healthCheck:{running:!0,timeoutMs:o,startedAt:s,logs:[]}});let l=u=>{c.push(u);let f=c.length>tt.maxLogEntries?c.slice(-tt.maxLogEntries):c;F({healthCheck:{running:!0,timeoutMs:o,startedAt:s,logs:f}})};for(;Date.now()-s<o;){if(a++,Vt(),i){let f=await mo(i,tt.dnsTimeoutMs);if(!f.ok){let p=f.code==="ENOTFOUND"||f.code==="ETIMEOUT"||f.code==="ESERVFAIL",d=p?"connecting...":f.code;jt(`#${a} \u2192 ${d}`),l({attempt:a,status:d,elapsedMs:f.elapsedMs,ok:!1,waiting:p,time:Date.now()}),await new Promise(h=>setTimeout(h,r));continue}}let u=Date.now();try{let f=await K(n,{signal:AbortSignal.timeout(tt.fetchTimeoutMs)}),p=Date.now()-u;if(jt(`#${a} \u2192 ${f.status}`),l({attempt:a,status:String(f.status),elapsedMs:p,ok:f.ok,time:Date.now()}),f.ok)return await F({healthCheck:{running:!1,timeoutMs:0,startedAt:null,logs:[]}}),await new Promise(d=>setTimeout(d,tt.postReadyHoldMs)),!0}catch(f){let p=Date.now()-u,d=f.cause?.code||f.code||f.message,h=d==="ENOTFOUND",w=h?"connecting...":d;jt(`#${a} \u2192 ${w}`),l({attempt:a,status:w,elapsedMs:p,ok:!1,waiting:h,time:Date.now()})}await new Promise(f=>setTimeout(f,r))}return await F({healthCheck:{running:!1,timeoutMs:o,startedAt:s,logs:c}}),!1}var lt=H("tunnel"),Po=null,Hs=null,Ws=0;async function Rt(e,t){if(lt.debug(`updateTunnelUrl: key=${e?.slice(0,8)} url=${t}`),Ml(e),t&&t===Hs&&Date.now()-Ws<Fi){lt.debug("updateTunnelUrl: skipped (debounce, same URL)");return}Po&&(Po.cancelled=!0);let r={cancelled:!1};Po=r;let o=ps();Tr({config:ce.urlSync,label:`urlSync ${t}`,log:n=>lt.warn(n),ctx:r,task:async()=>{let n=await K(`${C}/api/session/update`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify((()=>{let s={apiKey:V(e),tunnelUrl:t,localIp:o?`${o}:${k}`:null};return{...s,...xt(s)}})())});if(r.cancelled)return!0;if(n.ok)return Hs=t,Ws=Date.now(),lt.debug(`urlSync OK: pushed ${t} to server`),$l(t),!0;let i=await n.text().catch(()=>"");return lt.warn(`urlSync HTTP ${n.status}: ${i.slice(0,200)}`),!1}}),t&&ys(t)}var ln=null,un=null,ko=!1,Io=0;async function js(e,t){let r={apiKey:e,online:t},o=await K(`${C}/api/session/heartbeat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...r,...xt(r)})});return o.ok||lt.warn(`heartbeat online=${t} HTTP ${o.status}`),o.ok}async function Oo(){if(!(ko||!un)){ko=!0;try{await js(un,!0),Io=Date.now()}catch(e){lt.debug(`heartbeat failed: ${e?.message||e}`)}finally{ko=!1}}}function Ml(e){let t=V(e);if(t){if(ln&&un===t){Date.now()-Io>=oo&&Oo();return}Lo(),un=t,Oo(),ln=setInterval(Oo,oo),ln.unref?.()}}function Lo({offline:e=!1}={}){ln&&(clearInterval(ln),ln=null);let t=un;return un=null,Io=0,!e||!t?null:js(t,!1).catch(r=>lt.debug(`goodbye failed: ${r?.message||r}`))}var Xn=null;async function $l(e){if(Xn?.url===e)return;let t={url:e};Xn=t,ws();try{let r=await ct(e,{timeoutMs:Wi});if(Xn!==t)return;r&&bt("healthy")}catch{}finally{Xn===t&&(Xn=null),vs()}}var Xe=H("server"),Xs=Qn.default.dirname((0,Ys.fileURLToPath)(__importMetaUrl)),Nl=Qn.default.resolve(Xs,"./server.cjs"),Gs=Qn.default.resolve(Xs,"../../index.js");function _r(e){try{process.platform==="win32"?(0,qn.execSync)(`for /f "tokens=5" %a in ('netstat -aon ^| findstr :${e}') do taskkill /F /PID %a`,{stdio:"ignore",windowsHide:!0}):(0,qn.execSync)(`lsof -ti:${e} | xargs kill -9 2>/dev/null || true`,{stdio:"ignore"})}catch{}}function ut(e,t,r){let o=null,n=!1,i=!1,s=!0,a=0,c=null,l=()=>{s&&(_r(k),s=!1);let u=process.env.NODE_ENV==="development"&&_o.default.existsSync(Gs),f=u?Gs:Nl;_o.default.existsSync(f)||(Xe.error(`Server not found: ${f}`),process.exit(1));let p={...process.env,PORT:String(k)};u||delete p.NODE_ENV,o=(0,qn.spawn)(Go,[f],{cwd:Qn.default.dirname(f),stdio:["ignore","inherit","inherit"],detached:!1,windowsHide:!0,env:Vo(p)}),c&&clearTimeout(c),c=setTimeout(()=>{a=0},Bi),o.on("exit",(d,h)=>{if(c&&(clearTimeout(c),c=null),n)return;if(i){i=!1,Xe.info("Restarting server (requested)..."),setTimeout(()=>{l(),r?.()},500);return}Xe.error(`Server exited unexpectedly (code: ${d}, signal: ${h})`),a++;let w=Se(ce.server,a);Xe.warn(`Restarting server in ${w}ms (fail#${a})`),t&&t(),setTimeout(()=>{l(),r?.()},w)}),o.on("error",d=>{Xe.error(`Server error: ${d.message}`)}),e?.(o)};return l(),{getProcess:()=>o,shutdown:()=>{if(n=!0,!!o){try{o.kill("SIGTERM")}catch{}setTimeout(()=>{try{o&&o.kill("SIGKILL")}catch{}},2e3)}},restart:()=>{if(!o)return!1;i=!0;try{o.kill("SIGTERM")}catch{}return setTimeout(()=>{try{o&&i&&o.kill("SIGKILL")}catch{}},2e3),!0}}}function qs(e){return e?.restart?e.restart():!1}function Pt({serverManager:e,tunnelProcess:t,exit:r=!0,code:o=0}={}){try{Dn()}catch{}try{e?.shutdown?.()}catch{}try{t?.kill?.()}catch{}try{Te()}catch{}try{Vn()}catch{}try{_r(k)}catch{}try{Is()}catch{}try{ai()}catch{}try{Fe("agent")}catch{}try{Fe("cloudflared")}catch{}let n=Lo({offline:!0});if(r){let i=new Promise(a=>setTimeout(a,Ui)),s=n?Promise.race([n,new Promise(a=>setTimeout(a,Ki))]):null;Promise.all([i,s]).finally(()=>process.exit(o))}}var Vs=!1;function ft(e,t){if(Vs)return;Vs=!0;let r=!1,o=n=>{r||(r=!0,Xe.info(`Stopping 9Remote (${n})...`),Pt({serverManager:e,tunnelProcess:t}),Xe.info("Server stopped"))};if(process.on("SIGINT",()=>o("SIGINT")),process.on("SIGTERM",()=>o("SIGTERM")),process.on("SIGHUP",()=>o("SIGHUP")),process.platform==="win32"){process.on("SIGBREAK",()=>o("SIGBREAK"));try{import("readline").then(({createInterface:n})=>{n({input:process.stdin,output:process.stdout}).on("SIGINT",()=>o("SIGINT")),process.stdin.isTTY&&process.stdin.unref?.()}).catch(()=>{})}catch{}}process.on("uncaughtException",n=>{Xe.error(`Uncaught exception: ${n?.stack||n?.message||n}`),o("uncaughtException"),setTimeout(()=>process.exit(1),ro)}),process.on("unhandledRejection",n=>{Xe.error(`Unhandled rejection: ${n?.stack||n?.message||n}`),o("unhandledRejection"),setTimeout(()=>process.exit(1),ro)})}sn();var Js=R(require("crypto"),1),Zs=require("path");var Dl=H("pairing"),zs=(0,Zs.join)(G.STATE,"pairing.json"),Qs="ABCDEFGHIJKLMNPQRSTUVWXYZ123456789",Bl=2;function ea(){let e="";for(let t=0;t<Bl;t++)e+=Qs[Js.default.randomInt(Qs.length)];return e}function Ul(){let e=ii(zs,null);return!e||Date.now()>e.expiresAt?null:e}function Fl(e){try{Ue(zs,e)}catch(t){Dl.error(`persist pairing state: ${t.message}`)}}function ta(e,t,r,o=null){Fl({tempKey:e,tail:t,expiresAt:r,workerUrl:o})}function na(){let e=Ul();return e?{tempKey:e.tempKey,tail:e.tail,expiresAt:e.expiresAt}:null}var ra=H("session"),Kl=10;async function Jn(e,t){try{let r=await K(`${t}/api/temp-key/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify((()=>{let i={apiKey:V(e),expiryMinutes:Kl};return{...i,...xt(i)}})())});if(!r.ok){let i=await r.json().catch(()=>null);throw new Error(i?.error||`HTTP ${r.status}`)}let o=await r.json(),n=ea();return ta(o.tempKey,n,o.expiresAt,t),{...o,oneTimeKey:`${o.tempKey}${n}`}}catch(r){return ra.error(`Temp key creation failed: ${r?.message||r}`),null}}function Zn(e,t){return t?.tempKey?`${e}/login?k=${t.tempKey}#${t.oneTimeKey}`:`${e}/login`}async function Cr(e,t,r,o){try{let n=await K(`${t}/api/session/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:V(e),hostPublicKey:st(),hostX25519Key:at(),tempKey:na()?.tempKey||void 0})});if(!n.ok)throw new Error(`HTTP ${n.status}`);return r&&await K(`${t}/api/session/update`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:V(e),tunnelUrl:r,...xt({apiKey:V(e),tunnelUrl:r})})}).catch(()=>{}),o&&V(o)!==V(e)&&await K(`${t}/api/session/delete`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:V(o),...xt({apiKey:V(o)})})}).catch(()=>{}),!0}catch(n){return ra.error(`Session registration failed: ${n?.message||n}`),!1}}var kt=H("tunnel");async function Hl(e,t,r,o){let n=0;for(;;){n++;try{return await Ve(e,t,r)}catch(i){let s=Se(ce.tunnelSpawn,n);kt.warn(`spawn attempt ${n} failed: ${i?.message||i} \u2014 retry in ${s}ms`),o?.({attempt:n,delay:s}),await new Promise(a=>setTimeout(a,s))}}}function qe({onUrlUpdate:e,setTunnel:t,onRetry:r}){return async o=>{try{let n=await Hl(o,e,null,r);Qe(),t(n.child),await e(n.tunnelUrl),kt.info(`Tunnel restarted: ${n.tunnelUrl}`)}catch(n){kt.error(`Tunnel restart failed: ${n?.message||n}`)}}}var Mr=null;function Qe(){Mr&&(Mr.cancelled=!0,Mr=null)}function fn(e,{onUrlUpdate:t,onRestart:r,setActiveTunnel:o,onReady:n}){Qe();let i={cancelled:!1};return Mr=i,Tr({config:ce.tunnelRateLimit,task:async()=>{if(i.cancelled)return!0;if(Os())return kt.info("bg-tunnel: a tunnel is already live \u2014 standing down"),!0;let s=await Ve(e,t,r);if(i.cancelled){try{Te()}catch{}return!0}try{o?.(s.child),await t?.(s.tunnelUrl),await n?.(s),kt.info(`bg tunnel up: ${s.tunnelUrl}`)}catch(a){kt.error(`bg tunnel post-spawn failed: ${a?.message||a}`)}return!0},label:"bg-tunnel",log:s=>kt.info(s),ctx:i}),i}var Bo=R(Pa(),1);var Jl=H("session");function Zl(e,t="\u{1F4F1} Scan QR to connect:"){console.log(ie.orange(`
|
|
197
|
+
${t}`)),Bo.default.generate(e,{small:!0,type:"terminal",margin:0},r=>{console.log(r.trim())})}function zl(e){return new Promise(t=>{Bo.default.generate(e,{small:!0,type:"terminal",margin:0},r=>{t(ie.orangeDim("\u{1F4F1} Scan QR to connect:")+`
|
|
198
|
+
`+r.trim())})})}async function Br(e,t){let r=await Jn(e,C),o=Math.min(Ke.headerWidth,process.stdout.columns||55);if(!r){Jl.warn("Temp key creation failed \u2014 showing UI without a QR"),await $(L.READY,{tunnelUrl:t,permanentKey:e,workerUrl:C}),console.log(m.red(`
|
|
199
|
+
\u274C Failed to create one-time key \u2014 generate a new one from the menu`)),console.log(ie.orange("\u2550".repeat(o))),console.log(m.white("App URL".padEnd(14))+m.gray(`${C}/login`)),console.log(m.white("Key".padEnd(14))+m.gray(e)),console.log(ie.orange("\u2550".repeat(o)));return}let n=Zn(C,r);await $(L.READY,{tunnelUrl:t,oneTimeKey:r.oneTimeKey,oneTimeKeyExpiresAt:r.expiresAt,permanentKey:e,qrUrl:n,workerUrl:C}),Zl(n),console.log(m.gray(`
|
|
200
200
|
QR will expire in 10 minutes (one-time use)
|
|
201
201
|
`)),console.log(ie.orange("\u2550".repeat(o))),console.log(m.white("App URL".padEnd(14))+m.gray(`${C}/login`)),console.log(m.white("One-Time Key".padEnd(14))+ie.orange.bold(r.oneTimeKey)),console.log(m.white("Key".padEnd(14))+m.gray(e)),console.log(ie.orange("\u2550".repeat(o)))}async function pn(e,t,r,o=""){let n=Math.min(Ke.headerWidth,process.stdout.columns||Ke.headerWidth),i=[];return e&&r?(i.push(await zl(r)),i.push(m.gray(`
|
|
202
202
|
QR expires in 30 minutes (one-time use)
|
|
203
203
|
`))):i.push(m.gray(`
|
|
204
204
|
(One-time key used \u2014 generate a new one from menu)
|
|
205
|
-
`)),i.push(ie.orange("\u2550".repeat(n)),m.white("App URL".padEnd(14))+m.gray(`${C}/login`)),
|
|
206
|
-
`)}var Ne=H("cmd");function mt(e,t,r,o){let n=!1;setInterval(async()=>{if(n)return;let i=
|
|
207
|
-
\u{1F310} UI ready at ${i}`));let s=null;await F({permanentKey:e.key,step:L.STOPPED,theme:r}),ft(n,null),mt(()=>s,a=>{s=a},e.key,()=>n),process.argv.includes("--start")&&$t("start-tunnel"),await new Promise(()=>{})}sn();async function La(){ke("agent",process.pid),
|
|
205
|
+
`)),i.push(ie.orange("\u2550".repeat(n)),m.white("App URL".padEnd(14))+m.gray(`${C}/login`)),Xo.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(t),ie.orange("\u2550".repeat(n))),i.join(`
|
|
206
|
+
`)}var Ne=H("cmd");function mt(e,t,r,o){let n=!1;setInterval(async()=>{if(n)return;let i=ci();if(i){n=!0;try{if(i==="stop-tunnel")await ka(e,t);else if(i==="restart-tunnel")await ka(e,t),await Oa(e,t,r);else if(i==="start-tunnel"){if(await Oa(e,t,r)==="alreadyRunning"){n=!1;return}}else i==="regenerate-key"?await eu():i==="shutdown"?tu(e,t):i==="update"?await Qi():i==="restart"&&qs(o?.())}catch(s){Ne.error(`cmd "${i}" failed: ${s?.message||s}`)}finally{n=!1}}},Ee.cmdMs)}async function ka(e,t){Qe(),Dn();let r=e();r&&(r.kill(),t(null),Ne.info("Tunnel stopped")),await $(L.STOPPED,{tunnelUrl:"",oneTimeKey:"",oneTimeKeyExpiresAt:null,qrUrl:""}),Ir({tunnelUrl:"",running:!0})}async function Oa(e,t,r){let o=e();if(o)if(o.killed||o.exitCode!=null)t(null);else{let n=await q("/api/ui/state");return await $(L.READY,{tunnelUrl:n?.tunnelUrl||""}),"alreadyRunning"}Qe(),Ne.info("Starting...");try{await $(L.PREPARING),await Gn(Rr),await $(L.CONNECTING);let n=await K(`${C}/api/session/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:V(r),hostPublicKey:st(),hostX25519Key:at()})});if(!n.ok)throw new Error(`Session create failed: ${n.status}`);await Y("/api/signaling/retry",{}),await $(L.TUNNELING);let i=async l=>{await Rt(r,l),await F({tunnelUrl:l}),qt(l),Ir({tunnelUrl:l,running:!0})},s=({attempt:l,delay:u})=>{F({tunnelRetry:{attempt:l,delay:u,at:Date.now()}})},a=null;try{a=await Ve(k,i,qe({onUrlUpdate:i,setTunnel:l=>t(l),onRetry:s}))}catch(l){Ne.error(`Tunnel spawn failed: ${l?.message||l} \u2014 QR RTC-only, bg retry`)}F({tunnelRetry:null});let c="";a&&(t(a.child),c=a.tunnelUrl,await $(L.VERIFYING),await ct(c)||(Ne.warn("Tunnel health check timed out \u2014 bg reconnect"),c="",t(null),a=null)),await Br(r,c),await $(L.READY,{tunnelUrl:c}),a||fn(k,{onUrlUpdate:i,onRestart:qe({onUrlUpdate:i,setTunnel:l=>t(l),onRetry:s}),setActiveTunnel:t,onReady:async l=>{await $(L.READY,{tunnelUrl:l.tunnelUrl})}})}catch(n){Ne.error(`Failed to start: ${n.message}`),await $(L.STOPPED)}}async function eu(){let e=await Ct(),t=Mt(e),r=sr();if(!await Cr(t,C,si()?.tunnelUrl,r?.key)){Ne.error("Key regeneration aborted \u2014 could not register the new key");return}wt(e,t,r?.name||"Default"),await F({permanentKey:t,oneTimeKey:"",oneTimeKeyExpiresAt:null,qrUrl:"",pairingUsed:!0}),Ne.info(`Key regenerated: ${or(t)}`)}function tu(e,t){Qe(),Ne.info("Shutting down 9Remote completely...");let r=e();t(null),Pt({tunnelProcess:r}),Ne.info("9Remote stopped")}async function Ia(){ke("agent",process.pid),Wt(Re());let e=await ze(),t=process.argv.find(a=>a.startsWith("--theme=")),r=t?t.split("=")[1]:null,o=await se(),n=o?{getProcess:()=>null,shutdown:()=>{}}:ut(null,null);o||await new Promise(a=>setTimeout(a,de.serverBootMs));let i=`http://localhost:${k}`;console.log(m.green(`
|
|
207
|
+
\u{1F310} UI ready at ${i}`));let s=null;await F({permanentKey:e.key,step:L.STOPPED,theme:r}),ft(n,null),mt(()=>s,a=>{s=a},e.key,()=>n),process.argv.includes("--start")&&$t("start-tunnel"),await new Promise(()=>{})}sn();async function La(){ke("agent",process.pid),Di().catch(()=>{});let e=await ze(),t=process.argv.find(l=>l.startsWith("--theme=")),r=t?t.split("=")[1]:null,o=await se(),n=o?{getProcess:()=>null,shutdown:()=>{}}:ut(null,null);o||await new Promise(l=>setTimeout(l,de.serverBootMs));let i=`http://localhost:${k}`,s=null;await F({permanentKey:e.key,step:L.STOPPED,theme:r});let a=()=>{let l=s;s=null,Pt({serverManager:n,tunnelProcess:l,exit:!1})};ft(n,null),mt(()=>s,l=>{s=l},e.key,()=>n);try{Fe("cloudflared")}catch{}process.argv.includes("--start")&&$t("start-tunnel"),await bo({port:k,onQuit:a,onOpenUI:()=>Yn(i)})&&xo({title:"9Remote is running",message:`Open ${i} or use the tray icon to manage.`}),await new Promise(()=>{})}var ht=H("mode");async function nu(e){ht.info("Starting server..."),await $(L.PREPARING);try{Te(),await new Promise(a=>setTimeout(a,de.killCloudflaredMs))}catch{}try{let a=await K(`${C}/api/session/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:V(e),hostPublicKey:st(),hostX25519Key:at()})});if(!a.ok)return ht.error(`Session create failed: ${a.status}`),null}catch(a){return ht.error(`Session create failed: ${a.message}`),null}let t=await se(),r=t?{getProcess:()=>null,shutdown:()=>{}}:ut(null,null);t||await new Promise(a=>setTimeout(a,de.serverBootMs)),ht.info("Starting tunnel..."),await $(L.CONNECTING);let o={current:null},n="",i=async a=>{ht.info(`Tunnel URL rotated: ${a}`),await Rt(e,a),F({tunnelUrl:a}),qt(a)},s=null;try{s=await Ve(k,i,qe({onUrlUpdate:i,setTunnel:a=>{o.current=a}}))}catch(a){ht.error(`Tunnel spawn failed: ${a.message} \u2014 RTC-only, bg retry`)}return s&&(o.current=s.child,n=s.tunnelUrl,await ct(n)||(ht.warn("Tunnel health check timed out \u2014 bg reconnect"),o.current=null,n="",s=null)),s||fn(k,{onUrlUpdate:i,onRestart:qe({onUrlUpdate:i,setTunnel:a=>{o.current=a}}),setActiveTunnel:a=>{o.current=a},onReady:async a=>{await $(L.READY,{tunnelUrl:a.tunnelUrl})}}),n&&await Rt(e,n),await $(L.READY,{tunnelUrl:n}),xn({apiKey:e,tunnelUrl:n,serverPid:r.getProcess()?.pid,tunnelPid:o.current?.pid}),{serverManager:r,tunnelRef:o,tunnelUrl:n}}async function _a(){Wt(Re());let e=await ze();ht.info(`Using key: ${or(e.key)} (${e.name})`);let t=await nu(e.key);t||process.exit(1);let{serverManager:r,tunnelRef:o,tunnelUrl:n}=t;await Br(e.key,n),ft(r,o.current),mt(()=>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;F({uptime:`${a}:${String(c).padStart(2,"0")}:${String(l).padStart(2,"0")}`})},Ee.statsMs),await new Promise(()=>{})}var Ca=R(require("path"),1),Ma=R(require("fs"),1);sn();async function $a(){let e=`http://localhost:${k}`;await se()&&(_r(k),await new Promise(c=>setTimeout(c,500)));let t=["--tray"],r=process.argv.find(c=>c.startsWith("--theme="));r&&t.push(r);let o=Pn;try{Ma.default.mkdirSync(Ca.default.dirname(o),{recursive:!0})}catch{}let n=null;try{n=$i(t),n&&ke("agent",n)}catch(c){console.log(m.red(`
|
|
208
208
|
\u274C Failed to launch background: ${c.message}`)),process.exit(1)}let i=Date.now()+Ee.bgServerReadyTimeoutMs,s=!1;for(;Date.now()<i;){if(await se()){s=!0;break}await new Promise(c=>setTimeout(c,Ee.bgServerReadyIntervalMs))}s||(console.log(m.red(`
|
|
209
209
|
\u274C Background server failed to start.`)),console.log(m.gray(` Check log: ${o}
|
|
210
|
-
`)),process.exit(1)),$t("start-tunnel"),
|
|
210
|
+
`)),process.exit(1)),$t("start-tunnel"),Yn(e);let a=n?` (PID: ${n})`:"";console.log(m.green(`
|
|
211
211
|
\u{1F310} 9Remote running at ${e}${a}`)),console.log(m.gray(`\u{1F4A1} Log: ${o}
|
|
212
|
-
`)),await new Promise(c=>setTimeout(c,de.bgSpawnFlushMs)),process.exit(0)}var Na=R(require("readline"),1);var
|
|
212
|
+
`)),await new Promise(c=>setTimeout(c,de.bgSpawnFlushMs)),process.exit(0)}var Na=R(require("readline"),1);var Uo=H("mode"),dn=null;async function Da(){ke("agent",process.pid),console.clear(),ss(),us(!0),await $(L.PREPARING);let e=await ze(),t=null,r={getProcess:()=>null,shutdown:()=>{}};if(!await se()){r=ut(null,null,()=>{if(process.stdin.isTTY){try{process.stdin.setRawMode(!1)}catch{}try{process.stdin.setRawMode(!0),process.stdin.resume()}catch{}}try{Na.default.emitKeypressEvents(process.stdin)}catch{}t?.()});let g=Date.now()+Ee.serverReadyTimeoutMs;for(;Date.now()<g&&!await se();)await new Promise(b=>setTimeout(b,Ee.serverReadyIntervalMs))}try{Te(),await new Promise(g=>setTimeout(g,de.killCloudflaredTuiMs))}catch{}await Gn(Rr),await $(L.CONNECTING);try{let g=await K(`${C}/api/session/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:V(e.key),hostPublicKey:st(),hostX25519Key:at()})});if(!g.ok)throw new Error(`Session create failed: ${g.status}`);await Y("/api/signaling/retry",{})}catch(g){Uo.error(`Failed to connect: ${g.message}`),process.exit(1)}await $(L.TUNNELING);let n=await Jn(e.key,C),i=Zn(C,n),s=n?.oneTimeKey||"",a=i,c="",l=null,u={current:null},f=async g=>{c=g,await Rt(e.key,g),await F({tunnelUrl:g}),qt(g),l!==null&&(l=await pn(s,e.key,a,c),t?.())},p=null;try{p=await Ve(k,f,qe({onUrlUpdate:f,setTunnel:g=>{u.current=g}}))}catch(g){Uo.error(`Tunnel spawn failed: ${g?.message||g} \u2014 QR RTC-only, bg retry`)}p&&(u.current=p.child,c=p.tunnelUrl,xn({apiKey:e.key,tunnelUrl:p.tunnelUrl,tunnelPid:p.child?.pid}),await $(L.VERIFYING),await ct(p.tunnelUrl)?await f(p.tunnelUrl):(Uo.warn("Tunnel health check timed out \u2014 bg reconnect"),u.current=null,c="",p=null)),p||fn(k,{onUrlUpdate:f,onRestart:qe({onUrlUpdate:f,setTunnel:g=>{u.current=g}}),setActiveTunnel:g=>{u.current=g},onReady:async g=>{xn({apiKey:e.key,tunnelUrl:g.tunnelUrl,tunnelPid:g.child?.pid}),await $(L.READY,{tunnelUrl:g.tunnelUrl})}}),await $(L.READY,{tunnelUrl:c,oneTimeKey:n?.oneTimeKey||"",oneTimeKeyExpiresAt:n?.expiresAt||null,permanentKey:e.key,qrUrl:i,workerUrl:C}),await new Promise(g=>setTimeout(g,de.trayReadyMs)),l=await pn(s,e.key,a,c);let d=[],h=!1,w=()=>{h||t?.()},T=async(g,b,S)=>{if(!h){h=!0;try{let I=await as(b,S);await Y(`/api/device/${I?"approve":"reject"}`,{socketId:g})}catch{}finally{h=!1,t?.()}}},O=cs(k,async(g,b)=>{if(g==="log"&&b.message)d.push(b.message),d.length>Ke.maxLogLines&&d.shift();else if(g==="state"){let S=b.permanentKey||e.key,I=b.oneTimeKey!==void 0?b.oneTimeKey:s,_=b.qrUrl!==void 0?b.qrUrl:a,U=b.tunnelUrl!==void 0?b.tunnelUrl:c;(I!==s||S!==e.key||U!==c)&&(s=I,a=_,c=U,b.permanentKey&&(e={...e,key:b.permanentKey}),l=await pn(s,e.key,a,c),w())}else g==="permissions"?(h||Promise.resolve(dn?.()).catch(()=>{}),w()):g==="autostart"||g==="sleepInhibit"?(h||Promise.resolve(dn?.()).catch(()=>{}),w()):g==="deviceApproval"&&b.action==="pending"&&await T(b.socketId,b.deviceId,b.ip)}),A=setInterval(async()=>{if(!h)try{let b=(await q("/api/device/pending"))?.pending?.[0];b&&await T(b.socketId,b.deviceId,b.ip)}catch{}},Ee.pendingApprovalMs);ft({getProcess:r.getProcess,shutdown:()=>{Qe(),r.shutdown();try{u.current?.kill()}catch{}O(),clearInterval(A)}}),mt(()=>u.current,g=>{u.current=g},e.key,()=>r),await ru(e,c,()=>l,g=>{l=g},g=>{t=g},()=>{Qe();try{O()}catch{}try{clearInterval(A)}catch{}Pt({serverManager:r,tunnelProcess:u.current,exit:!1})},d)}async function ru(e,t,r,o,n,i,s){for(;;){let{desktopEnabled:a,remoteAvailable:c,autoApprove:l}=await fo(),u=[{label:"Open Web UI",action:"webui"},{label:"Keys \u25B6",action:"keys"}];c&&u.push({label:`Remote Desktop: ${a?m.green("ON"):m.gray("OFF")} \u25B6`,action:"desktop"}),u.push({label:`Manage Devices \u25B6 ${m.dim("(Auto-approve:")} ${l?m.green("ON"):m.gray("OFF")}${m.dim(")")}`,action:"devices"},{label:"Settings \u25B6",action:"settings"},{label:"View Logs",action:"logs"},{label:m.gray("Exit"),action:"exit"});let f=null;n(()=>f?.());let p=await _e("",u,0,r,h=>{f=h},i),d=p>=0?u[p].action:"exit";if(d==="webui"){let h=`http://localhost:${k}`,{openBrowser:w}=await Promise.resolve().then(()=>(sn(),Fs));w(h),console.log(m.green(`
|
|
213
213
|
\u{1F310} Opening ${h}
|
|
214
214
|
`))}else if(d==="keys")await ou(e,t,o,r);else if(d==="desktop")await au();else if(d==="devices")await cu();else if(d==="settings")await su();else if(d==="logs")await lu();else{try{i?.()}catch{}console.log(m.gray(`
|
|
215
215
|
Goodbye!
|
|
216
|
-
`)),process.exit(0)}}}async function ou(e,t,r,o){let n=[{label:"New One-Time Key",action:"otk"},{label:"Regenerate Permanent Key",action:"regen"},{label:m.gray("\u2190 Back"),action:"back"}],i=await _e("Keys",n,0,o),s=i>=0?n[i].action:"back";if(s==="otk"){let a=await
|
|
216
|
+
`)),process.exit(0)}}}async function ou(e,t,r,o){let n=[{label:"New One-Time Key",action:"otk"},{label:"Regenerate Permanent Key",action:"regen"},{label:m.gray("\u2190 Back"),action:"back"}],i=await _e("Keys",n,0,o),s=i>=0?n[i].action:"back";if(s==="otk"){let a=await Jn(e.key,C);if(a){let c=Zn(C,a);r(await pn(a.oneTimeKey,e.key,c,t)),await F({oneTimeKey:a.oneTimeKey,oneTimeKeyExpiresAt:a.expiresAt,qrUrl:c})}}else if(s==="regen"&&await lo(m.yellow("Replace current key and disconnect all sessions? Continue?"))){let c=await Ct(),l=Mt(c);if(!await Cr(l,C,t,e.key)){r(m.red("Key regeneration failed \u2014 could not reach the server"));return}let u=wt(c,l,e.name||"Default");Object.assign(e,u),r(await pn("",e.key,"",t)),await F({permanentKey:e.key,oneTimeKey:"",oneTimeKeyExpiresAt:null,qrUrl:"",pairingUsed:!0})}}var Ba={"30m":"Off after 30 min idle","1h":"Off after 1 hour idle","2h":"Off after 2 hours idle","4h":"Off after 4 hours idle","24h":"Off after 24 hours idle",never:"Never off"};async function iu(e,t){let r=t.map(s=>({label:Ba[s]||s,action:s}));r.push({label:m.gray("\u2190 Back"),action:"back"});let o=Math.max(0,t.indexOf(e)),n=await _e("Prevent sleep",r,o),i=n>=0?r[n].action:"back";i!=="back"&&await Y("/api/sleep-inhibit",{mode:i})}async function su(){for(;;){let e=!1,t="never",r=[],o=()=>[{label:`Launch on system startup: ${e?m.green("ON"):m.gray("OFF")}`,action:"autostart"},{label:`Prevent sleep: ${m.green(Ba[t]||t)} \u25B6`,action:"sleep"},{label:m.gray("\u2190 Back"),action:"back"}],n=o(),i=null,s=async()=>{let l=await fo();e=!!l.autoStart,t=l.sleepInhibitMode||"never",r=l.sleepInhibitPresets||[],n=o(),i?.()};await s(),dn=s;let a=await _e("Settings",n,0,"",l=>{i=l});dn=null;let c=a>=0?n[a].action:"back";if(c==="autostart")await Y("/api/autostart",{enabled:!e});else if(c==="sleep")await iu(t,r);else return}}async function au(){for(;;){let e=!1,t={screenRecording:!1,accessibility:!1},r=()=>({toggle:`Toggle: ${e?m.green("ON \u2192 turn OFF"):m.gray("OFF \u2192 turn ON")}`,sr:`Screen Recording ${t.screenRecording?m.green("\u2713"):m.red("\u2717 (click to grant)")}`,ax:`Mouse & Keyboard control ${t.accessibility?m.green("\u2713"):m.red("\u2717 (click to grant)")}`}),o=[{label:""},{label:""},{label:""},{label:m.gray("\u2190 Back")}],n=null,i=async()=>{let a=await q("/api/ui/state")||{};e=!!a.desktopEnabled,t={screenRecording:!!a.screenRecording,accessibility:!!a.accessibility};let c=r();o[0].label=c.toggle,o[1].label=c.sr,o[2].label=c.ax,n?.()};await i(),dn=i;let s=await _e("Remote Desktop",o,0,"",a=>{n=a});if(dn=null,s===0)await Y("/api/desktop/toggle",{enabled:!e});else if(s===1&&!t.screenRecording)await Y("/api/permissions/request",{type:"screenRecording"})||Sr("screenRecording");else if(s===2&&!t.accessibility)await Y("/api/permissions/request",{type:"accessibility"})||Sr("accessibility");else if(s===3||s===-1)return}}async function cu(){for(;;){let[e,t]=await Promise.all([q("/api/device/approved"),q("/api/device/auto-approve")]),r=e?.devices||[],o=!!t?.enabled,n=[{label:`Auto-approve new devices: ${o?m.green("ON"):m.gray("OFF")}`,action:"toggle"},...r.map(a=>{let c=a.deviceId.slice(0,8),l=a.approvedAt?new Date(a.approvedAt).toLocaleString():"unknown";return{label:`${c}... ${m.dim(l)}`,action:"remove",deviceId:a.deviceId}}),{label:m.gray("\u2190 Back"),action:"back"}],i=await _e(`Approved Devices (${r.length})`,n,0);if(i===-1)return;let s=n[i];if(s.action==="back")return;if(s.action==="toggle"){await Y("/api/device/auto-approve",{enabled:!o});continue}s.action==="remove"&&await lo(m.yellow(`Remove device ${s.deviceId.slice(0,8)}...?`))&&await Y("/api/device/remove",{deviceId:s.deviceId})}}async function lu(){let e=gi(Yo),t=e.length?e.join(`
|
|
217
217
|
`):m.gray(" No logs yet"),r=`
|
|
218
|
-
${m.dim("Log file:")} ${m.cyan(
|
|
219
|
-
${m.dim(`Tail: tail -f ${
|
|
218
|
+
${m.dim("Log file:")} ${m.cyan(Pn)}
|
|
219
|
+
${m.dim(`Tail: tail -f ${Pn}`)}`;await _e("Logs",[{label:m.gray("\u2190 Back")}],0,t+r)}async function Ua(){let e=Re(),t=await qi(),r=co(e,t?.latest??null),o=[];t?.latest&&o.push({label:m.yellow(`Update to v${t.latest}`),action:"update"}),o.push({label:"Open Web UI (background)",action:"ui"},{label:"Terminal UI",action:"tui"},{label:m.gray("Exit"),action:"exit"});let n=await _e("",o,0,r),i=n>=0?o[n].action:"exit";if(i==="update"){let s=Math.min(Ke.headerWidth,process.stdout.columns||Ke.headerWidth);Er(),console.log(ie.orange(`
|
|
220
220
|
`+"\u2550".repeat(s))),console.log(m.gray(` \u2713 Stopped running instances
|
|
221
221
|
`)),console.log(m.yellow(` \u2B06 Run this command to update:
|
|
222
222
|
`)),console.log(m.white.bold(` npm i -g ${Be}
|
|
223
223
|
`)),console.log(ie.orange("\u2550".repeat(s))+`
|
|
224
|
-
`),process.exit(0)}else i==="ui"?await $a():i==="tui"?await Da():process.exit(0)}var Fa=[["9remote","Interactive menu (TUI). Falls back to help with no TTY."],["9remote start","Run server + tunnel in foreground (headless)."],["9remote key","Show permanent key + connect URL."],["9remote key --new","Regenerate the permanent key."],["9remote otk","Create a fresh one-time connect key + URL."],["9remote devices","List approved devices."],["9remote auto-approve <on|off>","Toggle device auto-approve."],["9remote approve <socketId>","Approve a pending device."],["9remote help","Show this help."]];function
|
|
224
|
+
`),process.exit(0)}else i==="ui"?await $a():i==="tui"?await Da():process.exit(0)}var Fa=[["9remote","Interactive menu (TUI). Falls back to help with no TTY."],["9remote start","Run server + tunnel in foreground (headless)."],["9remote key","Show permanent key + connect URL."],["9remote key --new","Regenerate the permanent key."],["9remote otk","Create a fresh one-time connect key + URL."],["9remote devices","List approved devices."],["9remote auto-approve <on|off>","Toggle device auto-approve."],["9remote approve <socketId>","Approve a pending device."],["9remote help","Show this help."]];function Fo(){Wt(Re()),console.log(m.white.bold(`
|
|
225
225
|
Usage:
|
|
226
|
-
`));let e=Math.max(...Fa.map(([t])=>t.length))+2;for(let[t,r]of Fa)console.log(" "+m.cyan(t.padEnd(e))+m.gray(r));console.log()}async function
|
|
226
|
+
`));let e=Math.max(...Fa.map(([t])=>t.length))+2;for(let[t,r]of Fa)console.log(" "+m.cyan(t.padEnd(e))+m.gray(r));console.log()}async function zn(){return await se()?!0:(console.log(m.red(`
|
|
227
227
|
\u2717 Server not running. Start it first: `)+m.cyan("9remote start")+`
|
|
228
|
-
`),!1)}async function uu(e){if(!await
|
|
228
|
+
`),!1)}async function uu(e){if(!await zn())return;if(e){let r=await Y("/api/key/regenerate"),o=r&&r.ok?await r.json():null;if(!o?.permanentKey){console.log(m.red(`
|
|
229
229
|
\u2717 Regenerate failed
|
|
230
230
|
`));return}console.log(m.green(`
|
|
231
231
|
\u2713 New key: `)+m.white.bold(o.permanentKey)+`
|
|
232
|
-
`);return}let t=await
|
|
232
|
+
`);return}let t=await q("/api/ui/state")||{};if(!t.permanentKey){console.log(m.red(`
|
|
233
233
|
\u2717 No key yet. Run: `)+m.cyan("9remote start")+`
|
|
234
234
|
`);return}console.log(m.white(`
|
|
235
235
|
Key`.padEnd(14))+m.white.bold(t.permanentKey)),t.qrUrl&&console.log(m.white("Connect URL".padEnd(14))+m.cyan(t.qrUrl)),console.log(m.white("App URL".padEnd(14))+m.gray(`${C}/login`)+`
|
|
236
|
-
`)}async function fu(){if(!await
|
|
236
|
+
`)}async function fu(){if(!await zn())return;let e=await Y("/api/key/one-time"),t=e&&e.ok?await e.json():null;if(!t?.qrUrl){console.log(m.red(`
|
|
237
237
|
\u2717 Failed to create one-time key
|
|
238
238
|
`));return}console.log(m.green(`
|
|
239
239
|
\u2713 One-time key (30 min): `)+m.white.bold(t.oneTimeKey)),console.log(m.white("Connect URL ")+m.cyan(t.qrUrl)+`
|
|
240
|
-
`)}async function pu(){if(!await
|
|
240
|
+
`)}async function pu(){if(!await zn())return;let t=(await q("/api/device/approved")||{}).devices||[],r=await q("/api/device/auto-approve")||{};if(console.log(m.white(`
|
|
241
241
|
Auto-approve: `)+(r.enabled?m.green("ON"):m.gray("OFF"))),!t.length){console.log(m.gray(`No approved devices
|
|
242
|
-
`));return}console.log(m.white(`Approved devices (${t.length}):`));for(let o of t)console.log(" "+m.cyan(o.deviceId));console.log()}async function du(e){if(!await
|
|
242
|
+
`));return}console.log(m.white(`Approved devices (${t.length}):`));for(let o of t)console.log(" "+m.cyan(o.deviceId));console.log()}async function du(e){if(!await zn())return;let t=e==="on";if(e!=="on"&&e!=="off"){console.log(m.red(`
|
|
243
243
|
\u2717 Usage: 9remote auto-approve <on|off>
|
|
244
244
|
`));return}let r=await Y("/api/device/auto-approve",{enabled:t}),o=r&&r.ok?await r.json():null;console.log(m.green(`
|
|
245
245
|
\u2713 Auto-approve: `)+(o?.enabled?m.green("ON"):m.gray("OFF"))+`
|
|
246
|
-
`)}async function mu(e){if(!await
|
|
246
|
+
`)}async function mu(e){if(!await zn())return;if(!e){let n=(await q("/api/device/pending")||{}).pending||[];if(!n.length){console.log(m.gray(`
|
|
247
247
|
No pending devices
|
|
248
248
|
`));return}console.log(m.white(`
|
|
249
249
|
Pending devices (${n.length}):`));for(let i of n)console.log(" "+m.cyan(i.socketId)+m.gray(` ${i.deviceId?.slice(0,8)||""} ${i.ip||""}`));console.log(m.gray(`
|
|
@@ -252,5 +252,5 @@ Approve with: `)+m.cyan("9remote approve <socketId>")+`
|
|
|
252
252
|
\u2713 Approved
|
|
253
253
|
`):m.red(`
|
|
254
254
|
\u2717 Approve failed (invalid socketId?)
|
|
255
|
-
`))}async function Ka(e){let t=e[2],r=e.slice(3);switch(t){case"help":case"-h":case"--help":return
|
|
256
|
-
`),process.exit(0));
|
|
255
|
+
`))}async function Ka(e){let t=e[2],r=e.slice(3);switch(t){case"help":case"-h":case"--help":return Fo(),!0;case"key":return await uu(r.includes("--new")),!0;case"otk":return await fu(),!0;case"devices":return await pu(),!0;case"auto-approve":return await du(r[0]),!0;case"approve":return await mu(r[0]),!0;default:return!1}}var Ko=process.argv[2];(Ko==="version"||Ko==="--version"||Ko==="-v")&&(process.stdout.write(Re()+`
|
|
256
|
+
`),process.exit(0));hi();async function hu(){let e=process.argv[2];if(await Ka(process.argv))return;process.argv.includes("--tray")||process.argv.includes("--auto")||process.argv.includes("--start")||Er(),e==="ui"?await Ia():e==="start"||process.argv.includes("--auto")?await _a():process.argv.includes("--tray")||process.argv.includes("--start")?await La():process.stdin.isTTY?await Ua():Fo()}hu().catch(console.error);
|