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,289 @@
|
|
|
1
|
+
import { Key } from 'interface-datastore';
|
|
2
|
+
import { AnySchema } from 'ajv';
|
|
3
|
+
import { Ed25519PubKey as PubKey } from "../../../common/dc-key/ed25519";
|
|
4
|
+
import { Event, ITxn } from '../core/db';
|
|
5
|
+
import { ICollectionConfig } from '../core/core';
|
|
6
|
+
import { IDB, ICollection } from '../core/db';
|
|
7
|
+
import { ThreadToken } from '../core/identity';
|
|
8
|
+
import { Query } from './query';
|
|
9
|
+
/**
|
|
10
|
+
* Index defines an index configuration
|
|
11
|
+
*/
|
|
12
|
+
export interface Index {
|
|
13
|
+
/**
|
|
14
|
+
* Path to the field to index in dot syntax, e.g., "name.last" or "age".
|
|
15
|
+
*/
|
|
16
|
+
path: string;
|
|
17
|
+
/**
|
|
18
|
+
* Unique indicates that only one instance should exist per field value.
|
|
19
|
+
*/
|
|
20
|
+
unique?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Error types
|
|
24
|
+
*/
|
|
25
|
+
export declare class InvalidSortingFieldError extends Error {
|
|
26
|
+
constructor();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Instance ID type
|
|
30
|
+
*/
|
|
31
|
+
export type InstanceID = string;
|
|
32
|
+
/**
|
|
33
|
+
* Collection configuration interface
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* Index definition for collections
|
|
37
|
+
*/
|
|
38
|
+
export interface Index {
|
|
39
|
+
path: string;
|
|
40
|
+
unique?: boolean;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Collection class - a group of instances sharing a schema
|
|
44
|
+
*/
|
|
45
|
+
export declare class Collection implements ICollection {
|
|
46
|
+
readonly name: string;
|
|
47
|
+
schema: AnySchema;
|
|
48
|
+
db: IDB;
|
|
49
|
+
rawWriteValidator?: string | undefined;
|
|
50
|
+
rawReadFilter?: string | undefined;
|
|
51
|
+
private schemaValidator;
|
|
52
|
+
private vm;
|
|
53
|
+
private writeValidator;
|
|
54
|
+
readFilter: ((reader: any, instance: any) => any) | null;
|
|
55
|
+
indexes: Map<string, Index>;
|
|
56
|
+
constructor(name: string, schema: AnySchema, db: IDB, rawWriteValidator?: string | undefined, rawReadFilter?: string | undefined);
|
|
57
|
+
private compileAndLoadValidator;
|
|
58
|
+
/**
|
|
59
|
+
* Get base key for this collection
|
|
60
|
+
*/
|
|
61
|
+
baseKey(): Key;
|
|
62
|
+
/**
|
|
63
|
+
* Get collection name
|
|
64
|
+
*/
|
|
65
|
+
getName(): string;
|
|
66
|
+
/**
|
|
67
|
+
* Get collection schema
|
|
68
|
+
*/
|
|
69
|
+
getSchema(): Uint8Array;
|
|
70
|
+
/**
|
|
71
|
+
* Get write validator
|
|
72
|
+
*/
|
|
73
|
+
getWriteValidator(): Uint8Array;
|
|
74
|
+
/**
|
|
75
|
+
* Get read filter
|
|
76
|
+
*/
|
|
77
|
+
getReadFilter(): Uint8Array;
|
|
78
|
+
/**
|
|
79
|
+
* Create a read transaction
|
|
80
|
+
*/
|
|
81
|
+
readTxn(fn: (txn: ITxn) => Promise<void>, token?: ThreadToken): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Create a write transaction
|
|
84
|
+
*/
|
|
85
|
+
writeTxn(fn: (txn: ITxn) => Promise<void>, token?: ThreadToken): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Find instance by ID
|
|
88
|
+
*/
|
|
89
|
+
findByID(id: InstanceID, token?: ThreadToken): Promise<Object>;
|
|
90
|
+
/**
|
|
91
|
+
* Create a new instance
|
|
92
|
+
*/
|
|
93
|
+
create(v: Uint8Array, token?: ThreadToken): Promise<InstanceID>;
|
|
94
|
+
/**
|
|
95
|
+
* Create multiple instances
|
|
96
|
+
*/
|
|
97
|
+
createMany(vs: Uint8Array[], token?: ThreadToken): Promise<InstanceID[]>;
|
|
98
|
+
/**
|
|
99
|
+
* Delete an instance by ID
|
|
100
|
+
*/
|
|
101
|
+
delete(id: InstanceID, token?: ThreadToken): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Delete multiple instances by ID
|
|
104
|
+
*/
|
|
105
|
+
deleteMany(ids: InstanceID[], token?: ThreadToken): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Save changes to an instance
|
|
108
|
+
*/
|
|
109
|
+
save(v: Uint8Array, token?: ThreadToken): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* Save changes to multiple instances
|
|
112
|
+
*/
|
|
113
|
+
saveMany(vs: Uint8Array[], token?: ThreadToken): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Verify changes to an instance
|
|
116
|
+
*/
|
|
117
|
+
verify(v: Uint8Array, token?: ThreadToken): Promise<void>;
|
|
118
|
+
/**
|
|
119
|
+
* Verify changes to multiple instances
|
|
120
|
+
*/
|
|
121
|
+
verifyMany(vs: Uint8Array[], token?: ThreadToken): Promise<void>;
|
|
122
|
+
/**
|
|
123
|
+
* Check if an instance exists
|
|
124
|
+
*/
|
|
125
|
+
has(id: InstanceID, token?: ThreadToken): Promise<boolean>;
|
|
126
|
+
/**
|
|
127
|
+
* Check if multiple instances exist
|
|
128
|
+
*/
|
|
129
|
+
hasMany(ids: InstanceID[], token?: ThreadToken): Promise<boolean>;
|
|
130
|
+
/**
|
|
131
|
+
* Find instances matching a query
|
|
132
|
+
*/
|
|
133
|
+
find(q: Query, token?: ThreadToken): Promise<Object[]>;
|
|
134
|
+
/**
|
|
135
|
+
* Get instances modified since a specific time
|
|
136
|
+
*/
|
|
137
|
+
modifiedSince(time: number, token?: ThreadToken): Promise<InstanceID[]>;
|
|
138
|
+
/**
|
|
139
|
+
* Validate an instance against the collection schema
|
|
140
|
+
*/
|
|
141
|
+
validInstance(v: Uint8Array): void;
|
|
142
|
+
/**
|
|
143
|
+
* Validate write operations against the write validator
|
|
144
|
+
*/
|
|
145
|
+
validWrite(identity: PubKey, e: Event): Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* Filter read operations based on the read filter
|
|
148
|
+
*/
|
|
149
|
+
filterRead(identity: PubKey | undefined, instance: Uint8Array): Promise<Uint8Array | null>;
|
|
150
|
+
/**
|
|
151
|
+
* 返回当前索引列表
|
|
152
|
+
*/
|
|
153
|
+
getIndexes(): Index[];
|
|
154
|
+
/**
|
|
155
|
+
* 创建基于路径的新索引
|
|
156
|
+
* 使用点语法访问嵌套字段,例如 "name.last"
|
|
157
|
+
* 路径上的字段必须是支持的JSON Schema类型之一: string, number, integer, 或 boolean
|
|
158
|
+
* 设置unique为true可以在该路径上创建唯一性约束
|
|
159
|
+
* 添加索引将覆盖任何已存在的重叠索引值
|
|
160
|
+
* 注意: 这目前不会构建索引。如果在添加新索引之前已添加了项目,它们不会被事后索引。
|
|
161
|
+
*/
|
|
162
|
+
addIndex(index: Index, token?: ThreadToken): Promise<void>;
|
|
163
|
+
/**
|
|
164
|
+
* 删除指定路径的索引
|
|
165
|
+
*/
|
|
166
|
+
dropIndex(path: string): Promise<void>;
|
|
167
|
+
/**
|
|
168
|
+
* 持久化当前索引
|
|
169
|
+
*/
|
|
170
|
+
saveIndexes(): Promise<void>;
|
|
171
|
+
/**
|
|
172
|
+
* 向索引添加条目
|
|
173
|
+
*/
|
|
174
|
+
indexAdd(txn: any, key: Key, data: Uint8Array): Promise<void>;
|
|
175
|
+
/**
|
|
176
|
+
* 从索引中移除条目
|
|
177
|
+
* 确保传入的是旧记录的数据,而非新记录
|
|
178
|
+
*/
|
|
179
|
+
indexDelete(txn: any, key: Key, originalData: Uint8Array): Promise<void>;
|
|
180
|
+
/**
|
|
181
|
+
* 在项目上添加或移除特定索引
|
|
182
|
+
*/
|
|
183
|
+
indexUpdate(field: string, index: Index, txn: any, key: Key, input: Uint8Array, deleteOp: boolean): Promise<void>;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Transaction class for collections
|
|
187
|
+
*/
|
|
188
|
+
export declare class Txn implements ITxn {
|
|
189
|
+
private collection;
|
|
190
|
+
private token?;
|
|
191
|
+
private readonly readonly;
|
|
192
|
+
private actions;
|
|
193
|
+
private discarded;
|
|
194
|
+
private committed;
|
|
195
|
+
constructor(collection: Collection, token?: ThreadToken | undefined, readonly?: boolean);
|
|
196
|
+
/**
|
|
197
|
+
* Create new instances
|
|
198
|
+
*/
|
|
199
|
+
create(...newInstances: Uint8Array[]): Promise<InstanceID[]>;
|
|
200
|
+
/**
|
|
201
|
+
* Verify instance changes without saving them
|
|
202
|
+
*/
|
|
203
|
+
verify(...updated: Uint8Array[]): Promise<void>;
|
|
204
|
+
/**
|
|
205
|
+
* Save instance changes
|
|
206
|
+
*/
|
|
207
|
+
save(...updated: Uint8Array[]): Promise<void>;
|
|
208
|
+
/**
|
|
209
|
+
* Helper to create save actions
|
|
210
|
+
*/
|
|
211
|
+
private createSaveActions;
|
|
212
|
+
/**
|
|
213
|
+
* Delete instances
|
|
214
|
+
*/
|
|
215
|
+
delete(...ids: InstanceID[]): Promise<void>;
|
|
216
|
+
/**
|
|
217
|
+
* Check if instances exist
|
|
218
|
+
*/
|
|
219
|
+
has(...ids: InstanceID[]): Promise<boolean>;
|
|
220
|
+
/**
|
|
221
|
+
* Find instance by ID
|
|
222
|
+
*/
|
|
223
|
+
findByID(id: InstanceID): Promise<Object>;
|
|
224
|
+
/**
|
|
225
|
+
* Find instances matching a query
|
|
226
|
+
*/
|
|
227
|
+
find(q?: Query): Promise<Object[]>;
|
|
228
|
+
/**
|
|
229
|
+
* 创建一个适合查询的迭代器
|
|
230
|
+
*/
|
|
231
|
+
private newIterator;
|
|
232
|
+
/**
|
|
233
|
+
* Get instances modified since a specific time
|
|
234
|
+
*
|
|
235
|
+
* The _mod field tracks modified instances, but not those that have been deleted, so we need
|
|
236
|
+
* to query the dispatcher for all (unique) instances in this collection that have been modified
|
|
237
|
+
* at all since `time`.
|
|
238
|
+
*/
|
|
239
|
+
modifiedSince(time: number): Promise<InstanceID[]>;
|
|
240
|
+
/**
|
|
241
|
+
* Commit the transaction
|
|
242
|
+
*/
|
|
243
|
+
commit(): Promise<void>;
|
|
244
|
+
/**
|
|
245
|
+
* Discard the transaction
|
|
246
|
+
*/
|
|
247
|
+
discard(): void;
|
|
248
|
+
/**
|
|
249
|
+
* Refresh collection reference
|
|
250
|
+
*/
|
|
251
|
+
refreshCollection(): void;
|
|
252
|
+
/**
|
|
253
|
+
* Create events from actions
|
|
254
|
+
*/
|
|
255
|
+
private createEvents;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Create a new collection
|
|
259
|
+
*/
|
|
260
|
+
export declare function newCollection(db: IDB, config: ICollectionConfig): Promise<Collection>;
|
|
261
|
+
/**
|
|
262
|
+
* 迭代器类用于查询结果的迭代
|
|
263
|
+
*/
|
|
264
|
+
declare class Iterator {
|
|
265
|
+
nextKeys: () => Promise<Key[]>;
|
|
266
|
+
txn: any;
|
|
267
|
+
query: Query;
|
|
268
|
+
keyCache: Key[];
|
|
269
|
+
iter: any;
|
|
270
|
+
constructor(txn: any, query: Query);
|
|
271
|
+
/**
|
|
272
|
+
* 返回下一个符合迭代器条件的键值对
|
|
273
|
+
* 如果有错误,ok 为 false,result.error 将返回错误
|
|
274
|
+
*/
|
|
275
|
+
nextSync(): Promise<{
|
|
276
|
+
result: any;
|
|
277
|
+
marshaledValue?: any;
|
|
278
|
+
} | null>;
|
|
279
|
+
/**
|
|
280
|
+
* 关闭迭代器并释放资源
|
|
281
|
+
*/
|
|
282
|
+
close(): Promise<void>;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* 创建新的迭代器
|
|
286
|
+
*/
|
|
287
|
+
export declare function newIterator(txn: any, baseKey: Key, q: Query): Promise<Iterator>;
|
|
288
|
+
export {};
|
|
289
|
+
//# sourceMappingURL=collection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../../../lib/implements/threaddb/db/collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Key } from "interface-datastore";
|
|
2
|
+
import { Key as ThreadKey } from "../common/key";
|
|
3
|
+
import { Connector } from "../core/app";
|
|
4
|
+
import { IDBInfo, ManagedOptions } from "../core/core";
|
|
5
|
+
import { EventCodec } from "../core/db";
|
|
6
|
+
import { IThreadRecord } from "../core/record";
|
|
7
|
+
import { Ed25519PubKey } from "../../../common/dc-key/ed25519";
|
|
8
|
+
import { Collection } from "./collection";
|
|
9
|
+
import { ThreadToken } from "../core/identity";
|
|
10
|
+
import { NewOptions, ICollectionConfig } from "../core/core";
|
|
11
|
+
import { Event, InstanceID, TxnDatastoreExtended, IDB, ITxn } from "../core/db";
|
|
12
|
+
import { ThreadID } from "@textile/threads-id";
|
|
13
|
+
import { Net } from "../core/app";
|
|
14
|
+
import { Dispatcher } from "../common/dispatcher";
|
|
15
|
+
import { LocalEventsBus, App } from "../core/app";
|
|
16
|
+
import { IPLDNode } from "../core/core";
|
|
17
|
+
export declare class CollectionEvent<T = any> implements Event<T> {
|
|
18
|
+
readonly instanceID: InstanceID;
|
|
19
|
+
readonly collection: string;
|
|
20
|
+
readonly payload: T;
|
|
21
|
+
readonly timestamp: BigInt;
|
|
22
|
+
constructor(instanceID: InstanceID, collection: string, payload: T);
|
|
23
|
+
marshal(): Promise<Uint8Array>;
|
|
24
|
+
}
|
|
25
|
+
export declare class DB implements App, IDB {
|
|
26
|
+
private name;
|
|
27
|
+
connector: Connector | null;
|
|
28
|
+
datastore: TxnDatastoreExtended;
|
|
29
|
+
dispatcher: Dispatcher | null;
|
|
30
|
+
eventcodec: EventCodec;
|
|
31
|
+
collections: Map<string, Collection>;
|
|
32
|
+
localEventsBus: LocalEventsBus | null;
|
|
33
|
+
private webLock;
|
|
34
|
+
constructor(datastore: TxnDatastoreExtended, net: Net, id: string, opts: NewOptions);
|
|
35
|
+
static newDB(store: TxnDatastoreExtended, n: Net, id: ThreadID, opts?: NewOptions): Promise<DB>;
|
|
36
|
+
/**
|
|
37
|
+
* GetDBInfo returns the addresses and key that can be used to join the DB thread.
|
|
38
|
+
* @param options Optional settings for the operation
|
|
39
|
+
* @returns Promise resolving to thread info
|
|
40
|
+
*/
|
|
41
|
+
getDBInfo(options?: ManagedOptions): Promise<IDBInfo>;
|
|
42
|
+
saveName(prevName: string): Promise<void>;
|
|
43
|
+
loadName(): Promise<void>;
|
|
44
|
+
saveVerno(verno: number): Promise<void>;
|
|
45
|
+
loadVerno(): Promise<number>;
|
|
46
|
+
private initCollections;
|
|
47
|
+
upgradeCollections(configs: ICollectionConfig[]): Promise<void>;
|
|
48
|
+
newCollection(config: ICollectionConfig, forceUpdate?: boolean): Promise<Collection>;
|
|
49
|
+
saveCollection(c: Collection): Promise<void>;
|
|
50
|
+
reCreateCollections(): Promise<void>;
|
|
51
|
+
getCollection(name: string): Collection;
|
|
52
|
+
close(): Promise<void>;
|
|
53
|
+
reduce(events: Event[]): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* 默认索引函数
|
|
56
|
+
* 创建一个处理集合索引更新的函数
|
|
57
|
+
*/
|
|
58
|
+
defaultIndexFunc(): (collection: string, key: Key, txn: any, oldData?: Uint8Array, newData?: Uint8Array) => Promise<void>;
|
|
59
|
+
private notifyStateChanged;
|
|
60
|
+
/**
|
|
61
|
+
* 通知事务事件
|
|
62
|
+
* 将事务相关的节点和令牌发送到本地事件总线
|
|
63
|
+
*/
|
|
64
|
+
notifyTxnEvents(node: IPLDNode, token: ThreadToken): Promise<void>;
|
|
65
|
+
dispatch(events: Event[]): Promise<void>;
|
|
66
|
+
validateNetRecordBody(body: IPLDNode, identity: Ed25519PubKey): Promise<Error | undefined>;
|
|
67
|
+
handleNetRecord(rec: IThreadRecord, key: ThreadKey): Promise<Error | undefined>;
|
|
68
|
+
getNetRecordCreateTime(rec: IThreadRecord, key: ThreadKey): Promise<BigInt>;
|
|
69
|
+
private getBlockWithRetry;
|
|
70
|
+
readTxn(collection: Collection, fn: (txn: ITxn) => Promise<void>, token?: ThreadToken): Promise<void>;
|
|
71
|
+
private writeQueue;
|
|
72
|
+
writeTxn(collection: Collection, fn: (txn: ITxn) => Promise<void>, token?: ThreadToken): Promise<void>;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../../../lib/implements/threaddb/db/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json2Query.d.ts","sourceRoot":"","sources":["../../../../../lib/implements/threaddb/db/json2Query.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAuC,MAAM,SAAS,CAAC;AAmBnE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAqBzD"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { Key } from 'interface-datastore';
|
|
2
|
+
import { InstanceID } from '../core/db';
|
|
3
|
+
/**
|
|
4
|
+
* Query is a JSON-serializable query representation
|
|
5
|
+
*/
|
|
6
|
+
export declare class Query {
|
|
7
|
+
ands: Criterion[];
|
|
8
|
+
ors: Query[];
|
|
9
|
+
sort: Sort;
|
|
10
|
+
seek: InstanceID;
|
|
11
|
+
limit: number;
|
|
12
|
+
skip: number;
|
|
13
|
+
index: string;
|
|
14
|
+
constructor();
|
|
15
|
+
/**
|
|
16
|
+
* Validate validates the entire query
|
|
17
|
+
*/
|
|
18
|
+
validate(): Error | null;
|
|
19
|
+
/**
|
|
20
|
+
* And concatenates a new condition in an existing field
|
|
21
|
+
*/
|
|
22
|
+
and(field: string): Criterion;
|
|
23
|
+
/**
|
|
24
|
+
* Or concatenates a new condition that is sufficient
|
|
25
|
+
* for an instance to satisfy, independent of the current Query.
|
|
26
|
+
* Has left-associativity as: (a And b) Or c
|
|
27
|
+
*/
|
|
28
|
+
or(orQuery: Query): Query;
|
|
29
|
+
/**
|
|
30
|
+
* UseIndex specifies the index to use when running this query
|
|
31
|
+
*/
|
|
32
|
+
useIndex(path: string): Query;
|
|
33
|
+
/**
|
|
34
|
+
* OrderBy specifies ascending order for the query results
|
|
35
|
+
*/
|
|
36
|
+
orderBy(field: string): Query;
|
|
37
|
+
/**
|
|
38
|
+
* OrderByDesc specifies descending order for the query results
|
|
39
|
+
*/
|
|
40
|
+
orderByDesc(field: string): Query;
|
|
41
|
+
/**
|
|
42
|
+
* OrderByID specifies ascending ID order for the query results
|
|
43
|
+
*/
|
|
44
|
+
orderById(): Query;
|
|
45
|
+
/**
|
|
46
|
+
* OrderByIDDesc specifies descending ID order for the query results
|
|
47
|
+
*/
|
|
48
|
+
orderByIdDesc(): Query;
|
|
49
|
+
/**
|
|
50
|
+
* SeekID seeks to the given ID before returning query results
|
|
51
|
+
*/
|
|
52
|
+
seekId(id: InstanceID): Query;
|
|
53
|
+
/**
|
|
54
|
+
* LimitTo sets the maximum number of results
|
|
55
|
+
*/
|
|
56
|
+
limitTo(limit: number): Query;
|
|
57
|
+
/**
|
|
58
|
+
* SkipNum skips the given number of results
|
|
59
|
+
*/
|
|
60
|
+
skipNum(num: number): Query;
|
|
61
|
+
/**
|
|
62
|
+
* Match checks if the given object matches this query
|
|
63
|
+
*/
|
|
64
|
+
match(v: Record<string, any>): boolean;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Criterion represents a restriction on a field
|
|
68
|
+
*/
|
|
69
|
+
export declare class Criterion {
|
|
70
|
+
fieldPath: string;
|
|
71
|
+
operation: Operation;
|
|
72
|
+
value: Value;
|
|
73
|
+
private query;
|
|
74
|
+
constructor(fieldPath: string, operation?: Operation, value?: Value);
|
|
75
|
+
/**
|
|
76
|
+
* Validate validates a single query criterion
|
|
77
|
+
*/
|
|
78
|
+
validate(): Error | null;
|
|
79
|
+
/**
|
|
80
|
+
* Eq is an equality operator against a field
|
|
81
|
+
*/
|
|
82
|
+
eq(value: any): Query;
|
|
83
|
+
/**
|
|
84
|
+
* Ne is a not equal operator against a field
|
|
85
|
+
*/
|
|
86
|
+
ne(value: any): Query;
|
|
87
|
+
/**
|
|
88
|
+
* Gt is a greater operator against a field
|
|
89
|
+
*/
|
|
90
|
+
gt(value: any): Query;
|
|
91
|
+
/**
|
|
92
|
+
* Lt is a less operation against a field
|
|
93
|
+
*/
|
|
94
|
+
lt(value: any): Query;
|
|
95
|
+
/**
|
|
96
|
+
* Ge is a greater or equal operator against a field
|
|
97
|
+
*/
|
|
98
|
+
ge(value: any): Query;
|
|
99
|
+
/**
|
|
100
|
+
* Le is a less or equal operator against a field
|
|
101
|
+
*/
|
|
102
|
+
le(value: any): Query;
|
|
103
|
+
/**
|
|
104
|
+
* Creates a criterion with the specified operation and value
|
|
105
|
+
*/
|
|
106
|
+
private createCriterion;
|
|
107
|
+
/**
|
|
108
|
+
* Match checks if the given value matches this criterion
|
|
109
|
+
*/
|
|
110
|
+
match(value: any): boolean;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Value models a single value in JSON
|
|
114
|
+
*/
|
|
115
|
+
export declare class Value {
|
|
116
|
+
string: string | null;
|
|
117
|
+
bool: boolean | null;
|
|
118
|
+
float: number | null;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Sort represents a sort order on a field
|
|
122
|
+
*/
|
|
123
|
+
export declare class Sort {
|
|
124
|
+
fieldPath: string;
|
|
125
|
+
desc: boolean;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Operation models comparison operators
|
|
129
|
+
*/
|
|
130
|
+
export declare enum Operation {
|
|
131
|
+
eq = 0,// equals
|
|
132
|
+
ne = 1,// not equal to
|
|
133
|
+
gt = 2,// greater than
|
|
134
|
+
lt = 3,// less than
|
|
135
|
+
ge = 4,// greater than or equal to
|
|
136
|
+
le = 5,// less than or equal to
|
|
137
|
+
fn = 6
|
|
138
|
+
}
|
|
139
|
+
export declare class TypeMismatchError extends Error {
|
|
140
|
+
constructor(value: any, expected: Value);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Where starts to create a query condition for a field
|
|
144
|
+
*/
|
|
145
|
+
export declare function where(field: string): Criterion;
|
|
146
|
+
/**
|
|
147
|
+
* OrderBy specifies ascending order for the query results
|
|
148
|
+
*/
|
|
149
|
+
export declare function orderBy(field: string): Query;
|
|
150
|
+
/**
|
|
151
|
+
* OrderByDesc specifies descending order for the query results
|
|
152
|
+
*/
|
|
153
|
+
export declare function orderByDesc(field: string): Query;
|
|
154
|
+
/**
|
|
155
|
+
* OrderByID specifies ascending ID order for the query results
|
|
156
|
+
*/
|
|
157
|
+
export declare function orderById(): Query;
|
|
158
|
+
/**
|
|
159
|
+
* OrderByIDDesc specifies descending ID order for the query results
|
|
160
|
+
*/
|
|
161
|
+
export declare function orderByIdDesc(): Query;
|
|
162
|
+
/**
|
|
163
|
+
* Returns a deeply nested property from an object
|
|
164
|
+
*/
|
|
165
|
+
export declare function traverseFieldPathMap(value: Record<string, any>, fieldPath: string): any;
|
|
166
|
+
/**
|
|
167
|
+
* Compares two values for sorting
|
|
168
|
+
*/
|
|
169
|
+
export declare function compare(a: any, b: any): number;
|
|
170
|
+
export declare class ModifiedSinceHandler {
|
|
171
|
+
/**
|
|
172
|
+
* Gets instances modified since a specific time
|
|
173
|
+
*/
|
|
174
|
+
static modifiedSince(txn: any, dsDispatcherPrefix: Key, collectionName: string, time: number): Promise<InstanceID[]>;
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../lib/implements/threaddb/db/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAc,MAAM,YAAY,CAAC;AAIpD;;GAEG;AACH,qBAAa,KAAK;IAChB,IAAI,EAAE,SAAS,EAAE,CAAM;IACvB,GAAG,EAAE,KAAK,EAAE,CAAM;IAClB,IAAI,EAAE,IAAI,CAAc;IACxB,IAAI,EAAE,UAAU,CAAM;IACtB,KAAK,EAAE,MAAM,CAAK;IAClB,IAAI,EAAE,MAAM,CAAK;IACjB,KAAK,EAAE,MAAM,CAAM;;IAcnB;;OAEG;IACH,QAAQ,IAAI,KAAK,GAAG,IAAI;IAgBxB;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAI7B;;;;OAIG;IACH,EAAE,CAAC,OAAO,EAAE,KAAK,GAAG,KAAK;IAKzB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAK7B;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;IAM7B;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;IAMjC;;OAEG;IACH,SAAS,IAAI,KAAK;IAMlB;;OAEG;IACH,aAAa,IAAI,KAAK;IAMtB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,UAAU,GAAG,KAAK;IAK7B;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;IAK7B;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK;IAK3B;;OAEG;IACH,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO;CAqCvC;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,CAAgB;IACpC,KAAK,EAAE,KAAK,CAAe;IAC3B,OAAO,CAAC,KAAK,CAAsB;gBAEvB,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAC,SAAS,EAAC,KAAK,CAAC,EAAC,KAAK;IAMhE;;OAEG;IACH,QAAQ,IAAI,KAAK,GAAG,IAAI;IAexB;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK;IAIrB;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK;IAIrB;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK;IAIrB;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK;IAIrB;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK;IAIrB;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK;IAIrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;CAwB3B;AAED;;GAEG;AACH,qBAAa,KAAK;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,IAAI,EAAE,OAAO,GAAG,IAAI,CAAQ;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;CAC7B;AAED;;GAEG;AACH,qBAAa,IAAI;IACf,SAAS,EAAE,MAAM,CAAM;IACvB,IAAI,EAAE,OAAO,CAAS;CACvB;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,EAAE,IAAI,CAAE,SAAS;IACjB,EAAE,IAAI,CAAE,eAAe;IACvB,EAAE,IAAI,CAAE,eAAe;IACvB,EAAE,IAAI,CAAE,YAAY;IACpB,EAAE,IAAI,CAAE,2BAA2B;IACnC,EAAE,IAAI,CAAE,wBAAwB;IAChC,EAAE,IAAI;CACP;AAGD,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK;CASxC;AAID;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAE9C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAK5C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAKhD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,KAAK,CAKjC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,KAAK,CAKrC;AAqDD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAYvF;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,CAoB9C;AAGD,qBAAa,oBAAoB;IAC/B;;OAEG;WACU,aAAa,CACxB,GAAG,EAAE,GAAG,EACR,kBAAkB,EAAE,GAAG,EACvB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,UAAU,EAAE,CAAC;CAkCzB"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { Client } from "../../common/dcapi";
|
|
2
|
+
import type { Multiaddr as TMultiaddr } from "@multiformats/multiaddr";
|
|
3
|
+
import { NewThreadOptions } from "./core/options";
|
|
4
|
+
import { ThreadID } from "@textile/threads-id";
|
|
5
|
+
import { PeerId } from "@libp2p/interface";
|
|
6
|
+
import { IRecord } from "./core/record";
|
|
7
|
+
import { DcUtil } from "../../common/dcutil";
|
|
8
|
+
import { ILogstore } from "./core/logstore";
|
|
9
|
+
import { IThreadInfo, IThreadLogInfo } from "./core/core";
|
|
10
|
+
import { Net } from "./core/app";
|
|
11
|
+
import { SymKey } from "./core/core";
|
|
12
|
+
import { ThreadToken } from "./core/identity";
|
|
13
|
+
import { PeerRecords } from "./net/define";
|
|
14
|
+
export declare class DBClient {
|
|
15
|
+
client: Client;
|
|
16
|
+
dc: DcUtil;
|
|
17
|
+
logstore: ILogstore;
|
|
18
|
+
net: Net;
|
|
19
|
+
constructor(dcClient: Client, dcUtil: DcUtil, net: Net, logstore: ILogstore);
|
|
20
|
+
requestThreadID(peerAddr?: TMultiaddr): Promise<string>;
|
|
21
|
+
createThread(tid: string, opts: NewThreadOptions): Promise<string>;
|
|
22
|
+
pushRecordToPeer(tid: ThreadID, lid: PeerId, rec: IRecord, counter: number): Promise<void>;
|
|
23
|
+
pushLogToPeer(tid: ThreadID, lid: PeerId, rec: IRecord): Promise<Error | null>;
|
|
24
|
+
/**
|
|
25
|
+
* 与对等点交换边缘(状态信息)
|
|
26
|
+
* @param threadIds threadID数组
|
|
27
|
+
* @returns 无返回值
|
|
28
|
+
*/
|
|
29
|
+
exchangeEdges(threadIds: ThreadID[]): Promise<void>;
|
|
30
|
+
private pushLogsHeadToPeer;
|
|
31
|
+
/**
|
|
32
|
+
* 获取threaddb 的本地边缘值(地址和头部)
|
|
33
|
+
* 边缘值用于确定是否需要从远程对等点获取更新
|
|
34
|
+
*
|
|
35
|
+
* @param tid threaddb ID
|
|
36
|
+
* @returns 地址边缘值和头部边缘值的对象
|
|
37
|
+
* @throws 错误,包括特定的"No address edge"和"No heads edge"错误
|
|
38
|
+
*/
|
|
39
|
+
private localEdges;
|
|
40
|
+
private edgeToBigInt;
|
|
41
|
+
/**
|
|
42
|
+
* 调度日志更新
|
|
43
|
+
* @param tid threaddb ID
|
|
44
|
+
*/
|
|
45
|
+
scheduleUpdateLogs(tid: ThreadID): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* 调度记录更新
|
|
48
|
+
* @param tid threaddb ID
|
|
49
|
+
*/
|
|
50
|
+
private scheduleUpdateRecords;
|
|
51
|
+
/**
|
|
52
|
+
* 构建获取记录的请求
|
|
53
|
+
*/
|
|
54
|
+
private buildGetRecordsRequest;
|
|
55
|
+
/**
|
|
56
|
+
* 获取threaddb 中的日志
|
|
57
|
+
* @param tid threaddb ID
|
|
58
|
+
* @param pid 对等点ID
|
|
59
|
+
* @returns 日志信息数组
|
|
60
|
+
*/
|
|
61
|
+
getLogs(tid: ThreadID): Promise<IThreadLogInfo[]>;
|
|
62
|
+
getRecordsFromPeer(req: any, serviceKey: SymKey): Promise<Record<string, PeerRecords>>;
|
|
63
|
+
getThreadFromPeer(id: ThreadID, peerId: PeerId, options?: {
|
|
64
|
+
token?: ThreadToken;
|
|
65
|
+
}): Promise<IThreadInfo>;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=dbclient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dbclient.d.ts","sourceRoot":"","sources":["../../../../lib/implements/threaddb/dbclient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAe,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAGtE,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAO9C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,qBAAa,QAAQ;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,SAAS,CAAC;IACpB,GAAG,EAAE,GAAG,CAAC;gBAEG,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS;IAOrE,eAAe,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBvD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBlE,gBAAgB,CACpB,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAoBV,aAAa,CACjB,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAoBxB;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAwI3C,kBAAkB;IAgChC;;;;;;;OAOG;YACW,UAAU;IA2CxB,OAAO,CAAC,YAAY;IAYpB;;;OAGG;IACG,kBAAkB,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD;;;OAGG;YACW,qBAAqB;IAInC;;OAEG;YACW,sBAAsB;IA0CpC;;;;;OAKG;IACG,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA+BjD,kBAAkB,CACtB,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAiBjC,iBAAiB,CACrB,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,WAAW,CAAA;KAAO,GACpC,OAAO,CAAC,WAAW,CAAC;CAKxB"}
|