neozipkit 0.1.1 → 0.3.0

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 (330) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +371 -200
  3. package/contracts/ABI.txt +889 -0
  4. package/contracts/Bytecode.txt +1 -0
  5. package/contracts/COMPILATION_NOTES.md +59 -0
  6. package/contracts/QUICK_DEPLOY.md +286 -0
  7. package/contracts/README.md +256 -0
  8. package/contracts/VERIFICATION.md +308 -0
  9. package/contracts/deploy-interactive.js +448 -0
  10. package/contracts/deployment-arbitrum-sepolia.json +12 -0
  11. package/contracts/deployment-arbitrum.json +12 -0
  12. package/contracts/deployment-eth-sepolia.json +12 -0
  13. package/contracts/hardhat.config.js +114 -0
  14. package/contracts/package.json +20 -0
  15. package/contracts/scripts/compile-and-extract.js +119 -0
  16. package/contracts/scripts/verify-contract.js +223 -0
  17. package/contracts/src/{NZIP-NFT-Private.sol → NZIP-NFT-v2.0.sol} +66 -151
  18. package/contracts/src/NZIP-NFT.sol +9 -15
  19. package/dist/{browser → blockchain/browser}/TokenVerifierBrowser.d.ts +11 -20
  20. package/dist/blockchain/browser/TokenVerifierBrowser.d.ts.map +1 -0
  21. package/dist/{browser → blockchain/browser}/TokenVerifierBrowser.js +106 -92
  22. package/dist/blockchain/browser/TokenVerifierBrowser.js.map +1 -0
  23. package/dist/blockchain/browser/WalletManagerBrowser.d.ts +98 -0
  24. package/dist/blockchain/browser/WalletManagerBrowser.d.ts.map +1 -0
  25. package/dist/blockchain/browser/WalletManagerBrowser.js +434 -0
  26. package/dist/blockchain/browser/WalletManagerBrowser.js.map +1 -0
  27. package/dist/blockchain/browser/ZipkitMinterBrowser.d.ts +58 -0
  28. package/dist/blockchain/browser/ZipkitMinterBrowser.d.ts.map +1 -0
  29. package/dist/blockchain/browser/ZipkitMinterBrowser.js +317 -0
  30. package/dist/blockchain/browser/ZipkitMinterBrowser.js.map +1 -0
  31. package/dist/blockchain/browser/index.d.ts +11 -0
  32. package/dist/blockchain/browser/index.d.ts.map +1 -0
  33. package/dist/blockchain/browser/index.js +16 -0
  34. package/dist/blockchain/browser/index.js.map +1 -0
  35. package/dist/{server/blockchain/WalletAnalyzer.d.ts → blockchain/core/WalletManager.d.ts} +69 -26
  36. package/dist/blockchain/core/WalletManager.d.ts.map +1 -0
  37. package/dist/{server/blockchain/WalletAnalyzer.js → blockchain/core/WalletManager.js} +172 -160
  38. package/dist/blockchain/core/WalletManager.js.map +1 -0
  39. package/dist/blockchain/core/ZipkitMinter.d.ts +141 -0
  40. package/dist/blockchain/core/ZipkitMinter.d.ts.map +1 -0
  41. package/dist/blockchain/core/ZipkitMinter.js +548 -0
  42. package/dist/blockchain/core/ZipkitMinter.js.map +1 -0
  43. package/dist/blockchain/core/ZipkitOTS.d.ts +126 -0
  44. package/dist/blockchain/core/ZipkitOTS.d.ts.map +1 -0
  45. package/dist/blockchain/core/ZipkitOTS.js +506 -0
  46. package/dist/blockchain/core/ZipkitOTS.js.map +1 -0
  47. package/dist/blockchain/core/ZipkitVerifier.d.ts +177 -0
  48. package/dist/blockchain/core/ZipkitVerifier.d.ts.map +1 -0
  49. package/dist/blockchain/core/ZipkitVerifier.js +632 -0
  50. package/dist/blockchain/core/ZipkitVerifier.js.map +1 -0
  51. package/dist/blockchain/core/contracts.d.ts +83 -0
  52. package/dist/blockchain/core/contracts.d.ts.map +1 -0
  53. package/dist/blockchain/core/contracts.js +341 -0
  54. package/dist/blockchain/core/contracts.js.map +1 -0
  55. package/dist/blockchain/core/index.d.ts +12 -0
  56. package/dist/blockchain/core/index.d.ts.map +1 -0
  57. package/dist/blockchain/core/index.js +59 -0
  58. package/dist/blockchain/core/index.js.map +1 -0
  59. package/dist/blockchain/index.d.ts +11 -0
  60. package/dist/blockchain/index.d.ts.map +1 -0
  61. package/dist/blockchain/index.js +34 -0
  62. package/dist/blockchain/index.js.map +1 -0
  63. package/dist/blockchain/node/WalletManagerNode.d.ts +47 -0
  64. package/dist/blockchain/node/WalletManagerNode.d.ts.map +1 -0
  65. package/dist/blockchain/node/WalletManagerNode.js +203 -0
  66. package/dist/blockchain/node/WalletManagerNode.js.map +1 -0
  67. package/dist/blockchain/node/index.d.ts +12 -0
  68. package/dist/blockchain/node/index.d.ts.map +1 -0
  69. package/dist/blockchain/node/index.js +24 -0
  70. package/dist/blockchain/node/index.js.map +1 -0
  71. package/dist/browser/ZipkitBrowser.d.ts +27 -0
  72. package/dist/browser/ZipkitBrowser.d.ts.map +1 -0
  73. package/dist/browser/{ZipKitBrowser.js → ZipkitBrowser.js} +96 -43
  74. package/dist/browser/ZipkitBrowser.js.map +1 -0
  75. package/dist/browser/index.d.ts +12 -0
  76. package/dist/browser/index.d.ts.map +1 -0
  77. package/dist/browser/index.js +42 -0
  78. package/dist/browser/index.js.map +1 -0
  79. package/dist/browser-esm/index.d.ts +12 -0
  80. package/dist/browser-esm/index.js +59559 -0
  81. package/dist/browser-esm/index.js.map +7 -0
  82. package/dist/browser-umd/index.d.ts +12 -0
  83. package/dist/browser-umd/index.js +59576 -0
  84. package/dist/browser-umd/index.js.map +7 -0
  85. package/dist/browser-umd/index.min.js +63 -0
  86. package/dist/browser.d.ts +8 -17
  87. package/dist/browser.js +13 -29
  88. package/dist/core/ZipCompress.d.ts +99 -0
  89. package/dist/core/ZipCompress.d.ts.map +1 -0
  90. package/dist/core/ZipCompress.js +309 -0
  91. package/dist/core/ZipCompress.js.map +1 -0
  92. package/dist/core/ZipDecompress.d.ts +58 -0
  93. package/dist/core/ZipDecompress.d.ts.map +1 -0
  94. package/dist/core/ZipDecompress.js +172 -0
  95. package/dist/core/ZipDecompress.js.map +1 -0
  96. package/dist/{shared → core}/ZipEntry.d.ts +8 -1
  97. package/dist/core/ZipEntry.d.ts.map +1 -0
  98. package/dist/{shared → core}/ZipEntry.js +224 -81
  99. package/dist/core/ZipEntry.js.map +1 -0
  100. package/dist/core/Zipkit.d.ts +315 -0
  101. package/dist/core/Zipkit.d.ts.map +1 -0
  102. package/dist/core/Zipkit.js +647 -0
  103. package/dist/core/Zipkit.js.map +1 -0
  104. package/dist/core/components/HashCalculator.d.ts +138 -0
  105. package/dist/core/components/HashCalculator.d.ts.map +1 -0
  106. package/dist/core/components/HashCalculator.js +360 -0
  107. package/dist/core/components/HashCalculator.js.map +1 -0
  108. package/dist/core/components/Logger.d.ts +73 -0
  109. package/dist/core/components/Logger.d.ts.map +1 -0
  110. package/dist/core/components/Logger.js +156 -0
  111. package/dist/core/components/Logger.js.map +1 -0
  112. package/dist/core/components/ProgressTracker.d.ts +43 -0
  113. package/dist/core/components/ProgressTracker.d.ts.map +1 -0
  114. package/dist/core/components/ProgressTracker.js +112 -0
  115. package/dist/core/components/ProgressTracker.js.map +1 -0
  116. package/dist/{shared → core}/components/Support.d.ts +1 -0
  117. package/dist/core/components/Support.d.ts.map +1 -0
  118. package/dist/{shared → core}/components/Support.js +1 -0
  119. package/dist/core/components/Support.js.map +1 -0
  120. package/dist/{shared → core}/components/Util.d.ts +7 -2
  121. package/dist/core/components/Util.d.ts.map +1 -0
  122. package/dist/{shared → core}/components/Util.js +14 -34
  123. package/dist/core/components/Util.js.map +1 -0
  124. package/dist/{shared → core}/constants/Errors.d.ts +1 -2
  125. package/dist/core/constants/Errors.d.ts.map +1 -0
  126. package/dist/{shared → core}/constants/Errors.js +1 -3
  127. package/dist/core/constants/Errors.js.map +1 -0
  128. package/dist/{shared → core}/constants/Headers.d.ts +3 -0
  129. package/dist/core/constants/Headers.d.ts.map +1 -0
  130. package/dist/{shared → core}/constants/Headers.js +20 -17
  131. package/dist/core/constants/Headers.js.map +1 -0
  132. package/dist/core/encryption/Manager.d.ts +58 -0
  133. package/dist/core/encryption/Manager.d.ts.map +1 -0
  134. package/dist/core/encryption/Manager.js +121 -0
  135. package/dist/core/encryption/Manager.js.map +1 -0
  136. package/dist/core/encryption/ZipCrypto.d.ts +172 -0
  137. package/dist/core/encryption/ZipCrypto.d.ts.map +1 -0
  138. package/dist/core/encryption/ZipCrypto.js +554 -0
  139. package/dist/core/encryption/ZipCrypto.js.map +1 -0
  140. package/dist/core/encryption/index.d.ts +9 -0
  141. package/dist/core/encryption/index.d.ts.map +1 -0
  142. package/dist/core/encryption/index.js +17 -0
  143. package/dist/core/encryption/index.js.map +1 -0
  144. package/dist/core/encryption/types.d.ts +29 -0
  145. package/dist/core/encryption/types.d.ts.map +1 -0
  146. package/dist/core/encryption/types.js +12 -0
  147. package/dist/core/encryption/types.js.map +1 -0
  148. package/dist/core/index.d.ts +24 -0
  149. package/dist/core/index.d.ts.map +1 -0
  150. package/dist/core/index.js +57 -0
  151. package/dist/core/index.js.map +1 -0
  152. package/dist/{shared → core}/version.d.ts +1 -0
  153. package/dist/core/version.d.ts.map +1 -0
  154. package/dist/core/version.js +31 -0
  155. package/dist/core/version.js.map +1 -0
  156. package/dist/index.d.ts +8 -25
  157. package/dist/index.d.ts.map +1 -0
  158. package/dist/index.js +29 -47
  159. package/dist/index.js.map +1 -0
  160. package/dist/node/ZipCompressNode.d.ts +123 -0
  161. package/dist/node/ZipCompressNode.d.ts.map +1 -0
  162. package/dist/node/ZipCompressNode.js +576 -0
  163. package/dist/node/ZipCompressNode.js.map +1 -0
  164. package/dist/node/ZipDecompressNode.d.ts +120 -0
  165. package/dist/node/ZipDecompressNode.d.ts.map +1 -0
  166. package/dist/node/ZipDecompressNode.js +461 -0
  167. package/dist/node/ZipDecompressNode.js.map +1 -0
  168. package/dist/node/ZipkitNode.d.ts +406 -0
  169. package/dist/node/ZipkitNode.d.ts.map +1 -0
  170. package/dist/node/ZipkitNode.js +1305 -0
  171. package/dist/node/ZipkitNode.js.map +1 -0
  172. package/dist/node/index.d.ts +26 -0
  173. package/dist/node/index.d.ts.map +1 -0
  174. package/dist/node/index.js +65 -0
  175. package/dist/node/index.js.map +1 -0
  176. package/dist/types/index.d.ts +59 -0
  177. package/dist/types/index.d.ts.map +1 -0
  178. package/dist/types/index.js +36 -1
  179. package/dist/types/index.js.map +1 -0
  180. package/examples/README.md +269 -0
  181. package/examples/blockchain-tokenize.ts +354 -0
  182. package/examples/create-zip.ts +172 -0
  183. package/examples/extract-zip.ts +158 -0
  184. package/examples/list-zip.ts +161 -0
  185. package/examples/test-files/data.json +116 -0
  186. package/examples/test-files/document.md +80 -0
  187. package/examples/test-files/document.txt +2 -0
  188. package/examples/test-files/file1.txt +48 -0
  189. package/examples/test-files/file2.txt +80 -0
  190. package/examples/tsconfig.json +44 -0
  191. package/examples/unzip-token.ts +6 -3
  192. package/examples/verify-tokenized-zip.ts +305 -0
  193. package/package.json +117 -23
  194. package/src/blockchain/README.md +222 -0
  195. package/src/{browser → blockchain/browser}/TokenVerifierBrowser.ts +125 -79
  196. package/src/blockchain/browser/WalletManagerBrowser.ts +486 -0
  197. package/src/blockchain/browser/ZipkitMinterBrowser.ts +400 -0
  198. package/src/blockchain/browser/index.ts +13 -0
  199. package/src/blockchain/core/WalletManager.ts +436 -0
  200. package/src/blockchain/core/ZipkitMinter.ts +716 -0
  201. package/src/blockchain/core/ZipkitOTS.ts +588 -0
  202. package/src/blockchain/core/ZipkitVerifier.ts +853 -0
  203. package/src/blockchain/core/contracts.ts +370 -0
  204. package/src/blockchain/core/index.ts +71 -0
  205. package/src/blockchain/index.ts +27 -0
  206. package/src/blockchain/node/WalletManagerNode.ts +171 -0
  207. package/src/blockchain/node/index.ts +40 -0
  208. package/src/browser/{ZipKitBrowser.ts → ZipkitBrowser.ts} +104 -41
  209. package/src/browser/index.esm.ts +37 -0
  210. package/src/browser/index.ts +25 -0
  211. package/src/core/ZipCompress.ts +398 -0
  212. package/src/core/ZipDecompress.ts +212 -0
  213. package/src/{shared → core}/ZipEntry.ts +239 -89
  214. package/src/core/Zipkit.ts +794 -0
  215. package/src/core/components/HashCalculator.ts +384 -0
  216. package/src/core/components/Logger.ts +180 -0
  217. package/src/core/components/ProgressTracker.ts +134 -0
  218. package/src/{shared → core}/components/Util.ts +12 -34
  219. package/src/{shared → core}/constants/Errors.ts +0 -4
  220. package/src/{shared → core}/constants/Headers.ts +19 -17
  221. package/src/core/encryption/Manager.ts +137 -0
  222. package/src/core/encryption/ZipCrypto.ts +650 -0
  223. package/src/core/encryption/index.ts +15 -0
  224. package/src/core/encryption/types.ts +33 -0
  225. package/src/core/index.ts +34 -0
  226. package/src/core/version.ts +33 -0
  227. package/src/index.ts +54 -32
  228. package/src/node/ZipCompressNode.ts +632 -0
  229. package/src/node/ZipDecompressNode.ts +508 -0
  230. package/src/node/ZipkitNode.ts +1559 -0
  231. package/src/node/index.ts +69 -0
  232. package/src/types/index.ts +131 -1
  233. package/src/types/opentimestamps.d.ts +1 -23
  234. package/contracts/Lock.sol +0 -34
  235. package/contracts/bytecode.txt +0 -1
  236. package/contracts/compile-contract.js +0 -168
  237. package/contracts/deploy/deploy-both-contracts.js +0 -286
  238. package/contracts/deploy/deploy-enhanced-contract.js +0 -197
  239. package/contracts/deploy/deploy-private-contract.js +0 -190
  240. package/contracts/deploy/deploy-public-clean.js +0 -1063
  241. package/contracts/deploy/deploy-public-contract.js +0 -1107
  242. package/contracts/deployment.config.example.js +0 -25
  243. package/contracts/remix-compile.js +0 -222
  244. package/contracts/setup-deployment.js +0 -51
  245. package/contracts/src/ZipFileNFT-DEPRECATED-6field.sol +0 -260
  246. package/contracts/src/ZipFileNFT-DEPRECATED-Enhanced.sol +0 -289
  247. package/dist/browser/CertificateGeneratorBrowser.d.ts +0 -75
  248. package/dist/browser/CertificateGeneratorBrowser.js +0 -433
  249. package/dist/browser/ZipKitBrowser.d.ts +0 -18
  250. package/dist/browser/ZipKitStampBrowser.d.ts +0 -2
  251. package/dist/browser/ZipKitStampBrowser.js +0 -12
  252. package/dist/browser-index.d.ts +0 -21
  253. package/dist/browser-index.js +0 -58
  254. package/dist/server/blockchain/CertificateToken.d.ts +0 -48
  255. package/dist/server/blockchain/CertificateToken.js +0 -386
  256. package/dist/server/blockchain/NFTMinter.d.ts +0 -41
  257. package/dist/server/blockchain/NFTMinter.js +0 -323
  258. package/dist/server/blockchain/TokenQuerier.d.ts +0 -31
  259. package/dist/server/blockchain/TokenQuerier.js +0 -259
  260. package/dist/server/blockchain/TokenVerifier.d.ts +0 -20
  261. package/dist/server/blockchain/TokenVerifier.js +0 -395
  262. package/dist/server/blockchain/WalletFormatter.d.ts +0 -39
  263. package/dist/server/blockchain/WalletFormatter.js +0 -196
  264. package/dist/server/blockchain/WalletManager.d.ts +0 -46
  265. package/dist/server/blockchain/WalletManager.js +0 -294
  266. package/dist/server/blockchain/ZipMetadata.d.ts +0 -27
  267. package/dist/server/blockchain/ZipMetadata.js +0 -131
  268. package/dist/server/blockchain/ZipTokenProcessor.d.ts +0 -44
  269. package/dist/server/blockchain/ZipTokenProcessor.js +0 -204
  270. package/dist/server/blockchain/constants.d.ts +0 -102
  271. package/dist/server/blockchain/constants.js +0 -968
  272. package/dist/server/blockchain/index.d.ts +0 -9
  273. package/dist/server/blockchain/index.js +0 -44
  274. package/dist/server/blockchain/test-certificate.d.ts +0 -8
  275. package/dist/server/blockchain/test-certificate.js +0 -100
  276. package/dist/server/blockchain/types.d.ts +0 -69
  277. package/dist/server/blockchain/types.js +0 -51
  278. package/dist/server/platform/server/ZipKitServer.d.ts +0 -105
  279. package/dist/server/platform/server/ZipKitServer.js +0 -437
  280. package/dist/server/platform/servercomponents/ZipKitOTS.d.ts +0 -91
  281. package/dist/server/platform/servercomponents/ZipKitOTS.js +0 -271
  282. package/dist/shared/ZipKit.d.ts +0 -249
  283. package/dist/shared/ZipKit.js +0 -789
  284. package/dist/shared/components/CertificateOTS.d.ts +0 -15
  285. package/dist/shared/components/CertificateOTS.js +0 -116
  286. package/dist/shared/components/FileSys.d.ts +0 -2
  287. package/dist/shared/components/FileSys.js +0 -113
  288. package/dist/shared/components/HashAccumulator.d.ts +0 -55
  289. package/dist/shared/components/HashAccumulator.js +0 -100
  290. package/dist/shared/components/ZipCrypto.d.ts +0 -3
  291. package/dist/shared/components/ZipCrypto.js +0 -78
  292. package/dist/shared/components/merkleTree.d.ts +0 -66
  293. package/dist/shared/components/merkleTree.js +0 -136
  294. package/dist/shared/types/index.d.ts +0 -21
  295. package/dist/shared/types/index.js +0 -3
  296. package/dist/shared/types.d.ts +0 -33
  297. package/dist/shared/types.js +0 -8
  298. package/dist/shared/version.js +0 -7
  299. package/src/browser/CertificateGeneratorBrowser.ts +0 -498
  300. package/src/browser/ZipKitStampBrowser.ts +0 -9
  301. package/src/browser-index.ts +0 -36
  302. package/src/server/blockchain/CertificateToken.ts +0 -444
  303. package/src/server/blockchain/NFTMinter.ts +0 -357
  304. package/src/server/blockchain/TokenQuerier.ts +0 -287
  305. package/src/server/blockchain/TokenVerifier.ts +0 -453
  306. package/src/server/blockchain/WalletAnalyzer.ts +0 -397
  307. package/src/server/blockchain/WalletFormatter.ts +0 -206
  308. package/src/server/blockchain/WalletManager.ts +0 -294
  309. package/src/server/blockchain/ZipMetadata.ts +0 -117
  310. package/src/server/blockchain/ZipTokenProcessor.ts +0 -234
  311. package/src/server/blockchain/constants.ts +0 -969
  312. package/src/server/blockchain/index.ts +0 -42
  313. package/src/server/blockchain/test-certificate.ts +0 -137
  314. package/src/server/blockchain/types.ts +0 -134
  315. package/src/server/platform/server/ZipKitServer.ts +0 -459
  316. package/src/server/platform/servercomponents/ZipKitOTS.ts +0 -313
  317. package/src/server/platform/servercomponents/opentimestamps.d.ts +0 -23
  318. package/src/shared/ZipKit.ts +0 -899
  319. package/src/shared/components/CertificateOTS.ts +0 -132
  320. package/src/shared/components/FileSys.ts +0 -87
  321. package/src/shared/components/HashAccumulator.ts +0 -113
  322. package/src/shared/components/ZipCrypto.ts +0 -91
  323. package/src/shared/components/merkleTree.ts +0 -162
  324. package/src/shared/types/index.ts +0 -25
  325. package/src/shared/types/modules.d.ts +0 -22
  326. package/src/shared/types/opentimestamps.d.ts +0 -23
  327. package/src/shared/types.d.ts +0 -8
  328. package/src/shared/types.ts +0 -43
  329. package/src/shared/version.ts +0 -4
  330. /package/src/{shared → core}/components/Support.ts +0 -0
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ // ======================================
3
+ // ZipDecompress.ts - Decompression Module
4
+ // Copyright (c) 2025 NeoWare, Inc. All rights reserved.
5
+ // ======================================
6
+ //
7
+ // LOGGING INSTRUCTIONS:
8
+ // ---------------------
9
+ // To enable/disable logging, set loggingEnabled to true/false in the class:
10
+ // private static loggingEnabled: boolean = true; // Enable logging
11
+ // private static loggingEnabled: boolean = false; // Disable logging
12
+ //
13
+ // Logging respects the global Logger level (debug, info, warn, error, silent).
14
+ // Logger level is automatically set to 'debug' when loggingEnabled is true.
15
+ //
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ const pako = require('pako');
21
+ const zstd_js_1 = require("@oneidentity/zstd-js");
22
+ const Logger_1 = require("./components/Logger");
23
+ const Errors_1 = __importDefault(require("./constants/Errors"));
24
+ const Headers_1 = require("./constants/Headers");
25
+ const ZipCrypto_1 = require("./encryption/ZipCrypto");
26
+ // Module-level singleton for ZSTD (shared across all instances)
27
+ let zstdCodec = null;
28
+ // Async initialization function for zstd
29
+ async function initZstd() {
30
+ if (!zstdCodec) {
31
+ zstdCodec = await (0, zstd_js_1.ZstdInit)();
32
+ }
33
+ return zstdCodec;
34
+ }
35
+ /**
36
+ * ZipDecompress - Unified Decompression Module (Internal to Zipkit)
37
+ * Consolidates decompression functionality from ZipCompress
38
+ * Supports deflate, zstd, and stored compression methods with chunked processing
39
+ *
40
+ * This class is internal to Zipkit and should not be used directly.
41
+ * Use Zipkit methods instead.
42
+ */
43
+ class ZipDecompress {
44
+ /**
45
+ * Internal logging method - only logs if class logging is enabled
46
+ */
47
+ log(...args) {
48
+ if (ZipDecompress.loggingEnabled) {
49
+ Logger_1.Logger.debug(`[ZipDecompress]`, ...args);
50
+ }
51
+ }
52
+ constructor(zipkit) {
53
+ this.zstdCodec = null;
54
+ this.zipkit = zipkit;
55
+ // Debug disabled by default
56
+ this.debug = false;
57
+ // If logging is enabled, ensure Logger level is set to debug
58
+ if (ZipDecompress.loggingEnabled) {
59
+ Logger_1.Logger.setLevel('debug');
60
+ }
61
+ }
62
+ /**
63
+ * Extract file data (Buffer-based ZIP only)
64
+ * Public method that validates buffer mode and extracts entry
65
+ *
66
+ * @param entry ZIP entry to extract
67
+ * @param skipHashCheck Skip hash verification (CRC-32 or SHA-256)
68
+ * @returns Promise resolving to extracted data as Buffer, or null if failed
69
+ * @throws Error if not a Buffer-based ZIP
70
+ */
71
+ async extract(entry, skipHashCheck) {
72
+ if (!this.zipkit.hasInBuffer()) {
73
+ throw new Error('extract() requires Buffer-based ZIP. Use ZipkitNode.extractToFile() for file-based ZIP or call loadZip() first.');
74
+ }
75
+ this.log(`extract() called for entry: ${entry.filename}, method: ${entry.cmpMethod}, skipHashCheck: ${skipHashCheck}`);
76
+ // Lazy ZSTD initialization
77
+ if (entry.cmpMethod === Headers_1.CMP_METHOD.ZSTD && !this.zstdCodec) {
78
+ this.zstdCodec = await initZstd();
79
+ }
80
+ const buffer = this.zipkit.ensureBuffer();
81
+ // Decrypt if needed using password on zipkit instance
82
+ let fdata = this.zipkit.parseLocalHeader(entry, buffer);
83
+ if (entry.isEncrypted && this.zipkit?.password) {
84
+ this.log(`Starting in-memory decryption for entry: ${entry.filename}`);
85
+ // Use ZipCrypto's decryptBuffer method which handles all the header parsing and decryption
86
+ const zipCrypto = new ZipCrypto_1.ZipCrypto();
87
+ fdata = zipCrypto.decryptBuffer(entry, buffer, fdata, this.zipkit.password);
88
+ this.log(`Decryption successful, decrypted compressed data length: ${fdata.length}`);
89
+ }
90
+ if (fdata.length === 0) {
91
+ return null;
92
+ }
93
+ // Use the unCompress method
94
+ return this.unCompress(fdata, entry, skipHashCheck);
95
+ }
96
+ /**
97
+ * Inflate data using pako (internal use only)
98
+ */
99
+ inflate(data) {
100
+ this.log(`inflate() called with ${data.length} bytes`);
101
+ const result = pako.inflateRaw(data);
102
+ return Buffer.from(result.buffer, result.byteOffset, result.byteLength);
103
+ }
104
+ /**
105
+ * Synchronous zstd decompress method for in-memory mode
106
+ * ZSTD codec is guaranteed to be initialized via factory method
107
+ * Internal method only
108
+ */
109
+ zstdDecompressSync(data) {
110
+ this.log(`zstdDecompressSync() called with ${data.length} bytes`);
111
+ try {
112
+ // Ensure ZSTD is initialized
113
+ if (!this.zstdCodec) {
114
+ throw new Error('ZSTD codec not initialized.');
115
+ }
116
+ const decompressed = this.zstdCodec.ZstdSimple.decompress(data);
117
+ this.log(`ZSTD synchronous decompression successful: ${data.length} bytes -> ${decompressed.length} bytes`);
118
+ return Buffer.from(decompressed);
119
+ }
120
+ catch (error) {
121
+ this.log(`ZSTD synchronous decompression failed: ${error}`);
122
+ throw new Error(`ZSTD synchronous decompression failed: ${error instanceof Error ? error.message : String(error)}`);
123
+ }
124
+ }
125
+ /**
126
+ * Uncompress compressed data buffer (synchronous for in-memory mode)
127
+ * Handles decompression and hash verification
128
+ * Internal method only
129
+ */
130
+ unCompress(compressedData, entry, skipHashCheck) {
131
+ this.log(`unCompress() called for entry: ${entry.filename}, method: ${entry.cmpMethod}, data length: ${compressedData.length}`);
132
+ if (compressedData.length === 0) {
133
+ return Buffer.alloc(0);
134
+ }
135
+ let outBuf;
136
+ if (entry.cmpMethod === Headers_1.CMP_METHOD.STORED) {
137
+ outBuf = compressedData;
138
+ }
139
+ else if (entry.cmpMethod === Headers_1.CMP_METHOD.DEFLATED) {
140
+ // Use synchronous inflate for deflate
141
+ outBuf = this.inflate(compressedData);
142
+ }
143
+ else if (entry.cmpMethod === Headers_1.CMP_METHOD.ZSTD) {
144
+ // Use synchronous ZSTD decompression for in-memory mode
145
+ outBuf = this.zstdDecompressSync(compressedData);
146
+ }
147
+ else {
148
+ throw new Error(`Unsupported compression method: ${entry.cmpMethod}`);
149
+ }
150
+ // Verify hash
151
+ if (!skipHashCheck) {
152
+ if (entry.sha256) {
153
+ const isValid = this.zipkit.testSHA256(entry, outBuf);
154
+ if (!isValid) {
155
+ throw new Error(Errors_1.default.INVALID_SHA256);
156
+ }
157
+ }
158
+ else {
159
+ const isValid = this.zipkit.testCRC32(entry, outBuf);
160
+ if (!isValid) {
161
+ throw new Error(Errors_1.default.INVALID_CRC);
162
+ }
163
+ }
164
+ }
165
+ return outBuf;
166
+ }
167
+ }
168
+ // Class-level logging control - set to true to enable logging
169
+ ZipDecompress.loggingEnabled = false;
170
+ // Default export for internal use by Zipkit only
171
+ exports.default = ZipDecompress;
172
+ //# sourceMappingURL=ZipDecompress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZipDecompress.js","sourceRoot":"","sources":["../../src/core/ZipDecompress.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ZipFileEntry, FileData } from './types';
1
+ import { ZipFileEntry, FileData } from '../types';
2
2
  /**
3
3
  * Class representing a single entry (file or directory) within a ZIP archive
4
4
  */
@@ -34,6 +34,11 @@ export default class ZipEntry implements ZipFileEntry {
34
34
  uid: number | null;
35
35
  gid: number | null;
36
36
  sha256: string | null;
37
+ isSymlink: boolean;
38
+ linkTarget: string | null;
39
+ isHardLink: boolean;
40
+ originalEntry: string | null;
41
+ inode: number | null;
37
42
  fileData?: FileData;
38
43
  /**
39
44
  * Creates a new ZIP entry
@@ -129,3 +134,5 @@ export default class ZipEntry implements ZipFileEntry {
129
134
  */
130
135
  showVerboseInfo(): void;
131
136
  }
137
+ export { ZipEntry };
138
+ //# sourceMappingURL=ZipEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZipEntry.d.ts","sourceRoot":"","sources":["../../src/core/ZipEntry.ts"],"names":[],"mappings":"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"}