From 85fd3a69c15499af2ef8a14e993e0d1eb7947944 Mon Sep 17 00:00:00 2001 From: snltty <1069410172@qq.com> Date: Tue, 24 Sep 2024 09:15:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E4=BB=A3=E7=90=86=E7=A9=BF=E9=80=8Fbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dotnet.yml | 30 ++++++++--------- .github/workflows/nuget.yml | 6 ++-- linker.libs/linker.libs.csproj | 6 ++-- linker.tray.win/default.aproj | 2 +- linker.tray.win/dist/linker.tray.win.exe | Bin 5889536 -> 5890560 bytes .../{244.22a4124f.css => 388.50c71cf1.css} | 2 +- linker.tray.win/web/css/706.e7520456.css | 1 + linker.tray.win/web/css/948.2c420b5d.css | 1 - linker.tray.win/web/index.html | 2 +- linker.tray.win/web/js/244.7bc7c79b.js | 1 - linker.tray.win/web/js/388.6d23a91f.js | 1 + linker.tray.win/web/js/706.a2a78718.js | 1 + linker.tray.win/web/js/948.1788c053.js | 1 - linker.tray.win/web/js/app.55b9dbd0.js | 1 - linker.tray.win/web/js/app.f8c0e614.js | 1 + linker.tun/linker.tun.csproj | 6 ++-- linker.tunnel/linker.tunnel.csproj | 6 ++-- linker/linker.csproj | 10 +++--- linker/plugins/action/SignInArgsAction.cs | 3 +- linker/plugins/relay/RelayStartup.cs | 3 +- .../plugins/relay/messenger/RelayMessenger.cs | 24 +++----------- .../relay/validator/IRelayValidator.cs | 31 ++++++++++++++++-- .../relay/validator/RelayValidatorTransfer.cs | 5 +-- .../sforward/config/SForwardServerCahing.cs | 15 +++++++-- .../sforward/proxy/SForwardProxyUdp.cs | 4 +-- .../plugins/signIn/messenger/SignCaching.cs | 5 +++ version.txt | 8 ++--- 27 files changed, 103 insertions(+), 73 deletions(-) rename linker.tray.win/web/css/{244.22a4124f.css => 388.50c71cf1.css} (97%) create mode 100644 linker.tray.win/web/css/706.e7520456.css delete mode 100644 linker.tray.win/web/css/948.2c420b5d.css delete mode 100644 linker.tray.win/web/js/244.7bc7c79b.js create mode 100644 linker.tray.win/web/js/388.6d23a91f.js create mode 100644 linker.tray.win/web/js/706.a2a78718.js delete mode 100644 linker.tray.win/web/js/948.1788c053.js delete mode 100644 linker.tray.win/web/js/app.55b9dbd0.js create mode 100644 linker.tray.win/web/js/app.f8c0e614.js diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index dc778652..749b840a 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -33,11 +33,11 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.ACTIONS_TOKEN }} with: - tag_name: v1.4.2 - release_name: v1.4.2.${{ steps.date.outputs.today }} + tag_name: v1.4.3 + release_name: v1.4.3.${{ steps.date.outputs.today }} draft: false prerelease: false - body: "1. 优化服务器代理穿透,延长UDP超时时间,优化穿透添加逻辑\r\n2. 当提示端口被占用时,可以稍等一段时间再尝试启动穿透\r\n3. 优化配置同步" + body: "1. 优化服务器代理穿透\r\n2. 当提示端口被占用时,可以稍等一段时间再尝试启动穿透\r\n3. 其它一些更改" - name: upload-win-x86-oss id: upload-win-x86-oss uses: tvrcgo/oss-action@v0.1.1 @@ -47,7 +47,7 @@ jobs: key-secret: ${{ secrets.ALIYUN_OSS_SECRET }} bucket: ide-qbcode asset-path: ./public/publish-zip/linker-win-x86.zip - target-path: /downloads/linker/v1.4.2/linker-win-x86.zip + target-path: /downloads/linker/v1.4.3/linker-win-x86.zip - name: upload-win-x86 id: upload-win-x86 uses: actions/upload-release-asset@master @@ -67,7 +67,7 @@ jobs: key-secret: ${{ secrets.ALIYUN_OSS_SECRET }} bucket: ide-qbcode asset-path: ./public/publish-zip/linker-win-x64.zip - target-path: /downloads/linker/v1.4.2/linker-win-x64.zip + target-path: /downloads/linker/v1.4.3/linker-win-x64.zip - name: upload-win-x64 id: upload-win-x64 uses: actions/upload-release-asset@master @@ -87,7 +87,7 @@ jobs: key-secret: ${{ secrets.ALIYUN_OSS_SECRET }} bucket: ide-qbcode asset-path: ./public/publish-zip/linker-win-arm64.zip - target-path: /downloads/linker/v1.4.2/linker-win-arm64.zip + target-path: /downloads/linker/v1.4.3/linker-win-arm64.zip - name: upload-win-arm64 id: upload-win-arm64 uses: actions/upload-release-asset@master @@ -107,7 +107,7 @@ jobs: key-secret: ${{ secrets.ALIYUN_OSS_SECRET }} bucket: ide-qbcode asset-path: ./public/publish-zip/linker-linux-x64.zip - target-path: /downloads/linker/v1.4.2/linker-linux-x64.zip + target-path: /downloads/linker/v1.4.3/linker-linux-x64.zip - name: upload-linux-x64 id: upload-linux-x64 uses: actions/upload-release-asset@master @@ -127,7 +127,7 @@ jobs: key-secret: ${{ secrets.ALIYUN_OSS_SECRET }} bucket: ide-qbcode asset-path: ./public/publish-zip/linker-linux-arm.zip - target-path: /downloads/linker/v1.4.2/linker-linux-arm.zip + target-path: /downloads/linker/v1.4.3/linker-linux-arm.zip - name: upload-linux-arm id: upload-linux-arm uses: actions/upload-release-asset@master @@ -147,7 +147,7 @@ jobs: key-secret: ${{ secrets.ALIYUN_OSS_SECRET }} bucket: ide-qbcode asset-path: ./public/publish-zip/linker-linux-arm64.zip - target-path: /downloads/linker/v1.4.2/linker-linux-arm64.zip + target-path: /downloads/linker/v1.4.3/linker-linux-arm64.zip - name: upload-linux-arm64 id: upload-linux-arm64 uses: actions/upload-release-asset@master @@ -167,7 +167,7 @@ jobs: key-secret: ${{ secrets.ALIYUN_OSS_SECRET }} bucket: ide-qbcode asset-path: ./public/publish-zip/linker-linux-musl-x64.zip - target-path: /downloads/linker/v1.4.2/linker-linux-musl-x64.zip + target-path: /downloads/linker/v1.4.3/linker-linux-musl-x64.zip - name: upload-linux-musl-x64 id: upload-linux-musl-x64 uses: actions/upload-release-asset@master @@ -187,7 +187,7 @@ jobs: key-secret: ${{ secrets.ALIYUN_OSS_SECRET }} bucket: ide-qbcode asset-path: ./public/publish-zip/linker-linux-musl-arm.zip - target-path: /downloads/linker/v1.4.2/linker-linux-musl-arm.zip + target-path: /downloads/linker/v1.4.3/linker-linux-musl-arm.zip - name: upload-linux-musl-arm id: upload-linux-musl-arm uses: actions/upload-release-asset@master @@ -207,7 +207,7 @@ jobs: key-secret: ${{ secrets.ALIYUN_OSS_SECRET }} bucket: ide-qbcode asset-path: ./public/publish-zip/linker-linux-musl-arm64.zip - target-path: /downloads/linker/v1.4.2/linker-linux-musl-arm64.zip + target-path: /downloads/linker/v1.4.3/linker-linux-musl-arm64.zip - name: upload-linux-musl-arm64 id: upload-linux-musl-arm64 uses: actions/upload-release-asset@master @@ -227,7 +227,7 @@ jobs: key-secret: ${{ secrets.ALIYUN_OSS_SECRET }} bucket: ide-qbcode asset-path: ./public/publish-zip/linker-osx-x64.zip - target-path: /downloads/linker/v1.4.2/linker-osx-x64.zip + target-path: /downloads/linker/v1.4.3/linker-osx-x64.zip - name: upload-osx-x64 id: upload-osx-x64 uses: actions/upload-release-asset@master @@ -247,7 +247,7 @@ jobs: key-secret: ${{ secrets.ALIYUN_OSS_SECRET }} bucket: ide-qbcode asset-path: ./public/publish-zip/linker-osx-arm64.zip - target-path: /downloads/linker/v1.4.2/linker-osx-arm64.zip + target-path: /downloads/linker/v1.4.3/linker-osx-arm64.zip - name: upload-osx-arm64 id: upload-osx-arm64 uses: actions/upload-release-asset@master @@ -277,7 +277,7 @@ jobs: key-secret: ${{ secrets.ALIYUN_OSS_SECRET }} bucket: ide-qbcode asset-path: ./public/publish-zip/linker-windows-route.zip - target-path: /downloads/linker/v1.4.2/linker-windows-route.zip + target-path: /downloads/linker/v1.4.3/linker-windows-route.zip - name: upload-windows-route id: upload-windows-route uses: actions/upload-release-asset@master diff --git a/.github/workflows/nuget.yml b/.github/workflows/nuget.yml index 07412dd9..9ab700f3 100644 --- a/.github/workflows/nuget.yml +++ b/.github/workflows/nuget.yml @@ -38,6 +38,6 @@ jobs: - name: Push run: | - nuget push ./linker.tunnel/bin/release/linker.tunnel.1.4.2.nupkg -Source https://api.nuget.org/v3/index.json -SkipDuplicate -ApiKey ${{ secrets.NUGET_KEY }} -NoSymbol - nuget push ./linker.libs/bin/release/linker.libs.1.4.2.nupkg -Source https://api.nuget.org/v3/index.json -SkipDuplicate -ApiKey ${{ secrets.NUGET_KEY }} -NoSymbol - nuget push ./linker.tun/bin/release/linker.tun.1.4.2.nupkg -Source https://api.nuget.org/v3/index.json -SkipDuplicate -ApiKey ${{ secrets.NUGET_KEY }} -NoSymbol + nuget push ./linker.tunnel/bin/release/linker.tunnel.1.4.3.nupkg -Source https://api.nuget.org/v3/index.json -SkipDuplicate -ApiKey ${{ secrets.NUGET_KEY }} -NoSymbol + nuget push ./linker.libs/bin/release/linker.libs.1.4.3.nupkg -Source https://api.nuget.org/v3/index.json -SkipDuplicate -ApiKey ${{ secrets.NUGET_KEY }} -NoSymbol + nuget push ./linker.tun/bin/release/linker.tun.1.4.3.nupkg -Source https://api.nuget.org/v3/index.json -SkipDuplicate -ApiKey ${{ secrets.NUGET_KEY }} -NoSymbol diff --git a/linker.libs/linker.libs.csproj b/linker.libs/linker.libs.csproj index c313f70f..afc998c3 100644 --- a/linker.libs/linker.libs.csproj +++ b/linker.libs/linker.libs.csproj @@ -14,9 +14,9 @@ snltty https://github.com/snltty/linker https://github.com/snltty/linker - 1.4.2 - 1.4.2 - 1.4.2 + 1.4.3 + 1.4.3 + 1.4.3 full diff --git a/linker.tray.win/default.aproj b/linker.tray.win/default.aproj index 43b45933..eae4fa27 100644 --- a/linker.tray.win/default.aproj +++ b/linker.tray.win/default.aproj @@ -1,5 +1,5 @@  - + diff --git a/linker.tray.win/dist/linker.tray.win.exe b/linker.tray.win/dist/linker.tray.win.exe index 07e79a5bd52e4db2cae3f5315eeec3c03564b6b5..bbba15bb9d8afbfe0bd9c97ac5b69eaef4929606 100644 GIT binary patch delta 4451 zcmchadvKK16~MnQgoMoo@*uDY06ii5R{s69Hx7AsPnwiu>NzuG~IRk2#Dh<}uJs>X_9$3KdWWgMqYd-joRK*#nk zllkra&OPUzd(XM|J9qccxvN=+Uc8z$S;O-`eL&6cp7Yx4Tk-h~iuwosz)$9pz;Ufg zj=T8X@vI}`Sv-+w=MdS%Tq1|aCFT(dB2OOAQmR+0=kOeNC7VnBUHgv6)zZ_nT;3~k zb;Wo=P*&B<>b^WKa-U~q%r4#~a+mVuoI2$Ke(c3L8AahP;N0^vvM&tW$F$UG|Eu=^4UYT zcXA)k%IJylPOj`!#^9W$i@SV0BR}|37pGaDk20Uxs~E3mskX<4M_ETnHHotZO|l}N1xhZ>Z3$*b2Y zKhMH#PUY=0ek>f2m5FQO>d6ZzmDd#(ad_9 z$3o-8BhNG{iF{%{v4AKb3W*}3m{>@Z5Q~V#go-F7%7`VzQlgxwAS#I}qME27)WkAk zIkAFRNvt9?gqB!M)Di+wN9c$(gq|=EM){dWlj&`_TrZyI<&jG9-hz3e!6$mHQXdxR zM3|A}9-a6+FK;%84;AAtw~O26Sw)Z0Xf=zN>lW8%q&Bx$laYp2i=}wNBF@L3xWyd# zJ(u`e!I3B2B4H*hgq5%n^@N>hAl4ENVjbZm8i^)iz5ImR^}+q~{5G#%vKU19*oUrS zr+hL3rTKX#o2^$Ewit~zJiP*b$cOOI7*sA0B9h;(-WTxFZ-mi5)0pEvbx?vGMT;IG@e%A;h1u2(^@D`s8kN0D@ z8Em|W{}y32Z^8)?w0PAFb@O+p)7Hnd8ZXvZ;McqtFI(UqYCKkWkZ;E8R%j{6tTi?N zCvEP9xYGu8lpUIS3I5Cm5v7n^cfwb?_dJ6t{Fw9=(PVHANh<_AeNw=#zVhtxE5G^e zhsW>x;OJxcr480%_Yg`|De zt&wnWAS!7zwBr%2W8H8dz5MjL(_(70Q^GU#plZIsW_p=7SPH?gPm0=mZm@K!Q`u14 z)oRMwd^@=L0QT8oD?VGr<}GRW1O|Mbm}HNPj*g~}tvhvWFWKQgvtAM0*#W!pi#E3s zTi3!_{PM?;ht5Z#4jUX$g62n|5r5!-9SMa}{-*;L^C_FVufQstV4%mhuRtaKqZ`Wc zgcD*n4Z*XG@M&tqWD{JzNh@nya2t;=o`7QcVW6X`hzi4dq&w_-0blQfAWp4=6{*pe z8(BU^8C*+=CvSsA@^}k4XNDMV9wPfUKvQb9@|lg$He+eL$x?}Xyl^j?wxr{iKiL8s zb8zx;D3Nb7>z z+(8&A!l8q(NnzDn=oYbxCN%6|)p&X#%X#Q}vmn1-#17Z6<4{-? zaSVF{o@msr_Ie_|x_-$+%d7SWr2TZ^cpNzNHWk~CO4)*3q0XQc!Vc`MWhy*)7>efz zQ3p|zayYA*-ZMx z%B&mg7rRY^7~iaygmXdS7DBU5WE@ z$Ly0gIDORm9Q#HEi)cgr4%UK&uWm>k33KB&;3{~vYmN!IgyHVew=bKt1@X9cO){6Bg1r0-}i+p7pJx|MR8!j zE7AUh9I3_j=zHUJ;VEDh?Q~v~1)|C4v-hW;cSI$-pUQ)fI7PF+S|z^-^(QuKaQ0?-rZ+3@ z@Y7~l^~o2w6EE0V5ZA0=`c#H)SF>zc&)C6yN-ph41?|$Gwy}Tl^W(D?5tQF>v$kwi zq7DdZ-I@(liuUW`dnL7}re8X!6t>{OUwd zcD3ZU8oWNARV|PMyV_&)SZ!8=4Ht|s9c~(7Zah6QJ=CoClCj^A9@^*Wvw0+&Ej?7S znvHtVY{9>buqrusl&w*$GU-LTK`jiA}_2VhgdAxRq!n+K6q$cEU~UAliuzqEmk1XxEmtyakJ1?y@Rk$zSLk z7n9pw?owq@H~su~%1^%1_0f!Q@wF~}(O7E}z=o|Yot^22Z&@B|`IaZVX+F!=n>zkK F`M+_|rRV?v delta 3592 zcmai%3vg3q7J%;!eUiQ{ZF!WYK{U7Arg_{nk2X!)oTQ~lX{A6*?O>YR&|)4XNh5Aa z+rbAiuCl<&SryREimtnkGP~eiALD}4?VzLL0~tqAa7Pz*-Cf-o*KudpVb4w4rZ~=Q zGhhDy{Qo)U{^$JX|8F`ueMK?($`!?lYL-2ANX_n8#Jt&wXV&Ig51nOCEGB_rx|9s_ z=G}V~d-o_L@u#d+M`gaYt*$R4D)#gll)r|5|~A7T2_SxW(|Wg zyt1lVkski=9)Wo;FD*ZNKw!ROq^w$H0XxC0Pfy%(0+{JVX}RbmFg-bG+4l-C?-!?K z%iF*_w=^wZy#mak&1rdelZ$z_h@D@rW`mo#b8UM5iC?%Ums7DtX3)2G%CMS zESd9UrYR?5PGZGuhjI*m>rfi7v|0JkydOO&Sm@&k#46%OVl{CS zaWkPIIHHDFL-0f`p(W}Fd0l$KAidaZG=3tjs1lYJ<(T{)pHA@W&`~GAyd*tPC!ArW zzf}sSS?Qu)$SlDXE}>HT7KG;u@iV7zYmVM8cswSv5gR~gO-uKJP@R^h)(92&M7@yD z>hZu$Lh0UIpMpA*_UrXdoI1JJCcqh-RXNXq8U(I4>N?F_{LfzCoW(I{0U2 ziDR)r5C-@$W4$2Yj2;fNQ7rltR^pfe^4SpXGr%{v-v~KacNvs8ZiH+JjWEeBj&ft( za3~s6g`{c|s8~`yQxAHK*2DT#e}@LVG_vQEsigJwRPNU1HyjdqBz-8f^1sxp^GqhJBux zXbU6~iP@d(N$uq8?Qm^jCOWUeG8_@13mZG&50s9{E~rPtIw(!`e@=~7(ijc|yRx4P3v`lq5WZoT zM|nB*5DwbH>CoF!p+|i1(T|1xZ7Py_JnCN@d2bawAM#a%I52$zmSWoehTh10}DzQ11`5ko#P zqUK%rStFFMn!6y?0|Q(`+!IlSMY~6&0+-Lf(PHNK5Z*IR8$e4NhZ;63=_-VUlhBMl zJ@iS(S3`N8^s7nOU5rH>^zJ=>5v21MU5`v+L=PRgR>4A7m{~C5&f}oMbB7^QI(iVE z&dM<9%~pBPjb8;f=OR7=C8%0ShZXIv0=6G7+g)Y&_M?zh^u_b{{pH|sH8;T5>N(zH z#}nT%n)wb>2WW|2_gPW%LI&*tiGs@YgM_k~yPYN8wKEsI0clrcZDK zTteO;uRWkKT8ui5AEBP!pto}TklYglS_5?~7Nd#dgQz(M&G}w!E2oj~D7w>zaP%0w zyTq^EZs0T`r;QDXA-b&On`#7$KLQOqf|nnl{5vi{7EV15zm#>`|F3R7Zl8fdJoNJ;g0PpKWBezbPu(hVbnRV3od_fk*P$AnrR)uf(|Y z^m+Ifn;%?Y6PKR30Noj7@)_gR+PbxL>UU}5qoUd-XS?`gXiLRc_#~7`k&hvl#cMU~ zRnh|k?vrIp>30X!TdG3n?K&LtX<~fxXGm|%{b3oM=^sv#SE+5(y)`$FY;9`upx5lB z<9%%0U7b&fw5dhES?~4v%=p)Fx3+*M7dExtY_WKCCL@+lxHsh|4Gjj5K)d3{9TRR< z%5u;%Xz_>^3!a*AS5>4e4PL>Z8#MXUiGFcljauuCqH4ljD*bc9U6OmV>`BiXb;)nN znfme)^t{<

