hfs 3.1.4 → 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 (219) 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-CQ3_LTGh.js → index-legacy-CQovmh_0.js} +1 -1
  151. package/frontend/assets/{sha512-legacy-DLqdsV8R.js → sha512-legacy-CXU3efCO.js} +1 -1
  152. package/frontend/index.html +1 -1
  153. package/npm-shrinkwrap.json +170 -81
  154. package/package.json +9 -9
  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 +2 -1
  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/serveGuiAndSharedFiles.js +1 -0
  208. package/src/serveGuiFiles.js +1 -0
  209. package/src/update.js +9 -15
  210. package/src/urlList.js +32 -0
  211. package/src/util-files.js +15 -5
  212. package/src/util-http.js +2 -0
  213. package/src/vfs.js +1 -1
  214. package/src/walkDir.js +7 -1
  215. package/src/webdav.js +4 -1
  216. package/src/zip.js +2 -1
  217. package/admin/assets/index-B66w-a0v.css +0 -1
  218. package/admin/assets/index-Df6vYR7s.js +0 -822
  219. package/frontend/assets/index-legacy-D6nPw49_.js +0 -9
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "hfs",
3
- "version": "3.1.4",
3
+ "version": "3.2.0-alpha1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "hfs",
9
- "version": "3.1.4",
9
+ "version": "3.2.0-alpha1",
10
10
  "license": "GPL-3.0",
11
11
  "dependencies": {
12
12
  "@gregoranders/csv": "^0.0.13",
@@ -21,7 +21,6 @@
21
21
  "fs-x-attributes": "^1.0.2",
22
22
  "fswin": "^3.24.829",
23
23
  "iconv-lite": "^0.7.0",
24
- "immer": "^10.1.3",
25
24
  "ip2location-nodejs": "^9.7.0",
26
25
  "koa": "^3.1.2",
27
26
  "koa-compress": "^5.2.0",
@@ -35,10 +34,11 @@
35
34
  "open": "^8.4.0",
36
35
  "picomatch": "^4.0.3",
37
36
  "tssrp6a": "^3.0.0",
38
- "unzip-stream": "^0.3.4",
37
+ "unzipper": "^0.12.3",
39
38
  "valtio": "^1.13.2",
40
39
  "xxhashjs": "^0.2.2",
41
- "yaml": "^2.8.1"
40
+ "yaml": "^2.8.1",
41
+ "yazl": "^3.3.1"
42
42
  },
43
43
  "bin": {
44
44
  "hfs": "src/index.js"
@@ -391,18 +391,11 @@
391
391
  ],
392
392
  "license": "MIT"
393
393
  },
394
- "node_modules/binary": {
395
- "version": "0.3.0",
396
- "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
397
- "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==",
398
- "license": "MIT",
399
- "dependencies": {
400
- "buffers": "~0.1.1",
401
- "chainsaw": "~0.1.0"
402
- },
403
- "engines": {
404
- "node": "*"
405
- }
394
+ "node_modules/bluebird": {
395
+ "version": "3.7.2",
396
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
397
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
398
+ "license": "MIT"
406
399
  },
407
400
  "node_modules/braces": {
408
401
  "version": "3.0.3",
@@ -440,12 +433,13 @@
440
433
  "ieee754": "^1.1.13"
441
434
  }
442
435
  },
443
- "node_modules/buffers": {
444
- "version": "0.1.1",
445
- "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
446
- "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==",
436
+ "node_modules/buffer-crc32": {
437
+ "version": "1.0.0",
438
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz",
439
+ "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==",
440
+ "license": "MIT",
447
441
  "engines": {
448
- "node": ">=0.2.0"
442
+ "node": ">=8.0.0"
449
443
  }
450
444
  },
451
445
  "node_modules/busboy": {
@@ -481,18 +475,6 @@
481
475
  "node": ">= 0.4"
482
476
  }
483
477
  },
484
- "node_modules/chainsaw": {
485
- "version": "0.1.0",
486
- "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
487
- "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==",
488
- "license": "MIT/X11",
489
- "dependencies": {
490
- "traverse": ">=0.3.0 <0.4"
491
- },
492
- "engines": {
493
- "node": "*"
494
- }
495
- },
496
478
  "node_modules/chalk": {
497
479
  "version": "4.1.2",
498
480
  "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -595,6 +577,12 @@
595
577
  "node": ">= 0.8"
596
578
  }
