@atproto/repo 0.3.9-next.0 → 0.3.9
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 +8 -8
- package/babel.config.js +1 -0
- package/build.js +14 -0
- package/dist/block-map.d.ts +0 -1
- package/dist/cid-set.d.ts +0 -1
- package/dist/data-diff.d.ts +0 -1
- package/dist/error.d.ts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +27225 -26
- package/dist/index.js.map +7 -1
- package/dist/logger.d.ts +0 -1
- package/dist/mst/diff.d.ts +0 -1
- package/dist/mst/index.d.ts +0 -1
- package/dist/mst/mst.d.ts +5 -6
- package/dist/mst/util.d.ts +0 -1
- package/dist/mst/walker.d.ts +0 -1
- package/dist/parse.d.ts +0 -1
- package/dist/readable-repo.d.ts +0 -1
- package/dist/repo.d.ts +0 -1
- package/dist/storage/index.d.ts +0 -1
- package/dist/storage/memory-blockstore.d.ts +0 -1
- package/dist/storage/readable-blockstore.d.ts +0 -1
- package/dist/storage/sync-storage.d.ts +0 -1
- package/dist/storage/types.d.ts +0 -1
- package/dist/sync/consumer.d.ts +0 -1
- package/dist/sync/index.d.ts +0 -1
- package/dist/sync/provider.d.ts +0 -1
- package/dist/types.d.ts +19 -22
- package/dist/util.d.ts +1 -2
- package/jest.bench.config.js +8 -0
- package/jest.config.js +3 -3
- package/package.json +14 -11
- package/src/mst/mst.ts +1 -1
- package/src/types.ts +2 -4
- package/src/util.ts +1 -1
- package/tests/_util.ts +0 -4
- package/tsconfig.build.json +2 -6
- package/tsconfig.json +11 -3
- package/dist/block-map.d.ts.map +0 -1
- package/dist/block-map.js +0 -119
- package/dist/block-map.js.map +0 -1
- package/dist/cid-set.d.ts.map +0 -1
- package/dist/cid-set.js +0 -48
- package/dist/cid-set.js.map +0 -1
- package/dist/data-diff.d.ts.map +0 -1
- package/dist/data-diff.js +0 -134
- package/dist/data-diff.js.map +0 -1
- package/dist/error.d.ts.map +0 -1
- package/dist/error.js +0 -76
- package/dist/error.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -7
- package/dist/logger.js.map +0 -1
- package/dist/mst/diff.d.ts.map +0 -1
- package/dist/mst/diff.js +0 -120
- package/dist/mst/diff.js.map +0 -1
- package/dist/mst/index.d.ts.map +0 -1
- package/dist/mst/index.js +0 -34
- package/dist/mst/index.js.map +0 -1
- package/dist/mst/mst.d.ts.map +0 -1
- package/dist/mst/mst.js +0 -770
- package/dist/mst/mst.js.map +0 -1
- package/dist/mst/util.d.ts.map +0 -1
- package/dist/mst/util.js +0 -167
- package/dist/mst/util.js.map +0 -1
- package/dist/mst/walker.d.ts.map +0 -1
- package/dist/mst/walker.js +0 -123
- package/dist/mst/walker.js.map +0 -1
- package/dist/parse.d.ts.map +0 -1
- package/dist/parse.js +0 -35
- package/dist/parse.js.map +0 -1
- package/dist/readable-repo.d.ts.map +0 -1
- package/dist/readable-repo.js +0 -117
- package/dist/readable-repo.js.map +0 -1
- package/dist/repo.d.ts.map +0 -1
- package/dist/repo.js +0 -190
- package/dist/repo.js.map +0 -1
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/storage/index.js +0 -21
- package/dist/storage/index.js.map +0 -1
- package/dist/storage/memory-blockstore.d.ts.map +0 -1
- package/dist/storage/memory-blockstore.js +0 -80
- package/dist/storage/memory-blockstore.js.map +0 -1
- package/dist/storage/readable-blockstore.d.ts.map +0 -1
- package/dist/storage/readable-blockstore.js +0 -66
- package/dist/storage/readable-blockstore.js.map +0 -1
- package/dist/storage/sync-storage.d.ts.map +0 -1
- package/dist/storage/sync-storage.js +0 -46
- package/dist/storage/sync-storage.js.map +0 -1
- package/dist/storage/types.d.ts.map +0 -1
- package/dist/storage/types.js +0 -7
- package/dist/storage/types.js.map +0 -1
- package/dist/sync/consumer.d.ts.map +0 -1
- package/dist/sync/consumer.js +0 -178
- package/dist/sync/consumer.js.map +0 -1
- package/dist/sync/index.d.ts.map +0 -1
- package/dist/sync/index.js +0 -19
- package/dist/sync/index.js.map +0 -1
- package/dist/sync/provider.d.ts.map +0 -1
- package/dist/sync/provider.js +0 -67
- package/dist/sync/provider.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -62
- package/dist/types.js.map +0 -1
- package/dist/util.d.ts.map +0 -1
- package/dist/util.js +0 -219
- package/dist/util.js.map +0 -1
- package/tsconfig.tests.json +0 -7
package/dist/repo.js
DELETED
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.Repo = void 0;
|
|
30
|
-
const common_1 = require("@atproto/common");
|
|
31
|
-
const types_1 = require("./types");
|
|
32
|
-
const mst_1 = require("./mst");
|
|
33
|
-
const data_diff_1 = __importDefault(require("./data-diff"));
|
|
34
|
-
const logger_1 = __importDefault(require("./logger"));
|
|
35
|
-
const block_map_1 = __importDefault(require("./block-map"));
|
|
36
|
-
const readable_repo_1 = require("./readable-repo");
|
|
37
|
-
const util = __importStar(require("./util"));
|
|
38
|
-
const cid_set_1 = __importDefault(require("./cid-set"));
|
|
39
|
-
class Repo extends readable_repo_1.ReadableRepo {
|
|
40
|
-
constructor(params) {
|
|
41
|
-
super(params);
|
|
42
|
-
Object.defineProperty(this, "storage", {
|
|
43
|
-
enumerable: true,
|
|
44
|
-
configurable: true,
|
|
45
|
-
writable: true,
|
|
46
|
-
value: void 0
|
|
47
|
-
});
|
|
48
|
-
this.storage = params.storage;
|
|
49
|
-
}
|
|
50
|
-
static async formatInitCommit(storage, did, keypair, initialWrites = []) {
|
|
51
|
-
const newBlocks = new block_map_1.default();
|
|
52
|
-
let data = await mst_1.MST.create(storage);
|
|
53
|
-
for (const record of initialWrites) {
|
|
54
|
-
const cid = await newBlocks.add(record.record);
|
|
55
|
-
const dataKey = util.formatDataKey(record.collection, record.rkey);
|
|
56
|
-
data = await data.add(dataKey, cid);
|
|
57
|
-
}
|
|
58
|
-
const dataCid = await data.getPointer();
|
|
59
|
-
const diff = await data_diff_1.default.of(data, null);
|
|
60
|
-
newBlocks.addMap(diff.newMstBlocks);
|
|
61
|
-
const rev = common_1.TID.nextStr();
|
|
62
|
-
const commit = await util.signCommit({
|
|
63
|
-
did,
|
|
64
|
-
version: 3,
|
|
65
|
-
rev,
|
|
66
|
-
prev: null, // added for backwards compatibility with v2
|
|
67
|
-
data: dataCid,
|
|
68
|
-
}, keypair);
|
|
69
|
-
const commitCid = await newBlocks.add(commit);
|
|
70
|
-
return {
|
|
71
|
-
cid: commitCid,
|
|
72
|
-
rev,
|
|
73
|
-
since: null,
|
|
74
|
-
prev: null,
|
|
75
|
-
newBlocks,
|
|
76
|
-
removedCids: diff.removedCids,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
static async createFromCommit(storage, commit) {
|
|
80
|
-
await storage.applyCommit(commit);
|
|
81
|
-
return Repo.load(storage, commit.cid);
|
|
82
|
-
}
|
|
83
|
-
static async create(storage, did, keypair, initialWrites = []) {
|
|
84
|
-
const commit = await Repo.formatInitCommit(storage, did, keypair, initialWrites);
|
|
85
|
-
return Repo.createFromCommit(storage, commit);
|
|
86
|
-
}
|
|
87
|
-
static async load(storage, cid) {
|
|
88
|
-
const commitCid = cid || (await storage.getRoot());
|
|
89
|
-
if (!commitCid) {
|
|
90
|
-
throw new Error('No cid provided and none in storage');
|
|
91
|
-
}
|
|
92
|
-
const commit = await storage.readObj(commitCid, types_1.def.versionedCommit);
|
|
93
|
-
const data = await mst_1.MST.load(storage, commit.data);
|
|
94
|
-
logger_1.default.info({ did: commit.did }, 'loaded repo for');
|
|
95
|
-
return new Repo({
|
|
96
|
-
storage,
|
|
97
|
-
data,
|
|
98
|
-
commit: util.ensureV3Commit(commit),
|
|
99
|
-
cid: commitCid,
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
async formatCommit(toWrite, keypair) {
|
|
103
|
-
const writes = Array.isArray(toWrite) ? toWrite : [toWrite];
|
|
104
|
-
const leaves = new block_map_1.default();
|
|
105
|
-
let data = this.data;
|
|
106
|
-
for (const write of writes) {
|
|
107
|
-
if (write.action === types_1.WriteOpAction.Create) {
|
|
108
|
-
const cid = await leaves.add(write.record);
|
|
109
|
-
const dataKey = write.collection + '/' + write.rkey;
|
|
110
|
-
data = await data.add(dataKey, cid);
|
|
111
|
-
}
|
|
112
|
-
else if (write.action === types_1.WriteOpAction.Update) {
|
|
113
|
-
const cid = await leaves.add(write.record);
|
|
114
|
-
const dataKey = write.collection + '/' + write.rkey;
|
|
115
|
-
data = await data.update(dataKey, cid);
|
|
116
|
-
}
|
|
117
|
-
else if (write.action === types_1.WriteOpAction.Delete) {
|
|
118
|
-
const dataKey = write.collection + '/' + write.rkey;
|
|
119
|
-
data = await data.delete(dataKey);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
const dataCid = await data.getPointer();
|
|
123
|
-
const diff = await data_diff_1.default.of(data, this.data);
|
|
124
|
-
const newBlocks = diff.newMstBlocks;
|
|
125
|
-
const removedCids = diff.removedCids;
|
|
126
|
-
const addedLeaves = leaves.getMany(diff.newLeafCids.toList());
|
|
127
|
-
if (addedLeaves.missing.length > 0) {
|
|
128
|
-
throw new Error(`Missing leaf blocks: ${addedLeaves.missing}`);
|
|
129
|
-
}
|
|
130
|
-
newBlocks.addMap(addedLeaves.blocks);
|
|
131
|
-
const rev = common_1.TID.nextStr(this.commit.rev);
|
|
132
|
-
const commit = await util.signCommit({
|
|
133
|
-
did: this.did,
|
|
134
|
-
version: 3,
|
|
135
|
-
rev,
|
|
136
|
-
prev: null, // added for backwards compatibility with v2
|
|
137
|
-
data: dataCid,
|
|
138
|
-
}, keypair);
|
|
139
|
-
const commitCid = await newBlocks.add(commit);
|
|
140
|
-
// ensure the commit cid actually changed
|
|
141
|
-
if (commitCid.equals(this.cid)) {
|
|
142
|
-
newBlocks.delete(commitCid);
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
removedCids.add(this.cid);
|
|
146
|
-
}
|
|
147
|
-
return {
|
|
148
|
-
cid: commitCid,
|
|
149
|
-
rev,
|
|
150
|
-
since: this.commit.rev,
|
|
151
|
-
prev: this.cid,
|
|
152
|
-
newBlocks,
|
|
153
|
-
removedCids,
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
async applyCommit(commitData) {
|
|
157
|
-
await this.storage.applyCommit(commitData);
|
|
158
|
-
return Repo.load(this.storage, commitData.cid);
|
|
159
|
-
}
|
|
160
|
-
async applyWrites(toWrite, keypair) {
|
|
161
|
-
const commit = await this.formatCommit(toWrite, keypair);
|
|
162
|
-
return this.applyCommit(commit);
|
|
163
|
-
}
|
|
164
|
-
async formatResignCommit(rev, keypair) {
|
|
165
|
-
const commit = await util.signCommit({
|
|
166
|
-
did: this.did,
|
|
167
|
-
version: 3,
|
|
168
|
-
rev,
|
|
169
|
-
prev: null, // added for backwards compatibility with v2
|
|
170
|
-
data: this.commit.data,
|
|
171
|
-
}, keypair);
|
|
172
|
-
const newBlocks = new block_map_1.default();
|
|
173
|
-
const commitCid = await newBlocks.add(commit);
|
|
174
|
-
return {
|
|
175
|
-
cid: commitCid,
|
|
176
|
-
rev,
|
|
177
|
-
since: null,
|
|
178
|
-
prev: null,
|
|
179
|
-
newBlocks,
|
|
180
|
-
removedCids: new cid_set_1.default([this.cid]),
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
async resignCommit(rev, keypair) {
|
|
184
|
-
const formatted = await this.formatResignCommit(rev, keypair);
|
|
185
|
-
return this.applyCommit(formatted);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
exports.Repo = Repo;
|
|
189
|
-
exports.default = Repo;
|
|
190
|
-
//# sourceMappingURL=repo.js.map
|
package/dist/repo.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"repo.js","sourceRoot":"","sources":["../src/repo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA"}
|
package/dist/storage/index.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./readable-blockstore"), exports);
|
|
18
|
-
__exportStar(require("./memory-blockstore"), exports);
|
|
19
|
-
__exportStar(require("./sync-storage"), exports);
|
|
20
|
-
__exportStar(require("./types"), exports);
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC;AACrC,sDAAmC;AACnC,iDAA8B;AAC9B,0CAAuB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-blockstore.d.ts","sourceRoot":"","sources":["../../src/storage/memory-blockstore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,QAAQ,MAAM,cAAc,CAAA;AACnC,OAAO,kBAAkB,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,qBAAa,gBACX,SAAQ,kBACR,YAAW,WAAW;IAEtB,MAAM,EAAE,QAAQ,CAAA;IAChB,IAAI,EAAE,GAAG,GAAG,IAAI,CAAO;IACvB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAO;gBAEb,MAAM,CAAC,EAAE,QAAQ;IAQvB,OAAO,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAI9B,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAI9C,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/B,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IAIrE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,OAAO,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhD,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAQ9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B;AAED,eAAe,gBAAgB,CAAA"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.MemoryBlockstore = void 0;
|
|
7
|
-
const block_map_1 = __importDefault(require("../block-map"));
|
|
8
|
-
const readable_blockstore_1 = __importDefault(require("./readable-blockstore"));
|
|
9
|
-
class MemoryBlockstore extends readable_blockstore_1.default {
|
|
10
|
-
constructor(blocks) {
|
|
11
|
-
super();
|
|
12
|
-
Object.defineProperty(this, "blocks", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
configurable: true,
|
|
15
|
-
writable: true,
|
|
16
|
-
value: void 0
|
|
17
|
-
});
|
|
18
|
-
Object.defineProperty(this, "root", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
configurable: true,
|
|
21
|
-
writable: true,
|
|
22
|
-
value: null
|
|
23
|
-
});
|
|
24
|
-
Object.defineProperty(this, "rev", {
|
|
25
|
-
enumerable: true,
|
|
26
|
-
configurable: true,
|
|
27
|
-
writable: true,
|
|
28
|
-
value: null
|
|
29
|
-
});
|
|
30
|
-
this.blocks = new block_map_1.default();
|
|
31
|
-
if (blocks) {
|
|
32
|
-
this.blocks.addMap(blocks);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
async getRoot() {
|
|
36
|
-
return this.root;
|
|
37
|
-
}
|
|
38
|
-
async getBytes(cid) {
|
|
39
|
-
return this.blocks.get(cid) || null;
|
|
40
|
-
}
|
|
41
|
-
async has(cid) {
|
|
42
|
-
return this.blocks.has(cid);
|
|
43
|
-
}
|
|
44
|
-
async getBlocks(cids) {
|
|
45
|
-
return this.blocks.getMany(cids);
|
|
46
|
-
}
|
|
47
|
-
async putBlock(cid, block) {
|
|
48
|
-
this.blocks.set(cid, block);
|
|
49
|
-
}
|
|
50
|
-
async putMany(blocks) {
|
|
51
|
-
this.blocks.addMap(blocks);
|
|
52
|
-
}
|
|
53
|
-
async updateRoot(cid, rev) {
|
|
54
|
-
this.root = cid;
|
|
55
|
-
this.rev = rev;
|
|
56
|
-
}
|
|
57
|
-
async applyCommit(commit) {
|
|
58
|
-
this.root = commit.cid;
|
|
59
|
-
const rmCids = commit.removedCids.toList();
|
|
60
|
-
for (const cid of rmCids) {
|
|
61
|
-
this.blocks.delete(cid);
|
|
62
|
-
}
|
|
63
|
-
commit.newBlocks.forEach((bytes, cid) => {
|
|
64
|
-
this.blocks.set(cid, bytes);
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
async sizeInBytes() {
|
|
68
|
-
let total = 0;
|
|
69
|
-
this.blocks.forEach((bytes) => {
|
|
70
|
-
total += bytes.byteLength;
|
|
71
|
-
});
|
|
72
|
-
return total;
|
|
73
|
-
}
|
|
74
|
-
async destroy() {
|
|
75
|
-
this.blocks.clear();
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
exports.MemoryBlockstore = MemoryBlockstore;
|
|
79
|
-
exports.default = MemoryBlockstore;
|
|
80
|
-
//# sourceMappingURL=memory-blockstore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-blockstore.js","sourceRoot":"","sources":["../../src/storage/memory-blockstore.ts"],"names":[],"mappings":";;;;;;AAEA,6DAAmC;AACnC,gFAAsD;AAGtD,MAAa,gBACX,SAAQ,6BAAkB;IAO1B,YAAY,MAAiB;QAC3B,KAAK,EAAE,CAAA;QALT;;;;;WAAgB;QAChB;;;;mBAAmB,IAAI;WAAA;QACvB;;;;mBAAqB,IAAI;WAAA;QAIvB,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAQ,EAAE,CAAA;QAC5B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAQ;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAQ;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAW;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAQ,EAAE,KAAiB;QACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAgB;QAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAQ,EAAE,GAAW;QACpC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAkB;QAClC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAA;QAC1C,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;QACD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5B,KAAK,IAAI,KAAK,CAAC,UAAU,CAAA;QAC3B,CAAC,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;CACF;AAnED,4CAmEC;AAED,kBAAe,gBAAgB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"readable-blockstore.d.ts","sourceRoot":"","sources":["../../src/storage/readable-blockstore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,QAAQ,MAAM,cAAc,CAAA;AAKnC,8BAAsB,kBAAkB;IACtC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IACvD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IAExE,WAAW,CAAC,CAAC,EACjB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAChB,OAAO,CAAC;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;IAM1C,eAAe,CAAC,CAAC,EACrB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAChB,OAAO,CAAC;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC;IAQnC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAKnD,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAQvD,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;CAOhD;AAED,eAAe,kBAAkB,CAAA"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.ReadableBlockstore = void 0;
|
|
27
|
-
const error_1 = require("../error");
|
|
28
|
-
const parse = __importStar(require("../parse"));
|
|
29
|
-
const util_1 = require("../util");
|
|
30
|
-
class ReadableBlockstore {
|
|
31
|
-
async attemptRead(cid, def) {
|
|
32
|
-
const bytes = await this.getBytes(cid);
|
|
33
|
-
if (!bytes)
|
|
34
|
-
return null;
|
|
35
|
-
return parse.parseObjByDef(bytes, cid, def);
|
|
36
|
-
}
|
|
37
|
-
async readObjAndBytes(cid, def) {
|
|
38
|
-
const read = await this.attemptRead(cid, def);
|
|
39
|
-
if (!read) {
|
|
40
|
-
throw new error_1.MissingBlockError(cid, def.name);
|
|
41
|
-
}
|
|
42
|
-
return read;
|
|
43
|
-
}
|
|
44
|
-
async readObj(cid, def) {
|
|
45
|
-
const obj = await this.readObjAndBytes(cid, def);
|
|
46
|
-
return obj.obj;
|
|
47
|
-
}
|
|
48
|
-
async attemptReadRecord(cid) {
|
|
49
|
-
try {
|
|
50
|
-
return await this.readRecord(cid);
|
|
51
|
-
}
|
|
52
|
-
catch {
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
async readRecord(cid) {
|
|
57
|
-
const bytes = await this.getBytes(cid);
|
|
58
|
-
if (!bytes) {
|
|
59
|
-
throw new error_1.MissingBlockError(cid);
|
|
60
|
-
}
|
|
61
|
-
return (0, util_1.cborToLexRecord)(bytes);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
exports.ReadableBlockstore = ReadableBlockstore;
|
|
65
|
-
exports.default = ReadableBlockstore;
|
|
66
|
-
//# sourceMappingURL=readable-blockstore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"readable-blockstore.js","sourceRoot":"","sources":["../../src/storage/readable-blockstore.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,oCAA4C;AAC5C,gDAAiC;AACjC,kCAAyC;AAEzC,MAAsB,kBAAkB;IAKtC,KAAK,CAAC,WAAW,CACf,GAAQ,EACR,GAAiB;QAEjB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QACvB,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,GAAQ,EACR,GAAiB;QAEjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,yBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QAC5C,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,GAAQ,EAAE,GAAiB;QAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAChD,OAAO,GAAG,CAAC,GAAG,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,GAAQ;QAC9B,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAQ;QACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,yBAAiB,CAAC,GAAG,CAAC,CAAA;QAClC,CAAC;QACD,OAAO,IAAA,sBAAe,EAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;CACF;AA7CD,gDA6CC;AAED,kBAAe,kBAAkB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-storage.d.ts","sourceRoot":"","sources":["../../src/storage/sync-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,QAAQ,MAAM,cAAc,CAAA;AACnC,OAAO,kBAAkB,MAAM,uBAAuB,CAAA;AAEtD,qBAAa,WAAY,SAAQ,kBAAkB;IAExC,MAAM,EAAE,kBAAkB;IAC1B,KAAK,EAAE,kBAAkB;gBADzB,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,kBAAkB;IAK5B,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAM9C,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IAWrE,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;CAGtC;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.SyncStorage = void 0;
|
|
7
|
-
const readable_blockstore_1 = __importDefault(require("./readable-blockstore"));
|
|
8
|
-
class SyncStorage extends readable_blockstore_1.default {
|
|
9
|
-
constructor(staged, saved) {
|
|
10
|
-
super();
|
|
11
|
-
Object.defineProperty(this, "staged", {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
configurable: true,
|
|
14
|
-
writable: true,
|
|
15
|
-
value: staged
|
|
16
|
-
});
|
|
17
|
-
Object.defineProperty(this, "saved", {
|
|
18
|
-
enumerable: true,
|
|
19
|
-
configurable: true,
|
|
20
|
-
writable: true,
|
|
21
|
-
value: saved
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
async getBytes(cid) {
|
|
25
|
-
const got = await this.staged.getBytes(cid);
|
|
26
|
-
if (got)
|
|
27
|
-
return got;
|
|
28
|
-
return this.saved.getBytes(cid);
|
|
29
|
-
}
|
|
30
|
-
async getBlocks(cids) {
|
|
31
|
-
const fromStaged = await this.staged.getBlocks(cids);
|
|
32
|
-
const fromSaved = await this.saved.getBlocks(fromStaged.missing);
|
|
33
|
-
const blocks = fromStaged.blocks;
|
|
34
|
-
blocks.addMap(fromSaved.blocks);
|
|
35
|
-
return {
|
|
36
|
-
blocks,
|
|
37
|
-
missing: fromSaved.missing,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
async has(cid) {
|
|
41
|
-
return (await this.staged.has(cid)) || (await this.saved.has(cid));
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.SyncStorage = SyncStorage;
|
|
45
|
-
exports.default = SyncStorage;
|
|
46
|
-
//# sourceMappingURL=sync-storage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-storage.js","sourceRoot":"","sources":["../../src/storage/sync-storage.ts"],"names":[],"mappings":";;;;;;AAEA,gFAAsD;AAEtD,MAAa,WAAY,SAAQ,6BAAkB;IACjD,YACS,MAA0B,EAC1B,KAAyB;QAEhC,KAAK,EAAE,CAAA;QAHP;;;;mBAAO,MAAM;WAAoB;QACjC;;;;mBAAO,KAAK;WAAoB;IAGlC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAQ;QACrB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,GAAG;YAAE,OAAO,GAAG,CAAA;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAW;QACzB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACpD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAChE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;QAChC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAC/B,OAAO;YACL,MAAM;YACN,OAAO,EAAE,SAAS,CAAC,OAAO;SAC3B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAQ;QAChB,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACpE,CAAC;CACF;AA5BD,kCA4BC;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":";;;AA8CA,MAAa,iBAAkB,SAAQ,KAAK;CAAG;AAA/C,8CAA+C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consumer.d.ts","sourceRoot":"","sources":["../../src/sync/consumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAGtC,OAAO,YAAY,MAAM,kBAAkB,CAAA;AAE3C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAIlE,OAAO,QAAQ,MAAM,cAAc,CAAA;AAEnC,eAAO,MAAM,aAAa,aACd,UAAU,QACd,MAAM,eACC,MAAM,KAClB,QAAQ,YAAY,CAGtB,CAAA;AAED,eAAO,MAAM,UAAU,WACb,QAAQ,QACV,GAAG,QACH,MAAM,eACC,MAAM,SACZ;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,KAChC,QAAQ,YAAY,CAOtB,CAAA;AAED,eAAO,MAAM,aAAa,SAClB,YAAY,GAAG,IAAI,YACf,UAAU,QACd,MAAM,eACC,MAAM,SACZ;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,KAChC,QAAQ,YAAY,CAGtB,CAAA;AAED,eAAO,MAAM,UAAU,SACf,YAAY,GAAG,IAAI,gBACX,QAAQ,cACV,GAAG,QACT,MAAM,eACC,MAAM,SACZ;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,KAChC,QAAQ,YAAY,CAyCtB,CAAA;AAwBD,eAAO,MAAM,YAAY,WACf,UAAU,UACV,WAAW,EAAE,OAChB,MAAM,UACH,MAAM;cACO,WAAW,EAAE;gBAAc,WAAW,EAAE;EAqC9D,CAAA;AAED,eAAO,MAAM,aAAa,WAChB,UAAU,OACb,MAAM,cACC,MAAM,KACjB,QAAQ,WAAW,EAAE,CA6BvB,CAAA;AAED,qBAAa,qBAAsB,SAAQ,KAAK;CAAG"}
|
package/dist/sync/consumer.js
DELETED
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.RepoVerificationError = exports.verifyRecords = exports.verifyProofs = exports.verifyDiff = exports.verifyDiffCar = exports.verifyRepo = exports.verifyRepoCar = void 0;
|
|
30
|
-
const storage_1 = require("../storage");
|
|
31
|
-
const data_diff_1 = __importDefault(require("../data-diff"));
|
|
32
|
-
const readable_repo_1 = __importDefault(require("../readable-repo"));
|
|
33
|
-
const util = __importStar(require("../util"));
|
|
34
|
-
const types_1 = require("../types");
|
|
35
|
-
const mst_1 = require("../mst");
|
|
36
|
-
const common_1 = require("@atproto/common");
|
|
37
|
-
const verifyRepoCar = async (carBytes, did, signingKey) => {
|
|
38
|
-
const car = await util.readCarWithRoot(carBytes);
|
|
39
|
-
return (0, exports.verifyRepo)(car.blocks, car.root, did, signingKey);
|
|
40
|
-
};
|
|
41
|
-
exports.verifyRepoCar = verifyRepoCar;
|
|
42
|
-
const verifyRepo = async (blocks, head, did, signingKey, opts) => {
|
|
43
|
-
const diff = await (0, exports.verifyDiff)(null, blocks, head, did, signingKey, opts);
|
|
44
|
-
const creates = util.ensureCreates(diff.writes);
|
|
45
|
-
return {
|
|
46
|
-
creates,
|
|
47
|
-
commit: diff.commit,
|
|
48
|
-
};
|
|
49
|
-
};
|
|
50
|
-
exports.verifyRepo = verifyRepo;
|
|
51
|
-
const verifyDiffCar = async (repo, carBytes, did, signingKey, opts) => {
|
|
52
|
-
const car = await util.readCarWithRoot(carBytes);
|
|
53
|
-
return (0, exports.verifyDiff)(repo, car.blocks, car.root, did, signingKey, opts);
|
|
54
|
-
};
|
|
55
|
-
exports.verifyDiffCar = verifyDiffCar;
|
|
56
|
-
const verifyDiff = async (repo, updateBlocks, updateRoot, did, signingKey, opts) => {
|
|
57
|
-
const { ensureLeaves = true } = opts ?? {};
|
|
58
|
-
const stagedStorage = new storage_1.MemoryBlockstore(updateBlocks);
|
|
59
|
-
const updateStorage = repo
|
|
60
|
-
? new storage_1.SyncStorage(stagedStorage, repo.storage)
|
|
61
|
-
: stagedStorage;
|
|
62
|
-
const updated = await verifyRepoRoot(updateStorage, updateRoot, did, signingKey);
|
|
63
|
-
const diff = await data_diff_1.default.of(updated.data, repo?.data ?? null);
|
|
64
|
-
const writes = await util.diffToWriteDescripts(diff);
|
|
65
|
-
const newBlocks = diff.newMstBlocks;
|
|
66
|
-
const leaves = updateBlocks.getMany(diff.newLeafCids.toList());
|
|
67
|
-
if (leaves.missing.length > 0 && ensureLeaves) {
|
|
68
|
-
throw new Error(`missing leaf blocks: ${leaves.missing}`);
|
|
69
|
-
}
|
|
70
|
-
newBlocks.addMap(leaves.blocks);
|
|
71
|
-
const removedCids = diff.removedCids;
|
|
72
|
-
const commitCid = await newBlocks.add(updated.commit);
|
|
73
|
-
// ensure the commit cid actually changed
|
|
74
|
-
if (repo) {
|
|
75
|
-
if (commitCid.equals(repo.cid)) {
|
|
76
|
-
newBlocks.delete(commitCid);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
removedCids.add(repo.cid);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return {
|
|
83
|
-
writes,
|
|
84
|
-
commit: {
|
|
85
|
-
cid: updated.cid,
|
|
86
|
-
rev: updated.commit.rev,
|
|
87
|
-
prev: repo?.cid ?? null,
|
|
88
|
-
since: repo?.commit.rev ?? null,
|
|
89
|
-
newBlocks,
|
|
90
|
-
removedCids,
|
|
91
|
-
},
|
|
92
|
-
};
|
|
93
|
-
};
|
|
94
|
-
exports.verifyDiff = verifyDiff;
|
|
95
|
-
// @NOTE only verifies the root, not the repo contents
|
|
96
|
-
const verifyRepoRoot = async (storage, head, did, signingKey) => {
|
|
97
|
-
const repo = await readable_repo_1.default.load(storage, head);
|
|
98
|
-
if (did !== undefined && repo.did !== did) {
|
|
99
|
-
throw new RepoVerificationError(`Invalid repo did: ${repo.did}`);
|
|
100
|
-
}
|
|
101
|
-
if (signingKey !== undefined) {
|
|
102
|
-
const validSig = await util.verifyCommitSig(repo.commit, signingKey);
|
|
103
|
-
if (!validSig) {
|
|
104
|
-
throw new RepoVerificationError(`Invalid signature on commit: ${repo.cid.toString()}`);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
return repo;
|
|
108
|
-
};
|
|
109
|
-
const verifyProofs = async (proofs, claims, did, didKey) => {
|
|
110
|
-
const car = await util.readCarWithRoot(proofs);
|
|
111
|
-
const blockstore = new storage_1.MemoryBlockstore(car.blocks);
|
|
112
|
-
const commit = await blockstore.readObj(car.root, types_1.def.commit);
|
|
113
|
-
if (commit.did !== did) {
|
|
114
|
-
throw new RepoVerificationError(`Invalid repo did: ${commit.did}`);
|
|
115
|
-
}
|
|
116
|
-
const validSig = await util.verifyCommitSig(commit, didKey);
|
|
117
|
-
if (!validSig) {
|
|
118
|
-
throw new RepoVerificationError(`Invalid signature on commit: ${car.root.toString()}`);
|
|
119
|
-
}
|
|
120
|
-
const mst = mst_1.MST.load(blockstore, commit.data);
|
|
121
|
-
const verified = [];
|
|
122
|
-
const unverified = [];
|
|
123
|
-
for (const claim of claims) {
|
|
124
|
-
const found = await mst.get(util.formatDataKey(claim.collection, claim.rkey));
|
|
125
|
-
const record = found ? await blockstore.readObj(found, types_1.def.map) : null;
|
|
126
|
-
if (claim.record === null) {
|
|
127
|
-
if (record === null) {
|
|
128
|
-
verified.push(claim);
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
unverified.push(claim);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
const expected = await (0, common_1.cidForCbor)(claim.record);
|
|
136
|
-
if (expected.equals(found)) {
|
|
137
|
-
verified.push(claim);
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
unverified.push(claim);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
return { verified, unverified };
|
|
145
|
-
};
|
|
146
|
-
exports.verifyProofs = verifyProofs;
|
|
147
|
-
const verifyRecords = async (proofs, did, signingKey) => {
|
|
148
|
-
const car = await util.readCarWithRoot(proofs);
|
|
149
|
-
const blockstore = new storage_1.MemoryBlockstore(car.blocks);
|
|
150
|
-
const commit = await blockstore.readObj(car.root, types_1.def.commit);
|
|
151
|
-
if (commit.did !== did) {
|
|
152
|
-
throw new RepoVerificationError(`Invalid repo did: ${commit.did}`);
|
|
153
|
-
}
|
|
154
|
-
const validSig = await util.verifyCommitSig(commit, signingKey);
|
|
155
|
-
if (!validSig) {
|
|
156
|
-
throw new RepoVerificationError(`Invalid signature on commit: ${car.root.toString()}`);
|
|
157
|
-
}
|
|
158
|
-
const mst = mst_1.MST.load(blockstore, commit.data);
|
|
159
|
-
const records = [];
|
|
160
|
-
const leaves = await mst.reachableLeaves();
|
|
161
|
-
for (const leaf of leaves) {
|
|
162
|
-
const { collection, rkey } = util.parseDataKey(leaf.key);
|
|
163
|
-
const record = await blockstore.attemptReadRecord(leaf.value);
|
|
164
|
-
if (record) {
|
|
165
|
-
records.push({
|
|
166
|
-
collection,
|
|
167
|
-
rkey,
|
|
168
|
-
record,
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
return records;
|
|
173
|
-
};
|
|
174
|
-
exports.verifyRecords = verifyRecords;
|
|
175
|
-
class RepoVerificationError extends Error {
|
|
176
|
-
}
|
|
177
|
-
exports.RepoVerificationError = RepoVerificationError;
|
|
178
|
-
//# sourceMappingURL=consumer.js.map
|