hfs 3.1.5 → 3.2.0-alpha1.1

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 (220) hide show
  1. package/admin/assets/af-RjyQ-neT.js +1 -0
  2. package/admin/assets/am-PptHpglb.js +1 -0
  3. package/admin/assets/ar-Du3syDxa.js +1 -0
  4. package/admin/assets/ar-dz-CiziRh1x.js +1 -0
  5. package/admin/assets/ar-iq-hCKg0CRP.js +1 -0
  6. package/admin/assets/ar-kw-COYePt-p.js +1 -0
  7. package/admin/assets/ar-ly-CY5yETqb.js +1 -0
  8. package/admin/assets/ar-ma-DczXi97r.js +1 -0
  9. package/admin/assets/ar-sa-Bu7sTKzl.js +1 -0
  10. package/admin/assets/ar-tn-BrG0r6qZ.js +1 -0
  11. package/admin/assets/az-DYRCrdk0.js +1 -0
  12. package/admin/assets/be-DObSs5HX.js +1 -0
  13. package/admin/assets/bg-BDBkMe50.js +1 -0
  14. package/admin/assets/bi-CApXFwc6.js +1 -0
  15. package/admin/assets/bm-CjxCV8Lr.js +1 -0
  16. package/admin/assets/bn-DzWZbDi3.js +1 -0
  17. package/admin/assets/bn-bd-ijdPRJbb.js +1 -0
  18. package/admin/assets/bo-BDDfj5XH.js +1 -0
  19. package/admin/assets/br-DRHEjait.js +1 -0
  20. package/admin/assets/bs-B0Zv2Agm.js +1 -0
  21. package/admin/assets/ca-DuZAUqU_.js +1 -0
  22. package/admin/assets/cs-DVkylosR.js +1 -0
  23. package/admin/assets/cv-8Is1Fns9.js +1 -0
  24. package/admin/assets/cy-Bk30Or_y.js +1 -0
  25. package/admin/assets/da-C41DIdZK.js +1 -0
  26. package/admin/assets/de--qvLJgIE.js +1 -0
  27. package/admin/assets/de-at-D5vCBlsw.js +1 -0
  28. package/admin/assets/de-ch-Oh2cO23c.js +1 -0
  29. package/admin/assets/dv-4ZO2KNbw.js +1 -0
  30. package/admin/assets/el-CobOUqyu.js +1 -0
  31. package/admin/assets/en-C9afClpS.js +1 -0
  32. package/admin/assets/en-au-C_QMghEl.js +1 -0
  33. package/admin/assets/en-ca-C80KILwc.js +1 -0
  34. package/admin/assets/en-gb-BwQ0asAI.js +1 -0
  35. package/admin/assets/en-ie-ConCcQkq.js +1 -0
  36. package/admin/assets/en-il-CAOzD4DD.js +1 -0
  37. package/admin/assets/en-in-87gardaO.js +1 -0
  38. package/admin/assets/en-nz-uMTjgkDP.js +1 -0
  39. package/admin/assets/en-sg-BlbiLv4L.js +1 -0
  40. package/admin/assets/en-tt-BXXmBax2.js +1 -0
  41. package/admin/assets/eo-BBL7o-0W.js +1 -0
  42. package/admin/assets/es-DuNej-79.js +1 -0
  43. package/admin/assets/es-do-bZWKFwTE.js +1 -0
  44. package/admin/assets/es-mx-C2Lfb86F.js +1 -0
  45. package/admin/assets/es-pr-wU3Du8m-.js +1 -0
  46. package/admin/assets/es-us-qcU-zRiw.js +1 -0
  47. package/admin/assets/et-B-4PjN_n.js +1 -0
  48. package/admin/assets/eu-D0pNDZ9i.js +1 -0
  49. package/admin/assets/fa-R_zmYBGc.js +1 -0
  50. package/admin/assets/fi-CWYS_0Hg.js +1 -0
  51. package/admin/assets/fo-aJYpcnWS.js +1 -0
  52. package/admin/assets/fr-BHFrWfwB.js +1 -0
  53. package/admin/assets/fr-ca-ihwmO47n.js +1 -0
  54. package/admin/assets/fr-ch-Cb8XbRfE.js +1 -0
  55. package/admin/assets/fy-DT9BUc6t.js +1 -0
  56. package/admin/assets/ga-B8p4naXJ.js +1 -0
  57. package/admin/assets/gd-Dzrl6rPc.js +1 -0
  58. package/admin/assets/gl-bN2tXl9d.js +1 -0
  59. package/admin/assets/gom-latn-DUK8PgIJ.js +1 -0
  60. package/admin/assets/gu-CxAIP8fw.js +1 -0
  61. package/admin/assets/he-Bm9XJVAj.js +1 -0
  62. package/admin/assets/hi-CHik9Qxx.js +1 -0
  63. package/admin/assets/hr-Dn57_dqN.js +1 -0
  64. package/admin/assets/ht-BRS-FrJq.js +1 -0
  65. package/admin/assets/hu-hVaGcZ-U.js +1 -0
  66. package/admin/assets/hy-am-heLxXhpz.js +1 -0
  67. package/admin/assets/id-B6AkO4h8.js +1 -0
  68. package/admin/assets/{index-DTxjaflW.js → index-Buyl8rI8.js} +1 -1
  69. package/admin/assets/index-CFWd-FDo.css +1 -0
  70. package/admin/assets/index-WXxQwyJV.js +889 -0
  71. package/admin/assets/is-BUADPoni.js +1 -0
  72. package/admin/assets/it-Ce3gssOP.js +1 -0
  73. package/admin/assets/it-ch-CJzj2czr.js +1 -0
  74. package/admin/assets/ja-DykMIu-9.js +1 -0
  75. package/admin/assets/jv-Cum6DLwa.js +1 -0
  76. package/admin/assets/ka-foCPVFxw.js +1 -0
  77. package/admin/assets/kk-CMNu1ysC.js +1 -0
  78. package/admin/assets/km-BfMisGaD.js +1 -0
  79. package/admin/assets/kn-R_9S5KJz.js +1 -0
  80. package/admin/assets/ko-DYRND-mM.js +1 -0
  81. package/admin/assets/ku-CNZ_weGy.js +1 -0
  82. package/admin/assets/ky-BhTAWL4I.js +1 -0
  83. package/admin/assets/lb-CxWhQxwF.js +1 -0
  84. package/admin/assets/lo-DBL_XLkE.js +1 -0
  85. package/admin/assets/lt-BakZVm4p.js +1 -0
  86. package/admin/assets/lv-CCn-slXG.js +1 -0
  87. package/admin/assets/me-xPEA4qjE.js +1 -0
  88. package/admin/assets/mi-6cCs2Mzx.js +1 -0
  89. package/admin/assets/mk-CwWbHJPS.js +1 -0
  90. package/admin/assets/ml-Dp7Ab1SV.js +1 -0
  91. package/admin/assets/mn-ClotGWAe.js +1 -0
  92. package/admin/assets/mr-GiM-paTF.js +1 -0
  93. package/admin/assets/ms-BiZ1_eVR.js +1 -0
  94. package/admin/assets/ms-my-oevI0fOH.js +1 -0
  95. package/admin/assets/mt-BaIHeOl1.js +1 -0
  96. package/admin/assets/my-Cg5Fc_1j.js +1 -0
  97. package/admin/assets/nb-ZPODjT6R.js +1 -0
  98. package/admin/assets/ne-C0ti-ZX2.js +1 -0
  99. package/admin/assets/nl-DP2PkkGx.js +1 -0
  100. package/admin/assets/nl-be-VPC0QyaW.js +1 -0
  101. package/admin/assets/nn-NLidKyJd.js +1 -0
  102. package/admin/assets/oc-lnc-Ddj9_PnD.js +1 -0
  103. package/admin/assets/pa-in-DSAWffhb.js +1 -0
  104. package/admin/assets/pl-Yojex5aS.js +1 -0
  105. package/admin/assets/pt-BQMs2la2.js +1 -0
  106. package/admin/assets/pt-br-DVeeNZu8.js +1 -0
  107. package/admin/assets/rn-CKkTrK3f.js +1 -0
  108. package/admin/assets/ro-BbgGULSZ.js +1 -0
  109. package/admin/assets/ru-mAZX3DTa.js +1 -0
  110. package/admin/assets/rw-CYErOxKd.js +1 -0
  111. package/admin/assets/sd-kfPTqkSy.js +1 -0
  112. package/admin/assets/se-D0bN3rDS.js +1 -0
  113. package/admin/assets/{sha512-D936QW8l.js → sha512-99nhg44S.js} +1 -1
  114. package/admin/assets/si-COjb_4Hy.js +1 -0
  115. package/admin/assets/sk-Co95XNOo.js +1 -0
  116. package/admin/assets/sl-DUXa5wTF.js +1 -0
  117. package/admin/assets/sq-B-KU0nWK.js +1 -0
  118. package/admin/assets/sr-Cb_b-zPG.js +1 -0
  119. package/admin/assets/sr-cyrl-csuTDIB6.js +1 -0
  120. package/admin/assets/ss-BDnE-cG6.js +1 -0
  121. package/admin/assets/sv-CzWdOHcE.js +1 -0
  122. package/admin/assets/sv-fi-IK8oi5nB.js +1 -0
  123. package/admin/assets/sw-fPHo5hof.js +1 -0
  124. package/admin/assets/ta-TteN0nyU.js +1 -0
  125. package/admin/assets/te-2gsQb1fF.js +1 -0
  126. package/admin/assets/tet-ClTpDYJv.js +1 -0
  127. package/admin/assets/tg-Bel7Uc6z.js +1 -0
  128. package/admin/assets/th-pDQttM9V.js +1 -0
  129. package/admin/assets/tk-CxoKYZH6.js +1 -0
  130. package/admin/assets/tl-ph-D9htRcOQ.js +1 -0
  131. package/admin/assets/tlh-7UqvDBxU.js +1 -0
  132. package/admin/assets/tr-NjJrq1iC.js +1 -0
  133. package/admin/assets/tzl-CzGaXn8M.js +1 -0
  134. package/admin/assets/tzm-BiuscZFr.js +1 -0
  135. package/admin/assets/tzm-latn-IeWkCgWf.js +1 -0
  136. package/admin/assets/ug-cn-5LK64x5v.js +1 -0
  137. package/admin/assets/uk-CzacUaQe.js +1 -0
  138. package/admin/assets/ur-BRV7z4Gu.js +1 -0
  139. package/admin/assets/uz-C4G77QOI.js +1 -0
  140. package/admin/assets/uz-latn-CQFrzZ6F.js +1 -0
  141. package/admin/assets/vi-DEFXdlJi.js +1 -0
  142. package/admin/assets/x-pseudo-sWj5RKxR.js +1 -0
  143. package/admin/assets/yo-CBDjk96e.js +1 -0
  144. package/admin/assets/zh-CQtX_fkD.js +1 -0
  145. package/admin/assets/zh-cn-D6dF0jKM.js +1 -0
  146. package/admin/assets/zh-hk-DY-Jaqdg.js +1 -0
  147. package/admin/assets/zh-tw-BdmVby0R.js +1 -0
  148. package/admin/index.html +2 -2
  149. package/frontend/assets/index-legacy-BtoTkZho.js +9 -0
  150. package/frontend/assets/{index-legacy-vmpqwZZf.js → index-legacy-CQovmh_0.js} +1 -1
  151. package/frontend/assets/{sha512-legacy-wI89-UHR.js → sha512-legacy-CXU3efCO.js} +1 -1
  152. package/frontend/index.html +1 -1
  153. package/npm-shrinkwrap.json +160 -131
  154. package/package.json +10 -10
  155. package/plugins/antibrute/plugin.js +150 -19
  156. package/plugins/list-uploader/public/main.js +1 -1
  157. package/src/acme.js +11 -7
  158. package/src/api.accounts.js +3 -3
  159. package/src/api.auth.js +3 -1
  160. package/src/api.get_file_list.js +16 -12
  161. package/src/api.monitor.js +47 -43
  162. package/src/api.net.js +4 -3
  163. package/src/api.vfs.js +1 -1
  164. package/src/commands.js +54 -1
  165. package/src/config.js +9 -5
  166. package/src/consoleLog.js +39 -1
  167. package/src/const.js +5 -1
  168. package/src/cross.js +22 -1
  169. package/src/errorPages.js +20 -10
  170. package/src/events.js +1 -0
  171. package/src/fileAttr.js +73 -15
  172. package/src/frontEndApis.js +3 -1
  173. package/src/index.js +2 -1
  174. package/src/langs/hfs-lang-ar.json +2 -1
  175. package/src/langs/hfs-lang-bg.json +2 -1
  176. package/src/langs/hfs-lang-de.json +2 -1
  177. package/src/langs/hfs-lang-el.json +2 -1
  178. package/src/langs/hfs-lang-es.json +2 -1
  179. package/src/langs/hfs-lang-fi.json +2 -1
  180. package/src/langs/hfs-lang-fr.json +2 -1
  181. package/src/langs/hfs-lang-hu.json +2 -1
  182. package/src/langs/hfs-lang-it.json +2 -1
  183. package/src/langs/hfs-lang-ja.json +2 -1
  184. package/src/langs/hfs-lang-ko.json +2 -1
  185. package/src/langs/hfs-lang-lt.json +2 -1
  186. package/src/langs/hfs-lang-ms.json +2 -0
  187. package/src/langs/hfs-lang-nl.json +2 -1
  188. package/src/langs/hfs-lang-pt-br.json +2 -1
  189. package/src/langs/hfs-lang-ro.json +2 -1
  190. package/src/langs/hfs-lang-ru.json +2 -1
  191. package/src/langs/hfs-lang-sr-latn.json +2 -1
  192. package/src/langs/hfs-lang-sr.json +2 -1
  193. package/src/langs/hfs-lang-th.json +2 -1
  194. package/src/langs/hfs-lang-tr.json +2 -1
  195. package/src/langs/hfs-lang-uk.json +2 -1
  196. package/src/langs/hfs-lang-vi.json +2 -1
  197. package/src/langs/hfs-lang-zh-tw.json +2 -1
  198. package/src/langs/hfs-lang-zh.json +2 -1
  199. package/src/listen.js +3 -3
  200. package/src/log.js +27 -2
  201. package/src/middlewares.js +8 -2
  202. package/src/misc.js +14 -0
  203. package/src/nat.js +57 -20
  204. package/src/outboundProxy.js +1 -1
  205. package/src/perm.js +5 -1
  206. package/src/plugins.js +34 -5
  207. package/src/selfCheck.js +1 -1
  208. package/src/serveGuiAndSharedFiles.js +1 -0
  209. package/src/serveGuiFiles.js +1 -0
  210. package/src/update.js +9 -15
  211. package/src/urlList.js +32 -0
  212. package/src/util-files.js +15 -5
  213. package/src/util-http.js +2 -0
  214. package/src/vfs.js +1 -1
  215. package/src/walkDir.js +7 -1
  216. package/src/webdav.js +4 -1
  217. package/src/zip.js +2 -1
  218. package/admin/assets/index-B66w-a0v.css +0 -1
  219. package/admin/assets/index-Df6vYR7s.js +0 -822
  220. package/frontend/assets/index-legacy-emBsvICj.js +0 -9
