@duplicati/ngclient 0.0.183 → 0.0.184
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{chunk-GCL5YZGN.js → chunk-36YDXQGU.js} +1 -1
- package/{chunk-CRIAZIHV.js → chunk-4OE4TUF6.js} +1 -1
- package/{chunk-ZCSLL22M.js → chunk-4UDRQ7SJ.js} +1 -1
- package/{chunk-LWJ6FCGJ.js → chunk-4VCGLPSI.js} +1 -1
- package/{chunk-GXYICCA6.js → chunk-6JEFZ6UK.js} +1 -1
- package/{chunk-EYIHDNRT.js → chunk-7E34ZROH.js} +1 -1
- package/{chunk-ZTXNJMNP.js → chunk-BZSP7EIX.js} +1 -1
- package/{chunk-BXWAVFI6.js → chunk-CCM6IIS4.js} +1 -1
- package/{chunk-QQOFLIJG.js → chunk-DUVQ5DQX.js} +1 -1
- package/{chunk-5Y3YA4IZ.js → chunk-DWRVQLJL.js} +1 -1
- package/{chunk-AESH2EML.js → chunk-E7TXHOJI.js} +1 -1
- package/{chunk-BNQSW4G5.js → chunk-ECXAVCLV.js} +1 -1
- package/{chunk-QGD6TGTI.js → chunk-ES756JBG.js} +1 -1
- package/{chunk-CR3C6XYB.js → chunk-FHY4QVD4.js} +1 -1
- package/{chunk-CU5GQUSX.js → chunk-FPDCZ73R.js} +1 -1
- package/chunk-FPYNIDJR.js +1 -0
- package/chunk-G4SK3PS7.js +1 -0
- package/{chunk-DNHCL3D4.js → chunk-GYUN5SXR.js} +1 -1
- package/{chunk-TAFKX5F2.js → chunk-I7DKD6VJ.js} +1 -1
- package/{chunk-KTLT4LKY.js → chunk-IMDBR2SZ.js} +1 -1
- package/{chunk-OQ3SKNS2.js → chunk-K5BA43JC.js} +1 -1
- package/chunk-KONVFYXE.js +1 -0
- package/{chunk-NJ2XZSM6.js → chunk-LZBEKGBK.js} +1 -1
- package/{chunk-4GDXGM4L.js → chunk-MBWEBR5X.js} +1 -1
- package/{chunk-VLHMURFN.js → chunk-MIXALKMU.js} +1 -1
- package/{chunk-G4PJG5YL.js → chunk-NL7JLA2L.js} +1 -1
- package/{chunk-G4BVOKDI.js → chunk-NV45UNPE.js} +1 -1
- package/{chunk-QZRRXR3V.js → chunk-OG6NP7IP.js} +1 -1
- package/{chunk-D3VVL4NK.js → chunk-OKWBFXS6.js} +1 -1
- package/{chunk-XFKT7HQ4.js → chunk-QASUFPL6.js} +1 -1
- package/{chunk-Z6QCNSVI.js → chunk-QNAAXVL5.js} +1 -1
- package/{chunk-U7ABTEOS.js → chunk-QQ2F3BER.js} +1 -1
- package/{chunk-FPKRDCQ6.js → chunk-RFA232NB.js} +1 -1
- package/{chunk-AEVJZNUY.js → chunk-RYNESQNU.js} +1 -1
- package/{chunk-MLTHWDBE.js → chunk-SA6T6NYJ.js} +1 -1
- package/{chunk-FVZOIWTT.js → chunk-SAKHOLXS.js} +1 -1
- package/{chunk-6K3PRIYO.js → chunk-SJWKQCBL.js} +1 -1
- package/{chunk-FNIOBDFO.js → chunk-SL454JCD.js} +1 -1
- package/{chunk-WUK4ABE5.js → chunk-THM235PB.js} +1 -1
- package/{chunk-APZXLYUU.js → chunk-TYPKT3ZZ.js} +1 -1
- package/{chunk-WHT6WK7V.js → chunk-VAXPG4R2.js} +1 -1
- package/{chunk-DH6M7Y7C.js → chunk-VUOL2M6R.js} +1 -1
- package/{chunk-XZ35H3QB.js → chunk-WCU7A255.js} +1 -1
- package/{chunk-ODTXKOWN.js → chunk-WDMQH4ZC.js} +1 -1
- package/{chunk-YFWXKCXL.js → chunk-WRURLVII.js} +1 -1
- package/{chunk-XFTFZ5UD.js → chunk-X7WEJAAK.js} +1 -1
- package/{chunk-GG3FXQPK.js → chunk-XJXBZISB.js} +1 -1
- package/index.html +1 -1
- package/main-GZ3TBDRZ.js +1 -0
- package/package.json +1 -1
- package/chunk-5QZIKR6A.js +0 -1
- package/chunk-FRN7G2XC.js +0 -1
- package/chunk-UGATCU55.js +0 -1
- package/main-DLNJU5L6.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as Y}from"./chunk-5JYCHNFV.js";import{a as W}from"./chunk-
|
|
1
|
+
import{a as Y}from"./chunk-5JYCHNFV.js";import{a as W}from"./chunk-OG6NP7IP.js";import{e as U}from"./chunk-G4SK3PS7.js";import{B as j,D as B,H as Q,b as $,c as A,d as v,e as k,f as x,j as J,p as X,q as V,r as q,t as z,u as H,w as K}from"./chunk-HPNLQHW6.js";import"./chunk-BGTK25UG.js";import{d as R}from"./chunk-A4LPGPDU.js";import"./chunk-PKPBSTZA.js";import"./chunk-QPTSKQZ2.js";import"./chunk-OTPG7USH.js";import"./chunk-TT3S63BX.js";import{$ as F,Ab as i,Bb as r,E as S,Ib as M,Pa as l,Pb as g,Qb as d,Rb as O,Sc as y,Vb as C,W as p,aa as f,cb as L,cc as P,dc as w,gc as b,jc as G,kc as D,la as a,na as T,sb as I,tb as E,yb as h,zb as o}from"./chunk-T2WO6CVD.js";import"./chunk-7CGTOI24.js";var Z=["passwordInput"];function ee(m,t){m&1&&(o(0,"sh-alert",6),O(1,4),i())}var _=new q,N=class m{#e=p(R);#n=p(U);rememberMe=W("rememberMe",!1,!0);failedLogin=a(!1);successLogin=a(!1);isLoading=a(!1);loginForm=_.group({user:_.control(""),pass:_.control("",v.required),rememberMe:_.control(this.rememberMe())});showPassword=a(!1);passwordInput=y("passwordInput");passwordEffect=T(()=>{this.failedLogin()&&queueMicrotask(()=>this.passwordInput()?.nativeElement?.focus())});ngOnInit(){this.loginForm.controls.rememberMe.valueChanges.subscribe(t=>this.rememberMe.set(t??!1)),queueMicrotask(()=>this.passwordInput()?.nativeElement?.focus())}submit(){let t=this.loginForm.value.pass,n=this.loginForm.value.user;this.rememberMe.set(this.loginForm.value.rememberMe??!1),!n&&t&&(this.isLoading.set(!0),this.#n.login(t,this.rememberMe()).pipe(S(()=>{this.isLoading.set(!1),this.failedLogin.set(!0)})).subscribe({next:()=>{this.successLogin.set(!0),this.#e.navigate(["/"])}}))}static \u0275fac=function(n){return new(n||m)};static \u0275cmp=L({type:m,selectors:[["app-login"]],viewQuery:function(n,e){n&1&&P(e.passwordInput,Z,5),n&2&&w()},decls:24,vars:6,consts:()=>{let t;t=$localize`Enter your password`;let n;n=$localize` Password ${"\uFFFD#10\uFFFD"}:START_LINK:${"\uFFFD#11\uFFFD"}:START_TAG_SH_ICON:question${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SH_ICON:${"\uFFFD/#10\uFFFD"}:CLOSE_LINK:`;let e;e=$localize` Login ${"\uFFFD#18\uFFFD"}:START_TAG_SH_ICON:arrow-right${"\uFFFD/#18\uFFFD"}:CLOSE_TAG_SH_ICON:`;let s;s=$localize` Keep me logged in ${"\uFFFD#21\uFFFD\uFFFD/#21\uFFFD"}:TAG_INPUT:`;let c;return c=$localize` Remember to enter a password, if you can't remember the password open the duplicati client on the machine in question and make sure you open it through the tray icon then go into settings to change the password. `,[["passwordInput",""],n,e,s,c,[3,"submit","formGroup"],["type","warning"],[1,"logo-login"],[1,"inner"],[1,"login-row"],["type","text","hidden","","autocomplete","off","name","username","formControlName","user"],["for","password"],["href","https://docs.duplicati.com/detailed-descriptions/duplicati-access-password","target","_blank","rel","noopener noreferrer"],["name","password","autocomplete","current-password","placeholder",t,"tabindex","1","formControlName","pass",3,"type"],["suffix","",3,"click"],["shButton","","type","submit",1,"raised","primary","login-button"],[1,"raised","primary"],["type","checkbox","id","rememberMe","tabindex","2","formControlName","rememberMe"],[1,"login-row","checkbox"],["for","rememberMe",1,"remember-me"]]},template:function(n,e){if(n&1){let s=M();o(0,"form",5),C("submit",function(){return F(s),f(e.submit())}),I(1,ee,2,0,"sh-alert",6),o(2,"div",7),r(3,"app-logo"),i(),o(4,"div",8)(5,"div",9),r(6,"input",10),o(7,"sh-form-field")(8,"label",11),g(9,1),o(10,"a",12),r(11,"sh-icon"),i(),d(),i(),r(12,"input",13,0),o(14,"sh-icon",14),C("click",function(){return F(s),f(e.showPassword.set(!e.showPassword()))}),G(15),i()(),o(16,"button",15),g(17,2),r(18,"sh-icon"),d(),i()(),o(19,"sh-checkbox",16),g(20,3),r(21,"input",17),d(),i(),o(22,"div",18),r(23,"label",19),i()()()}n&2&&(h("formGroup",e.loginForm),l(),E(e.failedLogin()&&!e.successLogin()?1:-1),l(11),h("type",e.showPassword()?"text":"password"),l(3),D(e.showPassword()?"eye":"eye-slash"),l(),b("loader",e.isLoading()))},dependencies:[z,J,A,$,k,x,V,X,Y,Q,H,j,K,B],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{width:100vw;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem}form[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:1rem}form[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%] .checkbox[_ngcontent-%COMP%]{align-self:flex-start}sh-alert[_ngcontent-%COMP%]{max-width:20rem;margin:0 auto}h3[_ngcontent-%COMP%]{font:var(--title-30)}.login-row[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}.logo-login[_ngcontent-%COMP%]{top:0;left:0;padding:1.25rem;position:fixed}.login-button[_ngcontent-%COMP%]{padding-left:1.5rem;padding-right:1.5rem}"],changeDetection:0})};export{N as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as h}from"./chunk-ME77WZZI.js";import{a as f}from"./chunk-5DJAX2HH.js";import{a as p}from"./chunk-
|
|
1
|
+
import{a as h}from"./chunk-ME77WZZI.js";import{a as f}from"./chunk-5DJAX2HH.js";import{a as p}from"./chunk-IMDBR2SZ.js";import{a as m}from"./chunk-TELPJYLN.js";import{z as g}from"./chunk-HPNLQHW6.js";import{c as u}from"./chunk-BGTK25UG.js";import{Mc as c,R as l,W as s,la as r,na as a}from"./chunk-T2WO6CVD.js";var d=class o{#r=s(h);#o=s(g);#e=s(u);#s=s(m);#n=s(p);repeatRegisterTimer=null;state=r("unknown");claimUrl=r(null);registerUrl=r("");customRegisterUrl=r("");status=c(()=>{let e=this.state();return e==="connecting"?$localize`Console connection is enabled but not connected`:e==="connected"?$localize`Connected to console`:e==="registering"?$localize`Registering machine...`:e==="registeringfaulted"?$localize`Registration failed`:e==="registered"?$localize`Registered, waiting for accept`:e==="disabled"?$localize`Console connection is configured but not enabled`:e==="unknown"?$localize`...loading...`:$localize`Console connection is not set up`});sysInfoEffect=a(()=>{let e=this.#s.systemInfo();e&&this.registerUrl.set(e.RemoteControlRegistrationUrl??"")});#t(e){e.RegistrationUrl&&this.claimUrl.set(e.RegistrationUrl),e.IsConnected?this.state.set("connected"):e.IsEnabled?this.state.set("connecting"):e.CanEnable?this.state.set("disabled"):e.IsRegisteringFaulted?this.state.set("registeringfaulted"):e.IsRegistering?e.RegistrationUrl!=null&&e.RegistrationUrl.trim().length>0?this.state.set("registered"):this.state.set("registering"):this.state.set("inactive");let i=this.state();this.repeatRegisterTimer!==null&&(clearTimeout(this.repeatRegisterTimer),this.repeatRegisterTimer=null),i==="registering"&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:""}}).subscribe({next:t=>this.#t(t),error:t=>this.#i(t)})},5e3)),(i==="connecting"||i==="registered")&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.getApiV1RemotecontrolStatus().subscribe({next:t=>this.#t(t),error:t=>this.#i(t)})},5e3)),e.IsRegistering&&e.CanEnable&&this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:t=>this.#t(t)})}#i(e){this.#e.getApiV1RemotecontrolStatus().subscribe({next:i=>{console.log("next",i),this.#t(i)}})}refreshRemoteControlStatus(){this.#e.getApiV1RemotecontrolStatus().subscribe({next:e=>this.#t(e),error:e=>this.#i(e)})}beginRemoteRegistration(e=!1){this.state.set("registering"),this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:e?this.customRegisterUrl():this.registerUrl()}}).subscribe({next:i=>this.#t(i),error:i=>this.#i(i)})}cancelRemoteRegistration(){this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:e=>this.#t(e),error:e=>this.#i(e)})}enableRemoteControl(){this.#e.postApiV1RemotecontrolEnable().subscribe({next:e=>this.#t(e),error:e=>this.#i(e)})}disableRemoteControl(){this.#e.postApiV1RemotecontrolDisable().subscribe({next:e=>this.#t(e),error:e=>this.#i(e)})}deleteRemoteControl(){let e=this;this.#o.open(f,{data:{title:$localize`Confirm delete`,message:$localize`Are you sure you want to delete the console registration?`,confirmText:$localize`Delete registration`,cancelText:$localize`Cancel`},closed:i=>{i&&e.#e.deleteApiV1RemotecontrolRegistration().subscribe({next:t=>e.#t(t),error:t=>e.#i(t)})}})}openConsole(){let e=this.#n.serverSettings(),i=this.#s.systemInfo(),t="https://app.duplicati.com/app/machines",n=i?.RemoteControlDashboardUrl??"";n.length>0&&(t=n),e&&e["remote-control-dashboard-url"]&&(t=e["remote-control-dashboard-url"]),this.#r.open(t,"_blank")}static \u0275fac=function(i){return new(i||o)};static \u0275prov=l({token:o,factory:o.\u0275fac,providedIn:"root"})};export{d as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as le}from"./chunk-
|
|
1
|
+
import{a as le}from"./chunk-SAKHOLXS.js";import"./chunk-6Q6SSTBK.js";import{a as ae}from"./chunk-FK7JFD5B.js";import{a as _e}from"./chunk-5DJAX2HH.js";import"./chunk-OG6NP7IP.js";import{c as re}from"./chunk-DW332N2S.js";import"./chunk-SJWKQCBL.js";import"./chunk-TELPJYLN.js";import"./chunk-G4SK3PS7.js";import{B as ie,D as ne,b as H,e as Q,i as Y,s as Z,u as ee,z as te}from"./chunk-HPNLQHW6.js";import{c as oe}from"./chunk-BGTK25UG.js";import{d as j,e as q}from"./chunk-A4LPGPDU.js";import"./chunk-PKPBSTZA.js";import"./chunk-QPTSKQZ2.js";import"./chunk-OTPG7USH.js";import"./chunk-TT3S63BX.js";import{$ as p,Ab as o,Cc as z,E as K,Fc as V,Ib as g,Mc as M,Pa as r,Rb as c,Rc as W,Sb as A,Tb as L,Ub as F,Vb as $,W as u,Xb as C,aa as P,cb as y,gc as x,jc as E,l as k,la as T,oc as S,p as U,pc as D,qc as h,rc as G,sb as m,sc as w,tb as f,tc as v,xc as J,yb as N,yc as X,z as I,zb as n}from"./chunk-T2WO6CVD.js";import"./chunk-7CGTOI24.js";var ce=l=>["/backup",l,"export"],se=()=>["/"];function Ee(l,_){if(l&1){let t=g();n(0,"section")(1,"h4"),c(2,4),o(),n(3,"p"),c(4,5),o(),n(5,"sh-checkbox",11),E(6," Delete local database "),n(7,"input",12),h("ngModelChange",function(e){p(t);let a=C();return D(a.deleteLocalDb,e)||(a.deleteLocalDb=e),P(e)}),o()()()}if(l&2){let t=C();r(7),S("ngModel",t.deleteLocalDb)}}function ue(l,_){if(l&1){let t=g();n(0,"section")(1,"h4"),c(2,6),o(),n(3,"p"),c(4,7),z(5,"bytes"),o(),n(6,"sh-checkbox",11),E(7," Delete remote files "),n(8,"input",12),h("ngModelChange",function(e){p(t);let a=C();return D(a.deleteRemoteFiles,e)||(a.deleteRemoteFiles=e),P(e)}),o()()()}if(l&2){let t=C(),i=v(0),e=(i==null||i.Backup==null||i.Backup.Metadata==null?null:i.Backup.Metadata.TargetFilesSize)??0;r(5),A(t.fileCount())(t.fileCount())(V(5,4,e,!0,!0)),L(4),r(3),S("ngModel",t.deleteRemoteFiles)}}var B=class l{#t=u(oe);#i=u(te);#e=u(le);#n=u(j);id=W.required();backup=M(()=>this.#e.getBackupById(this.id()));noLocalDbResource=re({params:()=>({dbPath:this.backup()?.Backup?.DBPath}),stream:({params:_})=>this.#t.postApiV1FilesystemValidate({requestBody:{path:_.dbPath}}).pipe(U(()=>!0),I(()=>k(!1)))});fileCount=M(()=>parseInt(this.backup()?.Backup?.Metadata?.TargetFilesCount??"0",10));deleteLocalDb=T(!1);deleteRemoteFiles=T(!1);isDeleting=T(!1);deleteBackup(){let _=this.id(),t=this.deleteLocalDb(),i=this.deleteRemoteFiles();this.isDeleting.set(!0),this.#i.open(_e,{data:{title:$localize`Confirm delete`,message:$localize`Are you sure you want to delete this backup?`,confirmText:$localize`Delete backup`,cancelText:$localize`Cancel`},closed:e=>{e&&this.#e.deleteBackup({id:_,deleteLocalDb:t,deleteRemoteFiles:i}).pipe(K(()=>this.isDeleting.set(!1))).subscribe({next:()=>{this.#n.navigate(["/"])}})}})}static \u0275fac=function(t){return new(t||l)};static \u0275cmp=y({type:l,selectors:[["app-delete-backup"]],inputs:{id:[1,"id"]},decls:19,vars:11,consts:()=>{let _;_=$localize`Delete backup: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let t;t=$localize`Export configuration`;let i;i=$localize`If you want to use the backup later, you can export the configuration before deleting it.`;let e;e=$localize`Cancel`;let a;a=$localize`Delete local database`;let b;b=$localize` Each backup has a local database associated with it, which stores information about the remote backup on the local machine. When deleting a backup, you can also delete the local database without affecting the ability to restore the remote files. If you are using the local database for backups from the commandline, you should keep the database. `;let R;R=$localize`Delete remote files`;let d;d=$localize`{VAR_PLURAL, plural, =1 {1 file} other {{INTERPOLATION} files}}`,d=F(d,{INTERPOLATION:"\uFFFD1\uFFFD",VAR_PLURAL:"\uFFFD0\uFFFD"});let O;return O=$localize` Delete ${d}:ICU@@2159106180826349718: (${"\uFFFD2\uFFFD"}:INTERPOLATION_1:) from the remote storage? `,[_,t,i,e,a,b,R,O,["shButton","",3,"routerLink"],[1,"actions"],["shButton","",1,"raised","error",3,"click"],[1,"primary","raised"],["type","checkbox",3,"ngModelChange","ngModel"]]},template:function(t,i){if(t&1){let e=g();G(0),n(1,"h3"),c(2,0),o(),m(3,Ee,8,1,"section"),n(4,"section")(5,"h4"),c(6,1),o(),n(7,"p"),c(8,2),o(),n(9,"button",8),E(10," Export configuration "),n(11,"sh-icon"),E(12,"caret-right"),o()()(),m(13,ue,9,8,"section"),n(14,"div",9)(15,"button",8),c(16,3),o(),n(17,"button",10),$("click",function(){return p(e),P(i.deleteBackup())}),E(18,"Delete backup"),o()()}if(t&2){let e=w(i.backup()),a=i.noLocalDbResource.value();r(2),A(e==null||e.Backup==null?null:e.Backup.Name),L(2),r(),f(a?3:-1),r(6),N("routerLink",X(8,ce,i.id())),r(4),f(a?13:-1),r(2),N("routerLink",J(10,se)),r(2),x("loader",i.isDeleting())}},dependencies:[ne,ie,ee,Z,H,Q,Y,q,ae],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;padding:2.5rem;max-width:43.75rem}section[_ngcontent-%COMP%]{padding:2rem 0;display:flex;align-items:flex-start;flex-direction:column}h3[_ngcontent-%COMP%]{font:var(--title-30);margin:0}h4[_ngcontent-%COMP%]{font:var(--paragraph-20);margin-bottom:.5rem}p[_ngcontent-%COMP%]{margin-bottom:1rem}.actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:.5rem;padding:2rem 0}"],changeDetection:0})};export{B as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as a,i as b}from"./chunk-
|
|
1
|
+
import{h as a,i as b}from"./chunk-FPDCZ73R.js";import"./chunk-O4OTZE5N.js";import"./chunk-WIVARGP6.js";import"./chunk-MHRECQ5Y.js";import"./chunk-6Q6SSTBK.js";import"./chunk-5DJAX2HH.js";import"./chunk-IMDBR2SZ.js";import"./chunk-DW332N2S.js";import"./chunk-SJWKQCBL.js";import"./chunk-TELPJYLN.js";import"./chunk-G4SK3PS7.js";import"./chunk-HPNLQHW6.js";import"./chunk-BGTK25UG.js";import"./chunk-A4LPGPDU.js";import"./chunk-PKPBSTZA.js";import"./chunk-QPTSKQZ2.js";import"./chunk-OTPG7USH.js";import"./chunk-TT3S63BX.js";import"./chunk-T2WO6CVD.js";import"./chunk-7CGTOI24.js";export{a as createSourceDataForm,b as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as A}from"./chunk-
|
|
1
|
+
import{a as A}from"./chunk-DUVQ5DQX.js";import"./chunk-4VCGLPSI.js";import"./chunk-FOQJA6X2.js";import"./chunk-VHOAXFIJ.js";import"./chunk-SAKHOLXS.js";import"./chunk-6Q6SSTBK.js";import"./chunk-FK7JFD5B.js";import"./chunk-WDMQH4ZC.js";import"./chunk-ME77WZZI.js";import"./chunk-5DJAX2HH.js";import"./chunk-OG6NP7IP.js";import"./chunk-IMDBR2SZ.js";import"./chunk-DW332N2S.js";import"./chunk-SJWKQCBL.js";import"./chunk-TELPJYLN.js";import"./chunk-G4SK3PS7.js";import{U as S}from"./chunk-HPNLQHW6.js";import"./chunk-BGTK25UG.js";import{c as u,e as N,f as c}from"./chunk-A4LPGPDU.js";import"./chunk-PKPBSTZA.js";import"./chunk-QPTSKQZ2.js";import"./chunk-OTPG7USH.js";import"./chunk-TT3S63BX.js";import{Ab as t,Bb as T,Rb as n,cb as g,zb as e}from"./chunk-T2WO6CVD.js";import"./chunk-7CGTOI24.js";var l=class s{static \u0275fac=function(o){return new(o||s)};static \u0275cmp=g({type:s,selectors:[["app-about"]],decls:19,vars:0,consts:()=>{let i;i=$localize`General`;let o;o=$localize`Changelog`;let r;r=$localize`Libraries`;let C;C=$localize`System info`;let a;a=$localize`Server settings`;let E;E=$localize`Logs`;let O;return O=$localize`Crash log`,[i,o,r,C,a,E,O,[1,"content"],[1,"primary"],["tab","","routerLink","/about/general","routerLinkActive","active"],["tab","","routerLink","/about/changelog","routerLinkActive","active"],["tab","","routerLink","/about/libraries","routerLinkActive","active"],["tab","","routerLink","/about/system-info","routerLinkActive","active"],["tab","","routerLink","/about/server-settings","routerLinkActive","active"],["tab","","routerLink","/about/logs","routerLinkActive","active"],["tab","","routerLink","/about/crashlogs","routerLinkActive","active"]]},template:function(o,r){o&1&&(T(0,"app-status-bar"),e(1,"div",7)(2,"sh-tabs",8)(3,"button",9),n(4,0),t(),e(5,"button",10),n(6,1),t(),e(7,"button",11),n(8,2),t(),e(9,"button",12),n(10,3),t(),e(11,"button",13),n(12,4),t(),e(13,"button",14),n(14,5),t(),e(15,"button",15),n(16,6),t()(),e(17,"section"),T(18,"router-outlet"),t()())},dependencies:[A,S,u,N,c],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:0}.content[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:1rem 0}.content[_ngcontent-%COMP%] sh-tabs[_ngcontent-%COMP%]{margin:0 2rem 2rem}.content[_ngcontent-%COMP%] section[_ngcontent-%COMP%]{padding:0}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:2rem}"],changeDetection:0})};export{l as default};
|
package/index.html
CHANGED
|
@@ -124,5 +124,5 @@
|
|
|
124
124
|
<body>
|
|
125
125
|
<app-root></app-root>
|
|
126
126
|
<div class="loading">Connecting ...</div>
|
|
127
|
-
<link rel="modulepreload" href="chunk-VEWX3KXN.js"><link rel="modulepreload" href="chunk-
|
|
127
|
+
<link rel="modulepreload" href="chunk-VEWX3KXN.js"><link rel="modulepreload" href="chunk-I7DKD6VJ.js"><link rel="modulepreload" href="chunk-KRXQDBGB.js"><link rel="modulepreload" href="chunk-4VCGLPSI.js"><link rel="modulepreload" href="chunk-FOQJA6X2.js"><link rel="modulepreload" href="chunk-VHOAXFIJ.js"><link rel="modulepreload" href="chunk-SAKHOLXS.js"><link rel="modulepreload" href="chunk-6Q6SSTBK.js"><link rel="modulepreload" href="chunk-FK7JFD5B.js"><link rel="modulepreload" href="chunk-5DJAX2HH.js"><script src="polyfills-7RKI4BGK.js" type="module"></script><script src="main-GZ3TBDRZ.js" type="module"></script></body>
|
|
128
128
|
</html>
|
package/main-GZ3TBDRZ.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as Ie,c as ke}from"./chunk-VEWX3KXN.js";import{a as we}from"./chunk-I7DKD6VJ.js";import{a as Me}from"./chunk-KRXQDBGB.js";import{a as I}from"./chunk-4VCGLPSI.js";import{a as Ee}from"./chunk-FOQJA6X2.js";import{b as Te}from"./chunk-VHOAXFIJ.js";import"./chunk-SAKHOLXS.js";import{a as H}from"./chunk-6Q6SSTBK.js";import{a as Se}from"./chunk-FK7JFD5B.js";import"./chunk-5DJAX2HH.js";import"./chunk-OG6NP7IP.js";import"./chunk-SJWKQCBL.js";import{a as P}from"./chunk-TELPJYLN.js";import{a as h,b as ye,c as S,d as Re,e as M}from"./chunk-G4SK3PS7.js";import{v as be,x as Ce}from"./chunk-HPNLQHW6.js";import{a as ge,d as ve}from"./chunk-BGTK25UG.js";import{c as le,d as me,g as de,h as ue,i as he,j as fe}from"./chunk-A4LPGPDU.js";import{a as ne}from"./chunk-PKPBSTZA.js";import{a as re,b as se,c as ie,e as ae,f as pe,g as ce}from"./chunk-QPTSKQZ2.js";import{fa as te,ka as oe}from"./chunk-OTPG7USH.js";import"./chunk-TT3S63BX.js";import{Bb as Y,E,I as J,Ic as Z,Jc as ee,K as w,M as K,R as v,U as _,W as s,cb as Q,da as q,ea as z,f as F,g as W,l as $,la as d,m as G,na as X,p as R,y as L,z as B}from"./chunk-T2WO6CVD.js";import"./chunk-7CGTOI24.js";var k=class e{#e=s(h);#a=s(S);ngOnInit(){ye(),this.#a.fetchConfig(),this.#e.clearAllNotCurrentVersion()}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=Q({type:e,selectors:[["app-root"]],decls:1,vars:0,template:function(o,n){o&1&&Y(0,"router-outlet")},dependencies:[le],encapsulation:2})};var Ae={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var f=new _("ENVIRONMENT");var A=class e{#e=s(ve);isLoaded=d(!1);webmodules=d(null);preload(t=!1){let o=this.#e.getApiV1Webmodules().pipe(K(n=>this.webmodules.set(n)),E(()=>this.isLoaded.set(!0)));if(t)return o;o.subscribe()}static \u0275fac=function(o){return new(o||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})};var Ue=()=>{let e=s(M);return e.token()?!0:e.checkProxyAuthed().pipe(w(t=>t?$(!0):e.refreshToken().pipe(R(()=>!0))))},je=()=>{let e=s(S),t=s(I),o=s(q),n=e.relayIsEnabled()?"longpoll":"websocket",a=[o.get(P).preload(!0),o.get(P).preloadFilterGroups(!0),o.get(A).preload(!0)];return e.configLoaded===null?L(a).pipe(R(()=>n)):e.configLoaded?.pipe(w(()=>L(a)))},Fe=()=>!0,Ne={path:"connect/:typeParam",loadComponent:()=>import("./chunk-4OE4TUF6.js")},We=()=>{let e=s(h);return!e.getItem("locale")&&navigator.language&&e.setItem("locale",navigator.language),!0},Oe=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-WCU7A255.js")},{path:"logout",loadComponent:()=>import("./chunk-LZBEKGBK.js")},{path:"",canActivate:[Ue],children:[{path:"",canActivate:[je,Fe,We],children:[{path:"welcome",loadComponent:()=>import("./chunk-ZXVCNNR6.js"),children:[{path:"",redirectTo:"select",pathMatch:"full"},{path:"select",loadComponent:()=>import("./chunk-VAXPG4R2.js")},Ne]},{path:"",loadComponent:()=>import("./chunk-SL454JCD.js"),children:[{path:"",loadComponent:()=>import("./chunk-QNAAXVL5.js")},Ne,{path:"add-backup",loadComponent:()=>import("./chunk-OKWBFXS6.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-RYNESQNU.js")},{path:"backup/import",loadComponent:()=>import("./chunk-VUOL2M6R.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-ECXAVCLV.js"),loadChildren:()=>import("./chunk-KONVFYXE.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-ECXAVCLV.js"),loadChildren:()=>import("./chunk-KONVFYXE.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-E7TXHOJI.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-THM235PB.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-RFA232NB.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-ES756JBG.js")},{path:"backup/:id/delete",loadComponent:()=>import("./chunk-WRURLVII.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-6JEFZ6UK.js")},{path:"from-config",loadComponent:()=>import("./chunk-FQZFKTPW.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-BZSP7EIX.js"),loadChildren:()=>import("./chunk-FPYNIDJR.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-BZSP7EIX.js"),loadChildren:()=>import("./chunk-FPYNIDJR.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-BZSP7EIX.js"),loadChildren:()=>import("./chunk-FPYNIDJR.js")},{path:"settings",loadComponent:()=>import("./chunk-GYUN5SXR.js")},{path:"about",loadComponent:()=>import("./chunk-XJXBZISB.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-NV45UNPE.js")},{path:"changelog",loadComponent:()=>import("./chunk-T7WSF7RL.js")},{path:"libraries",loadComponent:()=>import("./chunk-B2Y54P3R.js")},{path:"system-info",loadComponent:()=>import("./chunk-SFR3XMV4.js")},{path:"server-settings",loadComponent:()=>import("./chunk-NL7JLA2L.js")},{path:"logs",loadChildren:()=>import("./chunk-MRAKGZE6.js")},{path:"crashlogs",loadComponent:()=>import("./chunk-7XS6T6TX.js")}]}]}]}]}]}];var V=null,xe=(e,t)=>{let o=s(M),n=s(me),a=s(h),p=s(f),i=a.getItem("locale"),u=s(Ce),c=Ie(i),r=ge.BASE||"",m=e.url===`${r}/api/v1/auth/login`,y=e.url===`${r}/api/v1/auth/refresh`,b=e.url===`${r}/api/v1/progressstate`,C=e.url===`${r}/api/v1/remoteoperation/test`,T=e.url===`${r}/api/v1/filesystem/validate`,Ve=e.url.startsWith(`${r}/api/v2/`),x=o.token(),U=e,j=e.headers.has("custom-proxy-check")||x===Re;if(x&&e.url.startsWith(r+p.baseUrl)&&!j){let l=e.headers.set("Authorization",`Bearer ${x}`);i&&i!=="en-US"&&(l=l.set("X-Ui-Language",c)),U=e.clone({headers:l})}return t(U).pipe(R(l=>{if(l.type===4&&l.status===200&&Ve){let g=l.body;if(g?.Success===!1)throw{status:200,message:g?.Error??"Unknown error",error:{Error:g?.Error??"Unknown error"},requestBody:g}}return l}),B(l=>{let g=l.error?.Error||`Error Code: ${l.status}, Message: ${l.message}`;return!j&&(b&&l.status===404||C||T||u.error(g),y&&l.status===401&&(o.logout(),n.navigate(["/logout"])),!m&&!y&&l.status===401)?(V??=o.refreshToken().pipe(J()),V.pipe(w(()=>t(e.clone({headers:e.headers.set("Authorization",`Bearer ${o.token()}`)}))),E(()=>V=null))):G(()=>({error:l,message:g}))}))};var N=class e{#e=s(z);showError(t){let o=this.#e.querySelector("body > .loading");if(!o)return;o.classList.add("has-error"),o.innerHTML="";let n=this.#e.createElement("div");n.classList.add("loading-title"),n.textContent="Unable to connect";let a=this.#e.createElement("div");a.classList.add("loading-error"),a.textContent=t||"Unknown error";let p=this.#e.createElement("button");p.type="button",p.classList.add("retry-button"),p.textContent="Retry",p.addEventListener("click",()=>{this.#e.defaultView?.location.reload()}),o.append(n,a,p)}static \u0275fac=function(o){return new(o||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})};var $e="1.0.0",Le=`portal-proxy-client-${H()}`,Ge=1,O=class e{#e=1e3;#a=s(f);#d=s(N);#o=d("disconnected");#u=d(this.#e);#p=d(!1);#n=d(!1);#c=d(null);#s=!1;isConnectedToMachineServer=this.#n.asReadonly();wsState=this.#o.asReadonly();#l=[];#r={};#t=null;#h=new TextDecoder("utf-8");#m=null;#g=X(()=>{let t=this.#p(),o=this.#u(),n=this.#c();if(!n||!t||!o||o<this.#e){this.#m&&window.clearInterval(this.#m);return}this.#m=window.setInterval(()=>{this.connectToMachineServer(n)},o)});#i(t){this.#s||(this.#s=!0,this.#d.showError(t||"Unable to connect to the server."))}#f(){this.#s||(this.#s=!0)}utf8Atob(t){let o=Uint8Array.from(atob(t),a=>a.charCodeAt(0)),n=this.#h.decode(o);return n?JSON.parse(n):null}connectToMachineServer(t,o){let n=o?.reconnect??!1,a=this.wsState();(a==="disconnected"||a==="error"||n)&&(this.#t?.close(),this.#t=null),!this.#t&&(this.#s=!1,this.#t=new WebSocket(this.#a.machineServerUrl),this.#o.set("connecting"),this.#t.onopen=()=>{this.#o.set("connect"),this.#n.set(!0),this.#p.set(!1),this.#c.set(null)},this.#t.onclose=()=>{this.#o.set("disconnected"),this.#n.set(!1),this.#c.set(t),this.#p.set(!0)},this.#t.onerror=()=>{this.#o.set("error")},this.#t.onmessage=p=>{let i=JSON.parse(p.data);if(this.wsState()==="connect"){if(i.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${i.type}'`);return}let c={token:t,publicKey:"",clientVersion:$e,protocolVersion:Ge},r=this.createResponse(i,"authportal",c);this.#o.set("welcome"),this.#t?.send(r)}else if(this.wsState()==="welcome"){if(i.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${i.type}'`);return}var u=JSON.parse(i.payload??"");if(u.accepted===!1){this.#i("Authentication failed"),this.disconnectFromMachineServer("Authentication failed");return}for(this.#o.set("authenticated"),this.#n.set(!0);this.#l.length>0;){let c=this.#l.pop();c&&this.#r[c.messageId]&&this.activateCommand(c)}}else if(this.wsState()==="authenticated"){if(i.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${i.type}'`);return}let c=this.#r[i.messageId];if(c){if(i.errorMessage)this.#i(i.errorMessage),c.reject(i.errorMessage);else{let r=JSON.parse(i.payload??"");r.statusCode>=400?this.#i(r.body||`Initial request failed with status code ${r.statusCode}`):this.#f(),r.body=r?.body==null?null:this.utf8Atob(r.body),c.resolve(r)}delete this.#r[i.messageId],window.clearTimeout(c.timer)}}})}disconnectFromMachineServer(t=null){t&&console.error(t),this.#t?.close(),this.#t=null,this.#o.set("disconnected"),this.#n.set(!1)}createResponse(t,o,n){let a={from:Le,to:t.from,type:o,messageId:t.messageId,payload:JSON.stringify(n)};return JSON.stringify(a)}sendCommand(t,o,n,a,p,i,u=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(t),new Promise((c,r)=>{let m=H(),b={from:Le,to:o,type:"command",messageId:m,payload:JSON.stringify({method:n,path:a,body:p,headers:i})},C={resolve:c,reject:r,timer:window.setTimeout(()=>{let T=this.#r[m];T&&(delete this.#r[m],this.#i("The request timed out before receiving a response."),T.reject("Timeout"))},u)};this.#r[m]=C,this.#n()?this.activateCommand(b):this.#l.push(b)})}activateCommand(t){this.#t?.send(JSON.stringify(t))}static \u0275fac=function(o){return new(o||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})};function Be(e){if(typeof e!="string")return null;let o=new TextEncoder().encode(e);return window.btoa(String.fromCharCode(...o))}function Pe(e,t,o){let n=e.relayconfigState.config();if(n===null)return o(t);let a=Be(t.body),p={};t.headers.keys().forEach(r=>{p[r]=t.headers.get(r)??""});let i=t.headers.get("timeout"),u=i!==null?parseInt(i):e.defaultTimeout;t.url.startsWith("/api/v1/serverstate")&&t.url.includes("longpoll=true")&&(u=1e3*99);let c=e.relayWebsocket.sendCommand(n.accessToken,n.clientId,t.method,t.url,a,p,u);return new F(r=>{c.then(m=>{let y=new re;p!=null&&Object.keys(p).forEach(C=>{y.set(C,p[C])});let b=new se({body:m.body,status:m.statusCode,statusText:"OK",headers:y});r.next(b),r.complete()}).catch(m=>{r.error(new ie({error:m??"Unknown error",status:0,statusText:m??"Unknown error"}))})})}var He=(e,t)=>{let o={relayconfigState:s(S),defaultTimeout:s(f).defaultTimeout,relayWebsocket:s(O)},n=o.relayconfigState.config();if(o.relayconfigState.configLoaded!==null&&n===null){let a=new W;return o.relayconfigState.configLoaded.subscribe(p=>{p&&Pe(o,e,t).subscribe(a)}),a}return Pe(o,e,t)};var De={providers:[Z(),ue(Oe,fe(),he(de)),ae(ce(),pe([He,xe])),h,{provide:f,useValue:Ae},{provide:ee,useValue:ke()},{provide:be,useValue:{alertVariant:"simple"}},we,I,Te,oe,Se,te,Ee,Me]};ne(k,De);
|
package/package.json
CHANGED
package/chunk-5QZIKR6A.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as b,c as _}from"./chunk-BGTK25UG.js";import{d as T}from"./chunk-A4LPGPDU.js";import{a as y,d as O}from"./chunk-QPTSKQZ2.js";import{ua as P,va as o}from"./chunk-OTPG7USH.js";import{C as l,E as N,M as g,R as a,W as i,f as I,i as S,l as E,la as n,p as R,wa as v,z as A}from"./chunk-T2WO6CVD.js";var c=class r{platformId=i(v);STORAGE_VERSION="v1";APP_NAME="duplicati";PERSISTED_PREFIX="persist:";getItemParsed(e,t=!1){return o(this.platformId)?null:JSON.parse(localStorage.getItem(`${this.STORAGE_VERSION}:${t?this.PERSISTED_PREFIX:""}${this.APP_NAME}:${e}`)??"null")}setItemParsed(e,t,s=!1){if(!o(this.platformId))return localStorage.setItem(`${this.STORAGE_VERSION}:${s?this.PERSISTED_PREFIX:""}${this.APP_NAME}:${e}`,JSON.stringify(t))}get length(){return P(this.platformId)?localStorage.length:0}getItem(e){return o(this.platformId)?null:localStorage.getItem(`${this.STORAGE_VERSION}:${this.APP_NAME}:${e}`)??null}setItem(e,t){if(!o(this.platformId))return localStorage.setItem(`${this.STORAGE_VERSION}:${this.APP_NAME}:${e}`,t)}removeItem(e){o(this.platformId)||(localStorage.removeItem(`${this.STORAGE_VERSION}:${this.APP_NAME}:${e}`),localStorage.removeItem(`${this.STORAGE_VERSION}:${this.PERSISTED_PREFIX}${this.APP_NAME}:${e}`))}clearAllNotCurrentVersion(){if(!o(this.platformId))for(var e in localStorage)!e.startsWith(this.STORAGE_VERSION)&&e.includes(this.APP_NAME)&&localStorage.removeItem(e)}clearAll(){o(this.platformId)||localStorage.clear()}clear(){if(!o(this.platformId))for(var e in localStorage)e.includes(this.APP_NAME)&&!e.includes(this.PERSISTED_PREFIX)&&localStorage.removeItem(e)}key(e){return o(this.platformId)?null:localStorage.key(e)}static \u0275fac=function(t){return new(t||r)};static \u0275prov=a({token:r,factory:r.\u0275fac})};var f=class r{#i=i(c);#r=n(null);#t=window.self!==window.top;#s=n(this.#t);relayIsEnabled=this.#s.asReadonly();config=this.#r.asReadonly();configLoaded=this.#t?new S:null;isLoading=n(this.#t);parentIframeListner=null;parentOrigin="*";fetchConfig(){this.#o(),this.#t&&(this.#s.set(!0),this.parentIframeListner=new AbortController,this.#e("connected"),window.addEventListener("message",e=>{if(e.data.startsWith("access:")){let t=e.data.replace("access:",""),s=JSON.parse(t);if(!s?.accessToken||!s?.clientId){this.#e("error:invalid-config"),this.#s.set(!1);return}if(typeof s.clientId!="string"){this.#e("error:invalid-config"),this.#s.set(!1);return}if(typeof s.accessToken!="string"){this.#e("error:invalid-config"),this.#s.set(!1);return}let m=this.#i.getItem("locale")??"en-US",p=s.locale??"en-US";m!==p&&(this.#i.setItem("locale",p),window.location.reload()),this.#r.set(s),this.configLoaded?.next(!0),this.isLoading.set(!1),this.#e("handshake-complete")}},{signal:this.parentIframeListner.signal}))}#e(e){window.parent.postMessage(e,"*")}#o(){this.parentIframeListner&&(this.parentIframeListner.abort(),this.parentIframeListner=null)}setConfig(e){this.#r.set(e)}clearConfig(){this.#r.set(null)}static \u0275fac=function(t){return new(t||r)};static \u0275prov=a({token:r,factory:r.\u0275fac,providedIn:"root"})};var u="PROXY_AUTHED_FAKE_TOKEN",h="refreshNonce",d="v1:persist:duplicati:refreshNonce",k=class r{#i=i(T);#r=i(O);#t=i(_);#s=i(f);#e=n(null);#o=n(!1);token=this.#e.asReadonly();isLoggingOut=this.#o.asReadonly();setRefreshNonce(e,t){if(!e){sessionStorage.removeItem(h);return}t?localStorage.setItem(d,e||""):sessionStorage.setItem(h,e||"")}getRefreshNonceBody(){let e=sessionStorage.getItem(h),t=localStorage.getItem(d),s=e||t;return{requestBody:s?{requestBody:{Nonce:s}}:void 0,local:s===t}}login(e,t){return this.#t.postApiV1AuthLogin({requestBody:{Password:e,RememberMe:t}}).pipe(l(1),g(s=>{s.AccessToken?(this.#e.set(s.AccessToken),this.setRefreshNonce(s.RefreshNonce,t)):this.#e.set(null)}))}refreshToken(){if(this.#s.relayIsEnabled())return this.#e.set(u),new I(s=>{s.next({AccessToken:u}),s.complete()});let{requestBody:e,local:t}=this.getRefreshNonceBody();return this.#t.postApiV1AuthRefresh(e).pipe(l(1),g(s=>{s.AccessToken&&(this.#e.set(s.AccessToken),this.setRefreshNonce(s.RefreshNonce,t))}))}checkProxyAuthed(){let e=new y({"custom-proxy-check":"true"}),t=b.BASE||"";return this.#r.get(`${t}/api/v1/systeminfo`,{headers:e}).pipe(R(()=>(this.#e.set(u),!0)),A(()=>E(!1)))}logout(){this.#o.set(!0);let{requestBody:e,local:t}=this.getRefreshNonceBody();sessionStorage.removeItem(h),t&&localStorage.removeItem(d),this.#t.postApiV1AuthRefreshLogout(e).pipe(l(1),N(()=>{this.#o.set(!1),this.#e.set(null),this.#i.navigate(["/login"])})).subscribe()}static \u0275fac=function(t){return new(t||r)};static \u0275prov=a({token:r,factory:r.\u0275fac,providedIn:"root"})};export{c as a,f as b,u as c,k as d};
|
package/chunk-FRN7G2XC.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-7CGTOI24.js";var o=[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-GCL5YZGN.js")},{path:"destination",loadComponent:()=>import("./chunk-5Y3YA4IZ.js")},{path:"source-data",loadComponent:()=>import("./chunk-XFTFZ5UD.js")},{path:"schedule",loadComponent:()=>import("./chunk-4GDXGM4L.js")},{path:"options",loadComponent:()=>import("./chunk-XFKT7HQ4.js")}];export{o as default};
|
package/chunk-UGATCU55.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-7CGTOI24.js";var o=[{path:"",redirectTo:"select-files",pathMatch:"full"},{path:"destination",loadComponent:()=>import("./chunk-ZCSLL22M.js")},{path:"encryption",loadComponent:()=>import("./chunk-VLHMURFN.js")},{path:"select-files",loadComponent:()=>import("./chunk-BXWAVFI6.js")},{path:"options",loadComponent:()=>import("./chunk-MLTHWDBE.js")},{path:":taskid/progress",loadComponent:()=>import("./chunk-OQ3SKNS2.js")}],t=o;export{t as default};
|
package/main-DLNJU5L6.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as Me,c as Ie}from"./chunk-VEWX3KXN.js";import{a as Re}from"./chunk-TAFKX5F2.js";import{a as Ee}from"./chunk-KRXQDBGB.js";import{a as k}from"./chunk-LWJ6FCGJ.js";import{a as Te}from"./chunk-FOQJA6X2.js";import{b as we}from"./chunk-VHOAXFIJ.js";import"./chunk-FVZOIWTT.js";import{a as D}from"./chunk-6Q6SSTBK.js";import{a as ve}from"./chunk-FK7JFD5B.js";import"./chunk-5DJAX2HH.js";import"./chunk-QZRRXR3V.js";import"./chunk-6K3PRIYO.js";import{a as H}from"./chunk-TELPJYLN.js";import{a as h,b as S,c as Se,d as I}from"./chunk-5QZIKR6A.js";import{v as ye,x as be}from"./chunk-HPNLQHW6.js";import{a as T,d as Ce}from"./chunk-BGTK25UG.js";import{c as me,d as de,g as ue,h as he,i as fe,j as ge}from"./chunk-A4LPGPDU.js";import{a as re}from"./chunk-PKPBSTZA.js";import{a as se,b as ie,c as ae,e as pe,f as ce,g as le}from"./chunk-QPTSKQZ2.js";import{fa as oe,ka as ne}from"./chunk-OTPG7USH.js";import"./chunk-TT3S63BX.js";import{Bb as Z,E as M,I as K,Ic as ee,Jc as te,K as w,M as q,R as v,U as z,W as s,cb as Y,da as _,ea as X,f as F,g as $,l as B,la as d,m as G,na as Q,p as R,y as L,z as J}from"./chunk-T2WO6CVD.js";import"./chunk-7CGTOI24.js";function Ue(){try{let t=document.querySelector('meta[name="duplicati-proxy-config"]');if(t){let e=(t.getAttribute("content")||"").trim();if(e&&e.startsWith("/"))return e}}catch(t){console.warn("Failed to read proxy configuration from meta tag:",t)}return null}function ke(){let t=Ue();if(t&&t.length>0){let e=t;e.startsWith("/")||(e=`/${e}`),e.endsWith("/")&&(e=e.slice(0,-1)),T.BASE=e}else T.BASE=""}var A=class t{#e=s(h);#a=s(S);ngOnInit(){ke(),this.#a.fetchConfig(),this.#e.clearAllNotCurrentVersion()}static \u0275fac=function(o){return new(o||t)};static \u0275cmp=Y({type:t,selectors:[["app-root"]],decls:1,vars:0,template:function(o,n){o&1&&Z(0,"router-outlet")},dependencies:[me],encapsulation:2})};var Ae={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var f=new z("ENVIRONMENT");var O=class t{#e=s(Ce);isLoaded=d(!1);webmodules=d(null);preload(e=!1){let o=this.#e.getApiV1Webmodules().pipe(q(n=>this.webmodules.set(n)),M(()=>this.isLoaded.set(!0)));if(e)return o;o.subscribe()}static \u0275fac=function(o){return new(o||t)};static \u0275prov=v({token:t,factory:t.\u0275fac,providedIn:"root"})};var We=()=>{let t=s(I);return t.token()?!0:t.checkProxyAuthed().pipe(w(e=>e?B(!0):t.refreshToken().pipe(R(()=>!0))))},je=()=>{let t=s(S),e=s(k),o=s(_),n=t.relayIsEnabled()?"longpoll":"websocket",a=[o.get(H).preload(!0),o.get(H).preloadFilterGroups(!0),o.get(O).preload(!0)];return t.configLoaded===null?L(a).pipe(R(()=>n)):t.configLoaded?.pipe(w(()=>L(a)))},Fe=()=>!0,Oe={path:"connect/:typeParam",loadComponent:()=>import("./chunk-CRIAZIHV.js")},$e=()=>{let t=s(h);return!t.getItem("locale")&&navigator.language&&t.setItem("locale",navigator.language),!0},Ne=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-XZ35H3QB.js")},{path:"logout",loadComponent:()=>import("./chunk-NJ2XZSM6.js")},{path:"",canActivate:[We],children:[{path:"",canActivate:[je,Fe,$e],children:[{path:"welcome",loadComponent:()=>import("./chunk-ZXVCNNR6.js"),children:[{path:"",redirectTo:"select",pathMatch:"full"},{path:"select",loadComponent:()=>import("./chunk-WHT6WK7V.js")},Oe]},{path:"",loadComponent:()=>import("./chunk-FNIOBDFO.js"),children:[{path:"",loadComponent:()=>import("./chunk-Z6QCNSVI.js")},Oe,{path:"add-backup",loadComponent:()=>import("./chunk-D3VVL4NK.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-AEVJZNUY.js")},{path:"backup/import",loadComponent:()=>import("./chunk-DH6M7Y7C.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-BNQSW4G5.js"),loadChildren:()=>import("./chunk-FRN7G2XC.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-BNQSW4G5.js"),loadChildren:()=>import("./chunk-FRN7G2XC.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-AESH2EML.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-WUK4ABE5.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-FPKRDCQ6.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-QGD6TGTI.js")},{path:"backup/:id/delete",loadComponent:()=>import("./chunk-YFWXKCXL.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-GXYICCA6.js")},{path:"from-config",loadComponent:()=>import("./chunk-FQZFKTPW.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-ZTXNJMNP.js"),loadChildren:()=>import("./chunk-UGATCU55.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-ZTXNJMNP.js"),loadChildren:()=>import("./chunk-UGATCU55.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-ZTXNJMNP.js"),loadChildren:()=>import("./chunk-UGATCU55.js")},{path:"settings",loadComponent:()=>import("./chunk-DNHCL3D4.js")},{path:"about",loadComponent:()=>import("./chunk-GG3FXQPK.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-G4BVOKDI.js")},{path:"changelog",loadComponent:()=>import("./chunk-T7WSF7RL.js")},{path:"libraries",loadComponent:()=>import("./chunk-B2Y54P3R.js")},{path:"system-info",loadComponent:()=>import("./chunk-SFR3XMV4.js")},{path:"server-settings",loadComponent:()=>import("./chunk-G4PJG5YL.js")},{path:"logs",loadChildren:()=>import("./chunk-MRAKGZE6.js")},{path:"crashlogs",loadComponent:()=>import("./chunk-7XS6T6TX.js")}]}]}]}]}]}];var U=null,xe=(t,e)=>{let o=s(I),n=s(de),a=s(h),p=s(f),i=a.getItem("locale"),u=s(be),c=Me(i),r=T.BASE||"",m=t.url===`${r}/api/v1/auth/login`,y=t.url===`${r}/api/v1/auth/refresh`,b=t.url===`${r}/api/v1/progressstate`,C=t.url===`${r}/api/v1/remoteoperation/test`,E=t.url===`${r}/api/v1/filesystem/validate`,Ve=t.url.startsWith(`${r}/api/v2/`),P=o.token(),W=t,j=t.headers.has("custom-proxy-check")||P===Se;if(P&&t.url.startsWith(r+p.baseUrl)&&!j){let l=t.headers.set("Authorization",`Bearer ${P}`);i&&i!=="en-US"&&(l=l.set("X-Ui-Language",c)),W=t.clone({headers:l})}return e(W).pipe(R(l=>{if(l.type===4&&l.status===200&&Ve){let g=l.body;if(g?.Success===!1)throw{status:200,message:g?.Error??"Unknown error",error:{Error:g?.Error??"Unknown error"},requestBody:g}}return l}),J(l=>{let g=l.error?.Error||`Error Code: ${l.status}, Message: ${l.message}`;return!j&&(b&&l.status===404||C||E||u.error(g),y&&l.status===401&&(o.logout(),n.navigate(["/logout"])),!m&&!y&&l.status===401)?(U??=o.refreshToken().pipe(K()),U.pipe(w(()=>e(t.clone({headers:t.headers.set("Authorization",`Bearer ${o.token()}`)}))),M(()=>U=null))):G(()=>({error:l,message:g}))}))};var N=class t{#e=s(X);showError(e){let o=this.#e.querySelector("body > .loading");if(!o)return;o.classList.add("has-error"),o.innerHTML="";let n=this.#e.createElement("div");n.classList.add("loading-title"),n.textContent="Unable to connect";let a=this.#e.createElement("div");a.classList.add("loading-error"),a.textContent=e||"Unknown error";let p=this.#e.createElement("button");p.type="button",p.classList.add("retry-button"),p.textContent="Retry",p.addEventListener("click",()=>{this.#e.defaultView?.location.reload()}),o.append(n,a,p)}static \u0275fac=function(o){return new(o||t)};static \u0275prov=v({token:t,factory:t.\u0275fac,providedIn:"root"})};var Be="1.0.0",Pe=`portal-proxy-client-${D()}`,Ge=1,x=class t{#e=1e3;#a=s(f);#d=s(N);#o=d("disconnected");#u=d(this.#e);#p=d(!1);#n=d(!1);#c=d(null);#s=!1;isConnectedToMachineServer=this.#n.asReadonly();wsState=this.#o.asReadonly();#l=[];#r={};#t=null;#h=new TextDecoder("utf-8");#m=null;#g=Q(()=>{let e=this.#p(),o=this.#u(),n=this.#c();if(!n||!e||!o||o<this.#e){this.#m&&window.clearInterval(this.#m);return}this.#m=window.setInterval(()=>{this.connectToMachineServer(n)},o)});#i(e){this.#s||(this.#s=!0,this.#d.showError(e||"Unable to connect to the server."))}#f(){this.#s||(this.#s=!0)}utf8Atob(e){let o=Uint8Array.from(atob(e),a=>a.charCodeAt(0)),n=this.#h.decode(o);return n?JSON.parse(n):null}connectToMachineServer(e,o){let n=o?.reconnect??!1,a=this.wsState();(a==="disconnected"||a==="error"||n)&&(this.#t?.close(),this.#t=null),!this.#t&&(this.#s=!1,this.#t=new WebSocket(this.#a.machineServerUrl),this.#o.set("connecting"),this.#t.onopen=()=>{this.#o.set("connect"),this.#n.set(!0),this.#p.set(!1),this.#c.set(null)},this.#t.onclose=()=>{this.#o.set("disconnected"),this.#n.set(!1),this.#c.set(e),this.#p.set(!0)},this.#t.onerror=()=>{this.#o.set("error")},this.#t.onmessage=p=>{let i=JSON.parse(p.data);if(this.wsState()==="connect"){if(i.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${i.type}'`);return}let c={token:e,publicKey:"",clientVersion:Be,protocolVersion:Ge},r=this.createResponse(i,"authportal",c);this.#o.set("welcome"),this.#t?.send(r)}else if(this.wsState()==="welcome"){if(i.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${i.type}'`);return}var u=JSON.parse(i.payload??"");if(u.accepted===!1){this.#i("Authentication failed"),this.disconnectFromMachineServer("Authentication failed");return}for(this.#o.set("authenticated"),this.#n.set(!0);this.#l.length>0;){let c=this.#l.pop();c&&this.#r[c.messageId]&&this.activateCommand(c)}}else if(this.wsState()==="authenticated"){if(i.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${i.type}'`);return}let c=this.#r[i.messageId];if(c){if(i.errorMessage)this.#i(i.errorMessage),c.reject(i.errorMessage);else{let r=JSON.parse(i.payload??"");r.statusCode>=400?this.#i(r.body||`Initial request failed with status code ${r.statusCode}`):this.#f(),r.body=r?.body==null?null:this.utf8Atob(r.body),c.resolve(r)}delete this.#r[i.messageId],window.clearTimeout(c.timer)}}})}disconnectFromMachineServer(e=null){e&&console.error(e),this.#t?.close(),this.#t=null,this.#o.set("disconnected"),this.#n.set(!1)}createResponse(e,o,n){let a={from:Pe,to:e.from,type:o,messageId:e.messageId,payload:JSON.stringify(n)};return JSON.stringify(a)}sendCommand(e,o,n,a,p,i,u=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(e),new Promise((c,r)=>{let m=D(),b={from:Pe,to:o,type:"command",messageId:m,payload:JSON.stringify({method:n,path:a,body:p,headers:i})},C={resolve:c,reject:r,timer:window.setTimeout(()=>{let E=this.#r[m];E&&(delete this.#r[m],this.#i("The request timed out before receiving a response."),E.reject("Timeout"))},u)};this.#r[m]=C,this.#n()?this.activateCommand(b):this.#l.push(b)})}activateCommand(e){this.#t?.send(JSON.stringify(e))}static \u0275fac=function(o){return new(o||t)};static \u0275prov=v({token:t,factory:t.\u0275fac,providedIn:"root"})};function Je(t){if(typeof t!="string")return null;let o=new TextEncoder().encode(t);return window.btoa(String.fromCharCode(...o))}function Le(t,e,o){let n=t.relayconfigState.config();if(n===null)return o(e);let a=Je(e.body),p={};e.headers.keys().forEach(r=>{p[r]=e.headers.get(r)??""});let i=e.headers.get("timeout"),u=i!==null?parseInt(i):t.defaultTimeout;e.url.startsWith("/api/v1/serverstate")&&e.url.includes("longpoll=true")&&(u=1e3*99);let c=t.relayWebsocket.sendCommand(n.accessToken,n.clientId,e.method,e.url,a,p,u);return new F(r=>{c.then(m=>{let y=new se;p!=null&&Object.keys(p).forEach(C=>{y.set(C,p[C])});let b=new ie({body:m.body,status:m.statusCode,statusText:"OK",headers:y});r.next(b),r.complete()}).catch(m=>{r.error(new ae({error:m??"Unknown error",status:0,statusText:m??"Unknown error"}))})})}var He=(t,e)=>{let o={relayconfigState:s(S),defaultTimeout:s(f).defaultTimeout,relayWebsocket:s(x)},n=o.relayconfigState.config();if(o.relayconfigState.configLoaded!==null&&n===null){let a=new $;return o.relayconfigState.configLoaded.subscribe(p=>{p&&Le(o,t,e).subscribe(a)}),a}return Le(o,t,e)};var De={providers:[ee(),he(Ne,ge(),fe(ue)),pe(le(),ce([He,xe])),h,{provide:f,useValue:Ae},{provide:te,useValue:Ie()},{provide:ye,useValue:{alertVariant:"simple"}},Re,k,we,ne,ve,oe,Te,Ee]};re(A,De);
|