@ipld/car 3.2.3 → 4.1.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.
Files changed (77) hide show
  1. package/README.md +183 -2
  2. package/api.ts +22 -4
  3. package/buffer-writer +1 -0
  4. package/cjs/browser-test/common.js +78 -3
  5. package/cjs/browser-test/node-test-large.js +8 -8
  6. package/cjs/browser-test/test-buffer-writer.js +330 -0
  7. package/cjs/browser-test/test-errors.js +57 -34
  8. package/cjs/browser-test/test-indexer.js +12 -0
  9. package/cjs/browser-test/test-reader.js +83 -0
  10. package/cjs/lib/buffer-writer.js +161 -0
  11. package/cjs/lib/decoder.js +72 -15
  12. package/cjs/lib/encoder.js +2 -2
  13. package/cjs/lib/header-validator.js +29 -0
  14. package/cjs/lib/reader-browser.js +7 -7
  15. package/cjs/lib/writer-browser.js +1 -1
  16. package/cjs/node-test/common.js +78 -3
  17. package/cjs/node-test/node-test-large.js +8 -8
  18. package/cjs/node-test/test-buffer-writer.js +330 -0
  19. package/cjs/node-test/test-errors.js +57 -34
  20. package/cjs/node-test/test-indexer.js +12 -0
  21. package/cjs/node-test/test-reader.js +83 -0
  22. package/esm/browser-test/common.js +76 -1
  23. package/esm/browser-test/test-buffer-writer.js +311 -0
  24. package/esm/browser-test/test-errors.js +57 -33
  25. package/esm/browser-test/test-indexer.js +15 -0
  26. package/esm/browser-test/test-reader.js +90 -1
  27. package/esm/lib/buffer-writer.js +126 -0
  28. package/esm/lib/decoder.js +69 -13
  29. package/esm/lib/header-validator.js +23 -0
  30. package/esm/lib/reader-browser.js +7 -8
  31. package/esm/lib/writer-browser.js +1 -1
  32. package/esm/node-test/common.js +76 -1
  33. package/esm/node-test/test-buffer-writer.js +311 -0
  34. package/esm/node-test/test-errors.js +57 -33
  35. package/esm/node-test/test-indexer.js +15 -0
  36. package/esm/node-test/test-reader.js +90 -1
  37. package/examples/car-to-fixture.js +1 -4
  38. package/examples/dump-index.js +24 -0
  39. package/examples/test-examples.js +33 -0
  40. package/lib/buffer-writer.js +286 -0
  41. package/lib/coding.ts +17 -2
  42. package/lib/decoder.js +130 -14
  43. package/lib/header-validator.js +33 -0
  44. package/lib/header.ipldsch +6 -0
  45. package/lib/reader-browser.js +11 -11
  46. package/lib/writer-browser.js +1 -1
  47. package/package.json +17 -7
  48. package/test/_fixtures_to_js.mjs +24 -0
  49. package/test/common.js +49 -3
  50. package/test/go.carv2 +0 -0
  51. package/test/test-buffer-writer.js +256 -0
  52. package/test/test-errors.js +52 -30
  53. package/test/test-indexer.js +24 -1
  54. package/test/test-reader.js +94 -1
  55. package/tsconfig.json +3 -1
  56. package/types/api.d.ts +16 -0
  57. package/types/api.d.ts.map +1 -1
  58. package/types/lib/buffer-writer.d.ts +86 -0
  59. package/types/lib/buffer-writer.d.ts.map +1 -0
  60. package/types/lib/coding.d.ts +14 -4
  61. package/types/lib/coding.d.ts.map +1 -1
  62. package/types/lib/decoder.d.ts +38 -2
  63. package/types/lib/decoder.d.ts.map +1 -1
  64. package/types/lib/header-validator.d.ts +2 -0
  65. package/types/lib/header-validator.d.ts.map +1 -0
  66. package/types/lib/reader-browser.d.ts +15 -7
  67. package/types/lib/reader-browser.d.ts.map +1 -1
  68. package/types/test/_fixtures_to_js.d.mts +3 -0
  69. package/types/test/_fixtures_to_js.d.mts.map +1 -0
  70. package/types/test/common.d.ts +13 -0
  71. package/types/test/common.d.ts.map +1 -1
  72. package/types/test/fixtures-expectations.d.ts +63 -0
  73. package/types/test/fixtures-expectations.d.ts.map +1 -0
  74. package/types/test/fixtures.d.ts +3 -0
  75. package/types/test/fixtures.d.ts.map +1 -0
  76. package/types/test/test-buffer-writer.d.ts +2 -0
  77. package/types/test/test-buffer-writer.d.ts.map +1 -0