package/src/webdav.js CHANGED
@@ -23,6 +23,7 @@ const config_1 = require("./config");
23
23
  const expiringCache_1 = require("./expiringCache");
24
24
  const fast_xml_parser_1 = require("fast-xml-parser");
25
25
  const lodash_1 = __importDefault(require("lodash"));
26
+ const fileAttr_1 = require("./fileAttr");
26
27
  const forceWebdavLogin = (0, config_1.defineConfig)(cross_1.CFG.force_webdav_login, true, compileWebdavAgentRegex);
27
28
  const webdavInitialAuth = (0, config_1.defineConfig)(cross_1.CFG.webdav_initial_auth, 'WebDAVFS', compileWebdavAgentRegex);
28
29
  const webdavPrompted = (0, expiringCache_1.expiringCache)(cross_1.DAY);
@@ -148,7 +149,9 @@ const webdav = async (ctx, next) => {
148
149
  canOverwrite.delete(overwriteGraceKey);
149
150
  const node = await (0, vfs_1.urlToNode)(path, ctx);
150
151
  if (node?.source)
151
- await (0, promises_1.rm)(node.source).catch(() => { });
152
+ await (0, promises_1.rm)(node.source)
153
+ .then(() => (0, fileAttr_1.deleteStoredFileAttrs)(node.source))
154
+ .catch(() => { });
152
155
  }
