@atproto/repo 0.6.3 → 0.6.4
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 +14 -0
- package/bench/mst.bench.ts +2 -2
- package/dist/block-map.d.ts +1 -1
- package/dist/block-map.d.ts.map +1 -1
- package/dist/block-map.js +2 -2
- package/dist/block-map.js.map +1 -1
- package/dist/data-diff.d.ts +2 -3
- package/dist/data-diff.d.ts.map +1 -1
- package/dist/data-diff.js +5 -9
- package/dist/data-diff.js.map +1 -1
- package/dist/mst/diff.d.ts +1 -1
- package/dist/mst/diff.d.ts.map +1 -1
- package/dist/mst/diff.js +3 -6
- package/dist/mst/diff.js.map +1 -1
- package/dist/mst/mst.d.ts +5 -5
- package/dist/mst/mst.d.ts.map +1 -1
- package/dist/mst/mst.js +14 -18
- package/dist/mst/mst.js.map +1 -1
- package/dist/mst/util.d.ts +1 -1
- package/dist/mst/util.d.ts.map +1 -1
- package/dist/mst/util.js +1 -1
- package/dist/mst/util.js.map +1 -1
- package/dist/mst/walker.d.ts +1 -1
- package/dist/mst/walker.d.ts.map +1 -1
- package/dist/mst/walker.js +0 -1
- package/dist/mst/walker.js.map +1 -1
- package/dist/parse.d.ts +2 -2
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js.map +1 -1
- package/dist/readable-repo.d.ts +4 -4
- package/dist/readable-repo.d.ts.map +1 -1
- package/dist/readable-repo.js +4 -5
- package/dist/readable-repo.js.map +1 -1
- package/dist/repo.d.ts +4 -4
- package/dist/repo.d.ts.map +1 -1
- package/dist/repo.js +12 -12
- package/dist/repo.js.map +1 -1
- package/dist/storage/memory-blockstore.d.ts +2 -2
- package/dist/storage/memory-blockstore.d.ts.map +1 -1
- package/dist/storage/memory-blockstore.js +4 -7
- package/dist/storage/memory-blockstore.js.map +1 -1
- package/dist/storage/readable-blockstore.d.ts +2 -2
- package/dist/storage/readable-blockstore.d.ts.map +1 -1
- package/dist/storage/sync-storage.d.ts +2 -2
- package/dist/storage/sync-storage.d.ts.map +1 -1
- package/dist/storage/sync-storage.js +2 -5
- package/dist/storage/sync-storage.js.map +1 -1
- package/dist/storage/types.d.ts +3 -3
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/sync/consumer.d.ts +3 -3
- package/dist/sync/consumer.d.ts.map +1 -1
- package/dist/sync/consumer.js +6 -9
- package/dist/sync/consumer.js.map +1 -1
- package/dist/sync/provider.d.ts +1 -1
- package/dist/sync/provider.d.ts.map +1 -1
- package/dist/sync/provider.js +5 -8
- package/dist/sync/provider.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/util.d.ts +5 -5
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +4 -7
- package/dist/util.js.map +1 -1
- package/package.json +8 -5
- package/src/block-map.ts +2 -2
- package/src/data-diff.ts +2 -4
- package/src/mst/diff.ts +2 -2
- package/src/mst/mst.ts +7 -10
- package/src/mst/util.ts +3 -3
- package/src/mst/walker.ts +0 -2
- package/src/parse.ts +3 -3
- package/src/readable-repo.ts +6 -8
- package/src/repo.ts +9 -9
- package/src/storage/memory-blockstore.ts +2 -2
- package/src/storage/readable-blockstore.ts +2 -2
- package/src/storage/sync-storage.ts +2 -2
- package/src/storage/types.ts +3 -3
- package/src/sync/consumer.ts +7 -7
- package/src/sync/provider.ts +3 -3
- package/src/types.ts +4 -4
- package/src/util.ts +12 -13
- package/tests/_util.ts +9 -9
- package/tests/commit-data.test.ts +1 -1
- package/tests/mst.test.ts +3 -5
- package/tests/proofs.test.ts +0 -1
- package/tests/repo.test.ts +3 -3
- package/tests/sync.test.ts +2 -3
package/dist/util.js
CHANGED
|
@@ -22,23 +22,20 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
26
|
exports.ensureV3Commit = exports.cidForRecord = exports.cborToLexRecord = exports.cborToLex = exports.verifyCommitSig = exports.signCommit = exports.metaEqual = exports.formatDataKey = exports.parseDataKey = exports.ensureCreates = exports.diffToWriteDescripts = exports.readCarWithRoot = exports.readCarStream = exports.readCar = exports.carToBlocks = exports.blocksToCarFile = exports.blocksToCarStream = void 0;
|
|
30
27
|
exports.verifyIncomingCarBlocks = verifyIncomingCarBlocks;
|
|
31
28
|
exports.writeCarStream = writeCarStream;
|
|
32
29
|
exports.writeCar = writeCar;
|
|
33
30
|
const promises_1 = require("node:timers/promises");
|
|
34
|
-
const cbor = __importStar(require("@ipld/dag-cbor"));
|
|
35
31
|
const iterator_1 = require("@ipld/car/iterator");
|
|
36
32
|
const writer_1 = require("@ipld/car/writer");
|
|
33
|
+
const cbor = __importStar(require("@ipld/dag-cbor"));
|
|
37
34
|
const common_1 = require("@atproto/common");
|
|
38
|
-
const lexicon_1 = require("@atproto/lexicon");
|
|
39
35
|
const crypto = __importStar(require("@atproto/crypto"));
|
|
36
|
+
const lexicon_1 = require("@atproto/lexicon");
|
|
37
|
+
const block_map_1 = require("./block-map");
|
|
40
38
|
const types_1 = require("./types");
|
|
41
|
-
const block_map_1 = __importDefault(require("./block-map"));
|
|
42
39
|
async function* verifyIncomingCarBlocks(car) {
|
|
43
40
|
for await (const block of car) {
|
|
44
41
|
await (0, common_1.verifyCidForBytes)(block.cid, block.bytes);
|
|
@@ -77,7 +74,7 @@ const blocksToCarFile = (root, blocks) => {
|
|
|
77
74
|
exports.blocksToCarFile = blocksToCarFile;
|
|
78
75
|
const carToBlocks = async (car) => {
|
|
79
76
|
const roots = await car.getRoots();
|
|
80
|
-
const blocks = new block_map_1.
|
|
77
|
+
const blocks = new block_map_1.BlockMap();
|
|
81
78
|
for await (const block of verifyIncomingCarBlocks(car)) {
|
|
82
79
|
blocks.set(block.cid, block.bytes);
|
|
83
80
|
// break up otherwise "synchronous" work in car parsing
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/repo",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "atproto repo and MST implementation",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"atproto",
|
|
8
8
|
"mst"
|
|
9
9
|
],
|
|
10
|
+
"engines": {
|
|
11
|
+
"node": ">=18.7.0"
|
|
12
|
+
},
|
|
10
13
|
"homepage": "https://atproto.com",
|
|
11
14
|
"repository": {
|
|
12
15
|
"type": "git",
|
|
@@ -21,10 +24,10 @@
|
|
|
21
24
|
"multiformats": "^9.9.0",
|
|
22
25
|
"uint8arrays": "3.0.0",
|
|
23
26
|
"zod": "^3.23.8",
|
|
24
|
-
"@atproto/common": "^0.4.
|
|
25
|
-
"@atproto/common-web": "^0.
|
|
26
|
-
"@atproto/crypto": "^0.4.
|
|
27
|
-
"@atproto/lexicon": "^0.4.
|
|
27
|
+
"@atproto/common": "^0.4.8",
|
|
28
|
+
"@atproto/common-web": "^0.4.0",
|
|
29
|
+
"@atproto/crypto": "^0.4.4",
|
|
30
|
+
"@atproto/lexicon": "^0.4.6"
|
|
28
31
|
},
|
|
29
32
|
"devDependencies": {
|
|
30
33
|
"jest": "^28.1.2",
|
package/src/block-map.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { lexToIpld, LexValue } from '@atproto/lexicon'
|
|
2
|
-
import { dataToCborBlock } from '@atproto/common'
|
|
3
1
|
import { CID } from 'multiformats/cid'
|
|
4
2
|
import * as uint8arrays from 'uint8arrays'
|
|
3
|
+
import { dataToCborBlock } from '@atproto/common'
|
|
4
|
+
import { LexValue, lexToIpld } from '@atproto/lexicon'
|
|
5
5
|
|
|
6
6
|
export class BlockMap {
|
|
7
7
|
private map: Map<string, Uint8Array> = new Map()
|
package/src/data-diff.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CID } from 'multiformats'
|
|
2
|
-
import
|
|
2
|
+
import { BlockMap } from './block-map'
|
|
3
|
+
import { CidSet } from './cid-set'
|
|
3
4
|
import { MST, NodeEntry, mstDiff } from './mst'
|
|
4
|
-
import BlockMap from './block-map'
|
|
5
5
|
|
|
6
6
|
export class DataDiff {
|
|
7
7
|
adds: Record<string, DataAdd> = {}
|
|
@@ -115,5 +115,3 @@ export type DataDelete = {
|
|
|
115
115
|
key: string
|
|
116
116
|
cid: CID
|
|
117
117
|
}
|
|
118
|
-
|
|
119
|
-
export default DataDiff
|
package/src/mst/diff.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DataDiff } from '../data-diff'
|
|
2
|
-
import MST from './mst'
|
|
3
|
-
import MstWalker from './walker'
|
|
2
|
+
import { MST } from './mst'
|
|
3
|
+
import { MstWalker } from './walker'
|
|
4
4
|
|
|
5
5
|
export const nullDiff = async (tree: MST): Promise<DataDiff> => {
|
|
6
6
|
const diff = new DataDiff()
|
package/src/mst/mst.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import z from 'zod'
|
|
2
|
-
import { CID } from 'multiformats'
|
|
3
|
-
|
|
4
|
-
import { ReadableBlockstore } from '../storage'
|
|
5
|
-
import { schema as common, cidForCbor, dataToCborBlock } from '@atproto/common'
|
|
6
1
|
import { BlockWriter } from '@ipld/car/writer'
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
2
|
+
import { CID } from 'multiformats'
|
|
3
|
+
import { z } from 'zod'
|
|
4
|
+
import { cidForCbor, dataToCborBlock, schema as common } from '@atproto/common'
|
|
5
|
+
import { BlockMap } from '../block-map'
|
|
6
|
+
import { CidSet } from '../cid-set'
|
|
10
7
|
import { MissingBlockError, MissingBlocksError } from '../error'
|
|
11
8
|
import * as parse from '../parse'
|
|
9
|
+
import { ReadableBlockstore } from '../storage'
|
|
10
|
+
import * as util from './util'
|
|
12
11
|
|
|
13
12
|
/**
|
|
14
13
|
* This is an implementation of a Merkle Search Tree (MST)
|
|
@@ -811,5 +810,3 @@ export class Leaf {
|
|
|
811
810
|
}
|
|
812
811
|
}
|
|
813
812
|
}
|
|
814
|
-
|
|
815
|
-
export default MST
|
package/src/mst/util.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { CID } from 'multiformats'
|
|
2
2
|
import * as uint8arrays from 'uint8arrays'
|
|
3
|
-
import { ReadableBlockstore } from '../storage'
|
|
4
|
-
import { sha256 } from '@atproto/crypto'
|
|
5
|
-
import { MST, Leaf, NodeEntry, NodeData, MstOpts } from './mst'
|
|
6
3
|
import { cidForCbor } from '@atproto/common'
|
|
4
|
+
import { sha256 } from '@atproto/crypto'
|
|
5
|
+
import { ReadableBlockstore } from '../storage'
|
|
6
|
+
import { Leaf, MST, MstOpts, NodeData, NodeEntry } from './mst'
|
|
7
7
|
|
|
8
8
|
export const leadingZerosOnHash = async (key: string | Uint8Array) => {
|
|
9
9
|
const hash = await sha256(key)
|
package/src/mst/walker.ts
CHANGED
package/src/parse.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { check, cborDecode } from '@atproto/common'
|
|
2
|
-
import { RepoRecord } from '@atproto/lexicon'
|
|
3
1
|
import { CID } from 'multiformats/cid'
|
|
4
|
-
import
|
|
2
|
+
import { cborDecode, check } from '@atproto/common'
|
|
3
|
+
import { RepoRecord } from '@atproto/lexicon'
|
|
4
|
+
import { BlockMap } from './block-map'
|
|
5
5
|
import { MissingBlockError, UnexpectedObjectError } from './error'
|
|
6
6
|
import { cborToLexRecord } from './util'
|
|
7
7
|
|
package/src/readable-repo.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { CID } from 'multiformats/cid'
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { MST } from './mst'
|
|
2
|
+
import { RepoRecord } from '@atproto/lexicon'
|
|
3
|
+
import { MissingBlocksError } from './error'
|
|
5
4
|
import log from './logger'
|
|
6
|
-
import
|
|
5
|
+
import { MST } from './mst'
|
|
7
6
|
import * as parse from './parse'
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
7
|
+
import { ReadableBlockstore } from './storage'
|
|
8
|
+
import { Commit, RepoContents, def } from './types'
|
|
9
|
+
import * as util from './util'
|
|
10
10
|
|
|
11
11
|
type Params = {
|
|
12
12
|
storage: ReadableBlockstore
|
|
@@ -85,5 +85,3 @@ export class ReadableRepo {
|
|
|
85
85
|
return contents
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
|
|
89
|
-
export default ReadableRepo
|
package/src/repo.ts
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { CID } from 'multiformats/cid'
|
|
2
|
-
import {
|
|
2
|
+
import { TID, dataToCborBlock } from '@atproto/common'
|
|
3
3
|
import * as crypto from '@atproto/crypto'
|
|
4
4
|
import { lexToIpld } from '@atproto/lexicon'
|
|
5
|
+
import { BlockMap } from './block-map'
|
|
6
|
+
import { CidSet } from './cid-set'
|
|
7
|
+
import { DataDiff } from './data-diff'
|
|
8
|
+
import log from './logger'
|
|
9
|
+
import { MST } from './mst'
|
|
10
|
+
import { ReadableRepo } from './readable-repo'
|
|
11
|
+
import { RepoStorage } from './storage'
|
|
5
12
|
import {
|
|
6
13
|
Commit,
|
|
7
14
|
CommitData,
|
|
8
|
-
def,
|
|
9
15
|
RecordCreateOp,
|
|
10
16
|
RecordWriteOp,
|
|
11
17
|
WriteOpAction,
|
|
18
|
+
def,
|
|
12
19
|
} from './types'
|
|
13
|
-
import { RepoStorage } from './storage'
|
|
14
|
-
import { MST } from './mst'
|
|
15
|
-
import DataDiff from './data-diff'
|
|
16
|
-
import log from './logger'
|
|
17
|
-
import BlockMap from './block-map'
|
|
18
|
-
import { ReadableRepo } from './readable-repo'
|
|
19
20
|
import * as util from './util'
|
|
20
|
-
import CidSet from './cid-set'
|
|
21
21
|
|
|
22
22
|
type Params = {
|
|
23
23
|
storage: RepoStorage
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CID } from 'multiformats/cid'
|
|
2
|
+
import { BlockMap } from '../block-map'
|
|
2
3
|
import { CommitData } from '../types'
|
|
3
|
-
import
|
|
4
|
-
import ReadableBlockstore from './readable-blockstore'
|
|
4
|
+
import { ReadableBlockstore } from './readable-blockstore'
|
|
5
5
|
import { RepoStorage } from './types'
|
|
6
6
|
|
|
7
7
|
export class MemoryBlockstore
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { CID } from 'multiformats/cid'
|
|
1
2
|
import { check } from '@atproto/common'
|
|
2
3
|
import { RepoRecord } from '@atproto/lexicon'
|
|
3
|
-
import {
|
|
4
|
-
import BlockMap from '../block-map'
|
|
4
|
+
import { BlockMap } from '../block-map'
|
|
5
5
|
import { MissingBlockError } from '../error'
|
|
6
6
|
import * as parse from '../parse'
|
|
7
7
|
import { cborToLexRecord } from '../util'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CID } from 'multiformats/cid'
|
|
2
|
-
import BlockMap from '../block-map'
|
|
3
|
-
import ReadableBlockstore from './readable-blockstore'
|
|
2
|
+
import { BlockMap } from '../block-map'
|
|
3
|
+
import { ReadableBlockstore } from './readable-blockstore'
|
|
4
4
|
|
|
5
5
|
export class SyncStorage extends ReadableBlockstore {
|
|
6
6
|
constructor(
|
package/src/storage/types.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import stream from 'stream'
|
|
1
|
+
import stream from 'node:stream'
|
|
2
2
|
import { CID } from 'multiformats/cid'
|
|
3
|
-
import { RepoRecord } from '@atproto/lexicon'
|
|
4
3
|
import { check } from '@atproto/common'
|
|
5
|
-
import
|
|
4
|
+
import { RepoRecord } from '@atproto/lexicon'
|
|
5
|
+
import { BlockMap } from '../block-map'
|
|
6
6
|
import { CommitData } from '../types'
|
|
7
7
|
|
|
8
8
|
export interface RepoStorage {
|
package/src/sync/consumer.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { CID } from 'multiformats/cid'
|
|
2
|
+
import { BlockMap } from '../block-map'
|
|
3
|
+
import { DataDiff } from '../data-diff'
|
|
4
|
+
import { MST } from '../mst'
|
|
5
|
+
import { ReadableRepo } from '../readable-repo'
|
|
2
6
|
import { MemoryBlockstore, ReadableBlockstore, SyncStorage } from '../storage'
|
|
3
|
-
import DataDiff from '../data-diff'
|
|
4
|
-
import ReadableRepo from '../readable-repo'
|
|
5
|
-
import * as util from '../util'
|
|
6
7
|
import {
|
|
7
|
-
RecordClaim,
|
|
8
8
|
RecordCidClaim,
|
|
9
|
+
RecordClaim,
|
|
9
10
|
VerifiedDiff,
|
|
10
11
|
VerifiedRepo,
|
|
12
|
+
def,
|
|
11
13
|
} from '../types'
|
|
12
|
-
import
|
|
13
|
-
import { MST } from '../mst'
|
|
14
|
-
import BlockMap from '../block-map'
|
|
14
|
+
import * as util from '../util'
|
|
15
15
|
|
|
16
16
|
export const verifyRepoCar = async (
|
|
17
17
|
carBytes: Uint8Array,
|
package/src/sync/provider.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { def, RecordPath } from '../types'
|
|
2
1
|
import { BlockWriter } from '@ipld/car/writer'
|
|
3
2
|
import { CID } from 'multiformats/cid'
|
|
4
|
-
import CidSet from '../cid-set'
|
|
3
|
+
import { CidSet } from '../cid-set'
|
|
5
4
|
import { MissingBlocksError } from '../error'
|
|
5
|
+
import { MST } from '../mst'
|
|
6
6
|
import { ReadableBlockstore, RepoStorage } from '../storage'
|
|
7
|
+
import { RecordPath, def } from '../types'
|
|
7
8
|
import * as util from '../util'
|
|
8
|
-
import { MST } from '../mst'
|
|
9
9
|
|
|
10
10
|
// Full Repo
|
|
11
11
|
// -------------
|
package/src/types.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { CID } from 'multiformats'
|
|
1
2
|
import { z } from 'zod'
|
|
2
|
-
import { def as commonDef } from '@atproto/common-web'
|
|
3
3
|
import { schema as common } from '@atproto/common'
|
|
4
|
-
import {
|
|
5
|
-
import BlockMap from './block-map'
|
|
4
|
+
import { def as commonDef } from '@atproto/common-web'
|
|
6
5
|
import { RepoRecord } from '@atproto/lexicon'
|
|
7
|
-
import
|
|
6
|
+
import { BlockMap } from './block-map'
|
|
7
|
+
import { CidSet } from './cid-set'
|
|
8
8
|
|
|
9
9
|
// Repo nodes
|
|
10
10
|
// ---------------
|
package/src/util.ts
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
|
+
import { Readable } from 'node:stream'
|
|
1
2
|
import { setImmediate } from 'node:timers/promises'
|
|
2
|
-
import { CID } from 'multiformats/cid'
|
|
3
|
-
import * as cbor from '@ipld/dag-cbor'
|
|
4
3
|
import { CarBlockIterator } from '@ipld/car/iterator'
|
|
5
4
|
import { BlockWriter, CarWriter } from '@ipld/car/writer'
|
|
5
|
+
import * as cbor from '@ipld/dag-cbor'
|
|
6
|
+
import { CID } from 'multiformats/cid'
|
|
6
7
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
TID,
|
|
9
|
+
byteIterableToStream,
|
|
9
10
|
cborDecode,
|
|
10
11
|
check,
|
|
11
|
-
schema,
|
|
12
12
|
cidForCbor,
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
schema,
|
|
14
|
+
streamToBuffer,
|
|
15
|
+
verifyCidForBytes,
|
|
15
16
|
} from '@atproto/common'
|
|
16
|
-
import { ipldToLex, lexToIpld, LexValue, RepoRecord } from '@atproto/lexicon'
|
|
17
|
-
|
|
18
17
|
import * as crypto from '@atproto/crypto'
|
|
19
|
-
import
|
|
18
|
+
import { Keypair } from '@atproto/crypto'
|
|
19
|
+
import { LexValue, RepoRecord, ipldToLex, lexToIpld } from '@atproto/lexicon'
|
|
20
|
+
import { BlockMap } from './block-map'
|
|
21
|
+
import { DataDiff } from './data-diff'
|
|
20
22
|
import {
|
|
21
23
|
CarBlock,
|
|
22
24
|
Commit,
|
|
@@ -29,9 +31,6 @@ import {
|
|
|
29
31
|
UnsignedCommit,
|
|
30
32
|
WriteOpAction,
|
|
31
33
|
} from './types'
|
|
32
|
-
import BlockMap from './block-map'
|
|
33
|
-
import { Keypair } from '@atproto/crypto'
|
|
34
|
-
import { Readable } from 'stream'
|
|
35
34
|
|
|
36
35
|
export async function* verifyIncomingCarBlocks(
|
|
37
36
|
car: AsyncIterable<CarBlock>,
|
package/tests/_util.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import fs from 'fs'
|
|
1
|
+
import fs from 'node:fs'
|
|
2
2
|
import { CID } from 'multiformats'
|
|
3
3
|
import { TID, dataToCborBlock } from '@atproto/common'
|
|
4
4
|
import * as crypto from '@atproto/crypto'
|
|
5
|
-
import {
|
|
6
|
-
import { RepoStorage } from '../src/storage'
|
|
7
|
-
import { MST } from '../src/mst'
|
|
5
|
+
import { Keypair, randomBytes } from '@atproto/crypto'
|
|
8
6
|
import {
|
|
9
7
|
BlockMap,
|
|
10
8
|
CollectionContents,
|
|
9
|
+
Commit,
|
|
10
|
+
CommitData,
|
|
11
|
+
DataDiff,
|
|
12
|
+
RecordPath,
|
|
11
13
|
RecordWriteOp,
|
|
12
14
|
RepoContents,
|
|
13
|
-
RecordPath,
|
|
14
15
|
WriteOpAction,
|
|
15
|
-
Commit,
|
|
16
|
-
DataDiff,
|
|
17
|
-
CommitData,
|
|
18
16
|
} from '../src'
|
|
19
|
-
import {
|
|
17
|
+
import { MST } from '../src/mst'
|
|
18
|
+
import { Repo } from '../src/repo'
|
|
19
|
+
import { RepoStorage } from '../src/storage'
|
|
20
20
|
|
|
21
21
|
type IdMapping = Record<string, CID>
|
|
22
22
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Secp256k1Keypair } from '@atproto/crypto'
|
|
2
|
+
import { Repo, WriteOpAction, blocksToCarFile, verifyProofs } from '../src'
|
|
2
3
|
import { MemoryBlockstore } from '../src/storage'
|
|
3
|
-
import { blocksToCarFile, Repo, verifyProofs, WriteOpAction } from '../src'
|
|
4
4
|
|
|
5
5
|
describe('Commit data', () => {
|
|
6
6
|
// @NOTE this test uses a fully deterministic tree structure
|
package/tests/mst.test.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
+
import { CID } from 'multiformats'
|
|
2
|
+
import { DataAdd, DataDelete, DataDiff, DataUpdate } from '../src/data-diff'
|
|
1
3
|
import { MST } from '../src/mst'
|
|
2
|
-
import
|
|
3
|
-
import { countPrefixLen, InvalidMstKeyError } from '../src/mst/util'
|
|
4
|
-
|
|
4
|
+
import { InvalidMstKeyError, countPrefixLen } from '../src/mst/util'
|
|
5
5
|
import { MemoryBlockstore } from '../src/storage'
|
|
6
6
|
import * as util from './_util'
|
|
7
7
|
|
|
8
|
-
import { CID } from 'multiformats'
|
|
9
|
-
|
|
10
8
|
describe('Merkle Search Tree', () => {
|
|
11
9
|
let blockstore: MemoryBlockstore
|
|
12
10
|
let mst: MST
|
package/tests/proofs.test.ts
CHANGED
|
@@ -3,7 +3,6 @@ import * as crypto from '@atproto/crypto'
|
|
|
3
3
|
import { RecordCidClaim, RecordPath, Repo, RepoContents } from '../src'
|
|
4
4
|
import { MemoryBlockstore } from '../src/storage'
|
|
5
5
|
import * as sync from '../src/sync'
|
|
6
|
-
|
|
7
6
|
import * as util from './_util'
|
|
8
7
|
|
|
9
8
|
describe('Repo Proofs', () => {
|
package/tests/repo.test.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { TID } from '@atproto/common'
|
|
1
2
|
import * as crypto from '@atproto/crypto'
|
|
3
|
+
import { Secp256k1Keypair } from '@atproto/crypto'
|
|
4
|
+
import { RepoContents, WriteOpAction, verifyCommitSig } from '../src'
|
|
2
5
|
import { Repo } from '../src/repo'
|
|
3
6
|
import { MemoryBlockstore } from '../src/storage'
|
|
4
7
|
import * as util from './_util'
|
|
5
|
-
import { TID } from '@atproto/common'
|
|
6
|
-
import { RepoContents, verifyCommitSig, WriteOpAction } from '../src'
|
|
7
|
-
import { Secp256k1Keypair } from '@atproto/crypto'
|
|
8
8
|
|
|
9
9
|
describe('Repo', () => {
|
|
10
10
|
const collName = 'com.example.posts'
|
package/tests/sync.test.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { CarReader } from '@ipld/car/reader'
|
|
2
|
+
import { streamToBuffer } from '@atproto/common'
|
|
1
3
|
import * as crypto from '@atproto/crypto'
|
|
2
4
|
import {
|
|
3
5
|
CidSet,
|
|
@@ -9,10 +11,7 @@ import {
|
|
|
9
11
|
} from '../src'
|
|
10
12
|
import { MemoryBlockstore } from '../src/storage'
|
|
11
13
|
import * as sync from '../src/sync'
|
|
12
|
-
|
|
13
14
|
import * as util from './_util'
|
|
14
|
-
import { streamToBuffer } from '@atproto/common'
|
|
15
|
-
import { CarReader } from '@ipld/car/reader'
|
|
16
15
|
|
|
17
16
|
describe('Repo Sync', () => {
|
|
18
17
|
let storage: MemoryBlockstore
|