IoamKGq@>~k;6U|Vpf9@g#M|Dc;_Bif0zL{-$JY>I*AQL7tu}J zN^B&0h)u+1VhhnL?SHUueIskaPhRgc=SEZielbz0@{PW71r5``b`B}_X5ZC$;mEl@ HUGe__Kmd(( diff --git a/linker.tray.win/web/css/244.22a4124f.css b/linker.tray.win/web/css/388.50c71cf1.css similarity index 97% rename from linker.tray.win/web/css/244.22a4124f.css rename to linker.tray.win/web/css/388.50c71cf1.css index 6b5e8948..1ab496d4 100644 --- a/linker.tray.win/web/css/244.22a4124f.css +++ b/linker.tray.win/web/css/388.50c71cf1.css @@ -1 +1 @@ -#file-input[data-v-4892cd3c]{opacity:0;position:absolute;z-index:-1}.el-icon[data-v-4892cd3c]{font-size:1.6rem;vertical-align:middle;color:#555}#file-input[data-v-1b5cc276]{opacity:0;position:absolute;z-index:-1}.head[data-v-1b5cc276]{background-color:#f6f8fa;border-bottom:1px solid #d0d7de;box-shadow:1px 1px 4px rgba(0,0,0,.05);height:5rem;line-height:5rem}.head .logo[data-v-1b5cc276]{padding:.5rem 0 0 1rem}.head .logo img[data-v-1b5cc276]{vertical-align:top;height:4rem}.head .menu[data-v-1b5cc276]{padding-left:1rem;font-size:1.4rem}.head .menu li[data-v-1b5cc276]{box-sizing:border-box;padding:.5rem 0;margin-right:.5rem}.head .menu a[data-v-1b5cc276]{display:block;color:#333;padding:0 1rem;line-height:4rem}.head .menu a.router-link-active[data-v-1b5cc276],.head .menu a[data-v-1b5cc276]:hover{background-color:rgba(0,0,0,.1);font-weight:700}.head .menu a .el-icon[data-v-1b5cc276]{vertical-align:sub}.head .image[data-v-1b5cc276]{padding-right:1rem}body.sunny{background-image:url(../img/bg.a2158f12.jpg);background-repeat:no-repeat;background-size:cover;background-position:bottom;position:absolute;left:0;top:0;right:0;bottom:0}body.sunny .app-wrap{background-color:hsla(0,0%,100%,.5)}body.sunny .status-wrap{background-color:hsla(0,0%,96%,.3)}body.sunny .status-wrap .copy a{color:#333}body.sunny .el-table{background-color:hsla(0,0%,100%,.5)}body.sunny .head{background-color:rgba(246,248,250,.5)}body.sunny .el-table tr,body.sunny .el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background-color:rgba(246,248,250,.2)}.el-pagination__total,body.sunny .el-pagination__sizes,body.sunny .status-wrap .copy a{color:#000}body.sunny a{color:#576acf}.status-api-wrap[data-v-4470fcde]{padding-right:2rem}.status-api-wrap a[data-v-4470fcde]{color:#333}.status-api-wrap span[data-v-4470fcde]{border-radius:1rem;background-color:rgba(0,0,0,.1);padding:0 .6rem;margin-left:.2rem}.status-api-wrap.connected a[data-v-4470fcde]{color:green;font-weight:700}.status-api-wrap.connected span[data-v-4470fcde]{background-color:green;color:#fff}.status-api-wrap .el-icon[data-v-4470fcde]{vertical-align:text-top}.status-server-wrap[data-v-360b8353]{padding-right:.5rem}.status-server-wrap a[data-v-360b8353]{color:#333}.status-server-wrap a+a[data-v-360b8353]{margin-left:.6rem}.status-server-wrap.connected a[data-v-360b8353]{color:green;font-weight:700}.status-server-wrap .el-icon[data-v-360b8353]{vertical-align:text-bottom}.status-server-wrap a.download .el-icon[data-v-360b8353]{font-weight:700;margin-left:.3rem}.status-server-wrap a.download .el-icon.loading[data-v-360b8353]{animation:loading-360b8353 1s linear infinite}@keyframes loading-360b8353{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-col[data-v-bdd023b0]{text-align:left}.status-export-wrap[data-v-117ef7b0]{padding-right:2rem}.status-export-wrap a[data-v-117ef7b0]{color:#333}.status-export-wrap .el-icon[data-v-117ef7b0]{vertical-align:text-top}.status-export-wrap .el-col[data-v-117ef7b0]{text-align:left}a[data-v-56d38c60]{color:#666;text-decoration:underline}a.green[data-v-56d38c60]{color:green;font-weight:700}a.download[data-v-56d38c60]{margin-left:.6rem}a.download .el-icon[data-v-56d38c60]{vertical-align:middle;font-weight:700;margin-left:.3rem}a.download .el-icon.loading[data-v-56d38c60]{animation:loading-56d38c60 1s linear infinite}@keyframes loading-56d38c60{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.status-wrap[data-v-da8e5ef0]{border-top:1px solid #ddd;background-color:#f5f5f5;height:3rem;line-height:3rem;font-size:1.2rem;color:#555}.status-wrap .pay[data-v-da8e5ef0]{font-size:xxx-large}.status-wrap .pay img[data-v-da8e5ef0]{width:100%;margin:0}.status-wrap .copy[data-v-da8e5ef0]{padding-left:.5rem}.status-wrap .copy a[data-v-da8e5ef0]{color:#555}.status-wrap a.memory[data-v-da8e5ef0]{margin-right:.6rem}.status-wrap a.memory img[data-v-da8e5ef0]{height:3rem;vertical-align:bottom;margin-right:.1rem}.body[data-v-47b95c93]{padding:1rem 0 0 0}.footer[data-v-47b95c93]{padding:1rem 0}.body[data-v-c9a17ce0]{padding:1rem 0 0 0}.footer[data-v-c9a17ce0]{padding:1rem 0}.body[data-v-5fad04f0],.el-card+.el-card[data-v-c9a17ce0]{margin-top:1rem}.footer[data-v-5fad04f0]{margin-top:2rem}@media screen and (max-width:1000px){body .app-wrap[data-v-5ea3415a]{width:calc(100% - 40px);height:calc(100% - 40px);position:absolute;left:20px;top:20px;right:0;bottom:0;transform:none;max-width:calc(100% - 40px)}}.app-wrap[data-v-5ea3415a]{box-sizing:border-box;background-color:#fff;border:1px solid #d0d7de;width:81rem;max-width:80%;height:90%;position:absolute;left:50%;top:50%;transform:translateX(-50%) translateY(-50%)} \ No newline at end of file +#file-input[data-v-4892cd3c]{opacity:0;position:absolute;z-index:-1}.el-icon[data-v-4892cd3c]{font-size:1.6rem;vertical-align:middle;color:#555}#file-input[data-v-1b5cc276]{opacity:0;position:absolute;z-index:-1}.head[data-v-1b5cc276]{background-color:#f6f8fa;border-bottom:1px solid #d0d7de;box-shadow:1px 1px 4px rgba(0,0,0,.05);height:5rem;line-height:5rem}.head .logo[data-v-1b5cc276]{padding:.5rem 0 0 1rem}.head .logo img[data-v-1b5cc276]{vertical-align:top;height:4rem}.head .menu[data-v-1b5cc276]{padding-left:1rem;font-size:1.4rem}.head .menu li[data-v-1b5cc276]{box-sizing:border-box;padding:.5rem 0;margin-right:.5rem}.head .menu a[data-v-1b5cc276]{display:block;color:#333;padding:0 1rem;line-height:4rem}.head .menu a.router-link-active[data-v-1b5cc276],.head .menu a[data-v-1b5cc276]:hover{background-color:rgba(0,0,0,.1);font-weight:700}.head .menu a .el-icon[data-v-1b5cc276]{vertical-align:sub}.head .image[data-v-1b5cc276]{padding-right:1rem}body.sunny{background-image:url(../img/bg.a2158f12.jpg);background-repeat:no-repeat;background-size:cover;background-position:bottom;position:absolute;left:0;top:0;right:0;bottom:0}body.sunny .app-wrap{background-color:hsla(0,0%,100%,.5)}body.sunny .status-wrap{background-color:hsla(0,0%,96%,.3)}body.sunny .status-wrap .copy a{color:#333}body.sunny .el-table{background-color:hsla(0,0%,100%,.5)}body.sunny .head{background-color:rgba(246,248,250,.5)}body.sunny .el-table tr,body.sunny .el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background-color:rgba(246,248,250,.2)}.el-pagination__total,body.sunny .el-pagination__sizes,body.sunny .status-wrap .copy a{color:#000}body.sunny a{color:#576acf}.status-api-wrap[data-v-4470fcde]{padding-right:2rem}.status-api-wrap a[data-v-4470fcde]{color:#333}.status-api-wrap span[data-v-4470fcde]{border-radius:1rem;background-color:rgba(0,0,0,.1);padding:0 .6rem;margin-left:.2rem}.status-api-wrap.connected a[data-v-4470fcde]{color:green;font-weight:700}.status-api-wrap.connected span[data-v-4470fcde]{background-color:green;color:#fff}.status-api-wrap .el-icon[data-v-4470fcde]{vertical-align:text-top}.status-server-wrap[data-v-360b8353]{padding-right:.5rem}.status-server-wrap a[data-v-360b8353]{color:#333}.status-server-wrap a+a[data-v-360b8353]{margin-left:.6rem}.status-server-wrap.connected a[data-v-360b8353]{color:green;font-weight:700}.status-server-wrap .el-icon[data-v-360b8353]{vertical-align:text-bottom}.status-server-wrap a.download .el-icon[data-v-360b8353]{font-weight:700;margin-left:.3rem}.status-server-wrap a.download .el-icon.loading[data-v-360b8353]{animation:loading-360b8353 1s linear infinite}@keyframes loading-360b8353{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-col[data-v-bdd023b0]{text-align:left}.status-export-wrap[data-v-117ef7b0]{padding-right:2rem}.status-export-wrap a[data-v-117ef7b0]{color:#333}.status-export-wrap .el-icon[data-v-117ef7b0]{vertical-align:text-top}.status-export-wrap .el-col[data-v-117ef7b0]{text-align:left}a[data-v-56d38c60]{color:#666;text-decoration:underline}a.green[data-v-56d38c60]{color:green;font-weight:700}a.download[data-v-56d38c60]{margin-left:.6rem}a.download .el-icon[data-v-56d38c60]{vertical-align:middle;font-weight:700;margin-left:.3rem}a.download .el-icon.loading[data-v-56d38c60]{animation:loading-56d38c60 1s linear infinite}@keyframes loading-56d38c60{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.status-wrap[data-v-da8e5ef0]{border-top:1px solid #ddd;background-color:#f5f5f5;height:3rem;line-height:3rem;font-size:1.2rem;color:#555}.status-wrap .pay[data-v-da8e5ef0]{font-size:xxx-large}.status-wrap .pay img[data-v-da8e5ef0]{width:100%;margin:0}.status-wrap .copy[data-v-da8e5ef0]{padding-left:.5rem}.status-wrap .copy a[data-v-da8e5ef0]{color:#555}.status-wrap a.memory[data-v-da8e5ef0]{margin-right:.6rem}.status-wrap a.memory img[data-v-da8e5ef0]{height:3rem;vertical-align:bottom;margin-right:.1rem}.body[data-v-47b95c93]{padding:1rem 0 0 0}.footer[data-v-47b95c93]{padding:1rem 0}.body[data-v-c9a17ce0]{padding:1rem 0 0 0}.footer[data-v-c9a17ce0]{padding:1rem 0}.body[data-v-41d4c7eb],.el-card+.el-card[data-v-c9a17ce0]{margin-top:1rem}.footer[data-v-41d4c7eb]{margin-top:2rem}@media screen and (max-width:1000px){body .app-wrap[data-v-5ea3415a]{width:calc(100% - 40px);height:calc(100% - 40px);position:absolute;left:20px;top:20px;right:0;bottom:0;transform:none;max-width:calc(100% - 40px)}}.app-wrap[data-v-5ea3415a]{box-sizing:border-box;background-color:#fff;border:1px solid #d0d7de;width:81rem;max-width:80%;height:90%;position:absolute;left:50%;top:50%;transform:translateX(-50%) translateY(-50%)} \ No newline at end of file diff --git a/linker.tray.win/web/css/706.e7520456.css b/linker.tray.win/web/css/706.e7520456.css new file mode 100644 index 00000000..cdc38daf --- /dev/null +++ b/linker.tray.win/web/css/706.e7520456.css @@ -0,0 +1 @@ +.green[data-v-2ea70464],.red[data-v-2ea70464]{font-weight:700}.servers-wrap[data-v-74a22754]{padding:1rem;font-size:1.3rem;color:#555}.servers-wrap a[data-v-74a22754]{color:#333}.el-checkbox[data-v-74a22754]{vertical-align:middle;margin-right:1rem} \ No newline at end of file diff --git a/linker.tray.win/web/css/948.2c420b5d.css b/linker.tray.win/web/css/948.2c420b5d.css deleted file mode 100644 index 207ac9e4..00000000 --- a/linker.tray.win/web/css/948.2c420b5d.css +++ /dev/null @@ -1 +0,0 @@ -.green[data-v-2ea70464],.red[data-v-2ea70464]{font-weight:700}.servers-wrap[data-v-1f4aa573]{padding:1rem;font-size:1.3rem;color:#555}.servers-wrap a[data-v-1f4aa573]{color:#333}.el-checkbox[data-v-1f4aa573]{vertical-align:middle;margin-right:1rem} \ No newline at end of file diff --git a/linker.tray.win/web/index.html b/linker.tray.win/web/index.html index 1c255d95..5d68d962 100644 --- a/linker.tray.win/web/index.html +++ b/linker.tray.win/web/index.html @@ -1 +1 @@ -linker.web