153
156
  if (x && ctx.length === undefined) // missing length can make PUT fail
154
157
  ctx.req.headers['content-length'] = x;
package/src/zip.js CHANGED
@@ -12,9 +12,10 @@ const serveFile_1 = require("./serveFile");
12
12
  const const_1 = require("./const");
13
13
  const api_get_file_list_1 = require("./api.get_file_list");
14
14
  const comments_1 = require("./comments");
15
+ const urlList_1 = require("./urlList");
15
16
  // expects 'node' to have had permissions checked by caller
16
17
  async function zipStreamFromFolder(node, ctx) {
17
- const list = (0, misc_1.wantArray)(ctx.query.list)[0]?.split('//'); // slash is the only char not allowed in file names both for windows and unix, but still we need to encode whole paths, so the only safe choice to separate the entries is the double slash
18
+ const list = (0, urlList_1.decodeUrlList)((0, misc_1.wantArray)(ctx.query.list)[0]);
18
19
  if (!list && (0, vfs_1.statusCodeForMissingPerm)(node, 'can_archive', ctx))
19
20
  return;
20
21
  ctx.status = const_1.HTTP_OK;
@@ -1 +0,0 @@
1
- .ariaOnly{position:absolute;clip-path:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.icon{font-size:1.2em;height:1.2em;width:1.4em;display:inline-block;text-align:center}@keyframes blink{0%{opacity:1}50%{opacity:.3}}:root{height:100dvh;--success: #5c5}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;background:#000}#root{min-height:100%;display:flex}main{word-break:break-word}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}img.flag{width:1.5em;height:1em;vertical-align:text-top;margin-top:1px}.icon-w-text{margin-right:.5em}form{max-width:100%}.MuiSvgIcon-root{vertical-align:bottom}div.MuiTreeItem-content{padding:0}.MuiDataGrid-columnHeaders{background-color:#8882}.MuiDataGrid-cell{line-height:1.2em}.MuiDataGrid-filterForm{flex-wrap:wrap;justify-content:space-evenly;row-gap:1em}.wrap[role=cell]{white-space:normal!important}ol,ul{margin-top:.2em;margin-bottom:.2em;padding-left:1.5em}h2.MuiDialogTitle-root{padding-top:2px;padding-bottom:2px}.dialog-alert .MuiDialogContent-root{max-width:45em;padding:.5em 1em;white-space:pre-wrap}.release code{font-size:95%;background-color:#8883;padding:0 .2em;border-radius:.2em}.MuiAppBar-root .MuiAlert-standardInfo .MuiAlert-icon{color:#fff8!important}.MuiAppBar-root .MuiAlert-standardInfo .MuiAlert-message{color:#fffa!important}.MuiAppBar-root .MuiAlert-colorWarning .MuiAlert-icon{color:#ff08!important}.MuiAppBar-root .MuiAlert-colorWarning .MuiAlert-message{color:#ff0a!important}.animated-dashed-line{width:100%;height:2px;background-image:linear-gradient(to right,currentColor 50%,transparent 50%);background-size:10px 100%;animation:animate-dash 1s alternate linear infinite}@keyframes animate-dash{to{background-position:20px 0}}@keyframes success{50%{transform:scale(1.3);color:var(--success)}to{transform:inherit;color:inherit}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{background:#8888}::-webkit-scrollbar-track{background:#8882}.token.operator{background:unset!important}.fflag{width:26px;height:17px;vertical-align:text-bottom;border:none}.dialog-backdrop{position:fixed;inset:0;background:#8886;backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:center;z-index:1000}.dialog{background:#fff;background:var(--bg);padding:.5em;padding:max(.5em,1vw,2vh);padding-top:0;border-radius:1em;position:relative;margin:0 3vw;overflow:hidden;max-height:calc(100vh - 2em);display:flex;flex-direction:column;justify-content:center}.dialog-icon{color:#fff;background-color:var(--color);position:absolute;top:0;width:2em;height:1.8em;text-align:center;border-radius:.8em 0}.dialog-icon-text{display:flex;align-items:center;justify-content:center}.dialog-title{font-size:120%;font-weight:400;margin:.3em 0;padding:0 .5em;min-height:1.2em}.dialog-closer~.dialog-title{margin-right:2em}.dialog-type~.dialog-title{margin-left:2em}.dialog-icon~.dialog-title{text-align:center}.dialog-closer{border-radius:0 .8em;right:0;padding:0;background-color:#c88}.dialog-icon~.dialog-content{margin-top:1em}.dialog-type{left:0;top:0;overflow:hidden;opacity:.7}.dialog-content{overflow:auto;max-height:calc(100vh - 4.5em)}.dialog-content p{white-space:pre-wrap;margin:.5em 0}.dialog-confirm .dialog-content button{margin-top:1em}.dialog-alert-info{--color: #282 }.dialog-alert-warning{--color: #c91 }.dialog-alert-error{--color: #822}@media (max-width: 42em){.dialog-icon{font-size:120%}.dialog-icon~.dialog-content{margin-top:1.5em}}.dialog-prompt label{display:block;margin:.5em .1em}.toasts{position:fixed;right:0;display:flex;flex-direction:column;margin-top:.5em;gap:.5em;z-index:1001}.toast{background:var(--faint-contrast);color:var(--text-high-contrast);transition:all .5s ease-in;position:relative;left:-.5em;overflow:hidden;display:flex;align-items:center;padding:.3em .6em;border-radius:.5em;box-shadow:0 0 .3em .3em #8883;box-sizing:border-box}.toast .toast-icon{margin-right:.3em;animation:zoomRotating 1.5s}.toast.toast-success{background-color:var(--success)}.toast.toast-warning{background-color:var(--warning)}.toast.toast-error{background-color:var(--error)}.toast.before{left:100%;transform:scale(.1);padding-top:0;padding-bottom:0}.toast.after{height:0!important;padding-top:0;padding-bottom:0;transition-duration:.2s;transform:scale(0)}@keyframes zoomRotating{0%{transform:scale(0)}to{transform:scale(1) rotate(360deg)}}code[class*=language-],pre[class*=language-]{color:#657b83;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{background:#073642}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{background:#073642}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background-color:#fdf6e3}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#93a1a1}.token.punctuation{color:#586e75}.token.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#268bd2}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.url,.token.inserted{color:#2aa198}.token.entity{color:#657b83;background:#eee8d5}.token.atrule,.token.attr-value,.token.keyword{color:#859900}.token.function,.token.class-name{color:#b58900}.token.regex,.token.important,.token.variable{color:#cb4b16}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}