@duplicati/ngclient 0.0.118 → 0.0.120

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.
Files changed (104) hide show
  1. package/{chunk-ZRFL62SL.js → chunk-2GE6FFGI.js} +1 -1
  2. package/{chunk-45NW2WR4.js → chunk-2P3DXYGR.js} +1 -1
  3. package/{chunk-IK7CPFZB.js → chunk-2SQBD7LN.js} +1 -1
  4. package/{chunk-BIZAKOYU.js → chunk-3AIKVVWP.js} +1 -1
  5. package/chunk-3GGSYR5J.js +1 -0
  6. package/{chunk-GWVX5STR.js → chunk-3KUVV3SB.js} +1 -1
  7. package/{chunk-XP7PWMT2.js → chunk-3XVU2YA6.js} +1 -1
  8. package/{chunk-ETX7VKB3.js → chunk-4LLC3Q7O.js} +1 -1
  9. package/{chunk-YTDBBO6I.js → chunk-4YUBZYBH.js} +1 -1
  10. package/{chunk-ELMONRIG.js → chunk-5ENRUF35.js} +1 -1
  11. package/{chunk-C6XTRC7P.js → chunk-5LKXKKAK.js} +1 -1
  12. package/{chunk-TRR5XEEM.js → chunk-65UN5LE6.js} +1 -1
  13. package/{chunk-476PQHLI.js → chunk-6KSS7VQS.js} +1 -1
  14. package/{chunk-XZ7HNUSV.js → chunk-AACJQG7X.js} +1 -1
  15. package/{chunk-L72ALLHJ.js → chunk-AHUC7M75.js} +6 -6
  16. package/{chunk-SL6SRYFT.js → chunk-AL5KGNEF.js} +1 -1
  17. package/chunk-AZ2DJOXS.js +1 -0
  18. package/{chunk-P7O2NK5N.js → chunk-B3WLZK7W.js} +1 -1
  19. package/{chunk-M7ENBMEW.js → chunk-BAX2AJJJ.js} +1 -1
  20. package/{chunk-HCBCZ5NX.js → chunk-CH7FSO4Y.js} +1 -1
  21. package/{chunk-JE3JBXTZ.js → chunk-CPTR6AJI.js} +1 -1
  22. package/chunk-CRJHIWSF.js +1 -0
  23. package/{chunk-C3M5C7JC.js → chunk-CZUGA62N.js} +2 -2
  24. package/{chunk-I5SC52QU.js → chunk-DX6BDDDV.js} +1 -1
  25. package/{chunk-VJQVHIW5.js → chunk-ELZWH543.js} +1 -1
  26. package/{chunk-FBX4Q2XW.js → chunk-EXY7CUIT.js} +1 -1
  27. package/{chunk-3GYZOEPN.js → chunk-FAY3FX6V.js} +1 -1
  28. package/{chunk-S5EF63OY.js → chunk-FRSQ5NDX.js} +1 -1
  29. package/chunk-G5CT45UH.js +1 -0
  30. package/{chunk-MAVZY7BL.js → chunk-HFNFJ7G2.js} +1 -1
  31. package/{chunk-N2MDNESH.js → chunk-HTX2RSBS.js} +1 -1
  32. package/{chunk-2WGKWTVM.js → chunk-HYHEAOIF.js} +2 -2
  33. package/chunk-IQFSWP4W.js +6 -0
  34. package/chunk-IX2G55AS.js +1 -0
  35. package/{chunk-AGPUJOBO.js → chunk-JBA24HSR.js} +1 -1
  36. package/{chunk-HWBBTXU3.js → chunk-K5C3JCVH.js} +1 -1
  37. package/chunk-KBJGYXKV.js +1 -0
  38. package/{chunk-44DHERTN.js → chunk-KHGD372Q.js} +1 -1
  39. package/{chunk-XDHEMLPD.js → chunk-KKIWOA46.js} +1 -1
  40. package/chunk-KYQWUXYN.js +1 -0
  41. package/{chunk-54VPI5KJ.js → chunk-LDJVMU7P.js} +1 -1
  42. package/{chunk-WFAZP46A.js → chunk-LJDOQTEF.js} +1 -1
  43. package/chunk-LRRCO7FY.js +1 -0
  44. package/chunk-LWC5O2JV.js +1 -0
  45. package/{chunk-7L2WUS2V.js → chunk-M3WT5B3C.js} +1 -1
  46. package/{chunk-EQWH3TBL.js → chunk-NF3MS2YP.js} +1 -1
  47. package/{chunk-NIBE7CI2.js → chunk-NPZU4SBS.js} +1 -1
  48. package/{chunk-42DBG4A6.js → chunk-NUC2S6S3.js} +1 -1
  49. package/{chunk-XYMSYNUD.js → chunk-OEIF7NQ5.js} +1 -1
  50. package/{chunk-MU24KCIK.js → chunk-OHZGASM5.js} +1 -1
  51. package/{chunk-2GCIICW5.js → chunk-Q2WRB27A.js} +1 -1
  52. package/{chunk-B5MQU4UL.js → chunk-Q6M5VRZV.js} +1 -1
  53. package/chunk-QVNFX6ZC.js +1 -0
  54. package/{chunk-JFNFY6VY.js → chunk-RHII5WE3.js} +1 -1
  55. package/chunk-RKAIZDDW.js +1 -0
  56. package/{chunk-L2M4ZKII.js → chunk-RLUT4FSI.js} +1 -1
  57. package/{chunk-HFIC4JNY.js → chunk-RSZISHXB.js} +1 -1
  58. package/{chunk-YCAQITZE.js → chunk-SSJ4VQB4.js} +2 -2
  59. package/chunk-ST67LUCY.js +1 -0
  60. package/{chunk-MQJUTAQD.js → chunk-T6KX6ACI.js} +1 -1
  61. package/{chunk-DOP6RFEG.js → chunk-TCDECRYI.js} +1 -1
  62. package/{chunk-R3PVYKQS.js → chunk-TJJORMQV.js} +1 -1
  63. package/{chunk-F7E55RI6.js → chunk-UABJ67OY.js} +1 -1
  64. package/chunk-UDYPOSWB.js +1 -0
  65. package/{chunk-5BHYO5SK.js → chunk-UXUVYBYP.js} +1 -1
  66. package/{chunk-P7IBR2UW.js → chunk-VGAQB3OD.js} +1 -1
  67. package/{chunk-COT4PUVO.js → chunk-VYJFDVMS.js} +1 -1
  68. package/{chunk-FJVMA6GA.js → chunk-WFM6YWRN.js} +1 -1
  69. package/chunk-WU3ALGNP.js +1 -0
  70. package/{chunk-F2GEUOGZ.js → chunk-WZRSQ7XL.js} +1 -1
  71. package/{chunk-CDWP7I44.js → chunk-X6PSFVBL.js} +1 -1
  72. package/{chunk-TQHNKGRL.js → chunk-XR4SRVOQ.js} +1 -1
  73. package/{chunk-3RIVWHQR.js → chunk-XWF632WO.js} +2 -2
  74. package/chunk-Y3DJVXL2.js +1 -0
  75. package/chunk-YKOEKIFQ.js +1 -0
  76. package/{chunk-PVLYH62N.js → chunk-YY3JAYQZ.js} +1 -1
  77. package/chunk-YYC22I2K.js +1 -0
  78. package/chunk-Z45ZPMZS.js +1 -0
  79. package/chunk-ZHMYBX5F.js +1 -0
  80. package/{chunk-BJGA55H2.js → chunk-ZQSBINUM.js} +1 -1
  81. package/index.html +2 -2
  82. package/{main-I7BOOCNM.js → main-AYZBQHF7.js} +1 -1
  83. package/package.json +1 -1
  84. package/{styles-EXA64NMM.css → styles-P2AEFLUS.css} +1 -1
  85. package/chunk-3PDXD5UG.js +0 -1
  86. package/chunk-4RAO2JRJ.js +0 -1
  87. package/chunk-7RELJ5CQ.js +0 -1
  88. package/chunk-BJIL3R5K.js +0 -1
  89. package/chunk-CCJ5LW7S.js +0 -1
  90. package/chunk-I7KXABQT.js +0 -1
  91. package/chunk-IZFSAAIF.js +0 -1
  92. package/chunk-JSZOZDJQ.js +0 -1
  93. package/chunk-O445WX5K.js +0 -1
  94. package/chunk-SKABVF5Q.js +0 -1
  95. package/chunk-SQQKW2DQ.js +0 -1
  96. package/chunk-TEYVVULJ.js +0 -1
  97. package/chunk-TRCPJYNH.js +0 -1
  98. package/chunk-UNXP3IN4.js +0 -1
  99. package/chunk-V756QT7J.js +0 -1
  100. package/chunk-WLU27TDA.js +0 -1
  101. package/chunk-WRPHCCP7.js +0 -6
  102. package/chunk-X3TVMZLM.js +0 -1
  103. package/chunk-XL7YUTMF.js +0 -1
  104. package/chunk-YDLHVAEO.js +0 -1
