@diap/sdk 0.1.1 → 0.1.3

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 +21 -21
  2. package/README.md +86 -86
  3. package/dist/agent-auth.d.ts +96 -0
  4. package/dist/agent-auth.d.ts.map +1 -0
  5. package/dist/agent-auth.js +343 -0
  6. package/dist/agent-auth.js.map +1 -0
  7. package/dist/agent-verification.d.ts +158 -0
  8. package/dist/agent-verification.d.ts.map +1 -0
  9. package/dist/agent-verification.js +237 -0
  10. package/dist/agent-verification.js.map +1 -0
  11. package/dist/config-manager.d.ts +156 -0
  12. package/dist/config-manager.d.ts.map +1 -0
  13. package/dist/config-manager.js +241 -0
  14. package/dist/config-manager.js.map +1 -0
  15. package/dist/did-builder.d.ts +62 -0
  16. package/dist/did-builder.d.ts.map +1 -0
  17. package/dist/did-builder.js +315 -0
  18. package/dist/did-builder.js.map +1 -0
  19. package/dist/did-cache.d.ts +133 -0
  20. package/dist/did-cache.d.ts.map +1 -0
  21. package/dist/did-cache.js +273 -0
  22. package/dist/did-cache.js.map +1 -0
  23. package/dist/identity-manager.d.ts +87 -0
  24. package/dist/identity-manager.d.ts.map +1 -0
  25. package/dist/identity-manager.js +196 -0
  26. package/dist/identity-manager.js.map +1 -0
  27. package/dist/index.d.ts +43 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +52 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/ipfs-bidirectional-verification.d.ts +201 -0
  32. package/dist/ipfs-bidirectional-verification.d.ts.map +1 -0
  33. package/dist/ipfs-bidirectional-verification.js +298 -0
  34. package/dist/ipfs-bidirectional-verification.js.map +1 -0
  35. package/dist/ipfs-client.d.ts +151 -0
  36. package/dist/ipfs-client.d.ts.map +1 -0
  37. package/dist/ipfs-client.js +623 -0
  38. package/dist/ipfs-client.js.map +1 -0
  39. package/dist/ipfs-node-manager.d.ts +136 -0
  40. package/dist/ipfs-node-manager.d.ts.map +1 -0
  41. package/dist/ipfs-node-manager.js +232 -0
  42. package/dist/ipfs-node-manager.js.map +1 -0
  43. package/dist/ipns-manager.d.ts +182 -0
  44. package/dist/ipns-manager.d.ts.map +1 -0
  45. package/dist/ipns-manager.js +268 -0
  46. package/dist/ipns-manager.js.map +1 -0
  47. package/dist/key-manager.d.ts +48 -0
  48. package/dist/key-manager.d.ts.map +1 -0
  49. package/dist/key-manager.js +231 -0
  50. package/dist/key-manager.js.map +1 -0
  51. package/dist/kubo-installer.d.ts +115 -0
  52. package/dist/kubo-installer.d.ts.map +1 -0
  53. package/dist/kubo-installer.js +205 -0
  54. package/dist/kubo-installer.js.map +1 -0
  55. package/dist/libp2p/encrypted-peer-id.d.ts +24 -0
  56. package/dist/libp2p/encrypted-peer-id.d.ts.map +1 -0
  57. package/dist/libp2p/encrypted-peer-id.js +134 -0
  58. package/dist/libp2p/encrypted-peer-id.js.map +1 -0
  59. package/dist/nonce-manager.d.ts +176 -0
  60. package/dist/nonce-manager.d.ts.map +1 -0
  61. package/dist/nonce-manager.js +382 -0
  62. package/dist/nonce-manager.js.map +1 -0
  63. package/dist/p2p/hyperswarm-communicator.d.ts +252 -0
  64. package/dist/p2p/hyperswarm-communicator.d.ts.map +1 -0
  65. package/dist/p2p/hyperswarm-communicator.js +469 -0
  66. package/dist/p2p/hyperswarm-communicator.js.map +1 -0
  67. package/dist/p2p/iroh-communicator.d.ts +216 -0
  68. package/dist/p2p/iroh-communicator.d.ts.map +1 -0
  69. package/dist/p2p/iroh-communicator.js +408 -0
  70. package/dist/p2p/iroh-communicator.js.map +1 -0
  71. package/dist/pubsub-authenticator.d.ts +246 -0
  72. package/dist/pubsub-authenticator.d.ts.map +1 -0
  73. package/dist/pubsub-authenticator.js +384 -0
  74. package/dist/pubsub-authenticator.js.map +1 -0
  75. package/dist/real-name-auth.d.ts +238 -0
  76. package/dist/real-name-auth.d.ts.map +1 -0
  77. package/dist/real-name-auth.js +259 -0
  78. package/dist/real-name-auth.js.map +1 -0
  79. package/dist/types/did.d.ts +76 -0
  80. package/dist/types/did.d.ts.map +1 -0
  81. package/dist/types/did.js +5 -0
  82. package/dist/types/did.js.map +1 -0
  83. package/dist/types/errors.d.ts +42 -0
  84. package/dist/types/errors.d.ts.map +1 -0
  85. package/dist/types/errors.js +69 -0
  86. package/dist/types/errors.js.map +1 -0
  87. package/dist/types/index.d.ts +9 -0
  88. package/dist/types/index.d.ts.map +1 -0
  89. package/dist/types/index.js +9 -0
  90. package/dist/types/index.js.map +1 -0
  91. package/dist/types/key.d.ts +43 -0
  92. package/dist/types/key.d.ts.map +1 -0
  93. package/dist/types/key.js +5 -0
  94. package/dist/types/key.js.map +1 -0
  95. package/dist/types/zkp.d.ts +80 -0
  96. package/dist/types/zkp.d.ts.map +1 -0
  97. package/dist/types/zkp.js +16 -0
  98. package/dist/types/zkp.js.map +1 -0
  99. package/dist/utils/crypto.d.ts +24 -0
  100. package/dist/utils/crypto.d.ts.map +1 -0
  101. package/dist/utils/crypto.js +65 -0
  102. package/dist/utils/crypto.js.map +1 -0
  103. package/dist/utils/encoding.d.ts +36 -0
  104. package/dist/utils/encoding.d.ts.map +1 -0
  105. package/dist/utils/encoding.js +80 -0
  106. package/dist/utils/encoding.js.map +1 -0
  107. package/dist/utils/logger.d.ts +24 -0
  108. package/dist/utils/logger.d.ts.map +1 -0
  109. package/dist/utils/logger.js +37 -0
  110. package/dist/utils/logger.js.map +1 -0
  111. package/dist/zkp/key-generator.d.ts +56 -0
  112. package/dist/zkp/key-generator.d.ts.map +1 -0
  113. package/dist/zkp/key-generator.js +165 -0
  114. package/dist/zkp/key-generator.js.map +1 -0
  115. package/dist/zkp/simplified-backend.d.ts +23 -0
  116. package/dist/zkp/simplified-backend.d.ts.map +1 -0
  117. package/dist/zkp/simplified-backend.js +77 -0
  118. package/dist/zkp/simplified-backend.js.map +1 -0
  119. package/dist/zkp/snarkjs-backend.d.ts +150 -0
  120. package/dist/zkp/snarkjs-backend.d.ts.map +1 -0
  121. package/dist/zkp/snarkjs-backend.js +218 -0
  122. package/dist/zkp/snarkjs-backend.js.map +1 -0
  123. package/dist/zkp/universal-manager.d.ts +44 -0
  124. package/dist/zkp/universal-manager.d.ts.map +1 -0
  125. package/dist/zkp/universal-manager.js +181 -0
  126. package/dist/zkp/universal-manager.js.map +1 -0
  127. package/package.json +2 -2