597
579
  },
580
+ "node_modules/core-util-is": {
581
+ "version": "1.0.3",
582
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
583
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
584
+ "license": "MIT"
585
+ },
598
586
  "node_modules/crc": {
599
587
  "version": "3.8.0",
600
588
  "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz",
@@ -617,9 +605,9 @@
617
605
  }
618
606
  },
619
607
  "node_modules/csv-parser": {
620
- "version": "3.2.0",
621
- "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-3.2.0.tgz",
622
- "integrity": "sha512-fgKbp+AJbn1h2dcAHKIdKNSSjfp43BZZykXsCjzALjKy80VXQNHPFJ6T9Afwdzoj24aMkq8GwDS7KGcDPpejrA==",
608
+ "version": "3.2.1",
609
+ "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-3.2.1.tgz",
610
+ "integrity": "sha512-v8RPMSglouR9od735SnwSxLBbCJqEPSbgm1R5qfr8yIiMUCEFjox56kRZid0SvgHJEkxeIEu3+a9QS3YRh7CuA==",
623
611
  "license": "MIT",
624
612
  "bin": {
625
613
  "csv-parser": "bin/csv-parser"
@@ -723,6 +711,15 @@
723
711
  "node": ">= 0.4"
724
712
  }
725
713
  },
714
+ "node_modules/duplexer2": {
715
+ "version": "0.1.4",
716
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
717
+ "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
718
+ "license": "BSD-3-Clause",
719
+ "dependencies": {
720
+ "readable-stream": "^2.0.2"
721
+ }
722
+ },
726
723
  "node_modules/ee-first": {
727
724
  "version": "1.1.1",
728
725
  "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@@ -806,9 +803,9 @@
806
803
  }
807
804
  },
808
805
  "node_modules/fast-xml-builder": {
809
- "version": "1.1.8",
810
- "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.8.tgz",
811
- "integrity": "sha512-sDVBc2gg8pSKvcbE8rBmOyjSGQf0AdsbqvHeIOv3D/uYNoV4eCReQXyDF8Pdv8+m1FHazACypSz2hR7O2S1LLw==",
806
+ "version": "1.2.0",
807
+ "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.2.0.tgz",
808
+ "integrity": "sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==",
812
809
  "funding": [
813
810
  {
814
811
  "type": "github",
@@ -817,7 +814,8 @@
817
814
  ],
818
815
  "license": "MIT",
819
816
  "dependencies": {
820
- "path-expression-matcher": "^1.1.3"
817
+ "path-expression-matcher": "^1.5.0",
818
+ "xml-naming": "^0.1.0"
821
819
  }
822
820
  },
823
821
  "node_modules/fast-xml-parser": {
@@ -942,6 +940,20 @@
942
940
  "node": ">= 0.6"
943
941
  }
944
942
  },
943
+ "node_modules/fs-extra": {
944
+ "version": "11.3.5",
945
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.5.tgz",
946
+ "integrity": "sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==",
947
+ "license": "MIT",
948
+ "dependencies": {
949
+ "graceful-fs": "^4.2.0",
950
+ "jsonfile": "^6.0.1",
951
+ "universalify": "^2.0.0"
952
+ },
953
+ "engines": {
954
+ "node": ">=14.14"
955
+ }
956
+ },
945
957
  "node_modules/fs-x-attributes": {
946
958
  "version": "1.0.2",
947
959
  "resolved": "https://registry.npmjs.org/fs-x-attributes/-/fs-x-attributes-1.0.2.tgz",
@@ -1027,6 +1039,12 @@
1027
1039
  "url": "https://github.com/sponsors/ljharb"
1028
1040
  }
1029
1041
  },
1042
+ "node_modules/graceful-fs": {
1043
+ "version": "4.2.11",
1044
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
1045
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
1046
+ "license": "ISC"
1047
+ },
1030
1048
  "node_modules/has-flag": {
1031
1049
  "version": "4.0.0",
1032
1050
  "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -1178,16 +1196,6 @@
1178
1196
  ],
