7zip-native 0.0.7 → 0.0.10

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 (317) hide show
  1. package/README.md +96 -24
  2. package/bench/compare.mts +25 -11
  3. package/bench/folder-concurrency.mts +56 -14
  4. package/bench/multiprocess-extract.cjs +334 -0
  5. package/dist/index.cjs +194 -102
  6. package/dist/index.d.cts +10 -9
  7. package/dist/index.d.mts +10 -9
  8. package/dist/index.d.ts +10 -9
  9. package/dist/index.mjs +196 -104
  10. package/native/addon.cpp +1399 -71
  11. package/package.json +5 -3
  12. package/patches/deflate-input-buffer-size.patch +47 -0
  13. package/prebuilds/darwin-arm64/7zip_native.node +0 -0
  14. package/prebuilds/darwin-arm64/lib7z.dylib +0 -0
  15. package/prebuilds/darwin-x64/7zip_native.node +0 -0
  16. package/prebuilds/darwin-x64/lib7z.dylib +0 -0
  17. package/prebuilds/linux-arm/7z.so +0 -0
  18. package/prebuilds/linux-arm/7zip_native.node +0 -0
  19. package/prebuilds/linux-arm64/7z.so +0 -0
  20. package/prebuilds/linux-arm64/7zip_native.node +0 -0
  21. package/prebuilds/linux-ia32/7z.so +0 -0
  22. package/prebuilds/linux-ia32/7zip_native.node +0 -0
  23. package/prebuilds/linux-x64/7z.so +0 -0
  24. package/prebuilds/linux-x64/7zip_native.node +0 -0
  25. package/prebuilds/win32-arm64/7z.dll +0 -0
  26. package/prebuilds/win32-arm64/7zip_native.node +0 -0
  27. package/prebuilds/win32-x64/7z.dll +0 -0
  28. package/prebuilds/win32-x64/7zip_native.node +0 -0
  29. package/scripts/build-native.mjs +22 -1
  30. package/vendor/7zip/CPP/7zip/Archive/Archive2.def +1 -0
  31. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7z.so +0 -0
  32. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zAes.o +0 -0
  33. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zAesRegister.o +0 -0
  34. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zBuf2.o +0 -0
  35. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zCompressionMode.o +0 -0
  36. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zCrc.o +0 -0
  37. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zCrcOpt.o +0 -0
  38. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zDecode.o +0 -0
  39. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zEncode.o +0 -0
  40. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zExtract.o +0 -0
  41. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zFolderInStream.o +0 -0
  42. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zHandler.o +0 -0
  43. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zHandlerOut.o +0 -0
  44. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zHeader.o +0 -0
  45. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zIn.o +0 -0
  46. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zOut.o +0 -0
  47. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zProperties.o +0 -0
  48. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zRegister.o +0 -0
  49. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zSpecStream.o +0 -0
  50. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zStream.o +0 -0
  51. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/7zUpdate.o +0 -0
  52. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Aes.o +0 -0
  53. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/AesOpt.o +0 -0
  54. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Alloc.o +0 -0
  55. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ApfsHandler.o +0 -0
  56. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ApmHandler.o +0 -0
  57. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ArHandler.o +0 -0
  58. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ArchiveExports.o +0 -0
  59. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ArjHandler.o +0 -0
  60. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/BZip2Crc.o +0 -0
  61. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/BZip2Decoder.o +0 -0
  62. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/BZip2Encoder.o +0 -0
  63. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/BZip2Register.o +0 -0
  64. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Base64Handler.o +0 -0
  65. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Bcj2.o +0 -0
  66. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Bcj2Coder.o +0 -0
  67. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Bcj2Enc.o +0 -0
  68. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Bcj2Register.o +0 -0
  69. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/BcjCoder.o +0 -0
  70. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/BcjRegister.o +0 -0
  71. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/BitlDecoder.o +0 -0
  72. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Blake2s.o +0 -0
  73. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Bra.o +0 -0
  74. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Bra86.o +0 -0
  75. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/BraIA64.o +0 -0
  76. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/BranchMisc.o +0 -0
  77. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/BranchRegister.o +0 -0
  78. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/BwtSort.o +0 -0
  79. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ByteSwap.o +0 -0
  80. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Bz2Handler.o +0 -0
  81. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CRC.o +0 -0
  82. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CWrappers.o +0 -0
  83. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CabBlockInStream.o +0 -0
  84. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CabHandler.o +0 -0
  85. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CabHeader.o +0 -0
  86. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CabIn.o +0 -0
  87. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CabRegister.o +0 -0
  88. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ChmHandler.o +0 -0
  89. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ChmIn.o +0 -0
  90. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CodecExports.o +0 -0
  91. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CoderMixer2.o +0 -0
  92. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ComHandler.o +0 -0
  93. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CopyCoder.o +0 -0
  94. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CopyRegister.o +0 -0
  95. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CpioHandler.o +0 -0
  96. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CpuArch.o +0 -0
  97. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CramfsHandler.o +0 -0
  98. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CrcReg.o +0 -0
  99. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/CreateCoder.o +0 -0
  100. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Deflate64Register.o +0 -0
  101. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/DeflateDecoder.o +0 -0
  102. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/DeflateEncoder.o +0 -0
  103. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/DeflateProps.o +0 -0
  104. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/DeflateRegister.o +0 -0
  105. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Delta.o +0 -0
  106. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/DeltaFilter.o +0 -0
  107. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/DllExports2.o +0 -0
  108. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/DmgHandler.o +0 -0
  109. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/DummyOutStream.o +0 -0
  110. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/DynLimBuf.o +0 -0
  111. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ElfHandler.o +0 -0
  112. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ExtHandler.o +0 -0
  113. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/FatHandler.o +0 -0
  114. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/FileDir.o +0 -0
  115. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/FileFind.o +0 -0
  116. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/FileIO.o +0 -0
  117. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/FileName.o +0 -0
  118. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/FilterCoder.o +0 -0
  119. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/FindSignature.o +0 -0
  120. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/FlvHandler.o +0 -0
  121. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/GptHandler.o +0 -0
  122. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/GzHandler.o +0 -0
  123. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/HandlerCont.o +0 -0
  124. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/HandlerOut.o +0 -0
  125. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/HfsHandler.o +0 -0
  126. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/HmacSha1.o +0 -0
  127. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/HmacSha256.o +0 -0
  128. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/HuffEnc.o +0 -0
  129. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/IhexHandler.o +0 -0
  130. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ImplodeDecoder.o +0 -0
  131. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/InBuffer.o +0 -0
  132. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/InOutTempBuffer.o +0 -0
  133. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/InStreamWithCRC.o +0 -0
  134. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/IntToString.o +0 -0
  135. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/IsoHandler.o +0 -0
  136. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/IsoHeader.o +0 -0
  137. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/IsoIn.o +0 -0
  138. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/IsoRegister.o +0 -0
  139. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ItemNameUtils.o +0 -0
  140. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LimitedStreams.o +0 -0
  141. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LockedStream.o +0 -0
  142. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LpHandler.o +0 -0
  143. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzFind.o +0 -0
  144. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzFindMt.o +0 -0
  145. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzFindOpt.o +0 -0
  146. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzFindPrepare.o +0 -0
  147. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzOutWindow.o +0 -0
  148. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzfseDecoder.o +0 -0
  149. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzhDecoder.o +0 -0
  150. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzhHandler.o +0 -0
  151. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Lzma2Dec.o +0 -0
  152. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Lzma2DecMt.o +0 -0
  153. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Lzma2Decoder.o +0 -0
  154. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Lzma2Enc.o +0 -0
  155. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Lzma2Encoder.o +0 -0
  156. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Lzma2Register.o +0 -0
  157. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzmaDec.o +0 -0
  158. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzmaDecoder.o +0 -0
  159. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzmaEnc.o +0 -0
  160. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzmaEncoder.o +0 -0
  161. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzmaHandler.o +0 -0
  162. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzmaRegister.o +0 -0
  163. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzmsDecoder.o +0 -0
  164. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/LzxDecoder.o +0 -0
  165. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MachoHandler.o +0 -0
  166. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MbrHandler.o +0 -0
  167. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Md5.o +0 -0
  168. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Md5Reg.o +0 -0
  169. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MemBlocks.o +0 -0
  170. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MethodId.o +0 -0
  171. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MethodProps.o +0 -0
  172. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MslzHandler.o +0 -0
  173. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MtCoder.o +0 -0
  174. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MtDec.o +0 -0
  175. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MubHandler.o +0 -0
  176. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MultiStream.o +0 -0
  177. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MyAes.o +0 -0
  178. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MyAesReg.o +0 -0
  179. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MyMap.o +0 -0
  180. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MyString.o +0 -0
  181. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MyVector.o +0 -0
  182. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MyWindows.o +0 -0
  183. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/MyXml.o +0 -0
  184. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/NewHandler.o +0 -0
  185. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/NsisDecode.o +0 -0
  186. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/NsisHandler.o +0 -0
  187. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/NsisIn.o +0 -0
  188. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/NsisRegister.o +0 -0
  189. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/NtfsHandler.o +0 -0
  190. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/OffsetStream.o +0 -0
  191. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/OutBuffer.o +0 -0
  192. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/OutMemStream.o +0 -0
  193. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/OutStreamWithCRC.o +0 -0
  194. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/OutStreamWithSha1.o +0 -0
  195. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ParseProperties.o +0 -0
  196. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Pbkdf2HmacSha1.o +0 -0
  197. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/PeHandler.o +0 -0
  198. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Ppmd7.o +0 -0
  199. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Ppmd7Dec.o +0 -0
  200. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Ppmd7Enc.o +0 -0
  201. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Ppmd7aDec.o +0 -0
  202. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Ppmd8.o +0 -0
  203. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Ppmd8Dec.o +0 -0
  204. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Ppmd8Enc.o +0 -0
  205. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/PpmdDecoder.o +0 -0
  206. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/PpmdEncoder.o +0 -0
  207. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/PpmdHandler.o +0 -0
  208. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/PpmdRegister.o +0 -0
  209. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/PpmdZip.o +0 -0
  210. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ProgressMt.o +0 -0
  211. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ProgressUtils.o +0 -0
  212. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/PropId.o +0 -0
  213. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/PropVariant.o +0 -0
  214. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/PropVariantConv.o +0 -0
  215. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/PropVariantUtils.o +0 -0
  216. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/QcowHandler.o +0 -0
  217. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/QuantumDecoder.o +0 -0
  218. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/RandGen.o +0 -0
  219. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Rar1Decoder.o +0 -0
  220. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Rar20Crypto.o +0 -0
  221. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Rar2Decoder.o +0 -0
  222. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Rar3Decoder.o +0 -0
  223. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Rar3Vm.o +0 -0
  224. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Rar5Aes.o +0 -0
  225. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Rar5Decoder.o +0 -0
  226. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Rar5Handler.o +0 -0
  227. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/RarAes.o +0 -0
  228. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/RarCodecsRegister.o +0 -0
  229. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/RarHandler.o +0 -0
  230. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/RpmHandler.o +0 -0
  231. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Sha1.o +0 -0
  232. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Sha1Opt.o +0 -0
  233. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Sha1Prepare.o +0 -0
  234. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Sha1Reg.o +0 -0
  235. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Sha256.o +0 -0
  236. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Sha256Opt.o +0 -0
  237. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Sha256Prepare.o +0 -0
  238. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Sha256Reg.o +0 -0
  239. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Sha3.o +0 -0
  240. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Sha3Reg.o +0 -0
  241. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Sha512.o +0 -0
  242. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Sha512Opt.o +0 -0
  243. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Sha512Prepare.o +0 -0
  244. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Sha512Reg.o +0 -0
  245. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ShrinkDecoder.o +0 -0
  246. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Sort.o +0 -0
  247. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/SparseHandler.o +0 -0
  248. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/SplitHandler.o +0 -0
  249. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/SquashfsHandler.o +0 -0
  250. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/StreamBinder.o +0 -0
  251. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/StreamObjects.o +0 -0
  252. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/StreamUtils.o +0 -0
  253. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/StringConvert.o +0 -0
  254. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/StringToInt.o +0 -0
  255. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/SwapBytes.o +0 -0
  256. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/SwfHandler.o +0 -0
  257. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Synchronization.o +0 -0
  258. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/System.o +0 -0
  259. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/TarHandler.o +0 -0
  260. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/TarHandlerOut.o +0 -0
  261. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/TarHeader.o +0 -0
  262. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/TarIn.o +0 -0
  263. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/TarOut.o +0 -0
  264. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/TarRegister.o +0 -0
  265. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/TarUpdate.o +0 -0
  266. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Threads.o +0 -0
  267. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/TimeUtils.o +0 -0
  268. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/UTFConvert.o +0 -0
  269. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/UdfHandler.o +0 -0
  270. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/UdfIn.o +0 -0
  271. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/UefiHandler.o +0 -0
  272. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/UniqBlocks.o +0 -0
  273. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/VdiHandler.o +0 -0
  274. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/VhdHandler.o +0 -0
  275. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/VhdxHandler.o +0 -0
  276. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/VirtThread.o +0 -0
  277. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/VmdkHandler.o +0 -0
  278. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Wildcard.o +0 -0
  279. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/WimHandler.o +0 -0
  280. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/WimHandlerOut.o +0 -0
  281. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/WimIn.o +0 -0
  282. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/WimRegister.o +0 -0
  283. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/WzAes.o +0 -0
  284. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/XarHandler.o +0 -0
  285. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/XpressDecoder.o +0 -0
  286. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Xxh64.o +0 -0
  287. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Xxh64Reg.o +0 -0
  288. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/Xz.o +0 -0
  289. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/XzCrc64.o +0 -0
  290. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/XzCrc64Init.o +0 -0
  291. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/XzCrc64Opt.o +0 -0
  292. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/XzCrc64Reg.o +0 -0
  293. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/XzDec.o +0 -0
  294. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/XzDecoder.o +0 -0
  295. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/XzEnc.o +0 -0
  296. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/XzEncoder.o +0 -0
  297. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/XzHandler.o +0 -0
  298. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/XzIn.o +0 -0
  299. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZDecoder.o +0 -0
  300. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZHandler.o +0 -0
  301. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZipAddCommon.o +0 -0
  302. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZipCrypto.o +0 -0
  303. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZipHandler.o +0 -0
  304. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZipHandlerOut.o +0 -0
  305. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZipIn.o +0 -0
  306. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZipItem.o +0 -0
  307. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZipOut.o +0 -0
  308. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZipRegister.o +0 -0
  309. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZipStrong.o +0 -0
  310. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZipUpdate.o +0 -0
  311. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZlibDecoder.o +0 -0
  312. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZlibEncoder.o +0 -0
  313. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZstdDec.o +0 -0
  314. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZstdDecoder.o +0 -0
  315. package/vendor/7zip/CPP/7zip/Bundles/Format7zF/_o/ZstdHandler.o +0 -0
  316. package/vendor/7zip/CPP/7zip/Compress/DeflateDecoder.cpp +15 -1
  317. package/scripts/clean-upstream-build.mjs +0 -9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "7zip-native",
