@peerbit/document 9.0.26 → 9.1.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/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/search.d.ts +13 -10
- package/dist/src/search.d.ts.map +1 -1
- package/dist/src/search.js +48 -26
- package/dist/src/search.js.map +1 -1
- package/package.json +6 -6
- package/src/index.ts +1 -1
- package/src/search.ts +125 -80
package/dist/src/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from "@peerbit/indexer-interface";
|
|
2
2
|
export * from "@peerbit/document-interface";
|
|
3
3
|
export * from "./program.js";
|
|
4
|
-
export type { CanRead, CanSearch, DocumentIndex,
|
|
4
|
+
export type { CanRead, CanSearch, DocumentIndex, WithIndexedContext, OpenOptions, QueryOptions, RemoteQueryOptions, ResultsIterator, SearchOptions, TransformOptions, TransformerAsConstructor, TransformerAsFunction, } from "./search.js";
|
|
5
5
|
export * from "./operation.js";
|
|
6
6
|
export { MAX_BATCH_SIZE as MAX_DOCUMENT_SIZE } from "./constants.js";
|
|
7
7
|
export { ClosedError } from "@peerbit/program";
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,YAAY,EACX,OAAO,EACP,SAAS,EACT,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,YAAY,EACX,OAAO,EACP,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,GACrB,MAAM,aAAa,CAAC;AACrB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,cAAc,IAAI,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACN,KAAK,oBAAoB,EACzB,oBAAoB,EACpB,gCAAgC,GAChC,MAAM,aAAa,CAAC"}
|
package/dist/src/search.d.ts
CHANGED
|
@@ -37,7 +37,7 @@ type ExtractResolveFromOptions<O> = O extends QueryOptions<any, any, infer X> ?
|
|
|
37
37
|
export type CanSearch = (request: types.SearchRequest | types.CollectNextRequest, from: PublicSignKey) => Promise<boolean> | boolean;
|
|
38
38
|
export type CanRead<T> = (result: T, from: PublicSignKey) => Promise<boolean> | boolean;
|
|
39
39
|
export type CanReadIndexed<I> = (result: I, from: PublicSignKey) => Promise<boolean> | boolean;
|
|
40
|
-
type ValueTypeFromRequest<Resolve extends boolean | undefined, T, I> = Resolve extends false ? I : T
|
|
40
|
+
type ValueTypeFromRequest<Resolve extends boolean | undefined, T, I> = Resolve extends false ? WithContext<I> : WithContext<T>;
|
|
41
41
|
export declare class IndexableContext implements types.Context {
|
|
42
42
|
created: bigint;
|
|
43
43
|
modified: bigint;
|
|
@@ -53,9 +53,12 @@ export declare class IndexableContext implements types.Context {
|
|
|
53
53
|
});
|
|
54
54
|
toContext(): types.Context;
|
|
55
55
|
}
|
|
56
|
-
export type
|
|
56
|
+
export type WithIndexedContext<I> = {
|
|
57
57
|
__context: IndexableContext;
|
|
58
58
|
} & I;
|
|
59
|
+
export type WithContext<I> = {
|
|
60
|
+
__context: types.Context;
|
|
61
|
+
} & I;
|
|
59
62
|
export type TransformerAsConstructor<T, I> = {
|
|
60
63
|
type?: new (arg: T, context: types.Context) => I;
|
|
61
64
|
};
|
|
@@ -70,14 +73,14 @@ export type OpenOptions<T, I, D extends ReplicationDomain<any, Operation, any>>
|
|
|
70
73
|
log: SharedLog<Operation, D, any>;
|
|
71
74
|
canRead?: CanRead<I>;
|
|
72
75
|
canSearch?: CanSearch;
|
|
73
|
-
replicate: (request: types.SearchRequest | types.SearchRequestIndexed, results: types.Results<types.ResultTypeFromRequest<types.SearchRequest | types.SearchRequestIndexed>>) => Promise<void>;
|
|
76
|
+
replicate: (request: types.SearchRequest | types.SearchRequestIndexed, results: types.Results<types.ResultTypeFromRequest<types.SearchRequest | types.SearchRequestIndexed, T, I>>) => Promise<void>;
|
|
74
77
|
indexBy?: string | string[];
|
|
75
78
|
transform?: TransformOptions<T, I>;
|
|
76
79
|
cacheSize?: number;
|
|
77
80
|
compatibility: 6 | 7 | 8 | undefined;
|
|
78
81
|
maybeOpen: (value: T & Program) => Promise<T & Program>;
|
|
79
82
|
};
|
|
80
|
-
type IndexableClass<I> = new (value: I, context: IndexableContext) =>
|
|
83
|
+
type IndexableClass<I> = new (value: I, context: IndexableContext) => WithIndexedContext<I>;
|
|
81
84
|
export declare class DocumentIndex<T, I extends Record<string, any>, D extends ReplicationDomain<any, Operation, any>> extends Program<OpenOptions<T, I, D>> {
|
|
82
85
|
_query: RPC<types.AbstractSearchRequest, types.AbstractSearchResult>;
|
|
83
86
|
documentType: AbstractType<T>;
|
|
@@ -88,7 +91,7 @@ export declare class DocumentIndex<T, I extends Record<string, any>, D extends R
|
|
|
88
91
|
indexedTypeIsDocumentType: boolean;
|
|
89
92
|
private indexBy;
|
|
90
93
|
private indexByResolver;
|
|
91
|
-
index: indexerTypes.Index<
|
|
94
|
+
index: indexerTypes.Index<WithIndexedContext<I>>;
|
|
92
95
|
private _resumableIterators;
|
|
93
96
|
compatibility: 6 | 7 | 8 | undefined;
|
|
94
97
|
private _valueEncoding;
|
|
@@ -108,17 +111,17 @@ export declare class DocumentIndex<T, I extends Record<string, any>, D extends R
|
|
|
108
111
|
getPending(cursorId: string): Promise<number | undefined>;
|
|
109
112
|
close(from?: Program): Promise<boolean>;
|
|
110
113
|
drop(from?: Program): Promise<boolean>;
|
|
111
|
-
get<Options extends QueryOptions<T, D, true | undefined>>(key: indexerTypes.Ideable | indexerTypes.IdKey, options?: Options): Promise<T
|
|
112
|
-
get<Options extends QueryOptions<T, D, false>>(key: indexerTypes.Ideable | indexerTypes.IdKey, options?: Options): Promise<I
|
|
113
|
-
getFromGid(gid: string): Promise<indexerTypes.IndexedResult<
|
|
114
|
+
get<Options extends QueryOptions<T, D, true | undefined>>(key: indexerTypes.Ideable | indexerTypes.IdKey, options?: Options): Promise<WithContext<T>>;
|
|
115
|
+
get<Options extends QueryOptions<T, D, false>>(key: indexerTypes.Ideable | indexerTypes.IdKey, options?: Options): Promise<WithContext<I>>;
|
|
116
|
+
getFromGid(gid: string): Promise<indexerTypes.IndexedResult<WithIndexedContext<I>>>;
|
|
114
117
|
put(value: T, entry: Entry<Operation>, id: indexerTypes.IdKey): Promise<void>;
|
|
115
118
|
del(key: indexerTypes.IdKey): indexerTypes.IdKey[] | Promise<indexerTypes.IdKey[]>;
|
|
116
|
-
getDetailed<Options extends QueryOptions<T, D, Resolve>, Resolve extends boolean | undefined = ExtractResolveFromOptions<Options>, RT extends types.Result = Resolve extends true ? types.ResultValue<T
|
|
119
|
+
getDetailed<Options extends QueryOptions<T, D, Resolve>, Resolve extends boolean | undefined = ExtractResolveFromOptions<Options>, RT extends types.Result = Resolve extends true ? types.ResultValue<WithContext<T>> : types.ResultIndexedValue<WithContext<I>>>(key: indexerTypes.IdKey | indexerTypes.IdPrimitive, options?: QueryOptions<T, D, Resolve>): Promise<types.Results<RT>[] | undefined>;
|
|
117
120
|
getSize(): Promise<number> | number;
|
|
118
121
|
private resolveDocument;
|
|
119
122
|
processQuery<R extends types.SearchRequest | types.SearchRequestIndexed | types.CollectNextRequest>(query: R, from: PublicSignKey, isLocal: boolean, options?: {
|
|
120
123
|
canRead?: CanRead<I>;
|
|
121
|
-
}): Promise<types.Results<types.ResultTypeFromRequest<R>>>;
|
|
124
|
+
}): Promise<types.Results<types.ResultTypeFromRequest<R, T, I>>>;
|
|
122
125
|
private clearResultsQueue;
|
|
123
126
|
private clearAllResultQueues;
|
|
124
127
|
processCloseIteratorRequest(query: types.CloseIteratorRequest, publicKey: PublicSignKey): Promise<void>;
|
package/dist/src/search.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAA6B,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACN,KAAK,YAAY,EACjB,aAAa,EAGb,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAC;AACrD,OAAO,KAAK,YAAY,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAkB,KAAK,QAAQ,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAe,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAEN,GAAG,EACH,KAAK,oBAAoB,EAGzB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,iBAAiB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAMxE,OAAO,EAAE,KAAK,SAAS,EAAkB,MAAM,gBAAgB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAYhD,MAAM,MAAM,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,OAAO,GAAG,SAAS,IAAI;IACrE,MAAM,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;IACrE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,aAAa,CACxB,CAAC,EACD,CAAC,EACD,OAAO,SAAS,OAAO,GAAG,SAAS,IAChC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AAEhC,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;AAE7E,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAChC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,EAAE,MAAM,OAAO,CAAC;IACpB,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CACxB,CAAC;AAaF,KAAK,SAAS,GAAgD;IAC7D,KAAK,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC;IACtD,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC;CAEvE,CAAC;AASF,KAAK,yBAAyB,CAAC,CAAC,IAC/B,CAAC,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GACtC,CAAC,SAAS,OAAO,GAChB,CAAC,GACD,IAAI,GACL,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/search.ts"],"names":[],"mappings":"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"}
|
package/dist/src/search.js
CHANGED
|
@@ -151,6 +151,14 @@ export { IndexableContext };
|
|
|
151
151
|
const isTransformerWithFunction = (options) => {
|
|
152
152
|
return options.transform != null;
|
|
153
153
|
};
|
|
154
|
+
const coerceWithContext = (value, context) => {
|
|
155
|
+
if (value.__context) {
|
|
156
|
+
return value;
|
|
157
|
+
}
|
|
158
|
+
let valueWithContext = value;
|
|
159
|
+
valueWithContext.__context = context;
|
|
160
|
+
return valueWithContext;
|
|
161
|
+
};
|
|
154
162
|
let DocumentIndex = class DocumentIndex extends Program {
|
|
155
163
|
_query;
|
|
156
164
|
// Original document representation
|
|
@@ -323,7 +331,8 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
323
331
|
return dropped;
|
|
324
332
|
}
|
|
325
333
|
async get(key, options) {
|
|
326
|
-
|
|
334
|
+
const result = (await this.getDetailed(key instanceof indexerTypes.IdKey ? key : indexerTypes.toId(key), options))?.[0]?.results[0];
|
|
335
|
+
return result?.value;
|
|
327
336
|
}
|
|
328
337
|
async getFromGid(gid) {
|
|
329
338
|
const iterator = this.index.iterate({ query: { gid } });
|
|
@@ -416,27 +425,39 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
416
425
|
}), options);
|
|
417
426
|
}
|
|
418
427
|
}
|
|
419
|
-
if
|
|
428
|
+
// if we are to resolve the document we need to go through all results and replace the results with the resolved values
|
|
429
|
+
const shouldResolve = resolve &&
|
|
420
430
|
requestClazz === types.SearchRequestIndexed &&
|
|
421
431
|
!this.indexedTypeIsDocumentType &&
|
|
422
|
-
results
|
|
432
|
+
results;
|
|
433
|
+
if (results) {
|
|
423
434
|
for (const set of results) {
|
|
424
|
-
let
|
|
425
|
-
for (
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
435
|
+
let missingValues = false;
|
|
436
|
+
for (let i = 0; i < set.results.length; i++) {
|
|
437
|
+
let value = set.results[i];
|
|
438
|
+
let resolved;
|
|
439
|
+
if (shouldResolve) {
|
|
440
|
+
resolved =
|
|
441
|
+
value instanceof types.ResultIndexedValue
|
|
442
|
+
? (await this.resolveDocument({
|
|
443
|
+
indexed: value.value,
|
|
444
|
+
head: value.context.head,
|
|
445
|
+
}))?.value
|
|
446
|
+
: value.value;
|
|
447
|
+
}
|
|
448
|
+
else {
|
|
449
|
+
resolved = value.value;
|
|
450
|
+
}
|
|
432
451
|
if (resolved) {
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
452
|
+
set.results[i]._value = coerceWithContext(resolved, value.context);
|
|
453
|
+
}
|
|
454
|
+
else {
|
|
455
|
+
missingValues = true;
|
|
437
456
|
}
|
|
438
457
|
}
|
|
439
|
-
|
|
458
|
+
if (missingValues) {
|
|
459
|
+
set.results = set.results.filter((x) => !!x);
|
|
460
|
+
}
|
|
440
461
|
}
|
|
441
462
|
}
|
|
442
463
|
return results;
|
|
@@ -794,8 +815,8 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
794
815
|
value: result.value,
|
|
795
816
|
context: result.context,
|
|
796
817
|
from,
|
|
797
|
-
indexed: result.indexed ||
|
|
798
|
-
(await this.transformer(result.value, result.context)),
|
|
818
|
+
indexed: coerceWithContext(result.indexed ||
|
|
819
|
+
(await this.transformer(result.value, result.context)), result.context),
|
|
799
820
|
});
|
|
800
821
|
}
|
|
801
822
|
else {
|
|
@@ -808,7 +829,7 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
808
829
|
value: result.value,
|
|
809
830
|
context: result.context,
|
|
810
831
|
from,
|
|
811
|
-
indexed: result.indexed || result.value,
|
|
832
|
+
indexed: coerceWithContext(result.indexed || result.value, result.context),
|
|
812
833
|
});
|
|
813
834
|
}
|
|
814
835
|
}
|
|
@@ -883,8 +904,9 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
883
904
|
value: result.value,
|
|
884
905
|
context: result.context,
|
|
885
906
|
from: this.node.identity.publicKey,
|
|
886
|
-
indexed: result.indexed ||
|
|
887
|
-
(await this.transformer(result.value,
|
|
907
|
+
indexed: coerceWithContext(result.indexed ||
|
|
908
|
+
(await this.transformer(result.value, // TODO tyes
|
|
909
|
+
result.context)), result.context),
|
|
888
910
|
});
|
|
889
911
|
}
|
|
890
912
|
}
|
|
@@ -933,9 +955,9 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
933
955
|
value: result.value,
|
|
934
956
|
context: result.context,
|
|
935
957
|
from: from,
|
|
936
|
-
indexed: result instanceof types.ResultIndexedValue
|
|
958
|
+
indexed: coerceWithContext(result instanceof types.ResultIndexedValue
|
|
937
959
|
? result.value
|
|
938
|
-
: await this.transformer(result.value, result.context),
|
|
960
|
+
: await this.transformer(result.value, result.context), result.context),
|
|
939
961
|
});
|
|
940
962
|
}
|
|
941
963
|
}
|
|
@@ -986,15 +1008,15 @@ let DocumentIndex = class DocumentIndex extends Program {
|
|
|
986
1008
|
done = fetchedAll && !pendingMoreResults;
|
|
987
1009
|
let coercedBatch;
|
|
988
1010
|
if (resolve) {
|
|
989
|
-
coercedBatch = (await Promise.all(batch.map(async (x) => x.value instanceof this.documentType
|
|
1011
|
+
coercedBatch = (await Promise.all(batch.map(async (x) => coerceWithContext(x.value instanceof this.documentType
|
|
990
1012
|
? x.value
|
|
991
1013
|
: (await this.resolveDocument({
|
|
992
1014
|
head: x.context.head,
|
|
993
1015
|
indexed: x.indexed,
|
|
994
|
-
}))?.value))).filter((x) => !!x);
|
|
1016
|
+
}))?.value, x.context)))).filter((x) => !!x);
|
|
995
1017
|
}
|
|
996
1018
|
else {
|
|
997
|
-
coercedBatch = batch.map((x) => x.value);
|
|
1019
|
+
coercedBatch = batch.map((x) => coerceWithContext(x.value, x.context));
|
|
998
1020
|
}
|
|
999
1021
|
return dedup(coercedBatch, this.indexByResolver);
|
|
1000
1022
|
};
|
package/dist/src/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/search.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/search.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peerbit/document",
|
|
3
|
-
"version": "9.0
|
|
3
|
+
"version": "9.1.0",
|
|
4
4
|
"description": "Document store implementation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -60,15 +60,15 @@
|
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"@dao-xyz/borsh": "^5.2.3",
|
|
62
62
|
"@peerbit/program": "5.1.6",
|
|
63
|
-
"@peerbit/rpc": "5.0.
|
|
64
|
-
"@peerbit/shared-log": "10.3.
|
|
63
|
+
"@peerbit/rpc": "5.0.37",
|
|
64
|
+
"@peerbit/shared-log": "10.3.22",
|
|
65
65
|
"@peerbit/indexer-interface": "^2.0.6",
|
|
66
66
|
"@peerbit/indexer-simple": "^1.1.9",
|
|
67
|
-
"@peerbit/indexer-sqlite3": "^1.2.
|
|
68
|
-
"@peerbit/document-interface": "^2.0.
|
|
67
|
+
"@peerbit/indexer-sqlite3": "^1.2.11",
|
|
68
|
+
"@peerbit/document-interface": "^2.0.12"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
-
"@peerbit/test-utils": "2.1.
|
|
71
|
+
"@peerbit/test-utils": "2.1.27",
|
|
72
72
|
"@peerbit/time": "2.0.8",
|
|
73
73
|
"@types/pidusage": "^2.0.5",
|
|
74
74
|
"pidusage": "^3.0.2"
|
package/src/index.ts
CHANGED
package/src/search.ts
CHANGED
|
@@ -34,7 +34,7 @@ const logger = loggerFn({ module: "document-index" });
|
|
|
34
34
|
|
|
35
35
|
type BufferedResult<T, I extends Record<string, any>> = {
|
|
36
36
|
value: T;
|
|
37
|
-
indexed: I
|
|
37
|
+
indexed: WithContext<I>;
|
|
38
38
|
context: types.Context;
|
|
39
39
|
from: PublicSignKey;
|
|
40
40
|
};
|
|
@@ -145,7 +145,9 @@ const introduceEntries = async <
|
|
|
145
145
|
response: types.Results<any>,
|
|
146
146
|
) => Promise<void>,
|
|
147
147
|
options?: QueryDetailedOptions<T, D, any>,
|
|
148
|
-
): Promise<
|
|
148
|
+
): Promise<
|
|
149
|
+
RPCResponse<types.Results<types.ResultTypeFromRequest<R, T, I>>>[]
|
|
150
|
+
> => {
|
|
149
151
|
const results: RPCResponse<types.Results<any>>[] = [];
|
|
150
152
|
for (const response of responses) {
|
|
151
153
|
if (!response.from) {
|
|
@@ -234,7 +236,7 @@ type ValueTypeFromRequest<
|
|
|
234
236
|
Resolve extends boolean | undefined,
|
|
235
237
|
T,
|
|
236
238
|
I,
|
|
237
|
-
> = Resolve extends false ? I : T
|
|
239
|
+
> = Resolve extends false ? WithContext<I> : WithContext<T>;
|
|
238
240
|
|
|
239
241
|
@variant(0)
|
|
240
242
|
export class IndexableContext implements types.Context {
|
|
@@ -277,10 +279,14 @@ export class IndexableContext implements types.Context {
|
|
|
277
279
|
}
|
|
278
280
|
}
|
|
279
281
|
|
|
280
|
-
export type
|
|
282
|
+
export type WithIndexedContext<I> = {
|
|
281
283
|
__context: IndexableContext;
|
|
282
284
|
} & I;
|
|
283
285
|
|
|
286
|
+
export type WithContext<I> = {
|
|
287
|
+
__context: types.Context;
|
|
288
|
+
} & I;
|
|
289
|
+
|
|
284
290
|
export type TransformerAsConstructor<T, I> = {
|
|
285
291
|
type?: new (arg: T, context: types.Context) => I;
|
|
286
292
|
};
|
|
@@ -313,7 +319,9 @@ export type OpenOptions<
|
|
|
313
319
|
request: types.SearchRequest | types.SearchRequestIndexed,
|
|
314
320
|
results: types.Results<
|
|
315
321
|
types.ResultTypeFromRequest<
|
|
316
|
-
types.SearchRequest | types.SearchRequestIndexed
|
|
322
|
+
types.SearchRequest | types.SearchRequestIndexed,
|
|
323
|
+
T,
|
|
324
|
+
I
|
|
317
325
|
>
|
|
318
326
|
>,
|
|
319
327
|
) => Promise<void>;
|
|
@@ -327,7 +335,20 @@ export type OpenOptions<
|
|
|
327
335
|
type IndexableClass<I> = new (
|
|
328
336
|
value: I,
|
|
329
337
|
context: IndexableContext,
|
|
330
|
-
) =>
|
|
338
|
+
) => WithIndexedContext<I>;
|
|
339
|
+
|
|
340
|
+
const coerceWithContext = <T>(
|
|
341
|
+
value: T | WithContext<T>,
|
|
342
|
+
context: types.Context,
|
|
343
|
+
): WithContext<T> => {
|
|
344
|
+
if ((value as WithContext<T>).__context) {
|
|
345
|
+
return value as WithContext<T>;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
let valueWithContext: WithContext<T> = value as any;
|
|
349
|
+
valueWithContext.__context = context;
|
|
350
|
+
return valueWithContext;
|
|
351
|
+
};
|
|
331
352
|
|
|
332
353
|
@variant("documents_index")
|
|
333
354
|
export class DocumentIndex<
|
|
@@ -355,8 +376,8 @@ export class DocumentIndex<
|
|
|
355
376
|
// Index key
|
|
356
377
|
private indexBy: string[];
|
|
357
378
|
private indexByResolver: (obj: any) => string | Uint8Array;
|
|
358
|
-
index: indexerTypes.Index<
|
|
359
|
-
private _resumableIterators: ResumableIterators<
|
|
379
|
+
index: indexerTypes.Index<WithIndexedContext<I>>;
|
|
380
|
+
private _resumableIterators: ResumableIterators<WithIndexedContext<I>>;
|
|
360
381
|
|
|
361
382
|
compatibility: 6 | 7 | 8 | undefined;
|
|
362
383
|
|
|
@@ -383,7 +404,7 @@ export class DocumentIndex<
|
|
|
383
404
|
from: PublicSignKey;
|
|
384
405
|
keptInIndex: number;
|
|
385
406
|
timeout: ReturnType<typeof setTimeout>;
|
|
386
|
-
queue: indexerTypes.IndexedResult<
|
|
407
|
+
queue: indexerTypes.IndexedResult<WithIndexedContext<I>>[];
|
|
387
408
|
fromQuery: types.SearchRequest | types.SearchRequestIndexed;
|
|
388
409
|
}
|
|
389
410
|
>;
|
|
@@ -427,7 +448,7 @@ export class DocumentIndex<
|
|
|
427
448
|
this.wrappedIndexedType = IndexedClassWithContext as new (
|
|
428
449
|
value: I,
|
|
429
450
|
context: types.Context,
|
|
430
|
-
) =>
|
|
451
|
+
) => WithIndexedContext<I>;
|
|
431
452
|
|
|
432
453
|
// if this.type is a class that extends Program we want to do special functionality
|
|
433
454
|
this.isProgramValued = isSubclassOf(this.documentType, Program);
|
|
@@ -473,7 +494,7 @@ export class DocumentIndex<
|
|
|
473
494
|
obj.index.search(query),
|
|
474
495
|
},
|
|
475
496
|
/* maxBatchSize: MAX_BATCH_SIZE */
|
|
476
|
-
})) || new HashmapIndex<
|
|
497
|
+
})) || new HashmapIndex<WithIndexedContext<I>>();
|
|
477
498
|
|
|
478
499
|
this._resumableIterators = new ResumableIterators(this.index);
|
|
479
500
|
this._maybeOpen = properties.maybeOpen;
|
|
@@ -584,23 +605,24 @@ export class DocumentIndex<
|
|
|
584
605
|
public async get<Options extends QueryOptions<T, D, true | undefined>>(
|
|
585
606
|
key: indexerTypes.Ideable | indexerTypes.IdKey,
|
|
586
607
|
options?: Options,
|
|
587
|
-
): Promise<T
|
|
608
|
+
): Promise<WithContext<T>>;
|
|
588
609
|
|
|
589
610
|
public async get<Options extends QueryOptions<T, D, false>>(
|
|
590
611
|
key: indexerTypes.Ideable | indexerTypes.IdKey,
|
|
591
612
|
options?: Options,
|
|
592
|
-
): Promise<I
|
|
613
|
+
): Promise<WithContext<I>>;
|
|
593
614
|
|
|
594
615
|
public async get<
|
|
595
616
|
Options extends QueryOptions<T, D, Resolve>,
|
|
596
617
|
Resolve extends boolean | undefined = ExtractResolveFromOptions<Options>,
|
|
597
618
|
>(key: indexerTypes.Ideable | indexerTypes.IdKey, options?: Options) {
|
|
598
|
-
|
|
619
|
+
const result = (
|
|
599
620
|
await this.getDetailed(
|
|
600
621
|
key instanceof indexerTypes.IdKey ? key : indexerTypes.toId(key),
|
|
601
622
|
options,
|
|
602
623
|
)
|
|
603
|
-
)?.[0]?.results[0]
|
|
624
|
+
)?.[0]?.results[0];
|
|
625
|
+
return result?.value;
|
|
604
626
|
}
|
|
605
627
|
|
|
606
628
|
public async getFromGid(gid: string) {
|
|
@@ -659,14 +681,17 @@ export class DocumentIndex<
|
|
|
659
681
|
Options extends QueryOptions<T, D, Resolve>,
|
|
660
682
|
Resolve extends boolean | undefined = ExtractResolveFromOptions<Options>,
|
|
661
683
|
RT extends types.Result = Resolve extends true
|
|
662
|
-
? types.ResultValue<T
|
|
663
|
-
: types.ResultIndexedValue<I
|
|
684
|
+
? types.ResultValue<WithContext<T>>
|
|
685
|
+
: types.ResultIndexedValue<WithContext<I>>,
|
|
664
686
|
>(
|
|
665
687
|
key: indexerTypes.IdKey | indexerTypes.IdPrimitive,
|
|
666
688
|
options?: QueryOptions<T, D, Resolve>,
|
|
667
689
|
): Promise<types.Results<RT>[] | undefined> {
|
|
668
690
|
let results:
|
|
669
|
-
| types.Results<
|
|
691
|
+
| types.Results<
|
|
692
|
+
| types.ResultValue<WithContext<T>>
|
|
693
|
+
| types.ResultIndexedValue<WithContext<I>>
|
|
694
|
+
>[]
|
|
670
695
|
| undefined;
|
|
671
696
|
const resolve = options?.resolve || options?.resolve == null;
|
|
672
697
|
let requestClazz = resolve
|
|
@@ -727,35 +752,42 @@ export class DocumentIndex<
|
|
|
727
752
|
}
|
|
728
753
|
}
|
|
729
754
|
|
|
730
|
-
if
|
|
755
|
+
// if we are to resolve the document we need to go through all results and replace the results with the resolved values
|
|
756
|
+
const shouldResolve =
|
|
731
757
|
resolve &&
|
|
732
758
|
requestClazz === types.SearchRequestIndexed &&
|
|
733
759
|
!this.indexedTypeIsDocumentType &&
|
|
734
|
-
results
|
|
735
|
-
|
|
760
|
+
results;
|
|
761
|
+
|
|
762
|
+
if (results) {
|
|
736
763
|
for (const set of results) {
|
|
737
|
-
let
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
764
|
+
let missingValues = false;
|
|
765
|
+
for (let i = 0; i < set.results.length; i++) {
|
|
766
|
+
let value = set.results[i];
|
|
767
|
+
let resolved: T | undefined;
|
|
768
|
+
if (shouldResolve) {
|
|
769
|
+
resolved =
|
|
770
|
+
value instanceof types.ResultIndexedValue
|
|
771
|
+
? (
|
|
772
|
+
await this.resolveDocument({
|
|
773
|
+
indexed: value.value,
|
|
774
|
+
head: value.context.head,
|
|
775
|
+
})
|
|
776
|
+
)?.value
|
|
777
|
+
: value.value;
|
|
778
|
+
} else {
|
|
779
|
+
resolved = value.value as T;
|
|
780
|
+
}
|
|
749
781
|
if (resolved) {
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
value: resolved,
|
|
754
|
-
}),
|
|
755
|
-
);
|
|
782
|
+
set.results[i]._value = coerceWithContext(resolved, value.context);
|
|
783
|
+
} else {
|
|
784
|
+
missingValues = true;
|
|
756
785
|
}
|
|
757
786
|
}
|
|
758
|
-
|
|
787
|
+
|
|
788
|
+
if (missingValues) {
|
|
789
|
+
set.results = set.results.filter((x) => !!x);
|
|
790
|
+
}
|
|
759
791
|
}
|
|
760
792
|
}
|
|
761
793
|
|
|
@@ -822,7 +854,7 @@ export class DocumentIndex<
|
|
|
822
854
|
options?: {
|
|
823
855
|
canRead?: CanRead<I>;
|
|
824
856
|
},
|
|
825
|
-
): Promise<types.Results<types.ResultTypeFromRequest<R>>> {
|
|
857
|
+
): Promise<types.Results<types.ResultTypeFromRequest<R, T, I>>> {
|
|
826
858
|
// We do special case for querying the id as we can do it faster than iterating
|
|
827
859
|
|
|
828
860
|
let prevQueued = isLocal
|
|
@@ -833,7 +865,7 @@ export class DocumentIndex<
|
|
|
833
865
|
}
|
|
834
866
|
|
|
835
867
|
let indexedResult:
|
|
836
|
-
| indexerTypes.IndexedResults<
|
|
868
|
+
| indexerTypes.IndexedResults<WithIndexedContext<I>>
|
|
837
869
|
| undefined = undefined;
|
|
838
870
|
|
|
839
871
|
let fromQuery: types.SearchRequest | types.SearchRequestIndexed | undefined;
|
|
@@ -997,9 +1029,7 @@ export class DocumentIndex<
|
|
|
997
1029
|
*/
|
|
998
1030
|
private async queryCommence<
|
|
999
1031
|
R extends types.SearchRequest | types.SearchRequestIndexed,
|
|
1000
|
-
RT extends types.Result = R
|
|
1001
|
-
? types.ResultValue<T>
|
|
1002
|
-
: types.ResultIndexedValue<I>,
|
|
1032
|
+
RT extends types.Result = types.ResultTypeFromRequest<R, T, I>,
|
|
1003
1033
|
>(
|
|
1004
1034
|
queryRequest: R,
|
|
1005
1035
|
options?: QueryDetailedOptions<T, D, boolean | undefined>,
|
|
@@ -1028,7 +1058,8 @@ export class DocumentIndex<
|
|
|
1028
1058
|
"Expecting either 'options.remote' or 'options.local' to be true",
|
|
1029
1059
|
);
|
|
1030
1060
|
}
|
|
1031
|
-
const allResults: types.Results<types.ResultTypeFromRequest<R>>[] =
|
|
1061
|
+
const allResults: types.Results<types.ResultTypeFromRequest<R, T, I>>[] =
|
|
1062
|
+
[];
|
|
1032
1063
|
|
|
1033
1064
|
if (local) {
|
|
1034
1065
|
const results = await this.processQuery(
|
|
@@ -1043,7 +1074,7 @@ export class DocumentIndex<
|
|
|
1043
1074
|
}
|
|
1044
1075
|
}
|
|
1045
1076
|
|
|
1046
|
-
let resolved: types.Results<types.ResultTypeFromRequest<R>>[] = [];
|
|
1077
|
+
let resolved: types.Results<types.ResultTypeFromRequest<R, T, I>>[] = [];
|
|
1047
1078
|
if (remote) {
|
|
1048
1079
|
const replicatorGroups = await this._log.getCover(
|
|
1049
1080
|
remote.domain ?? (undefined as any),
|
|
@@ -1233,10 +1264,7 @@ export class DocumentIndex<
|
|
|
1233
1264
|
string,
|
|
1234
1265
|
{
|
|
1235
1266
|
kept: number;
|
|
1236
|
-
buffer: BufferedResult<
|
|
1237
|
-
types.ResultValue<T> | types.ResultIndexedValue<I>,
|
|
1238
|
-
I
|
|
1239
|
-
>[];
|
|
1267
|
+
buffer: BufferedResult<types.ResultTypeFromRequest<R, T, I> | I, I>[];
|
|
1240
1268
|
}
|
|
1241
1269
|
> = new Map();
|
|
1242
1270
|
const visited = new Set<string | number | bigint>();
|
|
@@ -1248,8 +1276,8 @@ export class DocumentIndex<
|
|
|
1248
1276
|
const controller = new AbortController();
|
|
1249
1277
|
|
|
1250
1278
|
const peerBuffers = (): {
|
|
1251
|
-
indexed: I
|
|
1252
|
-
value: types.
|
|
1279
|
+
indexed: WithContext<I>;
|
|
1280
|
+
value: types.ResultTypeFromRequest<R, T, I> | I;
|
|
1253
1281
|
from: PublicSignKey;
|
|
1254
1282
|
context: types.Context;
|
|
1255
1283
|
}[] => {
|
|
@@ -1271,7 +1299,7 @@ export class DocumentIndex<
|
|
|
1271
1299
|
return;
|
|
1272
1300
|
} else if (response instanceof types.Results) {
|
|
1273
1301
|
const results = response as types.Results<
|
|
1274
|
-
types.ResultTypeFromRequest<R>
|
|
1302
|
+
types.ResultTypeFromRequest<R, T, I>
|
|
1275
1303
|
>;
|
|
1276
1304
|
if (results.kept === 0n && results.results.length === 0) {
|
|
1277
1305
|
return;
|
|
@@ -1280,8 +1308,10 @@ export class DocumentIndex<
|
|
|
1280
1308
|
if (results.kept > 0n) {
|
|
1281
1309
|
done = false; // we have more to do later!
|
|
1282
1310
|
}
|
|
1283
|
-
const buffer: BufferedResult<
|
|
1284
|
-
|
|
1311
|
+
const buffer: BufferedResult<
|
|
1312
|
+
types.ResultTypeFromRequest<R, T, I> | I,
|
|
1313
|
+
I
|
|
1314
|
+
>[] = [];
|
|
1285
1315
|
|
|
1286
1316
|
for (const result of results.results) {
|
|
1287
1317
|
if (result instanceof types.ResultValue) {
|
|
@@ -1293,12 +1323,14 @@ export class DocumentIndex<
|
|
|
1293
1323
|
}
|
|
1294
1324
|
visited.add(indexKey);
|
|
1295
1325
|
buffer.push({
|
|
1296
|
-
value: result.value,
|
|
1326
|
+
value: result.value as types.ResultTypeFromRequest<R, T, I>,
|
|
1297
1327
|
context: result.context,
|
|
1298
1328
|
from,
|
|
1299
|
-
indexed:
|
|
1329
|
+
indexed: coerceWithContext(
|
|
1300
1330
|
(result.indexed as I) ||
|
|
1301
|
-
|
|
1331
|
+
(await this.transformer(result.value, result.context)),
|
|
1332
|
+
result.context,
|
|
1333
|
+
),
|
|
1302
1334
|
});
|
|
1303
1335
|
} else {
|
|
1304
1336
|
const indexKey = indexerTypes.toId(
|
|
@@ -1313,7 +1345,10 @@ export class DocumentIndex<
|
|
|
1313
1345
|
value: result.value,
|
|
1314
1346
|
context: result.context,
|
|
1315
1347
|
from,
|
|
1316
|
-
indexed:
|
|
1348
|
+
indexed: coerceWithContext(
|
|
1349
|
+
result.indexed || result.value,
|
|
1350
|
+
result.context,
|
|
1351
|
+
),
|
|
1317
1352
|
});
|
|
1318
1353
|
}
|
|
1319
1354
|
}
|
|
@@ -1411,12 +1446,14 @@ export class DocumentIndex<
|
|
|
1411
1446
|
value: result.value,
|
|
1412
1447
|
context: result.context,
|
|
1413
1448
|
from: this.node.identity.publicKey,
|
|
1414
|
-
indexed:
|
|
1449
|
+
indexed: coerceWithContext(
|
|
1415
1450
|
result.indexed ||
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1451
|
+
(await this.transformer(
|
|
1452
|
+
result.value as any as T, // TODO tyes
|
|
1453
|
+
result.context,
|
|
1454
|
+
)),
|
|
1455
|
+
result.context,
|
|
1456
|
+
),
|
|
1420
1457
|
});
|
|
1421
1458
|
}
|
|
1422
1459
|
}
|
|
@@ -1476,16 +1513,23 @@ export class DocumentIndex<
|
|
|
1476
1513
|
}
|
|
1477
1514
|
visited.add(idPrimitive);
|
|
1478
1515
|
peerBuffer.buffer.push({
|
|
1479
|
-
value:
|
|
1516
|
+
value:
|
|
1517
|
+
result.value as types.ResultTypeFromRequest<
|
|
1518
|
+
R,
|
|
1519
|
+
T,
|
|
1520
|
+
I
|
|
1521
|
+
>,
|
|
1480
1522
|
context: result.context,
|
|
1481
1523
|
from: from!,
|
|
1482
|
-
indexed:
|
|
1524
|
+
indexed: coerceWithContext(
|
|
1483
1525
|
result instanceof types.ResultIndexedValue
|
|
1484
1526
|
? result.value
|
|
1485
1527
|
: await this.transformer(
|
|
1486
1528
|
result.value,
|
|
1487
1529
|
result.context,
|
|
1488
1530
|
),
|
|
1531
|
+
result.context,
|
|
1532
|
+
),
|
|
1489
1533
|
});
|
|
1490
1534
|
}
|
|
1491
1535
|
}
|
|
@@ -1557,23 +1601,24 @@ export class DocumentIndex<
|
|
|
1557
1601
|
coercedBatch = (
|
|
1558
1602
|
await Promise.all(
|
|
1559
1603
|
batch.map(async (x) =>
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1604
|
+
coerceWithContext(
|
|
1605
|
+
x.value instanceof this.documentType
|
|
1606
|
+
? x.value
|
|
1607
|
+
: (
|
|
1608
|
+
await this.resolveDocument({
|
|
1609
|
+
head: x.context.head,
|
|
1610
|
+
indexed: x.indexed,
|
|
1611
|
+
})
|
|
1612
|
+
)?.value,
|
|
1613
|
+
x.context,
|
|
1614
|
+
),
|
|
1568
1615
|
),
|
|
1569
1616
|
)
|
|
1570
1617
|
).filter((x) => !!x) as ValueTypeFromRequest<Resolve, T, I>[];
|
|
1571
1618
|
} else {
|
|
1572
|
-
coercedBatch = batch.map((x) =>
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
I
|
|
1576
|
-
>[];
|
|
1619
|
+
coercedBatch = batch.map((x) =>
|
|
1620
|
+
coerceWithContext(x.value, x.context),
|
|
1621
|
+
) as ValueTypeFromRequest<Resolve, T, I>[];
|
|
1577
1622
|
}
|
|
1578
1623
|
|
|
1579
1624
|
return dedup(coercedBatch, this.indexByResolver);
|