neozipkit 0.2.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 (301) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +410 -186
  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 +235 -131
  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/blockchain/browser/TokenVerifierBrowser.d.ts +67 -0
  20. package/dist/blockchain/browser/TokenVerifierBrowser.d.ts.map +1 -0
  21. package/dist/blockchain/browser/TokenVerifierBrowser.js +313 -0
  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/blockchain/core/WalletManager.d.ts +124 -0
  36. package/dist/blockchain/core/WalletManager.d.ts.map +1 -0
  37. package/dist/blockchain/{ZipKitWallet.js → core/WalletManager.js} +157 -177
  38. package/dist/blockchain/core/WalletManager.js.map +1 -0
  39. package/dist/blockchain/{ZipKitMinter.d.ts → core/ZipkitMinter.d.ts} +46 -11
  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/{ZipKitOTS.d.ts → core/ZipkitOTS.d.ts} +6 -15
  44. package/dist/blockchain/core/ZipkitOTS.d.ts.map +1 -0
  45. package/dist/blockchain/{ZipKitOTS.js → core/ZipkitOTS.js} +26 -84
  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 -7
  60. package/dist/blockchain/index.d.ts.map +1 -0
  61. package/dist/blockchain/index.js +18 -34
  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 -14
  87. package/dist/browser.js +13 -28
  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 +225 -82
  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/core/version.d.ts +5 -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 -18
  157. package/dist/index.d.ts.map +1 -0
  158. package/dist/index.js +29 -35
  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 +491 -0
  192. package/examples/verify-tokenized-zip.ts +305 -0
  193. package/examples/zip-token.ts +604 -0
  194. package/package.json +108 -24
  195. package/src/blockchain/README.md +59 -66
  196. package/src/{browser/TokenVerifierBrowser.ts-remove → blockchain/browser/TokenVerifierBrowser.ts} +125 -79
  197. package/src/blockchain/browser/WalletManagerBrowser.ts +486 -0
  198. package/src/blockchain/browser/ZipkitMinterBrowser.ts +400 -0
  199. package/src/blockchain/browser/index.ts +13 -0
  200. package/src/blockchain/{ZipKitWallet.ts → core/WalletManager.ts} +241 -143
  201. package/src/blockchain/core/ZipkitMinter.ts +716 -0
  202. package/src/blockchain/{ZipKitOTS.ts → core/ZipkitOTS.ts} +28 -62
  203. package/src/blockchain/core/ZipkitVerifier.ts +853 -0
  204. package/src/blockchain/core/contracts.ts +370 -0
  205. package/src/blockchain/core/index.ts +71 -0
  206. package/src/blockchain/index.ts +21 -55
  207. package/src/blockchain/node/WalletManagerNode.ts +171 -0
  208. package/src/blockchain/node/index.ts +40 -0
  209. package/src/browser/{ZipKitBrowser.ts → ZipkitBrowser.ts} +104 -41
  210. package/src/browser/index.esm.ts +37 -0
  211. package/src/browser/index.ts +25 -0
  212. package/src/core/ZipCompress.ts +398 -0
  213. package/src/core/ZipDecompress.ts +212 -0
  214. package/src/{shared → core}/ZipEntry.ts +240 -90
  215. package/src/core/Zipkit.ts +794 -0
  216. package/src/core/components/HashCalculator.ts +384 -0
  217. package/src/core/components/Logger.ts +180 -0
  218. package/src/core/components/ProgressTracker.ts +134 -0
  219. package/src/{shared → core}/components/Util.ts +12 -34
  220. package/src/{shared → core}/constants/Errors.ts +0 -4
  221. package/src/{shared → core}/constants/Headers.ts +19 -17
  222. package/src/core/encryption/Manager.ts +137 -0
  223. package/src/core/encryption/ZipCrypto.ts +650 -0
  224. package/src/core/encryption/index.ts +15 -0
  225. package/src/core/encryption/types.ts +33 -0
  226. package/src/core/index.ts +34 -0
  227. package/src/core/version.ts +33 -0
  228. package/src/index.ts +54 -25
  229. package/src/node/ZipCompressNode.ts +632 -0
  230. package/src/node/ZipDecompressNode.ts +508 -0
  231. package/src/node/ZipkitNode.ts +1559 -0
  232. package/src/node/index.ts +69 -0
  233. package/src/types/index.ts +131 -1
  234. package/src/types/modules.d.ts +1 -11
  235. package/src/types/opentimestamps.d.ts +1 -23
  236. package/contracts/INTEGRATION.md +0 -338
  237. package/contracts/NETWORKS.md +0 -156
  238. package/contracts/NZIP-NFT-bytecode.txt +0 -1
  239. package/contracts/constants.ts +0 -952
  240. package/contracts/deploy-bytecode.mjs +0 -94
  241. package/dist/blockchain/CertificateToken.d.ts +0 -48
  242. package/dist/blockchain/CertificateToken.js +0 -386
  243. package/dist/blockchain/ZipKitMinter.js +0 -347
  244. package/dist/blockchain/ZipKitNFT.d.ts +0 -3
  245. package/dist/blockchain/ZipKitNFT.js +0 -7
  246. package/dist/blockchain/ZipKitVerifier.d.ts +0 -69
  247. package/dist/blockchain/ZipKitVerifier.js +0 -289
  248. package/dist/blockchain/ZipKitWallet.d.ts +0 -69
  249. package/dist/blockchain/contracts.d.ts +0 -14
  250. package/dist/blockchain/contracts.js +0 -77
  251. package/dist/blockchain/types.d.ts +0 -47
  252. package/dist/blockchain/types.js +0 -30
  253. package/dist/browser/ZipKitBrowser.d.ts +0 -18
  254. package/dist/browser/ZipKitStampBrowser.d.ts +0 -2
  255. package/dist/browser/ZipKitStampBrowser.js +0 -12
  256. package/dist/browser-index.d.ts +0 -18
  257. package/dist/browser-index.js +0 -57
  258. package/dist/server/ZipKitServer.d.ts +0 -74
  259. package/dist/server/ZipKitServer.js +0 -310
  260. package/dist/shared/ZipKit.d.ts +0 -243
  261. package/dist/shared/ZipKit.js +0 -772
  262. package/dist/shared/components/CertificateOTS.d.ts +0 -15
  263. package/dist/shared/components/CertificateOTS.js +0 -116
  264. package/dist/shared/components/FileSys.d.ts +0 -2
  265. package/dist/shared/components/FileSys.js +0 -113
  266. package/dist/shared/components/HashAccumulator.d.ts +0 -55
  267. package/dist/shared/components/HashAccumulator.js +0 -100
  268. package/dist/shared/components/ZipCrypto.d.ts +0 -3
  269. package/dist/shared/components/ZipCrypto.js +0 -78
  270. package/dist/shared/components/merkleTree.d.ts +0 -66
  271. package/dist/shared/components/merkleTree.js +0 -136
  272. package/dist/shared/types/index.d.ts +0 -21
  273. package/dist/shared/types/index.js +0 -3
  274. package/dist/shared/types.d.ts +0 -33
  275. package/dist/shared/types.js +0 -8
  276. package/dist/shared/version.d.ts +0 -2
  277. package/dist/shared/version.js +0 -6
  278. package/src/blockchain/CertificateToken.ts +0 -444
  279. package/src/blockchain/ZipKitMinter.ts +0 -470
  280. package/src/blockchain/ZipKitNFT.ts +0 -12
  281. package/src/blockchain/ZipKitVerifier.ts +0 -382
  282. package/src/blockchain/contracts.ts +0 -88
  283. package/src/blockchain/types.ts +0 -91
  284. package/src/browser/CertificateGeneratorBrowser.ts-remove +0 -498
  285. package/src/browser/ZipKitStampBrowser.ts +0 -9
  286. package/src/browser-index.ts +0 -36
  287. package/src/server/README.md +0 -25
  288. package/src/server/ZipKitServer.ts +0 -305
  289. package/src/shared/ZipKit.ts +0 -881
  290. package/src/shared/components/CertificateOTS.ts +0 -132
  291. package/src/shared/components/FileSys.ts +0 -87
  292. package/src/shared/components/HashAccumulator.ts +0 -113
  293. package/src/shared/components/ZipCrypto.ts +0 -91
  294. package/src/shared/components/merkleTree.ts +0 -162
  295. package/src/shared/types/index.ts +0 -25
  296. package/src/shared/types/modules.d.ts +0 -22
  297. package/src/shared/types/opentimestamps.d.ts +0 -23
  298. package/src/shared/types.d.ts +0 -8
  299. package/src/shared/types.ts +0 -43
  300. package/src/shared/version.ts +0 -3
  301. /package/src/{shared → core}/components/Support.ts +0 -0