3
- "version": "0.0.7",
3
+ "version": "0.0.10",
4
4
  "description": "Native 7zip bindings for Node.js",
5
5
  "main": "./dist/index.cjs",
6
6
  "type": "module",
@@ -30,6 +30,7 @@
30
30
  "dist/",
31
31
  "prebuilds/",
32
32
  "native/",
33
+ "patches/",
33
34
  "scripts/",
34
35
  "vendor/7zip/",
35
36
  "binding.gyp",
@@ -50,7 +51,7 @@
50
51
  },
51
52
  "scripts": {
52
53
  "install": "node scripts/verify-prebuild.mjs",
53
- "prepare": "npm run build && node scripts/clean-upstream-build.mjs",
54
+ "prepare": "npm run build",
54
55
  "build": "npm run build:native && npm run eslint && npx rollup -c && npm run typecheck",
55
56
  "build:native": "node scripts/build-native.mjs",
56
57
  "eslint": "eslint ./src --ext .ts,.mts,.js,.mjs",
@@ -59,7 +60,8 @@
59
60
  "benchmark": "node --experimental-strip-types bench/benchmark.mts",
60
61
  "benchmark:concurrency": "node --experimental-strip-types bench/concurrency.mts",
61
62
  "benchmark:folder-concurrency": "node --experimental-strip-types bench/folder-concurrency.mts",
62
- "benchmark:compare": "node --experimental-strip-types bench/compare.mts"
63
+ "benchmark:compare": "node --experimental-strip-types bench/compare.mts",
64
+ "benchmark:multiprocess": "node bench/multiprocess-extract.cjs"
63
65
  },
