From cd3ffd47bbf894e9bb07d0fe0f13c74bf0f4bf44 Mon Sep 17 00:00:00 2001 From: D3W10 Date: Fri, 15 Jul 2022 10:43:29 +0100 Subject: [PATCH] Initial commit --- .gitignore | 4 + assets/icons/account.svg | 1 + assets/icons/accountCreate.svg | 1 + assets/icons/accountDelete.svg | 1 + assets/icons/accountRecover.svg | 4 + assets/icons/add.svg | 1 + assets/icons/close.svg | 1 + assets/icons/copy.svg | 1 + assets/icons/delete.svg | 1 + assets/icons/edit.svg | 1 + assets/icons/files.svg | 1 + assets/icons/historyReceive.svg | 1 + assets/icons/historySend.svg | 1 + assets/icons/home.svg | 1 + assets/icons/link.svg | 1 + assets/icons/logout.svg | 1 + assets/icons/minimize.svg | 1 + assets/icons/offline.svg | 1 + assets/icons/password.svg | 1 + assets/icons/receive.svg | 1 + assets/icons/send.svg | 1 + assets/icons/settings.svg | 1 + assets/icons/sync.svg | 1 + assets/logo.png | Bin 0 -> 73866 bytes assets/logoCompact.png | Bin 0 -> 67654 bytes assets/montserrat.ttf | Bin 0 -> 394260 bytes assets/setup/installerSidebar.bmp | Bin 0 -> 479056 bytes assets/setup/logo.ico | Bin 0 -> 106679 bytes assets/splash.svg | 1336 ++++++ assets/style.css | 1514 +++++++ build/build.js | 78 + index.html | 582 +++ main.js | 306 ++ package-lock.json | 6706 +++++++++++++++++++++++++++++ package.json | 31 + splash.html | 19 + src/home.js | 999 +++++ src/splash.js | 43 + src/utils.js | 768 ++++ 39 files changed, 12411 insertions(+) create mode 100644 .gitignore create mode 100644 assets/icons/account.svg create mode 100644 assets/icons/accountCreate.svg create mode 100644 assets/icons/accountDelete.svg create mode 100644 assets/icons/accountRecover.svg create mode 100644 assets/icons/add.svg create mode 100644 assets/icons/close.svg create mode 100644 assets/icons/copy.svg create mode 100644 assets/icons/delete.svg create mode 100644 assets/icons/edit.svg create mode 100644 assets/icons/files.svg create mode 100644 assets/icons/historyReceive.svg create mode 100644 assets/icons/historySend.svg create mode 100644 assets/icons/home.svg create mode 100644 assets/icons/link.svg create mode 100644 assets/icons/logout.svg create mode 100644 assets/icons/minimize.svg create mode 100644 assets/icons/offline.svg create mode 100644 assets/icons/password.svg create mode 100644 assets/icons/receive.svg create mode 100644 assets/icons/send.svg create mode 100644 assets/icons/settings.svg create mode 100644 assets/icons/sync.svg create mode 100644 assets/logo.png create mode 100644 assets/logoCompact.png create mode 100644 assets/montserrat.ttf create mode 100644 assets/setup/installerSidebar.bmp create mode 100644 assets/setup/logo.ico create mode 100644 assets/splash.svg create mode 100644 assets/style.css create mode 100644 build/build.js create mode 100644 index.html create mode 100644 main.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 splash.html create mode 100644 src/home.js create mode 100644 src/splash.js create mode 100644 src/utils.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..380a34e --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.vscode +build/setup +build/updater +node_modules \ No newline at end of file diff --git a/assets/icons/account.svg b/assets/icons/account.svg new file mode 100644 index 0000000..369d277 --- /dev/null +++ b/assets/icons/account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/accountCreate.svg b/assets/icons/accountCreate.svg new file mode 100644 index 0000000..ef7df8e --- /dev/null +++ b/assets/icons/accountCreate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/accountDelete.svg b/assets/icons/accountDelete.svg new file mode 100644 index 0000000..77d5575 --- /dev/null +++ b/assets/icons/accountDelete.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/accountRecover.svg b/assets/icons/accountRecover.svg new file mode 100644 index 0000000..62d1188 --- /dev/null +++ b/assets/icons/accountRecover.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/add.svg b/assets/icons/add.svg new file mode 100644 index 0000000..bab0057 --- /dev/null +++ b/assets/icons/add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/close.svg b/assets/icons/close.svg new file mode 100644 index 0000000..ade47fc --- /dev/null +++ b/assets/icons/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/copy.svg b/assets/icons/copy.svg new file mode 100644 index 0000000..4468d44 --- /dev/null +++ b/assets/icons/copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/delete.svg b/assets/icons/delete.svg new file mode 100644 index 0000000..45245a0 --- /dev/null +++ b/assets/icons/delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/edit.svg b/assets/icons/edit.svg new file mode 100644 index 0000000..c956daf --- /dev/null +++ b/assets/icons/edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/files.svg b/assets/icons/files.svg new file mode 100644 index 0000000..de0ef42 --- /dev/null +++ b/assets/icons/files.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/historyReceive.svg b/assets/icons/historyReceive.svg new file mode 100644 index 0000000..fc5be84 --- /dev/null +++ b/assets/icons/historyReceive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/historySend.svg b/assets/icons/historySend.svg new file mode 100644 index 0000000..93ba6b5 --- /dev/null +++ b/assets/icons/historySend.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/home.svg b/assets/icons/home.svg new file mode 100644 index 0000000..836cbb2 --- /dev/null +++ b/assets/icons/home.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/link.svg b/assets/icons/link.svg new file mode 100644 index 0000000..68ded37 --- /dev/null +++ b/assets/icons/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/logout.svg b/assets/icons/logout.svg new file mode 100644 index 0000000..21d0561 --- /dev/null +++ b/assets/icons/logout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/minimize.svg b/assets/icons/minimize.svg new file mode 100644 index 0000000..4aa57b0 --- /dev/null +++ b/assets/icons/minimize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/offline.svg b/assets/icons/offline.svg new file mode 100644 index 0000000..9ff113c --- /dev/null +++ b/assets/icons/offline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/password.svg b/assets/icons/password.svg new file mode 100644 index 0000000..f71770a --- /dev/null +++ b/assets/icons/password.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/receive.svg b/assets/icons/receive.svg new file mode 100644 index 0000000..d5f6338 --- /dev/null +++ b/assets/icons/receive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/send.svg b/assets/icons/send.svg new file mode 100644 index 0000000..6dbe5ff --- /dev/null +++ b/assets/icons/send.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/settings.svg b/assets/icons/settings.svg new file mode 100644 index 0000000..4f2de4b --- /dev/null +++ b/assets/icons/settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/sync.svg b/assets/icons/sync.svg new file mode 100644 index 0000000..e7acbd8 --- /dev/null +++ b/assets/icons/sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7e7d887f610195aa93324e181adae6138eabd918 GIT binary patch literal 73866 zcmeFYXH-*B*Di`(x`+sh(iBm;AP~AV0TEE?Ef68}KqNruQE4J7D1wD1(xmrLLO=)z zf`YVALO>J*@M%-g&A&OgJ5D}g9D?PnA9|b;1FjosK3wysGEn6x(FH5EF$FLqAp^kU@U74*MYiw7=-vi z%|cAfokP5wm0d(MHH6fHQ~&}ns6Rv~2&7h`*P*h!$f) zA#3BiLOQ;FP$4Dh>r&3Lva&)-%F<95h};8tS4kl`S-I;n*MZ*~QrG2FR*4_A?qK_ZdTNO@^rKR21{%F4jz*XV!=WqT>gJ`1|^q z`}%tS%Tjm$MMX$XURqY@s+EV2i!Ty!jWNqVAAssY{GsY1fYs!rWUoufDVbkaQc;js zQINI$$0%dK2V5ZjkpCP9m{!*Ox&mNYl^gOBve#8)W&b(Y*Tus%_U3C$FOKA@e7Zq911Lp@W53Wlo$|@;H-B7xr zECrEMke7M@Rh9z*U&y-1D*x+wU0>$_hVlOOybJKW%LC;bfOjfMDMKNOQXu&oASuWV zfQTzZ37~vK(M4A7-_M)+c>vJ^@&4bZ^Kav*==gg3`WgGW01B38xb9yUQZevA0Co!g zXE2ySAO7=`w};SQuTg(jcX3s`E(eu@xXLL=K^1PuOM#%WASrq0>&h-r zkgKwsE9hTR|0mb-QrDHt<*uv9E2_vU0RH*k<@)-6y8b^Na(0LKxIqDMlo9#gm*cU)e&%f6bs1KkgKVY@E z@Cm}aLtQQNptL1o=)S0-!zA6bgavYlM?ur-y7)Jli5IsT+n(~ao?`#Rr<>jO z^xks`Oxv-x$L=ooI-k^DJchTi8C-jEtMS(5xW4JPx_?ADJXhk%`DEN1kMZcaLKY|; z%Hbx+t^7g_3x{x%OpP+J1ac20v;ou5gi9Nst(XSXY)r8JUGYGr{4a@z{(ii9^91AS z#B~x_M}Z$nrb8DQ*GI>MJ|1CwC}%qA&$u$3ee{Tfas6`m)X%@qS~DG1VccM1{TGo# z|A)x`(aHah{p1Tl0CVJ~QBS=y639E(dr{vb^`)N1dE#j&PIp>eZ(2)a{U%p% z?8E}#6}-3S#$vxOR~u>*8Fy*C|U@w1u3Phrb+7gqABF^)F^Q zbn#08gN@jyoxD#w-Qqek1trr2dK9emrU|;!7-E&%vo1)~OTr6kmP2tFRxo8}Q&zrf(B*HG%vm&gCXQ~xe7#gxdp2-mLr!0`>s zUIj{Ar_!@dt9n5Ggwz@qCV8Q5C)mk3YaT%MT!sWMMApN&c4P0azZ<}v*zEC*@B9HU zv-fIN>d4JY{}(gmx(B-nyRxI>BwCXmzko~{g%DBjRPBfQq6JFs518pAi_LK_otqtn z0ES7vKutJjNSc5pMJO_3<CmuSu*G0D?wS znG}W%j70p3o_^=8BXN?5rp;m^nF|?P&YJRn1P*;X`5)9D1JqZV5(rq3-CW@N zEs2B;9DE`;>8VFUQqy^e^~ROiWj`0L=dQ3I;;uKHY!O*SeeO?DK|sX$?M6ucf=PEweu@ z<1?wm#MHwNK>4HNAyfOWVn>~eZU{yN80Dg>7964gKpztU;9a(F3b$*YW-w|mz_@q* z@4c3Xt-D-eZ5PNN5;>S|USgoX_<^#n2L|aeSpIS)jmmT9B(DJ!H4yNa2nuBo zNoK4Wd>707q$}qZc6VMaFgOusEHSdHj>Kq$;H2WjHVx8Iu` zyqO&!oCc_0Wvo9!5WXHe^Vz;b;SGjJkC)U* z3-I-N++N)Ig8+t128;#r=YXqr-Pxfno}=M3E1{etOs5#eaq31{Xn|xtyn$s6Z7E}t zd{O~bK6(PIpO4POY!GiLEM6{L^x6FJu)X2cVnzv-A@X5B(O*XSqc)TUtWvzIc=5D0 zaq4%|$EjIIkUM3U0Mb8&feCwTEoQ=g-W*s-YkIxNni{}7&&1@-u!Eb#`5x?>W8@TJ z+TF*^TUSF!ijDy%fp1R&g2D6dByTt$Ba52P#8;vv7OON~X96sNLjO+s9*W*BWd3u$ zB-GqzwL=%+=8MfG#$3-(E6%=WG;!X`h<9GiX04k}dArYI)>9ecyTt?IfcOvU6Nr{Q zL@rk^8Edz-*$}pIpIcPb{o!yHKy~myK=F^N$~j36GmWcF9x)BR#wSVNjP+T`tB$6C zMbmfz-8yZ3ooY1W>$m$LkyE=9J}9KVc5eAw`nBc21Sf{vJq!uTJpuo|c5=SMw#=XS zrto?CXlH*OE6U*L!BjVc;ZcS)EF}bcRQ1{BV=c#J@+0i3cQ@l^R#qo(0y7m0GKkzh z*zO-4b2~X7>r=!d(;sLMs%1CjNzDYb_-KeBvSr7lPf1$r`N^cFw$=0*UHf>ai5jz? zmTGB8K$nj!{*Hm3>A{{k4s|xr#22qrdD>jhtc%09T_I0SkuL-M;^P3#Sijio3U)6g zg~?cy^{dZYWqRdN`XW|VkrCp6V#-w*iWhgm1$!iiT(?-Rm-_V}swPB3m%%9qz$twF zd-4WehiDppi*k(;O9uC<$(2+S-9c8{f2KK5ae(oxIRV}M%BkVUmwNE^^NODS%;|8a zHwH1Fi(n|klMzB<-I^pbpEG3ewF&k0&qGT!rbl^+m;3Pcl*+|pjPP^fVOS_>I&77!?X#Nd#~Wb-DDHAasc&CW^oxi7%9Twj+voI zlUo{T$k~(g?1gg$GgZ$ue1Cpcd`NghY;b~9!8PEq^eX^|zc&90(jw5K8ZAt$UWwxj zkYTN#=kcmU@%5C1U*8HHRALO9W(x-$HX5;i$3rh_3tC7vvy9k*O5(oX0DZ^*aCNO;9 zvO*g9EWSD@stY-PFuUaFK}aH7Wj4OT!WNfS7;0!`L~eW%8wr!_X{#8sX=$-(ZdU_Q zt4|j#b_Gk=LHZZI!ScVa2s9s~bI>0!3|9Y_?KOIx6MEb1HKWFQrY)5>}|p)Y7nugZR*KzcCM=c#pWccPO^L*HTaE^4OqwHm$afJ|3hQ*1Ztyk&PPy zLWm21pALP%7cWFhr6E}&{pZ^r#zt&@(CcPBQGialv5(!Z@GYe#n1QV<16x#5Gs&w+ z^$Z5yi5~_$<=4LE!61LTsxycz=~5SJ`6=^OJ zBnF3)XE=)*BVM(3%Yy9nK;-YB%UBy8+SB`&PS|R&_;8GVTYexse!8a?x<04(q(zS5 zj_wRIMXoun)lHQLI@;WVsf=UGIb#JDGRE{}4ijUdwB>V~} zPSnVKra__2Uo)dO6<^}IedOVfwxucW6;bMvsd&CAU#-I|pgWWbLmXL#IK|(m8a?Ym z4fQW`$&w0x^(qV!bE)NR@26E$JR6Lp&iu*7r>Rtgw$q3HPR59@s%xcbys?|-isld| z=aEl6gXf!!R!9ORNuM*UtOlHW@Aq!WSKwA3dPBCtDA@J1OJe0DzV&c`%EA*%*cyhnb6bpX!U#RYPXRHoEFCJwQ zdI3E9?z=#b*qwKH75}1T6SmYUV?L#gOLHkgyY?G{s~dyu(Ou28VIVSihlO6*8>B@v z0TL#LdakU|=X`lBdyK9;HanamdNg%d>c%jf(jPbV0EIGozh9Enm>>ETEwxA?BWru+ zG_0%b0{c)BfCKzwMB7~$Zx1$fx{>l$f*@L30t7MMOMMV)KCiwowP=Qtb`2^GHhyPn z(Ug?br?;J&@#`f+SVk7}S*|qA%JOSIn?t5(n2ZN#_t4(!3${LU+CHvU_|6O zJfhod=%6n|l-x^!v!6P*J< zpDzsee|jHRzbmluI?-qOXA~@+VAuZ#kI$LHlCp zQvjIx<9hGG=B=t4uNPut-9BE8zJw5ZL+)>lP#$cM9yM=lQ4F=*QbW7=AiTGc3vy1zOzb({ST9}UK3#9fD?}ztN{(PcK0}=?m1SH@yu()*H^UNRa+0%IuLDYmYyJ zsh6mfvpuY0{e>6TCt&&NN7QO3Q<7SZJ+j^FD|90I?;g?7WJy`BdlF!3C>cg+I!E;K z@s_`^Vgf+PRluH1T=UV0%zD!J;JY`PIQtx-H2v+-u4$%Juf}q@Qkc@r?)eaz_2gBazr4Jg<#mU^LI2)Op-@k7@MHj}LK(RG*ro3NCP9Szncy)i% zqx%7Ba$-P_n-8#9LzWA&x}$Z7NY&5FBNv3RPVVTf`o%t&yo^aiVErTqO34Rh9@pG4 zGVPTjj?N8-VF#mp>tS~&jrtLs*i2p;h2gyXfU-c&z#jGewVdIj6Jx^Uk`=?u`yQqB zlWL-SR(+sXN-}rz3%?J1Fh)66IBrBeEMVoRh-a(#DJ}9_dXF3|0)Pv!8+(MvjYY(F zB}(5{Zp7TM;aOS~5>~J19~>Py!74#El^ILu{6$vbe{IBf;P9R>w8ERfuAC6=%lAoR z3@w|+Ne*wGYkmu;io|dOw@%GPdAX@Zr>j8~&o(Xj`}N*TX00}DrFp|MY!;~lcII{Y z8Y*SFf!1Ml5u34Vi>0;CMAM3X@UUkAWGG|+KYl$2mdan>cj6sD$oE~r;?{RQe~KSu zcgR%D(MOaNbv9y;+nKM$55E}CobVTXf$r`r96ixVgFe8`vr`IUo8yz>4>B2a>=|^P zFX4i%l$DMyo5O#=QZKA%SQ#Y1?3z6SspGU+1!48TzK=mW7_B<2sZ{EvII9DCp=GaG z*2sGJ{LgJ&9*y&3mv}F1mpN`u>Kg!>(goBdfBhs$FF`Z)bUz~fL-v^u^(Qo-{a8Xt z#uWapoVz~Cpq4un>mpKf0mj$B`Zl?`tR!``$^U9&g-w!A9hDN!0jRx)4T#^KFLi#> z(Y;q4f5IsRSrNB^EeiTqYzl4-okvF~IEB z%BVGY-!l)n$;!NhjrJl!>B;$TFv(^k=+8`5ce}CFKN@S!NB2j5uC=VgZ645eOxVgi zirQO)3$J+*>W7gKMuO!Q1=vdh%}k1>q~)g=Gq)>SP;&Cmp4SfX&aCfS$cBFP_hP2t zKYFvQL0|&?ez5_N?34>^5C>E@ z%08qwrU=7-_?d?I#cnN59}Zh+TK?_UBI8YTol;+;*V^v9WS3Cli0)k;$hncmKX!iq z0@!_o9o0OCdIWIi1>_-*c%H=~Sao>9`@gT8YsV3x+D>V5#i*_bi7}~j3t-hZ>dLR| z>289K`L~v3*G8@&%zOV(;*3<%_*e9i*vtW%XwH!@U4R!jLHFC6tFRF*y{LR$GK>*(=Q7? z-(OTX*L5svf!>Rt%1M@C`91~8$QL(4x72D%#v&FX{O2vYOQynBX?k=W2F*(hnr*Ua z$h@O7PZFCJqpC~x1FLG@aug_0F7Xu-AEa#Hg^861QFil`?#8BxG)i~u>mm2=m6>D`466nE zrps1SYFT5y#oKRcY6J091EA{{<_*Vf8$wros7sUWd**8hE2ko{DdWJ8&mrdSdg3kMtf2sB1kkWB4Wabn{ZxrG)!HaRp28 zb-b7-E)JFYT0sL5B~x=MuRIa1LwRL(5l9#);QL_LfqVM+hbf;9Dk)8lQ=-TAKcoAJZ&uWe!_S z%f~6%`PCWWSofK6b;A3LH7uQYMbFrgqHb{&Ybt$UoSQq)^}^=8!2=PHi7EVe{f7jQJw_nip6B--C+)iAcFq zHXNMW4yQbKv4&YgeN~o-vUjlU)A0HL+nCMQSxX3ZDtfcUoLT8j8A1zHUJC5lL&(7% zPD<>~RuTFG@Su{hrqHQRbP|L2V}NR`uhPFa^K+8)EH;-HCoD|%@KV6S=5B$0c)qwK zPlkbM$v8n_;iOi44+GayTuMHUvY+2GOFKS6KaM$ ztwViigFgcT?vd%8gNZvMUKJ?mykDhk!=)DIzk1agMep>5&yJnif^P{CRrAdkE={R5 z%9a027R;~^E#LcM23LLiS!*zcLLBV~vti_|&fQ}Y3&V>@mv zQe$Ng*m@gj15@xYq`It8jJ@&HE~c1*l*A_9&@q@?#u;Cjy~w<7Ry04mx-7QcOvtM2 zwYIReld(A0Tf-l-@?lcHBu{_LT&Bn6;Dt?WbwcaI2AhD?5ibn1MWr5HyA7pDN9H2IlM6dp_jD>dfTzW8BA+50k~^1qIc9 zIo6*$DA*GdpOG<3RM@_z=owbMKgXf8ZuePB`f8N|D`Xi!R*7HffW@$OKWR=2O!j8Z?_e*$(Dx9zMmQkB)bErWGB8P*5i{@%Lu6H&n)r_}pf zpdciFuV}^5&NNsGkB8IZ55x`_rM|O_J*)n7^CtNPSy_o)zBg)f!81g6ePZoH#Fdm6 z+wxhJ6CycwF->BT4T7afwn$F}_1gP}2AQ7l=Ae;?l_z?$lTa72kH@fdh{el&?*9cexU{M^MV_^y%E5~!=qc1Frt}1?M)_}(kS%dKT zlwH9|LepzGA8)$V-ml3F?p^jOhqX+a7HclhGpD?6JJs$>i%d$I_&iK#Oij|26kr^z z9lOZH(TSQTxeDZ_NN_iJ4E-Vo*3)v1b|WbkrXKRReN}!+5{5VIK5Bobqi|~N6%4U# zLzXw?2EQ{no6SN}n{iZ_V& z;d;A>-&?wpl z$DQ!p`W<}8&Cfre`0?-YNwBM$vGN_US)r@8BPI(^9+QyRX=3u2c$WnZM^kcd;SYcef zrmS-@J9MbZL)4e|W4g*|H5!sz${0A>H9hqTRYWfO==hE1GWP7a-=8kCQkzYkph^`% zHXA{c8!a5Pnl?offOwb%xt*G`ccXgL8_ba*y3R~ zY03PU3Q|lXMdqlr_%B*hdm%YHYb`EN2DX>4BKcjzZE@#FMVjYSb%D=fy3FB}};fc3;_-;pmN(Etmm{ahB%_9Q8l? z3T(vWf!*#=()3ZdnfQE(b_jXPdj+<0W*xO{{QcRx)rC;t|!HQ4B!T8|`K5l!|*A6l~g0e|(XSMu%w<<*R>Ap7uF765Z;d9M!!0MK=3RB2z#B_m4ihyO~Rx^E46KvPFF28SDd3En^O!Ko3VHyuQY zMZR1{1Ea%(^df4O88ZfQZ2WvFj_20mrudZYi6O=0k0t0LZ!h+#>-B}$q*T3ehl6}Z z{rsj5L;NqAf5>hb2rzfQQE%ua!p;Zu9^vb@MK&BW_mg6;YLPo11ghl_7L;7H_$0;4 zZ)-VF1H~r_6y+509(f|XHjyxF@nl~pCtv!8q@gu&rCGpo+Durb0bKX;Y!7#qa=pxQ zsFJr#gWwD$5W}vRyh#V@=#MNJDA1>ohSAT94Dc`*Mt{SCtBkLF0nPyWSr5mo&(D#s zQFyKPDZrLO=8kz!=zEN~76;n2SU%vrtvVUyXlrPt9nx1;Mn_F$G_lW{fHh9OB??A* zBKY`1%VG()>tN+|S8f+Vl*iph1WOVsww}BgJa7{qD+u4JH8MVvzaq9qnvnv;S3 zJ3FHm@FZ+T&F!{9+30Ly^5(Vhr}p1hD`w2XjPj4-9Y`mwaqq%IxvWGN*_6(KK9@Iy&YQeM7_|bqt&nUaOsi`)h)FF zp12fQ8ByR3>OFcut28#Cp99wRJB(%EHc){+Z6YPCj<+m*kg2j*Tk1QnKQE^zXoU|uKS3ny}nU0+FYPJi;vmSIs&EN=WoAmF`k-)~Q{UqjM>dgy(6 zh8cbQLH5zs@(VE=eGRtJszDA!{9R+K57idEX0Xj+cIlf-DPD(~s6ak=lNIoT&%ZL) zc9ovh-I-~G8uX@bxN5I|UVe5rJ$%#lPhq%pn-?u^8o#!*D)QhQzO?JILH9Ugy9ph}a&~3V_D_ul?vv){sYs@KiqS7T=ZC{x! zOZnJi^|L)SOc&AeJK^?WSQmolmK{A^YBGT+*+ZN`Z5IHc@tJ{F+Ntmf)EnD)mi6r# zZ@@HG#-VYE;Qi;DgNwO~Ip}XkLtaIQ1Ng1hf?d_m@5N_4C@I!|T|ps~_0dlgmSbWi z3RJhlWnA)cji-0K^bZ{!hiNY9O2vgJo-JDz;5f&c>9* z)}CBakEdEH;Lxo&Z0MLQ@?^)JrcsJVm1y`e5$1ZKotkF`!AiEe^^-rb1l1#Kbz;L z3`J2oD@P0GEVIu*h_3R*G_M1jd!SwpK_%(Q8lH1JO?JY==ZxG=Oj6fOva_(fgE;hq z@O!wh%S&!`s2v?}TIjR72m{_Y@bvkkx_yzb!WU!kQlBz=Hoj#UYZ-5u04=R2!#IZ= zfgdRg&FIYWV~<*DO>Bl?F&O&3CeXTY^AMmdz9n3JeAGr$%Ao*eVf9v(FpPEaxI6L6 z`H9-(jY_z*$nL{QOtRmLC|KUMRo(a|UFXwn4cnU9$Pqq@7C)AishxJ-ulC?q-s_d| znS1SO3fJxZziv-d!c*a+?!wgXT9ri?ADPq`vek(ofwNw`5)~4HL}! zfnzu)#%lch;Y=9(%K3YzqY%p%Rde{kg3;glCpGi^G578gEPGHne%7IK-&|Wmec#oe zZSZQXL#r*h7Hdn(aZL7Yq3LT{Vtc~sY|D|uZ@RFrFf%8xb>HEX5iiJyar9Cj+IDEf zpy)>I(CTy`B#5JEtbSRZ_Kb)VM02sO<*`ubNU81L91b)im;p<%0VtT5D1Zm^_Zz7= zc}Ub2Umni`D^(8^e*)j_Gm_?g1+=#)rseY$&eq>8JvRNje8TROWv5vd7PThiExjLc zSD73estGpr%6~%rEjYr7tOfJ30_IUErK!1_8fH|imcjCmZM#z;1nJ6B{-%p&37V{q z`~hO_680sV)Cf&Xpb`yG4eBv~g3162JYDS#^4q`Xi7EemdHrNrRR5_of^@AnCTy^y zKT*IguMtlp>JkjzjxRXITlAoUY(c{@NU?kwna2BBB`Pd`w8X;b660vcEsilOiP_t# z5ZU29G*yFb9_$EiA@0+_x)~zB(N&mu-Pn4v) zqc3b9Qx;7FID91rL^#MVtArJ-BUP^%giN>I zzB)!0f6cLpL5ol&rkm!dN;qP=y$Q#_%l$f(`pI9AL}RIe*5Dmm$)_Fodjvy=8+XB+ zgqK^Y_ErSb6>{JvC1+E#2CVdOe28%t$>`B~^a!<=JFFfZ3z{dkm??^-+>N0E?7_dWz0jVl31;9ZKYdf$Fv;1I!-K#No*3| zayC)+){l?#Ha)O2d^^?lFfw`XkOJG+0!=E9mrkc~G@@o>O>f4xLdXC!=v5JTiT6;0 z-dKC2JMsY`1~XbyQ;^fl=(Rf!1mEUPK5B|B;eHYGSF^XnQJdCvnd`PfywdS|7mWo0 zE#ly%#)p;ch0&0(Y@&jC5$(Ua5?b7J&mhD#`H9YO!JPXGq9!y(#OUx5SiFz&| zb2T(XvsmJq9L03FAJwgwG;(THYjQ81dngdP<*o|hr)6g2rX%A|(K>LVwLg{}b#;Bt zK1A+XX}$oMVjzO|@?S(S`JE;gJQ)D7Bd$lPb7GJE(LidIU!F_F0}Ws(cntH@VOrrs zNlB7+-I(j|t>0b2p0u`B>tu(b)uP@zR^sz7>U!x-A74x3RA6 zZ&gStcos6OX%wxBuZ0VK3y;leqK8~g<1Dptr}ZCjTx!u^TeA&7ZEOJfSUj-k%mJt0 zkF3Q>St%_btAnb|+-lfc8%wI~)FN1fSEx{X5ACO+1G3tHUitM^yFlTy7~y5{+oHUp zDHXPXIK?pX39?=(g}}Ub2K?E*lSV@|q!Wn_0y1o^^=C_QvW3TI4M2kAyQ8t_lDRSu zUcOsY&h2|VJ&`bHN@}c3hcrtY+8Cxe5%mxCJgUl%-Kg*3^?DLsD>5MxRw*I zd)U5@euB`o%lX|(SD1m4b7yElea`l zdHa){2*-YCfh=2tmolk7R0IC0gFV=LS3T3E&`mdQLO)zX)SrJ__%#P<>PhMA14cs& zP>%=MQQ<3ZfKx@kCTm-V6&X(a8V#yIU6N8d8?;P)YXA9a=_f0PQvhSlsEN>?DlOHM z!atdFg##wsqtZZq_9XbS#=Fw>L6yKZqE-UjOuIT{A^J^>zqdd7h?e))2w2 z?RKikd1%WTBv>+HC&sgYq^{Hw?MCRTYAzsTOGABl6b&yOHAkHQkaYJPz?vJ7*Z-1y zAweoYv_89=#y*&W_&JEKKR6$esWl?LoUd?)_kd%TrI}mV9MoHQCo}SPz-*zRC+}G0 zv=@~HGa2#XFm>+JP0i^Oiw>N4o<9B4-#f#5DBiBfx4NR?6a?K=D(&{{^7~+NA=Mv; zTDMhD=IL=LE31cREM@yWl;Zhy0%ba;_w=J-fLx=s=1@F$>g_!gkm`XP0g!hS(Q(XzTP73U6~o4+`*xQXg4P8z$V3)H3aCknrnJFJCBrp2lXmgJXMp6bDoisHve zfOpgPa~Vd91&rqXk0iw;J8|VwnSO0|vDyCft#OrCi5X!l4SL>=(aAgaVjhZgoFs`< zvc5lYzVhNqh*IS^^&t}{Ci}Q&+=;o5w590C)%F&}IId$SerN0uwG7_+Z>h13j(HUn zBE1Da!3IJdSi4>aNi7jRV_Sa;z#QlQtZYqCL2OekzujllFq6b4AX>Fm9?1jkCh)Ug zlQ-;zOrpPCBgLnD1Xnep9bdu1ZV2&H&FY%pK?KpbG0uxUmu?ALoh!{?%{%rOWi`c7 z)K_p57A!T_{i|tnP8JD$Z;962Y=16A8J%3#O9LAYA1uYL^kFCP6w91vYAn02SSru% z>sPf?-r6*{urH74JzJ%AHVv_|zls-#Y(_{e`JzVXVO1c2sSRMiULGNpT_WYCn_IXU@j=B&%2EmpdXiW%5uEy=rHu=CW) z0=(NTcKfF^-*&x3iT$*aFlQ_|wU zbN3_ifODDM;>$U1cm)fsk}TC)(*P{BP4Ide^48FL+{~1>LTDAIVA1!4CkV}AO5q5E zUPBWr{EhjTVQY$}VWn|fd)+U;gwGEBEKqe#i24>OvLih)L$FP^Yg;EcaFdQ3-VF~#ml zknhDB5yuAlv&4yIg599?<|sD}%(kI-0|wQAHY zgA>e&C$!Y_1)eO^JtJD2jvL<_1xV!<^mjDh5%Wnhi8OW$authk!G>LUr^!ek7 z_&M%xxqJ8h?m4+JHVyRo!>z$0P*;g5nvAF{XW<0axMa$*AcUk-d;fNV`OhjX2ZH|a z?xom`m!Yl5K%o^N<9^`)t3;*$_k-7^MVEg zIxz88qqyc&m;v1v;Aauo6PK$1joHfn2DR@__nURwVoTqt5kmW)wAS;*yd_!Q7bo{+ z{qB0YYM&H`etjsSwz2k;=r5A^0wyz*SLo&U@IBoAGwk8R(kFBF z^N(f782 zDa_2yuxzCGbGoul$P#6uN%2~u@+$`reL^o9!POTV=@u~=acop&fr#fU3k&GRPKcFs zl^*!CMBLXI!M%(X-Oy^5Y#yJgGsXOFug`y))J?G3{3(@NrdK$fy%1Cfp2jMBij90d z-Q(c$UPV%)9~Gd^yS)ARMPFr`+r3f!?O85w`X8Vf=x-Z(T4NB1JbgGoybe9lbGqL+ zx9qDhcC7&noT53xkg9gn!?^mVZ2cb6Ok(JlQWv6kMw*OO=ac{7I$Ath)V!SsU7OQ8 z(XNJVt= z2HD0PB$HV1rsLUA_VHHn>g(AO?AsqK4u>|IRZK#Dn!ptx<={`ho8F}UJhEce>`*VJ zUYzGuc5G#L%8O6gyp0 zx;(gk>|p{8{VT(tEA&)v)JDt8J(w5I;)F^HOXbzYHuN$@3i+aR&iO7Y#TF$OUg__I zjK4Wef%{c~kZh|BZY=W%Nv{k2dMr;IzA1Yf8km+ML#EUMH0#dZ#_=XuEVWgRtiN9MfjJWM z=&G9s9K|%%#|y!k01HG8B=T*?Uu z7xz3E!Ov!FIs#>1kUB#PIL+l0{&tMjGh{+_`i@nMe_12=vXw_dVv;mks1)nUOnTt1 z%2Vo`Om2}mQt0@wK(N9GnnbC<5Nw zV=0^y5n1uYevj`oYpaJDkYxs+AdNw$VU7XnKkh196>YUBr7U0+B{dYdCgy5>9rFSW zk3Bse&cy}v$HDyolt1fxp+_}0tFk)h()+{=FQr<^^}Xp=hbrRPQ((Bj+k2T|F#euq zAjJ;$wDGvgK3u>-zpbEp;hE-G+5N2*-=qb%l`U&QQ>iQ?%^b>=mqy2YOMYK0t+F#M zO5;2)K$hWo=_NtJ-Fov=9i00-uuo{tZm9h!n6OaU(hIC|V!&IGPJO?Dca*{d-5gi+ z+N`{-h;PqnH#`;2sSR>)pi~3!WiB>XU@;x>(K0rPpU}BgLT`0Pb?s^N_uLkryGSvl zcxyLwLKRkBi&`PSOu{pZT06$#qZVB>JPo`Ejv{s^Fukoih-3^VT}E2o6Uh zi=HIks@KaRJPQ$y_opNc(>4Zr{)P0jZBo4Mv?@?KNdX!%on9$UH5R4W z;UI>0%Q(`wwL|o-W=Q0OcB9XJ69=~52M+lcd*Ve4e|8mS)06BhG7+%0ZRf%_$f0cm z)taG$Xg}0OE;jCuh?Wg2X-WmFxvd2%K7}l!II@n_MlJSjztT-*pDeaG+e{HsCJI0z4 zOm2^@YAGz)zN7;*je&iME=-&$?b27+4*N?^>p$O1 z+p(e21}8^DS}b8m?tVwg3=jnIjP1n9ZQva|_6f7Y2$$f>J++QXWt|3Y+Qi=Lg$AG^ zYX!WImGlKlxE{7OoZdg{uHehs4dElx%UEZ-DlM+89i@E6WQv-AKU+3YlO0NKPtdKI zYXuu8yvnFwFZ758sh|CFsXL9|s*Wo0`H<@A*`d|+dZAN5;$AzJ`K!u~_!T$`lmuRm z`_h*jyV0Z*wRw$TGV11%YA8(nSh`+cl7{NoYuz=_EI!eK)l*Qmx^C)S7Cj$Pql&&m zb8Nm{x+OYCjsVwnPWH0YH$S9Q>7sGOn%e>5K`+mDm!vWm;%l1}(uxSWw~n^Oko2ie zY@`KrN_yMgWGJLr23V){fW8%wIK4XGd?r8iL2o5$g<2z z9ejet$`IUc{TzX;pZ7WwCc;~dD{bFCx9v69#ohi5x#I}5oq{wDt31jcjYUv86{jet zU~MUam8~lxxW1BQ+Y~W2+<0)*#zI$+Yi?&^pu!_^%xkMnd9;a#YCSA+CNjUIS6BMc(Qj=df|~N9Hc1BVpxET>^cU21mX!SiKRovBD4A_Cw65RVEBN|2(bfZoc}~McrvJXumqiGUa*-LNfEu?=No@Q^^~}t-F26$B~PBW0n2e z&Qvw$l|N0v8z<3o;iMKXhf|!6X8bY*X=2(K52}Ht5kOs?*F(np@@UgQnNAFKa8JQA zw7mC+`aB(I{QtEI#4U#_e-FxD_uvC8zFuM;Q8?qIM@*hDZ3gZQ;3w#X8cJgUB=`@tfE*=r%Zv=;3Tu0E}SB5=vzgAcU#0xbT*bNkz z4Af*{EseLrZU;04(%rs4bkW6-{uK?)sLFjX{? z`ZH2l)>ajb`;qo-{8{K)RlfO$x4QJif@Up0BYic63fF*f`Zx$4oIEYuU<0xWzn#pL z+#hgdl)o^?)Y&JC>kmHLp_K~{Ab(D&s-%w5>cy77j3oCYvE$;mwiZW_<%S!Rp(phair-RSNXp-Ir+&1r6fuT@ZZMMUQ|;}tD)_hEY6Bu$fKB! zW)B=S2ADzid)rNMY#Q-$y18Kf9hraOMi7R09`ab`+6O8I&=bEEMtQ;-ONK^_ck_aBC_GGe?LoxMLcF{*X(1imA>yU314e zxMe*-=pGQ40v=+1&{R&XQa zW=0M+nl?hmL=SB@Y`j=$Aj{q7VkX>E)ilCR z$X|Kq_iMDOh%-E+mi%3^X;-s~%Sv|fwm_f3Ee3;lYg7wYtuU&_chz}csq%$UDtZOH zx2yGGW8UA8c99e8Y+_1Ormc4inc*JM4pmwKA@hL^Ol$BGp3WuZ#@Cku^>E>R#levO z%gjl{KE&Hs#xT{Am}xFjgo(R~8DsMuQ{qS9Z@v%T(;w?}O{(*Mw-x2`u&(3^ntjpj zFNi9ZayNcE)>%bfTrF}FI7#IyH-V^+eFM1 zOMx3kHwOE^3Xb>BYaH?3_>DS-#~L2)Hm?80ViUi_lR)kB&5QCQ9tg`5IG1{8%G~&f z>6K-tAM+jdk-HZJeQphCH4R7y|B{y4!Yo*h@3{RSrk$n@T3!v>Z+0~`T##yX+^~%A zhVrrLaz^w4q=F?%f%TL?r@`IEfO#NCe!@j8zRCc{=K~N&*ZFoTWf!@eOAZxd__mC0 zU=4>djwI&ppJ$&^KM@s21hxfVXS8PcN3C@y*97wy`Y^3iGOkxRm$0IYGn1EQVN04# zh#t+$hUD?(Ul5Ut5i%T92QGq4kn}=IWkxA>Hn7ckNg0ddxM!k3>=o+72mq7nBXIma zxPYg;{5KF+?*}=VWSBm1E6W%q%MlKQe7*(}ze&8EQm&FCeBZv=`3LBPs*D!rFyl56 zXAZoZhplUZOw$jZ+B0N7pE#x5I+2Rly5sM*TpUF@Ir2$)xab`*A}z)H#wmIu@NFgl zOu{qpAlUkdS}IM4eUW+XV_5f#xdES?irB+b@(jPYj92b|&P}P>$_ad=XFsZNSbn{3 z_{~C_A8(w4cK`d3ThnXR~ zgWsS=`A6$pnT!>4Plz+}h9{CeMb~svB4=*1Ts@S`IAHhE*@}E?5A^q-QdMZCOgodl2mx{rTs*gO}|G^+6vX}YJAeh1D(z% zdwSTs<=`X1)?QJZ#@%JwzSa(M#5*ou&oJH9XFQK&M7WPa{RAQ()m5p#e&Ka?g#?qd z<^Kz3Y9wIYNxL!9UGmT*P#KcrnO@W;F$nB~53fVGGe6*nm5k_W}Prj(iIzE5*s&v6>4fA~=;w!S~ zHDlHFPR#he^t@Ckvh!@;BSi&tnu!R;gl9+Jd+d_$_s{wrEnh3;#=~X4ba@!^H=F>W zmGjf?n2yL+e%^rQ`GjMHQwBF{KfO7|JYHzPJI{97uI684|JY+9^g~{-bkPU0r9`S; ztk8g4_k@vldC@JOqMl&h-zlC@+)>pRI_!ipT42X2yq(9NaM{%z(A1QpJIm)GQKGV3 zUtKqC?VbJ_a>8Z($BqJSeRxiApQ0bIQtWps@ovXrqu1n34@_pJy-eR0efDTt=F8xt zUW+G>*L@lTibhMR`I)24-M$4;|3Xo(SM)~*(oU0fs-c*QqA$+;j=4c*yqTcN(?nrF z_Y3iC5$>*NpUx8jvD)3UBX8Z(3)ZCs2{7M&W({f@MNx{WT49Im!A6_|GmD&lBK&Re z^T}~{t;6B9gRjQp=ERr92a@HhUsLZXW?bCerICCopJgSc?P%54mXq?X)byJgE}Uuq zMd+=Da!4*(WY_F^(R7Y~ZJKoB`dQ<|TsU*hkUxfaYuGYayI=*Ma-lvf*%?0?{{7i= zcUlRmlW~;9+i(JiiPrV1F>0sSI`-jaa<|-91-167R7V}o$pN3bcFq*tP4TL^bnwc?YKEavlyc6nsKt!>YUN`Fh4m<6zsjQEJBh+)`6{@M49d zkHrT{cAVRyr+&P6B;fQujPmWL_!-8gkz zSqRGUBRh6q;h9J|+x$e@n8frU0@qQy-#v1H5vNpq4ynBD3|>&!kX#fC%p?Wd<~hYA z<|=0vK4Twu>Q_6`*(CZIcPpRS3L|h5Dl0SQtaekO7hO&?oB(P*0?^b~oi|`jwMdV1 z@myrzrF(LY$7i#Guk2!7f#SQVs2+BK=3906kAdt_6UOyc^$!+zO7c>3!&1U&Xj=HY zmi!SXpK+c}TYMPT;43eAhQNL|qGfRVwWZ}O<8dPmlBA39znSjT7;5bF1a))?_XrxH zQ{I+e9I|?_I=mSRufHv?fUe^1sQIHCiu5Jjs<*k~VNUafO3h^bImv-%&M_;`u6sRc zt;zc)%#KTJ3-a#@C=|`&fBoDH(VP+rupMB)I9H01n&1ub0(UZVk55kVZfUiUT5N=D zzapl7O`cjf8(z!TNzmte>x_4KGes!^i4NX~y@%!!biYr$&8=n@r7F zgJoaNNg-fUzW$4MLzwXf{G6gH5?0sZDr5M2;`!G$z6Jjs4x?b$2^`kHCWeK~OwoD= z=8rwOHR5rV^b#lYK~eYT6n>qT&*)pz;FDW3@l#5dn#~1|lu$d4cREY1p>K_}hohbA z3xf!dPN3mK=GVm5EyKs`T<^G_NW3@Tik%qoO^s*`o@OVMUw$>S+U<-Eoz+erj6rRP z(Pt*-zq%P*Qm?kSqu`zyI@E}FdlGYp163O4b#G2}B#ERxuqim$hGIa9}sMI@zfXWGh2fAGY=2b6M??iiwl#%y=X@{JDm zNA1_uTIwB^CqObREs34Lrf=b2oF^%8&dVSnDC}M8;qjxrP-lT2KiOAO&7i#E>zStB zm=m2@%f}vd-g}%+?EW##46fWQ!cP>}89)X=bm`Q_iEjax%Xd3?6N^p{95UOl_Tq zH{eT+I;0a|9b8}VXdyM!8G74|J$rY)MwXJ<1c-glCeI}4t+D#k>a-ERSZ@^jGFuhL zB1YiJ_aV)&3c(i@l{Z&rdX9FUNpKR_Rx(i^PndEJ2QO7Q_-!+u5RZgVKpjzOc^a0< z3wZqYqPC$U>obef?pVtWmn1myZqEMRxJhK;q~5CKSsIH~N{z(Wakw9g(s2=TBmWcO z2LpNBc(+}{3gq(<_SweZ;S|Mb;!{Xs6wu=2Ce7LBEu`jgq0@m&*NPqyQ{ZnGKVi-; z3{t~Ck+iC~7Ol!qpKx;Kk9!h)eJ~oQ#?S&BRIEUUjmkh+&etfcMV0m3(8R4pnCAH4 z?f{W&T5;eXz|jJu+SbqdV^q|y2l+Gd%f3_F;2~v;{v}ncdheFl;}_lqtJqmwIKLNp zSH4Ri)&bg7GiM36`*iFsI>vmNIbQ}BA;0!WXoOpu%8PD~U9D+lJdi%g@{i?$MZH(J zUrXm*hH2eVKx-|b_R{)o`Rv4@!b=9W6ScyIyekG#PwU<+dr8z zrCObV`O@QNsGJ&1V_d-Z6E>m6BZnKDK-hBwyIZD`nWFNgtE_m_MHQCz>5pvjN60`EO1vbf?<2x3C1@%%!9T>?9n>z@})bQZL z^>5q^yrBM@*!d1@m(UwlMGJ6Og2{d>+|AM#zEqKJd8aLlt=Et`F~~0#DE(}8Z;P!q zwjTQWh-!_W!JPYA!t$9D!6$rATWE+jB1_-ST7uVdH{O+e{U~7E$%nr$y128eJ94sN z35b)3hzOuW{Eo!331dVZ@3AjtGfTrZz6XLd9H}wQ=HPIYulLJUc>$}EtHVa(6ZW)@ zgRb`P{s?@>k~yqS6$_F?I2y}Nuf(=hZ4J*Qx7Fmm*;#JWr;nKrG=P_)&%` z`LZQ`+T@|;Gx<6PpC0WSqZYs!Ch)3P47ZH3&D^D`65_t-sc}Lma0`m2{GAkId|Rv2 z(b$D^2^oWV#1SFZ@fvL@h|!)&-j3~+^X}xoo}0gDym(EksMbor1ISkABQWTyNbigC z+Vpk1ajj}xBW!xo_w?99aZpxRK>H+BLOj--s5uaAaq19R4|=UXrRaFi_=GRgeFn8m zWr#k}`UjzOJ(spk+0p)W4~zLF`i)37c1 zpKyI1Z!f{rQZN=Dt3_^*-@%cMp9ADMSFk1Bx0#>F;!Q)+c)x=40z4nz+!WoE8WRx8 zV6@9dJnH#@#Q9%7WoD@m1-lNs+p+Sez!%f>|{}716;zNcx1?#rsj}QFmf(c z)`I8ijOJ6uaDb|_@n{@xUW0>Z(J`YPKIX#`_NQ7LLX0b{N-6J1VO`o#Dg0PfPL$tg zr{bc5AQj8(v#GN1JBS_f%p1ze@rDaP|1Z>KBYSNRQfqF}&2fXpYK>cwL!rGEJ|}) z8gIXD`u*kxtV%RnGR6)(S#Sx_-QLXzH2O(-_9jV!UiNBjph#R%A5O< zeHj_T_51!4S`;&iyqceWMh`Xhv|5eK)VBF+QoBsSBZ0B#;&C=oTcyIHBHalS> z*lBfN(W=bbUaeWPAi3bhODnfuXYBMFnb|5-+LxFe_cuXCAHy(ghLj$7`fLyLc#-AF zdBLJAOjY1LNCBu*|3h;QAMRk)n|DZY4cx#S>C}5Lg&j8SHcL9xW5`ePmQ!FJ&NgIz zujf-~{sl)ZX4G9z1y}>xUv)#hd~)+b^E5dQ5qh`VRuKQ8htYQ^Q@--;7uETy#@yVw zZ;HD{ADRk6Z$x&7$>w;uDLf6TIE5|$Ub?kL{iTHwr^cIUT2wAaPx&=W*Wmu@{p`{f zEj$(YRm9?qXY8OBqR^z`9UMl4Q$K2(?K2Suu48>c_}Ey_&A`&&Yfq07qv7?JHI=R! zdrTOPr!6|$e(>+R`}cjlxX}X!&J6MV%u{_kfgUt`+*^w;4Ba&+H)XCdi_>vqY1o6c z*$`IDjQ;Ia;xa>xyYRbjcUkN$xEhUjE3k^As}p|eN8A6dIRVHFcc{W*hbkEgS68*a zQv3y)cu=b4q&9K#`tG&2mkcl+T|yXe+#n;CNhUn)q5R1;d3dL5l+U~p2htCkuPE}` z;~5s0Fae8d6E&sgyu~SprB*rp)E!AST~Lwl=bn7rkXB%EAlWMS7o)ji#ltC9J_=(y zf-R)|A$B0XKID-^+CIa(m3M|}eS;`oiDnaS+;XaZQSzzd9ehq?&FIr(%=LFm845w- zQoG;Hxms!ug}fXI-ROQXbP!b4op{X4HP3d45Z+GNU9v{7!Y>06c~jkYbgW8*TgBjx zz=OtC>)^(%+RGb9yu@BnHp}j>&W9J|DCpg1C2W>>X9x0G-=?)8@C#cD zNmLamHPWk`W08%6fL^``OT|6VKn8gNIlEUl(qK_bLH&AiuITa2JF-J=eAbnGjl7+M z&B}53jq~Mkhz_=t3*|NL;a_O7JRelth2n~fYN4xZ9EY3Orw>t_r^guqbhsaaFX_h_2R7i&!uy)3e=#n}Z6QIH?68`p6GO5dL;EQ~N@u+ipoqtID z-1u_9%1y!8J3oORcKeKXMTOqqaGdOVLWD_cvjnQWE!&m{5s=-_tgJ)^W6FY(a3dWg&V11@kiQ!ZWYzgxQ0A z?D7AH624eskXP+i3~)U-DATA`_q=mb83G_m^&s#I(Pg6?^p#Yf;3%J zYkSNXJER?yC1rX7Mp6SVRT-m9wJodf5TQT;yO8z)4PNP#iCRtITrilDp|kL*z!}+8 zHd?xsTJaYFyZJMrlqTb@jAgf4rgVoX2w?&uT(CMLhC{9Bu1II!>_NOgIVGesC)Lxk z#kzj*bnt4|Ihy;ksj0d&fZ}VxHX#)f51b#KIhnC7HnH_NU>K^NOH1bM?9wSd5)?7D zJfJD%trlcI#xozMl1( z8arcUDrKi$QM~LdH`@R9~ha;6YCE1RUdhK?`jpWCjAncewfYn&9>6V zp-pge_1|?Jcl^UJwoS~?lEWlzvTVh*haR|^WoE!ADyphB#SIs@ie>#*OCs*Z7mM;* z(G@yACFGIQ0Bc%VNIq&|lwD=%b!Rh0?yVwC#EO43-g4FbOO6xig?bDj4zox_yal|J z3q)PRZ*W~dMyOh9?6j9LJWsvydcXF06eAs3vi^y{IO=+cnXNq<6r=Q9$c}n?jQ@U_ z{sVdSwo_95(1_Ng%Ed$f{9*lOFbJ2}`gz^}Vl3veLZedPYnq2c=R%fJ&G|b7s_jZl zVA-iLfp)d|(fGF?JjB(|o^$W0cK+EeBo)+hnF{MaB+R2;fUkuCZZhvy=$TDxlJF=1 zAl6mX%B9x3P`-Gy)e^&UldMciD@38wZ^9|IhNB2o+JSEYms`!Ir4p_wXKQsZzeWVr zg8ezSkPe0P0==mJ11!x?b9P2^w&m?u($Aec8Y0Uw!81@%%o!7&>=!Q3-@Q^~TRPp2 z_P(VmnryIq<%W>m=&cNftJu1UHmsh~+9b2Ia{*Pr)5&swZ@>;Ppq}QehuAvcjeFSd zkB62uW^G5a-M81y_#DhVYi$2^?4^hu=Q`#Zn$g=rD=?EeKSUK>zM|i$wo$YDPy?o` zfyC7FK5kS04(xFkzh0u%B)F6Hwtfd29QT6Nd(tfi&q;7uG@pc2fh1tiHM~i|9moZdIbRG+-@b z-VBL7d8~egy8mDB=UE$=t^*LQi#HbfzQfC!Fw*<}%`PTFb=;zM)4LLV{^3tlMgYiG(}RvO4NHR~QSc{`C2b=Nh< z!E`EmTM#)8K)1)hfU6$>ld*rxi>SMKEq*}=j}nOOO4RA!4u3m#qA=mev)oZXOR4Iv zAa7n9o@T=B*6=q78o|tRn?Y3q##K*s zBtuTQBUS*!ssa!cRy?s?8&zsV*{IfDjahP3>#dV$nJ{mP(Xi@ak_Z4s2Rl0=a};tb z67|z^zE!MvF_cACtdqB~`z@HWUR#5-4kDa(ya9DC^M|)glveuFcV$v+TlfLn;ZO}s zRz=&+D_$H%ulSnhC}19>*t)jZx(4soQ{I3-&BxFJ6Ov-;(qbh?W67RLGR%RB;K@EUp)gBRaZEiHXXH#T<#IvPkD#%9SVW^6}Fnh^=y_W$9?GdH&I=~SxN`VI(PiLLA6 zOTt^{6H`g`ICcJ5D}mUFqp=e_Yq+*QKELzMWma_;i-|htb%=Z`;`wt)W!J0e%mHA`olk1H6a}svi5<_h8&r3Lam7I#6t|Aevm9Glym$I%}gVAFg70`UQw81l3~;Z^Xm&3I(gw*S{aE0<@O zZ=JL7G0$@dfVR%DHzX@XHK{Jah!&GXx+kh$x`C61Koa+`Rj&Wsfh})Pa9IzoUb?DQ z>Ejgrjqo{X|5HZo$h)AKv@Hna)E-L7bzQe_Rc`3ke+Y!zS`}YoH}`7xsau|JoI#VjLNwRo7<5J+%}WI!mY>`E&gF_I zAMFQQZh16C4TTW$uqc->oYc%caS5AgD{F|T$m&-q@{rxc*LI`+ontG(hPxewBAd~6d+Bol$YdcF~57*3HOrZRV zQHc&){oV*K;qyBTY1jhkB*?o2Xma*&ZRI)jY!M4a^%XO{yi@>MzlXpR^16eEcHy~~ zkjG4nWy-ghk5nfa*dy3ifZ=`?1dSkaf6_z8lT4Sg+VNpS0i=Y%7dSiFN8p1!G!MwB z0?|90lgV$h*656iwxBBaK?ZWvl2|^>xYD)koI}?INFyN+|Ix2e;!V}-^qRJynjtvd zk@)O;#$7;L*MD;?8t2h=g=K}8SgX-S7Bck&y6e5c>^N|WdoQ&i-zwgnF#6Ej!|VI@ z#8}#T8hUI%lfX(!+5?R|XV-`~#dTbqAO zn3Jct;h9FRx$))UTRl4iol9WwC;z@+a;uE|V|hfYe2#pwgzI}zc#fAk*jLfs!dmkS z!ptlO&2Xp7LyN|yU>g%QZC*n~<+Xg^#7lwNg1~v~{M?q~JNv^Ov6t0d@6-kx`GtWn zfb|~u{i*i9)fE=!#ztdF=Vl*T>1$R+`#ifFQu(Nx9k7!L@I@i5tv_eG52wJ1h?173 zK*>7g#YSW$hvwt@!TIKu(ZGj*_d54*P(v5)#wZHBP8#~;#e2Fzg)V_yw3!B z`A5wNo)rR7bl+o&s1qWHb7QmcK)X@R{Em^@O5>y>5o51TEVKOY3*TO7<>*+t8)#Q? zU5yD{qn{?{Ng{&|A%mie`?tYs4P!LnOH#8re%7O2fm6*8)78#}lStnO(f=ps zZY#d3`x0e-@&UTl9LAD@4zw7@F%ucPB*yHEjN>FQ8OWW3;Vj;v)iA1~m7U0HMD3BZ zk6&dfEvnz_)KQNj{>r)wLPEUuE_6flk;`b7CGlIM41CRZJ)-=kOIOaaG&_s?PuYI@(ZV#{u0n2Us=4@>I*<8IaJ)&$hCb!v$Xy$NZrk@=2>JOF# z#2@;{TB4fXd!jwg|)t*{2`bY93HiH-1gLhL_SzKJ30z2RPr{YQ{-)B(IuvLKVTo>Bg z@9Un!)qJk!{06-TD1Ciit`5e7;RJG0Bxe@z_5P>DPEuqz^K|Rn<@;0=eq$}JiyU-Q zKgn_ZIG~yIKbmje@HVy;3H5b^BYX>NNV?5)1GP2?j2i7d&}Do5FCZuEZvAAi3>+vq z*!1J2y#)`_i@_CMlfuX=whvNGSyl^sQwZ*Z!M|nSwLe#qA>^ulwZ6)=;tBD+4asI& zmeh!>$|5&LbKPLP0*gNf93;rQOP%R~>%tR7uEUaNgifk2{iddG47;)U9U<3<7U$Ic z4qgI``cK|V)(ooD7ZbPU_$}7*k_U35p=pB|38cJ2a9RJ8Hplh3HfPW0O04wAXfIj% zQhevJ1R3SCrk{XR_=i{>QfSi#GBrO3BG>pt-sGsQx){XcY%u2J$4YZZucm8HJ;3Si zsSf>Y(I>=i@4FFP8TaaAW@{X>l1N!y<1;@( zW2Ati## zhgck#;p-!Y$K{&pJ3Nl57&>-q^nW%$rb+bbFm#B@^xqUAQ)7IceIC5{0Cpq%@8D$$ zm6gol!p5Bj@g<>6<1Ot5Nh}-UuE;JUN*mCB-2axj>7ea?#!6na_!ALPHNPO}in2@C zsBEI=W&NKjlnT!9b4{@^R8bH_xIb`bj-T~t+aQiG=NA#)uNWg3y^5)RGo8`9%jPa>MAES zGMcTaX5oc9+DZAlkfO11u|;sEOQ(g%#T2h3#;^HX-y>V)hcj^7u@T!75@X~kcV%6@ z=RSZx_^@EoU@hJ)6W*=kyaCk_+x)y+sKX!qmzPC0dv>M8c5i7QO*N2rHIO?t>RX|x zf$9Q?WC#Br+RNdw1@xK>18T$}aFRY)Qp@PzC}Z>x=)o)(n-ZLjCmw6SEUyt{fP*3` zCPvmD`YGBvKRV~2F*_06s;9n)gzjR0S{&#ECivIYS}p7bXo_`3V-|FDvWnLUtsB5c zv|5cK)$AD~=s~rm?A_ZMmZv+Jf0~ffzff}7I7rUN@)t0nbkfUghRD^RV+=Pd-RAJq zX>jhs?!DO!G+<^LFdYrpLk+hNL$fN8tyU9AHCs$ff!Mm5*m~3+6>!(ef+sHm-p?Ae z@L$A7wSve8c;MjvTlK;kv$;kO_*F+^+eIiN(#%^fk%@(5K6IzcA9-*6B|Z9^Bx9*Ip--J@#!nau-=Ck(-5O~g6E#-lO#iXaB;>0I zbN<+*s8*d{2{B$U#&fattUcQ4)sY(2$bRodAP(7ve}$1--v_y-=fb9m&No5Tms(I! zA#^{=`o!LtpdXpTzm{aOLNzKMQ=WQRZngtnW)6XPkBMYh^*%M4rT-!`t<|{Q{u>|T zK;g&~sW<#R?C!Px4ZP;8vnZ8MZ{EYTfpb2&UsZlFW#{>4*QqoPqb@aA(QdHc#Fm^! zE*)b1cyBIW(3OlgAn|@m1yvuW4??SeYd{Feiu#42wyhU4cG_C|Yvw*Pnq@UXHo7`v zQ>^R#M_O1sQ_g4ESdb#p?6^oD^rHG5IH;JuN8O8>ugD*Wdrxc5= zmyogWE(c-EnTFa5Bu+}Ay6t?5&QM}UQuDc}=v29aEZ-5M4c9XVD%#XSF6@!+0O&I} ztQuYSX@ruZ{fP-W&(-hoNx+Y{&-+hj&J>OzrqWfOUTM!;w_FI{&e(oPZ{_YMrezXnPQ87|2D+Nya0qecn1G}d|ip}xT?pT9K zyHNrF8(_WXMhszc@PR`MivP~#z_(<5@$Z|umU^8EdvoGJq}H0>SE)bJPyPm4;r*yd zcjdv^9YWu{)Uo-diQIYCruQ62Avq&q6qOOQe+12;8&|Y95-b;Q8a>yEi%^y485VMNoasf;-#YZvw2j zMWkM$A+S$(!`?AB=grP4)kB58p0B<9S>VKxTjOI~vAnDhr@gD#t2rx}Q{}xv%L>>P zC^5$bF8@wrITji6wtSCyL{5t(nN|24wh3N7$Q!VQ6(DUj*!t~Pv~VT07mJFBkg8k} z*)~WkJ5i$zgQi`Uz8X*B5@-kL*Y@RU@QSs_s4q6mjeoM|^hKry@+sQ|jRV32j0)kdl)9n6 zS9qtbs)1Qtskr6QP3KZ zj25t@>hlIn`TwdrJ$CVOIpqtrM`BL4hSu0FGU^uIK-b~=yoIPqn+jN
<9M@lWP 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 N?|szkmgkpg{{U|f`^5kN literal 0 HcmV?d00001 diff --git a/assets/logoCompact.png b/assets/logoCompact.png new file mode 100644 index 0000000000000000000000000000000000000000..04c585639622acff54c7ab8e02e7ac08fd423a2c GIT binary patch literal 67654 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
    y#i#`vVs`OFlM_I1wQi4*m8 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

    7_{b` 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

    kXo%`vDf|mI&l* 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 UaWo7+_+UQZ`7qEU`YtvD0HrOmpa1{> literal 0 HcmV?d00001 diff --git a/assets/setup/installerSidebar.bmp b/assets/setup/installerSidebar.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b08944f453fcefd3d1b836ceeb0fa05c23eb9753 GIT binary patch literal 479056 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 literal 0 HcmV?d00001 diff --git a/assets/setup/logo.ico b/assets/setup/logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..29cf85af62855daf33a0990678437af71dc45031 GIT binary patch literal 106679 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 literal 0 HcmV?d00001 diff --git a/assets/splash.svg b/assets/splash.svg new file mode 100644 index 0000000..98ce314 --- /dev/null +++ b/assets/splash.svg @@ -0,0 +1,1336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/style.css b/assets/style.css new file mode 100644 index 0000000..53c45d3 --- /dev/null +++ b/assets/style.css @@ -0,0 +1,1514 @@ +:root { + --background: #ffffff; + --foreground: #111111; + --red: #ed4e50; + --orange: #f69a68; + --overlay: rgba(0, 0, 0, 0.1); + --littleOverlay: rgba(0, 0, 0, 0.05); + --scrollbar: rgba(0, 0, 0, 0.2); + --textShadow: 0px 0px 10px rgb(100 100 100 / 35%); + --dropShadow: drop-shadow(0px 0px 10px rgb(100 100 100 / 20%)); + --iconShadow: drop-shadow(0px 0px 10px rgb(100 100 100 / 70%)); + --insetBoxShadow: 0px 0px 30px 0px rgb(100 100 100 / 20%) inset; + --sidebarBrightness: brightness(0); + --gradient-1: linear-gradient(100deg, #a2facf, #64acff); + --gradient-2: linear-gradient(100deg, #ff7170, #ffe57f); + --gradient-3: linear-gradient(100deg, #3bf0e4, #bca1f7); + --gradient-4: linear-gradient(100deg, #db469f, #2188ff); + --gradient-5: linear-gradient(100deg, #9867f0, #ed4e50); + --gradient-6: linear-gradient(100deg, #2188ff, #804eda); + --accent: #00CAF3; + --codeShadow: #ffe57f; +} + +[theme="dark"] { + --background: #000000; + --foreground: #eeeeee; + --overlay: rgba(255, 255, 255, 0.1); + --littleOverlay: rgba(255, 255, 255, 0.05); + --scrollbar: rgba(255, 255, 255, 0.2); + --textShadow: 0px 0px 10px rgb(155 155 155 / 35%); + --dropShadow: drop-shadow(0px 0px 10px rgb(155 155 155 / 20%)); + --iconShadow: drop-shadow(0px 0px 10px rgb(155 155 155 / 70%)); + --insetBoxShadow: 0px 0px 30px 0px rgb(155 155 155 / 20%) inset; + --sidebarBrightness: brightness(2) grayscale(1); + --codeShadow: #806600; +} + +/* #region Common Styles */ + +::-webkit-scrollbar { + width: 5px; + height: 5px; +} + +::-webkit-scrollbar-thumb { + background-color: var(--scrollbar); + border-radius: 10px; +} + +* { + box-sizing: border-box; + scroll-behavior: smooth; +} + +body { + width: 100vw; + height: 100vh; + margin: 0; + padding: 0; + color: var(--foreground); + background-color: var(--background); + font-family: montserrat; + font-weight: 500; + overflow: hidden; + user-select: none; +} + +h1 { + margin: 0 0 20px; + color: var(--foreground); + font-size: 1.3em; + font-weight: 800; +} + +h2 { + margin: 30px 0 10px; + color: var(--foreground); + font-size: 1em; + font-weight: 700; +} + +p { + margin: 10px 0; + color: var(--foreground); + font-size: 14px; +} + +span { + color: var(--foreground); +} + +img { + display: block; + -webkit-user-drag: none; +} + +button { + width: fit-content; + margin: 0; + padding: 10px 30px; + display: flex; + justify-content: center; + align-items: center; + position: relative; + color: var(--foreground); + background-color: var(--overlay); + border: 0; + border-radius: 10px; + font: inherit; + font-weight: bold; + transition: color 0.2s 0.05s, opacity 0.4s; + overflow: hidden; + cursor: pointer; + z-index: 1; +} + +button:hover { + color: var(--background); +} + +button::before { + content: ""; + width: 0; + padding-bottom: 0; + position: absolute; + border-radius: 100vw; + transition: width 0.4s, padding-bottom 0.4s; + z-index: -1; +} + +button:hover::before { + width: 105%; + padding-bottom: 105%; +} + +button:disabled { + opacity: 0.7; + cursor: default; +} + +button:disabled:hover { + color: inherit; +} + +button:disabled:hover::before { + width: 0; + padding-bottom: 0; +} + +button[alt] { + height: 30px; + padding: 5px 20px; + border-radius: 5px; + font: inherit; + font-size: 14px; + font-weight: 600; + transition: color 0.2s, font-weight 0.2s, opacity 0.4s; +} + +button[alt]:hover { + font-weight: 800; +} + +button[alt]:hover::before { + width: 0%; + padding-bottom: 0%; +} + +button[alt]:disabled:hover { + color: var(--foreground) !important; + font-weight: 600; +} + +a { + color: var(--accent); + font-size: 14px; + font-weight: bold; + transition: opacity 0.4s, filter 0.4s; + cursor: pointer; + text-decoration: none; +} + +a:hover { + opacity: 0.7; +} + +a[disabled] { + cursor: unset; + filter: grayscale(); +} + +a[disabled]:hover { + opacity: unset; +} + +input[type="text"], input[type="email"], input[type="password"], input[type="tel"], select { + padding: 5px; + color: var(--foreground); + background-color: var(--overlay); + border: 0; + border-bottom: solid 2px var(--overlay); + border-radius: 5px; + font: inherit; + font-size: 14px; + outline: 0; + transition: border-bottom 0.2s, opacity 0.4s; +} + +input[type="text"]:focus, input[type="email"]:focus, input[type="password"]:focus, input[type="tel"]:focus, select:focus { + border-bottom-color: var(--focusColor); + --focusColor: var(--littleOverlay); +} + +input[type="text"]:disabled, input[type="email"]:disabled, input[type="password"]:disabled, input[type="tel"]:disabled, select:disabled { + opacity: 0.7; +} + +input[type="checkbox"] { + width: 25px; + height: 25px; + background-color: var(--overlay); + border-radius: 5px; + cursor: pointer; + transition: background-color 0.2s; + appearance: none; +} + +input[type="checkbox"]:checked { + background-color: var(--accent); +} + +hr { + width: -webkit-fill-available; + height: 3px; + margin: 10px; + border: 0; + border-radius: 100vw; + background-color: var(--littleOverlay); +} + +option { + background-color: var(--background); +} + +icon { + display: flex; + fill: var(--foreground); +} + +imgx { + background-image: var(--image); + background-position: center; + background-repeat: no-repeat; + background-size: cover; + border-radius: 100vw; +} + +pbar { + width: 100%; + height: 5px; + display: block; + background-color: var(--overlay); + border-radius: 100vw; + --value: 0%; +} + +pbar::before { + content: ""; + width: var(--value); + height: inherit; + display: inherit; + background-color: var(--accent); + border-radius: inherit; + transition: width 0.2s; +} + +#app { + width: 100vw; + height: 100vh; + display: flex; + flex-direction: column; +} + +.columns { + display: flex; + justify-content: space-between; +} + +.columns > div:first-of-type { + width: 40%; + min-width: 40%; + display: flex; + flex-direction: column; +} + +.columns > div { + width: 60%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.spaceAlign { + width: 50%; + height: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.spaceAlign > div { + width: 100%; + margin-bottom: 25px; + display: flex; + flex-direction: column; +} + +.spaceAlign > div:last-child { + margin: 0; +} + +.spaceAlign > div > p { + margin: 0 0 5px; + font-size: 1em; + font-weight: bold; +} + +.spaceAlign > div > button { + width: 100%; +} + +.spaceAlign > div > div { + display: flex; +} + +.spaceAlign > div > span { + height: 19px; +} + +.spaceAlign > div icon { + transition: fill 0.2s, opacity 0.4s; + cursor: pointer; +} + +.spaceAlign > div icon:hover { + fill: var(--accent); +} + +.spaceAlign > div icon[disabled] { + opacity: 0.7; + cursor: default; +} + +.spaceAlign > div icon[disabled]:hover { + fill: unset; +} + +.spaceAlign > div > icon { + width: 45px; +} + +.spaceAlign > div > div > icon { + width: 30px; +} + +.iconFocus { + justify-content: center; + align-items: center; +} + +.iconFocus > img, .iconFocus > icon, .iconFocus > imgx { + width: 50%; + fill: var(--accent); +} + +.iconFocus > imgx { + padding-bottom: 50%; +} + +.blockOptions { + margin-left: 30px; +} + +.blockOptions > div { + width: 100%; + margin-bottom: 15px; + padding: 15px; + display: flex; + align-items: center; + background-color: var(--littleOverlay); + border-radius: 10px; + font-weight: bold; + cursor: pointer; + transition: background-color 0.4s; +} + +.blockOptions > div:hover { + background-color: var(--overlay); +} + +.blockOptions > div > icon { + width: 30px; + margin-right: 10px; +} + +/* #endregion */ + +/* #region Frame Bar */ + +#frameBar { + height: 40px; + width: 100vw; + padding: 7.5px; + display: flex; + justify-content: space-between; + align-items: center; + -webkit-app-region: drag; +} + +#frameBar > div { + display: flex; + align-items: center; + font-weight: bold; +} + +#frameBar > div > img { + height: 19px; + margin: 0 10px 0 4px; + -webkit-app-region: no-drag; +} + +#frameBar > div > div { + width: 25px; + height: 25px; + margin-left: 5px; + display: flex; + justify-content: center; + align-items: center; + position: relative; + border-radius: 5px; + cursor: pointer; + overflow: hidden; + -webkit-app-region: no-drag; +} + +#frameBar > div > div::before { + content: ""; + width: 0px; + height: 0px; + position: absolute; + border-radius: 100vw; + transition: width 0.4s, height 0.4s; + z-index: -1; +} + +#frameBar > div > div:hover::before { + width: 35px; + height: 35px; +} + +#frameBar > div > div:first-child { + margin-left: 0; +} + +#minimizeCircle::before { + background-color: var(--orange); +} + +#closeCircle::before { + background-color: var(--red); +} + +#frameBar > div > div > icon { + width: 20px; + transition: fill 0.4s; +} + +#frameBar > div > div:hover > icon { + fill: var(--background); +} + +/* #endregion */ + +/* #region Content, Sidebar and Tabs */ + +#content { + height: calc(100vh - 40px); + display: flex; + flex-direction: row; +} + +#sidebar { + max-width: 230px; + min-width: 230px; + padding: 10px; + display: flex; + flex-direction: column; + align-items: flex-start; + opacity: 1; + transition: opacity 0.4s; +} + +#sidebar[disabled] { + opacity: 0.7; +} + +#sidebar[disabled] > a { + cursor: default; +} + +#sidebar[disabled] > a:hover { + opacity: 1; +} + +#sidebar > a:first-child { + height: 60px; + margin: 0 5px 5px; + padding: 5px; + color: var(--foreground); + border-radius: 5px; + font-size: 14px; + font-weight: 700; + cursor: pointer; + transition: opacity 0.4s, background-color 0.4s; +} + +#sidebar[disabled] > a:first-child { + cursor: default; +} + +#sidebar > a:first-child > imgx { + width: 50px; + height: 50px; + margin-right: 10px; + border-radius: 100vw; +} + +#sidebar > a:first-child > span { + background-image: unset; + background-clip: unset; + text-shadow: unset; + filter: unset; + -webkit-background-clip: unset; + -webkit-text-fill-color: unset; +} + +#sidebar > a:first-child.selected { + background-color: var(--littleOverlay); +} + +#sidebar > a { + width: -webkit-fill-available; + margin: 10px; + display: flex; + align-items: center; + font-size: 16px; + font-weight: bold; +} + +#sidebar > a > icon { + width: 28px; + height: 28px; + margin-right: 10px; + filter: var(--iconShadow); + transition: fill 0.2s; +} + +#sidebar > a > span { + background-image: var(--textColor); + background-clip: unset; + text-shadow: var(--textShadow); + filter: var(--sidebarBrightness); + transition: filter 0.2s; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +#sidebar > a.selected:hover { + opacity: 1; +} + +#sidebar > a.selected > icon { + fill: var(--iconColor); +} + +#sidebar > a.selected > span { + filter: brightness(1); +} + +#appTab { + width: 100%; + height: 100%; + border-radius: 10px 0 0 0; + box-shadow: var(--insetBoxShadow); + overflow: hidden; +} + +#appTab > div { + width: 100%; + height: 100%; + padding: 30px; + position: relative; + opacity: 1; + overflow: hidden overlay; + transition: opacity 0.2s; +} + +#appTab > div > div { + width: 100%; + height: 100%; + display: none; + flex-direction: column; + opacity: 0; + transform: translateX(30px); + transition: opacity 0.2s, transform 0.2s; +} + +#appTab > div > div:first-child { + display: flex; + opacity: 1; + transform: translateX(0); +} + +#appTab > div > div > div { + width: 100%; + height: 100%; + padding: 15px; +} + +#loadBar { + height: 7px !important; + padding: 0 !important; + display: none; + position: absolute !important; + border-radius: 10px 0 0 !important; + transition: width 0.2s; +} + +#loadBar::before, #loadBar::after { + content: ""; + position: absolute; + top: 0px; + left: 0px; + bottom: 0px; + background-color: var(--accent); + border-radius: 100vh;; +} + +#loadBar::before { + animation: progressFirstLine 2100ms cubic-bezier(0.65, 0.81, 0.73, 0.4) infinite; +} + +#loadBar::after { + animation: progressLastLine 2100ms cubic-bezier(0.16, 0.84, 0.44, 1) 1150ms infinite; +} + +/* #endregion */ + +/* #region Home Panel */ + +#homePanel > div.detailed > #homeBasic { + display: none; +} + +#homePanel > div.detailed > #homeDetailed { + display: flex; +} + +#homeAppName { + font-size: 17px; + font-weight: bold; +} + +#homeDetailed { + display: none; + flex-direction: column; + overflow: overlay; +} + +#homeDetailed > div { + margin-bottom: 15px; + padding: 15px 15px 15px 10px; + display: flex; + justify-content: space-between; + background-color: var(--littleOverlay); + border-radius: 10px; +} + +#homeDetailed > div:last-child { + margin-bottom: 0; +} + +#homeDetailed > div > div { + display: flex; + align-items: center; +} + +#homeDetailed > div > div > icon { + height: 50px; +} + +#homeDetailed > div > div:last-child > icon { + height: 35px; + margin: 0 10px; + opacity: 0; + transition: opacity 0.2s, fill 0.2s; + cursor: pointer; +} + +#homeDetailed > div:hover > div:last-child > icon { + opacity: 1; +} + +#homeDetailed > div:hover > div:last-child > icon:hover { + fill: var(--accent); +} + +#homeDetailed > div > div > div { + margin-left: 10px; + display: flex; + flex-direction: column; + justify-content: center; +} + +#homeDetailed > div > div > div > span:first-of-type { + margin-bottom: 5px; + font-weight: bold; + transition: opacity 0.2s; +} + +#homeDetailed > div > div > div > span:last-of-type { + font-size: 14px; +} + +/* #endregion */ + +/* #region Send Panel */ + +#sendPanel button::before { + background-image: var(--gradient-2); +} + +#filesSpace { + justify-content: center; + align-items: center; + position: relative; + border: solid 5px var(--overlay); + border-radius: 15px; + transition: border-color 0.2s, opacity 0.4s; + --focusColor: #ff7170; +} + +#filesSpace[disabled] { + opacity: 0.7; +} + +#filesSpace[disabled] div { + cursor: default; +} + +#filesSpace[disabled] > #filesList > #filesContent > div > icon { + opacity: 0; + cursor: default; +} + +#filesEmpty { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + opacity: 1; + cursor: pointer; + transition: opacity 0.4s; +} + +#filesEmpty > icon { + width: 45px; +} + +#filesEmpty > p { + margin: 15px 0 5px; + font-size: 1.1em; + font-weight: bold; +} + +#filesEmpty > span { + font-size: 13px; + font-weight: 600; +} + +#filesList { + width: 100%; + height: 415px; + padding: 10px; + display: none; + flex-direction: column; + opacity: 0; + overflow: hidden overlay; + transition: opacity 0.4s; +} + +#filesContent { + width: 100%; + display: flex; + flex-direction: column; +} + +#filesContent > div { + height: 43px; + margin-bottom: 10px; + padding: 5px; + display: flex; + justify-content: space-between; + align-items: center; + background-color: var(--littleOverlay); + border-radius: 5px; + opacity: 1; + font-size: 14px; + font-weight: 700; + transition: opacity 0.2s, margin 0.2s, padding 0.2s, height 0.2s; +} + +#filesContent > div > div { + display: flex; + flex-direction: column; +} + +#filesContent > div > div > span:first-of-type { + max-width: 232px; + transition: max-width 0.2s 0.4s; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +#filesContent > div:hover > div > span:first-of-type { + max-width: 192px; + transition: max-width 0.2s; +} + +#filesSpace[disabled] > #filesList > #filesContent > div:hover > div > span:first-of-type { + max-width: 232px; +} + +#filesContent > div > div > span:last-of-type { + font-size: 12px; + font-weight: 500; +} + +#filesContent > div > icon { + height: 20px; + margin-right: 5px; + opacity: 0; + fill: var(--foreground); + transition: opacity 0.4s, fill 0.2s; + cursor: pointer; +} + +#filesContent > div:hover > icon { + opacity: 1; +} + +#filesContent > div > icon:hover { + fill: var(--red); +} + +#addFiles { + padding: 5px; + display: flex; + align-items: center; + background-color: var(--littleOverlay); + border-radius: 5px; + font-size: 14px; + font-weight: 600; + cursor: pointer; +} + +#addFiles > icon { + width: 25px; + height: 25px; + margin-right: 5px; +} + +#sendDetails > div > div > input { + --focusColor: #ffe57f; +} + +#filesUploading > div { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +#uploadProgress { + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; +} + +#uploadProgress > svg { + width: 250px; + height: 250px; + stroke: white; + stroke-dasharray: 75 100; + stroke-linecap: round; + transform: rotate(-225deg); + fill: none; + --value: 0; +} + +#uploadProgress > svg > linearGradient > stop:first-of-type { + stop-color: #ff7170; +} + +#uploadProgress > svg > linearGradient > stop:last-of-type { + stop-color: #ffe57f; +} + +#uploadProgress > svg > circle:first-of-type { + stroke: var(--overlay); + stroke-width: 4px; + stroke-dasharray: 75 100; + stroke-linecap: round; + fill: none; +} + +#uploadProgress > svg > circle:last-of-type { + stroke-linecap: round; + stroke: url(#uploadGradient); + stroke-dasharray: 75 100; + stroke-linecap: round; + stroke-width: 4px; + stroke-dashoffset: calc(75 - calc(calc(var(--value) / 100) * 75)); + transition: stroke-dashoffset 0.75s; + fill: none; +} + +#uploadProgress > p { + margin: 0; + position: absolute; + font-size: 80px; + font-weight: bold; +} + +#uploadDetails { + width: 50%; + display: flex; + justify-content: space-between; + align-items: center; +} + +#doneInfo { + justify-content: center; +} + +#transferCode { + text-align: center; + text-shadow: 2px 3px var(--codeShadow); + font-size: 60px; + font-weight: 800; + letter-spacing: 5px; +} + +#doneDetails > .spaceAlign > div:last-child { + margin-top: 25px; + flex-direction: row; + justify-content: space-around; +} + +#doneDetails > .spaceAlign > div:last-child > icon:hover { + fill: #ff7170; +} + +/* #endregion */ + +/* #region Receive Panel */ + +#receivePanel button::before { + background-image: var(--gradient-3); +} + +#receivePanel > div { + display: flex; +} + +#receiveCode { + display: flex; + flex-direction: column; + align-items: center; +} + +#receiveCode > p { + margin: 0 0 15px; + font-size: 16px; + font-weight: bold; +} + +#receiveCode > div { + display: flex; +} + +#receiveCode > div > input { + width: 35px; + height: 35px; + margin-right: 5px; + text-align: center; + font-size: 24px; + font-weight: 600; + --focusColor: #3bf0e4; +} + +#receiveCode > div > input:last-of-type { + margin: 0; +} + +#receiveSide { + justify-content: space-between; +} + +#receiveSide > hr { + height: 5px; + margin: 0; + background-color: transparent; +} + +#receiveSide > pbar { + opacity: 0; + transition: opacity 0.4s; +} + +#receiveInfo > .spaceAlign { + transition: opacity 0.4s; +} + +#receiveInfo[disabled] > .spaceAlign { + opacity: 0.25; +} + +#transferMessageSafe { + height: 19px; + position: relative; + overflow: hidden; +} + +#transferMessageSafe.moving::before { + content: ""; + width: 100%; + height: 100%; + position: absolute; + background-image: linear-gradient(90deg, var(--background), transparent 5% 95%, var(--background)); + z-index: 10; +} + +#transferMessage { + width: max-content; + position: absolute; +} + +/* #endregion */ + +/* #region Login Panel */ + +#loginPanel button::before { + background-image: var(--gradient-5); +} + +#loginPanel button[alt]:hover { + color: #9867f0; +} + +#loginUsername, #signupUsername, #signupPassword, #forgotUsername, #resetPassword { + --focusColor: #9867f0; +} + +#loginPassword, #signupEmail, #signupPasswordRepeat, #forgotKey, #resetPasswordRepeat { + --focusColor: #ed4e50; +} + +#loginForgot { + margin-bottom: 10px; +} + +/* #endregion */ + +/* #region Welcome Panel */ + +#welcomePanel button::before { + background-image: var(--gradient-5); +} + +#welcomeInitial > a { + display: none; +} + +#welcomePanel .columns > div:last-of-type > div { + width: 60%; + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; +} + +#welcomePanel .columns > div:last-of-type > div > hr { + height: 39px; + margin: 0; + background-color: transparent; +} + +#welcomePanel .columns > div:last-of-type > div > p { + margin: 0; + font-size: 17px; + font-weight: 600; + text-align: center; +} + +#welcomeRecoveryKey { + font-family: "Cascadia Code", monospace; + user-select: text; +} + +#welcomeFinal { + align-items: flex-end; +} + +#welcomeFinal > div { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +#welcomeFinal > div > imgx { + width: 150px; + height: 150px; + opacity: 0; + transform: scale(1.5); + transition: transform 1s, opacity 0.4s; +} + +#welcomeFinal > div > h1 { + margin: 25px 0 0; + font-size: 1.5em; + opacity: 0; + transition: opacity 0.8s; +} + +#welcomeFinal > div > h2 { + margin: 10px 0 0; + font-weight: 600; + opacity: 0; + transition: opacity 0.8s; +} + +#welcomeFinal > button { + opacity: 0; +} + +/* #endregion */ + +/* #region Account Panel */ + +#accountPanel button::before { + background-image: var(--gradient-5); +} + +#accountName { + margin: 20px 0 0; + font-size: 18px; + font-weight: bold; +} + +#editUsername, #changePassword { + --focusColor: #9867f0; +} + +#editEmail, #changePasswordRepeat { + --focusColor: #ed4e50; +} + +#editProfilePic { + width: 100%; + margin-right: 5px; +} + +#editProfilePic:hover { + color: #9867f0; +} + +#editDelete:hover { + color: #ed4e50; +} + +#accountDelete > div > div:last-of-type > div { + width: 60%; + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; +} + +#accountDelete > div > div:last-of-type > div > hr { + height: 39px; + margin: 0; + background-color: transparent; +} + +#accountDelete > div > div:last-of-type > div > p { + margin: 0; + font-size: 17px; + font-weight: 600; + text-align: center; +} + +#accountDeleteProgress > div { + display: flex; + justify-content: center; + align-items: center; +} + +#accountDeleteProgress > div > p { + font-weight: 700; +} + +/* #endregion */ + +/* #region Settings Panel */ + +#settingsPanel > div p { + margin: 0; +} + +#settingsPanel > div select { + --focusColor: #db469f; +} + +#settingsPanel > div > div > div:first-child h2 { + margin-top: 0; +} + +#settingsPanel > div > div > div > div { + height: 30px; + margin-bottom: 10px; + display: flex; + justify-content: space-between; + align-items: center; +} + +#settingsHistory { + display: none; +} + +#settingsHistory.loggedOn { + display: unset; +} + +#settingsAbout > div { + height: unset !important; + margin: 10px 0 0 !important; + justify-content: flex-start !important; +} + +#settingsAbout > div > img { + width: 70px; + height: 70px; +} + +#settingsAbout > div > div { + margin-left: 5px; +} + +#settingsAbout > div > div > h2 { + margin: 0; +} + +#settingsName { + margin: 0 0 5px !important; +} + +/* #endregion */ + +/* #region Offline Panel */ + +#offlinePanel > div > div { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +#offlinePanel > div > div > icon { + width: 150px; + height: 150px; + fill: var(--accent); +} + +#offlinePanel > div > div > h1 { + margin: 25px 0 0; + font-size: 1.5em; +} + +#offlinePanel > div > div > h2 { + margin: 10px 0 0; + font-weight: 600; +} + +/* #endregion */ + +/* #region Popups */ + +#popups { + width: 100vw; + height: calc(100vh - 40px); + position: absolute; + display: none; + justify-content: center; + align-items: center; + background-color: rgba(0, 0, 0, 0.4); + opacity: 0; + transition: opacity 0.2s; + backdrop-filter: blur(6px); + z-index: 10; +} + +#popups button { + float: right; +} + +#popups button::before { + background-image: var(--gradient-6); +} + +#popups > div { + width: 40%; + max-height: 460px; + display: none; + padding: 20px; + background-color: var(--background); + border-radius: 15px; + opacity: 0; + filter: var(--dropShadow); + transform: scale(0.5); + transition: opacity 0.2s, transform 0.4s; +} + +#popups > div > h1 { + margin: 0 0 10px; +} + +#popups > div > div { + max-height: 300px; + margin: 15px 0 20px 0; + padding: 10px; + background-color: var(--overlay); + border-radius: 10px; + overflow: overlay; + user-select: text; +} + +#boxPopup > div { + font-family: "Cascadia Code", monospace; +} + +#popups > div > div :first-child { + margin-top: 0; +} + +#popups > div > div :last-child { + margin-bottom: 0; +} + +#popups > div > div h3 { + margin: 20px 0 10px; +} + +#popups > div > div ul { + padding-left: 10px; + margin: 10px 0 25px 0; + list-style: none; +} + +#popups > div > div ul:last-child { + margin-bottom: 0; +} + +#popups > div > div ul > li { + margin: 5px 0; + font-size: 15px; +} + +#popups > div > div ul > li:first-child { + margin-top: 0; +} + +#popups > div > div ul > li:last-child { + margin-bottom: 0; +} + +#popups > div > div ul > li:before { + content: "•"; + font-size: 1.3em; + font-weight: 900; + margin-right: 10px; +} + +#popups > div > div.buttons { + max-height: none; + padding: 0; + margin: 15px 0 0 0; + display: flex; + justify-content: flex-end; + align-items: center; + background-color: unset; + border-radius: 0; + font-family: inherit; + overflow: unset; +} + +#askPopupButtonYes { + margin-right: 10px; +} + +/* #endregion */ + +/* #region Splash */ + +#splash { + width: 100vw; + height: 100vh; + padding: 25px; + -webkit-app-region: drag; +} + +#splash > div { + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +#splash > div > div > img { + width: 50px; + margin-bottom: 20px; +} + +#splash > div > p { + margin: 0; + font-weight: bold; +} + +#splash > img { + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +/* #endregion */ + +/* #region Font */ + +@font-face { + font-family: montserrat; + src: url("./montserrat.ttf"); + font-weight: 1 999; + font-style: normal; +} + +/* #endregion */ + +/* #region Keyframes */ + +@keyframes hueRotate { + from { + filter: hue-rotate(0deg); + } + to { + filter: hue-rotate(360deg); + } +} + +@keyframes progressFirstLine { + 0% { + left: -35%; + right: 100%; + } + + 60%, 100% { + left: 100%; + right: -90%; + } +} + +@keyframes progressLastLine { + 0% { + left: -200%; + right: 100%; + } + + 60%, 100% { + left: 107%; + right: -8%; + } +} + +/* #endregion */ \ No newline at end of file diff --git a/build/build.js b/build/build.js new file mode 100644 index 0000000..af42f4f --- /dev/null +++ b/build/build.js @@ -0,0 +1,78 @@ +const builder = require("electron-builder"); +const Platform = builder.Platform; + +/** +* @type {import('electron-builder').Configuration} +* @see https://www.electron.build/configuration/configuration +*/ + +var optionsSetup = { + appId: "com.daniel.nunes.skyshare", + compression: "maximum", + icon: "./logo.ico", + files: [ "**/*", "!.git${/*}", "!.vscode${/*}*", "!build${/*}*", "!.gitignore" ], + removePackageScripts: true, + nsis: { + oneClick: false, + perMachine: true, + allowToChangeInstallationDirectory: true, + installerSidebar: "./installerSidebar.bmp", + uninstallerSidebar: "./installerSidebar.bmp", + uninstallDisplayName: "${productName}", + artifactName: "${productName}-${version}-Setup.${ext}", + unicode: true, + runAfterFinish: true, + createDesktopShortcut: "always", + createStartMenuShortcut: true, + menuCategory: false + }, + asar: true, + directories: { + buildResources: "./assets/setup/", + output: "./build/setup/" + } +}; + +var optionsUpdater = { + appId: "com.daniel.nunes.skyshare", + compression: "maximum", + icon: "./logo.ico", + files: [ "**/*", "!.git${/*}", "!.vscode${/*}*", "!build${/*}*", "!.gitignore" ], + removePackageScripts: true, + nsis: { + oneClick: true, + perMachine: true, + allowToChangeInstallationDirectory: false, + installerSidebar: "./installerSidebar.bmp", + uninstallerSidebar: "./installerSidebar.bmp", + uninstallDisplayName: "${productName}", + artifactName: "${productName}-${version}-Updater.${ext}", + unicode: true, + runAfterFinish: true, + createDesktopShortcut: "always", + createStartMenuShortcut: true, + menuCategory: false + }, + asar: true, + directories: { + buildResources: "./assets/setup/", + output: "./build/updater/" + } +}; + +(async () => { + let package = require("../package.json"); + + await builder.build({ + targets: Platform.WINDOWS.createTarget(), + config: optionsSetup + }); + console.log("\x1b[32m%s\x1b[0m\x1b[4m%s\x1b[0m%s", " • ", package.productName + " " + package.version + " Setup", " was successfully created!"); + console.log("\n"); + + await builder.build({ + targets: Platform.WINDOWS.createTarget(), + config: optionsUpdater + }); + console.log("\x1b[32m%s\x1b[0m\x1b[4m%s\x1b[0m%s", " • ", package.productName + " " + package.version + " Updater", " was successfully created!"); +})(); \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..54b761a --- /dev/null +++ b/index.html @@ -0,0 +1,582 @@ + + + + + + + + + +

    +
    +
    + + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +

    +

    + +
    +
    +

    +

    +
    + + +
    +
    +
    +

    +
    + +
    +
    +

    +

    +
    + +
    +
    +
    +
    +
    +
    +
    +

    Olá!

    +
    +
    + +

    +
    +
    +
    + + Enviar ficheiros +
    +
    + + Receber ficheiros +
    +
    + + Definições +
    +
    +
    +
    +
    +
    +
    +
    +

    Enviar ficheiros

    +
    +
    +
    + +

    Escolher ficheiros

    + Ou arraste para aqui! +
    +
    +
    +
    + + Adicionar ficheiros +
    +
    +
    +
    +
    +
    +

    Mensagem:

    + +
    +
    +

    Tamanho Total:

    + 0.00 KB +
    +
    +

    Quantidade Total:

    + 0 ficheiros +
    +
    + +
    +
    +
    +
    +

    A enviar

    +
    +
    + + + + + + + + +

    0

    +
    +
    + 0 segundos + 0.00 MB/s +
    +
    +
    +
    +

    Enviado

    +
    +
    +

    +
    +
    +
    +
    +

    Enviado a:

    + +
    +
    +

    Expira a:

    + +
    +
    + + +
    +
    + +
    +
    +
    +
    +
    +
    +

    Receber ficheiros

    +
    +
    +
    +
    +

    Código de envio:

    +
    + + + + + + +
    +
    + +
    +
    +
    +
    +

    Mensagem:

    +
    + Sem mensagem + +
    +
    +
    +

    Enviado por:

    + Convidado +
    +
    + +
    +
    +
    +
    +
    +
    +

    Iniciar Sessão

    +
    +
    + +
    +
    +
    +
    +

    Nome de Utilizador:

    + +
    +
    +

    Palavra-Passe:

    + +
    + Esqueci-me da Password + Criar conta +
    + +
    +
    +
    +
    +

    Esqueci-me da Password

    +
    +
    + +
    +
    +
    +
    +

    Nome de Utilizador:

    + +
    +
    +

    Chave de Recuperação:

    + +
    +
    + +
    +
    +
    +
    +

    Repor Palavra-Passe

    +
    +
    + +
    +
    +
    +
    +

    Palavra-Passe:

    + +
    +
    +

    Repetir Palavra-Passe:

    + +
    +
    + +
    +
    +
    +
    +

    Criar Conta

    +
    +
    + +
    +
    +
    +
    +

    Nome de Utilizador:

    + +
    +
    +

    Email:

    + +
    +
    +

    Palavra-Passe:

    + +
    +
    +

    Repetir Palavra-Passe:

    + +
    +
    + +
    +
    +
    +
    +

    Personalizar Conta

    +
    +
    + +
    +
    +
    +
    +

    Foto de Perfil:

    + +
    +
    + +
    +
    +
    +
    +
    +
    +

    Introdução

    +
    +
    + +
    +
    +
    +
    +

    A sua conta foi criada com sucesso!

    Agora iremos ver quais são os próximos passos para melhorar a sua experiência.

    + +
    +
    +
    +
    +
    +

    Sincronização

    +
    +
    + +
    +
    +
    +
    +

    Um dos benefícios da sua conta é a sincronização. Sempre que envia ou recebe um ficheiro, o mesmo é registado na sua conta para fácil acesso no futuro.

    + +
    +
    +
    +
    +
    +

    Histórico

    +
    +
    + +
    +
    +
    +
    +

    Mais tarde, se quiser voltar a transferir esse mesmo ficheiro, basta encontrá-lo na sua nova página inicial, que é sincronizada em todos os dispositivos com esta conta.

    + +
    +
    +
    +
    +
    +

    Recuperação

    +
    +
    + +
    +
    +
    +
    +

    É importante que guarde esta chave de recuperação para o caso de se esquecer da sua palavra-passe, evitando que perca o acesso à sua conta.

    +

    + +
    +
    +
    +
    +
    +
    + +

    Bem-vindo

    +

    +
    + +
    +
    +
    +
    +

    Conta

    +
    +
    + +

    +
    +
    +
    + + Editar Conta +
    +
    + + Mudar Palavra-Passe +
    +
    + + Terminar Sessão +
    +
    +
    +
    +
    +

    Editar Conta

    +
    +
    + +
    +
    +
    +
    +

    Nome de Utilizador:

    + +
    +
    +

    Email:

    + +
    +
    +

    Foto de Perfil:

    +
    + + +
    +
    +
    +

    Zona de Perigo:

    + +
    +
    + +
    +
    +
    +
    +

    Mudar Palavra-Passe

    +
    +
    + +
    +
    +
    +
    +

    Palavra-Passe:

    + +
    +
    +

    Repetir Palavra-Passe:

    + +
    +
    + +
    +
    +
    +
    +

    Apagar Conta

    +
    +
    + +
    +
    +
    +
    +

    Está prestes a apagar a sua conta!

    Ao apagar a sua conta perderá o acesso ao seu histórico.

    Os dados pessoais também serão apagados, mas os envios feitos nos últimos 7 dias serão mantidos.

    + +
    +
    +
    +
    +
    +

    Apagar Conta

    +
    +
    + +
    +
    +
    +
    +

    Palavra-Passe:

    + +
    +
    + +
    +
    +
    +
    +

    Apagar Conta

    +
    +

    A apagar a sua conta. Por favor aguarde...

    +
    +
    +
    +
    +
    +

    Definições

    +
    +
    +

    Aparência

    +
    +

    Esquema de cores:

    + +
    +
    +
    +

    Histórico

    +
    +

    Guardar transferências no histórico:

    + +
    +
    +
    +

    Atualizações

    +
    +

    Procurar por atualizações automaticamente:

    + +
    +
    +

    Receber atualizações beta:

    + +
    +
    +
    +

    Sobre

    +
    + +
    +

    +

    Versão

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +

    Sem internet

    +

    Verifique a sua conexão à internet

    +
    +
    +
    +
    +
    +
    + + \ No newline at end of file diff --git a/main.js b/main.js new file mode 100644 index 0000000..f7667d0 --- /dev/null +++ b/main.js @@ -0,0 +1,306 @@ +const { app, BrowserWindow, dialog, globalShortcut, ipcMain, shell } = require("electron"); +const fs = require("fs"); +const path = require("path"); +const os = require("os"); +const log = require("electron-log"); +const Store = require("electron-store"); +const axios = require("axios").default; +const FormData = require("form-data"); +const progress = require("progress-stream"); +const package = require("./package.json"); +var splash, win, loadStage = 0, account = {}; + +//#region Initialization + +Object.assign(console, log.functions); +log.transports.file.fileName = "logs.log"; +log.transports.file.getFile().clear(); +console.log("Iniciando o " + package.productName + " " + package.version + " no Windows " + os.release()); +console.log("Executando no Electron " + process.versions.electron + " e NodeJS " + process.versions.node); + +const appConfig = new Store({ defaults: { + lastRunVersion: app.getVersion(), + settings: { + darkMode: false, + saveHistory: true, + autoUpdate: true, + betaUpdates: false + } +}}); + +//#endregion + +//#region App Windows + +function createWindow() { + splash = new BrowserWindow({ + title: package.productName, + width: 450, + height: 300, + frame: false, + resizable: false, + fullscreen: false, + fullscreenable: false, + maximizable: false, + show: false, + icon: path.join(__dirname, "assets/logo.png"), + sandbox: true, + webPreferences: { + devTools: process.env.DEBUG, + preload: path.join(__dirname, "src/splash.js") + } + }); + splash.loadFile("splash.html"); + splash.once("ready-to-show", () => splash.show()); + + win = new BrowserWindow({ + title: package.productName, + width: 1000, + height: 600, + frame: false, + resizable: false, + fullscreen: false, + fullscreenable: false, + maximizable: false, + show: false, + icon: path.join(__dirname, "assets/logo.png"), + sandbox: true, + webPreferences: { + devTools: process.env.DEBUG, + preload: path.join(__dirname, "src/home.js") + } + }); +} + +//#endregion + +//#region App Events + +if (!app.requestSingleInstanceLock()) + app.quit(); + +app.on("second-instance", () => { + if (win.isMinimized()) + win.restore(); + win.focus(); +}); + +app.whenReady().then(() => { + createWindow(); + + globalShortcut.register("CommandOrControl+Shift+I", () => { + return false; + }); + + globalShortcut.register("CommandOrControl+F12", () => { + if (BrowserWindow.getFocusedWindow()) + BrowserWindow.getFocusedWindow().webContents.openDevTools(); + }); +}); + +app.on("window-all-closed", () => { + if (process.platform !== "darwin") + app.quit(); +}); + +if (process.defaultApp) { + if (process.argv.length >= 2) + app.setAsDefaultProtocolClient("skyshare", process.execPath, [path.resolve(process.argv[1])]); +} +else + app.setAsDefaultProtocolClient("skyshare"); + +//#endregion + +//#region Render Events + +ipcMain.on("WinClose", () => app.exit()); + +ipcMain.on("WinMinimize", () => BrowserWindow.getAllWindows()[0].minimize()); + +ipcMain.on("OpenMain", () => { + loadStage++; + + if (loadStage == 1) + win.loadFile("index.html"); + else if (loadStage == 2) + win.webContents.send("ReloadAccount"); + else if (loadStage == 3) { + splash.close(); + win.show(); + if (process.env.DEBUG) + win.webContents.openDevTools(); + } +}); + +ipcMain.on("GetPaths", (event, name) => event.returnValue = app.getPath(name)); + +ipcMain.on("GetUrlPath", (event) => event.returnValue = process.argv.length >= 3 ? process.argv[2].replace("skyshare://", "") : (process.argv.length >= 2 ? process.argv[1].replace("skyshare://", "") : "")); + +ipcMain.on("GetSetting", (event, name) => event.returnValue = appConfig.get(name)); + +ipcMain.on("SetSetting", (_event, name, value) => appConfig.set(name, value)); + +ipcMain.on("SetProgressBar", (_event, pgss) => setProgressBar(pgss)); + +function setProgressBar(pgss) { + win.setProgressBar(pgss / 100); +} + +ipcMain.on("CheckForUpdates", async (_event, version) => { + try { + let ghList, ghInfo; + + ghList = await axios.get(package.releases + "releases"); + for (const release of ghList.data) { + if (release.prerelease && appConfig.get("settings.betaUpdates")) { + ghInfo = release; + break; + } + else if (!release.prerelease) { + ghInfo = release; + break; + } + } + + if (version == ghInfo.tag_name) + splash.webContents.send("CheckForUpdatesComplete", false); + else + splash.webContents.send("CheckForUpdatesComplete", true, ghInfo.assets[1].browser_download_url); + } + catch (err) { + console.error("There was an error while checking for updates: " + err); + splash.webContents.send("CheckForUpdatesComplete", false); + } +}); + +ipcMain.on("InstallUpdate", async (_event, url) => { + let writer = fs.createWriteStream(app.getPath("temp") + "\\" + package.productName + ".exe"); + let ghFile = await axios.get(url, { + responseType: "stream" + }); + + ghFile.data.pipe(writer); + writer.on("close", async () => { + await shell.openPath(app.getPath("temp") + "\\" + package.productName + ".exe"); + app.exit(); + }); +}); + +ipcMain.on("GetChanges", async (event) => { + let ghChanges = await axios.get(package.releases + "releases/tags/" + package.version); + event.returnValue = ghChanges.data.body; +}); + +ipcMain.on("AccountStorage", async (event, store, acc) => { + if (store) { + delete acc.recoveryKey; + account = acc; + } + else + event.returnValue = account; +}); + +ipcMain.on("SendFile", async (_event, files, message) => { + let signupFormData = new FormData(); + for (const file of files) + signupFormData.append("file", fs.createReadStream(file.path)); + signupFormData.append("message", message); + + if (Object.keys(account).length != 0) { + signupFormData.append("username", account.username); + signupFormData.append("password", account.password); + signupFormData.append("save", String(appConfig.get("settings.saveHistory", true))); + } + + let apiResult = await axios.post(package.api + "file/upload", signupFormData, { + headers: { + ...signupFormData.getHeaders() + }, + maxContentLength: Infinity, + maxBodyLength: Infinity, + validateStatus: () => true + }); + + win.webContents.send("SendFileComplete", apiResult.data, apiResult.status); +}); + +ipcMain.on("ReceiveFile", async (_event, code, path) => { + let fileStream = fs.createWriteStream(path), totalLength, bodyObj = {}; + + if (Object.keys(account).length != 0) { + bodyObj.username = account.username; + bodyObj.password = account.password; + bodyObj.save = String(appConfig.get("settings.saveHistory", true)); + } + + let apiResult = await axios.post(package.api + "file/" + code, bodyObj, { + responseType: "stream", + validateStatus: () => true + }); + totalLength = Number(apiResult.headers["content-length"]); + let streamProgress = progress({ length: totalLength, time: 100 }); + + let filePipe = apiResult.data.pipe(streamProgress).pipe(fileStream); + streamProgress.on("progress", (progress) => { + win.webContents.send("ReceiveFileProgress", progress.percentage); + setProgressBar(progress.percentage); + }); + filePipe.on("finish", () => { + setProgressBar(-100); + win.webContents.send("ReceiveFileComplete"); + }); +}); + +ipcMain.on("AccountSignUp", async (_event, args) => { + let signupFormData = new FormData(); + signupFormData.append("username", args.username); + signupFormData.append("email", args.email); + signupFormData.append("password", args.password); + if (args.picture != null) + signupFormData.append("picture", fs.createReadStream(args.picture)); + + let apiResult = await axios.post(package.api + "user/signup", signupFormData, { + headers: { + ...signupFormData.getHeaders() + }, + validateStatus: () => true + }); + + win.webContents.send("AccountSignUpComplete", apiResult.data, apiResult.status); +}); + +ipcMain.on("AccountEditInfo", async (_event, args) => { + let editInfoFormData = new FormData(); + editInfoFormData.append("password", account.password); + if (args.newUsername != null) + editInfoFormData.append("newUsername", args.newUsername); + if (args.email != null) + editInfoFormData.append("email", args.email); + if (args.pictureChange) { + if (args.picture.endsWith(".svg")) + editInfoFormData.append("removePicture", "true"); + else + editInfoFormData.append("picture", fs.createReadStream(args.picture)); + } + + let apiResult = await axios.put(package.api + "user/" + account.username + "/edit/info", editInfoFormData, { + headers: { + ...editInfoFormData.getHeaders() + }, + validateStatus: () => true + }); + + win.webContents.send("AccountEditInfoComplete", apiResult.data, apiResult.status); +}); + +ipcMain.on("ShowDialog", async (event, type, options) => { + if (type == "OPEN") + event.returnValue = await dialog.showOpenDialog(BrowserWindow.getAllWindows()[0], options); + else if (type == "SAVE") + event.returnValue = await dialog.showSaveDialog(BrowserWindow.getAllWindows()[0], options); + else if (type == "ERROR") + event.returnValue = dialog.showErrorBox(options.title, options.content); +}); + +//#endregion \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..4398179 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6706 @@ +{ + "name": "skyshare", + "version": "2.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "skyshare", + "version": "2.0.0", + "license": "Proprietary", + "dependencies": { + "axios": "^0.27.2", + "electron-log": "^4.4.7", + "electron-store": "^8.0.1", + "form-data": "^4.0.0", + "is-online": "9.0.1", + "progress-stream": "^2.0.0", + "showdown": "^2.1.0" + }, + "devDependencies": { + "electron": "^19.0.5", + "electron-builder": "^23.0.3" + } + }, + "node_modules/@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "dependencies": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@electron/universal": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.0.tgz", + "integrity": "sha512-eu20BwNsrMPKoe2bZ3/l9c78LclDvxg3PlVXrQf3L50NaUuW5M59gbPytI+V4z7/QMrohUHetQaU0ou+p1UG9Q==", + "dev": true, + "dependencies": { + "@malept/cross-spawn-promise": "^1.1.0", + "asar": "^3.1.0", + "debug": "^4.3.1", + "dir-compare": "^2.4.0", + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4", + "plist": "^3.0.4" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/@electron/universal/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/universal/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/universal/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, + "node_modules/@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "tmp-promise": "^3.0.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "dev": true, + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "optional": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "node_modules/@types/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true, + "optional": true + }, + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.11.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.26.tgz", + "integrity": "sha512-GZ7bu5A6+4DtG7q9GsoHXy3ALcgeIHP4NnL0Vv2wu0uUB/yQex26v0tf6/na1mm0+bS9Uw+0DFex7aaKr2qawQ==" + }, + "node_modules/@types/plist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.2.tgz", + "integrity": "sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*", + "xmlbuilder": ">=11.0.1" + } + }, + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/verror": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.5.tgz", + "integrity": "sha512-9UjMCHK5GPgQRoNbqdLIAvAy0EInuiqbW0PBMtVP6B5B2HQJlvoJHM+KodPZMEjOa5VkSc+5LH7xy+cUzQdmHw==", + "dev": true, + "optional": true + }, + "node_modules/@types/yargs": { + "version": "17.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "20.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/7zip-bin": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz", + "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==", + "dev": true + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.9.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/app-builder-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz", + "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==", + "dev": true + }, + "node_modules/app-builder-lib": { + "version": "23.0.3", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.0.3.tgz", + "integrity": "sha512-1qrtXYHXJfXhzJnMtVGjIva3067F1qYQubl2oBjI61gCBoCHvhghdYJ57XxXTQQ0VxnUhg1/Iaez87uXp8mD8w==", + "dev": true, + "dependencies": { + "@develar/schema-utils": "~2.6.5", + "@electron/universal": "1.2.0", + "@malept/flatpak-bundler": "^0.4.0", + "7zip-bin": "~5.1.1", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "23.0.2", + "builder-util-runtime": "9.0.0", + "chromium-pickle-js": "^0.2.0", + "debug": "^4.3.2", + "ejs": "^3.1.6", + "electron-osx-sign": "^0.6.0", + "electron-publish": "23.0.2", + "form-data": "^4.0.0", + "fs-extra": "^10.0.0", + "hosted-git-info": "^4.0.2", + "is-ci": "^3.0.0", + "isbinaryfile": "^4.0.8", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "minimatch": "^3.0.4", + "read-config-file": "6.2.0", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.5", + "temp-file": "^3.4.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/app-builder-lib/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/app-builder-lib/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/app-builder-lib/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/app-builder-lib/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/asar": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-3.1.0.tgz", + "integrity": "sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ==", + "dev": true, + "dependencies": { + "chromium-pickle-js": "^0.2.0", + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "asar": "bin/asar.js" + }, + "engines": { + "node": ">=10.12.0" + }, + "optionalDependencies": { + "@types/glob": "^7.1.1" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "dev": true + }, + "node_modules/async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atomically": { + "version": "1.7.0", + "license": "MIT", + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bluebird-lst": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "dev": true, + "optional": true + }, + "node_modules/boxen": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "6.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "dev": true + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/builder-util": { + "version": "23.0.2", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.0.2.tgz", + "integrity": "sha512-HaNHL3axNW/Ms8O1mDx3I07G+ZnZ/TKSWWvorOAPau128cdt9S+lNx5ocbx8deSaHHX4WFXSZVHh3mxlaKJNgg==", + "dev": true, + "dependencies": { + "@types/debug": "^4.1.6", + "@types/fs-extra": "^9.0.11", + "7zip-bin": "~5.1.1", + "app-builder-bin": "4.0.0", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "9.0.0", + "chalk": "^4.1.1", + "cross-spawn": "^7.0.3", + "debug": "^4.3.2", + "fs-extra": "^10.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-ci": "^3.0.0", + "js-yaml": "^4.1.0", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.4.0" + } + }, + "node_modules/builder-util-runtime": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.0.tgz", + "integrity": "sha512-SkpEtSmTkREDHRJnxKEv43aAYp8sYWY8fxYBhGLBLOBIRXeaIp6Kv3lBgSD7uR8jQtC7CA659sqJrpSV6zNvSA==", + "dev": true, + "dependencies": { + "debug": "^4.3.2", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/builder-util/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/builder-util/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/builder-util/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", + "dev": true + }, + "node_modules/ci-info": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", + "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "optional": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/compress-brotli": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", + "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", + "dependencies": { + "@types/json-buffer": "~3.0.0", + "json-buffer": "~3.0.1" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/compress-brotli/node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/conf": { + "version": "10.1.1", + "license": "MIT", + "dependencies": { + "ajv": "^8.6.3", + "ajv-formats": "^2.1.1", + "atomically": "^1.7.0", + "debounce-fn": "^4.0.0", + "dot-prop": "^6.0.1", + "env-paths": "^2.2.1", + "json-schema-typed": "^7.0.3", + "onetime": "^5.1.2", + "pkg-up": "^3.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conf/node_modules/ajv": { + "version": "8.9.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/conf/node_modules/dot-prop": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conf/node_modules/json-schema-traverse": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/conf/node_modules/semver": { + "version": "7.3.5", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/configstore": { + "version": "5.0.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "optional": true, + "dependencies": { + "buffer": "^5.1.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/debounce-fn": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "mimic-fn": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/debug": { + "version": "4.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "optional": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "optional": true + }, + "node_modules/dir-compare": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz", + "integrity": "sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==", + "dev": true, + "dependencies": { + "buffer-equal": "1.0.0", + "colors": "1.0.3", + "commander": "2.9.0", + "minimatch": "3.0.4" + }, + "bin": { + "dircompare": "src/cli/dircompare.js" + } + }, + "node_modules/dir-compare/node_modules/commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", + "dev": true, + "dependencies": { + "graceful-readlink": ">= 1.0.0" + }, + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/dir-compare/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dmg-builder": { + "version": "23.0.3", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.0.3.tgz", + "integrity": "sha512-mBYrHHnSM5PC656TDE+xTGmXIuWHAGmmRfyM+dV0kP+AxtwPof4pAXNQ8COd0/exZQ4dqf72FiPS3B9G9aB5IA==", + "dev": true, + "dependencies": { + "app-builder-lib": "23.0.3", + "builder-util": "23.0.2", + "builder-util-runtime": "9.0.0", + "fs-extra": "^10.0.0", + "iconv-lite": "^0.6.2", + "js-yaml": "^4.1.0" + }, + "optionalDependencies": { + "dmg-license": "^1.0.9" + } + }, + "node_modules/dmg-builder/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dmg-builder/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/dmg-builder/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/dmg-license": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", + "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", + "deprecated": "Disk image license agreements are deprecated by Apple and will probably be removed in a future macOS release. Discussion at: https://github.com/argv-minus-one/dmg-license/issues/11", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "@types/plist": "^3.0.1", + "@types/verror": "^1.10.3", + "ajv": "^6.10.0", + "crc": "^3.8.0", + "iconv-corefoundation": "^1.1.7", + "plist": "^3.0.4", + "smart-buffer": "^4.0.2", + "verror": "^1.10.0" + }, + "bin": { + "dmg-license": "bin/dmg-license.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-packet": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz", + "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dns-socket": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/dns-socket/-/dns-socket-4.2.2.tgz", + "integrity": "sha512-BDeBd8najI4/lS00HSKpdFia+OvUMytaVjfzR9n5Lq8MlZRSvtbI+uLtx1+XmQFls5wFU9dssccTmQQ6nfpjdg==", + "dependencies": { + "dns-packet": "^5.2.4" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", + "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "license": "BSD-3-Clause" + }, + "node_modules/ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron": { + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/electron/-/electron-19.0.5.tgz", + "integrity": "sha512-gC4kPr/Mf7QbeE5NAo1AC4Zg/SXLnW0ttlyzhVdyB2aErBspWh231UhHLJUlOdaVNqitdbnppdaXjoZHsR5QzQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@electron/get": "^1.14.1", + "@types/node": "^16.11.26", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/electron-builder": { + "version": "23.0.3", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.0.3.tgz", + "integrity": "sha512-0lnTsljAgcOMuIiOjPcoFf+WxOOe/O04hZPgIvvUBXIbz3kolbNu0Xdch1f5WuQ40NdeZI7oqs8Eo395PcuGHQ==", + "dev": true, + "dependencies": { + "@types/yargs": "^17.0.1", + "app-builder-lib": "23.0.3", + "builder-util": "23.0.2", + "builder-util-runtime": "9.0.0", + "chalk": "^4.1.1", + "dmg-builder": "23.0.3", + "fs-extra": "^10.0.0", + "is-ci": "^3.0.0", + "lazy-val": "^1.0.5", + "read-config-file": "6.2.0", + "update-notifier": "^5.1.0", + "yargs": "^17.0.1" + }, + "bin": { + "electron-builder": "cli.js", + "install-app-deps": "install-app-deps.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/electron-builder/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-builder/node_modules/cliui": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/electron-builder/node_modules/fs-extra": { + "version": "10.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-builder/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-builder/node_modules/universalify": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron-builder/node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/electron-builder/node_modules/y18n": { + "version": "5.0.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-builder/node_modules/yargs": { + "version": "17.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder/node_modules/yargs-parser": { + "version": "21.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-log": { + "version": "4.4.7", + "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.7.tgz", + "integrity": "sha512-uFZQdgevOp9Fn5lDOrJMU/bmmYxDLZitbIHJM7VXN+cpB59ZnPt1FQL4bOf/Dl2gaIMPYJEfXx38GvJma5iV6A==" + }, + "node_modules/electron-osx-sign": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz", + "integrity": "sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^3.0.1" + }, + "bin": { + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/electron-osx-sign/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/electron-osx-sign/node_modules/isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "dependencies": { + "buffer-alloc": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/electron-osx-sign/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/electron-publish": { + "version": "23.0.2", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.0.2.tgz", + "integrity": "sha512-8gMYgWqv96lc83FCm85wd+tEyxNTJQK7WKyPkNkO8GxModZqt1GO8S+/vAnFGxilS/7vsrVRXFfqiCDUCSuxEg==", + "dev": true, + "dependencies": { + "@types/fs-extra": "^9.0.11", + "builder-util": "23.0.2", + "builder-util-runtime": "9.0.0", + "chalk": "^4.1.1", + "fs-extra": "^10.0.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.2" + } + }, + "node_modules/electron-publish/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-publish/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-publish/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron-store": { + "version": "8.0.1", + "license": "MIT", + "dependencies": { + "conf": "^10.0.3", + "type-fest": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/electron-store/node_modules/type-fest": { + "version": "1.4.0", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/electron/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/electron/node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/electron/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "optional": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extsprintf": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "optional": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", + "dev": true, + "optional": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "dev": true, + "license": "ISC" + }, + "node_modules/graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "license": "BSD-2-Clause" + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-corefoundation": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", + "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "cli-truncate": "^2.1.0", + "node-addon-api": "^1.6.3" + }, + "engines": { + "node": "^8.11.2 || >=10" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "optional": true + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "node_modules/ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-ip": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", + "dependencies": { + "ip-regex": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-online": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/is-online/-/is-online-9.0.1.tgz", + "integrity": "sha512-+08dRW0dcFOtleR2N3rHRVxDyZtQitUp9cC+KpKTds0mXibbQyW5js7xX0UGyQXkaLUJObe0w6uQ4ex34lX9LA==", + "dependencies": { + "got": "^11.8.0", + "p-any": "^3.0.0", + "p-timeout": "^3.2.0", + "public-ip": "^4.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-online/node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/is-online/node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-online/node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-online/node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-online/node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/is-online/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-online/node_modules/got": { + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/is-online/node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/is-online/node_modules/keyv": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.0.tgz", + "integrity": "sha512-C30Un9+63J0CsR7Wka5quXKqYZsT6dcRQ2aOwGcSc3RiQ4HGWpTAHlCA+puNfw2jA/s11EsxA1nCXgZRuRKMQQ==", + "dependencies": { + "compress-brotli": "^1.3.8", + "json-buffer": "3.0.1" + } + }, + "node_modules/is-online/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-online/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-online/node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-online/node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-online/node_modules/responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/isarray": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-schema-typed": { + "version": "7.0.3", + "license": "BSD-2-Clause" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true, + "optional": true + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lazy-val": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", + "dev": true + }, + "node_modules/locate-path": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path/node_modules/path-exists": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "3.1.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true, + "optional": true + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-any": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-any/-/p-any-3.0.0.tgz", + "integrity": "sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w==", + "dependencies": { + "p-cancelable": "^2.0.0", + "p-some": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-any/node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-some": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz", + "integrity": "sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig==", + "dependencies": { + "aggregate-error": "^3.0.0", + "p-cancelable": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-some/node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/plist": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz", + "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==", + "dev": true, + "dependencies": { + "base64-js": "^1.5.1", + "xmlbuilder": "^9.0.7" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/plist/node_modules/xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/progress-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-2.0.0.tgz", + "integrity": "sha512-xJwOWR46jcXUq6EH9yYyqp+I52skPySOeHfkxOZ2IY1AiBi/sFJhbhAKHoV3OTw/omQ45KTio9215dRJ2Yxd3Q==", + "dependencies": { + "speedometer": "~1.0.0", + "through2": "~2.0.3" + } + }, + "node_modules/progress-stream/node_modules/through2": { + "version": "2.0.5", + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true, + "optional": true + }, + "node_modules/public-ip": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/public-ip/-/public-ip-4.0.4.tgz", + "integrity": "sha512-EJ0VMV2vF6Cu7BIPo3IMW1Maq6ME+fbR0NcPmqDfpfNGIRPue1X8QrGjrg/rfjDkOsIkKHIf2S5FlEa48hFMTA==", + "dependencies": { + "dns-socket": "^4.2.2", + "got": "^9.6.0", + "is-ip": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/read-config-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz", + "integrity": "sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==", + "dev": true, + "dependencies": { + "dotenv": "^9.0.2", + "dotenv-expand": "^5.1.0", + "js-yaml": "^4.1.0", + "json5": "^2.2.0", + "lazy-val": "^1.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/responselike": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/semver": { + "version": "6.3.0", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true, + "optional": true + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/showdown": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz", + "integrity": "sha512-/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ==", + "dependencies": { + "commander": "^9.0.0" + }, + "bin": { + "showdown": "bin/showdown.js" + }, + "funding": { + "type": "individual", + "url": "https://www.paypal.me/tiviesantos" + } + }, + "node_modules/showdown/node_modules/commander": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.1.0.tgz", + "integrity": "sha512-i0/MaqBtdbnJ4XQs4Pmyb+oFQl+q0lsAmokVUH92SlSw4fkeAcG3bVon+Qt7hmtF+u3Het6o4VgrcY3qAoEB6w==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/signal-exit": { + "version": "3.0.6", + "dev": true, + "license": "ISC" + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/speedometer": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true, + "optional": true + }, + "node_modules/stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/temp-file": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", + "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", + "dev": true, + "dependencies": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^10.0.0" + } + }, + "node_modules/temp-file/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/temp-file/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/temp-file/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", + "dev": true, + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/ci-info": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/update-notifier/node_modules/is-ci": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/update-notifier/node_modules/semver": { + "version": "7.3.5", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", + "dev": true + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/verror": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + }, + "dependencies": { + "@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "requires": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + } + }, + "@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + } + }, + "@electron/universal": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.0.tgz", + "integrity": "sha512-eu20BwNsrMPKoe2bZ3/l9c78LclDvxg3PlVXrQf3L50NaUuW5M59gbPytI+V4z7/QMrohUHetQaU0ou+p1UG9Q==", + "dev": true, + "requires": { + "@malept/cross-spawn-promise": "^1.1.0", + "asar": "^3.1.0", + "debug": "^4.3.1", + "dir-compare": "^2.4.0", + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4", + "plist": "^3.0.4" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, + "@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "tmp-promise": "^3.0.2" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "@sindresorhus/is": { + "version": "0.14.0" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true + }, + "@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "dev": true, + "requires": { + "@types/ms": "*" + } + }, + "@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "optional": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "@types/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" + }, + "@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "requires": { + "@types/node": "*" + } + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true, + "optional": true + }, + "@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", + "dev": true + }, + "@types/node": { + "version": "16.11.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.26.tgz", + "integrity": "sha512-GZ7bu5A6+4DtG7q9GsoHXy3ALcgeIHP4NnL0Vv2wu0uUB/yQex26v0tf6/na1mm0+bS9Uw+0DFex7aaKr2qawQ==" + }, + "@types/plist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.2.tgz", + "integrity": "sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*", + "xmlbuilder": ">=11.0.1" + } + }, + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "requires": { + "@types/node": "*" + } + }, + "@types/verror": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.5.tgz", + "integrity": "sha512-9UjMCHK5GPgQRoNbqdLIAvAy0EInuiqbW0PBMtVP6B5B2HQJlvoJHM+KodPZMEjOa5VkSc+5LH7xy+cUzQdmHw==", + "dev": true, + "optional": true + }, + "@types/yargs": { + "version": "17.0.7", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "20.2.1", + "dev": true + }, + "7zip-bin": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz", + "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.9.0", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0" + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "ansi-align": { + "version": "3.0.1", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "app-builder-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz", + "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==", + "dev": true + }, + "app-builder-lib": { + "version": "23.0.3", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.0.3.tgz", + "integrity": "sha512-1qrtXYHXJfXhzJnMtVGjIva3067F1qYQubl2oBjI61gCBoCHvhghdYJ57XxXTQQ0VxnUhg1/Iaez87uXp8mD8w==", + "dev": true, + "requires": { + "@develar/schema-utils": "~2.6.5", + "@electron/universal": "1.2.0", + "@malept/flatpak-bundler": "^0.4.0", + "7zip-bin": "~5.1.1", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "23.0.2", + "builder-util-runtime": "9.0.0", + "chromium-pickle-js": "^0.2.0", + "debug": "^4.3.2", + "ejs": "^3.1.6", + "electron-osx-sign": "^0.6.0", + "electron-publish": "23.0.2", + "form-data": "^4.0.0", + "fs-extra": "^10.0.0", + "hosted-git-info": "^4.0.2", + "is-ci": "^3.0.0", + "isbinaryfile": "^4.0.8", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "minimatch": "^3.0.4", + "read-config-file": "6.2.0", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.5", + "temp-file": "^3.4.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "asar": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-3.1.0.tgz", + "integrity": "sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "chromium-pickle-js": "^0.2.0", + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "optional": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "optional": true + }, + "async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "dev": true + }, + "async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "atomically": { + "version": "1.7.0" + }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bluebird-lst": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", + "dev": true, + "requires": { + "bluebird": "^3.5.5" + } + }, + "boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "dev": true, + "optional": true + }, + "boxen": { + "version": "5.1.2", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "camelcase": { + "version": "6.2.1", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "type-fest": { + "version": "0.20.2", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "optional": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "dev": true + }, + "builder-util": { + "version": "23.0.2", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.0.2.tgz", + "integrity": "sha512-HaNHL3axNW/Ms8O1mDx3I07G+ZnZ/TKSWWvorOAPau128cdt9S+lNx5ocbx8deSaHHX4WFXSZVHh3mxlaKJNgg==", + "dev": true, + "requires": { + "@types/debug": "^4.1.6", + "@types/fs-extra": "^9.0.11", + "7zip-bin": "~5.1.1", + "app-builder-bin": "4.0.0", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "9.0.0", + "chalk": "^4.1.1", + "cross-spawn": "^7.0.3", + "debug": "^4.3.2", + "fs-extra": "^10.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-ci": "^3.0.0", + "js-yaml": "^4.1.0", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.4.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "builder-util-runtime": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.0.tgz", + "integrity": "sha512-SkpEtSmTkREDHRJnxKEv43aAYp8sYWY8fxYBhGLBLOBIRXeaIp6Kv3lBgSD7uR8jQtC7CA659sqJrpSV6zNvSA==", + "dev": true, + "requires": { + "debug": "^4.3.2", + "sax": "^1.2.4" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "6.1.0", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0" + } + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", + "dev": true + }, + "ci-info": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", + "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cli-boxes": { + "version": "2.2.1", + "dev": true + }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "optional": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "clone-response": { + "version": "1.0.2", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + }, + "compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", + "dev": true + }, + "compress-brotli": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", + "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", + "requires": { + "@types/json-buffer": "~3.0.0", + "json-buffer": "~3.0.1" + }, + "dependencies": { + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "conf": { + "version": "10.1.1", + "requires": { + "ajv": "^8.6.3", + "ajv-formats": "^2.1.1", + "atomically": "^1.7.0", + "debounce-fn": "^4.0.0", + "dot-prop": "^6.0.1", + "env-paths": "^2.2.1", + "json-schema-typed": "^7.0.3", + "onetime": "^5.1.2", + "pkg-up": "^3.1.0", + "semver": "^7.3.5" + }, + "dependencies": { + "ajv": { + "version": "8.9.0", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "dot-prop": { + "version": "6.0.1", + "requires": { + "is-obj": "^2.0.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0" + }, + "semver": { + "version": "7.3.5", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "optional": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "configstore": { + "version": "5.0.1", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "core-util-is": { + "version": "1.0.2" + }, + "crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "optional": true, + "requires": { + "buffer": "^5.1.0" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "dev": true + }, + "debounce-fn": { + "version": "4.0.0", + "requires": { + "mimic-fn": "^3.0.0" + } + }, + "debug": { + "version": "4.3.3", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decompress-response": { + "version": "3.3.0", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "dev": true + }, + "defer-to-connect": { + "version": "1.1.3" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "optional": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "optional": true + }, + "dir-compare": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz", + "integrity": "sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==", + "dev": true, + "requires": { + "buffer-equal": "1.0.0", + "colors": "1.0.3", + "commander": "2.9.0", + "minimatch": "3.0.4" + }, + "dependencies": { + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "dmg-builder": { + "version": "23.0.3", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.0.3.tgz", + "integrity": "sha512-mBYrHHnSM5PC656TDE+xTGmXIuWHAGmmRfyM+dV0kP+AxtwPof4pAXNQ8COd0/exZQ4dqf72FiPS3B9G9aB5IA==", + "dev": true, + "requires": { + "app-builder-lib": "23.0.3", + "builder-util": "23.0.2", + "builder-util-runtime": "9.0.0", + "dmg-license": "^1.0.9", + "fs-extra": "^10.0.0", + "iconv-lite": "^0.6.2", + "js-yaml": "^4.1.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "dmg-license": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", + "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", + "dev": true, + "optional": true, + "requires": { + "@types/plist": "^3.0.1", + "@types/verror": "^1.10.3", + "ajv": "^6.10.0", + "crc": "^3.8.0", + "iconv-corefoundation": "^1.1.7", + "plist": "^3.0.4", + "smart-buffer": "^4.0.2", + "verror": "^1.10.0" + } + }, + "dns-packet": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz", + "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "dns-socket": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/dns-socket/-/dns-socket-4.2.2.tgz", + "integrity": "sha512-BDeBd8najI4/lS00HSKpdFia+OvUMytaVjfzR9n5Lq8MlZRSvtbI+uLtx1+XmQFls5wFU9dssccTmQQ6nfpjdg==", + "requires": { + "dns-packet": "^5.2.4" + } + }, + "dot-prop": { + "version": "5.3.0", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", + "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "duplexer3": { + "version": "0.1.4" + }, + "ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "dev": true, + "requires": { + "jake": "^10.8.5" + } + }, + "electron": { + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/electron/-/electron-19.0.5.tgz", + "integrity": "sha512-gC4kPr/Mf7QbeE5NAo1AC4Zg/SXLnW0ttlyzhVdyB2aErBspWh231UhHLJUlOdaVNqitdbnppdaXjoZHsR5QzQ==", + "dev": true, + "requires": { + "@electron/get": "^1.14.1", + "@types/node": "^16.11.26", + "extract-zip": "^1.0.3" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "requires": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "electron-builder": { + "version": "23.0.3", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.0.3.tgz", + "integrity": "sha512-0lnTsljAgcOMuIiOjPcoFf+WxOOe/O04hZPgIvvUBXIbz3kolbNu0Xdch1f5WuQ40NdeZI7oqs8Eo395PcuGHQ==", + "dev": true, + "requires": { + "@types/yargs": "^17.0.1", + "app-builder-lib": "23.0.3", + "builder-util": "23.0.2", + "builder-util-runtime": "9.0.0", + "chalk": "^4.1.1", + "dmg-builder": "23.0.3", + "fs-extra": "^10.0.0", + "is-ci": "^3.0.0", + "lazy-val": "^1.0.5", + "read-config-file": "6.2.0", + "update-notifier": "^5.1.0", + "yargs": "^17.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "fs-extra": { + "version": "10.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "universalify": { + "version": "2.0.0", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "dev": true + }, + "yargs": { + "version": "17.3.0", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.0.0", + "dev": true + } + } + }, + "electron-log": { + "version": "4.4.7", + "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.7.tgz", + "integrity": "sha512-uFZQdgevOp9Fn5lDOrJMU/bmmYxDLZitbIHJM7VXN+cpB59ZnPt1FQL4bOf/Dl2gaIMPYJEfXx38GvJma5iV6A==" + }, + "electron-osx-sign": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz", + "integrity": "sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg==", + "dev": true, + "requires": { + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "electron-publish": { + "version": "23.0.2", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.0.2.tgz", + "integrity": "sha512-8gMYgWqv96lc83FCm85wd+tEyxNTJQK7WKyPkNkO8GxModZqt1GO8S+/vAnFGxilS/7vsrVRXFfqiCDUCSuxEg==", + "dev": true, + "requires": { + "@types/fs-extra": "^9.0.11", + "builder-util": "23.0.2", + "builder-util-runtime": "9.0.0", + "chalk": "^4.1.1", + "fs-extra": "^10.0.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.2" + }, + "dependencies": { + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "electron-store": { + "version": "8.0.1", + "requires": { + "conf": "^10.0.3", + "type-fest": "^1.0.2" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0" + } + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "optional": true + }, + "end-of-stream": { + "version": "1.4.4", + "requires": { + "once": "^1.4.0" + } + }, + "env-paths": { + "version": "2.2.1" + }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "optional": true + }, + "escalade": { + "version": "3.1.1", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "dev": true, + "optional": true + }, + "fast-deep-equal": { + "version": "3.1.3" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "requires": { + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "find-up": { + "version": "3.0.0", + "requires": { + "locate-path": "^3.0.0" + } + }, + "follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "optional": true, + "requires": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "global-dirs": { + "version": "3.0.0", + "dev": true, + "requires": { + "ini": "2.0.0" + }, + "dependencies": { + "ini": { + "version": "2.0.0", + "dev": true + } + } + }, + "global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "optional": true, + "requires": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + } + }, + "globalthis": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", + "dev": true, + "optional": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "got": { + "version": "9.6.0", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.6", + "dev": true + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "has-yarn": { + "version": "2.1.0", + "dev": true + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "http-cache-semantics": { + "version": "4.1.0" + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "iconv-corefoundation": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", + "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", + "dev": true, + "optional": true, + "requires": { + "cli-truncate": "^2.1.0", + "node-addon-api": "^1.6.3" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "optional": true + }, + "import-lazy": { + "version": "2.1.0", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4" + }, + "ini": { + "version": "1.3.8", + "dev": true + }, + "ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" + }, + "is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "requires": { + "ci-info": "^3.2.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true + }, + "is-installed-globally": { + "version": "0.4.0", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-ip": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", + "requires": { + "ip-regex": "^4.0.0" + } + }, + "is-npm": { + "version": "5.0.0", + "dev": true + }, + "is-obj": { + "version": "2.0.0" + }, + "is-online": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/is-online/-/is-online-9.0.1.tgz", + "integrity": "sha512-+08dRW0dcFOtleR2N3rHRVxDyZtQitUp9cC+KpKTds0mXibbQyW5js7xX0UGyQXkaLUJObe0w6uQ4ex34lX9LA==", + "requires": { + "got": "^11.8.0", + "p-any": "^3.0.0", + "p-timeout": "^3.2.0", + "public-ip": "^4.0.4" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "got": { + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "keyv": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.0.tgz", + "integrity": "sha512-C30Un9+63J0CsR7Wka5quXKqYZsT6dcRQ2aOwGcSc3RiQ4HGWpTAHlCA+puNfw2jA/s11EsxA1nCXgZRuRKMQQ==", + "requires": { + "compress-brotli": "^1.3.8", + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + } + } + }, + "is-path-inside": { + "version": "3.0.3", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "dev": true + }, + "isarray": { + "version": "1.0.0" + }, + "isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "requires": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-buffer": { + "version": "3.0.0" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-schema-typed": { + "version": "7.0.3" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true, + "optional": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "keyv": { + "version": "3.1.0", + "requires": { + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "lazy-val": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0" + } + } + }, + "lodash": { + "version": "4.17.21", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1" + }, + "lru-cache": { + "version": "6.0.0", + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "optional": true, + "requires": { + "escape-string-regexp": "^4.0.0" + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "3.1.0" + }, + "mimic-response": { + "version": "1.0.1" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "ms": { + "version": "2.1.2", + "dev": true + }, + "node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true, + "optional": true + }, + "normalize-url": { + "version": "4.5.1" + }, + "npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "optional": true, + "requires": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "requires": { + "mimic-fn": "^2.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0" + } + } + }, + "p-any": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-any/-/p-any-3.0.0.tgz", + "integrity": "sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w==", + "requires": { + "p-cancelable": "^2.0.0", + "p-some": "^5.0.0" + }, + "dependencies": { + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + } + } + }, + "p-cancelable": { + "version": "1.1.0" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==" + }, + "p-limit": { + "version": "2.3.0", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-some": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz", + "integrity": "sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig==", + "requires": { + "aggregate-error": "^3.0.0", + "p-cancelable": "^2.0.0" + }, + "dependencies": { + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + } + } + }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "2.2.0" + }, + "package-json": { + "version": "6.5.0", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "optional": true + }, + "pkg-up": { + "version": "3.1.0", + "requires": { + "find-up": "^3.0.0" + } + }, + "plist": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz", + "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==", + "dev": true, + "requires": { + "base64-js": "^1.5.1", + "xmlbuilder": "^9.0.7" + }, + "dependencies": { + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true + } + } + }, + "prepend-http": { + "version": "2.0.0" + }, + "process-nextick-args": { + "version": "2.0.1" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "progress-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-2.0.0.tgz", + "integrity": "sha512-xJwOWR46jcXUq6EH9yYyqp+I52skPySOeHfkxOZ2IY1AiBi/sFJhbhAKHoV3OTw/omQ45KTio9215dRJ2Yxd3Q==", + "requires": { + "speedometer": "~1.0.0", + "through2": "~2.0.3" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true, + "optional": true + }, + "public-ip": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/public-ip/-/public-ip-4.0.4.tgz", + "integrity": "sha512-EJ0VMV2vF6Cu7BIPo3IMW1Maq6ME+fbR0NcPmqDfpfNGIRPue1X8QrGjrg/rfjDkOsIkKHIf2S5FlEa48hFMTA==", + "requires": { + "dns-socket": "^4.2.2", + "got": "^9.6.0", + "is-ip": "^3.1.0" + } + }, + "pump": { + "version": "3.0.0", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1" + }, + "pupa": { + "version": "2.1.1", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "rc": { + "version": "1.2.8", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "read-config-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz", + "integrity": "sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==", + "dev": true, + "requires": { + "dotenv": "^9.0.2", + "dotenv-expand": "^5.1.0", + "js-yaml": "^4.1.0", + "json5": "^2.2.0", + "lazy-val": "^1.0.4" + } + }, + "readable-stream": { + "version": "2.3.7", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "registry-auth-token": { + "version": "4.2.1", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "require-directory": { + "version": "2.1.1", + "dev": true + }, + "require-from-string": { + "version": "2.0.2" + }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "responselike": { + "version": "1.0.2", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "optional": true, + "requires": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + } + }, + "safe-buffer": { + "version": "5.1.2" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "requires": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "dev": true + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true, + "optional": true + }, + "semver-diff": { + "version": "3.1.1", + "dev": true, + "requires": { + "semver": "^6.3.0" + } + }, + "serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "optional": true, + "requires": { + "type-fest": "^0.13.1" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "showdown": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz", + "integrity": "sha512-/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ==", + "requires": { + "commander": "^9.0.0" + }, + "dependencies": { + "commander": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.1.0.tgz", + "integrity": "sha512-i0/MaqBtdbnJ4XQs4Pmyb+oFQl+q0lsAmokVUH92SlSw4fkeAcG3bVon+Qt7hmtF+u3Het6o4VgrcY3qAoEB6w==" + } + } + }, + "signal-exit": { + "version": "3.0.6", + "dev": true + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "speedometer": { + "version": "1.0.0" + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true, + "optional": true + }, + "stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-width": { + "version": "4.2.3", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "strip-json-comments": { + "version": "2.0.1", + "dev": true + }, + "sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "requires": { + "debug": "^4.1.0" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "temp-file": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", + "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", + "dev": true, + "requires": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^10.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "requires": { + "tmp": "^0.2.0" + } + }, + "to-readable-stream": { + "version": "1.0.0" + }, + "truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", + "dev": true, + "requires": { + "utf8-byte-length": "^1.0.1" + } + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "optional": true + }, + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "unique-string": { + "version": "2.0.0", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "update-notifier": { + "version": "5.1.0", + "dev": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "ci-info": { + "version": "2.0.0", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "semver": { + "version": "7.3.5", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "uri-js": { + "version": "4.4.1", + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "requires": { + "prepend-http": "^2.0.0" + } + }, + "utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2" + }, + "verror": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "widest-line": { + "version": "3.1.0", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, + "wrappy": { + "version": "1.0.2" + }, + "write-file-atomic": { + "version": "3.0.3", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "dev": true + }, + "xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "optional": true + }, + "xtend": { + "version": "4.0.2" + }, + "yallist": { + "version": "4.0.0" + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e15ca5d --- /dev/null +++ b/package.json @@ -0,0 +1,31 @@ +{ + "name": "skyshare", + "productName": "SkyShare", + "version": "2.0.0", + "description": "Partilha os seus ficheiros!", + "author": "Daniel Nunes", + "main": "main.js", + "scripts": { + "start": "set DEBUG=true && electron .", + "release": "electron .", + "build": "node build/build.js" + }, + "keywords": [], + "license": "Proprietary", + "url": "https://skyshare.pt/", + "api": "https://skyshare-api.herokuapp.com/", + "releases": "https://api.github.com/repos/D3W10/SkyShare/", + "dependencies": { + "axios": "^0.27.2", + "electron-log": "^4.4.7", + "electron-store": "^8.0.1", + "form-data": "^4.0.0", + "is-online": "9.0.1", + "progress-stream": "^2.0.0", + "showdown": "^2.1.0" + }, + "devDependencies": { + "electron": "^19.0.5", + "electron-builder": "^23.0.3" + } +} \ No newline at end of file diff --git a/splash.html b/splash.html new file mode 100644 index 0000000..a971912 --- /dev/null +++ b/splash.html @@ -0,0 +1,19 @@ + + + + + + + + + +
    +
    + +

    +
    +

    A iniciar

    +
    + + + \ No newline at end of file diff --git a/src/home.js b/src/home.js new file mode 100644 index 0000000..d6bc1aa --- /dev/null +++ b/src/home.js @@ -0,0 +1,999 @@ +const fs = require("fs"); +const log = require("electron-log"); +const isOnline = require("is-online"); +const axios = require("axios").default; +const utils = require("./utils"); +const { sleep } = require("./utils"); +var offlineLastOpenPanel = null, hueRotate = 0, hueRotateTimeOut = undefined, upSideDown = 0, upSideDownTimeOut = undefined; + +Object.assign(console, log.functions); +log.transports.file.fileName = "logs.log"; + +window.addEventListener("load", () => { + //#region Initialization + + (async function () { + await utils.reloadIcons(); + + let currentSettings = await utils.getSetting("settings"); + document.body.setAttribute("theme", !currentSettings.darkMode ? "light" : "dark"); + + for (const panel of document.getElementById("appTab").children) { + if (panel.id != utils.openPanel() && panel.id != "loadBar") { + panel.style.opacity = "0"; + panel.style.display = "none"; + } + } + + for (const element of document.querySelectorAll("[goto]")) { + element.addEventListener("click", async (event) => { + let panelToSwitch = event.currentTarget.getAttribute("goto"); + + if (!event.currentTarget.hasAttribute("disabled") && !event.currentTarget.parentElement.hasAttribute("disabled")) { + if (utils.openPanel() == panelToSwitch && window.getComputedStyle(document.getElementById(panelToSwitch).children[0]).opacity == "1") + return; + utils.switchPanels(panelToSwitch); + } + }); + } + + document.getElementById("frameName").innerText = utils.package.productName; + document.getElementById("homeAppName").innerText = utils.package.productName; + document.getElementById("settingsName").innerText = utils.package.productName; + document.getElementById("settingsVersion").innerText = utils.package.version; + + document.getElementById("settingsAppearance").value = !currentSettings.darkMode ? "0" : "1"; + document.getElementById("settingsSaveHistory").checked = currentSettings.saveHistory; + document.getElementById("settingsAutoUpdate").checked = currentSettings.autoUpdate; + document.getElementById("settingsBetaUpdates").checked = currentSettings.betaUpdates; + + setTimeout(async () => { + if (utils.package.version != (await utils.getSetting("lastRunVersion"))) { + utils.showPopUp("changelogPopup", "O que há de novo na " + utils.package.version, null, await utils.getChanges()); + utils.setSetting("lastRunVersion", utils.package.version); + } + }, 500); + setInterval(async () => { + if (!await isOnline({ timeout: 3000 })) { + if (utils.openPanel() != "offlinePanel") { + offlineLastOpenPanel = utils.openPanel(); + utils.switchPanels("offlinePanel"); + document.getElementById("sidebar").setAttribute("disabled", ""); + } + } + else { + if (utils.openPanel() == "offlinePanel") { + utils.switchPanels(offlineLastOpenPanel); + document.getElementById("sidebar").removeAttribute("disabled"); + } + } + }, 2000); + setInterval(utils.updateGreeting, 3600000); + + utils.openMain(); + + let urlSchemePath = await utils.getUrlPath(); + if (urlSchemePath && urlSchemePath.match(/^receive\/\d{6}$/g)) { + let code = urlSchemePath.match(/(?<=receive\/)\d{6}$/g)[0]; + + document.getElementById("code1").value = code[0]; + document.getElementById("code2").value = code[1]; + document.getElementById("code3").value = code[2]; + document.getElementById("code4").value = code[3]; + document.getElementById("code5").value = code[4]; + document.getElementById("code6").value = code[5]; + + await utils.switchPanels("receivePanel"); + document.getElementById("filesReceive").disabled = false; + document.getElementById("filesReceive").click(); + } + }()); + + //#endregion + + //#region Frame Bar + + document.querySelector("#frameBar > div:first-child > img").addEventListener("click", () => { + hueRotate++; + clearTimeout(hueRotateTimeOut); + hueRotateTimeOut = setTimeout(() => hueRotate = 0, 400); + if (hueRotate == 5) { + hueRotate = 0; + if (!document.body.hasAttribute("style")) + document.body.style.animation = "hueRotate 5s infinite linear"; + else + document.body.removeAttribute("style"); + } + }); + + document.getElementById("closeCircle").addEventListener("click", () => utils.closeWindow()); + + document.getElementById("minimizeCircle").addEventListener("click", () => utils.minimizeWindow()); + + //#endregion + + //#region Send Panel + + var selectedFiles = new Array(), byteUnits = ["Bytes", "KB", "MB", "GB"], treeCounter = 0; + + document.getElementById("filesEmpty").addEventListener("click", () => selectFiles(utils.selectMode.CLICK)); + document.getElementById("addFiles").addEventListener("click", () => selectFiles(utils.selectMode.CLICK)); + + document.getElementById("filesSpace").ondragenter = () => dragAndDrop(utils.dragMode.ENTER); + document.getElementById("filesSpace").ondragleave = () => dragAndDrop(utils.dragMode.LEAVE); + document.getElementById("filesSpace").ondragover = (event) => event.preventDefault(); + document.getElementById("filesSpace").ondrop = (event) => dragAndDrop(utils.dragMode.DROP, event); + + async function dragAndDrop(mode, event) { + if (!document.getElementById("filesSpace").hasAttribute("disabled")) { + if (mode == utils.dragMode.ENTER) { + treeCounter++; + if (treeCounter == 1) { + document.querySelector("#filesEmpty > p").innerText = "Preparado para enviar!"; + document.querySelector("#filesEmpty > span").innerText = "Largue-o e eu trato do resto!"; + document.getElementById("filesSpace").style.borderColor = "var(--focusColor)"; + } + } + else if (mode == utils.dragMode.LEAVE) { + treeCounter--; + if (treeCounter == 0) { + document.querySelector("#filesEmpty > p").innerText = "Escolher ficheiros"; + document.querySelector("#filesEmpty > span").innerText = "Ou arraste para aqui!"; + document.getElementById("filesSpace").removeAttribute("style"); + } + } + else if (mode == utils.dragMode.DROP) { + treeCounter = 0; + document.querySelector("#filesEmpty > p").innerText = "Escolher ficheiros"; + document.querySelector("#filesEmpty > span").innerText = "Ou arraste para aqui!"; + document.getElementById("filesSpace").removeAttribute("style"); + selectFiles(utils.selectMode.DROP, event); + } + } + } + + async function selectFiles(mode, event) { + if (!document.getElementById("filesSpace").hasAttribute("disabled")) { + let selectedFilesRollback = [...selectedFiles], totalFileSize = 0, importError = false; + + if (mode == utils.selectMode.CLICK) { + let filesDialog = await utils.showOpenDialog("Escolher ficheiros", [{ name: "Todos os ficheiros", extensions: ["*"] }], ["openFile", "multiSelections"]); + if (filesDialog.canceled) + return; + + for (const path of filesDialog.filePaths) { + let fileRejected = false; + + for (const selectedFile of selectedFiles) { + if (path.replace(/.*[\/\\]/, "") == selectedFile.name) { + importError = true; + fileRejected = true; + } + } + if (fileRejected) + continue; + + let obj = { + name: path.replace(/.*[\/\\]/, ""), + path: path, + size: fs.statSync(path).size + } + selectedFiles.push(obj); + } + } + else if (mode == utils.selectMode.DROP) { + for (const file of event.dataTransfer.files) { + let fileRejected = false; + + if (!utils.checkFolder(file.path)) { + for (const selectedFile of selectedFiles) { + if (file.name == selectedFile.name) { + importError = true; + fileRejected = true; + } + } + if (fileRejected) + continue; + + let obj = { + name: file.name, + path: file.path, + size: fs.statSync(file.path).size + } + selectedFiles.push(obj); + } + } + } + + for (const file of selectedFiles) + totalFileSize += file.size; + + if (selectedFiles.length > 50) { + selectedFiles = [...selectedFilesRollback]; + utils.apiErrorHandler(24); + return; + } + else if (totalFileSize >= 1073741824) { + selectedFiles = [...selectedFilesRollback]; + utils.apiErrorHandler(25); + return; + } + + if (importError) + utils.showPopUp("alertPopup", "Aviso", "Um ou mais dos ficheiros selecionados não puderam ser adicionados, dado que já foram inseridos ficheiros com o mesmo nome."); + + reloadFiles(); + } + } + + async function reloadFiles() { + let totalFileSize = 0, index = 0;; + document.getElementById("filesContent").replaceChildren(); + document.getElementById("filesNumber").innerText = selectedFiles.length + " ficheiro" + (selectedFiles.length != 1 ? "s" : ""); + + if (selectedFiles.length != 0) { + document.getElementById("filesEmpty").style.display = "none"; + document.getElementById("filesEmpty").style.opacity = "0"; + document.getElementById("filesList").style.display = "flex"; + document.getElementById("filesList").style.opacity = "1"; + document.getElementById("filesSend").disabled = false; + + for (const file of selectedFiles) { + let fileSizeToFormat = 0, rCount = 0; + let fileDiv = document.createElement("div"); + let infoDiv = document.createElement("div"); + let fileName = document.createElement("span"); + let fileSize = document.createElement("span"); + let removeIcon = document.createElement("icon"); + + fileName.innerText = file.name; + fileName.title = file.name; + + fileSizeToFormat = file.size; + totalFileSize += file.size; + do { + fileSizeToFormat /= 1024; + rCount++; + } + while (fileSizeToFormat > 1024); + fileSize.innerText = fileSizeToFormat.toFixed(2) + " " + byteUnits[rCount]; + + removeIcon.setAttribute("name", "close"); + + infoDiv.appendChild(fileName); + infoDiv.appendChild(fileSize); + fileDiv.appendChild(infoDiv); + fileDiv.appendChild(removeIcon); + document.getElementById("filesContent").appendChild(fileDiv); + + removeIcon.addEventListener("click", async (event) => { + if (!document.getElementById("filesSpace").hasAttribute("disabled")) { + let parent = event.currentTarget.parentElement; + for (const file of selectedFiles) { + if (file.name == parent.querySelector("div > span").title) + selectedFiles.splice(selectedFiles.indexOf(file), 1); + } + + parent.style.opacity = 0; + await sleep(200); + parent.style.height = 0; + parent.style.marginBottom = 0; + parent.style.padding = 0; + await sleep(200); + reloadFiles(); + } + }); + } + utils.reloadIcons(); + } + else { + document.getElementById("filesSend").disabled = true; + + document.getElementById("filesList").style.opacity = "0"; + await sleep(400); + document.getElementById("filesList").removeAttribute("style"); + document.getElementById("filesEmpty").style.display = "flex"; + await sleep(50); + document.getElementById("filesEmpty").removeAttribute("style"); + } + + do { + totalFileSize /= 1024; + index++; + } + while (totalFileSize > 1024); + document.getElementById("filesSize").innerText = totalFileSize.toFixed(2) + " " + byteUnits[index]; + } + + document.getElementById("sendMessage").addEventListener("keypress", enterSendButton); + + function enterSendButton(event) { + if (event.key == "Enter") + document.getElementById("filesSend").click(); + } + + document.getElementById("filesSend").addEventListener("click", async () => { + for (const selectedFile of selectedFiles) { + if (!fs.existsSync(selectedFile.path)) { + utils.showPopUp("alertPopup", "Erro ao enviar", "Um ou mais ficheiros a enviar já não existem. Verifique se os mesmos ainda estão na mesma pasta e tente novamente."); + return; + } + } + + document.getElementById("sidebar").setAttribute("disabled", ""); + document.getElementById("loadBar").style.display = "block"; + document.getElementById("filesSpace").setAttribute("disabled", ""); + document.getElementById("sendMessage").disabled = true; + document.getElementById("filesSend").disabled = true; + + let tData = await utils.sendFile(selectedFiles, document.getElementById("sendMessage").value); + if (typeof tData == "boolean") { + utils.showPopUp("alertPopup", "Erro ao enviar", "Ocorreu um erro durante o envio dos ficheiros. Por favor tente novamente mais tarde."); + + selectedFiles = new Array(); + document.getElementById("sidebar").removeAttribute("disabled"); + document.getElementById("filesSpace").removeAttribute("disabled"); + document.getElementById("sendMessage").disabled = false; + document.getElementById("sendMessage").value = ""; + document.getElementById("uploadEta").innerText = "0 segundos"; + document.getElementById("uploadSpeed").innerText = "0.00 MB/s"; + document.querySelector("#uploadProgress > svg").style.removeProperty("--value"); + document.querySelector("#uploadProgress > p").innerText = "0"; + reloadFiles(); + + utils.switchSubpanels(document.getElementById("filesUploading"), document.getElementById("filesPrepare")); + return; + } + + tData.creation = new Date(tData.creation); + tData.expire = new Date(tData.expire); + document.getElementById("transferCode").innerText = tData.code; + document.getElementById("transferCreation").innerText = tData.creation.toLocaleDateString(); + document.getElementById("transferExpire").innerText = tData.expire.toLocaleDateString(); + await utils.switchSubpanels(document.getElementById("filesUploading"), document.getElementById("filesDone")); + + selectedFiles = new Array(); + document.getElementById("sidebar").removeAttribute("disabled"); + document.getElementById("filesSpace").removeAttribute("disabled"); + document.getElementById("sendMessage").disabled = false; + document.getElementById("sendMessage").value = ""; + document.getElementById("uploadEta").innerText = "0 segundos"; + document.getElementById("uploadSpeed").innerText = "0.00 MB/s"; + document.querySelector("#uploadProgress > svg").style.removeProperty("--value"); + document.querySelector("#uploadProgress > p").innerText = "0"; + reloadFiles(); + }); + + document.getElementById("doneCopy").addEventListener("click", async (event) => { + if (!event.currentTarget.parentElement.hasAttribute("disabled")) { + let entry = event.currentTarget, entryDiv = event.currentTarget.parentElement; + entryDiv.setAttribute("disabled", ""); + + utils.copyToClipboard(document.getElementById("transferCode").innerText); + entry.style.fill = "var(--accent)"; + await sleep(1200); + entry.removeAttribute("style"); + + entryDiv.removeAttribute("disabled"); + } + }); + + document.getElementById("doneCopyLink").addEventListener("click", async (event) => { + if (!event.currentTarget.parentElement.hasAttribute("disabled")) { + let entry = event.currentTarget, entryDiv = event.currentTarget.parentElement; + entryDiv.setAttribute("disabled", ""); + + utils.copyToClipboard(utils.package.url + "?dl=" + document.getElementById("transferCode").innerText); + entry.style.fill = "var(--accent)"; + await sleep(1200); + entry.removeAttribute("style"); + + entryDiv.removeAttribute("disabled"); + } + }); + + //#endregion + + //#region Receive Panel + + for (let i = 1; i <= 6; i++) { + document.getElementById("code" + i).addEventListener("keydown", (event) => { + if ((event.ctrlKey && event.key == "v") || /[0-9]/.test(event.key)) + return; + if (!/[0-9]/.test(event.key) && event.key != "Backspace" && event.key != "Delete") + event.preventDefault(); + if (event.key == "Backspace") { + if (document.getElementById("code" + i).value.length == 0 && i != 1) + document.getElementById("code" + (i - 1)).focus(); + } + else if (event.key == "Enter") + document.getElementById("filesReceive").click(); + else if (event.key == "ArrowRight" && i != 6) + document.getElementById("code" + (i + 1)).focus(); + else if (event.key == "ArrowLeft" && i != 1) + document.getElementById("code" + (i - 1)).focus(); + }); + + document.getElementById("code" + i).addEventListener("keypress", async (event) => { + if (!Object.is(Number(event.key), NaN) && i != 6) { + await sleep(10); + document.getElementById("code" + (i + 1)).focus(); + } + }); + + document.getElementById("code" + i).addEventListener("input", () => { + if (Object.is(Number(document.getElementById("code" + i).value), NaN)) + document.getElementById("code" + i).value = ""; + + if (document.getElementById("code1").value.length != 0 && document.getElementById("code2").value.length != 0 && document.getElementById("code3").value.length != 0 && document.getElementById("code4").value.length != 0 && document.getElementById("code5").value.length != 0 && document.getElementById("code6").value.length != 0) + document.getElementById("filesReceive").disabled = false; + else + document.getElementById("filesReceive").disabled = true; + }); + + document.getElementById("code" + i).addEventListener("paste", (event) => { + let clipboardCode = event.clipboardData.getData("text"); + + event.preventDefault(); + if (/^\d{6}$/.test(clipboardCode)) { + document.getElementById("code1").value = clipboardCode[0]; + document.getElementById("code2").value = clipboardCode[1]; + document.getElementById("code3").value = clipboardCode[2]; + document.getElementById("code4").value = clipboardCode[3]; + document.getElementById("code5").value = clipboardCode[4]; + document.getElementById("code6").value = clipboardCode[5]; + document.getElementById("filesReceive").disabled = false; + } + }); + } + + document.getElementById("filesReceive").addEventListener("click", async () => { + document.getElementById("filesReceive").disabled = true; + document.getElementById("sidebar").setAttribute("disabled", ""); + for (let i = 1; i <= 6; i++) + document.getElementById("code" + i).disabled = true; + document.getElementById("loadBar").style.display = "block"; + document.getElementById("receiveInfo").setAttribute("disabled", ""); + + let receiveSuccess = await utils.receiveFile(document.getElementById("code1").value + document.getElementById("code2").value + document.getElementById("code3").value + document.getElementById("code4").value + document.getElementById("code5").value + document.getElementById("code6").value); + + document.getElementById("sidebar").removeAttribute("disabled"); + for (let i = 1; i <= 6; i++) + document.getElementById("code" + i).disabled = false; + document.getElementById("loadBar").style.display = "none"; + if (receiveSuccess) { + document.getElementById("code1").value = ""; + document.getElementById("code2").value = ""; + document.getElementById("code3").value = ""; + document.getElementById("code4").value = ""; + document.getElementById("code5").value = ""; + document.getElementById("code6").value = ""; + } + else + document.getElementById("filesReceive").disabled = false; + }); + + async function transferMessageResize() { + document.getElementById("transferMessage").removeAttribute("style"); + + if (document.getElementById("transferMessage").offsetWidth > 204) { + document.querySelector("#transferMessageSafe > style").innerText = "@keyframes textSlide { 0% { left: 204px; } 100% { left: -" + document.getElementById("transferMessage").offsetWidth + "px; } }"; + document.getElementById("transferMessage").style.animation = "textSlide " + (document.getElementById("transferMessage").innerText.length * 0.1) + "s linear 0s infinite"; + document.getElementById("transferMessageSafe").classList.add("moving"); + } + else + document.getElementById("transferMessageSafe").classList.remove("moving"); + } + + new ResizeObserver(transferMessageResize).observe(document.getElementById("transferMessage")); + + //#endregion + + //#region Login Panel + + document.getElementById("loginForgot").addEventListener("click", (event) => { + if (!event.currentTarget.hasAttribute("disabled")) + utils.switchSubpanels(document.getElementById("accountLogin"), document.getElementById("accountForgot")); + }); + + document.getElementById("createAccount").addEventListener("click", (event) => { + if (!event.currentTarget.hasAttribute("disabled")) + utils.switchSubpanels(document.getElementById("accountLogin"), document.getElementById("accountSignup")); + }); + + document.getElementById("loginUsername").addEventListener("keypress", enterLoginButton); + document.getElementById("loginPassword").addEventListener("keypress", enterLoginButton); + document.getElementById("loginUsername").addEventListener("input", unlockLoginButton); + document.getElementById("loginPassword").addEventListener("input", unlockLoginButton); + + function enterLoginButton(event) { + if (event.key == "Enter") + document.getElementById("loginButton").click(); + } + + function unlockLoginButton() { + if (document.getElementById("loginUsername").value.length != 0 && document.getElementById("loginPassword").value.length != 0) + document.getElementById("loginButton").disabled = false; + else + document.getElementById("loginButton").disabled = true; + } + + document.getElementById("loginButton").addEventListener("click", async () => { + document.getElementById("loginButton").disabled = true; + document.getElementById("loadBar").style.display = "block"; + document.getElementById("sidebar").setAttribute("disabled", ""); + document.getElementById("loginUsername").disabled = true; + document.getElementById("loginPassword").disabled = true; + document.getElementById("loginForgot").setAttribute("disabled", ""); + document.getElementById("createAccount").setAttribute("disabled", ""); + + let success = await utils.accountManager(utils.accountMode.LOGIN, { + username: document.getElementById("loginUsername").value, + password: document.getElementById("loginPassword").value + }); + if (success) + await sleep(1500); + + document.getElementById("loadBar").style.display = "none"; + document.getElementById("sidebar").removeAttribute("disabled"); + document.getElementById("loginUsername").disabled = false; + document.getElementById("loginPassword").disabled = false; + document.getElementById("loginForgot").removeAttribute("disabled"); + document.getElementById("createAccount").removeAttribute("disabled"); + + if (success) { + utils.switchPanels("welcomePanel"); + await utils.switchSubpanels(document.getElementById("welcomeInitial"), document.getElementById("welcomeFinal")); + await sleep(500); + welcomeFinalAnimation(false); + document.getElementById("loginUsername").value = ""; + document.getElementById("loginPassword").value = ""; + } + else + document.getElementById("loginButton").disabled = false; + }); + + document.getElementById("forgotUsername").addEventListener("keypress", enterForgotButton); + document.getElementById("forgotKey").addEventListener("keypress", enterForgotButton); + document.getElementById("forgotUsername").addEventListener("input", unlockForgotButton); + document.getElementById("forgotKey").addEventListener("input", unlockForgotButton); + + function enterForgotButton(event) { + if (event.key == "Enter") + document.getElementById("forgotButton").click(); + } + + function unlockForgotButton() { + if (document.getElementById("forgotUsername").value.length != 0 && document.getElementById("forgotKey").value.length != 0) + document.getElementById("forgotButton").disabled = false; + else + document.getElementById("forgotButton").disabled = true; + } + + document.getElementById("forgotButton").addEventListener("click", async () => { + document.getElementById("forgotButton").disabled = true; + document.getElementById("loadBar").style.display = "block"; + document.getElementById("sidebar").setAttribute("disabled", ""); + document.getElementById("forgotUsername").disabled = true; + document.getElementById("forgotKey").disabled = true; + + let success = await utils.accountManager(utils.accountMode.RECOVERY_CHECK, { + username: document.getElementById("forgotUsername").value, + recoveryKey: document.getElementById("forgotKey").value + }); + + document.getElementById("loadBar").style.display = "none"; + document.getElementById("sidebar").removeAttribute("disabled"); + document.getElementById("forgotUsername").disabled = false; + document.getElementById("forgotKey").disabled = false; + + if (success) { + let userPicture = await axios.get(utils.package.api + "user/" + document.getElementById("forgotUsername").value + "/picture", { validateStatus: () => true }); + if (userPicture.status == 200) + document.getElementById("resetProfilePic").style.setProperty("--image", "url(\"" + utils.package.api + "user/" + document.getElementById("forgotUsername").value + "/picture\")"); + else + document.getElementById("resetProfilePic").style.setProperty("--image", "url(\"./icons/account.svg\")"); + utils.switchSubpanels(document.getElementById("accountForgot"), document.getElementById("accountReset")); + } + else + document.getElementById("forgotButton").disabled = false; + }); + + document.getElementById("resetPassword").addEventListener("keypress", enterResetButton); + document.getElementById("resetPasswordRepeat").addEventListener("keypress", enterResetButton); + document.getElementById("resetPassword").addEventListener("input", unlockResetButton); + document.getElementById("resetPasswordRepeat").addEventListener("input", unlockResetButton); + + function enterResetButton(event) { + if (event.key == "Enter") + document.getElementById("resetButton").click(); + } + + function unlockResetButton() { + if (document.getElementById("resetPassword").value.length != 0 && document.getElementById("resetPasswordRepeat").value.length != 0) + document.getElementById("resetButton").disabled = false; + else + document.getElementById("resetButton").disabled = true; + } + + document.getElementById("resetButton").addEventListener("click", async () => { + if (document.getElementById("resetPassword").value != document.getElementById("resetPasswordRepeat").value) + utils.showPopUp("alertPopup", "Palavra-passe Inválida", "As palavras-passe inseridas não são iguais, por favor verifique e tente novamente."); + else { + document.getElementById("resetButton").disabled = true; + document.getElementById("loadBar").style.display = "block"; + document.getElementById("sidebar").setAttribute("disabled", ""); + document.getElementById("resetPassword").disabled = true; + document.getElementById("resetPasswordRepeat").disabled = true; + + let success = await utils.accountManager(utils.accountMode.PASSWORD_RECOVERY, { + username: document.getElementById("forgotUsername").value, + recoveryKey: document.getElementById("forgotKey").value, + password: document.getElementById("resetPassword").value + }); + + document.getElementById("loadBar").style.display = "none"; + document.getElementById("sidebar").removeAttribute("disabled"); + document.getElementById("resetPassword").disabled = false; + document.getElementById("resetPasswordRepeat").disabled = false; + + if (success) { + utils.switchPanels("homePanel"); + document.getElementById("forgotUsername").value = ""; + document.getElementById("forgotKey").value = ""; + document.getElementById("resetPassword").value = ""; + document.getElementById("resetPasswordRepeat").value = ""; + } + else + document.getElementById("resetButton").disabled = false; + } + }); + + document.getElementById("signupUsername").addEventListener("keypress", enterSignupButton); + document.getElementById("signupEmail").addEventListener("keypress", enterSignupButton); + document.getElementById("signupPassword").addEventListener("keypress", enterSignupButton); + document.getElementById("signupPasswordRepeat").addEventListener("keypress", enterSignupButton); + document.getElementById("signupUsername").addEventListener("input", unlockSignupButton); + document.getElementById("signupEmail").addEventListener("input", unlockSignupButton); + document.getElementById("signupPassword").addEventListener("input", unlockSignupButton); + document.getElementById("signupPasswordRepeat").addEventListener("input", unlockSignupButton); + + function enterSignupButton(event) { + if (event.key == "Enter") + document.getElementById("signupButton").click(); + } + + function unlockSignupButton() { + if (document.getElementById("signupUsername").value.length != 0 && document.getElementById("signupEmail").value.length != 0 && document.getElementById("signupPassword").value.length != 0 && document.getElementById("signupPasswordRepeat").value.length != 0) + document.getElementById("signupButton").disabled = false; + else + document.getElementById("signupButton").disabled = true; + } + + document.getElementById("signupButton").addEventListener("click", async () => { + if (document.getElementById("signupEmail").value.length > 250 || !/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById("signupEmail").value)) + utils.apiErrorHandler(4); + else if (document.getElementById("signupPassword").value != document.getElementById("signupPasswordRepeat").value) + utils.showPopUp("alertPopup", "Palavra-passe Inválida", "As palavras-passe inseridas não são iguais, por favor verifique e tente novamente."); + else if (document.getElementById("signupPassword").value.length > 50 || !/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d\w\W]{8,}$/.test(document.getElementById("signupPassword").value)) + utils.apiErrorHandler(5); + else { + document.getElementById("loadBar").style.display = "block"; + document.getElementById("sidebar").setAttribute("disabled", ""); + document.getElementById("signupUsername").disabled = true; + document.getElementById("signupEmail").disabled = true; + document.getElementById("signupPassword").disabled = true; + document.getElementById("signupPasswordRepeat").disabled = true; + document.getElementById("signupButton").disabled = true; + + let success = await utils.accountManager(utils.accountMode.CHECK, { + username: document.getElementById("signupUsername").value + }); + + document.getElementById("loadBar").style.display = "none"; + document.getElementById("sidebar").removeAttribute("disabled"); + document.getElementById("signupUsername").disabled = false; + document.getElementById("signupEmail").disabled = false; + document.getElementById("signupPassword").disabled = false; + document.getElementById("signupPasswordRepeat").disabled = false; + document.getElementById("signupButton").disabled = false; + + if (success) + utils.switchSubpanels(document.getElementById("accountSignup"), document.getElementById("accountPersonalize")); + } + }); + + document.getElementById("signupProfilePic").addEventListener("click", async () => { + let profileDialog = await utils.showOpenDialog("Escolher imagem", [{ name: "Imagens", extensions: ["png", "jpg", "jpeg"] }], ["openFile"]); + if (profileDialog.canceled) + document.getElementById("personalizeProfilePic").style.setProperty("--image", "url(\"./icons/account.svg\")"); + else + document.getElementById("personalizeProfilePic").style.setProperty("--image", "url(\"" + profileDialog.filePaths[0].replace(/\\/g, "/") + "\")"); + }); + + document.getElementById("finishSignupButton").addEventListener("click", async () => { + document.getElementById("finishSignupButton").disabled = true; + document.getElementById("loadBar").style.display = "block"; + document.getElementById("sidebar").setAttribute("disabled", ""); + document.getElementById("signupProfilePic").disabled = true; + + let imagePath = document.getElementById("personalizeProfilePic").style.getPropertyValue("--image"); + imagePath = imagePath.slice(5, imagePath.length - 2); + let success = await utils.accountManager(utils.accountMode.SIGNUP, { + username: document.getElementById("signupUsername").value, + email: document.getElementById("signupEmail").value, + password: document.getElementById("signupPassword").value, + picture: imagePath.endsWith(".svg") ? null : imagePath + }); + + document.getElementById("loadBar").style.display = "none"; + document.getElementById("sidebar").removeAttribute("disabled"); + document.getElementById("signupProfilePic").disabled = false; + + if (success) { + utils.switchPanels("welcomePanel"); + document.getElementById("signupUsername").value = ""; + document.getElementById("signupEmail").value = ""; + document.getElementById("signupPassword").value = ""; + document.getElementById("signupPasswordRepeat").value = ""; + } + else + document.getElementById("finishSignupButton").disabled = false; + }); + + //#endregion + + //#region Welcome Panel + + document.getElementById("welcomeInitialButton").addEventListener("click", async () => utils.switchSubpanels(document.getElementById("welcomeInitial"), document.getElementById("welcomeSync"))); + + document.getElementById("welcomeSyncButton").addEventListener("click", async () => utils.switchSubpanels(document.getElementById("welcomeSync"), document.getElementById("welcomeHome"))); + + document.getElementById("welcomeHomeButton").addEventListener("click", async () => utils.switchSubpanels(document.getElementById("welcomeHome"), document.getElementById("welcomeRecovery"))); + + document.getElementById("welcomeRecoveryButton").addEventListener("click", async () => { + await utils.switchSubpanels(document.getElementById("welcomeRecovery"), document.getElementById("welcomeFinal")); + await sleep(500); + welcomeFinalAnimation(false); + }); + + document.getElementById("welcomeFinalButton").addEventListener("click", async () => { + await sleep(200); + welcomeFinalAnimation(true); + }); + + async function welcomeFinalAnimation(rollback) { + if (!rollback) { + document.querySelector("#welcomeFinal > div > imgx").style.transform = "scale(1)"; + document.querySelector("#welcomeFinal > div > imgx").style.opacity = "1"; + await sleep(1000); + document.querySelector("#welcomeFinal > div > h1").style.opacity = "1"; + await sleep(400); + document.querySelector("#welcomeFinal > div > h2").style.opacity = "1"; + await sleep(1000); + document.querySelector("#welcomeFinal > button").style.opacity = "1"; + } + else { + document.querySelector("#welcomeFinal > div > imgx").style.removeProperty("transform"); + document.querySelector("#welcomeFinal > div > imgx").style.removeProperty("opacity"); + document.querySelector("#welcomeFinal > div > h1").removeAttribute("style"); + document.querySelector("#welcomeFinal > div > h2").removeAttribute("style"); + document.querySelector("#welcomeFinal > button").removeAttribute("style"); + } + } + + //#endregion + + //#region Account Panel + + var profilePicSet; + + document.getElementById("accountEdit").addEventListener("click", async () => { + let currentUserPicture = (await utils.accountManager(utils.accountMode.GET)).picture; + profilePicSet = currentUserPicture != null ? currentUserPicture : "./icons/account.svg"; + utils.switchSubpanels(document.getElementById("accountMain"), document.getElementById("accountEditProfile")); + }); + + document.getElementById("accountChange").addEventListener("click", () => utils.switchSubpanels(document.getElementById("accountMain"), document.getElementById("accountChangePassword"))); + + document.getElementById("accountLogoff").addEventListener("click", async () => { + let popupResult = await utils.showPopUp("askPopup", "Terminar Sessão", "Tem a certeza que quer terminar sessão?"); + if (popupResult) { + await sleep(200); + utils.accountManager(utils.accountMode.LOGOUT); + utils.switchPanels("homePanel"); + } + }); + + document.getElementById("editProfilePic").addEventListener("click", async () => { + let profileDialog = await utils.showOpenDialog("Escolher imagem", [{ name: "Imagens", extensions: ["png", "jpg", "jpeg"] }], ["openFile"]); + if (profileDialog.canceled) + document.getElementById("editProfilePicIcon").style.setProperty("--image", profilePicSet); + else + document.getElementById("editProfilePicIcon").style.setProperty("--image", "url(\"" + profileDialog.filePaths[0].replace(/\\/g, "/") + "\")"); + unlockEditButton(); + }); + + document.getElementById("editRemoveProfilePic").addEventListener("click", () => { + if (!document.getElementById("editRemoveProfilePic").hasAttribute("disabled")) { + document.getElementById("editProfilePicIcon").style.setProperty("--image", "url(\"./icons/account.svg\")"); + unlockEditButton(); + } + }); + + document.getElementById("editDelete").addEventListener("click", () => utils.switchSubpanels(document.getElementById("accountEditProfile"), document.getElementById("accountDelete"))); + + document.getElementById("editUsername").addEventListener("keypress", enterEditButton); + document.getElementById("editEmail").addEventListener("keypress", enterEditButton); + document.getElementById("editUsername").addEventListener("input", unlockEditButton); + document.getElementById("editEmail").addEventListener("input", unlockEditButton); + + function enterEditButton(event) { + if (event.key == "Enter") + document.getElementById("editButton").click(); + } + + function unlockEditButton() { + if (document.getElementById("editUsername").value.length != 0 || document.getElementById("editEmail").value.length != 0 || document.getElementById("editProfilePicIcon").style.getPropertyValue("--image") != profilePicSet) + document.getElementById("editButton").disabled = false; + else + document.getElementById("editButton").disabled = true; + } + + document.getElementById("editButton").addEventListener("click", async () => { + document.getElementById("editButton").disabled = true; + document.getElementById("loadBar").style.display = "block"; + document.getElementById("sidebar").setAttribute("disabled", ""); + document.getElementById("editUsername").disabled = true; + document.getElementById("editEmail").disabled = true; + document.getElementById("editProfilePic").disabled = true; + document.getElementById("editRemoveProfilePic").setAttribute("disabled", ""); + document.getElementById("editDelete").disabled = true; + + let imagePath = document.getElementById("editProfilePicIcon").style.getPropertyValue("--image"); + imagePath = imagePath.slice(5, imagePath.length - 2).split("?")[0]; + let success = await utils.accountManager(utils.accountMode.EDIT, { + newUsername: document.getElementById("editUsername").value == "" ? null : document.getElementById("editUsername").value, + email: document.getElementById("editEmail").value == "" ? null : document.getElementById("editEmail").value, + pictureChange: imagePath != profilePicSet, + picture: imagePath + }); + + document.getElementById("loadBar").style.display = "none"; + document.getElementById("sidebar").removeAttribute("disabled"); + document.getElementById("editUsername").disabled = false; + document.getElementById("editEmail").disabled = false; + document.getElementById("editProfilePic").disabled = false; + document.getElementById("editRemoveProfilePic").removeAttribute("disabled"); + document.getElementById("editDelete").disabled = false; + + if (success) { + await utils.switchPanels("accountPanel"); + document.getElementById("editUsername").value = ""; + document.getElementById("editEmail").value = ""; + } + else + document.getElementById("editButton").disabled = false; + }); + + document.getElementById("changePassword").addEventListener("keypress", enterChangeButton); + document.getElementById("changePasswordRepeat").addEventListener("keypress", enterChangeButton); + document.getElementById("changePassword").addEventListener("input", unlockChangeButton); + document.getElementById("changePasswordRepeat").addEventListener("input", unlockChangeButton); + + function enterChangeButton(event) { + if (event.key == "Enter") + document.getElementById("changeButton").click(); + } + + function unlockChangeButton() { + if (document.getElementById("changePassword").value.length != 0 && document.getElementById("changePasswordRepeat").value.length != 0) + document.getElementById("changeButton").disabled = false; + else + document.getElementById("changeButton").disabled = true; + } + + document.getElementById("changeButton").addEventListener("click", async () => { + if (document.getElementById("changePassword").value != document.getElementById("changePasswordRepeat").value) + utils.showPopUp("alertPopup", "Palavra-passe Inválida", "As palavras-passe inseridas não são iguais, por favor verifique e tente novamente."); + else { + document.getElementById("changeButton").disabled = true; + document.getElementById("loadBar").style.display = "block"; + document.getElementById("sidebar").setAttribute("disabled", ""); + document.getElementById("changePassword").disabled = true; + document.getElementById("changePasswordRepeat").disabled = true; + + let success = await utils.accountManager(utils.accountMode.EDIT_PASSWORD, { + password: document.getElementById("changePassword").value + }); + + document.getElementById("loadBar").style.display = "none"; + document.getElementById("sidebar").removeAttribute("disabled"); + document.getElementById("changePassword").disabled = false; + document.getElementById("changePasswordRepeat").disabled = false; + + if (success) { + await utils.showPopUp("alertPopup", "Palavra-passe alterada", "A sua palavra-passe foi alterada com sucesso!"); + await utils.switchPanels("accountPanel"); + document.getElementById("changePassword").value = ""; + document.getElementById("changePasswordRepeat").value = ""; + } + else + document.getElementById("changeButton").disabled = false; + } + }); + + document.getElementById("accountDeleteButton").addEventListener("click", () => utils.switchSubpanels(document.getElementById("accountDelete"), document.getElementById("accountDeleteConfirm"))); + + document.getElementById("deletePassword").addEventListener("keypress", (event) => { + if (event.key == "Enter") + document.getElementById("accountConfirmDeleteButton").click(); + }); + + document.getElementById("deletePassword").addEventListener("input", () => { + if (document.getElementById("deletePassword").value.length >= 8) + document.getElementById("accountConfirmDeleteButton").disabled = false; + else + document.getElementById("accountConfirmDeleteButton").disabled = true; + }); + + document.getElementById("accountConfirmDeleteButton").addEventListener("click", async () => { + let popupResult = await utils.showPopUp("askPopup", "Tem mesmo a certeza?", "Os seus dados serão eliminados de forma irreversivel! Uma vez iniciado o processo de eliminação da conta, o mesmo não poderá ser cancelado!"); + if (popupResult) { + document.getElementById("sidebar").setAttribute("disabled", ""); + await utils.switchSubpanels(document.getElementById("accountDeleteConfirm"), document.getElementById("accountDeleteProgress")); + document.getElementById("loadBar").style.display = "block"; + + let success = await utils.accountManager(utils.accountMode.DELETE, { password: document.getElementById("deletePassword").value }); + if (!success) + await utils.switchSubpanels(document.getElementById("accountDeleteProgress"), document.getElementById("accountDeleteConfirm")); + + document.getElementById("deletePassword").value = ""; + document.getElementById("sidebar").removeAttribute("disabled"); + document.getElementById("loadBar").style.display = "none"; + + utils.switchPanels("homePanel"); + } + }); + + //#endregion + + //#region Settings Panel + + document.getElementById("settingsAppearance").addEventListener("change", async () => { + let styleElement = document.createElement("style"); + styleElement.id = "styleElement"; + styleElement.innerText = "* { transition: background-color 0.4s, color 0.4s !important; }"; + document.body.appendChild(styleElement); + + if (Boolean(Number(document.getElementById("settingsAppearance").value))) + document.body.setAttribute("theme", "dark"); + else + document.body.setAttribute("theme", "light"); + + utils.setSetting("settings.darkMode", Boolean(Number(document.getElementById("settingsAppearance").value))); + await sleep(400); + document.body.removeChild(styleElement); + }); + + document.getElementById("settingsSaveHistory").addEventListener("change", () => utils.setSetting("settings.saveHistory", document.getElementById("settingsSaveHistory").checked)); + + document.getElementById("settingsAutoUpdate").addEventListener("change", () => utils.setSetting("settings.autoUpdate", document.getElementById("settingsAutoUpdate").checked)); + + document.getElementById("settingsBetaUpdates").addEventListener("change", () => utils.setSetting("settings.betaUpdates", document.getElementById("settingsBetaUpdates").checked)); + + document.getElementById("settingsVersion").addEventListener("click", () => { + upSideDown++; + clearTimeout(upSideDownTimeOut); + upSideDownTimeOut = setTimeout(() => upSideDown = 0, 400); + if (upSideDown == 5) { + upSideDown = 0; + if (!document.body.hasAttribute("style")) + document.body.style.transform = "rotateZ(180deg)"; + else + document.body.removeAttribute("style"); + } + }); + + //#endregion +}); \ No newline at end of file diff --git a/src/splash.js b/src/splash.js new file mode 100644 index 0000000..01a20ad --- /dev/null +++ b/src/splash.js @@ -0,0 +1,43 @@ +const { ipcRenderer } = require("electron"); +const fs = require("fs"); +const log = require("electron-log"); +const isOnline = require("is-online"); +const utils = require("./utils"); + +Object.assign(console, log.functions); +log.transports.file.fileName = "logs.log"; + +window.addEventListener("load", async () => { + document.querySelector("#splash > div > div > h1").innerText = utils.package.productName; + + let appearanceMode = !(await utils.getSetting("settings")).darkMode; + document.body.setAttribute("theme", appearanceMode ? "light" : "dark"); + + if (!await isOnline({ timeout: 3000 })) { + console.error("Sem conexão há internet."); + document.getElementById("splashMessage").innerText = "Sem conexão à internet"; + return; + } + + document.getElementById("splashMessage").innerText = "A procurar por atualizações"; + ipcRenderer.send("CheckForUpdates", utils.package.version); + + ipcRenderer.on("CheckForUpdatesComplete", async (_event, status, url) => { + if (!status || !(await utils.getSetting("settings.autoUpdate"))) { + document.getElementById("splashMessage").innerText = "A iniciar sessão"; + let loginSuccess = await utils.accountManager(utils.accountMode.LOGINSTART); + if (!loginSuccess) + utils.showErrorDialog("Falha ao conectar", "Não foi possível conectar ao servidor e iniciar sessão."); + + document.getElementById("splashMessage").innerText = "A finalizar!"; + if (fs.existsSync((await utils.getPaths("temp")) + "\\" + utils.package.productName + ".exe")) + fs.unlinkSync((await utils.getPaths("temp")) + "\\" + utils.package.productName + ".exe"); + + utils.openMain(); + } + else { + document.getElementById("splashMessage").innerText = "A atualizar"; + ipcRenderer.send("InstallUpdate", url); + } + }); +}); \ No newline at end of file diff --git a/src/utils.js b/src/utils.js new file mode 100644 index 0000000..f64f341 --- /dev/null +++ b/src/utils.js @@ -0,0 +1,768 @@ +const { clipboard, ipcRenderer } = require("electron"); +const fs = require("fs"); +const log = require("electron-log"); +const showdown = require("showdown"); +const axios = require("axios").default; +const crypto = require("crypto"); +const package = require("../package.json"); +var currentPanel = "homePanel"; + +Object.assign(console, log.functions); +log.transports.file.fileName = "logs.log"; + +//#region Functions + +function closeWindow() { + ipcRenderer.send("WinClose"); +} + +function minimizeWindow() { + ipcRenderer.send("WinMinimize"); +} + +async function reloadIcons() { + for (const icon of document.getElementsByTagName("icon")) { + try { + let iconXML = await fetch("./assets/icons/" + icon.getAttribute("name") + ".svg"); + icon.innerHTML = await iconXML.text(); + } + catch { + console.warn("Não foi possível carregar o icone: " + icon.getAttribute("name")); + } + } +} + +function openMain() { + ipcRenderer.send("OpenMain"); +} + +function openPanel() { + return currentPanel; +} + +async function getPaths(name) { + return await ipcRenderer.sendSync("GetPaths", name); +} + +async function getUrlPath() { + return await ipcRenderer.sendSync("GetUrlPath"); +} + +async function getSetting(name) { + return await ipcRenderer.sendSync("GetSetting", name); +} + +function setSetting(name, value) { + return ipcRenderer.send("SetSetting", name, value); +} + +async function getChanges() { + return await ipcRenderer.sendSync("GetChanges"); +} + +async function switchPanels(to) { + for (const selectedTab of document.getElementsByClassName("selected")) + selectedTab.classList.remove("selected"); + + for (const sidebarOption of document.getElementById("sidebar").children) { + if (sidebarOption.getAttribute("goto") == to) + sidebarOption.classList.add("selected"); + } + + document.getElementById(currentPanel).style.opacity = "0"; + await sleep(200); + document.getElementById(currentPanel).style.display = "none"; + + for (const subPanel of document.getElementById(to).children) + subPanel.removeAttribute("style"); + + currentPanel = to; + + document.getElementById(to).style.display = "flex"; + await sleep(200); + document.getElementById(to).removeAttribute("style"); +} + +async function switchSubpanels(from, to) { + let fromI = 0, toI = 0; + for (let i = 0; i < from.parentElement.children.length; i++) { + if (from.parentElement.children[i] == from) + fromI = i; + if (from.parentElement.children[i] == to) + toI = i; + } + + if (fromI <= toI) + from.style.transform = "translateX(-30px)"; + else + from.style.transform = "translateX(30px)"; + from.style.opacity = "0"; + await sleep(200); + from.style.display = "none"; + to.style.display = "flex"; + await sleep(50); + to.style.transform = "translateX(0px)"; + to.style.opacity = "1"; +} + +async function updateGreeting() { + let currentHour = new Date().getHours(); + + if (currentHour >= 8 && currentHour <= 12) + document.getElementById("greetingTime").innerText = "Bom dia"; + else if (currentHour >= 13 && currentHour <= 19) + document.getElementById("greetingTime").innerText = "Boa tarde"; + else if (currentHour >= 20 || currentHour <= 7) + document.getElementById("greetingTime").innerText = "Boa noite"; + + if (Object.keys(await accountManager(accountMode.GET)).length != 0) + document.getElementById("greetingTime").innerText += " "; +} + +function checkFolder(path) { + return fs.lstatSync(path).isDirectory(); +} + +function sendFile(files, message) { + return new Promise((resolve) => { + ipcRenderer.send("SendFile", files, message); + ipcRenderer.once("SendFileComplete", onSendFileComplete); + + async function onSendFileComplete(_event, data, status) { + let errorHandler = await apiErrorHandler(data.code, status); + if (errorHandler) { + document.getElementById("loadBar").style.display = "none"; + switchSubpanels(document.getElementById("filesPrepare"), document.getElementById("filesUploading")); + ipcRenderer.send("SetProgressBar", "0"); + + let pgsRepeat = setInterval(async () => { + let apiResult = await axios.get(data.value.progressUrl, { validateStatus: () => true }); + let errorHandler2 = await apiErrorHandler(apiResult.data.code, apiResult.status); + + if (errorHandler2) { + ipcRenderer.send("SetProgressBar", apiResult.data.value.percentage); + document.querySelector("#uploadProgress > svg").style.setProperty("--value", apiResult.data.value.percentage); + document.querySelector("#uploadProgress > p").innerText = apiResult.data.value.percentage; + document.getElementById("uploadEta").innerText = apiResult.data.value.eta == undefined ? "0 segundos" : apiResult.data.value.eta; + document.getElementById("uploadSpeed").innerText = apiResult.data.value.speed == undefined ? "0.00 MB/s" : apiResult.data.value.speed; + if (apiResult.data.value.percentage == 100) { + clearInterval(pgsRepeat); + ipcRenderer.send("SetProgressBar", "-100"); + reloadHistory(); + resolve(apiResult.data.value.transfer); + } + } + else { + clearInterval(pgsRepeat); + ipcRenderer.send("SetProgressBar", "-100"); + resolve(false); + } + }, 1000); + } + else + resolve(false); + } + }); +} + +function receiveFile(code) { + return new Promise(async (resolve) => { + let apiResult = await axios.get(package.api + "file/" + code + "/info", { validateStatus: () => true }); + let errorHandler = await apiErrorHandler(apiResult.data.code, apiResult.status); + + if (errorHandler) { + if (apiResult.data.value.message != null) + document.getElementById("transferMessage").innerText = apiResult.data.value.message; + else + document.getElementById("transferMessage").innerHTML = "Sem mensagem"; + + if (apiResult.data.value.sentBy != null) + document.getElementById("transferSentBy").innerText = apiResult.data.value.sentBy; + else + document.getElementById("transferSentBy").innerHTML = "Convidado"; + + document.getElementById("receiveInfo").removeAttribute("disabled"); + let saveDialog = await showSaveDialog("Guardar ficheiro", apiResult.data.value.fileName, [{ name: "Ficheiro (" + apiResult.data.value.fileName.match(/\.[0-9a-z]+$/g)[0] + ")", extensions: [ apiResult.data.value.fileName.match(/[0-9a-z]+$/g)[0] ] }]); + if (saveDialog.canceled) + return resolve(false); + + document.querySelector("#receiveSide > pbar").style.opacity = "1"; + ipcRenderer.send("ReceiveFile", code, saveDialog.filePath); + ipcRenderer.on("ReceiveFileProgress", onReceiveFileProgress); + ipcRenderer.once("ReceiveFileComplete", onReceiveFileComplete); + + function onReceiveFileProgress(_event, progress) { + document.querySelector("#receiveSide > pbar").style.setProperty("--value", progress + "%"); + } + + async function onReceiveFileComplete() { + resolve(true); + + reloadHistory(); + document.querySelector("#receiveSide > pbar").style.opacity = "0"; + await sleep(400); + document.querySelector("#receiveSide > pbar").removeAttribute("style"); + ipcRenderer.off("ReceiveFileProgress", onReceiveFileProgress); + } + + return; + } + resolve(errorHandler); + }); +} + +async function accountManager(mode, args) { + if (mode == accountMode.GET) + return await ipcRenderer.sendSync("AccountStorage", false); + else if (mode == accountMode.CHECK) { + let apiResult = await axios.post(package.api + "user/check/", { username: args.username }, { validateStatus: () => true }); + let errorHandler = await apiErrorHandler(apiResult.data.code, apiResult.status); + if (errorHandler && !apiResult.data.value) + showPopUp("alertPopup", "Nome já utilizado", "O nome de utilizador inserido já está em utilização, por favor escolha outro."); + + return errorHandler ? apiResult.data.value : false; + } + else if (mode == accountMode.SIGNUP) { + return new Promise((resolve) => { + ipcRenderer.send("AccountSignUp", args); + ipcRenderer.once("AccountSignUpComplete", onAccountSignUpComplete); + + async function onAccountSignUpComplete(_event, data, status) { + let errorHandler = await apiErrorHandler(data.code, status); + if (errorHandler) { + args.password = crypto.createHash("sha512").update(args.password).digest("hex"); + ipcRenderer.send("AccountStorage", true, Object.assign(data.value, { password: args.password })); + fs.writeFileSync((await getPaths("userData")) + "\\account.json", JSON.stringify({ + username: args.username, + password: args.password + }, null, 4), "utf8"); + reloadAccount(); + document.getElementById("welcomeRecoveryKey").innerText = data.value.recoveryKey; + } + + resolve(errorHandler); + } + }); + } + else if (mode == accountMode.LOGIN) { + args.password = crypto.createHash("sha512").update(args.password).digest("hex"); + let apiResult = await axios.post(package.api + "user/login", { + username: args.username, + password: args.password + }, { validateStatus: () => true }); + let errorHandler = await apiErrorHandler(apiResult.data.code, apiResult.status); + + if (errorHandler) { + ipcRenderer.send("AccountStorage", true, Object.assign(apiResult.data.value, { password: args.password })); + fs.writeFileSync((await getPaths("userData")) + "\\account.json", JSON.stringify({ + username: args.username, + password: args.password + }, null, 4), "utf8"); + reloadAccount(); + } + return errorHandler; + } + else if (mode == accountMode.LOGINSTART) { + if (fs.existsSync((await getPaths("userData")) + "\\account.json")) { + try { + let credentials = JSON.parse(fs.readFileSync((await getPaths("userData")) + "\\account.json", "utf8")); + let apiResult = await axios.post(package.api + "user/login", { + username: credentials.username, + password: credentials.password + }, { validateStatus: () => true }); + + if (apiResult.status == 200 && apiResult.data.code == 0) { + ipcRenderer.send("AccountStorage", true, Object.assign(apiResult.data.value, { password: credentials.password })); + return true; + } + else if (apiResult.status == 200) { + fs.unlinkSync((await getPaths("userData")) + "\\account.json"); + return false; + } + else + return false; + } + catch { + return false; + } + } + return true; + } + else if (mode == accountMode.EDIT) { + return new Promise((resolve) => { + ipcRenderer.send("AccountEditInfo", args); + ipcRenderer.once("AccountEditInfoComplete", onAccountEditInfoComplete); + + async function onAccountEditInfoComplete(_event, data, status) { + let currentUser = await accountManager(accountMode.GET); + let errorHandler = await apiErrorHandler(data.code, status); + if (errorHandler) { + ipcRenderer.send("AccountStorage", true, Object.assign(data.value, { password: currentUser.password })); + fs.writeFileSync((await getPaths("userData")) + "\\account.json", JSON.stringify({ + username: data.value.username, + password: currentUser.password + }, null, 4), "utf8"); + reloadAccount(); + } + + resolve(errorHandler); + } + }); + } + else if (mode == accountMode.EDIT_PASSWORD) { + let currentUser = await accountManager(accountMode.GET); + let apiResult = await axios.put(package.api + "user/" + currentUser.username + "/edit/password", { + password: currentUser.password, + newPassword: args.password + }, { validateStatus: () => true }); + let errorHandler = await apiErrorHandler(apiResult.data.code, apiResult.status); + + if (errorHandler) { + args.password = crypto.createHash("sha512").update(args.password).digest("hex"); + ipcRenderer.send("AccountStorage", true, Object.assign(apiResult.data.value, { password: args.password })); + fs.writeFileSync((await getPaths("userData")) + "\\account.json", JSON.stringify({ + username: currentUser.username, + password: args.password + }, null, 4), "utf8"); + } + + return errorHandler; + } + else if (mode == accountMode.RECOVERY_CHECK) { + let apiResult = await axios.post(package.api + "user/recovery/check", { + username: args.username, + recoveryKey: crypto.createHash("sha512").update(args.recoveryKey).digest("hex") + }, { validateStatus: () => true }); + let errorHandler = await apiErrorHandler(apiResult.data.code, apiResult.status); + if (errorHandler && !apiResult.data.value) + showPopUp("alertPopup", "Dados incorretos", "O nome de utilizador ou chave inserida estão incorretos, verifique se os escreveu corretamente e tente novamente."); + + return errorHandler ? apiResult.data.value : false; + } + else if (mode == accountMode.PASSWORD_RECOVERY) { + let apiResult = await axios.post(package.api + "user/recovery/password", { + username: args.username, + recoveryKey: crypto.createHash("sha512").update(args.recoveryKey).digest("hex"), + newPassword: args.password + }, { validateStatus: () => true }); + let errorHandler = await apiErrorHandler(apiResult.data.code, apiResult.status); + + if (errorHandler) { + args.password = crypto.createHash("sha512").update(args.password).digest("hex"); + ipcRenderer.send("AccountStorage", true, Object.assign(apiResult.data.value, { password: args.password })); + fs.writeFileSync((await getPaths("userData")) + "\\account.json", JSON.stringify({ + username: args.username, + password: args.password + }, null, 4), "utf8"); + reloadAccount(); + showPopUp("boxPopup", "Sucesso", "A sua conta foi restaurada com sucesso, guarde esta nova chave de recuperação para o caso de se esquecer da palavra-passe no futuro.", apiResult.data.value.recoveryKey); + } + + return errorHandler; + } + else if (mode == accountMode.LOGOUT) { + ipcRenderer.send("AccountStorage", true, {}); + fs.unlinkSync((await getPaths("userData")) + "\\account.json"); + reloadAccount(); + } + else if (mode == accountMode.DELETE) { + let currentUser = await accountManager(accountMode.GET); + let apiResult = await axios.post(package.api + "user/" + currentUser.username + "/delete", { + password: crypto.createHash("sha512").update(args.password).digest("hex") + }, { validateStatus: () => true }); + let errorHandler = await apiErrorHandler(apiResult.data.code, apiResult.status); + + if (errorHandler) { + ipcRenderer.send("AccountStorage", true, {}); + fs.unlinkSync((await getPaths("userData")) + "\\account.json"); + reloadAccount(); + + await showPopUp("alertPopup", "Sucesso", "A sua conta foi apagada com sucesso. Esperamos que nos possamos ver em breve!"); + } + + return errorHandler; + } +} + +async function reloadAccount() { + let currentUser = await accountManager(accountMode.GET); + + if (Object.keys(currentUser).length != 0) { + document.getElementById("greetingName").innerText = currentUser.username; + document.getElementById("sidebarName").innerText = currentUser.username; + document.getElementById("welcomeFinalUsername").innerText = currentUser.username; + document.getElementById("accountName").innerText = currentUser.username; + document.getElementById("editUsername").setAttribute("placeholder", currentUser.username); + document.getElementById("editEmail").setAttribute("placeholder", currentUser.email); + + document.getElementById("sidebarPicture").parentElement.setAttribute("goto", "accountPanel"); + document.getElementById("settingsHistory").classList.add("loggedOn"); + + let time = new Date(); + for (const accountPicture of document.getElementsByClassName("accountPicture")) { + if (currentUser.picture != null) + accountPicture.style.setProperty("--image", "url(\"" + currentUser.picture + "?" + time.toLocaleTimeString() + "\")"); + else + accountPicture.style.setProperty("--image", "url(\"./icons/account.svg\")"); + } + } + else { + document.getElementById("greetingName").innerText = ""; + document.getElementById("sidebarName").innerText = "Iniciar Sessão"; + + for (const accountPicture of document.getElementsByClassName("accountPicture")) + accountPicture.style.setProperty("--image", "url(\"./icons/account.svg\")"); + + document.getElementById("sidebarPicture").parentElement.setAttribute("goto", "loginPanel"); + document.getElementById("settingsHistory").classList.remove("loggedOn"); + } + await reloadHistory(); + await updateGreeting(); +} + +async function reloadHistory() { + let currentUser = await accountManager(accountMode.GET); + + document.getElementById("homeDetailed").replaceChildren(); + if (Object.keys(currentUser).length != 0) { + let credentials = JSON.parse(fs.readFileSync((await getPaths("userData")) + "\\account.json", "utf8")); + let apiResult = await axios.post(package.api + "user/" + currentUser.username + "/history", { password: credentials.password }, { validateStatus: () => true }); + + let historyObj = apiResult.data.value; + let errorHandler = await apiErrorHandler(apiResult.data.code, apiResult.status); + if (errorHandler && historyObj.length != 0) { + for (const entry of historyObj.reverse()) { + let divContainer = document.createElement("div"), divLeftContainer = document.createElement("div"), icon = document.createElement("icon"), divTextContainer = document.createElement("div"), titleSpan = document.createElement("span"), subtitleSpan = document.createElement("span"), divRightContainer = document.createElement("div"), copyIcon = document.createElement("icon"), copyLinkIcon = document.createElement("icon"); + + icon.setAttribute("name", entry.type == 0 ? "historySend" : "historyReceive"); + titleSpan.innerText = entry.type == 0 ? "Ficheiro Enviado" : "Ficheiro Recebido"; + subtitleSpan.innerHTML = entry.code + "    |    " + new Date(entry.date).toLocaleDateString() + "  " + new Date(entry.date).toLocaleTimeString().substring(0, 5); + copyIcon.setAttribute("name", "copy"); + copyIcon.title = "Copiar"; + copyLinkIcon.setAttribute("name", "link"); + copyLinkIcon.title = "Copiar Link"; + + divTextContainer.appendChild(titleSpan); + divTextContainer.appendChild(subtitleSpan); + divLeftContainer.appendChild(icon); + divLeftContainer.appendChild(divTextContainer); + divRightContainer.appendChild(copyIcon); + divRightContainer.appendChild(copyLinkIcon); + divContainer.appendChild(divLeftContainer); + divContainer.appendChild(divRightContainer); + + copyIcon.addEventListener("click", async (event) => { + if (!event.currentTarget.parentElement.parentElement.hasAttribute("disabled")) { + let entryDiv = event.currentTarget.parentElement.parentElement; + entryDiv.setAttribute("disabled", ""); + + let code = entryDiv.querySelector("div > span:last-of-type").innerText.substring(0, 6), titleSpanRewind = entryDiv.querySelector("div > span:first-of-type").innerText; + copyToClipboard(code); + entryDiv.querySelector("div > span:first-of-type").style.opacity = 0; + await sleep(200); + entryDiv.querySelector("div > span:first-of-type").innerText = "Código copiado!"; + entryDiv.querySelector("div > span:first-of-type").removeAttribute("style"); + await sleep(3200); + entryDiv.querySelector("div > span:first-of-type").style.opacity = 0; + await sleep(200); + entryDiv.querySelector("div > span:first-of-type").innerText = titleSpanRewind; + entryDiv.querySelector("div > span:first-of-type").removeAttribute("style"); + + entryDiv.removeAttribute("disabled"); + } + }); + + copyLinkIcon.addEventListener("click", async (event) => { + if (!event.currentTarget.parentElement.parentElement.hasAttribute("disabled")) { + let entryDiv = event.currentTarget.parentElement.parentElement; + entryDiv.setAttribute("disabled", ""); + + let code = entryDiv.querySelector("div > span:last-of-type").innerText.substring(0, 6), titleSpanRewind = entryDiv.querySelector("div > span:first-of-type").innerText; + copyToClipboard(package.url + "?dl=" + code); + entryDiv.querySelector("div > span:first-of-type").style.opacity = 0; + await sleep(200); + entryDiv.querySelector("div > span:first-of-type").innerText = "Link copiado!"; + entryDiv.querySelector("div > span:first-of-type").removeAttribute("style"); + await sleep(3200); + entryDiv.querySelector("div > span:first-of-type").style.opacity = 0; + await sleep(200); + entryDiv.querySelector("div > span:first-of-type").innerText = titleSpanRewind; + entryDiv.querySelector("div > span:first-of-type").removeAttribute("style"); + + entryDiv.removeAttribute("disabled"); + } + }); + + document.getElementById("homeDetailed").appendChild(divContainer); + } + + document.querySelector("#homePanel > div").classList.add("detailed"); + await reloadIcons(); + } + } + else + document.querySelector("#homePanel > div").classList.remove("detailed"); +} + +function copyToClipboard(value) { + clipboard.writeText(value); +} + +async function showOpenDialog(title, filters, properties) { + return await ipcRenderer.sendSync("ShowDialog", "OPEN", { + title: title, + filters: filters, + properties: properties + }); +} + +async function showSaveDialog(title, defaultPath, filters) { + return await ipcRenderer.sendSync("ShowDialog", "SAVE", { + title: title, + defaultPath: defaultPath, + filters: filters + }); +} + +async function showErrorDialog(title, content) { + return await ipcRenderer.sendSync("ShowDialog", "ERROR", { + title: title, + content: content + }); +} + +function showPopUp(type, title, text, boxText) { + return new Promise(async (resolve) => { + document.querySelector("#" + type + " > h1").innerText = title; + + if (type == "alertPopup" || type == "askPopup") + document.querySelector("#" + type + " > p").innerText = text; + else if (type == "changelogPopup") + document.querySelector("#" + type + " > div").innerHTML = new showdown.Converter().makeHtml(boxText); + else if (type == "boxPopup") { + document.querySelector("#" + type + " > p").innerText = text; + document.querySelector("#" + type + " > div").innerText = boxText; + } + + async function closePopUp(event) { + if (event.currentTarget == event.target) { + resolve(event.currentTarget.id == "askPopupButtonYes"); + + document.getElementById("popups").style.opacity = "0"; + document.getElementById(type).style.opacity = "0"; + document.getElementById(type).style.transform = "scale(0.5)"; + await sleep(200); + document.getElementById(type).removeAttribute("style"); + document.getElementById("popups").removeAttribute("style"); + } + } + + document.getElementById("popups").style.display = "flex"; + await sleep(50); + document.getElementById("popups").style.opacity = "1"; + document.getElementById(type).style.display = "block"; + await sleep(50); + document.getElementById(type).style.opacity = "1"; + document.getElementById(type).style.transform = "scale(1)"; + + document.getElementById("popups").addEventListener("click", closePopUp, { once: true }); + + if (type == "alertPopup") + document.getElementById("alertPopupButton").addEventListener("click", closePopUp, { once: true }); + else if (type == "askPopup") { + document.getElementById("askPopupButtonYes").addEventListener("click", closePopUp, { once: true }); + document.getElementById("askPopupButtonNo").addEventListener("click", closePopUp, { once: true }); + } + else if (type == "changelogPopup") + document.getElementById("changelogPopupButton").addEventListener("click", closePopUp, { once: true }); + else if (type == "boxPopup") + document.getElementById("boxPopupButton").addEventListener("click", closePopUp, { once: true }); + }); +} + +async function apiErrorHandler(code, status) { + let strings = ["Erro desconhecido", "O servidor devolveu um erro não conhecido. Verifique se tem a versão mais recente do " + package.productName + " e tente novamente."]; + + switch (code) { + case 0: + return true; + case 1: + strings = ["Parâmetros em Falta", "Um dos parâmetros obrigatórios está em falta."]; + break; + case 2: + strings = ["Parâmetros em Falta", "Nenhum dos parâmetros a modificar foram providenciados."]; + break; + case 3: + strings = ["Nome de Utilizador Inválido", "O nome de utilizador deve ser composto apenas por números, letras ou algum destes caracteres: \".\" \"-\" \"_\"."]; + break; + case 4: + strings = ["Email Inválido", "O endereço de email inserido não é válido. Por favor verifique se o escreveu corretamente e tente novamente."]; + break; + case 5: + strings = ["Palavra-Passe Inválida", "A palavra-passe inserida deve ter pelo menos 8 caracteres, uma letra minúscula, uma maiúscula e um número."]; + break; + case 6: + strings = ["Palavra-Passe Inválida", "A nova palavra-passe deve ter pelo menos 8 caracteres, uma letra minúscula, uma maiúscula e um número."]; + break; + case 7: + strings = ["Dados Inválidos", "O nome de utilizador ou a palavra-passe inseridos estão incorretos, por favor tente novamente."]; + break; + case 8: + strings = ["Nome já utilizado", "O nome de utilizador inserido já está em utilização, por favor escolha outro."]; + break; + case 9: + strings = ["Erro desconhecido", "Ocorreu um erro ao tentar criar a sua conta. Por favor tente novamente mais tarde."]; + break; + case 10: + strings = ["Erro desconhecido", "Ocorreu um erro ao tentar verificar o seu nome de utilizador. Por favor tente novamente mais tarde."]; + break; + case 11: + strings = ["Erro desconhecido", "Ocorreu um erro ao tentar editar o seu perfil. Por favor tente novamente mais tarde."]; + break; + case 12: + strings = ["Foto de Perfil", "Nenhuma foto de perfil foi enviada."]; + break; + case 13: + strings = ["Erro desconhecido", "Ocorreu um erro na alteração da palavra-passe. Por favor tente novamente mais tarde."]; + break; + case 14: + strings = ["Chave Inválida", "A chave de recuperação inserida não é uma chave válida, verifique se a escreveu corretamente e tente novamente."]; + break; + case 15: + strings = ["Dados Inválidos", "O nome de utilizador ou a chave de recuperação inseridos estão incorretos, por favor tente novamente."]; + break; + case 16: + strings = ["Foto de Perfil", "Este utilizador não tem foto de perfil."]; + break; + case 17: + strings = ["Palavra-passe em utilização", "A nova palavra-passe não poderá ser igual à atual."]; + break; + case 18: + strings = ["Nome de Utilizador Inválido", "O novo nome de utilizador deve ser composto apenas por números, letras ou algum destes caracteres: \".\" \"-\" \"_\"."]; + break; + case 19: + strings = ["Email Inválido", "O novo endereço de email não é válido. Por favor verifique se o escreveu corretamente e tente novamente."]; + break; + case 20: + strings = ["Foto de Perfil muito grande", "A foto de perfil escolhida é maior que 3 MB. Por favor escolha uma foto com um tamanho menor."]; + break; + case 21: + strings = ["Foto de Perfil inválida", "A foto de perfil escolhida não está em nenhum dos formatos permitidos."]; + break; + case 22: + strings = ["Nenhum ficheiro", "Nenhum ficheiro enviado."]; + break; + case 23: + strings = ["Mensagem Inválida", "A sua mensagem é demasiado grande. Por favor resuma-a e tente novamente."]; + break; + case 24: + strings = ["Limite excedido", "A quantidade máxima de ficheiros que pode enviar é 50."]; + break; + case 25: + strings = ["Limite excedido", "O tamanho total dos ficheiros não pode ser superior a 1 GB."]; + break; + case 26: + strings = ["Erro desconhecido", "Ocorreu um erro ao tentar gerar um código de envio. Por favor tente novamente mais tarde."]; + break; + case 27: + strings = ["Código Inválido", "O código de envio inserido não é válido. Por favor tente novamente."]; + break; + case 28: + strings = ["Código Inválido", "O código de envio inserido não é de uma transferência existente. Verifique se o escreveu corretamente e tente novamente."]; + break; + case 29: + strings = ["Erro desconhecido", "Ocorreu um erro ao tentar verificar o código de envio. Por favor tente novamente mais tarde."]; + break; + case 30: + strings = ["Erro desconhecido", "Ocorreu um erro ao tentar obter os dados da transferência. Por favor tente novamente mais tarde."]; + break; + case 31: + strings = ["Código Inválido", "O código de envio não é de uma transferência em progresso."]; + break; + case 44: + strings = ["Erro na Conexão", "Ocorreu um erro inesperado. Verifique se tem a versão mais recente do " + package.productName + " e tente novamente."]; + break; + case 50: + strings = ["Erro de Servidor", "Ocorreu um erro inesperado no servidor o que fez com que o seu pedido não pudesse ser realizado. Tente novamente mais tarde."]; + break; + default: + if (status == 503) + strings = ["Erro de Servidor", "O servidor não está em funcionamento neste momento. Por favor tente novamente mais tarde."]; + break; + } + + await showPopUp("alertPopup", strings[0], strings[1]); + return false; +} + +function sleep(milliseconds) { + return new Promise(resolve => setTimeout(resolve, milliseconds)); +} + +//#endregion + +ipcRenderer.once("ReloadAccount", async () => { + await reloadAccount(); + openMain(); +}); + +//#region Enumerators + +const selectMode = { + CLICK: 0, + DROP: 1 +} + +const dragMode = { + ENTER: 0, + LEAVE: 1, + DROP: 2 +} + +const accountMode = { + GET: 0, + CHECK: 1, + SIGNUP: 2, + LOGIN: 3, + LOGINSTART: 4, + EDIT: 5, + EDIT_PASSWORD: 6, + RECOVERY_CHECK: 7, + PASSWORD_RECOVERY: 8, + LOGOUT: 9, + DELETE: 10 +} + +//#endregion + +exports.package = package; +exports.closeWindow = closeWindow; +exports.minimizeWindow = minimizeWindow; +exports.reloadIcons = reloadIcons; +exports.openMain = openMain; +exports.openPanel = openPanel; +exports.getPaths = getPaths; +exports.getUrlPath = getUrlPath; +exports.getSetting = getSetting; +exports.setSetting = setSetting; +exports.getChanges = getChanges; +exports.switchPanels = switchPanels; +exports.switchSubpanels = switchSubpanels; +exports.updateGreeting = updateGreeting; +exports.checkFolder = checkFolder; +exports.sendFile = sendFile; +exports.receiveFile = receiveFile; +exports.accountManager = accountManager; +exports.reloadAccount = reloadAccount; +exports.reloadHistory = reloadHistory; +exports.copyToClipboard = copyToClipboard; +exports.showOpenDialog = showOpenDialog; +exports.showSaveDialog = showSaveDialog; +exports.showErrorDialog = showErrorDialog; +exports.showPopUp = showPopUp; +exports.apiErrorHandler = apiErrorHandler; +exports.sleep = sleep; + +exports.selectMode = selectMode; +exports.dragMode = dragMode; +exports.accountMode = accountMode; \ No newline at end of file