neozip-blockchain 0.5.1

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 (127) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +189 -0
  3. package/dist/browser/TokenVerifierBrowser.d.ts +63 -0
  4. package/dist/browser/TokenVerifierBrowser.d.ts.map +1 -0
  5. package/dist/browser/TokenVerifierBrowser.js +358 -0
  6. package/dist/browser/TokenVerifierBrowser.js.map +1 -0
  7. package/dist/browser/WalletManagerBrowser.d.ts +99 -0
  8. package/dist/browser/WalletManagerBrowser.d.ts.map +1 -0
  9. package/dist/browser/WalletManagerBrowser.js +434 -0
  10. package/dist/browser/WalletManagerBrowser.js.map +1 -0
  11. package/dist/browser/ZipkitMinterBrowser.d.ts +59 -0
  12. package/dist/browser/ZipkitMinterBrowser.d.ts.map +1 -0
  13. package/dist/browser/ZipkitMinterBrowser.js +337 -0
  14. package/dist/browser/ZipkitMinterBrowser.js.map +1 -0
  15. package/dist/browser/index.d.ts +12 -0
  16. package/dist/browser/index.d.ts.map +1 -0
  17. package/dist/browser/index.js +19 -0
  18. package/dist/browser/index.js.map +1 -0
  19. package/dist/constants/index.d.ts +5 -0
  20. package/dist/constants/index.d.ts.map +1 -0
  21. package/dist/constants/index.js +21 -0
  22. package/dist/constants/index.js.map +1 -0
  23. package/dist/constants/metadata.d.ts +18 -0
  24. package/dist/constants/metadata.d.ts.map +1 -0
  25. package/dist/constants/metadata.js +33 -0
  26. package/dist/constants/metadata.js.map +1 -0
  27. package/dist/constants/servers.d.ts +38 -0
  28. package/dist/constants/servers.d.ts.map +1 -0
  29. package/dist/constants/servers.js +54 -0
  30. package/dist/constants/servers.js.map +1 -0
  31. package/dist/core/ContractVersionRegistry.d.ts +63 -0
  32. package/dist/core/ContractVersionRegistry.d.ts.map +1 -0
  33. package/dist/core/ContractVersionRegistry.js +128 -0
  34. package/dist/core/ContractVersionRegistry.js.map +1 -0
  35. package/dist/core/WalletManager.d.ts +123 -0
  36. package/dist/core/WalletManager.d.ts.map +1 -0
  37. package/dist/core/WalletManager.js +360 -0
  38. package/dist/core/WalletManager.js.map +1 -0
  39. package/dist/core/ZipkitMinter.d.ts +155 -0
  40. package/dist/core/ZipkitMinter.d.ts.map +1 -0
  41. package/dist/core/ZipkitMinter.js +625 -0
  42. package/dist/core/ZipkitMinter.js.map +1 -0
  43. package/dist/core/ZipkitVerifier.d.ts +252 -0
  44. package/dist/core/ZipkitVerifier.d.ts.map +1 -0
  45. package/dist/core/ZipkitVerifier.js +1370 -0
  46. package/dist/core/ZipkitVerifier.js.map +1 -0
  47. package/dist/core/adapters/AdapterFactory.d.ts +22 -0
  48. package/dist/core/adapters/AdapterFactory.d.ts.map +1 -0
  49. package/dist/core/adapters/AdapterFactory.js +62 -0
  50. package/dist/core/adapters/AdapterFactory.js.map +1 -0
  51. package/dist/core/adapters/ContractVersionAdapter.d.ts +96 -0
  52. package/dist/core/adapters/ContractVersionAdapter.d.ts.map +1 -0
  53. package/dist/core/adapters/ContractVersionAdapter.js +9 -0
  54. package/dist/core/adapters/ContractVersionAdapter.js.map +1 -0
  55. package/dist/core/adapters/V2_10Adapter.d.ts +24 -0
  56. package/dist/core/adapters/V2_10Adapter.d.ts.map +1 -0
  57. package/dist/core/adapters/V2_10Adapter.js +87 -0
  58. package/dist/core/adapters/V2_10Adapter.js.map +1 -0
  59. package/dist/core/adapters/V2_11Adapter.d.ts +24 -0
  60. package/dist/core/adapters/V2_11Adapter.d.ts.map +1 -0
  61. package/dist/core/adapters/V2_11Adapter.js +87 -0
  62. package/dist/core/adapters/V2_11Adapter.js.map +1 -0
  63. package/dist/core/adapters/V2_50Adapter.d.ts +105 -0
  64. package/dist/core/adapters/V2_50Adapter.d.ts.map +1 -0
  65. package/dist/core/adapters/V2_50Adapter.js +263 -0
  66. package/dist/core/adapters/V2_50Adapter.js.map +1 -0
  67. package/dist/core/contracts.d.ts +169 -0
  68. package/dist/core/contracts.d.ts.map +1 -0
  69. package/dist/core/contracts.js +731 -0
  70. package/dist/core/contracts.js.map +1 -0
  71. package/dist/core/index.d.ts +24 -0
  72. package/dist/core/index.d.ts.map +1 -0
  73. package/dist/core/index.js +82 -0
  74. package/dist/core/index.js.map +1 -0
  75. package/dist/index.d.ts +15 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +40 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/node/WalletManagerNode.d.ts +47 -0
  80. package/dist/node/WalletManagerNode.d.ts.map +1 -0
  81. package/dist/node/WalletManagerNode.js +203 -0
  82. package/dist/node/WalletManagerNode.js.map +1 -0
  83. package/dist/node/index.d.ts +12 -0
  84. package/dist/node/index.d.ts.map +1 -0
  85. package/dist/node/index.js +21 -0
  86. package/dist/node/index.js.map +1 -0
  87. package/dist/ots/ZipkitOTS.d.ts +152 -0
  88. package/dist/ots/ZipkitOTS.d.ts.map +1 -0
  89. package/dist/ots/ZipkitOTS.js +544 -0
  90. package/dist/ots/ZipkitOTS.js.map +1 -0
  91. package/dist/ots/index.d.ts +9 -0
  92. package/dist/ots/index.d.ts.map +1 -0
  93. package/dist/ots/index.js +25 -0
  94. package/dist/ots/index.js.map +1 -0
  95. package/dist/types/index.d.ts +84 -0
  96. package/dist/types/index.d.ts.map +1 -0
  97. package/dist/types/index.js +37 -0
  98. package/dist/types/index.js.map +1 -0
  99. package/dist/utils/Logger.d.ts +73 -0
  100. package/dist/utils/Logger.d.ts.map +1 -0
  101. package/dist/utils/Logger.js +156 -0
  102. package/dist/utils/Logger.js.map +1 -0
  103. package/dist/utils/crc32.d.ts +6 -0
  104. package/dist/utils/crc32.d.ts.map +1 -0
  105. package/dist/utils/crc32.js +23 -0
  106. package/dist/utils/crc32.js.map +1 -0
  107. package/dist/zipstamp-server/CalendarManager.d.ts +238 -0
  108. package/dist/zipstamp-server/CalendarManager.d.ts.map +1 -0
  109. package/dist/zipstamp-server/CalendarManager.js +364 -0
  110. package/dist/zipstamp-server/CalendarManager.js.map +1 -0
  111. package/dist/zipstamp-server/ZipstampServerAPI.d.ts +427 -0
  112. package/dist/zipstamp-server/ZipstampServerAPI.d.ts.map +1 -0
  113. package/dist/zipstamp-server/ZipstampServerAPI.js +696 -0
  114. package/dist/zipstamp-server/ZipstampServerAPI.js.map +1 -0
  115. package/dist/zipstamp-server/ZipstampServerClient.d.ts +590 -0
  116. package/dist/zipstamp-server/ZipstampServerClient.d.ts.map +1 -0
  117. package/dist/zipstamp-server/ZipstampServerClient.js +433 -0
  118. package/dist/zipstamp-server/ZipstampServerClient.js.map +1 -0
  119. package/dist/zipstamp-server/ZipstampServerHelpers.d.ts +430 -0
  120. package/dist/zipstamp-server/ZipstampServerHelpers.d.ts.map +1 -0
  121. package/dist/zipstamp-server/ZipstampServerHelpers.js +503 -0
  122. package/dist/zipstamp-server/ZipstampServerHelpers.js.map +1 -0
  123. package/dist/zipstamp-server/index.d.ts +24 -0
  124. package/dist/zipstamp-server/index.d.ts.map +1 -0
  125. package/dist/zipstamp-server/index.js +67 -0
  126. package/dist/zipstamp-server/index.js.map +1 -0
  127. package/package.json +117 -0
