@peerbit/document 9.5.6-363580e → 9.5.6
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/program.d.ts +2 -4
- package/dist/src/program.d.ts.map +1 -1
- package/dist/src/program.js +2 -37
- package/dist/src/program.js.map +1 -1
- package/package.json +75 -75
- package/src/program.ts +3 -54
package/dist/src/program.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { QueryCacheOptions } from "@peerbit/indexer-cache";
|
|
|
3
3
|
import * as indexerTypes from "@peerbit/indexer-interface";
|
|
4
4
|
import { type Change, Entry, type ShallowOrFullEntry, type TrimOptions } from "@peerbit/log";
|
|
5
5
|
import { Program, type ProgramEvents } from "@peerbit/program";
|
|
6
|
-
import { type
|
|
6
|
+
import { type ReplicationDomain, type SharedAppendOptions, SharedLog, type SharedLogOptions } from "@peerbit/shared-log";
|
|
7
7
|
import type { CustomDocumentDomain } from "./domain.js";
|
|
8
8
|
import { DeleteOperation, type Operation, PutOperation } from "./operation.js";
|
|
9
9
|
import { type CanRead, type CanSearch, DocumentIndex, type PrefetchOptions, type TransformOptions, type WithContext } from "./search.js";
|
|
@@ -53,8 +53,7 @@ export type SetupOptions<T, I extends Record<string, any> = T extends Record<str
|
|
|
53
53
|
};
|
|
54
54
|
compatibility?: 6 | 7;
|
|
55
55
|
domain?: (db: Documents<T, I, D>) => CustomDocumentDomain<InferR<D>>;
|
|
56
|
-
|
|
57
|
-
} & Omit<SharedLogOptions<Operation, D, InferR<D>>, "compatibility" | "domain" | "keep">;
|
|
56
|
+
} & Omit<SharedLogOptions<Operation, D, InferR<D>>, "compatibility" | "domain">;
|
|
58
57
|
export type ExtractArgs<T> = T extends ReplicationDomain<infer Args, any, any> ? Args : never;
|
|
59
58
|
export declare class Documents<T, I extends Record<string, any> = T extends Record<string, any> ? T : any, D extends ReplicationDomain<any, Operation, any> = any> extends Program<SetupOptions<T, I, D>, DocumentEvents<T> & ProgramEvents> {
|
|
60
59
|
log: SharedLog<Operation, D, InferR<D>>;
|
|
@@ -74,7 +73,6 @@ export declare class Documents<T, I extends Record<string, any> = T extends Reco
|
|
|
74
73
|
});
|
|
75
74
|
get index(): DocumentIndex<T, I, D>;
|
|
76
75
|
private maybeSubprogramOpen;
|
|
77
|
-
private keepCache;
|
|
78
76
|
open(options: SetupOptions<T, I, D>): Promise<void>;
|
|
79
77
|
recover(): Promise<void>;
|
|
80
78
|
private _resolveEntry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EAKjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,YAAY,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACN,KAAK,MAAM,EACX,KAAK,EAEL,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EACN,KAAK,
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/program.ts"],"names":[],"mappings":"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"}
|
package/dist/src/program.js
CHANGED
|
@@ -8,7 +8,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
10
|
import { BorshError, field, serialize, variant, } from "@dao-xyz/borsh";
|
|
11
|
-
import { AccessError
|
|
11
|
+
import { AccessError } from "@peerbit/crypto";
|
|
12
12
|
import { ResultIndexedValue } from "@peerbit/document-interface";
|
|
13
13
|
import * as indexerTypes from "@peerbit/indexer-interface";
|
|
14
14
|
import { Entry, EntryType, } from "@peerbit/log";
|
|
@@ -53,7 +53,6 @@ let Documents = class Documents extends Program {
|
|
|
53
53
|
}
|
|
54
54
|
return value;
|
|
55
55
|
}
|
|
56
|
-
keepCache = undefined;
|
|
57
56
|
async open(options) {
|
|
58
57
|
this._clazz = options.type;
|
|
59
58
|
this.canOpen = options.canOpen;
|
|
@@ -104,36 +103,6 @@ let Documents = class Documents extends Program {
|
|
|
104
103
|
logCompatiblity = 9;
|
|
105
104
|
}
|
|
106
105
|
this.domain = options.domain?.(this);
|
|
107
|
-
let keepFunction;
|
|
108
|
-
if (options?.keep === "self") {
|
|
109
|
-
this.keepCache = new Set();
|
|
110
|
-
keepFunction = async (e) => {
|
|
111
|
-
if (this.keepCache?.has(e.hash)) {
|
|
112
|
-
return true;
|
|
113
|
-
}
|
|
114
|
-
let signatures = undefined;
|
|
115
|
-
if (e instanceof Entry) {
|
|
116
|
-
signatures = e.signatures;
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
const entry = await this.log.log.get(e.hash);
|
|
120
|
-
signatures = entry?.signatures;
|
|
121
|
-
}
|
|
122
|
-
if (!signatures) {
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
|
-
for (const signature of signatures) {
|
|
126
|
-
if (signature.publicKey.equals(this.node.identity.publicKey)) {
|
|
127
|
-
this.keepCache?.add(e.hash);
|
|
128
|
-
return true;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
return false; // TODO also cache this?
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
keepFunction = options?.keep;
|
|
136
|
-
}
|
|
137
106
|
await this.log.open({
|
|
138
107
|
encoding: BORSH_ENCODING_OPERATION,
|
|
139
108
|
canReplicate: options?.canReplicate,
|
|
@@ -146,7 +115,6 @@ let Documents = class Documents extends Program {
|
|
|
146
115
|
? (log) => options.domain(this)
|
|
147
116
|
: undefined), /// TODO types,
|
|
148
117
|
compatibility: logCompatiblity,
|
|
149
|
-
keep: keepFunction,
|
|
150
118
|
});
|
|
151
119
|
}
|
|
152
120
|
async recover() {
|
|
@@ -380,7 +348,6 @@ let Documents = class Documents extends Program {
|
|
|
380
348
|
},
|
|
381
349
|
replicate: options?.replicate,
|
|
382
350
|
});
|
|
383
|
-
this.keepCache?.add(appended.entry.hash);
|
|
384
351
|
return appended;
|
|
385
352
|
}
|
|
386
353
|
async del(id, options) {
|
|
@@ -393,7 +360,6 @@ let Documents = class Documents extends Program {
|
|
|
393
360
|
if (!existing) {
|
|
394
361
|
throw new Error(`No entry with key '${key.primitive}' in the database`);
|
|
395
362
|
}
|
|
396
|
-
this.keepCache?.delete(existing.value.__context.head);
|
|
397
363
|
const entry = await this._resolveEntry(existing.context.head);
|
|
398
364
|
return this.log.append(new DeleteOperation({
|
|
399
365
|
key,
|
|
@@ -552,8 +518,7 @@ let Documents = class Documents extends Program {
|
|
|
552
518
|
await iterator.close();
|
|
553
519
|
return one.length + left;
|
|
554
520
|
}
|
|
555
|
-
let totalHeadCount = await this.log.countHeads({ approximate: true });
|
|
556
|
-
(this.keepCache?.size || 0); TODO adjust for keep fn */
|
|
521
|
+
let totalHeadCount = await this.log.countHeads({ approximate: true });
|
|
557
522
|
let totalAssignedHeads = await this.log.countAssignedHeads({
|
|
558
523
|
strict: false,
|
|
559
524
|
});
|
package/dist/src/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/program.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/program.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,77 +1,77 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
2
|
+
"name": "@peerbit/document",
|
|
3
|
+
"version": "9.5.6",
|
|
4
|
+
"description": "Document store implementation",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"sideEffects": false,
|
|
7
|
+
"types": "./dist/src/index.d.ts",
|
|
8
|
+
"typesVersions": {
|
|
9
|
+
"*": {
|
|
10
|
+
"*": [
|
|
11
|
+
"*",
|
|
12
|
+
"dist/*",
|
|
13
|
+
"dist/src/*",
|
|
14
|
+
"dist/src/*/index"
|
|
15
|
+
],
|
|
16
|
+
"src/*": [
|
|
17
|
+
"*",
|
|
18
|
+
"dist/*",
|
|
19
|
+
"dist/src/*",
|
|
20
|
+
"dist/src/*/index"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"src",
|
|
26
|
+
"dist",
|
|
27
|
+
"!dist/e2e",
|
|
28
|
+
"!dist/test",
|
|
29
|
+
"!**/*.tsbuildinfo"
|
|
30
|
+
],
|
|
31
|
+
"exports": {
|
|
32
|
+
".": {
|
|
33
|
+
"types": "./dist/src/index.d.ts",
|
|
34
|
+
"import": "./dist/src/index.js"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"eslintConfig": {
|
|
38
|
+
"extends": "peerbit",
|
|
39
|
+
"parserOptions": {
|
|
40
|
+
"project": true,
|
|
41
|
+
"sourceType": "module"
|
|
42
|
+
},
|
|
43
|
+
"ignorePatterns": [
|
|
44
|
+
"!.aegir.js",
|
|
45
|
+
"test/ts-use",
|
|
46
|
+
"*.d.ts"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"publishConfig": {
|
|
50
|
+
"access": "public"
|
|
51
|
+
},
|
|
52
|
+
"scripts": {
|
|
53
|
+
"clean": "aegir clean",
|
|
54
|
+
"build": "aegir build --no-bundle",
|
|
55
|
+
"test": "aegir test --target node",
|
|
56
|
+
"lint": "aegir lint"
|
|
57
|
+
},
|
|
58
|
+
"author": "dao.xyz",
|
|
59
|
+
"license": "MIT",
|
|
60
|
+
"dependencies": {
|
|
61
|
+
"@dao-xyz/borsh": "^5.2.3",
|
|
62
|
+
"@peerbit/program": "5.2.11",
|
|
63
|
+
"@peerbit/rpc": "5.3.3",
|
|
64
|
+
"@peerbit/shared-log": "11.1.5",
|
|
65
|
+
"@peerbit/indexer-interface": "^2.0.9",
|
|
66
|
+
"@peerbit/indexer-simple": "^1.1.14",
|
|
67
|
+
"@peerbit/indexer-sqlite3": "^1.2.19",
|
|
68
|
+
"@peerbit/document-interface": "^2.1.4",
|
|
69
|
+
"@peerbit/indexer-cache": "^0.0.1"
|
|
70
|
+
},
|
|
71
|
+
"devDependencies": {
|
|
72
|
+
"@peerbit/test-utils": "2.1.46",
|
|
73
|
+
"@peerbit/time": "2.1.0",
|
|
74
|
+
"@types/pidusage": "^2.0.5",
|
|
75
|
+
"pidusage": "^3.0.2"
|
|
76
|
+
}
|
|
77
77
|
}
|
package/src/program.ts
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
serialize,
|
|
6
6
|
variant,
|
|
7
7
|
} from "@dao-xyz/borsh";
|
|
8
|
-
import { AccessError
|
|
8
|
+
import { AccessError } from "@peerbit/crypto";
|
|
9
9
|
import { ResultIndexedValue } from "@peerbit/document-interface";
|
|
10
10
|
import type { QueryCacheOptions } from "@peerbit/indexer-cache";
|
|
11
11
|
import * as indexerTypes from "@peerbit/indexer-interface";
|
|
@@ -19,7 +19,6 @@ import {
|
|
|
19
19
|
import { logger as loggerFn } from "@peerbit/logger";
|
|
20
20
|
import { Program, type ProgramEvents } from "@peerbit/program";
|
|
21
21
|
import {
|
|
22
|
-
type EntryReplicated,
|
|
23
22
|
type ReplicationDomain,
|
|
24
23
|
type SharedAppendOptions,
|
|
25
24
|
SharedLog,
|
|
@@ -109,15 +108,7 @@ export type SetupOptions<
|
|
|
109
108
|
};
|
|
110
109
|
compatibility?: 6 | 7;
|
|
111
110
|
domain?: (db: Documents<T, I, D>) => CustomDocumentDomain<InferR<D>>;
|
|
112
|
-
|
|
113
|
-
| ((
|
|
114
|
-
entry: ShallowOrFullEntry<Operation> | EntryReplicated<InferR<D>>,
|
|
115
|
-
) => Promise<boolean> | boolean)
|
|
116
|
-
| "self";
|
|
117
|
-
} & Omit<
|
|
118
|
-
SharedLogOptions<Operation, D, InferR<D>>,
|
|
119
|
-
"compatibility" | "domain" | "keep"
|
|
120
|
-
>;
|
|
111
|
+
} & Omit<SharedLogOptions<Operation, D, InferR<D>>, "compatibility" | "domain">;
|
|
121
112
|
|
|
122
113
|
export type ExtractArgs<T> =
|
|
123
114
|
T extends ReplicationDomain<infer Args, any, any> ? Args : never;
|
|
@@ -173,7 +164,6 @@ export class Documents<
|
|
|
173
164
|
|
|
174
165
|
return value;
|
|
175
166
|
}
|
|
176
|
-
private keepCache: Set<string> | undefined = undefined;
|
|
177
167
|
async open(options: SetupOptions<T, I, D>) {
|
|
178
168
|
this._clazz = options.type;
|
|
179
169
|
this.canOpen = options.canOpen;
|
|
@@ -239,42 +229,6 @@ export class Documents<
|
|
|
239
229
|
}
|
|
240
230
|
|
|
241
231
|
this.domain = options.domain?.(this);
|
|
242
|
-
|
|
243
|
-
let keepFunction:
|
|
244
|
-
| ((
|
|
245
|
-
entry: ShallowOrFullEntry<Operation> | EntryReplicated<InferR<D>>,
|
|
246
|
-
) => Promise<boolean> | boolean)
|
|
247
|
-
| undefined;
|
|
248
|
-
if (options?.keep === "self") {
|
|
249
|
-
this.keepCache = new Set();
|
|
250
|
-
keepFunction = async (e) => {
|
|
251
|
-
if (this.keepCache?.has(e.hash)) {
|
|
252
|
-
return true;
|
|
253
|
-
}
|
|
254
|
-
let signatures: SignatureWithKey[] | undefined = undefined;
|
|
255
|
-
if (e instanceof Entry) {
|
|
256
|
-
signatures = e.signatures;
|
|
257
|
-
} else {
|
|
258
|
-
const entry = await this.log.log.get(e.hash);
|
|
259
|
-
signatures = entry?.signatures;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
if (!signatures) {
|
|
263
|
-
return false;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
for (const signature of signatures) {
|
|
267
|
-
if (signature.publicKey.equals(this.node.identity.publicKey)) {
|
|
268
|
-
this.keepCache?.add(e.hash);
|
|
269
|
-
return true;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
return false; // TODO also cache this?
|
|
273
|
-
};
|
|
274
|
-
} else {
|
|
275
|
-
keepFunction = options?.keep;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
232
|
await this.log.open({
|
|
279
233
|
encoding: BORSH_ENCODING_OPERATION,
|
|
280
234
|
canReplicate: options?.canReplicate,
|
|
@@ -287,7 +241,6 @@ export class Documents<
|
|
|
287
241
|
? (log: any) => options.domain!(this)
|
|
288
242
|
: undefined) as any, /// TODO types,
|
|
289
243
|
compatibility: logCompatiblity,
|
|
290
|
-
keep: keepFunction,
|
|
291
244
|
});
|
|
292
245
|
}
|
|
293
246
|
|
|
@@ -569,7 +522,6 @@ export class Documents<
|
|
|
569
522
|
},
|
|
570
523
|
replicate: options?.replicate,
|
|
571
524
|
});
|
|
572
|
-
this.keepCache?.add(appended.entry.hash);
|
|
573
525
|
return appended;
|
|
574
526
|
}
|
|
575
527
|
|
|
@@ -590,9 +542,7 @@ export class Documents<
|
|
|
590
542
|
throw new Error(`No entry with key '${key.primitive}' in the database`);
|
|
591
543
|
}
|
|
592
544
|
|
|
593
|
-
this.keepCache?.delete(existing.value.__context.head);
|
|
594
545
|
const entry = await this._resolveEntry(existing.context.head);
|
|
595
|
-
|
|
596
546
|
return this.log.append(
|
|
597
547
|
new DeleteOperation({
|
|
598
548
|
key,
|
|
@@ -793,8 +743,7 @@ export class Documents<
|
|
|
793
743
|
return one.length + left;
|
|
794
744
|
}
|
|
795
745
|
|
|
796
|
-
let totalHeadCount = await this.log.countHeads({ approximate: true });
|
|
797
|
-
(this.keepCache?.size || 0); TODO adjust for keep fn */
|
|
746
|
+
let totalHeadCount = await this.log.countHeads({ approximate: true });
|
|
798
747
|
let totalAssignedHeads = await this.log.countAssignedHeads({
|
|
799
748
|
strict: false,
|
|
800
749
|
});
|