@@ -0,0 +1,47 @@
1
+ /**
2
+ * WalletManagerNode - Node.js-specific wallet functionality with file system operations
3
+ * Extends CoreWalletManager with file-based wallet management
4
+ */
5
+ import { CoreWalletManager } from '../core/WalletManager';
6
+ import { WalletSetupResult, MintingOptions } from '../../types';
7
+ /**
8
+ * Node.js-specific wallet manager with file system operations
9
+ */
10
+ export declare class WalletManagerNode extends CoreWalletManager {
11
+ constructor();
12
+ /**
13
+ * Setup wallet with file system support
14
+ */
15
+ setupWalletWithOptions(options: MintingOptions): Promise<WalletSetupResult>;
16
+ /**
17
+ * Find existing wallet files
18
+ */
19
+ private findExistingWallets;
20
+ /**
21
+ * Load wallet from file
22
+ *
23
+ * SECURITY WARNING: This method reads private keys from disk.
24
+ * - Only use for development/testing
25
+ * - Wallet files are automatically excluded from git via .gitignore
26
+ * - Wallet files are excluded from NPM packages via .npmignore
27
+ * - Use secure key management (HSMs, KMS) for production
28
+ */
29
+ private loadWalletFromFile;
30
+ /**
31
+ * Create a new wallet and save to file
32
+ *
33
+ * SECURITY WARNING: This method saves private keys to disk.
34
+ * - Only use for development/testing
35
+ * - Never commit wallet files to version control
36
+ * - Use secure key management for production
37
+ * - Wallet files are automatically excluded via .gitignore and .npmignore
38
+ * - Protect file system permissions on wallet files
39
+ */
40
+ private createNewWallet;
41
+ /**
42
+ * Detect NZIP contract from deployment file
43
+ */
44
+ static detectNZipContract(): string | undefined;
45
+ }
46
+ export { WalletManagerNode as ZipkitWallet };
47
+ //# sourceMappingURL=WalletManagerNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletManagerNode.d.ts","sourceRoot":"","sources":["../../../src/blockchain/node/WalletManagerNode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAc,cAAc,EAAE,MAAM,aAAa,CAAC;AAG5E;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,iBAAiB;;IAKtD;;OAEG;IACG,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwCjF;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqB3B;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;;;;;;;;OASG;YACW,eAAe;IAyB7B;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,MAAM,GAAG,SAAS;CAUhD;AAGD,OAAO,EAAE,iBAAiB,IAAI,YAAY,EAAE,CAAC"}
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ /**
3
+ * WalletManagerNode - Node.js-specific wallet functionality with file system operations
4
+ * Extends CoreWalletManager with file-based wallet management
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.ZipkitWallet = exports.WalletManagerNode = void 0;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const ethers_1 = require("ethers");
44
+ const WalletManager_1 = require("../core/WalletManager");
45
+ const Logger_1 = require("../../core/components/Logger");
46
+ /**
47
+ * Node.js-specific wallet manager with file system operations
48
+ */
49
+ class WalletManagerNode extends WalletManager_1.CoreWalletManager {
50
+ constructor() {
51
+ super();
52
+ }
53
+ /**
54
+ * Setup wallet with file system support
55
+ */
56
+ async setupWalletWithOptions(options) {
57
+ try {
58
+ let privateKey;
59
+ if (options.wallet) {
60
+ const val = options.wallet;
61
+ if (fs.existsSync(val)) {
62
+ const loaded = this.loadWalletFromFile(val);
63
+ if (!loaded)
64
+ throw new Error(`Could not load valid private key from ${val}`);
65
+ privateKey = loaded;
66
+ }
67
+ else {
68
+ privateKey = val;
69
+ }
70
+ }
71
+ else {
72
+ const existing = this.findExistingWallets();
73
+ if (existing.length > 0) {
74
+ const selected = existing[0];
75
+ const relativePath = path.relative(process.cwd(), selected);
76
+ Logger_1.Logger.log(`Using existing wallet: ${relativePath}`);
77
+ const loaded = this.loadWalletFromFile(selected);
78
+ if (!loaded)
79
+ throw new Error(`Could not load valid private key from ${selected}`);
80
+ privateKey = loaded;
81
+ }
82
+ else {
83
+ Logger_1.Logger.log('No existing wallet found. Creating new wallet...');
84
+ privateKey = await this.createNewWallet();
85
+ }
86
+ }
87
+ return await super.setupWallet(privateKey, options.network, options.mintToken === true);
88
+ }
89
+ catch (error) {
90
+ Logger_1.Logger.error('Error setting up wallet:', error);
91
+ return {
92
+ wallet: null,
93
+ provider: null,
94
+ success: false,
95
+ message: `Wallet setup failed: ${error instanceof Error ? error.message : String(error)}`
96
+ };
97
+ }
98
+ }
99
+ /**
100
+ * Find existing wallet files
101
+ */
102
+ findExistingWallets() {
103
+ const walletFiles = [];
104
+ const currentDir = process.cwd();
105
+ const walletDir = path.join(currentDir, 'wallet');
106
+ const walletFileNames = ['neozip-wallet.json'];
107
+ for (const fileName of walletFileNames) {
108
+ const filePath = path.join(currentDir, fileName);
109
+ if (fs.existsSync(filePath))
110
+ walletFiles.push(filePath);
111
+ }
112
+ if (fs.existsSync(walletDir)) {
113
+ for (const fileName of walletFileNames) {
114
+ const filePath = path.join(walletDir, fileName);
115
+ if (fs.existsSync(filePath))
116
+ walletFiles.push(filePath);
117
+ }
118
+ }
119
+ return walletFiles;
120
+ }
121
+ /**
122
+ * Load wallet from file
123
+ *
124
+ * SECURITY WARNING: This method reads private keys from disk.
125
+ * - Only use for development/testing
126
+ * - Wallet files are automatically excluded from git via .gitignore
127
+ * - Wallet files are excluded from NPM packages via .npmignore
128
+ * - Use secure key management (HSMs, KMS) for production
129
+ */
130
+ loadWalletFromFile(filePath) {
131
+ try {
132
+ const content = fs.readFileSync(filePath, 'utf8').trim();
133
+ try {
134
+ const walletData = JSON.parse(content);
135
+ if (walletData.privateKey) {
136
+ Logger_1.Logger.log(`Found wallet file: ${filePath}`);
137
+ Logger_1.Logger.log(`Wallet address: ${walletData.address}`);
138
+ return walletData.privateKey;
139
+ }
140
+ }
141
+ catch {
142
+ if (content.startsWith('0x') && content.length === 66) {
143
+ Logger_1.Logger.log(`Found private key file: ${filePath}`);
144
+ return content;
145
+ }
146
+ }
147
+ return null;
148
+ }
149
+ catch (error) {
150
+ Logger_1.Logger.warn(`Could not read wallet file ${filePath}:`, error);
151
+ return null;
152
+ }
153
+ }
154
+ /**
155
+ * Create a new wallet and save to file
156
+ *
157
+ * SECURITY WARNING: This method saves private keys to disk.
158
+ * - Only use for development/testing
159
+ * - Never commit wallet files to version control
160
+ * - Use secure key management for production
161
+ * - Wallet files are automatically excluded via .gitignore and .npmignore
162
+ * - Protect file system permissions on wallet files
163
+ */
164
+ async createNewWallet() {
165
+ Logger_1.Logger.log('Creating a new wallet...');
166
+ const newWallet = ethers_1.ethers.Wallet.createRandom();
167
+ const walletInfo = {
168
+ address: newWallet.address,
169
+ privateKey: newWallet.privateKey,
170
+ mnemonic: newWallet.mnemonic?.phrase || ""
171
+ };
172
+ const walletDir = path.join(process.cwd(), 'wallet');
173
+ if (!fs.existsSync(walletDir))
174
+ fs.mkdirSync(walletDir, { recursive: true });
175
+ const walletFilePath = path.join(walletDir, 'neozip-wallet.json');
176
+ fs.writeFileSync(walletFilePath, JSON.stringify(walletInfo, null, 2));
177
+ Logger_1.Logger.log(`New wallet created and saved to ${walletFilePath}`);
178
+ Logger_1.Logger.log(`Wallet address: ${newWallet.address}`);
179
+ Logger_1.Logger.log(`IMPORTANT: Please fund this wallet with testnet ETH to use for minting NFTs!`);
180
+ Logger_1.Logger.log(`SECURITY: Wallet file is automatically excluded from git (.gitignore) and NPM packages (.npmignore)`);
181
+ Logger_1.Logger.log(`SECURITY: Never commit wallet files to version control`);
182
+ Logger_1.Logger.log(`SECURITY: Use secure key management (HSMs, KMS) for production applications`);
183
+ return newWallet.privateKey;
184
+ }
185
+ /**
186
+ * Detect NZIP contract from deployment file
187
+ */
188
+ static detectNZipContract() {
189
+ const deploymentPath = path.join(process.cwd(), 'zipfile-nft-deployment.json');
190
+ if (fs.existsSync(deploymentPath)) {
191
+ try {
192
+ const deploymentInfo = JSON.parse(fs.readFileSync(deploymentPath, 'utf8'));
193
+ if (deploymentInfo.address)
194
+ return deploymentInfo.address;
195
+ }
196
+ catch { }
197
+ }
198
+ return undefined;
199
+ }
200
+ }
201
+ exports.WalletManagerNode = WalletManagerNode;
202
+ exports.ZipkitWallet = WalletManagerNode;
203
+ //# sourceMappingURL=WalletManagerNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletManagerNode.js","sourceRoot":"","sources":["../../../src/blockchain/node/WalletManagerNode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Node Blockchain Module Exports
3
+ * Node.js-specific blockchain functionality for ZIP file tokenization
4
+ *
5
+ * Note: ZipkitMinter and ZipkitVerifier convenience methods (retry, batch)
6
+ * are now available in the core module. Only WalletManagerNode is Node.js-specific
7
+ * due to file system operations.
8
+ */
9
+ export { WalletManagerNode, ZipkitWallet } from './WalletManagerNode';
10
+ export { ZipkitMinter, ZipkitVerifier, CoreWalletManager, WalletAnalyzer, createTimestamp, verifyOts, verifyOtsZip } from '../core';
11
+ export type { MintingOptions, MintingResult, VerificationOptions, VerificationResult, WalletInfo, NetworkConfig, TokenMetadata, WalletSetupResult, CommonTokenConfig, TokenInfo, WalletBasicInfo, TokenScanResult, NZipTokenDetails, TimestampResult, TimestampInfo, DeserializeOtsResult, OtsVerifyResult } from '../core';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blockchain/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGtE,OAAO,EACL,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,SAAS,EACT,YAAY,EACb,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,eAAe,EAChB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * Node Blockchain Module Exports
4
+ * Node.js-specific blockchain functionality for ZIP file tokenization
5
+ *
6
+ * Note: ZipkitMinter and ZipkitVerifier convenience methods (retry, batch)
7
+ * are now available in the core module. Only WalletManagerNode is Node.js-specific
8
+ * due to file system operations.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.verifyOtsZip = exports.verifyOts = exports.createTimestamp = exports.WalletAnalyzer = exports.CoreWalletManager = exports.ZipkitVerifier = exports.ZipkitMinter = exports.ZipkitWallet = exports.WalletManagerNode = void 0;
12
+ var WalletManagerNode_1 = require("./WalletManagerNode");
13
+ Object.defineProperty(exports, "WalletManagerNode", { enumerable: true, get: function () { return WalletManagerNode_1.WalletManagerNode; } });
14
+ Object.defineProperty(exports, "ZipkitWallet", { enumerable: true, get: function () { return WalletManagerNode_1.ZipkitWallet; } });
15
+ // Re-export specific core functionality to avoid duplicates
16
+ var core_1 = require("../core");
17
+ Object.defineProperty(exports, "ZipkitMinter", { enumerable: true, get: function () { return core_1.ZipkitMinter; } });
18
+ Object.defineProperty(exports, "ZipkitVerifier", { enumerable: true, get: function () { return core_1.ZipkitVerifier; } });
19
+ Object.defineProperty(exports, "CoreWalletManager", { enumerable: true, get: function () { return core_1.CoreWalletManager; } });
20
+ Object.defineProperty(exports, "WalletAnalyzer", { enumerable: true, get: function () { return core_1.WalletAnalyzer; } });
21
+ Object.defineProperty(exports, "createTimestamp", { enumerable: true, get: function () { return core_1.createTimestamp; } });
22
+ Object.defineProperty(exports, "verifyOts", { enumerable: true, get: function () { return core_1.verifyOts; } });
23
+ Object.defineProperty(exports, "verifyOtsZip", { enumerable: true, get: function () { return core_1.verifyOtsZip; } });
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blockchain/node/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,yDAAsE;AAA7D,sHAAA,iBAAiB,OAAA;AAAE,iHAAA,YAAY,OAAA;AAExC,4DAA4D;AAC5D,gCAQiB;AAPf,oGAAA,YAAY,OAAA;AACZ,sGAAA,cAAc,OAAA;AACd,yGAAA,iBAAiB,OAAA;AACjB,sGAAA,cAAc,OAAA;AACd,uGAAA,eAAe,OAAA;AACf,iGAAA,SAAS,OAAA;AACT,oGAAA,YAAY,OAAA"}
@@ -0,0 +1,27 @@
1
+ import Zipkit, { CompressOptions, CreateZipOptions } from '../core';
2
+ import ZipEntry from '../core/ZipEntry';
3
+ import Errors from '../core/constants/Errors';
4
+ import * as Headers from '../core/constants/Headers';
5
+ import { sha256 } from '../core/encryption/ZipCrypto';
6
+ import { getTypeOf } from '../core/components/Util';
7
+ import type { FileData } from '../types';
8
+ export * from '../core';
9
+ export { ZipEntry, Errors, Headers, sha256, getTypeOf };
10
+ export default class ZipkitBrowser extends Zipkit {
11
+ constructor();
12
+ loadZipBlob(data: Blob): Promise<ZipEntry[] | null>;
13
+ createZipFileEntry(file: FileData): ZipEntry;
14
+ hashFile(file: FileData): Promise<string>;
15
+ compressDataBlob(entry: ZipEntry, data: Blob, options?: CompressOptions): Promise<Buffer>;
16
+ extractBlob(entry: ZipEntry, skipHashCheck?: boolean): Promise<Blob | null>;
17
+ createZipBlob(cmpOptions?: CompressOptions, options?: CreateZipOptions): Promise<Blob | null>;
18
+ /**
19
+ * Checks if a filename is a blockchain metadata file that should be excluded from Merkle Root calculation
20
+ * @param filename - The filename to check
21
+ * @returns boolean - True if the file is a metadata file
22
+ */
23
+ private isMetadataFile;
24
+ addFile(file: FileData, options?: CompressOptions): Promise<ZipEntry>;
25
+ verifyEntry(entry: ZipEntry, skipHashCheck?: boolean): Promise<boolean>;
26
+ }
27
+ //# sourceMappingURL=ZipkitBrowser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZipkitBrowser.d.ts","sourceRoot":"","sources":["../../src/browser/ZipkitBrowser.ts"],"names":[],"mappings":"AAKA,OAAO,MAAM,EAAE,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AAExC,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,MAAM,EAAS,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAY,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIzC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAMxD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,MAAM;;IAezC,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;IAyCzD,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ;IAetC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAqCzF,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAgB3E,aAAa,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAwGnG;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAUhB,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkBrE,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAS9E"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  // ======================================
3
- // ZipKitBrowser.ts
3
+ // ZipkitBrowser.ts
4
4
  // Copyright (c) 2025 NeoWare, Inc. All rights reserved.
