@ipld/car 5.1.1 → 5.2.1
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/dist/index.min.js +3 -3
- package/dist/src/buffer-decoder.d.ts.map +1 -1
- package/dist/src/buffer-reader-browser.d.ts.map +1 -1
- package/dist/src/buffer-reader.d.ts +1 -1
- package/dist/src/buffer-reader.d.ts.map +1 -1
- package/dist/src/coding.d.ts +1 -1
- package/dist/src/coding.d.ts.map +1 -1
- package/dist/src/decoder-common.d.ts +3 -3
- package/dist/src/decoder-common.d.ts.map +1 -1
- package/dist/src/decoder.d.ts.map +1 -1
- package/dist/src/encoder.d.ts.map +1 -1
- package/dist/src/index-browser.d.ts +8 -8
- package/dist/src/index-browser.d.ts.map +1 -1
- package/dist/src/index.d.ts +9 -8
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/indexed-reader.d.ts +2 -2
- package/dist/src/indexed-reader.d.ts.map +1 -1
- package/dist/src/indexer.d.ts.map +1 -1
- package/dist/src/iterator-channel.d.ts.map +1 -1
- package/dist/src/iterator.d.ts.map +1 -1
- package/dist/src/reader-browser.d.ts.map +1 -1
- package/dist/src/reader.d.ts +2 -2
- package/dist/src/reader.d.ts.map +1 -1
- package/dist/src/writer-browser.d.ts +1 -1
- package/dist/src/writer-browser.d.ts.map +1 -1
- package/dist/src/writer.d.ts +2 -2
- package/dist/src/writer.d.ts.map +1 -1
- package/package.json +2 -5
- package/src/buffer-decoder.js +2 -16
- package/src/buffer-reader-browser.js +0 -6
- package/src/buffer-reader.js +0 -2
- package/src/buffer-writer.js +2 -2
- package/src/coding.ts +3 -3
- package/src/decoder-common.js +0 -4
- package/src/decoder.js +2 -28
- package/src/encoder.js +1 -3
- package/src/index-browser.js +4 -4
- package/src/index.js +6 -3
- package/src/indexed-reader.js +0 -10
- package/src/indexer.js +0 -8
- package/src/iterator-channel.js +0 -4
- package/src/iterator.js +0 -18
- package/src/reader-browser.js +0 -12
- package/src/reader.js +0 -2
- package/src/writer-browser.js +1 -7
- package/src/writer.js +1 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ipld/car",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.2.1",
|
|
4
4
|
"description": "Content Addressable aRchive format reader and writer",
|
|
5
5
|
"author": "Rod <rod@vagg.org> (http://r.va.gg/)",
|
|
6
6
|
"license": "Apache-2.0 OR MIT",
|
|
@@ -206,11 +206,8 @@
|
|
|
206
206
|
"devDependencies": {
|
|
207
207
|
"@ipld/dag-pb": "^4.0.0",
|
|
208
208
|
"@ipld/garbage": "^6.0.0",
|
|
209
|
-
"@types/node": "^18.0.0",
|
|
210
209
|
"@types/varint": "^6.0.0",
|
|
211
|
-
"
|
|
212
|
-
"@typescript-eslint/parser": "^5.6.0",
|
|
213
|
-
"aegir": "^37.5.6",
|
|
210
|
+
"aegir": "^40.0.11",
|
|
214
211
|
"jsdoc4readme": "^1.4.0"
|
|
215
212
|
},
|
|
216
213
|
"browser": {
|
package/src/buffer-decoder.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { decode as decodeDagCbor } from '@ipld/dag-cbor'
|
|
1
2
|
import { CID } from 'multiformats/cid'
|
|
2
3
|
import * as Digest from 'multiformats/hashes/digest'
|
|
3
|
-
import { decode as decodeDagCbor } from '@ipld/dag-cbor'
|
|
4
|
-
import { CarHeader as headerValidator } from './header-validator.js'
|
|
5
4
|
import { CIDV0_BYTES, decodeV2Header, decodeVarint, getMultihashLength, V2_HEADER_LENGTH } from './decoder-common.js'
|
|
5
|
+
import { CarHeader as headerValidator } from './header-validator.js'
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @typedef {import('./api').Block} Block
|
|
@@ -50,8 +50,6 @@ export function readHeader (reader, strictVersion) {
|
|
|
50
50
|
reader.seek(v2Header.dataOffset - reader.pos)
|
|
51
51
|
const v1Header = readHeader(reader, 1)
|
|
52
52
|
return Object.assign(v1Header, v2Header)
|
|
53
|
-
/* c8 ignore next 2 */
|
|
54
|
-
// Node.js 12 c8 bug
|
|
55
53
|
}
|
|
56
54
|
|
|
57
55
|
/**
|
|
@@ -77,8 +75,6 @@ function readCid (reader) {
|
|
|
77
75
|
const bytes = reader.exactly(getMultihashLength(reader.upTo(8)), true)
|
|
78
76
|
const multihash = Digest.decode(bytes)
|
|
79
77
|
return CID.create(version, codec, multihash)
|
|
80
|
-
/* c8 ignore next 2 */
|
|
81
|
-
// Node.js 12 c8 bug
|
|
82
78
|
}
|
|
83
79
|
|
|
84
80
|
/**
|
|
@@ -104,8 +100,6 @@ export function readBlockHead (reader) {
|
|
|
104
100
|
const blockLength = length - Number(reader.pos - start) // subtract CID length
|
|
105
101
|
|
|
106
102
|
return { cid, length, blockLength }
|
|
107
|
-
/* c8 ignore next 2 */
|
|
108
|
-
// Node.js 12 c8 bug
|
|
109
103
|
}
|
|
110
104
|
|
|
111
105
|
/**
|
|
@@ -148,8 +142,6 @@ export function bytesReader (bytes) {
|
|
|
148
142
|
return {
|
|
149
143
|
upTo (length) {
|
|
150
144
|
return bytes.subarray(pos, pos + Math.min(length, bytes.length - pos))
|
|
151
|
-
/* c8 ignore next 2 */
|
|
152
|
-
// Node.js 12 c8 bug
|
|
153
145
|
},
|
|
154
146
|
|
|
155
147
|
exactly (length, seek = false) {
|
|
@@ -162,8 +154,6 @@ export function bytesReader (bytes) {
|
|
|
162
154
|
pos += length
|
|
163
155
|
}
|
|
164
156
|
return out
|
|
165
|
-
/* c8 ignore next 2 */
|
|
166
|
-
// Node.js 12 c8 bug
|
|
167
157
|
},
|
|
168
158
|
|
|
169
159
|
seek (length) {
|
|
@@ -197,8 +187,6 @@ export function limitReader (reader, byteLimit) {
|
|
|
197
187
|
bytes = bytes.subarray(0, byteLimit - bytesRead)
|
|
198
188
|
}
|
|
199
189
|
return bytes
|
|
200
|
-
/* c8 ignore next 2 */
|
|
201
|
-
// Node.js 12 c8 bug
|
|
202
190
|
},
|
|
203
191
|
|
|
204
192
|
exactly (length, seek = false) {
|
|
@@ -210,8 +198,6 @@ export function limitReader (reader, byteLimit) {
|
|
|
210
198
|
bytesRead += length
|
|
211
199
|
}
|
|
212
200
|
return bytes
|
|
213
|
-
/* c8 ignore next 2 */
|
|
214
|
-
// Node.js 12 c8 bug
|
|
215
201
|
},
|
|
216
202
|
|
|
217
203
|
seek (length) {
|
|
@@ -61,8 +61,6 @@ export class CarBufferReader {
|
|
|
61
61
|
*/
|
|
62
62
|
getRoots () {
|
|
63
63
|
return this._header.roots
|
|
64
|
-
/* c8 ignore next 2 */
|
|
65
|
-
// Node.js 12 c8 bug
|
|
66
64
|
}
|
|
67
65
|
|
|
68
66
|
/**
|
|
@@ -77,8 +75,6 @@ export class CarBufferReader {
|
|
|
77
75
|
*/
|
|
78
76
|
has (key) {
|
|
79
77
|
return this._blocks.some(b => b.cid.equals(key))
|
|
80
|
-
/* c8 ignore next 2 */
|
|
81
|
-
// Node.js 12 c8 bug
|
|
82
78
|
}
|
|
83
79
|
|
|
84
80
|
/**
|
|
@@ -95,8 +91,6 @@ export class CarBufferReader {
|
|
|
95
91
|
*/
|
|
96
92
|
get (key) {
|
|
97
93
|
return this._blocks.find(b => b.cid.equals(key))
|
|
98
|
-
/* c8 ignore next 2 */
|
|
99
|
-
// Node.js 12 c8 bug
|
|
100
94
|
}
|
|
101
95
|
|
|
102
96
|
/**
|
package/src/buffer-reader.js
CHANGED
package/src/buffer-writer.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as CBOR from '@ipld/dag-cbor'
|
|
2
2
|
import { Token, Type } from 'cborg'
|
|
3
3
|
import { tokensToLength } from 'cborg/length'
|
|
4
|
-
import
|
|
4
|
+
import varint from 'varint'
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @typedef {import('./api').CID} CID
|
package/src/coding.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { CID } from 'multiformats/cid'
|
|
2
1
|
import type { Block, BlockIndex } from './api.js'
|
|
2
|
+
import type { CID } from 'multiformats/cid'
|
|
3
3
|
|
|
4
4
|
export interface CarEncoder {
|
|
5
5
|
setRoots: (roots: CID[]) => Promise<void>
|
|
@@ -38,7 +38,7 @@ export interface CarV2Header extends CarV2FixedHeader {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
export interface CarDecoder {
|
|
41
|
-
header: () => Promise<CarHeader|CarV2Header>
|
|
41
|
+
header: () => Promise<CarHeader | CarV2Header>
|
|
42
42
|
|
|
43
43
|
blocks: () => AsyncGenerator<Block>
|
|
44
44
|
|
|
@@ -57,7 +57,7 @@ export interface BytesReader extends Seekable {
|
|
|
57
57
|
pos: number
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
export interface BytesBufferReader extends Seekable{
|
|
60
|
+
export interface BytesBufferReader extends Seekable {
|
|
61
61
|
upTo: (length: number) => Uint8Array
|
|
62
62
|
|
|
63
63
|
exactly: (length: number, seek?: boolean) => Uint8Array
|
package/src/decoder-common.js
CHANGED
|
@@ -27,8 +27,6 @@ export function decodeVarint (bytes, seeker) {
|
|
|
27
27
|
const i = varint.decode(bytes)
|
|
28
28
|
seeker.seek(/** @type {number} */(varint.decode.bytes))
|
|
29
29
|
return i
|
|
30
|
-
/* c8 ignore next 2 */
|
|
31
|
-
// Node.js 12 c8 bug
|
|
32
30
|
}
|
|
33
31
|
|
|
34
32
|
/**
|
|
@@ -57,8 +55,6 @@ export function decodeV2Header (bytes) {
|
|
|
57
55
|
indexOffset: Number(dv.getBigUint64(offset += 8, true))
|
|
58
56
|
}
|
|
59
57
|
return header
|
|
60
|
-
/* c8 ignore next 2 */
|
|
61
|
-
// Node.js 12 c8 bug
|
|
62
58
|
}
|
|
63
59
|
|
|
64
60
|
/**
|
package/src/decoder.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { decode as decodeDagCbor } from '@ipld/dag-cbor'
|
|
1
2
|
import { CID } from 'multiformats/cid'
|
|
2
3
|
import * as Digest from 'multiformats/hashes/digest'
|
|
3
|
-
import { decode as decodeDagCbor } from '@ipld/dag-cbor'
|
|
4
|
-
import { CarHeader as headerValidator } from './header-validator.js'
|
|
5
4
|
import { CIDV0_BYTES, decodeV2Header, decodeVarint, getMultihashLength, V2_HEADER_LENGTH } from './decoder-common.js'
|
|
5
|
+
import { CarHeader as headerValidator } from './header-validator.js'
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @typedef {import('./api').Block} Block
|
|
@@ -51,8 +51,6 @@ export async function readHeader (reader, strictVersion) {
|
|
|
51
51
|
reader.seek(v2Header.dataOffset - reader.pos)
|
|
52
52
|
const v1Header = await readHeader(reader, 1)
|
|
53
53
|
return Object.assign(v1Header, v2Header)
|
|
54
|
-
/* c8 ignore next 2 */
|
|
55
|
-
// Node.js 12 c8 bug
|
|
56
54
|
}
|
|
57
55
|
|
|
58
56
|
/**
|
|
@@ -76,8 +74,6 @@ async function readCid (reader) {
|
|
|
76
74
|
const bytes = await reader.exactly(getMultihashLength(await reader.upTo(8)), true)
|
|
77
75
|
const multihash = Digest.decode(bytes)
|
|
78
76
|
return CID.create(version, codec, multihash)
|
|
79
|
-
/* c8 ignore next 2 */
|
|
80
|
-
// Node.js 12 c8 bug
|
|
81
77
|
}
|
|
82
78
|
|
|
83
79
|
/**
|
|
@@ -103,8 +99,6 @@ export async function readBlockHead (reader) {
|
|
|
103
99
|
const blockLength = length - Number(reader.pos - start) // subtract CID length
|
|
104
100
|
|
|
105
101
|
return { cid, length, blockLength }
|
|
106
|
-
/* c8 ignore next 2 */
|
|
107
|
-
// Node.js 12 c8 bug
|
|
108
102
|
}
|
|
109
103
|
|
|
110
104
|
/**
|
|
@@ -115,8 +109,6 @@ async function readBlock (reader) {
|
|
|
115
109
|
const { cid, blockLength } = await readBlockHead(reader)
|
|
116
110
|
const bytes = await reader.exactly(blockLength, true)
|
|
117
111
|
return { bytes, cid }
|
|
118
|
-
/* c8 ignore next 2 */
|
|
119
|
-
// Node.js 12 c8 bug
|
|
120
112
|
}
|
|
121
113
|
|
|
122
114
|
/**
|
|
@@ -129,8 +121,6 @@ async function readBlockIndex (reader) {
|
|
|
129
121
|
const index = { cid, length, blockLength, offset, blockOffset: reader.pos }
|
|
130
122
|
reader.seek(index.blockLength)
|
|
131
123
|
return index
|
|
132
|
-
/* c8 ignore next 2 */
|
|
133
|
-
// Node.js 12 c8 bug
|
|
134
124
|
}
|
|
135
125
|
|
|
136
126
|
/**
|
|
@@ -150,8 +140,6 @@ export function createDecoder (reader) {
|
|
|
150
140
|
reader = limitReader(reader, header.dataSize - v1length)
|
|
151
141
|
}
|
|
152
142
|
return header
|
|
153
|
-
/* c8 ignore next 2 */
|
|
154
|
-
// Node.js 12 c8 bug
|
|
155
143
|
})()
|
|
156
144
|
|
|
157
145
|
return {
|
|
@@ -187,9 +175,7 @@ export function bytesReader (bytes) {
|
|
|
187
175
|
return {
|
|
188
176
|
async upTo (length) {
|
|
189
177
|
const out = bytes.subarray(pos, pos + Math.min(length, bytes.length - pos))
|
|
190
|
-
/* c8 ignore next 2 */
|
|
191
178
|
return out
|
|
192
|
-
// Node.js 12 c8 bug
|
|
193
179
|
},
|
|
194
180
|
|
|
195
181
|
async exactly (length, seek = false) {
|
|
@@ -201,8 +187,6 @@ export function bytesReader (bytes) {
|
|
|
201
187
|
pos += length
|
|
202
188
|
}
|
|
203
189
|
return out
|
|
204
|
-
/* c8 ignore next 2 */
|
|
205
|
-
// Node.js 12 c8 bug
|
|
206
190
|
},
|
|
207
191
|
|
|
208
192
|
seek (length) {
|
|
@@ -266,8 +250,6 @@ export function chunkReader (readChunk /*, closer */) {
|
|
|
266
250
|
await read(length)
|
|
267
251
|
}
|
|
268
252
|
return currentChunk.subarray(offset, offset + Math.min(currentChunk.length - offset, length))
|
|
269
|
-
/* c8 ignore next 2 */
|
|
270
|
-
// Node.js 12 c8 bug
|
|
271
253
|
},
|
|
272
254
|
|
|
273
255
|
async exactly (length, seek = false) {
|
|
@@ -283,8 +265,6 @@ export function chunkReader (readChunk /*, closer */) {
|
|
|
283
265
|
offset += length
|
|
284
266
|
}
|
|
285
267
|
return out
|
|
286
|
-
/* c8 ignore next 2 */
|
|
287
|
-
// Node.js 12 c8 bug
|
|
288
268
|
},
|
|
289
269
|
|
|
290
270
|
seek (length) {
|
|
@@ -315,8 +295,6 @@ export function asyncIterableReader (asyncIterable) {
|
|
|
315
295
|
return null
|
|
316
296
|
}
|
|
317
297
|
return next.value
|
|
318
|
-
/* c8 ignore next 2 */
|
|
319
|
-
// Node.js 12 c8 bug
|
|
320
298
|
}
|
|
321
299
|
|
|
322
300
|
return chunkReader(readChunk)
|
|
@@ -343,8 +321,6 @@ export function limitReader (reader, byteLimit) {
|
|
|
343
321
|
bytes = bytes.subarray(0, byteLimit - bytesRead)
|
|
344
322
|
}
|
|
345
323
|
return bytes
|
|
346
|
-
/* c8 ignore next 2 */
|
|
347
|
-
// Node.js 12 c8 bug
|
|
348
324
|
},
|
|
349
325
|
|
|
350
326
|
async exactly (length, seek = false) {
|
|
@@ -356,8 +332,6 @@ export function limitReader (reader, byteLimit) {
|
|
|
356
332
|
bytesRead += length
|
|
357
333
|
}
|
|
358
334
|
return bytes
|
|
359
|
-
/* c8 ignore next 2 */
|
|
360
|
-
// Node.js 12 c8 bug
|
|
361
335
|
},
|
|
362
336
|
|
|
363
337
|
seek (length) {
|
package/src/encoder.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import varint from 'varint'
|
|
2
1
|
import { encode as dagCborEncode } from '@ipld/dag-cbor'
|
|
2
|
+
import varint from 'varint'
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* @typedef {import('multiformats').CID} CID
|
|
@@ -60,8 +60,6 @@ function createEncoder (writer) {
|
|
|
60
60
|
*/
|
|
61
61
|
async close () {
|
|
62
62
|
await writer.end()
|
|
63
|
-
/* c8 ignore next 2 */
|
|
64
|
-
// Node.js 12 c8 bug
|
|
65
63
|
}
|
|
66
64
|
}
|
|
67
65
|
}
|
package/src/index-browser.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CarBufferReader } from './buffer-reader.js'
|
|
2
|
+
import * as CarBufferWriter from './buffer-writer.js'
|
|
3
|
+
import { CarIndexedReader } from './indexed-reader-browser.js'
|
|
2
4
|
import { CarIndexer } from './indexer.js'
|
|
3
5
|
import { CarBlockIterator, CarCIDIterator } from './iterator.js'
|
|
6
|
+
import { CarReader } from './reader-browser.js'
|
|
4
7
|
import { CarWriter } from './writer-browser.js'
|
|
5
|
-
import { CarIndexedReader } from './indexed-reader-browser.js'
|
|
6
|
-
import { CarBufferReader } from './buffer-reader.js'
|
|
7
|
-
import * as CarBufferWriter from './buffer-writer.js'
|
|
8
8
|
|
|
9
9
|
export {
|
|
10
10
|
CarReader,
|
package/src/index.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { CarReader } from './reader.js'
|
|
2
1
|
import { CarBufferReader } from './buffer-reader.js'
|
|
2
|
+
import * as CarBufferWriter from './buffer-writer.js'
|
|
3
|
+
import { CarIndexedReader } from './indexed-reader.js'
|
|
3
4
|
import { CarIndexer } from './indexer.js'
|
|
4
5
|
import { CarBlockIterator, CarCIDIterator } from './iterator.js'
|
|
6
|
+
import { CarReader } from './reader.js'
|
|
5
7
|
import { CarWriter } from './writer.js'
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
|
|
9
|
+
// @see https://www.iana.org/assignments/media-types/application/vnd.ipld.car
|
|
10
|
+
export const contentType = 'application/vnd.ipld.car'
|
|
8
11
|
|
|
9
12
|
export {
|
|
10
13
|
CarReader,
|
package/src/indexed-reader.js
CHANGED
|
@@ -76,8 +76,6 @@ export class CarIndexedReader {
|
|
|
76
76
|
*/
|
|
77
77
|
async getRoots () {
|
|
78
78
|
return this._roots
|
|
79
|
-
/* c8 ignore next 2 */
|
|
80
|
-
// Node.js 12 c8 bug
|
|
81
79
|
}
|
|
82
80
|
|
|
83
81
|
/**
|
|
@@ -92,8 +90,6 @@ export class CarIndexedReader {
|
|
|
92
90
|
*/
|
|
93
91
|
async has (key) {
|
|
94
92
|
return this._index.has(key.toString())
|
|
95
|
-
/* c8 ignore next 2 */
|
|
96
|
-
// Node.js 12 c8 bug
|
|
97
93
|
}
|
|
98
94
|
|
|
99
95
|
/**
|
|
@@ -122,8 +118,6 @@ export class CarIndexedReader {
|
|
|
122
118
|
blockOffset: blockIndex.blockOffset
|
|
123
119
|
}
|
|
124
120
|
return NodeCarReader.readRaw(this._fd, readIndex)
|
|
125
|
-
/* c8 ignore next 2 */
|
|
126
|
-
// Node.js 12 c8 bug
|
|
127
121
|
}
|
|
128
122
|
|
|
129
123
|
/**
|
|
@@ -177,8 +171,6 @@ export class CarIndexedReader {
|
|
|
177
171
|
if (this._fd) {
|
|
178
172
|
return this._fd.close()
|
|
179
173
|
}
|
|
180
|
-
/* c8 ignore next 2 */
|
|
181
|
-
// Node.js 12 c8 bug
|
|
182
174
|
}
|
|
183
175
|
|
|
184
176
|
/**
|
|
@@ -213,8 +205,6 @@ export class CarIndexedReader {
|
|
|
213
205
|
order.push(cidStr)
|
|
214
206
|
}
|
|
215
207
|
return new CarIndexedReader(iterable.version, path, await iterable.getRoots(), index, order)
|
|
216
|
-
/* c8 ignore next 2 */
|
|
217
|
-
// Node.js 12 c8 bug
|
|
218
208
|
}
|
|
219
209
|
}
|
|
220
210
|
|
package/src/indexer.js
CHANGED
|
@@ -70,8 +70,6 @@ export class CarIndexer {
|
|
|
70
70
|
*/
|
|
71
71
|
async getRoots () {
|
|
72
72
|
return this._roots
|
|
73
|
-
/* c8 ignore next 2 */
|
|
74
|
-
// Node.js 12 c8 bug
|
|
75
73
|
}
|
|
76
74
|
|
|
77
75
|
/**
|
|
@@ -97,8 +95,6 @@ export class CarIndexer {
|
|
|
97
95
|
throw new TypeError('fromBytes() requires a Uint8Array')
|
|
98
96
|
}
|
|
99
97
|
return decodeIndexerComplete(bytesReader(bytes))
|
|
100
|
-
/* c8 ignore next 2 */
|
|
101
|
-
// Node.js 12 c8 bug
|
|
102
98
|
}
|
|
103
99
|
|
|
104
100
|
/**
|
|
@@ -118,8 +114,6 @@ export class CarIndexer {
|
|
|
118
114
|
throw new TypeError('fromIterable() requires an async iterable')
|
|
119
115
|
}
|
|
120
116
|
return decodeIndexerComplete(asyncIterableReader(asyncIterable))
|
|
121
|
-
/* c8 ignore next 2 */
|
|
122
|
-
// Node.js 12 c8 bug
|
|
123
117
|
}
|
|
124
118
|
}
|
|
125
119
|
|
|
@@ -133,6 +127,4 @@ async function decodeIndexerComplete (reader) {
|
|
|
133
127
|
const { version, roots } = await decoder.header()
|
|
134
128
|
|
|
135
129
|
return new CarIndexer(version, roots, decoder.blocksIndex())
|
|
136
|
-
/* c8 ignore next 2 */
|
|
137
|
-
// Node.js 12 c8 bug
|
|
138
130
|
}
|
package/src/iterator-channel.js
CHANGED
|
@@ -53,8 +53,6 @@ export function create () {
|
|
|
53
53
|
const drainer = makeDrainer()
|
|
54
54
|
outWaitResolver()
|
|
55
55
|
await drainer
|
|
56
|
-
/* c8 ignore next 2 */
|
|
57
|
-
// Node.js 12 c8 bug
|
|
58
56
|
}
|
|
59
57
|
}
|
|
60
58
|
|
|
@@ -86,8 +84,6 @@ export function create () {
|
|
|
86
84
|
}
|
|
87
85
|
|
|
88
86
|
return outWait
|
|
89
|
-
/* c8 ignore next 2 */
|
|
90
|
-
// Node.js 12 c8 bug
|
|
91
87
|
}
|
|
92
88
|
}
|
|
93
89
|
|
package/src/iterator.js
CHANGED
|
@@ -38,8 +38,6 @@ export class CarIteratorBase {
|
|
|
38
38
|
*/
|
|
39
39
|
async getRoots () {
|
|
40
40
|
return this._roots
|
|
41
|
-
/* c8 ignore next 2 */
|
|
42
|
-
// Node.js 12 c8 bug
|
|
43
41
|
}
|
|
44
42
|
}
|
|
45
43
|
|
|
@@ -114,8 +112,6 @@ export class CarBlockIterator extends CarIteratorBase {
|
|
|
114
112
|
static async fromBytes (bytes) {
|
|
115
113
|
const { version, roots, iterator } = await fromBytes(bytes)
|
|
116
114
|
return new CarBlockIterator(version, roots, iterator)
|
|
117
|
-
/* c8 ignore next 2 */
|
|
118
|
-
// Node.js 12 c8 bug
|
|
119
115
|
}
|
|
120
116
|
|
|
121
117
|
/**
|
|
@@ -133,8 +129,6 @@ export class CarBlockIterator extends CarIteratorBase {
|
|
|
133
129
|
static async fromIterable (asyncIterable) {
|
|
134
130
|
const { version, roots, iterator } = await fromIterable(asyncIterable)
|
|
135
131
|
return new CarBlockIterator(version, roots, iterator)
|
|
136
|
-
/* c8 ignore next 2 */
|
|
137
|
-
// Node.js 12 c8 bug
|
|
138
132
|
}
|
|
139
133
|
}
|
|
140
134
|
|
|
@@ -199,8 +193,6 @@ export class CarCIDIterator extends CarIteratorBase {
|
|
|
199
193
|
return next
|
|
200
194
|
}
|
|
201
195
|
return { done: false, value: next.value.cid }
|
|
202
|
-
/* c8 ignore next 2 */
|
|
203
|
-
// Node.js 12 c8 bug
|
|
204
196
|
}
|
|
205
197
|
}
|
|
206
198
|
}
|
|
@@ -220,8 +212,6 @@ export class CarCIDIterator extends CarIteratorBase {
|
|
|
220
212
|
static async fromBytes (bytes) {
|
|
221
213
|
const { version, roots, iterator } = await fromBytes(bytes)
|
|
222
214
|
return new CarCIDIterator(version, roots, iterator)
|
|
223
|
-
/* c8 ignore next 2 */
|
|
224
|
-
// Node.js 12 c8 bug
|
|
225
215
|
}
|
|
226
216
|
|
|
227
217
|
/**
|
|
@@ -240,8 +230,6 @@ export class CarCIDIterator extends CarIteratorBase {
|
|
|
240
230
|
static async fromIterable (asyncIterable) {
|
|
241
231
|
const { version, roots, iterator } = await fromIterable(asyncIterable)
|
|
242
232
|
return new CarCIDIterator(version, roots, iterator)
|
|
243
|
-
/* c8 ignore next 2 */
|
|
244
|
-
// Node.js 12 c8 bug
|
|
245
233
|
}
|
|
246
234
|
}
|
|
247
235
|
|
|
@@ -254,8 +242,6 @@ async function fromBytes (bytes) {
|
|
|
254
242
|
throw new TypeError('fromBytes() requires a Uint8Array')
|
|
255
243
|
}
|
|
256
244
|
return decodeIterator(bytesReader(bytes))
|
|
257
|
-
/* c8 ignore next 2 */
|
|
258
|
-
// Node.js 12 c8 bug
|
|
259
245
|
}
|
|
260
246
|
|
|
261
247
|
/**
|
|
@@ -267,8 +253,6 @@ async function fromIterable (asyncIterable) {
|
|
|
267
253
|
throw new TypeError('fromIterable() requires an async iterable')
|
|
268
254
|
}
|
|
269
255
|
return decodeIterator(asyncIterableReader(asyncIterable))
|
|
270
|
-
/* c8 ignore next 2 */
|
|
271
|
-
// Node.js 12 c8 bug
|
|
272
256
|
}
|
|
273
257
|
|
|
274
258
|
/**
|
|
@@ -280,6 +264,4 @@ async function decodeIterator (reader) {
|
|
|
280
264
|
const decoder = createDecoder(reader)
|
|
281
265
|
const { version, roots } = await decoder.header()
|
|
282
266
|
return { version, roots, iterator: decoder.blocks() }
|
|
283
|
-
/* c8 ignore next 2 */
|
|
284
|
-
// Node.js 12 c8 bug
|
|
285
267
|
}
|
package/src/reader-browser.js
CHANGED
|
@@ -63,8 +63,6 @@ export class CarReader {
|
|
|
63
63
|
*/
|
|
64
64
|
async getRoots () {
|
|
65
65
|
return this._header.roots
|
|
66
|
-
/* c8 ignore next 2 */
|
|
67
|
-
// Node.js 12 c8 bug
|
|
68
66
|
}
|
|
69
67
|
|
|
70
68
|
/**
|
|
@@ -80,8 +78,6 @@ export class CarReader {
|
|
|
80
78
|
*/
|
|
81
79
|
async has (key) {
|
|
82
80
|
return this._keys.indexOf(key.toString()) > -1
|
|
83
|
-
/* c8 ignore next 2 */
|
|
84
|
-
// Node.js 12 c8 bug
|
|
85
81
|
}
|
|
86
82
|
|
|
87
83
|
/**
|
|
@@ -100,8 +96,6 @@ export class CarReader {
|
|
|
100
96
|
async get (key) {
|
|
101
97
|
const index = this._keys.indexOf(key.toString())
|
|
102
98
|
return index > -1 ? this._blocks[index] : undefined
|
|
103
|
-
/* c8 ignore next 2 */
|
|
104
|
-
// Node.js 12 c8 bug
|
|
105
99
|
}
|
|
106
100
|
|
|
107
101
|
/**
|
|
@@ -155,8 +149,6 @@ export class CarReader {
|
|
|
155
149
|
throw new TypeError('fromBytes() requires a Uint8Array')
|
|
156
150
|
}
|
|
157
151
|
return decodeReaderComplete(bytesReader(bytes))
|
|
158
|
-
/* c8 ignore next 2 */
|
|
159
|
-
// Node.js 12 c8 bug
|
|
160
152
|
}
|
|
161
153
|
|
|
162
154
|
/**
|
|
@@ -180,8 +172,6 @@ export class CarReader {
|
|
|
180
172
|
throw new TypeError('fromIterable() requires an async iterable')
|
|
181
173
|
}
|
|
182
174
|
return decodeReaderComplete(asyncIterableReader(asyncIterable))
|
|
183
|
-
/* c8 ignore next 2 */
|
|
184
|
-
// Node.js 12 c8 bug
|
|
185
175
|
}
|
|
186
176
|
}
|
|
187
177
|
|
|
@@ -199,8 +189,6 @@ export async function decodeReaderComplete (reader) {
|
|
|
199
189
|
}
|
|
200
190
|
|
|
201
191
|
return new CarReader(header, blocks)
|
|
202
|
-
/* c8 ignore next 2 */
|
|
203
|
-
// Node.js 12 c8 bug
|
|
204
192
|
}
|
|
205
193
|
|
|
206
194
|
export const __browser = true
|
package/src/reader.js
CHANGED
package/src/writer-browser.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CID } from 'multiformats/cid'
|
|
2
|
+
import { bytesReader, readHeader } from './decoder.js'
|
|
2
3
|
import { createEncoder, createHeader } from './encoder.js'
|
|
3
4
|
import { create as iteratorChannel } from './iterator-channel.js'
|
|
4
|
-
import { bytesReader, readHeader } from './decoder.js'
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @typedef {import('./api').Block} Block
|
|
@@ -83,8 +83,6 @@ export class CarWriter {
|
|
|
83
83
|
}
|
|
84
84
|
this._mutex = this._mutex.then(() => this._encoder.writeBlock({ cid, bytes: block.bytes }))
|
|
85
85
|
return this._mutex
|
|
86
|
-
/* c8 ignore next 2 */
|
|
87
|
-
// Node.js 12 c8 bug
|
|
88
86
|
}
|
|
89
87
|
|
|
90
88
|
/**
|
|
@@ -104,8 +102,6 @@ export class CarWriter {
|
|
|
104
102
|
await this._mutex
|
|
105
103
|
this._ended = true
|
|
106
104
|
return this._encoder.close()
|
|
107
|
-
/* c8 ignore next 2 */
|
|
108
|
-
// Node.js 12 c8 bug
|
|
109
105
|
}
|
|
110
106
|
|
|
111
107
|
/**
|
|
@@ -181,8 +177,6 @@ export class CarWriter {
|
|
|
181
177
|
}
|
|
182
178
|
bytes.set(newHeader, 0)
|
|
183
179
|
return bytes
|
|
184
|
-
/* c8 ignore next 2 */
|
|
185
|
-
// Node.js 12 c8 bug
|
|
186
180
|
}
|
|
187
181
|
}
|
|
188
182
|
|
package/src/writer.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import fs from 'fs'
|
|
2
2
|
import { promisify } from 'util'
|
|
3
|
-
import { CarWriter as BrowserCarWriter } from './writer-browser.js'
|
|
4
3
|
import { readHeader, chunkReader } from './decoder.js'
|
|
5
4
|
import { createHeader } from './encoder.js'
|
|
5
|
+
import { CarWriter as BrowserCarWriter } from './writer-browser.js'
|
|
6
6
|
|
|
7
7
|
const fsread = promisify(fs.read)
|
|
8
8
|
const fswrite = promisify(fs.write)
|
|
@@ -64,8 +64,6 @@ export class CarWriter extends BrowserCarWriter {
|
|
|
64
64
|
const read = await readChunk()
|
|
65
65
|
offset += read
|
|
66
66
|
// TODO: test header > 256 bytes
|
|
67
|
-
// also Node.js 12 c8 bug
|
|
68
|
-
/* c8 ignore next 2 */
|
|
69
67
|
return read < chunkSize ? bytes.subarray(0, read) : bytes
|
|
70
68
|
})
|
|
71
69
|
|