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.
- package/dist/cjs/index.js +1 -1
- package/dist/dc.min.js +1 -1
- package/dist/esm/chunks/protobuf-D0a_D4uh.js +1 -0
- package/dist/esm/chunks/protobuf-D0a_D4uh.js.map +1 -0
- package/dist/esm/common/blowfish/block.d.ts +24 -0
- package/dist/esm/common/blowfish/block.d.ts.map +1 -0
- package/dist/esm/common/blowfish/cipher.d.ts +18 -0
- package/dist/esm/common/blowfish/cipher.d.ts.map +1 -0
- package/dist/esm/common/blowfish/const.d.ts +7 -0
- package/dist/esm/common/blowfish/const.d.ts.map +1 -0
- package/dist/esm/common/chain.d.ts +51 -0
- package/dist/esm/common/chain.d.ts.map +1 -0
- package/dist/esm/common/commonclient.d.ts +10 -0
- package/dist/esm/common/commonclient.d.ts.map +1 -0
- package/dist/esm/common/constants.d.ts +47 -0
- package/dist/esm/common/constants.d.ts.map +1 -0
- package/dist/esm/common/dc-key/ed25519.d.ts +53 -0
- package/dist/esm/common/dc-key/ed25519.d.ts.map +1 -0
- package/dist/esm/common/dc-key/keyManager.d.ts +80 -0
- package/dist/esm/common/dc-key/keyManager.d.ts.map +1 -0
- package/dist/esm/common/dcapi.d.ts +16 -0
- package/dist/esm/common/dcapi.d.ts.map +1 -0
- package/dist/esm/common/dcutil.d.ts +56 -0
- package/dist/esm/common/dcutil.d.ts.map +1 -0
- package/dist/esm/common/define.d.ts +29 -0
- package/dist/esm/common/define.d.ts.map +1 -0
- package/dist/esm/common/error.d.ts +16 -0
- package/dist/esm/common/error.d.ts.map +1 -0
- package/dist/esm/common/grpc-dc.d.ts +11 -0
- package/dist/esm/common/grpc-dc.d.ts.map +1 -0
- package/dist/esm/common/module-system.d.ts +79 -0
- package/dist/esm/common/module-system.d.ts.map +1 -0
- package/dist/esm/common/service-worker.d.ts +29 -0
- package/dist/esm/common/service-worker.d.ts.map +1 -0
- package/dist/esm/common/types/types.d.ts +289 -0
- package/dist/esm/common/types/types.d.ts.map +1 -0
- package/dist/esm/dc.d.ts +186 -0
- package/dist/esm/dc.d.ts.map +1 -0
- package/dist/esm/implements/account/client.d.ts +21 -0
- package/dist/esm/implements/account/client.d.ts.map +1 -0
- package/dist/esm/implements/account/manager.d.ts +94 -0
- package/dist/esm/implements/account/manager.d.ts.map +1 -0
- package/dist/esm/implements/aiproxy/client.d.ts +15 -0
- package/dist/esm/implements/aiproxy/client.d.ts.map +1 -0
- package/dist/esm/implements/aiproxy/manager.d.ts +41 -0
- package/dist/esm/implements/aiproxy/manager.d.ts.map +1 -0
- package/dist/esm/implements/cache/client.d.ts +13 -0
- package/dist/esm/implements/cache/client.d.ts.map +1 -0
- package/dist/esm/implements/cache/manager.d.ts +23 -0
- package/dist/esm/implements/cache/manager.d.ts.map +1 -0
- package/dist/esm/implements/comment/client.d.ts +26 -0
- package/dist/esm/implements/comment/client.d.ts.map +1 -0
- package/dist/esm/implements/comment/manager.d.ts +48 -0
- package/dist/esm/implements/comment/manager.d.ts.map +1 -0
- package/dist/esm/implements/dc/client.d.ts +11 -0
- package/dist/esm/implements/dc/client.d.ts.map +1 -0
- package/dist/esm/implements/dc/manager.d.ts +17 -0
- package/dist/esm/implements/dc/manager.d.ts.map +1 -0
- package/dist/esm/implements/file/client.d.ts +27 -0
- package/dist/esm/implements/file/client.d.ts.map +1 -0
- package/dist/esm/implements/file/file-cache-manager.d.ts +52 -0
- package/dist/esm/implements/file/file-cache-manager.d.ts.map +1 -0
- package/dist/esm/implements/file/manager.d.ts +180 -0
- package/dist/esm/implements/file/manager.d.ts.map +1 -0
- package/dist/esm/implements/file/seekableFileStream.d.ts +68 -0
- package/dist/esm/implements/file/seekableFileStream.d.ts.map +1 -0
- package/dist/esm/implements/file/streamwriter.d.ts +42 -0
- package/dist/esm/implements/file/streamwriter.d.ts.map +1 -0
- package/dist/esm/implements/keyvalue/client.d.ts +16 -0
- package/dist/esm/implements/keyvalue/client.d.ts.map +1 -0
- package/dist/esm/implements/keyvalue/manager.d.ts +50 -0
- package/dist/esm/implements/keyvalue/manager.d.ts.map +1 -0
- package/dist/esm/implements/message/client.d.ts +16 -0
- package/dist/esm/implements/message/client.d.ts.map +1 -0
- package/dist/esm/implements/message/manager.d.ts +23 -0
- package/dist/esm/implements/message/manager.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/cbor/coding.d.ts +20 -0
- package/dist/esm/implements/threaddb/cbor/coding.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/cbor/event.d.ts +90 -0
- package/dist/esm/implements/threaddb/cbor/event.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/cbor/node.d.ts +55 -0
- package/dist/esm/implements/threaddb/cbor/node.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/cbor/record.d.ts +101 -0
- package/dist/esm/implements/threaddb/cbor/record.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/common/AsyncMutex.d.ts +7 -0
- package/dist/esm/implements/threaddb/common/AsyncMutex.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/common/addrinfo.d.ts +32 -0
- package/dist/esm/implements/threaddb/common/addrinfo.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/common/dispatcher.d.ts +20 -0
- package/dist/esm/implements/threaddb/common/dispatcher.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/common/idbstore-adapter.d.ts +3 -0
- package/dist/esm/implements/threaddb/common/idbstore-adapter.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/common/json-patcher.d.ts +18 -0
- package/dist/esm/implements/threaddb/common/json-patcher.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/common/key.d.ts +67 -0
- package/dist/esm/implements/threaddb/common/key.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/common/lineReader.d.ts +25 -0
- package/dist/esm/implements/threaddb/common/lineReader.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/common/logstore.d.ts +27 -0
- package/dist/esm/implements/threaddb/common/logstore.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/common/transformed-datastore.d.ts +53 -0
- package/dist/esm/implements/threaddb/common/transformed-datastore.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/core/app.d.ts +81 -0
- package/dist/esm/implements/threaddb/core/app.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/core/core.d.ts +132 -0
- package/dist/esm/implements/threaddb/core/core.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/core/db.d.ts +196 -0
- package/dist/esm/implements/threaddb/core/db.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/core/event.d.ts +32 -0
- package/dist/esm/implements/threaddb/core/event.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/core/head.d.ts +28 -0
- package/dist/esm/implements/threaddb/core/head.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/core/identity.d.ts +44 -0
- package/dist/esm/implements/threaddb/core/identity.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/core/logstore.d.ts +108 -0
- package/dist/esm/implements/threaddb/core/logstore.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/core/options.d.ts +13 -0
- package/dist/esm/implements/threaddb/core/options.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/core/record.d.ts +30 -0
- package/dist/esm/implements/threaddb/core/record.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/db/collection.d.ts +289 -0
- package/dist/esm/implements/threaddb/db/collection.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/db/db.d.ts +74 -0
- package/dist/esm/implements/threaddb/db/db.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/db/json2Query.d.ts +8 -0
- package/dist/esm/implements/threaddb/db/json2Query.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/db/query.d.ts +176 -0
- package/dist/esm/implements/threaddb/db/query.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/dbclient.d.ts +67 -0
- package/dist/esm/implements/threaddb/dbclient.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/dbmanager.d.ts +222 -0
- package/dist/esm/implements/threaddb/dbmanager.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/lsstoreds/addr_book.d.ts +63 -0
- package/dist/esm/implements/threaddb/lsstoreds/addr_book.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/lsstoreds/cache.d.ts +2 -0
- package/dist/esm/implements/threaddb/lsstoreds/cache.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/lsstoreds/cyclic_batch.d.ts +19 -0
- package/dist/esm/implements/threaddb/lsstoreds/cyclic_batch.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/lsstoreds/global.d.ts +19 -0
- package/dist/esm/implements/threaddb/lsstoreds/global.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/lsstoreds/headbook.d.ts +36 -0
- package/dist/esm/implements/threaddb/lsstoreds/headbook.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/lsstoreds/keybook.d.ts +31 -0
- package/dist/esm/implements/threaddb/lsstoreds/keybook.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/lsstoreds/logstore.d.ts +7 -0
- package/dist/esm/implements/threaddb/lsstoreds/logstore.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/lsstoreds/metadata.d.ts +29 -0
- package/dist/esm/implements/threaddb/lsstoreds/metadata.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/net/define.d.ts +42 -0
- package/dist/esm/implements/threaddb/net/define.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/net/grpcClient.d.ts +82 -0
- package/dist/esm/implements/threaddb/net/grpcClient.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/net/grpcserver.d.ts +20 -0
- package/dist/esm/implements/threaddb/net/grpcserver.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/net/net.d.ts +306 -0
- package/dist/esm/implements/threaddb/net/net.d.ts.map +1 -0
- package/dist/esm/implements/threaddb/pb/proto-custom-types.d.ts +54 -0
- package/dist/esm/implements/threaddb/pb/proto-custom-types.d.ts.map +1 -0
- package/dist/esm/implements/util/client.d.ts +18 -0
- package/dist/esm/implements/util/client.d.ts.map +1 -0
- package/dist/esm/implements/util/manager.d.ts +22 -0
- package/dist/esm/implements/util/manager.d.ts.map +1 -0
- package/dist/esm/implements/wallet/manager.d.ts +40 -0
- package/dist/esm/implements/wallet/manager.d.ts.map +1 -0
- package/dist/esm/index.d.ts +27 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/indexDB/db.d.ts +23 -0
- package/dist/esm/indexDB/db.d.ts.map +1 -0
- package/dist/esm/indexDB/indexedDBHelper.d.ts +17 -0
- package/dist/esm/indexDB/indexedDBHelper.d.ts.map +1 -0
- package/dist/esm/interfaces/DCContext.d.ts +32 -0
- package/dist/esm/interfaces/DCContext.d.ts.map +1 -0
- package/dist/esm/interfaces/aiproxy-interface.d.ts +110 -0
- package/dist/esm/interfaces/aiproxy-interface.d.ts.map +1 -0
- package/dist/esm/interfaces/auth-interface.d.ts +143 -0
- package/dist/esm/interfaces/auth-interface.d.ts.map +1 -0
- package/dist/esm/interfaces/cache-interface.d.ts +22 -0
- package/dist/esm/interfaces/cache-interface.d.ts.map +1 -0
- package/dist/esm/interfaces/client-interface.d.ts +15 -0
- package/dist/esm/interfaces/client-interface.d.ts.map +1 -0
- package/dist/esm/interfaces/comment-interface.d.ts +111 -0
- package/dist/esm/interfaces/comment-interface.d.ts.map +1 -0
- package/dist/esm/interfaces/components/news-component.d.ts +2 -0
- package/dist/esm/interfaces/components/news-component.d.ts.map +1 -0
- package/dist/esm/interfaces/database-interface.d.ts +138 -0
- package/dist/esm/interfaces/database-interface.d.ts.map +1 -0
- package/dist/esm/interfaces/file-interface.d.ts +124 -0
- package/dist/esm/interfaces/file-interface.d.ts.map +1 -0
- package/dist/esm/interfaces/index.d.ts +11 -0
- package/dist/esm/interfaces/index.d.ts.map +1 -0
- package/dist/esm/interfaces/keyvalue-interface.d.ts +173 -0
- package/dist/esm/interfaces/keyvalue-interface.d.ts.map +1 -0
- package/dist/esm/interfaces/message-interface.d.ts +21 -0
- package/dist/esm/interfaces/message-interface.d.ts.map +1 -0
- package/dist/esm/interfaces/util-interface.d.ts +29 -0
- package/dist/esm/interfaces/util-interface.d.ts.map +1 -0
- package/dist/esm/modules/aiproxy-module.d.ts +57 -0
- package/dist/esm/modules/aiproxy-module.d.ts.map +1 -0
- package/dist/esm/modules/auth-module.d.ts +145 -0
- package/dist/esm/modules/auth-module.d.ts.map +1 -0
- package/dist/esm/modules/cache-module.d.ts +40 -0
- package/dist/esm/modules/cache-module.d.ts.map +1 -0
- package/dist/esm/modules/client-module.d.ts +31 -0
- package/dist/esm/modules/client-module.d.ts.map +1 -0
- package/dist/esm/modules/comment-module.d.ts +119 -0
- package/dist/esm/modules/comment-module.d.ts.map +1 -0
- package/dist/esm/modules/components/news-components.d.ts +83 -0
- package/dist/esm/modules/components/news-components.d.ts.map +1 -0
- package/dist/esm/modules/database-module.d.ts +153 -0
- package/dist/esm/modules/database-module.d.ts.map +1 -0
- package/dist/esm/modules/file-module.d.ts +118 -0
- package/dist/esm/modules/file-module.d.ts.map +1 -0
- package/dist/esm/modules/index.d.ts +11 -0
- package/dist/esm/modules/index.d.ts.map +1 -0
- package/dist/esm/modules/keyvalue-module.d.ts +163 -0
- package/dist/esm/modules/keyvalue-module.d.ts.map +1 -0
- package/dist/esm/modules/message-module.d.ts +42 -0
- package/dist/esm/modules/message-module.d.ts.map +1 -0
- package/dist/esm/modules/util-module.d.ts +58 -0
- package/dist/esm/modules/util-module.d.ts.map +1 -0
- package/dist/esm/proto/datasource.d.ts +29 -0
- package/dist/esm/proto/datasource.d.ts.map +1 -0
- package/dist/esm/serverless/base_entity.d.ts +12 -0
- package/dist/esm/serverless/base_entity.d.ts.map +1 -0
- package/dist/esm/serverless/base_repository.d.ts +49 -0
- package/dist/esm/serverless/base_repository.d.ts.map +1 -0
- package/dist/esm/serverless/decorator_factory.d.ts +84 -0
- package/dist/esm/serverless/decorator_factory.d.ts.map +1 -0
- package/dist/esm/util/BrowserLineReader.d.ts +34 -0
- package/dist/esm/util/BrowserLineReader.d.ts.map +1 -0
- package/dist/esm/util/base64.d.ts +11 -0
- package/dist/esm/util/base64.d.ts.map +1 -0
- package/dist/esm/util/bcrypt.d.ts +23 -0
- package/dist/esm/util/bcrypt.d.ts.map +1 -0
- package/dist/esm/util/curve25519Encryption.d.ts +21 -0
- package/dist/esm/util/curve25519Encryption.d.ts.map +1 -0
- package/dist/esm/util/dccrypt.d.ts +3 -0
- package/dist/esm/util/dccrypt.d.ts.map +1 -0
- package/dist/esm/util/logger.d.ts +38 -0
- package/dist/esm/util/logger.d.ts.map +1 -0
- package/dist/esm/util/utils.d.ts +54 -0
- package/dist/esm/util/utils.d.ts.map +1 -0
- 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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"}
|