@neoware_inc/neozipkit 0.5.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 (171) hide show
  1. package/README.md +134 -0
  2. package/dist/browser/ZipkitBrowser.d.ts +27 -0
  3. package/dist/browser/ZipkitBrowser.d.ts.map +1 -0
  4. package/dist/browser/ZipkitBrowser.js +303 -0
  5. package/dist/browser/ZipkitBrowser.js.map +1 -0
  6. package/dist/browser/index.d.ts +9 -0
  7. package/dist/browser/index.d.ts.map +1 -0
  8. package/dist/browser/index.esm.d.ts +12 -0
  9. package/dist/browser/index.esm.d.ts.map +1 -0
  10. package/dist/browser/index.esm.js +46 -0
  11. package/dist/browser/index.esm.js.map +1 -0
  12. package/dist/browser/index.js +38 -0
  13. package/dist/browser/index.js.map +1 -0
  14. package/dist/browser-esm/index.d.ts +9 -0
  15. package/dist/browser-esm/index.js +50211 -0
  16. package/dist/browser-esm/index.js.map +7 -0
  17. package/dist/browser-umd/index.d.ts +9 -0
  18. package/dist/browser-umd/index.js +50221 -0
  19. package/dist/browser-umd/index.js.map +7 -0
  20. package/dist/browser-umd/index.min.js +39 -0
  21. package/dist/browser.d.ts +9 -0
  22. package/dist/browser.js +38 -0
  23. package/dist/core/ZipCompress.d.ts +99 -0
  24. package/dist/core/ZipCompress.d.ts.map +1 -0
  25. package/dist/core/ZipCompress.js +287 -0
  26. package/dist/core/ZipCompress.js.map +1 -0
  27. package/dist/core/ZipCopy.d.ts +175 -0
  28. package/dist/core/ZipCopy.d.ts.map +1 -0
  29. package/dist/core/ZipCopy.js +310 -0
  30. package/dist/core/ZipCopy.js.map +1 -0
  31. package/dist/core/ZipDecompress.d.ts +57 -0
  32. package/dist/core/ZipDecompress.d.ts.map +1 -0
  33. package/dist/core/ZipDecompress.js +155 -0
  34. package/dist/core/ZipDecompress.js.map +1 -0
  35. package/dist/core/ZipEntry.d.ts +138 -0
  36. package/dist/core/ZipEntry.d.ts.map +1 -0
  37. package/dist/core/ZipEntry.js +829 -0
  38. package/dist/core/ZipEntry.js.map +1 -0
  39. package/dist/core/Zipkit.d.ts +315 -0
  40. package/dist/core/Zipkit.d.ts.map +1 -0
  41. package/dist/core/Zipkit.js +647 -0
  42. package/dist/core/Zipkit.js.map +1 -0
  43. package/dist/core/ZstdManager.d.ts +56 -0
  44. package/dist/core/ZstdManager.d.ts.map +1 -0
  45. package/dist/core/ZstdManager.js +144 -0
  46. package/dist/core/ZstdManager.js.map +1 -0
  47. package/dist/core/components/HashCalculator.d.ts +138 -0
  48. package/dist/core/components/HashCalculator.d.ts.map +1 -0
  49. package/dist/core/components/HashCalculator.js +360 -0
  50. package/dist/core/components/HashCalculator.js.map +1 -0
  51. package/dist/core/components/Logger.d.ts +73 -0
  52. package/dist/core/components/Logger.d.ts.map +1 -0
  53. package/dist/core/components/Logger.js +156 -0
  54. package/dist/core/components/Logger.js.map +1 -0
  55. package/dist/core/components/ProgressTracker.d.ts +43 -0
  56. package/dist/core/components/ProgressTracker.d.ts.map +1 -0
  57. package/dist/core/components/ProgressTracker.js +112 -0
  58. package/dist/core/components/ProgressTracker.js.map +1 -0
  59. package/dist/core/components/Support.d.ts +64 -0
  60. package/dist/core/components/Support.d.ts.map +1 -0
  61. package/dist/core/components/Support.js +71 -0
  62. package/dist/core/components/Support.js.map +1 -0
  63. package/dist/core/components/Util.d.ts +26 -0
  64. package/dist/core/components/Util.d.ts.map +1 -0
  65. package/dist/core/components/Util.js +95 -0
  66. package/dist/core/components/Util.js.map +1 -0
  67. package/dist/core/constants/Errors.d.ts +52 -0
  68. package/dist/core/constants/Errors.d.ts.map +1 -0
  69. package/dist/core/constants/Errors.js +67 -0
  70. package/dist/core/constants/Errors.js.map +1 -0
  71. package/dist/core/constants/Headers.d.ts +170 -0
  72. package/dist/core/constants/Headers.d.ts.map +1 -0
  73. package/dist/core/constants/Headers.js +194 -0
  74. package/dist/core/constants/Headers.js.map +1 -0
  75. package/dist/core/encryption/Manager.d.ts +58 -0
  76. package/dist/core/encryption/Manager.d.ts.map +1 -0
  77. package/dist/core/encryption/Manager.js +121 -0
  78. package/dist/core/encryption/Manager.js.map +1 -0
  79. package/dist/core/encryption/ZipCrypto.d.ts +172 -0
  80. package/dist/core/encryption/ZipCrypto.d.ts.map +1 -0
  81. package/dist/core/encryption/ZipCrypto.js +554 -0
  82. package/dist/core/encryption/ZipCrypto.js.map +1 -0
  83. package/dist/core/encryption/index.d.ts +9 -0
  84. package/dist/core/encryption/index.d.ts.map +1 -0
  85. package/dist/core/encryption/index.js +17 -0
  86. package/dist/core/encryption/index.js.map +1 -0
  87. package/dist/core/encryption/types.d.ts +29 -0
  88. package/dist/core/encryption/types.d.ts.map +1 -0
  89. package/dist/core/encryption/types.js +12 -0
  90. package/dist/core/encryption/types.js.map +1 -0
  91. package/dist/core/index.d.ts +27 -0
  92. package/dist/core/index.d.ts.map +1 -0
  93. package/dist/core/index.js +59 -0
  94. package/dist/core/index.js.map +1 -0
  95. package/dist/core/version.d.ts +5 -0
  96. package/dist/core/version.d.ts.map +1 -0
  97. package/dist/core/version.js +31 -0
  98. package/dist/core/version.js.map +1 -0
  99. package/dist/index.d.ts +9 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +38 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/node/ZipCompressNode.d.ts +123 -0
  104. package/dist/node/ZipCompressNode.d.ts.map +1 -0
  105. package/dist/node/ZipCompressNode.js +565 -0
  106. package/dist/node/ZipCompressNode.js.map +1 -0
  107. package/dist/node/ZipCopyNode.d.ts +165 -0
  108. package/dist/node/ZipCopyNode.d.ts.map +1 -0
  109. package/dist/node/ZipCopyNode.js +347 -0
  110. package/dist/node/ZipCopyNode.js.map +1 -0
  111. package/dist/node/ZipDecompressNode.d.ts +197 -0
  112. package/dist/node/ZipDecompressNode.d.ts.map +1 -0
  113. package/dist/node/ZipDecompressNode.js +678 -0
  114. package/dist/node/ZipDecompressNode.js.map +1 -0
  115. package/dist/node/ZipkitNode.d.ts +466 -0
  116. package/dist/node/ZipkitNode.d.ts.map +1 -0
  117. package/dist/node/ZipkitNode.js +1426 -0
  118. package/dist/node/ZipkitNode.js.map +1 -0
  119. package/dist/node/index.d.ts +25 -0
  120. package/dist/node/index.d.ts.map +1 -0
  121. package/dist/node/index.js +54 -0
  122. package/dist/node/index.js.map +1 -0
  123. package/dist/types/index.d.ts +45 -0
  124. package/dist/types/index.d.ts.map +1 -0
  125. package/dist/types/index.js +11 -0
  126. package/dist/types/index.js.map +1 -0
  127. package/examples/README.md +261 -0
  128. package/examples/append-data.json +44 -0
  129. package/examples/copy-zip-append.ts +139 -0
  130. package/examples/copy-zip.ts +152 -0
  131. package/examples/create-zip.ts +172 -0
  132. package/examples/extract-zip.ts +118 -0
  133. package/examples/list-zip.ts +161 -0
  134. package/examples/test-files/data.json +116 -0
  135. package/examples/test-files/document.md +80 -0
  136. package/examples/test-files/document.txt +6 -0
  137. package/examples/test-files/file1.txt +48 -0
  138. package/examples/test-files/file2.txt +80 -0
  139. package/examples/tsconfig.json +44 -0
  140. package/package.json +167 -0
  141. package/src/browser/ZipkitBrowser.ts +305 -0
  142. package/src/browser/index.esm.ts +32 -0
  143. package/src/browser/index.ts +19 -0
  144. package/src/core/ZipCompress.ts +370 -0
  145. package/src/core/ZipCopy.ts +434 -0
  146. package/src/core/ZipDecompress.ts +191 -0
  147. package/src/core/ZipEntry.ts +917 -0
  148. package/src/core/Zipkit.ts +794 -0
  149. package/src/core/ZstdManager.ts +165 -0
  150. package/src/core/components/HashCalculator.ts +384 -0
  151. package/src/core/components/Logger.ts +180 -0
  152. package/src/core/components/ProgressTracker.ts +134 -0
  153. package/src/core/components/Support.ts +77 -0
  154. package/src/core/components/Util.ts +91 -0
  155. package/src/core/constants/Errors.ts +78 -0
  156. package/src/core/constants/Headers.ts +205 -0
  157. package/src/core/encryption/Manager.ts +137 -0
  158. package/src/core/encryption/ZipCrypto.ts +650 -0
  159. package/src/core/encryption/index.ts +15 -0
  160. package/src/core/encryption/types.ts +33 -0
  161. package/src/core/index.ts +42 -0
  162. package/src/core/version.ts +33 -0
  163. package/src/index.ts +19 -0
  164. package/src/node/ZipCompressNode.ts +618 -0
  165. package/src/node/ZipCopyNode.ts +437 -0
  166. package/src/node/ZipDecompressNode.ts +793 -0
  167. package/src/node/ZipkitNode.ts +1706 -0
  168. package/src/node/index.ts +40 -0
  169. package/src/types/index.ts +68 -0
  170. package/src/types/modules.d.ts +22 -0
  171. package/src/types/opentimestamps.d.ts +1 -0
