@peerbit/document 4.1.2 → 4.1.4
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/lib/esm/document-index.d.ts +13 -7
- package/lib/esm/document-index.js +83 -37
- package/lib/esm/document-index.js.map +1 -1
- package/lib/esm/document-store.d.ts +3 -2
- package/lib/esm/document-store.js +6 -2
- package/lib/esm/document-store.js.map +1 -1
- package/package.json +8 -8
- package/src/document-index.ts +126 -60
- package/src/document-store.ts +13 -3
|
@@ -32,7 +32,7 @@ export interface IndexedValue<T> {
|
|
|
32
32
|
key: string;
|
|
33
33
|
value: Record<string, any> | T;
|
|
34
34
|
context: Context;
|
|
35
|
-
reference?: T
|
|
35
|
+
reference?: ValueWithLastOperation<T>;
|
|
36
36
|
}
|
|
37
37
|
export type RemoteQueryOptions<R> = RPCOptions<R> & {
|
|
38
38
|
sync?: boolean;
|
|
@@ -51,18 +51,23 @@ export type ResultsIterator<T> = {
|
|
|
51
51
|
next: (number: number) => Promise<T[]>;
|
|
52
52
|
done: () => boolean;
|
|
53
53
|
};
|
|
54
|
+
type ValueWithLastOperation<T> = {
|
|
55
|
+
value: T;
|
|
56
|
+
last: PutOperation<Operation<T>>;
|
|
57
|
+
};
|
|
54
58
|
type QueryDetailedOptions<T> = QueryOptions<T> & {
|
|
55
59
|
onResponse?: (response: AbstractSearchResult<T>, from: PublicSignKey) => void;
|
|
56
60
|
excludePeerAgeThreshold?: number;
|
|
57
61
|
};
|
|
62
|
+
export declare const MAX_DOCUMENT_SIZE = 5000000;
|
|
58
63
|
export type CanSearch = (request: SearchRequest | CollectNextRequest, from: PublicSignKey) => Promise<boolean> | boolean;
|
|
59
64
|
export type CanRead<T> = (result: T, from: PublicSignKey) => Promise<boolean> | boolean;
|
|
60
|
-
export type
|
|
65
|
+
export type InMemoryIndex<T> = {
|
|
61
66
|
index: DocumentIndex<T>;
|
|
62
67
|
};
|
|
63
68
|
export type OpenOptions<T> = {
|
|
64
69
|
type: AbstractType<T>;
|
|
65
|
-
dbType: AbstractType<
|
|
70
|
+
dbType: AbstractType<InMemoryIndex<T>>;
|
|
66
71
|
log: SharedLog<Operation<T>>;
|
|
67
72
|
canRead?: CanRead<T>;
|
|
68
73
|
canSearch?: CanSearch;
|
|
@@ -73,7 +78,7 @@ export type OpenOptions<T> = {
|
|
|
73
78
|
export declare class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
74
79
|
_query: RPC<AbstractSearchRequest, AbstractSearchResult<T>>;
|
|
75
80
|
type: AbstractType<T>;
|
|
76
|
-
dbType: AbstractType<
|
|
81
|
+
dbType: AbstractType<InMemoryIndex<T>>;
|
|
77
82
|
private _indexBy;
|
|
78
83
|
private _indexByArr;
|
|
79
84
|
indexByResolver: (obj: any) => string | Uint8Array;
|
|
@@ -93,22 +98,23 @@ export declare class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
93
98
|
get(key: Keyable, options?: QueryOptions<T>): Promise<T | undefined>;
|
|
94
99
|
getDetailed(key: Keyable, options?: QueryOptions<T>): Promise<Results<T>[] | undefined>;
|
|
95
100
|
get size(): number;
|
|
101
|
+
private getDocumentWithLastOperation;
|
|
96
102
|
getDocument(value: {
|
|
97
|
-
reference?: T
|
|
103
|
+
reference?: ValueWithLastOperation<T>;
|
|
98
104
|
context: {
|
|
99
105
|
head: string;
|
|
100
106
|
};
|
|
101
107
|
}): Promise<T>;
|
|
102
108
|
_queryDocuments(filter: (doc: IndexedValue<T>) => Promise<boolean>): Promise<{
|
|
103
109
|
context: Context;
|
|
104
|
-
value: T
|
|
110
|
+
value: ValueWithLastOperation<T>;
|
|
105
111
|
}[]>;
|
|
106
112
|
processFetchRequest(query: SearchRequest | CollectNextRequest, from: PublicSignKey, options?: {
|
|
107
113
|
canRead?: CanRead<T>;
|
|
108
114
|
}): Promise<{
|
|
109
115
|
results: {
|
|
110
116
|
context: Context;
|
|
111
|
-
value: T
|
|
117
|
+
value: ValueWithLastOperation<T>;
|
|
112
118
|
}[];
|
|
113
119
|
kept: number;
|
|
114
120
|
}>;
|
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import { field,
|
|
10
|
+
import { field, variant } from "@dao-xyz/borsh";
|
|
11
11
|
import { asString } from "./utils.js";
|
|
12
12
|
import { BORSH_ENCODING } from "@peerbit/log";
|
|
13
13
|
import { equals } from "@peerbit/uint8arrays";
|
|
@@ -145,7 +145,7 @@ const extractSortCompare = (a, b, sorts) => {
|
|
|
145
145
|
return 0;
|
|
146
146
|
};
|
|
147
147
|
const resolvedSort = async (arr, index, sorts) => {
|
|
148
|
-
await Promise.all(arr.map(async (result) => (result[SORT_TMP_KEY] = await index(result.value, result.context))));
|
|
148
|
+
await Promise.all(arr.map(async (result) => (result[SORT_TMP_KEY] = await index(result.value.value, result.context))));
|
|
149
149
|
arr.sort((a, b) => extractSortCompare(a[SORT_TMP_KEY], b[SORT_TMP_KEY], sorts));
|
|
150
150
|
return arr;
|
|
151
151
|
};
|
|
@@ -189,6 +189,27 @@ const dedup = (allResult, dedupBy) => {
|
|
|
189
189
|
};
|
|
190
190
|
const DEFAULT_INDEX_BY = "id";
|
|
191
191
|
const DEFAULT_REPLICATOR_MIN_AGE = 10 * 1000; // how long, until we consider a peer unreliable
|
|
192
|
+
/*
|
|
193
|
+
if (!(await this.canRead(message.sender))) {
|
|
194
|
+
throw new AccessError();
|
|
195
|
+
} */
|
|
196
|
+
export const MAX_DOCUMENT_SIZE = 5e6;
|
|
197
|
+
const getBatchFromResults = (results, wantedSize, maxSize = MAX_DOCUMENT_SIZE) => {
|
|
198
|
+
const batch = [];
|
|
199
|
+
let size = 0;
|
|
200
|
+
for (const result of results) {
|
|
201
|
+
batch.push(result);
|
|
202
|
+
size += result.value.last.data.length;
|
|
203
|
+
if (size > maxSize) {
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
if (wantedSize <= batch.length) {
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
results.splice(0, batch.length);
|
|
211
|
+
return batch;
|
|
212
|
+
};
|
|
192
213
|
let DocumentIndex = class DocumentIndex extends Program {
|
|
193
214
|
_query;
|
|
194
215
|
type;
|
|
@@ -257,10 +278,17 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
257
278
|
});
|
|
258
279
|
return new Results({
|
|
259
280
|
// Even if results might have length 0, respond, because then we now at least there are no matching results
|
|
260
|
-
results: results.results.map((r) =>
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
281
|
+
results: results.results.map((r) => {
|
|
282
|
+
if (r.value.last instanceof PutOperation === false) {
|
|
283
|
+
throw new Error("Unexpected value type on local results: " +
|
|
284
|
+
r.value.last?.constructor.name ||
|
|
285
|
+
typeof r.value.last);
|
|
286
|
+
}
|
|
287
|
+
return new ResultWithSource({
|
|
288
|
+
source: r.value.last.data,
|
|
289
|
+
context: r.context
|
|
290
|
+
});
|
|
291
|
+
}),
|
|
264
292
|
kept: BigInt(results.kept)
|
|
265
293
|
});
|
|
266
294
|
}
|
|
@@ -295,17 +323,24 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
295
323
|
get size() {
|
|
296
324
|
return this._index.size;
|
|
297
325
|
}
|
|
298
|
-
async
|
|
326
|
+
async getDocumentWithLastOperation(value) {
|
|
299
327
|
if (value.reference) {
|
|
300
328
|
return value.reference;
|
|
301
329
|
}
|
|
302
|
-
const
|
|
330
|
+
const head = await (await this._log.log.get(value.context.head));
|
|
331
|
+
const payloadValue = await head.getPayloadValue();
|
|
303
332
|
if (payloadValue instanceof PutOperation) {
|
|
304
|
-
return
|
|
333
|
+
return {
|
|
334
|
+
value: payloadValue.getValue(this.valueEncoding),
|
|
335
|
+
last: payloadValue
|
|
336
|
+
};
|
|
305
337
|
}
|
|
306
338
|
throw new Error("Unexpected value type when getting document: " +
|
|
307
339
|
payloadValue?.constructor?.name || typeof payloadValue);
|
|
308
340
|
}
|
|
341
|
+
getDocument(value) {
|
|
342
|
+
return this.getDocumentWithLastOperation(value).then((r) => r.value);
|
|
343
|
+
}
|
|
309
344
|
async _queryDocuments(filter) {
|
|
310
345
|
// Whether we return the full operation data or just the db value
|
|
311
346
|
const results = [];
|
|
@@ -313,7 +348,7 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
313
348
|
if (await filter(value)) {
|
|
314
349
|
results.push({
|
|
315
350
|
context: value.context,
|
|
316
|
-
value: await this.
|
|
351
|
+
value: await this.getDocumentWithLastOperation(value)
|
|
317
352
|
});
|
|
318
353
|
}
|
|
319
354
|
}
|
|
@@ -334,7 +369,7 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
334
369
|
? {
|
|
335
370
|
results: [
|
|
336
371
|
{
|
|
337
|
-
value: await this.
|
|
372
|
+
value: await this.getDocumentWithLastOperation(doc),
|
|
338
373
|
context: doc.context
|
|
339
374
|
}
|
|
340
375
|
],
|
|
@@ -350,7 +385,7 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
350
385
|
? {
|
|
351
386
|
results: [
|
|
352
387
|
{
|
|
353
|
-
value: await this.
|
|
388
|
+
value: await this.getDocumentWithLastOperation(doc),
|
|
354
389
|
context: doc.context
|
|
355
390
|
}
|
|
356
391
|
],
|
|
@@ -369,12 +404,12 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
369
404
|
return true;
|
|
370
405
|
});
|
|
371
406
|
if (options?.canRead) {
|
|
372
|
-
const keepFilter = await Promise.all(results.map((x) => options?.canRead(x.value, from)));
|
|
407
|
+
const keepFilter = await Promise.all(results.map((x) => options?.canRead(x.value.value, from)));
|
|
373
408
|
results = results.filter((x, i) => keepFilter[i]);
|
|
374
409
|
}
|
|
375
410
|
// Sort
|
|
376
411
|
await resolvedSort(results, this._toIndex, query.sort);
|
|
377
|
-
const batch = results
|
|
412
|
+
const batch = getBatchFromResults(results, query.fetch);
|
|
378
413
|
if (results.length > 0) {
|
|
379
414
|
this._resultsCollectQueue.add(query.idString, {
|
|
380
415
|
arr: results,
|
|
@@ -391,7 +426,7 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
391
426
|
kept: 0
|
|
392
427
|
};
|
|
393
428
|
}
|
|
394
|
-
const batch = results.arr
|
|
429
|
+
const batch = getBatchFromResults(results.arr, query.amount);
|
|
395
430
|
if (results.arr.length === 0) {
|
|
396
431
|
this._resultsCollectQueue.del(query.idString); // TODO add tests for proper cleanup/timeouts
|
|
397
432
|
}
|
|
@@ -546,18 +581,17 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
546
581
|
const results = await this.processFetchRequest(queryRequest, this.node.identity.publicKey);
|
|
547
582
|
if (results.results.length > 0) {
|
|
548
583
|
const resultsObject = new Results({
|
|
549
|
-
results:
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
context: r.context,
|
|
554
|
-
value: r.value,
|
|
555
|
-
source: payloadValue.data
|
|
556
|
-
});
|
|
584
|
+
results: results.results.map((r) => {
|
|
585
|
+
if (r.value.last instanceof PutOperation === false) {
|
|
586
|
+
throw new Error("Unexpected value type on local results: " +
|
|
587
|
+
r.value.last?.constructor.name || typeof r.value.last);
|
|
557
588
|
}
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
589
|
+
return new ResultWithSource({
|
|
590
|
+
context: r.context,
|
|
591
|
+
value: r.value.value,
|
|
592
|
+
source: r.value.last.data
|
|
593
|
+
});
|
|
594
|
+
}),
|
|
561
595
|
kept: BigInt(results.kept)
|
|
562
596
|
});
|
|
563
597
|
options?.onResponse &&
|
|
@@ -644,10 +678,17 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
644
678
|
// So that the iterator is pre-fetching the right amount of entries
|
|
645
679
|
const iterator = this.iterate(queryRequest, options);
|
|
646
680
|
// So that this call will not do any remote requests
|
|
647
|
-
const
|
|
681
|
+
const allResults = [];
|
|
682
|
+
while (iterator.done() === false &&
|
|
683
|
+
queryRequest.fetch > allResults.length) {
|
|
684
|
+
// We might need to pull .next multiple time due to data message size limitations
|
|
685
|
+
for (const result of await iterator.next(queryRequest.fetch - allResults.length)) {
|
|
686
|
+
allResults.push(result);
|
|
687
|
+
}
|
|
688
|
+
}
|
|
648
689
|
await iterator.close();
|
|
649
690
|
//s Deduplicate and return values directly
|
|
650
|
-
return dedup(
|
|
691
|
+
return dedup(allResults, this.indexByResolver);
|
|
651
692
|
}
|
|
652
693
|
/**
|
|
653
694
|
* Query and retrieve documents in a iterator
|
|
@@ -681,18 +722,23 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
681
722
|
return;
|
|
682
723
|
}
|
|
683
724
|
else if (response instanceof Results) {
|
|
684
|
-
|
|
725
|
+
const results = response;
|
|
726
|
+
if (results.kept === 0n && results.results.length === 0) {
|
|
685
727
|
return;
|
|
686
728
|
}
|
|
687
|
-
if (
|
|
729
|
+
if (results.kept > 0n) {
|
|
688
730
|
done = false; // we have more to do later!
|
|
689
731
|
}
|
|
690
732
|
peerBufferMap.set(from.hashcode(), {
|
|
691
|
-
buffer:
|
|
733
|
+
buffer: results.results
|
|
692
734
|
.filter((x) => !visited.has(asString(this.indexByResolver(x.value))))
|
|
693
735
|
.map((x) => {
|
|
694
736
|
visited.add(asString(this.indexByResolver(x.value)));
|
|
695
|
-
return {
|
|
737
|
+
return {
|
|
738
|
+
from,
|
|
739
|
+
value: { value: x.value },
|
|
740
|
+
context: x.context
|
|
741
|
+
};
|
|
696
742
|
}),
|
|
697
743
|
kept: Number(response.kept)
|
|
698
744
|
});
|
|
@@ -747,9 +793,9 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
747
793
|
}
|
|
748
794
|
peerBuffer.kept = results.kept;
|
|
749
795
|
peerBuffer.buffer.push(...results.results
|
|
750
|
-
.filter((x) => !visited.has(asString(this.indexByResolver(x.value))))
|
|
796
|
+
.filter((x) => !visited.has(asString(this.indexByResolver(x.value.value))))
|
|
751
797
|
.map((x) => {
|
|
752
|
-
visited.add(asString(this.indexByResolver(x.value)));
|
|
798
|
+
visited.add(asString(this.indexByResolver(x.value.value)));
|
|
753
799
|
return {
|
|
754
800
|
value: x.value,
|
|
755
801
|
context: x.context,
|
|
@@ -759,7 +805,7 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
759
805
|
}
|
|
760
806
|
})
|
|
761
807
|
.catch((e) => {
|
|
762
|
-
logger.error("Failed to collect sorted results self. " + e?.message);
|
|
808
|
+
logger.error("Failed to collect sorted results from self. " + e?.message);
|
|
763
809
|
peerBufferMap.delete(peer);
|
|
764
810
|
}));
|
|
765
811
|
}
|
|
@@ -795,7 +841,7 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
795
841
|
.map((x) => {
|
|
796
842
|
visited.add(asString(this.indexByResolver(x.value)));
|
|
797
843
|
return {
|
|
798
|
-
value: x.value,
|
|
844
|
+
value: { value: x.value },
|
|
799
845
|
context: x.context,
|
|
800
846
|
from: response.from
|
|
801
847
|
};
|
|
@@ -845,7 +891,7 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
845
891
|
}
|
|
846
892
|
}
|
|
847
893
|
done = fetchedAll && !pendingMoreResults;
|
|
848
|
-
return dedup(batch.map((x) => x.value), this.indexByResolver);
|
|
894
|
+
return dedup(batch.map((x) => x.value.value), this.indexByResolver);
|
|
849
895
|
};
|
|
850
896
|
const close = async () => {
|
|
851
897
|
controller.abort(new AbortError("Iterator closed"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-index.js","sourceRoot":"","sources":["../../src/document-index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document-index.js","sourceRoot":"","sources":["../../src/document-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,9 @@ import { Program, ProgramEvents } from "@peerbit/program";
|
|
|
4
4
|
import { AppendOptions } from "@peerbit/log";
|
|
5
5
|
import { RoleOptions, Observer, Replicator, SharedLog, SharedLogOptions, SharedAppendOptions } from "@peerbit/shared-log";
|
|
6
6
|
export type { RoleOptions };
|
|
7
|
-
import { IndexableFields, DeleteOperation, DocumentIndex, Operation, PutOperation, CanSearch, CanRead,
|
|
7
|
+
import { IndexableFields, DeleteOperation, DocumentIndex, Operation, PutOperation, CanSearch, CanRead, InMemoryIndex, MAX_DOCUMENT_SIZE } from "./document-index.js";
|
|
8
8
|
import { Keyable } from "./utils.js";
|
|
9
|
+
export { MAX_DOCUMENT_SIZE };
|
|
9
10
|
export declare class OperationError extends Error {
|
|
10
11
|
constructor(message?: string);
|
|
11
12
|
}
|
|
@@ -35,7 +36,7 @@ export type SetupOptions<T> = {
|
|
|
35
36
|
trim?: TrimOptions;
|
|
36
37
|
};
|
|
37
38
|
} & SharedLogOptions<Operation<T>>;
|
|
38
|
-
export declare class Documents<T extends Record<string, any>> extends Program<SetupOptions<T>, DocumentEvents<T> & ProgramEvents> implements
|
|
39
|
+
export declare class Documents<T extends Record<string, any>> extends Program<SetupOptions<T>, DocumentEvents<T> & ProgramEvents> implements InMemoryIndex<T> {
|
|
39
40
|
log: SharedLog<Operation<T>>;
|
|
40
41
|
immutable: boolean;
|
|
41
42
|
private _index;
|
|
@@ -14,9 +14,10 @@ import { AccessError, DecryptedThing } from "@peerbit/crypto";
|
|
|
14
14
|
import { logger as loggerFn } from "@peerbit/logger";
|
|
15
15
|
import { CustomEvent } from "@libp2p/interface";
|
|
16
16
|
import { Replicator, SharedLog } from "@peerbit/shared-log";
|
|
17
|
-
import { BORSH_ENCODING_OPERATION, DeleteOperation, DocumentIndex, PutOperation } from "./document-index.js";
|
|
17
|
+
import { BORSH_ENCODING_OPERATION, DeleteOperation, DocumentIndex, PutOperation, MAX_DOCUMENT_SIZE } from "./document-index.js";
|
|
18
18
|
import { asString, checkKeyable } from "./utils.js";
|
|
19
19
|
import { Context } from "./query.js";
|
|
20
|
+
export { MAX_DOCUMENT_SIZE };
|
|
20
21
|
const logger = loggerFn({ module: "document" });
|
|
21
22
|
export class OperationError extends Error {
|
|
22
23
|
constructor(message) {
|
|
@@ -200,6 +201,9 @@ let Documents = class Documents extends Program {
|
|
|
200
201
|
const key = this._index.indexByResolver(doc);
|
|
201
202
|
checkKeyable(key);
|
|
202
203
|
const ser = serialize(doc);
|
|
204
|
+
if (ser.length > MAX_DOCUMENT_SIZE) {
|
|
205
|
+
throw new Error(`Document is too large (${ser.length * 1e-6}) mb). Needs to be less than ${MAX_DOCUMENT_SIZE * 1e-6} mb`);
|
|
206
|
+
}
|
|
203
207
|
const existingDocument = options?.unique
|
|
204
208
|
? undefined
|
|
205
209
|
: (await this._index.getDetailed(key, {
|
|
@@ -310,7 +314,7 @@ let Documents = class Documents extends Program {
|
|
|
310
314
|
value: isPromise(valueToIndex) ? await valueToIndex : valueToIndex,
|
|
311
315
|
context,
|
|
312
316
|
reference: valueToIndex === value || value instanceof Program
|
|
313
|
-
? value
|
|
317
|
+
? { value, last: payload }
|
|
314
318
|
: undefined
|
|
315
319
|
});
|
|
316
320
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-store.js","sourceRoot":"","sources":["../../src/document-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document-store.js","sourceRoot":"","sources":["../../src/document-store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peerbit/document",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.4",
|
|
4
4
|
"description": "Document Store for orbit-db with binary ser/der",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -32,14 +32,14 @@
|
|
|
32
32
|
"author": "dao.xyz",
|
|
33
33
|
"license": "MIT",
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@dao-xyz/borsh": "^5.1
|
|
36
|
-
"@peerbit/program": "3.0.
|
|
37
|
-
"@peerbit/rpc": "3.0.
|
|
38
|
-
"@peerbit/shared-log": "
|
|
35
|
+
"@dao-xyz/borsh": "^5.2.1",
|
|
36
|
+
"@peerbit/program": "3.0.12",
|
|
37
|
+
"@peerbit/rpc": "3.0.14",
|
|
38
|
+
"@peerbit/shared-log": "6.0.1"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@peerbit/test-utils": "2.0.
|
|
42
|
-
"@peerbit/time": "2.0.
|
|
41
|
+
"@peerbit/test-utils": "2.0.14",
|
|
42
|
+
"@peerbit/time": "2.0.5"
|
|
43
43
|
},
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "7d274b1b196ffdcad390da510b635ee2733f65c3"
|
|
45
45
|
}
|
package/src/document-index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AbstractType, field, serialize, variant } from "@dao-xyz/borsh";
|
|
2
2
|
import { asString, Keyable } from "./utils.js";
|
|
3
|
-
import { BORSH_ENCODING, Encoding } from "@peerbit/log";
|
|
3
|
+
import { BORSH_ENCODING, Encoding, Entry } from "@peerbit/log";
|
|
4
4
|
import { equals } from "@peerbit/uint8arrays";
|
|
5
5
|
import { Program } from "@peerbit/program";
|
|
6
6
|
import {
|
|
@@ -127,7 +127,7 @@ export interface IndexedValue<T> {
|
|
|
127
127
|
key: string;
|
|
128
128
|
value: Record<string, any> | T; // decrypted, decoded
|
|
129
129
|
context: Context;
|
|
130
|
-
reference?: T
|
|
130
|
+
reference?: ValueWithLastOperation<T>;
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
export type RemoteQueryOptions<R> = RPCOptions<R> & {
|
|
@@ -149,6 +149,10 @@ export type ResultsIterator<T> = {
|
|
|
149
149
|
next: (number: number) => Promise<T[]>;
|
|
150
150
|
done: () => boolean;
|
|
151
151
|
};
|
|
152
|
+
type ValueWithLastOperation<T> = {
|
|
153
|
+
value: T;
|
|
154
|
+
last: PutOperation<Operation<T>>;
|
|
155
|
+
};
|
|
152
156
|
|
|
153
157
|
const sortCompare = (av: any, bv: any) => {
|
|
154
158
|
if (typeof av === "string" && typeof bv === "string") {
|
|
@@ -189,7 +193,10 @@ const extractSortCompare = (
|
|
|
189
193
|
return 0;
|
|
190
194
|
};
|
|
191
195
|
|
|
192
|
-
const resolvedSort = async <
|
|
196
|
+
const resolvedSort = async <
|
|
197
|
+
T,
|
|
198
|
+
Q extends { value: { value: T }; context: Context }
|
|
199
|
+
>(
|
|
193
200
|
arr: Q[],
|
|
194
201
|
index: IndexableFields<T>,
|
|
195
202
|
sorts: Sort[]
|
|
@@ -197,7 +204,7 @@ const resolvedSort = async <T, Q extends { value: T; context: Context }>(
|
|
|
197
204
|
await Promise.all(
|
|
198
205
|
arr.map(
|
|
199
206
|
async (result) =>
|
|
200
|
-
(result[SORT_TMP_KEY] = await index(result.value, result.context))
|
|
207
|
+
(result[SORT_TMP_KEY] = await index(result.value.value, result.context))
|
|
201
208
|
)
|
|
202
209
|
);
|
|
203
210
|
arr.sort((a, b) =>
|
|
@@ -266,6 +273,28 @@ const DEFAULT_REPLICATOR_MIN_AGE = 10 * 1000; // how long, until we consider a p
|
|
|
266
273
|
if (!(await this.canRead(message.sender))) {
|
|
267
274
|
throw new AccessError();
|
|
268
275
|
} */
|
|
276
|
+
export const MAX_DOCUMENT_SIZE = 5e6;
|
|
277
|
+
|
|
278
|
+
const getBatchFromResults = <T>(
|
|
279
|
+
results: { value: ValueWithLastOperation<T>; context: Context }[],
|
|
280
|
+
wantedSize: number,
|
|
281
|
+
maxSize: number = MAX_DOCUMENT_SIZE
|
|
282
|
+
) => {
|
|
283
|
+
const batch: { value: ValueWithLastOperation<T>; context: Context }[] = [];
|
|
284
|
+
let size = 0;
|
|
285
|
+
for (const result of results) {
|
|
286
|
+
batch.push(result);
|
|
287
|
+
size += result.value.last.data.length;
|
|
288
|
+
if (size > maxSize) {
|
|
289
|
+
break;
|
|
290
|
+
}
|
|
291
|
+
if (wantedSize <= batch.length) {
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
results.splice(0, batch.length);
|
|
296
|
+
return batch;
|
|
297
|
+
};
|
|
269
298
|
|
|
270
299
|
export type CanSearch = (
|
|
271
300
|
request: SearchRequest | CollectNextRequest,
|
|
@@ -277,11 +306,11 @@ export type CanRead<T> = (
|
|
|
277
306
|
from: PublicSignKey
|
|
278
307
|
) => Promise<boolean> | boolean;
|
|
279
308
|
|
|
280
|
-
export type
|
|
309
|
+
export type InMemoryIndex<T> = { index: DocumentIndex<T> };
|
|
281
310
|
|
|
282
311
|
export type OpenOptions<T> = {
|
|
283
312
|
type: AbstractType<T>;
|
|
284
|
-
dbType: AbstractType<
|
|
313
|
+
dbType: AbstractType<InMemoryIndex<T>>;
|
|
285
314
|
log: SharedLog<Operation<T>>;
|
|
286
315
|
canRead?: CanRead<T>;
|
|
287
316
|
canSearch?: CanSearch;
|
|
@@ -296,7 +325,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
296
325
|
_query: RPC<AbstractSearchRequest, AbstractSearchResult<T>>;
|
|
297
326
|
|
|
298
327
|
type: AbstractType<T>;
|
|
299
|
-
dbType: AbstractType<
|
|
328
|
+
dbType: AbstractType<InMemoryIndex<T>>;
|
|
300
329
|
|
|
301
330
|
// Index key
|
|
302
331
|
private _indexBy: string | string[];
|
|
@@ -314,7 +343,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
314
343
|
private _index: Map<string, IndexedValue<T>>;
|
|
315
344
|
private _resultsCollectQueue: Cache<{
|
|
316
345
|
from: PublicSignKey;
|
|
317
|
-
arr: { value: T
|
|
346
|
+
arr: { value: ValueWithLastOperation<T>; context: Context }[];
|
|
318
347
|
}>;
|
|
319
348
|
|
|
320
349
|
private _log: SharedLog<Operation<T>>;
|
|
@@ -392,13 +421,19 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
392
421
|
|
|
393
422
|
return new Results({
|
|
394
423
|
// Even if results might have length 0, respond, because then we now at least there are no matching results
|
|
395
|
-
results: results.results.map(
|
|
396
|
-
(r)
|
|
397
|
-
new
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
424
|
+
results: results.results.map((r) => {
|
|
425
|
+
if (r.value.last instanceof PutOperation === false) {
|
|
426
|
+
throw new Error(
|
|
427
|
+
"Unexpected value type on local results: " +
|
|
428
|
+
(r.value.last as any)?.constructor.name ||
|
|
429
|
+
typeof r.value.last
|
|
430
|
+
);
|
|
431
|
+
}
|
|
432
|
+
return new ResultWithSource({
|
|
433
|
+
source: r.value.last.data,
|
|
434
|
+
context: r.context
|
|
435
|
+
});
|
|
436
|
+
}),
|
|
402
437
|
kept: BigInt(results.kept)
|
|
403
438
|
});
|
|
404
439
|
}
|
|
@@ -449,19 +484,21 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
449
484
|
return this._index.size;
|
|
450
485
|
}
|
|
451
486
|
|
|
452
|
-
async
|
|
453
|
-
reference?: T
|
|
487
|
+
private async getDocumentWithLastOperation(value: {
|
|
488
|
+
reference?: ValueWithLastOperation<T>;
|
|
454
489
|
context: { head: string };
|
|
455
|
-
}): Promise<T
|
|
490
|
+
}): Promise<ValueWithLastOperation<T>> {
|
|
456
491
|
if (value.reference) {
|
|
457
492
|
return value.reference;
|
|
458
493
|
}
|
|
459
494
|
|
|
460
|
-
const
|
|
461
|
-
|
|
462
|
-
))!.getPayloadValue();
|
|
495
|
+
const head = await (await this._log.log.get(value.context.head))!;
|
|
496
|
+
const payloadValue = await head.getPayloadValue();
|
|
463
497
|
if (payloadValue instanceof PutOperation) {
|
|
464
|
-
return
|
|
498
|
+
return {
|
|
499
|
+
value: payloadValue.getValue(this.valueEncoding),
|
|
500
|
+
last: payloadValue
|
|
501
|
+
};
|
|
465
502
|
}
|
|
466
503
|
|
|
467
504
|
throw new Error(
|
|
@@ -470,16 +507,24 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
470
507
|
);
|
|
471
508
|
}
|
|
472
509
|
|
|
510
|
+
getDocument(value: {
|
|
511
|
+
reference?: ValueWithLastOperation<T>;
|
|
512
|
+
context: { head: string };
|
|
513
|
+
}) {
|
|
514
|
+
return this.getDocumentWithLastOperation(value).then((r) => r.value);
|
|
515
|
+
}
|
|
516
|
+
|
|
473
517
|
async _queryDocuments(
|
|
474
518
|
filter: (doc: IndexedValue<T>) => Promise<boolean>
|
|
475
|
-
): Promise<{ context: Context; value: T }[]> {
|
|
519
|
+
): Promise<{ context: Context; value: ValueWithLastOperation<T> }[]> {
|
|
476
520
|
// Whether we return the full operation data or just the db value
|
|
477
|
-
const results: { context: Context; value: T }[] =
|
|
521
|
+
const results: { context: Context; value: ValueWithLastOperation<T> }[] =
|
|
522
|
+
[];
|
|
478
523
|
for (const value of this._index.values()) {
|
|
479
524
|
if (await filter(value)) {
|
|
480
525
|
results.push({
|
|
481
526
|
context: value.context,
|
|
482
|
-
value: await this.
|
|
527
|
+
value: await this.getDocumentWithLastOperation(value)
|
|
483
528
|
});
|
|
484
529
|
}
|
|
485
530
|
}
|
|
@@ -492,7 +537,10 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
492
537
|
options?: {
|
|
493
538
|
canRead?: CanRead<T>;
|
|
494
539
|
}
|
|
495
|
-
): Promise<{
|
|
540
|
+
): Promise<{
|
|
541
|
+
results: { context: Context; value: ValueWithLastOperation<T> }[];
|
|
542
|
+
kept: number;
|
|
543
|
+
}> {
|
|
496
544
|
// We do special case for querying the id as we can do it faster than iterating
|
|
497
545
|
|
|
498
546
|
if (query instanceof SearchRequest) {
|
|
@@ -510,7 +558,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
510
558
|
? {
|
|
511
559
|
results: [
|
|
512
560
|
{
|
|
513
|
-
value: await this.
|
|
561
|
+
value: await this.getDocumentWithLastOperation(doc),
|
|
514
562
|
context: doc.context
|
|
515
563
|
}
|
|
516
564
|
],
|
|
@@ -527,7 +575,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
527
575
|
? {
|
|
528
576
|
results: [
|
|
529
577
|
{
|
|
530
|
-
value: await this.
|
|
578
|
+
value: await this.getDocumentWithLastOperation(doc),
|
|
531
579
|
context: doc.context
|
|
532
580
|
}
|
|
533
581
|
],
|
|
@@ -549,7 +597,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
549
597
|
|
|
550
598
|
if (options?.canRead) {
|
|
551
599
|
const keepFilter = await Promise.all(
|
|
552
|
-
results.map((x) => options?.canRead!(x.value, from))
|
|
600
|
+
results.map((x) => options?.canRead!(x.value.value, from))
|
|
553
601
|
);
|
|
554
602
|
results = results.filter((x, i) => keepFilter[i]);
|
|
555
603
|
}
|
|
@@ -557,7 +605,8 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
557
605
|
// Sort
|
|
558
606
|
await resolvedSort(results, this._toIndex, query.sort);
|
|
559
607
|
|
|
560
|
-
const batch = results
|
|
608
|
+
const batch = getBatchFromResults(results, query.fetch);
|
|
609
|
+
|
|
561
610
|
if (results.length > 0) {
|
|
562
611
|
this._resultsCollectQueue.add(query.idString, {
|
|
563
612
|
arr: results,
|
|
@@ -575,7 +624,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
575
624
|
};
|
|
576
625
|
}
|
|
577
626
|
|
|
578
|
-
const batch = results.arr
|
|
627
|
+
const batch = getBatchFromResults(results.arr, query.amount);
|
|
579
628
|
|
|
580
629
|
if (results.arr.length === 0) {
|
|
581
630
|
this._resultsCollectQueue.del(query.idString); // TODO add tests for proper cleanup/timeouts
|
|
@@ -630,7 +679,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
630
679
|
if (obj instanceof this.dbType) {
|
|
631
680
|
const queryCloned = f.clone();
|
|
632
681
|
queryCloned.key.splice(0, i + 1); // remove key path until the document store
|
|
633
|
-
const results = await (obj as any as
|
|
682
|
+
const results = await (obj as any as InMemoryIndex<any>).index.search(
|
|
634
683
|
new SearchRequest({ query: [queryCloned] })
|
|
635
684
|
);
|
|
636
685
|
return results.length > 0 ? true : false; // TODO return INNER HITS?
|
|
@@ -757,24 +806,19 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
757
806
|
);
|
|
758
807
|
if (results.results.length > 0) {
|
|
759
808
|
const resultsObject = new Results<T>({
|
|
760
|
-
results:
|
|
761
|
-
|
|
762
|
-
const payloadValue = await (
|
|
763
|
-
await this._log.log.get(r.context.head)
|
|
764
|
-
)?.getPayloadValue();
|
|
765
|
-
if (payloadValue instanceof PutOperation) {
|
|
766
|
-
return new ResultWithSource({
|
|
767
|
-
context: r.context,
|
|
768
|
-
value: r.value,
|
|
769
|
-
source: payloadValue.data
|
|
770
|
-
});
|
|
771
|
-
}
|
|
809
|
+
results: results.results.map((r) => {
|
|
810
|
+
if (r.value.last instanceof PutOperation === false) {
|
|
772
811
|
throw new Error(
|
|
773
812
|
"Unexpected value type on local results: " +
|
|
774
|
-
|
|
813
|
+
(r.value.last as any)?.constructor.name || typeof r.value.last
|
|
775
814
|
);
|
|
776
|
-
}
|
|
777
|
-
|
|
815
|
+
}
|
|
816
|
+
return new ResultWithSource({
|
|
817
|
+
context: r.context,
|
|
818
|
+
value: r.value.value,
|
|
819
|
+
source: r.value.last.data
|
|
820
|
+
});
|
|
821
|
+
}),
|
|
778
822
|
kept: BigInt(results.kept)
|
|
779
823
|
});
|
|
780
824
|
options?.onResponse &&
|
|
@@ -879,12 +923,23 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
879
923
|
const iterator = this.iterate(queryRequest, options);
|
|
880
924
|
|
|
881
925
|
// So that this call will not do any remote requests
|
|
882
|
-
const
|
|
926
|
+
const allResults: T[] = [];
|
|
927
|
+
while (
|
|
928
|
+
iterator.done() === false &&
|
|
929
|
+
queryRequest.fetch > allResults.length
|
|
930
|
+
) {
|
|
931
|
+
// We might need to pull .next multiple time due to data message size limitations
|
|
932
|
+
for (const result of await iterator.next(
|
|
933
|
+
queryRequest.fetch - allResults.length
|
|
934
|
+
)) {
|
|
935
|
+
allResults.push(result);
|
|
936
|
+
}
|
|
937
|
+
}
|
|
883
938
|
|
|
884
939
|
await iterator.close();
|
|
885
940
|
|
|
886
941
|
//s Deduplicate and return values directly
|
|
887
|
-
return dedup(
|
|
942
|
+
return dedup(allResults, this.indexByResolver);
|
|
888
943
|
}
|
|
889
944
|
|
|
890
945
|
/**
|
|
@@ -902,7 +957,11 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
902
957
|
string,
|
|
903
958
|
{
|
|
904
959
|
kept: number;
|
|
905
|
-
buffer: {
|
|
960
|
+
buffer: {
|
|
961
|
+
value: { value: T };
|
|
962
|
+
context: Context;
|
|
963
|
+
from: PublicSignKey;
|
|
964
|
+
}[];
|
|
906
965
|
}
|
|
907
966
|
> = new Map();
|
|
908
967
|
const visited = new Set<string>();
|
|
@@ -914,7 +973,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
914
973
|
const controller = new AbortController();
|
|
915
974
|
|
|
916
975
|
const peerBuffers = (): {
|
|
917
|
-
value: T;
|
|
976
|
+
value: { value: T };
|
|
918
977
|
from: PublicSignKey;
|
|
919
978
|
context: Context;
|
|
920
979
|
}[] => {
|
|
@@ -935,22 +994,27 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
935
994
|
logger.error("Dont have access");
|
|
936
995
|
return;
|
|
937
996
|
} else if (response instanceof Results) {
|
|
938
|
-
|
|
997
|
+
const results = response as Results<T>;
|
|
998
|
+
if (results.kept === 0n && results.results.length === 0) {
|
|
939
999
|
return;
|
|
940
1000
|
}
|
|
941
1001
|
|
|
942
|
-
if (
|
|
1002
|
+
if (results.kept > 0n) {
|
|
943
1003
|
done = false; // we have more to do later!
|
|
944
1004
|
}
|
|
945
1005
|
|
|
946
1006
|
peerBufferMap.set(from.hashcode(), {
|
|
947
|
-
buffer:
|
|
1007
|
+
buffer: results.results
|
|
948
1008
|
.filter(
|
|
949
1009
|
(x) => !visited.has(asString(this.indexByResolver(x.value)))
|
|
950
1010
|
)
|
|
951
1011
|
.map((x) => {
|
|
952
1012
|
visited.add(asString(this.indexByResolver(x.value)));
|
|
953
|
-
return {
|
|
1013
|
+
return {
|
|
1014
|
+
from,
|
|
1015
|
+
value: { value: x.value },
|
|
1016
|
+
context: x.context
|
|
1017
|
+
};
|
|
954
1018
|
}),
|
|
955
1019
|
kept: Number(response.kept)
|
|
956
1020
|
});
|
|
@@ -1021,11 +1085,13 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
1021
1085
|
.filter(
|
|
1022
1086
|
(x) =>
|
|
1023
1087
|
!visited.has(
|
|
1024
|
-
asString(this.indexByResolver(x.value))
|
|
1088
|
+
asString(this.indexByResolver(x.value.value))
|
|
1025
1089
|
)
|
|
1026
1090
|
)
|
|
1027
1091
|
.map((x) => {
|
|
1028
|
-
visited.add(
|
|
1092
|
+
visited.add(
|
|
1093
|
+
asString(this.indexByResolver(x.value.value))
|
|
1094
|
+
);
|
|
1029
1095
|
return {
|
|
1030
1096
|
value: x.value,
|
|
1031
1097
|
context: x.context,
|
|
@@ -1037,7 +1103,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
1037
1103
|
})
|
|
1038
1104
|
.catch((e) => {
|
|
1039
1105
|
logger.error(
|
|
1040
|
-
"Failed to collect sorted results self. " + e?.message
|
|
1106
|
+
"Failed to collect sorted results from self. " + e?.message
|
|
1041
1107
|
);
|
|
1042
1108
|
peerBufferMap.delete(peer);
|
|
1043
1109
|
})
|
|
@@ -1084,7 +1150,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
1084
1150
|
asString(this.indexByResolver(x.value))
|
|
1085
1151
|
);
|
|
1086
1152
|
return {
|
|
1087
|
-
value: x.value,
|
|
1153
|
+
value: { value: x.value },
|
|
1088
1154
|
context: x.context,
|
|
1089
1155
|
from: response.from!
|
|
1090
1156
|
};
|
|
@@ -1151,7 +1217,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
|
|
|
1151
1217
|
|
|
1152
1218
|
done = fetchedAll && !pendingMoreResults;
|
|
1153
1219
|
return dedup(
|
|
1154
|
-
batch.map((x) => x.value),
|
|
1220
|
+
batch.map((x) => x.value.value),
|
|
1155
1221
|
this.indexByResolver
|
|
1156
1222
|
);
|
|
1157
1223
|
};
|
package/src/document-store.ts
CHANGED
|
@@ -32,10 +32,12 @@ import {
|
|
|
32
32
|
PutOperation,
|
|
33
33
|
CanSearch,
|
|
34
34
|
CanRead,
|
|
35
|
-
|
|
35
|
+
InMemoryIndex,
|
|
36
|
+
MAX_DOCUMENT_SIZE
|
|
36
37
|
} from "./document-index.js";
|
|
37
38
|
import { asString, checkKeyable, Keyable } from "./utils.js";
|
|
38
39
|
import { Context, Results } from "./query.js";
|
|
40
|
+
export { MAX_DOCUMENT_SIZE };
|
|
39
41
|
|
|
40
42
|
const logger = loggerFn({ module: "document" });
|
|
41
43
|
|
|
@@ -81,7 +83,7 @@ export type SetupOptions<T> = {
|
|
|
81
83
|
@variant("documents")
|
|
82
84
|
export class Documents<T extends Record<string, any>>
|
|
83
85
|
extends Program<SetupOptions<T>, DocumentEvents<T> & ProgramEvents>
|
|
84
|
-
implements
|
|
86
|
+
implements InMemoryIndex<T>
|
|
85
87
|
{
|
|
86
88
|
@field({ type: SharedLog })
|
|
87
89
|
log: SharedLog<Operation<T>>;
|
|
@@ -311,6 +313,14 @@ export class Documents<T extends Record<string, any>>
|
|
|
311
313
|
const key = this._index.indexByResolver(doc as any as Keyable);
|
|
312
314
|
checkKeyable(key);
|
|
313
315
|
const ser = serialize(doc);
|
|
316
|
+
if (ser.length > MAX_DOCUMENT_SIZE) {
|
|
317
|
+
throw new Error(
|
|
318
|
+
`Document is too large (${
|
|
319
|
+
ser.length * 1e-6
|
|
320
|
+
}) mb). Needs to be less than ${MAX_DOCUMENT_SIZE * 1e-6} mb`
|
|
321
|
+
);
|
|
322
|
+
}
|
|
323
|
+
|
|
314
324
|
const existingDocument = options?.unique
|
|
315
325
|
? undefined
|
|
316
326
|
: (
|
|
@@ -449,7 +459,7 @@ export class Documents<T extends Record<string, any>>
|
|
|
449
459
|
context,
|
|
450
460
|
reference:
|
|
451
461
|
valueToIndex === value || value instanceof Program
|
|
452
|
-
? value
|
|
462
|
+
? { value, last: payload }
|
|
453
463
|
: undefined
|
|
454
464
|
});
|
|
455
465
|
} else if (
|