@jesec/flood 0.0.0-master.b00572a → 0.0.0-master.b0968ef

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/CHANGELOG.md +487 -1
  2. package/README.md +51 -31
  3. package/SECURITY.md +27 -0
  4. package/dist/assets/assets/Alerts-DfIc2RDo.js +2 -0
  5. package/dist/assets/assets/Alerts-DfIc2RDo.js.map +1 -0
  6. package/dist/assets/assets/ApplicationView-DP0n0t_v.js +2 -0
  7. package/dist/assets/assets/ApplicationView-DP0n0t_v.js.map +1 -0
  8. package/dist/assets/assets/AuthForm-DgLVnHB-.js +2 -0
  9. package/dist/assets/assets/AuthForm-DgLVnHB-.js.map +1 -0
  10. package/dist/assets/assets/Login-C3KLMyy6.js +2 -0
  11. package/dist/assets/assets/Login-C3KLMyy6.js.map +1 -0
  12. package/dist/assets/assets/Modals-BcsvdTbI.js +53 -0
  13. package/dist/assets/assets/Modals-BcsvdTbI.js.map +1 -0
  14. package/dist/assets/assets/Overview-Dj59aNNu.js +700 -0
  15. package/dist/assets/assets/Overview-Dj59aNNu.js.map +1 -0
  16. package/dist/assets/assets/Register-C_jPKpF3.js +2 -0
  17. package/dist/assets/assets/Register-C_jPKpF3.js.map +1 -0
  18. package/dist/assets/assets/ad-DuzDZabR.js +2 -0
  19. package/dist/assets/assets/ad-DuzDZabR.js.map +1 -0
  20. package/dist/assets/assets/ae-mkY-Q7Jw.js +2 -0
  21. package/dist/assets/assets/ae-mkY-Q7Jw.js.map +1 -0
  22. package/dist/assets/assets/af-B6-pStw9.js +2 -0
  23. package/dist/assets/assets/af-B6-pStw9.js.map +1 -0
  24. package/dist/assets/assets/af-DPrtuV94.js +2 -0
  25. package/dist/assets/assets/af-DPrtuV94.js.map +1 -0
  26. package/dist/assets/assets/ag-DNCGAFJH.js +2 -0
  27. package/dist/assets/assets/ag-DNCGAFJH.js.map +1 -0
  28. package/dist/assets/assets/al-C_aTCEDQ.js +2 -0
  29. package/dist/assets/assets/al-C_aTCEDQ.js.map +1 -0
  30. package/dist/assets/assets/am-Sr8MvIS7.js +2 -0
  31. package/dist/assets/assets/am-Sr8MvIS7.js.map +1 -0
  32. package/dist/assets/assets/ao-CsJhl30Y.js +2 -0
  33. package/dist/assets/assets/ao-CsJhl30Y.js.map +1 -0
  34. package/dist/assets/assets/ar-B_CHaIUf.js +2 -0
  35. package/dist/assets/assets/ar-B_CHaIUf.js.map +1 -0
  36. package/dist/assets/assets/ar-Cevz1Qs-.js +2 -0
  37. package/dist/assets/assets/ar-Cevz1Qs-.js.map +1 -0
  38. package/dist/assets/assets/at-CiWOhHAz.js +2 -0
  39. package/dist/assets/assets/at-CiWOhHAz.js.map +1 -0
  40. package/dist/assets/assets/au-Bg5EqKS0.js +2 -0
  41. package/dist/assets/assets/au-Bg5EqKS0.js.map +1 -0
  42. package/dist/assets/assets/az-B61XRgw0.js +2 -0
  43. package/dist/assets/assets/az-B61XRgw0.js.map +1 -0
  44. package/dist/assets/assets/ba-Cmt66gfg.js +2 -0
  45. package/dist/assets/assets/ba-Cmt66gfg.js.map +1 -0
  46. package/dist/assets/assets/bb-CR-__YaH.js +2 -0
  47. package/dist/assets/assets/bb-CR-__YaH.js.map +1 -0
  48. package/dist/assets/assets/bd-BNthAGOP.js +2 -0
  49. package/dist/assets/assets/bd-BNthAGOP.js.map +1 -0
  50. package/dist/assets/assets/be-n0KexQYT.js +2 -0
  51. package/dist/assets/assets/be-n0KexQYT.js.map +1 -0
  52. package/dist/assets/assets/bf-CW9xprIG.js +2 -0
  53. package/dist/assets/assets/bf-CW9xprIG.js.map +1 -0
  54. package/dist/assets/assets/bg-CEPzQvFM.js +2 -0
  55. package/dist/assets/assets/bg-CEPzQvFM.js.map +1 -0
  56. package/dist/assets/assets/bh-D956X5o9.js +2 -0
  57. package/dist/assets/assets/bh-D956X5o9.js.map +1 -0
  58. package/dist/assets/assets/bi-dPCv_c-w.js +2 -0
  59. package/dist/assets/assets/bi-dPCv_c-w.js.map +1 -0
  60. package/dist/assets/assets/bj-BI_8Wbdr.js +2 -0
  61. package/dist/assets/assets/bj-BI_8Wbdr.js.map +1 -0
  62. package/dist/assets/assets/bn-BC2Aoz80.js +2 -0
  63. package/dist/assets/assets/bn-BC2Aoz80.js.map +1 -0
  64. package/dist/assets/assets/bo-CELcxyPF.js +2 -0
  65. package/dist/assets/assets/bo-CELcxyPF.js.map +1 -0
  66. package/dist/assets/assets/br-CXLqJ-F4.js +2 -0
  67. package/dist/assets/assets/br-CXLqJ-F4.js.map +1 -0
  68. package/dist/assets/assets/bs-NowsU2-W.js +2 -0
  69. package/dist/assets/assets/bs-NowsU2-W.js.map +1 -0
  70. package/dist/assets/assets/bt-dYTlOroH.js +2 -0
  71. package/dist/assets/assets/bt-dYTlOroH.js.map +1 -0
  72. package/dist/assets/assets/bw-D4vkJpZr.js +2 -0
  73. package/dist/assets/assets/bw-D4vkJpZr.js.map +1 -0
  74. package/dist/assets/assets/by-eP_jw9Kc.js +2 -0
  75. package/dist/assets/assets/by-eP_jw9Kc.js.map +1 -0
  76. package/dist/assets/assets/bz-CCMMQS8N.js +2 -0
  77. package/dist/assets/assets/bz-CCMMQS8N.js.map +1 -0
  78. package/dist/assets/assets/ca-DAtf_5hQ.js +2 -0
  79. package/dist/assets/assets/ca-DAtf_5hQ.js.map +1 -0
  80. package/dist/assets/assets/ca-XCK4Ukes.js +2 -0
  81. package/dist/assets/assets/ca-XCK4Ukes.js.map +1 -0
  82. package/dist/assets/assets/cd-EHjOG1bO.js +2 -0
  83. package/dist/assets/assets/cd-EHjOG1bO.js.map +1 -0
  84. package/dist/assets/assets/cf-DnV2k9tP.js +2 -0
  85. package/dist/assets/assets/cf-DnV2k9tP.js.map +1 -0
  86. package/dist/assets/assets/cg-2ZHLG0Mz.js +2 -0
  87. package/dist/assets/assets/cg-2ZHLG0Mz.js.map +1 -0
  88. package/dist/assets/assets/ch-CA-QpVeB.js +2 -0
  89. package/dist/assets/assets/ch-CA-QpVeB.js.map +1 -0
  90. package/dist/assets/assets/ci-eeX5pCsO.js +2 -0
  91. package/dist/assets/assets/ci-eeX5pCsO.js.map +1 -0
  92. package/dist/assets/assets/cl-D2scfwli.js +2 -0
  93. package/dist/assets/assets/cl-D2scfwli.js.map +1 -0
  94. package/dist/assets/assets/cm-DyX7ciTH.js +2 -0
  95. package/dist/assets/assets/cm-DyX7ciTH.js.map +1 -0
  96. package/dist/assets/assets/cn-CUTpdmU5.js +2 -0
  97. package/dist/assets/assets/cn-CUTpdmU5.js.map +1 -0
  98. package/dist/assets/assets/co-DcXC8Nb5.js +2 -0
  99. package/dist/assets/assets/co-DcXC8Nb5.js.map +1 -0
  100. package/dist/assets/assets/cr-D4hE4yAQ.js +2 -0
  101. package/dist/assets/assets/cr-D4hE4yAQ.js.map +1 -0
  102. package/dist/assets/assets/cs-BIjoDiHH.js +2 -0
  103. package/dist/assets/assets/cs-BIjoDiHH.js.map +1 -0
  104. package/dist/assets/assets/cu-Dl19LoSo.js +2 -0
  105. package/dist/assets/assets/cu-Dl19LoSo.js.map +1 -0
  106. package/dist/assets/assets/cv-Dc7EiSki.js +2 -0
  107. package/dist/assets/assets/cv-Dc7EiSki.js.map +1 -0
  108. package/dist/assets/assets/cw-B3QTQWLm.js +2 -0
  109. package/dist/assets/assets/cw-B3QTQWLm.js.map +1 -0
  110. package/dist/assets/assets/cy-lPbapF6t.js +2 -0
  111. package/dist/assets/assets/cy-lPbapF6t.js.map +1 -0
  112. package/dist/assets/assets/cz-CSN1u-1p.js +2 -0
  113. package/dist/assets/assets/cz-CSN1u-1p.js.map +1 -0
  114. package/dist/assets/assets/da-Cd4-2_5U.js +2 -0
  115. package/dist/assets/assets/da-Cd4-2_5U.js.map +1 -0
  116. package/dist/assets/assets/de-C7YtizCu.js +2 -0
  117. package/dist/assets/assets/de-C7YtizCu.js.map +1 -0
  118. package/dist/assets/assets/de-DNid5tvw.js +2 -0
  119. package/dist/assets/assets/de-DNid5tvw.js.map +1 -0
  120. package/dist/assets/assets/dist-CV9BnlWY.js +5 -0
  121. package/dist/assets/assets/dist-CV9BnlWY.js.map +1 -0
  122. package/dist/assets/assets/dj-BY__Rk6N.js +2 -0
  123. package/dist/assets/assets/dj-BY__Rk6N.js.map +1 -0
  124. package/dist/assets/assets/dk-BrBg2C-u.js +2 -0
  125. package/dist/assets/assets/dk-BrBg2C-u.js.map +1 -0
  126. package/dist/assets/assets/dm-B8fppkLZ.js +2 -0
  127. package/dist/assets/assets/dm-B8fppkLZ.js.map +1 -0
  128. package/dist/assets/assets/do-DT6lsFi0.js +2 -0
  129. package/dist/assets/assets/do-DT6lsFi0.js.map +1 -0
  130. package/dist/assets/assets/dz-DvjjArkf.js +2 -0
  131. package/dist/assets/assets/dz-DvjjArkf.js.map +1 -0
  132. package/dist/assets/assets/ec-CLcn3ZY5.js +2 -0
  133. package/dist/assets/assets/ec-CLcn3ZY5.js.map +1 -0
  134. package/dist/assets/assets/ee-DhRoyamb.js +2 -0
  135. package/dist/assets/assets/ee-DhRoyamb.js.map +1 -0
  136. package/dist/assets/assets/eg-BMJXSjA7.js +2 -0
  137. package/dist/assets/assets/eg-BMJXSjA7.js.map +1 -0
  138. package/dist/assets/assets/eh-kPNs0m4W.js +2 -0
  139. package/dist/assets/assets/eh-kPNs0m4W.js.map +1 -0
  140. package/dist/assets/assets/el-BaaG9zXY.js +2 -0
  141. package/dist/assets/assets/el-BaaG9zXY.js.map +1 -0
  142. package/dist/assets/assets/er-CgcszDHk.js +2 -0
  143. package/dist/assets/assets/er-CgcszDHk.js.map +1 -0
  144. package/dist/assets/assets/es-Cn40GwkH.js +2 -0
  145. package/dist/assets/assets/es-Cn40GwkH.js.map +1 -0
  146. package/dist/assets/assets/es-DDZkgU93.js +2 -0
  147. package/dist/assets/assets/es-DDZkgU93.js.map +1 -0
  148. package/dist/assets/assets/et-xpjwka4f.js +2 -0
  149. package/dist/assets/assets/et-xpjwka4f.js.map +1 -0
  150. package/dist/assets/assets/fi-BaKFdgP1.js +2 -0
  151. package/dist/assets/assets/fi-BaKFdgP1.js.map +1 -0
  152. package/dist/assets/assets/fi-CFoJ7h4p.js +2 -0
  153. package/dist/assets/assets/fi-CFoJ7h4p.js.map +1 -0
  154. package/dist/assets/assets/fj-Dv9fACYg.js +2 -0
  155. package/dist/assets/assets/fj-Dv9fACYg.js.map +1 -0
  156. package/dist/assets/assets/fm-CJS-CajN.js +2 -0
  157. package/dist/assets/assets/fm-CJS-CajN.js.map +1 -0
  158. package/dist/assets/assets/fr-CFYjBpyx.js +2 -0
  159. package/dist/assets/assets/fr-CFYjBpyx.js.map +1 -0
  160. package/dist/assets/assets/fr-DihSzc5w.js +2 -0
  161. package/dist/assets/assets/fr-DihSzc5w.js.map +1 -0
  162. package/dist/assets/assets/ga-CNumRDCQ.js +2 -0
  163. package/dist/assets/assets/ga-CNumRDCQ.js.map +1 -0
  164. package/dist/assets/assets/gb-WNer3TCs.js +2 -0
  165. package/dist/assets/assets/gb-WNer3TCs.js.map +1 -0
  166. package/dist/assets/assets/gd-AxP8ZqQ3.js +2 -0
  167. package/dist/assets/assets/gd-AxP8ZqQ3.js.map +1 -0
  168. package/dist/assets/assets/ge-BZNhlpjl.js +2 -0
  169. package/dist/assets/assets/ge-BZNhlpjl.js.map +1 -0
  170. package/dist/assets/assets/gh-DfG0KL4E.js +2 -0
  171. package/dist/assets/assets/gh-DfG0KL4E.js.map +1 -0
  172. package/dist/assets/assets/gm-DNv0Gi3L.js +2 -0
  173. package/dist/assets/assets/gm-DNv0Gi3L.js.map +1 -0
  174. package/dist/assets/assets/gn-CCNIcOau.js +2 -0
  175. package/dist/assets/assets/gn-CCNIcOau.js.map +1 -0
  176. package/dist/assets/assets/gq-Db3JBvRp.js +2 -0
  177. package/dist/assets/assets/gq-Db3JBvRp.js.map +1 -0
  178. package/dist/assets/assets/gr-CUycZL06.js +2 -0
  179. package/dist/assets/assets/gr-CUycZL06.js.map +1 -0
  180. package/dist/assets/assets/gt-CvcG2CCr.js +2 -0
  181. package/dist/assets/assets/gt-CvcG2CCr.js.map +1 -0
  182. package/dist/assets/assets/gw-Bz6bHaFC.js +2 -0
  183. package/dist/assets/assets/gw-Bz6bHaFC.js.map +1 -0
  184. package/dist/assets/assets/gy-Bh14gmuk.js +2 -0
  185. package/dist/assets/assets/gy-Bh14gmuk.js.map +1 -0
  186. package/dist/assets/assets/he-BqHuQNYF.js +2 -0
  187. package/dist/assets/assets/he-BqHuQNYF.js.map +1 -0
  188. package/dist/assets/assets/hk-CoxQRos-.js +2 -0
  189. package/dist/assets/assets/hk-CoxQRos-.js.map +1 -0
  190. package/dist/assets/assets/hn-D9MR-twd.js +2 -0
  191. package/dist/assets/assets/hn-D9MR-twd.js.map +1 -0
  192. package/dist/assets/assets/hr-CY8ssDf2.js +2 -0
  193. package/dist/assets/assets/hr-CY8ssDf2.js.map +1 -0
  194. package/dist/assets/assets/ht-Btab_P66.js +2 -0
  195. package/dist/assets/assets/ht-Btab_P66.js.map +1 -0
  196. package/dist/assets/assets/hu-Bd15G6cY.js +2 -0
  197. package/dist/assets/assets/hu-Bd15G6cY.js.map +1 -0
  198. package/dist/assets/assets/hu-XTCl1evV.js +2 -0
  199. package/dist/assets/assets/hu-XTCl1evV.js.map +1 -0
  200. package/dist/assets/assets/id-Cl2IUqcE.js +2 -0
  201. package/dist/assets/assets/id-Cl2IUqcE.js.map +1 -0
  202. package/dist/assets/assets/ie-DhNM_aaB.js +2 -0
  203. package/dist/assets/assets/ie-DhNM_aaB.js.map +1 -0
  204. package/dist/assets/assets/il-CjxCOku_.js +2 -0
  205. package/dist/assets/assets/il-CjxCOku_.js.map +1 -0
  206. package/dist/assets/assets/in-BiAGGW0P.js +2 -0
  207. package/dist/assets/assets/in-BiAGGW0P.js.map +1 -0
  208. package/dist/assets/assets/index-9MYKwVAF.css +1 -0
  209. package/dist/assets/assets/index-BGaSR2S1.js +84 -0
  210. package/dist/assets/assets/index-BGaSR2S1.js.map +1 -0
  211. package/dist/assets/assets/iq-Cv2AX3gf.js +2 -0
  212. package/dist/assets/assets/iq-Cv2AX3gf.js.map +1 -0
  213. package/dist/assets/assets/ir-ChSMloNP.js +2 -0
  214. package/dist/assets/assets/ir-ChSMloNP.js.map +1 -0
  215. package/dist/assets/assets/is-B_gQCHkP.js +2 -0
  216. package/dist/assets/assets/is-B_gQCHkP.js.map +1 -0
  217. package/dist/assets/assets/it-CKWb6UZL.js +2 -0
  218. package/dist/assets/assets/it-CKWb6UZL.js.map +1 -0
  219. package/dist/assets/assets/it-nE66-Fr1.js +2 -0
  220. package/dist/assets/assets/it-nE66-Fr1.js.map +1 -0
  221. package/dist/assets/assets/ja-B623Yqkl.js +2 -0
  222. package/dist/assets/assets/ja-B623Yqkl.js.map +1 -0
  223. package/dist/assets/assets/je-Bf5hMZi_.js +2 -0
  224. package/dist/assets/assets/je-Bf5hMZi_.js.map +1 -0
  225. package/dist/assets/assets/jm-B9-ZYIdz.js +2 -0
  226. package/dist/assets/assets/jm-B9-ZYIdz.js.map +1 -0
  227. package/dist/assets/assets/jo-LRCd5NbG.js +2 -0
  228. package/dist/assets/assets/jo-LRCd5NbG.js.map +1 -0
  229. package/dist/assets/assets/jp-Jgwu6K6N.js +2 -0
  230. package/dist/assets/assets/jp-Jgwu6K6N.js.map +1 -0
  231. package/dist/assets/assets/ke-BDIx-O5L.js +2 -0
  232. package/dist/assets/assets/ke-BDIx-O5L.js.map +1 -0
  233. package/dist/assets/assets/kg-D_8Ev0zW.js +2 -0
  234. package/dist/assets/assets/kg-D_8Ev0zW.js.map +1 -0
  235. package/dist/assets/assets/kh-D9n-04BG.js +2 -0
  236. package/dist/assets/assets/kh-D9n-04BG.js.map +1 -0
  237. package/dist/assets/assets/ki-DfQfF35G.js +2 -0
  238. package/dist/assets/assets/ki-DfQfF35G.js.map +1 -0
  239. package/dist/assets/assets/km-DIs2PJNm.js +2 -0
  240. package/dist/assets/assets/km-DIs2PJNm.js.map +1 -0
  241. package/dist/assets/assets/kn-A-kuWFN_.js +2 -0
  242. package/dist/assets/assets/kn-A-kuWFN_.js.map +1 -0
  243. package/dist/assets/assets/ko-DE_dHFvf.js +2 -0
  244. package/dist/assets/assets/ko-DE_dHFvf.js.map +1 -0
  245. package/dist/assets/assets/kp-DdNIIhXM.js +2 -0
  246. package/dist/assets/assets/kp-DdNIIhXM.js.map +1 -0
  247. package/dist/assets/assets/kr-DrWfuTqv.js +2 -0
  248. package/dist/assets/assets/kr-DrWfuTqv.js.map +1 -0
  249. package/dist/assets/assets/ks-DJfQ-YO3.js +2 -0
  250. package/dist/assets/assets/ks-DJfQ-YO3.js.map +1 -0
  251. package/dist/assets/assets/kw-Bo7h3oBB.js +2 -0
  252. package/dist/assets/assets/kw-Bo7h3oBB.js.map +1 -0
  253. package/dist/assets/assets/kz-DG6hiRvd.js +2 -0
  254. package/dist/assets/assets/kz-DG6hiRvd.js.map +1 -0
  255. package/dist/assets/assets/la-DIC6JYVS.js +2 -0
  256. package/dist/assets/assets/la-DIC6JYVS.js.map +1 -0
  257. package/dist/assets/assets/lb-DZ9bz8Y4.js +2 -0
  258. package/dist/assets/assets/lb-DZ9bz8Y4.js.map +1 -0
  259. package/dist/assets/assets/lc-Dr02stwZ.js +2 -0
  260. package/dist/assets/assets/lc-Dr02stwZ.js.map +1 -0
  261. package/dist/assets/assets/li-DhScucbM.js +2 -0
  262. package/dist/assets/assets/li-DhScucbM.js.map +1 -0
  263. package/dist/assets/assets/lk-D_git-VI.js +2 -0
  264. package/dist/assets/assets/lk-D_git-VI.js.map +1 -0
  265. package/dist/assets/assets/lr-Gz2Pv4Is.js +2 -0
  266. package/dist/assets/assets/lr-Gz2Pv4Is.js.map +1 -0
  267. package/dist/assets/assets/ls-Dla8Mtxv.js +2 -0
  268. package/dist/assets/assets/ls-Dla8Mtxv.js.map +1 -0
  269. package/dist/assets/assets/lt-C9s1s2DO.js +2 -0
  270. package/dist/assets/assets/lt-C9s1s2DO.js.map +1 -0
  271. package/dist/assets/assets/lu-2yhjYU-Q.js +2 -0
  272. package/dist/assets/assets/lu-2yhjYU-Q.js.map +1 -0
  273. package/dist/assets/assets/lv-W5x5JHfO.js +2 -0
  274. package/dist/assets/assets/lv-W5x5JHfO.js.map +1 -0
  275. package/dist/assets/assets/ly-CQRzcpdX.js +2 -0
  276. package/dist/assets/assets/ly-CQRzcpdX.js.map +1 -0
  277. package/dist/assets/assets/ma-B7eS8F31.js +2 -0
  278. package/dist/assets/assets/ma-B7eS8F31.js.map +1 -0
  279. package/dist/assets/assets/mc-KSBzvhnr.js +2 -0
  280. package/dist/assets/assets/mc-KSBzvhnr.js.map +1 -0
  281. package/dist/assets/assets/md-DZXCIQ3o.js +2 -0
  282. package/dist/assets/assets/md-DZXCIQ3o.js.map +1 -0
  283. package/dist/assets/assets/me-Bx7s2-BC.js +2 -0
  284. package/dist/assets/assets/me-Bx7s2-BC.js.map +1 -0
  285. package/dist/assets/assets/mg-CUAmb4P0.js +2 -0
  286. package/dist/assets/assets/mg-CUAmb4P0.js.map +1 -0
  287. package/dist/assets/assets/mh-D58v_sSR.js +2 -0
  288. package/dist/assets/assets/mh-D58v_sSR.js.map +1 -0
  289. package/dist/assets/assets/mk-B1iKenEf.js +2 -0
  290. package/dist/assets/assets/mk-B1iKenEf.js.map +1 -0
  291. package/dist/assets/assets/ml-aN2SVTBH.js +2 -0
  292. package/dist/assets/assets/ml-aN2SVTBH.js.map +1 -0
  293. package/dist/assets/assets/mm-BwRj9s66.js +2 -0
  294. package/dist/assets/assets/mm-BwRj9s66.js.map +1 -0
  295. package/dist/assets/assets/mn-CcmT9UiQ.js +2 -0
  296. package/dist/assets/assets/mn-CcmT9UiQ.js.map +1 -0
  297. package/dist/assets/assets/mr-DnTuk3n4.js +2 -0
  298. package/dist/assets/assets/mr-DnTuk3n4.js.map +1 -0
  299. package/dist/assets/assets/mt-DGPWqRA6.js +2 -0
  300. package/dist/assets/assets/mt-DGPWqRA6.js.map +1 -0
  301. package/dist/assets/assets/mu-DcnqbcP-.js +2 -0
  302. package/dist/assets/assets/mu-DcnqbcP-.js.map +1 -0
  303. package/dist/assets/assets/mv-CCKYaZ-D.js +2 -0
  304. package/dist/assets/assets/mv-CCKYaZ-D.js.map +1 -0
  305. package/dist/assets/assets/mw-BxhR28Lk.js +2 -0
  306. package/dist/assets/assets/mw-BxhR28Lk.js.map +1 -0
  307. package/dist/assets/assets/mx-By-j66iW.js +2 -0
  308. package/dist/assets/assets/mx-By-j66iW.js.map +1 -0
  309. package/dist/assets/assets/my-3m2yhQRk.js +2 -0
  310. package/dist/assets/assets/my-3m2yhQRk.js.map +1 -0
  311. package/dist/assets/assets/mz-oGkxPx1n.js +2 -0
  312. package/dist/assets/assets/mz-oGkxPx1n.js.map +1 -0
  313. package/dist/assets/assets/na-CUsEkM92.js +2 -0
  314. package/dist/assets/assets/na-CUsEkM92.js.map +1 -0
  315. package/dist/assets/assets/ne-D_CUh-Lc.js +2 -0
  316. package/dist/assets/assets/ne-D_CUh-Lc.js.map +1 -0
  317. package/dist/assets/assets/ng-BPWJ1Me2.js +2 -0
  318. package/dist/assets/assets/ng-BPWJ1Me2.js.map +1 -0
  319. package/dist/assets/assets/ni-DEQvXqPw.js +2 -0
  320. package/dist/assets/assets/ni-DEQvXqPw.js.map +1 -0
  321. package/dist/assets/assets/nl-DDw301fE.js +2 -0
  322. package/dist/assets/assets/nl-DDw301fE.js.map +1 -0
  323. package/dist/assets/assets/nl-ld0j2zd2.js +2 -0
  324. package/dist/assets/assets/nl-ld0j2zd2.js.map +1 -0
  325. package/dist/assets/assets/no-D8_ZUO5T.js +2 -0
  326. package/dist/assets/assets/no-D8_ZUO5T.js.map +1 -0
  327. package/dist/assets/assets/no-XfCZZj7G.js +2 -0
  328. package/dist/assets/assets/no-XfCZZj7G.js.map +1 -0
  329. package/dist/assets/assets/np-ByWMGf7r.js +2 -0
  330. package/dist/assets/assets/np-ByWMGf7r.js.map +1 -0
  331. package/dist/assets/assets/nr-BGV1QKHR.js +2 -0
  332. package/dist/assets/assets/nr-BGV1QKHR.js.map +1 -0
  333. package/dist/assets/assets/nz-CtNGOSed.js +2 -0
  334. package/dist/assets/assets/nz-CtNGOSed.js.map +1 -0
  335. package/dist/assets/assets/om-DFZfEG_j.js +2 -0
  336. package/dist/assets/assets/om-DFZfEG_j.js.map +1 -0
  337. package/dist/assets/assets/pa-BTioHiDq.js +2 -0
  338. package/dist/assets/assets/pa-BTioHiDq.js.map +1 -0
  339. package/dist/assets/assets/pe-DWboUCbW.js +2 -0
  340. package/dist/assets/assets/pe-DWboUCbW.js.map +1 -0
  341. package/dist/assets/assets/pg-D4BAFBl7.js +2 -0
  342. package/dist/assets/assets/pg-D4BAFBl7.js.map +1 -0
  343. package/dist/assets/assets/ph-B9-4c05j.js +2 -0
  344. package/dist/assets/assets/ph-B9-4c05j.js.map +1 -0
  345. package/dist/assets/assets/pk-BoydhDTc.js +2 -0
  346. package/dist/assets/assets/pk-BoydhDTc.js.map +1 -0
  347. package/dist/assets/assets/pl-Dicpp7c2.js +2 -0
  348. package/dist/assets/assets/pl-Dicpp7c2.js.map +1 -0
  349. package/dist/assets/assets/pl-LvqNumg3.js +2 -0
  350. package/dist/assets/assets/pl-LvqNumg3.js.map +1 -0
  351. package/dist/assets/assets/pt-DA9RUNlT.js +2 -0
  352. package/dist/assets/assets/pt-DA9RUNlT.js.map +1 -0
  353. package/dist/assets/assets/pt-Gy6aSAgY.js +2 -0
  354. package/dist/assets/assets/pt-Gy6aSAgY.js.map +1 -0
  355. package/dist/assets/assets/pw-J_gyjYWh.js +2 -0
  356. package/dist/assets/assets/pw-J_gyjYWh.js.map +1 -0
  357. package/dist/assets/assets/py-CKAKoon7.js +2 -0
  358. package/dist/assets/assets/py-CKAKoon7.js.map +1 -0
  359. package/dist/assets/assets/qa-CNYB3R3R.js +2 -0
  360. package/dist/assets/assets/qa-CNYB3R3R.js.map +1 -0
  361. package/dist/assets/assets/ro-Btys85cp.js +2 -0
  362. package/dist/assets/assets/ro-Btys85cp.js.map +1 -0
  363. package/dist/assets/assets/ro-sfXVxWl6.js +2 -0
  364. package/dist/assets/assets/ro-sfXVxWl6.js.map +1 -0
  365. package/dist/assets/assets/rs-CVrceSzu.js +2 -0
  366. package/dist/assets/assets/rs-CVrceSzu.js.map +1 -0
  367. package/dist/assets/assets/ru-CrGgx3bV.js +2 -0
  368. package/dist/assets/assets/ru-CrGgx3bV.js.map +1 -0
  369. package/dist/assets/assets/ru-D7oU7uiF.js +2 -0
  370. package/dist/assets/assets/ru-D7oU7uiF.js.map +1 -0
  371. package/dist/assets/assets/rw-B0hMa2RX.js +2 -0
  372. package/dist/assets/assets/rw-B0hMa2RX.js.map +1 -0
  373. package/dist/assets/assets/sa-Cy9ipXz-.js +2 -0
  374. package/dist/assets/assets/sa-Cy9ipXz-.js.map +1 -0
  375. package/dist/assets/assets/sb-DJqNmnJ7.js +2 -0
  376. package/dist/assets/assets/sb-DJqNmnJ7.js.map +1 -0
  377. package/dist/assets/assets/sc-fjfYLACH.js +2 -0
  378. package/dist/assets/assets/sc-fjfYLACH.js.map +1 -0
  379. package/dist/assets/assets/sd-DPOn7vAp.js +2 -0
  380. package/dist/assets/assets/sd-DPOn7vAp.js.map +1 -0
  381. package/dist/assets/assets/se-DfjgVkvK.js +2 -0
  382. package/dist/assets/assets/se-DfjgVkvK.js.map +1 -0
  383. package/dist/assets/assets/sg-CX_EtT3D.js +2 -0
  384. package/dist/assets/assets/sg-CX_EtT3D.js.map +1 -0
  385. package/dist/assets/assets/si-uhOMNPy-.js +2 -0
  386. package/dist/assets/assets/si-uhOMNPy-.js.map +1 -0
  387. package/dist/assets/assets/sk-Dw1JgI5Z.js +2 -0
  388. package/dist/assets/assets/sk-Dw1JgI5Z.js.map +1 -0
  389. package/dist/assets/assets/sl-BwQ6WjNS.js +2 -0
  390. package/dist/assets/assets/sl-BwQ6WjNS.js.map +1 -0
  391. package/dist/assets/assets/sm-Cbxq8dmu.js +2 -0
  392. package/dist/assets/assets/sm-Cbxq8dmu.js.map +1 -0
  393. package/dist/assets/assets/sn-a-NX0-yL.js +2 -0
  394. package/dist/assets/assets/sn-a-NX0-yL.js.map +1 -0
  395. package/dist/assets/assets/so-DVEtVrBI.js +2 -0
  396. package/dist/assets/assets/so-DVEtVrBI.js.map +1 -0
  397. package/dist/assets/assets/sr-CPY2UrNZ.js +2 -0
  398. package/dist/assets/assets/sr-CPY2UrNZ.js.map +1 -0
  399. package/dist/assets/assets/sr-D0aNQziT.js +2 -0
  400. package/dist/assets/assets/sr-D0aNQziT.js.map +1 -0
  401. package/dist/assets/assets/st-BbElRNN3.js +2 -0
  402. package/dist/assets/assets/st-BbElRNN3.js.map +1 -0
  403. package/dist/assets/assets/sv-BIZdpGwy.js +2 -0
  404. package/dist/assets/assets/sv-BIZdpGwy.js.map +1 -0
  405. package/dist/assets/assets/sv-CtoRKEOL.js +2 -0
  406. package/dist/assets/assets/sv-CtoRKEOL.js.map +1 -0
  407. package/dist/assets/assets/sy-DuMP7Nb5.js +2 -0
  408. package/dist/assets/assets/sy-DuMP7Nb5.js.map +1 -0
  409. package/dist/assets/assets/sz-Bbm_EfJR.js +2 -0
  410. package/dist/assets/assets/sz-Bbm_EfJR.js.map +1 -0
  411. package/dist/assets/assets/td-C26ZKLeS.js +2 -0
  412. package/dist/assets/assets/td-C26ZKLeS.js.map +1 -0
  413. package/dist/assets/assets/tg-ClEcBIP7.js +2 -0
  414. package/dist/assets/assets/tg-ClEcBIP7.js.map +1 -0
  415. package/dist/assets/assets/th-Taw3xGiW.js +2 -0
  416. package/dist/assets/assets/th-Taw3xGiW.js.map +1 -0
  417. package/dist/assets/assets/tj-BgQ6d5Wt.js +2 -0
  418. package/dist/assets/assets/tj-BgQ6d5Wt.js.map +1 -0
  419. package/dist/assets/assets/tl-S1pvdloF.js +2 -0
  420. package/dist/assets/assets/tl-S1pvdloF.js.map +1 -0
  421. package/dist/assets/assets/tm-DPbuNbnA.js +2 -0
  422. package/dist/assets/assets/tm-DPbuNbnA.js.map +1 -0
  423. package/dist/assets/assets/tn-_Pbys28Y.js +2 -0
  424. package/dist/assets/assets/tn-_Pbys28Y.js.map +1 -0
  425. package/dist/assets/assets/to-Cr3ejDiA.js +2 -0
  426. package/dist/assets/assets/to-Cr3ejDiA.js.map +1 -0
  427. package/dist/assets/assets/tr-BKZ6SEMN.js +2 -0
  428. package/dist/assets/assets/tr-BKZ6SEMN.js.map +1 -0
  429. package/dist/assets/assets/tr-D_AEGmAM.js +2 -0
  430. package/dist/assets/assets/tr-D_AEGmAM.js.map +1 -0
  431. package/dist/assets/assets/tt-IRFqPLkZ.js +2 -0
  432. package/dist/assets/assets/tt-IRFqPLkZ.js.map +1 -0
  433. package/dist/assets/assets/tv-ByYAbG0B.js +2 -0
  434. package/dist/assets/assets/tv-ByYAbG0B.js.map +1 -0
  435. package/dist/assets/assets/tw-Ebz6JQyM.js +2 -0
  436. package/dist/assets/assets/tw-Ebz6JQyM.js.map +1 -0
  437. package/dist/assets/assets/tz-DofxpwnJ.js +2 -0
  438. package/dist/assets/assets/tz-DofxpwnJ.js.map +1 -0
  439. package/dist/assets/assets/ua-C-Z749Zo.js +2 -0
  440. package/dist/assets/assets/ua-C-Z749Zo.js.map +1 -0
  441. package/dist/assets/assets/ug-CWupOauw.js +2 -0
  442. package/dist/assets/assets/ug-CWupOauw.js.map +1 -0
  443. package/dist/assets/assets/uk-WjqaL9eb.js +2 -0
  444. package/dist/assets/assets/uk-WjqaL9eb.js.map +1 -0
  445. package/dist/assets/assets/us-ev7042Ru.js +2 -0
  446. package/dist/assets/assets/us-ev7042Ru.js.map +1 -0
  447. package/dist/assets/assets/uy-FbqkNalt.js +2 -0
  448. package/dist/assets/assets/uy-FbqkNalt.js.map +1 -0
  449. package/dist/assets/assets/uz-BplITj4H.js +2 -0
  450. package/dist/assets/assets/uz-BplITj4H.js.map +1 -0
  451. package/dist/assets/assets/va-DB_VgAEh.js +2 -0
  452. package/dist/assets/assets/va-DB_VgAEh.js.map +1 -0
  453. package/dist/assets/assets/vc-oE5LafoZ.js +2 -0
  454. package/dist/assets/assets/vc-oE5LafoZ.js.map +1 -0
  455. package/dist/assets/assets/ve-TIdwcWAT.js +2 -0
  456. package/dist/assets/assets/ve-TIdwcWAT.js.map +1 -0
  457. package/dist/assets/assets/vi-DhDHRZca.js +2 -0
  458. package/dist/assets/assets/vi-DhDHRZca.js.map +1 -0
  459. package/dist/assets/assets/vn-TW3TOhkl.js +2 -0
  460. package/dist/assets/assets/vn-TW3TOhkl.js.map +1 -0
  461. package/dist/assets/assets/vu-Hso0UfdZ.js +2 -0
  462. package/dist/assets/assets/vu-Hso0UfdZ.js.map +1 -0
  463. package/dist/assets/assets/ws-B8OQPEXR.js +2 -0
  464. package/dist/assets/assets/ws-B8OQPEXR.js.map +1 -0
  465. package/dist/assets/assets/ye-N2E5D6OR.js +2 -0
  466. package/dist/assets/assets/ye-N2E5D6OR.js.map +1 -0
  467. package/dist/assets/assets/za-DAg0rnhw.js +2 -0
  468. package/dist/assets/assets/za-DAg0rnhw.js.map +1 -0
  469. package/dist/assets/assets/zh-Hans-2KaAC0e7.js +2 -0
  470. package/dist/assets/assets/zh-Hans-2KaAC0e7.js.map +1 -0
  471. package/dist/assets/assets/zh-Hant-BgZemFsG.js +2 -0
  472. package/dist/assets/assets/zh-Hant-BgZemFsG.js.map +1 -0
  473. package/dist/assets/assets/zm-BGyCVCwM.js +2 -0
  474. package/dist/assets/assets/zm-BGyCVCwM.js.map +1 -0
  475. package/dist/assets/assets/zw-aeNZQ8mk.js +2 -0
  476. package/dist/assets/assets/zw-aeNZQ8mk.js.map +1 -0
  477. package/dist/assets/icon_128x128.png +0 -0
  478. package/dist/assets/icon_192x192.png +0 -0
  479. package/dist/assets/icon_256x256.png +0 -0
  480. package/dist/assets/icon_384x384.png +0 -0
  481. package/dist/assets/icon_512x512.png +0 -0
  482. package/dist/assets/icon_96x96.png +0 -0
  483. package/dist/assets/icon_maskable.png +0 -0
  484. package/dist/assets/icon_maskable_180x180.png +0 -0
  485. package/dist/assets/index.html +22 -1
  486. package/dist/assets/manifest.json +49 -7
  487. package/dist/index.js +4 -2
  488. package/package.json +176 -185
  489. package/dist/assets/android-chrome-192x192.png +0 -0
  490. package/dist/assets/android-chrome-512x512.png +0 -0
  491. package/dist/assets/apple-touch-icon.png +0 -0
  492. package/dist/assets/browserconfig.xml +0 -9
  493. package/dist/assets/favicon-16x16.png +0 -0
  494. package/dist/assets/favicon-32x32.png +0 -0
  495. package/dist/assets/mstile-144x144.png +0 -0
  496. package/dist/assets/mstile-150x150.png +0 -0
  497. package/dist/assets/mstile-310x150.png +0 -0
  498. package/dist/assets/mstile-310x310.png +0 -0
  499. package/dist/assets/mstile-70x70.png +0 -0
  500. package/dist/assets/static/css/973.508b6bc040707a7791ff.css +0 -1
  501. package/dist/assets/static/css/main.f866c855fe6a0d81538f.css +0 -1
  502. package/dist/assets/static/js/786.18d4ca54.chunk.js +0 -1
  503. package/dist/assets/static/js/842.b180ca00.chunk.js +0 -1
  504. package/dist/assets/static/js/93.63c72f4a.chunk.js +0 -1
  505. package/dist/assets/static/js/973.cef384de.chunk.js +0 -1
  506. package/dist/assets/static/js/about.786c2301.chunk.js +0 -1
  507. package/dist/assets/static/js/flag1.0b860828.chunk.js +0 -1
  508. package/dist/assets/static/js/flag11.94182540.chunk.js +0 -1
  509. package/dist/assets/static/js/flag2.99c9cdfe.chunk.js +0 -1
  510. package/dist/assets/static/js/flag3.7b462bbc.chunk.js +0 -1
  511. package/dist/assets/static/js/flag4.c84eb431.chunk.js +0 -1
  512. package/dist/assets/static/js/i18n0.89bfd857.chunk.js +0 -1
  513. package/dist/assets/static/js/i18n1.44a9f298.chunk.js +0 -1
  514. package/dist/assets/static/js/i18n10.aa2a01e4.chunk.js +0 -1
  515. package/dist/assets/static/js/i18n11.038e9cd0.chunk.js +0 -1
  516. package/dist/assets/static/js/i18n12.48ab4e4d.chunk.js +0 -1
  517. package/dist/assets/static/js/i18n13.c5f2334b.chunk.js +0 -1
  518. package/dist/assets/static/js/i18n14.08f4b1d7.chunk.js +0 -1
  519. package/dist/assets/static/js/i18n15.db8cbb1f.chunk.js +0 -1
  520. package/dist/assets/static/js/i18n16.13554b91.chunk.js +0 -1
  521. package/dist/assets/static/js/i18n17.b5cf638f.chunk.js +0 -1
  522. package/dist/assets/static/js/i18n18.6ba98e1e.chunk.js +0 -1
  523. package/dist/assets/static/js/i18n19.889b15c6.chunk.js +0 -1
  524. package/dist/assets/static/js/i18n2.dc310354.chunk.js +0 -1
  525. package/dist/assets/static/js/i18n20.2f87e51a.chunk.js +0 -1
  526. package/dist/assets/static/js/i18n21.10626c3f.chunk.js +0 -1
  527. package/dist/assets/static/js/i18n22.6943815c.chunk.js +0 -1
  528. package/dist/assets/static/js/i18n23.5c5c3254.chunk.js +0 -1
  529. package/dist/assets/static/js/i18n24.77b623de.chunk.js +0 -1
  530. package/dist/assets/static/js/i18n25.48a09d73.chunk.js +0 -1
  531. package/dist/assets/static/js/i18n26.f1bf908d.chunk.js +0 -1
  532. package/dist/assets/static/js/i18n27.4cce5708.chunk.js +0 -1
  533. package/dist/assets/static/js/i18n28.fad843fa.chunk.js +0 -1
  534. package/dist/assets/static/js/i18n3.2804ade6.chunk.js +0 -1
  535. package/dist/assets/static/js/i18n4.b620301e.chunk.js +0 -1
  536. package/dist/assets/static/js/i18n5.7a47c58a.chunk.js +0 -1
  537. package/dist/assets/static/js/i18n6.b2520055.chunk.js +0 -1
  538. package/dist/assets/static/js/i18n7.1b7d5a0d.chunk.js +0 -1
  539. package/dist/assets/static/js/i18n8.6f12943e.chunk.js +0 -1
  540. package/dist/assets/static/js/i18n9.13480ae9.chunk.js +0 -1
  541. package/dist/assets/static/js/main.412e9e9a.js +0 -1
  542. package/dist/assets/static/media/Roboto-500.64e69384.woff +0 -0
  543. package/dist/assets/static/media/Roboto-500.7f8f0146.eot +0 -0
  544. package/dist/assets/static/media/Roboto-500.916656a2.ttf +0 -0
  545. package/dist/assets/static/media/Roboto-500.abd255e8.svg +0 -305
  546. package/dist/assets/static/media/Roboto-700.8d11d1e1.ttf +0 -0
  547. package/dist/assets/static/media/Roboto-700.9c9c164e.svg +0 -310
  548. package/dist/assets/static/media/Roboto-700.c65552c8.eot +0 -0
  549. package/dist/assets/static/media/Roboto-700.ee82bda2.woff +0 -0
  550. package/dist/assets/static/media/Roboto-700italic.1dc5bfed.eot +0 -0
  551. package/dist/assets/static/media/Roboto-700italic.686da014.woff +0 -0
  552. package/dist/assets/static/media/Roboto-700italic.896656dc.ttf +0 -0
  553. package/dist/assets/static/media/Roboto-700italic.cacb9681.svg +0 -325
  554. package/dist/assets/static/media/Roboto-italic.09ed2f27.svg +0 -323
  555. package/dist/assets/static/media/Roboto-italic.c1421604.woff +0 -0
  556. package/dist/assets/static/media/Roboto-italic.c38ecad2.ttf +0 -0
  557. package/dist/assets/static/media/Roboto-italic.f7677a07.eot +0 -0
  558. package/dist/assets/static/media/Roboto-regular.5107f918.eot +0 -0
  559. package/dist/assets/static/media/Roboto-regular.6a307cf2.woff +0 -0
  560. package/dist/assets/static/media/Roboto-regular.81dc9b21.ttf +0 -0
  561. package/dist/assets/static/media/Roboto-regular.bcf2ba9e.svg +0 -308
  562. /package/dist/assets/{static/media/Roboto-500.c7e17507.woff2 → assets/Roboto-500-CsZWW7Bu.woff2} +0 -0
  563. /package/dist/assets/{static/media/Roboto-700.2b8c7cb1.woff2 → assets/Roboto-700-D1ZLqfE0.woff2} +0 -0
  564. /package/dist/assets/{static/media/Roboto-700italic.05e025ae.woff2 → assets/Roboto-700italic-CfNT1HYS.woff2} +0 -0
  565. /package/dist/assets/{static/media/Roboto-italic.766b7c5c.woff2 → assets/Roboto-italic-BTa0Y66b.woff2} +0 -0
  566. /package/dist/assets/{static/media/Roboto-regular.11bce66a.woff2 → assets/Roboto-regular-CJgdpARq.woff2} +0 -0
  567. /package/dist/assets/{safari-pinned-tab.svg → icon.svg} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,465 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.11.0] (October 17, 2025)
