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 @@
1
+ {"version":3,"file":"ZipkitNode.js","sourceRoot":"","sources":["../../src/node/ZipkitNode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Node Module Exports
3
+ * Node.js functionality for ZIP file processing and blockchain operations
4
+ *
5
+ * This is the entry point for Node.js-only imports:
6
+ * import ZipkitNode from 'neozipkit/node';
7
+ * // or
8
+ * import { Zipkit, ZipkitNode, ... } from 'neozipkit/node';
9
+ */
10
+ export * from '../core';
11
+ import Zipkit from '../core';
12
+ export { Zipkit };
13
+ import ZipkitNodeDefault from './ZipkitNode';
14
+ export { default as ZipkitNode } from './ZipkitNode';
15
+ export default ZipkitNodeDefault;
16
+ export type { ZipFileWriter } from './ZipkitNode';
17
+ export { ZipCompressNode } from './ZipCompressNode';
18
+ export { ZipDecompressNode } from './ZipDecompressNode';
19
+ export { WalletManagerNode, ZipkitWallet, ZipkitMinter, ZipkitVerifier, CoreWalletManager, WalletAnalyzer, createTimestamp, verifyOts, verifyOtsZip } from '../blockchain';
20
+ export type { EnhancedVerificationResult, BatchVerificationResult, VerificationJob, MintingOptions, MintingResult, VerificationOptions, VerificationResult, WalletInfo, NetworkConfig, TokenMetadata, WalletSetupResult, CommonTokenConfig, TokenInfo, WalletBasicInfo, TokenScanResult, NZipTokenDetails, TimestampResult, TimestampInfo, DeserializeOtsResult, OtsVerifyResult } from '../blockchain';
21
+ export { verifyOts as verifyTimestamp } from '../blockchain/core/ZipkitOTS';
22
+ export declare const PlatformUtils: {
23
+ isBrowser: boolean;
24
+ isNode: string | false;
25
+ };
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,cAAc,SAAS,CAAC;AACxB,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;AAGlB,OAAO,iBAAiB,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAErD,eAAe,iBAAiB,CAAC;AACjC,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,SAAS,EACT,YAAY,EACb,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,0BAA0B,EAC1B,uBAAuB,EACvB,eAAe,EACf,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,eAAe,CAAC;AAGvB,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG5E,eAAO,MAAM,aAAa;;;CAKzB,CAAC"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ /**
3
+ * Node Module Exports
4
+ * Node.js functionality for ZIP file processing and blockchain operations
5
+ *
6
+ * This is the entry point for Node.js-only imports:
7
+ * import ZipkitNode from 'neozipkit/node';
8
+ * // or
9
+ * import { Zipkit, ZipkitNode, ... } from 'neozipkit/node';
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
23
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.PlatformUtils = exports.verifyTimestamp = exports.verifyOtsZip = exports.verifyOts = exports.createTimestamp = exports.WalletAnalyzer = exports.CoreWalletManager = exports.ZipkitVerifier = exports.ZipkitMinter = exports.ZipkitWallet = exports.WalletManagerNode = exports.ZipDecompressNode = exports.ZipCompressNode = exports.ZipkitNode = exports.Zipkit = void 0;
30
+ // Core ZIP functionality (re-exported from core module, but NOT the default)
31
+ __exportStar(require("../core"), exports);
32
+ const core_1 = __importDefault(require("../core"));
33
+ exports.Zipkit = core_1.default;
34
+ // Node.js-specific ZIP operations - default export (after export * to ensure it's the default)
35
+ const ZipkitNode_1 = __importDefault(require("./ZipkitNode"));
36
+ var ZipkitNode_2 = require("./ZipkitNode");
37
+ Object.defineProperty(exports, "ZipkitNode", { enumerable: true, get: function () { return __importDefault(ZipkitNode_2).default; } });
38
+ // Set as default export - this will be the default when importing from this module
39
+ exports.default = ZipkitNode_1.default;
40
+ var ZipCompressNode_1 = require("./ZipCompressNode");
41
+ Object.defineProperty(exports, "ZipCompressNode", { enumerable: true, get: function () { return ZipCompressNode_1.ZipCompressNode; } });
42
+ var ZipDecompressNode_1 = require("./ZipDecompressNode");
43
+ Object.defineProperty(exports, "ZipDecompressNode", { enumerable: true, get: function () { return ZipDecompressNode_1.ZipDecompressNode; } });
44
+ // Blockchain Node.js functionality
45
+ var blockchain_1 = require("../blockchain");
46
+ Object.defineProperty(exports, "WalletManagerNode", { enumerable: true, get: function () { return blockchain_1.WalletManagerNode; } });
47
+ Object.defineProperty(exports, "ZipkitWallet", { enumerable: true, get: function () { return blockchain_1.ZipkitWallet; } });
48
+ Object.defineProperty(exports, "ZipkitMinter", { enumerable: true, get: function () { return blockchain_1.ZipkitMinter; } });
49
+ Object.defineProperty(exports, "ZipkitVerifier", { enumerable: true, get: function () { return blockchain_1.ZipkitVerifier; } });
50
+ Object.defineProperty(exports, "CoreWalletManager", { enumerable: true, get: function () { return blockchain_1.CoreWalletManager; } });
51
+ Object.defineProperty(exports, "WalletAnalyzer", { enumerable: true, get: function () { return blockchain_1.WalletAnalyzer; } });
52
+ Object.defineProperty(exports, "createTimestamp", { enumerable: true, get: function () { return blockchain_1.createTimestamp; } });
53
+ Object.defineProperty(exports, "verifyOts", { enumerable: true, get: function () { return blockchain_1.verifyOts; } });
54
+ Object.defineProperty(exports, "verifyOtsZip", { enumerable: true, get: function () { return blockchain_1.verifyOtsZip; } });
55
+ // Timestamp verification
56
+ var ZipkitOTS_1 = require("../blockchain/core/ZipkitOTS");
57
+ Object.defineProperty(exports, "verifyTimestamp", { enumerable: true, get: function () { return ZipkitOTS_1.verifyOts; } });
58
+ // Platform detection
59
+ exports.PlatformUtils = {
60
+ // Browser detection
61
+ isBrowser: typeof window !== 'undefined' && typeof document !== 'undefined',
62
+ // Node.js detection
63
+ isNode: typeof process !== 'undefined' && process.versions && process.versions.node,
64
+ };
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;AAEH,6EAA6E;AAC7E,0CAAwB;AACxB,mDAA6B;AACpB,iBADF,cAAM,CACE;AAEf,+FAA+F;AAC/F,8DAA6C;AAC7C,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAC9B,mFAAmF;AACnF,kBAAe,oBAAiB,CAAC;AAEjC,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAE1B,mCAAmC;AACnC,4CAUuB;AATrB,+GAAA,iBAAiB,OAAA;AACjB,0GAAA,YAAY,OAAA;AACZ,0GAAA,YAAY,OAAA;AACZ,4GAAA,cAAc,OAAA;AACd,+GAAA,iBAAiB,OAAA;AACjB,4GAAA,cAAc,OAAA;AACd,6GAAA,eAAe,OAAA;AACf,uGAAA,SAAS,OAAA;AACT,0GAAA,YAAY,OAAA;AAyBd,yBAAyB;AACzB,0DAA4E;AAAnE,4GAAA,SAAS,OAAmB;AAErC,qBAAqB;AACR,QAAA,aAAa,GAAG;IAC3B,oBAAoB;IACpB,SAAS,EAAE,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW;IAC3E,sBAAsB;IACtB,MAAM,EAAE,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI;CACpF,CAAC"}
@@ -1,3 +1,54 @@
1
+ import type { Wallet, JsonRpcProvider } from 'ethers';
2
+ export interface WalletInfo {
3
+ address: string;
4
+ privateKey: string;
5
+ mnemonic: string;
6
+ }
7
+ export interface NetworkConfig {
8
+ name: string;
9
+ rpcUrl: string;
10
+ chainId: number;
11
+ explorerUrl: string;
12
+ }
13
+ export interface WalletSetupResult {
14
+ wallet: Wallet | null;
15
+ provider: JsonRpcProvider | null;
16
+ success: boolean;
17
+ message?: string;
18
+ }
19
+ export interface MintingResult {
20
+ success: boolean;
21
+ message: string;
22
+ tokenId?: string;
23
+ txHash?: string;
24
+ creationTimestamp?: number;
25
+ }
26
+ export interface MintingOptions {
27
+ wallet?: string;
28
+ network: string;
29
+ mintToken: boolean;
30
+ }
31
+ export interface TokenMetadata {
32
+ tokenId: string;
33
+ contractAddress: string;
34
+ network: string;
35
+ merkleRoot: string;
36
+ networkChainId?: number;
37
+ transactionHash?: string;
38
+ blockNumber?: number;
39
+ owner?: string;
40
+ mintedAt?: string;
41
+ mintDate?: string;
42
+ creationTimestamp?: number;
43
+ ipfsHash?: string;
44
+ version?: string;
45
+ }
46
+ export declare const NETWORKS: Record<string, NetworkConfig>;
47
+ export interface NeoZipKitInfo {
48
+ version: string;
49
+ releaseDate: string;
50
+ }
51
+ export declare const NEOZIPKIT_INFO: NeoZipKitInfo;
1
52
  export interface FileData {
2
53
  name: string;
3
54
  size: number;
@@ -5,7 +56,14 @@ export interface FileData {
5
56
  arrayBuffer(): Promise<ArrayBuffer>;
6
57
  }
7
58
  export interface ZipFileEntry {
59
+ filename: string;
60
+ comment?: string | null;
8
61
  fileData?: FileData;
62
+ fileBuffer?: Buffer | null;
63
+ isDirectory: boolean;
64
+ isMetaData: boolean;
65
+ isEncrypted: boolean;
66
+ sha256?: string | null;
9
67
  }
10
68
  export interface Support {
11
69
  base64: boolean;
@@ -19,3 +77,4 @@ export interface Support {
19
77
  streams: boolean;
20
78
  fileReader: boolean;
21
79
  }
80
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,38 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- // External module types are handled by installed @types packages
3
+ exports.NEOZIPKIT_INFO = exports.NETWORKS = void 0;
4
+ // ============================================================================
5
+ // Network Configuration
6
+ // ============================================================================
7
+ exports.NETWORKS = {
8
+ 'base': {
9
+ name: 'Base Mainnet',
10
+ rpcUrl: 'https://mainnet.base.org',
11
+ chainId: 8453,
12
+ explorerUrl: 'https://basescan.org'
13
+ },
14
+ 'base-sepolia': {
15
+ name: 'Base Sepolia',
16
+ rpcUrl: 'https://sepolia.base.org',
17
+ chainId: 84532,
18
+ explorerUrl: 'https://sepolia.basescan.org'
19
+ },
20
+ 'base-goerli': {
21
+ name: 'Base Goerli',
22
+ rpcUrl: 'https://goerli.base.org',
23
+ chainId: 84531,
24
+ explorerUrl: 'https://goerli.basescan.org'
25
+ },
26
+ 'localhost': {
27
+ name: 'Localhost',
28
+ rpcUrl: 'http://localhost:8545',
29
+ chainId: 31337,
30
+ explorerUrl: 'http://localhost:8545'
31
+ }
32
+ };
33
+ exports.NEOZIPKIT_INFO = {
34
+ version: '0.70.0-alpha',
35
+ releaseDate: '2024-10-04'
36
+ };
37
+ // External module types are handled by installed @types packages
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAsEA,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAElE,QAAA,QAAQ,GAAkC;IACrD,MAAM,EAAE;QACN,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,0BAA0B;QAClC,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,sBAAsB;KACpC;IACD,cAAc,EAAE;QACd,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,0BAA0B;QAClC,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,8BAA8B;KAC5C;IACD,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,yBAAyB;QACjC,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,6BAA6B;KAC3C;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,uBAAuB;QAC/B,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,uBAAuB;KACrC;CACF,CAAC;AAWW,QAAA,cAAc,GAAkB;IAC3C,OAAO,EAAE,cAAc;IACvB,WAAW,EAAE,YAAY;CAC1B,CAAC;AAyCF,iEAAiE"}
@@ -0,0 +1,269 @@
1
+ # NeoZipKit Examples
2
+
3
+ Basic examples demonstrating core ZipkitNode functionality for file-based ZIP operations.
4
+
5
+ ## Overview
6
+
7
+ These examples provide simple, focused demonstrations of ZipkitNode's core features. They are designed to be minimal and easy to understand, focusing on the essential API usage patterns.
8
+
9
+ For more advanced examples including full CLI tools, interactive prompts, and comprehensive error handling, see the [neozipkit-examples](https://github.com/NeoWareInc/neozipkit-examples) package.
10
+
11
+ ## Prerequisites
12
+
13
+ - Node.js 16+
14
+ - TypeScript (for running with ts-node)
15
+ - NeoZipKit installed: `yarn add neozipkit`
16
+
17
+ ## Running Examples
18
+
19
+ ### Option 1: Using ts-node (Recommended)
20
+
21
+ ```bash
22
+ # Install ts-node globally or use npx
23
+ npm install -g ts-node
24
+
25
+ # Run an example
26
+ ts-node examples/create-zip.ts
27
+ ```
28
+
29
+ ### Option 2: Compile and Run
30
+
31
+ ```bash
32
+ # Compile TypeScript
33
+ cd examples
34
+ tsc
35
+
36
+ # Run compiled JavaScript
37
+ node dist/create-zip.js
38
+ ```
39
+
40
+ ## Available Examples
41
+
42
+ ### 1. Create ZIP (`create-zip.ts`)
43
+
44
+ Demonstrates creating a ZIP archive from multiple files using `ZipkitNode.createZipFromFiles()`.
45
+
46
+ **Usage:**
47
+ ```bash
48
+ ts-node examples/create-zip.ts
49
+ ```
50
+
51
+ **What it does:**
52
+ - Creates a ZIP file from multiple source files
53
+ - Uses simple compression options
54
+ - Shows basic error handling
55
+
56
+ ### 2. Extract ZIP (`extract-zip.ts`)
57
+
58
+ Demonstrates extracting all files from a ZIP archive using `ZipkitNode.extractZipFile()`.
59
+
60
+ **Usage:**
61
+ ```bash
62
+ ts-node examples/extract-zip.ts
63
+ ```
64
+
65
+ **What it does:**
66
+ - Loads a ZIP file from disk
67
+ - Extracts all entries to a destination directory
68
+ - Preserves directory structure
69
+
70
+ ### 3. List ZIP (`list-zip.ts`)
71
+
72
+ Demonstrates listing ZIP archive contents using `ZipkitNode.getDirectory()`.
73
+
74
+ **Usage:**
75
+ ```bash
76
+ ts-node examples/list-zip.ts
77
+ ```
78
+
79
+ **What it does:**
80
+ - Loads a ZIP file
81
+ - Lists all entries with basic metadata
82
+ - Displays file sizes and compression information
83
+
84
+ ### 4. Blockchain Tokenization (`blockchain-tokenize.ts`)
85
+
86
+ Demonstrates creating a tokenized ZIP file with blockchain NFT minting.
87
+
88
+ **Usage:**
89
+ ```bash
90
+ # Set your wallet private key
91
+ export NEOZIP_WALLET_PASSKEY="0x..."
92
+
93
+ # Run the example
94
+ ts-node examples/blockchain-tokenize.ts
95
+ ```
96
+
97
+ **What it does:**
98
+ - Creates a ZIP file with files
99
+ - Calculates merkle root for integrity verification
100
+ - Mints an NFT token on the blockchain
101
+ - Embeds token metadata in the ZIP file
102
+
103
+ **Note:** This example requires:
104
+ - A wallet private key with testnet ETH
105
+ - Network configuration (defaults to Base Sepolia testnet)
106
+ - Gas fees for minting
107
+
108
+ ### `verify-tokenized-zip.ts`
109
+
110
+ Demonstrates verifying a tokenized ZIP file:
111
+ - Loads a tokenized ZIP file
112
+ - Extracts token metadata from `META-INF/NZIP.TOKEN`
113
+ - Calculates merkle root from ZIP contents
114
+ - Verifies the token on the blockchain
115
+ - Displays verification results
116
+
117
+ **Usage:**
118
+ ```bash
119
+ ts-node examples/verify-tokenized-zip.ts [path-to-tokenized.zip]
120
+ ```
121
+
122
+ **Example:**
123
+ ```bash
124
+ ts-node examples/verify-tokenized-zip.ts examples/output/tokenized.zip
125
+ ```
126
+
127
+ ## Example File Structure
128
+
129
+ Each example is self-contained and includes:
130
+ - Clear comments explaining each step
131
+ - Basic error handling
132
+ - Minimal dependencies (just ZipkitNode)
133
+ - Hardcoded example paths (modify as needed)
134
+
135
+ ## Advanced Examples
136
+
137
+ For production-ready CLI tools with:
138
+ - Full argument parsing
139
+ - Interactive prompts
140
+ - Comprehensive error handling
141
+ - Multiple compression methods
142
+ - Advanced blockchain features
143
+
144
+ See the [neozipkit-examples](https://github.com/NeoWareInc/neozipkit-examples) package which includes:
145
+ - `neozip` - Full-featured ZIP creation tool
146
+ - `neozip-legacy` - Legacy format support
147
+ - `neozip-ots` - OpenTimestamps integration
148
+
149
+ ## Modifying Examples
150
+
151
+ To use these examples with your own files:
152
+
153
+ 1. **Create ZIP Example**: Edit the `filePaths` array to point to your files
154
+ 2. **Extract ZIP Example**: Change `archivePath` and `destination` variables
155
+ 3. **List ZIP Example**: Update the `archivePath` variable
156
+ 4. **Blockchain Example**: Set your wallet key and network in environment variables
157
+
158
+ ## Security Best Practices
159
+
160
+ ### Private Key Handling
161
+
162
+ **CRITICAL**: Never commit private keys to version control or include them in your code.
163
+
164
+ #### Environment Variables
165
+
166
+ Always use environment variables for private keys:
167
+
168
+ **Option 1: Using .env.local (Recommended for local development)**
169
+ ```bash
170
+ # Create .env.local file (gitignored, local overrides)
171
+ # Edit .env.local and add your testnet private key
172
+ # NEOZIP_WALLET_PASSKEY=0x...
173
+ # NEOZIP_NETWORK=base-sepolia
174
+
175
+ # Run the example - it will automatically load .env.local
176
+ ts-node examples/blockchain-tokenize.ts
177
+ ```
178
+
179
+ **Option 2: Using .env file**
180
+ ```bash
181
+ # Create .env file from template
182
+ cp .env.example .env
183
+
184
+ # Edit .env and add your testnet private key
185
+ # NEOZIP_WALLET_PASSKEY=0x...
186
+
187
+ # Run the example - it will automatically load .env
188
+ ts-node examples/blockchain-tokenize.ts
189
+ ```
190
+
191
+ **Option 3: Manual export (for scripts)**
192
+ ```bash
193
+ # Load environment variables manually
194
+ export $(cat .env | xargs)
195
+ ts-node examples/blockchain-tokenize.ts
196
+ ```
197
+
198
+ **Note**: `.env.local` takes precedence over `.env` if both exist. This allows you to have a shared `.env` file while keeping local overrides in `.env.local` (which is gitignored).
199
+
200
+ #### Testnet vs Mainnet
201
+
202
+ - **Examples**: ONLY use testnet keys (Base Sepolia, Arbitrum Sepolia, Ethereum Sepolia)
203
+ - **Development**: Use testnet keys with minimal test funds
204
+ - **Production**: Use secure key management (HSMs, KMS) - see [SECURITY.md](../SECURITY.md)
205
+
206
+ #### Wallet Files
207
+
208
+ If `WalletManagerNode` creates wallet files (`wallet/neozip-wallet.json`):
209
+ - These files are automatically excluded from git (via `.gitignore`)
210
+ - They are also excluded from NPM packages (via `.npmignore`)
211
+ - Never commit these files to version control
212
+ - Delete wallet files if accidentally committed
213
+
214
+ #### What to Do If Keys Are Exposed
215
+
216
+ If you accidentally commit a private key:
217
+
218
+ 1. **Immediately rotate the key** - Generate a new key and transfer any funds
219
+ 2. **Remove from git history** - Use `git filter-branch` or BFG Repo-Cleaner
220
+ 3. **Check for unauthorized access** - Monitor the wallet address for transactions
221
+ 4. **Update all systems** - Replace the key in all environments
222
+
223
+ #### Best Practices Checklist
224
+
225
+ - [ ] Use `.env` file for private keys (excluded from git)
226
+ - [ ] Only use testnet keys for examples
227
+ - [ ] Never hardcode private keys in source code
228
+ - [ ] Verify `.gitignore` excludes wallet files
229
+ - [ ] Use secure key management for production
230
+ - [ ] Rotate keys regularly
231
+ - [ ] Monitor for exposed secrets
232
+
233
+ For complete security guidelines, see [SECURITY.md](../SECURITY.md).
234
+
235
+ ## Troubleshooting
236
+
237
+ ### TypeScript Errors
238
+
239
+ If you see TypeScript errors, ensure:
240
+ - NeoZipKit is installed: `yarn add neozipkit`
241
+ - TypeScript types are available: `yarn add -D @types/node`
242
+ - tsconfig.json is properly configured
243
+
244
+ ### Module Resolution Errors
245
+
246
+ If you see "Cannot find module" errors:
247
+ - Ensure you're running from the project root
248
+ - Check that `neozipkit` is in `node_modules`
249
+ - Try using absolute imports if relative imports fail
250
+
251
+ ### Blockchain Example Errors
252
+
253
+ If the blockchain example fails:
254
+ - Verify your wallet has testnet ETH
255
+ - Check network connectivity
256
+ - Ensure `NEOZIP_WALLET_PASSKEY` is set correctly
257
+ - See [contracts/README.md](../contracts/README.md) for testnet faucet information
258
+
259
+ ## Next Steps
260
+
261
+ 1. **Understand the API**: Read the [main README](../README.md) for detailed API documentation
262
+ 2. **Explore Advanced Features**: Check out the blockchain integration examples
263
+ 3. **Build Your Own Tools**: Use these examples as a starting point for your own applications
264
+ 4. **Check Advanced Examples**: See neozipkit-examples for production-ready implementations
265
+
266
+ ## License
267
+
268
+ These examples are part of the NeoZipKit package and are licensed under the same license as NeoZipKit.
269
+