web-dc-api 0.1.46 → 0.1.49

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 (245) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/dc.min.js +1 -1
  3. package/dist/esm/chunks/protobuf-D0a_D4uh.js +1 -0
  4. package/dist/esm/chunks/protobuf-D0a_D4uh.js.map +1 -0
  5. package/dist/esm/common/blowfish/block.d.ts +24 -0
  6. package/dist/esm/common/blowfish/block.d.ts.map +1 -0
  7. package/dist/esm/common/blowfish/cipher.d.ts +18 -0
  8. package/dist/esm/common/blowfish/cipher.d.ts.map +1 -0
  9. package/dist/esm/common/blowfish/const.d.ts +7 -0
  10. package/dist/esm/common/blowfish/const.d.ts.map +1 -0
  11. package/dist/esm/common/chain.d.ts +51 -0
  12. package/dist/esm/common/chain.d.ts.map +1 -0
  13. package/dist/esm/common/commonclient.d.ts +10 -0
  14. package/dist/esm/common/commonclient.d.ts.map +1 -0
  15. package/dist/esm/common/constants.d.ts +47 -0
  16. package/dist/esm/common/constants.d.ts.map +1 -0
  17. package/dist/esm/common/dc-key/ed25519.d.ts +53 -0
  18. package/dist/esm/common/dc-key/ed25519.d.ts.map +1 -0
  19. package/dist/esm/common/dc-key/keyManager.d.ts +80 -0
  20. package/dist/esm/common/dc-key/keyManager.d.ts.map +1 -0
  21. package/dist/esm/common/dcapi.d.ts +16 -0
  22. package/dist/esm/common/dcapi.d.ts.map +1 -0
  23. package/dist/esm/common/dcutil.d.ts +56 -0
  24. package/dist/esm/common/dcutil.d.ts.map +1 -0
  25. package/dist/esm/common/define.d.ts +29 -0
  26. package/dist/esm/common/define.d.ts.map +1 -0
  27. package/dist/esm/common/error.d.ts +16 -0
  28. package/dist/esm/common/error.d.ts.map +1 -0
  29. package/dist/esm/common/grpc-dc.d.ts +11 -0
  30. package/dist/esm/common/grpc-dc.d.ts.map +1 -0
  31. package/dist/esm/common/module-system.d.ts +79 -0
  32. package/dist/esm/common/module-system.d.ts.map +1 -0
  33. package/dist/esm/common/service-worker.d.ts +29 -0
  34. package/dist/esm/common/service-worker.d.ts.map +1 -0
  35. package/dist/esm/common/types/types.d.ts +289 -0
  36. package/dist/esm/common/types/types.d.ts.map +1 -0
  37. package/dist/esm/dc.d.ts +186 -0
  38. package/dist/esm/dc.d.ts.map +1 -0
  39. package/dist/esm/implements/account/client.d.ts +21 -0
  40. package/dist/esm/implements/account/client.d.ts.map +1 -0
  41. package/dist/esm/implements/account/manager.d.ts +94 -0
  42. package/dist/esm/implements/account/manager.d.ts.map +1 -0
  43. package/dist/esm/implements/aiproxy/client.d.ts +15 -0
  44. package/dist/esm/implements/aiproxy/client.d.ts.map +1 -0
  45. package/dist/esm/implements/aiproxy/manager.d.ts +41 -0
  46. package/dist/esm/implements/aiproxy/manager.d.ts.map +1 -0
  47. package/dist/esm/implements/cache/client.d.ts +13 -0
  48. package/dist/esm/implements/cache/client.d.ts.map +1 -0
  49. package/dist/esm/implements/cache/manager.d.ts +23 -0
  50. package/dist/esm/implements/cache/manager.d.ts.map +1 -0
  51. package/dist/esm/implements/comment/client.d.ts +26 -0
  52. package/dist/esm/implements/comment/client.d.ts.map +1 -0
  53. package/dist/esm/implements/comment/manager.d.ts +48 -0
  54. package/dist/esm/implements/comment/manager.d.ts.map +1 -0
  55. package/dist/esm/implements/dc/client.d.ts +11 -0
  56. package/dist/esm/implements/dc/client.d.ts.map +1 -0
  57. package/dist/esm/implements/dc/manager.d.ts +17 -0
  58. package/dist/esm/implements/dc/manager.d.ts.map +1 -0
  59. package/dist/esm/implements/file/client.d.ts +27 -0
  60. package/dist/esm/implements/file/client.d.ts.map +1 -0
  61. package/dist/esm/implements/file/file-cache-manager.d.ts +52 -0
  62. package/dist/esm/implements/file/file-cache-manager.d.ts.map +1 -0
  63. package/dist/esm/implements/file/manager.d.ts +180 -0
  64. package/dist/esm/implements/file/manager.d.ts.map +1 -0
  65. package/dist/esm/implements/file/seekableFileStream.d.ts +68 -0
  66. package/dist/esm/implements/file/seekableFileStream.d.ts.map +1 -0
  67. package/dist/esm/implements/file/streamwriter.d.ts +42 -0
  68. package/dist/esm/implements/file/streamwriter.d.ts.map +1 -0
  69. package/dist/esm/implements/keyvalue/client.d.ts +16 -0
  70. package/dist/esm/implements/keyvalue/client.d.ts.map +1 -0
  71. package/dist/esm/implements/keyvalue/manager.d.ts +50 -0
  72. package/dist/esm/implements/keyvalue/manager.d.ts.map +1 -0
  73. package/dist/esm/implements/message/client.d.ts +16 -0
  74. package/dist/esm/implements/message/client.d.ts.map +1 -0
  75. package/dist/esm/implements/message/manager.d.ts +23 -0
  76. package/dist/esm/implements/message/manager.d.ts.map +1 -0
  77. package/dist/esm/implements/threaddb/cbor/coding.d.ts +20 -0
  78. package/dist/esm/implements/threaddb/cbor/coding.d.ts.map +1 -0
  79. package/dist/esm/implements/threaddb/cbor/event.d.ts +90 -0
  80. package/dist/esm/implements/threaddb/cbor/event.d.ts.map +1 -0
  81. package/dist/esm/implements/threaddb/cbor/node.d.ts +55 -0
  82. package/dist/esm/implements/threaddb/cbor/node.d.ts.map +1 -0
  83. package/dist/esm/implements/threaddb/cbor/record.d.ts +101 -0
  84. package/dist/esm/implements/threaddb/cbor/record.d.ts.map +1 -0
  85. package/dist/esm/implements/threaddb/common/AsyncMutex.d.ts +7 -0
  86. package/dist/esm/implements/threaddb/common/AsyncMutex.d.ts.map +1 -0
  87. package/dist/esm/implements/threaddb/common/addrinfo.d.ts +32 -0
  88. package/dist/esm/implements/threaddb/common/addrinfo.d.ts.map +1 -0
  89. package/dist/esm/implements/threaddb/common/dispatcher.d.ts +20 -0
  90. package/dist/esm/implements/threaddb/common/dispatcher.d.ts.map +1 -0
  91. package/dist/esm/implements/threaddb/common/idbstore-adapter.d.ts +3 -0
  92. package/dist/esm/implements/threaddb/common/idbstore-adapter.d.ts.map +1 -0
  93. package/dist/esm/implements/threaddb/common/json-patcher.d.ts +18 -0
  94. package/dist/esm/implements/threaddb/common/json-patcher.d.ts.map +1 -0
  95. package/dist/esm/implements/threaddb/common/key.d.ts +67 -0
  96. package/dist/esm/implements/threaddb/common/key.d.ts.map +1 -0
  97. package/dist/esm/implements/threaddb/common/lineReader.d.ts +25 -0
  98. package/dist/esm/implements/threaddb/common/lineReader.d.ts.map +1 -0
  99. package/dist/esm/implements/threaddb/common/logstore.d.ts +27 -0
  100. package/dist/esm/implements/threaddb/common/logstore.d.ts.map +1 -0
  101. package/dist/esm/implements/threaddb/common/transformed-datastore.d.ts +53 -0
  102. package/dist/esm/implements/threaddb/common/transformed-datastore.d.ts.map +1 -0
  103. package/dist/esm/implements/threaddb/core/app.d.ts +81 -0
  104. package/dist/esm/implements/threaddb/core/app.d.ts.map +1 -0
  105. package/dist/esm/implements/threaddb/core/core.d.ts +132 -0
  106. package/dist/esm/implements/threaddb/core/core.d.ts.map +1 -0
  107. package/dist/esm/implements/threaddb/core/db.d.ts +196 -0
  108. package/dist/esm/implements/threaddb/core/db.d.ts.map +1 -0
  109. package/dist/esm/implements/threaddb/core/event.d.ts +32 -0
  110. package/dist/esm/implements/threaddb/core/event.d.ts.map +1 -0
  111. package/dist/esm/implements/threaddb/core/head.d.ts +28 -0
  112. package/dist/esm/implements/threaddb/core/head.d.ts.map +1 -0
  113. package/dist/esm/implements/threaddb/core/identity.d.ts +44 -0
  114. package/dist/esm/implements/threaddb/core/identity.d.ts.map +1 -0
  115. package/dist/esm/implements/threaddb/core/logstore.d.ts +108 -0
  116. package/dist/esm/implements/threaddb/core/logstore.d.ts.map +1 -0
  117. package/dist/esm/implements/threaddb/core/options.d.ts +13 -0
  118. package/dist/esm/implements/threaddb/core/options.d.ts.map +1 -0
  119. package/dist/esm/implements/threaddb/core/record.d.ts +30 -0
  120. package/dist/esm/implements/threaddb/core/record.d.ts.map +1 -0
  121. package/dist/esm/implements/threaddb/db/collection.d.ts +289 -0
  122. package/dist/esm/implements/threaddb/db/collection.d.ts.map +1 -0
  123. package/dist/esm/implements/threaddb/db/db.d.ts +74 -0
  124. package/dist/esm/implements/threaddb/db/db.d.ts.map +1 -0
  125. package/dist/esm/implements/threaddb/db/json2Query.d.ts +8 -0
  126. package/dist/esm/implements/threaddb/db/json2Query.d.ts.map +1 -0
  127. package/dist/esm/implements/threaddb/db/query.d.ts +176 -0
  128. package/dist/esm/implements/threaddb/db/query.d.ts.map +1 -0
  129. package/dist/esm/implements/threaddb/dbclient.d.ts +67 -0
  130. package/dist/esm/implements/threaddb/dbclient.d.ts.map +1 -0
  131. package/dist/esm/implements/threaddb/dbmanager.d.ts +222 -0
  132. package/dist/esm/implements/threaddb/dbmanager.d.ts.map +1 -0
  133. package/dist/esm/implements/threaddb/lsstoreds/addr_book.d.ts +63 -0
  134. package/dist/esm/implements/threaddb/lsstoreds/addr_book.d.ts.map +1 -0
  135. package/dist/esm/implements/threaddb/lsstoreds/cache.d.ts +2 -0
  136. package/dist/esm/implements/threaddb/lsstoreds/cache.d.ts.map +1 -0
  137. package/dist/esm/implements/threaddb/lsstoreds/cyclic_batch.d.ts +19 -0
  138. package/dist/esm/implements/threaddb/lsstoreds/cyclic_batch.d.ts.map +1 -0
  139. package/dist/esm/implements/threaddb/lsstoreds/global.d.ts +19 -0
  140. package/dist/esm/implements/threaddb/lsstoreds/global.d.ts.map +1 -0
  141. package/dist/esm/implements/threaddb/lsstoreds/headbook.d.ts +36 -0
  142. package/dist/esm/implements/threaddb/lsstoreds/headbook.d.ts.map +1 -0
  143. package/dist/esm/implements/threaddb/lsstoreds/keybook.d.ts +31 -0
  144. package/dist/esm/implements/threaddb/lsstoreds/keybook.d.ts.map +1 -0
  145. package/dist/esm/implements/threaddb/lsstoreds/logstore.d.ts +7 -0
  146. package/dist/esm/implements/threaddb/lsstoreds/logstore.d.ts.map +1 -0
  147. package/dist/esm/implements/threaddb/lsstoreds/metadata.d.ts +29 -0
  148. package/dist/esm/implements/threaddb/lsstoreds/metadata.d.ts.map +1 -0
  149. package/dist/esm/implements/threaddb/net/define.d.ts +42 -0
  150. package/dist/esm/implements/threaddb/net/define.d.ts.map +1 -0
  151. package/dist/esm/implements/threaddb/net/grpcClient.d.ts +82 -0
  152. package/dist/esm/implements/threaddb/net/grpcClient.d.ts.map +1 -0
  153. package/dist/esm/implements/threaddb/net/grpcserver.d.ts +20 -0
  154. package/dist/esm/implements/threaddb/net/grpcserver.d.ts.map +1 -0
  155. package/dist/esm/implements/threaddb/net/net.d.ts +306 -0
  156. package/dist/esm/implements/threaddb/net/net.d.ts.map +1 -0
  157. package/dist/esm/implements/threaddb/pb/proto-custom-types.d.ts +54 -0
  158. package/dist/esm/implements/threaddb/pb/proto-custom-types.d.ts.map +1 -0
  159. package/dist/esm/implements/util/client.d.ts +18 -0
  160. package/dist/esm/implements/util/client.d.ts.map +1 -0
  161. package/dist/esm/implements/util/manager.d.ts +22 -0
  162. package/dist/esm/implements/util/manager.d.ts.map +1 -0
  163. package/dist/esm/implements/wallet/manager.d.ts +40 -0
  164. package/dist/esm/implements/wallet/manager.d.ts.map +1 -0
  165. package/dist/esm/index.d.ts +27 -0
  166. package/dist/esm/index.d.ts.map +1 -0
  167. package/dist/esm/index.js +2 -1
  168. package/dist/esm/index.js.map +1 -0
  169. package/dist/esm/indexDB/db.d.ts +23 -0
  170. package/dist/esm/indexDB/db.d.ts.map +1 -0
  171. package/dist/esm/indexDB/indexedDBHelper.d.ts +17 -0
  172. package/dist/esm/indexDB/indexedDBHelper.d.ts.map +1 -0
  173. package/dist/esm/interfaces/DCContext.d.ts +32 -0
  174. package/dist/esm/interfaces/DCContext.d.ts.map +1 -0
  175. package/dist/esm/interfaces/aiproxy-interface.d.ts +110 -0
  176. package/dist/esm/interfaces/aiproxy-interface.d.ts.map +1 -0
  177. package/dist/esm/interfaces/auth-interface.d.ts +143 -0
  178. package/dist/esm/interfaces/auth-interface.d.ts.map +1 -0
  179. package/dist/esm/interfaces/cache-interface.d.ts +22 -0
  180. package/dist/esm/interfaces/cache-interface.d.ts.map +1 -0
  181. package/dist/esm/interfaces/client-interface.d.ts +15 -0
  182. package/dist/esm/interfaces/client-interface.d.ts.map +1 -0
  183. package/dist/esm/interfaces/comment-interface.d.ts +111 -0
  184. package/dist/esm/interfaces/comment-interface.d.ts.map +1 -0
  185. package/dist/esm/interfaces/components/news-component.d.ts +2 -0
  186. package/dist/esm/interfaces/components/news-component.d.ts.map +1 -0
  187. package/dist/esm/interfaces/database-interface.d.ts +138 -0
  188. package/dist/esm/interfaces/database-interface.d.ts.map +1 -0
  189. package/dist/esm/interfaces/file-interface.d.ts +124 -0
  190. package/dist/esm/interfaces/file-interface.d.ts.map +1 -0
  191. package/dist/esm/interfaces/index.d.ts +11 -0
  192. package/dist/esm/interfaces/index.d.ts.map +1 -0
  193. package/dist/esm/interfaces/keyvalue-interface.d.ts +173 -0
  194. package/dist/esm/interfaces/keyvalue-interface.d.ts.map +1 -0
  195. package/dist/esm/interfaces/message-interface.d.ts +21 -0
  196. package/dist/esm/interfaces/message-interface.d.ts.map +1 -0
  197. package/dist/esm/interfaces/util-interface.d.ts +29 -0
  198. package/dist/esm/interfaces/util-interface.d.ts.map +1 -0
  199. package/dist/esm/modules/aiproxy-module.d.ts +57 -0
  200. package/dist/esm/modules/aiproxy-module.d.ts.map +1 -0
  201. package/dist/esm/modules/auth-module.d.ts +145 -0
  202. package/dist/esm/modules/auth-module.d.ts.map +1 -0
  203. package/dist/esm/modules/cache-module.d.ts +40 -0
  204. package/dist/esm/modules/cache-module.d.ts.map +1 -0
  205. package/dist/esm/modules/client-module.d.ts +31 -0
  206. package/dist/esm/modules/client-module.d.ts.map +1 -0
  207. package/dist/esm/modules/comment-module.d.ts +119 -0
  208. package/dist/esm/modules/comment-module.d.ts.map +1 -0
  209. package/dist/esm/modules/components/news-components.d.ts +83 -0
  210. package/dist/esm/modules/components/news-components.d.ts.map +1 -0
  211. package/dist/esm/modules/database-module.d.ts +153 -0
  212. package/dist/esm/modules/database-module.d.ts.map +1 -0
  213. package/dist/esm/modules/file-module.d.ts +118 -0
  214. package/dist/esm/modules/file-module.d.ts.map +1 -0
  215. package/dist/esm/modules/index.d.ts +11 -0
  216. package/dist/esm/modules/index.d.ts.map +1 -0
  217. package/dist/esm/modules/keyvalue-module.d.ts +163 -0
  218. package/dist/esm/modules/keyvalue-module.d.ts.map +1 -0
  219. package/dist/esm/modules/message-module.d.ts +42 -0
  220. package/dist/esm/modules/message-module.d.ts.map +1 -0
  221. package/dist/esm/modules/util-module.d.ts +58 -0
  222. package/dist/esm/modules/util-module.d.ts.map +1 -0
  223. package/dist/esm/proto/datasource.d.ts +29 -0
  224. package/dist/esm/proto/datasource.d.ts.map +1 -0
  225. package/dist/esm/serverless/base_entity.d.ts +12 -0
  226. package/dist/esm/serverless/base_entity.d.ts.map +1 -0
  227. package/dist/esm/serverless/base_repository.d.ts +49 -0
  228. package/dist/esm/serverless/base_repository.d.ts.map +1 -0
  229. package/dist/esm/serverless/decorator_factory.d.ts +84 -0
  230. package/dist/esm/serverless/decorator_factory.d.ts.map +1 -0
  231. package/dist/esm/util/BrowserLineReader.d.ts +34 -0
  232. package/dist/esm/util/BrowserLineReader.d.ts.map +1 -0
  233. package/dist/esm/util/base64.d.ts +11 -0
  234. package/dist/esm/util/base64.d.ts.map +1 -0
  235. package/dist/esm/util/bcrypt.d.ts +23 -0
  236. package/dist/esm/util/bcrypt.d.ts.map +1 -0
  237. package/dist/esm/util/curve25519Encryption.d.ts +21 -0
  238. package/dist/esm/util/curve25519Encryption.d.ts.map +1 -0
  239. package/dist/esm/util/dccrypt.d.ts +3 -0
  240. package/dist/esm/util/dccrypt.d.ts.map +1 -0
  241. package/dist/esm/util/logger.d.ts +38 -0
  242. package/dist/esm/util/logger.d.ts.map +1 -0
  243. package/dist/esm/util/utils.d.ts +54 -0
  244. package/dist/esm/util/utils.d.ts.map +1 -0
  245. package/package.json +1 -1
