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,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":"AAGA,OAAO,EAAE,GAAG,EAAS,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAEL,OAAO,EACP,cAAc,EAGf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,UAAU,EAIX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAO,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAS,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EACL,KAAK,EACL,UAAU,EAIV,oBAAoB,EAIpB,GAAG,EACH,IAAI,EACL,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAIlD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAOxC,qBAAa,eAAe,CAAC,CAAC,GAAG,GAAG,CAAE,YAAW,KAAK,CAAC,CAAC,CAAC;IAIrD,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,QAAQ,CAAC,OAAO,EAAE,CAAC;IALrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAGhB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC;IAOf,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;CAUrC;AAUD,qBAAa,EAAG,YAAW,GAAG,EAAE,GAAG;IACjC,OAAO,CAAC,IAAI,CAAS;IACd,SAAS,EAAE,SAAS,GAAG,IAAI,CAAQ;IACnC,SAAS,EAAE,oBAAoB,CAAC;IAChC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAQ;IACrC,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAa;IACjD,cAAc,EAAE,cAAc,GAAG,IAAI,CAAQ;IACpD,OAAO,CAAC,OAAO,CAAS;gBAGtB,SAAS,EAAE,oBAAoB,EAC/B,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,UAAU;WASL,KAAK,CAChB,KAAK,EAAE,oBAAoB,EAC3B,CAAC,EAAE,GAAG,EACN,EAAE,EAAE,QAAQ,EACZ,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,EAAE,CAAC;IAuDd;;;;OAIG;IACG,SAAS,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BrD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IASzB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;YAWpB,eAAe;IAMvB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/D,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAC,WAAW,GAAC,OAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAkBvF,cAAc,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC5C,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAqE1C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAMjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAEtB,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC5C;;;OAGG;IACH,gBAAgB,IAAI,CAClB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE,UAAU,EACpB,OAAO,CAAC,EAAE,UAAU,KACjB,OAAO,CAAC,IAAI,CAAC;IAuBlB,OAAO,CAAC,kBAAkB;IAM1B;;;OAGG;IACG,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAelE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxC,qBAAqB,CACzB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAqBvB,eAAe,CACnB,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,SAAS,GACb,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAuCvB,sBAAsB,CAC1B,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,SAAS,GACb,OAAO,CAAC,MAAM,CAAC;YAuDJ,iBAAiB;IAqBzB,OAAO,CACX,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,EAChC,KAAK,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC;IAiBhB,OAAO,CAAC,UAAU,CAAqB;IAEnC,QAAQ,CACZ,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,EAChC,KAAK,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC;CAyCf"}
@@ -0,0 +1,8 @@
1
+ import { Query } from "./query";
2
+ /**
3
+ * 解析JSON字符串为查询对象
4
+ * @param jsonQuery JSON查询字符串
5
+ * @returns 数据库查询对象
6
+ */
7
+ export declare function parseJsonToQuery(jsonQuery: string): Query;
8
+ //# sourceMappingURL=json2Query.d.ts.map
@@ -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":"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"}
@@ -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"}