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.
- package/LICENSE +22 -0
- package/README.md +410 -186
- package/contracts/ABI.txt +889 -0
- package/contracts/Bytecode.txt +1 -0
- package/contracts/COMPILATION_NOTES.md +59 -0
- package/contracts/QUICK_DEPLOY.md +286 -0
- package/contracts/README.md +235 -131
- package/contracts/VERIFICATION.md +308 -0
- package/contracts/deploy-interactive.js +448 -0
- package/contracts/deployment-arbitrum-sepolia.json +12 -0
- package/contracts/deployment-arbitrum.json +12 -0
- package/contracts/deployment-eth-sepolia.json +12 -0
- package/contracts/hardhat.config.js +114 -0
- package/contracts/package.json +20 -0
- package/contracts/scripts/compile-and-extract.js +119 -0
- package/contracts/scripts/verify-contract.js +223 -0
- package/contracts/src/{NZIP-NFT-Private.sol → NZIP-NFT-v2.0.sol} +66 -151
- package/contracts/src/NZIP-NFT.sol +9 -15
- package/dist/blockchain/browser/TokenVerifierBrowser.d.ts +67 -0
- package/dist/blockchain/browser/TokenVerifierBrowser.d.ts.map +1 -0
- package/dist/blockchain/browser/TokenVerifierBrowser.js +313 -0
- package/dist/blockchain/browser/TokenVerifierBrowser.js.map +1 -0
- package/dist/blockchain/browser/WalletManagerBrowser.d.ts +98 -0
- package/dist/blockchain/browser/WalletManagerBrowser.d.ts.map +1 -0
- package/dist/blockchain/browser/WalletManagerBrowser.js +434 -0
- package/dist/blockchain/browser/WalletManagerBrowser.js.map +1 -0
- package/dist/blockchain/browser/ZipkitMinterBrowser.d.ts +58 -0
- package/dist/blockchain/browser/ZipkitMinterBrowser.d.ts.map +1 -0
- package/dist/blockchain/browser/ZipkitMinterBrowser.js +317 -0
- package/dist/blockchain/browser/ZipkitMinterBrowser.js.map +1 -0
- package/dist/blockchain/browser/index.d.ts +11 -0
- package/dist/blockchain/browser/index.d.ts.map +1 -0
- package/dist/blockchain/browser/index.js +16 -0
- package/dist/blockchain/browser/index.js.map +1 -0
- package/dist/blockchain/core/WalletManager.d.ts +124 -0
- package/dist/blockchain/core/WalletManager.d.ts.map +1 -0
- package/dist/blockchain/{ZipKitWallet.js → core/WalletManager.js} +157 -177
- package/dist/blockchain/core/WalletManager.js.map +1 -0
- package/dist/blockchain/{ZipKitMinter.d.ts → core/ZipkitMinter.d.ts} +46 -11
- package/dist/blockchain/core/ZipkitMinter.d.ts.map +1 -0
- package/dist/blockchain/core/ZipkitMinter.js +548 -0
- package/dist/blockchain/core/ZipkitMinter.js.map +1 -0
- package/dist/blockchain/{ZipKitOTS.d.ts → core/ZipkitOTS.d.ts} +6 -15
- package/dist/blockchain/core/ZipkitOTS.d.ts.map +1 -0
- package/dist/blockchain/{ZipKitOTS.js → core/ZipkitOTS.js} +26 -84
- package/dist/blockchain/core/ZipkitOTS.js.map +1 -0
- package/dist/blockchain/core/ZipkitVerifier.d.ts +177 -0
- package/dist/blockchain/core/ZipkitVerifier.d.ts.map +1 -0
- package/dist/blockchain/core/ZipkitVerifier.js +632 -0
- package/dist/blockchain/core/ZipkitVerifier.js.map +1 -0
- package/dist/blockchain/core/contracts.d.ts +83 -0
- package/dist/blockchain/core/contracts.d.ts.map +1 -0
- package/dist/blockchain/core/contracts.js +341 -0
- package/dist/blockchain/core/contracts.js.map +1 -0
- package/dist/blockchain/core/index.d.ts +12 -0
- package/dist/blockchain/core/index.d.ts.map +1 -0
- package/dist/blockchain/core/index.js +59 -0
- package/dist/blockchain/core/index.js.map +1 -0
- package/dist/blockchain/index.d.ts +11 -7
- package/dist/blockchain/index.d.ts.map +1 -0
- package/dist/blockchain/index.js +18 -34
- package/dist/blockchain/index.js.map +1 -0
- package/dist/blockchain/node/WalletManagerNode.d.ts +47 -0
- package/dist/blockchain/node/WalletManagerNode.d.ts.map +1 -0
- package/dist/blockchain/node/WalletManagerNode.js +203 -0
- package/dist/blockchain/node/WalletManagerNode.js.map +1 -0
- package/dist/blockchain/node/index.d.ts +12 -0
- package/dist/blockchain/node/index.d.ts.map +1 -0
- package/dist/blockchain/node/index.js +24 -0
- package/dist/blockchain/node/index.js.map +1 -0
- package/dist/browser/ZipkitBrowser.d.ts +27 -0
- package/dist/browser/ZipkitBrowser.d.ts.map +1 -0
- package/dist/browser/{ZipKitBrowser.js → ZipkitBrowser.js} +96 -43
- package/dist/browser/ZipkitBrowser.js.map +1 -0
- package/dist/browser/index.d.ts +12 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +42 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser-esm/index.d.ts +12 -0
- package/dist/browser-esm/index.js +59559 -0
- package/dist/browser-esm/index.js.map +7 -0
- package/dist/browser-umd/index.d.ts +12 -0
- package/dist/browser-umd/index.js +59576 -0
- package/dist/browser-umd/index.js.map +7 -0
- package/dist/browser-umd/index.min.js +63 -0
- package/dist/browser.d.ts +8 -14
- package/dist/browser.js +13 -28
- package/dist/core/ZipCompress.d.ts +99 -0
- package/dist/core/ZipCompress.d.ts.map +1 -0
- package/dist/core/ZipCompress.js +309 -0
- package/dist/core/ZipCompress.js.map +1 -0
- package/dist/core/ZipDecompress.d.ts +58 -0
- package/dist/core/ZipDecompress.d.ts.map +1 -0
- package/dist/core/ZipDecompress.js +172 -0
- package/dist/core/ZipDecompress.js.map +1 -0
- package/dist/{shared → core}/ZipEntry.d.ts +8 -1
- package/dist/core/ZipEntry.d.ts.map +1 -0
- package/dist/{shared → core}/ZipEntry.js +225 -82
- package/dist/core/ZipEntry.js.map +1 -0
- package/dist/core/Zipkit.d.ts +315 -0
- package/dist/core/Zipkit.d.ts.map +1 -0
- package/dist/core/Zipkit.js +647 -0
- package/dist/core/Zipkit.js.map +1 -0
- package/dist/core/components/HashCalculator.d.ts +138 -0
- package/dist/core/components/HashCalculator.d.ts.map +1 -0
- package/dist/core/components/HashCalculator.js +360 -0
- package/dist/core/components/HashCalculator.js.map +1 -0
- package/dist/core/components/Logger.d.ts +73 -0
- package/dist/core/components/Logger.d.ts.map +1 -0
- package/dist/core/components/Logger.js +156 -0
- package/dist/core/components/Logger.js.map +1 -0
- package/dist/core/components/ProgressTracker.d.ts +43 -0
- package/dist/core/components/ProgressTracker.d.ts.map +1 -0
- package/dist/core/components/ProgressTracker.js +112 -0
- package/dist/core/components/ProgressTracker.js.map +1 -0
- package/dist/{shared → core}/components/Support.d.ts +1 -0
- package/dist/core/components/Support.d.ts.map +1 -0
- package/dist/{shared → core}/components/Support.js +1 -0
- package/dist/core/components/Support.js.map +1 -0
- package/dist/{shared → core}/components/Util.d.ts +7 -2
- package/dist/core/components/Util.d.ts.map +1 -0
- package/dist/{shared → core}/components/Util.js +14 -34
- package/dist/core/components/Util.js.map +1 -0
- package/dist/{shared → core}/constants/Errors.d.ts +1 -2
- package/dist/core/constants/Errors.d.ts.map +1 -0
- package/dist/{shared → core}/constants/Errors.js +1 -3
- package/dist/core/constants/Errors.js.map +1 -0
- package/dist/{shared → core}/constants/Headers.d.ts +3 -0
- package/dist/core/constants/Headers.d.ts.map +1 -0
- package/dist/{shared → core}/constants/Headers.js +20 -17
- package/dist/core/constants/Headers.js.map +1 -0
- package/dist/core/encryption/Manager.d.ts +58 -0
- package/dist/core/encryption/Manager.d.ts.map +1 -0
- package/dist/core/encryption/Manager.js +121 -0
- package/dist/core/encryption/Manager.js.map +1 -0
- package/dist/core/encryption/ZipCrypto.d.ts +172 -0
- package/dist/core/encryption/ZipCrypto.d.ts.map +1 -0
- package/dist/core/encryption/ZipCrypto.js +554 -0
- package/dist/core/encryption/ZipCrypto.js.map +1 -0
- package/dist/core/encryption/index.d.ts +9 -0
- package/dist/core/encryption/index.d.ts.map +1 -0
- package/dist/core/encryption/index.js +17 -0
- package/dist/core/encryption/index.js.map +1 -0
- package/dist/core/encryption/types.d.ts +29 -0
- package/dist/core/encryption/types.d.ts.map +1 -0
- package/dist/core/encryption/types.js +12 -0
- package/dist/core/encryption/types.js.map +1 -0
- package/dist/core/index.d.ts +24 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +57 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/version.d.ts +5 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core/version.js +31 -0
- package/dist/core/version.js.map +1 -0
- package/dist/index.d.ts +8 -18
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -35
- package/dist/index.js.map +1 -0
- package/dist/node/ZipCompressNode.d.ts +123 -0
- package/dist/node/ZipCompressNode.d.ts.map +1 -0
- package/dist/node/ZipCompressNode.js +576 -0
- package/dist/node/ZipCompressNode.js.map +1 -0
- package/dist/node/ZipDecompressNode.d.ts +120 -0
- package/dist/node/ZipDecompressNode.d.ts.map +1 -0
- package/dist/node/ZipDecompressNode.js +461 -0
- package/dist/node/ZipDecompressNode.js.map +1 -0
- package/dist/node/ZipkitNode.d.ts +406 -0
- package/dist/node/ZipkitNode.d.ts.map +1 -0
- package/dist/node/ZipkitNode.js +1305 -0
- package/dist/node/ZipkitNode.js.map +1 -0
- package/dist/node/index.d.ts +26 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +65 -0
- package/dist/node/index.js.map +1 -0
- package/dist/types/index.d.ts +59 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +36 -1
- package/dist/types/index.js.map +1 -0
- package/examples/README.md +269 -0
- package/examples/blockchain-tokenize.ts +354 -0
- package/examples/create-zip.ts +172 -0
- package/examples/extract-zip.ts +158 -0
- package/examples/list-zip.ts +161 -0
- package/examples/test-files/data.json +116 -0
- package/examples/test-files/document.md +80 -0
- package/examples/test-files/document.txt +2 -0
- package/examples/test-files/file1.txt +48 -0
- package/examples/test-files/file2.txt +80 -0
- package/examples/tsconfig.json +44 -0
- package/examples/unzip-token.ts +491 -0
- package/examples/verify-tokenized-zip.ts +305 -0
- package/examples/zip-token.ts +604 -0
- package/package.json +108 -24
- package/src/blockchain/README.md +59 -66
- package/src/{browser/TokenVerifierBrowser.ts-remove → blockchain/browser/TokenVerifierBrowser.ts} +125 -79
- package/src/blockchain/browser/WalletManagerBrowser.ts +486 -0
- package/src/blockchain/browser/ZipkitMinterBrowser.ts +400 -0
- package/src/blockchain/browser/index.ts +13 -0
- package/src/blockchain/{ZipKitWallet.ts → core/WalletManager.ts} +241 -143
- package/src/blockchain/core/ZipkitMinter.ts +716 -0
- package/src/blockchain/{ZipKitOTS.ts → core/ZipkitOTS.ts} +28 -62
- package/src/blockchain/core/ZipkitVerifier.ts +853 -0
- package/src/blockchain/core/contracts.ts +370 -0
- package/src/blockchain/core/index.ts +71 -0
- package/src/blockchain/index.ts +21 -55
- package/src/blockchain/node/WalletManagerNode.ts +171 -0
- package/src/blockchain/node/index.ts +40 -0
- package/src/browser/{ZipKitBrowser.ts → ZipkitBrowser.ts} +104 -41
- package/src/browser/index.esm.ts +37 -0
- package/src/browser/index.ts +25 -0
- package/src/core/ZipCompress.ts +398 -0
- package/src/core/ZipDecompress.ts +212 -0
- package/src/{shared → core}/ZipEntry.ts +240 -90
- package/src/core/Zipkit.ts +794 -0
- package/src/core/components/HashCalculator.ts +384 -0
- package/src/core/components/Logger.ts +180 -0
- package/src/core/components/ProgressTracker.ts +134 -0
- package/src/{shared → core}/components/Util.ts +12 -34
- package/src/{shared → core}/constants/Errors.ts +0 -4
- package/src/{shared → core}/constants/Headers.ts +19 -17
- package/src/core/encryption/Manager.ts +137 -0
- package/src/core/encryption/ZipCrypto.ts +650 -0
- package/src/core/encryption/index.ts +15 -0
- package/src/core/encryption/types.ts +33 -0
- package/src/core/index.ts +34 -0
- package/src/core/version.ts +33 -0
- package/src/index.ts +54 -25
- package/src/node/ZipCompressNode.ts +632 -0
- package/src/node/ZipDecompressNode.ts +508 -0
- package/src/node/ZipkitNode.ts +1559 -0
- package/src/node/index.ts +69 -0
- package/src/types/index.ts +131 -1
- package/src/types/modules.d.ts +1 -11
- package/src/types/opentimestamps.d.ts +1 -23
- package/contracts/INTEGRATION.md +0 -338
- package/contracts/NETWORKS.md +0 -156
- package/contracts/NZIP-NFT-bytecode.txt +0 -1
- package/contracts/constants.ts +0 -952
- package/contracts/deploy-bytecode.mjs +0 -94
- package/dist/blockchain/CertificateToken.d.ts +0 -48
- package/dist/blockchain/CertificateToken.js +0 -386
- package/dist/blockchain/ZipKitMinter.js +0 -347
- package/dist/blockchain/ZipKitNFT.d.ts +0 -3
- package/dist/blockchain/ZipKitNFT.js +0 -7
- package/dist/blockchain/ZipKitVerifier.d.ts +0 -69
- package/dist/blockchain/ZipKitVerifier.js +0 -289
- package/dist/blockchain/ZipKitWallet.d.ts +0 -69
- package/dist/blockchain/contracts.d.ts +0 -14
- package/dist/blockchain/contracts.js +0 -77
- package/dist/blockchain/types.d.ts +0 -47
- package/dist/blockchain/types.js +0 -30
- package/dist/browser/ZipKitBrowser.d.ts +0 -18
- package/dist/browser/ZipKitStampBrowser.d.ts +0 -2
- package/dist/browser/ZipKitStampBrowser.js +0 -12
- package/dist/browser-index.d.ts +0 -18
- package/dist/browser-index.js +0 -57
- package/dist/server/ZipKitServer.d.ts +0 -74
- package/dist/server/ZipKitServer.js +0 -310
- package/dist/shared/ZipKit.d.ts +0 -243
- package/dist/shared/ZipKit.js +0 -772
- package/dist/shared/components/CertificateOTS.d.ts +0 -15
- package/dist/shared/components/CertificateOTS.js +0 -116
- package/dist/shared/components/FileSys.d.ts +0 -2
- package/dist/shared/components/FileSys.js +0 -113
- package/dist/shared/components/HashAccumulator.d.ts +0 -55
- package/dist/shared/components/HashAccumulator.js +0 -100
- package/dist/shared/components/ZipCrypto.d.ts +0 -3
- package/dist/shared/components/ZipCrypto.js +0 -78
- package/dist/shared/components/merkleTree.d.ts +0 -66
- package/dist/shared/components/merkleTree.js +0 -136
- package/dist/shared/types/index.d.ts +0 -21
- package/dist/shared/types/index.js +0 -3
- package/dist/shared/types.d.ts +0 -33
- package/dist/shared/types.js +0 -8
- package/dist/shared/version.d.ts +0 -2
- package/dist/shared/version.js +0 -6
- package/src/blockchain/CertificateToken.ts +0 -444
- package/src/blockchain/ZipKitMinter.ts +0 -470
- package/src/blockchain/ZipKitNFT.ts +0 -12
- package/src/blockchain/ZipKitVerifier.ts +0 -382
- package/src/blockchain/contracts.ts +0 -88
- package/src/blockchain/types.ts +0 -91
- package/src/browser/CertificateGeneratorBrowser.ts-remove +0 -498
- package/src/browser/ZipKitStampBrowser.ts +0 -9
- package/src/browser-index.ts +0 -36
- package/src/server/README.md +0 -25
- package/src/server/ZipKitServer.ts +0 -305
- package/src/shared/ZipKit.ts +0 -881
- package/src/shared/components/CertificateOTS.ts +0 -132
- package/src/shared/components/FileSys.ts +0 -87
- package/src/shared/components/HashAccumulator.ts +0 -113
- package/src/shared/components/ZipCrypto.ts +0 -91
- package/src/shared/components/merkleTree.ts +0 -162
- package/src/shared/types/index.ts +0 -25
- package/src/shared/types/modules.d.ts +0 -22
- package/src/shared/types/opentimestamps.d.ts +0 -23
- package/src/shared/types.d.ts +0 -8
- package/src/shared/types.ts +0 -43
- package/src/shared/version.ts +0 -3
- /package/src/{shared → core}/components/Support.ts +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* ======================================
|
|
3
|
-
*
|
|
3
|
+
* ZipkitOTS.ts - OpenTimestamps Integration
|
|
4
4
|
* ======================================
|
|
5
5
|
*
|
|
6
6
|
* This module provides comprehensive OpenTimestamps (OTS) functionality for ZIP files,
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
* - Integration with ZIP file metadata
|
|
15
15
|
*
|
|
16
16
|
* @fileoverview OpenTimestamps utilities for blockchain-enabled ZIP files
|
|
17
|
-
* @version 0.1.2
|
|
18
17
|
* @author NeoWare Inc.
|
|
19
18
|
*/
|
|
20
19
|
"use server";
|
|
@@ -22,13 +21,21 @@
|
|
|
22
21
|
|
|
23
22
|
// ===== Imports =====
|
|
24
23
|
import moment from 'moment-timezone';
|
|
25
|
-
import
|
|
26
|
-
import
|
|
27
|
-
import
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
import Zipkit from '../../core';
|
|
25
|
+
import { TIMESTAMP_METADATA, TIMESTAMP_SUBMITTED, CMP_METHOD } from '../../core/constants/Headers';
|
|
26
|
+
import { crc32 } from '../../core/encryption/ZipCrypto';
|
|
27
|
+
|
|
28
|
+
// Platform detection
|
|
29
|
+
const isNode = typeof process !== 'undefined' && process.versions && process.versions.node;
|
|
30
|
+
|
|
31
|
+
// Node.js specific imports
|
|
32
|
+
let fs: any = null;
|
|
33
|
+
if (isNode) {
|
|
34
|
+
fs = require('fs');
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Type declaration for opentimestamps module
|
|
38
|
+
// @ts-ignore
|
|
32
39
|
|
|
33
40
|
// Some environments inject a global bitcore object which interferes with
|
|
34
41
|
// OpenTimestamps. Clearing it avoids runtime errors when importing the module.
|
|
@@ -45,6 +52,7 @@ let OTSInstance: any = null;
|
|
|
45
52
|
*/
|
|
46
53
|
async function getOpenTimestamps() {
|
|
47
54
|
if (!OTSInstance) {
|
|
55
|
+
// @ts-ignore
|
|
48
56
|
OTSInstance = (await import('opentimestamps')).default;
|
|
49
57
|
}
|
|
50
58
|
return OTSInstance;
|
|
@@ -193,7 +201,7 @@ export function bufferToArrayBuffer(buf: Buffer): ArrayBuffer {
|
|
|
193
201
|
/**
|
|
194
202
|
* Finds the OpenTimestamps entry in a ZIP file.
|
|
195
203
|
* Searches for TIMESTAMP_METADATA first, then TIMESTAMP_SUBMITTED.
|
|
196
|
-
* @param zip -
|
|
204
|
+
* @param zip - Zipkit instance to search
|
|
197
205
|
* @returns ZIP entry containing OTS proof, or null if not found
|
|
198
206
|
*/
|
|
199
207
|
export function getOtsEntry(zip: any): any | null {
|
|
@@ -215,7 +223,7 @@ export function getOtsEntry(zip: any): any | null {
|
|
|
215
223
|
|
|
216
224
|
/**
|
|
217
225
|
* Extracts OTS proof data from a ZIP entry.
|
|
218
|
-
* @param zip -
|
|
226
|
+
* @param zip - Zipkit instance
|
|
219
227
|
* @param otsEntry - ZIP entry containing OTS data
|
|
220
228
|
* @returns Promise resolving to OTS proof buffer, or null if extraction fails
|
|
221
229
|
*/
|
|
@@ -230,7 +238,7 @@ export async function getOtsBuffer(zip: any, otsEntry: any): Promise<Buffer | nu
|
|
|
230
238
|
|
|
231
239
|
/**
|
|
232
240
|
* Safely extracts merkle root from a ZIP file.
|
|
233
|
-
* @param zip -
|
|
241
|
+
* @param zip - Zipkit instance
|
|
234
242
|
* @returns Merkle root hash string, or null if not available
|
|
235
243
|
*/
|
|
236
244
|
export function getMerkleRootSafe(zip: any): string | null {
|
|
@@ -257,7 +265,7 @@ function coerceDate(val: any): Date | undefined {
|
|
|
257
265
|
/**
|
|
258
266
|
* Verifies OpenTimestamps proof within a ZIP file.
|
|
259
267
|
* Extracts merkle root and OTS proof, then verifies against Bitcoin blockchain.
|
|
260
|
-
* @param zip -
|
|
268
|
+
* @param zip - Zipkit instance containing files and OTS proof
|
|
261
269
|
* @returns Promise resolving to verification result with status: 'none', 'error', 'pending', or 'valid'
|
|
262
270
|
*/
|
|
263
271
|
export async function verifyOtsZip(zip: any): Promise<OtsVerifyResult> {
|
|
@@ -406,52 +414,6 @@ export async function parseVerifyResult(verifyResult: TimestampResult): Promise<
|
|
|
406
414
|
return tsInfo;
|
|
407
415
|
}
|
|
408
416
|
|
|
409
|
-
// =========================
|
|
410
|
-
// Server-side certificate generation (HTML)
|
|
411
|
-
// =========================
|
|
412
|
-
|
|
413
|
-
/**
|
|
414
|
-
* Creates an HTML certificate for OpenTimestamps verification.
|
|
415
|
-
* Generates a certificate file documenting the timestamp verification results.
|
|
416
|
-
* @param fileName - Base name for the ZIP file (used for certificate filename)
|
|
417
|
-
* @param zipEntries - Array of ZIP entries to include in certificate
|
|
418
|
-
* @param timestampResult - Verification result to document
|
|
419
|
-
* @returns Promise resolving to success message with certificate filename, or error message
|
|
420
|
-
*/
|
|
421
|
-
export async function createCertificateOts(
|
|
422
|
-
fileName: string,
|
|
423
|
-
zipEntries: ZipEntry[],
|
|
424
|
-
timestampResult: TimestampResult
|
|
425
|
-
): Promise<string> {
|
|
426
|
-
if (!timestampResult || !timestampResult.merkleRoot || !fileName) {
|
|
427
|
-
return Errors.CERTIFICATE_OTS_BAD;
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
const rsp = await deserializeOts(timestampResult);
|
|
431
|
-
if (!rsp) return Errors.CERTIFICATE_OTS_FAILED;
|
|
432
|
-
const result = JSON.parse(rsp);
|
|
433
|
-
|
|
434
|
-
const cert = OTS(
|
|
435
|
-
result.attestStr,
|
|
436
|
-
fileName,
|
|
437
|
-
timestampResult.merkleRoot,
|
|
438
|
-
result.needsUpdateMsg,
|
|
439
|
-
result.attestationValues,
|
|
440
|
-
zipEntries,
|
|
441
|
-
false,
|
|
442
|
-
);
|
|
443
|
-
if (!cert) return Errors.CERTIFICATE_OTS_FAILED;
|
|
444
|
-
|
|
445
|
-
const certFileName = fileName + '.certificate.html';
|
|
446
|
-
try {
|
|
447
|
-
fs.writeFileSync(certFileName, cert, { encoding: 'utf8' });
|
|
448
|
-
return `Certificate created as ${certFileName}`;
|
|
449
|
-
} catch (error) {
|
|
450
|
-
console.error(`Failed to write certificate file: ${error}`);
|
|
451
|
-
return Errors.CERTIFICATE_OTS_FAILED;
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
|
|
455
417
|
/**
|
|
456
418
|
* Upgrades OpenTimestamps proof in an existing ZIP file.
|
|
457
419
|
* Replaces old timestamp metadata with upgraded OTS proof data.
|
|
@@ -461,6 +423,10 @@ export async function createCertificateOts(
|
|
|
461
423
|
* @throws Error if upgrade fails
|
|
462
424
|
*/
|
|
463
425
|
export async function upgradeOTS(zipFilePath: string, upgradedOts: Buffer): Promise<void> {
|
|
426
|
+
if (!fs) {
|
|
427
|
+
throw new Error('upgradeOTS() is only available in Node.js environment');
|
|
428
|
+
}
|
|
429
|
+
|
|
464
430
|
if (!fs.existsSync(zipFilePath)) {
|
|
465
431
|
throw new Error(`Zip file not found: ${zipFilePath}`);
|
|
466
432
|
}
|
|
@@ -474,7 +440,7 @@ export async function upgradeOTS(zipFilePath: string, upgradedOts: Buffer): Prom
|
|
|
474
440
|
|
|
475
441
|
try {
|
|
476
442
|
// Load the existing zip file
|
|
477
|
-
const zipKit = new
|
|
443
|
+
const zipKit = new Zipkit();
|
|
478
444
|
const zipData = fs.readFileSync(zipFilePath);
|
|
479
445
|
zipKit.loadZip(zipData);
|
|
480
446
|
const zipEntries = zipKit.getDirectory(false) || [];
|
|
@@ -497,7 +463,7 @@ export async function upgradeOTS(zipFilePath: string, upgradedOts: Buffer): Prom
|
|
|
497
463
|
}
|
|
498
464
|
|
|
499
465
|
// Copy the entry data
|
|
500
|
-
const entryData = zipKit.copyEntry(entry);
|
|
466
|
+
const entryData = await zipKit.copyEntry(entry);
|
|
501
467
|
if (!entryData) {
|
|
502
468
|
throw new Error(`Failed to copy entry data for: ${entry.filename}`);
|
|
503
469
|
}
|
|
@@ -603,7 +569,7 @@ export async function upgradeOTS(zipFilePath: string, upgradedOts: Buffer): Prom
|
|
|
603
569
|
/**
|
|
604
570
|
* Creates a ZIP metadata entry containing OpenTimestamps proof.
|
|
605
571
|
* Creates a special ZIP entry marked as metadata that stores OTS proof data.
|
|
606
|
-
* @param zipKit -
|
|
572
|
+
* @param zipKit - Zipkit instance to add metadata entry to
|
|
607
573
|
* @param ots - Buffer containing OpenTimestamps proof data
|
|
608
574
|
* @returns ZIP entry containing OTS metadata, or null if creation failed
|
|
609
575
|
*/
|