1179
1197
  "license": "BSD-3-Clause"
1180
1198
  },
1181
- "node_modules/immer": {
1182
- "version": "10.2.0",
1183
- "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz",
1184
- "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==",
1185
- "license": "MIT",
1186
- "funding": {
1187
- "type": "opencollective",
1188
- "url": "https://opencollective.com/immer"
1189
- }
1190
- },
1191
1199
  "node_modules/inherits": {
1192
1200
  "version": "2.0.4",
1193
1201
  "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
@@ -1266,6 +1274,12 @@
1266
1274
  "node": ">=8"
1267
1275
  }
1268
1276
  },
1277
+ "node_modules/isarray": {
1278
+ "version": "1.0.0",
1279
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1280
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
1281
+ "license": "MIT"
1282
+ },
1269
1283
  "node_modules/js-tokens": {
1270
1284
  "version": "4.0.0",
1271
1285
  "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -1273,6 +1287,18 @@
1273
1287
  "license": "MIT",
1274
1288
  "peer": true
1275
1289
  },
1290
+ "node_modules/jsonfile": {
1291
+ "version": "6.2.1",
1292
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz",
1293
+ "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==",
1294
+ "license": "MIT",
1295
+ "dependencies": {
1296
+ "universalify": "^2.0.0"
1297
+ },
1298
+ "optionalDependencies": {
1299
+ "graceful-fs": "^4.1.6"
1300
+ }
1301
+ },
1276
1302
  "node_modules/keygrip": {
1277
1303
  "version": "1.1.0",
1278
1304
  "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
@@ -1502,18 +1528,6 @@
1502
1528
  "url": "https://github.com/sponsors/ljharb"
1503
1529
  }
1504
1530
  },
1505
- "node_modules/mkdirp": {
1506
- "version": "0.5.6",
1507
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
1508
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
1509
- "license": "MIT",
1510
- "dependencies": {
1511
- "minimist": "^1.2.6"
1512
- },
1513
- "bin": {
1514
- "mkdirp": "bin/cmd.js"
1515
- }
1516
- },
1517
1531
  "node_modules/ms": {
1518
1532
  "version": "2.1.3",
1519
1533
  "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@@ -1538,6 +1552,12 @@
1538
1552
  "node": ">= 6.13.0"
1539
1553
  }
1540
1554
  },
1555
+ "node_modules/node-int64": {
1556
+ "version": "0.4.0",
1557
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
1558
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
1559
+ "license": "MIT"
1560
+ },
1541
1561
  "node_modules/on-finished": {
1542
1562
  "version": "2.4.1",
1543
1563
  "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
@@ -1603,6 +1623,12 @@
1603
1623
  "url": "https://github.com/sponsors/jonschlinkert"
1604
1624
  }
1605
1625
  },
1626
+ "node_modules/process-nextick-args": {
1627
+ "version": "2.0.1",
1628
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1629
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
1630
+ "license": "MIT"
1631
+ },
1606
1632
  "node_modules/proxy-compare": {
1607
1633
  "version": "2.6.0",
1608
1634
  "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.6.0.tgz",
@@ -1669,6 +1695,21 @@
1669
1695
  "node": ">=0.10.0"
1670
1696
  }
1671
1697
  },
1698
+ "node_modules/readable-stream": {
1699
+ "version": "2.3.8",
1700
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
1701
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
1702
+ "license": "MIT",
1703
+ "dependencies": {
1704
+ "core-util-is": "~1.0.0",
1705
+ "inherits": "~2.0.3",
1706
+ "isarray": "~1.0.0",
1707
+ "process-nextick-args": "~2.0.0",
1708
+ "safe-buffer": "~5.1.1",
1709
+ "string_decoder": "~1.1.1",
1710
+ "util-deprecate": "~1.0.1"
1711
+ }
1712
+ },
1672
1713
  "node_modules/reflect-metadata": {
1673
1714
  "version": "0.2.2",
1674
1715
  "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz",
@@ -1708,6 +1749,12 @@
1708
1749
  "queue-microtask": "^1.2.2"
1709
1750
  }