@@ -1 +1 @@
1
- import{Oc as m,Q as d,Qc as g,Z as y,ca as l,la as b,va as a}from"./chunk-L72ALLHJ.js";import{a as f,b as v}from"./chunk-7CGTOI24.js";function p(o,e){let r=!e?.manualCleanup;r&&!e?.injector&&l(p);let c=r?e?.injector?.get(b)??y(b):null,u=h(e?.equal),n;e?.requireSync?n=a({kind:0},{equal:u}):n=a({kind:1,value:e?.initialValue},{equal:u});let i=o.subscribe({next:t=>n.set({kind:1,value:t}),error:t=>{if(e?.rejectErrors)throw t;n.set({kind:2,error:t})}});if(e?.requireSync&&n().kind===0)throw new d(601,!1);return c?.onDestroy(i.unsubscribe.bind(i)),m(()=>{let t=n();switch(t.kind){case 1:return t.value;case 2:throw t.error;case 0:throw new d(601,!1)}},{equal:e?.equal})}function h(o=Object.is){return(e,r)=>e.kind===1&&r.kind===1&&o(e.value,r.value)}function w(o){return o?.injector||l(w),g(v(f({},o),{loader:void 0,stream:e=>{let r,c=()=>r.unsubscribe();e.abortSignal.addEventListener("abort",c);let u=a({value:void 0}),n,i=new Promise(s=>n=s);function t(s){u.set(s),n?.(u),n=void 0}return r=o.loader(e).subscribe({next:s=>t({value:s}),error:s=>t({error:s}),complete:()=>{n&&t({error:new Error("Resource completed before producing a value")}),e.abortSignal.removeEventListener("abort",c)}}),i}}))}export{p as a,w as b};
1
+ import{Pc as m,Q as d,Rc as g,Z as y,ca as l,la as b,va as a}from"./chunk-AHUC7M75.js";import{a as f,b as v}from"./chunk-7CGTOI24.js";function p(o,e){let r=!e?.manualCleanup;r&&!e?.injector&&l(p);let c=r?e?.injector?.get(b)??y(b):null,u=h(e?.equal),n;e?.requireSync?n=a({kind:0},{equal:u}):n=a({kind:1,value:e?.initialValue},{equal:u});let i=o.subscribe({next:t=>n.set({kind:1,value:t}),error:t=>{if(e?.rejectErrors)throw t;n.set({kind:2,error:t})}});if(e?.requireSync&&n().kind===0)throw new d(601,!1);return c?.onDestroy(i.unsubscribe.bind(i)),m(()=>{let t=n();switch(t.kind){case 1:return t.value;case 2:throw t.error;case 0:throw new d(601,!1)}},{equal:e?.equal})}function h(o=Object.is){return(e,r)=>e.kind===1&&r.kind===1&&o(e.value,r.value)}function w(o){return o?.injector||l(w),g(v(f({},o),{loader:void 0,stream:e=>{let r,c=()=>r.unsubscribe();e.abortSignal.addEventListener("abort",c);let u=a({value:void 0}),n,i=new Promise(s=>n=s);function t(s){u.set(s),n?.(u),n=void 0}return r=o.loader(e).subscribe({next:s=>t({value:s}),error:s=>t({error:s}),complete:()=>{n&&t({error:new Error("Resource completed before producing a value")}),e.abortSignal.removeEventListener("abort",c)}}),i}}))}export{p as a,w as b};
@@ -1,2 +1,2 @@
1
- import{a as y,x as w}from"./chunk-SL6SRYFT.js";import{h as B}from"./chunk-S5EF63OY.js";import{pa as $}from"./chunk-7L2WUS2V.js";import{Ab as S,Ac as A,Bb as m,Cb as O,Db as o,Eb as i,F as C,Fb as I,Jb as b,Rb as p,Ua as r,Vb as h,Wb as c,Z as T,ea as E,fa as L,gb as M,ic as s,jc as g,lb as f,nc as D,oc as N,pc as k,ub as P,va as d,vb as R,wb as G,yc as v,zb as x}from"./chunk-L72ALLHJ.js";import"./chunk-7CGTOI24.js";function U(a,e){if(a&1&&(o(0,"li"),s(1),i()),a&2){let t=e.$implicit;r(),g(t)}}function X(a,e){if(a&1&&(o(0,"tr")(1,"td",10)(2,"code")(3,"ol",11),m(4,U,2,1,"li",null,S),i()()()()),a&2){let t=c().$implicit,n=c();r(),R("grid-column","1 / -1")("height","auto"),r(3),O(n.breakIntoLines(t.Exception))}}function F(a,e){if(a&1){let t=b();o(0,"tr",7),h("click",function(){let _=E(t).$index,l=c();return L(l.toggleRow(_))}),o(1,"td"),s(2),v(3,"date"),i(),o(4,"td",8),s(5),i(),o(6,"td"),s(7),i(),o(8,"td")(9,"button",9)(10,"spk-icon"),s(11,"caret-down"),i()()()(),f(12,X,6,4,"tr")}if(a&2){let t=e.$implicit,n=e.$index,_=c();r(2),g(A(3,6,t.Timestamp,"MMM dd. hh:mm")),r(3),g(t.BackupID>=0?t.BackupID:"-"),r(2),g(t.Message),r(2),G("rotated-icon",n===_.openRowIndex()),r(3),x(n===_.openRowIndex()?12:-1)}}var z=["BackupID","Timestamp","Message","actions"],u=class a{#e=T(B);displayedColumns=d(z);logsLoading=d(!0);openRowIndex=d(null);logs=d([]);ngOnInit(){this.init()}init(){this.#e.getApiV1LogdataLog().pipe(C(()=>this.logsLoading.set(!1))).subscribe({next:e=>{this.logs.set(e)}})}toggleRow(e){this.openRowIndex.set(e===this.openRowIndex()?null:e)}breakIntoLines(e){return e?e.split(`
2
- `):[]}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=M({type:a,selectors:[["app-logs-stored"]],decls:13,vars:2,consts:()=>{let e;e=$localize`Timestamp`;let t;t=$localize`Backup ID`;let n;n=$localize`Message`;let _;return _=$localize`No data available`,[e,t,n,_,[3,"dataChange","data","loading"],["table-header",""],["table-no-rows",""],[3,"click"],[1,"id"],["spk-button","","type","button",1,"outlined","small"],[2,"white-space","pre-wrap"],[1,"line-numbers-ol"]]},template:function(t,n){t&1&&(o(0,"spk-table",4),k("dataChange",function(l){return N(n.logs,l)||(n.logs=l),l}),o(1,"tr",5)(2,"th"),p(3,0),i(),o(4,"th"),p(5,1),i(),o(6,"th"),p(7,2),i(),I(8,"th"),i(),m(9,F,13,9,null,null,S),o(11,"div",6),p(12,3),i()()),t&2&&(D("data",n.logs),P("loading",n.logsLoading()),r(9),O(n.logs()))},dependencies:[w,$,y],styles:["[_nghost-%COMP%]{display:block}h3[_ngcontent-%COMP%]{font:var(--title-30);margin:0 0 1.25rem}spk-table[_ngcontent-%COMP%]{--table-columns: auto auto 1fr auto}spk-table[_ngcontent-%COMP%] td.id[_ngcontent-%COMP%]{justify-content:center}spk-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:has(code){padding:1rem .75rem;overflow:hidden}spk-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:has(code) code[_ngcontent-%COMP%]{background-color:var(--grey-800);color:var(--grey-100);padding:2.5rem 2.5rem 2.5rem 1.5rem;border-radius:var(--shape-3);overflow:auto;white-space:pre}"],changeDetection:0})};export{u as default};
1
+ import{a as w,x as y}from"./chunk-AL5KGNEF.js";import{h as B}from"./chunk-FRSQ5NDX.js";import{pa as v}from"./chunk-M3WT5B3C.js";import{Ab as m,Bb as S,Bc as $,Cb as O,Db as o,Eb as i,F as C,Fb as x,Jb as I,Rb as p,Ua as r,Vb as h,Wb as c,Z as T,ea as E,fa as L,gb as M,jc as s,kc as g,lb as f,oc as D,pc as N,qc as k,ub as P,va as d,vb as R,wb as G,zb as b,zc as A}from"./chunk-AHUC7M75.js";import"./chunk-7CGTOI24.js";function U(a,e){if(a&1&&(o(0,"li"),s(1),i()),a&2){let t=e.$implicit;r(),g(t)}}function X(a,e){if(a&1&&(o(0,"tr")(1,"td",10)(2,"code")(3,"ol",11),S(4,U,2,1,"li",null,m),i()()()()),a&2){let t=c().$implicit,n=c();r(),R("grid-column","1 / -1")("height","auto"),r(3),O(n.breakIntoLines(t.Exception))}}function F(a,e){if(a&1){let t=I();o(0,"tr",7),h("click",function(){let _=E(t).$index,l=c();return L(l.toggleRow(_))}),o(1,"td"),s(2),A(3,"date"),i(),o(4,"td",8),s(5),i(),o(6,"td"),s(7),i(),o(8,"td")(9,"button",9)(10,"spk-icon"),s(11,"caret-down"),i()()()(),f(12,X,6,4,"tr")}if(a&2){let t=e.$implicit,n=e.$index,_=c();r(2),g($(3,6,t.Timestamp,"MMM dd. hh:mm")),r(3),g(t.BackupID>=0?t.BackupID:"-"),r(2),g(t.Message),r(2),G("rotated-icon",n===_.openRowIndex()),r(3),b(n===_.openRowIndex()?12:-1)}}var z=["BackupID","Timestamp","Message","actions"],u=class a{#e=T(B);displayedColumns=d(z);logsLoading=d(!0);openRowIndex=d(null);logs=d([]);ngOnInit(){this.init()}init(){this.#e.getApiV1LogdataLog().pipe(C(()=>this.logsLoading.set(!1))).subscribe({next:e=>{this.logs.set(e)}})}toggleRow(e){this.openRowIndex.set(e===this.openRowIndex()?null:e)}breakIntoLines(e){return e?e.split(`
2
+ `):[]}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=M({type:a,selectors:[["app-logs-stored"]],decls:13,vars:2,consts:()=>{let e;e=$localize`Timestamp`;let t;t=$localize`Backup ID`;let n;n=$localize`Message`;let _;return _=$localize`No data available`,[e,t,n,_,[3,"dataChange","data","loading"],["table-header",""],["table-no-rows",""],[3,"click"],[1,"id"],["spk-button","","type","button",1,"outlined","small"],[2,"white-space","pre-wrap"],[1,"line-numbers-ol"]]},template:function(t,n){t&1&&(o(0,"spk-table",4),k("dataChange",function(l){return N(n.logs,l)||(n.logs=l),l}),o(1,"tr",5)(2,"th"),p(3,0),i(),o(4,"th"),p(5,1),i(),o(6,"th"),p(7,2),i(),x(8,"th"),i(),S(9,F,13,9,null,null,m),o(11,"div",6),p(12,3),i()()),t&2&&(D("data",n.logs),P("loading",n.logsLoading()),r(9),O(n.logs()))},dependencies:[y,v,w],styles:["[_nghost-%COMP%]{display:block}h3[_ngcontent-%COMP%]{font:var(--title-30);margin:0 0 1.25rem}spk-table[_ngcontent-%COMP%]{--table-columns: auto auto 1fr auto}spk-table[_ngcontent-%COMP%] td.id[_ngcontent-%COMP%]{justify-content:center}spk-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:has(code){padding:1rem .75rem;overflow:hidden}spk-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:has(code) code[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--base-8),#000 70%);color:#fff;padding:2.5rem 2.5rem 2.5rem 1.5rem;border-radius:var(--shape-3);overflow:auto;white-space:pre}"],changeDetection:0})};export{u as default};
@@ -0,0 +1 @@
1
+ import{b as a,c as b,d as c}from"./chunk-IQFSWP4W.js";import"./chunk-KHGD372Q.js";import"./chunk-LDJVMU7P.js";import"./chunk-LJDOQTEF.js";import"./chunk-YKOEKIFQ.js";import"./chunk-NF3MS2YP.js";import"./chunk-XR4SRVOQ.js";import"./chunk-WZRSQ7XL.js";import"./chunk-3AIKVVWP.js";import"./chunk-RHW5QVAY.js";import"./chunk-5ENRUF35.js";import"./chunk-5LKXKKAK.js";import"./chunk-HFNFJ7G2.js";import"./chunk-AL5KGNEF.js";import"./chunk-FRSQ5NDX.js";import"./chunk-M3WT5B3C.js";import"./chunk-AHUC7M75.js";import"./chunk-7CGTOI24.js";export{a as createDestinationForm,b as createDestinationFormGroup,c as default};
@@ -0,0 +1 @@
1
+ import{a as h}from"./chunk-XR4SRVOQ.js";import{d as k,r as C}from"./chunk-5ENRUF35.js";import{h as b}from"./chunk-FRSQ5NDX.js";import{T as P,Z as v,r as D,va as F}from"./chunk-AHUC7M75.js";import{a}from"./chunk-7CGTOI24.js";var d=class t{#t=v(b);s3Providers=h(this.getS3Config("Providers"));s3Regions=h(this.getS3Config("Regions"));s3RegionHosts=h(this.getS3Config("RegionHosts"));s3StorageClasses=h(this.getS3Config("StorageClasses"));storjSatellites=h(this.getStorjConfig("Satellites"));storjAuthenticationMethods=h(this.getStorjConfig("AuthenticationMethods"));openstackProviders=h(this.getOpenstackConfig("Providers"));openstackVersions=h(this.getOpenstackConfig("Versions"));gcsLocations=h(this.getGcsConfig("Locations"));gcsStorageClasses=h(this.getGcsConfig("StorageClasses"));getS3Config(e){return this.#t.postApiV1WebmoduleByModulekey({modulekey:"s3-getconfig",requestBody:{"s3-config":e}}).pipe(D(r=>this.#e(r)))}createS3IamUser(e,r){return this.#t.postApiV1WebmoduleByModulekey({modulekey:"s3-iamconfig",requestBody:{"s3-operation":"CanCreateUser","s3-username":e,"s3-password":r}})}createS3PolicyIAM(e){return this.#t.postApiV1WebmoduleByModulekey({modulekey:"s3-iamconfig",requestBody:{"s3-operation":"GetPolicyDoc",path:e}})}getStorjConfig(e){return this.#t.postApiV1WebmoduleByModulekey({modulekey:"storj-getconfig",requestBody:{"storj-config":e}}).pipe(D(r=>this.#e(r)))}getOpenstackConfig(e){return this.#t.postApiV1WebmoduleByModulekey({modulekey:"openstack-getconfig",requestBody:{"openstack-config":e}}).pipe(D(r=>this.#e(r)))}getGcsConfig(e){return this.#t.postApiV1WebmoduleByModulekey({modulekey:"gcs-getconfig",requestBody:{"gcs-config":e}}).pipe(D(r=>this.#e(r)))}#e(e){return(e.Result&&typeof e.Result=="object"&&Object.entries(e.Result).map(([r,n])=>({key:r,value:n})))??[]}static \u0275fac=function(r){return new(r||t)};static \u0275prov=P({token:t,factory:t.\u0275fac,providedIn:"root"})};var o=new C,m={type:"error",message:$localize`Using double leading slashes is most likely wrong, and will result in objects being created with a leading slash in the name.`},f=[{key:"file",displayName:"File system",description:"Store backups on your local file system.",customFields:{path:{type:"FolderTree",name:"path",doubleSlash:m,shortDescription:"File path",longDescription:"The path to store the backup",formElement:t=>o.control(t??"")}},mapper:{to:t=>{let e=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${t.custom.path}${e}`},from:(t,e,r)=>{let s=r.startsWith("file:///")?r.split("file:///")[1]:r.split("file://")[1],p=s.startsWith("%"),g=s.slice(1).startsWith(":\\")||p?s:"/"+s;return a({destinationType:t,custom:{path:g}},i(t,e))}}},{key:"ssh",displayName:"SSH",description:"Store backups in SSH.",customFields:{server:{type:"String",name:"server",shortDescription:"Server",longDescription:"The server to connect to",formElement:t=>o.control(t??"")},port:{type:"Integer",name:"port",shortDescription:"Port",longDescription:"The port to connect to",formElement:t=>o.control(t??"",[k.required,k.max(65535)])},path:{type:"Path",name:"path",shortDescription:"Folder path",longDescription:"Folder path",doubleSlash:{type:"warning",message:$localize`Using double leading slashes makes the path absolute, pointing to the root of the filesystem.`},formElement:t=>o.control(t??"")}},dynamicFields:[{type:"String",name:"auth-username",shortDescription:"Username for authentication",longDescription:"Username for authentication with the server",formElement:t=>o.control(t??"")},{type:"Password",name:"auth-password",shortDescription:"Password for authentication",longDescription:"Password for authentication with the server. If a private key is used, this value is used as the password to decrypt the private key.",formElement:t=>o.control(t??"")}],advancedFields:[{type:"FileTree",name:"ssh-keyfile",accepts:".key,",shortDescription:"Private key path",longDescription:"This is a path to a private key file locally on the machine"},{type:"FreeText",name:"ssh-key",shortDescription:"SSH private key (PEM format)",longDescription:"Enter a PEM formatted SSH private key. OpenSSL, OpenSSH, and ssh.com formats are supported."}],mapper:{to:t=>{let e=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]),{port:r,server:n,path:s}=t.custom;return`${t.destinationType}://${n+y(r)+l(s)+e}`},from:(t,e,r)=>a({destinationType:t,custom:{server:e.hostname,port:e.port,path:e.pathname}},i(t,e))}},{key:"s3",displayName:"S3 Compatible",description:"Store backups in any S3 compatible bucket.",customFields:{bucket:{type:"String",name:"bucket",shortDescription:"Bucket name",longDescription:"Bucket name",formElement:t=>o.control(t??"")},path:{type:"Path",name:"path",doubleSlash:m,shortDescription:"Folder path",longDescription:"Folder path",formElement:t=>o.control(t??"")}},dynamicFields:[{name:"s3-server-name",shortDescription:"Server",type:"NonValidatedSelectableString",loadOptions:t=>t.get(d).s3Providers},"use-ssl","auth-username","auth-password"],advancedFields:[{name:"s3-client",type:"Enumeration",options:["aws","minio"]},{name:"s3-storage-class",type:"NonValidatedSelectableString",loadOptions:t=>t.get(d).s3StorageClasses}],mapper:{to:t=>{let{bucket:e,path:r}=t.custom,n=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${e+l(r)+n}`},from:(t,e,r)=>a({destinationType:t,custom:{path:e.pathname,bucket:e.hostname}},i(t,e))}},{key:"gcs",displayName:"Google Cloud Storage",description:"Store backups in Google Cloud Storage.",oauthField:"authid",customFields:{path:{type:"Path",name:"path",doubleSlash:m,shortDescription:"Bucket name",longDescription:"Bucket name",formElement:t=>o.control(t??"")}},dynamicFields:[{name:"gcs-location",type:"NonValidatedSelectableString",loadOptions:t=>t.get(d).gcsLocations},{name:"gcs-storage-class",type:"NonValidatedSelectableString",loadOptions:t=>t.get(d).gcsStorageClasses},"authid"],mapper:{to:t=>{let e=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${t.custom.path}${e}`},from:(t,e,r)=>a({destinationType:t,custom:{path:e.hostname+e.pathname}},i(t,e))}},{key:"googledrive",displayName:"Google Drive",description:"Store backups in Google Drive.",oauthField:"authid",customFields:{path:{type:"Path",name:"path",doubleSlash:m,shortDescription:"Folder path",longDescription:"Folder path",formElement:t=>o.control(t??"")}},dynamicFields:[{name:"authid",type:"Password"}],mapper:{to:t=>{let e=t.custom.path,r=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${e}${r}`},from:(t,e,r)=>a({destinationType:t,custom:{path:e.hostname+e.pathname}},i(t,e))}},{key:"pcloud",displayName:"pCloud",description:"Store backups in pCloud.",oauthField:"authid",customFields:{server:{type:"Enumeration",name:"server",loadOptions:()=>F([{key:"pCloud Global",value:"api.pcloud.com"},{key:"pCloud Europe",value:"eapi.pcloud.com"}]),shortDescription:"Server",longDescription:"Server",formElement:t=>o.control(t??"")},path:{type:"Path",name:"path",doubleSlash:m,shortDescription:"Folder path",longDescription:"Folder path",formElement:t=>o.control(t??"")}},dynamicFields:["authid"],mapper:{to:t=>{let e=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]),{server:r,path:n}=t.custom;return`${t.destinationType}://${r+l(n)+e}`},from:(t,e,r)=>{let n=e.pathname.replace(/^\//,"");return a({destinationType:t,custom:{server:e.hostname,path:n}},i(t,e))}}},{key:"azure",displayName:"Azure Blob Storage",description:"Store backups in Azure Blob Storage.",customFields:{path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Container name",longDescription:"Container name",formElement:t=>o.control(t??"")}},dynamicFields:[{name:"auth-username",shortDescription:"Account name"},{name:"auth-password",shortDescription:"Access key"}],mapper:{to:t=>{let e=t.custom.path,r=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${e}${r}`},from:(t,e,r)=>a({destinationType:t,custom:{path:e.hostname+e.pathname}},i(t,e))}},{key:"onedrivev2",displayName:"OneDrive",description:"Store backups in OneDrive.",oauthField:"authid",customFields:{path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on server",longDescription:"Path on server",formElement:t=>o.control(t??"")}},dynamicFields:["authid"],mapper:{to:t=>{let e=t.custom.path,r=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${e}${r}`},from:(t,e,r)=>a({destinationType:t,custom:{path:e.hostname+e.pathname}},i(t,e))}},{key:"od4b",displayName:"OneDrive Business",description:"Store backups in OneDrive Business.",customFields:{server:{type:"String",name:"server",shortDescription:"Server",longDescription:"Server",formElement:t=>o.control(t??"")},port:{type:"Integer",name:"port",shortDescription:"Port",longDescription:"Port",formElement:t=>o.control(t??"")},path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on server",longDescription:"Path on server",formElement:t=>o.control(t??"")}},dynamicFields:[{name:"auth-username",shortDescription:"Account name"},{name:"auth-password",shortDescription:"Access key"}],mapper:{to:t=>{let e=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]),{port:r,server:n,path:s}=t.custom;return`${t.destinationType}://${n+y(r)+l(s)+e}`},from:(t,e,r)=>a({destinationType:t,custom:{server:e.hostname,port:e.port,path:e.pathname}},i(t,e))}},{key:"mssp",displayName:"Microsoft SharePoint",description:"Store backups in Microsoft SharePoint.",customFields:{server:{type:"String",name:"server",shortDescription:"Server",longDescription:"Server",formElement:t=>o.control(t??"")},port:{type:"Integer",name:"port",shortDescription:"Port",longDescription:"Port",formElement:t=>o.control(t??"")},path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on server",longDescription:"Path on server",formElement:t=>o.control(t??"")}},dynamicFields:[{name:"auth-username",shortDescription:"Account name"},{name:"auth-password",shortDescription:"Access key"}],mapper:{to:t=>{let e=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]),{port:r,server:n,path:s}=t.custom;return`${t.destinationType}://${n+y(r)+l(s)+e}`},from:(t,e,r)=>a({destinationType:t,custom:{server:e.hostname,port:e.port,path:e.pathname}},i(t,e))}},{key:"sharepoint",displayName:"Microsoft SharePoint v2",description:"Store backups in Microsoft SharePoint.",oauthField:"authid",customFields:{path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on server",longDescription:"Path on server",formElement:t=>o.control(t??"")}},dynamicFields:["authid"],mapper:{to:t=>{let e=t.custom.path,r=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${e}${r}`},from:(t,e,r)=>a({destinationType:t,custom:{path:e.hostname+e.pathname}},i(t,e))}},{key:"dropbox",displayName:"Dropbox",description:"Store backups in Dropbox.",oauthField:"authid",customFields:{path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on server",longDescription:"Path on server",formElement:t=>o.control(t??"")}},dynamicFields:["authid"],mapper:{to:t=>{let e=t.custom.path,r=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${e}${r}`},from:(t,e,r)=>a({destinationType:t,custom:{path:e.hostname+e.pathname}},i(t,e))}},{key:"box",displayName:"Box.com",description:"Store backups in Box.com.",oauthField:"authid",customFields:{path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on server",longDescription:"Path on server",formElement:t=>o.control(t??"")}},dynamicFields:["authid"],mapper:{to:t=>{let e=t.custom.path,r=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${e}${r}`},from:(t,e,r)=>a({destinationType:t,custom:{path:e.hostname+e.pathname}},i(t,e))}},{key:"jottacloud",displayName:"Jottacloud",description:"Store backups in Jottacloud.",oauthField:"authid",customFields:{path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on server",longDescription:"Path on server",formElement:t=>o.control(t??"")}},dynamicFields:["authid"],mapper:{to:t=>{let e=t.custom.path,r=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${e}${r}`},from:(t,e,r)=>a({destinationType:t,custom:{path:e.hostname+e.pathname}},i(t,e))}},{key:"b2",displayName:"B2 Cloud Storage",description:"Store backups in B2 Cloud Storage.",customFields:{bucket:{type:"String",name:"bucket",shortDescription:"Bucket name",longDescription:"Bucket name",formElement:t=>o.control(t??"")},path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path in the bucket",longDescription:"Path in the bucket",formElement:t=>o.control(t??"")}},dynamicFields:[{name:"auth-username",shortDescription:"Application ID"},{name:"auth-password",shortDescription:"Application Key"}],mapper:{to:t=>{let{bucket:e,path:r}=t.custom,n=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${e+l(r)+n}`},from:(t,e,r)=>a({destinationType:t,custom:{bucket:e.hostname,path:decodeURIComponent(e.pathname)}},i(t,e))}},{key:"e2",displayName:"IDrive e2",description:"Store backups in IDrive e2.",customFields:{bucket:{type:"String",name:"bucket",shortDescription:"Bucket name",longDescription:"Bucket name",formElement:t=>o.control(t??"")},path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path in the bucket",longDescription:"Path in the bucket",formElement:t=>o.control(t??"")}},dynamicFields:[{name:"auth-username",shortDescription:"Access ID"},{name:"auth-password",shortDescription:"Access Secret"}],mapper:{to:t=>{let{bucket:e,path:r}=t.custom,n=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${e+l(r)+n}`},from:(t,e,r)=>a({destinationType:t,custom:{bucket:e.hostname,path:e.pathname}},i(t,e))}},{key:"mega",displayName:"Mega.nz",description:"Store backups in Mega.nz.",customFields:{path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on server",longDescription:"Path on server",formElement:t=>o.control(t??"")}},dynamicFields:[{name:"auth-username",shortDescription:"Username"},{name:"auth-password",shortDescription:"Password"}],mapper:{to:t=>{let e=t.custom.path,r=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${e}${r}`},from:(t,e,r)=>a({destinationType:t,custom:{path:e.hostname+e.pathname}},i(t,e))}},{key:"msgroup",displayName:"Microsoft Office 365 Group",description:"Store backups in Microsoft Office 365 Group.",oauthField:"authid",customFields:{groupEmail:{type:"Email",name:"groupEmail",shortDescription:"Group email",longDescription:"Group email",formElement:t=>o.control(t??"",[k.email])},path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on server",longDescription:"Path on server",formElement:t=>o.control(t??"")}},dynamicFields:["authid"],mapper:{to:t=>{let e=t.custom.path,r=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${e}${r}`},from:(t,e,r)=>a({destinationType:t,custom:{path:e.hostname+e.pathname}},i(t,e))}},{key:"cloudfiles",displayName:"Rackspace CloudFiles",description:"Store backups in Rackspace CloudFiles.",customFields:{server:{type:"String",name:"server",shortDescription:"Server",longDescription:"Server",formElement:t=>o.control(t??"")},port:{type:"Integer",name:"port",shortDescription:"Port",longDescription:"Port",formElement:t=>o.control(t??"")},path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on server",longDescription:"Path on server",formElement:t=>o.control(t??"")}},dynamicFields:[{name:"auth-username",shortDescription:"Username"},{name:"auth-password",shortDescription:"Password"}],mapper:{to:t=>{let e=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]),{port:r,server:n,path:s}=t.custom;return`${t.destinationType}://${n+y(r)+l(s)+e}`},from:(t,e,r)=>a({destinationType:t,custom:{server:e.hostname,port:e.port,path:e.pathname}},i(t,e))}},{key:"rclone",displayName:"Rclone",description:"Store backups in Rclone.",dynamicFields:[{name:"rclone-local-repository",shortDescription:"Local repository",defaultValue:""},{name:"rclone-remote-repository",shortDescription:"Remote repository",defaultValue:""},{name:"rclone-remote-path",shortDescription:"Path on remote repository",defaultValue:""}],mapper:{to:t=>{let e=t.dynamic["rclone-remote-repository"],r=t.dynamic["rclone-remote-path"],n=Object.entries(t.dynamic).filter(([p])=>!["rclone-remote-repository","rclone-remote-path"].includes(p)),s=c([...Object.entries(t.advanced),...n]);return`${t.destinationType}://${e}/${r+s}`},from:(t,e,r)=>{let{advanced:n,dynamic:s}=i(t,e);return a({destinationType:t,dynamic:a({"rclone-remote-repository":e.hostname,"rclone-remote-path":e.pathname},s)},n)}}},{key:"openstack",displayName:"OpenStack Object Storage",description:"Store backups in OpenStack Object Storage.",customFields:{bucket:{type:"String",name:"bucket",shortDescription:"Bucket",longDescription:"Bucket",formElement:t=>o.control(t??"")}},dynamicFields:[{name:"openstack-authuri",shortDescription:"Auth URI",type:"Enumeration",loadOptions:t=>t.get(d).openstackProviders},{name:"openstack-version",shortDescription:"Version",type:"Enumeration",loadOptions:t=>t.get(d).openstackVersions},{name:"openstack-domain-name",shortDescription:"Domain name"},{name:"openstack-tenant-name",shortDescription:"Tenant name"},{name:"openstack-region",shortDescription:"Region"}],mapper:{to:t=>{let e=c([...Object.entries(t.advanced),...Object.entries(t.dynamic)]),{bucket:r}=t.custom;return`${t.destinationType}://${r+e}`},from:(t,e,r)=>a({destinationType:t,custom:{path:e.pathname,bucket:e.hostname}},i(t,e))}},{key:"webdav",displayName:"WebDAV",description:"Store backups in WebDAV.",customFields:{server:{type:"String",name:"server",shortDescription:"Server",longDescription:"Server",formElement:t=>o.control(t??"")},port:{type:"Integer",name:"port",shortDescription:"Port",longDescription:"Port",formElement:t=>o.control(t??"")},path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on server",longDescription:"Path on server",formElement:t=>o.control(t??"")}},dynamicFields:[{name:"use-ssl",shortDescription:"Use SSL"},{name:"auth-username",shortDescription:"Username"},{name:"auth-password",shortDescription:"Password"}],mapper:{to:t=>{let{port:e,server:r,path:n}=t.custom,s=t.dynamic["use-ssl"],p=c([...Object.entries(t.advanced),...Object.entries(t.dynamic).filter(([u])=>u!=="use-ssl")]);return`${t.destinationType}${s?"s":""}://${r+y(e)+l(n)+p}`},from:(t,e,r)=>a({destinationType:t,custom:{server:e.hostname,port:e.port,path:e.pathname}},i(t,e))}},{key:"aftp",displayName:"FTP",description:"Store backups in FTP.",customFields:{server:{type:"String",name:"server",shortDescription:"Server",longDescription:"Server",formElement:t=>o.control(t??"")},port:{type:"Integer",name:"port",shortDescription:"Port",longDescription:"Port",formElement:t=>o.control(t??"")},path:{type:"String",name:"path",shortDescription:"Path on server",longDescription:"Path on server",doubleSlash:{type:"warning",message:$localize`Using double leading slashes makes the path absolute, pointing to the root of the filesystem.`},formElement:t=>o.control(t??"")}},dynamicFields:[{name:"auth-username",shortDescription:"Username"},{name:"auth-password",shortDescription:"Password"}],mapper:{to:t=>{let{port:e,server:r,path:n}=t.custom,s=c([...Object.entries(t.advanced),...Object.entries(t.dynamic).filter(([p])=>p!=="use-ssl")]);return`${t.destinationType}://${r+y(e)+l(n)+s}`},from:(t,e,r)=>a({destinationType:t,custom:{server:e.hostname,port:e.port,path:e.pathname}},i(t,e))}},{key:"sia",displayName:"Sia Decentrilized Cloud",description:"Store backups in Sia Decentrilized Cloud.",customFields:{server:{type:"String",name:"server",shortDescription:"Server",longDescription:"Server",formElement:t=>o.control(t??"")}},dynamicFields:["sia-targetpath","sia-password","sia-redundancy"],mapper:{to:t=>{let e=t.custom.server,r=t.dynamic["sia-targetpath"],n=c([...Object.entries(t.advanced),...Object.entries(t.dynamic).filter(([s])=>s!=="sia-targetpath")]);return`${t.destinationType}://${e+l(r)+n}`},from:(t,e,r)=>a({destinationType:t,custom:{path:e.pathname}},i(t,e))}},{key:"cos",displayName:"Tencent COS",description:"Store backups in Tencent COS.",customFields:{path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on server",longDescription:"Path on server",formElement:t=>o.control(t??"")}},dynamicFields:[{name:"cos-bucket",shortDescription:"Bucket",order:1},{name:"cos-region",shortDescription:"Region",order:2},{name:"cos-app-id",shortDescription:"COS App Id",order:3},{name:"cos-secret-id",shortDescription:"COS Secret Id",order:4},{name:"cos-secret-key",shortDescription:"COS Secret Key",order:5}],mapper:{to:t=>{let e=t.custom.path,r=c([...Object.entries(t.advanced),...Object.entries(t.dynamic).filter(([n])=>n!=="cos-targetpath")]);return`${t.destinationType}://${e+r}`},from:(t,e,r)=>a({destinationType:t,custom:{path:e.pathname}},i(t,e))}},{key:"tahoe",displayName:"Tahoe LAFS",description:"Store backups in Tahoe LAFS.",customFields:{server:{type:"String",name:"server",shortDescription:"Server",longDescription:"Server",formElement:t=>o.control(t??"")},port:{type:"Integer",name:"port",shortDescription:"Port",longDescription:"Port",formElement:t=>o.control(t??"")},path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on server",longDescription:"Path on server",formElement:t=>o.control(t??"")}},dynamicFields:[{name:"use-ssl",shortDescription:"Use SSL"}],mapper:{to:t=>{let{port:e,server:r,path:n,username:s,password:p}=t.custom,u={"auth-username":s,"auth-password":p},g=t.dynamic["use-ssl"],S=c([...Object.entries(t.advanced),...Object.entries(t.dynamic).filter(([O])=>O!=="use-ssl"),...Object.entries(u)]);return`${t.destinationType}${g?"s":""}://${r+y(e)+l(n)+S}`},from:(t,e,r)=>a({destinationType:t,custom:{server:e.hostname,port:e.port,path:e.pathname}},i(t,e))}},{key:"cifs",displayName:"CIFS",description:"Store backups in CIFS.",customFields:{server:{type:"String",name:"server",shortDescription:"Server",longDescription:"Server",formElement:t=>o.control(t??"")},share:{type:"String",name:"share",shortDescription:"Share Name",longDescription:"Share Name",formElement:t=>o.control(t??"")},path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on server",longDescription:"Path on server",formElement:t=>o.control(t??"")}},dynamicFields:["transport","auth-username","auth-password","auth-domain"],mapper:{to:t=>{let{share:e,server:r,path:n,username:s,password:p}=t.custom,u={"auth-username":s,"auth-password":p},g=new Map([...Object.entries(u),...Object.entries(t.advanced),...Object.entries(t.dynamic)]),S=c(Array.from(g));return`${t.destinationType}://${r+l(e)+l(n)+S}`},from:(t,e,r)=>{let n=e.pathname.split("/")[1],s=e.pathname.split("/").slice(2).join("/");return a({destinationType:t,custom:{server:e.hostname,share:n,path:s}},i(t,e))}}},{key:"filen",displayName:"Filen.io",description:"Store backups in Filen.io.",customFields:{path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on Filen",longDescription:"Path on Filen",formElement:t=>o.control(t??"")}},dynamicFields:["auth-username","auth-password"],mapper:{to:t=>{let{path:e,username:r,password:n}=t.custom,s={"auth-username":r,"auth-password":n},p=new Map([...Object.entries(s),...Object.entries(t.advanced),...Object.entries(t.dynamic)]),u=c(Array.from(p));return`${t.destinationType}://${e+u}`},from:(t,e,r)=>{let n=e.hostname??"";return e.pathname&&n!==""&&e.pathname[0]!="/"&&(n+="/"),n+=e.pathname,a({destinationType:t,custom:{path:n}},i(t,e))}}},{key:"filejump",displayName:"Filejump",description:"Store backups in Filejump.",customFields:{path:{type:"String",name:"path",doubleSlash:m,shortDescription:"Path on Filejump",longDescription:"Path on Filejump",formElement:t=>o.control(t??"")}},dynamicFields:[{type:"Password",name:"api-token",shortDescription:"API Token",longDescription:"Filejump API Token",formElement:t=>o.control(t??"")}],mapper:{to:t=>{let{path:e,username:r,password:n,apitoken:s}=t.custom,p=(s||"").trim()===""?{"auth-username":r,"auth-password":n}:{"api-token":s},u=new Map([...Object.entries(p),...Object.entries(t.advanced),...Object.entries(t.dynamic)]),g=c(Array.from(u));return`${t.destinationType}://${e+g}`},from:(t,e,r)=>{let n=e.hostname??"";return e.pathname&&n!==""&&e.pathname[0]!="/"&&(n+="/"),n+=e.pathname,a({destinationType:t,custom:{path:n}},i(t,e))}}},{key:"storj",customKey:"storjAccessGrant",displayName:"Storj Access Grant",description:"Store backups in Storj Access Grant.",dynamicFields:[{name:"storj-shared-access",shortDescription:"Access Grant"},{name:"storj-bucket",shortDescription:"Bucket"},{name:"storj-folder",shortDescription:"Path on server",doubleSlash:m}],mapper:{to:t=>`storj://storj.io/config?storj-auth-method=Access%20grant&storj-satellite=us1.storj.io%3A7777&storj-api-key&storj-secret&${c([...Object.entries(t.advanced),...Object.entries(t.dynamic)],!0)}`,from:(t,e,r)=>a({destinationType:t},i(t,e))}},{key:"storj",customKey:"storjApiKey",displayName:"Storj API Key",description:"Store backups in Storj API Key.",dynamicFields:[{name:"storj-satellite",shortDescription:"Satellite",type:"Enumeration",loadOptions:t=>t.get(d).storjSatellites},{name:"storj-api-key",shortDescription:"API Key"},{name:"storj-secret",shortDescription:"Secret"},{name:"storj-bucket",shortDescription:"Bucket"},{name:"storj-folder",shortDescription:"Path on server",doubleSlash:m}],mapper:{to:t=>`storj://storj.io/config?storj-auth-method=API%20key&${c([...Object.entries(t.advanced),...Object.entries(t.dynamic)],!0)}`,from:(t,e,r)=>a({destinationType:t},i(t,e))}}],W={".amazonaws.com":"Amazon S3",".mycloudyplace.com":"MyCloudyPlace S3",".impossibleapi.net":"Impossible Cloud S3",".scw.cloud":"Scaleway S3",".hosteurope.de":"Hosteurope S3",".dunkel.de":"Dunkel S3",".dreamhost.com":"DreamHost S3",".dincloud.com":"dinCloud S3",".polisystems.ch":"Poli Systems S3",".softlayer.net":"IBM COS (S3)",".storadera.com":"Storadera S3",".wasabisys.com":"Wasabi S3",".infomaniak.com":"Infomaniak S3",".infomaniak.cloud":"Infomaniak S3",".sakurastorage.jp":"\u3055\u304F\u3089\u306E\u30AF\u30E9\u30A6\u30C9 S3",".lyvecloud.seagate.com":"Seagate Lyve S3",".digitaloceanspaces.com":"DigitalOcean S3",".backblazeb2.com":"Backblaze B2 S3",".cloudian.com":"Cloudian S3",".min.io":"MinIO S3",".linodeobjects.com":"Linode S3",".bunnycdn.com":"BunnyCDN S3",".azure.com":"Microsoft Azure S3",".googleapis.com":"Google Cloud Storage S3",".ibm.com":"IBM Cloud S3",".oracle.com":"Oracle Cloud S3",".cloudflare.com":"Cloudflare S3",".alibaba.com":"Alibaba Cloud S3",".huawei.com":"Huawei Cloud S3",".tencent.com":"Tencent Cloud S3",".baidu.com":"Baidu Cloud S3",".jd.com":"JD Cloud S3",".ucloud.cn":"UCloud S3",".qiniu.com":"Qiniu Cloud S3",".aliyuncs.com":"Aliyun S3",".tcloud.com":"TCloud S3",".tencentcloudapi.com":"Tencent Cloud S3"};function y(t){return t==null||t===""?"":":"+t.toString()}function l(t){return t==null?"":t.startsWith("/")?t:"/"+t}function i(t,e){let r={},n={},s=f.find(p=>p.key===t);return e.searchParams.forEach((p,u)=>{s?.dynamicFields?.some(S=>S===u||S?.name===u)?n[u]=decodeURIComponent(p):r[u]=decodeURIComponent(p)}),{advanced:r,dynamic:n}}function c(t,e=!1){let r=t.map(([s,p])=>`${s}=${p?encodeURIComponent(p.toString()):""}`).join("&");return r?(e?"":"?")+r:""}function q(t){let e=t.destinationType,r=f.find(n=>n.customKey===e||n.key===e);if(!r)throw new Error("Invalid destination type");return r?.mapper.to(t)??""}function H(t){let e=URL.canParse(t),r=t.split("://")[0],n=t.split("://")[1],s="http://"+n;if(n.startsWith("%")&&r==="file")return f.find(p=>p.customKey===r||p.key===r)?.mapper.from(r,new URL("http://localhost"),t);try{let p=new URL(s);return f.find(u=>u.customKey===r||u.key===r)?.mapper.from(r,p,t)}catch(p){console.error("Error while parsing target path",p)}if(!e)throw new Error("Invalid target path");return null}export{q as a,H as b,f as c,W as d};
@@ -1 +1 @@
1
- import{a as ae}from"./chunk-P7O2NK5N.js";import{a as te}from"./chunk-TQHNKGRL.js";import"./chunk-MU24KCIK.js";import"./chunk-TRR5XEEM.js";import{a as Q}from"./chunk-FJVMA6GA.js";import"./chunk-BIZAKOYU.js";import"./chunk-RHW5QVAY.js";import"./chunk-HFIC4JNY.js";import{c as Y,e as Z,h as x,s as ee}from"./chunk-ELMONRIG.js";import"./chunk-BJGA55H2.js";import"./chunk-XP7PWMT2.js";import{b as z,e as q}from"./chunk-C6XTRC7P.js";import"./chunk-MAVZY7BL.js";import{a as H,g as W,l as j}from"./chunk-SL6SRYFT.js";import{h as J}from"./chunk-S5EF63OY.js";import"./chunk-JFNFY6VY.js";import"./chunk-7L2WUS2V.js";import"./chunk-DOP6RFEG.js";import{Db as i,E as g,Eb as a,F as d,Fb as l,N as E,Oc as k,Pb as p,Pc as h,Qb as r,Rb as F,Sb as L,Tb as U,Ua as s,Vb as u,Z as D,gb as y,ic as C,lb as v,nc as w,oc as X,pc as V,r as O,ub as A,va as c,wb as P,yb as G,zb as K}from"./chunk-L72ALLHJ.js";import"./chunk-7CGTOI24.js";function ie(S,t){S&1&&(i(0,"spk-icon",18),C(1,"check"),a())}function ne(S,t){S&1&&(i(0,"spk-icon",18),C(1,"warning"),a())}var m=class S{#a=D(z);#i=D(Q);#e=D(J);#t="";backupId=te(this.#a.params.pipe(O(t=>t.id)));activeBackup=k(()=>{let t=this.#i.backups().find(_=>_.Backup?.ID===this.backupId());return this.#t=t?.Backup?.DBPath??"",t});backupFilePath=c("");lastValidatedPath=c("");isValidatedPath=k(()=>this.lastValidatedPath()===this.backupFilePath());pathHasChanged=k(()=>this.backupFilePath()!==this.#t);backupFilePathEffect=h(()=>{let t=this.backupFilePath();t!==""&&this.#e.postApiV1FilesystemValidate({requestBody:{path:t}}).subscribe({next:()=>this.lastValidatedPath.set(t)})});isRestoring=c(!1);isRepairing=c(!1);isDeleting=c(!1);isSavingDbPath=c(!1);isSavingAndRepairing=c(!1);isMovingDb=c(!1);activeBackupEffect=h(()=>{let t=this.activeBackup();if(!t)return;let _=t.Backup?.DBPath??"";this.backupFilePath.set(_)});repairDatabase(){this.isRepairing.set(!0),this.#e.postApiV1BackupByIdRepair({id:this.backupId()}).pipe(g(1),d(()=>this.isRepairing.set(!1))).subscribe()}deleteDatabase(){this.isDeleting.set(!0),this.#e.postApiV1BackupByIdDeletedb({id:this.backupId()}).pipe(g(1),d(()=>this.isDeleting.set(!1))).subscribe()}restoreDatabase(){this.isRestoring.set(!0),this.#e.postApiV1BackupByIdDeletedb({id:this.backupId()}).pipe(g(1),E(()=>this.#e.postApiV1BackupByIdRepair({id:this.backupId()})),d(()=>this.isRestoring.set(!1))).subscribe()}resetDatabasePath(){this.backupFilePath.set(this.#t)}saveDatabasePath(){this.isSavingDbPath.set(!0),this.#e.postApiV1BackupByIdUpdatedb({id:this.backupId(),requestBody:{path:this.backupFilePath()}}).pipe(d(()=>this.isSavingDbPath.set(!1))).subscribe()}saveAndRepairDatabasePath(){this.isSavingAndRepairing.set(!0),this.#e.postApiV1BackupByIdUpdatedb({id:this.backupId(),requestBody:{path:this.backupFilePath()}}).pipe(E(()=>this.#e.postApiV1BackupByIdRepair({id:this.backupId()})),d(()=>this.isSavingAndRepairing.set(!1)))}moveDatabasePath(){this.isMovingDb.set(!0),this.#e.postApiV1BackupByIdMovedb({id:this.backupId(),requestBody:{path:this.backupFilePath()}}).pipe(d(()=>this.isMovingDb.set(!1))).subscribe()}static \u0275fac=function(_){return new(_||S)};static \u0275cmp=y({type:S,selectors:[["app-database"]],decls:46,vars:18,consts:()=>{let t;t=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let _;_=$localize`Local database for ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let e;e=$localize` Each backup has a local database associated with it, which stores information about the remote backup on the local machine. This makes it faster to perform many operations, and reduces the amount of data that needs to be downloaded for each operation. `;let n;n=$localize`Maintenance`;let T;T=$localize` If the backup and the remote storage is out of sync, Duplicati will require that you perform a repair operation to synchronize the database. If the repair is unsuccessful, you can delete the local database and re-generate. `;let b;b=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SPK_ICON:wrench${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SPK_ICON: Repair `;let f;f=$localize`${"\uFFFD#22\uFFFD"}:START_TAG_SPK_ICON:trash${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SPK_ICON: Delete `;let B;B=$localize`${"\uFFFD#25\uFFFD"}:START_TAG_SPK_ICON:clock-counter-clockwise${"\uFFFD/#25\uFFFD"}:CLOSE_TAG_SPK_ICON: Restore (delete and repair) `;let I;I=$localize`Placement`;let M;M=$localize`${"\uFFFD#36\uFFFD"}:START_TAG_SPK_ICON:backspace${"\uFFFD/#36\uFFFD"}:CLOSE_TAG_SPK_ICON: Reset `;let N;N=$localize`${"\uFFFD#39\uFFFD"}:START_TAG_SPK_ICON:floppy-disk${"\uFFFD/#39\uFFFD"}:CLOSE_TAG_SPK_ICON: Save `;let $;$=$localize`${"\uFFFD#42\uFFFD"}:START_TAG_SPK_ICON:wrench${"\uFFFD/#42\uFFFD"}:CLOSE_TAG_SPK_ICON: Save & Repair `;let R;return R=$localize`${"\uFFFD#45\uFFFD"}:START_TAG_SPK_ICON:flow-arrow${"\uFFFD/#45\uFFFD"}:CLOSE_TAG_SPK_ICON: Move existing database `,[t,_,e,n,T,b,f,B,I,M,N,$,R,[1,"back"],["type","button","spk-button","","routerLink","/",1,"small"],[1,"actions","maintenance"],["spk-button","",3,"click","disabled"],["type","text",3,"ngModelChange","ngModel"],["prefix",""],[1,"actions","placement"]]},template:function(_,e){if(_&1&&(l(0,"app-status-bar"),i(1,"section")(2,"div",13)(3,"button",14),p(4,0),l(5,"spk-icon"),r(),a()(),i(6,"article")(7,"h1"),F(8,1),a(),i(9,"p"),F(10,2),a()(),i(11,"article")(12,"h2"),F(13,3),a(),i(14,"p"),F(15,4),a(),i(16,"div",15)(17,"button",16),u("click",function(){return e.repairDatabase()}),p(18,5),l(19,"spk-icon"),r(),a(),i(20,"button",16),u("click",function(){return e.deleteDatabase()}),p(21,6),l(22,"spk-icon"),r(),a(),i(23,"button",16),u("click",function(){return e.restoreDatabase()}),p(24,7),l(25,"spk-icon"),r(),a()()(),i(26,"article")(27,"h2"),F(28,8),a(),i(29,"spk-form-field")(30,"input",17),V("ngModelChange",function(T){return X(e.backupFilePath,T)||(e.backupFilePath=T),T}),a(),v(31,ie,2,0,"spk-icon",18)(32,ne,2,0,"spk-icon",18),a(),i(33,"div",19)(34,"button",16),u("click",function(){return e.resetDatabasePath()}),p(35,9),l(36,"spk-icon"),r(),a(),i(37,"button",16),u("click",function(){return e.saveDatabasePath()}),p(38,10),l(39,"spk-icon"),r(),a(),i(40,"button",16),u("click",function(){return e.saveAndRepairDatabasePath()}),p(41,11),l(42,"spk-icon"),r(),a(),i(43,"button",16),u("click",function(){return e.moveDatabasePath()}),p(44,12),l(45,"spk-icon"),r(),a()()()()),_&2){let n;s(8),L((n=e.activeBackup())==null||n.Backup==null?null:n.Backup.Name),U(8),s(9),P("loader",e.isRepairing()),A("disabled",!e.isValidatedPath()),s(3),P("loader",e.isDeleting()),A("disabled",!e.isValidatedPath()),s(3),P("loader",e.isRestoring()),A("disabled",e.pathHasChanged()),s(6),G(e.isValidatedPath()?"success":"error"),s(),w("ngModel",e.backupFilePath),s(),K(e.isValidatedPath()?31:32),s(3),A("disabled",!e.pathHasChanged()),s(3),A("disabled",!e.pathHasChanged()),s(3),A("disabled",!e.pathHasChanged()),s(3),A("disabled",!e.pathHasChanged())}},dependencies:[ee,Y,Z,x,ae,W,j,H,q],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:2rem}article[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}h1[_ngcontent-%COMP%]{font:var(--title-20)}h2[_ngcontent-%COMP%]{font:var(--title-30)}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}"],changeDetection:0})};export{m as default};
1
+ import{a as ae}from"./chunk-B3WLZK7W.js";import{a as te}from"./chunk-XR4SRVOQ.js";import"./chunk-OHZGASM5.js";import"./chunk-65UN5LE6.js";import{a as Q}from"./chunk-WFM6YWRN.js";import"./chunk-3AIKVVWP.js";import"./chunk-RHW5QVAY.js";import"./chunk-RSZISHXB.js";import{c as Y,e as Z,h as x,s as ee}from"./chunk-5ENRUF35.js";import"./chunk-ZQSBINUM.js";import"./chunk-3XVU2YA6.js";import{b as z,e as q}from"./chunk-5LKXKKAK.js";import"./chunk-HFNFJ7G2.js";import{a as H,g as W,l as j}from"./chunk-AL5KGNEF.js";import{h as J}from"./chunk-FRSQ5NDX.js";import"./chunk-RHII5WE3.js";import"./chunk-M3WT5B3C.js";import"./chunk-TCDECRYI.js";import{Db as i,E as g,Eb as a,F as d,Fb as l,N as E,Pb as p,Pc as k,Qb as r,Qc as h,Rb as F,Sb as L,Tb as U,Ua as s,Vb as u,Z as D,gb as y,jc as C,lb as v,oc as w,pc as X,qc as V,r as O,ub as A,va as c,wb as P,yb as G,zb as K}from"./chunk-AHUC7M75.js";import"./chunk-7CGTOI24.js";function ie(S,t){S&1&&(i(0,"spk-icon",18),C(1,"check"),a())}function ne(S,t){S&1&&(i(0,"spk-icon",18),C(1,"warning"),a())}var m=class S{#a=D(z);#i=D(Q);#e=D(J);#t="";backupId=te(this.#a.params.pipe(O(t=>t.id)));activeBackup=k(()=>{let t=this.#i.backups().find(_=>_.Backup?.ID===this.backupId());return this.#t=t?.Backup?.DBPath??"",t});backupFilePath=c("");lastValidatedPath=c("");isValidatedPath=k(()=>this.lastValidatedPath()===this.backupFilePath());pathHasChanged=k(()=>this.backupFilePath()!==this.#t);backupFilePathEffect=h(()=>{let t=this.backupFilePath();t!==""&&this.#e.postApiV1FilesystemValidate({requestBody:{path:t}}).subscribe({next:()=>this.lastValidatedPath.set(t)})});isRestoring=c(!1);isRepairing=c(!1);isDeleting=c(!1);isSavingDbPath=c(!1);isSavingAndRepairing=c(!1);isMovingDb=c(!1);activeBackupEffect=h(()=>{let t=this.activeBackup();if(!t)return;let _=t.Backup?.DBPath??"";this.backupFilePath.set(_)});repairDatabase(){this.isRepairing.set(!0),this.#e.postApiV1BackupByIdRepair({id:this.backupId()}).pipe(g(1),d(()=>this.isRepairing.set(!1))).subscribe()}deleteDatabase(){this.isDeleting.set(!0),this.#e.postApiV1BackupByIdDeletedb({id:this.backupId()}).pipe(g(1),d(()=>this.isDeleting.set(!1))).subscribe()}restoreDatabase(){this.isRestoring.set(!0),this.#e.postApiV1BackupByIdDeletedb({id:this.backupId()}).pipe(g(1),E(()=>this.#e.postApiV1BackupByIdRepair({id:this.backupId()})),d(()=>this.isRestoring.set(!1))).subscribe()}resetDatabasePath(){this.backupFilePath.set(this.#t)}saveDatabasePath(){this.isSavingDbPath.set(!0),this.#e.postApiV1BackupByIdUpdatedb({id:this.backupId(),requestBody:{path:this.backupFilePath()}}).pipe(d(()=>this.isSavingDbPath.set(!1))).subscribe()}saveAndRepairDatabasePath(){this.isSavingAndRepairing.set(!0),this.#e.postApiV1BackupByIdUpdatedb({id:this.backupId(),requestBody:{path:this.backupFilePath()}}).pipe(E(()=>this.#e.postApiV1BackupByIdRepair({id:this.backupId()})),d(()=>this.isSavingAndRepairing.set(!1)))}moveDatabasePath(){this.isMovingDb.set(!0),this.#e.postApiV1BackupByIdMovedb({id:this.backupId(),requestBody:{path:this.backupFilePath()}}).pipe(d(()=>this.isMovingDb.set(!1))).subscribe()}static \u0275fac=function(_){return new(_||S)};static \u0275cmp=y({type:S,selectors:[["app-database"]],decls:46,vars:18,consts:()=>{let t;t=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let _;_=$localize`Local database for ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let e;e=$localize` Each backup has a local database associated with it, which stores information about the remote backup on the local machine. This makes it faster to perform many operations, and reduces the amount of data that needs to be downloaded for each operation. `;let n;n=$localize`Maintenance`;let T;T=$localize` If the backup and the remote storage is out of sync, Duplicati will require that you perform a repair operation to synchronize the database. If the repair is unsuccessful, you can delete the local database and re-generate. `;let b;b=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SPK_ICON:wrench${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SPK_ICON: Repair `;let f;f=$localize`${"\uFFFD#22\uFFFD"}:START_TAG_SPK_ICON:trash${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SPK_ICON: Delete `;let B;B=$localize`${"\uFFFD#25\uFFFD"}:START_TAG_SPK_ICON:clock-counter-clockwise${"\uFFFD/#25\uFFFD"}:CLOSE_TAG_SPK_ICON: Restore (delete and repair) `;let I;I=$localize`Placement`;let M;M=$localize`${"\uFFFD#36\uFFFD"}:START_TAG_SPK_ICON:backspace${"\uFFFD/#36\uFFFD"}:CLOSE_TAG_SPK_ICON: Reset `;let N;N=$localize`${"\uFFFD#39\uFFFD"}:START_TAG_SPK_ICON:floppy-disk${"\uFFFD/#39\uFFFD"}:CLOSE_TAG_SPK_ICON: Save `;let $;$=$localize`${"\uFFFD#42\uFFFD"}:START_TAG_SPK_ICON:wrench${"\uFFFD/#42\uFFFD"}:CLOSE_TAG_SPK_ICON: Save & Repair `;let R;return R=$localize`${"\uFFFD#45\uFFFD"}:START_TAG_SPK_ICON:flow-arrow${"\uFFFD/#45\uFFFD"}:CLOSE_TAG_SPK_ICON: Move existing database `,[t,_,e,n,T,b,f,B,I,M,N,$,R,[1,"back"],["type","button","spk-button","","routerLink","/",1,"small"],[1,"actions","maintenance"],["spk-button","",3,"click","disabled"],["type","text",3,"ngModelChange","ngModel"],["prefix",""],[1,"actions","placement"]]},template:function(_,e){if(_&1&&(l(0,"app-status-bar"),i(1,"section")(2,"div",13)(3,"button",14),p(4,0),l(5,"spk-icon"),r(),a()(),i(6,"article")(7,"h1"),F(8,1),a(),i(9,"p"),F(10,2),a()(),i(11,"article")(12,"h2"),F(13,3),a(),i(14,"p"),F(15,4),a(),i(16,"div",15)(17,"button",16),u("click",function(){return e.repairDatabase()}),p(18,5),l(19,"spk-icon"),r(),a(),i(20,"button",16),u("click",function(){return e.deleteDatabase()}),p(21,6),l(22,"spk-icon"),r(),a(),i(23,"button",16),u("click",function(){return e.restoreDatabase()}),p(24,7),l(25,"spk-icon"),r(),a()()(),i(26,"article")(27,"h2"),F(28,8),a(),i(29,"spk-form-field")(30,"input",17),V("ngModelChange",function(T){return X(e.backupFilePath,T)||(e.backupFilePath=T),T}),a(),v(31,ie,2,0,"spk-icon",18)(32,ne,2,0,"spk-icon",18),a(),i(33,"div",19)(34,"button",16),u("click",function(){return e.resetDatabasePath()}),p(35,9),l(36,"spk-icon"),r(),a(),i(37,"button",16),u("click",function(){return e.saveDatabasePath()}),p(38,10),l(39,"spk-icon"),r(),a(),i(40,"button",16),u("click",function(){return e.saveAndRepairDatabasePath()}),p(41,11),l(42,"spk-icon"),r(),a(),i(43,"button",16),u("click",function(){return e.moveDatabasePath()}),p(44,12),l(45,"spk-icon"),r(),a()()()()),_&2){let n;s(8),L((n=e.activeBackup())==null||n.Backup==null?null:n.Backup.Name),U(8),s(9),P("loader",e.isRepairing()),A("disabled",!e.isValidatedPath()),s(3),P("loader",e.isDeleting()),A("disabled",!e.isValidatedPath()),s(3),P("loader",e.isRestoring()),A("disabled",e.pathHasChanged()),s(6),G(e.isValidatedPath()?"success":"error"),s(),w("ngModel",e.backupFilePath),s(),K(e.isValidatedPath()?31:32),s(3),A("disabled",!e.pathHasChanged()),s(3),A("disabled",!e.pathHasChanged()),s(3),A("disabled",!e.pathHasChanged()),s(3),A("disabled",!e.pathHasChanged())}},dependencies:[ee,Y,Z,x,ae,W,j,H,q],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:2rem}article[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}h1[_ngcontent-%COMP%]{font:var(--title-20)}h2[_ngcontent-%COMP%]{font:var(--title-30)}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}"],changeDetection:0})};export{m as default};
@@ -0,0 +1 @@
1
+ import{a as x}from"./chunk-HTX2RSBS.js";import{a as Q}from"./chunk-3AIKVVWP.js";import{b as U,d as H}from"./chunk-5LKXKKAK.js";import{b as K,c as j,e as W,g as q,p as Y}from"./chunk-AL5KGNEF.js";import{h as J}from"./chunk-FRSQ5NDX.js";import{Bb as v,Cb as L,Db as r,Eb as c,Fb as g,Gb as y,Hb as R,Jb as f,Pb as D,Pc as B,Qb as V,Ra as M,Rb as p,Ua as a,Vb as C,Wb as s,Z as d,ea as T,fa as I,gb as S,jc as F,kc as h,lb as A,lc as z,rc as G,sa as O,sc as X,tc as u,ub as m,yb as b,zb as _}from"./chunk-AHUC7M75.js";function it(n,e){if(n&1&&F(0),n&2){s();let t=u(0);z(" ",t.Message," ")}}function nt(n,e){if(n&1&&(r(0,"div"),D(1,1),g(2,"a",15),V(),c()),n&2){s();let t=u(0);a(2),m("href",t.DownloadLink,M)}}function ot(n,e){if(n&1){let t=f();r(0,"button",14),C("click",function(){T(t);let i=s(),l=u(0);return I(i.doRepair(l.BackupID))}),p(1,2),c()}}function at(n,e){if(n&1){let t=f();r(0,"button",14),C("click",function(){T(t);let i=s(),l=u(0);return I(i.doDownloadBugreport(l))}),p(1,3),c()}}function rt(n,e){if(n&1&&g(0,"spk-progress-bar",17),n&2){let t,o=s(2);m("value",(t=o.serverState())==null?null:t.UpdateDownloadProgress)}}function lt(n,e){if(n&1){let t=f();r(0,"div",13),y(1),p(2,4),R(),r(3,"a",16),F(4),c(),A(5,rt,1,1,"spk-progress-bar",17),r(6,"button",14),C("click",function(){T(t);let i=s();return I(i.doShowUpdate())}),p(7,5),c()()}if(n&2){let t,o,i=s(),l=u(0);a(3),m("href",(t=i.serverState())==null?null:t.UpdateDownloadLink,M),a(),h(l.Message),a(),_(((o=i.serverState())==null?null:o.UpdaterState)==="Downloading"?5:-1)}}function ct(n,e){if(n&1){let t=f();r(0,"button",14),C("click",function(){T(t);let i=s(),l=u(0);return I(i.doShowLog(l.BackupID))}),p(1,6),c()}}function st(n,e){if(n&1){let t=f();r(0,"button",14),C("click",function(){T(t);let i=s();return I(i.doShowLink("https://docs.duplicati.com/detailed-descriptions/the-server-database"))}),p(1,7),c()}}function _t(n,e){if(n&1){let t=f();r(0,"button",14),C("click",function(){T(t);let i=s();return I(i.doShowLink("https://docs.duplicati.com/detailed-descriptions/the-server-database"))}),p(1,8),c()}}var dt={Error:"error",Warning:"warn",Information:"primary"},E=class n{#t=d(H);#o=d(U);#a=d(W);#e=d(j);#i=d(x);#n=d(J);serverState=this.#i.serverState;index=O.required();notification=O.required();deleteNotificationByIndex(){this.#i.deleteNotification(this.index())}deleteAllNotifications(){this.#i.deleteAllNotifications()}getAlertType(e){return e&&dt[e]||"primary"}doShowLog(e){this.#n.getApiV1BackupByIdIsactive({id:e}).subscribe({next:t=>{this.#t.navigate(["/backup/"+e+"/log"])},error:t=>{if(t.status===404){let o={title:$localize`Error`,message:$localize`The backup is missing, has it been deleted?`,confirmText:$localize`OK`,cancelText:null};parseInt(e)+""!=e&&(o={title:$localize`Error`,message:$localize`The backup was temporary and does not exist anymore, so the log data is lost`,confirmText:$localize`OK`,cancelText:null}),this.#a.open(Q,{maxWidth:"550px",width:"100%",data:o})}else this.#e.error($localize`Failed to find backup: `+t.message)}})}doRepair(e){this.#n.postApiV1BackupByIdRepair({id:e}).subscribe({next:()=>{this.#e.success($localize`Backup repaired`),this.#t.navigate(["./"],{onSameUrlNavigation:"reload",relativeTo:this.#o})},error:t=>{this.#e.error($localize`Failed to repair backup: `+t.message)}})}doShowUpdate(){this.#t.navigate(["/about/changelog"])}doShowLink(e){window.open(e,"_blank")}doDownloadBugreport(e){let t=e.Action.slice(19);this.#n.postApiV1AuthIssuetokenByOperation({operation:`bugreport/${t}`}).subscribe({next:o=>{if(!o.Token){this.#e.error("Failed to get bug report URL: No token generated");return}e.DownloadLink=o.Token},error:o=>{this.#e.error(`Failed to get bug report URL: ${o.message}`)}})}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=S({type:n,selectors:[["app-notification"]],inputs:{index:[1,"index"],notification:[1,"notification"]},decls:16,vars:12,consts:()=>{let e;e=$localize`Dismiss`;let t;t=$localize` If the backup file was not downloaded automatically, ${"\uFFFD#2\uFFFD"}:START_LINK:right click and choose "Save as …"${"\uFFFD/#2\uFFFD"}:CLOSE_LINK:`;let o;o=$localize`Repair`;let i;i=$localize`Download`;let l;l=$localize`New update found:`;let k;k=$localize`Show Update`;let P;P=$localize`Show Log`;let w;w=$localize` Show Help `;let $;return $=$localize` Show Help `,[e,t,o,i,l,k,P,w,$,["sparkle-alert-title",""],["sparkle-alert-content","",1,"content"],[1,"actions"],["spk-button","",1,"small","outlined"],[1,"message"],["spk-button","",1,"small","outlined",3,"click"],["target","_blank",3,"href"],[3,"href"],[3,"value"]]},template:function(t,o){if(t&1){let i=f();G(0),r(1,"spk-alert")(2,"div",9),F(3),c(),r(4,"div",10),A(5,it,1,1)(6,nt,3,1,"div"),r(7,"div",11),A(8,ot,2,0,"button",12)(9,at,2,0,"button",12)(10,lt,8,3,"div",13)(11,ct,2,0,"button",12)(12,st,2,0,"button",12)(13,_t,2,0,"button",12),r(14,"button",14),C("click",function(){return T(i),I(o.deleteNotificationByIndex())}),p(15,0),c()()()()}if(t&2){let i=X(o.notification());a(),b(o.getAlertType(i.Type)),a(2),h(i.Title),a(2),_(i.Action!=="update:new"&&i.Action!=="update:manual"?5:-1),a(),_(i!=null&&i.DownloadLink?6:-1),a(2),_(i.Message!=null&&i.Message.includes("please run repair")?8:-1),a(),_(i.Action!=null&&i.Action.startsWith("bug-report:created:")&&!i.DownloadLink?9:-1),a(),_(i.Action==="update:new"?10:-1),a(),_(i.Action==="backup:show-log"?11:-1),a(),_(i.Action==="config:issue:unencrypted-database"?12:-1),a(),_(i.Action==="config:issue:windows-folder-used"?13:-1)}},dependencies:[Y,q,K],styles:["[_nghost-%COMP%]{display:block}"],changeDetection:0})};var pt=(n,e)=>e.ID;function Nt(n,e){if(n&1&&g(0,"app-notification",0),n&2){let t=e.$implicit,o=e.$index;m("index",o)("notification",t)}}var Z=class n{#t=d(x);notificationFilterPredicate=O();notifications=B(()=>{let e=this.notificationFilterPredicate()?.predicate,t=this.#t.notifications();return typeof e!="function"?t:t.filter(e)});static \u0275fac=function(t){return new(t||n)};static \u0275cmp=S({type:n,selectors:[["app-notifications"]],inputs:{notificationFilterPredicate:[1,"notificationFilterPredicate"]},decls:2,vars:0,consts:[[3,"index","notification"]],template:function(t,o){t&1&&v(0,Nt,1,2,"app-notification",0,pt),t&2&&L(o.notifications())},dependencies:[E],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.actions[_ngcontent-%COMP%]{display:flex;gap:.25rem;justify-content:flex-end}"],changeDetection:0})};export{E as a,Z as b};
@@ -0,0 +1 @@
1
+ import{a,b}from"./chunk-Q6M5VRZV.js";import"./chunk-LDJVMU7P.js";import"./chunk-LJDOQTEF.js";import"./chunk-XR4SRVOQ.js";import"./chunk-WZRSQ7XL.js";import"./chunk-3AIKVVWP.js";import"./chunk-5ENRUF35.js";import"./chunk-5LKXKKAK.js";import"./chunk-HFNFJ7G2.js";import"./chunk-AL5KGNEF.js";import"./chunk-FRSQ5NDX.js";import"./chunk-M3WT5B3C.js";import"./chunk-AHUC7M75.js";import"./chunk-7CGTOI24.js";export{a as createRestoreOptionsForm,b as default};
@@ -0,0 +1 @@
1
+ import{c as a,d as b}from"./chunk-Q6M5VRZV.js";import"./chunk-LDJVMU7P.js";import"./chunk-LJDOQTEF.js";import"./chunk-XR4SRVOQ.js";import"./chunk-WZRSQ7XL.js";import"./chunk-3AIKVVWP.js";import"./chunk-5ENRUF35.js";import"./chunk-5LKXKKAK.js";import"./chunk-HFNFJ7G2.js";import"./chunk-AL5KGNEF.js";import"./chunk-FRSQ5NDX.js";import"./chunk-M3WT5B3C.js";import"./chunk-AHUC7M75.js";import"./chunk-7CGTOI24.js";export{a as createEncryptionForm,b as default};
@@ -1 +1 @@
1
- import{a as L}from"./chunk-XP7PWMT2.js";import{d as A}from"./chunk-C6XTRC7P.js";import{a as k,c as I,h as w}from"./chunk-S5EF63OY.js";import{B as m,E as o,F as y,P as l,T as a,Z as i,f as h,k as u,n as g,r as d,va as n}from"./chunk-L72ALLHJ.js";var c=class s{#r=i(L);#i=n(null);#t=window.self!==window.top;#s=n(this.#t);relayIsEnabled=this.#s.asReadonly();config=this.#i.asReadonly();configLoaded=this.#t?new u:null;isLoading=n(this.#t);parentIframeListner=null;parentOrigin="*";fetchConfig(){this.#n(),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:",""),r=JSON.parse(t);if(!r?.accessToken||!r?.clientId){this.#e("error:invalid-config"),this.#s.set(!1);return}if(typeof r.clientId!="string"){this.#e("error:invalid-config"),this.#s.set(!1);return}if(typeof r.accessToken!="string"){this.#e("error:invalid-config"),this.#s.set(!1);return}let R=this.#r.getItem("locale")??"en-US",p=r.locale??"en-US";R!==p&&(this.#r.setItem("locale",p),window.location.reload()),this.#i.set(r),this.configLoaded?.next(!0),this.isLoading.set(!1),this.#e("handshake-complete")}},{signal:this.parentIframeListner.signal}))}#e(e){window.parent.postMessage(e,"*")}#n(){this.parentIframeListner&&(this.parentIframeListner.abort(),this.parentIframeListner=null)}setConfig(e){this.#i.set(e)}clearConfig(){this.#i.set(null)}static \u0275fac=function(t){return new(t||s)};static \u0275prov=a({token:s,factory:s.\u0275fac,providedIn:"root"})};var f="PROXY_AUTHED_FAKE_TOKEN",b=class s{#r=i(A);#i=i(I);#t=i(w);#s=i(c);#e=n(null);#n=n(!1);token=this.#e.asReadonly();isLoggingOut=this.#n.asReadonly();login(e){return this.#t.postApiV1AuthLogin({requestBody:{Password:e,RememberMe:!0}}).pipe(o(1),l(t=>t.AccessToken&&this.#e.set(t.AccessToken)))}refreshToken(){return this.#s.relayIsEnabled()?(this.#e.set(f),new h(e=>{e.next({AccessToken:f}),e.complete()})):this.#t.postApiV1AuthRefresh().pipe(o(1),l(e=>e.AccessToken&&this.#e.set(e.AccessToken)))}checkProxyAuthed(){let e=new k({"custom-proxy-check":"true"});return this.#i.get("/api/v1/systeminfo",{headers:e}).pipe(d(()=>(this.#e.set(f),!0)),m(()=>g(!1)))}logout(){this.#n.set(!0),this.#t.postApiV1AuthRefreshLogout().pipe(o(1),y(()=>{this.#n.set(!1),this.#e.set(null),this.#r.navigate(["/login"])})).subscribe()}static \u0275fac=function(t){return new(t||s)};static \u0275prov=a({token:s,factory:s.\u0275fac,providedIn:"root"})};export{c as a,f as b,b as c};
1
+ import{a as L}from"./chunk-3XVU2YA6.js";import{d as A}from"./chunk-5LKXKKAK.js";import{a as k,c as I,h as w}from"./chunk-FRSQ5NDX.js";import{B as m,E as o,F as y,P as l,T as a,Z as i,f as h,k as u,n as g,r as d,va as n}from"./chunk-AHUC7M75.js";var c=class s{#r=i(L);#i=n(null);#t=window.self!==window.top;#s=n(this.#t);relayIsEnabled=this.#s.asReadonly();config=this.#i.asReadonly();configLoaded=this.#t?new u:null;isLoading=n(this.#t);parentIframeListner=null;parentOrigin="*";fetchConfig(){this.#n(),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:",""),r=JSON.parse(t);if(!r?.accessToken||!r?.clientId){this.#e("error:invalid-config"),this.#s.set(!1);return}if(typeof r.clientId!="string"){this.#e("error:invalid-config"),this.#s.set(!1);return}if(typeof r.accessToken!="string"){this.#e("error:invalid-config"),this.#s.set(!1);return}let R=this.#r.getItem("locale")??"en-US",p=r.locale??"en-US";R!==p&&(this.#r.setItem("locale",p),window.location.reload()),this.#i.set(r),this.configLoaded?.next(!0),this.isLoading.set(!1),this.#e("handshake-complete")}},{signal:this.parentIframeListner.signal}))}#e(e){window.parent.postMessage(e,"*")}#n(){this.parentIframeListner&&(this.parentIframeListner.abort(),this.parentIframeListner=null)}setConfig(e){this.#i.set(e)}clearConfig(){this.#i.set(null)}static \u0275fac=function(t){return new(t||s)};static \u0275prov=a({token:s,factory:s.\u0275fac,providedIn:"root"})};var f="PROXY_AUTHED_FAKE_TOKEN",b=class s{#r=i(A);#i=i(I);#t=i(w);#s=i(c);#e=n(null);#n=n(!1);token=this.#e.asReadonly();isLoggingOut=this.#n.asReadonly();login(e){return this.#t.postApiV1AuthLogin({requestBody:{Password:e,RememberMe:!0}}).pipe(o(1),l(t=>t.AccessToken&&this.#e.set(t.AccessToken)))}refreshToken(){return this.#s.relayIsEnabled()?(this.#e.set(f),new h(e=>{e.next({AccessToken:f}),e.complete()})):this.#t.postApiV1AuthRefresh().pipe(o(1),l(e=>e.AccessToken&&this.#e.set(e.AccessToken)))}checkProxyAuthed(){let e=new k({"custom-proxy-check":"true"});return this.#i.get("/api/v1/systeminfo",{headers:e}).pipe(d(()=>(this.#e.set(f),!0)),m(()=>g(!1)))}logout(){this.#n.set(!0),this.#t.postApiV1AuthRefreshLogout().pipe(o(1),y(()=>{this.#n.set(!1),this.#e.set(null),this.#r.navigate(["/login"])})).subscribe()}static \u0275fac=function(t){return new(t||s)};static \u0275prov=a({token:s,factory:s.\u0275fac,providedIn:"root"})};export{c as a,f as b,b as c};
package/index.html CHANGED
@@ -59,9 +59,9 @@
59
59
  }
60
60
  }
61
61
  </style>
62
- <style>:root{--font-size:16px;font-size:var(--font-size)}html body{--sparkle-light:initial;--sparkle-dark: ;color-scheme:light dark;--primary-1:var(--sparkle-light, hsl(217, 91%, 95%)) var(--sparkle-dark, hsl(217, 91%, 9.5%));--primary-2:var(--sparkle-light, hsl(217, 91%, 90%)) var(--sparkle-dark, hsl(217, 91%, 15%));--primary-3:var(--sparkle-light, hsl(217, 91%, 85%)) var(--sparkle-dark, hsl(217, 91%, 22.5%));--primary-4:var(--sparkle-light, hsl(217, 91%, 80%)) var(--sparkle-dark, hsl(217, 91%, 30%));--primary-5:var(--sparkle-light, hsl(217, 91%, 75%)) var(--sparkle-dark, hsl(217, 91%, 37.5%));--primary-6:var(--sparkle-light, hsl(217, 91%, 70%)) var(--sparkle-dark, hsl(217, 91%, 45%));--primary-7:var(--sparkle-light, hsl(217, 91%, 65%)) var(--sparkle-dark, hsl(217, 91%, 52.5%));--primary-8:var(--sparkle-light, hsl(217, 91%, 60%)) var(--sparkle-dark, hsl(217, 91%, 60%));--primary-9:var(--sparkle-light, hsl(217, 91%, 46.5%)) var(--sparkle-dark, hsl(217, 91%, 70%));--primary-10:var(--sparkle-light, hsl(217, 91%, 33%)) var(--sparkle-dark, hsl(217, 91%, 80%));--primary-11:var(--sparkle-light, hsl(217, 91%, 19.5%)) var(--sparkle-dark, hsl(217, 91%, 90%));--primary-12:var(--sparkle-light, hsl(217, 91%, 6%)) var(--sparkle-dark, hsl(217, 91%, 100%));--primary-g2:linear-gradient(180deg, hsl(217, 91%, 70%) 0%, hsl(217, 91%, 60%) 50%);--primary-g3:linear-gradient(180deg, hsl(217, 91%, 80%) 0%, hsl(217, 91%, 60%) 50%);--accent-1:var(--sparkle-light, hsl(258, 90%, 95.75%)) var(--sparkle-dark, hsl(258, 90%, 9.25%));--accent-2:var(--sparkle-light, hsl(258, 90%, 91.5%)) var(--sparkle-dark, hsl(258, 90%, 16.5%));--accent-3:var(--sparkle-light, hsl(258, 90%, 87.25%)) var(--sparkle-dark, hsl(258, 90%, 24.75%));--accent-4:var(--sparkle-light, hsl(258, 90%, 83%)) var(--sparkle-dark, hsl(258, 90%, 33%));--accent-5:var(--sparkle-light, hsl(258, 90%, 78.75%)) var(--sparkle-dark, hsl(258, 90%, 41.25%));--accent-6:var(--sparkle-light, hsl(258, 90%, 74.5%)) var(--sparkle-dark, hsl(258, 90%, 49.5%));--accent-7:var(--sparkle-light, hsl(258, 90%, 70.25%)) var(--sparkle-dark, hsl(258, 90%, 57.75%));--accent-8:var(--sparkle-light, hsl(258, 90%, 66%)) var(--sparkle-dark, hsl(258, 90%, 66%));--accent-9:var(--sparkle-light, hsl(258, 90%, 51.15%)) var(--sparkle-dark, hsl(258, 90%, 74.5%));--accent-10:var(--sparkle-light, hsl(258, 90%, 36.3%)) var(--sparkle-dark, hsl(258, 90%, 83%));--accent-11:var(--sparkle-light, hsl(258, 90%, 21.45%)) var(--sparkle-dark, hsl(258, 90%, 91.5%));--accent-12:var(--sparkle-light, hsl(258, 90%, 6.6%)) var(--sparkle-dark, hsl(258, 90%, 100%));--accent-g2:linear-gradient(180deg, hsl(258, 90%, 74.5%) 0%, hsl(258, 90%, 66%) 50%);--accent-g3:linear-gradient(180deg, hsl(258, 90%, 83%) 0%, hsl(258, 90%, 66%) 50%);--warn-1:var(--sparkle-light, hsl(37, 92%, 93.75%)) var(--sparkle-dark, hsl(37, 92%, 9.25%));--warn-2:var(--sparkle-light, hsl(37, 92%, 87.5%)) var(--sparkle-dark, hsl(37, 92%, 12.5%));--warn-3:var(--sparkle-light, hsl(37, 92%, 81.25%)) var(--sparkle-dark, hsl(37, 92%, 18.75%));--warn-4:var(--sparkle-light, hsl(37, 92%, 75%)) var(--sparkle-dark, hsl(37, 92%, 25%));--warn-5:var(--sparkle-light, hsl(37, 92%, 68.75%)) var(--sparkle-dark, hsl(37, 92%, 31.25%));--warn-6:var(--sparkle-light, hsl(37, 92%, 62.5%)) var(--sparkle-dark, hsl(37, 92%, 37.5%));--warn-7:var(--sparkle-light, hsl(37, 92%, 56.25%)) var(--sparkle-dark, hsl(37, 92%, 43.75%));--warn-8:var(--sparkle-light, hsl(37, 92%, 50%)) var(--sparkle-dark, hsl(37, 92%, 50%));--warn-9:var(--sparkle-light, hsl(37, 92%, 38.75%)) var(--sparkle-dark, hsl(37, 92%, 62.5%));--warn-10:var(--sparkle-light, hsl(37, 92%, 27.5%)) var(--sparkle-dark, hsl(37, 92%, 75%));--warn-11:var(--sparkle-light, hsl(37, 92%, 16.25%)) var(--sparkle-dark, hsl(37, 92%, 87.5%));--warn-12:var(--sparkle-light, hsl(37, 92%, 5%)) var(--sparkle-dark, hsl(37, 92%, 100%));--warn-g2:linear-gradient(180deg, hsl(37, 92%, 62.5%) 0%, hsl(37, 92%, 50%) 50%);--warn-g3:linear-gradient(180deg, hsl(37, 92%, 75%) 0%, hsl(37, 92%, 50%) 50%);--error-1:var(--sparkle-light, hsl(0, 84%, 95%)) var(--sparkle-dark, hsl(0, 84%, 7.5%));--error-2:var(--sparkle-light, hsl(0, 84%, 90%)) var(--sparkle-dark, hsl(0, 84%, 15%));--error-3:var(--sparkle-light, hsl(0, 84%, 85%)) var(--sparkle-dark, hsl(0, 84%, 22.5%));--error-4:var(--sparkle-light, hsl(0, 84%, 80%)) var(--sparkle-dark, hsl(0, 84%, 30%));--error-5:var(--sparkle-light, hsl(0, 84%, 75%)) var(--sparkle-dark, hsl(0, 27%, 10%));--error-6:var(--sparkle-light, hsl(0, 84%, 70%)) var(--sparkle-dark, hsl(0, 84%, 45%));--error-7:var(--sparkle-light, hsl(0, 84%, 65%)) var(--sparkle-dark, hsl(0, 84%, 52.5%));--error-8:var(--sparkle-light, hsl(0, 84%, 60%)) var(--sparkle-dark, hsl(0, 84%, 60%));--error-9:var(--sparkle-light, hsl(0, 84%, 46.5%)) var(--sparkle-dark, hsl(0, 84%, 70%));--error-10:var(--sparkle-light, hsl(0, 84%, 33%)) var(--sparkle-dark, hsl(0, 84%, 80%));--error-11:var(--sparkle-light, hsl(0, 84%, 19.5%)) var(--sparkle-dark, hsl(0, 84%, 90%));--error-12:var(--sparkle-light, hsl(0, 84%, 6%)) var(--sparkle-dark, hsl(0, 84%, 100%));--error-g2:linear-gradient(180deg, hsl(0, 84%, 70%) 0%, hsl(0, 84%, 60%) 50%);--error-g3:linear-gradient(180deg, hsl(0, 84%, 80%) 0%, hsl(0, 84%, 60%) 50%);--success-1:var(--sparkle-light, hsl(160, 84%, 92.38%)) var(--sparkle-dark, hsl(160, 84%, 7.88%));--success-2:var(--sparkle-light, hsl(160, 84%, 84.75%)) var(--sparkle-dark, hsl(160, 3%, 17%));--success-3:var(--sparkle-light, hsl(160, 84%, 77.13%)) var(--sparkle-dark, hsl(160, 84%, 14.63%));--success-4:var(--sparkle-light, hsl(160, 84%, 69.5%)) var(--sparkle-dark, hsl(160, 84%, 19.5%));--success-5:var(--sparkle-light, hsl(160, 84%, 61.88%)) var(--sparkle-dark, hsl(160, 84%, 24.38%));--success-6:var(--sparkle-light, hsl(160, 84%, 54.25%)) var(--sparkle-dark, hsl(160, 84%, 29.25%));--success-7:var(--sparkle-light, hsl(160, 84%, 46.63%)) var(--sparkle-dark, hsl(160, 84%, 34.13%));--success-8:var(--sparkle-light, hsl(160, 84%, 39%)) var(--sparkle-dark, hsl(160, 84%, 39%));--success-9:var(--sparkle-light, hsl(160, 84%, 30.23%)) var(--sparkle-dark, hsl(160, 84%, 54.25%));--success-10:var(--sparkle-light, hsl(160, 84%, 21.45%)) var(--sparkle-dark, hsl(160, 84%, 69.5%));--success-11:var(--sparkle-light, hsl(160, 84%, 12.67%)) var(--sparkle-dark, hsl(160, 84%, 84.75%));--success-12:var(--sparkle-light, hsl(160, 84%, 3.9%)) var(--sparkle-dark, hsl(160, 84%, 100%));--success-g2:linear-gradient(180deg, hsl(160, 84%, 54.25%) 0%, hsl(160, 84%, 39%) 50%);--success-g3:linear-gradient(180deg, hsl(160, 84%, 69.5%) 0%, hsl(160, 84%, 39%) 50%);--base-1:var(--sparkle-light, #fff) var(--sparkle-dark, hsl(0, 0%, 5.75%));--base-2:var(--sparkle-light, hsl(0, 0%, 98.05%)) var(--sparkle-dark, hsl(0, 0%, 8.75%));--base-3:var(--sparkle-light, hsl(0, 0%, 94.5%)) var(--sparkle-dark, hsl(0, 0%, 11.5%));--base-4:var(--sparkle-light, hsl(0, 0%, 84.75%)) var(--sparkle-dark, hsl(0, 0%, 17.25%));--base-5:var(--sparkle-light, hsl(0, 0%, 79.75%)) var(--sparkle-dark, hsl(0, 0%, 17.25%));--base-6:var(--sparkle-light, hsl(0, 0%, 66.25%)) var(--sparkle-dark, hsl(0, 0%, 28.75%));--base-7:var(--sparkle-light, hsl(0, 0%, 54.5%)) var(--sparkle-dark, hsl(0, 0%, 34.5%));--base-8:var(--sparkle-light, hsl(0, 0%, 46%)) var(--sparkle-dark, hsl(0, 0%, 46%));--base-9:var(--sparkle-light, hsl(0, 0%, 35.65%)) var(--sparkle-dark, hsl(0, 0%, 59.5%));--base-10:var(--sparkle-light, hsl(0, 0%, 25.3%)) var(--sparkle-dark, hsl(0, 0%, 73%));--base-11:var(--sparkle-light, hsl(0, 0%, 14.95%)) var(--sparkle-dark, hsl(0, 0%, 86.5%));--base-12:var(--sparkle-light, hsl(0, 0%, 4.6%)) var(--sparkle-dark, hsl(0, 0%, 100%));--base-g2:linear-gradient(180deg, hsl(0, 0%, 66.25%) 0%, hsl(0, 0%, 46%) 50%);--base-g3:linear-gradient(180deg, hsl(0, 0%, 73%) 0%, hsl(0, 0%, 46%) 50%);--base-g6:linear-gradient(180deg, hsl(0, 0%, 25.3%) 0%, hsl(0, 0%, 14.95%) 50%);--base-g7:linear-gradient(180deg, hsl(0, 0%, 35.65%) 0%, hsl(0, 0%, 14.95%) 50%);--primary-c8:var(--light-text);--accent-c8:var(--light-text);--warn-c8:var(--light-text);--error-c8:var(--light-text);--success-c8:var(--light-text);--display-10:600 5rem / normal Inter Tight, sans-serif;--display-20:600 4.5rem / normal Inter Tight, sans-serif;--display-30:600 4rem / normal Inter Tight, sans-serif;--display-40:600 3.5rem / normal Inter Tight, sans-serif;--display-50:600 3rem / normal Inter Tight, sans-serif;--title-10:500 2.5rem / normal Inter Tight, sans-serif;--title-20:500 2rem / normal Inter Tight, sans-serif;--title-30:500 1.5rem / normal Inter Tight, sans-serif;--title-10B:600 2.5rem / normal Inter Tight, sans-serif;--title-20B:600 2rem / normal Inter Tight, sans-serif;--title-30B:600 1.5rem / normal Inter Tight, sans-serif;--paragraph-10:500 1.125rem / normal Inter Tight, sans-serif;--paragraph-20:500 1rem / normal Inter Tight, sans-serif;--paragraph-30:500 .875rem / normal Inter Tight, sans-serif;--paragraph-40:500 .75rem / normal Inter Tight, sans-serif;--paragraph-10B:600 1.125rem / normal Inter Tight, sans-serif;--paragraph-20B:600 1rem / normal Inter Tight, sans-serif;--paragraph-30B:600 .875rem / 1.125rem Inter Tight, sans-serif;--paragraph-40B:600 .75rem / normal Inter Tight, sans-serif;--code-10:500 1rem / normal monospace;--code-20:500 .875rem / normal monospace;--code-30:500 .75rem / normal monospace;--shape-1:.25rem;--shape-2:.5rem;--shape-3:.75rem;--shape-4:1rem;--shape-5:1.25rem;--box-shadow-10:0 1px 2px 0 rgba(18, 18, 23, .07);--box-shadow-20:0 1px 3px 0 rgba(18, 18, 23, .1);--box-shadow-30:0 1px 4px -1px rgba(18, 18, 23, .08);--box-shadow-35:0 4px 6px -1px rgba(18, 18, 23, .08);--box-shadow-40:0 10px 15px -3px rgba(18, 18, 23, .08);--box-shadow-50:0 20px 25px -5px rgba(18, 18, 23, .1);--box-shadow-60:0 25px 50px -12px rgba(18, 18, 23, .25);--dark-text:#000;--light-text:#fff}*{box-sizing:border-box}html,body,app-root{width:100vw;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--base-2)}body{margin:0;font:var(--paragraph-30);color:var(--base-12)}*::-webkit-scrollbar{width:8px;height:12px;background:transparent}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#acacac;background:var(--sparkle-light, #acacac) var(--sparkle-dark, #4f4f4f);border-radius:50px;border:3px solid transparent;border-left-width:1px;border-right-width:2px;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background-color:#888}.loading{position:relative}.loading:before{content:"";width:1rem;height:1rem;border:2px solid var(--loader-c);border-bottom-color:transparent;border-radius:50%;display:flex;box-sizing:border-box;animation:rotation 1s linear infinite;margin:auto;inset:0;position:absolute}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}</style><link rel="stylesheet" href="styles-EXA64NMM.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-EXA64NMM.css"></noscript></head>
62
+ <style>:root{--font-size:16px;font-size:var(--font-size)}html body{--sparkle-light:initial;--sparkle-dark: ;color-scheme:light dark;--primary-1:var(--sparkle-light, hsl(217, 91%, 95%)) var(--sparkle-dark, hsl(217, 91%, 9.5%));--primary-2:var(--sparkle-light, hsl(217, 91%, 90%)) var(--sparkle-dark, hsl(217, 91%, 15%));--primary-3:var(--sparkle-light, hsl(217, 91%, 85%)) var(--sparkle-dark, hsl(217, 91%, 22.5%));--primary-4:var(--sparkle-light, hsl(217, 91%, 80%)) var(--sparkle-dark, hsl(217, 91%, 30%));--primary-5:var(--sparkle-light, hsl(217, 91%, 75%)) var(--sparkle-dark, hsl(217, 91%, 37.5%));--primary-6:var(--sparkle-light, hsl(217, 91%, 70%)) var(--sparkle-dark, hsl(217, 91%, 45%));--primary-7:var(--sparkle-light, hsl(217, 91%, 65%)) var(--sparkle-dark, hsl(217, 91%, 52.5%));--primary-8:var(--sparkle-light, hsl(217, 91%, 60%)) var(--sparkle-dark, hsl(217, 91%, 60%));--primary-9:var(--sparkle-light, hsl(217, 91%, 46.5%)) var(--sparkle-dark, hsl(217, 91%, 70%));--primary-10:var(--sparkle-light, hsl(217, 91%, 33%)) var(--sparkle-dark, hsl(217, 91%, 80%));--primary-11:var(--sparkle-light, hsl(217, 91%, 19.5%)) var(--sparkle-dark, hsl(217, 91%, 90%));--primary-12:var(--sparkle-light, hsl(217, 91%, 6%)) var(--sparkle-dark, hsl(217, 91%, 100%));--primary-g2:linear-gradient(180deg, hsl(217, 91%, 70%) 0%, hsl(217, 91%, 60%) 50%);--primary-g3:linear-gradient(180deg, hsl(217, 91%, 80%) 0%, hsl(217, 91%, 60%) 50%);--accent-1:var(--sparkle-light, hsl(258, 90%, 95.75%)) var(--sparkle-dark, hsl(258, 90%, 9.25%));--accent-2:var(--sparkle-light, hsl(258, 90%, 91.5%)) var(--sparkle-dark, hsl(258, 90%, 16.5%));--accent-3:var(--sparkle-light, hsl(258, 90%, 87.25%)) var(--sparkle-dark, hsl(258, 90%, 24.75%));--accent-4:var(--sparkle-light, hsl(258, 90%, 83%)) var(--sparkle-dark, hsl(258, 90%, 33%));--accent-5:var(--sparkle-light, hsl(258, 90%, 78.75%)) var(--sparkle-dark, hsl(258, 90%, 41.25%));--accent-6:var(--sparkle-light, hsl(258, 90%, 74.5%)) var(--sparkle-dark, hsl(258, 90%, 49.5%));--accent-7:var(--sparkle-light, hsl(258, 90%, 70.25%)) var(--sparkle-dark, hsl(258, 90%, 57.75%));--accent-8:var(--sparkle-light, hsl(258, 90%, 66%)) var(--sparkle-dark, hsl(258, 90%, 66%));--accent-9:var(--sparkle-light, hsl(258, 90%, 51.15%)) var(--sparkle-dark, hsl(258, 90%, 74.5%));--accent-10:var(--sparkle-light, hsl(258, 90%, 36.3%)) var(--sparkle-dark, hsl(258, 90%, 83%));--accent-11:var(--sparkle-light, hsl(258, 90%, 21.45%)) var(--sparkle-dark, hsl(258, 90%, 91.5%));--accent-12:var(--sparkle-light, hsl(258, 90%, 6.6%)) var(--sparkle-dark, hsl(258, 90%, 100%));--accent-g2:linear-gradient(180deg, hsl(258, 90%, 74.5%) 0%, hsl(258, 90%, 66%) 50%);--accent-g3:linear-gradient(180deg, hsl(258, 90%, 83%) 0%, hsl(258, 90%, 66%) 50%);--warn-1:var(--sparkle-light, hsl(37, 92%, 93.75%)) var(--sparkle-dark, hsl(37, 92%, 9.25%));--warn-2:var(--sparkle-light, hsl(37, 92%, 87.5%)) var(--sparkle-dark, hsl(37, 92%, 12.5%));--warn-3:var(--sparkle-light, hsl(37, 92%, 81.25%)) var(--sparkle-dark, hsl(37, 92%, 18.75%));--warn-4:var(--sparkle-light, hsl(37, 92%, 75%)) var(--sparkle-dark, hsl(37, 92%, 25%));--warn-5:var(--sparkle-light, hsl(37, 92%, 68.75%)) var(--sparkle-dark, hsl(37, 92%, 31.25%));--warn-6:var(--sparkle-light, hsl(37, 92%, 62.5%)) var(--sparkle-dark, hsl(37, 92%, 37.5%));--warn-7:var(--sparkle-light, hsl(37, 92%, 56.25%)) var(--sparkle-dark, hsl(37, 92%, 43.75%));--warn-8:var(--sparkle-light, hsl(37, 92%, 50%)) var(--sparkle-dark, hsl(37, 92%, 50%));--warn-9:var(--sparkle-light, hsl(37, 92%, 38.75%)) var(--sparkle-dark, hsl(37, 92%, 62.5%));--warn-10:var(--sparkle-light, hsl(37, 92%, 27.5%)) var(--sparkle-dark, hsl(37, 92%, 75%));--warn-11:var(--sparkle-light, hsl(37, 92%, 16.25%)) var(--sparkle-dark, hsl(37, 92%, 87.5%));--warn-12:var(--sparkle-light, hsl(37, 92%, 5%)) var(--sparkle-dark, hsl(37, 92%, 100%));--warn-g2:linear-gradient(180deg, hsl(37, 92%, 62.5%) 0%, hsl(37, 92%, 50%) 50%);--warn-g3:linear-gradient(180deg, hsl(37, 92%, 75%) 0%, hsl(37, 92%, 50%) 50%);--error-1:var(--sparkle-light, hsl(0, 84%, 95%)) var(--sparkle-dark, hsl(0, 84%, 7.5%));--error-2:var(--sparkle-light, hsl(0, 84%, 90%)) var(--sparkle-dark, hsl(0, 84%, 15%));--error-3:var(--sparkle-light, hsl(0, 84%, 85%)) var(--sparkle-dark, hsl(0, 84%, 22.5%));--error-4:var(--sparkle-light, hsl(0, 84%, 80%)) var(--sparkle-dark, hsl(0, 84%, 30%));--error-5:var(--sparkle-light, hsl(0, 84%, 75%)) var(--sparkle-dark, hsl(0, 27%, 10%));--error-6:var(--sparkle-light, hsl(0, 84%, 70%)) var(--sparkle-dark, hsl(0, 84%, 45%));--error-7:var(--sparkle-light, hsl(0, 84%, 65%)) var(--sparkle-dark, hsl(0, 84%, 52.5%));--error-8:var(--sparkle-light, hsl(0, 84%, 60%)) var(--sparkle-dark, hsl(0, 84%, 60%));--error-9:var(--sparkle-light, hsl(0, 84%, 46.5%)) var(--sparkle-dark, hsl(0, 84%, 70%));--error-10:var(--sparkle-light, hsl(0, 84%, 33%)) var(--sparkle-dark, hsl(0, 84%, 80%));--error-11:var(--sparkle-light, hsl(0, 84%, 19.5%)) var(--sparkle-dark, hsl(0, 84%, 90%));--error-12:var(--sparkle-light, hsl(0, 84%, 6%)) var(--sparkle-dark, hsl(0, 84%, 100%));--error-g2:linear-gradient(180deg, hsl(0, 84%, 70%) 0%, hsl(0, 84%, 60%) 50%);--error-g3:linear-gradient(180deg, hsl(0, 84%, 80%) 0%, hsl(0, 84%, 60%) 50%);--success-1:var(--sparkle-light, hsl(160, 84%, 92.38%)) var(--sparkle-dark, hsl(160, 84%, 7.88%));--success-2:var(--sparkle-light, hsl(160, 84%, 84.75%)) var(--sparkle-dark, hsl(160, 3%, 17%));--success-3:var(--sparkle-light, hsl(160, 84%, 77.13%)) var(--sparkle-dark, hsl(160, 84%, 14.63%));--success-4:var(--sparkle-light, hsl(160, 84%, 69.5%)) var(--sparkle-dark, hsl(160, 84%, 19.5%));--success-5:var(--sparkle-light, hsl(160, 84%, 61.88%)) var(--sparkle-dark, hsl(160, 84%, 24.38%));--success-6:var(--sparkle-light, hsl(160, 84%, 54.25%)) var(--sparkle-dark, hsl(160, 84%, 29.25%));--success-7:var(--sparkle-light, hsl(160, 84%, 46.63%)) var(--sparkle-dark, hsl(160, 84%, 34.13%));--success-8:var(--sparkle-light, hsl(160, 84%, 39%)) var(--sparkle-dark, hsl(160, 84%, 39%));--success-9:var(--sparkle-light, hsl(160, 84%, 30.23%)) var(--sparkle-dark, hsl(160, 84%, 54.25%));--success-10:var(--sparkle-light, hsl(160, 84%, 21.45%)) var(--sparkle-dark, hsl(160, 84%, 69.5%));--success-11:var(--sparkle-light, hsl(160, 84%, 12.67%)) var(--sparkle-dark, hsl(160, 84%, 84.75%));--success-12:var(--sparkle-light, hsl(160, 84%, 3.9%)) var(--sparkle-dark, hsl(160, 84%, 100%));--success-g2:linear-gradient(180deg, hsl(160, 84%, 54.25%) 0%, hsl(160, 84%, 39%) 50%);--success-g3:linear-gradient(180deg, hsl(160, 84%, 69.5%) 0%, hsl(160, 84%, 39%) 50%);--base-1:var(--sparkle-light, #fff) var(--sparkle-dark, hsl(0, 0%, 5.75%));--base-2:var(--sparkle-light, hsl(0, 0%, 98.05%)) var(--sparkle-dark, hsl(0, 0%, 8.75%));--base-3:var(--sparkle-light, hsl(0, 0%, 94.5%)) var(--sparkle-dark, hsl(0, 0%, 11.5%));--base-4:var(--sparkle-light, hsl(0, 0%, 84.75%)) var(--sparkle-dark, hsl(0, 0%, 17.25%));--base-5:var(--sparkle-light, hsl(0, 0%, 79.75%)) var(--sparkle-dark, hsl(0, 0%, 17.25%));--base-6:var(--sparkle-light, hsl(0, 0%, 66.25%)) var(--sparkle-dark, hsl(0, 0%, 28.75%));--base-7:var(--sparkle-light, hsl(0, 0%, 54.5%)) var(--sparkle-dark, hsl(0, 0%, 34.5%));--base-8:var(--sparkle-light, hsl(0, 0%, 46%)) var(--sparkle-dark, hsl(0, 0%, 46%));--base-9:var(--sparkle-light, hsl(0, 0%, 35.65%)) var(--sparkle-dark, hsl(0, 0%, 59.5%));--base-10:var(--sparkle-light, hsl(0, 0%, 25.3%)) var(--sparkle-dark, hsl(0, 0%, 73%));--base-11:var(--sparkle-light, hsl(0, 0%, 14.95%)) var(--sparkle-dark, hsl(0, 0%, 86.5%));--base-12:var(--sparkle-light, hsl(0, 0%, 4.6%)) var(--sparkle-dark, hsl(0, 0%, 100%));--base-g2:linear-gradient(180deg, hsl(0, 0%, 66.25%) 0%, hsl(0, 0%, 46%) 50%);--base-g3:linear-gradient(180deg, hsl(0, 0%, 73%) 0%, hsl(0, 0%, 46%) 50%);--base-g6:linear-gradient(180deg, hsl(0, 0%, 25.3%) 0%, hsl(0, 0%, 14.95%) 50%);--base-g7:linear-gradient(180deg, hsl(0, 0%, 35.65%) 0%, hsl(0, 0%, 14.95%) 50%);--primary-c8:var(--light-text);--accent-c8:var(--light-text);--warn-c8:var(--light-text);--error-c8:var(--light-text);--success-c8:var(--light-text);--display-10:600 5rem / normal Inter Tight, sans-serif;--display-20:600 4.5rem / normal Inter Tight, sans-serif;--display-30:600 4rem / normal Inter Tight, sans-serif;--display-40:600 3.5rem / normal Inter Tight, sans-serif;--display-50:600 3rem / normal Inter Tight, sans-serif;--title-10:500 2.5rem / normal Inter Tight, sans-serif;--title-20:500 2rem / normal Inter Tight, sans-serif;--title-30:500 1.5rem / normal Inter Tight, sans-serif;--title-10B:600 2.5rem / normal Inter Tight, sans-serif;--title-20B:600 2rem / normal Inter Tight, sans-serif;--title-30B:600 1.5rem / normal Inter Tight, sans-serif;--paragraph-10:500 1.125rem / normal Inter Tight, sans-serif;--paragraph-20:500 1rem / normal Inter Tight, sans-serif;--paragraph-30:500 .875rem / normal Inter Tight, sans-serif;--paragraph-40:500 .75rem / normal Inter Tight, sans-serif;--paragraph-10B:600 1.125rem / normal Inter Tight, sans-serif;--paragraph-20B:600 1rem / normal Inter Tight, sans-serif;--paragraph-30B:600 .875rem / 1.125rem Inter Tight, sans-serif;--paragraph-40B:600 .75rem / normal Inter Tight, sans-serif;--code-10:500 1rem / normal monospace;--code-20:500 .875rem / normal monospace;--code-30:500 .75rem / normal monospace;--shape-1:.25rem;--shape-2:.5rem;--shape-3:.75rem;--shape-4:1rem;--shape-5:1.25rem;--box-shadow-10:0 1px 2px 0 rgba(18, 18, 23, .07);--box-shadow-20:0 1px 3px 0 rgba(18, 18, 23, .1);--box-shadow-30:0 1px 4px -1px rgba(18, 18, 23, .08);--box-shadow-35:0 4px 6px -1px rgba(18, 18, 23, .08);--box-shadow-40:0 10px 15px -3px rgba(18, 18, 23, .08);--box-shadow-50:0 20px 25px -5px rgba(18, 18, 23, .1);--box-shadow-60:0 25px 50px -12px rgba(18, 18, 23, .25);--dark-text:#000;--light-text:#fff}*{box-sizing:border-box}html,body,app-root{width:100vw;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--base-2)}body{margin:0;font:var(--paragraph-30);color:var(--base-12)}*::-webkit-scrollbar{width:8px;height:12px;background:transparent}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#acacac;background:var(--sparkle-light, #acacac) var(--sparkle-dark, #4f4f4f);border-radius:50px;border:3px solid transparent;border-left-width:1px;border-right-width:2px;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background-color:#888}.loading{position:relative}.loading:before{content:"";width:1rem;height:1rem;border:2px solid var(--loader-c);border-bottom-color:transparent;border-radius:50%;display:flex;box-sizing:border-box;animation:rotation 1s linear infinite;margin:auto;inset:0;position:absolute}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}</style><link rel="stylesheet" href="styles-P2AEFLUS.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-P2AEFLUS.css"></noscript></head>
63
63
  <body>
64
64
  <app-root></app-root>
65
65
  <div class="loading">Connecting ...</div>
66
- <link rel="modulepreload" href="chunk-XYMSYNUD.js"><link rel="modulepreload" href="chunk-F2GEUOGZ.js"><link rel="modulepreload" href="chunk-N2MDNESH.js"><link rel="modulepreload" href="chunk-MU24KCIK.js"><link rel="modulepreload" href="chunk-TRR5XEEM.js"><link rel="modulepreload" href="chunk-FJVMA6GA.js"><link rel="modulepreload" href="chunk-BIZAKOYU.js"><link rel="modulepreload" href="chunk-RHW5QVAY.js"><link rel="modulepreload" href="chunk-HFIC4JNY.js"><link rel="modulepreload" href="chunk-BJGA55H2.js"><script src="polyfills-6QHLTIIN.js" type="module"></script><script src="main-I7BOOCNM.js" type="module"></script></body>
66
+ <link rel="modulepreload" href="chunk-OEIF7NQ5.js"><link rel="modulepreload" href="chunk-WZRSQ7XL.js"><link rel="modulepreload" href="chunk-HTX2RSBS.js"><link rel="modulepreload" href="chunk-OHZGASM5.js"><link rel="modulepreload" href="chunk-65UN5LE6.js"><link rel="modulepreload" href="chunk-WFM6YWRN.js"><link rel="modulepreload" href="chunk-3AIKVVWP.js"><link rel="modulepreload" href="chunk-RHW5QVAY.js"><link rel="modulepreload" href="chunk-RSZISHXB.js"><link rel="modulepreload" href="chunk-ZQSBINUM.js"><script src="polyfills-6QHLTIIN.js" type="module"></script><script src="main-AYZBQHF7.js" type="module"></script></body>
67
67
  </html>
@@ -1 +1 @@
1
- import{b as ye,c as be}from"./chunk-XYMSYNUD.js";import{a as L}from"./chunk-F2GEUOGZ.js";import{a as ue}from"./chunk-N2MDNESH.js";import{a as I}from"./chunk-MU24KCIK.js";import"./chunk-TRR5XEEM.js";import"./chunk-FJVMA6GA.js";import"./chunk-BIZAKOYU.js";import{a as x}from"./chunk-RHW5QVAY.js";import{a as me}from"./chunk-HFIC4JNY.js";import{a as v,b as de,c as E}from"./chunk-BJGA55H2.js";import{a as C}from"./chunk-XP7PWMT2.js";import{c as se,d as ie,g as ae,h as pe}from"./chunk-C6XTRC7P.js";import{a as re}from"./chunk-MAVZY7BL.js";import{c as ce}from"./chunk-SL6SRYFT.js";import{a as Z,b as ee,d as te,e as oe,f as ne,i as le}from"./chunk-S5EF63OY.js";import{a as fe}from"./chunk-JFNFY6VY.js";import{pa as Q,ua as Y}from"./chunk-7L2WUS2V.js";import{a as ge}from"./chunk-45NW2WR4.js";import{b as he}from"./chunk-DOP6RFEG.js";import{A as N,B as F,Ec as z,F as w,Fb as _,Fc as q,L as G,N as T,P as J,Pc as X,T as k,W as B,Z as s,f as W,gb as K,i as j,ka as $,n as D,o as U,r as R,va as d}from"./chunk-L72ALLHJ.js";import"./chunk-7CGTOI24.js";var M=class t{#o=s(C);#s=s(v);ngOnInit(){this.#s.fetchConfig(),this.#o.clearAllNotCurrentVersion()}static \u0275fac=function(o){return new(o||t)};static \u0275cmp=K({type:t,selectors:[["app-root"]],decls:1,vars:0,template:function(o,n){o&1&&_(0,"router-outlet")},dependencies:[se],encapsulation:2})};var ve={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var h=new B("ENVIRONMENT");var A=class t{#o=s(le);isLoaded=d(!1);webmodules=d(null);preload(e=!1){let o=this.#o.getApiV1Webmodules().pipe(J(n=>this.webmodules.set(n)),w(()=>this.isLoaded.set(!0)));if(e)return o;o.subscribe()}static \u0275fac=function(o){return new(o||t)};static \u0275prov=k({token:t,factory:t.\u0275fac,providedIn:"root"})};var Ie=()=>{let t=s(E);return t.token()?!0:t.checkProxyAuthed().pipe(T(e=>e?D(!0):t.refreshToken().pipe(R(()=>!0))))},Me=()=>{let t=s(v),e=s(I),o=s($),n=t.relayIsEnabled()?"longpoll":"websocket",i=[o.get(L).preload(!0),o.get(L).preloadFilterGroups(!0),o.get(A).preload(!0)];return t.configLoaded===null?N(i).pipe(R(()=>n)):t.configLoaded?.pipe(T(()=>N(i)))},Se=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-5BHYO5SK.js")},{path:"logout",loadComponent:()=>import("./chunk-F7E55RI6.js")},{path:"",canActivate:[Ie],children:[{path:"",canActivate:[Me],loadComponent:()=>import("./chunk-O445WX5K.js"),children:[{path:"",loadComponent:()=>import("./chunk-COT4PUVO.js")},{path:"add-backup",loadComponent:()=>import("./chunk-M7ENBMEW.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-HWBBTXU3.js")},{path:"backup/import",loadComponent:()=>import("./chunk-YTDBBO6I.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-2GCIICW5.js"),loadChildren:()=>import("./chunk-CCJ5LW7S.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-2GCIICW5.js"),loadChildren:()=>import("./chunk-CCJ5LW7S.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-I5SC52QU.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-PVLYH62N.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-42DBG4A6.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-JE3JBXTZ.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-GWVX5STR.js")},{path:"from-config",loadComponent:()=>import("./chunk-XZ7HNUSV.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-3GYZOEPN.js"),loadChildren:()=>import("./chunk-3PDXD5UG.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-3GYZOEPN.js"),loadChildren:()=>import("./chunk-3PDXD5UG.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-3GYZOEPN.js"),loadChildren:()=>import("./chunk-3PDXD5UG.js")},{path:"settings",loadComponent:()=>import("./chunk-FBX4Q2XW.js")},{path:"about",loadComponent:()=>import("./chunk-NIBE7CI2.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-476PQHLI.js")},{path:"changelog",loadComponent:()=>import("./chunk-IK7CPFZB.js")},{path:"libraries",loadComponent:()=>import("./chunk-ZRFL62SL.js")},{path:"system-info",loadComponent:()=>import("./chunk-VJQVHIW5.js")},{path:"server-settings",loadComponent:()=>import("./chunk-TRCPJYNH.js")},{path:"logs",loadChildren:()=>import("./chunk-XL7YUTMF.js")},{path:"crashlogs",loadComponent:()=>import("./chunk-YCAQITZE.js")}]}]}]}]}];var P=null,Re=(t,e)=>{let o=s(E),n=s(ie),i=s(C),l=s(h),r=i.getItem("locale"),u=s(ce),a=ye(r),p=t.url==="/api/v1/auth/login",m=t.url==="/api/v1/auth/refresh",S=t.url==="/api/v1/progressstate",g=t.url==="/api/v1/remoteoperation/test",y=t.url.startsWith("/api/v2/"),b=o.token(),H=t,V=t.headers.has("custom-proxy-check")||b===de;if(b&&t.url.startsWith(l.baseUrl)&&!V){let c=t.headers.set("Authorization",`Bearer ${b}`);r&&r!=="en-US"&&(c=c.set("X-Ui-Language",a)),H=t.clone({headers:c})}return e(H).pipe(R(c=>{if(c.type===4&&c.status===200&&y){let f=c.body;if(f?.Success===!1)throw{status:200,message:f?.Error??"Unknown error",error:{Error:f?.Error??"Unknown error"},body:f}}return c}),F(c=>{let f=c.error?.Error||`Error Code: ${c.status}, Message: ${c.message}`;return!V&&(S&&c.status===404||g||u.error(f),m&&c.status===401&&(o.logout(),n.navigate(["/logout"])),!p&&!m&&c.status===401)?(P??=o.refreshToken().pipe(G()),P.pipe(T(()=>e(t.clone({headers:t.headers.set("Authorization",`Bearer ${o.token()}`)}))),w(()=>P=null))):U(()=>({error:c,message:f}))}))};var Ae="1.0.0",Te=`portal-proxy-client-${x()}`,Oe=1,O=class t{#o=1e3;#s=s(h);#t=d("disconnected");#l=d(this.#o);#i=d(!1);#n=d(!1);#a=d(null);isConnectedToMachineServer=this.#n.asReadonly();wsState=this.#t.asReadonly();#p=[];#r={};#e=null;#m=new TextDecoder("utf-8");#c=null;#d=X(()=>{let e=this.#i(),o=this.#l(),n=this.#a();if(!n||!e||!o||o<this.#o){this.#c&&window.clearInterval(this.#c);return}this.#c=window.setInterval(()=>{this.connectToMachineServer(n)},o)});utf8Atob(e){let o=Uint8Array.from(atob(e),i=>i.charCodeAt(0)),n=this.#m.decode(o);return n?JSON.parse(n):null}connectToMachineServer(e,o){let n=o?.reconnect??!1,i=this.wsState();(i==="disconnected"||i==="error"||n)&&(this.#e?.close(),this.#e=null),!this.#e&&(this.#e=new WebSocket(this.#s.machineServerUrl),this.#t.set("connecting"),this.#e.onopen=()=>{this.#t.set("connect"),this.#n.set(!0),this.#i.set(!1),this.#a.set(null)},this.#e.onclose=()=>{this.#t.set("disconnected"),this.#n.set(!1),this.#a.set(e),this.#i.set(!0)},this.#e.onerror=()=>{this.#t.set("error")},this.#e.onmessage=l=>{let r=JSON.parse(l.data);if(this.wsState()==="connect"){if(r.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${r.type}'`);return}let a={token:e,publicKey:"",clientVersion:Ae,protocolVersion:Oe},p=this.createResponse(r,"authportal",a);this.#t.set("welcome"),this.#e?.send(p)}else if(this.wsState()==="welcome"){if(r.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${r.type}'`);return}var u=JSON.parse(r.payload??"");if(u.accepted===!1){this.disconnectFromMachineServer("Authentication failed");return}for(this.#t.set("authenticated"),this.#n.set(!0);this.#p.length>0;){let a=this.#p.pop();a&&this.#r[a.messageId]&&this.activateCommand(a)}}else if(this.wsState()==="authenticated"){if(r.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${r.type}'`);return}let a=this.#r[r.messageId];if(a){if(r.errorMessage){a.reject(r.errorMessage);return}else{let p=JSON.parse(r.payload??"");p.body=p?.body==null?null:this.utf8Atob(p.body),a.resolve(p)}delete this.#r[r.messageId],window.clearTimeout(a.timer)}}})}disconnectFromMachineServer(e=null){e&&console.error(e),this.#e?.close(),this.#e=null,this.#t.set("disconnected"),this.#n.set(!1)}createResponse(e,o,n){let i={from:Te,to:e.from,type:o,messageId:e.messageId,payload:JSON.stringify(n)};return JSON.stringify(i)}sendCommand(e,o,n,i,l,r,u=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(e),new Promise((a,p)=>{let m=x(),g={from:Te,to:o,type:"command",messageId:m,payload:JSON.stringify({method:n,path:i,body:l,headers:r})},y={resolve:a,reject:p,timer:window.setTimeout(()=>{let b=this.#r[m];b&&(delete this.#r[m],b.reject("Timeout"))},u)};this.#r[m]=y,this.#n()?this.activateCommand(g):this.#p.push(g)})}activateCommand(e){this.#e?.send(JSON.stringify(e))}static \u0275fac=function(o){return new(o||t)};static \u0275prov=k({token:t,factory:t.\u0275fac,providedIn:"root"})};function Ne(t){if(typeof t!="string")return null;let o=new TextEncoder().encode(t);return window.btoa(String.fromCharCode(...o))}function we(t,e,o){let n=t.relayconfigState.config();if(n===null)return o(e);let i=Ne(e.body),l={};e.headers.keys().forEach(p=>{l[p]=e.headers.get(p)??""});let r=e.headers.get("timeout"),u=r!==null?parseInt(r):t.defaultTimeout;e.url.startsWith("/api/v1/serverstate")&&e.url.includes("longpoll=true")&&(u=1e3*99);let a=t.relayWebsocket.sendCommand(n.accessToken,n.clientId,e.method,e.url,i,l,u);return new W(p=>{a.then(m=>{let S=new Z;l!=null&&Object.keys(l).forEach(y=>{S.set(y,l[y])});let g=new ee({body:m.body,status:m.code,statusText:"OK",headers:S});p.next(g),p.complete()})})}var ke=(t,e)=>{let o={relayconfigState:s(v),defaultTimeout:s(h).defaultTimeout,relayWebsocket:s(O)},n=o.relayconfigState.config();if(o.relayconfigState.configLoaded!==null&&n===null){let i=new j;return o.relayconfigState.configLoaded.subscribe(l=>{l&&we(o,t,e).subscribe(i)}),i}return we(o,t,e)};var Ee={providers:[z(),ae(Se,pe()),te(ne(),oe([ke,Re])),C,{provide:h,useValue:ve},{provide:q,useValue:be()},ue,I,he,Y,me,Q,fe,ge]};re(M,Ee);
1
+ import{b as ye,c as be}from"./chunk-OEIF7NQ5.js";import{a as L}from"./chunk-WZRSQ7XL.js";import{a as ue}from"./chunk-HTX2RSBS.js";import{a as I}from"./chunk-OHZGASM5.js";import"./chunk-65UN5LE6.js";import"./chunk-WFM6YWRN.js";import"./chunk-3AIKVVWP.js";import{a as x}from"./chunk-RHW5QVAY.js";import{a as me}from"./chunk-RSZISHXB.js";import{a as v,b as de,c as E}from"./chunk-ZQSBINUM.js";import{a as C}from"./chunk-3XVU2YA6.js";import{c as se,d as ie,g as ae,h as pe}from"./chunk-5LKXKKAK.js";import{a as re}from"./chunk-HFNFJ7G2.js";import{c as ce}from"./chunk-AL5KGNEF.js";import{a as Z,b as ee,d as te,e as oe,f as ne,i as le}from"./chunk-FRSQ5NDX.js";import{a as fe}from"./chunk-RHII5WE3.js";import{pa as Q,ua as Y}from"./chunk-M3WT5B3C.js";import{a as ge}from"./chunk-2P3DXYGR.js";import{b as he}from"./chunk-TCDECRYI.js";import{A as N,B as F,F as w,Fb as _,Fc as z,Gc as q,L as G,N as T,P as J,Qc as X,T as k,W as B,Z as s,f as W,gb as K,i as j,ka as $,n as D,o as U,r as R,va as d}from"./chunk-AHUC7M75.js";import"./chunk-7CGTOI24.js";var M=class t{#o=s(C);#s=s(v);ngOnInit(){this.#s.fetchConfig(),this.#o.clearAllNotCurrentVersion()}static \u0275fac=function(o){return new(o||t)};static \u0275cmp=K({type:t,selectors:[["app-root"]],decls:1,vars:0,template:function(o,n){o&1&&_(0,"router-outlet")},dependencies:[se],encapsulation:2})};var ve={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var h=new B("ENVIRONMENT");var A=class t{#o=s(le);isLoaded=d(!1);webmodules=d(null);preload(e=!1){let o=this.#o.getApiV1Webmodules().pipe(J(n=>this.webmodules.set(n)),w(()=>this.isLoaded.set(!0)));if(e)return o;o.subscribe()}static \u0275fac=function(o){return new(o||t)};static \u0275prov=k({token:t,factory:t.\u0275fac,providedIn:"root"})};var Ie=()=>{let t=s(E);return t.token()?!0:t.checkProxyAuthed().pipe(T(e=>e?D(!0):t.refreshToken().pipe(R(()=>!0))))},Me=()=>{let t=s(v),e=s(I),o=s($),n=t.relayIsEnabled()?"longpoll":"websocket",i=[o.get(L).preload(!0),o.get(L).preloadFilterGroups(!0),o.get(A).preload(!0)];return t.configLoaded===null?N(i).pipe(R(()=>n)):t.configLoaded?.pipe(T(()=>N(i)))},Se=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-UXUVYBYP.js")},{path:"logout",loadComponent:()=>import("./chunk-UABJ67OY.js")},{path:"",canActivate:[Ie],children:[{path:"",canActivate:[Me],loadComponent:()=>import("./chunk-LWC5O2JV.js"),children:[{path:"",loadComponent:()=>import("./chunk-VYJFDVMS.js")},{path:"add-backup",loadComponent:()=>import("./chunk-BAX2AJJJ.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-K5C3JCVH.js")},{path:"backup/import",loadComponent:()=>import("./chunk-4YUBZYBH.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-Q2WRB27A.js"),loadChildren:()=>import("./chunk-AZ2DJOXS.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-Q2WRB27A.js"),loadChildren:()=>import("./chunk-AZ2DJOXS.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-DX6BDDDV.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-YY3JAYQZ.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-NUC2S6S3.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-CPTR6AJI.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-3KUVV3SB.js")},{path:"from-config",loadComponent:()=>import("./chunk-AACJQG7X.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-FAY3FX6V.js"),loadChildren:()=>import("./chunk-UDYPOSWB.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-FAY3FX6V.js"),loadChildren:()=>import("./chunk-UDYPOSWB.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-FAY3FX6V.js"),loadChildren:()=>import("./chunk-UDYPOSWB.js")},{path:"settings",loadComponent:()=>import("./chunk-EXY7CUIT.js")},{path:"about",loadComponent:()=>import("./chunk-NPZU4SBS.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-6KSS7VQS.js")},{path:"changelog",loadComponent:()=>import("./chunk-2SQBD7LN.js")},{path:"libraries",loadComponent:()=>import("./chunk-2GE6FFGI.js")},{path:"system-info",loadComponent:()=>import("./chunk-ELZWH543.js")},{path:"server-settings",loadComponent:()=>import("./chunk-WU3ALGNP.js")},{path:"logs",loadChildren:()=>import("./chunk-QVNFX6ZC.js")},{path:"crashlogs",loadComponent:()=>import("./chunk-SSJ4VQB4.js")}]}]}]}]}];var P=null,Re=(t,e)=>{let o=s(E),n=s(ie),i=s(C),l=s(h),r=i.getItem("locale"),u=s(ce),a=ye(r),p=t.url==="/api/v1/auth/login",m=t.url==="/api/v1/auth/refresh",S=t.url==="/api/v1/progressstate",g=t.url==="/api/v1/remoteoperation/test",y=t.url.startsWith("/api/v2/"),b=o.token(),H=t,V=t.headers.has("custom-proxy-check")||b===de;if(b&&t.url.startsWith(l.baseUrl)&&!V){let c=t.headers.set("Authorization",`Bearer ${b}`);r&&r!=="en-US"&&(c=c.set("X-Ui-Language",a)),H=t.clone({headers:c})}return e(H).pipe(R(c=>{if(c.type===4&&c.status===200&&y){let f=c.body;if(f?.Success===!1)throw{status:200,message:f?.Error??"Unknown error",error:{Error:f?.Error??"Unknown error"},body:f}}return c}),F(c=>{let f=c.error?.Error||`Error Code: ${c.status}, Message: ${c.message}`;return!V&&(S&&c.status===404||g||u.error(f),m&&c.status===401&&(o.logout(),n.navigate(["/logout"])),!p&&!m&&c.status===401)?(P??=o.refreshToken().pipe(G()),P.pipe(T(()=>e(t.clone({headers:t.headers.set("Authorization",`Bearer ${o.token()}`)}))),w(()=>P=null))):U(()=>({error:c,message:f}))}))};var Ae="1.0.0",Te=`portal-proxy-client-${x()}`,Oe=1,O=class t{#o=1e3;#s=s(h);#t=d("disconnected");#l=d(this.#o);#i=d(!1);#n=d(!1);#a=d(null);isConnectedToMachineServer=this.#n.asReadonly();wsState=this.#t.asReadonly();#p=[];#r={};#e=null;#m=new TextDecoder("utf-8");#c=null;#d=X(()=>{let e=this.#i(),o=this.#l(),n=this.#a();if(!n||!e||!o||o<this.#o){this.#c&&window.clearInterval(this.#c);return}this.#c=window.setInterval(()=>{this.connectToMachineServer(n)},o)});utf8Atob(e){let o=Uint8Array.from(atob(e),i=>i.charCodeAt(0)),n=this.#m.decode(o);return n?JSON.parse(n):null}connectToMachineServer(e,o){let n=o?.reconnect??!1,i=this.wsState();(i==="disconnected"||i==="error"||n)&&(this.#e?.close(),this.#e=null),!this.#e&&(this.#e=new WebSocket(this.#s.machineServerUrl),this.#t.set("connecting"),this.#e.onopen=()=>{this.#t.set("connect"),this.#n.set(!0),this.#i.set(!1),this.#a.set(null)},this.#e.onclose=()=>{this.#t.set("disconnected"),this.#n.set(!1),this.#a.set(e),this.#i.set(!0)},this.#e.onerror=()=>{this.#t.set("error")},this.#e.onmessage=l=>{let r=JSON.parse(l.data);if(this.wsState()==="connect"){if(r.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${r.type}'`);return}let a={token:e,publicKey:"",clientVersion:Ae,protocolVersion:Oe},p=this.createResponse(r,"authportal",a);this.#t.set("welcome"),this.#e?.send(p)}else if(this.wsState()==="welcome"){if(r.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${r.type}'`);return}var u=JSON.parse(r.payload??"");if(u.accepted===!1){this.disconnectFromMachineServer("Authentication failed");return}for(this.#t.set("authenticated"),this.#n.set(!0);this.#p.length>0;){let a=this.#p.pop();a&&this.#r[a.messageId]&&this.activateCommand(a)}}else if(this.wsState()==="authenticated"){if(r.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${r.type}'`);return}let a=this.#r[r.messageId];if(a){if(r.errorMessage){a.reject(r.errorMessage);return}else{let p=JSON.parse(r.payload??"");p.body=p?.body==null?null:this.utf8Atob(p.body),a.resolve(p)}delete this.#r[r.messageId],window.clearTimeout(a.timer)}}})}disconnectFromMachineServer(e=null){e&&console.error(e),this.#e?.close(),this.#e=null,this.#t.set("disconnected"),this.#n.set(!1)}createResponse(e,o,n){let i={from:Te,to:e.from,type:o,messageId:e.messageId,payload:JSON.stringify(n)};return JSON.stringify(i)}sendCommand(e,o,n,i,l,r,u=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(e),new Promise((a,p)=>{let m=x(),g={from:Te,to:o,type:"command",messageId:m,payload:JSON.stringify({method:n,path:i,body:l,headers:r})},y={resolve:a,reject:p,timer:window.setTimeout(()=>{let b=this.#r[m];b&&(delete this.#r[m],b.reject("Timeout"))},u)};this.#r[m]=y,this.#n()?this.activateCommand(g):this.#p.push(g)})}activateCommand(e){this.#e?.send(JSON.stringify(e))}static \u0275fac=function(o){return new(o||t)};static \u0275prov=k({token:t,factory:t.\u0275fac,providedIn:"root"})};function Ne(t){if(typeof t!="string")return null;let o=new TextEncoder().encode(t);return window.btoa(String.fromCharCode(...o))}function we(t,e,o){let n=t.relayconfigState.config();if(n===null)return o(e);let i=Ne(e.body),l={};e.headers.keys().forEach(p=>{l[p]=e.headers.get(p)??""});let r=e.headers.get("timeout"),u=r!==null?parseInt(r):t.defaultTimeout;e.url.startsWith("/api/v1/serverstate")&&e.url.includes("longpoll=true")&&(u=1e3*99);let a=t.relayWebsocket.sendCommand(n.accessToken,n.clientId,e.method,e.url,i,l,u);return new W(p=>{a.then(m=>{let S=new Z;l!=null&&Object.keys(l).forEach(y=>{S.set(y,l[y])});let g=new ee({body:m.body,status:m.code,statusText:"OK",headers:S});p.next(g),p.complete()})})}var ke=(t,e)=>{let o={relayconfigState:s(v),defaultTimeout:s(h).defaultTimeout,relayWebsocket:s(O)},n=o.relayconfigState.config();if(o.relayconfigState.configLoaded!==null&&n===null){let i=new j;return o.relayconfigState.configLoaded.subscribe(l=>{l&&we(o,t,e).subscribe(i)}),i}return we(o,t,e)};var Ee={providers:[z(),ae(Se,pe()),te(ne(),oe([ke,Re])),C,{provide:h,useValue:ve},{provide:q,useValue:be()},ue,I,he,Y,me,Q,fe,ge]};re(M,Ee);
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.118",
2
+ "version": "0.0.120",
3
3
  "name": "@duplicati/ngclient",
4
4
  "license": "MIT",
5
5
  "contributors": [