@ipld/car 4.1.6 → 5.0.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.
- package/LICENSE +4 -0
- package/README.md +12 -4
- package/dist/index.min.js +5 -0
- package/{types → dist/src}/api.d.ts +19 -19
- package/dist/src/api.d.ts.map +1 -0
- package/{types/lib → dist/src}/buffer-writer.d.ts +10 -10
- package/{types/lib → dist/src}/buffer-writer.d.ts.map +1 -1
- package/dist/src/coding.d.ts +41 -0
- package/dist/src/coding.d.ts.map +1 -0
- package/{types/lib → dist/src}/decoder.d.ts +3 -3
- package/{types/lib → dist/src}/decoder.d.ts.map +1 -1
- package/{types/lib → dist/src}/encoder.d.ts +2 -2
- package/{types/lib → dist/src}/encoder.d.ts.map +1 -1
- package/{types/lib → dist/src}/header-validator.d.ts +0 -0
- package/dist/src/header-validator.d.ts.map +1 -0
- package/dist/src/index-browser.d.ts +8 -0
- package/dist/src/index-browser.d.ts.map +1 -0
- package/dist/src/index.d.ts +9 -0
- package/dist/src/index.d.ts.map +1 -0
- package/{types/lib → dist/src}/indexed-reader-browser.d.ts +0 -0
- package/dist/src/indexed-reader-browser.d.ts.map +1 -0
- package/{types/lib → dist/src}/indexed-reader.d.ts +13 -13
- package/dist/src/indexed-reader.d.ts.map +1 -0
- package/{types/lib → dist/src}/indexer.d.ts +9 -9
- package/{types/lib → dist/src}/indexer.d.ts.map +1 -1
- package/{types/lib → dist/src}/iterator-channel.d.ts +0 -0
- package/{types/lib → dist/src}/iterator-channel.d.ts.map +1 -1
- package/{types/lib → dist/src}/iterator.d.ts +8 -8
- package/{types/lib → dist/src}/iterator.d.ts.map +1 -1
- package/{types/lib → dist/src}/reader-browser.d.ts +10 -10
- package/{types/lib → dist/src}/reader-browser.d.ts.map +1 -1
- package/{types/lib → dist/src}/reader.d.ts +5 -5
- package/{types/lib → dist/src}/reader.d.ts.map +1 -1
- package/{types/lib → dist/src}/writer-browser.d.ts +10 -10
- package/{types/lib → dist/src}/writer-browser.d.ts.map +1 -1
- package/{types/lib → dist/src}/writer.d.ts +4 -4
- package/{types/lib → dist/src}/writer.d.ts.map +1 -1
- package/package.json +102 -209
- package/{api.ts → src/api.ts} +14 -14
- package/{lib → src}/buffer-writer.js +5 -5
- package/src/coding.ts +56 -0
- package/{lib → src}/decoder.js +4 -4
- package/{lib → src}/encoder.js +1 -1
- package/src/header-validator.js +74 -0
- package/{lib → src}/header.ipldsch +0 -0
- package/src/index-browser.js +14 -0
- package/src/index.js +16 -0
- package/{lib → src}/indexed-reader-browser.js +0 -0
- package/{lib → src}/indexed-reader.js +9 -9
- package/{lib → src}/indexer.js +4 -4
- package/{lib → src}/iterator-channel.js +0 -0
- package/{lib → src}/iterator.js +4 -4
- package/{lib → src}/reader-browser.js +7 -7
- package/{lib → src}/reader.js +5 -5
- package/{lib → src}/writer-browser.js +7 -7
- package/{lib → src}/writer.js +3 -3
- package/LICENSE-APACHE +0 -13
- package/LICENSE-MIT +0 -7
- package/buffer-writer +0 -1
- package/car-browser.js +0 -14
- package/car.js +0 -16
- package/cjs/browser-test/common.js +0 -301
- package/cjs/browser-test/node-test-file-streams.js +0 -71
- package/cjs/browser-test/node-test-indexed-reader.js +0 -51
- package/cjs/browser-test/node-test-large.js +0 -135
- package/cjs/browser-test/node-test-raw.js +0 -68
- package/cjs/browser-test/node-test-updateroots.js +0 -78
- package/cjs/browser-test/test-buffer-writer.js +0 -330
- package/cjs/browser-test/test-errors.js +0 -90
- package/cjs/browser-test/test-indexer.js +0 -80
- package/cjs/browser-test/test-interface.js +0 -21
- package/cjs/browser-test/test-iterator.js +0 -83
- package/cjs/browser-test/test-reader.js +0 -278
- package/cjs/browser-test/test-writer.js +0 -286
- package/cjs/browser-test/verify-store-reader.js +0 -142
- package/cjs/car-browser.js +0 -18
- package/cjs/car.js +0 -20
- package/cjs/lib/buffer-writer.js +0 -164
- package/cjs/lib/decoder.js +0 -301
- package/cjs/lib/encoder.js +0 -44
- package/cjs/lib/header-validator.js +0 -29
- package/cjs/lib/indexed-reader-browser.js +0 -13
- package/cjs/lib/indexed-reader.js +0 -90
- package/cjs/lib/indexer.js +0 -41
- package/cjs/lib/iterator-channel.js +0 -77
- package/cjs/lib/iterator.js +0 -97
- package/cjs/lib/reader-browser.js +0 -62
- package/cjs/lib/reader.js +0 -38
- package/cjs/lib/writer-browser.js +0 -118
- package/cjs/lib/writer.js +0 -51
- package/cjs/node-test/common.js +0 -301
- package/cjs/node-test/node-test-file-streams.js +0 -71
- package/cjs/node-test/node-test-indexed-reader.js +0 -51
- package/cjs/node-test/node-test-large.js +0 -135
- package/cjs/node-test/node-test-raw.js +0 -68
- package/cjs/node-test/node-test-updateroots.js +0 -78
- package/cjs/node-test/test-buffer-writer.js +0 -330
- package/cjs/node-test/test-errors.js +0 -90
- package/cjs/node-test/test-indexer.js +0 -80
- package/cjs/node-test/test-interface.js +0 -21
- package/cjs/node-test/test-iterator.js +0 -83
- package/cjs/node-test/test-reader.js +0 -278
- package/cjs/node-test/test-writer.js +0 -286
- package/cjs/node-test/verify-store-reader.js +0 -142
- package/decoder +0 -1
- package/esm/browser-test/common.js +0 -274
- package/esm/browser-test/node-test-file-streams.js +0 -76
- package/esm/browser-test/node-test-indexed-reader.js +0 -53
- package/esm/browser-test/node-test-large.js +0 -109
- package/esm/browser-test/node-test-raw.js +0 -63
- package/esm/browser-test/node-test-updateroots.js +0 -76
- package/esm/browser-test/test-buffer-writer.js +0 -311
- package/esm/browser-test/test-errors.js +0 -91
- package/esm/browser-test/test-indexer.js +0 -85
- package/esm/browser-test/test-interface.js +0 -24
- package/esm/browser-test/test-iterator.js +0 -91
- package/esm/browser-test/test-reader.js +0 -270
- package/esm/browser-test/test-writer.js +0 -297
- package/esm/browser-test/verify-store-reader.js +0 -122
- package/esm/car-browser.js +0 -16
- package/esm/car.js +0 -18
- package/esm/lib/buffer-writer.js +0 -129
- package/esm/lib/decoder.js +0 -265
- package/esm/lib/encoder.js +0 -35
- package/esm/lib/header-validator.js +0 -23
- package/esm/lib/indexed-reader-browser.js +0 -6
- package/esm/lib/indexed-reader.js +0 -78
- package/esm/lib/indexer.js +0 -38
- package/esm/lib/iterator-channel.js +0 -71
- package/esm/lib/iterator.js +0 -92
- package/esm/lib/reader-browser.js +0 -57
- package/esm/lib/reader.js +0 -26
- package/esm/lib/writer-browser.js +0 -115
- package/esm/lib/writer.js +0 -42
- package/esm/node-test/common.js +0 -274
- package/esm/node-test/node-test-file-streams.js +0 -76
- package/esm/node-test/node-test-indexed-reader.js +0 -53
- package/esm/node-test/node-test-large.js +0 -109
- package/esm/node-test/node-test-raw.js +0 -63
- package/esm/node-test/node-test-updateroots.js +0 -76
- package/esm/node-test/test-buffer-writer.js +0 -311
- package/esm/node-test/test-errors.js +0 -91
- package/esm/node-test/test-indexer.js +0 -85
- package/esm/node-test/test-interface.js +0 -24
- package/esm/node-test/test-iterator.js +0 -91
- package/esm/node-test/test-reader.js +0 -270
- package/esm/node-test/test-writer.js +0 -297
- package/esm/node-test/verify-store-reader.js +0 -122
- package/esm/package.json +0 -9
- package/examples/car-to-fixture.js +0 -66
- package/examples/dump-car.js +0 -58
- package/examples/dump-index.js +0 -24
- package/examples/package.json +0 -27
- package/examples/round-trip.js +0 -45
- package/examples/test-examples.js +0 -115
- package/examples/verify-car.js +0 -87
- package/index.js +0 -1
- package/indexed-reader +0 -1
- package/indexer +0 -1
- package/iterator +0 -1
- package/lib/coding.ts +0 -56
- package/lib/header-validator.js +0 -33
- package/reader +0 -1
- package/test/_fixtures_to_js.mjs +0 -24
- package/test/common.js +0 -210
- package/test/go.car +0 -0
- package/test/go.carv2 +0 -0
- package/test/node-test-file-streams.js +0 -84
- package/test/node-test-indexed-reader.js +0 -45
- package/test/node-test-large.js +0 -112
- package/test/node-test-raw.js +0 -83
- package/test/node-test-updateroots.js +0 -89
- package/test/test-buffer-writer.js +0 -256
- package/test/test-errors.js +0 -98
- package/test/test-indexer.js +0 -87
- package/test/test-interface.js +0 -24
- package/test/test-iterator.js +0 -74
- package/test/test-reader.js +0 -245
- package/test/test-writer.js +0 -336
- package/test/verify-store-reader.js +0 -191
- package/tsconfig.json +0 -48
- package/types/api.d.ts.map +0 -1
- package/types/car-browser.d.ts +0 -8
- package/types/car-browser.d.ts.map +0 -1
- package/types/car.d.ts +0 -9
- package/types/car.d.ts.map +0 -1
- package/types/lib/coding.d.ts +0 -41
- package/types/lib/coding.d.ts.map +0 -1
- package/types/lib/header-validator.d.ts.map +0 -1
- package/types/lib/indexed-reader-browser.d.ts.map +0 -1
- package/types/lib/indexed-reader.d.ts.map +0 -1
- package/types/test/_fixtures_to_js.d.mts +0 -3
- package/types/test/_fixtures_to_js.d.mts.map +0 -1
- package/types/test/common.d.ts +0 -73
- package/types/test/common.d.ts.map +0 -1
- package/types/test/fixtures-expectations.d.ts +0 -63
- package/types/test/fixtures-expectations.d.ts.map +0 -1
- package/types/test/fixtures.d.ts +0 -3
- package/types/test/fixtures.d.ts.map +0 -1
- package/types/test/node-test-file-streams.d.ts +0 -3
- package/types/test/node-test-file-streams.d.ts.map +0 -1
- package/types/test/node-test-indexed-reader.d.ts +0 -2
- package/types/test/node-test-indexed-reader.d.ts.map +0 -1
- package/types/test/node-test-large.d.ts +0 -2
- package/types/test/node-test-large.d.ts.map +0 -1
- package/types/test/node-test-raw.d.ts +0 -2
- package/types/test/node-test-raw.d.ts.map +0 -1
- package/types/test/node-test-updateroots.d.ts +0 -2
- package/types/test/node-test-updateroots.d.ts.map +0 -1
- package/types/test/test-buffer-writer.d.ts +0 -2
- package/types/test/test-buffer-writer.d.ts.map +0 -1
- package/types/test/test-errors.d.ts +0 -2
- package/types/test/test-errors.d.ts.map +0 -1
- package/types/test/test-indexer.d.ts +0 -2
- package/types/test/test-indexer.d.ts.map +0 -1
- package/types/test/test-interface.d.ts +0 -2
- package/types/test/test-interface.d.ts.map +0 -1
- package/types/test/test-iterator.d.ts +0 -2
- package/types/test/test-iterator.d.ts.map +0 -1
- package/types/test/test-reader.d.ts +0 -2
- package/types/test/test-reader.d.ts.map +0 -1
- package/types/test/test-writer.d.ts +0 -2
- package/types/test/test-writer.d.ts.map +0 -1
- package/types/test/verify-store-reader.d.ts +0 -29
- package/types/test/verify-store-reader.d.ts.map +0 -1
- package/writer +0 -1
package/test/test-writer.js
DELETED
|
@@ -1,336 +0,0 @@
|
|
|
1
|
-
/* eslint-env mocha */
|
|
2
|
-
/* globals describe, it */
|
|
3
|
-
|
|
4
|
-
import { CarWriter } from '@ipld/car/writer'
|
|
5
|
-
import { CarReader } from '@ipld/car/reader'
|
|
6
|
-
import { bytes, CID } from 'multiformats'
|
|
7
|
-
import { carBytes, makeData, assert, rndCid } from './common.js'
|
|
8
|
-
import {
|
|
9
|
-
verifyRoots,
|
|
10
|
-
verifyHas,
|
|
11
|
-
verifyGet,
|
|
12
|
-
verifyBlocks,
|
|
13
|
-
verifyCids
|
|
14
|
-
} from './verify-store-reader.js'
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @typedef {import('../api').Block} Block
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
const { toHex } = bytes
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* @param {Uint8Array[]} chunks
|
|
24
|
-
*/
|
|
25
|
-
function concatBytes (chunks) {
|
|
26
|
-
const length = chunks.reduce((p, c) => p + c.length, 0)
|
|
27
|
-
const bytes = new Uint8Array(length)
|
|
28
|
-
let off = 0
|
|
29
|
-
for (const chunk of chunks) {
|
|
30
|
-
bytes.set(chunk, off)
|
|
31
|
-
off += chunk.length
|
|
32
|
-
}
|
|
33
|
-
return bytes
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* @param {AsyncIterable<Uint8Array>} iterable
|
|
38
|
-
*/
|
|
39
|
-
function collector (iterable) {
|
|
40
|
-
const chunks = []
|
|
41
|
-
const cfn = (async () => {
|
|
42
|
-
for await (const chunk of iterable) {
|
|
43
|
-
chunks.push(chunk)
|
|
44
|
-
}
|
|
45
|
-
return concatBytes(chunks)
|
|
46
|
-
})()
|
|
47
|
-
return cfn
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const newRoots = [
|
|
51
|
-
CID.parse('bafkreidbxzk2ryxwwtqxem4l3xyyjvw35yu4tcct4cqeqxwo47zhxgxqwq'),
|
|
52
|
-
CID.parse('bafkreiebzrnroamgos2adnbpgw5apo3z4iishhbdx77gldnbk57d4zdio4')
|
|
53
|
-
]
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* @param {Uint8Array} bytes
|
|
57
|
-
*/
|
|
58
|
-
async function verifyUpdateRoots (bytes) {
|
|
59
|
-
const reader = await CarReader.fromBytes(bytes)
|
|
60
|
-
await assert.isRejected(verifyRoots(reader)) // whoa, different roots? like magic
|
|
61
|
-
assert.deepEqual(await reader.getRoots(), newRoots)
|
|
62
|
-
await verifyHas(reader)
|
|
63
|
-
await verifyGet(reader)
|
|
64
|
-
await verifyBlocks(reader.blocks(), true)
|
|
65
|
-
await verifyCids(reader.cids(), true)
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
describe('CarWriter', () => {
|
|
69
|
-
/** @type {Block[]} */
|
|
70
|
-
let cborBlocks
|
|
71
|
-
/** @type {[string, Block[]][]} */
|
|
72
|
-
let allBlocks
|
|
73
|
-
/** @type {Block[]} */
|
|
74
|
-
let allBlocksFlattened
|
|
75
|
-
/** @type {CID[]} */
|
|
76
|
-
let roots
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* @param {Uint8Array} actual
|
|
80
|
-
*/
|
|
81
|
-
function assertCarData (actual) {
|
|
82
|
-
assert.strictEqual(
|
|
83
|
-
toHex(actual),
|
|
84
|
-
toHex(carBytes),
|
|
85
|
-
'got expected bytes'
|
|
86
|
-
)
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
before(async () => {
|
|
90
|
-
const data = await makeData()
|
|
91
|
-
cborBlocks = data.cborBlocks
|
|
92
|
-
allBlocks = data.allBlocks
|
|
93
|
-
allBlocksFlattened = data.allBlocksFlattened
|
|
94
|
-
roots = [cborBlocks[0].cid, cborBlocks[1].cid]
|
|
95
|
-
})
|
|
96
|
-
|
|
97
|
-
it('complete', async () => {
|
|
98
|
-
const { writer, out } = CarWriter.create(roots)
|
|
99
|
-
|
|
100
|
-
// writer is async iterable
|
|
101
|
-
assert.strictEqual(typeof out[Symbol.asyncIterator], 'function')
|
|
102
|
-
const collection = collector(out)
|
|
103
|
-
|
|
104
|
-
const writeQueue = []
|
|
105
|
-
for (const block of allBlocksFlattened) {
|
|
106
|
-
writeQueue.push(writer.put(block))
|
|
107
|
-
}
|
|
108
|
-
writeQueue.push(writer.close())
|
|
109
|
-
|
|
110
|
-
let collected = false
|
|
111
|
-
collection.then((bytes) => {
|
|
112
|
-
collected = true
|
|
113
|
-
assertCarData(bytes)
|
|
114
|
-
})
|
|
115
|
-
await Promise.all(writeQueue)
|
|
116
|
-
assert.strictEqual(collected, true)
|
|
117
|
-
})
|
|
118
|
-
|
|
119
|
-
it('complete, deferred collection', async () => {
|
|
120
|
-
const { writer, out } = CarWriter.create(roots)
|
|
121
|
-
|
|
122
|
-
const writeQueue = []
|
|
123
|
-
for (const block of allBlocksFlattened) {
|
|
124
|
-
writeQueue.push(writer.put(block))
|
|
125
|
-
}
|
|
126
|
-
writeQueue.push(writer.close())
|
|
127
|
-
|
|
128
|
-
// attach to the iterator after we've queued all the writing
|
|
129
|
-
let collected = false
|
|
130
|
-
collector(out).then((bytes) => {
|
|
131
|
-
collected = true
|
|
132
|
-
assertCarData(bytes)
|
|
133
|
-
})
|
|
134
|
-
await Promise.all(writeQueue)
|
|
135
|
-
assert.strictEqual(collected, true)
|
|
136
|
-
})
|
|
137
|
-
|
|
138
|
-
it('complete, close after write', async () => {
|
|
139
|
-
const { writer, out } = CarWriter.create(roots)
|
|
140
|
-
|
|
141
|
-
assert.strictEqual(typeof out[Symbol.asyncIterator], 'function')
|
|
142
|
-
const collection = collector(out)
|
|
143
|
-
|
|
144
|
-
const writeQueue = []
|
|
145
|
-
for (const block of allBlocksFlattened) {
|
|
146
|
-
writeQueue.push(writer.put(block))
|
|
147
|
-
}
|
|
148
|
-
writeQueue.push(writer.close())
|
|
149
|
-
|
|
150
|
-
let written = false
|
|
151
|
-
Promise.all(writeQueue).then(() => {
|
|
152
|
-
written = true
|
|
153
|
-
})
|
|
154
|
-
const bytes = await collection
|
|
155
|
-
assert.strictEqual(written, false)
|
|
156
|
-
await Promise.resolve()
|
|
157
|
-
assertCarData(bytes)
|
|
158
|
-
})
|
|
159
|
-
|
|
160
|
-
it('complete, no queue', async () => {
|
|
161
|
-
const { writer, out } = CarWriter.create(roots)
|
|
162
|
-
const collection = collector(out)
|
|
163
|
-
|
|
164
|
-
for (const block of allBlocksFlattened) {
|
|
165
|
-
await writer.put(block)
|
|
166
|
-
}
|
|
167
|
-
await writer.close()
|
|
168
|
-
|
|
169
|
-
const bytes = await collection
|
|
170
|
-
assertCarData(bytes)
|
|
171
|
-
})
|
|
172
|
-
|
|
173
|
-
it('complete, slow drip', async () => {
|
|
174
|
-
const { writer, out } = CarWriter.create(roots)
|
|
175
|
-
|
|
176
|
-
// writer is async iterable
|
|
177
|
-
assert.strictEqual(typeof out[Symbol.asyncIterator], 'function')
|
|
178
|
-
const collection = collector(out)
|
|
179
|
-
|
|
180
|
-
for (const block of allBlocksFlattened) {
|
|
181
|
-
writer.put(block)
|
|
182
|
-
await new Promise((resolve) => setTimeout(resolve, 100))
|
|
183
|
-
}
|
|
184
|
-
await writer.close()
|
|
185
|
-
|
|
186
|
-
await new Promise((resolve) => setTimeout(resolve, 100))
|
|
187
|
-
|
|
188
|
-
const bytes = await collection
|
|
189
|
-
assertCarData(bytes)
|
|
190
|
-
})
|
|
191
|
-
|
|
192
|
-
it('complete, no queue, deferred collection', async () => {
|
|
193
|
-
const { writer, out } = CarWriter.create(roots)
|
|
194
|
-
|
|
195
|
-
for (const block of allBlocksFlattened) {
|
|
196
|
-
writer.put(block)
|
|
197
|
-
}
|
|
198
|
-
writer.close()
|
|
199
|
-
|
|
200
|
-
const collection = collector(out)
|
|
201
|
-
const bytes = await collection
|
|
202
|
-
assertCarData(bytes)
|
|
203
|
-
})
|
|
204
|
-
|
|
205
|
-
it('single root', async () => {
|
|
206
|
-
const { writer, out } = CarWriter.create(roots[0])
|
|
207
|
-
const collection = collector(out)
|
|
208
|
-
|
|
209
|
-
for (const block of allBlocksFlattened) {
|
|
210
|
-
await writer.put(block)
|
|
211
|
-
}
|
|
212
|
-
await writer.close()
|
|
213
|
-
|
|
214
|
-
const bytes = await collection
|
|
215
|
-
|
|
216
|
-
// test the start of the bytes to make sure we have the root def block we expect
|
|
217
|
-
// { roots: [ CID(bafyreihyrpefhacm6kkp4ql6j6udakdit7g3dmkzfriqfykhjw6cad5lrm) ], version: 1 }
|
|
218
|
-
const expectedRootDef = 'a265726f6f747381d82a58250001711220f88bc853804cf294fe417e4fa83028689fcdb1b1592c5102e1474dbc200fab8b6776657273696f6e01'
|
|
219
|
-
const expectedStart = (expectedRootDef.length / 2).toString(16) + // length of root def block
|
|
220
|
-
expectedRootDef +
|
|
221
|
-
'28' // length of first raw block + CIDv0
|
|
222
|
-
|
|
223
|
-
assert.strictEqual(toHex(bytes).substring(0, expectedStart.length), expectedStart)
|
|
224
|
-
})
|
|
225
|
-
|
|
226
|
-
it('no roots', async () => {
|
|
227
|
-
const { writer, out } = CarWriter.create()
|
|
228
|
-
const collection = collector(out)
|
|
229
|
-
|
|
230
|
-
for (const block of allBlocksFlattened) {
|
|
231
|
-
await writer.put(block)
|
|
232
|
-
}
|
|
233
|
-
await writer.close()
|
|
234
|
-
|
|
235
|
-
const bytes = await collection
|
|
236
|
-
|
|
237
|
-
// test the start of the bytes to make sure we have the root def block we expect
|
|
238
|
-
// { roots: [], version: 1 }
|
|
239
|
-
const expectedRootDef = 'a265726f6f7473806776657273696f6e01'
|
|
240
|
-
const expectedStart = (expectedRootDef.length / 2).toString(16) + // length of root def block
|
|
241
|
-
expectedRootDef +
|
|
242
|
-
'28' // length of first raw block + CIDv0
|
|
243
|
-
|
|
244
|
-
assert.strictEqual(toHex(bytes).substring(0, expectedStart.length), expectedStart)
|
|
245
|
-
})
|
|
246
|
-
|
|
247
|
-
it('appender', async () => {
|
|
248
|
-
let writerOut = CarWriter.create(roots)
|
|
249
|
-
let collection = collector(writerOut.out)
|
|
250
|
-
await writerOut.writer.close()
|
|
251
|
-
const headerBytes = await collection
|
|
252
|
-
|
|
253
|
-
/** @param {number} index */
|
|
254
|
-
const append = async (index) => {
|
|
255
|
-
writerOut = CarWriter.createAppender()
|
|
256
|
-
collection = collector(writerOut.out)
|
|
257
|
-
for (const block of allBlocks[index][1]) {
|
|
258
|
-
await writerOut.writer.put(block)
|
|
259
|
-
}
|
|
260
|
-
await writerOut.writer.close()
|
|
261
|
-
return collection
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
const rawBytes = await append(0)
|
|
265
|
-
const pbBytes = await append(1)
|
|
266
|
-
const cborBytes = await append(2)
|
|
267
|
-
|
|
268
|
-
assert.ok(rawBytes.length > 0)
|
|
269
|
-
assert.ok(pbBytes.length > 0)
|
|
270
|
-
assert.ok(cborBytes.length > 0)
|
|
271
|
-
|
|
272
|
-
const reassembled = concatBytes([headerBytes, rawBytes, pbBytes, cborBytes])
|
|
273
|
-
|
|
274
|
-
assert.strictEqual(toHex(reassembled), toHex(carBytes))
|
|
275
|
-
})
|
|
276
|
-
|
|
277
|
-
it('bad argument for create()', () => {
|
|
278
|
-
for (const arg of [new Uint8Array(0), true, false, null, 'string', 100, { obj: 'nope' }, [false]]) {
|
|
279
|
-
// @ts-ignore
|
|
280
|
-
assert.throws(() => CarWriter.create(arg))
|
|
281
|
-
}
|
|
282
|
-
})
|
|
283
|
-
|
|
284
|
-
it('bad argument for put()', async () => {
|
|
285
|
-
const { writer } = CarWriter.create()
|
|
286
|
-
for (const arg of [new Uint8Array(0), true, false, null, 'string', 100, { obj: 'nope' }, [false]]) {
|
|
287
|
-
// @ts-ignore
|
|
288
|
-
await assert.isRejected(writer.put(arg))
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
for (const arg of [true, false, null, 'string', 100, { obj: 'nope' }, [false]]) {
|
|
292
|
-
// @ts-ignore
|
|
293
|
-
await assert.isRejected(writer.put({ bytes: new Uint8Array(0), cid: arg }))
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
for (const arg of [true, false, null, 'string', 100, { obj: 'nope' }, [false]]) {
|
|
297
|
-
// @ts-ignore
|
|
298
|
-
await assert.isRejected(writer.put({ cid: rndCid, bytes: arg }))
|
|
299
|
-
}
|
|
300
|
-
})
|
|
301
|
-
|
|
302
|
-
it('bad write after closed', async () => {
|
|
303
|
-
const { writer, out } = CarWriter.create()
|
|
304
|
-
const collection = collector(out)
|
|
305
|
-
await writer.put(allBlocksFlattened[0])
|
|
306
|
-
await writer.close()
|
|
307
|
-
await assert.isRejected(writer.put(allBlocksFlattened[1]), /closed/)
|
|
308
|
-
await collection
|
|
309
|
-
})
|
|
310
|
-
|
|
311
|
-
it('bad attempt to multiple iterate', async () => {
|
|
312
|
-
const { out } = CarWriter.create()
|
|
313
|
-
collector(out)
|
|
314
|
-
await assert.isRejected(collector(out), /multiple iterator/i)
|
|
315
|
-
})
|
|
316
|
-
|
|
317
|
-
it('bad attempt to multiple close', async () => {
|
|
318
|
-
const { writer, out } = CarWriter.create()
|
|
319
|
-
collector(out)
|
|
320
|
-
await writer.close()
|
|
321
|
-
await assert.isRejected(writer.close(), /closed/i)
|
|
322
|
-
})
|
|
323
|
-
|
|
324
|
-
it('update roots (fd)', async () => {
|
|
325
|
-
const bytes = carBytes.slice()
|
|
326
|
-
await CarWriter.updateRootsInBytes(bytes, newRoots)
|
|
327
|
-
await verifyUpdateRoots(bytes)
|
|
328
|
-
})
|
|
329
|
-
|
|
330
|
-
it('update roots error: wrong header size', async () => {
|
|
331
|
-
const bytes = carBytes.slice()
|
|
332
|
-
await assert.isRejected(CarWriter.updateRootsInBytes(bytes, [...newRoots, newRoots[0]]), /can only overwrite a header of the same length/)
|
|
333
|
-
await assert.isRejected(CarWriter.updateRootsInBytes(bytes, [newRoots[0]]), /can only overwrite a header of the same length/)
|
|
334
|
-
await assert.isRejected(CarWriter.updateRootsInBytes(bytes, []), /can only overwrite a header of the same length/)
|
|
335
|
-
})
|
|
336
|
-
})
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
import { bytes } from 'multiformats'
|
|
2
|
-
import * as raw from 'multiformats/codecs/raw'
|
|
3
|
-
import { toBlock, assert, makeData } from './common.js'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* @typedef {import('multiformats').CID} CID
|
|
7
|
-
* @typedef {import('../api').Block} Block
|
|
8
|
-
* @typedef {import('../api').RootsReader} RootsReader
|
|
9
|
-
* @typedef {import('../api').BlockIterator} BlockIterator
|
|
10
|
-
* @typedef {import('../api').CIDIterator} CIDIterator
|
|
11
|
-
* @typedef {import('../api').BlockReader} BlockReader
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @param {Block} actual
|
|
16
|
-
* @param {Block} expected
|
|
17
|
-
* @param {string | void} id
|
|
18
|
-
*/
|
|
19
|
-
function compareBlockData (actual, expected, id) {
|
|
20
|
-
assert.strictEqual(
|
|
21
|
-
bytes.toHex(actual.bytes),
|
|
22
|
-
bytes.toHex(expected.bytes),
|
|
23
|
-
`comparing block as hex ${id || ''}`
|
|
24
|
-
)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* @param {CID} actual
|
|
29
|
-
* @param {CID} expected
|
|
30
|
-
*/
|
|
31
|
-
function compareCids (actual, expected) {
|
|
32
|
-
assert.strictEqual(actual.toString(), expected.toString())
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* @param {RootsReader} reader
|
|
37
|
-
*/
|
|
38
|
-
async function verifyRoots (reader) {
|
|
39
|
-
// using toString() for now, backing buffers in Uint8Arrays are getting in the way
|
|
40
|
-
// in the browser
|
|
41
|
-
const { cborBlocks } = await makeData()
|
|
42
|
-
|
|
43
|
-
const expected = [cborBlocks[0].cid.toString(), cborBlocks[1].cid.toString()]
|
|
44
|
-
assert.deepStrictEqual((await reader.getRoots()).map((c) => c.toString()), expected)
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* @param {BlockReader} reader
|
|
49
|
-
*/
|
|
50
|
-
async function verifyHas (reader) {
|
|
51
|
-
const { allBlocks } = await makeData()
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* @param {CID} cid
|
|
55
|
-
* @param {string} name
|
|
56
|
-
*/
|
|
57
|
-
const verifyHas = async (cid, name) => {
|
|
58
|
-
assert.ok(await reader.has(cid), `reader doesn't have expected key for ${name}`)
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* @param {CID} cid
|
|
63
|
-
* @param {string} name
|
|
64
|
-
*/
|
|
65
|
-
const verifyHasnt = async (cid, name) => {
|
|
66
|
-
assert.ok(!(await reader.has(cid)), `reader has unexpected key for ${name}`)
|
|
67
|
-
assert.strictEqual(await reader.get(cid), undefined)
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
for (const [type, blocks] of allBlocks) {
|
|
71
|
-
for (let i = 0; i < blocks.length; i++) {
|
|
72
|
-
await verifyHas(blocks[i].cid, `block #${i} (${type} / ${blocks[i].cid})`)
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// not a block we have
|
|
77
|
-
await verifyHasnt((await toBlock(new TextEncoder().encode('dddd'), raw)).cid, 'dddd')
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* @param {BlockReader} reader
|
|
82
|
-
*/
|
|
83
|
-
async function verifyGet (reader) {
|
|
84
|
-
const { allBlocks } = await makeData()
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* @param {Block} expected
|
|
88
|
-
* @param {number} index
|
|
89
|
-
* @param {string} type
|
|
90
|
-
*/
|
|
91
|
-
const verifyBlock = async (expected, index, type) => {
|
|
92
|
-
let actual
|
|
93
|
-
try {
|
|
94
|
-
actual = await reader.get(expected.cid)
|
|
95
|
-
assert.isDefined(actual)
|
|
96
|
-
if (actual) {
|
|
97
|
-
compareBlockData(actual, expected, `#${index} (${type})`)
|
|
98
|
-
}
|
|
99
|
-
} catch (err) {
|
|
100
|
-
assert.ifError(err, `get block length #${index} (${type})`)
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
for (const [type, blocks] of allBlocks) {
|
|
105
|
-
for (let i = 0; i < blocks.length; i++) {
|
|
106
|
-
await verifyBlock(blocks[i], i, type)
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* @param {BlockIterator} iterator
|
|
113
|
-
* @param {boolean | void} unordered
|
|
114
|
-
*/
|
|
115
|
-
async function verifyBlocks (iterator, unordered) {
|
|
116
|
-
const { allBlocksFlattened } = await makeData()
|
|
117
|
-
if (!unordered) {
|
|
118
|
-
const expected = allBlocksFlattened.slice()
|
|
119
|
-
for await (const actual of iterator) {
|
|
120
|
-
const next = expected.shift()
|
|
121
|
-
assert.isDefined(next)
|
|
122
|
-
if (next) {
|
|
123
|
-
compareBlockData(actual, next)
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
} else {
|
|
127
|
-
/** @type {{[prop: string]: Block}} */
|
|
128
|
-
const expected = {}
|
|
129
|
-
for (const block of allBlocksFlattened) {
|
|
130
|
-
expected[block.cid.toString()] = block
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
for await (const actual of iterator) {
|
|
134
|
-
const { cid } = actual
|
|
135
|
-
const exp = expected[cid.toString()]
|
|
136
|
-
if (!exp) {
|
|
137
|
-
throw new Error(`Unexpected block: ${cid.toString()}`)
|
|
138
|
-
}
|
|
139
|
-
compareBlockData(actual, exp)
|
|
140
|
-
delete expected[cid.toString()]
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
if (Object.keys(expected).length) {
|
|
144
|
-
throw new Error('Did not find all expected blocks')
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* @param {CIDIterator} iterator
|
|
151
|
-
* @param {boolean | void} unordered
|
|
152
|
-
*/
|
|
153
|
-
async function verifyCids (iterator, unordered) {
|
|
154
|
-
const { allBlocksFlattened } = await makeData()
|
|
155
|
-
if (!unordered) {
|
|
156
|
-
const expected = allBlocksFlattened.slice()
|
|
157
|
-
for await (const actual of iterator) {
|
|
158
|
-
const next = expected.shift()
|
|
159
|
-
assert.isDefined(next)
|
|
160
|
-
if (next) {
|
|
161
|
-
compareCids(actual, next.cid)
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
} else {
|
|
165
|
-
/** @type {{[prop: string]: Block}} */
|
|
166
|
-
const expected = {}
|
|
167
|
-
for (const block of allBlocksFlattened) {
|
|
168
|
-
expected[block.cid.toString()] = block
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
for await (const cid of iterator) {
|
|
172
|
-
const exp = expected[cid.toString()]
|
|
173
|
-
if (!exp) {
|
|
174
|
-
throw new Error(`Unexpected cid: ${cid.toString()}`)
|
|
175
|
-
}
|
|
176
|
-
delete expected[cid.toString()]
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
if (Object.keys(expected).length) {
|
|
180
|
-
throw new Error('Did not find all expected cids')
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
export {
|
|
186
|
-
verifyRoots,
|
|
187
|
-
verifyHas,
|
|
188
|
-
verifyGet,
|
|
189
|
-
verifyBlocks,
|
|
190
|
-
verifyCids
|
|
191
|
-
}
|
package/tsconfig.json
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"allowJs": true,
|
|
4
|
-
"checkJs": true,
|
|
5
|
-
"forceConsistentCasingInFileNames": true,
|
|
6
|
-
"noImplicitReturns": false,
|
|
7
|
-
"noImplicitAny": true,
|
|
8
|
-
"noImplicitThis": true,
|
|
9
|
-
"noFallthroughCasesInSwitch": true,
|
|
10
|
-
"noUnusedLocals": true,
|
|
11
|
-
"noUnusedParameters": true,
|
|
12
|
-
"strictFunctionTypes": false,
|
|
13
|
-
"strictNullChecks": true,
|
|
14
|
-
"strictPropertyInitialization": true,
|
|
15
|
-
"strictBindCallApply": true,
|
|
16
|
-
"strict": true,
|
|
17
|
-
"useUnknownInCatchVariables": false,
|
|
18
|
-
"alwaysStrict": true,
|
|
19
|
-
"esModuleInterop": true,
|
|
20
|
-
"target": "ES2018",
|
|
21
|
-
"module": "ESNext",
|
|
22
|
-
"moduleResolution": "node",
|
|
23
|
-
"declaration": true,
|
|
24
|
-
"declarationMap": true,
|
|
25
|
-
"outDir": "types",
|
|
26
|
-
"skipLibCheck": true,
|
|
27
|
-
"stripInternal": true,
|
|
28
|
-
"resolveJsonModule": true,
|
|
29
|
-
"emitDeclarationOnly": true,
|
|
30
|
-
"baseUrl": ".",
|
|
31
|
-
"paths": {
|
|
32
|
-
"@ipld/car": [ "car.js", "car-browser.js", "lib/" ],
|
|
33
|
-
"@ipld/car/writer": [ "./lib/writer.js" ],
|
|
34
|
-
"@ipld/car/buffer-writer": ["./lib/buffer-writer.js"],
|
|
35
|
-
"@ipld/car/reader": [ "./lib/reader.js" ],
|
|
36
|
-
"@ipld/car/indexed-reader": [ "./lib/indexed-reader.js" ],
|
|
37
|
-
"@ipld/car/iterator": [ "./lib/iterator.js" ],
|
|
38
|
-
"@ipld/car/indexer": [ "./lib/indexer.js" ],
|
|
39
|
-
"@ipld/car/decoder": [ "./lib/decoder.js" ],
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
"exclude": [
|
|
43
|
-
"node_modules",
|
|
44
|
-
"dist",
|
|
45
|
-
"examples"
|
|
46
|
-
],
|
|
47
|
-
"compileOnSave": false
|
|
48
|
-
}
|
package/types/api.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAEtC,YAAY,EAAE,GAAG,EAAE,CAAA;AAGnB,oBAAY,KAAK,GAAG;IAClB,GAAG,EAAE,GAAG,CAAA;IACR,KAAK,EAAE,UAAU,CAAA;CAClB,CAAA;AAED,oBAAY,WAAW,GAAG;IACxB,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,oBAAY,UAAU,GAAG,WAAW,GAAG;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa,CAAC,KAAK,CAAC;CAAG;AAE9D,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,GAAG,CAAC;CAAG;AAE1D,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/B,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAA;IACzC,MAAM,IAAI,aAAa,CAAA;IACvB,IAAI,IAAI,WAAW,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,IAAI,EAAC,GAAG,EAAE,OAAO,CAAC,EAAC;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAE,eAAe,CAAA;IAChE,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAAA;IACpC,KAAK,CAAC,OAAO,CAAC,EAAC;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,UAAU,CAAA;CACjD;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAA;IACnB,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,SAAU,SAAQ,WAAW,EAAE,WAAW;CAAG"}
|
package/types/car-browser.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { CarReader } from "./lib/reader-browser.js";
|
|
2
|
-
import { CarIndexer } from "./lib/indexer.js";
|
|
3
|
-
import { CarBlockIterator } from "./lib/iterator.js";
|
|
4
|
-
import { CarCIDIterator } from "./lib/iterator.js";
|
|
5
|
-
import { CarWriter } from "./lib/writer-browser.js";
|
|
6
|
-
import { CarIndexedReader } from "./lib/indexed-reader-browser.js";
|
|
7
|
-
export { CarReader, CarIndexer, CarBlockIterator, CarCIDIterator, CarWriter, CarIndexedReader };
|
|
8
|
-
//# sourceMappingURL=car-browser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"car-browser.d.ts","sourceRoot":"","sources":["../car-browser.js"],"names":[],"mappings":""}
|
package/types/car.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { CarReader } from "./lib/reader.js";
|
|
2
|
-
import { CarIndexer } from "./lib/indexer.js";
|
|
3
|
-
import { CarBlockIterator } from "./lib/iterator.js";
|
|
4
|
-
import { CarCIDIterator } from "./lib/iterator.js";
|
|
5
|
-
import { CarWriter } from "./lib/writer.js";
|
|
6
|
-
import { CarIndexedReader } from "./lib/indexed-reader.js";
|
|
7
|
-
import * as CarBufferWriter from "./lib/buffer-writer.js";
|
|
8
|
-
export { CarReader, CarIndexer, CarBlockIterator, CarCIDIterator, CarWriter, CarIndexedReader, CarBufferWriter };
|
|
9
|
-
//# sourceMappingURL=car.d.ts.map
|
package/types/car.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"car.d.ts","sourceRoot":"","sources":["../car.js"],"names":[],"mappings":""}
|
package/types/lib/coding.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { CID } from 'multiformats/cid';
|
|
2
|
-
import { Block, BlockIndex } from '../api';
|
|
3
|
-
export interface CarEncoder {
|
|
4
|
-
setRoots(roots: CID[]): Promise<void>;
|
|
5
|
-
writeBlock(block: Block): Promise<void>;
|
|
6
|
-
close(): Promise<void>;
|
|
7
|
-
}
|
|
8
|
-
export interface IteratorChannel_Writer<T> {
|
|
9
|
-
write(chunk: T): Promise<void>;
|
|
10
|
-
end(): Promise<void>;
|
|
11
|
-
}
|
|
12
|
-
export interface IteratorChannel<T> {
|
|
13
|
-
writer: IteratorChannel_Writer<T>;
|
|
14
|
-
iterator: AsyncIterator<T>;
|
|
15
|
-
}
|
|
16
|
-
export interface CarHeader {
|
|
17
|
-
version: 1;
|
|
18
|
-
roots: CID[];
|
|
19
|
-
}
|
|
20
|
-
export interface CarV2FixedHeader {
|
|
21
|
-
characteristics: [bigint, bigint];
|
|
22
|
-
dataOffset: number;
|
|
23
|
-
dataSize: number;
|
|
24
|
-
indexOffset: number;
|
|
25
|
-
}
|
|
26
|
-
export interface CarV2Header extends CarV2FixedHeader {
|
|
27
|
-
version: 2;
|
|
28
|
-
roots: CID[];
|
|
29
|
-
}
|
|
30
|
-
export interface CarDecoder {
|
|
31
|
-
header(): Promise<CarHeader | CarV2Header>;
|
|
32
|
-
blocks(): AsyncGenerator<Block>;
|
|
33
|
-
blocksIndex(): AsyncGenerator<BlockIndex>;
|
|
34
|
-
}
|
|
35
|
-
export interface BytesReader {
|
|
36
|
-
upTo(length: number): Promise<Uint8Array>;
|
|
37
|
-
exactly(length: number): Promise<Uint8Array>;
|
|
38
|
-
seek(length: number): void;
|
|
39
|
-
pos: number;
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=coding.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"coding.d.ts","sourceRoot":"","sources":["../../lib/coding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAE1C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAErC,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACrB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAA;IAEjC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,GAAG,EAAE,CAAA;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAY,SAAQ,gBAAgB;IACnD,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,GAAG,EAAE,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,IAAI,OAAO,CAAC,SAAS,GAAC,WAAW,CAAC,CAAA;IAExC,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAA;IAE/B,WAAW,IAAI,cAAc,CAAC,UAAU,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAEzC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAE5C,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAE1B,GAAG,EAAE,MAAM,CAAA;CACZ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"header-validator.d.ts","sourceRoot":"","sources":["../../lib/header-validator.js"],"names":[],"mappings":"AAsB4B,+BAAK,GAAG,GAAG,OAAO,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indexed-reader-browser.d.ts","sourceRoot":"","sources":["../../lib/indexed-reader-browser.js"],"names":[],"mappings":"AAAA;IACE,iCAEC;CACF;AAED,6BAA6B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indexed-reader.d.ts","sourceRoot":"","sources":["../../lib/indexed-reader.js"],"names":[],"mappings":";AAMA;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH;IAyIE;;;;;;;;;;;;;;;OAeG;IACH,sBAHW,MAAM,GACJ,QAAQ,gBAAgB,CAAC,CAoBrC;IA1KD;;;;;;OAMG;IACH,qBANW,MAAM,QACN,MAAM,SACN,GAAG,EAAE,SACL,IAAI,MAAM,EAAE,WAAW,CAAC,SACxB,MAAM,EAAE,EASlB;IANC,iBAAuB;IACvB,cAAiB;IACjB,cAAmB;IACnB,iCAAmB;IACnB,iBAAmB;IACnB,mCAAe;IAGjB,sBAEC;IAED;;;;;;;;OAQG;IACH,YAFa,QAAQ,GAAG,EAAE,CAAC,CAM1B;IAED;;;;;;;;;OASG;IACH,SAHW,GAAG,GACD,QAAQ,OAAO,CAAC,CAM5B;IAED;;;;;;;;;OASG;IACH,SAHW,GAAG,GACD,QAAQ,KAAK,GAAG,SAAS,CAAC,CAoBtC;IAED;;;;;;;;;OASG;IACH,UAFa,eAAe,KAAK,CAAC,CAWjC;IAED;;;;;;;;;OASG;IACH,QAFa,eAAe,GAAG,CAAC,CAM/B;IAED;;;;;;;;;OASG;IACH,SAFa,QAAQ,IAAI,CAAC,CAQzB;CAqCF;AAED,8BAA8B;yBArNjB,OAAO,IAAI,EAAE,QAAQ,CAAC,UAAU;oBAChC,OAAO,QAAQ,EAAE,KAAK;yBACtB,OAAO,QAAQ,EAAE,UAAU;6BAC3B,OAAO,QAAQ,EAAE,SAAS;wBAC1B,OAAO,kBAAkB,EAAE,SAAS;0BACpC;IAAE,WAAW,EAAC,MAAM,CAAC;IAAC,WAAW,EAAC,MAAM,CAAA;CAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_fixtures_to_js.d.mts","sourceRoot":"","sources":["../../test/_fixtures_to_js.mjs"],"names":[],"mappings":""}
|