5
5
  // ======================================
6
6
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
@@ -44,62 +44,65 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
44
44
  };
45
45
  Object.defineProperty(exports, "__esModule", { value: true });
46
46
  exports.getTypeOf = exports.sha256 = exports.Headers = exports.Errors = exports.ZipEntry = void 0;
47
- const ZipKit_1 = __importDefault(require("../shared/ZipKit"));
48
- const ZipEntry_1 = __importDefault(require("../shared/ZipEntry"));
47
+ const core_1 = __importDefault(require("../core"));
48
+ const ZipEntry_1 = __importDefault(require("../core/ZipEntry"));
49
49
  exports.ZipEntry = ZipEntry_1.default;
50
- const Errors_1 = __importDefault(require("../shared/constants/Errors"));
50
+ const Errors_1 = __importDefault(require("../core/constants/Errors"));
51
51
  exports.Errors = Errors_1.default;
52
- const Headers = __importStar(require("../shared/constants/Headers"));
52
+ const Headers = __importStar(require("../core/constants/Headers"));
53
53
  exports.Headers = Headers;
54
- const Headers_1 = require("../shared/constants/Headers");
55
- const ZipCrypto_1 = require("../shared/components/ZipCrypto");
54
+ const Headers_1 = require("../core/constants/Headers");
55
+ const ZipCrypto_1 = require("../core/encryption/ZipCrypto");
56
56
  Object.defineProperty(exports, "sha256", { enumerable: true, get: function () { return ZipCrypto_1.sha256; } });
