@atcute/repo 0.1.1 → 0.1.3
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/README.md +14 -2
- package/dist/index.d.ts +5 -5
- package/dist/reader.d.ts +1 -1
- package/dist/reader.d.ts.map +1 -1
- package/dist/reader.js +2 -1
- package/dist/reader.js.map +1 -1
- package/dist/streamed-reader.d.ts +1 -1
- package/dist/streamed-reader.d.ts.map +1 -1
- package/dist/streamed-reader.js +2 -1
- package/dist/streamed-reader.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -9
- package/dist/types.js.map +1 -1
- package/dist/utils/mst.d.ts +5 -0
- package/dist/utils/mst.d.ts.map +1 -0
- package/dist/utils/mst.js +7 -0
- package/dist/utils/mst.js.map +1 -0
- package/lib/index.ts +5 -5
- package/lib/reader.ts +4 -3
- package/lib/streamed-reader.ts +5 -4
- package/lib/types.ts +17 -11
- package/lib/utils/mst.ts +8 -0
- package/lib/verify.ts +1 -1
- package/package.json +17 -17
package/README.md
CHANGED
|
@@ -7,13 +7,25 @@ npm install @atcute/repo
|
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
AT Protocol stores user data in repositories - Merkle tree structures containing records organized
|
|
10
|
-
by collection. this package reads repository CAR exports (from `com.atproto.sync.getRepo` or
|
|
11
|
-
|
|
10
|
+
by collection. this package reads repository CAR exports (from `com.atproto.sync.getRepo` or account
|
|
11
|
+
exports) and iterates over the records.
|
|
12
12
|
|
|
13
13
|
## usage
|
|
14
14
|
|
|
15
15
|
### streaming usage
|
|
16
16
|
|
|
17
|
+
> [!NOTE]
|
|
18
|
+
> PDS implementations, including the reference PDS, may not emit blocks in the efficient order
|
|
19
|
+
> specified by [Sync v1.1][sync-1.1]. the streaming reader compensates by buffering internally, so
|
|
20
|
+
> memory usage may be higher than expected.
|
|
21
|
+
>
|
|
22
|
+
> streaming may still be useful when responsiveness matters, such as web apps that want to display
|
|
23
|
+
> records as they arrive rather than waiting for the entire CAR to load.
|
|
24
|
+
>
|
|
25
|
+
> this library intends to enforce efficient block ordering once Sync v1.1 is finalized.
|
|
26
|
+
|
|
27
|
+
[sync-1.1]: https://github.com/bluesky-social/proposals/blob/main/0006-sync-iteration/README.md
|
|
28
|
+
|
|
17
29
|
```ts
|
|
18
30
|
import { fromStream } from '@atcute/repo';
|
|
19
31
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { isCommit } from './types.
|
|
2
|
-
export type { Commit, RepoEntry } from './types.
|
|
3
|
-
export * from './reader.
|
|
4
|
-
export * from './streamed-reader.
|
|
5
|
-
export * from './verify.
|
|
1
|
+
export { isCommit } from './types.ts';
|
|
2
|
+
export type { Commit, RepoEntry } from './types.ts';
|
|
3
|
+
export * from './reader.ts';
|
|
4
|
+
export * from './streamed-reader.ts';
|
|
5
|
+
export * from './verify.ts';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/reader.d.ts
CHANGED
package/dist/reader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../lib/reader.ts"],"names":[],"mappings":"AAQA,OAAO,EAAY,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../lib/reader.ts"],"names":[],"mappings":"AAQA,OAAO,EAAY,SAAS,EAAE,MAAM,YAAY,CAAC;AAajD,wBAAiB,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAwBrE"}
|
package/dist/reader.js
CHANGED
|
@@ -5,6 +5,7 @@ import { isNodeData } from '@atcute/mst';
|
|
|
5
5
|
import { decodeUtf8From } from '@atcute/uint8array';
|
|
6
6
|
import { isCommit, RepoEntry } from './types.js';
|
|
7
7
|
import { assert } from './utils.js';
|
|
8
|
+
import { parseMstKey } from './utils/mst.js';
|
|
8
9
|
export function* fromUint8Array(buf) {
|
|
9
10
|
const car = CAR.fromUint8Array(buf);
|
|
10
11
|
const roots = car.roots;
|
|
@@ -17,7 +18,7 @@ export function* fromUint8Array(buf) {
|
|
|
17
18
|
assert(map.size >= 2, `expected at least 2 blocks in the archive; got=${map.size}`);
|
|
18
19
|
const commit = readEntry(map, roots[0], isCommit);
|
|
19
20
|
for (const { key, cid } of walkMstEntries(map, commit.data)) {
|
|
20
|
-
const
|
|
21
|
+
const { collection, rkey } = parseMstKey(key);
|
|
21
22
|
const carEntry = map.get(cid.$link);
|
|
22
23
|
assert(carEntry != null, `cid not found in blockmap; cid=${cid}`);
|
|
23
24
|
yield new RepoEntry(collection, rkey, cid, carEntry);
|
package/dist/reader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../lib/reader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../lib/reader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAW7C,MAAM,SAAS,CAAC,CAAC,cAAc,CAAC,GAAe,EAAwB;IACtE,MAAM,GAAG,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IAExB,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,gDAAgD,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAE3F,MAAM,GAAG,GAAa,IAAI,GAAG,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,8BAA8B;IAC9B,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,kDAAkD,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAEpF,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAElD,KAAK,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,kCAAkC,GAAG,EAAE,CAAC,CAAC;QAElE,MAAM,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;AAAA,CACD;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,GAAa,EAAE,IAAa,EAAE,QAAwC,EAAK,EAAE,CAAC;IAC1G,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;IAEvB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,kCAAkC,GAAG,EAAE,CAAC,CAAC;IAE/D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,6BAA6B,GAAG,EAAE,CAAC,CAAC;IAE3D,OAAO,IAAI,CAAC;AAAA,CACZ,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,SAAS,CAAC,CAAC,cAAc,CAAC,GAAa,EAAE,OAAgB,EAAwB;IACtF,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IAEvB,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrB,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAEzB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QAEhD,OAAO,GAAG,GAAG,CAAC;QAEd,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QAEjC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACtB,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;IACF,CAAC;AAAA,CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamed-reader.d.ts","sourceRoot":"","sources":["../lib/streamed-reader.ts"],"names":[],"mappings":"AAOA,OAAO,EAAY,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"streamed-reader.d.ts","sourceRoot":"","sources":["../lib/streamed-reader.ts"],"names":[],"mappings":"AAOA,OAAO,EAAY,SAAS,EAAE,MAAM,YAAY,CAAC;AAajD,MAAM,MAAM,iBAAiB,GAC1B;IACA,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACX,GACD;IACA,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,CAAC;CAChB,GACD;IACA,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,QAAQ,CAAC;CACd,CAAC;AAEL,MAAM,WAAW,kBAAkB;IAClC;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAErD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;CACnD;AAED,eAAO,MAAM,kBAAkB,oEA6B9B,CAAC;AAEF,eAAO,MAAM,UAAU,6EAiItB,CAAC"}
|
package/dist/streamed-reader.js
CHANGED
|
@@ -5,6 +5,7 @@ import { isNodeData } from '@atcute/mst';
|
|
|
5
5
|
import { decodeUtf8From } from '@atcute/uint8array';
|
|
6
6
|
import { isCommit, RepoEntry } from './types.js';
|
|
7
7
|
import { assert } from './utils.js';
|
|
8
|
+
import { parseMstKey } from './utils/mst.js';
|
|
8
9
|
import Queue from './utils/queue.js';
|
|
9
10
|
export const repoEntryTransform = () => {
|
|
10
11
|
const transform = new TransformStream();
|
|
@@ -113,7 +114,7 @@ export const fromStream = (stream) => {
|
|
|
113
114
|
break;
|
|
114
115
|
}
|
|
115
116
|
case 2: {
|
|
116
|
-
const
|
|
117
|
+
const { collection, rkey } = parseMstKey(meta.k);
|
|
117
118
|
yield new RepoEntry(collection, rkey, CID.toCidLink(entry.cid), entry);
|
|
118
119
|
break;
|
|
119
120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamed-reader.js","sourceRoot":"","sources":["../lib/streamed-reader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"streamed-reader.js","sourceRoot":"","sources":["../lib/streamed-reader.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -25,8 +25,9 @@ export interface Commit {
|
|
|
25
25
|
did: string;
|
|
26
26
|
data: CidLink;
|
|
27
27
|
rev: string;
|
|
28
|
-
prev: CidLink | null;
|
|
29
28
|
sig: Bytes;
|
|
29
|
+
/** backwards compatibility with v2, history bookkeeping is not required */
|
|
30
|
+
prev: CidLink | null;
|
|
30
31
|
}
|
|
31
32
|
/**
|
|
32
33
|
* checks if value is a valid commit object
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAW,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtD,qBAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAW,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtD,qBAAa,SAAS;IACrB,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iBAAiB;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAU5B;;OAEG;IACH,IAAI,KAAK,IAAI,UAAU,CAEtB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;CACD;AAED,oBAAoB;AACpB,MAAM,WAAW,MAAM;IACtB,OAAO,EAAE,CAAC,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,KAAK,CAAC;IACX,2EAA2E;IAC3E,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CACrB;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,qCAepB,CAAC"}
|
package/dist/types.js
CHANGED
|
@@ -2,20 +2,16 @@ import * as CBOR from '@atcute/cbor';
|
|
|
2
2
|
import { isBytes } from '@atcute/cbor';
|
|
3
3
|
import { isCidLink } from '@atcute/cid';
|
|
4
4
|
export class RepoEntry {
|
|
5
|
+
/** the collection this record belongs to */
|
|
5
6
|
collection;
|
|
7
|
+
/** record key */
|
|
6
8
|
rkey;
|
|
9
|
+
/** CID of this record */
|
|
7
10
|
cid;
|
|
11
|
+
/** the associated CarEntry for this record */
|
|
8
12
|
carEntry;
|
|
9
13
|
/** @internal */
|
|
10
|
-
constructor(
|
|
11
|
-
/** the collection this record belongs to */
|
|
12
|
-
collection,
|
|
13
|
-
/** record key */
|
|
14
|
-
rkey,
|
|
15
|
-
/** CID of this record */
|
|
16
|
-
cid,
|
|
17
|
-
/** the associated CarEntry for this record */
|
|
18
|
-
carEntry) {
|
|
14
|
+
constructor(collection, rkey, cid, carEntry) {
|
|
19
15
|
this.collection = collection;
|
|
20
16
|
this.rkey = rkey;
|
|
21
17
|
this.cid = cid;
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,EAAc,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAgB,MAAM,aAAa,CAAC;AAEtD,MAAM,OAAO,SAAS;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,EAAc,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAgB,MAAM,aAAa,CAAC;AAEtD,MAAM,OAAO,SAAS;IACrB,4CAA4C;IACnC,UAAU,CAAS;IAC5B,iBAAiB;IACR,IAAI,CAAS;IACtB,yBAAyB;IAChB,GAAG,CAAU;IACtB,8CAA8C;IACrC,QAAQ,CAAW;IAE5B,gBAAgB;IAChB,YAAY,UAAkB,EAAE,IAAY,EAAE,GAAY,EAAE,QAAkB,EAAE;QAC/E,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAAA,CACzB;IAED;;OAEG;IACH,IAAI,KAAK,GAAe;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAAA,CAC3B;IAED;;OAEG;IACH,IAAI,MAAM,GAAY;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAAA,CAC/B;CACD;AAaD;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC;IAC5D,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,KAAgC,CAAC;IAE7C,OAAO,CACN,GAAG,CAAC,OAAO,KAAK,CAAC;QACjB,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ;QAC3B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QACnB,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ;QAC3B,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAChB,CAAC;AAAA,CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mst.d.ts","sourceRoot":"","sources":["../../lib/utils/mst.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;CAKvB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { assert } from '../utils.js';
|
|
2
|
+
export const parseMstKey = (key) => {
|
|
3
|
+
const slash = key.indexOf('/');
|
|
4
|
+
assert(slash !== -1, `invalid mst key; key=${key}`);
|
|
5
|
+
return { collection: key.slice(0, slash), rkey: key.slice(slash + 1) };
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=mst.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mst.js","sourceRoot":"","sources":["../../lib/utils/mst.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAwC,EAAE,CAAC;IACjF,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,wBAAwB,GAAG,EAAE,CAAC,CAAC;IAEpD,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;AAAA,CACvE,CAAC"}
|
package/lib/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { isCommit } from './types.
|
|
2
|
-
export type { Commit, RepoEntry } from './types.
|
|
1
|
+
export { isCommit } from './types.ts';
|
|
2
|
+
export type { Commit, RepoEntry } from './types.ts';
|
|
3
3
|
|
|
4
|
-
export * from './reader.
|
|
5
|
-
export * from './streamed-reader.
|
|
6
|
-
export * from './verify.
|
|
4
|
+
export * from './reader.ts';
|
|
5
|
+
export * from './streamed-reader.ts';
|
|
6
|
+
export * from './verify.ts';
|
package/lib/reader.ts
CHANGED
|
@@ -6,8 +6,9 @@ import * as CID from '@atcute/cid';
|
|
|
6
6
|
import { isNodeData } from '@atcute/mst';
|
|
7
7
|
import { decodeUtf8From } from '@atcute/uint8array';
|
|
8
8
|
|
|
9
|
-
import { isCommit, RepoEntry } from './types.
|
|
10
|
-
import { assert } from './utils.
|
|
9
|
+
import { isCommit, RepoEntry } from './types.ts';
|
|
10
|
+
import { assert } from './utils.ts';
|
|
11
|
+
import { parseMstKey } from './utils/mst.ts';
|
|
11
12
|
|
|
12
13
|
/** @internal */
|
|
13
14
|
type EntryMap = Map<string, CarEntry>;
|
|
@@ -35,7 +36,7 @@ export function* fromUint8Array(buf: Uint8Array): Generator<RepoEntry> {
|
|
|
35
36
|
const commit = readEntry(map, roots[0], isCommit);
|
|
36
37
|
|
|
37
38
|
for (const { key, cid } of walkMstEntries(map, commit.data)) {
|
|
38
|
-
const
|
|
39
|
+
const { collection, rkey } = parseMstKey(key);
|
|
39
40
|
|
|
40
41
|
const carEntry = map.get(cid.$link);
|
|
41
42
|
assert(carEntry != null, `cid not found in blockmap; cid=${cid}`);
|
package/lib/streamed-reader.ts
CHANGED
|
@@ -5,9 +5,10 @@ import * as CID from '@atcute/cid';
|
|
|
5
5
|
import { isNodeData } from '@atcute/mst';
|
|
6
6
|
import { decodeUtf8From } from '@atcute/uint8array';
|
|
7
7
|
|
|
8
|
-
import { isCommit, RepoEntry } from './types.
|
|
9
|
-
import { assert } from './utils.
|
|
10
|
-
import
|
|
8
|
+
import { isCommit, RepoEntry } from './types.ts';
|
|
9
|
+
import { assert } from './utils.ts';
|
|
10
|
+
import { parseMstKey } from './utils/mst.ts';
|
|
11
|
+
import Queue from './utils/queue.ts';
|
|
11
12
|
|
|
12
13
|
type EntryMeta = { t: 0 } | { t: 1 } | { t: 2; k: string };
|
|
13
14
|
|
|
@@ -178,7 +179,7 @@ export const fromStream = (stream: ReadableStream<Uint8Array>): StreamedRepoRead
|
|
|
178
179
|
break;
|
|
179
180
|
}
|
|
180
181
|
case 2: {
|
|
181
|
-
const
|
|
182
|
+
const { collection, rkey } = parseMstKey(meta.k);
|
|
182
183
|
|
|
183
184
|
yield new RepoEntry(collection, rkey, CID.toCidLink(entry.cid), entry);
|
|
184
185
|
break;
|
package/lib/types.ts
CHANGED
|
@@ -4,17 +4,22 @@ import { isBytes, type Bytes } from '@atcute/cbor';
|
|
|
4
4
|
import { isCidLink, type CidLink } from '@atcute/cid';
|
|
5
5
|
|
|
6
6
|
export class RepoEntry {
|
|
7
|
+
/** the collection this record belongs to */
|
|
8
|
+
readonly collection: string;
|
|
9
|
+
/** record key */
|
|
10
|
+
readonly rkey: string;
|
|
11
|
+
/** CID of this record */
|
|
12
|
+
readonly cid: CidLink;
|
|
13
|
+
/** the associated CarEntry for this record */
|
|
14
|
+
readonly carEntry: CarEntry;
|
|
15
|
+
|
|
7
16
|
/** @internal */
|
|
8
|
-
constructor(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
public readonly cid: CidLink,
|
|
15
|
-
/** the associated CarEntry for this record */
|
|
16
|
-
public readonly carEntry: CarEntry,
|
|
17
|
-
) {}
|
|
17
|
+
constructor(collection: string, rkey: string, cid: CidLink, carEntry: CarEntry) {
|
|
18
|
+
this.collection = collection;
|
|
19
|
+
this.rkey = rkey;
|
|
20
|
+
this.cid = cid;
|
|
21
|
+
this.carEntry = carEntry;
|
|
22
|
+
}
|
|
18
23
|
|
|
19
24
|
/**
|
|
20
25
|
* raw contents of this record
|
|
@@ -37,8 +42,9 @@ export interface Commit {
|
|
|
37
42
|
did: string;
|
|
38
43
|
data: CidLink;
|
|
39
44
|
rev: string;
|
|
40
|
-
prev: CidLink | null;
|
|
41
45
|
sig: Bytes;
|
|
46
|
+
/** backwards compatibility with v2, history bookkeeping is not required */
|
|
47
|
+
prev: CidLink | null;
|
|
42
48
|
}
|
|
43
49
|
|
|
44
50
|
/**
|
package/lib/utils/mst.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { assert } from '../utils.ts';
|
|
2
|
+
|
|
3
|
+
export const parseMstKey = (key: string): { collection: string; rkey: string } => {
|
|
4
|
+
const slash = key.indexOf('/');
|
|
5
|
+
assert(slash !== -1, `invalid mst key; key=${key}`);
|
|
6
|
+
|
|
7
|
+
return { collection: key.slice(0, slash), rkey: key.slice(slash + 1) };
|
|
8
|
+
};
|
package/lib/verify.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type { AtprotoDid } from '@atcute/lexicons/syntax';
|
|
|
6
6
|
import { isNodeData, type NodeData } from '@atcute/mst';
|
|
7
7
|
import { decodeUtf8From, encodeUtf8, toSha256 } from '@atcute/uint8array';
|
|
8
8
|
|
|
9
|
-
import { isCommit, type Commit } from './types.
|
|
9
|
+
import { isCommit, type Commit } from './types.ts';
|
|
10
10
|
|
|
11
11
|
type BlockMap = Map<string, Uint8Array>;
|
|
12
12
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"type": "module",
|
|
3
2
|
"name": "@atcute/repo",
|
|
4
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
5
4
|
"description": "AT Protocol repository decoder for AT Protocol.",
|
|
6
5
|
"keywords": [
|
|
7
6
|
"atproto",
|
|
@@ -12,32 +11,33 @@
|
|
|
12
11
|
"url": "https://github.com/mary-ext/atcute",
|
|
13
12
|
"directory": "packages/utilities/repo"
|
|
14
13
|
},
|
|
15
|
-
"publishConfig": {
|
|
16
|
-
"access": "public"
|
|
17
|
-
},
|
|
18
14
|
"files": [
|
|
19
15
|
"dist/",
|
|
20
16
|
"lib/",
|
|
21
17
|
"!lib/**/*.bench.ts",
|
|
22
18
|
"!lib/**/*.test.ts"
|
|
23
19
|
],
|
|
20
|
+
"type": "module",
|
|
21
|
+
"sideEffects": false,
|
|
24
22
|
"exports": {
|
|
25
23
|
".": "./dist/index.js"
|
|
26
24
|
},
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
"@vitest/coverage-v8": "^4.0.16",
|
|
30
|
-
"vitest": "^4.0.16",
|
|
31
|
-
"@atcute/multibase": "^1.1.6"
|
|
25
|
+
"publishConfig": {
|
|
26
|
+
"access": "public"
|
|
32
27
|
},
|
|
33
28
|
"dependencies": {
|
|
34
|
-
"@atcute/
|
|
35
|
-
"@atcute/
|
|
36
|
-
"@atcute/
|
|
37
|
-
"@atcute/crypto": "^2.
|
|
38
|
-
"@atcute/lexicons": "^1.2.
|
|
39
|
-
"@atcute/mst": "^
|
|
40
|
-
"@atcute/uint8array": "^1.
|
|
29
|
+
"@atcute/cid": "^2.4.1",
|
|
30
|
+
"@atcute/car": "^5.1.1",
|
|
31
|
+
"@atcute/cbor": "^2.3.2",
|
|
32
|
+
"@atcute/crypto": "^2.4.0",
|
|
33
|
+
"@atcute/lexicons": "^1.2.9",
|
|
34
|
+
"@atcute/mst": "^1.0.0",
|
|
35
|
+
"@atcute/uint8array": "^1.1.1"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
39
|
+
"vitest": "^4.0.18",
|
|
40
|
+
"@atcute/multibase": "^1.1.8"
|
|
41
41
|
},
|
|
42
42
|
"scripts": {
|
|
43
43
|
"build": "tsgo --project tsconfig.build.json",
|