@ipld/car 5.4.1 → 5.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/dist/index.min.js +3 -3
- package/dist/index.min.js.map +4 -4
- package/dist/src/buffer-decoder.d.ts +15 -15
- package/dist/src/buffer-decoder.d.ts.map +1 -1
- package/dist/src/buffer-reader-browser.d.ts +12 -12
- package/dist/src/buffer-reader-browser.d.ts.map +1 -1
- package/dist/src/buffer-reader.d.ts +3 -3
- package/dist/src/buffer-reader.d.ts.map +1 -1
- package/dist/src/buffer-writer.d.ts +20 -20
- package/dist/src/buffer-writer.d.ts.map +1 -1
- package/dist/src/decoder-common.d.ts +4 -4
- package/dist/src/decoder-common.d.ts.map +1 -1
- package/dist/src/decoder.d.ts +18 -18
- package/dist/src/decoder.d.ts.map +1 -1
- package/dist/src/encoder.d.ts +5 -5
- package/dist/src/encoder.d.ts.map +1 -1
- package/dist/src/header-validator.d.ts +2 -2
- package/dist/src/header-validator.d.ts.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/indexed-reader-browser.d.ts.map +1 -1
- package/dist/src/indexed-reader.d.ts +9 -10
- package/dist/src/indexed-reader.d.ts.map +1 -1
- package/dist/src/indexer.d.ts +10 -10
- package/dist/src/indexer.d.ts.map +1 -1
- package/dist/src/iterator-channel.d.ts +2 -2
- package/dist/src/iterator-channel.d.ts.map +1 -1
- package/dist/src/iterator.d.ts +8 -8
- package/dist/src/iterator.d.ts.map +1 -1
- package/dist/src/promise-fs-opts.d.ts.map +1 -1
- package/dist/src/reader-browser.d.ts +13 -13
- package/dist/src/reader-browser.d.ts.map +1 -1
- package/dist/src/reader.d.ts +7 -7
- package/dist/src/reader.d.ts.map +1 -1
- package/dist/src/writer-browser.d.ts +13 -13
- package/dist/src/writer-browser.d.ts.map +1 -1
- package/dist/src/writer.d.ts +4 -4
- package/dist/src/writer.d.ts.map +1 -1
- package/package.json +12 -4
- package/src/buffer-decoder.js +7 -7
- package/src/buffer-reader-browser.js +5 -5
- package/src/buffer-reader.js +3 -3
- package/src/buffer-writer.js +5 -5
- package/src/decoder-common.js +2 -2
- package/src/decoder.js +10 -10
- package/src/encoder.js +3 -3
- package/src/header-validator.js +62 -20
- package/src/indexed-reader.js +4 -4
- package/src/indexer.js +4 -4
- package/src/iterator-channel.js +1 -1
- package/src/iterator.js +3 -3
- package/src/reader-browser.js +5 -5
- package/src/reader.js +3 -3
- package/src/writer-browser.js +5 -5
- package/src/writer.js +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @typedef {import('./api').Block} Block
|
|
3
|
-
* @typedef {import('./api').BlockWriter} BlockWriter
|
|
4
|
-
* @typedef {import('./api').WriterChannel} WriterChannel
|
|
5
|
-
* @typedef {import('./coding').CarEncoder} CarEncoder
|
|
6
|
-
* @typedef {import('./coding').IteratorChannel<Uint8Array>} IteratorChannel
|
|
2
|
+
* @typedef {import('./api.js').Block} Block
|
|
3
|
+
* @typedef {import('./api.js').BlockWriter} BlockWriter
|
|
4
|
+
* @typedef {import('./api.js').WriterChannel} WriterChannel
|
|
5
|
+
* @typedef {import('./coding.js').CarEncoder} CarEncoder
|
|
6
|
+
* @typedef {import('./coding.js').IteratorChannel<Uint8Array>} IteratorChannel
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
9
|
* Provides a writer interface for the creation of CAR files.
|
|
@@ -98,7 +98,7 @@ export class CarWriter implements BlockWriter {
|
|
|
98
98
|
* @param {CarEncoder} encoder
|
|
99
99
|
*/
|
|
100
100
|
constructor(roots: CID[], encoder: CarEncoder);
|
|
101
|
-
_encoder: import("./coding").CarEncoder;
|
|
101
|
+
_encoder: import("./coding.js").CarEncoder;
|
|
102
102
|
/** @type {Promise<void>} */
|
|
103
103
|
_mutex: Promise<void>;
|
|
104
104
|
_ended: boolean;
|
|
@@ -141,15 +141,15 @@ export class CarWriterOut implements AsyncIterable<Uint8Array> {
|
|
|
141
141
|
* @param {AsyncIterator<Uint8Array>} iterator
|
|
142
142
|
*/
|
|
143
143
|
constructor(iterator: AsyncIterator<Uint8Array>);
|
|
144
|
-
_iterator: AsyncIterator<Uint8Array
|
|
144
|
+
_iterator: AsyncIterator<Uint8Array<ArrayBufferLike>, any, any>;
|
|
145
145
|
_iterating: boolean | undefined;
|
|
146
|
-
[Symbol.asyncIterator](): AsyncIterator<Uint8Array
|
|
146
|
+
[Symbol.asyncIterator](): AsyncIterator<Uint8Array<ArrayBufferLike>, any, any>;
|
|
147
147
|
}
|
|
148
148
|
export const __browser: true;
|
|
149
|
-
export type Block = import(
|
|
150
|
-
export type BlockWriter = import(
|
|
151
|
-
export type WriterChannel = import(
|
|
152
|
-
export type CarEncoder = import(
|
|
153
|
-
export type IteratorChannel = import(
|
|
149
|
+
export type Block = import("./api.js").Block;
|
|
150
|
+
export type BlockWriter = import("./api.js").BlockWriter;
|
|
151
|
+
export type WriterChannel = import("./api.js").WriterChannel;
|
|
152
|
+
export type CarEncoder = import("./coding.js").CarEncoder;
|
|
153
|
+
export type IteratorChannel = import("./coding.js").IteratorChannel<Uint8Array>;
|
|
154
154
|
import { CID } from 'multiformats/cid';
|
|
155
155
|
//# sourceMappingURL=writer-browser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer-browser.d.ts","sourceRoot":"","sources":["../../src/writer-browser.js"],"names":[],"mappings":"AAKA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH;
|
|
1
|
+
{"version":3,"file":"writer-browser.d.ts","sourceRoot":"","sources":["../../src/writer-browser.js"],"names":[],"mappings":"AAKA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,kCAFgB,WAAW;IAoEzB;;;;;;;;;;OAUG;IACH,qBAJW,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,GAChB,aAAa,CASzB;IAED;;;;;;;;;;;;;OAaG;IACH,yBAHa,aAAa,CASzB;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,iCAPW,UAAU,SACV,GAAG,EAAE,GAIH,OAAO,CAAC,UAAU,CAAC,CAW/B;IA1ID;;;OAGG;IACH,mBAHW,GAAG,EAAE,WACL,UAAU,EAOpB;IAJC,2CAAuB;IACvB,4BAA4B;IAC5B,QADW,OAAO,CAAC,IAAI,CAAC,CACa;IACrC,gBAAmB;IAGrB;;;;;;;;;;OAUG;IACH,WAJW,KAAK,GACH,OAAO,CAAC,IAAI,CAAC,CAgBzB;IAED;;;;;;;;;OASG;IACH,SAFa,OAAO,CAAC,IAAI,CAAC,CASzB;IAED;;;;OAIG;IACH,WAFa,MAAM,CAIlB;CA4EF;AAED;;;GAGG;AACH,qCAFgB,aAAa,CAAC,UAAU;IAGtC;;OAEG;IACH,sBAFW,aAAa,CAAC,UAAU,CAAC,EAInC;IADC,gEAAyB;IAOzB,gCAAsB;IAJxB,+EAMC;CACF;AAuCD,wBAAyB,IAAI,CAAA;oBAnPhB,OAAO,UAAU,EAAE,KAAK;0BACxB,OAAO,UAAU,EAAE,WAAW;4BAC9B,OAAO,UAAU,EAAE,aAAa;yBAChC,OAAO,aAAa,EAAE,UAAU;8BAChC,OAAO,aAAa,EAAE,eAAe,CAAC,UAAU,CAAC;oBAV1C,kBAAkB"}
|
package/dist/src/writer.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @typedef {import('multiformats/cid').CID} CID
|
|
3
|
-
* @typedef {import('./api').BlockWriter} BlockWriter
|
|
3
|
+
* @typedef {import('./api.js').BlockWriter} BlockWriter
|
|
4
4
|
* @typedef {import('fs').promises.FileHandle} FileHandle
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
@@ -38,8 +38,8 @@ export class CarWriter extends BrowserCarWriter implements BlockWriter {
|
|
|
38
38
|
static updateRootsInFile(fd: FileHandle | number, roots: CID[]): Promise<void>;
|
|
39
39
|
}
|
|
40
40
|
export const __browser: boolean;
|
|
41
|
-
export type CID = import(
|
|
42
|
-
export type BlockWriter = import(
|
|
43
|
-
export type FileHandle = import(
|
|
41
|
+
export type CID = import("multiformats/cid").CID;
|
|
42
|
+
export type BlockWriter = import("./api.js").BlockWriter;
|
|
43
|
+
export type FileHandle = import("fs").promises.FileHandle;
|
|
44
44
|
import { CarWriter as BrowserCarWriter } from './writer-browser.js';
|
|
45
45
|
//# sourceMappingURL=writer.d.ts.map
|
package/dist/src/writer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/writer.js"],"names":[],"mappings":"AAKA;;;;GAIG;AAEH;;;GAGG;AACH;
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/writer.js"],"names":[],"mappings":"AAKA;;;;GAIG;AAEH;;;GAGG;AACH,2DAFgB,WAAW;IAGzB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,6BATW,UAAU,GAAG,MAAM,SAGnB,GAAG,EAAE,GAIH,OAAO,CAAC,IAAI,CAAC,CAoCzB;CACF;AAED,gCAA+B;kBA1ElB,OAAO,kBAAkB,EAAE,GAAG;0BAC9B,OAAO,UAAU,EAAE,WAAW;yBAC9B,OAAO,IAAI,EAAE,QAAQ,CAAC,UAAU;8CALC,qBAAqB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ipld/car",
|
|
3
|
-
"version": "5.4.
|
|
3
|
+
"version": "5.4.3",
|
|
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",
|
|
@@ -177,7 +177,15 @@
|
|
|
177
177
|
"@semantic-release/changelog",
|
|
178
178
|
"@semantic-release/npm",
|
|
179
179
|
"@semantic-release/github",
|
|
180
|
-
|
|
180
|
+
[
|
|
181
|
+
"@semantic-release/git",
|
|
182
|
+
{
|
|
183
|
+
"assets": [
|
|
184
|
+
"CHANGELOG.md",
|
|
185
|
+
"package.json"
|
|
186
|
+
]
|
|
187
|
+
}
|
|
188
|
+
]
|
|
181
189
|
]
|
|
182
190
|
},
|
|
183
191
|
"scripts": {
|
|
@@ -200,7 +208,7 @@
|
|
|
200
208
|
},
|
|
201
209
|
"dependencies": {
|
|
202
210
|
"@ipld/dag-cbor": "^9.0.7",
|
|
203
|
-
"cborg": "^
|
|
211
|
+
"cborg": "^5.0.0",
|
|
204
212
|
"multiformats": "^13.0.0",
|
|
205
213
|
"varint": "^6.0.0"
|
|
206
214
|
},
|
|
@@ -208,7 +216,7 @@
|
|
|
208
216
|
"@ipld/dag-pb": "^4.0.7",
|
|
209
217
|
"@ipld/garbage": "^6.0.5",
|
|
210
218
|
"@types/varint": "^6.0.3",
|
|
211
|
-
"aegir": "^
|
|
219
|
+
"aegir": "^47.0.6",
|
|
212
220
|
"jsdoc4readme": "^1.4.0"
|
|
213
221
|
},
|
|
214
222
|
"browser": {
|
package/src/buffer-decoder.js
CHANGED
|
@@ -5,13 +5,13 @@ import { CIDV0_BYTES, decodeV2Header, decodeVarint, getMultihashLength, V2_HEADE
|
|
|
5
5
|
import { CarV1HeaderOrV2Pragma } from './header-validator.js'
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* @typedef {import('./api').Block} Block
|
|
9
|
-
* @typedef {import('./api').BlockHeader} BlockHeader
|
|
10
|
-
* @typedef {import('./api').BlockIndex} BlockIndex
|
|
11
|
-
* @typedef {import('./coding').BytesBufferReader} BytesBufferReader
|
|
12
|
-
* @typedef {import('./coding').CarHeader} CarHeader
|
|
13
|
-
* @typedef {import('./coding').CarV2Header} CarV2Header
|
|
14
|
-
* @typedef {import('./coding').CarV2FixedHeader} CarV2FixedHeader
|
|
8
|
+
* @typedef {import('./api.js').Block} Block
|
|
9
|
+
* @typedef {import('./api.js').BlockHeader} BlockHeader
|
|
10
|
+
* @typedef {import('./api.js').BlockIndex} BlockIndex
|
|
11
|
+
* @typedef {import('./coding.js').BytesBufferReader} BytesBufferReader
|
|
12
|
+
* @typedef {import('./coding.js').CarHeader} CarHeader
|
|
13
|
+
* @typedef {import('./coding.js').CarV2Header} CarV2Header
|
|
14
|
+
* @typedef {import('./coding.js').CarV2FixedHeader} CarV2FixedHeader
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
/**
|
|
@@ -2,10 +2,10 @@ import * as BufferDecoder from './buffer-decoder.js'
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @typedef {import('multiformats').CID} CID
|
|
5
|
-
* @typedef {import('./api').Block} Block
|
|
6
|
-
* @typedef {import('./api').CarBufferReader} ICarBufferReader
|
|
7
|
-
* @typedef {import('./coding').CarHeader} CarHeader
|
|
8
|
-
* @typedef {import('./coding').CarV2Header} CarV2Header
|
|
5
|
+
* @typedef {import('./api.js').Block} Block
|
|
6
|
+
* @typedef {import('./api.js').CarBufferReader} ICarBufferReader
|
|
7
|
+
* @typedef {import('./coding.js').CarHeader} CarHeader
|
|
8
|
+
* @typedef {import('./coding.js').CarV2Header} CarV2Header
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -42,7 +42,7 @@ export class CarBufferReader {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
|
-
* @property version
|
|
45
|
+
* @property {number} version of the CAR
|
|
46
46
|
* @memberof CarBufferReader
|
|
47
47
|
* @instance
|
|
48
48
|
*/
|
package/src/buffer-reader.js
CHANGED
|
@@ -2,9 +2,9 @@ import fs from 'fs'
|
|
|
2
2
|
import { CarBufferReader as BrowserCarBufferReader } from './buffer-reader-browser.js'
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* @typedef {import('./api').Block} Block
|
|
6
|
-
* @typedef {import('./api').BlockIndex} BlockIndex
|
|
7
|
-
* @typedef {import('./api').CarBufferReader} ICarBufferReader
|
|
5
|
+
* @typedef {import('./api.js').Block} Block
|
|
6
|
+
* @typedef {import('./api.js').BlockIndex} BlockIndex
|
|
7
|
+
* @typedef {import('./api.js').CarBufferReader} ICarBufferReader
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
const fsread = fs.readSync
|
package/src/buffer-writer.js
CHANGED
|
@@ -4,11 +4,11 @@ import { tokensToLength } from 'cborg/length'
|
|
|
4
4
|
import varint from 'varint'
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* @typedef {import('./api').CID} CID
|
|
8
|
-
* @typedef {import('./api').Block} Block
|
|
9
|
-
* @typedef {import('./api').CarBufferWriter} Writer
|
|
10
|
-
* @typedef {import('./api').CarBufferWriterOptions} Options
|
|
11
|
-
* @typedef {import('./coding').CarEncoder} CarEncoder
|
|
7
|
+
* @typedef {import('./api.js').CID} CID
|
|
8
|
+
* @typedef {import('./api.js').Block} Block
|
|
9
|
+
* @typedef {import('./api.js').CarBufferWriter} Writer
|
|
10
|
+
* @typedef {import('./api.js').CarBufferWriterOptions} Options
|
|
11
|
+
* @typedef {import('./coding.js').CarEncoder} CarEncoder
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
/**
|
package/src/decoder-common.js
CHANGED
|
@@ -17,7 +17,7 @@ export const V2_HEADER_LENGTH = /* characteristics */ 16 /* v1 offset */ + 8 /*
|
|
|
17
17
|
* ```
|
|
18
18
|
*
|
|
19
19
|
* @param {Uint8Array} bytes
|
|
20
|
-
* @param {import('./coding').Seekable} seeker
|
|
20
|
+
* @param {import('./coding.js').Seekable} seeker
|
|
21
21
|
* @returns {number}
|
|
22
22
|
*/
|
|
23
23
|
export function decodeVarint (bytes, seeker) {
|
|
@@ -38,7 +38,7 @@ export function decodeVarint (bytes, seeker) {
|
|
|
38
38
|
* ```
|
|
39
39
|
*
|
|
40
40
|
* @param {Uint8Array} bytes
|
|
41
|
-
* @returns {import('./coding').CarV2FixedHeader}
|
|
41
|
+
* @returns {import('./coding.js').CarV2FixedHeader}
|
|
42
42
|
*/
|
|
43
43
|
export function decodeV2Header (bytes) {
|
|
44
44
|
const dv = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength)
|
package/src/decoder.js
CHANGED
|
@@ -5,14 +5,14 @@ import { CIDV0_BYTES, decodeV2Header, decodeVarint, getMultihashLength, V2_HEADE
|
|
|
5
5
|
import { CarV1HeaderOrV2Pragma } from './header-validator.js'
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* @typedef {import('./api').Block} Block
|
|
9
|
-
* @typedef {import('./api').BlockHeader} BlockHeader
|
|
10
|
-
* @typedef {import('./api').BlockIndex} BlockIndex
|
|
11
|
-
* @typedef {import('./coding').BytesReader} BytesReader
|
|
12
|
-
* @typedef {import('./coding').CarHeader} CarHeader
|
|
13
|
-
* @typedef {import('./coding').CarV2Header} CarV2Header
|
|
14
|
-
* @typedef {import('./coding').CarV2FixedHeader} CarV2FixedHeader
|
|
15
|
-
* @typedef {import('./coding').CarDecoder} CarDecoder
|
|
8
|
+
* @typedef {import('./api.js').Block} Block
|
|
9
|
+
* @typedef {import('./api.js').BlockHeader} BlockHeader
|
|
10
|
+
* @typedef {import('./api.js').BlockIndex} BlockIndex
|
|
11
|
+
* @typedef {import('./coding.js').BytesReader} BytesReader
|
|
12
|
+
* @typedef {import('./coding.js').CarHeader} CarHeader
|
|
13
|
+
* @typedef {import('./coding.js').CarV2Header} CarV2Header
|
|
14
|
+
* @typedef {import('./coding.js').CarV2FixedHeader} CarV2FixedHeader
|
|
15
|
+
* @typedef {import('./coding.js').CarDecoder} CarDecoder
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
/**
|
|
@@ -201,10 +201,10 @@ export function bytesReader (bytes) {
|
|
|
201
201
|
}
|
|
202
202
|
|
|
203
203
|
/**
|
|
204
|
-
* @ignore
|
|
205
204
|
* reusable reader for streams and files, we just need a way to read an
|
|
206
205
|
* additional chunk (of some undetermined size) and a way to close the
|
|
207
206
|
* reader when finished
|
|
207
|
+
*
|
|
208
208
|
* @param {() => Promise<Uint8Array|null>} readChunk
|
|
209
209
|
* @returns {BytesReader}
|
|
210
210
|
*/
|
|
@@ -216,7 +216,7 @@ export function chunkReader (readChunk /*, closer */) {
|
|
|
216
216
|
|
|
217
217
|
const read = async (/** @type {number} */ length) => {
|
|
218
218
|
have = currentChunk.length - offset
|
|
219
|
-
const bufa = [currentChunk.subarray(offset)]
|
|
219
|
+
const bufa = /** @type {Uint8Array<ArrayBufferLike>[]} */([currentChunk.subarray(offset)])
|
|
220
220
|
while (have < length) {
|
|
221
221
|
const chunk = await readChunk()
|
|
222
222
|
if (chunk == null) {
|
package/src/encoder.js
CHANGED
|
@@ -3,9 +3,9 @@ import varint from 'varint'
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* @typedef {import('multiformats').CID} CID
|
|
6
|
-
* @typedef {import('./api').Block} Block
|
|
7
|
-
* @typedef {import('./coding').CarEncoder} CarEncoder
|
|
8
|
-
* @typedef {import('./coding').IteratorChannel_Writer<Uint8Array>} IteratorChannel_Writer
|
|
6
|
+
* @typedef {import('./api.js').Block} Block
|
|
7
|
+
* @typedef {import('./coding.js').CarEncoder} CarEncoder
|
|
8
|
+
* @typedef {import('./coding.js').IteratorChannel_Writer<Uint8Array>} IteratorChannel_Writer
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
const CAR_V1_VERSION = 1
|
package/src/header-validator.js
CHANGED
|
@@ -1,41 +1,74 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable jsdoc/check-indentation, max-depth */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Auto-generated with @ipld/schema@v4.2.0 at Thu Sep 14 2023 from IPLD Schema:
|
|
2
5
|
*
|
|
3
6
|
* # CarV1HeaderOrV2Pragma is a more relaxed form, and can parse {version:x} where
|
|
4
7
|
* # roots are optional. This is typically useful for the {verison:2} CARv2
|
|
5
8
|
* # pragma.
|
|
6
9
|
*
|
|
7
10
|
* type CarV1HeaderOrV2Pragma struct {
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
11
|
+
* roots optional [&Any]
|
|
12
|
+
* # roots is _not_ optional for CarV1 but we defer that check within code to
|
|
13
|
+
* # gracefully handle the V2 case where it's just {version:X}
|
|
14
|
+
* version Int
|
|
12
15
|
* }
|
|
13
16
|
*
|
|
14
17
|
* # CarV1Header is the strict form of the header, and requires roots to be
|
|
15
18
|
* # present. This is compatible with the CARv1 specification.
|
|
16
19
|
*
|
|
17
20
|
* # type CarV1Header struct {
|
|
18
|
-
* #
|
|
19
|
-
* #
|
|
21
|
+
* # roots [&Any]
|
|
22
|
+
* # version Int
|
|
20
23
|
* # }
|
|
21
24
|
*
|
|
22
25
|
*/
|
|
23
26
|
|
|
24
27
|
const Kinds = {
|
|
25
|
-
Null: /**
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
Null: /**
|
|
29
|
+
* @param obj
|
|
30
|
+
* @returns {undefined|null}
|
|
31
|
+
*/ (/** @type {any} */ obj) => obj === null ? obj : undefined,
|
|
32
|
+
Int: /**
|
|
33
|
+
* @param obj
|
|
34
|
+
* @returns {undefined|number}
|
|
35
|
+
*/ (/** @type {any} */ obj) => Number.isInteger(obj) ? obj : undefined,
|
|
36
|
+
Float: /**
|
|
37
|
+
* @param obj
|
|
38
|
+
* @returns {undefined|number}
|
|
39
|
+
*/ (/** @type {any} */ obj) => typeof obj === 'number' && Number.isFinite(obj) ? obj : undefined,
|
|
40
|
+
String: /**
|
|
41
|
+
* @param obj
|
|
42
|
+
* @returns {undefined|string}
|
|
43
|
+
*/ (/** @type {any} */ obj) => typeof obj === 'string' ? obj : undefined,
|
|
44
|
+
Bool: /**
|
|
45
|
+
* @param obj
|
|
46
|
+
* @returns {undefined|boolean}
|
|
47
|
+
*/ (/** @type {any} */ obj) => typeof obj === 'boolean' ? obj : undefined,
|
|
48
|
+
Bytes: /**
|
|
49
|
+
* @param obj
|
|
50
|
+
* @returns {undefined|Uint8Array}
|
|
51
|
+
*/ (/** @type {any} */ obj) => obj instanceof Uint8Array ? obj : undefined,
|
|
52
|
+
Link: /**
|
|
53
|
+
* @param obj
|
|
54
|
+
* @returns {undefined|object}
|
|
55
|
+
*/ (/** @type {any} */ obj) => obj !== null && typeof obj === 'object' && obj.asCID === obj ? obj : undefined,
|
|
56
|
+
List: /**
|
|
57
|
+
* @param obj
|
|
58
|
+
* @returns {undefined|Array<any>}
|
|
59
|
+
*/ (/** @type {any} */ obj) => Array.isArray(obj) ? obj : undefined,
|
|
60
|
+
Map: /**
|
|
61
|
+
* @param obj
|
|
62
|
+
* @returns {undefined|object}
|
|
63
|
+
*/ (/** @type {any} */ obj) => obj !== null && typeof obj === 'object' && obj.asCID !== obj && !Array.isArray(obj) && !(obj instanceof Uint8Array) ? obj : undefined
|
|
34
64
|
}
|
|
35
65
|
/** @type {{ [k in string]: (obj:any)=>undefined|any}} */
|
|
36
66
|
const Types = {
|
|
37
67
|
'CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)': Kinds.Link,
|
|
38
|
-
'CarV1HeaderOrV2Pragma > roots (anon)': /**
|
|
68
|
+
'CarV1HeaderOrV2Pragma > roots (anon)': /**
|
|
69
|
+
* @param obj
|
|
70
|
+
* @returns {undefined|any}
|
|
71
|
+
*/ (/** @type {any} */ obj) => {
|
|
39
72
|
if (Kinds.List(obj) === undefined) {
|
|
40
73
|
return undefined
|
|
41
74
|
}
|
|
@@ -61,7 +94,10 @@ const Types = {
|
|
|
61
94
|
return obj
|
|
62
95
|
},
|
|
63
96
|
Int: Kinds.Int,
|
|
64
|
-
CarV1HeaderOrV2Pragma: /**
|
|
97
|
+
CarV1HeaderOrV2Pragma: /**
|
|
98
|
+
* @param obj
|
|
99
|
+
* @returns {undefined|any}
|
|
100
|
+
*/ (/** @type {any} */ obj) => {
|
|
65
101
|
if (Kinds.Map(obj) === undefined) {
|
|
66
102
|
return undefined
|
|
67
103
|
}
|
|
@@ -123,7 +159,10 @@ const Types = {
|
|
|
123
159
|
/** @type {{ [k in string]: (obj:any)=>undefined|any}} */
|
|
124
160
|
const Reprs = {
|
|
125
161
|
'CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)': Kinds.Link,
|
|
126
|
-
'CarV1HeaderOrV2Pragma > roots (anon)': /**
|
|
162
|
+
'CarV1HeaderOrV2Pragma > roots (anon)': /**
|
|
163
|
+
* @param obj
|
|
164
|
+
* @returns {undefined|any}
|
|
165
|
+
*/ (/** @type {any} */ obj) => {
|
|
127
166
|
if (Kinds.List(obj) === undefined) {
|
|
128
167
|
return undefined
|
|
129
168
|
}
|
|
@@ -149,7 +188,10 @@ const Reprs = {
|
|
|
149
188
|
return obj
|
|
150
189
|
},
|
|
151
190
|
Int: Kinds.Int,
|
|
152
|
-
CarV1HeaderOrV2Pragma: /**
|
|
191
|
+
CarV1HeaderOrV2Pragma: /**
|
|
192
|
+
* @param obj
|
|
193
|
+
* @returns {undefined|any}
|
|
194
|
+
*/ (/** @type {any} */ obj) => {
|
|
153
195
|
if (Kinds.Map(obj) === undefined) {
|
|
154
196
|
return undefined
|
|
155
197
|
}
|
package/src/indexed-reader.js
CHANGED
|
@@ -6,10 +6,10 @@ import { CarReader as NodeCarReader } from './reader.js'
|
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @typedef {import('fs').promises.FileHandle} FileHandle
|
|
9
|
-
* @typedef {import('./api').Block} Block
|
|
10
|
-
* @typedef {import('./api').BlockIndex} BlockIndex
|
|
11
|
-
* @typedef {import('./api').CarReader} CarReaderIface
|
|
12
|
-
* @typedef {import('./reader-browser').CarReader} CarReader
|
|
9
|
+
* @typedef {import('./api.js').Block} Block
|
|
10
|
+
* @typedef {import('./api.js').BlockIndex} BlockIndex
|
|
11
|
+
* @typedef {import('./api.js').CarReader} CarReaderIface
|
|
12
|
+
* @typedef {import('./reader-browser.js').CarReader} CarReader
|
|
13
13
|
* @typedef {{ blockLength:number, blockOffset:number }} RawLocation
|
|
14
14
|
*/
|
|
15
15
|
|
package/src/indexer.js
CHANGED
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @typedef {import('multiformats').CID} CID
|
|
9
|
-
* @typedef {import('./api').Block} Block
|
|
10
|
-
* @typedef {import('./api').RootsReader} RootsReader
|
|
11
|
-
* @typedef {import('./api').BlockIndex} BlockIndex
|
|
12
|
-
* @typedef {import('./coding').BytesReader} BytesReader
|
|
9
|
+
* @typedef {import('./api.js').Block} Block
|
|
10
|
+
* @typedef {import('./api.js').RootsReader} RootsReader
|
|
11
|
+
* @typedef {import('./api.js').BlockIndex} BlockIndex
|
|
12
|
+
* @typedef {import('./coding.js').BytesReader} BytesReader
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
/**
|
package/src/iterator-channel.js
CHANGED
package/src/iterator.js
CHANGED
|
@@ -6,9 +6,9 @@ import {
|
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @typedef {import('multiformats').CID} CID
|
|
9
|
-
* @typedef {import('./api').Block} Block
|
|
10
|
-
* @typedef {import('./api').RootsReader} RootsReader
|
|
11
|
-
* @typedef {import('./coding').BytesReader} BytesReader
|
|
9
|
+
* @typedef {import('./api.js').Block} Block
|
|
10
|
+
* @typedef {import('./api.js').RootsReader} RootsReader
|
|
11
|
+
* @typedef {import('./coding.js').BytesReader} BytesReader
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
/**
|
package/src/reader-browser.js
CHANGED
|
@@ -2,11 +2,11 @@ import { asyncIterableReader, bytesReader, createDecoder } from './decoder.js'
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @typedef {import('multiformats').CID} CID
|
|
5
|
-
* @typedef {import('./api').Block} Block
|
|
6
|
-
* @typedef {import('./api').CarReader} CarReaderIface
|
|
7
|
-
* @typedef {import('./coding').BytesReader} BytesReader
|
|
8
|
-
* @typedef {import('./coding').CarHeader} CarHeader
|
|
9
|
-
* @typedef {import('./coding').CarV2Header} CarV2Header
|
|
5
|
+
* @typedef {import('./api.js').Block} Block
|
|
6
|
+
* @typedef {import('./api.js').CarReader} CarReaderIface
|
|
7
|
+
* @typedef {import('./coding.js').BytesReader} BytesReader
|
|
8
|
+
* @typedef {import('./coding.js').CarHeader} CarHeader
|
|
9
|
+
* @typedef {import('./coding.js').CarV2Header} CarV2Header
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
/**
|
package/src/reader.js
CHANGED
|
@@ -2,9 +2,9 @@ import { fsread, hasFS } from './promise-fs-opts.js'
|
|
|
2
2
|
import { CarReader as BrowserCarReader } from './reader-browser.js'
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* @typedef {import('./api').Block} Block
|
|
6
|
-
* @typedef {import('./api').BlockIndex} BlockIndex
|
|
7
|
-
* @typedef {import('./api').CarReader} CarReaderIface
|
|
5
|
+
* @typedef {import('./api.js').Block} Block
|
|
6
|
+
* @typedef {import('./api.js').BlockIndex} BlockIndex
|
|
7
|
+
* @typedef {import('./api.js').CarReader} CarReaderIface
|
|
8
8
|
* @typedef {import('fs').promises.FileHandle} FileHandle
|
|
9
9
|
*/
|
|
10
10
|
|
package/src/writer-browser.js
CHANGED
|
@@ -4,11 +4,11 @@ import { createEncoder, createHeader } from './encoder.js'
|
|
|
4
4
|
import { create as iteratorChannel } from './iterator-channel.js'
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* @typedef {import('./api').Block} Block
|
|
8
|
-
* @typedef {import('./api').BlockWriter} BlockWriter
|
|
9
|
-
* @typedef {import('./api').WriterChannel} WriterChannel
|
|
10
|
-
* @typedef {import('./coding').CarEncoder} CarEncoder
|
|
11
|
-
* @typedef {import('./coding').IteratorChannel<Uint8Array>} IteratorChannel
|
|
7
|
+
* @typedef {import('./api.js').Block} Block
|
|
8
|
+
* @typedef {import('./api.js').BlockWriter} BlockWriter
|
|
9
|
+
* @typedef {import('./api.js').WriterChannel} WriterChannel
|
|
10
|
+
* @typedef {import('./coding.js').CarEncoder} CarEncoder
|
|
11
|
+
* @typedef {import('./coding.js').IteratorChannel<Uint8Array>} IteratorChannel
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
/**
|
package/src/writer.js
CHANGED
|
@@ -5,7 +5,7 @@ import { CarWriter as BrowserCarWriter } from './writer-browser.js'
|
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @typedef {import('multiformats/cid').CID} CID
|
|
8
|
-
* @typedef {import('./api').BlockWriter} BlockWriter
|
|
8
|
+
* @typedef {import('./api.js').BlockWriter} BlockWriter
|
|
9
9
|
* @typedef {import('fs').promises.FileHandle} FileHandle
|
|
10
10
|
*/
|
|
11
11
|
|