hypercore 9.12.0 → 10.0.0-alpha.11
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/.github/workflows/test-node.yml +3 -4
- package/README.md +131 -404
- package/__snapshots__/test/storage.js.snapshot.cjs +15 -0
- package/examples/announce.js +19 -0
- package/examples/basic.js +10 -0
- package/examples/http.js +123 -0
- package/examples/lookup.js +20 -0
- package/index.js +365 -1600
- package/lib/bitfield.js +113 -285
- package/lib/block-encryption.js +68 -0
- package/lib/block-store.js +58 -0
- package/lib/core.js +468 -0
- package/lib/extensions.js +76 -0
- package/lib/merkle-tree.js +1110 -0
- package/lib/messages.js +571 -0
- package/lib/mutex.js +39 -0
- package/lib/oplog.js +224 -0
- package/lib/protocol.js +525 -0
- package/lib/random-iterator.js +46 -0
- package/lib/remote-bitfield.js +24 -0
- package/lib/replicator.js +857 -0
- package/lib/streams.js +39 -0
- package/package.json +44 -45
- package/test/basic.js +59 -471
- package/test/bitfield.js +48 -133
- package/test/core.js +290 -0
- package/test/encodings.js +18 -0
- package/test/encryption.js +123 -0
- package/test/extension.js +71 -0
- package/test/helpers/index.js +23 -0
- package/test/merkle-tree.js +518 -0
- package/test/mutex.js +137 -0
- package/test/oplog.js +399 -0
- package/test/preload.js +72 -0
- package/test/replicate.js +227 -824
- package/test/sessions.js +173 -0
- package/test/storage.js +31 -0
- package/test/streams.js +39 -146
- package/test/user-data.js +47 -0
- package/bench/all.sh +0 -65
- package/bench/copy-64kb-blocks.js +0 -51
- package/bench/helpers/read-throttled.js +0 -27
- package/bench/helpers/read.js +0 -47
- package/bench/helpers/write.js +0 -29
- package/bench/read-16kb-blocks-proof-throttled.js +0 -1
- package/bench/read-16kb-blocks-proof.js +0 -1
- package/bench/read-16kb-blocks-throttled.js +0 -1
- package/bench/read-16kb-blocks.js +0 -1
- package/bench/read-512b-blocks.js +0 -1
- package/bench/read-64kb-blocks-linear-batch.js +0 -18
- package/bench/read-64kb-blocks-linear.js +0 -18
- package/bench/read-64kb-blocks-proof.js +0 -1
- package/bench/read-64kb-blocks.js +0 -1
- package/bench/replicate-16kb-blocks.js +0 -19
- package/bench/replicate-64kb-blocks.js +0 -19
- package/bench/write-16kb-blocks.js +0 -1
- package/bench/write-512b-blocks.js +0 -1
- package/bench/write-64kb-blocks-static.js +0 -1
- package/bench/write-64kb-blocks.js +0 -1
- package/example.js +0 -23
- package/lib/cache.js +0 -26
- package/lib/crypto.js +0 -5
- package/lib/replicate.js +0 -829
- package/lib/safe-buffer-equals.js +0 -6
- package/lib/storage.js +0 -421
- package/lib/tree-index.js +0 -183
- package/test/ack.js +0 -306
- package/test/audit.js +0 -36
- package/test/cache.js +0 -93
- package/test/compat.js +0 -209
- package/test/copy.js +0 -377
- package/test/default-storage.js +0 -51
- package/test/extensions.js +0 -137
- package/test/get.js +0 -64
- package/test/head.js +0 -65
- package/test/helpers/create-tracking-ram.js +0 -27
- package/test/helpers/create.js +0 -6
- package/test/helpers/replicate.js +0 -4
- package/test/seek.js +0 -234
- package/test/selections.js +0 -95
- package/test/set-uploading-downloading.js +0 -91
- package/test/stats.js +0 -77
- package/test/timeouts.js +0 -22
- package/test/tree-index.js +0 -841
- package/test/update.js +0 -156
- package/test/value-encoding.js +0 -52
package/test/update.js
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
const tape = require('tape')
|
|
2
|
-
const create = require('./helpers/create')
|
|
3
|
-
const replicate = require('./helpers/replicate')
|
|
4
|
-
|
|
5
|
-
tape('update', function (t) {
|
|
6
|
-
const feed = create()
|
|
7
|
-
|
|
8
|
-
feed.ready(function () {
|
|
9
|
-
const clone = create(feed.key, { sparse: true, eagerUpdate: true })
|
|
10
|
-
|
|
11
|
-
replicate(feed, clone, { live: true })
|
|
12
|
-
|
|
13
|
-
clone.once('append', function () {
|
|
14
|
-
t.same(clone.length, 4, 'did an eager update')
|
|
15
|
-
t.end()
|
|
16
|
-
})
|
|
17
|
-
|
|
18
|
-
feed.append(['hi', 'ho', 'hi', 'ho'])
|
|
19
|
-
})
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
tape('disable eager update', function (t) {
|
|
23
|
-
const feed = create()
|
|
24
|
-
|
|
25
|
-
feed.ready(function () {
|
|
26
|
-
const clone = create(feed.key, { sparse: true, eagerUpdate: false })
|
|
27
|
-
|
|
28
|
-
replicate(feed, clone, { live: true })
|
|
29
|
-
|
|
30
|
-
clone.once('append', function () {
|
|
31
|
-
t.fail('should not update')
|
|
32
|
-
})
|
|
33
|
-
|
|
34
|
-
feed.append(['hi', 'ho', 'hi', 'ho'], function () {
|
|
35
|
-
setTimeout(() => t.end(), 50)
|
|
36
|
-
})
|
|
37
|
-
})
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
tape('update if available', function (t) {
|
|
41
|
-
const feed = create()
|
|
42
|
-
|
|
43
|
-
feed.append(['a', 'b', 'c'], function () {
|
|
44
|
-
const clone = create(feed.key, { sparse: true })
|
|
45
|
-
|
|
46
|
-
replicate(feed, clone, { live: true })
|
|
47
|
-
|
|
48
|
-
clone.update({ ifAvailable: true }, function (err) {
|
|
49
|
-
t.error(err, 'no error')
|
|
50
|
-
t.same(clone.length, feed.length, 'was updated')
|
|
51
|
-
t.end()
|
|
52
|
-
})
|
|
53
|
-
})
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
tape('update if available (no peers)', function (t) {
|
|
57
|
-
const feed = create()
|
|
58
|
-
|
|
59
|
-
feed.append(['a', 'b', 'c'], function () {
|
|
60
|
-
const clone = create(feed.key, { sparse: true })
|
|
61
|
-
|
|
62
|
-
clone.update({ ifAvailable: true }, function (err) {
|
|
63
|
-
t.ok(err)
|
|
64
|
-
t.same(clone.length, 0, 'was not updated')
|
|
65
|
-
t.end()
|
|
66
|
-
})
|
|
67
|
-
})
|
|
68
|
-
})
|
|
69
|
-
|
|
70
|
-
tape('update if available (no one has it)', function (t) {
|
|
71
|
-
const feed = create()
|
|
72
|
-
|
|
73
|
-
feed.append(['a', 'b', 'c'], function () {
|
|
74
|
-
const clone = create(feed.key, { sparse: true })
|
|
75
|
-
|
|
76
|
-
replicate(feed, clone, { live: true })
|
|
77
|
-
|
|
78
|
-
clone.update({ ifAvailable: true, minLength: 4 }, function (err) {
|
|
79
|
-
t.ok(err)
|
|
80
|
-
t.same(clone.length, 0, 'was not updated')
|
|
81
|
-
t.end()
|
|
82
|
-
})
|
|
83
|
-
})
|
|
84
|
-
})
|
|
85
|
-
|
|
86
|
-
tape('update if available through top-level option', function (t) {
|
|
87
|
-
const feed = create()
|
|
88
|
-
|
|
89
|
-
feed.append(['a', 'b', 'c'], function () {
|
|
90
|
-
const clone = create(feed.key, { sparse: true, ifAvailable: true })
|
|
91
|
-
|
|
92
|
-
replicate(feed, clone, { live: true })
|
|
93
|
-
|
|
94
|
-
clone.update({ minLength: 4 }, function (err) {
|
|
95
|
-
t.ok(err)
|
|
96
|
-
t.same(clone.length, 0, 'was not updated')
|
|
97
|
-
t.end()
|
|
98
|
-
})
|
|
99
|
-
})
|
|
100
|
-
})
|
|
101
|
-
|
|
102
|
-
tape('update with block data', function (t) {
|
|
103
|
-
const feed = create()
|
|
104
|
-
|
|
105
|
-
feed.append(['a', 'b', 'c', 'd'], function () {
|
|
106
|
-
const clone = create(feed.key, { sparse: true })
|
|
107
|
-
|
|
108
|
-
replicate(feed, clone, { live: true })
|
|
109
|
-
|
|
110
|
-
clone.update({ hash: false }, function () {
|
|
111
|
-
t.ok(clone.has(3))
|
|
112
|
-
t.end()
|
|
113
|
-
})
|
|
114
|
-
})
|
|
115
|
-
})
|
|
116
|
-
|
|
117
|
-
tape('update without hash option should not download block', function (t) {
|
|
118
|
-
const feed = create()
|
|
119
|
-
|
|
120
|
-
feed.append(['a', 'b', 'c'], function () {
|
|
121
|
-
const clone = create(feed.key, { sparse: true })
|
|
122
|
-
|
|
123
|
-
replicate(feed, clone, { live: true })
|
|
124
|
-
|
|
125
|
-
clone.on('download', function (index, data) {
|
|
126
|
-
t.fail('should not trigger a download event')
|
|
127
|
-
})
|
|
128
|
-
|
|
129
|
-
clone.update({ ifAvailable: true }, function (err) {
|
|
130
|
-
t.error(err, 'no error')
|
|
131
|
-
t.same(clone.length, 3, 'was updated')
|
|
132
|
-
t.same(clone.downloaded(), 0, 'block was not downloaded')
|
|
133
|
-
t.end()
|
|
134
|
-
})
|
|
135
|
-
})
|
|
136
|
-
})
|
|
137
|
-
|
|
138
|
-
tape('update with block data', function (t) {
|
|
139
|
-
const feed = create()
|
|
140
|
-
|
|
141
|
-
feed.append(['a', 'b', 'c', 'd'], function () {
|
|
142
|
-
const clone1 = create(feed.key, { sparse: true })
|
|
143
|
-
const clone2 = create(feed.key, { sparse: true })
|
|
144
|
-
|
|
145
|
-
replicate(feed, clone1, { live: true })
|
|
146
|
-
replicate(clone1, clone2, { live: true })
|
|
147
|
-
|
|
148
|
-
clone1.get(3, () => {
|
|
149
|
-
clone2.update(function () {
|
|
150
|
-
t.same(clone1.length, clone2.length)
|
|
151
|
-
t.same(clone1.length, feed.length)
|
|
152
|
-
t.end()
|
|
153
|
-
})
|
|
154
|
-
})
|
|
155
|
-
})
|
|
156
|
-
})
|
package/test/value-encoding.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
var tape = require('tape')
|
|
2
|
-
var create = require('./helpers/create')
|
|
3
|
-
|
|
4
|
-
tape('basic value encoding', function (t) {
|
|
5
|
-
var feed = create({
|
|
6
|
-
valueEncoding: 'json'
|
|
7
|
-
})
|
|
8
|
-
|
|
9
|
-
feed.append({ hello: 'world' }, function () {
|
|
10
|
-
feed.get(0, function (err, val) {
|
|
11
|
-
t.error(err, 'no error')
|
|
12
|
-
t.same(val, { hello: 'world' })
|
|
13
|
-
t.end()
|
|
14
|
-
})
|
|
15
|
-
})
|
|
16
|
-
})
|
|
17
|
-
|
|
18
|
-
tape('value encoding read-stream', function (t) {
|
|
19
|
-
var feed = create({
|
|
20
|
-
valueEncoding: 'json'
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
feed.append({ hello: 'world' }, function () {
|
|
24
|
-
feed.createReadStream()
|
|
25
|
-
.on('data', function (data) {
|
|
26
|
-
t.same(data, { hello: 'world' })
|
|
27
|
-
})
|
|
28
|
-
.on('end', function () {
|
|
29
|
-
feed.createReadStream({ valueEncoding: 'utf-8' })
|
|
30
|
-
.on('data', function (data) {
|
|
31
|
-
t.same(data, '{"hello":"world"}\n')
|
|
32
|
-
t.end()
|
|
33
|
-
})
|
|
34
|
-
})
|
|
35
|
-
})
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
tape('value encoding write-stream', function (t) {
|
|
39
|
-
var feed = create({
|
|
40
|
-
valueEncoding: 'json'
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
var ws = feed.createWriteStream()
|
|
44
|
-
ws.write([1, 2, 3])
|
|
45
|
-
ws.end(function () {
|
|
46
|
-
feed.get(0, function (err, val) {
|
|
47
|
-
t.error(err, 'no error')
|
|
48
|
-
t.same(val, [1, 2, 3])
|
|
49
|
-
t.end()
|
|
50
|
-
})
|
|
51
|
-
})
|
|
52
|
-
})
|