@@ -0,0 +1,84 @@
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
+ encryptedHash?: string;
37
+ networkChainId: number;
38
+ contractVersion: string;
39
+ transactionHash?: string;
40
+ blockNumber?: number;
41
+ owner?: string;
42
+ mintedAt?: string;
43
+ mintDate?: string;
44
+ creationTimestamp?: number;
45
+ ipfsHash?: string;
46
+ originalTimestamp?: {
47
+ digest: string;
48
+ tokenId?: string;
49
+ transactionHash?: string;
50
+ timestamp: string;
51
+ network: string;
52
+ networkChainId?: number;
53
+ contractAddress?: string;
54
+ batchId?: string;
55
+ };
56
+ }
57
+ export declare const NETWORKS: Record<string, NetworkConfig>;
58
+ export interface NeoZipBlockchainInfo {
59
+ version: string;
60
+ releaseDate: string;
61
+ }
62
+ export declare const NEOZIP_BLOCKCHAIN_INFO: NeoZipBlockchainInfo;
63
+ /**
64
+ * Interface for ZIP entry representation
65
+ * Used for compatibility with neozipkit's ZipEntry
66
+ */
67
+ export interface ZipEntryLike {
68
+ filename: string;
69
+ sha256?: string | null;
70
+ isDirectory?: boolean;
71
+ isMetaData?: boolean;
72
+ }
73
+ /**
74
+ * Interface for Zipkit-like operations
75
+ * Used for optional integration with neozipkit
76
+ */
77
+ export interface ZipkitLike {
78
+ getMerkleRoot?(): string | null;
79
+ getDirectory?(includeMetadata?: boolean): ZipEntryLike[];
80
+ extract?(entry: ZipEntryLike, raw?: boolean): Promise<Buffer | null>;
81
+ getZipEntry?(filename: string): ZipEntryLike | null;
82
+ extractToBuffer?(entry: ZipEntryLike, options?: any): Promise<Buffer>;
83
+ }
84
+ //# 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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"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NEOZIP_BLOCKCHAIN_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.NEOZIP_BLOCKCHAIN_INFO = {
34
+ version: '0.1.0',
35
+ releaseDate: '2025-01-01'
36
+ };
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAmFA,+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,sBAAsB,GAAyB;IAC1D,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,YAAY;CAC1B,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Global Logger Utility for neozip-blockchain
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 neozip-blockchain
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/utils/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 neozip-blockchain
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 neozip-blockchain
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/utils/Logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * CRC32 checksum for ZIP metadata entries.
3
+ * Pure JS implementation so the library does not require neozipkit at compile time.
4
+ */
5
+ export declare function crc32(data: Buffer | Uint8Array): number;
6
+ //# sourceMappingURL=crc32.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crc32.d.ts","sourceRoot":"","sources":["../../src/utils/crc32.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAevD"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.crc32 = crc32;
4
+ /**
5
+ * CRC32 checksum for ZIP metadata entries.
6
+ * Pure JS implementation so the library does not require neozipkit at compile time.
7
+ */
8
+ function crc32(data) {
9
+ const table = new Int32Array(256);
10
+ for (let i = 0; i < 256; i++) {
11
+ let c = i;
12
+ for (let j = 0; j < 8; j++) {
13
+ c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
14
+ }
15
+ table[i] = c;
16
+ }
17
+ let crc = 0xffffffff;
18
+ for (let i = 0; i < data.length; i++) {
19
+ crc = table[(crc ^ data[i]) & 0xff] ^ (crc >>> 8);
20
+ }
21
+ return (crc ^ 0xffffffff) >>> 0;
22
+ }
23
+ //# sourceMappingURL=crc32.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crc32.js","sourceRoot":"","sources":["../../src/utils/crc32.ts"],"names":[],"mappings":";;AAIA,sBAeC;AAnBD;;;GAGG;AACH,SAAgB,KAAK,CAAC,IAAyB;IAC7C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;QACD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,IAAI,GAAG,GAAG,UAAU,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,238 @@
1
+ /**
2
+ * CalendarManager - Multi-calendar support for redundancy
3
+ *
4
+ * Similar to OpenTimestamps' approach of submitting to multiple calendars,
5
+ * this class manages multiple Zipstamp server calendars for reliability.
6
+ *
7
+ * **Use Cases:**
8
+ * - Submit timestamps to multiple calendars for redundancy
9
+ * - Verify from any available calendar (failover)
10
+ * - Monitor calendar health and availability
11
+ * - Automatic failover when calendars are unavailable
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // Create manager with multiple calendars
16
+ * const manager = new CalendarManager([
17
+ * { url: 'https://alpha.timestamp.neozip.io', priority: 1 },
18
+ * { url: 'https://beta.timestamp.neozip.io', priority: 2 },
19
+ * ]);
20
+ *
21
+ * // Check health of all calendars
22
+ * await manager.checkAllHealth();
23
+ *
24
+ * // Submit to multiple calendars for redundancy
25
+ * const results = await manager.submitToMultiple(digest, chainId);
26
+ * console.log(`Submitted to ${results.successes.length} calendars`);
27
+ *
28
+ * // Verify from any available calendar
29
+ * const verification = await manager.verifyFromAny(digest, chainId, batchId);
30
+ * ```
31
+ */
32
+ import { ZipstampServerClient, type CalendarIdentity, type HealthCheckResponse, type StampResponse, type VerifyResponse } from './ZipstampServerClient';
33
+ /**
34
+ * Configuration for a single calendar server
35
+ */
36
+ export interface CalendarConfig {
37
+ /** Base URL of the calendar server */
38
+ url: string;
39
+ /** Priority for ordering (lower = higher priority, default: 100) */
40
+ priority?: number;
41
+ /** Optional friendly name for this calendar */
42
+ name?: string;
43
+ }
44
+ /**
45
+ * Status of a calendar server
46
+ */
47
+ export interface CalendarStatus {
48
+ /** Base URL of the calendar */
49
+ url: string;
50
+ /** Calendar identity (if fetched) */
51
+ identity?: CalendarIdentity;
52
+ /** Health check response (if fetched) */
53
+ health?: HealthCheckResponse;
54
+ /** When this status was last updated */
55
+ lastChecked: Date;
56
+ /** Whether the calendar is currently available */
57
+ available: boolean;
58
+ /** Latency in milliseconds (if measured) */
59
+ latencyMs?: number;
60
+ /** Error message if unavailable */
61
+ error?: string;
62
+ }
63
+ /**
64
+ * Result of submitting to a single calendar
65
+ */
66
+ export interface SubmitResult {
67
+ calendar: string;
68
+ result: StampResponse;
69
+ }
70
+ /**
71
+ * Result of submitting to multiple calendars
72
+ */
73
+ export interface MultiSubmitResult {
74
+ /** Successful submissions */
75
+ successes: SubmitResult[];
76
+ /** Failed submissions */
77
+ failures: Array<{
78
+ calendar: string;
79
+ error: string;
80
+ }>;
81
+ }
82
+ /**
83
+ * Result of verifying from a calendar
84
+ */
85
+ export interface VerifyResult {
86
+ calendar: string;
87
+ result: VerifyResponse;
88
+ }
89
+ /**
90
+ * Options for multi-calendar operations
91
+ */
92
+ export interface MultiCalendarOptions {
93
+ /** Minimum number of successful submissions required (default: 1) */
94
+ minSuccess?: number;
95
+ /** Timeout per calendar in milliseconds (default: 30000) */
96
+ timeout?: number;
97
+ /** Whether to continue after minSuccess is reached (default: true) */
98
+ continueAfterMinSuccess?: boolean;
99
+ }
100
+ export declare class CalendarManager {
101
+ private calendars;
102
+ private statusCache;
103
+ /**
104
+ * Create a new CalendarManager
105
+ *
106
+ * @param calendars - Optional initial list of calendar configurations
107
+ */
108
+ constructor(calendars?: CalendarConfig[]);
109
+ /**
110
+ * Add a calendar server to the manager
111
+ *
112
+ * @param config - Calendar configuration
113
+ */
114
+ addCalendar(config: CalendarConfig): void;
115
+ /**
116
+ * Remove a calendar server from the manager
117
+ *
118
+ * @param url - URL of the calendar to remove
119
+ * @returns true if removed, false if not found
120
+ */
121
+ removeCalendar(url: string): boolean;
122
+ /**
123
+ * Get all configured calendars
124
+ *
125
+ * @returns Copy of the calendar configurations array
126
+ */
127
+ getCalendars(): CalendarConfig[];
128
+ /**
129
+ * Get the number of configured calendars
130
+ */
131
+ get count(): number;
132
+ /**
133
+ * Check health of all configured calendars
134
+ *
135
+ * Updates the internal status cache with results.
136
+ *
137
+ * @returns Array of calendar statuses
138
+ */
139
+ checkAllHealth(): Promise<CalendarStatus[]>;
140
+ /**
141
+ * Check health of a specific calendar
142
+ *
143
+ * @param url - URL of the calendar to check
144
+ * @returns Calendar status
145
+ */
146
+ checkHealth(url: string): Promise<CalendarStatus>;
147
+ /**
148
+ * Get cached status for a calendar
149
+ *
150
+ * @param url - URL of the calendar
151
+ * @returns Cached status or undefined if not checked
152
+ */
153
+ getStatus(url: string): CalendarStatus | undefined;
154
+ /**
155
+ * Get all cached statuses
156
+ *
157
+ * @returns Map of URL to status
158
+ */
159
+ getAllStatuses(): Map<string, CalendarStatus>;
160
+ /**
161
+ * Get calendars that are currently healthy
162
+ *
163
+ * Returns calendars sorted by priority. If a calendar hasn't been
164
+ * checked yet, it's assumed to be available.
165
+ *
166
+ * @returns Array of healthy calendar configurations
167
+ */
168
+ getHealthyCalendars(): CalendarConfig[];
169
+ /**
170
+ * Get calendars that are currently unavailable
171
+ *
172
+ * @returns Array of unavailable calendar configurations
173
+ */
174
+ getUnhealthyCalendars(): CalendarConfig[];
175
+ /**
176
+ * Submit digest to multiple calendars for redundancy
177
+ *
178
+ * Submits to all healthy calendars in parallel. Useful for ensuring
179
+ * your timestamp is recorded by multiple independent servers.
180
+ * Stamping requires a verified email (pass email in the request).
181
+ *
182
+ * @param digest - SHA-256 digest to timestamp
183
+ * @param chainId - Optional chain ID hint
184
+ * @param email - Email address (must be verified on each server)
185
+ * @param options - Multi-calendar options
186
+ * @returns Results from all submission attempts
187
+ * @throws Error if fewer than minSuccess calendars succeed
188
+ */
189
+ submitToMultiple(digest: string, chainId?: number, email?: string, options?: MultiCalendarOptions): Promise<MultiSubmitResult>;
190
+ /**
191
+ * Verify digest by trying calendars until one succeeds
192
+ *
193
+ * Tries each healthy calendar in priority order until verification
194
+ * succeeds. Useful for failover when a calendar is temporarily unavailable.
195
+ *
196
+ * **Note:** Verification is PUBLIC - no API key required.
197
+ *
198
+ * @param digest - SHA-256 digest to verify
199
+ * @param chainId - Optional chain ID hint
200
+ * @param batchId - Optional batch ID hint
201
+ * @returns Verification result from the first successful calendar
202
+ * @throws Error if no calendar can verify the digest
203
+ */
204
+ verifyFromAny(digest: string, chainId?: number, batchId?: string): Promise<VerifyResult>;
205
+ /**
206
+ * Poll for confirmation from any calendar
207
+ *
208
+ * Polls healthy calendars until the digest is confirmed or timeout
209
+ * is reached. Returns as soon as any calendar reports confirmation.
210
+ *
211
+ * @param digest - SHA-256 digest to check
212
+ * @param chainId - Optional chain ID hint
213
+ * @param batchId - Optional batch ID hint
214
+ * @param timeout - Maximum time to poll in milliseconds (default: 300000 = 5 minutes)
215
+ * @param interval - Time between polling attempts in milliseconds (default: 10000 = 10 seconds)
216
+ * @returns Verification result if confirmed, null if timeout
217
+ */
218
+ pollForConfirmation(digest: string, chainId?: number, batchId?: string, timeout?: number, interval?: number): Promise<VerifyResult | null>;
219
+ /**
220
+ * Create a client for a specific calendar
221
+ *
222
+ * @param url - URL of the calendar (must be configured)
223
+ * @returns ZipstampServerClient instance
224
+ * @throws Error if calendar is not configured
225
+ */
226
+ getClient(url: string): ZipstampServerClient;
227
+ /**
228
+ * Get client for the highest priority healthy calendar
229
+ *
230
+ * @returns ZipstampServerClient instance or null if no healthy calendars
231
+ */
232
+ getBestClient(): ZipstampServerClient | null;
233
+ /**
234
+ * Clear all cached health statuses
235
+ */
236
+ clearCache(): void;
237
+ }
238
+ //# sourceMappingURL=CalendarManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarManager.d.ts","sourceRoot":"","sources":["../../src/zipstamp-server/CalendarManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EACL,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAMhC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,yCAAyC;IACzC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,wCAAwC;IACxC,WAAW,EAAE,IAAI,CAAC;IAClB,kDAAkD;IAClD,SAAS,EAAE,OAAO,CAAC;IACnB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,yBAAyB;IACzB,QAAQ,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,WAAW,CAA0C;IAE7D;;;;OAIG;gBACS,SAAS,CAAC,EAAE,cAAc,EAAE;IAYxC;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAUzC;;;;;OAKG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQpC;;;;OAIG;IACH,YAAY,IAAI,cAAc,EAAE;IAIhC;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAMD;;;;;;OAMG;IACG,cAAc,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAOjD;;;;;OAKG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAsCvD;;;;;OAKG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIlD;;;;OAIG;IACH,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAI7C;;;;;;;OAOG;IACH,mBAAmB,IAAI,cAAc,EAAE;IAQvC;;;;OAIG;IACH,qBAAqB,IAAI,cAAc,EAAE;IAWzC;;;;;;;;;;;;;OAaG;IACG,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAgD7B;;;;;;;;;;;;;OAaG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC;IAmCxB;;;;;;;;;;;;OAYG;IACG,mBAAmB,CACvB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,GAAE,MAAe,EACxB,QAAQ,GAAE,MAAc,GACvB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA2B/B;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB;IAU5C;;;;OAIG;IACH,aAAa,IAAI,oBAAoB,GAAG,IAAI;IAM5C;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB"}