@brightchain/db 0.20.0
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/README.md +81 -0
- package/package.json +18 -0
- package/src/__tests__/helpers/mockBlockStore.d.ts +113 -0
- package/src/__tests__/helpers/mockBlockStore.js +380 -0
- package/src/__tests__/helpers/mockBlockStore.js.map +1 -0
- package/src/index.d.ts +31 -0
- package/src/index.js +78 -0
- package/src/index.js.map +1 -0
- package/src/lib/aggregation.d.ts +18 -0
- package/src/lib/aggregation.js +407 -0
- package/src/lib/aggregation.js.map +1 -0
- package/src/lib/cblIndex.d.ts +268 -0
- package/src/lib/cblIndex.js +856 -0
- package/src/lib/cblIndex.js.map +1 -0
- package/src/lib/collection.d.ts +305 -0
- package/src/lib/collection.js +991 -0
- package/src/lib/collection.js.map +1 -0
- package/src/lib/cursor.d.ts +8 -0
- package/src/lib/cursor.js +13 -0
- package/src/lib/cursor.js.map +1 -0
- package/src/lib/database.d.ts +158 -0
- package/src/lib/database.js +332 -0
- package/src/lib/database.js.map +1 -0
- package/src/lib/errors.d.ts +85 -0
- package/src/lib/errors.js +103 -0
- package/src/lib/errors.js.map +1 -0
- package/src/lib/expressMiddleware.d.ts +57 -0
- package/src/lib/expressMiddleware.js +488 -0
- package/src/lib/expressMiddleware.js.map +1 -0
- package/src/lib/headRegistry.d.ts +60 -0
- package/src/lib/headRegistry.js +216 -0
- package/src/lib/headRegistry.js.map +1 -0
- package/src/lib/indexing.d.ts +7 -0
- package/src/lib/indexing.js +14 -0
- package/src/lib/indexing.js.map +1 -0
- package/src/lib/model.d.ts +162 -0
- package/src/lib/model.js +260 -0
- package/src/lib/model.js.map +1 -0
- package/src/lib/pooledStoreAdapter.d.ts +44 -0
- package/src/lib/pooledStoreAdapter.js +109 -0
- package/src/lib/pooledStoreAdapter.js.map +1 -0
- package/src/lib/queryEngine.d.ts +48 -0
- package/src/lib/queryEngine.js +461 -0
- package/src/lib/queryEngine.js.map +1 -0
- package/src/lib/schemaValidation.d.ts +80 -0
- package/src/lib/schemaValidation.js +353 -0
- package/src/lib/schemaValidation.js.map +1 -0
- package/src/lib/transaction.d.ts +7 -0
- package/src/lib/transaction.js +12 -0
- package/src/lib/transaction.js.map +1 -0
- package/src/lib/types.d.ts +360 -0
- package/src/lib/types.js +6 -0
- package/src/lib/types.js.map +1 -0
- package/src/lib/updateEngine.d.ts +7 -0
- package/src/lib/updateEngine.js +13 -0
- package/src/lib/updateEngine.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cblIndex.js","sourceRoot":"","sources":["../../../../brightchain-db/src/lib/cblIndex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collection – the main API surface for interacting with a document collection.
|
|
3
|
+
*
|
|
4
|
+
* Provides a MongoDB-compatible interface including:
|
|
5
|
+
* insertOne, insertMany, findOne, find, updateOne, updateMany,
|
|
6
|
+
* deleteOne, deleteMany, replaceOne, countDocuments, distinct,
|
|
7
|
+
* aggregate, createIndex, dropIndex, watch
|
|
8
|
+
*/
|
|
9
|
+
import { IBlockStore } from '@brightchain/brightchain-lib';
|
|
10
|
+
import { Cursor } from './cursor';
|
|
11
|
+
import { CollectionSchema } from './schemaValidation';
|
|
12
|
+
import { AggregationStage, BsonDocument, BulkWriteOperation, BulkWriteOptions, BulkWriteResult, ChangeListener, CollectionOptions, DeleteResult, DocumentId, FilterQuery, FindOptions, IndexOptions, IndexSpec, InsertManyResult, InsertOneResult, ReadPreference, ReplaceResult, TextIndexOptions, UpdateOptions, UpdateQuery, UpdateResult, WriteConcern, WriteOptions } from './types';
|
|
13
|
+
/**
|
|
14
|
+
* Calculate a content-addressable block ID from data.
|
|
15
|
+
* Uses SHA3-512, the same algorithm as BrightChain's ChecksumService,
|
|
16
|
+
* but without requiring the global service provider to be initialised.
|
|
17
|
+
*/
|
|
18
|
+
export declare function calculateBlockId(data: Buffer | Uint8Array): string;
|
|
19
|
+
/**
|
|
20
|
+
* Minimal head-registry contract used by Collection and BrightChainDb.
|
|
21
|
+
*
|
|
22
|
+
* Both the legacy concrete HeadRegistry (sync) and IHeadRegistry implementations
|
|
23
|
+
* (InMemoryHeadRegistry, PersistentHeadRegistry) satisfy this interface
|
|
24
|
+
* structurally, avoiding the "separate declarations of a private property"
|
|
25
|
+
* error that occurs when TypeScript compares classes with private fields.
|
|
26
|
+
*/
|
|
27
|
+
export interface ICollectionHeadRegistry {
|
|
28
|
+
getHead(dbName: string, collectionName: string): string | undefined;
|
|
29
|
+
setHead(dbName: string, collectionName: string, blockId: string): void | Promise<void>;
|
|
30
|
+
removeHead(dbName: string, collectionName: string): void | Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Lookup resolver type – given a collection name, returns a collection instance.
|
|
34
|
+
*/
|
|
35
|
+
export type CollectionResolver = (name: string) => Collection;
|
|
36
|
+
/**
|
|
37
|
+
* A single document collection backed by a BrightChain block store.
|
|
38
|
+
*/
|
|
39
|
+
export declare class Collection<T extends BsonDocument = BsonDocument> {
|
|
40
|
+
readonly name: string;
|
|
41
|
+
private readonly store;
|
|
42
|
+
private readonly dbName;
|
|
43
|
+
private readonly headRegistry;
|
|
44
|
+
/** In-memory document index: logical _id → block checksum */
|
|
45
|
+
private readonly docIndex;
|
|
46
|
+
/** In-memory document cache for fast reads */
|
|
47
|
+
private readonly docCache;
|
|
48
|
+
/** Index manager */
|
|
49
|
+
private readonly indexManager;
|
|
50
|
+
/** Change listeners */
|
|
51
|
+
private readonly changeListeners;
|
|
52
|
+
/** Lookup resolver for $lookup in aggregation */
|
|
53
|
+
private collectionResolver?;
|
|
54
|
+
/** Whether initial index has been loaded */
|
|
55
|
+
private loaded;
|
|
56
|
+
/** Loading promise */
|
|
57
|
+
private loading;
|
|
58
|
+
/** Schema validation (if configured) */
|
|
59
|
+
private schema?;
|
|
60
|
+
/** Write concern for this collection */
|
|
61
|
+
private writeConcern;
|
|
62
|
+
/** Read preference for this collection */
|
|
63
|
+
private readPreference;
|
|
64
|
+
/** TTL index timers */
|
|
65
|
+
private ttlTimers;
|
|
66
|
+
/** Text index config: field name → weight */
|
|
67
|
+
private textIndexFields;
|
|
68
|
+
constructor(name: string, store: IBlockStore, dbName: string, headRegistry: ICollectionHeadRegistry, options?: CollectionOptions);
|
|
69
|
+
/** Set the collection resolver for cross-collection operations */
|
|
70
|
+
setCollectionResolver(resolver: CollectionResolver): void;
|
|
71
|
+
private ensureLoaded;
|
|
72
|
+
private loadFromStore;
|
|
73
|
+
private loadAllDocs;
|
|
74
|
+
private persistMeta;
|
|
75
|
+
private readDocFromStore;
|
|
76
|
+
private readDoc;
|
|
77
|
+
private writeDoc;
|
|
78
|
+
/**
|
|
79
|
+
* Remove a document from the collection index.
|
|
80
|
+
*
|
|
81
|
+
* Copy-on-write: blocks in the store are never deleted. This method only
|
|
82
|
+
* removes the logical mapping so the document is no longer reachable.
|
|
83
|
+
* The underlying block remains in the store as an orphan and could be
|
|
84
|
+
* reclaimed by a separate garbage-collection process if desired.
|
|
85
|
+
*/
|
|
86
|
+
private removeDoc;
|
|
87
|
+
/**
|
|
88
|
+
* Insert a single document.
|
|
89
|
+
*/
|
|
90
|
+
insertOne(doc: T, options?: WriteOptions): Promise<InsertOneResult>;
|
|
91
|
+
/**
|
|
92
|
+
* Insert multiple documents.
|
|
93
|
+
*/
|
|
94
|
+
insertMany(docs: T[], options?: WriteOptions): Promise<InsertManyResult>;
|
|
95
|
+
/**
|
|
96
|
+
* Find a single document matching the filter.
|
|
97
|
+
*/
|
|
98
|
+
findOne(filter?: FilterQuery<T>, options?: FindOptions<T>): Promise<T | null>;
|
|
99
|
+
/**
|
|
100
|
+
* Find documents matching the filter. Returns a cursor for chaining.
|
|
101
|
+
*/
|
|
102
|
+
find(filter?: FilterQuery<T>, options?: FindOptions<T>): Cursor<T>;
|
|
103
|
+
/**
|
|
104
|
+
* Find a document by its _id.
|
|
105
|
+
*/
|
|
106
|
+
findById(id: DocumentId): Promise<T | null>;
|
|
107
|
+
/**
|
|
108
|
+
* Update a single document matching the filter.
|
|
109
|
+
*/
|
|
110
|
+
updateOne(filter: FilterQuery<T>, update: UpdateQuery<T>, options?: UpdateOptions): Promise<UpdateResult>;
|
|
111
|
+
/**
|
|
112
|
+
* Update all documents matching the filter.
|
|
113
|
+
*/
|
|
114
|
+
updateMany(filter: FilterQuery<T>, update: UpdateQuery<T>, options?: WriteOptions): Promise<UpdateResult>;
|
|
115
|
+
/**
|
|
116
|
+
* Delete a single document matching the filter.
|
|
117
|
+
*/
|
|
118
|
+
deleteOne(filter: FilterQuery<T>, options?: WriteOptions): Promise<DeleteResult>;
|
|
119
|
+
/**
|
|
120
|
+
* Delete all documents matching the filter.
|
|
121
|
+
*/
|
|
122
|
+
deleteMany(filter: FilterQuery<T>, options?: WriteOptions): Promise<DeleteResult>;
|
|
123
|
+
/**
|
|
124
|
+
* Replace a single document matching the filter.
|
|
125
|
+
*/
|
|
126
|
+
replaceOne(filter: FilterQuery<T>, replacement: T, options?: UpdateOptions): Promise<ReplaceResult>;
|
|
127
|
+
/**
|
|
128
|
+
* Count documents matching the filter.
|
|
129
|
+
*/
|
|
130
|
+
countDocuments(filter?: FilterQuery<T>): Promise<number>;
|
|
131
|
+
/**
|
|
132
|
+
* Estimated document count (fast, from index size).
|
|
133
|
+
*/
|
|
134
|
+
estimatedDocumentCount(): Promise<number>;
|
|
135
|
+
/**
|
|
136
|
+
* Get distinct values for a field.
|
|
137
|
+
*/
|
|
138
|
+
distinct<K extends keyof T>(field: K, filter?: FilterQuery<T>): Promise<Array<T[K]>>;
|
|
139
|
+
/**
|
|
140
|
+
* Run an aggregation pipeline.
|
|
141
|
+
*/
|
|
142
|
+
aggregate(pipeline: AggregationStage[]): Promise<BsonDocument[]>;
|
|
143
|
+
/**
|
|
144
|
+
* Set a schema for this collection. Documents will be validated on
|
|
145
|
+
* insert and (if level is 'strict') on update.
|
|
146
|
+
*/
|
|
147
|
+
setSchema(schema: CollectionSchema): void;
|
|
148
|
+
/**
|
|
149
|
+
* Get the current schema (if any).
|
|
150
|
+
*/
|
|
151
|
+
getSchema(): CollectionSchema | undefined;
|
|
152
|
+
/**
|
|
153
|
+
* Remove validation schema.
|
|
154
|
+
*/
|
|
155
|
+
removeSchema(): void;
|
|
156
|
+
/**
|
|
157
|
+
* Validate a document without inserting it.
|
|
158
|
+
* @returns array of validation errors (empty if valid)
|
|
159
|
+
*/
|
|
160
|
+
validateDoc(doc: T): import('./errors').ValidationFieldError[];
|
|
161
|
+
/**
|
|
162
|
+
* Internal: validate and apply defaults before write.
|
|
163
|
+
*/
|
|
164
|
+
private validateBeforeWrite;
|
|
165
|
+
/**
|
|
166
|
+
* Create a text index for full-text search.
|
|
167
|
+
*
|
|
168
|
+
* @param options - The fields to index and their weights
|
|
169
|
+
* @returns The index name
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```typescript
|
|
173
|
+
* await coll.createTextIndex({ fields: { title: 10, body: 1 } });
|
|
174
|
+
* const results = await coll.find({ $text: { $search: 'hello world' } }).toArray();
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
createTextIndex(options: TextIndexOptions): string;
|
|
178
|
+
/**
|
|
179
|
+
* Drop the text index.
|
|
180
|
+
*/
|
|
181
|
+
dropTextIndex(): void;
|
|
182
|
+
/**
|
|
183
|
+
* Check if a text index exists.
|
|
184
|
+
*/
|
|
185
|
+
hasTextIndex(): boolean;
|
|
186
|
+
/**
|
|
187
|
+
* Create a TTL index that automatically removes documents whose
|
|
188
|
+
* date field is older than `expireAfterSeconds`.
|
|
189
|
+
*
|
|
190
|
+
* TTL expiry is checked periodically (every 60 seconds by default).
|
|
191
|
+
*/
|
|
192
|
+
createTTLIndex(field: string, expireAfterSeconds: number, intervalMs?: number): Promise<string>;
|
|
193
|
+
/**
|
|
194
|
+
* Stop a TTL index timer (does not drop the index itself).
|
|
195
|
+
*/
|
|
196
|
+
stopTTL(indexName: string): void;
|
|
197
|
+
/**
|
|
198
|
+
* Run a single TTL sweep: delete documents where `field` is older
|
|
199
|
+
* than `expireAfterSeconds` from now.
|
|
200
|
+
*/
|
|
201
|
+
sweepTTL(field: string, expireAfterSeconds: number): Promise<number>;
|
|
202
|
+
/**
|
|
203
|
+
* Execute multiple write operations in a single call.
|
|
204
|
+
*
|
|
205
|
+
* @param operations - Array of write operations
|
|
206
|
+
* @param options - Bulk write options (ordered = stop on first error)
|
|
207
|
+
* @returns Aggregated result of all operations
|
|
208
|
+
* @throws BulkWriteError if any operations fail and ordered is true
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* ```typescript
|
|
212
|
+
* await coll.bulkWrite([
|
|
213
|
+
* { insertOne: { document: { name: 'Alice' } } },
|
|
214
|
+
* { updateOne: { filter: { name: 'Bob' }, update: { $set: { age: 30 } } } },
|
|
215
|
+
* { deleteOne: { filter: { name: 'Charlie' } } },
|
|
216
|
+
* ]);
|
|
217
|
+
* ```
|
|
218
|
+
*/
|
|
219
|
+
bulkWrite(operations: BulkWriteOperation<T>[], options?: BulkWriteOptions): Promise<BulkWriteResult>;
|
|
220
|
+
/**
|
|
221
|
+
* Get the current write concern for this collection.
|
|
222
|
+
*/
|
|
223
|
+
getWriteConcern(): WriteConcern;
|
|
224
|
+
/**
|
|
225
|
+
* Set the write concern for this collection.
|
|
226
|
+
*/
|
|
227
|
+
setWriteConcern(wc: WriteConcern): void;
|
|
228
|
+
/**
|
|
229
|
+
* Get the current read preference for this collection.
|
|
230
|
+
*/
|
|
231
|
+
getReadPreference(): ReadPreference;
|
|
232
|
+
/**
|
|
233
|
+
* Set the read preference for this collection.
|
|
234
|
+
*/
|
|
235
|
+
setReadPreference(rp: ReadPreference): void;
|
|
236
|
+
/**
|
|
237
|
+
* Create an index on this collection.
|
|
238
|
+
*/
|
|
239
|
+
createIndex(spec: IndexSpec, options?: IndexOptions): Promise<string>;
|
|
240
|
+
/**
|
|
241
|
+
* Drop an index by name.
|
|
242
|
+
*/
|
|
243
|
+
dropIndex(name: string): Promise<void>;
|
|
244
|
+
/**
|
|
245
|
+
* List all indexes on this collection.
|
|
246
|
+
*/
|
|
247
|
+
listIndexes(): string[];
|
|
248
|
+
/**
|
|
249
|
+
* Watch for changes on this collection.
|
|
250
|
+
*/
|
|
251
|
+
watch(listener: ChangeListener<T>): () => void;
|
|
252
|
+
private emitChange;
|
|
253
|
+
/** Apply a transaction insert */
|
|
254
|
+
_txInsert(doc: T): Promise<void>;
|
|
255
|
+
/** Apply a transaction update – writes a new block (copy-on-write). */
|
|
256
|
+
_txUpdate(docId: DocumentId, after: T): Promise<void>;
|
|
257
|
+
/** Apply a transaction delete – removes mapping only (copy-on-write). */
|
|
258
|
+
_txDelete(docId: DocumentId, doc: T): Promise<void>;
|
|
259
|
+
/**
|
|
260
|
+
* Rollback a transaction insert.
|
|
261
|
+
* Copy-on-write: just remove the mapping; the block remains in the store.
|
|
262
|
+
*/
|
|
263
|
+
_txRollbackInsert(docId: DocumentId): Promise<void>;
|
|
264
|
+
/**
|
|
265
|
+
* Rollback a transaction update.
|
|
266
|
+
* Copy-on-write: restore the old mapping. The old block still exists in
|
|
267
|
+
* the store (blocks are never deleted), so writeDoc will detect it via
|
|
268
|
+
* store.has() and simply re-point the index.
|
|
269
|
+
*/
|
|
270
|
+
_txRollbackUpdate(docId: DocumentId, before: T): Promise<void>;
|
|
271
|
+
/**
|
|
272
|
+
* Rollback a transaction delete.
|
|
273
|
+
* Copy-on-write: re-insert the mapping. The block still exists in the
|
|
274
|
+
* store since blocks are never deleted.
|
|
275
|
+
*/
|
|
276
|
+
_txRollbackDelete(doc: T): Promise<void>;
|
|
277
|
+
/**
|
|
278
|
+
* Drop the entire collection – remove all document mappings and indexes.
|
|
279
|
+
*
|
|
280
|
+
* Copy-on-write: blocks in the store are never deleted. Only the
|
|
281
|
+
* collection's internal index and cache are cleared.
|
|
282
|
+
*/
|
|
283
|
+
drop(): Promise<void>;
|
|
284
|
+
/** Configure the query engine's text search fields from our text index */
|
|
285
|
+
private configureTextSearch;
|
|
286
|
+
}
|
|
287
|
+
export declare class HeadRegistry {
|
|
288
|
+
private static instance;
|
|
289
|
+
private readonly heads;
|
|
290
|
+
private constructor();
|
|
291
|
+
static getInstance(): HeadRegistry;
|
|
292
|
+
/** Create a new independent registry (for testing) */
|
|
293
|
+
static createIsolated(): HeadRegistry;
|
|
294
|
+
private makeKey;
|
|
295
|
+
getHead(dbName: string, collectionName: string): string | undefined;
|
|
296
|
+
setHead(dbName: string, collectionName: string, blockId: string): void;
|
|
297
|
+
removeHead(dbName: string, collectionName: string): void;
|
|
298
|
+
clear(): void;
|
|
299
|
+
/**
|
|
300
|
+
* Load head pointers from the persistence layer.
|
|
301
|
+
* For the in-memory implementation this is a no-op.
|
|
302
|
+
* Exists for API compatibility with IHeadRegistry / persistent registries.
|
|
303
|
+
*/
|
|
304
|
+
load(): Promise<void>;
|
|
305
|
+
}
|