\ No newline at end of file +linker.web
\ No newline at end of file diff --git a/linker.tray.win/web/js/244.7bc7c79b.js b/linker.tray.win/web/js/244.7bc7c79b.js deleted file mode 100644 index b64e35f6..00000000 --- a/linker.tray.win/web/js/244.7bc7c79b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[244],{3644:function(e,l,r){r.r(l),r.d(l,{default:function(){return de}});var t=r(6768);const a={class:"app-wrap flex flex-column flex-nowrap"},o={class:"head"},s={class:"body flex-1 relative",ref:"wrap"},n={class:"home absolute"},u={class:"status"};function d(e,l,r,d,m,i){const f=(0,t.g2)("Head"),c=(0,t.g2)("router-view"),b=(0,t.g2)("Status"),p=(0,t.g2)("Install");return(0,t.uX)(),(0,t.CE)("div",a,[(0,t.Lk)("div",o,[(0,t.bF)(f)]),(0,t.Lk)("div",s,[(0,t.Lk)("div",n,[(0,t.bF)(c)])],512),(0,t.Lk)("div",u,[(0,t.bF)(b,{config:!0}),(0,t.bF)(p)])])}r(4114);var m=r.p+"img/logo.892cb2fb.png";const i=e=>((0,t.Qi)("data-v-1b5cc276"),e=e(),(0,t.jt)(),e),f={class:"head flex"},c={class:"logo"},b=i((()=>(0,t.Lk)("img",{src:m,alt:""},null,-1))),p={class:"menu flex-1"},v={class:"flex"},g={key:0},F={key:1},k={key:2},w={key:3},y={class:"image"};function S(e,l,r,a,o,s){const n=(0,t.g2)("router-link"),u=(0,t.g2)("StarFilled"),d=(0,t.g2)("el-icon"),m=(0,t.g2)("Promotion"),i=(0,t.g2)("HelpFilled"),S=(0,t.g2)("PhoneFilled"),h=(0,t.g2)("WarnTriangleFilled"),_=(0,t.g2)("Background");return(0,t.uX)(),(0,t.CE)("div",null,[(0,t.Lk)("div",f,[(0,t.Lk)("div",c,[(0,t.bF)(n,{to:{name:"FullIndex"}},{default:(0,t.k6)((()=>[b])),_:1})]),(0,t.Lk)("div",p,[(0,t.Lk)("ul",v,[(0,t.Lk)("li",null,[(0,t.bF)(n,{to:{name:"FullIndex"}},{default:(0,t.k6)((()=>[(0,t.bF)(d,{size:"16"},{default:(0,t.k6)((()=>[(0,t.bF)(u)])),_:1}),(0,t.eW)(" 首页")])),_:1})]),a.hasConfig?((0,t.uX)(),(0,t.CE)("li",g,[(0,t.bF)(n,{to:{name:"FullServers"}},{default:(0,t.k6)((()=>[(0,t.bF)(d,{size:"16"},{default:(0,t.k6)((()=>[(0,t.bF)(m)])),_:1}),(0,t.eW)(" 服务器")])),_:1})])):(0,t.Q3)("",!0),a.hasTransport?((0,t.uX)(),(0,t.CE)("li",F,[(0,t.bF)(n,{to:{name:"FullTransport"}},{default:(0,t.k6)((()=>[(0,t.bF)(d,{size:"16"},{default:(0,t.k6)((()=>[(0,t.bF)(i)])),_:1}),(0,t.eW)(" 打洞协议")])),_:1})])):(0,t.Q3)("",!0),a.hasAction?((0,t.uX)(),(0,t.CE)("li",k,[(0,t.bF)(n,{to:{name:"FullAction"}},{default:(0,t.k6)((()=>[(0,t.bF)(d,{size:"16"},{default:(0,t.k6)((()=>[(0,t.bF)(S)])),_:1}),(0,t.eW)(" Action验证")])),_:1})])):(0,t.Q3)("",!0),a.hasLogger?((0,t.uX)(),(0,t.CE)("li",w,[(0,t.bF)(n,{to:{name:"FullLogger"}},{default:(0,t.k6)((()=>[(0,t.bF)(d,{size:"16"},{default:(0,t.k6)((()=>[(0,t.bF)(h)])),_:1}),(0,t.eW)(" 日志")])),_:1})])):(0,t.Q3)("",!0)])]),(0,t.Lk)("div",y,[(0,t.bF)(_,{name:"full"})])])])}var h=r(7477),_=r(3830),K=r(5096),V={components:{Promotion:h.Yk4,StarFilled:h.BQ2,WarnTriangleFilled:h.DtC,PhoneFilled:h.pXb,HelpFilled:h.adD,Background:K.A},setup(){const e=(0,_.B)(),l=(0,t.EW)((()=>e.value.hasAccess("Config"))),r=(0,t.EW)((()=>e.value.hasAccess("LoggerShow"))),a=(0,t.EW)((()=>e.value.hasAccess("Transport"))),o=(0,t.EW)((()=>e.value.hasAccess("Action")));return{hasConfig:l,hasLogger:r,hasTransport:a,hasAction:o}}},P=r(1241);const C=(0,P.A)(V,[["render",S],["__scopeId","data-v-1b5cc276"]]);var x=C,W=r(8406);const L=e=>((0,t.Qi)("data-v-5fad04f0"),e=e(),(0,t.jt)(),e),U={class:"head"},A={class:"body"},X=L((()=>(0,t.Lk)("div",{class:"t-c"},"完成保存后,请重启软件",-1))),Q={class:"footer t-c"};function E(e,l,r,a,o,s){const n=(0,t.g2)("el-step"),u=(0,t.g2)("el-steps"),d=(0,t.g2)("Common"),m=(0,t.g2)("el-card"),i=(0,t.g2)("Client"),f=(0,t.g2)("el-button"),c=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.CE)("div",null,[(0,t.bF)(c,{modelValue:a.state.show,"onUpdate:modelValue":l[0]||(l[0]=e=>a.state.show=e),title:"初始化配置",width:"600",top:"2vh"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.Lk)("div",U,[(0,t.bF)(u,{active:a.step.step,"finish-status":"success"},{default:(0,t.k6)((()=>[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(a.state.steps,((e,l)=>((0,t.uX)(),(0,t.Wv)(n,{title:e},null,8,["title"])))),256))])),_:1},8,["active"])]),(0,t.Lk)("div",A,[1==a.step.step?((0,t.uX)(),(0,t.Wv)(m,{key:0,shadow:"never"},{default:(0,t.k6)((()=>[(0,t.bF)(d,{ref:"currentDom"},null,512)])),_:1})):(0,t.Q3)("",!0),2==a.step.step?((0,t.uX)(),(0,t.Wv)(m,{key:1,shadow:"never"},{default:(0,t.k6)((()=>[(0,t.bF)(i,{ref:"currentDom"},null,512)])),_:1})):(0,t.Q3)("",!0),3==a.step.step?((0,t.uX)(),(0,t.Wv)(m,{key:2,shadow:"never"},{default:(0,t.k6)((()=>[X])),_:1})):(0,t.Q3)("",!0)]),(0,t.Lk)("div",Q,[(0,t.bF)(f,{disabled:a.step.step<=1,onClick:a.handlePrev},{default:(0,t.k6)((()=>[(0,t.eW)("上一步")])),_:1},8,["disabled","onClick"]),a.step.step[(0,t.eW)("下一步")])),_:1},8,["onClick"])):((0,t.uX)(),(0,t.Wv)(f,{key:1,type:"primary",onClick:a.handleSave},{default:(0,t.k6)((()=>[(0,t.eW)("完成")])),_:1},8,["onClick"]))])])])),_:1},8,["modelValue"])])}var j=r(8835),I=r(144),N=r(1219);const q={class:"t-c"};function R(e,l,r,a,o,s){const n=(0,t.g2)("el-checkbox");return(0,t.uX)(),(0,t.CE)("div",q,[(0,t.bF)(n,{modelValue:a.state.form.client,"onUpdate:modelValue":l[0]||(l[0]=e=>a.state.form.client=e),label:"作为客户端"},null,8,["modelValue"])])}var D={name:"Common",setup(){(0,t.WQ)("step");const e=(0,I.Kh)({form:{client:!0,server:!1}}),l=l=>new Promise(((l,r)=>{e.form.client||e.form.server?l({json:{Common:{client:e.form.client,server:e.form.server,modes:[e.form.client?"client":"",e.form.server?"server":""].filter((e=>!!e))}},form:{common:JSON.parse(JSON.stringify(e.form))}}):(N.nk.error("请选择客户端或服务端"),r())}));return{state:e,handleValidate:l}}};const T=(0,P.A)(D,[["render",R]]);var z=T;const B=e=>((0,t.Qi)("data-v-47b95c93"),e=e(),(0,t.jt)(),e),O=B((()=>(0,t.Lk)("div",{class:"t-c w-100"},[(0,t.Lk)("p",null,"端口为0则不监听,相同分组名之间的客户端相互可见")],-1)));function H(e,l,r,a,o,s){const n=(0,t.g2)("el-form-item"),u=(0,t.g2)("el-input"),d=(0,t.g2)("el-col"),m=(0,t.g2)("el-row"),i=(0,t.g2)("el-checkbox"),f=(0,t.g2)("el-form");return(0,t.uX)(),(0,t.CE)("div",null,[(0,t.bF)(f,{ref:"formDom",model:a.state.form,rules:a.state.rules,"label-width":"8rem"},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[O])),_:1}),(0,t.bF)(n,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"机器名",prop:"name"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.name,"onUpdate:modelValue":l[0]||(l[0]=e=>a.state.form.name=e),maxlength:"12","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"分组名",prop:"groupid"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.groupid,"onUpdate:modelValue":l[1]||(l[1]=e=>a.state.form.groupid=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(n,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"接口端口",prop:"api"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.api,"onUpdate:modelValue":l[2]||(l[2]=e=>a.state.form.api=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"网页端口",prop:"web"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.web,"onUpdate:modelValue":l[3]||(l[3]=e=>a.state.form.web=e)},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(n,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"接口密码",prop:"password"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{style:{width:"42rem"},type:"password",modelValue:a.state.form.password,"onUpdate:modelValue":l[4]||(l[4]=e=>a.state.form.password=e),"show-password":"",maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{"label-width":"8rem",prop:"hasServer"},{default:(0,t.k6)((()=>[(0,t.bF)(i,{modelValue:a.state.form.hasServer,"onUpdate:modelValue":l[5]||(l[5]=e=>a.state.form.hasServer=e),label:"我有服务器",size:"large"},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),a.state.form.hasServer?((0,t.uX)(),(0,t.Wv)(n,{key:0,label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"信标服务",prop:"server"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.server,"onUpdate:modelValue":l[6]||(l[6]=e=>a.state.form.server=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"信标密钥",prop:"serverSecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.serverSecretKey,"onUpdate:modelValue":l[7]||(l[7]=e=>a.state.form.serverSecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1})):(0,t.Q3)("",!0),a.state.form.hasServer?((0,t.uX)(),(0,t.Wv)(n,{key:1,label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"穿透密钥",prop:"sForwardSecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.sForwardSecretKey,"onUpdate:modelValue":l[8]||(l[8]=e=>a.state.form.sForwardSecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"中继密钥",prop:"relaySecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.relaySecretKey,"onUpdate:modelValue":l[9]||(l[9]=e=>a.state.form.relaySecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1})):(0,t.Q3)("",!0),a.state.form.hasServer?((0,t.uX)(),(0,t.Wv)(n,{key:2,label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"更新密钥",prop:"updaterSecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.updaterSecretKey,"onUpdate:modelValue":l[10]||(l[10]=e=>a.state.form.updaterSecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"占位"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{disabled:"",maxlength:"36","show-word-limit":""})])),_:1})])),_:1})])),_:1})])),_:1})):(0,t.Q3)("",!0)])),_:1},8,["model","rules"])])}var J={setup(e){const l=(0,t.WQ)("step"),r=(0,_.B)(),a=(0,I.Kh)({form:{name:l.value.form.client.name||r.value.config.Client.Name,groupid:l.value.form.client.groupid||r.value.config.Client.GroupId,api:l.value.form.client.api||r.value.config.Client.CApi.ApiPort,web:l.value.form.client.web||r.value.config.Client.CApi.WebPort,password:l.value.form.client.password||r.value.config.Client.CApi.ApiPassword,hasServer:l.value.form.client.hasServer||!1,server:l.value.form.client.server||r.value.config.Client.ServerInfo.Host,serverSecretKey:l.value.form.client.serverSecretKey||r.value.config.Client.ServerSecretKey,sForwardSecretKey:l.value.form.client.sForwardSecretKey||r.value.config.Client.SForward.SecretKey,relaySecretKey:l.value.form.client.relaySecretKey||(r.value.config.Client.Relay.Servers[0]||{SecretKey:"snltty"}).SecretKey,updaterSecretKey:l.value.form.client.updaterSecretKey||r.value.config.Client.Updater.SecretKey},rules:{name:[{required:!0,message:"必填",trigger:"blur"}],groupid:[{required:!0,message:"必填",trigger:"blur"}],password:[{required:!0,message:"必填",trigger:"blur"}],api:[{required:!0,message:"必填",trigger:"blur"},{type:"number",min:0,max:65535,message:"数字 0-65535",trigger:"blur",transform(e){return Number(e)}}],web:[{required:!0,message:"必填",trigger:"blur"},{type:"number",min:0,max:65535,message:"数字 0-65535",trigger:"blur",transform(e){return Number(e)}}]}}),o=(0,I.KR)(null),s=()=>new Promise(((e,l)=>{o.value.validate((r=>{r?e({json:{Client:{name:a.form.name,groupid:a.form.groupid,api:+a.form.api,web:+a.form.web,password:a.form.password,hasServer:a.form.hasServer,server:a.form.server,serverSecretKey:a.form.serverSecretKey,sForwardSecretKey:a.form.sForwardSecretKey,relaySecretKey:a.form.relaySecretKey,updaterSecretKey:a.form.updaterSecretKey}},form:{client:JSON.parse(JSON.stringify(a.form))}}):l()}))}));return(0,t.sV)((()=>{0==l.value.json.Common.client&&(l.value.step+=l.value.increment)})),{state:a,handleValidate:s,formDom:o}}};const G=(0,P.A)(J,[["render",H],["__scopeId","data-v-47b95c93"]]);var Y=G;const M=e=>((0,t.Qi)("data-v-c9a17ce0"),e=e(),(0,t.jt)(),e),Z=M((()=>(0,t.Lk)("div",{class:"t-c w-100"},"端口为0则不监听",-1)));function $(e,l,r,a,o,s){const n=(0,t.g2)("el-form-item"),u=(0,t.g2)("el-input"),d=(0,t.g2)("el-col"),m=(0,t.g2)("el-row"),i=(0,t.g2)("el-form");return(0,t.uX)(),(0,t.CE)("div",null,[(0,t.bF)(i,{ref:"formDom",model:a.state.form,rules:a.state.rules,"label-width":"10rem"},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[Z])),_:1}),(0,t.bF)(n,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"服务端口",prop:"servicePort"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.servicePort,"onUpdate:modelValue":l[0]||(l[0]=e=>a.state.form.servicePort=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"web穿透端口",prop:"webPort"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.webPort,"onUpdate:modelValue":l[1]||(l[1]=e=>a.state.form.webPort=e)},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(n,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"开放最小端口",prop:"tunnelPort1"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.tunnelPort1,"onUpdate:modelValue":l[2]||(l[2]=e=>a.state.form.tunnelPort1=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"开放最大端口",prop:"tunnelPort2"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.tunnelPort2,"onUpdate:modelValue":l[3]||(l[3]=e=>a.state.form.tunnelPort2=e)},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(n,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:24},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"信标密钥",prop:"signinSecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.signinSecretKey,"onUpdate:modelValue":l[4]||(l[4]=e=>a.state.form.signinSecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(n,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"穿透密钥",prop:"sForwardSecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.sForwardSecretKey,"onUpdate:modelValue":l[5]||(l[5]=e=>a.state.form.sForwardSecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"中继密钥",prop:"relaySecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.relaySecretKey,"onUpdate:modelValue":l[6]||(l[6]=e=>a.state.form.relaySecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(n,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:24},{default:(0,t.k6)((()=>[(0,t.bF)(n,{label:"更新密钥",prop:"updaterSecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.updaterSecretKey,"onUpdate:modelValue":l[7]||(l[7]=e=>a.state.form.updaterSecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1})])),_:1},8,["model","rules"])])}var ee={setup(e){const l=(0,t.WQ)("step"),r=(0,_.B)(),a=(0,I.Kh)({show:!1,form:{signinSecretKey:l.value.form.server.signinSecretKey||r.value.config.Server.SignIn.SecretKey,relaySecretKey:l.value.form.server.relaySecretKey||r.value.config.Server.Relay.SecretKey,sForwardSecretKey:l.value.form.server.sForwardSecretKey||r.value.config.Server.SForward.SecretKey,servicePort:l.value.form.server.servicePort||r.value.config.Server.ServicePort,webPort:l.value.form.server.webPort||r.value.config.Server.SForward.WebPort,tunnelPort1:l.value.form.server.tunnelPort1||r.value.config.Server.SForward.TunnelPortRange[0],tunnelPort2:l.value.form.server.tunnelPort2||r.value.config.Server.SForward.TunnelPortRange[1],updaterSecretKey:l.value.form.server.updaterSecretKey||r.value.config.Server.Updater.SecretKey},rules:{relaySecretKey:[{required:!0,message:"必填",trigger:"blur"}],sForwardSecretKey:[{required:!0,message:"必填",trigger:"blur"}],servicePort:[{required:!0,message:"必填",trigger:"blur"},{type:"number",min:0,max:65535,message:"数字 0-65535",trigger:"blur",transform(e){return Number(e)}}],webPort:[{required:!0,message:"必填",trigger:"blur"},{type:"number",min:0,max:65535,message:"数字 0-65535",trigger:"blur",transform(e){return Number(e)}}],tunnelPort1:[{required:!0,message:"必填",trigger:"blur"},{type:"number",min:0,max:65535,message:"数字 0-65535",trigger:"blur",transform(e){return Number(e)}}],tunnelPort2:[{required:!0,message:"必填",trigger:"blur"},{type:"number",min:0,max:65535,message:"数字 0-65535",trigger:"blur",transform(e){return Number(e)}}]}}),o=(0,I.KR)(null),s=()=>new Promise(((e,l)=>{o.value.validate((r=>{0==r?l():e({json:{Server:{ServicePort:+a.form.servicePort,Relay:{SecretKey:a.form.relaySecretKey},SForward:{SecretKey:a.form.sForwardSecretKey,WebPort:+a.form.webPort,TunnelPortRange:[+a.form.tunnelPort1,+a.form.tunnelPort2]},Updater:{SecretKey:a.form.updaterSecretKey},SignIn:{SecretKey:a.form.signinSecretKey}}},form:{server:JSON.parse(JSON.stringify(a.form))}})}))}));return(0,t.sV)((()=>{0==l.value.json.Common.server&&(l.value.step+=l.value.increment)})),{state:a,handleValidate:s,formDom:o}}};const le=(0,P.A)(ee,[["render",$],["__scopeId","data-v-c9a17ce0"]]);var re=le,te={components:{Common:z,Client:Y,Server:re},setup(e){const l=(0,_.B)(),r=(0,I.Kh)({show:0==l.value.config.Common.Install,steps:["选择模式","客户端","完成"]}),a=(0,I.KR)(null),o=(0,I.KR)({step:1,increment:1,json:{},form:{server:{},client:{},common:{}}});(0,t.Gt)("step",o);const s=()=>{o.value.step--,o.value.increment=-1},n=()=>{o.value.increment=1,a.value.handleValidate().then((e=>{o.value.json=Object.assign(o.value.json,e.json),o.value.form=Object.assign(o.value.form,e.form),o.value.step++})).catch((()=>{}))},u=()=>{(0,j.ai)(o.value.json).then((()=>{N.nk.success("保存成功")})).catch((()=>{N.nk.error("保存失败")}))};return{state:r,currentDom:a,step:o,handlePrev:s,handleNext:n,handleSave:u}}};const ae=(0,P.A)(te,[["render",E],["__scopeId","data-v-5fad04f0"]]);var oe=ae,se=r(1387),ne={name:"Index",components:{Head:x,Status:W.A,Install:oe},setup(e){const l=(0,_.B)(),r=(0,se.rd)(),a=(0,I.KR)(null),o=()=>{(0,t.dY)((()=>{l.value.height=a.value.offsetHeight}))};return(0,t.sV)((()=>{0==l.value.hasAccess("FullManager")&&r.push({name:"NoPermission"}),window.addEventListener("resize",o),o()})),(0,t.hi)((()=>{window.removeEventListener("resize",o)})),{wrap:a}}};const ue=(0,P.A)(ne,[["render",d],["__scopeId","data-v-5ea3415a"]]);var de=ue}}]); \ No newline at end of file diff --git a/linker.tray.win/web/js/388.6d23a91f.js b/linker.tray.win/web/js/388.6d23a91f.js new file mode 100644 index 00000000..2bc64d61 --- /dev/null +++ b/linker.tray.win/web/js/388.6d23a91f.js @@ -0,0 +1 @@ +"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[388],{6228:function(e,l,r){r.r(l),r.d(l,{default:function(){return de}});var t=r(6768);const a={class:"app-wrap flex flex-column flex-nowrap"},o={class:"head"},n={class:"body flex-1 relative",ref:"wrap"},s={class:"home absolute"},u={class:"status"};function d(e,l,r,d,m,i){const f=(0,t.g2)("Head"),c=(0,t.g2)("router-view"),b=(0,t.g2)("Status"),p=(0,t.g2)("Install");return(0,t.uX)(),(0,t.CE)("div",a,[(0,t.Lk)("div",o,[(0,t.bF)(f)]),(0,t.Lk)("div",n,[(0,t.Lk)("div",s,[(0,t.bF)(c)])],512),(0,t.Lk)("div",u,[(0,t.bF)(b,{config:!0}),(0,t.bF)(p)])])}r(4114);var m=r.p+"img/logo.892cb2fb.png";const i=e=>((0,t.Qi)("data-v-1b5cc276"),e=e(),(0,t.jt)(),e),f={class:"head flex"},c={class:"logo"},b=i((()=>(0,t.Lk)("img",{src:m,alt:""},null,-1))),p={class:"menu flex-1"},v={class:"flex"},g={key:0},F={key:1},k={key:2},w={key:3},y={class:"image"};function S(e,l,r,a,o,n){const s=(0,t.g2)("router-link"),u=(0,t.g2)("StarFilled"),d=(0,t.g2)("el-icon"),m=(0,t.g2)("Promotion"),i=(0,t.g2)("HelpFilled"),S=(0,t.g2)("PhoneFilled"),h=(0,t.g2)("WarnTriangleFilled"),_=(0,t.g2)("Background");return(0,t.uX)(),(0,t.CE)("div",null,[(0,t.Lk)("div",f,[(0,t.Lk)("div",c,[(0,t.bF)(s,{to:{name:"FullIndex"}},{default:(0,t.k6)((()=>[b])),_:1})]),(0,t.Lk)("div",p,[(0,t.Lk)("ul",v,[(0,t.Lk)("li",null,[(0,t.bF)(s,{to:{name:"FullIndex"}},{default:(0,t.k6)((()=>[(0,t.bF)(d,{size:"16"},{default:(0,t.k6)((()=>[(0,t.bF)(u)])),_:1}),(0,t.eW)(" 首页")])),_:1})]),a.hasConfig?((0,t.uX)(),(0,t.CE)("li",g,[(0,t.bF)(s,{to:{name:"FullServers"}},{default:(0,t.k6)((()=>[(0,t.bF)(d,{size:"16"},{default:(0,t.k6)((()=>[(0,t.bF)(m)])),_:1}),(0,t.eW)(" 服务器")])),_:1})])):(0,t.Q3)("",!0),a.hasTransport?((0,t.uX)(),(0,t.CE)("li",F,[(0,t.bF)(s,{to:{name:"FullTransport"}},{default:(0,t.k6)((()=>[(0,t.bF)(d,{size:"16"},{default:(0,t.k6)((()=>[(0,t.bF)(i)])),_:1}),(0,t.eW)(" 打洞协议")])),_:1})])):(0,t.Q3)("",!0),a.hasAction?((0,t.uX)(),(0,t.CE)("li",k,[(0,t.bF)(s,{to:{name:"FullAction"}},{default:(0,t.k6)((()=>[(0,t.bF)(d,{size:"16"},{default:(0,t.k6)((()=>[(0,t.bF)(S)])),_:1}),(0,t.eW)(" Action验证")])),_:1})])):(0,t.Q3)("",!0),a.hasLogger?((0,t.uX)(),(0,t.CE)("li",w,[(0,t.bF)(s,{to:{name:"FullLogger"}},{default:(0,t.k6)((()=>[(0,t.bF)(d,{size:"16"},{default:(0,t.k6)((()=>[(0,t.bF)(h)])),_:1}),(0,t.eW)(" 日志")])),_:1})])):(0,t.Q3)("",!0)])]),(0,t.Lk)("div",y,[(0,t.bF)(_,{name:"full"})])])])}var h=r(7477),_=r(3830),K=r(5096),V={components:{Promotion:h.Yk4,StarFilled:h.BQ2,WarnTriangleFilled:h.DtC,PhoneFilled:h.pXb,HelpFilled:h.adD,Background:K.A},setup(){const e=(0,_.B)(),l=(0,t.EW)((()=>e.value.hasAccess("Config"))),r=(0,t.EW)((()=>e.value.hasAccess("LoggerShow"))),a=(0,t.EW)((()=>e.value.hasAccess("Transport"))),o=(0,t.EW)((()=>e.value.hasAccess("Action")));return{hasConfig:l,hasLogger:r,hasTransport:a,hasAction:o}}},C=r(1241);const P=(0,C.A)(V,[["render",S],["__scopeId","data-v-1b5cc276"]]);var x=P,W=r(8406);const L=e=>((0,t.Qi)("data-v-41d4c7eb"),e=e(),(0,t.jt)(),e),U={class:"head"},A={class:"body"},X=L((()=>(0,t.Lk)("div",{class:"t-c"},"完成保存后,请重启软件",-1))),j={class:"footer t-c"};function Q(e,l,r,a,o,n){const s=(0,t.g2)("el-step"),u=(0,t.g2)("el-steps"),d=(0,t.g2)("Common"),m=(0,t.g2)("el-card"),i=(0,t.g2)("Server"),f=(0,t.g2)("Client"),c=(0,t.g2)("el-button"),b=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.CE)("div",null,[(0,t.bF)(b,{modelValue:a.state.show,"onUpdate:modelValue":l[0]||(l[0]=e=>a.state.show=e),title:"初始化配置",width:"600",top:"2vh"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.Lk)("div",U,[(0,t.bF)(u,{active:a.step.step,"finish-status":"success"},{default:(0,t.k6)((()=>[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(a.state.steps,((e,l)=>((0,t.uX)(),(0,t.Wv)(s,{title:e},null,8,["title"])))),256))])),_:1},8,["active"])]),(0,t.Lk)("div",A,[1==a.step.step?((0,t.uX)(),(0,t.Wv)(m,{key:0,shadow:"never"},{default:(0,t.k6)((()=>[(0,t.bF)(d,{ref:"currentDom"},null,512)])),_:1})):(0,t.Q3)("",!0),2==a.step.step?((0,t.uX)(),(0,t.Wv)(m,{key:1,shadow:"never"},{default:(0,t.k6)((()=>[(0,t.bF)(i,{ref:"currentDom"},null,512)])),_:1})):(0,t.Q3)("",!0),3==a.step.step?((0,t.uX)(),(0,t.Wv)(m,{key:2,shadow:"never"},{default:(0,t.k6)((()=>[(0,t.bF)(f,{ref:"currentDom"},null,512)])),_:1})):(0,t.Q3)("",!0),4==a.step.step?((0,t.uX)(),(0,t.Wv)(m,{key:3,shadow:"never"},{default:(0,t.k6)((()=>[X])),_:1})):(0,t.Q3)("",!0)]),(0,t.Lk)("div",j,[(0,t.bF)(c,{disabled:a.step.step<=1,onClick:a.handlePrev},{default:(0,t.k6)((()=>[(0,t.eW)("上一步")])),_:1},8,["disabled","onClick"]),a.step.step[(0,t.eW)("下一步")])),_:1},8,["onClick"])):((0,t.uX)(),(0,t.Wv)(c,{key:1,type:"primary",onClick:a.handleSave},{default:(0,t.k6)((()=>[(0,t.eW)("完成")])),_:1},8,["onClick"]))])])])),_:1},8,["modelValue"])])}var E=r(8835),I=r(144),N=r(1219);const q={class:"t-c"};function R(e,l,r,a,o,n){const s=(0,t.g2)("el-checkbox");return(0,t.uX)(),(0,t.CE)("div",q,[(0,t.bF)(s,{modelValue:a.state.form.client,"onUpdate:modelValue":l[0]||(l[0]=e=>a.state.form.client=e),label:"作为客户端"},null,8,["modelValue"]),(0,t.bF)(s,{modelValue:a.state.form.server,"onUpdate:modelValue":l[1]||(l[1]=e=>a.state.form.server=e),label:"作为服务端"},null,8,["modelValue"])])}var D={name:"Common",setup(){const e=(0,t.WQ)("step"),l=(0,I.Kh)({form:{client:e.value.form.common.client||e.value.json.Common&&e.value.json.Common.client||!0,server:e.value.form.common.server||e.value.json.Common&&e.value.json.Common.server||!1}}),r=e=>new Promise(((e,r)=>{l.form.client||l.form.server?e({json:{Common:{client:l.form.client,server:l.form.server,modes:[l.form.client?"client":"",l.form.server?"server":""].filter((e=>!!e))}},form:{common:JSON.parse(JSON.stringify(l.form))}}):(N.nk.error("请选择客户端或服务端"),r())}));return{state:l,handleValidate:r}}};const T=(0,C.A)(D,[["render",R]]);var z=T;const B=e=>((0,t.Qi)("data-v-47b95c93"),e=e(),(0,t.jt)(),e),O=B((()=>(0,t.Lk)("div",{class:"t-c w-100"},[(0,t.Lk)("p",null,"端口为0则不监听,相同分组名之间的客户端相互可见")],-1)));function H(e,l,r,a,o,n){const s=(0,t.g2)("el-form-item"),u=(0,t.g2)("el-input"),d=(0,t.g2)("el-col"),m=(0,t.g2)("el-row"),i=(0,t.g2)("el-checkbox"),f=(0,t.g2)("el-form");return(0,t.uX)(),(0,t.CE)("div",null,[(0,t.bF)(f,{ref:"formDom",model:a.state.form,rules:a.state.rules,"label-width":"8rem"},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[O])),_:1}),(0,t.bF)(s,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"机器名",prop:"name"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.name,"onUpdate:modelValue":l[0]||(l[0]=e=>a.state.form.name=e),maxlength:"12","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"分组名",prop:"groupid"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.groupid,"onUpdate:modelValue":l[1]||(l[1]=e=>a.state.form.groupid=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(s,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"接口端口",prop:"api"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.api,"onUpdate:modelValue":l[2]||(l[2]=e=>a.state.form.api=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"网页端口",prop:"web"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.web,"onUpdate:modelValue":l[3]||(l[3]=e=>a.state.form.web=e)},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(s,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"接口密码",prop:"password"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{style:{width:"42rem"},type:"password",modelValue:a.state.form.password,"onUpdate:modelValue":l[4]||(l[4]=e=>a.state.form.password=e),"show-password":"",maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{"label-width":"8rem",prop:"hasServer"},{default:(0,t.k6)((()=>[(0,t.bF)(i,{modelValue:a.state.form.hasServer,"onUpdate:modelValue":l[5]||(l[5]=e=>a.state.form.hasServer=e),label:"我有服务器",size:"large"},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),a.state.form.hasServer?((0,t.uX)(),(0,t.Wv)(s,{key:0,label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"信标服务",prop:"server"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.server,"onUpdate:modelValue":l[6]||(l[6]=e=>a.state.form.server=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"信标密钥",prop:"serverSecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.serverSecretKey,"onUpdate:modelValue":l[7]||(l[7]=e=>a.state.form.serverSecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1})):(0,t.Q3)("",!0),a.state.form.hasServer?((0,t.uX)(),(0,t.Wv)(s,{key:1,label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"穿透密钥",prop:"sForwardSecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.sForwardSecretKey,"onUpdate:modelValue":l[8]||(l[8]=e=>a.state.form.sForwardSecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"中继密钥",prop:"relaySecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.relaySecretKey,"onUpdate:modelValue":l[9]||(l[9]=e=>a.state.form.relaySecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1})):(0,t.Q3)("",!0),a.state.form.hasServer?((0,t.uX)(),(0,t.Wv)(s,{key:2,label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"更新密钥",prop:"updaterSecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.updaterSecretKey,"onUpdate:modelValue":l[10]||(l[10]=e=>a.state.form.updaterSecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"占位"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{disabled:"",maxlength:"36","show-word-limit":""})])),_:1})])),_:1})])),_:1})])),_:1})):(0,t.Q3)("",!0)])),_:1},8,["model","rules"])])}var J={setup(e){const l=(0,t.WQ)("step"),r=(0,_.B)(),a=(0,I.Kh)({form:{name:l.value.form.client.name||r.value.config.Client.Name,groupid:l.value.form.client.groupid||r.value.config.Client.GroupId,api:l.value.form.client.api||r.value.config.Client.CApi.ApiPort,web:l.value.form.client.web||r.value.config.Client.CApi.WebPort,password:l.value.form.client.password||r.value.config.Client.CApi.ApiPassword,hasServer:l.value.form.client.hasServer||!1,server:l.value.form.client.server||r.value.config.Client.ServerInfo.Host,serverSecretKey:l.value.form.client.serverSecretKey||r.value.config.Client.ServerSecretKey,sForwardSecretKey:l.value.form.client.sForwardSecretKey||r.value.config.Client.SForward.SecretKey,relaySecretKey:l.value.form.client.relaySecretKey||(r.value.config.Client.Relay.Servers[0]||{SecretKey:"snltty"}).SecretKey,updaterSecretKey:l.value.form.client.updaterSecretKey||r.value.config.Client.Updater.SecretKey},rules:{name:[{required:!0,message:"必填",trigger:"blur"}],groupid:[{required:!0,message:"必填",trigger:"blur"}],password:[{required:!0,message:"必填",trigger:"blur"}],api:[{required:!0,message:"必填",trigger:"blur"},{type:"number",min:0,max:65535,message:"数字 0-65535",trigger:"blur",transform(e){return Number(e)}}],web:[{required:!0,message:"必填",trigger:"blur"},{type:"number",min:0,max:65535,message:"数字 0-65535",trigger:"blur",transform(e){return Number(e)}}]}}),o=(0,I.KR)(null),n=()=>new Promise(((e,l)=>{o.value.validate((r=>{r?e({json:{Client:{name:a.form.name,groupid:a.form.groupid,api:+a.form.api,web:+a.form.web,password:a.form.password,hasServer:a.form.hasServer,server:a.form.server,serverSecretKey:a.form.serverSecretKey,sForwardSecretKey:a.form.sForwardSecretKey,relaySecretKey:a.form.relaySecretKey,updaterSecretKey:a.form.updaterSecretKey}},form:{client:JSON.parse(JSON.stringify(a.form))}}):l()}))}));return(0,t.sV)((()=>{0==l.value.json.Common.client&&(l.value.step+=l.value.increment)})),{state:a,handleValidate:n,formDom:o}}};const G=(0,C.A)(J,[["render",H],["__scopeId","data-v-47b95c93"]]);var Y=G;const M=e=>((0,t.Qi)("data-v-c9a17ce0"),e=e(),(0,t.jt)(),e),Z=M((()=>(0,t.Lk)("div",{class:"t-c w-100"},"端口为0则不监听",-1)));function $(e,l,r,a,o,n){const s=(0,t.g2)("el-form-item"),u=(0,t.g2)("el-input"),d=(0,t.g2)("el-col"),m=(0,t.g2)("el-row"),i=(0,t.g2)("el-form");return(0,t.uX)(),(0,t.CE)("div",null,[(0,t.bF)(i,{ref:"formDom",model:a.state.form,rules:a.state.rules,"label-width":"10rem"},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[Z])),_:1}),(0,t.bF)(s,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"服务端口",prop:"servicePort"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.servicePort,"onUpdate:modelValue":l[0]||(l[0]=e=>a.state.form.servicePort=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"web穿透端口",prop:"webPort"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.webPort,"onUpdate:modelValue":l[1]||(l[1]=e=>a.state.form.webPort=e)},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(s,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"开放最小端口",prop:"tunnelPort1"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.tunnelPort1,"onUpdate:modelValue":l[2]||(l[2]=e=>a.state.form.tunnelPort1=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"开放最大端口",prop:"tunnelPort2"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.tunnelPort2,"onUpdate:modelValue":l[3]||(l[3]=e=>a.state.form.tunnelPort2=e)},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(s,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:24},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"信标密钥",prop:"signinSecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.signinSecretKey,"onUpdate:modelValue":l[4]||(l[4]=e=>a.state.form.signinSecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(s,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"穿透密钥",prop:"sForwardSecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.sForwardSecretKey,"onUpdate:modelValue":l[5]||(l[5]=e=>a.state.form.sForwardSecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(d,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"中继密钥",prop:"relaySecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.relaySecretKey,"onUpdate:modelValue":l[6]||(l[6]=e=>a.state.form.relaySecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(s,{label:"","label-width":"0"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(d,{span:24},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"更新密钥",prop:"updaterSecretKey"},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:a.state.form.updaterSecretKey,"onUpdate:modelValue":l[7]||(l[7]=e=>a.state.form.updaterSecretKey=e),maxlength:"36","show-word-limit":""},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1})])),_:1},8,["model","rules"])])}var ee={setup(e){const l=(0,t.WQ)("step"),r=(0,_.B)(),a=(0,I.Kh)({show:!1,form:{signinSecretKey:l.value.form.server.signinSecretKey||r.value.config.Server.SignIn.SecretKey,relaySecretKey:l.value.form.server.relaySecretKey||r.value.config.Server.Relay.SecretKey,sForwardSecretKey:l.value.form.server.sForwardSecretKey||r.value.config.Server.SForward.SecretKey,servicePort:l.value.form.server.servicePort||r.value.config.Server.ServicePort,webPort:l.value.form.server.webPort||r.value.config.Server.SForward.WebPort,tunnelPort1:l.value.form.server.tunnelPort1||r.value.config.Server.SForward.TunnelPortRange[0],tunnelPort2:l.value.form.server.tunnelPort2||r.value.config.Server.SForward.TunnelPortRange[1],updaterSecretKey:l.value.form.server.updaterSecretKey||r.value.config.Server.Updater.SecretKey},rules:{relaySecretKey:[{required:!0,message:"必填",trigger:"blur"}],sForwardSecretKey:[{required:!0,message:"必填",trigger:"blur"}],servicePort:[{required:!0,message:"必填",trigger:"blur"},{type:"number",min:0,max:65535,message:"数字 0-65535",trigger:"blur",transform(e){return Number(e)}}],webPort:[{required:!0,message:"必填",trigger:"blur"},{type:"number",min:0,max:65535,message:"数字 0-65535",trigger:"blur",transform(e){return Number(e)}}],tunnelPort1:[{required:!0,message:"必填",trigger:"blur"},{type:"number",min:0,max:65535,message:"数字 0-65535",trigger:"blur",transform(e){return Number(e)}}],tunnelPort2:[{required:!0,message:"必填",trigger:"blur"},{type:"number",min:0,max:65535,message:"数字 0-65535",trigger:"blur",transform(e){return Number(e)}}]}}),o=(0,I.KR)(null),n=()=>new Promise(((e,l)=>{o.value.validate((r=>{0==r?l():e({json:{Server:{ServicePort:+a.form.servicePort,Relay:{SecretKey:a.form.relaySecretKey},SForward:{SecretKey:a.form.sForwardSecretKey,WebPort:+a.form.webPort,TunnelPortRange:[+a.form.tunnelPort1,+a.form.tunnelPort2]},Updater:{SecretKey:a.form.updaterSecretKey},SignIn:{SecretKey:a.form.signinSecretKey}}},form:{server:JSON.parse(JSON.stringify(a.form))}})}))}));return(0,t.sV)((()=>{0==l.value.json.Common.server&&(l.value.step+=l.value.increment)})),{state:a,handleValidate:n,formDom:o}}};const le=(0,C.A)(ee,[["render",$],["__scopeId","data-v-c9a17ce0"]]);var re=le,te={components:{Common:z,Client:Y,Server:re},setup(e){const l=(0,_.B)(),r=(0,I.Kh)({show:0==l.value.config.Common.Install,steps:["选择模式","服务端","客户端","完成"]}),a=(0,I.KR)(null),o=(0,I.KR)({step:1,increment:1,json:{},form:{server:{},client:{},common:{}}});(0,t.Gt)("step",o);const n=()=>{o.value.step--,o.value.increment=-1},s=()=>{o.value.increment=1,a.value.handleValidate().then((e=>{o.value.json=Object.assign(o.value.json,e.json),o.value.form=Object.assign(o.value.form,e.form),o.value.step++})).catch((()=>{}))},u=()=>{(0,E.ai)(o.value.json).then((()=>{N.nk.success("保存成功")})).catch((()=>{N.nk.error("保存失败")}))};return{state:r,currentDom:a,step:o,handlePrev:n,handleNext:s,handleSave:u}}};const ae=(0,C.A)(te,[["render",Q],["__scopeId","data-v-41d4c7eb"]]);var oe=ae,ne=r(1387),se={name:"Index",components:{Head:x,Status:W.A,Install:oe},setup(e){const l=(0,_.B)(),r=(0,ne.rd)(),a=(0,I.KR)(null),o=()=>{(0,t.dY)((()=>{l.value.height=a.value.offsetHeight}))};return(0,t.sV)((()=>{0==l.value.hasAccess("FullManager")&&r.push({name:"NoPermission"}),window.addEventListener("resize",o),o()})),(0,t.hi)((()=>{window.removeEventListener("resize",o)})),{wrap:a}}};const ue=(0,C.A)(se,[["render",d],["__scopeId","data-v-5ea3415a"]]);var de=ue}}]); \ No newline at end of file diff --git a/linker.tray.win/web/js/706.a2a78718.js b/linker.tray.win/web/js/706.a2a78718.js new file mode 100644 index 00000000..7c1baa27 --- /dev/null +++ b/linker.tray.win/web/js/706.a2a78718.js @@ -0,0 +1 @@ +(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[706],{743:function(e,t,l){"use strict";l.d(t,{$U:function(){return s},Ap:function(){return r},Co:function(){return a},DY:function(){return u},Qs:function(){return i},eX:function(){return d},pY:function(){return o}});var n=l(4);const r=()=>(0,n.zG)("sforwardclient/GetSecretKey"),a=e=>(0,n.zG)("sforwardclient/SetSecretKey",e),o=(e="0")=>(0,n.zG)("sforwardclient/get",e),s=e=>(0,n.zG)("sforwardclient/getremote",e),u=e=>(0,n.zG)("sforwardclient/remove",e),i=e=>(0,n.zG)("sforwardclient/add",e),d=()=>(0,n.zG)("sforwardclient/TestLocal")},83:function(e,t,l){"use strict";l.d(t,{$M:function(){return i},KW:function(){return u},S3:function(){return c},Vn:function(){return d},b0:function(){return a},gM:function(){return s},ix:function(){return r},r7:function(){return o}});var n=l(4);const r=()=>(0,n.zG)("tunnel/gettypes"),a=e=>(0,n.zG)("tunnel/SetServers",e),o=(e="0")=>(0,n.zG)("tunnel/get",e),s=()=>(0,n.zG)("tunnel/refresh"),u=e=>(0,n.zG)("tunnel/SetRouteLevel",e),i=e=>(0,n.zG)("tunnel/SetTransports",e),d=()=>(0,n.zG)("tunnel/GeInterfaces"),c=e=>(0,n.zG)("tunnel/SetInterface",e)},920:function(e,t,l){"use strict";l.d(t,{BJ:function(){return d},NS:function(){return o},Vk:function(){return i},aP:function(){return p},ir:function(){return u},lJ:function(){return a},mK:function(){return r},y2:function(){return c},yN:function(){return s}});var n=l(4);const r=(e="0")=>(0,n.zG)("updaterclient/get",e),a=e=>(0,n.zG)("updaterclient/confirm",e),o=e=>(0,n.zG)("updaterclient/exit",e),s=()=>(0,n.zG)("updaterclient/GetSecretKey"),u=e=>(0,n.zG)("updaterclient/SetSecretKey",e),i=()=>(0,n.zG)("updaterclient/getcurrent"),d=()=>(0,n.zG)("updaterclient/getserver"),c=e=>(0,n.zG)("updaterclient/confirmserver",e),p=()=>(0,n.zG)("updaterclient/exitserver")},6734:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return b}});var n=l(6768);const r={class:"card-header flex"},a=(0,n.Lk)("span",null,"同步密钥",-1),o=(0,n.Lk)("span",{class:"flex-1"},null,-1),s=(0,n.Lk)("div",null," 同步,信标服务器,中继服务器,服务器代理穿透,的密钥到所有客户端 ",-1),u={class:"card-header flex"},i=(0,n.Lk)("span",null,"同步服务器配置",-1),d=(0,n.Lk)("span",{class:"flex-1"},null,-1),c=(0,n.Lk)("div",null," 同步,信标服务器,端口服务器,中继服务器,列表到所有客户端 ",-1);function p(e,t,l,p,h,f){const v=(0,n.g2)("el-button"),m=(0,n.g2)("el-card");return(0,n.uX)(),(0,n.CE)("div",null,[(0,n.bF)(m,{shadow:"never"},{header:(0,n.k6)((()=>[(0,n.Lk)("div",r,[a,o,(0,n.bF)(v,{type:"success",onClick:p.handleSyncSecretKey},{default:(0,n.k6)((()=>[(0,n.eW)("确定同步")])),_:1},8,["onClick"])])])),default:(0,n.k6)((()=>[s])),_:1}),(0,n.bF)(m,{shadow:"never",style:{"margin-top":"2rem"}},{header:(0,n.k6)((()=>[(0,n.Lk)("div",u,[i,d,(0,n.bF)(v,{type:"success",onClick:p.handleSyncServer},{default:(0,n.k6)((()=>[(0,n.eW)("确定同步")])),_:1},8,["onClick"])])])),default:(0,n.k6)((()=>[c])),_:1})])}var h=l(3830),f=l(1219),v=l(144),m=l(8835),y={label:"同步配置",name:"async",order:7,setup(e){const t=(0,h.B)(),l=(0,v.Kh)({}),n=()=>{const e={SignSecretKey:t.value.config.Client.ServerInfo.SecretKey,RelaySecretKey:t.value.config.Client.Relay.Servers[0].SecretKey,SForwardSecretKey:t.value.config.Client.SForward.SecretKey};(0,m.g2)(e).then((()=>{f.nk.success("已操作")})).catch((()=>{f.nk.error("操作失败")}))},r=()=>{const e={SignServers:t.value.config.Client.Servers,RelayServers:t.value.config.Client.Relay.Servers,TunnelServers:t.value.config.Client.Tunnel.Servers};(0,m.gH)(e).then((()=>{f.nk.success("已操作")})).catch((()=>{f.nk.error("操作失败")}))};return{state:l,handleSyncSecretKey:n,handleSyncServer:r}}},g=l(1241);const w=(0,g.A)(y,[["render",p]]);var b=w},6488:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return c}});var n=l(6768);const r={key:0,class:"servers-wrap"};function a(e,t,l,a,o,s){const u=(0,n.g2)("el-tab-pane"),i=(0,n.g2)("el-tabs");return a.hasConfig?((0,n.uX)(),(0,n.CE)("div",r,[(0,n.bF)(i,{type:"border-card",style:{width:"100%"},modelValue:a.state.tab,"onUpdate:modelValue":t[0]||(t[0]=e=>a.state.tab=e)},{default:(0,n.k6)((()=>[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(a.settingComponents,((e,t)=>((0,n.uX)(),(0,n.Wv)(u,{key:t,label:e.label,name:e.name},{default:(0,n.k6)((()=>[((0,n.uX)(),(0,n.Wv)((0,n.$y)(e)))])),_:2},1032,["label","name"])))),128))])),_:1},8,["modelValue"])])):(0,n.Q3)("",!0)}var o=l(144),s=l(3830),u={components:{},setup(e){const t=["./Index.vue","./Version.vue","./TunnelServers.vue"],r=l(9317),a=r.keys().filter((e=>0==t.includes(e))).map((e=>r(e).default)).sort(((e,t)=>e.order-t.order)),u=(0,s.B)(),i=(0,n.EW)((()=>u.value.hasAccess("Config"))),d=(0,o.Kh)({tab:a[0].name});return{state:d,settingComponents:a,hasConfig:i}}},i=l(1241);const d=(0,i.A)(u,[["render",a],["__scopeId","data-v-74a22754"]]);var c=d},7362:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return m}});var n=l(6768),r=l(4232);function a(e,t,l,a,o,s){const u=(0,n.g2)("el-input"),i=(0,n.g2)("el-table-column"),d=(0,n.g2)("el-option"),c=(0,n.g2)("el-select"),p=(0,n.g2)("el-switch"),h=(0,n.g2)("el-table");return(0,n.uX)(),(0,n.Wv)(h,{data:a.state.list,border:"",size:"small",width:"100%",height:`${a.state.height}px`,onCellDblclick:a.handleCellClick},{default:(0,n.k6)((()=>[(0,n.bF)(i,{prop:"Name",label:"名称",width:"100"},{default:(0,n.k6)((e=>[e.row.NameEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Name,"onUpdate:modelValue":t=>e.row.Name=t,onBlur:t=>a.handleEditBlur(e.row,"Name")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[(0,n.eW)((0,r.v_)(e.row.Name),1)],64))])),_:1}),(0,n.bF)(i,{prop:"RelayType",label:"类别",width:"100"},{default:(0,n.k6)((e=>[(0,n.bF)(c,{disabled:"",modelValue:e.row.RelayType,"onUpdate:modelValue":t=>e.row.RelayType=t,placeholder:"Select",size:"small",onChange:t=>a.handleEditBlur(e.row,"RelayType")},{default:(0,n.k6)((()=>[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(a.state.types,(e=>((0,n.uX)(),(0,n.Wv)(d,{key:e.Value,label:e.Name,value:e.Value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,n.bF)(i,{prop:"Host",label:"地址"},{default:(0,n.k6)((e=>[e.row.HostEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Host,"onUpdate:modelValue":t=>e.row.Host=t,onBlur:t=>a.handleEditBlur(e.row,"Host")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[(0,n.Lk)("span",{class:(0,r.C4)({red:!e.row.Available,green:e.row.Available})},(0,r.v_)(e.row.Host),3),(0,n.Lk)("span",{class:(0,r.C4)({red:-1==e.row.Delay,green:e.row.Delay<500&&e.row.Delay>=0,yellow:e.row.Delay>=500})}," - "+(0,r.v_)(e.row.Delay)+"ms",3)],64))])),_:1}),(0,n.bF)(i,{prop:"SecretKey",label:"秘钥"},{default:(0,n.k6)((e=>[e.row.SecretKeyEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,type:"password","show-password":"",size:"small",modelValue:e.row.SecretKey,"onUpdate:modelValue":t=>e.row.SecretKey=t,onBlur:t=>a.handleEditBlur(e.row,"SecretKey")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[],64))])),_:1}),(0,n.bF)(i,{property:"SSL",label:"SSL",width:"60"},{default:(0,n.k6)((e=>[(0,n.bF)(p,{modelValue:e.row.SSL,"onUpdate:modelValue":t=>e.row.SSL=t,onChange:t=>a.handleEditBlur(e.row,"SSL"),"inline-prompt":"","active-text":"是","inactive-text":"否"},null,8,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,n.bF)(i,{property:"Disabled",label:"禁用",width:"60"},{default:(0,n.k6)((e=>[(0,n.bF)(p,{modelValue:e.row.Disabled,"onUpdate:modelValue":t=>e.row.Disabled=t,onChange:t=>a.handleEditBlur(e.row,"Disabled"),"inline-prompt":"","active-text":"是","inactive-text":"否",style:{"--el-switch-on-color":"red","--el-switch-off-color":"#ddd"}},null,8,["modelValue","onUpdate:modelValue","onChange"])])),_:1})])),_:1},8,["data","height","onCellDblclick"])}var o=l(4);const s=()=>(0,o.zG)("relay/gettypes"),u=e=>(0,o.zG)("relay/SetServers",e);var i=l(3830),d=l(1219),c=l(144),p=l(7477),h={label:"中继服务器",name:"relayServers",order:4,components:{Delete:p.epd,Plus:p.FWt,Top:p.EjV,Bottom:p.i5o},setup(e){const t=(0,i.B)(),l=(0,c.Kh)({list:t.value.config.Client.Relay.Servers.sort(((e,t)=>e.Disabled-t.Disabled)),types:[],height:(0,n.EW)((()=>t.value.height-90))});(0,n.wB)((()=>t.value.config.Client.Relay.Servers),(()=>{0==l.list.filter((e=>e["__editing"])).length&&(l.list=t.value.config.Client.Relay.Servers.sort(((e,t)=>e.Disabled-t.Disabled)))}));const r=()=>{s().then((e=>{l.types=e}))},a=(e,t)=>{o(e,t.property)},o=(e,t)=>{l.list.forEach((e=>{e["NameEditing"]=!1,e["RelayTypeEditing"]=!1,e["HostEditing"]=!1,e["SecretKeyEditing"]=!1})),e["__editing"]=!0,e[`${t}Editing`]=!0},p=(e,t)=>{e[`${t}Editing`]=!1,e["__editing"]=!1,m()},h=e=>{l.list.splice(e,1),m()},f=e=>{l.list.filter((e=>""==e.Host||""==e.Name)).length>0||(l.list.splice(e+1,0,{Name:"",Host:"",RelayType:0,SecretKey:"snltty",Disabled:!1}),m())},v=(e,t)=>{const n=l.list[e],r=l.list[e+t];n&&r&&(l.list[e+t]=n,l.list[e]=r),m(l.list)},m=()=>{l.list=l.list.slice().sort(((e,t)=>e.Disabled-t.Disabled)),u(l.list).then((()=>{d.nk.success("已操作")})).catch((()=>{d.nk.error("操作失败")}))};return(0,n.sV)((()=>{r()})),{state:l,handleCellClick:a,handleEditBlur:p,handleDel:h,handleAdd:f,handleSort:v}}},f=l(1241);const v=(0,f.A)(h,[["render",a],["__scopeId","data-v-2ea70464"]]);var m=v},3751:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return f}});var n=l(6768);const r={style:{width:"30rem",padding:"5rem 0",margin:"0 auto"}},a=(0,n.Lk)("p",{class:"t-c"}," 服务器代理穿透密钥 ",-1);function o(e,t,l,o,s,u){const i=(0,n.g2)("el-input");return(0,n.uX)(),(0,n.CE)("div",r,[a,(0,n.Lk)("p",null,[(0,n.bF)(i,{type:"password","show-password":"",modelValue:o.state.SForwardSecretKey,"onUpdate:modelValue":t[0]||(t[0]=e=>o.state.SForwardSecretKey=e),maxlength:"36",onBlur:o.handleChange},null,8,["modelValue","onBlur"])])])}var s=l(743),u=l(3830),i=l(1219),d=l(144),c={label:"服务器穿透",name:"sforward",order:5,setup(e){(0,u.B)();const t=(0,d.Kh)({SForwardSecretKey:""}),l=()=>{(0,s.Ap)().then((e=>{t.SForwardSecretKey=e}))},r=()=>{t.SForwardSecretKey&&(0,s.Co)(t.SForwardSecretKey).then((()=>{i.nk.success("已操作")})).catch((()=>{i.nk.error("操作失败")}))},a=()=>{r()};return(0,n.sV)((()=>{l()})),{state:t,handleChange:a}}},p=l(1241);const h=(0,p.A)(c,[["render",o]]);var f=h},3477:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return v}});var n=l(6768),r=l(4232);function a(e,t,l,a,o,s){const u=(0,n.g2)("el-input"),i=(0,n.g2)("el-table-column"),d=(0,n.g2)("el-table");return(0,n.uX)(),(0,n.Wv)(d,{data:a.state.list,border:"",size:"small",width:"100%",height:`${a.state.height}px`,onCellDblclick:a.handleCellClick},{default:(0,n.k6)((()=>[(0,n.bF)(i,{prop:"Name",label:"名称",width:"100"},{default:(0,n.k6)((e=>[e.row.NameEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Name,"onUpdate:modelValue":t=>e.row.Name=t,onBlur:t=>a.handleEditBlur(e.row,"Name")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[(0,n.eW)((0,r.v_)(e.row.Name),1)],64))])),_:1}),(0,n.bF)(i,{prop:"Host",label:"地址"},{default:(0,n.k6)((e=>[e.row.HostEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Host,"onUpdate:modelValue":t=>e.row.Host=t,onBlur:t=>a.handleEditBlur(e.row,"Host")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[(0,n.eW)((0,r.v_)(e.row.Host),1)],64))])),_:1}),(0,n.bF)(i,{prop:"SecretKey",label:"秘钥"},{default:(0,n.k6)((e=>[e.row.SecretKeyEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,type:"password","show-password":"",size:"small",modelValue:e.row.SecretKey,"onUpdate:modelValue":t=>e.row.SecretKey=t,onBlur:t=>a.handleEditBlur(e.row,"SecretKey")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[],64))])),_:1})])),_:1},8,["data","height","onCellDblclick"])}var o=l(9299),s=l(3830),u=l(1219),i=l(144),d=l(7477),c=l(83),p={label:"信标服务器",name:"signInServers",order:0,components:{Delete:d.epd,Plus:d.FWt,Select:d.l6P},setup(e){const t=(0,s.B)(),l=(0,i.Kh)({list:t.value.config.Client.Servers||[],server:(0,n.EW)((()=>t.value.config.Client.ServerInfo.Host)),height:(0,n.EW)((()=>t.value.height-90))});(0,n.wB)((()=>t.value.config.Client.Servers),(()=>{0==l.list.filter((e=>e["__editing"])).length&&(l.list=t.value.config.Client.Servers)}));const r=(e,t)=>{a(e,t.property)},a=(e,t)=>{l.list.forEach((e=>{e["NameEditing"]=!1,e["HostEditing"]=!1,e["SecretKeyEditing"]=!1})),e[`${t}Editing`]=!0,e["__editing"]=!0},d=(e,t)=>{e[`${t}Editing`]=!1,e["__editing"]=!1,v()},p=e=>{l.list.splice(e,1),v()},h=e=>{l.list.filter((e=>""==e.Host||""==e.Name)).length>0||(l.list.splice(e+1,0,{Name:"",Host:""}),v())},f=e=>{const t=l.list[e];l.list[e]=l.list[0],l.list[0]=t,v()},v=()=>{const e=t.value.config.Client.Tunnel.Servers.slice(),n=l.list[0];for(let t=0;t{u.nk.success("已操作")})).catch((()=>{u.nk.error("操作失败")})),(0,c.b0)(e).then((()=>{u.nk.success("已操作")})).catch((()=>{u.nk.error("操作失败")}))};return{state:l,handleCellClick:r,handleEditBlur:d,handleDel:p,handleAdd:h,handleUse:f}}},h=l(1241);const f=(0,h.A)(p,[["render",a]]);var v=f},6704:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return f}});var n=l(6768),r=l(4232);function a(e,t,l,a,o,s){const u=(0,n.g2)("el-input"),i=(0,n.g2)("el-table-column"),d=(0,n.g2)("el-option"),c=(0,n.g2)("el-select"),p=(0,n.g2)("el-table");return(0,n.uX)(),(0,n.Wv)(p,{data:a.state.list,border:"",size:"small",width:"100%",height:`${a.state.height}px`,onCellDblclick:a.handleCellClick},{default:(0,n.k6)((()=>[(0,n.bF)(i,{prop:"Name",label:"名称",width:"100"},{default:(0,n.k6)((e=>[e.row.NameEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Name,"onUpdate:modelValue":t=>e.row.Name=t,onBlur:t=>a.handleEditBlur(e.row,"Name")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[(0,n.eW)((0,r.v_)(e.row.Name),1)],64))])),_:1}),(0,n.bF)(i,{prop:"ProtocolType",label:"协议",width:"100"},{default:(0,n.k6)((e=>[(0,n.Lk)("div",null,[(0,n.bF)(c,{disabled:"",modelValue:e.row.ProtocolType,"onUpdate:modelValue":t=>e.row.ProtocolType=t,placeholder:"Select",size:"small",onChange:t=>a.handleEditBlur(e.row,"ProtocolType")},{default:(0,n.k6)((()=>[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(e.row.Protocols,((e,t)=>((0,n.uX)(),(0,n.Wv)(d,{key:+t,label:e,value:+t},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])])])),_:1}),(0,n.bF)(i,{prop:"Type",label:"类别",width:"100"},{default:(0,n.k6)((e=>[(0,n.bF)(c,{disabled:"",modelValue:e.row.Type,"onUpdate:modelValue":t=>e.row.Type=t,placeholder:"Select",size:"small",onChange:t=>a.handleEditBlur(e.row,"Type")},{default:(0,n.k6)((()=>[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(a.state.types,(e=>((0,n.uX)(),(0,n.Wv)(d,{key:e.Value,label:e.Name,value:e.Value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,n.bF)(i,{prop:"Host",label:"地址"},{default:(0,n.k6)((e=>[e.row.HostEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Host,"onUpdate:modelValue":t=>e.row.Host=t,onBlur:t=>a.handleEditBlur(e.row,"Host")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[(0,n.eW)((0,r.v_)(e.row.Host),1)],64))])),_:1})])),_:1},8,["data","height","onCellDblclick"])}var o=l(83),s=l(3830),u=l(1219),i=l(144),d=l(7477),c={label:"端口服务器",name:"tunnelServers",order:1,components:{Delete:d.epd,Plus:d.FWt,Top:d.EjV,Bottom:d.i5o},setup(e){const t=(0,s.B)(),l=(0,i.Kh)({list:t.value.config.Client.Tunnel.Servers.sort(((e,t)=>e.Disabled-t.Disabled)),types:[],height:(0,n.EW)((()=>t.value.height-90)),interfaces:[]});(0,n.wB)((()=>t.value.config.Client.Tunnel.Servers),(()=>{0==l.list.filter((e=>e["__editing"])).length&&(l.list=t.value.config.Client.Tunnel.Servers.sort(((e,t)=>e.Disabled-t.Disabled))),l.interface=t.value.config.Client.Tunnel.Interface}));const r=()=>{(0,o.Vn)().then((e=>{e.splice(0,0,"0.0.0.0"),l.interfaces=e})).catch((()=>{}))},a=()=>{(0,o.S3)(l.interface).then((()=>{})).catch((()=>{}))},d=()=>{(0,o.ix)().then((e=>{l.types=e,c(l.list)}))},c=e=>{e.forEach((e=>{e.Protocols=l.types.filter((t=>t.Value==e.Type))[0].Protocols,e.Protocols[e.ProtocolType]||(e.ProtocolType=+Object.keys(e.Protocols)[0])}))},p=(e,t)=>{h(e,t.property)},h=(e,t)=>{c([e]),l.list.forEach((e=>{e["NameEditing"]=!1,e["TypeEditing"]=!1,e["HostEditing"]=!1,e["ProtocolTypeEditing"]=!1})),e[`${t}Editing`]=!0,e["__editing"]=!0},f=(e,t)=>{c([e]),e[`${t}Editing`]=!1,e["__editing"]=!1,g()},v=e=>{l.list.splice(e,1),g()},m=e=>{if(l.list.filter((e=>""==e.Host||""==e.Name)).length>0)return;const t={Name:"",Host:"",Type:0,Disabled:!1,ProtocolType:2};c([t]),l.list.splice(e+1,0,t),g()},y=(e,t)=>{const n=l.list[e],r=l.list[e+t];n&&r&&(l.list[e+t]=n,l.list[e]=r),g(l.list)},g=()=>{l.list=l.list.slice().sort(((e,t)=>e.Disabled-t.Disabled)),(0,o.b0)(l.list).then((()=>{u.nk.success("已操作")})).catch((()=>{u.nk.error("操作失败")}))};return(0,n.sV)((()=>{d(),r()})),{state:l,handleCellClick:p,handleEditBlur:f,handleDel:v,handleAdd:m,handleSort:y,handleInterfaceChange:a}}},p=l(1241);const h=(0,p.A)(c,[["render",a]]);var f=h},7858:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return f}});var n=l(6768);const r={style:{width:"30rem",padding:"5rem 0",margin:"0 auto"}},a=(0,n.Lk)("p",{class:"t-c"}," 服务器更新密钥 ",-1);function o(e,t,l,o,s,u){const i=(0,n.g2)("el-input");return(0,n.uX)(),(0,n.CE)("div",r,[a,(0,n.Lk)("p",null,[(0,n.bF)(i,{type:"password","show-password":"",modelValue:o.state.secretKey,"onUpdate:modelValue":t[0]||(t[0]=e=>o.state.secretKey=e),maxlength:"36",onBlur:o.handleChange},null,8,["modelValue","onBlur"])])])}var s=l(920),u=l(3830),i=l(1219),d=l(144),c={label:"服务器更新",name:"updater",order:6,setup(e){(0,u.B)();const t=(0,d.Kh)({secretKey:""}),l=()=>{(0,s.yN)().then((e=>{t.secretKey=e}))},r=()=>{t.secretKey&&(0,s.ir)(t.secretKey).then((()=>{i.nk.success("已操作")})).catch((()=>{i.nk.error("操作失败")}))},a=()=>{r()};return(0,n.sV)((()=>{l()})),{state:t,handleChange:a}}},p=l(1241);const h=(0,p.A)(c,[["render",o]]);var f=h},9317:function(e,t,l){var n={"./Async.vue":6734,"./Index.vue":6488,"./RelayServers.vue":7362,"./SForward.vue":3751,"./SignInServers.vue":3477,"./TunnelServers.vue":6704,"./Updater.vue":7858};function r(e){var t=a(e);return l(t)}function a(e){if(!l.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}r.keys=function(){return Object.keys(n)},r.resolve=a,e.exports=r,r.id=9317}}]); \ No newline at end of file diff --git a/linker.tray.win/web/js/948.1788c053.js b/linker.tray.win/web/js/948.1788c053.js deleted file mode 100644 index 6c8c5bf1..00000000 --- a/linker.tray.win/web/js/948.1788c053.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[948],{743:function(e,t,l){"use strict";l.d(t,{$U:function(){return s},Ap:function(){return r},Co:function(){return a},DY:function(){return u},Qs:function(){return i},eX:function(){return d},pY:function(){return o}});var n=l(4);const r=()=>(0,n.zG)("sforwardclient/GetSecretKey"),a=e=>(0,n.zG)("sforwardclient/SetSecretKey",e),o=(e="0")=>(0,n.zG)("sforwardclient/get",e),s=e=>(0,n.zG)("sforwardclient/getremote",e),u=e=>(0,n.zG)("sforwardclient/remove",e),i=e=>(0,n.zG)("sforwardclient/add",e),d=()=>(0,n.zG)("sforwardclient/TestLocal")},83:function(e,t,l){"use strict";l.d(t,{$M:function(){return i},KW:function(){return u},S3:function(){return c},Vn:function(){return d},b0:function(){return a},gM:function(){return s},ix:function(){return r},r7:function(){return o}});var n=l(4);const r=()=>(0,n.zG)("tunnel/gettypes"),a=e=>(0,n.zG)("tunnel/SetServers",e),o=(e="0")=>(0,n.zG)("tunnel/get",e),s=()=>(0,n.zG)("tunnel/refresh"),u=e=>(0,n.zG)("tunnel/SetRouteLevel",e),i=e=>(0,n.zG)("tunnel/SetTransports",e),d=()=>(0,n.zG)("tunnel/GeInterfaces"),c=e=>(0,n.zG)("tunnel/SetInterface",e)},920:function(e,t,l){"use strict";l.d(t,{BJ:function(){return d},NS:function(){return o},Vk:function(){return i},aP:function(){return p},ir:function(){return u},lJ:function(){return a},mK:function(){return r},y2:function(){return c},yN:function(){return s}});var n=l(4);const r=(e="0")=>(0,n.zG)("updaterclient/get",e),a=e=>(0,n.zG)("updaterclient/confirm",e),o=e=>(0,n.zG)("updaterclient/exit",e),s=()=>(0,n.zG)("updaterclient/GetSecretKey"),u=e=>(0,n.zG)("updaterclient/SetSecretKey",e),i=()=>(0,n.zG)("updaterclient/getcurrent"),d=()=>(0,n.zG)("updaterclient/getserver"),c=e=>(0,n.zG)("updaterclient/confirmserver",e),p=()=>(0,n.zG)("updaterclient/exitserver")},5179:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return g}});var n=l(6768);const r=(0,n.Lk)("div",{class:"card-header"},[(0,n.Lk)("span",null,"同步密钥")],-1),a=(0,n.Lk)("div",null," 同步,信标服务器,中继服务器,服务器代理穿透,的密钥到所有客户端 ",-1),o={class:"t-r"},s=(0,n.Lk)("div",{class:"card-header"},[(0,n.Lk)("span",null,"同步服务器配置")],-1),u=(0,n.Lk)("div",null," 同步,信标服务器,端口服务器,中继服务器,列表到所有客户端 ",-1),i={class:"t-r"};function d(e,t,l,d,c,p){const h=(0,n.g2)("el-button"),f=(0,n.g2)("el-card");return(0,n.uX)(),(0,n.CE)("div",null,[(0,n.bF)(f,{shadow:"never"},{header:(0,n.k6)((()=>[r])),footer:(0,n.k6)((()=>[(0,n.Lk)("div",o,[(0,n.bF)(h,{type:"success",onClick:d.handleSyncSecretKey},{default:(0,n.k6)((()=>[(0,n.eW)("确定同步")])),_:1},8,["onClick"])])])),default:(0,n.k6)((()=>[a])),_:1}),(0,n.bF)(f,{shadow:"never",style:{"margin-top":"2rem"}},{header:(0,n.k6)((()=>[s])),footer:(0,n.k6)((()=>[(0,n.Lk)("div",i,[(0,n.bF)(h,{type:"success",onClick:d.handleSyncServer},{default:(0,n.k6)((()=>[(0,n.eW)("确定同步")])),_:1},8,["onClick"])])])),default:(0,n.k6)((()=>[u])),_:1})])}var c=l(3830),p=l(1219),h=l(144),f=l(8835),m={label:"同步配置",name:"async",order:7,setup(e){const t=(0,c.B)(),l=(0,h.Kh)({}),n=()=>{const e={SignSecretKey:t.value.config.Client.ServerInfo.SecretKey,RelaySecretKey:t.value.config.Client.Relay.Servers[0].SecretKey,SForwardSecretKey:t.value.config.Client.SForward.SecretKey};(0,f.g2)(e).then((()=>{p.nk.success("已操作")})).catch((()=>{p.nk.error("操作失败")}))},r=()=>{const e={SignServers:t.value.config.Client.Servers,RelayServers:t.value.config.Client.Relay.Servers,TunnelServers:t.value.config.Client.Tunnel.Servers};(0,f.gH)(e).then((()=>{p.nk.success("已操作")})).catch((()=>{p.nk.error("操作失败")}))};return{state:l,handleSyncSecretKey:n,handleSyncServer:r}}},v=l(1241);const y=(0,v.A)(m,[["render",d]]);var g=y},890:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return c}});var n=l(6768);const r={key:0,class:"servers-wrap"};function a(e,t,l,a,o,s){const u=(0,n.g2)("el-tab-pane"),i=(0,n.g2)("el-tabs");return a.hasConfig?((0,n.uX)(),(0,n.CE)("div",r,[(0,n.bF)(i,{type:"border-card",style:{width:"100%"},modelValue:a.state.tab,"onUpdate:modelValue":t[0]||(t[0]=e=>a.state.tab=e)},{default:(0,n.k6)((()=>[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(a.settingComponents,((e,t)=>((0,n.uX)(),(0,n.Wv)(u,{key:t,label:e.label,name:e.name},{default:(0,n.k6)((()=>[((0,n.uX)(),(0,n.Wv)((0,n.$y)(e)))])),_:2},1032,["label","name"])))),128))])),_:1},8,["modelValue"])])):(0,n.Q3)("",!0)}var o=l(144),s=l(3830),u={components:{},setup(e){const t=["./Index.vue","./Version.vue"],r=l(9317),a=r.keys().filter((e=>0==t.includes(e))).map((e=>r(e).default)).sort(((e,t)=>e.order-t.order)),u=(0,s.B)(),i=(0,n.EW)((()=>u.value.hasAccess("Config"))),d=(0,o.Kh)({tab:a[0].name});return{state:d,settingComponents:a,hasConfig:i}}},i=l(1241);const d=(0,i.A)(u,[["render",a],["__scopeId","data-v-1f4aa573"]]);var c=d},7362:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return v}});var n=l(6768),r=l(4232);function a(e,t,l,a,o,s){const u=(0,n.g2)("el-input"),i=(0,n.g2)("el-table-column"),d=(0,n.g2)("el-option"),c=(0,n.g2)("el-select"),p=(0,n.g2)("el-switch"),h=(0,n.g2)("el-table");return(0,n.uX)(),(0,n.Wv)(h,{data:a.state.list,border:"",size:"small",width:"100%",height:`${a.state.height}px`,onCellDblclick:a.handleCellClick},{default:(0,n.k6)((()=>[(0,n.bF)(i,{prop:"Name",label:"名称",width:"100"},{default:(0,n.k6)((e=>[e.row.NameEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Name,"onUpdate:modelValue":t=>e.row.Name=t,onBlur:t=>a.handleEditBlur(e.row,"Name")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[(0,n.eW)((0,r.v_)(e.row.Name),1)],64))])),_:1}),(0,n.bF)(i,{prop:"RelayType",label:"类别",width:"100"},{default:(0,n.k6)((e=>[(0,n.bF)(c,{disabled:"",modelValue:e.row.RelayType,"onUpdate:modelValue":t=>e.row.RelayType=t,placeholder:"Select",size:"small",onChange:t=>a.handleEditBlur(e.row,"RelayType")},{default:(0,n.k6)((()=>[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(a.state.types,(e=>((0,n.uX)(),(0,n.Wv)(d,{key:e.Value,label:e.Name,value:e.Value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,n.bF)(i,{prop:"Host",label:"地址"},{default:(0,n.k6)((e=>[e.row.HostEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Host,"onUpdate:modelValue":t=>e.row.Host=t,onBlur:t=>a.handleEditBlur(e.row,"Host")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[(0,n.Lk)("span",{class:(0,r.C4)({red:!e.row.Available,green:e.row.Available})},(0,r.v_)(e.row.Host),3),(0,n.Lk)("span",{class:(0,r.C4)({red:-1==e.row.Delay,green:e.row.Delay<500&&e.row.Delay>=0,yellow:e.row.Delay>=500})}," - "+(0,r.v_)(e.row.Delay)+"ms",3)],64))])),_:1}),(0,n.bF)(i,{prop:"SecretKey",label:"秘钥"},{default:(0,n.k6)((e=>[e.row.SecretKeyEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,type:"password","show-password":"",size:"small",modelValue:e.row.SecretKey,"onUpdate:modelValue":t=>e.row.SecretKey=t,onBlur:t=>a.handleEditBlur(e.row,"SecretKey")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[],64))])),_:1}),(0,n.bF)(i,{property:"SSL",label:"SSL",width:"60"},{default:(0,n.k6)((e=>[(0,n.bF)(p,{modelValue:e.row.SSL,"onUpdate:modelValue":t=>e.row.SSL=t,onChange:t=>a.handleEditBlur(e.row,"SSL"),"inline-prompt":"","active-text":"是","inactive-text":"否"},null,8,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,n.bF)(i,{property:"Disabled",label:"禁用",width:"60"},{default:(0,n.k6)((e=>[(0,n.bF)(p,{modelValue:e.row.Disabled,"onUpdate:modelValue":t=>e.row.Disabled=t,onChange:t=>a.handleEditBlur(e.row,"Disabled"),"inline-prompt":"","active-text":"是","inactive-text":"否",style:{"--el-switch-on-color":"red","--el-switch-off-color":"#ddd"}},null,8,["modelValue","onUpdate:modelValue","onChange"])])),_:1})])),_:1},8,["data","height","onCellDblclick"])}var o=l(4);const s=()=>(0,o.zG)("relay/gettypes"),u=e=>(0,o.zG)("relay/SetServers",e);var i=l(3830),d=l(1219),c=l(144),p=l(7477),h={label:"中继服务器",name:"relayServers",order:4,components:{Delete:p.epd,Plus:p.FWt,Top:p.EjV,Bottom:p.i5o},setup(e){const t=(0,i.B)(),l=(0,c.Kh)({list:t.value.config.Client.Relay.Servers.sort(((e,t)=>e.Disabled-t.Disabled)),types:[],height:(0,n.EW)((()=>t.value.height-90))});(0,n.wB)((()=>t.value.config.Client.Relay.Servers),(()=>{0==l.list.filter((e=>e["__editing"])).length&&(l.list=t.value.config.Client.Relay.Servers.sort(((e,t)=>e.Disabled-t.Disabled)))}));const r=()=>{s().then((e=>{l.types=e}))},a=(e,t)=>{o(e,t.property)},o=(e,t)=>{l.list.forEach((e=>{e["NameEditing"]=!1,e["RelayTypeEditing"]=!1,e["HostEditing"]=!1,e["SecretKeyEditing"]=!1})),e["__editing"]=!0,e[`${t}Editing`]=!0},p=(e,t)=>{e[`${t}Editing`]=!1,e["__editing"]=!1,v()},h=e=>{l.list.splice(e,1),v()},f=e=>{l.list.filter((e=>""==e.Host||""==e.Name)).length>0||(l.list.splice(e+1,0,{Name:"",Host:"",RelayType:0,SecretKey:"snltty",Disabled:!1}),v())},m=(e,t)=>{const n=l.list[e],r=l.list[e+t];n&&r&&(l.list[e+t]=n,l.list[e]=r),v(l.list)},v=()=>{l.list=l.list.slice().sort(((e,t)=>e.Disabled-t.Disabled)),u(l.list).then((()=>{d.nk.success("已操作")})).catch((()=>{d.nk.error("操作失败")}))};return(0,n.sV)((()=>{r()})),{state:l,handleCellClick:a,handleEditBlur:p,handleDel:h,handleAdd:f,handleSort:m}}},f=l(1241);const m=(0,f.A)(h,[["render",a],["__scopeId","data-v-2ea70464"]]);var v=m},3751:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return f}});var n=l(6768);const r={style:{width:"30rem",padding:"5rem 0",margin:"0 auto"}},a=(0,n.Lk)("p",{class:"t-c"}," 服务器代理穿透密钥 ",-1);function o(e,t,l,o,s,u){const i=(0,n.g2)("el-input");return(0,n.uX)(),(0,n.CE)("div",r,[a,(0,n.Lk)("p",null,[(0,n.bF)(i,{type:"password","show-password":"",modelValue:o.state.SForwardSecretKey,"onUpdate:modelValue":t[0]||(t[0]=e=>o.state.SForwardSecretKey=e),maxlength:"36",onBlur:o.handleChange},null,8,["modelValue","onBlur"])])])}var s=l(743),u=l(3830),i=l(1219),d=l(144),c={label:"服务器穿透",name:"sforward",order:5,setup(e){(0,u.B)();const t=(0,d.Kh)({SForwardSecretKey:""}),l=()=>{(0,s.Ap)().then((e=>{t.SForwardSecretKey=e}))},r=()=>{t.SForwardSecretKey&&(0,s.Co)(t.SForwardSecretKey).then((()=>{i.nk.success("已操作")})).catch((()=>{i.nk.error("操作失败")}))},a=()=>{r()};return(0,n.sV)((()=>{l()})),{state:t,handleChange:a}}},p=l(1241);const h=(0,p.A)(c,[["render",o]]);var f=h},6700:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return f}});var n=l(6768),r=l(4232);function a(e,t,l,a,o,s){const u=(0,n.g2)("el-input"),i=(0,n.g2)("el-table-column"),d=(0,n.g2)("el-table");return(0,n.uX)(),(0,n.Wv)(d,{data:a.state.list,border:"",size:"small",width:"100%",height:`${a.state.height}px`,onCellDblclick:a.handleCellClick},{default:(0,n.k6)((()=>[(0,n.bF)(i,{prop:"Name",label:"名称",width:"100"},{default:(0,n.k6)((e=>[e.row.NameEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Name,"onUpdate:modelValue":t=>e.row.Name=t,onBlur:t=>a.handleEditBlur(e.row,"Name")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[(0,n.eW)((0,r.v_)(e.row.Name),1)],64))])),_:1}),(0,n.bF)(i,{prop:"Host",label:"地址"},{default:(0,n.k6)((e=>[e.row.HostEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Host,"onUpdate:modelValue":t=>e.row.Host=t,onBlur:t=>a.handleEditBlur(e.row,"Host")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[(0,n.eW)((0,r.v_)(e.row.Host),1)],64))])),_:1}),(0,n.bF)(i,{prop:"SecretKey",label:"秘钥"},{default:(0,n.k6)((e=>[e.row.SecretKeyEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,type:"password","show-password":"",size:"small",modelValue:e.row.SecretKey,"onUpdate:modelValue":t=>e.row.SecretKey=t,onBlur:t=>a.handleEditBlur(e.row,"SecretKey")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[],64))])),_:1})])),_:1},8,["data","height","onCellDblclick"])}var o=l(9299),s=l(3830),u=l(1219),i=l(144),d=l(7477),c={label:"信标服务器",name:"signInServers",order:0,components:{Delete:d.epd,Plus:d.FWt,Select:d.l6P},setup(e){const t=(0,s.B)(),l=(0,i.Kh)({list:t.value.config.Client.Servers||[],server:(0,n.EW)((()=>t.value.config.Client.ServerInfo.Host)),height:(0,n.EW)((()=>t.value.height-90))});(0,n.wB)((()=>t.value.config.Client.Servers),(()=>{0==l.list.filter((e=>e["__editing"])).length&&(l.list=t.value.config.Client.Servers)}));const r=(e,t)=>{a(e,t.property)},a=(e,t)=>{l.list.forEach((e=>{e["NameEditing"]=!1,e["HostEditing"]=!1,e["SecretKeyEditing"]=!1})),e[`${t}Editing`]=!0,e["__editing"]=!0},d=(e,t)=>{e[`${t}Editing`]=!1,e["__editing"]=!1,f()},c=e=>{l.list.splice(e,1),f()},p=e=>{l.list.filter((e=>""==e.Host||""==e.Name)).length>0||(l.list.splice(e+1,0,{Name:"",Host:""}),f())},h=e=>{const t=l.list[e];l.list[e]=l.list[0],l.list[0]=t,f()},f=()=>{(0,o.jU)(l.list).then((()=>{u.nk.success("已操作")})).catch((()=>{u.nk.error("操作失败")}))};return{state:l,handleCellClick:r,handleEditBlur:d,handleDel:c,handleAdd:p,handleUse:h}}},p=l(1241);const h=(0,p.A)(c,[["render",a]]);var f=h},6704:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return f}});var n=l(6768),r=l(4232);function a(e,t,l,a,o,s){const u=(0,n.g2)("el-input"),i=(0,n.g2)("el-table-column"),d=(0,n.g2)("el-option"),c=(0,n.g2)("el-select"),p=(0,n.g2)("el-table");return(0,n.uX)(),(0,n.Wv)(p,{data:a.state.list,border:"",size:"small",width:"100%",height:`${a.state.height}px`,onCellDblclick:a.handleCellClick},{default:(0,n.k6)((()=>[(0,n.bF)(i,{prop:"Name",label:"名称",width:"100"},{default:(0,n.k6)((e=>[e.row.NameEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Name,"onUpdate:modelValue":t=>e.row.Name=t,onBlur:t=>a.handleEditBlur(e.row,"Name")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[(0,n.eW)((0,r.v_)(e.row.Name),1)],64))])),_:1}),(0,n.bF)(i,{prop:"ProtocolType",label:"协议",width:"100"},{default:(0,n.k6)((e=>[(0,n.Lk)("div",null,[(0,n.bF)(c,{disabled:"",modelValue:e.row.ProtocolType,"onUpdate:modelValue":t=>e.row.ProtocolType=t,placeholder:"Select",size:"small",onChange:t=>a.handleEditBlur(e.row,"ProtocolType")},{default:(0,n.k6)((()=>[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(e.row.Protocols,((e,t)=>((0,n.uX)(),(0,n.Wv)(d,{key:+t,label:e,value:+t},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])])])),_:1}),(0,n.bF)(i,{prop:"Type",label:"类别",width:"100"},{default:(0,n.k6)((e=>[(0,n.bF)(c,{disabled:"",modelValue:e.row.Type,"onUpdate:modelValue":t=>e.row.Type=t,placeholder:"Select",size:"small",onChange:t=>a.handleEditBlur(e.row,"Type")},{default:(0,n.k6)((()=>[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(a.state.types,(e=>((0,n.uX)(),(0,n.Wv)(d,{key:e.Value,label:e.Name,value:e.Value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,n.bF)(i,{prop:"Host",label:"地址"},{default:(0,n.k6)((e=>[e.row.HostEditing?((0,n.uX)(),(0,n.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Host,"onUpdate:modelValue":t=>e.row.Host=t,onBlur:t=>a.handleEditBlur(e.row,"Host")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[(0,n.eW)((0,r.v_)(e.row.Host),1)],64))])),_:1})])),_:1},8,["data","height","onCellDblclick"])}var o=l(83),s=l(3830),u=l(1219),i=l(144),d=l(7477),c={label:"端口服务器",name:"tunnelServers",order:1,components:{Delete:d.epd,Plus:d.FWt,Top:d.EjV,Bottom:d.i5o},setup(e){const t=(0,s.B)(),l=(0,i.Kh)({list:t.value.config.Client.Tunnel.Servers.sort(((e,t)=>e.Disabled-t.Disabled)),types:[],height:(0,n.EW)((()=>t.value.height-90)),interfaces:[]});(0,n.wB)((()=>t.value.config.Client.Tunnel.Servers),(()=>{0==l.list.filter((e=>e["__editing"])).length&&(l.list=t.value.config.Client.Tunnel.Servers.sort(((e,t)=>e.Disabled-t.Disabled))),l.interface=t.value.config.Client.Tunnel.Interface}));const r=()=>{(0,o.Vn)().then((e=>{e.splice(0,0,"0.0.0.0"),l.interfaces=e})).catch((()=>{}))},a=()=>{(0,o.S3)(l.interface).then((()=>{})).catch((()=>{}))},d=()=>{(0,o.ix)().then((e=>{l.types=e,c(l.list)}))},c=e=>{e.forEach((e=>{e.Protocols=l.types.filter((t=>t.Value==e.Type))[0].Protocols,e.Protocols[e.ProtocolType]||(e.ProtocolType=+Object.keys(e.Protocols)[0])}))},p=(e,t)=>{h(e,t.property)},h=(e,t)=>{c([e]),l.list.forEach((e=>{e["NameEditing"]=!1,e["TypeEditing"]=!1,e["HostEditing"]=!1,e["ProtocolTypeEditing"]=!1})),e[`${t}Editing`]=!0,e["__editing"]=!0},f=(e,t)=>{c([e]),e[`${t}Editing`]=!1,e["__editing"]=!1,g()},m=e=>{l.list.splice(e,1),g()},v=e=>{if(l.list.filter((e=>""==e.Host||""==e.Name)).length>0)return;const t={Name:"",Host:"",Type:0,Disabled:!1,ProtocolType:2};c([t]),l.list.splice(e+1,0,t),g()},y=(e,t)=>{const n=l.list[e],r=l.list[e+t];n&&r&&(l.list[e+t]=n,l.list[e]=r),g(l.list)},g=()=>{l.list=l.list.slice().sort(((e,t)=>e.Disabled-t.Disabled)),(0,o.b0)(l.list).then((()=>{u.nk.success("已操作")})).catch((()=>{u.nk.error("操作失败")}))};return(0,n.sV)((()=>{d(),r()})),{state:l,handleCellClick:p,handleEditBlur:f,handleDel:m,handleAdd:v,handleSort:y,handleInterfaceChange:a}}},p=l(1241);const h=(0,p.A)(c,[["render",a]]);var f=h},7858:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return f}});var n=l(6768);const r={style:{width:"30rem",padding:"5rem 0",margin:"0 auto"}},a=(0,n.Lk)("p",{class:"t-c"}," 服务器更新密钥 ",-1);function o(e,t,l,o,s,u){const i=(0,n.g2)("el-input");return(0,n.uX)(),(0,n.CE)("div",r,[a,(0,n.Lk)("p",null,[(0,n.bF)(i,{type:"password","show-password":"",modelValue:o.state.secretKey,"onUpdate:modelValue":t[0]||(t[0]=e=>o.state.secretKey=e),maxlength:"36",onBlur:o.handleChange},null,8,["modelValue","onBlur"])])])}var s=l(920),u=l(3830),i=l(1219),d=l(144),c={label:"服务器更新",name:"updater",order:6,setup(e){(0,u.B)();const t=(0,d.Kh)({secretKey:""}),l=()=>{(0,s.yN)().then((e=>{t.secretKey=e}))},r=()=>{t.secretKey&&(0,s.ir)(t.secretKey).then((()=>{i.nk.success("已操作")})).catch((()=>{i.nk.error("操作失败")}))},a=()=>{r()};return(0,n.sV)((()=>{l()})),{state:t,handleChange:a}}},p=l(1241);const h=(0,p.A)(c,[["render",o]]);var f=h},9317:function(e,t,l){var n={"./Async.vue":5179,"./Index.vue":890,"./RelayServers.vue":7362,"./SForward.vue":3751,"./SignInServers.vue":6700,"./TunnelServers.vue":6704,"./Updater.vue":7858};function r(e){var t=a(e);return l(t)}function a(e){if(!l.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}r.keys=function(){return Object.keys(n)},r.resolve=a,e.exports=r,r.id=9317}}]); \ No newline at end of file diff --git a/linker.tray.win/web/js/app.55b9dbd0.js b/linker.tray.win/web/js/app.55b9dbd0.js deleted file mode 100644 index 386d7fdd..00000000 --- a/linker.tray.win/web/js/app.55b9dbd0.js +++ /dev/null @@ -1 +0,0 @@ -(function(){"use strict";var e={8835:function(e,n,t){t.d(n,{P$:function(){return c},QI:function(){return u},ZK:function(){return s},ai:function(){return i},g2:function(){return a},gH:function(){return l},zj:function(){return r}});var o=t(4);const r=()=>(0,o.zG)("configclient/get"),i=e=>(0,o.zG)("configclient/install",e),c=e=>(0,o.zG)("configclient/export",e),u=e=>(0,o.zG)("configclient/GetAccesss",e),s=e=>(0,o.zG)("configclient/SetAccess",e),a=e=>(0,o.zG)("configclient/SecretKeyAsync",e),l=e=>(0,o.zG)("configclient/ServerAsync",e)},4:function(e,n,t){t.d(n,{a1:function(){return v},e3:function(){return b},jH:function(){return w},zG:function(){return y}});t(4114),t(6573),t(8100),t(7936);var o=t(1219);let r=0,i=null,c="",u=1,s="";const a={},l={connected:!1,connecting:!1},d=()=>{const e=Date.now();for(let n in a){const t=a[n];e-t.time>t.timeout&&(t.reject("超时~"),delete a[n])}setTimeout(d,1e3)};d();const f={subs:{},add:function(e,n){"function"==typeof n&&(this.subs[e]||(this.subs[e]=[]),this.subs[e].push(n))},remove(e,n){let t=this.subs[e]||[];for(let o=t.length-1;o>=0;o--)t[o]==n&&t.splice(o,1)},push(e,n){let t=this.subs[e]||[];for(let o=t.length-1;o>=0;o--)t[o](n)}},p=()=>{l.connected=!0,l.connecting=!1,f.push(C,l.connected)},h=e=>{l.connected=!1,l.connecting=!1,f.push(C,l.connected),setTimeout((()=>{v()}),1e3)},g=e=>{if("string"!=typeof e.data)return void e.data.arrayBuffer().then((n=>{const t=new DataView(n).getInt8(),o=new FileReader;o.readAsText(e.data.slice(4,4+t),"utf8"),o.onload=()=>{let r=JSON.parse(o.result);r.Content={Name:r.Content,Img:e.data.slice(4+t,e.data.length),ArrayBuffer:n},m(r)}}));let n=JSON.parse(e.data);m(n)},m=e=>{let n=a[e.RequestId];n?(0==e.Code?n.resolve(e.Content):1==e.Code?n.reject(e.Content):255==e.Code?(n.reject(e.Content),n.errHandle||o.nk.error(`${n.path}:${e.Content}`)):f.push(e.Path,e.Content),delete a[e.RequestId]):f.push(e.Path,e.Content)},v=(e=c,n=s)=>{if(s=n,c=e,l.connecting||l.connected)return;null!=i&&i.close(),l.connecting=!0;const t=n||"snltty";i=new WebSocket(c,[t]),i.iddd=++u,i.onopen=p,i.onclose=h,i.onmessage=g},b=()=>{i&&i.close()},y=(e,n={},t=!1,o=15e3)=>new Promise(((c,u)=>{let s=++r;try{a[s]={resolve:c,reject:u,errHandle:t,path:e,time:Date.now(),timeout:o};let r=JSON.stringify({Path:e,RequestId:s,Content:"string"==typeof n?n:JSON.stringify(n)});l.connected&&1==i.readyState?i.send(r):u("网络错误~")}catch(d){console.log(d),u("网络错误~"),delete a[s]}})),C=Symbol(),w=e=>{f.add(C,e)}},9299:function(e,n,t){t.d(n,{BS:function(){return a},SZ:function(){return c},Se:function(){return l},VN:function(){return u},gC:function(){return d},jU:function(){return i},nD:function(){return s},rd:function(){return r}});var o=t(4);const r=e=>(0,o.zG)("signInclient/set",e),i=e=>(0,o.zG)("signInclient/setservers",e),c=()=>(0,o.zG)("signInclient/info"),u=e=>(0,o.zG)("signInclient/setorder",e),s=e=>(0,o.zG)("signInclient/List",e),a=e=>(0,o.zG)("signInclient/ids",e),l=e=>(0,o.zG)("signInclient/del",e),d=e=>(0,o.zG)("signInclient/setname",e)},1840:function(e,n,t){var o=t(5130),r=t(6768);function i(e,n,t,o,i,c){const u=(0,r.g2)("router-view"),s=(0,r.g2)("Api");return(0,r.uX)(),(0,r.CE)("div",null,[o.configed?((0,r.uX)(),(0,r.Wv)(u,{key:0})):(0,r.Q3)("",!0),(0,r.bF)(s)])}var c=t(3830);const u={class:"port-wrap t-c"},s={class:"pdt-10"};function a(e,n,t,o,i,c){const a=(0,r.g2)("el-input"),l=(0,r.g2)("el-button"),d=(0,r.g2)("el-dialog");return(0,r.uX)(),(0,r.Wv)(d,{class:"options-center",title:"管理接口","destroy-on-close":"",modelValue:o.showPort,"onUpdate:modelValue":n[2]||(n[2]=e=>o.showPort=e),center:"","show-close":!1,"close-on-click-modal":!1,"align-center":"",width:"200"},{footer:(0,r.k6)((()=>[(0,r.bF)(l,{type:"success",onClick:o.handleConnect1,plain:""},{default:(0,r.k6)((()=>[(0,r.eW)("确 定")])),_:1},8,["onClick"])])),default:(0,r.k6)((()=>[(0,r.Lk)("div",u,[(0,r.Lk)("div",null,[(0,r.eW)(" 接口 : "),(0,r.bF)(a,{modelValue:o.state.api,"onUpdate:modelValue":n[0]||(n[0]=e=>o.state.api=e),style:{width:"70%"}},null,8,["modelValue"])]),(0,r.Lk)("div",s,[(0,r.eW)(" 秘钥 : "),(0,r.bF)(a,{type:"password",modelValue:o.state.psd,"onUpdate:modelValue":n[1]||(n[1]=e=>o.state.psd=e),style:{width:"70%"}},null,8,["modelValue"])])])])),_:1},8,["modelValue"])}var l=t(1387),d=t(144),f=t(4),p=t(9299),h=t(8835),g=t(7477),m={components:{Tools:g.S0q},props:["config"],setup(e){const n=(0,c.B)(),t=(0,l.rd)(),o=(0,l.lq)(),i={api:`${window.location.hostname}:1803`,psd:"snltty"},u=JSON.parse(localStorage.getItem("api-cache")||JSON.stringify(i)),s=(0,d.Kh)({api:u.api,psd:u.psd,showPort:!1}),a=(0,r.EW)((()=>0==n.value.api.connected&&s.showPort)),g=()=>{u.api=s.api,u.psd=s.psd,localStorage.setItem("api-cache",JSON.stringify(u)),(0,f.e3)(),(0,f.a1)(`ws://${s.api}`,s.psd)},m=()=>{g(),window.location.reload()},v=()=>{(0,h.zj)().then((e=>{n.value.config.Common=e.Common,n.value.config.Client=e.Client,n.value.config.Server=e.Server,n.value.config.Running=e.Running,n.value.config.configed=!0,setTimeout((()=>{v()}),1e3)})).catch((e=>{setTimeout((()=>{v()}),1e3)}))},b=()=>{(0,p.SZ)().then((e=>{n.value.signin.Connected=e.Connected,n.value.signin.Connecting=e.Connecting,n.value.signin.Version=e.Version,setTimeout((()=>{b()}),1e3)})).catch((e=>{setTimeout((()=>{b()}),1e3)}))};return(0,r.sV)((()=>{setTimeout((()=>{s.showPort=!0}),500),(0,f.jH)((e=>{e&&(v(),b())})),t.isReady().then((()=>{s.api=o.query.api?`${window.location.hostname}:${o.query.api}`:s.api,s.psd=o.query.psd||s.psd,g()}))})),{state:s,showPort:a,handleConnect1:m}}},v=t(1241);const b=(0,v.A)(m,[["render",a],["__scopeId","data-v-787996d8"]]);var y=b,C={components:{Api:y},setup(e){const n=(0,c.v)(),t=(0,r.EW)((()=>n.value.config.configed));return{configed:t}}};const w=(0,v.A)(C,[["render",i]]);var S=w;const k=[{path:"/",name:"Full",component:()=>Promise.all([t.e(805),t.e(244)]).then(t.bind(t,3644)),redirect:"/full/index.html",children:[{path:"/full/index.html",name:"FullIndex",component:()=>Promise.all([t.e(201),t.e(844)]).then(t.bind(t,1413))},{path:"/full/servers.html",name:"FullServers",component:()=>t.e(948).then(t.bind(t,890))},{path:"/full/transport.html",name:"FullTransport",component:()=>t.e(146).then(t.bind(t,8146))},{path:"/full/action.html",name:"FullAction",component:()=>t.e(317).then(t.bind(t,6317))},{path:"/full/logger.html",name:"FullLogger",component:()=>t.e(738).then(t.bind(t,1738))}]},{path:"/net/index.html",name:"Network",component:()=>Promise.all([t.e(805),t.e(201),t.e(670)]).then(t.bind(t,3991))},{path:"/no-permission.html",name:"NoPermission",component:()=>t.e(304).then(t.bind(t,8448))}],A=(0,l.aE)({history:(0,l.Bt)(),routes:k});var P=A,j=t(6161);t(4188),t(2355),t(1862);const O=(0,o.Ef)(S);O.use(j.A,{size:"default"}).use(P).mount("#app")},3830:function(e,n,t){t.d(n,{B:function(){return s},v:function(){return u}});var o=t(4),r=t(144),i=t(6768);const c=Symbol(),u=()=>{const e=(0,r.KR)({api:{connected:!1},height:0,config:{Common:{},Client:{Servers:[],Accesss:{}},Server:{},Running:{Relay:{Servers:[]},Tuntap:{IP:"",PrefixLength:24},Client:{Servers:[]},AutoSyncs:{}},configed:!1},signin:{Connected:!1,Connecting:!1,Version:"v1.0.0.0"},bufferSize:["1KB","2KB","4KB","8KB","16KB","32KB","64KB","128KB","256KB","512KB","1024KB"],updater:{},self:{},hasAccess(e){if(void 0==this.config.Client.Accesss[e])return!1;const n=this.config.Client.Accesss[e].Value||-1,t=this.config.Client.Access||-1;return t>=0&&(0==t||(t&n)>>>0==n)}});return(0,o.jH)((n=>{e.value.api.connected=n})),(0,i.Gt)(c,e),e},s=()=>(0,i.WQ)(c)}},n={};function t(o){var r=n[o];if(void 0!==r)return r.exports;var i=n[o]={exports:{}};return e[o].call(i.exports,i,i.exports,t),i.exports}t.m=e,function(){var e=[];t.O=function(n,o,r,i){if(!o){var c=1/0;for(l=0;l=i)&&Object.keys(t.O).every((function(e){return t.O[e](o[s])}))?o.splice(s--,1):(u=!1,i0&&e[l-1][2]>i;l--)e[l]=e[l-1];e[l]=[o,r,i]}}(),function(){t.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(n,{a:n}),n}}(),function(){t.d=function(e,n){for(var o in n)t.o(n,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})}}(),function(){t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,o){return t.f[o](e,n),n}),[]))}}(),function(){t.u=function(e){return"js/"+e+"."+{146:"2a9f021e",201:"ab852fbb",244:"7bc7c79b",304:"246f819e",317:"21d60a74",670:"ef71cdd7",738:"e637758a",805:"b44536b4",844:"5b1bfc84",948:"1788c053"}[e]+".js"}}(),function(){t.miniCssF=function(e){return"css/"+e+"."+{146:"83bf27dc",244:"22a4124f",304:"48acb9f2",317:"e3f03bb3",670:"bab8ae88",738:"da903b6b",844:"438d6c06",948:"2c420b5d"}[e]+".css"}}(),function(){t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)}}(),function(){var e={},n="linker.web:";t.l=function(o,r,i,c){if(e[o])e[o].push(r);else{var u,s;if(void 0!==i)for(var a=document.getElementsByTagName("script"),l=0;l(0,o.zG)("configclient/get"),i=e=>(0,o.zG)("configclient/install",e),c=e=>(0,o.zG)("configclient/export",e),u=e=>(0,o.zG)("configclient/GetAccesss",e),s=e=>(0,o.zG)("configclient/SetAccess",e),a=e=>(0,o.zG)("configclient/SecretKeyAsync",e),l=e=>(0,o.zG)("configclient/ServerAsync",e)},4:function(e,n,t){t.d(n,{a1:function(){return v},e3:function(){return b},jH:function(){return w},zG:function(){return y}});t(4114),t(6573),t(8100),t(7936);var o=t(1219);let r=0,i=null,c="",u=1,s="";const a={},l={connected:!1,connecting:!1},d=()=>{const e=Date.now();for(let n in a){const t=a[n];e-t.time>t.timeout&&(t.reject("超时~"),delete a[n])}setTimeout(d,1e3)};d();const f={subs:{},add:function(e,n){"function"==typeof n&&(this.subs[e]||(this.subs[e]=[]),this.subs[e].push(n))},remove(e,n){let t=this.subs[e]||[];for(let o=t.length-1;o>=0;o--)t[o]==n&&t.splice(o,1)},push(e,n){let t=this.subs[e]||[];for(let o=t.length-1;o>=0;o--)t[o](n)}},p=()=>{l.connected=!0,l.connecting=!1,f.push(C,l.connected)},h=e=>{l.connected=!1,l.connecting=!1,f.push(C,l.connected),setTimeout((()=>{v()}),1e3)},g=e=>{if("string"!=typeof e.data)return void e.data.arrayBuffer().then((n=>{const t=new DataView(n).getInt8(),o=new FileReader;o.readAsText(e.data.slice(4,4+t),"utf8"),o.onload=()=>{let r=JSON.parse(o.result);r.Content={Name:r.Content,Img:e.data.slice(4+t,e.data.length),ArrayBuffer:n},m(r)}}));let n=JSON.parse(e.data);m(n)},m=e=>{let n=a[e.RequestId];n?(0==e.Code?n.resolve(e.Content):1==e.Code?n.reject(e.Content):255==e.Code?(n.reject(e.Content),n.errHandle||o.nk.error(`${n.path}:${e.Content}`)):f.push(e.Path,e.Content),delete a[e.RequestId]):f.push(e.Path,e.Content)},v=(e=c,n=s)=>{if(s=n,c=e,l.connecting||l.connected)return;null!=i&&i.close(),l.connecting=!0;const t=n||"snltty";i=new WebSocket(c,[t]),i.iddd=++u,i.onopen=p,i.onclose=h,i.onmessage=g},b=()=>{i&&i.close()},y=(e,n={},t=!1,o=15e3)=>new Promise(((c,u)=>{let s=++r;try{a[s]={resolve:c,reject:u,errHandle:t,path:e,time:Date.now(),timeout:o};let r=JSON.stringify({Path:e,RequestId:s,Content:"string"==typeof n?n:JSON.stringify(n)});l.connected&&1==i.readyState?i.send(r):u("网络错误~")}catch(d){console.log(d),u("网络错误~"),delete a[s]}})),C=Symbol(),w=e=>{f.add(C,e)}},9299:function(e,n,t){t.d(n,{BS:function(){return a},SZ:function(){return c},Se:function(){return l},VN:function(){return u},gC:function(){return d},jU:function(){return i},nD:function(){return s},rd:function(){return r}});var o=t(4);const r=e=>(0,o.zG)("signInclient/set",e),i=e=>(0,o.zG)("signInclient/setservers",e),c=()=>(0,o.zG)("signInclient/info"),u=e=>(0,o.zG)("signInclient/setorder",e),s=e=>(0,o.zG)("signInclient/List",e),a=e=>(0,o.zG)("signInclient/ids",e),l=e=>(0,o.zG)("signInclient/del",e),d=e=>(0,o.zG)("signInclient/setname",e)},1840:function(e,n,t){var o=t(5130),r=t(6768);function i(e,n,t,o,i,c){const u=(0,r.g2)("router-view"),s=(0,r.g2)("Api");return(0,r.uX)(),(0,r.CE)("div",null,[o.configed?((0,r.uX)(),(0,r.Wv)(u,{key:0})):(0,r.Q3)("",!0),(0,r.bF)(s)])}var c=t(3830);const u={class:"port-wrap t-c"},s={class:"pdt-10"};function a(e,n,t,o,i,c){const a=(0,r.g2)("el-input"),l=(0,r.g2)("el-button"),d=(0,r.g2)("el-dialog");return(0,r.uX)(),(0,r.Wv)(d,{class:"options-center",title:"管理接口","destroy-on-close":"",modelValue:o.showPort,"onUpdate:modelValue":n[2]||(n[2]=e=>o.showPort=e),center:"","show-close":!1,"close-on-click-modal":!1,"align-center":"",width:"200"},{footer:(0,r.k6)((()=>[(0,r.bF)(l,{type:"success",onClick:o.handleConnect1,plain:""},{default:(0,r.k6)((()=>[(0,r.eW)("确 定")])),_:1},8,["onClick"])])),default:(0,r.k6)((()=>[(0,r.Lk)("div",u,[(0,r.Lk)("div",null,[(0,r.eW)(" 接口 : "),(0,r.bF)(a,{modelValue:o.state.api,"onUpdate:modelValue":n[0]||(n[0]=e=>o.state.api=e),style:{width:"70%"}},null,8,["modelValue"])]),(0,r.Lk)("div",s,[(0,r.eW)(" 秘钥 : "),(0,r.bF)(a,{type:"password",modelValue:o.state.psd,"onUpdate:modelValue":n[1]||(n[1]=e=>o.state.psd=e),style:{width:"70%"}},null,8,["modelValue"])])])])),_:1},8,["modelValue"])}var l=t(1387),d=t(144),f=t(4),p=t(9299),h=t(8835),g=t(7477),m={components:{Tools:g.S0q},props:["config"],setup(e){const n=(0,c.B)(),t=(0,l.rd)(),o=(0,l.lq)(),i={api:`${window.location.hostname}:1803`,psd:"snltty"},u=JSON.parse(localStorage.getItem("api-cache")||JSON.stringify(i)),s=(0,d.Kh)({api:u.api,psd:u.psd,showPort:!1}),a=(0,r.EW)((()=>0==n.value.api.connected&&s.showPort)),g=()=>{u.api=s.api,u.psd=s.psd,localStorage.setItem("api-cache",JSON.stringify(u)),(0,f.e3)(),(0,f.a1)(`ws://${s.api}`,s.psd)},m=()=>{g(),window.location.reload()},v=()=>{(0,h.zj)().then((e=>{n.value.config.Common=e.Common,n.value.config.Client=e.Client,n.value.config.Server=e.Server,n.value.config.Running=e.Running,n.value.config.configed=!0,setTimeout((()=>{v()}),1e3)})).catch((e=>{setTimeout((()=>{v()}),1e3)}))},b=()=>{(0,p.SZ)().then((e=>{n.value.signin.Connected=e.Connected,n.value.signin.Connecting=e.Connecting,n.value.signin.Version=e.Version,setTimeout((()=>{b()}),1e3)})).catch((e=>{setTimeout((()=>{b()}),1e3)}))};return(0,r.sV)((()=>{setTimeout((()=>{s.showPort=!0}),500),(0,f.jH)((e=>{e&&(v(),b())})),t.isReady().then((()=>{s.api=o.query.api?`${window.location.hostname}:${o.query.api}`:s.api,s.psd=o.query.psd||s.psd,g()}))})),{state:s,showPort:a,handleConnect1:m}}},v=t(1241);const b=(0,v.A)(m,[["render",a],["__scopeId","data-v-787996d8"]]);var y=b,C={components:{Api:y},setup(e){const n=(0,c.v)(),t=(0,r.EW)((()=>n.value.config.configed));return{configed:t}}};const w=(0,v.A)(C,[["render",i]]);var S=w;const k=[{path:"/",name:"Full",component:()=>Promise.all([t.e(805),t.e(388)]).then(t.bind(t,6228)),redirect:"/full/index.html",children:[{path:"/full/index.html",name:"FullIndex",component:()=>Promise.all([t.e(201),t.e(844)]).then(t.bind(t,1413))},{path:"/full/servers.html",name:"FullServers",component:()=>t.e(706).then(t.bind(t,6488))},{path:"/full/transport.html",name:"FullTransport",component:()=>t.e(146).then(t.bind(t,8146))},{path:"/full/action.html",name:"FullAction",component:()=>t.e(317).then(t.bind(t,6317))},{path:"/full/logger.html",name:"FullLogger",component:()=>t.e(738).then(t.bind(t,1738))}]},{path:"/net/index.html",name:"Network",component:()=>Promise.all([t.e(805),t.e(201),t.e(670)]).then(t.bind(t,3991))},{path:"/no-permission.html",name:"NoPermission",component:()=>t.e(304).then(t.bind(t,8448))}],A=(0,l.aE)({history:(0,l.Bt)(),routes:k});var P=A,j=t(6161);t(4188),t(2355),t(1862);const O=(0,o.Ef)(S);O.use(j.A,{size:"default"}).use(P).mount("#app")},3830:function(e,n,t){t.d(n,{B:function(){return s},v:function(){return u}});var o=t(4),r=t(144),i=t(6768);const c=Symbol(),u=()=>{const e=(0,r.KR)({api:{connected:!1},height:0,config:{Common:{},Client:{Servers:[],Accesss:{}},Server:{},Running:{Relay:{Servers:[]},Tuntap:{IP:"",PrefixLength:24},Client:{Servers:[]},AutoSyncs:{}},configed:!1},signin:{Connected:!1,Connecting:!1,Version:"v1.0.0.0"},bufferSize:["1KB","2KB","4KB","8KB","16KB","32KB","64KB","128KB","256KB","512KB","1024KB"],updater:{},self:{},hasAccess(e){if(void 0==this.config.Client.Accesss[e])return!1;const n=this.config.Client.Accesss[e].Value||-1,t=this.config.Client.Access||-1;return t>=0&&(0==t||(t&n)>>>0==n)}});return(0,o.jH)((n=>{e.value.api.connected=n})),(0,i.Gt)(c,e),e},s=()=>(0,i.WQ)(c)}},n={};function t(o){var r=n[o];if(void 0!==r)return r.exports;var i=n[o]={exports:{}};return e[o].call(i.exports,i,i.exports,t),i.exports}t.m=e,function(){var e=[];t.O=function(n,o,r,i){if(!o){var c=1/0;for(l=0;l=i)&&Object.keys(t.O).every((function(e){return t.O[e](o[s])}))?o.splice(s--,1):(u=!1,i0&&e[l-1][2]>i;l--)e[l]=e[l-1];e[l]=[o,r,i]}}(),function(){t.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(n,{a:n}),n}}(),function(){t.d=function(e,n){for(var o in n)t.o(n,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})}}(),function(){t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,o){return t.f[o](e,n),n}),[]))}}(),function(){t.u=function(e){return"js/"+e+"."+{146:"2a9f021e",201:"ab852fbb",304:"246f819e",317:"21d60a74",388:"6d23a91f",670:"ef71cdd7",706:"a2a78718",738:"e637758a",805:"b44536b4",844:"5b1bfc84"}[e]+".js"}}(),function(){t.miniCssF=function(e){return"css/"+e+"."+{146:"83bf27dc",304:"48acb9f2",317:"e3f03bb3",388:"50c71cf1",670:"bab8ae88",706:"e7520456",738:"da903b6b",844:"438d6c06"}[e]+".css"}}(),function(){t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)}}(),function(){var e={},n="linker.web:";t.l=function(o,r,i,c){if(e[o])e[o].push(r);else{var u,s;if(void 0!==i)for(var a=document.getElementsByTagName("script"),l=0;lhttps://github.com/snltty/linker https://github.com/snltty/linker linker tun - 1.4.2 - 1.4.2 - 1.4.2 + 1.4.3 + 1.4.3 + 1.4.3
diff --git a/linker.tunnel/linker.tunnel.csproj b/linker.tunnel/linker.tunnel.csproj index 02ddc6e1..ba6071f2 100644 --- a/linker.tunnel/linker.tunnel.csproj +++ b/linker.tunnel/linker.tunnel.csproj @@ -16,9 +16,9 @@ https://github.com/snltty/linker https://github.com/snltty/linker linker tunnel - 1.4.2 - 1.4.2 - 1.4.2 + 1.4.3 + 1.4.3 + 1.4.3 diff --git a/linker/linker.csproj b/linker/linker.csproj index 81c72f9b..5fd05133 100644 --- a/linker/linker.csproj +++ b/linker/linker.csproj @@ -19,16 +19,16 @@ linker snltty snltty - 1. 优化服务器代理穿透,延长UDP超时时间,优化穿透添加逻辑 + 1. 优化服务器代理穿透 2. 当提示端口被占用时,可以稍等一段时间再尝试启动穿透 -3. 优化配置同步 +3. 其它一些更改 snltty https://github.com/snltty/linker https://github.com/snltty/linker linker - 1.4.2 - 1.4.2 - 1.4.2 + 1.4.3 + 1.4.3 + 1.4.3 diff --git a/linker/plugins/action/SignInArgsAction.cs b/linker/plugins/action/SignInArgsAction.cs index 8f1e7a0c..7a19e8e6 100644 --- a/linker/plugins/action/SignInArgsAction.cs +++ b/linker/plugins/action/SignInArgsAction.cs @@ -1,4 +1,5 @@ using linker.config; +using linker.plugins.relay.transport; using linker.plugins.relay.validator; using linker.plugins.sforward.config; using linker.plugins.sforward.validator; @@ -51,7 +52,7 @@ public RelayValidatorAction(ActionTransfer actionTransfer, FileConfig fileConfig this.fileConfig = fileConfig; } - public async Task Validate(SignCacheInfo fromMachine, SignCacheInfo toMachine) + public async Task Validate(linker.plugins.relay.transport.RelayInfo relayInfo, SignCacheInfo fromMachine, SignCacheInfo toMachine) { if (string.IsNullOrWhiteSpace(fileConfig.Data.Action.RelayActionUrl) == false) { diff --git a/linker/plugins/relay/RelayStartup.cs b/linker/plugins/relay/RelayStartup.cs index 6bd2cd63..0adde923 100644 --- a/linker/plugins/relay/RelayStartup.cs +++ b/linker/plugins/relay/RelayStartup.cs @@ -38,7 +38,8 @@ public void AddServer(ServiceCollection serviceCollection, FileConfig config, As serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); - + serviceCollection.AddSingleton(); + } public void UseClient(ServiceProvider serviceProvider, FileConfig config, Assembly[] assemblies) diff --git a/linker/plugins/relay/messenger/RelayMessenger.cs b/linker/plugins/relay/messenger/RelayMessenger.cs index 09370201..f0374949 100644 --- a/linker/plugins/relay/messenger/RelayMessenger.cs +++ b/linker/plugins/relay/messenger/RelayMessenger.cs @@ -63,17 +63,12 @@ public RelayServerMessenger(FileConfig config, MessengerSender messengerSender, public async Task RelayTest(IConnection connection) { RelayTestInfo info = MemoryPackSerializer.Deserialize(connection.ReceiveRequestWrap.Payload.Span); - if (info.SecretKey != config.Data.Server.Relay.SecretKey) - { - connection.Write(Helper.FalseArray); - return; - } if (signCaching.TryGet(connection.Id, out SignCacheInfo cache) == false) { connection.Write(Helper.FalseArray); return; } - string result = await relayValidatorTransfer.Validate(cache, null); + string result = await relayValidatorTransfer.Validate(new transport.RelayInfo { SecretKey = info.SecretKey, FromMachineId = info.MachineId }, cache, null); if (string.IsNullOrWhiteSpace(result) == false) { connection.Write(ulong.MinValue); @@ -92,19 +87,13 @@ public async Task RelayTest(IConnection connection) public async Task RelayAsk(IConnection connection) { transport.RelayInfo info = MemoryPackSerializer.Deserialize(connection.ReceiveRequestWrap.Payload.Span); - if (info.SecretKey != config.Data.Server.Relay.SecretKey) - { - connection.Write(ulong.MinValue); - return; - } - if (signCaching.TryGet(connection.Id, out SignCacheInfo cache) == false || signCaching.TryGet(info.RemoteMachineId, out SignCacheInfo cache1) == false || cache.GroupId != cache1.GroupId) { connection.Write(ulong.MinValue); return; } - string result = await relayValidatorTransfer.Validate(cache, cache1); + string result = await relayValidatorTransfer.Validate(info, cache, cache1); if (string.IsNullOrWhiteSpace(result) == false) { connection.Write(ulong.MinValue); @@ -124,17 +113,12 @@ public async Task RelayAsk(IConnection connection) public async Task RelayForward(IConnection connection) { transport.RelayInfo info = MemoryPackSerializer.Deserialize(connection.ReceiveRequestWrap.Payload.Span); - if (signCaching.TryGet(info.FromMachineId, out SignCacheInfo cacheFrom) == false || signCaching.TryGet(info.RemoteMachineId, out SignCacheInfo cacheTo) == false) - { - connection.Write(Helper.FalseArray); - return; - } - if (cacheFrom.GroupId != cacheTo.GroupId) + if (signCaching.TryGet(info.FromMachineId, out SignCacheInfo cacheFrom) == false || signCaching.TryGet(info.RemoteMachineId, out SignCacheInfo cacheTo) == false || cacheFrom.GroupId != cacheTo.GroupId) { connection.Write(Helper.FalseArray); return; } - string result = await relayValidatorTransfer.Validate(cacheFrom, cacheTo); + string result = await relayValidatorTransfer.Validate(info, cacheFrom, cacheTo); if (string.IsNullOrWhiteSpace(result) == false) { connection.Write(Helper.FalseArray); diff --git a/linker/plugins/relay/validator/IRelayValidator.cs b/linker/plugins/relay/validator/IRelayValidator.cs index 512acc92..3ff3421c 100644 --- a/linker/plugins/relay/validator/IRelayValidator.cs +++ b/linker/plugins/relay/validator/IRelayValidator.cs @@ -1,4 +1,9 @@ -using linker.plugins.signin.messenger; +using linker.config; +using linker.plugins.action; +using linker.plugins.messenger; +using linker.plugins.relay.transport; +using linker.plugins.signin.messenger; +using RelayInfo = linker.plugins.relay.transport.RelayInfo; namespace linker.plugins.relay.validator { @@ -7,9 +12,31 @@ public interface IRelayValidator /// /// 验证 /// + /// 中继信息 /// 来源客户端 /// 目标客户端,可能为null /// - public Task Validate(SignCacheInfo fromMachine, SignCacheInfo toMachine); + public Task Validate(RelayInfo relayInfo, SignCacheInfo fromMachine, SignCacheInfo toMachine); + } + + public sealed class RelayValidatorSecretKey : IRelayValidator + { + private readonly FileConfig fileConfig; + + public RelayValidatorSecretKey(FileConfig fileConfig) + { + this.fileConfig = fileConfig; + } + + public async Task Validate(linker.plugins.relay.transport.RelayInfo relayInfo, SignCacheInfo fromMachine, SignCacheInfo toMachine) + { + if (relayInfo.SecretKey != fileConfig.Data.Server.Relay.SecretKey) + { + return $"SecretKey validate fail"; + } + + await Task.CompletedTask; + return string.Empty; + } } } diff --git a/linker/plugins/relay/validator/RelayValidatorTransfer.cs b/linker/plugins/relay/validator/RelayValidatorTransfer.cs index a2de337c..f8a72a99 100644 --- a/linker/plugins/relay/validator/RelayValidatorTransfer.cs +++ b/linker/plugins/relay/validator/RelayValidatorTransfer.cs @@ -1,4 +1,5 @@ using linker.libs; +using linker.plugins.relay.transport; using linker.plugins.signin.messenger; using Microsoft.Extensions.DependencyInjection; @@ -14,11 +15,11 @@ public RelayValidatorTransfer(ServiceProvider serviceProvider) startups = types.Select(c => serviceProvider.GetService(c) as IRelayValidator).Where(c => c != null).ToList(); } - public async Task Validate(SignCacheInfo cache, SignCacheInfo cache1) + public async Task Validate(RelayInfo relayInfo, SignCacheInfo cache, SignCacheInfo cache1) { foreach (var item in startups) { - string result = await item.Validate(cache, cache1); + string result = await item.Validate(relayInfo, cache, cache1); if (string.IsNullOrWhiteSpace(result) == false) { return result; diff --git a/linker/plugins/sforward/config/SForwardServerCahing.cs b/linker/plugins/sforward/config/SForwardServerCahing.cs index a664f480..a612c1a3 100644 --- a/linker/plugins/sforward/config/SForwardServerCahing.cs +++ b/linker/plugins/sforward/config/SForwardServerCahing.cs @@ -1,4 +1,5 @@ -using System.Collections.Concurrent; +using linker.plugins.signin.messenger; +using System.Collections.Concurrent; namespace linker.plugins.sforward.config { @@ -10,8 +11,10 @@ public sealed class SForwardServerCahing : ISForwardServerCahing private ConcurrentDictionary serverDoamins = new ConcurrentDictionary(); private ConcurrentDictionary serverPorts = new ConcurrentDictionary(); - public SForwardServerCahing() + private readonly SignCaching signCaching; + public SForwardServerCahing(SignCaching signCaching) { + this.signCaching = signCaching; } public bool TryAdd(string domain, string machineId) @@ -20,6 +23,10 @@ public bool TryAdd(string domain, string machineId) { return true; } + if (signCaching.GetOnline(machineId) == false) + { + serverDoamins.TryRemove(domain, out _); + } return serverDoamins.TryAdd(domain, machineId); } @@ -30,6 +37,10 @@ public bool TryAdd(int port, string machineId) { return true; } + if (signCaching.GetOnline(machineId) == false) + { + serverPorts.TryRemove(port, out _); + } return serverPorts.TryAdd(port, machineId); } diff --git a/linker/plugins/sforward/proxy/SForwardProxyUdp.cs b/linker/plugins/sforward/proxy/SForwardProxyUdp.cs index bb76b9e3..552a2a57 100644 --- a/linker/plugins/sforward/proxy/SForwardProxyUdp.cs +++ b/linker/plugins/sforward/proxy/SForwardProxyUdp.cs @@ -280,7 +280,7 @@ public void Update() { LastTime = Environment.TickCount64; } - public bool Timeout => Environment.TickCount64 - LastTime > 60 * 1000; + public bool Timeout => Environment.TickCount64 - LastTime > 5 * 60 * 1000; } public sealed class UdpConnectedCache @@ -292,7 +292,7 @@ public void Update() { LastTime = Environment.TickCount64; } - public bool Timeout => Environment.TickCount64 - LastTime > 60 * 1000; + public bool Timeout => Environment.TickCount64 - LastTime > 5 * 60 * 1000; public void Clear() { diff --git a/linker/plugins/signIn/messenger/SignCaching.cs b/linker/plugins/signIn/messenger/SignCaching.cs index da29ce3a..a56cbcb2 100644 --- a/linker/plugins/signIn/messenger/SignCaching.cs +++ b/linker/plugins/signIn/messenger/SignCaching.cs @@ -89,6 +89,11 @@ public List Get(string groupId) return Clients.Values.Where(c => c.GroupId == groupId).ToList(); } + public bool GetOnline(string machineId) + { + return Clients.TryGetValue(machineId, out SignCacheInfo cache) && cache.Connected; + } + public bool TryRemove(string machineId, out SignCacheInfo cache) { if (Clients.TryRemove(machineId, out cache)) diff --git a/version.txt b/version.txt index 5790948a..61c4b941 100644 --- a/version.txt +++ b/version.txt @@ -1,5 +1,5 @@ -v1.4.2 -2024-09-24 00:52:36 -1. 优化服务器代理穿透,延长UDP超时时间,优化穿透添加逻辑 +v1.4.3 +2024-09-24 09:15:45 +1. 优化服务器代理穿透 2. 当提示端口被占用时,可以稍等一段时间再尝试启动穿透 -3. 优化配置同步 \ No newline at end of file +3. 其它一些更改 \ No newline at end of file