@@ -13,12 +13,22 @@ export interface IteratorChannel<T> {
13
13
  writer: IteratorChannel_Writer<T>;
14
14
  iterator: AsyncIterator<T>;
15
15
  }
16
- export declare type CarHeader = {
17
- version: number;
16
+ export interface CarHeader {
17
+ version: 1;
18
18
  roots: CID[];
19
- };
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
+ }
20
30
  export interface CarDecoder {
21
- header(): Promise<CarHeader>;
31
+ header(): Promise<CarHeader | CarV2Header>;
22
32
  blocks(): AsyncGenerator<Block>;
23
33
  blocksIndex(): AsyncGenerator<BlockIndex>;
24
34
  }
@@ -1 +1 @@
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,oBAAY,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,EAAE,CAAA;CAAE,CAAA;AAEzD,MAAM,WAAW,UAAU;IACzB,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CAAA;IAE5B,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
+ {"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,19 +1,38 @@
1
1
  /**
2
+ * Reads header data from a `BytesReader`. The header may either be in the form
3
+ * of a `CarHeader` or `CarV2Header` depending on the CAR being read.
4
+ *
5
+ * @name async decoder.readHeader(reader)
2
6
  * @param {BytesReader} reader
3
- * @returns {Promise<CarHeader>}
7
+ * @param {number} [strictVersion]
8
+ * @returns {Promise<CarHeader|CarV2Header>}
4
9
  */
5
- export function readHeader(reader: BytesReader): Promise<CarHeader>;
10
+ export function readHeader(reader: BytesReader, strictVersion?: number | undefined): Promise<CarHeader | CarV2Header>;
6
11
  /**
12
+ * Reads the leading data of an individual block from CAR data from a
13
+ * `BytesReader`. Returns a `BlockHeader` object which contains
14
+ * `{ cid, length, blockLength }` which can be used to either index the block
15
+ * or read the block binary data.
16
+ *
17
+ * @name async decoder.readBlockHead(reader)
7
18
  * @param {BytesReader} reader
8
19
  * @returns {Promise<BlockHeader>}
9
20
  */
10
21
  export function readBlockHead(reader: BytesReader): Promise<BlockHeader>;
11
22
  /**
23
+ * Creates a `CarDecoder` from a `BytesReader`. The `CarDecoder` is as async
24
+ * interface that will consume the bytes from the `BytesReader` to yield a
25
+ * `header()` and either `blocks()` or `blocksIndex()` data.
26
+ *
27
+ * @name decoder.createDecoder(reader)
12
28
  * @param {BytesReader} reader
13
29
  * @returns {CarDecoder}
14
30
  */
15
31
  export function createDecoder(reader: BytesReader): CarDecoder;
16
32
  /**
33
+ * Creates a `BytesReader` from a `Uint8Array`.
34
+ *
35
+ * @name decoder.bytesReader(bytes)
17
36
  * @param {Uint8Array} bytes
18
37
  * @returns {BytesReader}
19
38
  */
@@ -28,14 +47,31 @@ export function bytesReader(bytes: Uint8Array): BytesReader;
28
47
  */
29
48
  export function chunkReader(readChunk: () => Promise<Uint8Array | null>): BytesReader;
30
49
  /**
50
+ * Creates a `BytesReader` from an `AsyncIterable<Uint8Array>`, which allows for
51
+ * consumption of CAR data from a streaming source.
52
+ *
53
+ * @name decoder.asyncIterableReader(asyncIterable)
31
54
  * @param {AsyncIterable<Uint8Array>} asyncIterable
32
55
  * @returns {BytesReader}
33
56
  */
34
57
  export function asyncIterableReader(asyncIterable: AsyncIterable<Uint8Array>): BytesReader;
58
+ /**
59
+ * Wraps a `BytesReader` in a limiting `BytesReader` which limits maximum read
60
+ * to `byteLimit` bytes. It _does not_ update `pos` of the original
61
+ * `BytesReader`.
62
+ *
63
+ * @name decoder.limitReader(reader, byteLimit)
64
+ * @param {BytesReader} reader
65
+ * @param {number} byteLimit
66
+ * @returns {BytesReader}
67
+ */
68
+ export function limitReader(reader: BytesReader, byteLimit: number): BytesReader;
35
69
  export type Block = import('../api').Block;
36
70
  export type BlockHeader = import('../api').BlockHeader;
37
71
  export type BlockIndex = import('../api').BlockIndex;
38
72
  export type BytesReader = import('./coding').BytesReader;
39
73
  export type CarHeader = import('./coding').CarHeader;
74
+ export type CarV2Header = import('./coding').CarV2Header;
75
+ export type CarV2FixedHeader = import('./coding').CarV2FixedHeader;
40
76
  export type CarDecoder = import('./coding').CarDecoder;
41
77
  //# sourceMappingURL=decoder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../lib/decoder.js"],"names":[],"mappings":"AAiCA;;;GAGG;AACH,mCAHW,WAAW,GACT,QAAQ,SAAS,CAAC,CA4B9B;AAkDD;;;GAGG;AACH,sCAHW,WAAW,GACT,QAAQ,WAAW,CAAC,CAiBhC;AA6BD;;;GAGG;AACH,sCAHW,WAAW,GACT,UAAU,CAsBtB;AAED;;;GAGG;AACH,mCAHW,UAAU,GACR,WAAW,CA8BvB;AAED;;;;;;;GAOG;AACH,uCAHW,MAAM,QAAQ,UAAU,GAAC,IAAI,CAAC,GAC5B,WAAW,CAsEvB;AAED;;;GAGG;AACH,mDAHW,cAAc,UAAU,CAAC,GACvB,WAAW,CAgBvB;oBAvTY,OAAO,QAAQ,EAAE,KAAK;0BACtB,OAAO,QAAQ,EAAE,WAAW;yBAC5B,OAAO,QAAQ,EAAE,UAAU;0BAC3B,OAAO,UAAU,EAAE,WAAW;wBAC9B,OAAO,UAAU,EAAE,SAAS;yBAC5B,OAAO,UAAU,EAAE,UAAU"}
1
+ {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../lib/decoder.js"],"names":[],"mappings":"AAmEA;;;;;;;;GAQG;AACH,mCAJW,WAAW,uCAET,QAAQ,SAAS,GAAC,WAAW,CAAC,CAgC1C;AAkDD;;;;;;;;;GASG;AACH,sCAHW,WAAW,GACT,QAAQ,WAAW,CAAC,CAiBhC;AA6BD;;;;;;;;GAQG;AACH,sCAHW,WAAW,GACT,UAAU,CA+BtB;AAED;;;;;;GAMG;AACH,mCAHW,UAAU,GACR,WAAW,CA8BvB;AAED;;;;;;;GAOG;AACH,uCAHW,MAAM,QAAQ,UAAU,GAAC,IAAI,CAAC,GAC5B,WAAW,CAsEvB;AAED;;;;;;;GAOG;AACH,mDAHW,cAAc,UAAU,CAAC,GACvB,WAAW,CAgBvB;AAED;;;;;;;;;GASG;AACH,oCAJW,WAAW,aACX,MAAM,GACJ,WAAW,CAoCvB;oBA1aY,OAAO,QAAQ,EAAE,KAAK;0BACtB,OAAO,QAAQ,EAAE,WAAW;yBAC5B,OAAO,QAAQ,EAAE,UAAU;0BAC3B,OAAO,UAAU,EAAE,WAAW;wBAC9B,OAAO,UAAU,EAAE,SAAS;0BAC5B,OAAO,UAAU,EAAE,WAAW;+BAC9B,OAAO,UAAU,EAAE,gBAAgB;yBACnC,OAAO,UAAU,EAAE,UAAU"}
@@ -0,0 +1,2 @@
1
+ export function CarHeader(obj: any): boolean;
2
+ //# sourceMappingURL=header-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-validator.d.ts","sourceRoot":"","sources":["../../lib/header-validator.js"],"names":[],"mappings":"AAsB4B,+BAAK,GAAG,GAAG,OAAO,CAAA"}
@@ -1,8 +1,16 @@
1
+ /**
2
+ * @private
3
+ * @param {BytesReader} reader
4
+ * @returns {Promise<CarReader>}
5
+ */
6
+ export function decodeReaderComplete(reader: BytesReader): Promise<CarReader>;
1
7
  /**
2
8
  * @typedef {import('multiformats').CID} CID
3
9
  * @typedef {import('../api').Block} Block
4
10
  * @typedef {import('../api').CarReader} CarReaderIface
5
11
  * @typedef {import('./coding').BytesReader} BytesReader
12
+ * @typedef {import('./coding').CarHeader} CarHeader
13
+ * @typedef {import('./coding').CarV2Header} CarV2Header
6
14
  */
7
15
  /**
8
16
  * Provides blockstore-like access to a CAR.
@@ -23,7 +31,7 @@
23
31
  * @class
24
32
  * @implements {CarReaderIface}
25
33
  * @property {number} version The version number of the CAR referenced by this
26
- * reader (should be `1`).
34
+ * reader (should be `1` or `2`).
27
35
  */
28
36
  export class CarReader implements CarReaderIface {
29
37
  /**
@@ -57,13 +65,11 @@ export class CarReader implements CarReaderIface {
57
65
  static fromIterable(asyncIterable: AsyncIterable<Uint8Array>): Promise<CarReader>;
58
66
  /**
59
67
  * @constructs CarReader
60
- * @param {number} version
61
- * @param {CID[]} roots
68
+ * @param {CarHeader|CarV2Header} header
62
69
  * @param {Block[]} blocks
63
70
  */
64
- constructor(version: number, roots: CID[], blocks: Block[]);
65
- _version: number;
66
- _roots: import("multiformats").CID[];
71
+ constructor(header: CarHeader | CarV2Header, blocks: Block[]);
72
+ _header: import("./coding").CarHeader | import("./coding").CarV2Header;
67
73
  _blocks: import("../api").Block[];
68
74
  _keys: string[];
69
75
  /**
@@ -71,7 +77,7 @@ export class CarReader implements CarReaderIface {
71
77
  * @memberof CarReader
72
78
  * @instance
73
79
  */
74
- get version(): number;
80
+ get version(): 1 | 2;
75
81
  /**
76
82
  * Get the list of roots defined by the CAR referenced by this reader. May be
77
83
  * zero or more `CID`s.
@@ -140,4 +146,6 @@ export type CID = import('multiformats').CID;
140
146
  export type Block = import('../api').Block;
141
147
  export type CarReaderIface = import('../api').CarReader;
142
148
  export type BytesReader = import('./coding').BytesReader;
149
+ export type CarHeader = import('./coding').CarHeader;
150
+ export type CarV2Header = import('./coding').CarV2Header;
143
151
  //# sourceMappingURL=reader-browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reader-browser.d.ts","sourceRoot":"","sources":["../../lib/reader-browser.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;IA+GE;;;;;;;;;;OAUG;IACH,wBAHW,UAAU,GACR,QAAQ,SAAS,CAAC,CAS9B;IAED;;;;;;;;;;;;;;;OAeG;IACH,mCAHW,cAAc,UAAU,CAAC,GACvB,QAAQ,SAAS,CAAC,CAS9B;IAzJD;;;;;OAKG;IACH,qBAJW,MAAM,SACN,GAAG,EAAE,UACL,KAAK,EAAE,EAOjB;IAJC,iBAAuB;IACvB,qCAAmB;IACnB,kCAAqB;IACrB,gBAAgD;IAGlD;;;;OAIG;IACH,sBAEC;IAED;;;;;;;;;OASG;IACH,YAFa,QAAQ,GAAG,EAAE,CAAC,CAM1B;IAED;;;;;;;;;;OAUG;IACH,SAHW,GAAG,GACD,QAAQ,OAAO,CAAC,CAM5B;IAED;;;;;;;;;;;;OAYG;IACH,SAHW,GAAG,GACD,QAAQ,KAAK,GAAG,SAAS,CAAC,CAOtC;IAED;;;;;;;;;;;OAWG;IACH,UAFa,eAAe,KAAK,CAAC,CAMjC;IAED;;;;;;;;;;OAUG;IACH,QAFa,eAAe,GAAG,CAAC,CAM/B;CA8CF;AAoBD,6BAA6B;kBA1MhB,OAAO,cAAc,EAAE,GAAG;oBAC1B,OAAO,QAAQ,EAAE,KAAK;6BACtB,OAAO,QAAQ,EAAE,SAAS;0BAC1B,OAAO,UAAU,EAAE,WAAW"}
1
+ {"version":3,"file":"reader-browser.d.ts","sourceRoot":"","sources":["../../lib/reader-browser.js"],"names":[],"mappings":"AA2LA;;;;GAIG;AACH,6CAHW,WAAW,GACT,QAAQ,SAAS,CAAC,CAa9B;AAzMD;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;IA6GE;;;;;;;;;;OAUG;IACH,wBAHW,UAAU,GACR,QAAQ,SAAS,CAAC,CAS9B;IAED;;;;;;;;;;;;;;;OAeG;IACH,mCAHW,cAAc,UAAU,CAAC,GACvB,QAAQ,SAAS,CAAC,CAS9B;IAvJD;;;;OAIG;IACH,oBAHW,SAAS,GAAC,WAAW,UACrB,KAAK,EAAE,EAMjB;IAHC,uEAAqB;IACrB,kCAAqB;IACrB,gBAAgD;IAGlD;;;;OAIG;IACH,qBAEC;IAED;;;;;;;;;OASG;IACH,YAFa,QAAQ,GAAG,EAAE,CAAC,CAM1B;IAED;;;;;;;;;;OAUG;IACH,SAHW,GAAG,GACD,QAAQ,OAAO,CAAC,CAM5B;IAED;;;;;;;;;;;;OAYG;IACH,SAHW,GAAG,GACD,QAAQ,KAAK,GAAG,SAAS,CAAC,CAOtC;IAED;;;;;;;;;;;OAWG;IACH,UAFa,eAAe,KAAK,CAAC,CAMjC;IAED;;;;;;;;;;OAUG;IACH,QAFa,eAAe,GAAG,CAAC,CAM/B;CA8CF;AAoBD,6BAA6B;kBA1MhB,OAAO,cAAc,EAAE,GAAG;oBAC1B,OAAO,QAAQ,EAAE,KAAK;6BACtB,OAAO,QAAQ,EAAE,SAAS;0BAC1B,OAAO,UAAU,EAAE,WAAW;wBAC9B,OAAO,UAAU,EAAE,SAAS;0BAC5B,OAAO,UAAU,EAAE,WAAW"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=_fixtures_to_js.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_fixtures_to_js.d.mts","sourceRoot":"","sources":["../../test/_fixtures_to_js.mjs"],"names":[],"mappings":""}
@@ -37,6 +37,19 @@ export const goCarIndex: {
37
37
  blockOffset: number;
38
38
  blockLength: number;
39
39
  }[];
40
+ export const goCarV2Bytes: Uint8Array;
41
+ export const goCarV2Roots: CID[];
42
+ export const goCarV2Index: {
43
+ blockLength: number;
44
+ blockOffset: number;
45
+ cid: CID;
46
+ length: number;
47
+ offset: number;
48
+ }[];
49
+ /** @type {{[k in string]: any}} */
50
+ export const goCarV2Contents: {
51
+ [x: string]: any;
52
+ };
40
53
  /**
41
54
  * @typedef {import('../api').Block} Block
42
55
  * @typedef {import('@ipld/dag-pb').PBNode} PBNode
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../test/common.js"],"names":[],"mappings":"oBAUa,OAAO,QAAQ,EAAE,KAAK;qBACtB,OAAO,cAAc,EAAE,MAAM;AAmC1C;;;;;GAKG;AACH,gCALW,GAAG;UACI,MAAM;kBAAgB,GAAG,KAAK,UAAU;aAC/C,OAAO,kBAAkB,EAAE,UAAU,GACnC,QAAQ,SAAS,GAAG;IAAE,MAAM,EAAE,GAAG,CAAA;CAAE,CAAC,CAOhD;;AAED;;;;;;GAiDC;AAED;;;;GAIG;AACH,mCAJW,UAAU,aACV,MAAM,GACJ,cAAc,UAAU,CAAC,CAkBrC;AAvFD,yBAAuF;AAyFvF,kCAAw7C;AAEx7C,oCAA07C;AAE17C,+BAGC;AAED;;;;;;IASC;AA9ID;;;GAGG;AAEH;;GAEG;AACH;IACE;;;;OAIG;IACH,mBAJW,UAAU,OACV,GAAG,UACH,GAAG,EAMb;IAHC,kBAAkB;IAClB,SAAc;IACd,YAAoB;CAEvB"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../test/common.js"],"names":[],"mappings":"oBAUa,OAAO,QAAQ,EAAE,KAAK;qBACtB,OAAO,cAAc,EAAE,MAAM;AAmC1C;;;;;GAKG;AACH,gCALW,GAAG;UACI,MAAM;kBAAgB,GAAG,KAAK,UAAU;aAC/C,OAAO,kBAAkB,EAAE,UAAU,GACnC,QAAQ,SAAS,GAAG;IAAE,MAAM,EAAE,GAAG,CAAA;CAAE,CAAC,CAOhD;;AAED;;;;;;GAiDC;AAED;;;;GAIG;AACH,mCAJW,UAAU,aACV,MAAM,GACJ,cAAc,UAAU,CAAC,CAkBrC;AAvFD,yBAAuF;AAyFvF,kCAAw7C;AAGx7C,oCAA07C;AAC17C,+BAGC;AACD;;;;;;IASC;AAED,sCAA47C;AAC57C,iCAAkF;AAClF;;;;;;IAMC;AACD,mCAAmC;AACnC;;EA+BC;AAxLD;;;GAGG;AAEH;;GAEG;AACH;IACE;;;;OAIG;IACH,mBAJW,UAAU,OACV,GAAG,UACH,GAAG,EAMb;IAHC,kBAAkB;IAClB,SAAc;IACd,YAAoB;CAEvB"}
@@ -0,0 +1,63 @@
1
+ export const expectations: {
2
+ 'sample-v1.car': {
3
+ version: number;
4
+ err: null;
5
+ cids: string[];
6
+ };
7
+ 'sample-v1-noidentity.car': {
8
+ version: number;
9
+ err: null;
10
+ cids: string[];
11
+ };
12
+ 'sample-unixfs-v2.car': {
13
+ version: number;
14
+ err: null;
15
+ cids: string[];
16
+ };
17
+ 'sample-rw-bs-v2.car': {
18
+ version: number;
19
+ err: null;
20
+ cids: string[];
21
+ };
22
+ 'sample-v1-with-zero-len-section.car': {
23
+ version: number;
24
+ err: null;
25
+ cids: null;
26
+ };
27
+ 'sample-v1-with-zero-len-section2.car': {
28
+ version: number;
29
+ err: null;
30
+ cids: null;
31
+ };
32
+ 'sample-wrapped-v2.car': {
33
+ version: number;
34
+ err: null;
35
+ cids: string[];
36
+ };
37
+ 'sample-rootless-v42.car': {
38
+ version: null;
39
+ err: string;
40
+ cids: null;
41
+ };
42
+ 'sample-v1-tailing-corrupt-section.car': {
43
+ version: number;
44
+ err: null;
45
+ cids: null;
46
+ };
47
+ 'sample-v2-corrupt-data-and-index.car': {
48
+ version: number;
49
+ err: string;
50
+ cids: null;
51
+ };
52
+ 'sample-corrupt-pragma.car': {
53
+ version: null;
54
+ err: string;
55
+ cids: null;
56
+ };
57
+ 'sample-v2-indexless.car': {
58
+ version: number;
59
+ err: null;
60
+ cids: string[];
61
+ };
62
+ };
63
+ //# sourceMappingURL=fixtures-expectations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures-expectations.d.ts","sourceRoot":"","sources":["../../test/fixtures-expectations.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuqIC"}
@@ -0,0 +1,3 @@
1
+ /** @type {Record<string, string>} */
2
+ export const data: Record<string, string>;
3
+ //# sourceMappingURL=fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../test/fixtures.js"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,mBADW,OAAO,MAAM,EAAE,MAAM,CAAC,CAgBhC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test-buffer-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-buffer-writer.d.ts","sourceRoot":"","sources":["../../test/test-buffer-writer.js"],"names":[],"mappings":""}