@atproto/repo 0.8.12 → 0.9.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/CHANGELOG.md +23 -0
- package/LICENSE.txt +1 -1
- package/dist/block-map.d.ts +15 -16
- package/dist/block-map.d.ts.map +1 -1
- package/dist/block-map.js +9 -44
- package/dist/block-map.js.map +1 -1
- package/dist/car.d.ts +8 -8
- package/dist/car.d.ts.map +1 -1
- package/dist/car.js +107 -37
- package/dist/car.js.map +1 -1
- package/dist/cid-set.d.ts +8 -7
- package/dist/cid-set.d.ts.map +1 -1
- package/dist/cid-set.js +11 -4
- package/dist/cid-set.js.map +1 -1
- package/dist/data-diff.d.ts +10 -10
- package/dist/data-diff.d.ts.map +1 -1
- package/dist/data-diff.js.map +1 -1
- package/dist/error.d.ts +10 -10
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +1 -0
- package/dist/logger.js.map +1 -1
- package/dist/mst/mst.d.ts +29 -29
- package/dist/mst/mst.d.ts.map +1 -1
- package/dist/mst/mst.js +12 -13
- package/dist/mst/mst.js.map +1 -1
- package/dist/mst/util.d.ts +2 -2
- package/dist/mst/util.d.ts.map +1 -1
- package/dist/mst/util.js +19 -40
- package/dist/mst/util.js.map +1 -1
- package/dist/parse.d.ts +6 -7
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +2 -3
- package/dist/parse.js.map +1 -1
- package/dist/readable-repo.d.ts +6 -7
- package/dist/readable-repo.d.ts.map +1 -1
- package/dist/readable-repo.js +0 -1
- package/dist/readable-repo.js.map +1 -1
- package/dist/repo.d.ts +4 -4
- package/dist/repo.d.ts.map +1 -1
- package/dist/repo.js +11 -10
- package/dist/repo.js.map +1 -1
- package/dist/storage/memory-blockstore.d.ts +9 -9
- package/dist/storage/memory-blockstore.d.ts.map +1 -1
- package/dist/storage/memory-blockstore.js.map +1 -1
- package/dist/storage/readable-blockstore.d.ts +11 -12
- package/dist/storage/readable-blockstore.d.ts.map +1 -1
- package/dist/storage/readable-blockstore.js +2 -36
- package/dist/storage/readable-blockstore.js.map +1 -1
- package/dist/storage/sync-storage.d.ts +5 -5
- package/dist/storage/sync-storage.d.ts.map +1 -1
- package/dist/storage/sync-storage.js.map +1 -1
- package/dist/storage/types.d.ts +25 -26
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/types.js +0 -1
- package/dist/storage/types.js.map +1 -1
- package/dist/sync/consumer.d.ts +3 -3
- package/dist/sync/consumer.d.ts.map +1 -1
- package/dist/sync/consumer.js +1 -1
- package/dist/sync/consumer.js.map +1 -1
- package/dist/sync/provider.d.ts +3 -3
- package/dist/sync/provider.d.ts.map +1 -1
- package/dist/sync/provider.js.map +1 -1
- package/dist/types.d.ts +127 -100
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +53 -13
- package/dist/types.js.map +1 -1
- package/dist/util.d.ts +8 -3
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +33 -17
- package/dist/util.js.map +1 -1
- package/package.json +6 -7
- package/src/block-map.ts +31 -28
- package/src/car.ts +124 -46
- package/src/cid-set.ts +16 -10
- package/src/data-diff.ts +10 -10
- package/src/error.ts +6 -6
- package/src/logger.ts +1 -0
- package/src/mst/mst.ts +24 -28
- package/src/mst/util.ts +24 -11
- package/src/parse.ts +8 -10
- package/src/readable-repo.ts +6 -9
- package/src/repo.ts +13 -12
- package/src/storage/memory-blockstore.ts +8 -8
- package/src/storage/readable-blockstore.ts +12 -15
- package/src/storage/sync-storage.ts +4 -4
- package/src/storage/types.ts +25 -27
- package/src/sync/consumer.ts +5 -5
- package/src/sync/provider.ts +10 -7
- package/src/types.ts +82 -43
- package/src/util.ts +31 -16
- package/tests/_keys.ts +156 -156
- package/tests/_util.ts +28 -14
- package/tests/car.test.ts +31 -13
- package/tests/commit-proof-fixtures.json +79 -57
- package/tests/commit-proofs.test.ts +3 -3
- package/tests/covering-proofs.test.ts +6 -6
- package/tests/mst.test.ts +18 -19
- package/tests/proofs.test.ts +8 -8
- package/tests/repo.test.ts +1 -1
- package/tests/sync.test.ts +3 -6
- package/bench/mst.bench.ts +0 -165
- package/bench/repo.bench.ts +0 -48
- package/tsconfig.tests.tsbuildinfo +0 -1
package/dist/cid-set.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CidSet = void 0;
|
|
4
|
-
const
|
|
4
|
+
const lex_data_1 = require("@atproto/lex-data");
|
|
5
5
|
class CidSet {
|
|
6
6
|
constructor(arr = []) {
|
|
7
7
|
Object.defineProperty(this, "set", {
|
|
@@ -18,11 +18,13 @@ class CidSet {
|
|
|
18
18
|
return this;
|
|
19
19
|
}
|
|
20
20
|
addSet(toMerge) {
|
|
21
|
-
|
|
21
|
+
for (const c of toMerge.set)
|
|
22
|
+
this.set.add(c);
|
|
22
23
|
return this;
|
|
23
24
|
}
|
|
24
25
|
subtractSet(toSubtract) {
|
|
25
|
-
|
|
26
|
+
for (const c of toSubtract.set)
|
|
27
|
+
this.set.delete(c);
|
|
26
28
|
return this;
|
|
27
29
|
}
|
|
28
30
|
delete(cid) {
|
|
@@ -40,7 +42,12 @@ class CidSet {
|
|
|
40
42
|
return this;
|
|
41
43
|
}
|
|
42
44
|
toList() {
|
|
43
|
-
return
|
|
45
|
+
return Array.from(this);
|
|
46
|
+
}
|
|
47
|
+
*[Symbol.iterator]() {
|
|
48
|
+
for (const c of this.set) {
|
|
49
|
+
yield (0, lex_data_1.parseCid)(c);
|
|
50
|
+
}
|
|
44
51
|
}
|
|
45
52
|
}
|
|
46
53
|
exports.CidSet = CidSet;
|
package/dist/cid-set.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cid-set.js","sourceRoot":"","sources":["../src/cid-set.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"cid-set.js","sourceRoot":"","sources":["../src/cid-set.ts"],"names":[],"mappings":";;;AAAA,gDAAiD;AAEjD,MAAa,MAAM;IAGjB,YAAY,MAAa,EAAE;QAFnB;;;;;WAAgB;QAGtB,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC3C,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC;IAED,GAAG,CAAC,GAAQ;QACV,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC5C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,WAAW,CAAC,UAAkB;QAC5B,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,GAAG;YAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAClD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,GAAQ;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IACrC,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACtB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,IAAA,mBAAQ,EAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;CACF;AAlDD,wBAkDC;AAED,kBAAe,MAAM,CAAA","sourcesContent":["import { Cid, parseCid } from '@atproto/lex-data'\n\nexport class CidSet implements Iterable<Cid> {\n private set: Set<string>\n\n constructor(arr: Cid[] = []) {\n const strArr = arr.map((c) => c.toString())\n this.set = new Set(strArr)\n }\n\n add(cid: Cid): CidSet {\n this.set.add(cid.toString())\n return this\n }\n\n addSet(toMerge: CidSet): CidSet {\n for (const c of toMerge.set) this.set.add(c)\n return this\n }\n\n subtractSet(toSubtract: CidSet): CidSet {\n for (const c of toSubtract.set) this.set.delete(c)\n return this\n }\n\n delete(cid: Cid) {\n this.set.delete(cid.toString())\n return this\n }\n\n has(cid: Cid): boolean {\n return this.set.has(cid.toString())\n }\n\n size(): number {\n return this.set.size\n }\n\n clear(): CidSet {\n this.set.clear()\n return this\n }\n\n toList(): Cid[] {\n return Array.from(this)\n }\n\n *[Symbol.iterator](): Generator<Cid, void, unknown> {\n for (const c of this.set) {\n yield parseCid(c)\n }\n }\n}\n\nexport default CidSet\n"]}
|
package/dist/data-diff.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Cid } from '@atproto/lex-data';
|
|
2
2
|
import { BlockMap } from './block-map';
|
|
3
3
|
import { CidSet } from './cid-set';
|
|
4
4
|
import { MST, NodeEntry } from './mst';
|
|
@@ -12,11 +12,11 @@ export declare class DataDiff {
|
|
|
12
12
|
static of(curr: MST, prev: MST | null): Promise<DataDiff>;
|
|
13
13
|
nodeAdd(node: NodeEntry): Promise<void>;
|
|
14
14
|
nodeDelete(node: NodeEntry): Promise<void>;
|
|
15
|
-
leafAdd(key: string, cid:
|
|
16
|
-
leafUpdate(key: string, prev:
|
|
17
|
-
leafDelete(key: string, cid:
|
|
18
|
-
treeAdd(cid:
|
|
19
|
-
treeDelete(cid:
|
|
15
|
+
leafAdd(key: string, cid: Cid): void;
|
|
16
|
+
leafUpdate(key: string, prev: Cid, cid: Cid): void;
|
|
17
|
+
leafDelete(key: string, cid: Cid): void;
|
|
18
|
+
treeAdd(cid: Cid, bytes: Uint8Array): void;
|
|
19
|
+
treeDelete(cid: Cid): void;
|
|
20
20
|
addList(): DataAdd[];
|
|
21
21
|
updateList(): DataUpdate[];
|
|
22
22
|
deleteList(): DataDelete[];
|
|
@@ -24,15 +24,15 @@ export declare class DataDiff {
|
|
|
24
24
|
}
|
|
25
25
|
export type DataAdd = {
|
|
26
26
|
key: string;
|
|
27
|
-
cid:
|
|
27
|
+
cid: Cid;
|
|
28
28
|
};
|
|
29
29
|
export type DataUpdate = {
|
|
30
30
|
key: string;
|
|
31
|
-
prev:
|
|
32
|
-
cid:
|
|
31
|
+
prev: Cid;
|
|
32
|
+
cid: Cid;
|
|
33
33
|
};
|
|
34
34
|
export type DataDelete = {
|
|
35
35
|
key: string;
|
|
36
|
-
cid:
|
|
36
|
+
cid: Cid;
|
|
37
37
|
};
|
|
38
38
|
//# sourceMappingURL=data-diff.d.ts.map
|
package/dist/data-diff.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-diff.d.ts","sourceRoot":"","sources":["../src/data-diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"data-diff.d.ts","sourceRoot":"","sources":["../src/data-diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAW,MAAM,OAAO,CAAA;AAE/C,qBAAa,QAAQ;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAK;IAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAK;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAK;IAExC,YAAY,EAAE,QAAQ,CAAiB;IACvC,WAAW,EAAE,MAAM,CAAe;IAClC,WAAW,EAAE,MAAM,CAAe;WAErB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIzD,OAAO,CAAC,IAAI,EAAE,SAAS;IASvB,UAAU,CAAC,IAAI,EAAE,SAAS;IAYhC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG;IAS7B,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAO3C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG;IAShC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU;IAQnC,UAAU,CAAC,GAAG,EAAE,GAAG;IAQnB,OAAO,IAAI,OAAO,EAAE;IAIpB,UAAU,IAAI,UAAU,EAAE;IAI1B,UAAU,IAAI,UAAU,EAAE;IAI1B,WAAW,IAAI,MAAM,EAAE;CAQxB;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,GAAG,CAAA;CACT,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,GAAG,CAAA;IACT,GAAG,EAAE,GAAG,CAAA;CACT,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,GAAG,CAAA;CACT,CAAA"}
|
package/dist/data-diff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-diff.js","sourceRoot":"","sources":["../src/data-diff.ts"],"names":[],"mappings":";;;AACA,2CAAsC;AACtC,uCAAkC;AAClC,+BAA+C;AAE/C,MAAa,QAAQ;IAArB;QACE;;;;mBAAgC,EAAE;WAAA;QAClC;;;;mBAAsC,EAAE;WAAA;QACxC;;;;mBAAsC,EAAE;WAAA;QAExC;;;;mBAAyB,IAAI,oBAAQ,EAAE;WAAA;QACvC;;;;mBAAsB,IAAI,gBAAM,EAAE;WAAA;QAClC;;;;mBAAsB,IAAI,gBAAM,EAAE;WAAA;IAwFpC,CAAC;IAtFC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAS,EAAE,IAAgB;QACzC,OAAO,IAAA,aAAO,EAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAe;QAC3B,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAe;QAC9B,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAA;YACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;YAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;YACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,GAAQ;QAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,UAAU,CAAC,GAAW,EAAE,IAAS,EAAE,GAAQ;QACzC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAAE,OAAM;QAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;QACtC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC1B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;IAED,UAAU,CAAC,GAAW,EAAE,GAAQ;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QAChC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAQ,EAAE,KAAiB;QACjC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED,UAAU,CAAC,GAAQ;QACjB,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,UAAU;QACR,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;IAED,UAAU;QACR,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;IAED,WAAW;QACT,MAAM,IAAI,GAAG;YACX,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5B,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;SAC7B,CAAA;QACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3B,CAAC;CACF;AA/FD,4BA+FC","sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"data-diff.js","sourceRoot":"","sources":["../src/data-diff.ts"],"names":[],"mappings":"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","sourcesContent":["import { Cid } from '@atproto/lex-data'\nimport { BlockMap } from './block-map'\nimport { CidSet } from './cid-set'\nimport { MST, NodeEntry, mstDiff } from './mst'\n\nexport class DataDiff {\n adds: Record<string, DataAdd> = {}\n updates: Record<string, DataUpdate> = {}\n deletes: Record<string, DataDelete> = {}\n\n newMstBlocks: BlockMap = new BlockMap()\n newLeafCids: CidSet = new CidSet()\n removedCids: CidSet = new CidSet()\n\n static async of(curr: MST, prev: MST | null): Promise<DataDiff> {\n return mstDiff(curr, prev)\n }\n\n async nodeAdd(node: NodeEntry) {\n if (node.isLeaf()) {\n this.leafAdd(node.key, node.value)\n } else {\n const data = await node.serialize()\n this.treeAdd(data.cid, data.bytes)\n }\n }\n\n async nodeDelete(node: NodeEntry) {\n if (node.isLeaf()) {\n const key = node.key\n const cid = node.value\n this.deletes[key] = { key, cid }\n this.removedCids.add(cid)\n } else {\n const cid = await node.getPointer()\n this.treeDelete(cid)\n }\n }\n\n leafAdd(key: string, cid: Cid) {\n this.adds[key] = { key, cid }\n if (this.removedCids.has(cid)) {\n this.removedCids.delete(cid)\n } else {\n this.newLeafCids.add(cid)\n }\n }\n\n leafUpdate(key: string, prev: Cid, cid: Cid) {\n if (prev.equals(cid)) return\n this.updates[key] = { key, prev, cid }\n this.removedCids.add(prev)\n this.newLeafCids.add(cid)\n }\n\n leafDelete(key: string, cid: Cid) {\n this.deletes[key] = { key, cid }\n if (this.newLeafCids.has(cid)) {\n this.newLeafCids.delete(cid)\n } else {\n this.removedCids.add(cid)\n }\n }\n\n treeAdd(cid: Cid, bytes: Uint8Array) {\n if (this.removedCids.has(cid)) {\n this.removedCids.delete(cid)\n } else {\n this.newMstBlocks.set(cid, bytes)\n }\n }\n\n treeDelete(cid: Cid) {\n if (this.newMstBlocks.has(cid)) {\n this.newMstBlocks.delete(cid)\n } else {\n this.removedCids.add(cid)\n }\n }\n\n addList(): DataAdd[] {\n return Object.values(this.adds)\n }\n\n updateList(): DataUpdate[] {\n return Object.values(this.updates)\n }\n\n deleteList(): DataDelete[] {\n return Object.values(this.deletes)\n }\n\n updatedKeys(): string[] {\n const keys = [\n ...Object.keys(this.adds),\n ...Object.keys(this.updates),\n ...Object.keys(this.deletes),\n ]\n return [...new Set(keys)]\n }\n}\n\nexport type DataAdd = {\n key: string\n cid: Cid\n}\n\nexport type DataUpdate = {\n key: string\n prev: Cid\n cid: Cid\n}\n\nexport type DataDelete = {\n key: string\n cid: Cid\n}\n"]}
|
package/dist/error.d.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Cid } from '@atproto/lex-data';
|
|
2
2
|
export declare class MissingBlockError extends Error {
|
|
3
|
-
cid:
|
|
4
|
-
constructor(cid:
|
|
3
|
+
cid: Cid;
|
|
4
|
+
constructor(cid: Cid, def?: string);
|
|
5
5
|
}
|
|
6
6
|
export declare class MissingBlocksError extends Error {
|
|
7
7
|
context: string;
|
|
8
|
-
cids:
|
|
9
|
-
constructor(context: string, cids:
|
|
8
|
+
cids: Cid[];
|
|
9
|
+
constructor(context: string, cids: Cid[]);
|
|
10
10
|
}
|
|
11
11
|
export declare class MissingCommitBlocksError extends Error {
|
|
12
|
-
commit:
|
|
13
|
-
cids:
|
|
14
|
-
constructor(commit:
|
|
12
|
+
commit: Cid;
|
|
13
|
+
cids: Cid[];
|
|
14
|
+
constructor(commit: Cid, cids: Cid[]);
|
|
15
15
|
}
|
|
16
16
|
export declare class UnexpectedObjectError extends Error {
|
|
17
|
-
cid:
|
|
17
|
+
cid: Cid;
|
|
18
18
|
def: string;
|
|
19
|
-
constructor(cid:
|
|
19
|
+
constructor(cid: Cid, def: string);
|
|
20
20
|
}
|
|
21
21
|
//# sourceMappingURL=error.d.ts.map
|
package/dist/error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAEvC,qBAAa,iBAAkB,SAAQ,KAAK;IAEjC,GAAG,EAAE,GAAG;gBAAR,GAAG,EAAE,GAAG,EACf,GAAG,CAAC,EAAE,MAAM;CAQf;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAElC,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,GAAG,EAAE;gBADX,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,GAAG,EAAE;CAKrB;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IAExC,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,GAAG,EAAE;gBADX,MAAM,EAAE,GAAG,EACX,IAAI,EAAE,GAAG,EAAE;CAKrB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAErC,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,MAAM;gBADX,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM;CAIrB"}
|
package/dist/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAkB,SAAQ,KAAK;IAC1C,YACS,GAAQ,EACf,GAAY;QAEZ,IAAI,GAAG,GAAG,oBAAoB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAA;QAC9C,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,IAAI,oBAAoB,GAAG,EAAE,CAAA;QAClC,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,CAAA;QAPV;;;;mBAAO,GAAG;WAAK;IAQjB,CAAC;CACF;AAXD,8CAWC;AAED,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YACS,OAAe,EACf,IAAW;QAElB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5C,KAAK,CAAC,WAAW,OAAO,YAAY,MAAM,EAAE,CAAC,CAAA;QAJ7C;;;;mBAAO,OAAO;WAAQ;QACtB;;;;mBAAO,IAAI;WAAO;IAIpB,CAAC;CACF;AARD,gDAQC;AAED,MAAa,wBAAyB,SAAQ,KAAK;IACjD,YACS,MAAW,EACX,IAAW;QAElB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5C,KAAK,CAAC,6BAA6B,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC,CAAA;QAJlE;;;;mBAAO,MAAM;WAAK;QAClB;;;;mBAAO,IAAI;WAAO;IAIpB,CAAC;CACF;AARD,4DAQC;AAED,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YACS,GAAQ,EACR,GAAW;QAElB,KAAK,CAAC,wBAAwB,GAAG,CAAC,QAAQ,EAAE,eAAe,GAAG,EAAE,CAAC,CAAA;QAHjE;;;;mBAAO,GAAG;WAAK;QACf;;;;mBAAO,GAAG;WAAQ;IAGpB,CAAC;CACF;AAPD,sDAOC","sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAkB,SAAQ,KAAK;IAC1C,YACS,GAAQ,EACf,GAAY;QAEZ,IAAI,GAAG,GAAG,oBAAoB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAA;QAC9C,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,IAAI,oBAAoB,GAAG,EAAE,CAAA;QAClC,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,CAAA;QAPV;;;;mBAAO,GAAG;WAAK;IAQjB,CAAC;CACF;AAXD,8CAWC;AAED,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YACS,OAAe,EACf,IAAW;QAElB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5C,KAAK,CAAC,WAAW,OAAO,YAAY,MAAM,EAAE,CAAC,CAAA;QAJ7C;;;;mBAAO,OAAO;WAAQ;QACtB;;;;mBAAO,IAAI;WAAO;IAIpB,CAAC;CACF;AARD,gDAQC;AAED,MAAa,wBAAyB,SAAQ,KAAK;IACjD,YACS,MAAW,EACX,IAAW;QAElB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5C,KAAK,CAAC,6BAA6B,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC,CAAA;QAJlE;;;;mBAAO,MAAM;WAAK;QAClB;;;;mBAAO,IAAI;WAAO;IAIpB,CAAC;CACF;AARD,4DAQC;AAED,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YACS,GAAQ,EACR,GAAW;QAElB,KAAK,CAAC,wBAAwB,GAAG,CAAC,QAAQ,EAAE,eAAe,GAAG,EAAE,CAAC,CAAA;QAHjE;;;;mBAAO,GAAG;WAAK;QACf;;;;mBAAO,GAAG;WAAQ;IAGpB,CAAC;CACF;AAPD,sDAOC","sourcesContent":["import { Cid } from '@atproto/lex-data'\n\nexport class MissingBlockError extends Error {\n constructor(\n public cid: Cid,\n def?: string,\n ) {\n let msg = `block not found: ${cid.toString()}`\n if (def) {\n msg += `, expected type: ${def}`\n }\n super(msg)\n }\n}\n\nexport class MissingBlocksError extends Error {\n constructor(\n public context: string,\n public cids: Cid[],\n ) {\n const cidStr = cids.map((c) => c.toString())\n super(`missing ${context} blocks: ${cidStr}`)\n }\n}\n\nexport class MissingCommitBlocksError extends Error {\n constructor(\n public commit: Cid,\n public cids: Cid[],\n ) {\n const cidStr = cids.map((c) => c.toString())\n super(`missing blocks for commit ${commit.toString()}: ${cidStr}`)\n }\n}\n\nexport class UnexpectedObjectError extends Error {\n constructor(\n public cid: Cid,\n public def: string,\n ) {\n super(`unexpected object at ${cid.toString()}, expected: ${def}`)\n }\n}\n"]}
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,eAAO,MAAM,MAAM,EAAE,UAAU,CAAC,OAAO,eAAe,CAC7B,CAAA;AAEzB,eAAe,MAAM,CAAA"}
|
package/dist/logger.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.logger = void 0;
|
|
4
|
+
// @TODO remove dependency on @atproto/common and subsystemLogger
|
|
4
5
|
const common_1 = require("@atproto/common");
|
|
5
6
|
exports.logger = (0, common_1.subsystemLogger)('repo');
|
|
6
7
|
exports.default = exports.logger;
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AAAA,4CAAiD;AAEpC,QAAA,MAAM,GACjB,IAAA,wBAAe,EAAC,MAAM,CAAC,CAAA;AAEzB,kBAAe,cAAM,CAAA","sourcesContent":["
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AAAA,iEAAiE;AACjE,4CAAiD;AAEpC,QAAA,MAAM,GACjB,IAAA,wBAAe,EAAC,MAAM,CAAC,CAAA;AAEzB,kBAAe,cAAM,CAAA","sourcesContent":["// @TODO remove dependency on @atproto/common and subsystemLogger\nimport { subsystemLogger } from '@atproto/common'\n\nexport const logger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('repo')\n\nexport default logger\n"]}
|
package/dist/mst/mst.d.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { CID } from 'multiformats';
|
|
2
1
|
import { z } from 'zod';
|
|
2
|
+
import { Cid } from '@atproto/lex-data';
|
|
3
3
|
import { BlockMap } from '../block-map';
|
|
4
4
|
import { CidSet } from '../cid-set';
|
|
5
5
|
import { ReadableBlockstore } from '../storage';
|
|
6
6
|
import { CarBlock } from '../types';
|
|
7
7
|
declare const nodeData: z.ZodObject<{
|
|
8
|
-
l: z.ZodNullable<z.ZodEffects<z.ZodUnknown,
|
|
8
|
+
l: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
|
|
9
9
|
e: z.ZodArray<z.ZodObject<{
|
|
10
10
|
p: z.ZodNumber;
|
|
11
11
|
k: z.ZodType<Uint8Array<ArrayBuffer>, z.ZodTypeDef, Uint8Array<ArrayBuffer>>;
|
|
12
|
-
v: z.ZodEffects<z.ZodUnknown,
|
|
13
|
-
t: z.ZodNullable<z.ZodEffects<z.ZodUnknown,
|
|
12
|
+
v: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
|
|
13
|
+
t: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
|
|
14
14
|
}, "strip", z.ZodTypeAny, {
|
|
15
15
|
p: number;
|
|
16
16
|
k: Uint8Array<ArrayBuffer>;
|
|
17
|
-
v:
|
|
18
|
-
t:
|
|
17
|
+
v: Cid<0 | 1, number, number>;
|
|
18
|
+
t: Cid<0 | 1, number, number> | null;
|
|
19
19
|
}, {
|
|
20
20
|
p: number;
|
|
21
21
|
k: Uint8Array<ArrayBuffer>;
|
|
@@ -23,12 +23,12 @@ declare const nodeData: z.ZodObject<{
|
|
|
23
23
|
t?: unknown;
|
|
24
24
|
}>, "many">;
|
|
25
25
|
}, "strip", z.ZodTypeAny, {
|
|
26
|
-
l:
|
|
26
|
+
l: Cid<0 | 1, number, number> | null;
|
|
27
27
|
e: {
|
|
28
28
|
p: number;
|
|
29
29
|
k: Uint8Array<ArrayBuffer>;
|
|
30
|
-
v:
|
|
31
|
-
t:
|
|
30
|
+
v: Cid<0 | 1, number, number>;
|
|
31
|
+
t: Cid<0 | 1, number, number> | null;
|
|
32
32
|
}[];
|
|
33
33
|
}, {
|
|
34
34
|
e: {
|
|
@@ -43,17 +43,17 @@ export type NodeData = z.infer<typeof nodeData>;
|
|
|
43
43
|
export declare const nodeDataDef: {
|
|
44
44
|
name: string;
|
|
45
45
|
schema: z.ZodObject<{
|
|
46
|
-
l: z.ZodNullable<z.ZodEffects<z.ZodUnknown,
|
|
46
|
+
l: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
|
|
47
47
|
e: z.ZodArray<z.ZodObject<{
|
|
48
48
|
p: z.ZodNumber;
|
|
49
49
|
k: z.ZodType<Uint8Array<ArrayBuffer>, z.ZodTypeDef, Uint8Array<ArrayBuffer>>;
|
|
50
|
-
v: z.ZodEffects<z.ZodUnknown,
|
|
51
|
-
t: z.ZodNullable<z.ZodEffects<z.ZodUnknown,
|
|
50
|
+
v: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
|
|
51
|
+
t: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
|
|
52
52
|
}, "strip", z.ZodTypeAny, {
|
|
53
53
|
p: number;
|
|
54
54
|
k: Uint8Array<ArrayBuffer>;
|
|
55
|
-
v:
|
|
56
|
-
t:
|
|
55
|
+
v: Cid<0 | 1, number, number>;
|
|
56
|
+
t: Cid<0 | 1, number, number> | null;
|
|
57
57
|
}, {
|
|
58
58
|
p: number;
|
|
59
59
|
k: Uint8Array<ArrayBuffer>;
|
|
@@ -61,12 +61,12 @@ export declare const nodeDataDef: {
|
|
|
61
61
|
t?: unknown;
|
|
62
62
|
}>, "many">;
|
|
63
63
|
}, "strip", z.ZodTypeAny, {
|
|
64
|
-
l:
|
|
64
|
+
l: Cid<0 | 1, number, number> | null;
|
|
65
65
|
e: {
|
|
66
66
|
p: number;
|
|
67
67
|
k: Uint8Array<ArrayBuffer>;
|
|
68
|
-
v:
|
|
69
|
-
t:
|
|
68
|
+
v: Cid<0 | 1, number, number>;
|
|
69
|
+
t: Cid<0 | 1, number, number> | null;
|
|
70
70
|
}[];
|
|
71
71
|
}, {
|
|
72
72
|
e: {
|
|
@@ -86,28 +86,28 @@ export declare class MST {
|
|
|
86
86
|
storage: ReadableBlockstore;
|
|
87
87
|
entries: NodeEntry[] | null;
|
|
88
88
|
layer: number | null;
|
|
89
|
-
pointer:
|
|
89
|
+
pointer: Cid;
|
|
90
90
|
outdatedPointer: boolean;
|
|
91
|
-
constructor(storage: ReadableBlockstore, pointer:
|
|
91
|
+
constructor(storage: ReadableBlockstore, pointer: Cid, entries: NodeEntry[] | null, layer: number | null);
|
|
92
92
|
static create(storage: ReadableBlockstore, entries?: NodeEntry[], opts?: Partial<MstOpts>): Promise<MST>;
|
|
93
93
|
static fromData(storage: ReadableBlockstore, data: NodeData, opts?: Partial<MstOpts>): Promise<MST>;
|
|
94
|
-
static load(storage: ReadableBlockstore, cid:
|
|
94
|
+
static load(storage: ReadableBlockstore, cid: Cid, opts?: Partial<MstOpts>): MST;
|
|
95
95
|
newTree(entries: NodeEntry[]): Promise<MST>;
|
|
96
96
|
getEntries(): Promise<NodeEntry[]>;
|
|
97
|
-
getPointer(): Promise<
|
|
97
|
+
getPointer(): Promise<Cid>;
|
|
98
98
|
serialize(): Promise<{
|
|
99
|
-
cid:
|
|
99
|
+
cid: Cid;
|
|
100
100
|
bytes: Uint8Array;
|
|
101
101
|
}>;
|
|
102
102
|
getLayer(): Promise<number>;
|
|
103
103
|
attemptGetLayer(): Promise<number | null>;
|
|
104
104
|
getUnstoredBlocks(): Promise<{
|
|
105
|
-
root:
|
|
105
|
+
root: Cid;
|
|
106
106
|
blocks: BlockMap;
|
|
107
107
|
}>;
|
|
108
|
-
add(key: string, value:
|
|
109
|
-
get(key: string): Promise<
|
|
110
|
-
update(key: string, value:
|
|
108
|
+
add(key: string, value: Cid, knownZeros?: number): Promise<MST>;
|
|
109
|
+
get(key: string): Promise<Cid | null>;
|
|
110
|
+
update(key: string, value: Cid): Promise<MST>;
|
|
111
111
|
delete(key: string): Promise<MST>;
|
|
112
112
|
deleteRecurse(key: string): Promise<MST>;
|
|
113
113
|
updateEntry(index: number, entry: NodeEntry): Promise<MST>;
|
|
@@ -137,7 +137,7 @@ export declare class MST {
|
|
|
137
137
|
walkReachable(): AsyncIterable<NodeEntry>;
|
|
138
138
|
reachableLeaves(): Promise<Leaf[]>;
|
|
139
139
|
carBlockStream(): AsyncIterable<CarBlock>;
|
|
140
|
-
cidsForPath(key: string): Promise<
|
|
140
|
+
cidsForPath(key: string): Promise<Cid[]>;
|
|
141
141
|
getCoveringProof(key: string): Promise<BlockMap>;
|
|
142
142
|
proofForKey(key: string): Promise<BlockMap>;
|
|
143
143
|
proofForLeftSib(key: string): Promise<BlockMap>;
|
|
@@ -148,8 +148,8 @@ export declare class MST {
|
|
|
148
148
|
}
|
|
149
149
|
export declare class Leaf {
|
|
150
150
|
key: string;
|
|
151
|
-
value:
|
|
152
|
-
constructor(key: string, value:
|
|
151
|
+
value: Cid;
|
|
152
|
+
constructor(key: string, value: Cid);
|
|
153
153
|
isTree(): this is MST;
|
|
154
154
|
isLeaf(): this is Leaf;
|
|
155
155
|
equals(entry: NodeEntry): boolean;
|
package/dist/mst/mst.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mst.d.ts","sourceRoot":"","sources":["../../src/mst/mst.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mst.d.ts","sourceRoot":"","sources":["../../src/mst/mst.ts"],"names":[],"mappings":"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"}
|
package/dist/mst/mst.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* eslint-disable import/no-deprecated */
|
|
3
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
3
|
if (k2 === undefined) k2 = k;
|
|
5
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -36,11 +35,13 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
36
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
36
|
exports.Leaf = exports.MST = exports.nodeDataDef = void 0;
|
|
38
37
|
const zod_1 = require("zod");
|
|
39
|
-
const
|
|
38
|
+
const lex_cbor_1 = require("@atproto/lex-cbor");
|
|
39
|
+
const lex_data_1 = require("@atproto/lex-data");
|
|
40
40
|
const block_map_1 = require("../block-map");
|
|
41
41
|
const cid_set_1 = require("../cid-set");
|
|
42
42
|
const error_1 = require("../error");
|
|
43
43
|
const parse = __importStar(require("../parse"));
|
|
44
|
+
const types_1 = require("../types");
|
|
44
45
|
const util = __importStar(require("./util"));
|
|
45
46
|
/**
|
|
46
47
|
* This is an implementation of a Merkle Search Tree (MST)
|
|
@@ -49,7 +50,7 @@ const util = __importStar(require("./util"));
|
|
|
49
50
|
* Keys are laid out in alphabetic order.
|
|
50
51
|
* The key insight of an MST is that each key is hashed and starting 0s are counted
|
|
51
52
|
* to determine which layer it falls on (5 zeros for ~32 fanout).
|
|
52
|
-
* This is a merkle tree, so each subtree is referred to by it's hash (
|
|
53
|
+
* This is a merkle tree, so each subtree is referred to by it's hash (Cid).
|
|
53
54
|
* When a leaf is changed, ever tree on the path to that leaf is changed as well,
|
|
54
55
|
* thereby updating the root hash.
|
|
55
56
|
*
|
|
@@ -74,11 +75,11 @@ const util = __importStar(require("./util"));
|
|
|
74
75
|
* Then the first will be described as `prefix: 0, key: 'bsky/posts/abcdefg'`,
|
|
75
76
|
* and the second will be described as `prefix: 16, key: 'hi'.`
|
|
76
77
|
*/
|
|
77
|
-
const subTreePointer = zod_1.z.nullable(
|
|
78
|
+
const subTreePointer = zod_1.z.nullable(types_1.schema.cid);
|
|
78
79
|
const treeEntry = zod_1.z.object({
|
|
79
80
|
p: zod_1.z.number(), // prefix count of ascii chars that this key shares with the prev key
|
|
80
|
-
k:
|
|
81
|
-
v:
|
|
81
|
+
k: types_1.schema.bytes, // the rest of the key outside the shared prefix
|
|
82
|
+
v: types_1.schema.cid, // value
|
|
82
83
|
t: subTreePointer, // next subtree (to the right of leaf)
|
|
83
84
|
});
|
|
84
85
|
const nodeData = zod_1.z.object({
|
|
@@ -134,7 +135,7 @@ class MST {
|
|
|
134
135
|
static async fromData(storage, data, opts) {
|
|
135
136
|
const { layer = null } = opts || {};
|
|
136
137
|
const entries = await util.deserializeNodeData(storage, data, opts);
|
|
137
|
-
const pointer = await (0,
|
|
138
|
+
const pointer = await (0, lex_cbor_1.cidForLex)(data);
|
|
138
139
|
return new MST(storage, pointer, entries, layer);
|
|
139
140
|
}
|
|
140
141
|
// this is really a *lazy* load, doesn't actually touch storage
|
|
@@ -167,7 +168,7 @@ class MST {
|
|
|
167
168
|
});
|
|
168
169
|
return this.entries;
|
|
169
170
|
}
|
|
170
|
-
throw new Error('No entries or
|
|
171
|
+
throw new Error('No entries or Cid provided');
|
|
171
172
|
}
|
|
172
173
|
// We don't hash the node on every mutation for performance reasons
|
|
173
174
|
// Instead we keep track of whether the pointer is outdated and only (recursively) calculate when needed
|
|
@@ -187,11 +188,9 @@ class MST {
|
|
|
187
188
|
entries = await this.getEntries();
|
|
188
189
|
}
|
|
189
190
|
const data = util.serializeNodeData(entries);
|
|
190
|
-
const
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
bytes: block.bytes,
|
|
194
|
-
};
|
|
191
|
+
const bytes = (0, lex_cbor_1.encode)(data);
|
|
192
|
+
const cid = await (0, lex_data_1.cidForCbor)(bytes);
|
|
193
|
+
return { cid, bytes };
|
|
195
194
|
}
|
|
196
195
|
// In most cases, we get the layer of a node from a hint on creation
|
|
197
196
|
// In the case of the topmost node in the tree, we look for a key in the node & determine the layer
|