@@ -0,0 +1,136 @@
1
+ /**
2
+ * DIAP TypeScript SDK - IPFS 节点管理器
3
+ * 自动启动和管理本地 IPFS 节点
4
+ */
5
+ import { EventEmitter } from 'events';
6
+ /**
7
+ * IPFS 节点状态
8
+ */
9
+ export declare enum IpfsNodeStatus {
10
+ /** 未知 */
11
+ Unknown = "unknown",
12
+ /** 启动中 */
13
+ Starting = "starting",
14
+ /** 运行中 */
15
+ Running = "running",
16
+ /** 已停止 */
17
+ Stopped = "stopped",
18
+ /** 错误 */
19
+ Error = "error"
20
+ }
21
+ /**
22
+ * IPFS 节点配置
23
+ */
24
+ export interface IpfsNodeConfig {
25
+ /** 数据目录 */
26
+ dataDir?: string;
27
+ /** API 端口 */
28
+ apiPort?: number;
29
+ /** 网关端口 */
30
+ gatewayPort?: number;
31
+ /** Swarm 端口 */
32
+ swarmPort?: number;
33
+ /** 自动启动 */
34
+ autoStart?: boolean;
35
+ /** 启动超时(秒) */
36
+ startTimeout?: number;
37
+ }
38
+ /**
39
+ * IPFS 节点信息
40
+ */
41
+ export interface IpfsNodeInfo {
42
+ /** 节点 ID */
43
+ id: string;
44
+ /** API 地址 */
45
+ apiUrl: string;
46
+ /** 网关地址 */
47
+ gatewayUrl: string;
48
+ /** 协议版本 */
49
+ protocolVersion: string;
50
+ /** 代理版本 */
51
+ agentVersion: string;
52
+ }
53
+ /**
54
+ * IPFS 节点管理器
55
+ */
56
+ export declare class IpfsNodeManager extends EventEmitter {
57
+ /** 配置 */
58
+ private config;
59
+ /** 节点状态 */
60
+ private status;
61
+ /** 进程对象 */
62
+ private process?;
63
+ /** 节点信息 */
64
+ private nodeInfo?;
65
+ /** 健康检查定时器 */
66
+ private healthCheckTimer?;
67
+ /**
68
+ * 创建 IPFS 节点管理器
69
+ */
70
+ static create(config?: IpfsNodeConfig): Promise<IpfsNodeManager>;
71
+ /**
72
+ * 构造函数
73
+ */
74
+ private constructor();
75
+ /**
76
+ * 初始化管理器
77
+ */
78
+ private initialize;
79
+ /**
80
+ * 启动 IPFS 节点
81
+ */
82
+ start(): Promise<void>;
83
+ /**
84
+ * 模拟节点启动
85
+ */
86
+ private simulateNodeStart;
87
+ /**
88
+ * 停止 IPFS 节点
89
+ */
90
+ stop(): Promise<void>;
91
+ /**
92
+ * 重启 IPFS 节点
93
+ */
94
+ restart(): Promise<void>;
95
+ /**
96
+ * 获取节点状态
97
+ */
98
+ getStatus(): IpfsNodeStatus;
99
+ /**
100
+ * 检查节点是否健康
101
+ */
102
+ isHealthy(): Promise<boolean>;
103
+ /**
104
+ * 获取 API 地址
105
+ */
106
+ getApiUrl(): string;
107
+ /**
108
+ * 获取网关地址
109
+ */
110
+ getGatewayUrl(): string;
111
+ /**
112
+ * 获取节点信息
113
+ */
114
+ getNodeInfo(): IpfsNodeInfo | null;
115
+ /**
116
+ * 启动健康检查
117
+ */
118
+ private startHealthCheck;
119
+ /**
120
+ * 停止健康检查
121
+ */
122
+ private stopHealthCheck;
123
+ /**
124
+ * 获取配置
125
+ */
126
+ getConfig(): IpfsNodeConfig;
127
+ /**
128
+ * 销毁管理器
129
+ */
130
+ destroy(): Promise<void>;
131
+ }
132
+ /**
133
+ * 创建 IPFS 节点管理器(便捷函数)
134
+ */
135
+ export declare function createIpfsNodeManager(config?: IpfsNodeConfig): Promise<IpfsNodeManager>;
136
+ //# sourceMappingURL=ipfs-node-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipfs-node-manager.d.ts","sourceRoot":"","sources":["../src/ipfs-node-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC;;GAEG;AACH,oBAAY,cAAc;IACxB,SAAS;IACT,OAAO,YAAY;IACnB,UAAU;IACV,QAAQ,aAAa;IACrB,UAAU;IACV,OAAO,YAAY;IACnB,UAAU;IACV,OAAO,YAAY;IACnB,SAAS;IACT,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW;IACX,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,SAAS;IACT,OAAO,CAAC,MAAM,CAA2B;IACzC,WAAW;IACX,OAAO,CAAC,MAAM,CAAiB;IAC/B,WAAW;IACX,OAAO,CAAC,OAAO,CAAC,CAAM;IACtB,WAAW;IACX,OAAO,CAAC,QAAQ,CAAC,CAAe;IAChC,cAAc;IACd,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAE1C;;OAEG;WACiB,MAAM,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAS7E;;OAEG;IACH,OAAO;IAeP;;OAEG;YACW,UAAU;IAaxB;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BnC;;OAEG;YACW,iBAAiB;IAe/B;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBlC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrC;;OAEG;IACI,SAAS,IAAI,cAAc;IAIlC;;OAEG;IACU,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAa1C;;OAEG;IACI,SAAS,IAAI,MAAM;IAI1B;;OAEG;IACI,aAAa,IAAI,MAAM;IAI9B;;OAEG;IACI,WAAW,IAAI,YAAY,GAAG,IAAI;IAIzC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACI,SAAS,IAAI,cAAc;IAIlC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAKtC;AAMD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAE7F"}
@@ -0,0 +1,232 @@
1
+ /**
2
+ * DIAP TypeScript SDK - IPFS 节点管理器
3
+ * 自动启动和管理本地 IPFS 节点
4
+ */
5
+ import { EventEmitter } from 'events';
6
+ import { logger } from './utils/logger.js';
7
+ /**
8
+ * IPFS 节点状态
9
+ */
10
+ export var IpfsNodeStatus;
11
+ (function (IpfsNodeStatus) {
12
+ /** 未知 */
13
+ IpfsNodeStatus["Unknown"] = "unknown";
14
+ /** 启动中 */
15
+ IpfsNodeStatus["Starting"] = "starting";
16
+ /** 运行中 */
17
+ IpfsNodeStatus["Running"] = "running";
18
+ /** 已停止 */
19
+ IpfsNodeStatus["Stopped"] = "stopped";
20
+ /** 错误 */
21
+ IpfsNodeStatus["Error"] = "error";
22
+ })(IpfsNodeStatus || (IpfsNodeStatus = {}));
23
+ /**
24
+ * IPFS 节点管理器
25
+ */
26
+ export class IpfsNodeManager extends EventEmitter {
27
+ /** 配置 */
28
+ config;
29
+ /** 节点状态 */
30
+ status;
31
+ /** 进程对象 */
32
+ process;
33
+ /** 节点信息 */
34
+ nodeInfo;
35
+ /** 健康检查定时器 */
36
+ healthCheckTimer;
37
+ /**
38
+ * 创建 IPFS 节点管理器
39
+ */
40
+ static async create(config) {
41
+ logger.info('🚀 创建 IPFS 节点管理器');
42
+ const manager = new IpfsNodeManager(config);
43
+ await manager.initialize();
44
+ return manager;
45
+ }
46
+ /**
47
+ * 构造函数
48
+ */
49
+ constructor(config) {
50
+ super();
51
+ this.config = {
52
+ dataDir: config?.dataDir || './ipfs-data',
53
+ apiPort: config?.apiPort || 5001,
54
+ gatewayPort: config?.gatewayPort || 8080,
55
+ swarmPort: config?.swarmPort || 4001,
56
+ autoStart: config?.autoStart ?? true,
57
+ startTimeout: config?.startTimeout || 60,
58
+ };
59
+ this.status = IpfsNodeStatus.Unknown;
60
+ }
61
+ /**
62
+ * 初始化管理器
63
+ */
64
+ async initialize() {
65
+ logger.info('💾 IPFS 节点管理器已初始化');
66
+ logger.info(` 数据目录: ${this.config.dataDir}`);
67
+ logger.info(` API 端口: ${this.config.apiPort}`);
68
+ logger.info(` 网关端口: ${this.config.gatewayPort}`);
69
+ logger.info(` Swarm 端口: ${this.config.swarmPort}`);
70
+ // 如果配置了自动启动,则启动节点
71
+ if (this.config.autoStart) {
72
+ await this.start();
73
+ }
74
+ }
75
+ /**
76
+ * 启动 IPFS 节点
77
+ */
78
+ async start() {
79
+ if (this.status === IpfsNodeStatus.Running) {
80
+ logger.info('IPFS 节点已在运行中');
81
+ return;
82
+ }
83
+ logger.info('🔄 启动 IPFS 节点...');
84
+ this.status = IpfsNodeStatus.Starting;
85
+ this.emit('statusChange', { status: this.status });
86
+ try {
87
+ // 模拟节点启动(实际实现需要调用 kubo 或使用 Helia)
88
+ await this.simulateNodeStart();
89
+ this.status = IpfsNodeStatus.Running;
90
+ this.emit('statusChange', { status: this.status });
91
+ this.emit('started', {});
92
+ logger.info('✅ IPFS 节点启动成功');
93
+ // 启动健康检查
94
+ this.startHealthCheck();
95
+ }
96
+ catch (error) {
97
+ this.status = IpfsNodeStatus.Error;
98
+ this.emit('statusChange', { status: this.status, error });
99
+ throw error;
100
+ }
101
+ }
102
+ /**
103
+ * 模拟节点启动
104
+ */
105
+ async simulateNodeStart() {
106
+ return new Promise((resolve) => {
107
+ setTimeout(() => {
108
+ this.nodeInfo = {
109
+ id: 'QmSimulatedNodeId123456789',
110
+ apiUrl: `http://localhost:${this.config.apiPort}`,
111
+ gatewayUrl: `http://localhost:${this.config.gatewayPort}`,
112
+ protocolVersion: 'ipfs/0.4.0',
113
+ agentVersion: 'kubo/0.26.0',
114
+ };
115
+ resolve();
116
+ }, 1000);
117
+ });
118
+ }
119
+ /**
120
+ * 停止 IPFS 节点
121
+ */
122
+ async stop() {
123
+ if (this.status === IpfsNodeStatus.Stopped) {
124
+ logger.info('IPFS 节点已停止');
125
+ return;
126
+ }
127
+ logger.info('🔄 停止 IPFS 节点...');
128
+ this.status = IpfsNodeStatus.Stopped;
129
+ this.emit('statusChange', { status: this.status });
130
+ // 停止健康检查
131
+ this.stopHealthCheck();
132
+ this.emit('stopped', {});
133
+ logger.info('✅ IPFS 节点已停止');
134
+ }
135
+ /**
136
+ * 重启 IPFS 节点
137
+ */
138
+ async restart() {
139
+ logger.info('🔄 重启 IPFS 节点...');
140
+ await this.stop();
141
+ await this.start();
142
+ logger.info('✅ IPFS 节点重启成功');
143
+ }
144
+ /**
145
+ * 获取节点状态
146
+ */
147
+ getStatus() {
148
+ return this.status;
149
+ }
150
+ /**
151
+ * 检查节点是否健康
152
+ */
153
+ async isHealthy() {
154
+ if (this.status !== IpfsNodeStatus.Running) {
155
+ return false;
156
+ }
157
+ try {
158
+ // 模拟健康检查
159
+ return true;
160
+ }
161
+ catch {
162
+ return false;
163
+ }
164
+ }
165
+ /**
166
+ * 获取 API 地址
167
+ */
168
+ getApiUrl() {
169
+ return `http://localhost:${this.config.apiPort}`;
170
+ }
171
+ /**
172
+ * 获取网关地址
173
+ */
174
+ getGatewayUrl() {
175
+ return `http://localhost:${this.config.gatewayPort}`;
176
+ }
177
+ /**
178
+ * 获取节点信息
179
+ */
180
+ getNodeInfo() {
181
+ return this.nodeInfo || null;
182
+ }
183
+ /**
184
+ * 启动健康检查
185
+ */
186
+ startHealthCheck() {
187
+ const intervalMs = 30000; // 每 30 秒检查一次
188
+ this.healthCheckTimer = setInterval(async () => {
189
+ const healthy = await this.isHealthy();
190
+ if (!healthy && this.status === IpfsNodeStatus.Running) {
191
+ logger.warn('⚠️ IPFS 节点健康检查失败');
192
+ this.emit('unhealthy', {});
193
+ }
194
+ }, intervalMs);
195
+ }
196
+ /**
197
+ * 停止健康检查
198
+ */
199
+ stopHealthCheck() {
200
+ if (this.healthCheckTimer) {
201
+ clearInterval(this.healthCheckTimer);
202
+ this.healthCheckTimer = undefined;
203
+ }
204
+ }
205
+ /**
206
+ * 获取配置
207
+ */
208
+ getConfig() {
209
+ return { ...this.config };
210
+ }
211
+ /**
212
+ * 销毁管理器
213
+ */
214
+ async destroy() {
215
+ await this.stop();
216
+ this.removeAllListeners();
217
+ logger.info('🧹 IPFS 节点管理器已销毁');
218
+ }
219
+ }
220
+ // ============================================================================
221
+ // 便捷函数
222
+ // ============================================================================
223
+ /**
224
+ * 创建 IPFS 节点管理器(便捷函数)
225
+ */
226
+ export async function createIpfsNodeManager(config) {
227
+ return IpfsNodeManager.create(config);
228
+ }
229
+ // ============================================================================
230
+ // 导出
231
+ // ============================================================================
232
+ //# sourceMappingURL=ipfs-node-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipfs-node-manager.js","sourceRoot":"","sources":["../src/ipfs-node-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * DIAP TypeScript SDK - IPNS 管理器
3
+ * 负责 IPNS 记录的发布、解析和 Key 管理
4
+ */
5
+ /**
6
+ * IPNS 记录状态
7
+ */
8
+ export declare enum IpnsRecordStatus {
9
+ /** 待发布 */
10
+ Pending = "pending",
11
+ /** 已发布 */
12
+ Published = "published",
13
+ /** 已过期 */
14
+ Expired = "expired",
15
+ /** 失败 */
16
+ Failed = "failed"
17
+ }
18
+ /**
19
+ * IPNS 配置
20
+ */
21
+ export interface IpnsConfig {
22
+ /** 是否使用 w3name */
23
+ useW3name?: boolean;
24
+ /** 是否使用 IPFS 节点 */
25
+ useIpfsNode?: boolean;
26
+ /** 记录有效期(天) */
27
+ validityDays?: number;
28
+ /** 默认 TTL */
29
+ defaultTtl?: number;
30
+ }
31
+ /**
32
+ * IPNS 发布结果
33
+ */
34
+ export interface IpnsPublishResult {
35
+ /** IPNS 名称 */
36
+ name: string;
37
+ /** 指向的 CID */
38
+ value: string;
39
+ /** 序列号 */
40
+ sequence: number;
41
+ /** 有效期 */
42
+ validity: number;
43
+ /** 签名 */
44
+ signature: string;
45
+ /** 发布时间 */
46
+ publishedAt: string;
47
+ }
48
+ /**
49
+ * IPNS 解析结果
50
+ */
51
+ export interface IpnsResolveResult {
52
+ /** IPNS 名称 */
53
+ name: string;
54
+ /** 解析后的 CID */
55
+ value: string;
56
+ /** 序列号 */
57
+ sequence: number;
58
+ /** TTL */
59
+ ttl?: number;
60
+ /** 缓存时间 */
61
+ cachedAt?: string;
62
+ }
63
+ /**
64
+ * IPNS Key 信息
65
+ */
66
+ export interface KeyInfo {
67
+ /** Key 名称 */
68
+ name: string;
69
+ /** Key ID */
70
+ id: string;
71
+ }
72
+ /**
73
+ * IPNS 记录
74
+ */
75
+ export interface IpnsRecord {
76
+ /** IPNS 名称 */
77
+ name: string;
78
+ /** 指向的值 */
79
+ value: string;
80
+ /** 序列号 */
81
+ sequence: number;
82
+ /** 有效期 */
83
+ validity: number;
84
+ /** 签名 */
85
+ signature: Uint8Array;
86
+ /** TTL */
87
+ ttl?: number;
88
+ }
89
+ /**
90
+ * IPNS 管理器
91
+ */
92
+ export declare class IpnsManager {
93
+ /** 配置 */
94
+ private config;
95
+ /** Key 列表 */
96
+ private keys;
97
+ /** 记录缓存 */
98
+ private recordCache;
99
+ /** 使用 w3name */
100
+ private useW3name;
101
+ /**
102
+ * 创建 IPNS 管理器
103
+ */
104
+ static create(config?: IpnsConfig): Promise<IpnsManager>;
105
+ /**
106
+ * 构造函数
107
+ */
108
+ private constructor();
109
+ /**
110
+ * 初始化管理器
111
+ */
112
+ private initialize;
113
+ /**
114
+ * 发布 IPNS 记录
115
+ */
116
+ publish(cid: string, keyName?: string, lifetime?: number, ttl?: number): Promise<IpnsPublishResult>;
117
+ /**
118
+ * 发布到 w3name
119
+ */
120
+ private publishToW3name;
121
+ /**
122
+ * 发布到 IPFS 节点
123
+ */
124
+ private publishToIpfs;
125
+ /**
126
+ * 解析 IPNS 名称
127
+ */
128
+ resolve(ipnsName: string): Promise<IpnsResolveResult>;
129
+ /**
130
+ * 从 w3name 解析
131
+ */
132
+ private resolveFromW3name;
133
+ /**
134
+ * 从 IPFS 节点解析
135
+ */
136
+ private resolveFromIpfs;
137
+ /**
138
+ * 确保 Key 存在
139
+ */
140
+ ensureKeyExists(keyName: string): Promise<KeyInfo>;
141
+ /**
142
+ * 创建新的 IPNS Key
143
+ */
144
+ createKey(keyName: string): Promise<KeyInfo>;
145
+ /**
146
+ * 列出所有 Key
147
+ */
148
+ listKeys(): KeyInfo[];
149
+ /**
150
+ * 删除 Key
151
+ */
152
+ removeKey(keyName: string): Promise<void>;
153
+ /**
154
+ * 获取下一个序列号
155
+ */
156
+ private getNextSequence;
157
+ /**
158
+ * 生成 Key ID
159
+ */
160
+ private generateKeyId;
161
+ /**
162
+ * 获取配置
163
+ */
164
+ getConfig(): IpnsConfig;
165
+ /**
166
+ * 清空缓存
167
+ */
168
+ clearCache(): void;
169
+ /**
170
+ * 获取缓存的记录数
171
+ */
172
+ getCacheSize(): number;
173
+ /**
174
+ * 获取 Key 数量
175
+ */
176
+ getKeyCount(): number;
177
+ }
178
+ /**
179
+ * 创建 IPNS 管理器(便捷函数)
180
+ */
181
+ export declare function createIpnsManager(config?: IpnsConfig): Promise<IpnsManager>;
182
+ //# sourceMappingURL=ipns-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipns-manager.d.ts","sourceRoot":"","sources":["../src/ipns-manager.ts"],"names":[],"mappings":"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"}