1710
1751
  },
1752
+ "node_modules/safe-buffer": {
1753
+ "version": "5.1.2",
1754
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1755
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1756
+ "license": "MIT"
1757
+ },
1711
1758
  "node_modules/safer-buffer": {
1712
1759
  "version": "2.1.2",
1713
1760
  "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
@@ -1737,10 +1784,19 @@
1737
1784
  "node": ">=10.0.0"
1738
1785
  }
1739
1786
  },
1787
+ "node_modules/string_decoder": {
1788
+ "version": "1.1.1",
1789
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1790
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1791
+ "license": "MIT",
1792
+ "dependencies": {
1793
+ "safe-buffer": "~5.1.0"
1794
+ }
1795
+ },
1740
1796
  "node_modules/strnum": {
1741
- "version": "2.2.3",
1742
- "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.2.3.tgz",
1743
- "integrity": "sha512-oKx6RUCuHfT3oyVjtnrmn19H1SiCqgJSg+54XqURKp5aCMbrXrhLjRN9TjuwMjiYstZ0MzDrHqkGZ5dFTKd+zg==",
1797
+ "version": "2.3.0",
1798
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.3.0.tgz",
1799
+ "integrity": "sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==",
1744
1800
  "funding": [
1745
1801
  {
1746
1802
  "type": "github",
@@ -1782,15 +1838,6 @@
1782
1838
  "node": ">=0.6"
1783
1839
  }
1784
1840
  },
1785
- "node_modules/traverse": {
1786
- "version": "0.3.9",
1787
- "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
1788
- "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==",
1789
- "license": "MIT/X11",
1790
- "engines": {
1791
- "node": "*"
1792
- }
1793
- },
1794
1841
  "node_modules/tslib": {
1795
1842
  "version": "2.8.1",
1796
1843
  "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
@@ -1844,14 +1891,26 @@
1844
1891
  "node": ">= 0.6"
1845
1892
  }
1846
1893
  },
1847
- "node_modules/unzip-stream": {
1848
- "version": "0.3.4",
1849
- "resolved": "https://registry.npmjs.org/unzip-stream/-/unzip-stream-0.3.4.tgz",
1850
- "integrity": "sha512-PyofABPVv+d7fL7GOpusx7eRT9YETY2X04PhwbSipdj6bMxVCFJrr+nm0Mxqbf9hUiTin/UsnuFWBXlDZFy0Cw==",
1894
+ "node_modules/universalify": {
1895
+ "version": "2.0.1",
1896
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
1897
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
1898
+ "license": "MIT",
1899
+ "engines": {
1900
+ "node": ">= 10.0.0"
1901
+ }
1902
+ },
1903
+ "node_modules/unzipper": {
1904
+ "version": "0.12.3",
1905
+ "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.12.3.tgz",
1906
+ "integrity": "sha512-PZ8hTS+AqcGxsaQntl3IRBw65QrBI6lxzqDEL7IAo/XCEqRTKGfOX56Vea5TH9SZczRVxuzk1re04z/YjuYCJA==",
1851
1907
  "license": "MIT",
1852
1908
  "dependencies": {
1853
- "binary": "^0.3.0",
1854
- "mkdirp": "^0.5.1"
1909
+ "bluebird": "~3.7.2",
1910
+ "duplexer2": "~0.1.4",
1911
+ "fs-extra": "^11.2.0",
1912
+ "graceful-fs": "^4.2.2",
1913
+ "node-int64": "^0.4.0"
1855
1914
  }
1856
1915
  },
1857
1916
  "node_modules/use-sync-external-store": {
@@ -1863,6 +1922,12 @@
1863
1922
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
1864
1923
  }
1865
1924
  },
1925
+ "node_modules/util-deprecate": {
1926
+ "version": "1.0.2",
1927
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1928
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
1929
+ "license": "MIT"
1930
+ },
1866
1931
  "node_modules/valtio": {
1867
1932
  "version": "1.13.2",
1868
1933
  "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.13.2.tgz",
@@ -1898,6 +1963,21 @@
1898
1963
  "node": ">= 0.8"
1899
1964
  }
1900
1965
  },
