@atproto/repo 0.3.8 → 0.3.9-next.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.
Files changed (109) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/block-map.d.ts +1 -0
  3. package/dist/block-map.d.ts.map +1 -0
  4. package/dist/block-map.js +119 -0
  5. package/dist/block-map.js.map +1 -0
  6. package/dist/cid-set.d.ts +1 -0
  7. package/dist/cid-set.d.ts.map +1 -0
  8. package/dist/cid-set.js +48 -0
  9. package/dist/cid-set.js.map +1 -0
  10. package/dist/data-diff.d.ts +1 -0
  11. package/dist/data-diff.d.ts.map +1 -0
  12. package/dist/data-diff.js +134 -0
  13. package/dist/data-diff.js.map +1 -0
  14. package/dist/error.d.ts +1 -0
  15. package/dist/error.d.ts.map +1 -0
  16. package/dist/error.js +76 -0
  17. package/dist/error.js.map +1 -0
  18. package/dist/index.d.ts +1 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +26 -27225
  21. package/dist/index.js.map +1 -7
  22. package/dist/logger.d.ts +1 -0
  23. package/dist/logger.d.ts.map +1 -0
  24. package/dist/logger.js +7 -0
  25. package/dist/logger.js.map +1 -0
  26. package/dist/mst/diff.d.ts +1 -0
  27. package/dist/mst/diff.d.ts.map +1 -0
  28. package/dist/mst/diff.js +120 -0
  29. package/dist/mst/diff.js.map +1 -0
  30. package/dist/mst/index.d.ts +1 -0
  31. package/dist/mst/index.d.ts.map +1 -0
  32. package/dist/mst/index.js +34 -0
  33. package/dist/mst/index.js.map +1 -0
  34. package/dist/mst/mst.d.ts +6 -5
  35. package/dist/mst/mst.d.ts.map +1 -0
  36. package/dist/mst/mst.js +770 -0
  37. package/dist/mst/mst.js.map +1 -0
  38. package/dist/mst/util.d.ts +1 -0
  39. package/dist/mst/util.d.ts.map +1 -0
  40. package/dist/mst/util.js +167 -0
  41. package/dist/mst/util.js.map +1 -0
  42. package/dist/mst/walker.d.ts +1 -0
  43. package/dist/mst/walker.d.ts.map +1 -0
  44. package/dist/mst/walker.js +123 -0
  45. package/dist/mst/walker.js.map +1 -0
  46. package/dist/parse.d.ts +1 -0
  47. package/dist/parse.d.ts.map +1 -0
  48. package/dist/parse.js +35 -0
  49. package/dist/parse.js.map +1 -0
  50. package/dist/readable-repo.d.ts +1 -0
  51. package/dist/readable-repo.d.ts.map +1 -0
  52. package/dist/readable-repo.js +117 -0
  53. package/dist/readable-repo.js.map +1 -0
  54. package/dist/repo.d.ts +1 -0
  55. package/dist/repo.d.ts.map +1 -0
  56. package/dist/repo.js +190 -0
  57. package/dist/repo.js.map +1 -0
  58. package/dist/storage/index.d.ts +1 -0
  59. package/dist/storage/index.d.ts.map +1 -0
  60. package/dist/storage/index.js +21 -0
  61. package/dist/storage/index.js.map +1 -0
  62. package/dist/storage/memory-blockstore.d.ts +1 -0
  63. package/dist/storage/memory-blockstore.d.ts.map +1 -0
  64. package/dist/storage/memory-blockstore.js +80 -0
  65. package/dist/storage/memory-blockstore.js.map +1 -0
  66. package/dist/storage/readable-blockstore.d.ts +1 -0
  67. package/dist/storage/readable-blockstore.d.ts.map +1 -0
  68. package/dist/storage/readable-blockstore.js +66 -0
  69. package/dist/storage/readable-blockstore.js.map +1 -0
  70. package/dist/storage/sync-storage.d.ts +1 -0
  71. package/dist/storage/sync-storage.d.ts.map +1 -0
  72. package/dist/storage/sync-storage.js +46 -0
  73. package/dist/storage/sync-storage.js.map +1 -0
  74. package/dist/storage/types.d.ts +1 -0
  75. package/dist/storage/types.d.ts.map +1 -0
  76. package/dist/storage/types.js +7 -0
  77. package/dist/storage/types.js.map +1 -0
  78. package/dist/sync/consumer.d.ts +1 -0
  79. package/dist/sync/consumer.d.ts.map +1 -0
  80. package/dist/sync/consumer.js +178 -0
  81. package/dist/sync/consumer.js.map +1 -0
  82. package/dist/sync/index.d.ts +1 -0
  83. package/dist/sync/index.d.ts.map +1 -0
  84. package/dist/sync/index.js +19 -0
  85. package/dist/sync/index.js.map +1 -0
  86. package/dist/sync/provider.d.ts +1 -0
  87. package/dist/sync/provider.d.ts.map +1 -0
  88. package/dist/sync/provider.js +67 -0
  89. package/dist/sync/provider.js.map +1 -0
  90. package/dist/types.d.ts +22 -19
  91. package/dist/types.d.ts.map +1 -0
  92. package/dist/types.js +62 -0
  93. package/dist/types.js.map +1 -0
  94. package/dist/util.d.ts +2 -1
  95. package/dist/util.d.ts.map +1 -0
  96. package/dist/util.js +219 -0
  97. package/dist/util.js.map +1 -0
  98. package/jest.config.js +3 -3
  99. package/package.json +11 -14
  100. package/src/mst/mst.ts +1 -1
  101. package/src/types.ts +4 -2
  102. package/src/util.ts +1 -1
  103. package/tests/_util.ts +4 -0
  104. package/tsconfig.build.json +6 -2
  105. package/tsconfig.json +3 -11
  106. package/tsconfig.tests.json +7 -0
  107. package/babel.config.js +0 -1
  108. package/build.js +0 -14
  109. package/jest.bench.config.js +0 -8