64
66
  "keywords": [
65
67
  "7zip",
@@ -0,0 +1,47 @@
1
+ diff --git a/CPP/7zip/Archive/Archive2.def b/CPP/7zip/Archive/Archive2.def
2
+ index 5abe81d..b96cb34 100644
3
+ --- a/CPP/7zip/Archive/Archive2.def
4
+ +++ b/CPP/7zip/Archive/Archive2.def
5
+ @@ -3,6 +3,7 @@ EXPORTS
6
+ GetHandlerProperty PRIVATE
7
+ GetNumberOfFormats PRIVATE
8
+ GetHandlerProperty2 PRIVATE
9
+ GetIsArc PRIVATE
10
+ + SetDeflateInputBufferSize PRIVATE
11
+
12
+ GetNumberOfMethods PRIVATE
13
+ GetMethodProperty PRIVATE
14
+ diff --git a/CPP/7zip/Compress/DeflateDecoder.cpp b/CPP/7zip/Compress/DeflateDecoder.cpp
15
+ index 7993176..5f3d9d4 100644
16
+ --- a/CPP/7zip/Compress/DeflateDecoder.cpp
17
+ +++ b/CPP/7zip/Compress/DeflateDecoder.cpp
18
+ @@ -3,6 +3,20 @@
19
+
20
+ #include "DeflateDecoder.h"
21
+
22
+ +namespace {
23
+ +
24
+ +thread_local UInt32 g_deflateInputBufferSize = 1 << 15;
25
+ +
26
+ +}
27
+ +
28
+ +STDAPI SetDeflateInputBufferSize(UInt32 bufferSize)
29
+ +{
30
+ + if (bufferSize < (1 << 12) || bufferSize > (1 << 21))
31
+ + return E_INVALIDARG;
32
+ + g_deflateInputBufferSize = bufferSize;
33
+ + return S_OK;
34
+ +}
35
+ +
36
+ namespace NCompress {
37
+ namespace NDeflate {
38
+ namespace NDecoder {
39
+ @@ -153,7 +167,7 @@ HRESULT CCoder::InitInStream(bool needInit)
40
+ // for HDD-Windows:
41
+ // (1 << 15) - best for reading only prefetch
42
+ // (1 << 22) - best for real reading / writing
43
+ - if (!m_InBitStream.Create(1 << 20))
44
+ + if (!m_InBitStream.Create(g_deflateInputBufferSize))
45
+ return E_OUTOFMEMORY;
46
+ m_InBitStream.Init();
47
+ _needInitInStream = false;
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,11 +1,12 @@
1
1
  import {spawn} from 'node:child_process';
2
- import { copyFile, mkdir, rm } from 'node:fs/promises';
2
+ import { copyFile, mkdir, readFile, rm } from 'node:fs/promises';
3
3
  import {createRequire} from 'node:module';
4
4
  import {availableParallelism} from 'node:os';
5
5
  import { join, resolve } from 'node:path';
6
6
  import {fileURLToPath} from 'node:url';
7
7
 
8
8
  const root = resolve(fileURLToPath(new URL('..', import.meta.url)));
9
+ const upstreamDirectory = join(root, 'vendor', '7zip');
9
10
  const bundleDirectory = join(root, 'vendor', '7zip', 'CPP', '7zip', 'Bundles', 'Format7zF');
10
11
  const releaseDirectory = join(root, 'build', 'Release');
11
12
  const targetArch = process.env.BUILD_ARCH || process.arch;
@@ -14,6 +15,9 @@ const engineName = process.platform === 'win32'
14
15
  ? '7z.dll'
15
16
  : process.platform === 'darwin' ? 'lib7z.dylib' : '7z.so';
16
17
  const require = createRequire(import.meta.url);
18
+ const patchPath = join(root, 'patches', 'deflate-input-buffer-size.patch');
19
+ const deflateSourcePath = join(upstreamDirectory, 'CPP', '7zip', 'Compress', 'DeflateDecoder.cpp');
20
+ const archiveExportsPath = join(upstreamDirectory, 'CPP', '7zip', 'Archive', 'Archive2.def');
17
21
 
18
22
  function run(command, args, cwd, env = process.env)
19
23
  {
@@ -33,6 +37,21 @@ function run(command, args, cwd, env = process.env)
33
37
  });
34
38
  }
35
39
 
40
+ const deflateSource = await readFile(deflateSourcePath, 'utf8');
41
+ const archiveExports = await readFile(archiveExportsPath, 'utf8');
42
+ if(deflateSource.includes('SetDeflateInputBufferSize'))
43
+ {
44
+ if(!archiveExports.includes('SetDeflateInputBufferSize'))
45
+ {
46
+ throw new Error('The Deflate buffer patch is only partially applied; restore vendor/7zip and rebuild');
47
+ }
48
+ }
49
+ else
50
+ {
51
+ await run('git', ['-C', upstreamDirectory, 'apply', '--check', patchPath], root);
52
+ await run('git', ['-C', upstreamDirectory, 'apply', patchPath], root);
53
+ }
54
+
36
55
  if(process.platform === 'win32')
37
56
  {
38
57
  const upstreamArch = targetArch === 'ia32' ? 'x86' : targetArch;
@@ -46,6 +65,8 @@ else
46
65
  '-f',
47
66
  'makefile.gcc',
48
67
  `-j${process.env.BUILD_JOBS ?? Math.min(availableParallelism(), 2)}`,
68
+ // Avoid 2 MiB aligned allocations that Electron's allocator traps on.
69
+ 'CFLAGS_BASE2=-DZ7_NO_MADVISE',
49
70
  ];
50
71
  const buildEnv = {...process.env};
51
72
  if(targetArch === 'ia32')
@@ -5,6 +5,7 @@ EXPORTS
5
5
  GetNumberOfFormats PRIVATE
6
6
  GetHandlerProperty2 PRIVATE
7
7
  GetIsArc PRIVATE
8
+ SetDeflateInputBufferSize PRIVATE
8
9
 
9
10
  GetNumberOfMethods PRIVATE
10
11
  GetMethodProperty PRIVATE