Adjusted router to dynamic import

This commit is contained in:
Donald Zou
2024-11-03 18:35:21 +08:00
parent eaac12ddc8
commit b97fc16ad9
44 changed files with 427 additions and 101 deletions

8
src/static/app/dist/assets/browser.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{_ as r,c as i,b as o,w as e,e as _,o as t,h as l,g as n,i as u,S as d}from"./index.js";const m={name:"configuration"},p={class:"mt-md-5 mt-3 text-body"};function f(h,x,k,w,$,g){const a=_("RouterView");return t(),i("div",p,[o(a,null,{default:e(({Component:s,route:c})=>[o(l,{name:"fade2",mode:"out-in"},{default:e(()=>[(t(),n(d,null,{default:e(()=>[(t(),n(u(s),{key:c.path}))]),_:2},1024))]),_:2},1024)]),_:1})])}const y=r(m,[["render",f]]);export{y as default};

View File

@@ -0,0 +1 @@
.fade-enter-active[data-v-a85a04a5]{transition-delay:var(--1d5189b2)!important}.configurationListTitle{.btn[data-v-790c086d]{border-radius:50%!important}}@media screen and (max-width: 768px){.configurationListTitle{&[data-v-790c086d]{flex-direction:column;gap:.5rem}h3 span[data-v-790c086d]{margin-left:auto!important}.btn[data-v-790c086d]{width:100%}}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
src/static/app/dist/assets/index2.css vendored Normal file
View File

@@ -0,0 +1 @@
@media screen and (max-width: 768px){.navbar-container[data-v-461d2bae]{position:absolute;z-index:1000;animation-duration:.4s;animation-fill-mode:both;display:none;animation-timing-function:cubic-bezier(.82,.58,.17,.9)}.navbar-container.active[data-v-461d2bae]{animation-direction:normal;display:block!important;animation-name:zoomInFade-461d2bae}}.navbar-container[data-v-461d2bae]{height:100vh}@supports (height: 100dvh){@media screen and (max-width: 768px){.navbar-container[data-v-461d2bae]{height:calc(100dvh - 50px)}}}@keyframes zoomInFade-461d2bae{0%{opacity:0;transform:translateY(60px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0px)}}.messageCentre[data-v-93734089]{top:1rem;right:1rem;width:calc(100% - 2rem)}main[data-v-93734089]{height:100vh}@supports (height: 100dvh){@media screen and (max-width: 768px){main[data-v-93734089]{height:calc(100dvh - 50px)}}}

1
src/static/app/dist/assets/index2.js vendored Normal file

File diff suppressed because one or more lines are too long

1
src/static/app/dist/assets/index3.js vendored Normal file
View File

@@ -0,0 +1 @@
function f(e){return e.includes(":")?6:e.includes(".")?4:0}function b(e){const i=f(e);if(!i)throw new Error(`Invalid IP address: ${e}`);let n=0n,o=0n;const r=Object.create(null);if(i===4)for(const s of e.split(".").map(BigInt).reverse())n+=s*2n**o,o+=8n;else{if(e.includes(".")&&(r.ipv4mapped=!0,e=e.split(":").map(t=>{if(t.includes(".")){const[c,l,d,a]=t.split(".").map($=>Number($).toString(16).padStart(2,"0"));return`${c}${l}:${d}${a}`}else return t}).join(":")),e.includes("%")){let t;[,e,t]=/(.+)%(.+)/.exec(e)||[],r.scopeid=t}const s=e.split(":"),u=s.indexOf("");if(u!==-1)for(;s.length<8;)s.splice(u,0,"");for(const t of s.map(c=>BigInt(parseInt(c||"0",16))).reverse())n+=t*2n**o,o+=16n}return r.number=n,r.version=i,r}const p={4:32,6:128},I=e=>e.includes("/")?f(e):0;function m(e){const i=I(e),n=Object.create(null);if(i)n.cidr=e,n.version=i;else{const a=f(e);if(a)n.cidr=`${e}/${p[a]}`,n.version=a;else throw new Error(`Network is not a CIDR or IP: ${e}`)}const[o,r]=n.cidr.split("/");if(!/^[0-9]+$/.test(r))throw new Error(`Network is not a CIDR or IP: ${e}`);n.prefix=r,n.single=r===String(p[n.version]);const{number:s,version:u}=b(o),t=p[u],c=s.toString(2).padStart(t,"0"),l=Number(t-r),d=c.substring(0,t-l);return n.start=BigInt(`0b${d}${"0".repeat(l)}`),n.end=BigInt(`0b${d}${"1".repeat(l)}`),n}export{m as p};

View File

@@ -0,0 +1 @@
import{_ as t,G as e,t as o}from"./index.js";const s={name:"localeText",props:{t:""},computed:{getLocaleText(){return e(this.t)}}};function a(c,r,n,p,_,i){return o(this.getLocaleText)}const x=t(s,[["render",a]]);export{x as L};

View File

@@ -0,0 +1 @@
.message[data-v-f50b8f0c]{width:100%}@media screen and (min-width: 576px){.message[data-v-f50b8f0c]{width:400px}}

1
src/static/app/dist/assets/message.js vendored Normal file
View File

@@ -0,0 +1 @@
import{L as c}from"./localeText.js";import{d as n}from"./dayjs.min.js";import{_ as d,o as r,c as m,a as s,b as i,d as t,t as e,n as l,e as _}from"./index.js";const p={name:"message",methods:{dayjs:n},components:{LocaleText:c},props:{message:Object},mounted(){setTimeout(()=>{this.message.show=!1},5e3)}},g=["id"],h={class:"card-body"},f={class:"d-flex"},x={class:"fw-bold d-block",style:{"text-transform":"uppercase"}},u={class:"ms-auto"};function b(y,v,w,T,L,a){const o=_("LocaleText");return r(),m("div",{class:l(["card shadow rounded-3 position-relative message ms-auto",{"text-bg-danger":this.message.type==="danger","text-bg-success":this.message.type==="success","text-bg-warning":this.message.type==="warning"}]),id:this.message.id},[s("div",h,[s("div",f,[s("small",x,[i(o,{t:"FROM "}),t(" "+e(this.message.from),1)]),s("small",u,e(a.dayjs().format("hh:mm A")),1)]),t(" "+e(this.message.content),1)])],10,g)}const M=d(p,[["render",b],["__scopeId","data-v-f50b8f0c"]]);export{M};

File diff suppressed because one or more lines are too long

1
src/static/app/dist/assets/osmap.css vendored Normal file

File diff suppressed because one or more lines are too long

10
src/static/app/dist/assets/osmap.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.list-move[data-v-6d5fc831],.list-enter-active[data-v-6d5fc831],.list-leave-active[data-v-6d5fc831]{transition:all .3s ease}.list-enter-from[data-v-6d5fc831],.list-leave-to[data-v-6d5fc831]{opacity:0;transform:translateY(10px)}.list-leave-active[data-v-6d5fc831]{position:absolute}.peerSettingContainer[data-v-17eb547c]{background-color:#00000060;z-index:9998}div[data-v-17eb547c]{transition:.2s ease-in-out}.inactiveField[data-v-17eb547c]{opacity:.4}.card[data-v-17eb547c]{max-height:100%}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

18
src/static/app/dist/assets/peerList.js vendored Normal file

File diff suppressed because one or more lines are too long

1
src/static/app/dist/assets/ping.css vendored Normal file
View File

@@ -0,0 +1 @@
.pingPlaceholder[data-v-a08ce97e]{width:100%;height:79.98px}.ping-move[data-v-a08ce97e],.ping-enter-active[data-v-a08ce97e],.ping-leave-active[data-v-a08ce97e]{transition:all .4s cubic-bezier(.82,.58,.17,.9)}.ping-leave-active[data-v-a08ce97e]{position:absolute;width:100%}.ping-enter-from[data-v-a08ce97e],.ping-leave-to[data-v-a08ce97e]{opacity:0;filter:blur(3px)}

1
src/static/app/dist/assets/ping.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.dropdownIcon[data-v-626f1988]{transition:all .2s ease-in-out}.dropdownIcon.active[data-v-626f1988]{transform:rotate(180deg)}.steps{&[data-v-e5d78cfb]{transition:all .3s ease-in-out;opacity:.3}&.active[data-v-e5d78cfb]{opacity:1}}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
@media screen and (max-width: 992px){.apiKey-card-body{&[data-v-a76253c8]{flex-direction:column!important;align-items:start!important}div.ms-auto[data-v-a76253c8]{margin-left:0!important}div[data-v-a76253c8]{width:100%;align-items:start!important}small[data-v-a76253c8]{margin-right:auto}}}.apiKey-move[data-v-100ee9f9],.apiKey-enter-active[data-v-100ee9f9],.apiKey-leave-active[data-v-100ee9f9]{transition:all .5s ease}.apiKey-enter-from[data-v-100ee9f9],.apiKey-leave-to[data-v-100ee9f9]{opacity:0;transform:translateY(30px) scale(.9)}.apiKey-leave-active[data-v-100ee9f9]{position:absolute;width:100%}.dropdown-menu[data-v-0f26916d]{width:100%}.list-group{&[data-v-4aa2aed9]:first-child{border-top-left-radius:var(--bs-border-radius-lg);border-top-right-radius:var(--bs-border-radius-lg)}&[data-v-4aa2aed9]:last-child{border-bottom-left-radius:var(--bs-border-radius-lg);border-bottom-right-radius:var(--bs-border-radius-lg)}}

File diff suppressed because one or more lines are too long

1
src/static/app/dist/assets/setup.js vendored Normal file
View File

@@ -0,0 +1 @@
import{_ as u,D as m,m as p,c as r,a as e,b as o,d as c,t as h,j as f,k as l,p as d,o as i,e as w}from"./index.js";import{L as g}from"./localeText.js";const b={name:"setup",components:{LocaleText:g},setup(){return{store:m()}},data(){return{setup:{username:"",newPassword:"",repeatNewPassword:"",enable_totp:!0},loading:!1,errorMessage:"",done:!1}},computed:{goodToSubmit(){return this.setup.username&&this.setup.newPassword.length>=8&&this.setup.repeatNewPassword.length>=8&&this.setup.newPassword===this.setup.repeatNewPassword}},methods:{submit(){this.loading=!0,p("/api/Welcome_Finish",this.setup,n=>{n.status?(this.done=!0,this.$router.push("/2FASetup")):(document.querySelectorAll("#createAccount input").forEach(s=>s.classList.add("is-invalid")),this.errorMessage=n.message,document.querySelector(".login-container-fluid").scrollTo({top:0,left:0,behavior:"smooth"})),this.loading=!1})}}},_=["data-bs-theme"],x={class:"m-auto text-body",style:{width:"500px"}},v={class:"dashboardLogo display-4"},y={class:"mb-5"},P={key:0,class:"alert alert-danger"},N={class:"d-flex flex-column gap-3"},k={id:"createAccount",class:"d-flex flex-column gap-2"},S={class:"form-group text-body"},T={for:"username",class:"mb-1 text-muted"},C={class:"form-group text-body"},L={for:"password",class:"mb-1 text-muted"},V={class:"form-group text-body"},$={for:"confirmPassword",class:"mb-1 text-muted"},q=["disabled"],A={key:0,class:"d-flex align-items-center w-100"},M={key:1,class:"d-flex align-items-center w-100"};function B(n,s,D,E,U,F){const t=w("LocaleText");return i(),r("div",{class:"container-fluid login-container-fluid d-flex main pt-5 overflow-scroll","data-bs-theme":this.store.Configuration.Server.dashboard_theme},[e("div",x,[e("span",v,[o(t,{t:"Nice to meet you!"})]),e("p",y,[o(t,{t:"Please fill in the following fields to finish setup"}),s[4]||(s[4]=c(" 😊"))]),e("div",null,[e("h3",null,[o(t,{t:"Create an account"})]),this.errorMessage?(i(),r("div",P,h(this.errorMessage),1)):f("",!0),e("div",N,[e("form",k,[e("div",S,[e("label",T,[e("small",null,[o(t,{t:"Enter an username you like"})])]),l(e("input",{type:"text",autocomplete:"username","onUpdate:modelValue":s[0]||(s[0]=a=>this.setup.username=a),class:"form-control",id:"username",name:"username",required:""},null,512),[[d,this.setup.username]])]),e("div",C,[e("label",L,[e("small",null,[o(t,{t:"Enter a password"}),e("code",null,[o(t,{t:"(At least 8 characters and make sure is strong enough!)"})])])]),l(e("input",{type:"password",autocomplete:"new-password","onUpdate:modelValue":s[1]||(s[1]=a=>this.setup.newPassword=a),class:"form-control",id:"password",name:"password",required:""},null,512),[[d,this.setup.newPassword]])]),e("div",V,[e("label",$,[e("small",null,[o(t,{t:"Confirm password"})])]),l(e("input",{type:"password",autocomplete:"confirm-new-password","onUpdate:modelValue":s[2]||(s[2]=a=>this.setup.repeatNewPassword=a),class:"form-control",id:"confirmPassword",name:"confirmPassword",required:""},null,512),[[d,this.setup.repeatNewPassword]])])]),e("button",{class:"btn btn-dark btn-lg mb-5 d-flex btn-brand shadow align-items-center",ref:"signInBtn",disabled:!this.goodToSubmit||this.loading||this.done,onClick:s[3]||(s[3]=a=>this.submit())},[!this.loading&&!this.done?(i(),r("span",A,[o(t,{t:"Next"}),s[5]||(s[5]=e("i",{class:"bi bi-chevron-right ms-auto"},null,-1))])):(i(),r("span",M,[o(t,{t:"Saving..."}),s[6]||(s[6]=e("span",{class:"spinner-border ms-auto spinner-border-sm",role:"status"},[e("span",{class:"visually-hidden"},"Loading...")],-1))]))],8,q)])])])],8,_)}const W=u(b,[["render",B]]);export{W as default};

1
src/static/app/dist/assets/share.css vendored Normal file
View File

@@ -0,0 +1 @@
.animate__fadeInUp[data-v-1b44aacd]{animation-timing-function:cubic-bezier(.42,0,.22,1)}

1
src/static/app/dist/assets/share.js vendored Normal file
View File

@@ -0,0 +1 @@
import{_,q as r,D as p,f as u,c as m,a as t,b as c,X as h,o as f,e as b}from"./index.js";import{b as v}from"./browser.js";import{L as y}from"./localeText.js";const g={name:"share",components:{LocaleText:y},async setup(){const o=h(),e=r(!1),i=p(),n=r(""),s=r(void 0),l=r(new Blob);await u("/api/getDashboardTheme",{},d=>{n.value=d.data});const a=o.query.ShareID;return a===void 0||a.length===0?(s.value=void 0,e.value=!0):await u("/api/sharePeer/get",{ShareID:a},d=>{d.status?(s.value=d.data,l.value=new Blob([s.value.file],{type:"text/plain"})):s.value=void 0,e.value=!0}),{store:i,theme:n,peerConfiguration:s,blob:l}},mounted(){this.peerConfiguration&&v.toCanvas(document.querySelector("#qrcode"),this.peerConfiguration.file,o=>{o&&console.error(o)})},methods:{download(){const o=new Blob([this.peerConfiguration.file],{type:"text/plain"}),e=URL.createObjectURL(o),i=`${this.peerConfiguration.fileName}.conf`,n=document.createElement("a");n.href=e,n.download=i,n.click()}},computed:{getBlob(){return URL.createObjectURL(this.blob)}}},w=["data-bs-theme"],x={class:"m-auto text-body",style:{width:"500px"}},C={key:0,class:"text-center position-relative",style:{}},U={class:"position-absolute w-100 h-100 top-0 start-0 d-flex animate__animated animate__fadeInUp",style:{"animation-delay":"0.1s"}},I={class:"m-auto"},L={key:1,class:"d-flex align-items-center flex-column gap-3"},B={class:"h1 dashboardLogo text-center animate__animated animate__fadeInUp"},k={id:"qrcode",class:"rounded-3 shadow animate__animated animate__fadeInUp mb-3",ref:"qrcode"},q={class:"text-muted animate__animated animate__fadeInUp mb-1",style:{"animation-delay":"0.2s"}},D=["download","href"];function R(o,e,i,n,s,l){const a=b("LocaleText");return f(),m("div",{class:"container-fluid login-container-fluid d-flex main pt-5 overflow-scroll","data-bs-theme":this.theme},[t("div",x,[this.peerConfiguration?(f(),m("div",L,[t("div",B,[e[1]||(e[1]=t("h6",null,"WGDashboard",-1)),c(a,{t:"Scan QR Code with the WireGuard App to add peer"})]),t("canvas",k,null,512),t("p",q,[c(a,{t:"or click the button below to download the "}),e[2]||(e[2]=t("samp",null,".conf",-1)),c(a,{t:" file"})]),t("a",{download:this.peerConfiguration.fileName+".conf",href:l.getBlob,class:"btn btn-lg bg-primary-subtle text-primary-emphasis border-1 border-primary-subtle animate__animated animate__fadeInUp shadow-sm",style:{"animation-delay":"0.25s"}},e[3]||(e[3]=[t("i",{class:"bi bi-download"},null,-1)]),8,D)])):(f(),m("div",C,[e[0]||(e[0]=t("div",{class:"animate__animated animate__fadeInUp"},[t("h1",{style:{"font-size":"20rem",filter:"blur(1rem)","animation-duration":"7s"},class:"animate__animated animate__flash animate__infinite"},[t("i",{class:"bi bi-file-binary"})])],-1)),t("div",U,[t("h3",I,[c(a,{t:"Oh no... This link is either expired or invalid."})])])]))])],8,w)}const N=_(g,[["render",R],["__scopeId","data-v-1b44aacd"]]);export{N as default};

1
src/static/app/dist/assets/signin.css vendored Normal file
View File

@@ -0,0 +1 @@
.dot.inactive[data-v-ed7817c7]{background-color:#dc3545;box-shadow:0 0 0 .2rem #dc354545}.spin[data-v-ed7817c7]{animation:spin-ed7817c7 1s infinite cubic-bezier(.82,.58,.17,.9)}@keyframes spin-ed7817c7{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media screen and (max-width: 768px){.remoteServerContainer[data-v-ed7817c7]{flex-direction:column}.remoteServerContainer .button-group button[data-v-ed7817c7]{width:100%}}@media screen and (max-width: 768px){.login-box[data-v-95530d22]{width:100%!important}.login-box div[data-v-95530d22]{width:auto!important}}

1
src/static/app/dist/assets/signin.js vendored Normal file

File diff suppressed because one or more lines are too long

1
src/static/app/dist/assets/totp.js vendored Normal file
View File

@@ -0,0 +1 @@
import{_ as h,D as m,f as p,m as f,c as b,a as t,b as i,t as _,k as v,p as g,g as d,w as r,e as c,o as n}from"./index.js";import{b as x}from"./browser.js";import{L as y}from"./localeText.js";const T={name:"totp",components:{LocaleText:y},async setup(){const s=m();let e="";return await p("/api/Welcome_GetTotpLink",{},a=>{a.status&&(e=a.data)}),{l:e,store:s}},mounted(){this.l&&x.toCanvas(document.getElementById("qrcode"),this.l,function(s){})},data(){return{totp:"",totpInvalidMessage:"",verified:!1}},methods:{validateTotp(){}},watch:{totp(s){const e=document.querySelector("#totp");e.classList.remove("is-invalid","is-valid"),s.length===6&&(console.log(s),/[0-9]{6}/.test(s)?f("/api/Welcome_VerifyTotpLink",{totp:s},a=>{a.status?(this.verified=!0,e.classList.add("is-valid"),this.$emit("verified")):(e.classList.add("is-invalid"),this.totpInvalidMessage="TOTP does not match.")}):(e.classList.add("is-invalid"),this.totpInvalidMessage="TOTP can only contain numbers"))}}},k=["data-bs-theme"],w={class:"m-auto text-body",style:{width:"500px"}},L={class:"d-flex flex-column"},M={class:"dashboardLogo display-4"},C={class:"mb-2"},P={class:"text-muted"},I={class:"p-3 bg-body-secondary rounded-3 border mb-3"},O={class:"text-muted mb-0"},B=["href"],$={style:{"line-break":"anywhere"}},D={for:"totp",class:"mb-2"},S={class:"text-muted"},q={class:"form-group mb-2"},A=["disabled"],E={class:"invalid-feedback"},F={class:"valid-feedback"},R={class:"d-flex gap-3 mt-5 flex-column"};function G(s,e,a,N,W,Q){const o=c("LocaleText"),l=c("RouterLink");return n(),b("div",{class:"container-fluid login-container-fluid d-flex main pt-5 overflow-scroll","data-bs-theme":this.store.Configuration.Server.dashboard_theme},[t("div",w,[t("div",L,[t("div",null,[t("h1",M,[i(o,{t:"Multi-Factor Authentication (MFA)"})]),t("p",C,[t("small",P,[i(o,{t:"1. Please scan the following QR Code to generate TOTP with your choice of authenticator"})])]),e[1]||(e[1]=t("canvas",{id:"qrcode",class:"rounded-3 mb-2"},null,-1)),t("div",I,[t("p",O,[t("small",null,[i(o,{t:"Or you can click the link below:"})])]),t("a",{href:this.l},[t("code",$,_(this.l),1)],8,B)]),t("label",D,[t("small",S,[i(o,{t:"2. Enter the TOTP generated by your authenticator to verify"})])]),t("div",q,[v(t("input",{class:"form-control text-center totp",id:"totp",maxlength:"6",type:"text",inputmode:"numeric",autocomplete:"one-time-code","onUpdate:modelValue":e[0]||(e[0]=u=>this.totp=u),disabled:this.verified},null,8,A),[[g,this.totp]]),t("div",E,[i(o,{t:this.totpInvalidMessage},null,8,["t"])]),t("div",F,[i(o,{t:"TOTP verified!"})])])]),e[4]||(e[4]=t("hr",null,null,-1)),t("div",R,[this.verified?(n(),d(l,{key:1,to:"/",class:"btn btn-dark btn-lg d-flex btn-brand shadow align-items-center flex-grow-1 rounded-3"},{default:r(()=>[i(o,{t:"Complete"}),e[3]||(e[3]=t("i",{class:"bi bi-chevron-right ms-auto"},null,-1))]),_:1})):(n(),d(l,{key:0,to:"/",class:"btn bg-secondary-subtle text-secondary-emphasis rounded-3 flex-grow-1 btn-lg border-1 border-secondary-subtle shadow d-flex"},{default:r(()=>[i(o,{t:"I don't need MFA"}),e[2]||(e[2]=t("i",{class:"bi bi-chevron-right ms-auto"},null,-1))]),_:1}))])])])],8,k)}const z=h(T,[["render",G]]);export{z as default};

View File

@@ -0,0 +1 @@
.pingPlaceholder[data-v-549eb223]{width:100%;height:40px}.ping-leave-active[data-v-549eb223]{position:absolute}table th[data-v-549eb223],table td[data-v-549eb223]{padding:.5rem}.table[data-v-549eb223]>:not(caption)>*>*{background-color:transparent!important}.ping-move[data-v-549eb223],.ping-enter-active[data-v-549eb223],.ping-leave-active[data-v-549eb223]{transition:all .4s cubic-bezier(.82,.58,.17,.9)}.ping-leave-active[data-v-549eb223]{position:absolute;width:100%}.ping-enter-from[data-v-549eb223],.ping-leave-to[data-v-549eb223]{opacity:0;filter:blur(3px)}

View File

@@ -0,0 +1 @@
import{_ as h,W as b,f as g,c as o,a as t,b as n,k as y,p as f,z as v,w as r,h as c,o as a,d as x,F as u,r as m,n as k,y as T,t as i,j as A,e as _}from"./index.js";import{O as w}from"./osmap.js";import{L as R}from"./localeText.js";const M={name:"traceroute",components:{LocaleText:R,OSMap:w},data(){return{tracing:!1,ipAddress:void 0,tracerouteResult:void 0}},setup(){return{store:b()}},methods:{execute(){this.ipAddress&&(this.tracing=!0,this.tracerouteResult=void 0,g("/api/traceroute/execute",{ipAddress:this.ipAddress},d=>{d.status?this.tracerouteResult=d.data:this.store.newMessage("Server",d.message,"danger"),this.tracing=!1}))}}},S={class:"mt-md-5 mt-3 text-body"},$={class:"container-md"},C={class:"mb-3 text-body"},L={class:"d-flex gap-2 flex-column mb-5"},P={class:"mb-1 text-muted",for:"ipAddress"},V=["disabled"],N=["disabled"],O={key:0,class:"d-block"},z={key:1,class:"d-block"},B={class:"position-relative"},I={key:"pingPlaceholder"},D={key:1},E={key:"table",class:"w-100 mt-2"},F={class:"table table-sm rounded-3 w-100"},G={scope:"col"},H={scope:"col"},K={scope:"col"},W={scope:"col"},j={scope:"col"},U={scope:"col"},q={key:0};function J(d,s,Q,X,Y,Z){const l=_("LocaleText"),p=_("OSMap");return a(),o("div",S,[t("div",$,[t("h3",C,[n(l,{t:"Traceroute"})]),t("div",L,[t("div",null,[t("label",P,[t("small",null,[n(l,{t:"Enter IP Address / Hostname"})])]),y(t("input",{disabled:this.tracing,id:"ipAddress",class:"form-control","onUpdate:modelValue":s[0]||(s[0]=e=>this.ipAddress=e),onKeyup:s[1]||(s[1]=v(e=>this.execute(),["enter"])),type:"text"},null,40,V),[[f,this.ipAddress]])]),t("button",{class:"btn btn-primary rounded-3 mt-3 position-relative",disabled:this.tracing||!this.ipAddress,onClick:s[2]||(s[2]=e=>this.execute())},[n(c,{name:"slide"},{default:r(()=>[this.tracing?(a(),o("span",z,s[4]||(s[4]=[t("span",{class:"spinner-border spinner-border-sm","aria-hidden":"true"},null,-1),t("span",{class:"visually-hidden",role:"status"},"Loading...",-1)]))):(a(),o("span",O,s[3]||(s[3]=[t("i",{class:"bi bi-person-walking me-2"},null,-1),x("Trace! ")])))]),_:1})],8,N)]),t("div",B,[n(c,{name:"ping"},{default:r(()=>[this.tracerouteResult?(a(),o("div",D,[n(p,{d:this.tracerouteResult,type:"traceroute"},null,8,["d"]),t("div",E,[t("table",F,[t("thead",null,[t("tr",null,[t("th",G,[n(l,{t:"Hop"})]),t("th",H,[n(l,{t:"IP Address"})]),t("th",K,[n(l,{t:"Average RTT (ms)"})]),t("th",W,[n(l,{t:"Min RTT (ms)"})]),t("th",j,[n(l,{t:"Max RTT (ms)"})]),t("th",U,[n(l,{t:"Geolocation"})])])]),t("tbody",null,[(a(!0),o(u,null,m(this.tracerouteResult,(e,tt)=>(a(),o("tr",null,[t("td",null,[t("small",null,i(e.hop),1)]),t("td",null,[t("small",null,i(e.ip),1)]),t("td",null,[t("small",null,i(e.avg_rtt),1)]),t("td",null,[t("small",null,i(e.min_rtt),1)]),t("td",null,[t("small",null,i(e.max_rtt),1)]),t("td",null,[e.geo.city&&e.geo.country?(a(),o("span",q,[t("small",null,i(e.geo.city)+", "+i(e.geo.country),1)])):A("",!0)])]))),256))])])])])):(a(),o("div",I,[s[5]||(s[5]=t("div",{class:"pingPlaceholder bg-body-secondary rounded-3 mb-3",style:{height:"300px !important"}},null,-1)),(a(),o(u,null,m(5,e=>t("div",{class:k(["pingPlaceholder bg-body-secondary rounded-3 mb-3",{"animate__animated animate__flash animate__slower animate__infinite":this.tracing}]),style:T({"animation-delay":`${e*.05}s`})},null,6)),64))]))]),_:1})])])])}const ot=h(M,[["render",J],["__scopeId","data-v-549eb223"]]);export{ot as default};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,4 @@
/*! SPDX-License-Identifier: GPL-2.0
*
* Copyright (C) 2015-2020 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
*/(function(){function c(n){var r=new Float64Array(16);if(n)for(var a=0;a<n.length;++a)r[a]=n[a];return r}function F(n,r){for(var a,e=c(),f=c(),t=0;t<16;++t)f[t]=r[t];b(f),b(f),b(f);for(var u=0;u<2;++u){e[0]=f[0]-65517;for(var t=1;t<15;++t)e[t]=f[t]-65535-(e[t-1]>>16&1),e[t-1]&=65535;e[15]=f[15]-32767-(e[14]>>16&1),a=e[15]>>16&1,e[14]&=65535,h(f,e,1-a)}for(var t=0;t<16;++t)n[2*t]=f[t]&255,n[2*t+1]=f[t]>>8}function b(n){for(var r=0;r<16;++r)n[(r+1)%16]+=(r<15?1:38)*Math.floor(n[r]/65536),n[r]&=65535}function h(n,r,a){for(var e,f=~(a-1),t=0;t<16;++t)e=f&(n[t]^r[t]),n[t]^=e,r[t]^=e}function g(n,r,a){for(var e=0;e<16;++e)n[e]=r[e]+a[e]|0}function i(n,r,a){for(var e=0;e<16;++e)n[e]=r[e]-a[e]|0}function v(n,r,a){for(var e=new Float64Array(31),f=0;f<16;++f)for(var t=0;t<16;++t)e[f+t]+=r[f]*a[t];for(var f=0;f<15;++f)e[f]+=38*e[f+16];for(var f=0;f<16;++f)n[f]=e[f];b(n),b(n)}function B(n,r){for(var a=c(),e=0;e<16;++e)a[e]=r[e];for(var e=253;e>=0;--e)v(a,a,a),e!==2&&e!==4&&v(a,a,r);for(var e=0;e<16;++e)n[e]=a[e]}function A(n){n[31]=n[31]&127|64,n[0]&=248}function m(n){for(var r,a=new Uint8Array(32),e=c([1]),f=c([9]),t=c(),u=c([1]),y=c(),U=c(),L=c([56129,1]),S=c([9]),d=0;d<32;++d)a[d]=n[d];A(a);for(var d=254;d>=0;--d)r=a[d>>>3]>>>(d&7)&1,h(e,f,r),h(t,u,r),g(y,e,t),i(e,e,t),g(t,f,u),i(f,f,u),v(u,y,y),v(U,e,e),v(e,t,e),v(t,f,y),g(y,e,t),i(e,e,t),v(f,e,e),i(t,u,U),v(e,t,L),g(e,e,u),v(t,t,e),v(e,u,U),v(u,f,S),v(f,y,y),h(e,f,r),h(t,u,r);return B(t,t),v(e,e,t),F(a,e),a}function K(){var n=new Uint8Array(32);return window.crypto.getRandomValues(n),n}function P(){var n=K();return A(n),n}function s(n,r){for(var a=Uint8Array.from([r[0]>>2&63,(r[0]<<4|r[1]>>4)&63,(r[1]<<2|r[2]>>6)&63,r[2]&63]),e=0;e<4;++e)n[e]=a[e]+65+(25-a[e]>>8&6)-(51-a[e]>>8&75)-(61-a[e]>>8&15)+(62-a[e]>>8&3)}function x(n){var r,a=new Uint8Array(44);for(r=0;r<32/3;++r)s(a.subarray(r*4),n.subarray(r*3));return s(a.subarray(r*4),Uint8Array.from([n[r*3+0],n[r*3+1],0])),a[43]=61,String.fromCharCode.apply(null,a)}function R(n){let r=window.atob(n),a=r.length,e=new Uint8Array(a);for(let t=0;t<a;t++)e[t]=r.charCodeAt(t);return new Uint8Array(e.buffer)}function l(n,r){n.push(r&255,r>>>8&255,r>>>16&255,r>>>24&255)}function o(n,r){n.push(r&255,r>>>8&255)}function w(n,r){for(var a=0;a<r.length;++a)n.push(r[a]&255)}function C(n){for(var r=unescape(encodeURIComponent(n)),a=new Uint8Array(r.length),e=0;e<r.length;++e)a[e]=r.charCodeAt(e);return a}function p(n){if(!p.table){p.table=[];for(var r=0,a=0;a<256;r=++a){for(var e=0;e<8;++e)r=r&1?3988292384^r>>>1:r>>>1;p.table[a]=r}}for(var f=-1,t=0;t<n.length;++t)f=f>>>8^p.table[(f^n[t])&255];return(f^-1)>>>0}function _(n){for(var r=[],a=[],e=0,f=0;f<n.length;++f){var t=C(n[f].fileName),u=C(n[f].file),y=p(u);l(r,67324752),o(r,20),o(r,0),o(r,0),o(r,0),o(r,0),l(r,y),l(r,u.length),l(r,u.length),o(r,t.length),o(r,0),w(r,t),w(r,u),l(a,33639248),o(a,0),o(a,20),o(a,0),o(a,0),o(a,0),o(a,0),l(a,y),l(a,u.length),l(a,u.length),o(a,t.length),o(a,0),o(a,0),o(a,0),o(a,0),l(a,32),l(a,e),w(a,t),e+=30+u.length+t.length}return w(r,a),l(r,101010256),o(r,0),o(r,0),o(r,n.length),o(r,n.length),l(r,a.length),l(r,e),o(r,0),Uint8Array.from(r)}window.wireguard={generateKeypair:function(){var n=P(),r=m(n),a=K();return{publicKey:x(r),privateKey:x(n),presharedKey:x(a)}},generatePublicKey:function(n){return n=R(n),x(m(n))},generateZipFiles:function(n,r){var a=n.data,e=_(a),f=new Blob([e],{type:"application/zip"}),t=document.createElement("a");t.download=r,t.href=URL.createObjectURL(f),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)}}})();