@@ -0,0 +1,360 @@
1
+ "use strict";
2
+ // ======================================
3
+ // HashCalculator.ts - Unified Hash Component
4
+ // Combines StreamHashCalculator, HashAccumulator, and MerkleTree functionality
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.HashCalculator = void 0;
41
+ const crypto = __importStar(require("crypto"));
42
+ const ZipCrypto_1 = require("../encryption/ZipCrypto");
43
+ /**
44
+ * Unified hash calculator supporting:
45
+ * - Incremental CRC-32 and SHA-256 calculation from raw data chunks
46
+ * - Accumulation of pre-computed SHA-256 hashes with XOR and Merkle tree operations
47
+ * - Merkle tree construction, proof generation, and verification
48
+ *
49
+ * Usage examples:
50
+ *
51
+ * Incremental hash calculation:
52
+ * ```typescript
53
+ * const calculator = new HashCalculator({ useSHA256: true });
54
+ * calculator.update(dataChunk);
55
+ * const crc32 = calculator.finalizeCRC32();
56
+ * const sha256 = calculator.finalizeSHA256();
57
+ * ```
58
+ *
59
+ * Hash accumulation:
60
+ * ```typescript
61
+ * const calculator = new HashCalculator({ enableAccumulation: true });
62
+ * calculator.addHash(sha256Hash1);
63
+ * calculator.addHash(sha256Hash2);
64
+ * const xor = calculator.xorHash();
65
+ * const merkle = calculator.merkleRoot();
66
+ * ```
67
+ */
68
+ class HashCalculator {
69
+ /**
70
+ * Creates a new HashCalculator instance
71
+ * @param options - Configuration options:
72
+ * - useSHA256: Enable SHA-256 calculation for incremental mode (default: false)
73
+ * - enableAccumulation: Enable hash accumulation mode (default: false)
74
+ */
75
+ constructor(options) {
76
+ // Incremental hash calculation state (from StreamHashCalculator)
77
+ this.crc32State = ~0;
78
+ this.sha256Hash = null;
79
+ this.useSHA256 = false;
80
+ // Hash accumulation state (from HashAccumulator)
81
+ this.hashes = [];
82
+ this.xorResult = Buffer.alloc(32, 0);
83
+ this.enableAccumulation = false;
84
+ // Merkle tree state (from MerkleTree)
85
+ this.merkleLeaves = [];
86
+ this.merkleLayers = [];
87
+ this.merkleOptions = {
88
+ hashLeaves: false,
89
+ sortLeaves: true,
90
+ sortPairs: true,
91
+ duplicateOdd: true
92
+ };
93
+ this.useSHA256 = options?.useSHA256 || false;
94
+ this.enableAccumulation = options?.enableAccumulation || false;
95
+ if (this.useSHA256) {
96
+ this.sha256Hash = crypto.createHash('sha256');
97
+ }
98
+ }
99
+ // ============================================================================
100
+ // Incremental Hash Calculation Methods (from StreamHashCalculator)
101
+ // ============================================================================
102
+ /**
103
+ * Update hash state with a new chunk of data
104
+ * Updates both CRC-32 and SHA-256 (if enabled) incrementally
105
+ * @param chunk - Data chunk to process
106
+ */
107
+ update(chunk) {
108
+ // Update CRC-32 incrementally using existing crc32update function
109
+ for (let i = 0; i < chunk.length; i++) {
110
+ this.crc32State = (0, ZipCrypto_1.crc32update)(this.crc32State, chunk[i]);
111
+ }
112
+ // Update SHA-256 incrementally
113
+ if (this.sha256Hash) {
114
+ this.sha256Hash.update(chunk);
115
+ }
116
+ }
117
+ /**
118
+ * Get final CRC-32 value
119
+ * @returns Final CRC-32 value as unsigned 32-bit integer
120
+ */
121
+ finalizeCRC32() {
122
+ return ~this.crc32State >>> 0; // Finalize with ~0 like the existing crc32 function
123
+ }
124
+ /**
125
+ * Get final SHA-256 hash as hex string
126
+ * @returns SHA-256 hash as hex string, or null if SHA-256 not enabled
127
+ */
128
+ finalizeSHA256() {
129
+ if (this.sha256Hash) {
130
+ return this.sha256Hash.digest('hex');
131
+ }
132
+ return null;
133
+ }
134
+ /**
135
+ * Reset the incremental hash calculation state
136
+ */
137
+ reset() {
138
+ this.crc32State = ~0;
139
+ if (this.sha256Hash) {
140
+ this.sha256Hash = crypto.createHash('sha256');
141
+ }
142
+ }
143
+ // ============================================================================
144
+ // Hash Accumulation Methods (from HashAccumulator)
145
+ // ============================================================================
146
+ /**
147
+ * Adds a pre-computed SHA-256 hash to both the XOR accumulation and hash array
148
+ * @param hash - Hash value as hex string or Buffer (must be 32 bytes for SHA-256)
149
+ */
150
+ addHash(hash) {
151
+ if (!this.enableAccumulation) {
152
+ throw new Error('Hash accumulation not enabled. Set enableAccumulation: true in constructor.');
153
+ }
154
+ // Convert hash to Buffer if it's a string
155
+ const hashBuffer = typeof hash === 'string'
156
+ ? Buffer.from(hash, 'hex')
157
+ : hash;
158
+ // Add to array for Merkle tree
159
+ this.hashes.push(hashBuffer);
160
+ this.merkleLeaves.push(hashBuffer);
161
+ // XOR accumulation
162
+ for (let i = 0; i < 32; i++) {
163
+ this.xorResult[i] ^= hashBuffer[i];
164
+ }
165
+ // Rebuild Merkle tree when hash is added
166
+ this.rebuildMerkleTree();
167
+ }
168
+ /**
169
+ * Gets the accumulated XOR of all added hashes
170
+ * @returns Hex string of XOR result
171
+ */
172
+ xorHash() {
173
+ if (!this.enableAccumulation) {
174
+ throw new Error('Hash accumulation not enabled. Set enableAccumulation: true in constructor.');
175
+ }
176
+ return this.xorResult.toString('hex');
177
+ }
178
+ /**
179
+ * Creates a Merkle tree from accumulated hashes and returns the root
180
+ * @returns Hex string of Merkle root, or null if no hashes added
181
+ */
182
+ merkleRoot() {
183
+ if (!this.enableAccumulation) {
184
+ throw new Error('Hash accumulation not enabled. Set enableAccumulation: true in constructor.');
185
+ }
186
+ if (this.merkleLeaves.length === 0) {
187
+ return null;
188
+ }
189
+ // If Merkle tree not built yet, build it
190
+ if (this.merkleLayers.length === 0) {
191
+ this.rebuildMerkleTree();
192
+ }
193
+ const root = this.merkleLayers[this.merkleLayers.length - 1];
194
+ if (root && root.length > 0) {
195
+ return root[0].toString('hex');
196
+ }
197
+ return null;
198
+ }
199
+ /**
200
+ * Gets the number of hashes accumulated
201
+ * @returns Number of accumulated hashes
202
+ */
203
+ leafCount() {
204
+ if (!this.enableAccumulation) {
205
+ throw new Error('Hash accumulation not enabled. Set enableAccumulation: true in constructor.');
206
+ }
207
+ return this.hashes.length;
208
+ }
209
+ /**
210
+ * Clears the accumulated hashes and resets XOR buffer
211
+ */
212
+ clear() {
213
+ if (!this.enableAccumulation) {
214
+ throw new Error('Hash accumulation not enabled. Set enableAccumulation: true in constructor.');
215
+ }
216
+ this.hashes = [];
217
+ this.merkleLeaves = [];
218
+ this.merkleLayers = [];
219
+ this.xorResult = Buffer.alloc(32, 0);
220
+ }
221
+ /**
222
+ * Combines multiple hash results into a single Merkle root
223
+ * Static method for combining results from multiple HashCalculator instances
224
+ * @param results - Array of objects containing merkleRoot properties
225
+ * @returns Combined Merkle root as hex string, or null if no valid roots
226
+ */
227
+ static combineResults(results) {
228
+ const calculator = new HashCalculator({ enableAccumulation: true });
229
+ // Combine all hashes
230
+ for (const result of results) {
231
+ if (result.merkleRoot) {
232
+ calculator.addHash(result.merkleRoot);
233
+ }
234
+ }
235
+ return calculator.merkleRoot();
236
+ }
237
+ // ============================================================================
238
+ // Merkle Tree Methods (from MerkleTree)
239
+ // ============================================================================
240
+ /**
241
+ * Computes SHA-256 hash of input data
242
+ * @param data - Data to hash
243
+ * @returns Buffer containing hash
244
+ */
245
+ hash(data) {
246
+ return crypto.createHash('sha256').update(data).digest();
247
+ }
248
+ /**
249
+ * Combines two child hashes to create parent hash
250
+ * @param left - Left child hash
251
+ * @param right - Right child hash
252
+ * @returns Combined hash of children
253
+ */
254
+ combinedHash(left, right) {
255
+ if (this.merkleOptions.sortPairs && Buffer.compare(left, right) > 0) {
256
+ [left, right] = [right, left];
257
+ }
258
+ return this.hash(Buffer.concat([left, right]));
259
+ }
260
+ /**
261
+ * Builds the Merkle tree by creating successive layers of hashes
262
+ * @param nodes - Array of nodes in current layer
263
+ */
264
+ createHashes(nodes) {
265
+ while (nodes.length > 1) {
266
+ const layerIndex = this.merkleLayers.length;
267
+ this.merkleLayers.push([]);
268
+ // Process pairs of nodes
269
+ for (let i = 0; i < nodes.length - 1; i += 2) {
270
+ const left = nodes[i];
271
+ const right = nodes[i + 1];
272
+ const hash = this.combinedHash(left, right);
273
+ this.merkleLayers[layerIndex].push(hash);
274
+ }
275
+ // Handle odd number of nodes
276
+ if (nodes.length % 2 === 1) {
277
+ const last = nodes[nodes.length - 1];
278
+ if (this.merkleOptions.duplicateOdd) {
279
+ // Duplicate the last node if odd
280
+ const hash = this.combinedHash(last, last);
281
+ this.merkleLayers[layerIndex].push(hash);
282
+ }
283
+ else {
284
+ // Push last node up to next layer
285
+ this.merkleLayers[layerIndex].push(last);
286
+ }
287
+ }
288
+ nodes = this.merkleLayers[layerIndex];
289
+ }
290
+ }
291
+ /**
292
+ * Rebuilds the Merkle tree from current leaves
293
+ */
294
+ rebuildMerkleTree() {
295
+ if (this.merkleLeaves.length === 0) {
296
+ this.merkleLayers = [];
297
+ return;
298
+ }
299
+ // Process leaves according to options
300
+ const processedLeaves = this.merkleLeaves.map(leaf => {
301
+ if (this.merkleOptions.hashLeaves) {
302
+ return this.hash(leaf);
303
+ }
304
+ return Buffer.isBuffer(leaf) ? leaf : Buffer.from(leaf);
305
+ });
306
+ if (this.merkleOptions.sortLeaves) {
307
+ processedLeaves.sort(Buffer.compare);
308
+ }
309
+ this.merkleLayers = [processedLeaves];
310
+ this.createHashes(processedLeaves);
311
+ }
312
+ /**
313
+ * Generates a proof of inclusion for a leaf node
314
+ * @param leaf - The leaf node to generate proof for
315
+ * @returns Array of sibling hashes needed to reconstruct root
316
+ * @throws Error if leaf not found in tree or accumulation not enabled
317
+ */
318
+ getProof(leaf) {
319
+ if (!this.enableAccumulation) {
320
+ throw new Error('Hash accumulation not enabled. Set enableAccumulation: true in constructor.');
321
+ }
322
+ if (this.merkleLayers.length === 0) {
323
+ this.rebuildMerkleTree();
324
+ }
325
+ let index = this.merkleLeaves.findIndex(item => item.equals(leaf));
326
+ if (index === -1) {
327
+ throw new Error('Leaf not found in tree');
328
+ }
329
+ return this.merkleLayers.reduce((proof, layer) => {
330
+ if (layer.length === 1)
331
+ return proof;
332
+ const pairIndex = index % 2 === 0 ? index + 1 : index - 1;
333
+ if (pairIndex < layer.length) {
334
+ proof.push(layer[pairIndex]);
335
+ }
336
+ index = Math.floor(index / 2);
337
+ return proof;
338
+ }, []);
339
+ }
340
+ /**
341
+ * Verifies a proof of inclusion for a leaf node
342
+ * @param proof - Array of sibling hashes from getProof()
343
+ * @param targetHash - Hash of the leaf node being verified
344
+ * @param root - Expected root hash
345
+ * @returns boolean indicating if proof is valid
346
+ */
347
+ verify(proof, targetHash, root) {
348
+ let computedHash = targetHash;
349
+ for (const proofElement of proof) {
350
+ computedHash = Buffer.compare(computedHash, proofElement) <= 0
351
+ ? this.combinedHash(computedHash, proofElement)
352
+ : this.combinedHash(proofElement, computedHash);
353
+ }
354
+ return computedHash.equals(root);
355
+ }
356
+ }
357
+ exports.HashCalculator = HashCalculator;
358
+ // Default export
359
+ exports.default = HashCalculator;
360
+ //# sourceMappingURL=HashCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HashCalculator.js","sourceRoot":"","sources":["../../../src/core/components/HashCalculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Global Logger Utility for NeoZipKit
3
+ * Provides centralized console control with configurable log levels
4
+ */
5
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
6
+ export interface LoggerConfig {
7
+ enabled: boolean;
8
+ level: LogLevel;
9
+ }
10
+ /**
11
+ * Global Logger class for controlling console output throughout NeoZipKit
12
+ */
13
+ export declare class Logger {
14
+ private static config;
15
+ private static originalConsole;
16
+ /**
17
+ * Configure the logger
18
+ */
19
+ static configure(config: Partial<LoggerConfig>): void;
20
+ /**
21
+ * Get current logger configuration
22
+ */
23
+ static getConfig(): LoggerConfig;
24
+ /**
25
+ * Enable logging
26
+ */
27
+ static enable(): void;
28
+ /**
29
+ * Disable all logging
30
+ */
31
+ static disable(): void;
32
+ /**
33
+ * Set log level
34
+ */
35
+ static setLevel(level: LogLevel): void;
36
+ /**
37
+ * Check if a log level should be output
38
+ */
39
+ private static shouldLog;
40
+ /**
41
+ * Log a message
42
+ */
43
+ static log(...args: any[]): void;
44
+ /**
45
+ * Log an error message
46
+ */
47
+ static error(...args: any[]): void;
48
+ /**
49
+ * Log a warning message
50
+ */
51
+ static warn(...args: any[]): void;
52
+ /**
53
+ * Log a debug message
54
+ */
55
+ static debug(...args: any[]): void;
56
+ /**
57
+ * Log an info message
58
+ */
59
+ static info(...args: any[]): void;
60
+ /**
61
+ * Override console methods globally (use with caution)
62
+ */
63
+ static overrideConsole(): void;
64
+ /**
65
+ * Restore original console methods
66
+ */
67
+ static restoreConsole(): void;
68
+ }
69
+ /**
70
+ * Environment-based configuration
71
+ */
72
+ export declare function configureLoggerFromEnvironment(): void;
73
+ //# sourceMappingURL=Logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../../src/core/components/Logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,MAAM,CAGnB;IAEF,OAAO,CAAC,MAAM,CAAC,eAAe,CAM5B;IAEF;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAIrD;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,YAAY;IAIhC;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,IAAI;IAIrB;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,IAAI;IAItB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAKtC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAUxB;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAMhC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAMlC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAMjC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAOlC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAOjC;;OAEG;IACH,MAAM,CAAC,eAAe,IAAI,IAAI;IAQ9B;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI,IAAI;CAQ9B;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAuBrD"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ /**
3
+ * Global Logger Utility for NeoZipKit
4
+ * Provides centralized console control with configurable log levels
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.Logger = void 0;
8
+ exports.configureLoggerFromEnvironment = configureLoggerFromEnvironment;
9
+ /**
10
+ * Global Logger class for controlling console output throughout NeoZipKit
11
+ */
12
+ class Logger {
13
+ /**
14
+ * Configure the logger
15
+ */
16
+ static configure(config) {
17
+ this.config = { ...this.config, ...config };
18
+ }
19
+ /**
20
+ * Get current logger configuration
21
+ */
22
+ static getConfig() {
23
+ return { ...this.config };
24
+ }
25
+ /**
26
+ * Enable logging
27
+ */
28
+ static enable() {
29
+ this.config.enabled = true;
30
+ }
31
+ /**
32
+ * Disable all logging
33
+ */
34
+ static disable() {
35
+ this.config.enabled = false;
36
+ }
37
+ /**
38
+ * Set log level
39
+ */
40
+ static setLevel(level) {
41
+ this.config.level = level;
42
+ }
43
+ /**
44
+ * Check if a log level should be output
45
+ */
46
+ static shouldLog(level) {
47
+ if (!this.config.enabled)
48
+ return false;
49
+ const levels = ['debug', 'info', 'warn', 'error', 'silent'];
50
+ const currentLevelIndex = levels.indexOf(this.config.level);
51
+ const requestedLevelIndex = levels.indexOf(level);
52
+ return requestedLevelIndex >= currentLevelIndex;
53
+ }
54
+ /**
55
+ * Log a message
56
+ */
57
+ static log(...args) {
58
+ if (this.shouldLog('info')) {
59
+ this.originalConsole.log(...args);
60
+ }
61
+ }
62
+ /**
63
+ * Log an error message
64
+ */
65
+ static error(...args) {
66
+ if (this.shouldLog('error')) {
67
+ this.originalConsole.error(...args);
68
+ }
69
+ }
70
+ /**
71
+ * Log a warning message
72
+ */
73
+ static warn(...args) {
74
+ if (this.shouldLog('warn')) {
75
+ this.originalConsole.warn(...args);
76
+ }
77
+ }
78
+ /**
79
+ * Log a debug message
80
+ */
81
+ static debug(...args) {
82
+ if (this.shouldLog('debug')) {
83
+ // Use console.log for debug messages to ensure they're visible
84
+ this.originalConsole.log(...args);
85
+ }
86
+ }
87
+ /**
88
+ * Log an info message
89
+ */
90
+ static info(...args) {
91
+ if (this.shouldLog('info')) {
92
+ this.originalConsole.info(...args);
93
+ }
94
+ }
95
+ /**
96
+ * Override console methods globally (use with caution)
97
+ */
98
+ static overrideConsole() {
99
+ console.log = (...args) => this.log(...args);
100
+ console.error = (...args) => this.error(...args);
101
+ console.warn = (...args) => this.warn(...args);
102
+ console.debug = (...args) => this.debug(...args);
103
+ console.info = (...args) => this.info(...args);
104
+ }
105
+ /**
106
+ * Restore original console methods
107
+ */
108
+ static restoreConsole() {
109
+ console.log = this.originalConsole.log;
110
+ console.error = this.originalConsole.error;
111
+ console.warn = this.originalConsole.warn;
112
+ console.debug = this.originalConsole.debug;
113
+ console.info = this.originalConsole.info;
114
+ }
115
+ }
116
+ exports.Logger = Logger;
117
+ Logger.config = {
118
+ enabled: true,
119
+ level: 'info'
120
+ };
121
+ Logger.originalConsole = {
122
+ log: console.log,
123
+ error: console.error,
124
+ warn: console.warn,
125
+ debug: console.debug,
126
+ info: console.info
127
+ };
128
+ /**
129
+ * Environment-based configuration
130
+ */
131
+ function configureLoggerFromEnvironment() {
132
+ const env = typeof process !== 'undefined' ? process.env : {};
133
+ // Check for NEOZIP_DEBUG environment variable
134
+ if (env.NEOZIP_DEBUG === 'false') {
135
+ Logger.disable();
136
+ }
137
+ else if (env.NEOZIP_DEBUG === 'true') {
138
+ Logger.enable();
139
+ Logger.setLevel('debug');
140
+ }
141
+ // Check for NEOZIP_LOG_LEVEL
142
+ if (env.NEOZIP_LOG_LEVEL) {
143
+ const level = env.NEOZIP_LOG_LEVEL;
144
+ if (['debug', 'info', 'warn', 'error', 'silent'].includes(level)) {
145
+ Logger.setLevel(level);
146
+ }
147
+ }
148
+ // Check for NODE_ENV
149
+ if (env.NODE_ENV === 'production') {
150
+ Logger.setLevel('error');
151
+ }
152
+ }
153
+ // Auto-configure from environment on import
154
+ // Only run in Node.js environment
155
+ configureLoggerFromEnvironment();
156
+ //# sourceMappingURL=Logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../../src/core/components/Logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Progress tracker for streaming operations
3
+ * Provides real-time progress updates and ETA calculations
4
+ */
5
+ export declare class ProgressTracker {
6
+ private startTime;
7
+ private lastUpdateTime;
8
+ private totalBytes;
9
+ private processedBytes;
10
+ private fileName;
11
+ private lastReportedPercent;
12
+ constructor(fileName: string, totalBytes: number);
13
+ /**
14
+ * Update progress with bytes processed
15
+ * @param bytesProcessed - Number of bytes processed in this update
16
+ */
17
+ update(bytesProcessed: number): void;
18
+ /**
19
+ * Set total bytes (useful when file size changes)
20
+ */
21
+ setTotalBytes(totalBytes: number): void;
22
+ /**
23
+ * Report progress if enough time has passed or significant progress made
24
+ */
25
+ private reportProgress;
26
+ /**
27
+ * Print progress information
28
+ */
29
+ private printProgress;
30
+ /**
31
+ * Complete progress tracking
32
+ */
33
+ complete(): void;
34
+ /**
35
+ * Get current progress percentage
36
+ */
37
+ getProgressPercent(): number;
38
+ /**
39
+ * Get processing rate in bytes per second
40
+ */
41
+ getProcessingRate(): number;
42
+ }
43
+ //# sourceMappingURL=ProgressTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressTracker.d.ts","sourceRoot":"","sources":["../../../src/core/components/ProgressTracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,mBAAmB,CAAc;gBAE7B,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAQhD;;;OAGG;IACH,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAKpC;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIvC;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAiCrB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAuBhB;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,iBAAiB,IAAI,MAAM;CAI5B"}