@peerbit/document 1.0.2
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/LICENSE +202 -0
- package/README.md +111 -0
- package/lib/esm/document-index.d.ts +126 -0
- package/lib/esm/document-index.js +800 -0
- package/lib/esm/document-index.js.map +1 -0
- package/lib/esm/document-store.d.ts +60 -0
- package/lib/esm/document-store.js +349 -0
- package/lib/esm/document-store.js.map +1 -0
- package/lib/esm/index.d.ts +3 -0
- package/lib/esm/index.js +4 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/package.json +3 -0
- package/lib/esm/query.d.ts +184 -0
- package/lib/esm/query.js +579 -0
- package/lib/esm/query.js.map +1 -0
- package/lib/esm/utils.d.ts +3 -0
- package/lib/esm/utils.js +12 -0
- package/lib/esm/utils.js.map +1 -0
- package/package.json +46 -0
- package/src/document-index.ts +1029 -0
- package/src/document-store.ts +439 -0
- package/src/index.ts +3 -0
- package/src/query.ts +510 -0
- package/src/utils.ts +17 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-index.js","sourceRoot":"","sources":["../../src/document-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { AbstractType } from "@dao-xyz/borsh";
|
|
2
|
+
import { CanAppend, Change, Entry, TrimOptions } from "@peerbit/log";
|
|
3
|
+
import { ComposableProgram, ProgramEvents } from "@peerbit/program";
|
|
4
|
+
import { CanRead } from "@peerbit/rpc";
|
|
5
|
+
import { AppendOptions } from "@peerbit/log";
|
|
6
|
+
import { SharedLog, SharedLogOptions } from "@peerbit/shared-log";
|
|
7
|
+
import { Indexable, DocumentIndex, Operation, PutOperation } from "./document-index.js";
|
|
8
|
+
import { Keyable } from "./utils.js";
|
|
9
|
+
export declare class OperationError extends Error {
|
|
10
|
+
constructor(message?: string);
|
|
11
|
+
}
|
|
12
|
+
export interface DocumentsChange<T> {
|
|
13
|
+
added: T[];
|
|
14
|
+
removed: T[];
|
|
15
|
+
}
|
|
16
|
+
export interface DocumentEvents<T> {
|
|
17
|
+
change: CustomEvent<DocumentsChange<T>>;
|
|
18
|
+
}
|
|
19
|
+
export type SetupOptions<T> = {
|
|
20
|
+
type: AbstractType<T>;
|
|
21
|
+
canRead?: CanRead;
|
|
22
|
+
canAppend?: CanAppend<Operation<T>>;
|
|
23
|
+
canOpen?: (program: T) => Promise<boolean> | boolean;
|
|
24
|
+
index?: {
|
|
25
|
+
key?: string | string[];
|
|
26
|
+
fields?: Indexable<T>;
|
|
27
|
+
};
|
|
28
|
+
trim?: TrimOptions;
|
|
29
|
+
} & SharedLogOptions;
|
|
30
|
+
export declare class Documents<T extends Record<string, any>> extends ComposableProgram<SetupOptions<T>, DocumentEvents<T> & ProgramEvents> {
|
|
31
|
+
log: SharedLog<Operation<T>>;
|
|
32
|
+
immutable: boolean;
|
|
33
|
+
private _index;
|
|
34
|
+
private _clazz?;
|
|
35
|
+
private _optionCanAppend?;
|
|
36
|
+
canOpen?: (program: T, entry: Entry<Operation<T>>) => Promise<boolean> | boolean;
|
|
37
|
+
constructor(properties?: {
|
|
38
|
+
id?: Uint8Array;
|
|
39
|
+
immutable?: boolean;
|
|
40
|
+
index?: DocumentIndex<T>;
|
|
41
|
+
});
|
|
42
|
+
get index(): DocumentIndex<T>;
|
|
43
|
+
open(options: SetupOptions<T>): Promise<void>;
|
|
44
|
+
private _resolveEntry;
|
|
45
|
+
canAppend(entry: Entry<Operation<T>>): Promise<boolean>;
|
|
46
|
+
_canAppend(entry: Entry<Operation<T>>): Promise<boolean>;
|
|
47
|
+
put(doc: T, options?: AppendOptions<Operation<T>> & {
|
|
48
|
+
unique?: boolean;
|
|
49
|
+
}): Promise<{
|
|
50
|
+
entry: Entry<Operation<T>>;
|
|
51
|
+
removed: Entry<Operation<T>>[];
|
|
52
|
+
}>;
|
|
53
|
+
del(key: Keyable, options?: AppendOptions<Operation<T>>): Promise<{
|
|
54
|
+
entry: Entry<Operation<T>>;
|
|
55
|
+
removed: Entry<Operation<T>>[];
|
|
56
|
+
}>;
|
|
57
|
+
handleChanges(change: Change<Operation<T>>): Promise<void>;
|
|
58
|
+
private getDocumentFromEntry;
|
|
59
|
+
deserializeOrPass(value: PutOperation<T>): T;
|
|
60
|
+
}
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { deserialize, field, serialize, variant, } from "@dao-xyz/borsh";
|
|
11
|
+
import { Entry, EntryType } from "@peerbit/log";
|
|
12
|
+
import { ComposableProgram, Program } from "@peerbit/program";
|
|
13
|
+
import { AccessError, DecryptedThing } from "@peerbit/crypto";
|
|
14
|
+
import { logger as loggerFn } from "@peerbit/logger";
|
|
15
|
+
import { CustomEvent } from "@libp2p/interfaces/events";
|
|
16
|
+
import { Replicator, SharedLog } from "@peerbit/shared-log";
|
|
17
|
+
import { BORSH_ENCODING_OPERATION, DeleteOperation, DocumentIndex, PutOperation, } from "./document-index.js";
|
|
18
|
+
import { asString, checkKeyable } from "./utils.js";
|
|
19
|
+
import { Context } from "./query.js";
|
|
20
|
+
const logger = loggerFn({ module: "document" });
|
|
21
|
+
export class OperationError extends Error {
|
|
22
|
+
constructor(message) {
|
|
23
|
+
super(message);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export let Documents = class Documents extends ComposableProgram {
|
|
27
|
+
log;
|
|
28
|
+
immutable; // "Can I overwrite a document?"
|
|
29
|
+
_index;
|
|
30
|
+
_clazz;
|
|
31
|
+
_optionCanAppend;
|
|
32
|
+
canOpen;
|
|
33
|
+
constructor(properties) {
|
|
34
|
+
super();
|
|
35
|
+
this.log = new SharedLog(properties);
|
|
36
|
+
this.immutable = properties?.immutable ?? false;
|
|
37
|
+
this._index = properties?.index || new DocumentIndex();
|
|
38
|
+
}
|
|
39
|
+
get index() {
|
|
40
|
+
return this._index;
|
|
41
|
+
}
|
|
42
|
+
async open(options) {
|
|
43
|
+
this._clazz = options.type;
|
|
44
|
+
this.canOpen = options.canOpen;
|
|
45
|
+
/* eslint-disable */
|
|
46
|
+
if (Program.isPrototypeOf(this._clazz)) {
|
|
47
|
+
if (!this.canOpen) {
|
|
48
|
+
throw new Error("setup needs to be called with the canOpen option when the document type is a Program");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (options.canAppend) {
|
|
52
|
+
this._optionCanAppend = options.canAppend;
|
|
53
|
+
}
|
|
54
|
+
await this._index.open({
|
|
55
|
+
type: this._clazz,
|
|
56
|
+
log: this.log,
|
|
57
|
+
canRead: options.canRead || (() => Promise.resolve(true)),
|
|
58
|
+
fields: options.index?.fields || ((obj) => obj),
|
|
59
|
+
indexBy: options.index?.key,
|
|
60
|
+
sync: async (result) => this.log.log.join(result.results.map((x) => x.context.head)),
|
|
61
|
+
});
|
|
62
|
+
await this.log.open({
|
|
63
|
+
encoding: BORSH_ENCODING_OPERATION,
|
|
64
|
+
canAppend: this.canAppend.bind(this),
|
|
65
|
+
onChange: this.handleChanges.bind(this),
|
|
66
|
+
trim: options?.trim,
|
|
67
|
+
sync: options?.sync,
|
|
68
|
+
role: options?.role,
|
|
69
|
+
minReplicas: options?.minReplicas,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
async _resolveEntry(history) {
|
|
73
|
+
return typeof history === "string"
|
|
74
|
+
? (await this.log.log.get(history)) ||
|
|
75
|
+
(await Entry.fromMultihash(this.log.log.storage, history))
|
|
76
|
+
: history;
|
|
77
|
+
}
|
|
78
|
+
async canAppend(entry) {
|
|
79
|
+
const l0 = await this._canAppend(entry);
|
|
80
|
+
if (!l0) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
if (this._optionCanAppend && !(await this._optionCanAppend(entry))) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
async _canAppend(entry) {
|
|
89
|
+
const resolve = async (history) => {
|
|
90
|
+
return typeof history === "string"
|
|
91
|
+
? this.log.log.get(history) ||
|
|
92
|
+
(await Entry.fromMultihash(this.log.log.storage, history))
|
|
93
|
+
: history;
|
|
94
|
+
};
|
|
95
|
+
const pointsToHistory = async (history) => {
|
|
96
|
+
// make sure nexts only points to this document at some point in history
|
|
97
|
+
let current = await resolve(history);
|
|
98
|
+
const next = entry.next[0];
|
|
99
|
+
while (current?.hash &&
|
|
100
|
+
next !== current?.hash &&
|
|
101
|
+
current.next.length > 0) {
|
|
102
|
+
current = await this.log.log.get(current.next[0]);
|
|
103
|
+
}
|
|
104
|
+
if (current?.hash === next) {
|
|
105
|
+
return true; // Ok, we are pointing this new edit to some exising point in time of the old document
|
|
106
|
+
}
|
|
107
|
+
return false;
|
|
108
|
+
};
|
|
109
|
+
try {
|
|
110
|
+
entry.init({
|
|
111
|
+
encoding: this.log.log.encoding,
|
|
112
|
+
keychain: this.node.keychain,
|
|
113
|
+
});
|
|
114
|
+
const operation = entry._payload instanceof DecryptedThing
|
|
115
|
+
? entry.payload.getValue(entry.encoding)
|
|
116
|
+
: await entry.getPayloadValue();
|
|
117
|
+
if (operation instanceof PutOperation) {
|
|
118
|
+
// check nexts
|
|
119
|
+
const putOperation = operation;
|
|
120
|
+
const key = this._index.indexByResolver(putOperation.getValue(this.index.valueEncoding));
|
|
121
|
+
checkKeyable(key);
|
|
122
|
+
const existingDocument = this.index.index.get(asString(key));
|
|
123
|
+
if (existingDocument) {
|
|
124
|
+
if (this.immutable) {
|
|
125
|
+
//Key already exist and this instance Documents can note overrite/edit'
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
if (entry.next.length !== 1) {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
let doc = await this.log.log.get(existingDocument.context.head);
|
|
132
|
+
if (!doc) {
|
|
133
|
+
logger.error("Failed to find Document from head");
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
return pointsToHistory(doc);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
if (entry.next.length !== 0) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else if (operation instanceof DeleteOperation) {
|
|
145
|
+
if (entry.next.length !== 1) {
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
const existingDocument = this._index.index.get(operation.key);
|
|
149
|
+
if (!existingDocument) {
|
|
150
|
+
// already deleted
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
let doc = await this.log.log.get(existingDocument.context.head);
|
|
154
|
+
if (!doc) {
|
|
155
|
+
logger.error("Failed to find Document from head");
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
return pointsToHistory(doc); // references the existing document
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
if (error instanceof AccessError) {
|
|
163
|
+
return false; // we cant index because we can not decrypt
|
|
164
|
+
}
|
|
165
|
+
throw error;
|
|
166
|
+
}
|
|
167
|
+
return true;
|
|
168
|
+
}
|
|
169
|
+
async put(doc, options) {
|
|
170
|
+
const key = this._index.indexByResolver(doc);
|
|
171
|
+
checkKeyable(key);
|
|
172
|
+
const ser = serialize(doc);
|
|
173
|
+
const existingDocument = options?.unique
|
|
174
|
+
? undefined
|
|
175
|
+
: (await this._index.getDetailed(key, {
|
|
176
|
+
local: true,
|
|
177
|
+
remote: { sync: true }, // only query remote if we know they exist
|
|
178
|
+
}))?.[0]?.results[0];
|
|
179
|
+
return this.log.append(new PutOperation({
|
|
180
|
+
key: asString(key),
|
|
181
|
+
data: ser,
|
|
182
|
+
value: doc,
|
|
183
|
+
}), {
|
|
184
|
+
nexts: existingDocument
|
|
185
|
+
? [await this._resolveEntry(existingDocument.context.head)]
|
|
186
|
+
: [],
|
|
187
|
+
...options,
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
async del(key, options) {
|
|
191
|
+
const existing = (await this._index.getDetailed(key, {
|
|
192
|
+
local: true,
|
|
193
|
+
remote: { sync: true },
|
|
194
|
+
}))?.[0]?.results[0];
|
|
195
|
+
if (!existing) {
|
|
196
|
+
throw new Error(`No entry with key '${key}' in the database`);
|
|
197
|
+
}
|
|
198
|
+
return this.log.append(new DeleteOperation({
|
|
199
|
+
key: asString(key),
|
|
200
|
+
}), {
|
|
201
|
+
nexts: [await this._resolveEntry(existing.context.head)],
|
|
202
|
+
type: EntryType.CUT,
|
|
203
|
+
...options,
|
|
204
|
+
} //
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
async handleChanges(change) {
|
|
208
|
+
const removed = [...(change.removed || [])];
|
|
209
|
+
const removedSet = new Map();
|
|
210
|
+
for (const r of removed) {
|
|
211
|
+
removedSet.set(r.hash, r);
|
|
212
|
+
}
|
|
213
|
+
const entries = [...change.added, ...(removed || [])]
|
|
214
|
+
.sort(this.log.log.sortFn)
|
|
215
|
+
.reverse(); // sort so we get newest to oldest
|
|
216
|
+
// There might be a case where change.added and change.removed contains the same document id. Usaully because you use the "trim" option
|
|
217
|
+
// in combination with inserting the same document. To mitigate this, we loop through the changes and modify the behaviour for this
|
|
218
|
+
let visited = new Map();
|
|
219
|
+
for (const item of entries) {
|
|
220
|
+
const payload = item._payload instanceof DecryptedThing
|
|
221
|
+
? item.payload.getValue(item.encoding)
|
|
222
|
+
: await item.getPayloadValue();
|
|
223
|
+
let itemKey;
|
|
224
|
+
if (payload instanceof PutOperation ||
|
|
225
|
+
payload instanceof DeleteOperation) {
|
|
226
|
+
itemKey = payload.key;
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
throw new Error("Unsupported operation type");
|
|
230
|
+
}
|
|
231
|
+
let arr = visited.get(itemKey);
|
|
232
|
+
if (!arr) {
|
|
233
|
+
arr = [];
|
|
234
|
+
visited.set(itemKey, arr);
|
|
235
|
+
}
|
|
236
|
+
arr.push(item);
|
|
237
|
+
}
|
|
238
|
+
let documentsChanged = {
|
|
239
|
+
added: [],
|
|
240
|
+
removed: [],
|
|
241
|
+
};
|
|
242
|
+
for (const [_key, entries] of visited) {
|
|
243
|
+
try {
|
|
244
|
+
const item = entries[0];
|
|
245
|
+
const payload = item._payload instanceof DecryptedThing
|
|
246
|
+
? item.payload.getValue(item.encoding)
|
|
247
|
+
: await item.getPayloadValue();
|
|
248
|
+
if (payload instanceof PutOperation && !removedSet.has(item.hash)) {
|
|
249
|
+
const key = payload.key;
|
|
250
|
+
const value = this.deserializeOrPass(payload);
|
|
251
|
+
documentsChanged.added.push(value);
|
|
252
|
+
const context = new Context({
|
|
253
|
+
created: this._index.index.get(key)?.context.created ||
|
|
254
|
+
item.metadata.clock.timestamp.wallTime,
|
|
255
|
+
modified: item.metadata.clock.timestamp.wallTime,
|
|
256
|
+
head: item.hash,
|
|
257
|
+
});
|
|
258
|
+
const valueToIndex = this._index.toIndex(value, context);
|
|
259
|
+
this._index.index.set(key, {
|
|
260
|
+
key: payload.key,
|
|
261
|
+
value: isPromise(valueToIndex) ? await valueToIndex : valueToIndex,
|
|
262
|
+
context,
|
|
263
|
+
});
|
|
264
|
+
// Program specific
|
|
265
|
+
if (value instanceof Program) {
|
|
266
|
+
// if replicator, then open
|
|
267
|
+
if ((await this.canOpen(value, item)) &&
|
|
268
|
+
this.log.role instanceof Replicator &&
|
|
269
|
+
(await this.log.replicator(item.gid)) // TODO types, throw runtime error if replicator is not provided
|
|
270
|
+
) {
|
|
271
|
+
await this.node.open(value, { parent: this });
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
else if ((payload instanceof DeleteOperation && !removedSet.has(item.hash)) ||
|
|
276
|
+
payload instanceof PutOperation ||
|
|
277
|
+
removedSet.has(item.hash)) {
|
|
278
|
+
const key = payload.key;
|
|
279
|
+
if (!this.index.index.has(key)) {
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
let value;
|
|
283
|
+
if (payload instanceof PutOperation) {
|
|
284
|
+
value = this.deserializeOrPass(payload);
|
|
285
|
+
}
|
|
286
|
+
else if (payload instanceof DeleteOperation) {
|
|
287
|
+
value = await this.getDocumentFromEntry(entries[1]);
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
throw new Error("Unexpected");
|
|
291
|
+
}
|
|
292
|
+
documentsChanged.removed.push(value);
|
|
293
|
+
if (value instanceof Program) {
|
|
294
|
+
// TODO is this tested?
|
|
295
|
+
await value.close(this);
|
|
296
|
+
}
|
|
297
|
+
// update index
|
|
298
|
+
this._index.index.delete(key);
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
// Unknown operation
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
catch (error) {
|
|
305
|
+
if (error instanceof AccessError) {
|
|
306
|
+
continue;
|
|
307
|
+
}
|
|
308
|
+
throw error;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
this.events.dispatchEvent(new CustomEvent("change", { detail: documentsChanged }));
|
|
312
|
+
}
|
|
313
|
+
async getDocumentFromEntry(entry) {
|
|
314
|
+
const payloadValue = await entry.getPayloadValue();
|
|
315
|
+
if (payloadValue instanceof PutOperation) {
|
|
316
|
+
return payloadValue.getValue(this.index.valueEncoding);
|
|
317
|
+
}
|
|
318
|
+
throw new Error("Unexpected");
|
|
319
|
+
}
|
|
320
|
+
deserializeOrPass(value) {
|
|
321
|
+
if (value._value) {
|
|
322
|
+
return value._value;
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
value._value = deserialize(value.data, this.index.type);
|
|
326
|
+
return value._value;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
__decorate([
|
|
331
|
+
field({ type: SharedLog }),
|
|
332
|
+
__metadata("design:type", SharedLog)
|
|
333
|
+
], Documents.prototype, "log", void 0);
|
|
334
|
+
__decorate([
|
|
335
|
+
field({ type: "bool" }),
|
|
336
|
+
__metadata("design:type", Boolean)
|
|
337
|
+
], Documents.prototype, "immutable", void 0);
|
|
338
|
+
__decorate([
|
|
339
|
+
field({ type: DocumentIndex }),
|
|
340
|
+
__metadata("design:type", DocumentIndex)
|
|
341
|
+
], Documents.prototype, "_index", void 0);
|
|
342
|
+
Documents = __decorate([
|
|
343
|
+
variant("documents"),
|
|
344
|
+
__metadata("design:paramtypes", [Object])
|
|
345
|
+
], Documents);
|
|
346
|
+
function isPromise(value) {
|
|
347
|
+
return Boolean(value && typeof value.then === "function");
|
|
348
|
+
}
|
|
349
|
+
//# sourceMappingURL=document-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-store.js","sourceRoot":"","sources":["../../src/document-store.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
|