{"version":3,"file":"bs-car-reader.cjs","sources":["../../src/bs-car-reader.js"],"sourcesContent":["/**\n * An implementation of the CAR reader interface that is backed by a blockstore.\n *\n * @typedef {import('multiformats').CID} CID\n * @typedef {import('@ipld/car/api').CarReader} CarReader\n * @implements {CarReader}\n */\nexport class BlockstoreCarReader {\n  /**\n   * @param {number} version\n   * @param {CID[]} roots\n   * @param {import('ipfs-car/blockstore').Blockstore} blockstore\n   */\n  constructor(version, roots, blockstore) {\n    /**\n     * @private\n     */\n    this._version = version\n    /**\n     * @private\n     */\n    this._roots = roots\n    /**\n     * @private\n     */\n    this._blockstore = blockstore\n  }\n\n  get version() {\n    return this._version\n  }\n\n  get blockstore() {\n    return this._blockstore\n  }\n\n  async getRoots() {\n    return this._roots\n  }\n\n  /**\n   * @param {CID} cid\n   */\n  has(cid) {\n    return this._blockstore.has(cid)\n  }\n\n  /**\n   * @param {CID} cid\n   */\n  async get(cid) {\n    const bytes = await this._blockstore.get(cid)\n    return { cid, bytes }\n  }\n\n  blocks() {\n    return this._blockstore.blocks()\n  }\n\n  async *cids() {\n    for await (const b of this.blocks()) {\n      yield b.cid\n    }\n  }\n}\n"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAmB,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;AAC1C;AACA;AACA;AACA,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAO;AAC3B;AACA;AACA;AACA,IAAI,IAAI,CAAC,MAAM,GAAG,MAAK;AACvB;AACA;AACA;AACA,IAAI,IAAI,CAAC,WAAW,GAAG,WAAU;AACjC,GAAG;AACH;AACA,EAAE,IAAI,OAAO,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,QAAQ;AACxB,GAAG;AACH;AACA,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW;AAC3B,GAAG;AACH;AACA,EAAE,MAAM,QAAQ,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,MAAM;AACtB,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,GAAG,CAAC,GAAG,EAAE;AACX,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;AACpC,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE;AACjB,IAAI,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAC;AACjD,IAAI,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE;AACzB,GAAG;AACH;AACA,EAAE,MAAM,GAAG;AACX,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AACpC,GAAG;AACH;AACA,EAAE,OAAO,IAAI,GAAG;AAChB,IAAI,WAAW,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACzC,MAAM,MAAM,CAAC,CAAC,IAAG;AACjB,KAAK;AACL,GAAG;AACH;;;;"}