57
- const Util_1 = require("../shared/components/Util");
58
- const Util_2 = require("../shared/components/Util");
59
- Object.defineProperty(exports, "getTypeOf", { enumerable: true, get: function () { return Util_2.getTypeOf; } });
60
- // Re-export everything from ZipKit
61
- __exportStar(require("../shared/ZipKit"), exports);
57
+ const Util_1 = require("../core/components/Util");
58
+ Object.defineProperty(exports, "getTypeOf", { enumerable: true, get: function () { return Util_1.getTypeOf; } });
59
+ // Re-export everything from Zipkit
60
+ __exportStar(require("../core"), exports);
62
61
  // ======================================
63
- // ZipKitBrowser
62
+ // ZipkitBrowser
64
63
  // ======================================
65
- class ZipKitBrowser extends ZipKit_1.default {
64
+ class ZipkitBrowser extends core_1.default {
66
65
  constructor() {
67
66
  super(); // Call the parent constructor
68
- // console.log('ZipKit.support.isNode: ', ZipKit.support.isNode);
69
- // console.log('ZipKit.support.buffer: ', ZipKit.support.buffer);
70
- // console.log('ZipKit.support.blob: ', ZipKit.support.blob);
71
- // console.log('ZipKit.support.streams: ', ZipKit.support.streams);
72
- // console.log('ZipKit.support.fileReader: ', ZipKit.support.fileReader);
67
+ // console.log('Zipkit.support.isNode: ', Zipkit.support.isNode);
68
+ // console.log('Zipkit.support.buffer: ', Zipkit.support.buffer);
69
+ // console.log('Zipkit.support.blob: ', Zipkit.support.blob);
70
+ // console.log('Zipkit.support.streams: ', Zipkit.support.streams);
71
+ // console.log('Zipkit.support.fileReader: ', Zipkit.support.fileReader);
73
72
  }
74
73
  // --------------------------------------
75
74
  // Load a ZIP file from a Blob and return the ZipEntry array
75
+ // Always uses loadZip() to ensure proper initialization
76
76
  async loadZipBlob(data) {
77
- if ((0, Util_2.getTypeOf)(data) !== Util_2.DATATYPE.BLOB) {
77
+ if ((0, Util_1.getTypeOf)(data) !== Util_1.DATATYPE.BLOB) {
78
78
  throw new Error(Errors_1.default.DATATYPE_UNSUPPORTED);
79
79
  }
80
80
  return new Promise((resolve, reject) => {
81
- const _readEntries = (data) => {
82
- try {
83
- super.loadZip(data);
84
- return super.getDirectory();
85
- }
86
- catch (error) {
87
- reject(error);
88
- return null;
89
- }
90
- };
91
81
  const reader = new window.FileReader();
92
82
  reader.readAsArrayBuffer(data);
93
- reader.onload = function (e) {
94
- if (!this.result) {
83
+ reader.onload = (e) => {
84
+ if (!reader.result) {
95
85
  reject(new Error('Failed to read file'));
96
86
  return;
97
87
  }
98
- const _inBuf = Buffer.from(this.result);
99
- resolve(_readEntries(_inBuf));
88
+ try {
89
+ // Convert ArrayBuffer to Buffer
90
+ const buffer = Buffer.from(reader.result);
91
+ // Always use loadZip() which:
92
+ // 1. Resets ZIP data
93
+ // 2. Stores buffer in this.inBuffer
94
+ // 3. Loads EOCD and parses central directory
95
+ // 4. Stores entries in this.zipEntries
96
+ // 5. Returns the entries
97
+ const entries = super.loadZip(buffer);
98
+ resolve(entries);
99
+ }
100
+ catch (error) {
101
+ reject(error);
102
+ }
100
103
  };
101
- reader.onerror = function (e) {
102
- reject(this.error || new Error('Failed to read file'));
104
+ reader.onerror = () => {
105
+ reject(reader.error || new Error('Failed to read file'));
103
106
  };
104
107
  });
105
108
  }
@@ -125,12 +128,13 @@ class ZipKitBrowser extends ZipKit_1.default {
125
128
  // Compress the data and return the compressed data buffer
126
129
  // Set the ZipEntry compressSize and CRC32 values
127
130
  async compressDataBlob(entry, data, options) {
128
- if ((0, Util_2.getTypeOf)(data) !== Util_2.DATATYPE.BLOB) {
131
+ if ((0, Util_1.getTypeOf)(data) !== Util_1.DATATYPE.BLOB) {
129
132
  throw new Error(Errors_1.default.DATATYPE_UNSUPPORTED);
130
133
  }
131
134
  return new Promise(async (resolve, reject) => {
132
135
  const _compressData = async (entry, data, options) => {
133
- return await super.compressData(entry, data, options);
136
+ // Use Zipkit wrapper method
137
+ return await this.compressData(entry, data, options);
134
138
  };
135
139
  const reader = new window.FileReader();
136
140
  reader.readAsArrayBuffer(data);
@@ -157,7 +161,7 @@ class ZipKitBrowser extends ZipKit_1.default {
157
161
  // Extract a Blob from a ZipEntry
158
162
  async extractBlob(entry, skipHashCheck) {
159
163
  try {
160
- const _outBuf = await super.extract(entry, skipHashCheck);
164
+ const _outBuf = await this.extract(entry, skipHashCheck);
161
165
  if (!_outBuf)
162
166
  return null;
163
167
  // Convert Buffer to Uint8Array for Blob compatibility
@@ -189,7 +193,7 @@ class ZipKitBrowser extends ZipKit_1.default {
189
193
  // Don't continue here - let it fall through to special handling below
190
194
  }
191
195
  else {
192
- const inData = super.copyEntry(entry);
196
+ const inData = await super.copyEntry(entry);
193
197
  entry.localHdrOffset = offset;
194
198
  offset += inData.length;
195
199
  buffers.push(inData);
@@ -202,12 +206,23 @@ class ZipKitBrowser extends ZipKit_1.default {
202
206
  return null;
203
207
  }
204
208
  const fileBuffer = await entry.fileData.arrayBuffer();
209
+ // Special handling for already-compressed entries - use existing compressed data
210
+ if (entry.cmpData && entry.compressedSize && entry.crc) {
211
+ // Entry is already compressed, use the existing compressed data
212
+ const localHdr = entry.createLocalHdr();
213
+ entry.localHdrOffset = offset;
214
+ offset += localHdr.length + entry.cmpData.length;
215
+ buffers.push(localHdr);
216
+ buffers.push(entry.cmpData);
217
+ _onEntryDone(entry, 'Written (pre-compressed)');
218
+ continue;
219
+ }
205
220
  // Special handling for token metadata files - store uncompressed with CRC-32
206
221
  if (entry.filename === Headers_1.TOKENIZED_METADATA || entry.filename === Headers_1.TIMESTAMP_SUBMITTED || entry.filename === Headers_1.TIMESTAMP_METADATA) {
207
222
  // For token metadata, use STORED compression (no compression)
208
223
  const buffer = Buffer.from(fileBuffer);
209
224
  // Calculate CRC-32 for the token file (not SHA-256 to avoid Merkle Root interference)
210
- entry.crc = (0, Util_1.crc32)(buffer);
225
+ entry.crc = (0, ZipCrypto_1.crc32)(buffer);
211
226
  // Set up entry for STORED compression
212
227
  entry.cmpMethod = 0; // STORED
213
228
  entry.compressedSize = buffer.length;
@@ -223,7 +238,7 @@ class ZipKitBrowser extends ZipKit_1.default {
223
238
  }
224
239
  else {
225
240
  // Normal file processing with compression
226
- const cmpData = await super.compressData(entry, Buffer.from(fileBuffer), cmpOptions);
241
+ const cmpData = await this.compressData(entry, Buffer.from(fileBuffer), cmpOptions);
227
242
  const localHdr = entry.createLocalHdr();
228
243
  entry.localHdrOffset = offset;
229
244
  offset += localHdr.length + cmpData.length;
@@ -246,5 +261,43 @@ class ZipKitBrowser extends ZipKit_1.default {
246
261
  const uint8Array = new Uint8Array(combinedBuffer);
247
262
  return new Blob([uint8Array], { type: 'application/zip' });
248
263
  }
264
+ /**
265
+ * Checks if a filename is a blockchain metadata file that should be excluded from Merkle Root calculation
266
+ * @param filename - The filename to check
267
+ * @returns boolean - True if the file is a metadata file
268
+ */
269
+ isMetadataFile(filename) {
270
+ return filename === Headers_1.TIMESTAMP_SUBMITTED ||
271
+ filename === Headers_1.TIMESTAMP_METADATA ||
272
+ filename === Headers_1.TOKENIZED_METADATA;
273
+ }
274
+ // --------------------------------------
275
+ // Helper method: Add a file to the ZIP with compression
276
+ // Simplifies the common workflow of creating entry + compressing
277
+ async addFile(file, options) {
278
+ // Create entry
279
+ const entry = this.createZipFileEntry(file);
280
+ // Compress the file
281
+ // In browser, File objects implement both FileData and Blob interfaces
282
+ // We need to convert FileData to Blob for compressDataBlob
283
+ const fileBlob = file;
284
+ const compressedData = await this.compressDataBlob(entry, fileBlob, options);
285
+ entry.cmpData = compressedData;
286
+ return entry;
287
+ }
288
+ // --------------------------------------
289
+ // Verify a ZIP entry by attempting to extract it
290
+ // Returns true if the entry is valid, false otherwise
291
+ async verifyEntry(entry, skipHashCheck) {
292
+ try {
293
+ const blob = await this.extractBlob(entry, skipHashCheck);
294
+ return blob !== null;
295
+ }
296
+ catch (error) {
297
+ console.error(`Verification failed for ${entry.filename}:`, error);
298
+ return false;
299
+ }
300
+ }
249
301
  }
250
- exports.default = ZipKitBrowser;
302
+ exports.default = ZipkitBrowser;
303
+ //# sourceMappingURL=ZipkitBrowser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZipkitBrowser.js","sourceRoot":"","sources":["../../src/browser/ZipkitBrowser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export * from '../core';
2
+ import Zipkit from '../core';
3
+ export default Zipkit;
4
+ export { default as ZipkitBrowser } from './ZipkitBrowser';
5
+ export { TokenMetadata } from '../types';
6
+ export * from '../blockchain/browser';
7
+ export { createTokenVerifier } from '../blockchain/browser';
8
+ export declare const PlatformUtils: {
9
+ isBrowser: boolean;
10
+ isNode: string | false;
11
+ };
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAKA,cAAc,SAAS,CAAC;AACxB,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,eAAe,MAAM,CAAC;AAGtB,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,eAAO,MAAM,aAAa;;;CAKzB,CAAC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // NeoZipkit - Browser-Only Package Exports
4
+ // =============================================================================
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ var __importDefault = (this && this.__importDefault) || function (mod) {
20
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.PlatformUtils = exports.createTokenVerifier = exports.ZipkitBrowser = void 0;
24
+ // Core shared exports (re-exported from core module)
25
+ __exportStar(require("../core"), exports);
26
+ const core_1 = __importDefault(require("../core"));
27
+ exports.default = core_1.default;
28
+ // Browser-only exports
29
+ var ZipkitBrowser_1 = require("./ZipkitBrowser");
30
+ Object.defineProperty(exports, "ZipkitBrowser", { enumerable: true, get: function () { return __importDefault(ZipkitBrowser_1).default; } });
31
+ // Blockchain exports for browser
32
+ __exportStar(require("../blockchain/browser"), exports);
33
+ var browser_1 = require("../blockchain/browser");
34
+ Object.defineProperty(exports, "createTokenVerifier", { enumerable: true, get: function () { return browser_1.createTokenVerifier; } });
35
+ // Platform-specific conditional exports
36
+ exports.PlatformUtils = {
37
+ // Browser detection
38
+ isBrowser: typeof window !== 'undefined' && typeof document !== 'undefined',
39
+ // Node.js detection
40
+ isNode: typeof process !== 'undefined' && process.versions && process.versions.node,
41
+ };
42
+ //# sourceMappingURL=index.js.map