4
+
5
+ - feat: show size for status filter (#923)
6
+ - fix: improve server startup message (#921)
7
+
8
+ ## [4.10.0] (October 4, 2025)
9
+
10
+ - feat: Add optional Last Activity column to torrent list (#906)
11
+ - feat(client): add units of measure to throttle speeds (#899)
12
+ - feat: show 2 decimal in size usage (#916)
13
+ - fix: `LoadingOverlay` sometimes does not hide after login/logout (#905)
14
+ - fix: log authentication failed reasons (#882)
15
+ - Migrate webpack devServer proxy options to webpack v5 (#904)
16
+ - i18n: new translations (#919, #918)
17
+ - build(deps-dev): bump form-data from 4.0.1 to 4.0.4 (#900)
18
+ - build(deps-dev): bump axios from 1.8.2 to 1.12.0 (#912)
19
+ - build(deps-dev): bump tar-fs from 2.1.3 to 2.1.4 (#914)
20
+
21
+ ## [4.9.5] (June 9, 2025)
22
+
23
+ - ci: use new pkg (#891)
24
+ - build(deps-dev): bump fastify from 4.29.0 to 4.29.1 (#881)
25
+ - build(deps-dev): bump tar-fs from 2.1.2 to 2.1.3 (#884)
26
+ - build(deps-dev): bump axios from 1.7.9 to 1.8.2 (#886)
27
+ - build(deps-dev): bump webpack-dev-server from 4.15.2 to 5.2.1 (#885)
28
+ - i18n: new translations (#889)
29
+
30
+ ## [4.9.4] (June 9, 2025)
31
+
32
+ - build: add ghcr.io docker image
33
+ - build(deps-dev): bump esbuild from 0.19.12 to 0.25.0 (#869)
34
+ - build: replace deprecated `pkg` with `@yao-pkg/pkg` (#868)
35
+ - i18n: new translations (#863)
36
+ - ci: replace apt with apt-get (#860)
37
+
38
+ ## [4.9.3] (January 30, 2025)
39
+
40
+ - build: upgrade deps (#858)
41
+ - docs: fix readme badge (#857)
42
+
43
+ ## [4.9.2] (January 30, 2025)
44
+
45
+ - ci: always use version from package.json from ci (#855)
46
+ - ci: upload deb with gh cli to avoid override (#854)
47
+
48
+ ## [4.9.1] (January 30, 2025)
49
+
50
+ - i18n: new translations (#852)
51
+ - ci: use bazel@7 to build deb (#851)
52
+
53
+ ## [4.9.0] (January 15, 2025)
54
+
55
+ - feat: add filter by filesystem location + bonus tooltip on overflowed filter names (#518)
56
+ - fix(ui): some dark mode fixes (#714)
57
+ - fix: check if user service is bootstrapped before removing instances (#835)
58
+ - fix: run compaction every interval (#834)
59
+ - docs: add notes about upstream rtorrent json-rpc (#845)
60
+ - i18n: new translations (#848, #841)
61
+ - build(deps): bump nanoid from 3.3.7 to 3.3.8 (#833)
62
+
63
+ ## [4.8.5] (December 10, 2024)
64
+
65
+ - fix(rTorrent): support xmlrpc int type (#829)
66
+ - fix(rTorrent): prevent extra commas in serialized XML (#830)
67
+ - fix(qBittorrent): api version state handling (#826)
68
+ - fix(qBittorrent): Missing states (#817)
69
+ - build: remove deprecated package `frontmatter-markdown-loader` (#831)
70
+ - build(deps): bump cross-spawn from 7.0.3 to 7.0.5 (#823)
71
+ - build(deps): bump http-proxy-middleware from 2.0.6 to 2.0.7 (#816)
72
+ - i18n: new translations (#821)
73
+ - ci: fix docker-dbg job (#822)
74
+
75
+ ## [4.8.4] (October 9, 2024)
76
+
77
+ - fix: add_paused changed to add_stopped in qbit 5 (#810)
78
+ - ci: fix release workflow (#808)
79
+ - build(deps-dev): bump express from 4.19.2 to 4.20.0 (#805)
80
+ - build(deps-dev): bump body-parser from 1.20.2 to 1.20.3 (#804)
81
+ - build(deps): bump find-my-way from 8.2.0 to 8.2.2 (#807)
82
+ - build(deps-dev): bump webpack from 5.93.0 to 5.94.0 (#806)
83
+
84
+ ## [4.8.3] (October 8, 2024)
85
+
86
+ - fix: resume and pause does not work with qbittorrent 5 (#801)
87
+ - fix: changed transmission ratio calculation to total size instead of downloaded size (#791)
88
+ - fix: correct buffers concatenation in socket (#787)
89
+ - style: add new rule for imports (#785)
90
+ - build: fix docker warn (#784)
91
+ - build: enable pnpm link (#783)
92
+ - build: embed mmdb as pure js data (#782)
93
+ - build: remove deprecated babel plugin (#781)
94
+ - i18n: new translations (#802)
95
+
96
+ ## [4.8.2] (May 4, 2024)
97
+
98
+ nothing new, just a new release to for deb files.
99
+
100
+ ## [4.8.1] (May 4, 2024)
101
+
102
+ - feat: new args `--disable-rate-limit` to disable rate limit on api except login (#737)
103
+ - fix: only generate mediainfo for video file (#741)
104
+ - fix: `/metainfo` json response for error (#740)
105
+
106
+ ## [4.8.0] (April 24, 2024)
107
+
108
+ - fix(client): filter empty tags when setting/submitting tags (#715)
109
+ - fix(client): modal overflow on mobile (#713)
110
+ - fix(server): content-type on responding html (#708)
111
+ - fix(client): allows modal to grow when inner width exceeds container (#597)
112
+ - fix(client): misc styles (#691)
113
+ - fix(server): `@fastify/express` doesn't work with http2 (#705)
114
+ - fix(client): tracker filter size conditional render logic and react key prop (#702)
115
+ - fix: log error trace (#697)
116
+ - fix(server): handle number port (#692)
117
+ - feat(client): detect magnet and torrent links from clipboard (#690)
118
+ - server: remove port requirement, permit running on paths (#680)
119
+ - perf: mediainfo router should use async/await to get file info (#656)
120
+ - feat: use relative path in mediainfo info (#657)
121
+ - TorrentGeneralInfo: drop leading and trailing whitespaces from comment (#674)
122
+ - LinkedText: fix torrent comment line break (#667)
123
+ - server: rTorrent: manage request queue with p-queue - fix memory leak (#650)
124
+ - TransferRateGraph: explicitly declare width and height to 100%
125
+ - server: qBittorrent: use POST method for API calls
126
+ - server: qBittorrent: log in using POST method (#594)
127
+ - server: torrentService: normalize case of hash during torrent lookup
128
+ - TorrentListColumns: add "Finished" column (#565)
129
+ - styles: sortable-list: disallow selecting text in a list
130
+ - client: scripts: development: drop unnecessary browser popup
131
+ - MoveTorrentsModal: suggest longest common prefix as path
132
+ - server: rTorrent: throw error when file moving fails
133
+ - FilesystemBrowser: line break unconditionally for long paths
134
+ - TorrentListDropzone: pop up "Add Torrents" modal instead of adding directly
135
+ - server: rTorrent: avoid relying on type coercion of RPC value
136
+ - server: rTorrent: remove "hasLoadThrow" and fold into "isJSONCapable"
137
+ - server: ditch unmaintained "spdy"
138
+ - SortableList: switch to clauderic/dnd-kit
139
+ - server: drop databases before removing user
140
+ - server: switch to @seald/nedb
141
+ - server: tests: replace "ts-jest/utils" with "ts-jest"
142
+ - TorrentGeneralInfo: display "None" when there is no comment
143
+ - LinkedText: drop RegEx incompatible with Safari
144
+ - feature: display comment inside .torrent in torrent details (#541)
145
+ - TransferRateGraph: fix blank graph in some cases
146
+ - TorrentList: fix "a wild 0 appears"
147
+ - client: Fix regression introduced in PR #519, fixes #522 (#523)
148
+ - sidebar: make filter sections collapsible (#519)
149
+ - client: add page title speed display preference
150
+ - DownloadRulesTab, FeedsTab: force new component when editing
151
+ - server: add shebang to bundled executable
152
+ - Dockerfile: use the "npm run build" command
153
+ - server: create production build with webpack directly
154
+ - server: flatten directory structure a bit
155
+ - server: tests: ensure connectivity to client before tests
156
+ - server: tests: confirm deletion of torrents before continue
157
+ - client: reformat "typings.d.ts", fixup ffcc5c8e0
158
+ - server: tests: mock response to torrents fetch
159
+ - server: normalize fetching of torrents added with URL
160
+ - client: fix webpack devServer port selection
161
+ - styles: apply dark theme to TorrentListDropzone
162
+ - TorrentFilterStore: simplify and fix scroll to top on filter change
163
+ - client: allow multi-select of filters with Ctrl and Shift keys
164
+ - server: remove unused history snapshots and make it in-mem only
165
+ - TagFilters, TrackerFilters: fix filtering by tag/tracker
166
+ - client: remove unnecessary "UIActions" abstraction
167
+ - server: Transmission: normalize "unknown" ETA (-2) to infinity (-1) (#432)
168
+
169
+ ## [4.7.0] (October 9, 2021)
170
+
171
+ - Display total size by tag or tracker of torrents on sidebar (#369, @sabersalv)
172
+ - Improve memoization of "TorrentListRow" and "ProgressBar" components
173
+ - Fix loading indicator bar alignment (#396, @DopyConqueror)
174
+ - New translations
175
+ - Arabic, thanks to yngams
176
+ - Chinese Simplified, thanks to @davidxuang
177
+ - Czech, thanks to @Kedlub
178
+ - Italian, thanks to @GiorgioBrux
179
+ - German, thanks to @Kiina
180
+ - Japanese, thanks to @Kuri0421 and @Kiina
181
+ - Korean, thanks to @Kiina
182
+ - Polish, thanks to @retmas-gh
183
+ - Spanish, thanks to @oaknuggins
184
+ - Norwegian, thanks to Daddie0
185
+ - Bump dependencies
186
+
187
+ ## [4.6.1] (July 5, 2021)
188
+
189
+ - DiskUsage: skip mount points of "overlayfs" type (#341, @Trim21)
190
+ - Deluge:
191
+ - Avoid crashing Flood when there is a connection error
192
+ - Note again that Deluge support is still experimental
193
+ - Bug fixes:
194
+ - Cleanup synchronous patterns (#340)
195
+ - AuthForm: add missing i18n for "Username" and "Password" (#336)
196
+ - server: destroy user services before cleaning up data
197
+ - TorrentListCell: passthrough clicks
198
+ - New translations
199
+ - French, thanks to @foXaCe
200
+ - German, thanks to @chint95
201
+ - Korean, thanks to @Kiina
202
+ - Romanian, thanks to @T-z3P
203
+ - Bump dependencies
204
+
205
+ ## [4.6.0] (May 28, 2021)
206
+
207
+ - Experimental Deluge support
208
+ - caveat: tags are not supported at the moment
209
+ - Add "last active date" and "finished date" to the torrent properties
210
+ - Migrate stylesheets to SCSS module system
211
+ - Ditch inefficient "TRANSFER_SUMMARY_DIFF_CHANGE" SSE event
212
+ - Allow to download contents of multiple selected torrents
213
+ - Update base Node.js versions of single-executable builds
214
+ - rTorrent:
215
+ - Add torrents to rTorrent via socket
216
+ - qBittorrent:
217
+ - Improve performance by throttling concurrent requests
218
+ - Bug fixes:
219
+ - Fix memory leak and unreliability when the settings of a user is updated by simplifying service manager
220
+ - Pipe created torrent to response directly
221
+ - Security enhancements:
222
+ - Forbid non-owner access to runtime directory by default
223
+ - New translations
224
+ - Chinese (Simplified), thanks to @coxde
225
+ - Czech, thanks to @brezinajn
226
+ - German, thanks to @chint95
227
+ - Hungarian, thanks to @m3r3nix
228
+ - Korean, thanks to @Kiina
229
+ - Spanish, thanks to Zagon
230
+ - Bump dependencies
231
+
232
+ ## [4.5.4] (April 24, 2021)
233
+
234
+ - Bug fixes:
235
+ - "Torrents with long names get truncated in torrent detail modal (#273)" on Safari
236
+ - New translations
237
+ - Chinese (Simplified), thanks to @coxde
238
+ - Dutch, thanks to John Willemsen
239
+ - Italian, thanks to Simone De Nadai
240
+ - Bump dependencies
241
+
242
+ ## [4.5.3] (April 10, 2021)
243
+
244
+ - Bug fixes:
245
+ - Tags need a F5 refresh to be displayed after being set (#266)
246
+ - Torrents with long names get truncated in torrent detail modal (#273)
247
+ - qBittorrent: allow .torrent download with new session directory path (#275, @angristan)
248
+ - New translations
249
+ - French, thanks to @foXaCe
250
+ - Hungarian, thanks to @m3r3nix
251
+ - Japanese, thanks to @Kiina
252
+ - Korean, thanks to @Kiina
253
+ - Spanish, thanks to @Shutruk
254
+ - Bump dependencies
255
+
256
+ ## [4.5.2] (April 4, 2021)
257
+
258
+ - Add "Log Out" button to connection interrupted page
259
+ - Add "tini" init process to containers (#260, @onedr0p)
260
+ - Bug fixes:
261
+ - No longer fails to add some URLs to rTorrent with XMLRPC
262
+ - Fix `Connection settings can not be empty.` after submit
263
+ - Bump dependencies
264
+
265
+ ## [4.5.1] (March 31, 2021)
266
+
267
+ - Allow to press Ctrl-A or Command-A to select all torrents
268
+ - Enlarge width of "Torrent Details" modal
269
+ - Bug fixes:
270
+ - Fix multi-file "Move torrents" of rTorrent (XMLRPC)
271
+ - Don't close the notification panel when a button is clicked
272
+ - New translations
273
+ - Czech, thanks to @brezinajn
274
+ - Italian, thanks to @gmcinalli
275
+ - Korean, thanks to @Kiina and @m4ximuel
276
+ - Bump dependencies
277
+
278
+ ## [4.5.0] (March 14, 2021)
279
+
280
+ - Reannounce. Typically torrent clients do that automatically, but in some cases you may want to do it manually. It is available as a context menu action.
281
+ - Redesigned filesystem browser. Allow searching in the current directory and eliminate unnecessary requests sent to server. Additionally, navigation via arrow keys is implemented (mainly for accessibility but could be useful for anyone).
282
+ - Major accessibility enhancements. All elements are now navigable by keyboard.
283
+ - Improve scrolling performance by overscanning 30 rows.
284
+ - rTorrent:
285
+ - JSON-RPC support for eligible versions. Preliminary tests showed that, when compared with XMLRPC, JSON-RPC yields 2x performance, 15% lower total CPU time in rTorrent process, 33% lower total CPU time in Flood process.
286
+ - `load.throw` command support for eligible versions. Definitive response when you add torrents, so Flood won't display success when the operation actually fails.
287
+ - Better handle command failures.
288
+ - Verify filesystem access and respond with errors when necessary.
289
+ - Bug fixes:
290
+ - Fix French mistranslation
291
+ - Fix button location in download rules tab of feed modal
292
+ - Fix "Set tracker" of single tracker torrents in rTorrent
293
+ - Fix "Checking" bar selected style for dark color scheme
294
+ - Recognize qBittorrent's "Forced" state
295
+ - Disk usage service errors are no longer fatal
296
+ - New translations
297
+ - Chinese (Simplified), thanks to @MeetWq
298
+ - Chinese (Traditional), thanks to @vongola12324
299
+ - Czech, thanks to @brezinajn
300
+ - French, thanks to @Carryozor and @foXaCe
301
+ - German, thanks to @chint95
302
+ - Hungarian, thanks to @m3r3nix
303
+ - Romanian, thanks to @T-z3P
304
+ - Bump dependencies
305
+
306
+ ## [4.4.1] (February 6, 2021)
307
+
308
+ - Better handle tracker domain conversion and grouping
309
+ - Wrap texts (e.g. long IPv6 addresses and peer client versions) in tables of torrent details if necessary
310
+ - Distribution:
311
+ - CI now publishes releases to AUR (Arch Linux User Repository)
312
+ - CI now publishes Debian (`.deb`) packages to Github Releases
313
+ - Contributions are welcome. See [distribution/README.md](https://github.com/jesec/flood/blob/v4.4.1/distribution/README.md).
314
+ - rTorrent fixes:
315
+ - Remove [] from IPv6 addresses in peer list
316
+ - Bug fixes:
317
+ - Remove ugly outline and highlight of focused button caused by an a11y change
318
+ - Try to workaround potential index.html caching issues
319
+ - Browser uses a fully cached asset tree in some cases, which defeats cache busting by asset hashes
320
+ - New translations
321
+ - Finnish, thanks to @hyvamiesh
322
+ - German, thanks to @chint95
323
+ - Bump dependencies
324
+
325
+ ## [4.4.0] (February 2, 2021)
326
+
327
+ - Return a portable link when torrent content is requested
328
+ - Allow sharing of links to other people
329
+ - Allow casting (Chromecast, Airplay) of content to devices which can't authenticate with Flood
330
+ - Allow copying the link and paste it to a player application so more formats can be streamed
331
+ - Allow external downloaders to use the link
332
+ - Allow to register to handle magnet links in "Add by URL" panel
333
+ - Support for "add-urls" frontend query action is added
334
+ - e.g. `http://localhost:3000/?action=add-urls&url=magnet:?xt=`
335
+ - Allow to download .torrent file of a torrent
336
+ - Add sequential downloading support for applicable clients
337
+ - rTorrent: requires "d.down.sequential(.set)" commands, see [jesec/rtorrent@bd904e3](https://github.com/jesec/rtorrent/commit/bd904e366367cb9cbe007381089eea066253c9e9)
338
+ - qBittorrent: supported
339
+ - Transmission: rejected, see [https://trac.transmissionbt.com/ticket/452](https://trac.transmissionbt.com/ticket/452)
340
+ - Add initial seeding (aka superseeding) support for applicable clients
341
+ - [BEP16](https://www.bittorrent.org/beps/bep_0016.html)
342
+ - Saves bandwidth for initial seeder and quickly kicks off a healthy swarm
343
+ - NOT recommended for non-initial seeders
344
+ - rTorrent: not exposed to RPC interface, requires [jesec/rtorrent@657089d](https://github.com/jesec/rtorrent/commit/657089d438f917714c2386c28ce9d01a6e6a2737)
345
+ - qBittorrent: supported
346
+ - Transmission: not supported, see [https://trac.transmissionbt.com/ticket/1691](https://trac.transmissionbt.com/ticket/1691)
347
+ - Display existing tags in alphabetical order in tag selector
348
+ - Optionally skip assets serving with `--assets=false`
349
+ - May be useful for users who serve static assets from their own servers
350
+ - Or developers who don't want to build assets before starting a server instance
351
+ - Refresh manifest and assets related to PWA (Progressive Web Application) support
352
+ - Separate locale and language when using "Automatic" language setting
353
+ - Deal with minor locale differences (e.g. date formats) between language variants
354
+ - See [#123](https://github.com/jesec/flood/issues/123)
355
+ - Remove inconsistency of clients by normalizing hashes in API responses to upper case
356
+ - Explicitly pass paths of contents to mediainfo
357
+ - So unrelated files in the same folder won't be processed by mediainfo
358
+ - Remove dependency on shell in disk usage functions
359
+ - New distribution-less (distroless) Docker image is now available, which has smaller size and allows maximum security
360
+ - Standalone executable:
361
+ - Now available for `linux-arm64` and `win-arm64`
362
+ - Bundled Node.js runtime bumped to 14.15.4
363
+ - Linux binaries are now fully static
364
+ - Customized Node.js runtime with smaller size and memory consumption
365
+ - rTorrent fixes:
366
+ - Create destination directory structure before moving torrent
367
+ - Flood API responses no longer mixes with unprocessed rTorrent method call responses
368
+ - Properly handle multi tags while adding
369
+ - Remove torrents (with data) can delete empty directories
370
+ - qBittorrent fixes:
371
+ - Fix "isBasePath" for newer versions
372
+ - Implement "isCompleted" (skip_checking)
373
+ - Trim whitespace in `tags` property
374
+ - Optionally set website cookie for torrent fetching (add by URL)
375
+ - Security enhancements:
376
+ - Don't leak details of internal errors
377
+ - Rate limits /data API endpoint
378
+ - Bug fixes:
379
+ - Pack torrent contents one by one to avoid out-of-memory during batch downloading
380
+ - Potential crashes related to disk usage functions in rare Docker environments
381
+ - Disallow comma in tag
382
+ - New translations
383
+ - Chinese (Traditional), thanks to @vongola12324
384
+ - Czech, thanks to @brezinajn
385
+ - Dutch, thanks to @vain4us
386
+ - French, thanks to @Carryozor
387
+ - German, thanks to @Ben-Wallner
388
+ - Hungarian, thanks to @m3r3nix
389
+ - Romanian, thanks to @T-z3P
390
+ - Spanish, thanks to @almontegil
391
+ - Bump dependencies
392
+
393
+ Additionally, Sonarr [#4159](https://github.com/Sonarr/Sonarr/pull/4159) and Radarr [#5552](https://github.com/Radarr/Radarr/pull/5552) now supports Flood natively.
394
+
395
+ **Notes about sequential downloading:**
396
+
397
+ Drawbacks:
398
+
399
+ - https://wiki.vuze.com/w/Sequential_downloading_is_bad
400
+
401
+ Benefits:
402
+
403
+ - Sequential downloading helps with I/O performance and lowers resource consumption and cost of hardware. It enables predictable I/O patterns and efficient caching. My hard disk is really noisy while downloading a torrent. But with sequential downloading, it does not make a sound. Speed is much better as well. Sequential I/O patterns also eliminate disk fragmentation problem that damages performance/lifespan of hard disks in long-term, which is a headache for long seeders.
404
+ - "It is bad for swarms." That's correct for unhealthy swarms. However, for private torrent users, in most cases, the seeder/leecher relationship is "many seeder, single/little leecher". Plus, with the incentives/punishments of tracker sites, there is little to no risk of "draining". As such, it makes more sense to protect hardware of everyone in the swarm. Predictable I/O patterns also allow seeders to seed many torrents more efficiently: if leechers use sequential download, the read patterns become predictably sequential, which allows better I/O performance and reduces the failure rate of hard disks.
405
+ - For seedbox users: seedboxes are virtual machines. That means many users share the same physical machine. Random chunk downloading is extremely taxing on disks. As a result, usually the speeds are limited by I/O more than bandwidth. If the swarm pattern is usually "many seeder, single leecher", sequential downloading can help a lot.
406
+ - Widely known "self" benefits: stream early, stream while downloading, organize episodes quick and unpack some files before finish, etc.
407
+
408
+ ## [4.3.1] (December 10, 2020)
409
+
410
+ - Make theme button always at the bottom of sidebar
411
+ - Remove legacy font formats from static assets
412
+ - Slightly tweak styles of country flags in peer list
413
+ - Better accommodate longer flags
414
+ - Display country code on hover
415
+ - qBittorrent fixes:
416
+ - Attach cookies to URL downloads
417
+ - Set trackers
418
+ - Transmission fixes:
419
+ - Percentage downloaded of contents of a torrent
420
+ - Bug fixes:
421
+ - API call to get peer list of a non-existent torrent no longer crash Flood server
422
+ - Handle file not exist and access denied cases in content download
423
+ - Properly handle API call to update password of a user
424
+ - Security enhancements:
425
+ - Rate limit resource-intensive mediainfo request
426
+ - Ensure path is allowed for mediainfo request
427
+ - API call to list users no longer receive hashed passwords and client connection settings
428
+ - Note: only an authenticated admin user may list users
429
+ - New translations
430
+ - Czech, thanks to @brezinajn
431
+ - Romanian, thanks to @T-z3P
432
+ - Bump dependencies
433
+
434
+ ## [4.3.0] (December 1, 2020)
435
+
436
+ - Generate magnet link from torrent
437
+ - Add a button to allow user to switch color scheme
438
+ - Multi architecture Docker images
439
+ - linux/amd64
440
+ - linux/arm64 (new)
441
+ - linux/arm/v7 (new)
442
+ - Allow to display precise percentage
443
+ - Expanded view: 1 decimal place
444
+ - Details: 3 decimal places
445
+ - Mountpoints with very long paths are ignored by disk usage
446
+ - Tags can be attached while adding torrents to qBittorrent (needs qbittorrent/qBittorrent#13882)
447
+ - Bug fixes:
448
+ - Download destination fallback to rTorrent default destination (Mika-/torrent-control#105)
449
+ - Properly catch errors of AddFiles and AddURLs when using qBittorrent
450
+ - Display existing trackers in set trackers modal
451
+ - New translations
452
+ - Spanish, thanks to @vain4us
453
+ - Bump dependencies
454
+
455
+ Side note:
456
+
457
+ I am starting to maintain a distribution of rTorrent, available at [jesec/rtorrent](https://github.com/jesec/rtorrent). It is optimized and small. It uses modern CMake and Bazel build systems. Bazel can also be used for dependency management and to produce statically linked reproducible builds.
458
+
459
+ Static binaries (amd64, arm64) can be downloaded via [Github Actions](https://github.com/jesec/rtorrent/actions?query=workflow%3A%22Publish+rolling+build%22). Docker images are also available at [jesec/rtorrent](https://hub.docker.com/r/jesec/rtorrent).
460
+
461
+ I made a simple [Dockerfile](https://github.com/jesec/flood/blob/5cc56067c3be6c91ccf94f71d4784be99c2823f8/Dockerfile.rtorrent) to demonstrate how to integrate rTorrent with Flood.
462
+
3
463
  ## [4.2.0] (November 25, 2020)
4
464
 
5
465
  - Allow content of a torrent to be streamed directly if supported by browser
@@ -118,7 +578,7 @@ Other changes:
118
578
  - config.cli: make all configs configurable by options and env
119
579
  - styles: properly set width of clipboard icon (fixes #26)
120
580
  - client: hide logout button when auth is disabled
121
- - Hungarian support (#21), thanks to @sfu420
581
+ - Hungarian support (#21), thanks to @m3r3nix
122
582
  - New translations:
123
583
  - Chinese Traditional, thanks to @vongola12324
124
584
  - Czech, thanks to @brezina.jn
@@ -230,3 +690,29 @@ Other changes:
230
690
  [4.1.1]: https://github.com/jesec/flood/compare/v4.1.0...v4.1.1
231
691
  [4.1.2]: https://github.com/jesec/flood/compare/v4.1.1...v4.1.2
232
692
  [4.2.0]: https://github.com/jesec/flood/compare/v4.1.2...v4.2.0
693
+ [4.3.0]: https://github.com/jesec/flood/compare/v4.2.0...v4.3.0
694
+ [4.3.1]: https://github.com/jesec/flood/compare/v4.3.0...v4.3.1
695
+ [4.4.0]: https://github.com/jesec/flood/compare/v4.3.1...v4.4.0
696
+ [4.4.1]: https://github.com/jesec/flood/compare/v4.4.0...v4.4.1
697
+ [4.5.0]: https://github.com/jesec/flood/compare/v4.4.1...v4.5.0
698
+ [4.5.1]: https://github.com/jesec/flood/compare/v4.5.0...v4.5.1
699
+ [4.5.2]: https://github.com/jesec/flood/compare/v4.5.1...v4.5.2
700
+ [4.5.3]: https://github.com/jesec/flood/compare/v4.5.2...v4.5.3
701
+ [4.5.4]: https://github.com/jesec/flood/compare/v4.5.3...v4.5.4
702
+ [4.6.0]: https://github.com/jesec/flood/compare/v4.5.4...v4.6.0
703
+ [4.6.1]: https://github.com/jesec/flood/compare/v4.6.0...v4.6.1
704
+ [4.7.0]: https://github.com/jesec/flood/compare/v4.6.1...v4.7.0
705
+ [4.8.0]: https://github.com/jesec/flood/compare/v4.7.0...v4.8.0
706
+ [4.8.1]: https://github.com/jesec/flood/compare/v4.8.0...v4.8.1
707
+ [4.8.2]: https://github.com/jesec/flood/compare/v4.8.1...v4.8.2
708
+ [4.8.3]: https://github.com/jesec/flood/compare/v4.8.2...v4.8.3
709
+ [4.8.4]: https://github.com/jesec/flood/compare/v4.8.3...v4.8.4
710
+ [4.8.5]: https://github.com/jesec/flood/compare/v4.8.4...v4.8.5
711
+ [4.9.0]: https://github.com/jesec/flood/compare/v4.8.5...v4.9.0
712
+ [4.9.1]: https://github.com/jesec/flood/compare/v4.9.0...v4.9.1
713
+ [4.9.2]: https://github.com/jesec/flood/compare/v4.9.1...v4.9.2
714
+ [4.9.3]: https://github.com/jesec/flood/compare/v4.9.2...v4.9.3
715
+ [4.9.4]: https://github.com/jesec/flood/compare/v4.9.3...v4.9.4
716
+ [4.9.5]: https://github.com/jesec/flood/compare/v4.9.4...v4.9.5
717
+ [4.10.0]: https://github.com/jesec/flood/compare/v4.9.5...v4.10.0
718
+ [4.11.0]: https://github.com/jesec/flood/compare/v4.10.0...v4.11.0
package/README.md CHANGED
@@ -2,17 +2,38 @@
2
2
 
3
3
  [![Flood logo](https://github.com/jesec/flood/raw/master/flood.svg)](https://flood.js.org)
4
4
 
5
- [![Github Actions build status badge](https://github.com/jesec/flood/workflows/Build/badge.svg?branch=master&event=push)](https://github.com/jesec/flood/actions) [![Crowdin](https://badges.crowdin.net/flood/localized.svg)](https://crowdin.com/project/flood) [![Discord server badge](https://img.shields.io/discord/418267176873623553.svg?style=flat-square)](https://discord.gg/Z7yR5Uf)
5
+ [![Build](https://github.com/jesec/flood/actions/workflows/build.yml/badge.svg)](https://github.com/jesec/flood/actions/workflows/build.yml)
6
+ [![Crowdin](https://badges.crowdin.net/flood/localized.svg)](https://crowdin.com/project/flood)
7
+ [![Discord server badge](https://img.shields.io/discord/418267176873623553.svg?style=flat-square)](https://discord.gg/Z7yR5Uf)
6
8
 
7
- Flood is a monitoring service for various torrent clients. It's a Node.js service that communicates with your favorite torrent client and serves a decent web UI for administration. This project is based on the [original Flood project](https://github.com/Flood-UI/flood).
9
+ Flood is a monitoring service for various torrent clients. It's a Node.js service that communicates with your favorite torrent client and serves a decent web UI for administration. [Flood-UI](https://github.com/Flood-UI) organization hosts related projects.
8
10
 
9
11
  #### Supported Clients
10
12
 
11
- | Client | Support |
12
- | --------------------------------------------------------------- | ------------------------------------ |
13
- | [rTorrent](https://github.com/rakshasa/rtorrent) | Stable and Tested :white_check_mark: |
14
- | [qBittorrent](https://github.com/qbittorrent/qBittorrent) v4.1+ | Experimental :alembic: |
15
- | [Transmission](https://github.com/transmission/transmission) | Experimental :alembic: |
13
+ | Client | Support |
14
+ | --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
15
+ | [rTorrent](https://github.com/rakshasa/rtorrent) | :white_check_mark: ([tested](https://github.com/jesec/flood/blob/master/server/.vitest/rtorrent.setup.ts)) |
16
+ | [qBittorrent](https://github.com/qbittorrent/qBittorrent) v4.1+ | :white_check_mark: ([tested](https://github.com/jesec/flood/blob/master/server/.vitest/qbittorrent.setup.ts)) |
17
+ | [Transmission](https://github.com/transmission/transmission) | :white_check_mark: ([tested](https://github.com/jesec/flood/blob/master/server/.vitest/transmission.setup.ts)) |
18
+ | [Deluge](https://github.com/deluge-torrent/deluge) v2+ | :alembic: Experimental |
19
+
20
+ ##### RTorrent Notes
21
+
22
+ For now, rakshasa/rtorrent and jesec/rtorrent are both supported.
23
+
24
+ #### Integrating with Flood
25
+
26
+ Flood provides an OpenAPI specification and interactive Swagger UI for API documentation:
27
+
28
+ - **OpenAPI spec**: Available at `/api/openapi.json`
29
+ - **Swagger UI**: Interactive API documentation at `/api/docs/`
30
+
31
+ You can also check out:
32
+
33
+ - [list of unofficial client API libraries](https://github.com/jesec/flood/wiki/List-of-unofficial-client-API-libraries)
34
+ - [list of unofficial API integrations](https://github.com/jesec/flood/wiki/List-of-unofficial-API-integrations)
35
+
36
+ Flood conforms to [Semantic Versioning](https://semver.org) conventions.
16
37
 
17
38
  #### Feedback
18
39
 
@@ -28,14 +49,16 @@ Check out the [Wiki](https://github.com/jesec/flood/wiki) for more information.
28
49
 
29
50
  Install [Node.js runtime](https://nodejs.org/). Flood tracks `Current` and provides support to `Active LTS` as well.
30
51
 
31
- - Debian, Ubuntu and RHEL-based distributions users can install latest `nodejs` from [NodeSource](https://github.com/nodesource/distributions) software repository.
32
- - Windows and MacOS users may use installer.
52
+ - Debian, Ubuntu (`apt`/`.deb`) and Enterprise Linux (`yum`/`dnf`/`.rpm`) -based distributions users can install `nodejs` from [NodeSource](https://github.com/nodesource/distributions) software repository.
53
+ - Windows users can use [winget](https://docs.microsoft.com/en-us/windows/package-manager/winget), [Chocolatey](https://chocolatey.org/packages/nodejs) or installer.
54
+ - macOS users can use [brew](https://brew.sh/) or installer.
55
+ - Check [Node.js website](https://nodejs.org/en/download/package-manager) for more.
33
56
 
34
- **EXPERIMENTAL**: You can download a single-executable build from [Releases](https://github.com/jesec/flood/releases) (or rolling build from [Actions](https://github.com/jesec/flood/actions?query=workflow%3A%22Publish+rolling+build%22)). It bundles `Node.js` and supports `Linux`, `MacOS` and `Windows`.
57
+ Alternatively, download a single-executable build from [Releases](https://github.com/jesec/flood/releases) (or rolling build from [Actions](https://nightly.link/jesec/flood/workflows/publish-rolling/master)). It bundles `Node.js` and supports `Linux`, `macOS` and `Windows`.
35
58
 
36
59
  ### Installation
37
60
 
38
- `sudo npm i -g flood` or `npx flood`
61
+ (sudo) `npm install --global flood` or `npx flood`
39
62
 
40
63
  Or use `@jesec/flood` for cutting-edge builds.
41
64
 
@@ -76,9 +99,10 @@ Run the installation command again.
76
99
  - Flood server performs file operations itself. As such, Flood needs to have permissions/access to the files.
77
100
  - Flood only uses the path provided by the torrent client so it needs to have the same filesystem context as the torrent client. If a file is "/path/to/a/file" to the torrent client, it has to be "/path/to/a/file" to Flood in order to get file operations working. It can't be "/mnt/some/different/path/file".
78
101
  - rTorrent:
79
- - Linux or MacOS users can use package managers such as `apt`, `yum`, `pacman`, `brew` of the platform to install rTorrent.
80
- - Windows users can use [Cygwin](https://www.cygwin.com/) to install rTorrent.
102
+ - Linux users can download the latest static executable (available for `amd64` and `arm64`) from [jesec/rtorrent](https://github.com/jesec/rtorrent). Alternatively, use package managers such as `apt`, `yum`, `pacman` of the platform to install rTorrent.
103
+ - macOS users can use `brew` to install rTorrent.
81
104
  - [Compile](https://github.com/rakshasa/rtorrent/wiki/Installing): XMLRPC support flag (`--with-xmlrpc-c`) is required during compilation.
105
+ - Certain features (sequential download, initial seeding, etc.) are not available in vanilla rTorrent.
82
106
  - Ask for help in the [Flood Discord server](https://discord.gg/Z7yR5Uf).
83
107
 
84
108
  ### Docker
@@ -93,7 +117,9 @@ Note that you have to let Docker know which port should be exposed (e.g. `-p 300
93
117
 
94
118
  Don't forget to pay attention to `flood`'s arguments like `--port` and `--allowedpath`.
95
119
 
96
- Currently Docker images of this project don't bundle a torrent client (yet). Its usefulness is limited as a result. You have to install a torrent client inside the container or make it possible for Flood inside Docker to interact with your torrent client.
120
+ Alternatively, you can pass in environment variables instead (e.g. `-e FLOOD_OPTION_port=3000`).
121
+
122
+ Checkout [Run Flood (and torrent clients) in containers](https://github.com/jesec/flood/discussions/120) discussion.
97
123
 
98
124
  Filesystem parts in [Troubleshooting](https://github.com/jesec/flood#troubleshooting) are especially important for containers.
99
125
 
@@ -107,41 +133,35 @@ Filesystem parts in [Troubleshooting](https://github.com/jesec/flood#troubleshoo
107
133
 
108
134
  From the root of the Flood directory...
109
135
 
110
- 1. Run `npm install`.
111
- 1. Run `npm run build`.
112
- 1. Run `npm start`.
136
+ 1. Run `pnpm install`.
137
+ 1. Run `pnpm run build`.
138
+ 1. Run `pnpm start`.
113
139
 
114
140
  Access the UI in your browser. With default settings, go to `http://localhost:3000`. You can configure the port via `--port` argument.
115
141
 
116
142
  **Notes**
117
143
 
118
- - When you use `npm run start` to execute Flood, you have to pass command line arguments after `--`. For example, `npm run start -- --host 0.0.0.0 --port 8080`. This applies to any `npm run` (e.g. `start:development:client`).
144
+ - When you use `pnpm run start` to execute Flood, you have to pass command line arguments after `--`. For example, `pnpm run start -- --host 0.0.0.0 --port 8080`. This applies to any `pnpm run` (e.g. `start:development:client`).
119
145
 
120
146
  ### Updating
121
147
 
122
148
  1. To update, run `git pull` in this repository's directory.
123
149
  1. Kill the currently running Flood server.
124
- 1. Run `npm install` to update dependencies.
125
- 1. Run `npm run build` to transpile and bundle static assets.
126
- 1. Start the Flood server with `npm start`.
150
+ 1. Run `pnpm install` to update dependencies.
151
+ 1. Run `pnpm run build` to transpile and bundle static assets.
152
+ 1. Start the Flood server with `pnpm start`.
127
153
 
128
154
  ### Local Development
129
155
 
130
- 1. Run `npm install`.
131
- 1. Run `npm run start:development:server` and `npm run start:development:client` in separate terminal instances.
132
- - `npm run start:development:server` uses [ts-node-dev](https://www.npmjs.com/package/ts-node-dev) to watch for changes to the server-side source. Or open the folder with VS code and then `Run -> Start Debugging`. You may use a [Javascript IDE](https://code.visualstudio.com/) to debug server codes.
133
- - `npm run start:development:client` watches for changes in the client-side source. Access the UI in your browser. Defaults to `localhost:4200`. You may use browser's [DevTools](https://developers.google.com/web/tools/chrome-devtools) to debug client codes.
156
+ 1. Run `pnpm install`.
157
+ 1. Run `pnpm run start:development:server` and `pnpm run start:development:client` in separate terminal instances.
158
+ - `pnpm run start:development:server` uses [tsx](https://www.npmjs.com/package/tsx) to watch for changes to the server-side source. Or open the folder with VS code and then `Run -> Start Debugging`. You may use a [Javascript IDE](https://code.visualstudio.com/) to debug server codes.
159
+ - `pnpm run start:development:client` watches for changes in the client-side source. Access the UI in your browser. Defaults to `localhost:4200`. You may use browser's [DevTools](https://developers.google.com/web/tools/chrome-devtools) to debug client codes.
134
160
 
135
161
  `--help --show-hidden` shows advanced arguments.
136
162
 
137
163
  `--proxy` proxies requests from a development client to a URL of your choice (usually URL to a Flood server). It is useful when you wish to do development on the frontend but not the backend. Or when the frontend and backend are being developed on different hosts.
138
164
 
139
- ### Environment Variables
140
-
141
- 1. `DEV_SERVER_PORT`: webpackDevServer's port, used when developing Flood. Defaults to `4200`.
142
- 1. `DEV_SERVER_HOST`: webpackDevServer's host, used when developing Flood. Defaults to `0.0.0.0`.
143
- 1. `DEV_SERVER_HTTPS`: webpackDevServer's protocol, used when developing Flood. Defaults to `http`.
144
-
145
165
  ### Building Docker
146
166
 
147
167
  1. `docker build --pull --rm -f Dockerfile -t flood:latest .`