@@ -0,0 +1,178 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer.js","sourceRoot":"","sources":["../../src/sync/consumer.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export * from './consumer';
2
2
  export * from './provider';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,19 @@
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("./consumer"), exports);
18
+ __exportStar(require("./provider"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,6CAA0B"}
@@ -3,3 +3,4 @@ import { CID } from 'multiformats/cid';
3
3
  import { ReadableBlockstore, RepoStorage } from '../storage';
4
4
  export declare const getFullRepo: (storage: RepoStorage, commitCid: CID) => AsyncIterable<Uint8Array>;
5
5
  export declare const getRecords: (storage: ReadableBlockstore, commitCid: CID, paths: RecordPath[]) => AsyncIterable<Uint8Array>;
6
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/sync/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAGtC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAO5D,eAAO,MAAM,WAAW,YACb,WAAW,aACT,GAAG,KACb,cAAc,UAAU,CAO1B,CAAA;AAKD,eAAO,MAAM,UAAU,YACZ,kBAAkB,aAChB,GAAG,SACP,UAAU,EAAE,KAClB,cAAc,UAAU,CAqB1B,CAAA"}
@@ -0,0 +1,67 @@
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.getRecords = exports.getFullRepo = void 0;
30
+ const types_1 = require("../types");
31
+ const cid_set_1 = __importDefault(require("../cid-set"));
32
+ const error_1 = require("../error");
33
+ const util = __importStar(require("../util"));
34
+ const mst_1 = require("../mst");
35
+ // Full Repo
36
+ // -------------
37
+ const getFullRepo = (storage, commitCid) => {
38
+ return util.writeCar(commitCid, async (car) => {
39
+ const commit = await storage.readObjAndBytes(commitCid, types_1.def.commit);
40
+ await car.put({ cid: commitCid, bytes: commit.bytes });
41
+ const mst = mst_1.MST.load(storage, commit.obj.data);
42
+ await mst.writeToCarStream(car);
43
+ });
44
+ };
45
+ exports.getFullRepo = getFullRepo;
46
+ // Narrow slices
47
+ // -------------
48
+ const getRecords = (storage, commitCid, paths) => {
49
+ return util.writeCar(commitCid, async (car) => {
50
+ const commit = await storage.readObjAndBytes(commitCid, types_1.def.commit);
51
+ await car.put({ cid: commitCid, bytes: commit.bytes });
52
+ const mst = mst_1.MST.load(storage, commit.obj.data);
53
+ const cidsForPaths = await Promise.all(paths.map((p) => mst.cidsForPath(util.formatDataKey(p.collection, p.rkey))));
54
+ const allCids = cidsForPaths.reduce((acc, cur) => {
55
+ return acc.addSet(new cid_set_1.default(cur));
56
+ }, new cid_set_1.default());
57
+ const found = await storage.getBlocks(allCids.toList());
58
+ if (found.missing.length > 0) {
59
+ throw new error_1.MissingBlocksError('writeRecordsToCarStream', found.missing);
60
+ }
61
+ for (const block of found.blocks.entries()) {
62
+ await car.put(block);
63
+ }
64
+ });
65
+ };
66
+ exports.getRecords = getRecords;
67
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/sync/provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAA0C;AAG1C,yDAA+B;AAC/B,oCAA6C;AAE7C,8CAA+B;AAC/B,gCAA4B;AAE5B,YAAY;AACZ,gBAAgB;AAET,MAAM,WAAW,GAAG,CACzB,OAAoB,EACpB,SAAc,EACa,EAAE;IAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,GAAgB,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,WAAG,CAAC,MAAM,CAAC,CAAA;QACnE,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QACtD,MAAM,GAAG,GAAG,SAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC9C,MAAM,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAVY,QAAA,WAAW,eAUvB;AAED,gBAAgB;AAChB,gBAAgB;AAET,MAAM,UAAU,GAAG,CACxB,OAA2B,EAC3B,SAAc,EACd,KAAmB,EACQ,EAAE;IAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,GAAgB,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,WAAG,CAAC,MAAM,CAAC,CAAA;QACnE,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QACtD,MAAM,GAAG,GAAG,SAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC9C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACd,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAC1D,CACF,CAAA;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC/C,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,iBAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACpC,CAAC,EAAE,IAAI,iBAAM,EAAE,CAAC,CAAA;QAChB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QACvD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,0BAAkB,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QACxE,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3C,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAzBY,QAAA,UAAU,cAyBtB"}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import { z } from 'zod';
2
2
  import { CID } from 'multiformats';
3
- import * as car from '@ipld/car/api';
4
3
  import BlockMap from './block-map';
5
4
  import { RepoRecord } from '@atproto/lexicon';
6
5
  import CidSet from './cid-set';
@@ -12,8 +11,8 @@ declare const unsignedCommit: z.ZodObject<{
12
11
  prev: z.ZodNullable<z.ZodEffects<z.ZodEffects<z.ZodAny, any, any>, CID, any>>;
13
12
  }, "strip", z.ZodTypeAny, {
14
13
  did: string;
15
- data: CID;
16
14
  version: 3;
15
+ data: CID;
17
16
  rev: string;
18
17
  prev: CID | null;
19
18
  }, {
@@ -35,8 +34,8 @@ declare const commit: z.ZodObject<{
35
34
  sig: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
36
35
  }, "strip", z.ZodTypeAny, {
37
36
  did: string;
38
- data: CID;
39
37
  version: 3;
38
+ data: CID;
40
39
  rev: string;
41
40
  prev: CID | null;
42
41
  sig: Uint8Array;
@@ -58,8 +57,8 @@ declare const legacyV2Commit: z.ZodObject<{
58
57
  sig: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
59
58
  }, "strip", z.ZodTypeAny, {
60
59
  did: string;
61
- data: CID;
62
60
  version: 2;
61
+ data: CID;
63
62
  prev: CID | null;
64
63
  sig: Uint8Array;
65
64
  rev?: string | undefined;
@@ -81,8 +80,8 @@ declare const versionedCommit: z.ZodDiscriminatedUnion<"version", [z.ZodObject<{
81
80
  sig: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
82
81
  }, "strip", z.ZodTypeAny, {
83
82
  did: string;
84
- data: CID;
85
83
  version: 3;
84
+ data: CID;
86
85
  rev: string;
87
86
  prev: CID | null;
88
87
  sig: Uint8Array;
@@ -102,8 +101,8 @@ declare const versionedCommit: z.ZodDiscriminatedUnion<"version", [z.ZodObject<{
102
101
  sig: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
103
102
  }, "strip", z.ZodTypeAny, {
104
103
  did: string;
105
- data: CID;
106
104
  version: 2;
105
+ data: CID;
107
106
  prev: CID | null;
108
107
  sig: Uint8Array;
109
108
  rev?: string | undefined;
@@ -126,8 +125,8 @@ export declare const schema: {
126
125
  sig: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
127
126
  }, "strip", z.ZodTypeAny, {
128
127
  did: string;
129
- data: CID;
130
128
  version: 3;
129
+ data: CID;
131
130
  rev: string;
132
131
  prev: CID | null;
133
132
  sig: Uint8Array;
@@ -148,8 +147,8 @@ export declare const schema: {
148
147
  sig: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
149
148
  }, "strip", z.ZodTypeAny, {
150
149
  did: string;
151
- data: CID;
152
150
  version: 2;
151
+ data: CID;
153
152
  prev: CID | null;
154
153
  sig: Uint8Array;
155
154
  rev?: string | undefined;
@@ -170,8 +169,8 @@ export declare const schema: {
170
169
  sig: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
171
170
  }, "strip", z.ZodTypeAny, {
172
171
  did: string;
173
- data: CID;
174
172
  version: 3;
173
+ data: CID;
175
174
  rev: string;
176
175
  prev: CID | null;
177
176
  sig: Uint8Array;
@@ -191,8 +190,8 @@ export declare const schema: {
191
190
  sig: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
192
191
  }, "strip", z.ZodTypeAny, {
193
192
  did: string;
194
- data: CID;
195
193
  version: 2;
194
+ data: CID;
196
195
  prev: CID | null;
197
196
  sig: Uint8Array;
198
197
  rev?: string | undefined;
@@ -223,8 +222,8 @@ export declare const def: {
223
222
  sig: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
224
223
  }, "strip", z.ZodTypeAny, {
225
224
  did: string;
226
- data: CID;
227
225
  version: 3;
226
+ data: CID;
228
227
  rev: string;
229
228
  prev: CID | null;
230
229
  sig: Uint8Array;
@@ -248,8 +247,8 @@ export declare const def: {
248
247
  sig: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
249
248
  }, "strip", z.ZodTypeAny, {
250
249
  did: string;
251
- data: CID;
252
250
  version: 3;
251
+ data: CID;
253
252
  rev: string;
254
253
  prev: CID | null;
255
254
  sig: Uint8Array;
@@ -269,8 +268,8 @@ export declare const def: {
269
268
  sig: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
270
269
  }, "strip", z.ZodTypeAny, {
271
270
  did: string;
272
- data: CID;
273
271
  version: 2;
272
+ data: CID;
274
273
  prev: CID | null;
275
274
  sig: Uint8Array;
276
275
  rev?: string | undefined;
@@ -283,11 +282,11 @@ export declare const def: {
283
282
  prev?: any;
284
283
  }>]>;
285
284
  };
286
- cid: import("@atproto/common-web/src/check").Def<CID>;
287
- bytes: import("@atproto/common-web/src/check").Def<Uint8Array>;
288
- string: import("@atproto/common-web/src/check").Def<string>;
289
- map: import("@atproto/common-web/src/check").Def<Record<string, unknown>>;
290
- unknown: import("@atproto/common-web/src/check").Def<unknown>;
285
+ cid: import("@atproto/common-web/dist/check").Def<CID>;
286
+ bytes: import("@atproto/common-web/dist/check").Def<Uint8Array>;
287
+ string: import("@atproto/common-web/dist/check").Def<string>;
288
+ map: import("@atproto/common-web/dist/check").Def<Record<string, unknown>>;
289
+ unknown: import("@atproto/common-web/dist/check").Def<unknown>;
291
290
  };
292
291
  export declare enum WriteOpAction {
293
292
  Create = "create",
@@ -370,5 +369,9 @@ export type VerifiedRepo = {
370
369
  creates: RecordCreateDescript[];
371
370
  commit: CommitData;
372
371
  };
373
- export type CarBlock = car.Block;
372
+ export type CarBlock = {
373
+ cid: CID;
374
+ bytes: Uint8Array;
375
+ };
374
376
  export {};
377
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WriteOpAction = exports.def = exports.schema = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_web_1 = require("@atproto/common-web");
6
+ const common_1 = require("@atproto/common");
7
+ // Repo nodes
8
+ // ---------------
9
+ const unsignedCommit = zod_1.z.object({
10
+ did: zod_1.z.string(),
11
+ version: zod_1.z.literal(3),
12
+ data: common_1.schema.cid,
13
+ rev: zod_1.z.string(),
14
+ // `prev` added for backwards compatibility with v2, no requirement of keeping around history
15
+ prev: common_1.schema.cid.nullable(),
16
+ });
17
+ const commit = zod_1.z.object({
18
+ did: zod_1.z.string(),
19
+ version: zod_1.z.literal(3),
20
+ data: common_1.schema.cid,
21
+ rev: zod_1.z.string(),
22
+ prev: common_1.schema.cid.nullable(),
23
+ sig: common_1.schema.bytes,
24
+ });
25
+ const legacyV2Commit = zod_1.z.object({
26
+ did: zod_1.z.string(),
27
+ version: zod_1.z.literal(2),
28
+ data: common_1.schema.cid,
29
+ rev: zod_1.z.string().optional(),
30
+ prev: common_1.schema.cid.nullable(),
31
+ sig: common_1.schema.bytes,
32
+ });
33
+ const versionedCommit = zod_1.z.discriminatedUnion('version', [
34
+ commit,
35
+ legacyV2Commit,
36
+ ]);
37
+ exports.schema = {
38
+ ...common_1.schema,
39
+ commit,
40
+ legacyV2Commit,
41
+ versionedCommit,
42
+ };
43
+ exports.def = {
44
+ ...common_web_1.def,
45
+ commit: {
46
+ name: 'commit',
47
+ schema: exports.schema.commit,
48
+ },
49
+ versionedCommit: {
50
+ name: 'versioned_commit',
51
+ schema: exports.schema.versionedCommit,
52
+ },
53
+ };
54
+ // Repo Operations
55
+ // ---------------
56
+ var WriteOpAction;
57
+ (function (WriteOpAction) {
58
+ WriteOpAction["Create"] = "create";
59
+ WriteOpAction["Update"] = "update";
60
+ WriteOpAction["Delete"] = "delete";
61
+ })(WriteOpAction || (exports.WriteOpAction = WriteOpAction = {}));
62
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,oDAAsD;AACtD,4CAAkD;AAMlD,aAAa;AACb,kBAAkB;AAElB,MAAM,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9B,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;IACf,OAAO,EAAE,OAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,eAAM,CAAC,GAAG;IAChB,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;IACf,6FAA6F;IAC7F,IAAI,EAAE,eAAM,CAAC,GAAG,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAA;AAGF,MAAM,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;IACtB,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;IACf,OAAO,EAAE,OAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,eAAM,CAAC,GAAG;IAChB,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;IACf,IAAI,EAAE,eAAM,CAAC,GAAG,CAAC,QAAQ,EAAE;IAC3B,GAAG,EAAE,eAAM,CAAC,KAAK;CAClB,CAAC,CAAA;AAGF,MAAM,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9B,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;IACf,OAAO,EAAE,OAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,eAAM,CAAC,GAAG;IAChB,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,IAAI,EAAE,eAAM,CAAC,GAAG,CAAC,QAAQ,EAAE;IAC3B,GAAG,EAAE,eAAM,CAAC,KAAK;CAClB,CAAC,CAAA;AAGF,MAAM,eAAe,GAAG,OAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE;IACtD,MAAM;IACN,cAAc;CACf,CAAC,CAAA;AAGW,QAAA,MAAM,GAAG;IACpB,GAAG,eAAM;IACT,MAAM;IACN,cAAc;IACd,eAAe;CAChB,CAAA;AAEY,QAAA,GAAG,GAAG;IACjB,GAAG,gBAAS;IACZ,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,cAAM,CAAC,MAAM;KACtB;IACD,eAAe,EAAE;QACf,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,cAAM,CAAC,eAAe;KAC/B;CACF,CAAA;AAED,kBAAkB;AAClB,kBAAkB;AAElB,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;AACnB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB"}
package/dist/util.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { CID } from 'multiformats/cid';
3
- import { CarBlockIterator } from '@ipld/car';
3
+ import { CarBlockIterator } from '@ipld/car/iterator';
4
4
  import { BlockWriter } from '@ipld/car/writer';
5
5
  import { LexValue, RepoRecord } from '@atproto/lexicon';
6
6
  import DataDiff from './data-diff';
@@ -40,3 +40,4 @@ export declare const cborToLex: (val: Uint8Array) => LexValue;
40
40
  export declare const cborToLexRecord: (val: Uint8Array) => RepoRecord;
41
41
  export declare const cidForRecord: (val: LexValue) => Promise<CID>;
42
42
  export declare const ensureV3Commit: (commit: LegacyV2Commit | Commit) => Commit;
43
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAa,MAAM,kBAAkB,CAAA;AAWzD,OAAO,EAAwB,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7E,OAAO,QAAQ,MAAM,aAAa,CAAA;AAClC,OAAO,EACL,QAAQ,EACR,MAAM,EACN,cAAc,EACd,oBAAoB,EAEpB,UAAU,EAEV,mBAAmB,EACnB,cAAc,EAEf,MAAM,SAAS,CAAA;AAChB,OAAO,QAAQ,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEjC,wBAAuB,uBAAuB,CAC5C,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,GAC3B,aAAa,CAAC,QAAQ,CAAC,CAKzB;AAGD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,GAAG,GAAG,IAAI,EAChB,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GACtC,QAAQ,CAWV;AAED,wBAAuB,QAAQ,CAC7B,IAAI,EAAE,GAAG,GAAG,IAAI,EAChB,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GACtC,aAAa,CAAC,UAAU,CAAC,CAK3B;AAED,eAAO,MAAM,iBAAiB,SACtB,GAAG,GAAG,IAAI,UACR,QAAQ,KACf,cAAc,UAAU,CAM1B,CAAA;AAED,eAAO,MAAM,eAAe,SACpB,GAAG,GAAG,IAAI,UACR,QAAQ,KACf,QAAQ,UAAU,CAGpB,CAAA;AAED,eAAO,MAAM,WAAW,QACjB,gBAAgB;WACH,GAAG,EAAE;YAAU,QAAQ;EAY1C,CAAA;AAED,eAAO,MAAM,OAAO,UACX,UAAU,KAChB,QAAQ;IAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,CAG5C,CAAA;AAED,eAAO,MAAM,aAAa,WAAkB,cAAc,UAAU,CAAC;WArBjD,GAAG,EAAE;YAAU,QAAQ;EAwB1C,CAAA;AAED,eAAO,MAAM,eAAe,UACnB,UAAU;UACA,GAAG;YAAU,QAAQ;EAUvC,CAAA;AAED,eAAO,MAAM,oBAAoB,SACzB,QAAQ,KACb,QAAQ,mBAAmB,EAAE,CA+B/B,CAAA;AAED,eAAO,MAAM,aAAa,cACb,mBAAmB,EAAE,KAC/B,oBAAoB,EAUtB,CAAA;AAED,eAAO,MAAM,YAAY,QAAS,MAAM,KAAG,UAI1C,CAAA;AAED,eAAO,MAAM,aAAa,eAAgB,MAAM,QAAQ,MAAM,KAAG,MAEhE,CAAA;AAED,eAAO,MAAM,SAAS,MAAO,MAAM,KAAK,MAAM,KAAG,OAEhD,CAAA;AAED,eAAO,MAAM,UAAU,aACX,cAAc,WACf,OAAO,KACf,QAAQ,MAAM,CAOhB,CAAA;AAED,eAAO,MAAM,eAAe,WAClB,MAAM,UACN,MAAM,KACb,QAAQ,OAAO,CAIjB,CAAA;AAED,eAAO,MAAM,SAAS,QAAS,UAAU,KAAG,QAE3C,CAAA;AAED,eAAO,MAAM,eAAe,QAAS,UAAU,KAAG,UAMjD,CAAA;AAED,eAAO,MAAM,YAAY,QAAe,QAAQ,iBAE/C,CAAA;AAED,eAAO,MAAM,cAAc,WAAY,cAAc,GAAG,MAAM,KAAG,MAUhE,CAAA"}