@@ -0,0 +1,52 @@
1
+ import { SeekableFileStream } from "./seekableFileStream";
2
+ /**
3
+ * 文件缓存管理器
4
+ * 负责管理可寻址文件流的缓存,提高性能并减少网络负担
5
+ */
6
+ export declare class FileCacheManager {
7
+ private seekableFileStreamCache;
8
+ private readonly CACHE_TIMEOUT;
9
+ private cacheCleanupInterval;
10
+ /**
11
+ * 创建文件缓存管理器
12
+ * @param timeout 缓存超时时间(毫秒),默认100秒
13
+ */
14
+ constructor(timeout?: number);
15
+ /**
16
+ * 获取缓存的文件流,如果不存在则返回null
17
+ * @param ipfsPath IPFS路径
18
+ * @param decryptKey 解密密钥
19
+ * @returns 缓存的文件流或null
20
+ */
21
+ getCachedFileStream(ipfsPath: string, decryptKey: string): SeekableFileStream | null;
22
+ /**
23
+ * 将文件流添加到缓存
24
+ * @param ipfsPath IPFS路径
25
+ * @param decryptKey 解密密钥
26
+ * @param fileStream 文件流对象
27
+ */
28
+ cacheFileStream(ipfsPath: string, decryptKey: string, fileStream: SeekableFileStream): void;
29
+ /**
30
+ * 清理文件缓存
31
+ * @param pathname 可选,指定要清理的路径
32
+ */
33
+ clearFileCache(pathname?: string): void;
34
+ /**
35
+ * 启动定时缓存清理任务
36
+ * 超过设定时间未访问的流将被释放
37
+ */
38
+ startCacheCleanupTask(): void;
39
+ /**
40
+ * 停止缓存清理任务
41
+ */
42
+ stopCacheCleanupTask(): void;
43
+ /**
44
+ * 获取缓存状态信息
45
+ * @returns 缓存状态信息对象
46
+ */
47
+ getCacheStats(): {
48
+ total: number;
49
+ keys: string[];
50
+ };
51
+ }
52
+ //# sourceMappingURL=file-cache-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-cache-manager.d.ts","sourceRoot":"","sources":["../../../../lib/implements/file/file-cache-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D;;;GAGG;AACH,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,uBAAuB,CAGhB;IAEf,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,oBAAoB,CAA+B;IAE3D;;;OAGG;gBACS,OAAO,GAAE,MAAe;IAKpC;;;;;OAKG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAcpF;;;;;OAKG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,IAAI;IAW3F;;;OAGG;IACH,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAoBvC;;;OAGG;IACH,qBAAqB,IAAI,IAAI;IAyB7B;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAO5B;;;OAGG;IACH,aAAa,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;CAMnD"}
@@ -0,0 +1,180 @@
1
+ import { UploadStatus, type DCConnectInfo } from "../../common/types/types";
2
+ import type { Helia } from "helia";
3
+ import { ChainUtil } from "../../common/chain";
4
+ import { SymmetricKey } from "../threaddb/common/key";
5
+ import { CID } from "multiformats/cid";
6
+ import { DcUtil } from "../../common/dcutil";
7
+ import { Libp2p } from "@libp2p/interface";
8
+ import { SeekableFileStream } from "./seekableFileStream";
9
+ import { DCContext } from "../../../lib/interfaces/DCContext";
10
+ export declare class FileError extends Error {
11
+ constructor(message: string);
12
+ }
13
+ export declare const Errors: {
14
+ ErrNoDcPeerConnected: FileError;
15
+ ErrNoFileChose: FileError;
16
+ ErrNoPeerIdIsNull: FileError;
17
+ ErrNoNeedUpload: FileError;
18
+ ErrPublicKeyIsNull: FileError;
19
+ };
20
+ export interface MediaController {
21
+ restart(): {
22
+ videoElement: HTMLVideoElement;
23
+ mediaUrl: string;
24
+ controller: MediaController;
25
+ };
26
+ dispose(): void;
27
+ }
28
+ interface CustomMessage {
29
+ type: number;
30
+ version: number;
31
+ payload: Uint8Array;
32
+ }
33
+ export declare class FileManager {
34
+ dc: DcUtil;
35
+ connectedDc: DCConnectInfo;
36
+ chainUtil: ChainUtil;
37
+ dcNodeClient: Helia<Libp2p>;
38
+ context: DCContext;
39
+ constructor(dc: DcUtil, connectedDc: DCConnectInfo, chainUtil: ChainUtil, dcNodeClient: Helia<Libp2p>, context: DCContext);
40
+ _processHeader(pubkeyBytes: Uint8Array, fileSize: number, content: Uint8Array, isFirstChunk: boolean): Promise<Uint8Array>;
41
+ _uploadLargeFileAdvanced(file: File, resumeState?: {
42
+ offset: number;
43
+ chunkHashes: never[];
44
+ }, pubkeyBytes?: Uint8Array, symKey?: SymmetricKey | null): Promise<CID | null>;
45
+ /**
46
+ * 检查当前连接的节点是否已经绑定到用户账户
47
+ * @returns 如果已绑定则返回true,否则返回false
48
+ */
49
+ isAccessPeerIdBinded(): Promise<boolean>;
50
+ addFile(file: File, enkey: string, onUpdateTransmitSize: (status: UploadStatus, size: number) => void, vaccount?: string): Promise<[string | null, Error | null]>;
51
+ /**
52
+ * Adds a folder to the DC network using browser FileList
53
+ * @param folderInput - Files from a directory input element
54
+ * @param enkey - Encryption key
55
+ * @param updateTransmitCount - Callback for progress updates
56
+ * @param vaccount - Optional virtual account
57
+ * @returns Promise with CID string and error if any
58
+ */
59
+ addFolder(fileList: FileList, enkey: string, updateTransmitCount: (status: UploadStatus, total: number, progress: number) => void, vaccount?: string): Promise<[string | null, Error | null]>;
60
+ /**
61
+ * Creates a custom FileList object from file paths and contents
62
+ * @param filesMap - Map of file paths to content (string or Uint8Array)
63
+ * @param rootFolderName - Optional root folder name (defaults to "upload")
64
+ * @returns A FileList-like object that can be used with addFolder
65
+ */
66
+ createCustomFileList(filesMap: Map<string, string | Uint8Array | ArrayBuffer> | Record<string, string | Uint8Array | ArrayBuffer>, rootFolderName?: string): FileList;
67
+ private fileToStream;
68
+ /**
69
+ * Counts all blocks recursively in a directory structure
70
+ * @param rootCID - The CID of the root directory
71
+ * @returns Promise with the total block count
72
+ */
73
+ countDirectoryBlocks(rootCID: CID): Promise<number>;
74
+ /**
75
+ * Extract the root folder name from a FileList
76
+ */
77
+ private extractRootFolderName;
78
+ /**
79
+ * Create a folder in IPFS
80
+ */
81
+ private createFolderInIpfs;
82
+ /**
83
+ * Calculate the size of all files in a folder
84
+ */
85
+ private calculateFolderSize;
86
+ /**
87
+ * Adds a file to MFS file system folder with optional encryption
88
+ * @param parentDir - The parent directory in MFS
89
+ * @param dirPath - The directory path
90
+ * @param fileName - The name of the file
91
+ * @param enkey - Optional encryption key
92
+ * @returns Promise with result or error
93
+ */
94
+ addFileToMfsFolder(parentDir: any, // MFS Directory type (replace with actual type)
95
+ dirPath: string, fileName: File, enkey: string): Promise<[string | null, Error | null]>;
96
+ private streamToAsyncIterable;
97
+ private readFile;
98
+ private chunkGenerator;
99
+ /**
100
+ * 组装 CustomMessage 数据到 Uint8Array
101
+ * @param message - CustomMessage 包含消息的基本结构
102
+ * @returns Uint8Array - 序列化后的数据
103
+ */
104
+ assembleCustomMessage(message: CustomMessage): Uint8Array;
105
+ parseMessage(data: Uint8Array): {
106
+ type: number;
107
+ version: number;
108
+ payload: Uint8Array;
109
+ } | null;
110
+ /**
111
+ * 获取文件夹下的所有文件,包括内容(支持多级目录递归)
112
+ * @param cid 根目录的CID
113
+ * @param decryptKey 解密密钥
114
+ * @param recursive 是否递归获取子目录,默认false(保持向后兼容)
115
+ * @returns 文件列表:[{Name:文件或目录名,Type:0-文件 1-目录,Size:大小,Hash:文件或目录cid,Path:完整路径}]
116
+ */
117
+ getFolderFileListWithContent(cid: string, decryptKey: string, recursive?: boolean): Promise<[
118
+ Array<{
119
+ Name: string;
120
+ Type: number;
121
+ Size: number;
122
+ Hash: string;
123
+ Path: string;
124
+ Content?: Uint8Array;
125
+ }> | null,
126
+ Error | null
127
+ ]>;
128
+ /**
129
+ * 获取文件夹下的文件列表(支持多级目录递归)
130
+ * @param cid 根目录的CID
131
+ * @param flag 是否需要连接节点
132
+ * @param recursive 是否递归获取子目录,默认false(保持向后兼容)
133
+ * @returns 返回JSON格式的文件列表:[{Name:文件或目录名,Type:0-文件 1-目录,Size:大小,Hash:文件或目录cid,Path:完整路径}]
134
+ */
135
+ getFolderFileList(cid: string, flag?: number, recursive?: boolean): Promise<[
136
+ Array<{
137
+ Name: string;
138
+ Type: number;
139
+ Size: number;
140
+ Hash: string;
141
+ Path: string;
142
+ Content?: Uint8Array;
143
+ }> | null,
144
+ Error | null
145
+ ]>;
146
+ getFileFromDc: (cid: string, decryptKey: string, flag?: number, folderFlag?: boolean) => Promise<Uint8Array | null>;
147
+ getFileFromDcContent: (cid: string, decryptKey: string, folderFlag?: boolean) => Promise<Uint8Array | null>;
148
+ /**
149
+ * 创建可随机访问的文件流
150
+ */
151
+ createSeekableFileStream(cid: string, decryptKey: string, flag?: number): Promise<SeekableFileStream | null>;
152
+ /**
153
+ * 解析路径获取CID
154
+ */
155
+ resolvePath(rootCid: string, filePath: string): Promise<string | null>;
156
+ /**
157
+ * 从指定文件夹CID和路径创建可寻址文件流
158
+ */
159
+ createSeekableFileStreamFromDir(rootCid: string, filePath: string, decryptKey: string): Promise<SeekableFileStream | null>;
160
+ readUint64BE(buffer: Uint8Array, offset: number): number;
161
+ /**
162
+ * 判断CID是文件还是目录
163
+ * @param cid
164
+ * @returns 'file' | 'directory' | 'unknown'
165
+ */
166
+ isFileOrDir(cid: string): Promise<"file" | "directory" | "unknown">;
167
+ /**
168
+ * 从指定文件夹CID和路径获取文件内容或目录列表
169
+ */
170
+ getFileFromDir(rootCid: string, filePath: string, decryptKey: string): Promise<Uint8Array | Array<{
171
+ Name: string;
172
+ Type: number;
173
+ Size: number;
174
+ Hash: string;
175
+ Path: string;
176
+ Content?: Uint8Array;
177
+ }> | null>;
178
+ }
179
+ export {};
180
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../lib/implements/file/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import { UnixFS } from "@helia/unixfs";
2
+ import { CID } from "multiformats/cid";
3
+ /**
4
+ * 可定位文件流类
5
+ * 支持随机访问和流式读取加密和未加密的IPFS文件
6
+ */
7
+ export declare class SeekableFileStream {
8
+ private position;
9
+ private fs;
10
+ private cid;
11
+ private decryptKey;
12
+ private fileInfo;
13
+ private encryptChunkSize;
14
+ constructor(options: {
15
+ fileInfo: {
16
+ size: number;
17
+ hasHeader: boolean;
18
+ headerSize: number;
19
+ };
20
+ fs: UnixFS;
21
+ cid: CID;
22
+ decryptKey: string;
23
+ encryptChunkSize: number;
24
+ });
25
+ /**
26
+ * 获取文件大小
27
+ */
28
+ getSize(): number;
29
+ /**
30
+ * 定位到文件指定位置
31
+ * @param position 目标位置
32
+ */
33
+ seek(position: number): void;
34
+ /**
35
+ * 获取当前位置
36
+ */
37
+ getPosition(): number;
38
+ /**
39
+ * 读取指定长度的数据
40
+ * @param length 要读取的字节数
41
+ */
42
+ read(length: number): Promise<Uint8Array>;
43
+ /**
44
+ * 读取未加密的数据
45
+ * @param startPosition 开始位置
46
+ * @param length 读取长度
47
+ */
48
+ private readPlain;
49
+ /**
50
+ * 读取并解密加密数据,无音视频帧保护
51
+ * @param startPosition 开始位置
52
+ * @param length 读取长度
53
+ */
54
+ private readEncrypted;
55
+ /**
56
+ * 创建标准的可读流
57
+ * 使用独立缓冲区,不影响随机访问读取
58
+ */
59
+ createReadableStream(options?: {
60
+ start?: number;
61
+ end?: number;
62
+ }): ReadableStream<Uint8Array>;
63
+ /**
64
+ * 获取文件CID
65
+ */
66
+ getCid(): CID;
67
+ }
68
+ //# sourceMappingURL=seekableFileStream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seekableFileStream.d.ts","sourceRoot":"","sources":["../../../../lib/implements/file/seekableFileStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAIvC;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAA2D;IAC3E,OAAO,CAAC,gBAAgB,CAAS;gBAErB,OAAO,EAAE;QACnB,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,OAAO,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QACnE,EAAE,EAAE,MAAM,CAAC;QACX,GAAG,EAAE,GAAG,CAAC;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;KAC1B;IAQD;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAS5B;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;;OAGG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA+B/C;;;;OAIG;YACW,SAAS;IAiBvB;;;;KAIC;YACW,aAAa;IAsEzB;;;OAGG;IACH,oBAAoB,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,UAAU,CAAC;IAsJ5F;;OAEG;IACH,MAAM,IAAI,GAAG;CAGd"}
@@ -0,0 +1,42 @@
1
+ interface StreamWriterOptions {
2
+ /** 分块大小(默认1MB) */
3
+ chunkSize?: number;
4
+ /** 背压缓冲区最大值(默认5MB) */
5
+ bufferSize?: number;
6
+ /** 失败重试次数(默认3次) */
7
+ retries?: number;
8
+ }
9
+ export declare class StreamWriter {
10
+ private sink;
11
+ private options;
12
+ private p;
13
+ private bytesWritten;
14
+ private abortController;
15
+ private backpressureHistory;
16
+ private isBackpressure;
17
+ private writeQueue;
18
+ private isProcessingQueue;
19
+ constructor(sink: any, options?: StreamWriterOptions);
20
+ get queueSize(): number;
21
+ private safeNext;
22
+ private handleError;
23
+ private startPipeline;
24
+ private createTransform;
25
+ write(data: ArrayBuffer | Blob | string): Promise<void>;
26
+ private convertToBuffer;
27
+ private writeChunks;
28
+ private retryableWrite;
29
+ private monitorBackpressure;
30
+ private calculateRetryDelay;
31
+ private processQueue;
32
+ private updateProgress;
33
+ end(): Promise<void>;
34
+ abort(reason?: string): void;
35
+ private cleanup;
36
+ private listeners;
37
+ addEventListener(type: string, callback: (event: CustomEvent) => void): void;
38
+ private dispatchEvent;
39
+ private dispatchBackpressureEvent;
40
+ }
41
+ export {};
42
+ //# sourceMappingURL=streamwriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamwriter.d.ts","sourceRoot":"","sources":["../../../../lib/implements/file/streamwriter.ts"],"names":[],"mappings":"AAGA,UAAU,mBAAmB;IAC3B,kBAAkB;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sBAAsB;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAkBD,qBAAa,YAAY;IAerB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IAfjB,OAAO,CAAC,CAAC,CAA8B;IAGvC,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,eAAe,CAAwB;IAG/C,OAAO,CAAC,mBAAmB,CAAe;IAC1C,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,iBAAiB,CAAQ;gBAIvB,IAAI,EAAE,GAAG,EACT,OAAO,GAAE,mBAAwB;IAoD3C,IAAI,SAAS,IAAG,MAAM,CAErB;YAGa,QAAQ;IAQtB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,eAAe;IAQjB,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAmB/C,eAAe;YAMf,WAAW;YAWX,cAAc;YAsBd,mBAAmB;IAyDjC,OAAO,CAAC,mBAAmB;YASb,YAAY;IAmB1B,OAAO,CAAC,cAAc;IAOhB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAM1B,KAAK,CAAC,MAAM,SAAiB;IAM7B,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,SAAS,CAAgC;IAEjD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI;IAOvE,OAAO,CAAC,aAAa;IAMnB,OAAO,CAAC,yBAAyB;CAMlC"}
@@ -0,0 +1,16 @@
1
+ import type { Client } from "../../common/dcapi";
2
+ import { DCContext } from "../../../lib/interfaces/DCContext";
3
+ import { Direction } from "../../common/define";
4
+ export declare class KeyValueClient {
5
+ client: Client;
6
+ context: DCContext;
7
+ constructor(dcClient: Client, context: DCContext);
8
+ configThemeObjAuth(theme: string, appId: string, themeAuthor: string, blockHeight: number, userPubkeyStr: string, contentCid: string, content: string, contentSize: number, type: number, signature: Uint8Array, vAccount?: string): Promise<number>;
9
+ GetUserOwnAuth(appId: string, themeAuthor: string, configTheme: string, vAccount?: string): Promise<[authInfo: string, error: Error | null]>;
10
+ GetUserAuth(appId: string, themeAuthor: string, configTheme: string, userPubkey: string, vAccount?: string): Promise<[authInfo: string, error: Error | null]>;
11
+ setKeyValue(theme: string, appId: string, themeAuthor: string, blockHeight: number, userPubkeyStr: string, contentCid: string, content: string, contentSize: number, type: number, signature: Uint8Array, vaccount?: string): Promise<[number, number]>;
12
+ getValueWithKey(theme: string, appId: string, themeAuthor: string, userPubkey: string, key: string, vaccount?: string): Promise<Uint8Array | null>;
13
+ getValuesWithKeys(theme: string, appId: string, themeAuthor: string, userPubkey: string, keys: string, vaccount?: string): Promise<Uint8Array | null>;
14
+ getValuesWithIndex(appId: string, themeAuthor: string, theme: string, indexKey: string, indexValue: string, seekKey: string, direction: Direction | undefined, offset: number, limit: number, vaccount?: string): Promise<Uint8Array | null>;
15
+ }
16
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../lib/implements/keyvalue/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAMjD,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,qBAAa,cAAc;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,CAAC;gBAEP,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS;IAK1C,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,UAAU,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC;IA8DZ,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;IAoE7C,WAAW,CACf,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;IAqE7C,WAAW,CACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,UAAU,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,MAAM,EAAC,MAAM,CAAC,CAAC;IA4DrB,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,GAAC,IAAI,CAAC;IA6DrB,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,GAAC,IAAI,CAAC;IA6DpB,kBAAkB,CACvB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAC,MAAM,EACf,UAAU,EAAC,MAAM,EACjB,OAAO,EAAC,MAAM,EACd,SAAS,EAAE,SAAS,YAAoB,EACxC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,GAAC,IAAI,CAAC;CAiE5B"}
@@ -0,0 +1,50 @@
1
+ import { ThemeAuthInfo, ThemeComment } from "../../common/types/types";
2
+ import { ChainUtil } from "../../common/chain";
3
+ import { DcUtil } from "../../common/dcutil";
4
+ import { Direction } from "../../common/define";
5
+ import { DCContext } from "../../../lib/interfaces/DCContext";
6
+ export declare enum KeyValueStoreType {
7
+ Auth = 1,
8
+ Public = 2
9
+ }
10
+ export declare class KeyValueError extends Error {
11
+ constructor(message: string);
12
+ }
13
+ export declare const Errors: {
14
+ ErrNoDcPeerConnected: KeyValueError;
15
+ ErrPublicKeyIsNull: KeyValueError;
16
+ };
17
+ export declare class KeyValueDB {
18
+ private appId;
19
+ private dbname;
20
+ private themeAuthor;
21
+ private manager;
22
+ constructor(appId: string, dbname: string, themeAuthor: string, manager: KeyValueManager);
23
+ getName(): string;
24
+ getAuthor(): string;
25
+ getAppId(): string;
26
+ set(key: string, value: any, indexs?: string, vaccount?: string): Promise<[boolean | null, number | null, Error | null]>;
27
+ get(key: string, writerPubkey?: string, vaccount?: string): Promise<[string | null, Error | null]>;
28
+ getBatch(keys: string, writerPubkey: string, vaccount: string): Promise<[string | null, Error | null]>;
29
+ getWithIndex(indexKey: string, indexValue: string, limit?: number, seekKey?: string, direction?: Direction, offset?: number, vaccount?: string): Promise<[string | null, Error | null]>;
30
+ configAuth(authPubkey: string, permission: number, remark: string, vaccount?: string): Promise<[number | null, Error | null]>;
31
+ getAuthList(vaccount?: string): Promise<[ThemeAuthInfo[] | null, ThemeComment[] | null, Error | null]>;
32
+ }
33
+ export declare class KeyValueManager {
34
+ private dc;
35
+ private chainUtil;
36
+ private context;
37
+ constructor(dc: DcUtil, chainUtil: ChainUtil, context: DCContext);
38
+ createStore(appId: string, theme: string, space: number, type: KeyValueStoreType): Promise<[KeyValueDB | null, Error | null]>;
39
+ getKeyValueDB(appId: string, theme: string, ThemeAuthor: string): Promise<[KeyValueDB | null, Error | null]>;
40
+ doConfigAuth(appId: string, themeAuthor: string, theme: string, authPubkey: string, permission: number, remark: string, vaccount?: string): Promise<[number | null, Error | null]>;
41
+ GetUserOwnAuth(appId: string, themeAuthor: string, configTheme: string, vaccount?: string): Promise<[themeAuthInfo: ThemeAuthInfo | null, error: Error | null]>;
42
+ GetUserAuth(appId: string, themeAuthor: string, configTheme: string, userPubkeyStr: string, vaccount?: string): Promise<[themeAuthInfo: ThemeAuthInfo | null, error: Error | null]>;
43
+ getAuthList(appId: string, themeAuthor: string, theme: string, vaccount?: string): Promise<[ThemeAuthInfo[] | null, ThemeComment[] | null, Error | null]>;
44
+ setKeyValue(appId: string, themeAuthor: string, theme: string, key: string, value: string, indexs: string, //索引列表,格式为key1:value1$$$key2:value2
45
+ vaccount?: string): Promise<[boolean | null, number | null, Error | null]>;
46
+ getValueWithKey(appId: string, themeAuthor: string, theme: string, writerPubkey: string, key: string, vaccount?: string): Promise<[string | null, Error | null]>;
47
+ getValuesWithKeys(appId: string, themeAuthor: string, theme: string, writerPubkey: string, keys: string, vaccount?: string): Promise<[string | null, Error | null]>;
48
+ getWithIndex(appId: string, themeAuthor: string, theme: string, indexKey: string, indexValue: string, seekKey: string, direction: Direction | undefined, offset: number, limit: number, vaccount?: string): Promise<[string | null, Error | null]>;
49
+ }
50
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../lib/implements/keyvalue/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { Client } from "../../common/dcapi";
2
+ import { dcnet } from "../../proto/dcnet_proto";
3
+ import { DCContext } from "../../../lib/interfaces/DCContext";
4
+ export declare class MessageClient {
5
+ client: Client;
6
+ receiverClient: Client | undefined;
7
+ context: DCContext;
8
+ constructor(dcClient: Client, context: DCContext, receiverClient?: Client);
9
+ sendMsgToUserBox: (userMsg: dcnet.pb.UserMsg) => Promise<number>;
10
+ private getToUserBoxAuth;
11
+ getMaxKeyFromUserBox(appId: string): Promise<string>;
12
+ getMsgFromUserBox(appId: string, seekKey: string, limit: number): Promise<{
13
+ [k: string]: any;
14
+ }>;
15
+ }
16
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../lib/implements/message/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,qBAAa,aAAa;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,OAAO,EAAE,SAAS,CAAC;gBAGjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,SAAS,EAClB,cAAc,CAAC,EAAE,MAAM;IAOzB,gBAAgB,GAAU,SAAS,KAAK,CAAC,EAAE,CAAC,OAAO,KAAG,OAAO,CAAC,MAAM,CAAC,CAgEnE;IAEF,OAAO,CAAC,gBAAgB,CA+CtB;IAEI,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAsDpD,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;KAAE,CAAC;CAqDlC"}
@@ -0,0 +1,23 @@
1
+ import { ChainUtil } from "../../common/chain";
2
+ import { DcUtil } from "../../common/dcutil";
3
+ import { dcnet } from "../../proto/dcnet_proto";
4
+ import { DCContext } from "../../../lib/interfaces/DCContext";
5
+ export declare class DCError extends Error {
6
+ constructor(message: string);
7
+ }
8
+ export declare const Errors: {
9
+ ErrNoDcPeerConnected: DCError;
10
+ ErrGetUserInfoError: DCError;
11
+ ErrNoAccountPeerConnected: DCError;
12
+ ErrNoReceiverPeerConnected: DCError;
13
+ };
14
+ export declare class MessageManager {
15
+ private context;
16
+ private chainUtil;
17
+ private dc;
18
+ constructor(dc: DcUtil, chainUtil: ChainUtil, context: DCContext);
19
+ sendMsgToUserBox: (appId: string, receiver: string, msg: string) => Promise<[number | null, Error | null]>;
20
+ getMsgFromUserBox: (appId: string, limit?: number) => Promise<[dcnet.pb.IUserMsg[] | null, Error | null]>;
21
+ private generateMsqBoxReq;
22
+ }
23
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../lib/implements/message/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAO/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,qBAAa,OAAQ,SAAQ,KAAK;gBACpB,OAAO,EAAE,MAAM;CAI5B;AACD,eAAO,MAAM,MAAM;;;;;CAKlB,CAAC;AAEF,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,EAAE,CAAS;gBAEjB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,SAAS;IAOpB,gBAAgB,GACd,OAAO,MAAM,EACb,UAAU,MAAM,EAChB,KAAK,MAAM,KACV,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,CAyCvC;IAEF,iBAAiB,GACf,OAAO,MAAM,EACb,QAAO,MAAY,KAClB,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,CAuEpD;IACF,OAAO,CAAC,iBAAiB,CAiDxB;CAGF"}
@@ -0,0 +1,20 @@
1
+ import { SymmetricKey } from '../common/key';
2
+ import { Node } from './node';
3
+ import { IBlock } from '../core/core';
4
+ /**
5
+ * Encrypts a block's raw data with the given key and wraps it as a DAG-CBOR node
6
+ *
7
+ * @param block - The block to encode
8
+ * @param key - The encryption key
9
+ * @returns Promise resolving to a Node
10
+ */
11
+ export declare function encodeBlock(block: IBlock, key: SymmetricKey): Promise<Node>;
12
+ /**
13
+ * Decrypts a block's raw data with the given key and returns a DAG node
14
+ *
15
+ * @param block - The block to decode
16
+ * @param key - The decryption key
17
+ * @returns Promise resolving to a Node
18
+ */
19
+ export declare function decodeBlock(block: any, key?: SymmetricKey): Promise<Node>;
20
+ //# sourceMappingURL=coding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coding.d.ts","sourceRoot":"","sources":["../../../../../lib/implements/threaddb/cbor/coding.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAMtC;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAKjF;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B/E"}
@@ -0,0 +1,90 @@
1
+ import { Context } from "../core/core";
2
+ import { IThreadEvent as NetEvent, EventHeader as NetEventHeader } from "../core/event";
3
+ import { IRecord } from "../core/record";
4
+ import { SymmetricKey } from "../common/key";
5
+ import { CID } from "multiformats/cid";
6
+ import { Node } from "./node";
7
+ import { Link } from "multiformats/link";
8
+ import { IPLDNode } from "../core/core";
9
+ import { Blocks } from "helia";
10
+ import { DAGCBOR } from "@helia/dag-cbor";
11
+ export interface EventObj {
12
+ body: CID;
13
+ header: CID;
14
+ }
15
+ interface EventHeaderObj {
16
+ key?: Uint8Array;
17
+ }
18
+ /**
19
+ * 创建一个新事件,包装 body 节点
20
+ * @param dag DAG 服务
21
+ * @param body 要封装的节点
22
+ * @param rkey 加密密钥
23
+ * @returns 创建的事件
24
+ */
25
+ export declare function CreateEvent(bstore: Blocks, body: Node, rkey: SymmetricKey): Promise<NetEvent>;
26
+ /**
27
+ * 根据 CID 获取事件
28
+ * @param ctx 上下文
29
+ * @param dag DAG 服务
30
+ * @param id 事件的 CID
31
+ * @returns 获取的事件
32
+ */
33
+ export declare function GetEvent(dag: DAGCBOR, id: CID): Promise<NetEvent>;
34
+ /**
35
+ * 将节点解码为事件
36
+ * @param node 要解码的节点
37
+ * @returns 解码后的事件
38
+ */
39
+ export declare function EventFromNode(eNode: Node): Promise<NetEvent>;
40
+ /**
41
+ * 从记录中获取事件
42
+ * @param ctx 上下文
43
+ * @param dag DAG 服务
44
+ * @param rec 记录
45
+ * @returns 获取的事件
46
+ */
47
+ export declare function EventFromRecord(bstore: Blocks, rec: IRecord): Promise<NetEvent>;
48
+ /**
49
+ * 从 DAG 服务中移除事件
50
+ * @param ctx 上下文
51
+ * @param dag DAG 服务
52
+ * @param e 要移除的事件
53
+ */
54
+ export declare function RemoveEvent(ctx: Context, blockstore: Blocks, e: Event): Promise<void>;
55
+ /**
56
+ * 表示事件的 IPLD 节点
57
+ */
58
+ export declare class Event implements NetEvent {
59
+ private _node;
60
+ private _obj;
61
+ private _header?;
62
+ private _body?;
63
+ constructor(node: Node, obj: EventObj, header?: EventHeader, body?: Node);
64
+ cid(): CID;
65
+ headerCID(): CID;
66
+ getHeader(bstore: Blocks, key?: SymmetricKey): Promise<NetEventHeader>;
67
+ bodyCID(): CID;
68
+ getBody(bstore: Blocks, key?: SymmetricKey): Promise<IPLDNode>;
69
+ data(): Uint8Array;
70
+ links(): Link[];
71
+ size(): number;
72
+ }
73
+ /**
74
+ * 表示事件头部的 IPLD 节点
75
+ */
76
+ export declare class EventHeader implements NetEventHeader {
77
+ private _node;
78
+ private _obj;
79
+ constructor(node: Node, obj?: EventHeaderObj | null);
80
+ isLoaded(): boolean;
81
+ setObj(obj: EventHeaderObj): void;
82
+ node(): Node;
83
+ cid(): CID;
84
+ links(): Link[];
85
+ key(): Promise<SymmetricKey>;
86
+ data(): Uint8Array;
87
+ size(): number;
88
+ }
89
+ export {};
90
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../../../lib/implements/threaddb/cbor/event.ts"],"names":[],"mappings":"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"}