1966
+ "node_modules/xml-naming": {
1967
+ "version": "0.1.0",
1968
+ "resolved": "https://registry.npmjs.org/xml-naming/-/xml-naming-0.1.0.tgz",
1969
+ "integrity": "sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==",
1970
+ "funding": [
1971
+ {
1972
+ "type": "github",
1973
+ "url": "https://github.com/sponsors/NaturalIntelligence"
1974
+ }
1975
+ ],
1976
+ "license": "MIT",
1977
+ "engines": {
1978
+ "node": ">=16.0.0"
1979
+ }
1980
+ },
1901
1981
  "node_modules/xxhashjs": {
1902
1982
  "version": "0.2.2",
1903
1983
  "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz",
@@ -1922,6 +2002,15 @@
1922
2002
  "url": "https://github.com/sponsors/eemeli"
1923
2003
  }
1924
2004
  },
2005
+ "node_modules/yazl": {
2006
+ "version": "3.3.1",
2007
+ "resolved": "https://registry.npmjs.org/yazl/-/yazl-3.3.1.tgz",
2008
+ "integrity": "sha512-BbETDVWG+VcMUle37k5Fqp//7SDOK2/1+T7X8TD96M3D9G8jK5VLUdQVdVjGi8im7FGkazX7kk5hkU8X4L5Bng==",
2009
+ "license": "MIT",
2010
+ "dependencies": {
2011
+ "buffer-crc32": "^1.0.0"
2012
+ }
2013
+ },
1925
2014
  "node_modules/zod": {
1926
2015
  "version": "3.25.76",
1927
2016
  "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hfs",
3
- "version": "3.1.4",
3
+ "version": "3.2.0-alpha1.1",
4
4
  "description": "HTTP File Server",
5
5
  "keywords": [
6
6
  "file server",
@@ -19,10 +19,10 @@
19
19
  "build-server": "rm -rf dist/src dist/plugins && npm i && tsc && touch package.json && cp -v -r package.json central.json README* LICENSE* hfs.ico plugins dist && find dist -name .DS_Store -o -name storage -exec rm -rf {} + && node scripts/afterbuild.js",
20
20
  "build-frontend": "npm run build --workspace=frontend",
21
21
  "build-admin": "npm run build --workspace=admin",
22
- "server-for-test": "node dist/src --cwd tests/work --config tests --debug",
22
+ "server-for-test": "mkdir -p tests/work && cp tests/config.yaml tests/work/config.yaml && node dist/src --cwd tests/work --config tests/work/config.yaml --debug",
23
23
  "server-for-test-dev": "cross-env DEV=1 FRONTEND_PROXY=3005 ADMIN_PROXY=3006 nodemon --ignore tests/ --watch src -e ts,tsx --exec tsx src -- --cwd tests/work --config tests",
24
- "test": "node --import tsx --test tests/test.ts",
25
- "test-with-server": "sh -c 'npm run port-is-free && tsc && rm -rf tests/work tests/tmp && (node dist/src --cwd tests/work --config tests & echo $! > .server_pid) && sleep 2 && node --import tsx --test \"$@\" tests/test.ts; _exit=$?; if [ -f ./.server_pid ]; then SERVER_PID=$(cat ./.server_pid); kill \"$SERVER_PID\" 2>/dev/null || true; rm -f ./.server_pid; fi; exit $_exit' --",
24
+ "test": "sh -c 'npm run port-is-free >/dev/null && { echo \"no server\"; exit 1; }; node --import tsx --test \"$@\" tests/test.ts' --",
25
+ "test-with-server": "sh -c 'npm run port-is-free && tsc && rm -rf tests/work tests/tmp && mkdir -p tests/work && cp tests/config.yaml tests/work/config.yaml && (node dist/src --cwd tests/work --config tests/work/config.yaml & echo $! > .server_pid) && sleep 2 && node --import tsx --test \"$@\" tests/test.ts; _exit=$?; if [ -f ./.server_pid ]; then SERVER_PID=$(cat ./.server_pid); kill \"$SERVER_PID\" 2>/dev/null || true; rm -f ./.server_pid; fi; exit $_exit' --",
26
26
  "port-is-free": "node -e \"const port=process.argv[1]||8081;process.exit(await fetch('http://localhost:'+port).then(() => console.log('BUSY')||1, () => 0))\" --",
27
27
  "test-ui": "npm run port-is-free -- 8081 && rm -rf tests/work tests/work2 && npx playwright test frontend && npx playwright test serial && npx playwright test admin-vfs",
28
28
  "test-with-ui": "sh -c 'npm run port-is-free -- 3005 && npm run start-frontend & npm run port-is-free -- 3006 && npm run start-admin & cross-env TEST_WITH_UI=1 npx playwright test --ui \"$@\"' --",
@@ -30,7 +30,7 @@
30
30
  "dist": "STASHED=; if ! git diff-index --quiet HEAD --; then git stash push -m 'dist' && STASHED=1; fi; CI=1 FORCE_COLOR=1 npm run dist-uncommitted || (EXIT_CODE=$?; [ -n \"$STASHED\" ] && git stash pop; exit $EXIT_CODE); [ -n \"$STASHED\" ] && git stash pop",
31
31
  "dist-uncommitted": "npm audit --omit=dev --audit-level=moderate && rm -rf dist && npm run build-server && npm run test-with-server && (npm run build-frontend & npm run build-admin) && npm run test-ui && npm run dist-bin",
32
32
  "dist-bin": "npm run dist-modules && npm run dist-bin-win && npm run dist-bin-linux && npm run dist-bin-linux-arm && npm run dist-bin-mac && npm run dist-bin-mac-arm",
33
- "dist-modules": "cp package.json central.json README.md dist && cd dist && npm pkg delete devDependencies workspaces && rm -rf node_modules && npm install --omit=dev && npm shrinkwrap && cd .. && node scripts/prune_modules.js",
33
+ "dist-modules": "cp package.json central.json README.md dist && cd dist && npm pkg delete devDependencies workspaces scripts.postinstall && rm -rf node_modules && npm install --omit=dev && npm shrinkwrap && cd .. && node scripts/prune_modules.js",
34
34
  "dist-bin-win": "cd dist && pkg . --public -C gzip -t node20-win-x64 && npx resedit-cli --in hfs.exe --icon 1,../hfs.ico --out hfs.exe && zip hfs-windows-x64-$(jq -r .version ../package.json).zip hfs.exe -r plugins && cd ..",
35
35
  "dist-bin-mac-arm": "cd dist && pkg . --public -C gzip -t node20-macos-arm64 && zip hfs-mac-arm64-$(jq -r .version ../package.json).zip hfs -r plugins && cd ..",
36
36
  "dist-bin-mac": "cd dist && pkg . --public -C gzip -t node20-macos-x64 && zip hfs-mac-x64-$(jq -r .version ../package.json).zip hfs -r plugins && cd ..",
@@ -70,7 +70,7 @@
70
70
  "**/node_modules/axios/dist/node/*",
71
71
  "**/node_modules/buffers/**",
72
72
  "**/node_modules/binary/**",
73
- "**/node_modules/unzip-stream/**"
73
+ "**/node_modules/unzipper/**"
74
74
  ],
75
75
  "targets": [
76
76
  "node20-win-x64",
@@ -93,7 +93,6 @@
93
93
  "fs-x-attributes": "^1.0.2",
94
94
  "fswin": "^3.24.829",
95
95
  "iconv-lite": "^0.7.0",
96
- "immer": "^10.1.3",
97
96
  "ip2location-nodejs": "^9.7.0",
98
97
  "koa": "^3.1.2",
99
98
  "koa-compress": "^5.2.0",
@@ -107,9 +106,10 @@
107
106
  "open": "^8.4.0",
108
107
  "picomatch": "^4.0.3",
109
108
  "tssrp6a": "^3.0.0",
110
- "unzip-stream": "^0.3.4",
109
+ "unzipper": "^0.12.3",
111
110
  "valtio": "^1.13.2",
112
111
  "xxhashjs": "^0.2.2",
113
- "yaml": "^2.8.1"
112
+ "yaml": "^2.8.1",
113
+ "yazl": "^3.3.1"
114
114
  }
115
115
  }