{"version":3,"file":"index.cjs","sources":["../../../../node_modules/.pnpm/it-drain@1.0.5/node_modules/it-drain/index.js","../../../../node_modules/.pnpm/it-filter@1.0.3/node_modules/it-filter/index.js","../../../../node_modules/.pnpm/it-take@1.0.2/node_modules/it-take/index.js","../../../../node_modules/.pnpm/it-all@1.0.6/node_modules/it-all/index.js","../../../../node_modules/.pnpm/blockstore-core@1.0.5/node_modules/blockstore-core/esm/src/base.js","../../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/vendor/base-x.js","../../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bytes.js","../../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bases/base.js","../../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bases/base32.js","../../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/vendor/varint.js","../../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/varint.js","../../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/hashes/digest.js","../../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bases/base58.js","../../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/cid.js","../../../../node_modules/.pnpm/ipfs-car@0.7.0_node-fetch@2.6.7/node_modules/ipfs-car/dist/esm/blockstore/memory.js","../../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/hashes/hasher.js","../../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/block.js","../../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/hashes/sha2.js","../../src/BlockstoreCarReader.ts","../../src/utils.ts","../../src/NftStorageDriver.ts","../../src/plugin.ts"],"sourcesContent":["'use strict'\n\n/**\n * Drains an (async) iterable discarding its' content and does not return\n * anything.\n *\n * @template T\n * @param {AsyncIterable<T>|Iterable<T>} source\n * @returns {Promise<void>}\n */\nconst drain = async (source) => {\n  for await (const _ of source) { } // eslint-disable-line no-unused-vars,no-empty\n}\n\nmodule.exports = drain\n","'use strict'\n\n/**\n * Filters the passed (async) iterable by using the filter function\n *\n * @template T\n * @param {AsyncIterable<T>|Iterable<T>} source\n * @param {function(T):boolean|Promise<boolean>} fn\n */\nconst filter = async function * (source, fn) {\n  for await (const entry of source) {\n    if (await fn(entry)) {\n      yield entry\n    }\n  }\n}\n\nmodule.exports = filter\n","'use strict'\n\n/**\n * Stop iteration after n items have been received.\n *\n * @template T\n * @param {AsyncIterable<T>|Iterable<T>} source\n * @param {number} limit\n * @returns {AsyncIterable<T>}\n */\nconst take = async function * (source, limit) {\n  let items = 0\n\n  if (limit < 1) {\n    return\n  }\n\n  for await (const entry of source) {\n    yield entry\n\n    items++\n\n    if (items === limit) {\n      return\n    }\n  }\n}\n\nmodule.exports = take\n","'use strict'\n\n/**\n * Collects all values from an (async) iterable into an array and returns it.\n *\n * @template T\n * @param {AsyncIterable<T>|Iterable<T>} source\n */\nconst all = async (source) => {\n  const arr = []\n\n  for await (const entry of source) {\n    arr.push(entry)\n  }\n\n  return arr\n}\n\nmodule.exports = all\n","import drain from 'it-drain';\nimport filter from 'it-filter';\nimport take from 'it-take';\nimport all from 'it-all';\nconst sortAll = (iterable, sorter) => {\n  return async function* () {\n    const values = await all(iterable);\n    yield* values.sort(sorter);\n  }();\n};\nexport class BaseBlockstore {\n  open() {\n    return Promise.reject(new Error('.open is not implemented'));\n  }\n  close() {\n    return Promise.reject(new Error('.close is not implemented'));\n  }\n  put(key, val, options) {\n    return Promise.reject(new Error('.put is not implemented'));\n  }\n  get(key, options) {\n    return Promise.reject(new Error('.get is not implemented'));\n  }\n  has(key, options) {\n    return Promise.reject(new Error('.has is not implemented'));\n  }\n  delete(key, options) {\n    return Promise.reject(new Error('.delete is not implemented'));\n  }\n  async *putMany(source, options = {}) {\n    for await (const {key, value} of source) {\n      await this.put(key, value, options);\n      yield {\n        key,\n        value\n      };\n    }\n  }\n  async *getMany(source, options = {}) {\n    for await (const key of source) {\n      yield this.get(key, options);\n    }\n  }\n  async *deleteMany(source, options = {}) {\n    for await (const key of source) {\n      await this.delete(key, options);\n      yield key;\n    }\n  }\n  batch() {\n    let puts = [];\n    let dels = [];\n    return {\n      put(key, value) {\n        puts.push({\n          key,\n          value\n        });\n      },\n      delete(key) {\n        dels.push(key);\n      },\n      commit: async options => {\n        await drain(this.putMany(puts, options));\n        puts = [];\n        await drain(this.deleteMany(dels, options));\n        dels = [];\n      }\n    };\n  }\n  async *_all(q, options) {\n    throw new Error('._all is not implemented');\n  }\n  async *_allKeys(q, options) {\n    throw new Error('._allKeys is not implemented');\n  }\n  query(q, options) {\n    let it = this._all(q, options);\n    if (q.prefix != null) {\n      it = filter(it, e => e.key.toString().startsWith(q.prefix || ''));\n    }\n    if (Array.isArray(q.filters)) {\n      it = q.filters.reduce((it, f) => filter(it, f), it);\n    }\n    if (Array.isArray(q.orders)) {\n      it = q.orders.reduce((it, f) => sortAll(it, f), it);\n    }\n    if (q.offset != null) {\n      let i = 0;\n      it = filter(it, () => i++ >= (q.offset || 0));\n    }\n    if (q.limit != null) {\n      it = take(it, q.limit);\n    }\n    return it;\n  }\n  queryKeys(q, options) {\n    let it = this._allKeys(q, options);\n    if (q.prefix != null) {\n      it = filter(it, cid => cid.toString().startsWith(q.prefix || ''));\n    }\n    if (Array.isArray(q.filters)) {\n      it = q.filters.reduce((it, f) => filter(it, f), it);\n    }\n    if (Array.isArray(q.orders)) {\n      it = q.orders.reduce((it, f) => sortAll(it, f), it);\n    }\n    if (q.offset != null) {\n      let i = 0;\n      it = filter(it, () => i++ >= q.offset);\n    }\n    if (q.limit != null) {\n      it = take(it, q.limit);\n    }\n    return it;\n  }\n}","function base(ALPHABET, name) {\n  if (ALPHABET.length >= 255) {\n    throw new TypeError('Alphabet too long');\n  }\n  var BASE_MAP = new Uint8Array(256);\n  for (var j = 0; j < BASE_MAP.length; j++) {\n    BASE_MAP[j] = 255;\n  }\n  for (var i = 0; i < ALPHABET.length; i++) {\n    var x = ALPHABET.charAt(i);\n    var xc = x.charCodeAt(0);\n    if (BASE_MAP[xc] !== 255) {\n      throw new TypeError(x + ' is ambiguous');\n    }\n    BASE_MAP[xc] = i;\n  }\n  var BASE = ALPHABET.length;\n  var LEADER = ALPHABET.charAt(0);\n  var FACTOR = Math.log(BASE) / Math.log(256);\n  var iFACTOR = Math.log(256) / Math.log(BASE);\n  function encode(source) {\n    if (source instanceof Uint8Array);\n    else if (ArrayBuffer.isView(source)) {\n      source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n    } else if (Array.isArray(source)) {\n      source = Uint8Array.from(source);\n    }\n    if (!(source instanceof Uint8Array)) {\n      throw new TypeError('Expected Uint8Array');\n    }\n    if (source.length === 0) {\n      return '';\n    }\n    var zeroes = 0;\n    var length = 0;\n    var pbegin = 0;\n    var pend = source.length;\n    while (pbegin !== pend && source[pbegin] === 0) {\n      pbegin++;\n      zeroes++;\n    }\n    var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n    var b58 = new Uint8Array(size);\n    while (pbegin !== pend) {\n      var carry = source[pbegin];\n      var i = 0;\n      for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) {\n        carry += 256 * b58[it1] >>> 0;\n        b58[it1] = carry % BASE >>> 0;\n        carry = carry / BASE >>> 0;\n      }\n      if (carry !== 0) {\n        throw new Error('Non-zero carry');\n      }\n      length = i;\n      pbegin++;\n    }\n    var it2 = size - length;\n    while (it2 !== size && b58[it2] === 0) {\n      it2++;\n    }\n    var str = LEADER.repeat(zeroes);\n    for (; it2 < size; ++it2) {\n      str += ALPHABET.charAt(b58[it2]);\n    }\n    return str;\n  }\n  function decodeUnsafe(source) {\n    if (typeof source !== 'string') {\n      throw new TypeError('Expected String');\n    }\n    if (source.length === 0) {\n      return new Uint8Array();\n    }\n    var psz = 0;\n    if (source[psz] === ' ') {\n      return;\n    }\n    var zeroes = 0;\n    var length = 0;\n    while (source[psz] === LEADER) {\n      zeroes++;\n      psz++;\n    }\n    var size = (source.length - psz) * FACTOR + 1 >>> 0;\n    var b256 = new Uint8Array(size);\n    while (source[psz]) {\n      var carry = BASE_MAP[source.charCodeAt(psz)];\n      if (carry === 255) {\n        return;\n      }\n      var i = 0;\n      for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) {\n        carry += BASE * b256[it3] >>> 0;\n        b256[it3] = carry % 256 >>> 0;\n        carry = carry / 256 >>> 0;\n      }\n      if (carry !== 0) {\n        throw new Error('Non-zero carry');\n      }\n      length = i;\n      psz++;\n    }\n    if (source[psz] === ' ') {\n      return;\n    }\n    var it4 = size - length;\n    while (it4 !== size && b256[it4] === 0) {\n      it4++;\n    }\n    var vch = new Uint8Array(zeroes + (size - it4));\n    var j = zeroes;\n    while (it4 !== size) {\n      vch[j++] = b256[it4++];\n    }\n    return vch;\n  }\n  function decode(string) {\n    var buffer = decodeUnsafe(string);\n    if (buffer) {\n      return buffer;\n    }\n    throw new Error(`Non-${ name } character`);\n  }\n  return {\n    encode: encode,\n    decodeUnsafe: decodeUnsafe,\n    decode: decode\n  };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\nexport default _brrp__multiformats_scope_baseX;","const empty = new Uint8Array(0);\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\nconst fromHex = hex => {\n  const hexes = hex.match(/../g);\n  return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n};\nconst equals = (aa, bb) => {\n  if (aa === bb)\n    return true;\n  if (aa.byteLength !== bb.byteLength) {\n    return false;\n  }\n  for (let ii = 0; ii < aa.byteLength; ii++) {\n    if (aa[ii] !== bb[ii]) {\n      return false;\n    }\n  }\n  return true;\n};\nconst coerce = o => {\n  if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n    return o;\n  if (o instanceof ArrayBuffer)\n    return new Uint8Array(o);\n  if (ArrayBuffer.isView(o)) {\n    return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n  }\n  throw new Error('Unknown type, must be binary type');\n};\nconst isBinary = o => o instanceof ArrayBuffer || ArrayBuffer.isView(o);\nconst fromString = str => new TextEncoder().encode(str);\nconst toString = b => new TextDecoder().decode(b);\nexport {\n  equals,\n  coerce,\n  isBinary,\n  fromHex,\n  toHex,\n  fromString,\n  toString,\n  empty\n};","import basex from '../../vendor/base-x.js';\nimport { coerce } from '../bytes.js';\nclass Encoder {\n  constructor(name, prefix, baseEncode) {\n    this.name = name;\n    this.prefix = prefix;\n    this.baseEncode = baseEncode;\n  }\n  encode(bytes) {\n    if (bytes instanceof Uint8Array) {\n      return `${ this.prefix }${ this.baseEncode(bytes) }`;\n    } else {\n      throw Error('Unknown type, must be binary type');\n    }\n  }\n}\nclass Decoder {\n  constructor(name, prefix, baseDecode) {\n    this.name = name;\n    this.prefix = prefix;\n    if (prefix.codePointAt(0) === undefined) {\n      throw new Error('Invalid prefix character');\n    }\n    this.prefixCodePoint = prefix.codePointAt(0);\n    this.baseDecode = baseDecode;\n  }\n  decode(text) {\n    if (typeof text === 'string') {\n      if (text.codePointAt(0) !== this.prefixCodePoint) {\n        throw Error(`Unable to decode multibase string ${ JSON.stringify(text) }, ${ this.name } decoder only supports inputs prefixed with ${ this.prefix }`);\n      }\n      return this.baseDecode(text.slice(this.prefix.length));\n    } else {\n      throw Error('Can only multibase decode strings');\n    }\n  }\n  or(decoder) {\n    return or(this, decoder);\n  }\n}\nclass ComposedDecoder {\n  constructor(decoders) {\n    this.decoders = decoders;\n  }\n  or(decoder) {\n    return or(this, decoder);\n  }\n  decode(input) {\n    const prefix = input[0];\n    const decoder = this.decoders[prefix];\n    if (decoder) {\n      return decoder.decode(input);\n    } else {\n      throw RangeError(`Unable to decode multibase string ${ JSON.stringify(input) }, only inputs prefixed with ${ Object.keys(this.decoders) } are supported`);\n    }\n  }\n}\nexport const or = (left, right) => new ComposedDecoder({\n  ...left.decoders || { [left.prefix]: left },\n  ...right.decoders || { [right.prefix]: right }\n});\nexport class Codec {\n  constructor(name, prefix, baseEncode, baseDecode) {\n    this.name = name;\n    this.prefix = prefix;\n    this.baseEncode = baseEncode;\n    this.baseDecode = baseDecode;\n    this.encoder = new Encoder(name, prefix, baseEncode);\n    this.decoder = new Decoder(name, prefix, baseDecode);\n  }\n  encode(input) {\n    return this.encoder.encode(input);\n  }\n  decode(input) {\n    return this.decoder.decode(input);\n  }\n}\nexport const from = ({name, prefix, encode, decode}) => new Codec(name, prefix, encode, decode);\nexport const baseX = ({prefix, name, alphabet}) => {\n  const {encode, decode} = basex(alphabet, name);\n  return from({\n    prefix,\n    name,\n    encode,\n    decode: text => coerce(decode(text))\n  });\n};\nconst decode = (string, alphabet, bitsPerChar, name) => {\n  const codes = {};\n  for (let i = 0; i < alphabet.length; ++i) {\n    codes[alphabet[i]] = i;\n  }\n  let end = string.length;\n  while (string[end - 1] === '=') {\n    --end;\n  }\n  const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n  let bits = 0;\n  let buffer = 0;\n  let written = 0;\n  for (let i = 0; i < end; ++i) {\n    const value = codes[string[i]];\n    if (value === undefined) {\n      throw new SyntaxError(`Non-${ name } character`);\n    }\n    buffer = buffer << bitsPerChar | value;\n    bits += bitsPerChar;\n    if (bits >= 8) {\n      bits -= 8;\n      out[written++] = 255 & buffer >> bits;\n    }\n  }\n  if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {\n    throw new SyntaxError('Unexpected end of data');\n  }\n  return out;\n};\nconst encode = (data, alphabet, bitsPerChar) => {\n  const pad = alphabet[alphabet.length - 1] === '=';\n  const mask = (1 << bitsPerChar) - 1;\n  let out = '';\n  let bits = 0;\n  let buffer = 0;\n  for (let i = 0; i < data.length; ++i) {\n    buffer = buffer << 8 | data[i];\n    bits += 8;\n    while (bits > bitsPerChar) {\n      bits -= bitsPerChar;\n      out += alphabet[mask & buffer >> bits];\n    }\n  }\n  if (bits) {\n    out += alphabet[mask & buffer << bitsPerChar - bits];\n  }\n  if (pad) {\n    while (out.length * bitsPerChar & 7) {\n      out += '=';\n    }\n  }\n  return out;\n};\nexport const rfc4648 = ({name, prefix, bitsPerChar, alphabet}) => {\n  return from({\n    prefix,\n    name,\n    encode(input) {\n      return encode(input, alphabet, bitsPerChar);\n    },\n    decode(input) {\n      return decode(input, alphabet, bitsPerChar, name);\n    }\n  });\n};","import { rfc4648 } from './base.js';\nexport const base32 = rfc4648({\n  prefix: 'b',\n  name: 'base32',\n  alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n  bitsPerChar: 5\n});\nexport const base32upper = rfc4648({\n  prefix: 'B',\n  name: 'base32upper',\n  alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n  bitsPerChar: 5\n});\nexport const base32pad = rfc4648({\n  prefix: 'c',\n  name: 'base32pad',\n  alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n  bitsPerChar: 5\n});\nexport const base32padupper = rfc4648({\n  prefix: 'C',\n  name: 'base32padupper',\n  alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n  bitsPerChar: 5\n});\nexport const base32hex = rfc4648({\n  prefix: 'v',\n  name: 'base32hex',\n  alphabet: '0123456789abcdefghijklmnopqrstuv',\n  bitsPerChar: 5\n});\nexport const base32hexupper = rfc4648({\n  prefix: 'V',\n  name: 'base32hexupper',\n  alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n  bitsPerChar: 5\n});\nexport const base32hexpad = rfc4648({\n  prefix: 't',\n  name: 'base32hexpad',\n  alphabet: '0123456789abcdefghijklmnopqrstuv=',\n  bitsPerChar: 5\n});\nexport const base32hexpadupper = rfc4648({\n  prefix: 'T',\n  name: 'base32hexpadupper',\n  alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n  bitsPerChar: 5\n});\nexport const base32z = rfc4648({\n  prefix: 'h',\n  name: 'base32z',\n  alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n  bitsPerChar: 5\n});","var encode_1 = encode;\nvar MSB = 128, REST = 127, MSBALL = ~REST, INT = Math.pow(2, 31);\nfunction encode(num, out, offset) {\n  out = out || [];\n  offset = offset || 0;\n  var oldOffset = offset;\n  while (num >= INT) {\n    out[offset++] = num & 255 | MSB;\n    num /= 128;\n  }\n  while (num & MSBALL) {\n    out[offset++] = num & 255 | MSB;\n    num >>>= 7;\n  }\n  out[offset] = num | 0;\n  encode.bytes = offset - oldOffset + 1;\n  return out;\n}\nvar decode = read;\nvar MSB$1 = 128, REST$1 = 127;\nfunction read(buf, offset) {\n  var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf.length;\n  do {\n    if (counter >= l) {\n      read.bytes = 0;\n      throw new RangeError('Could not decode varint');\n    }\n    b = buf[counter++];\n    res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);\n    shift += 7;\n  } while (b >= MSB$1);\n  read.bytes = counter - offset;\n  return res;\n}\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\nvar length = function (value) {\n  return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;\n};\nvar varint = {\n  encode: encode_1,\n  decode: decode,\n  encodingLength: length\n};\nvar _brrp_varint = varint;\nexport default _brrp_varint;","import varint from '../vendor/varint.js';\nexport const decode = (data, offset = 0) => {\n  const code = varint.decode(data, offset);\n  return [\n    code,\n    varint.decode.bytes\n  ];\n};\nexport const encodeTo = (int, target, offset = 0) => {\n  varint.encode(int, target, offset);\n  return target;\n};\nexport const encodingLength = int => {\n  return varint.encodingLength(int);\n};","import {\n  coerce,\n  equals as equalBytes\n} from '../bytes.js';\nimport * as varint from '../varint.js';\nexport const create = (code, digest) => {\n  const size = digest.byteLength;\n  const sizeOffset = varint.encodingLength(code);\n  const digestOffset = sizeOffset + varint.encodingLength(size);\n  const bytes = new Uint8Array(digestOffset + size);\n  varint.encodeTo(code, bytes, 0);\n  varint.encodeTo(size, bytes, sizeOffset);\n  bytes.set(digest, digestOffset);\n  return new Digest(code, size, digest, bytes);\n};\nexport const decode = multihash => {\n  const bytes = coerce(multihash);\n  const [code, sizeOffset] = varint.decode(bytes);\n  const [size, digestOffset] = varint.decode(bytes.subarray(sizeOffset));\n  const digest = bytes.subarray(sizeOffset + digestOffset);\n  if (digest.byteLength !== size) {\n    throw new Error('Incorrect length');\n  }\n  return new Digest(code, size, digest, bytes);\n};\nexport const equals = (a, b) => {\n  if (a === b) {\n    return true;\n  } else {\n    return a.code === b.code && a.size === b.size && equalBytes(a.bytes, b.bytes);\n  }\n};\nexport class Digest {\n  constructor(code, size, digest, bytes) {\n    this.code = code;\n    this.size = size;\n    this.digest = digest;\n    this.bytes = bytes;\n  }\n}","import { baseX } from './base.js';\nexport const base58btc = baseX({\n  name: 'base58btc',\n  prefix: 'z',\n  alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nexport const base58flickr = baseX({\n  name: 'base58flickr',\n  prefix: 'Z',\n  alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});","import * as varint from './varint.js';\nimport * as Digest from './hashes/digest.js';\nimport { base58btc } from './bases/base58.js';\nimport { base32 } from './bases/base32.js';\nimport { coerce } from './bytes.js';\nexport class CID {\n  constructor(version, code, multihash, bytes) {\n    this.code = code;\n    this.version = version;\n    this.multihash = multihash;\n    this.bytes = bytes;\n    this.byteOffset = bytes.byteOffset;\n    this.byteLength = bytes.byteLength;\n    this.asCID = this;\n    this._baseCache = new Map();\n    Object.defineProperties(this, {\n      byteOffset: hidden,\n      byteLength: hidden,\n      code: readonly,\n      version: readonly,\n      multihash: readonly,\n      bytes: readonly,\n      _baseCache: hidden,\n      asCID: hidden\n    });\n  }\n  toV0() {\n    switch (this.version) {\n    case 0: {\n        return this;\n      }\n    default: {\n        const {code, multihash} = this;\n        if (code !== DAG_PB_CODE) {\n          throw new Error('Cannot convert a non dag-pb CID to CIDv0');\n        }\n        if (multihash.code !== SHA_256_CODE) {\n          throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0');\n        }\n        return CID.createV0(multihash);\n      }\n    }\n  }\n  toV1() {\n    switch (this.version) {\n    case 0: {\n        const {code, digest} = this.multihash;\n        const multihash = Digest.create(code, digest);\n        return CID.createV1(this.code, multihash);\n      }\n    case 1: {\n        return this;\n      }\n    default: {\n        throw Error(`Can not convert CID version ${ this.version } to version 0. This is a bug please report`);\n      }\n    }\n  }\n  equals(other) {\n    return other && this.code === other.code && this.version === other.version && Digest.equals(this.multihash, other.multihash);\n  }\n  toString(base) {\n    const {bytes, version, _baseCache} = this;\n    switch (version) {\n    case 0:\n      return toStringV0(bytes, _baseCache, base || base58btc.encoder);\n    default:\n      return toStringV1(bytes, _baseCache, base || base32.encoder);\n    }\n  }\n  toJSON() {\n    return {\n      code: this.code,\n      version: this.version,\n      hash: this.multihash.bytes\n    };\n  }\n  get [Symbol.toStringTag]() {\n    return 'CID';\n  }\n  [Symbol.for('nodejs.util.inspect.custom')]() {\n    return 'CID(' + this.toString() + ')';\n  }\n  static isCID(value) {\n    deprecate(/^0\\.0/, IS_CID_DEPRECATION);\n    return !!(value && (value[cidSymbol] || value.asCID === value));\n  }\n  get toBaseEncodedString() {\n    throw new Error('Deprecated, use .toString()');\n  }\n  get codec() {\n    throw new Error('\"codec\" property is deprecated, use integer \"code\" property instead');\n  }\n  get buffer() {\n    throw new Error('Deprecated .buffer property, use .bytes to get Uint8Array instead');\n  }\n  get multibaseName() {\n    throw new Error('\"multibaseName\" property is deprecated');\n  }\n  get prefix() {\n    throw new Error('\"prefix\" property is deprecated');\n  }\n  static asCID(value) {\n    if (value instanceof CID) {\n      return value;\n    } else if (value != null && value.asCID === value) {\n      const {version, code, multihash, bytes} = value;\n      return new CID(version, code, multihash, bytes || encodeCID(version, code, multihash.bytes));\n    } else if (value != null && value[cidSymbol] === true) {\n      const {version, multihash, code} = value;\n      const digest = Digest.decode(multihash);\n      return CID.create(version, code, digest);\n    } else {\n      return null;\n    }\n  }\n  static create(version, code, digest) {\n    if (typeof code !== 'number') {\n      throw new Error('String codecs are no longer supported');\n    }\n    switch (version) {\n    case 0: {\n        if (code !== DAG_PB_CODE) {\n          throw new Error(`Version 0 CID must use dag-pb (code: ${ DAG_PB_CODE }) block encoding`);\n        } else {\n          return new CID(version, code, digest, digest.bytes);\n        }\n      }\n    case 1: {\n        const bytes = encodeCID(version, code, digest.bytes);\n        return new CID(version, code, digest, bytes);\n      }\n    default: {\n        throw new Error('Invalid version');\n      }\n    }\n  }\n  static createV0(digest) {\n    return CID.create(0, DAG_PB_CODE, digest);\n  }\n  static createV1(code, digest) {\n    return CID.create(1, code, digest);\n  }\n  static decode(bytes) {\n    const [cid, remainder] = CID.decodeFirst(bytes);\n    if (remainder.length) {\n      throw new Error('Incorrect length');\n    }\n    return cid;\n  }\n  static decodeFirst(bytes) {\n    const specs = CID.inspectBytes(bytes);\n    const prefixSize = specs.size - specs.multihashSize;\n    const multihashBytes = coerce(bytes.subarray(prefixSize, prefixSize + specs.multihashSize));\n    if (multihashBytes.byteLength !== specs.multihashSize) {\n      throw new Error('Incorrect length');\n    }\n    const digestBytes = multihashBytes.subarray(specs.multihashSize - specs.digestSize);\n    const digest = new Digest.Digest(specs.multihashCode, specs.digestSize, digestBytes, multihashBytes);\n    const cid = specs.version === 0 ? CID.createV0(digest) : CID.createV1(specs.codec, digest);\n    return [\n      cid,\n      bytes.subarray(specs.size)\n    ];\n  }\n  static inspectBytes(initialBytes) {\n    let offset = 0;\n    const next = () => {\n      const [i, length] = varint.decode(initialBytes.subarray(offset));\n      offset += length;\n      return i;\n    };\n    let version = next();\n    let codec = DAG_PB_CODE;\n    if (version === 18) {\n      version = 0;\n      offset = 0;\n    } else if (version === 1) {\n      codec = next();\n    }\n    if (version !== 0 && version !== 1) {\n      throw new RangeError(`Invalid CID version ${ version }`);\n    }\n    const prefixSize = offset;\n    const multihashCode = next();\n    const digestSize = next();\n    const size = offset + digestSize;\n    const multihashSize = size - prefixSize;\n    return {\n      version,\n      codec,\n      multihashCode,\n      digestSize,\n      multihashSize,\n      size\n    };\n  }\n  static parse(source, base) {\n    const [prefix, bytes] = parseCIDtoBytes(source, base);\n    const cid = CID.decode(bytes);\n    cid._baseCache.set(prefix, source);\n    return cid;\n  }\n}\nconst parseCIDtoBytes = (source, base) => {\n  switch (source[0]) {\n  case 'Q': {\n      const decoder = base || base58btc;\n      return [\n        base58btc.prefix,\n        decoder.decode(`${ base58btc.prefix }${ source }`)\n      ];\n    }\n  case base58btc.prefix: {\n      const decoder = base || base58btc;\n      return [\n        base58btc.prefix,\n        decoder.decode(source)\n      ];\n    }\n  case base32.prefix: {\n      const decoder = base || base32;\n      return [\n        base32.prefix,\n        decoder.decode(source)\n      ];\n    }\n  default: {\n      if (base == null) {\n        throw Error('To parse non base32 or base58btc encoded CID multibase decoder must be provided');\n      }\n      return [\n        source[0],\n        base.decode(source)\n      ];\n    }\n  }\n};\nconst toStringV0 = (bytes, cache, base) => {\n  const {prefix} = base;\n  if (prefix !== base58btc.prefix) {\n    throw Error(`Cannot string encode V0 in ${ base.name } encoding`);\n  }\n  const cid = cache.get(prefix);\n  if (cid == null) {\n    const cid = base.encode(bytes).slice(1);\n    cache.set(prefix, cid);\n    return cid;\n  } else {\n    return cid;\n  }\n};\nconst toStringV1 = (bytes, cache, base) => {\n  const {prefix} = base;\n  const cid = cache.get(prefix);\n  if (cid == null) {\n    const cid = base.encode(bytes);\n    cache.set(prefix, cid);\n    return cid;\n  } else {\n    return cid;\n  }\n};\nconst DAG_PB_CODE = 112;\nconst SHA_256_CODE = 18;\nconst encodeCID = (version, code, multihash) => {\n  const codeOffset = varint.encodingLength(version);\n  const hashOffset = codeOffset + varint.encodingLength(code);\n  const bytes = new Uint8Array(hashOffset + multihash.byteLength);\n  varint.encodeTo(version, bytes, 0);\n  varint.encodeTo(code, bytes, codeOffset);\n  bytes.set(multihash, hashOffset);\n  return bytes;\n};\nconst cidSymbol = Symbol.for('@ipld/js-cid/CID');\nconst readonly = {\n  writable: false,\n  configurable: false,\n  enumerable: true\n};\nconst hidden = {\n  writable: false,\n  enumerable: false,\n  configurable: false\n};\nconst version = '0.0.0-dev';\nconst deprecate = (range, message) => {\n  if (range.test(version)) {\n    console.warn(message);\n  } else {\n    throw new Error(message);\n  }\n};\nconst IS_CID_DEPRECATION = `CID.isCID(v) is deprecated and will be removed in the next major release.\nFollowing code pattern:\n\nif (CID.isCID(value)) {\n  doSomethingWithCID(value)\n}\n\nIs replaced with:\n\nconst cid = CID.asCID(value)\nif (cid) {\n  // Make sure to use cid instead of value\n  doSomethingWithCID(cid)\n}\n`;","import { CID } from 'multiformats';\nimport { BaseBlockstore } from 'blockstore-core';\nexport class MemoryBlockStore extends BaseBlockstore {\n    constructor() {\n        super();\n        this.store = new Map();\n    }\n    async *blocks() {\n        for (const [cidStr, bytes] of this.store.entries()) {\n            yield { cid: CID.parse(cidStr), bytes };\n        }\n    }\n    put(cid, bytes) {\n        this.store.set(cid.toString(), bytes);\n        return Promise.resolve();\n    }\n    get(cid) {\n        const bytes = this.store.get(cid.toString());\n        if (!bytes) {\n            throw new Error(`block with cid ${cid.toString()} no found`);\n        }\n        return Promise.resolve(bytes);\n    }\n    has(cid) {\n        return Promise.resolve(this.store.has(cid.toString()));\n    }\n    close() {\n        this.store.clear();\n        return Promise.resolve();\n    }\n}\n","import * as Digest from './digest.js';\nexport const from = ({name, code, encode}) => new Hasher(name, code, encode);\nexport class Hasher {\n  constructor(name, code, encode) {\n    this.name = name;\n    this.code = code;\n    this.encode = encode;\n  }\n  digest(input) {\n    if (input instanceof Uint8Array) {\n      const result = this.encode(input);\n      return result instanceof Uint8Array ? Digest.create(this.code, result) : result.then(digest => Digest.create(this.code, digest));\n    } else {\n      throw Error('Unknown type, must be binary type');\n    }\n  }\n}","import {\n  bytes as binary,\n  CID\n} from './index.js';\nconst readonly = ({enumerable = true, configurable = false} = {}) => ({\n  enumerable,\n  configurable,\n  writable: false\n});\nconst links = function* (source, base) {\n  if (source == null)\n    return;\n  if (source instanceof Uint8Array)\n    return;\n  for (const [key, value] of Object.entries(source)) {\n    const path = [\n      ...base,\n      key\n    ];\n    if (value != null && typeof value === 'object') {\n      if (Array.isArray(value)) {\n        for (const [index, element] of value.entries()) {\n          const elementPath = [\n            ...path,\n            index\n          ];\n          const cid = CID.asCID(element);\n          if (cid) {\n            yield [\n              elementPath.join('/'),\n              cid\n            ];\n          } else if (typeof element === 'object') {\n            yield* links(element, elementPath);\n          }\n        }\n      } else {\n        const cid = CID.asCID(value);\n        if (cid) {\n          yield [\n            path.join('/'),\n            cid\n          ];\n        } else {\n          yield* links(value, path);\n        }\n      }\n    }\n  }\n};\nconst tree = function* (source, base) {\n  if (source == null)\n    return;\n  for (const [key, value] of Object.entries(source)) {\n    const path = [\n      ...base,\n      key\n    ];\n    yield path.join('/');\n    if (value != null && !(value instanceof Uint8Array) && typeof value === 'object' && !CID.asCID(value)) {\n      if (Array.isArray(value)) {\n        for (const [index, element] of value.entries()) {\n          const elementPath = [\n            ...path,\n            index\n          ];\n          yield elementPath.join('/');\n          if (typeof element === 'object' && !CID.asCID(element)) {\n            yield* tree(element, elementPath);\n          }\n        }\n      } else {\n        yield* tree(value, path);\n      }\n    }\n  }\n};\nconst get = (source, path) => {\n  let node = source;\n  for (const [index, key] of path.entries()) {\n    node = node[key];\n    if (node == null) {\n      throw new Error(`Object has no property at ${ path.slice(0, index + 1).map(part => `[${ JSON.stringify(part) }]`).join('') }`);\n    }\n    const cid = CID.asCID(node);\n    if (cid) {\n      return {\n        value: cid,\n        remaining: path.slice(index + 1).join('/')\n      };\n    }\n  }\n  return { value: node };\n};\nclass Block {\n  constructor({cid, bytes, value}) {\n    if (!cid || !bytes || typeof value === 'undefined')\n      throw new Error('Missing required argument');\n    this.cid = cid;\n    this.bytes = bytes;\n    this.value = value;\n    this.asBlock = this;\n    Object.defineProperties(this, {\n      cid: readonly(),\n      bytes: readonly(),\n      value: readonly(),\n      asBlock: readonly()\n    });\n  }\n  links() {\n    return links(this.value, []);\n  }\n  tree() {\n    return tree(this.value, []);\n  }\n  get(path = '/') {\n    return get(this.value, path.split('/').filter(Boolean));\n  }\n}\nconst encode = async ({value, codec, hasher}) => {\n  if (typeof value === 'undefined')\n    throw new Error('Missing required argument \"value\"');\n  if (!codec || !hasher)\n    throw new Error('Missing required argument: codec or hasher');\n  const bytes = codec.encode(value);\n  const hash = await hasher.digest(bytes);\n  const cid = CID.create(1, codec.code, hash);\n  return new Block({\n    value,\n    bytes,\n    cid\n  });\n};\nconst decode = async ({bytes, codec, hasher}) => {\n  if (!bytes)\n    throw new Error('Missing required argument \"bytes\"');\n  if (!codec || !hasher)\n    throw new Error('Missing required argument: codec or hasher');\n  const value = codec.decode(bytes);\n  const hash = await hasher.digest(bytes);\n  const cid = CID.create(1, codec.code, hash);\n  return new Block({\n    value,\n    bytes,\n    cid\n  });\n};\nconst createUnsafe = ({\n  bytes,\n  cid,\n  value: maybeValue,\n  codec\n}) => {\n  const value = maybeValue !== undefined ? maybeValue : codec && codec.decode(bytes);\n  if (value === undefined)\n    throw new Error('Missing required argument, must either provide \"value\" or \"codec\"');\n  return new Block({\n    cid,\n    bytes,\n    value\n  });\n};\nconst create = async ({bytes, cid, hasher, codec}) => {\n  if (!bytes)\n    throw new Error('Missing required argument \"bytes\"');\n  if (!hasher)\n    throw new Error('Missing required argument \"hasher\"');\n  const value = codec.decode(bytes);\n  const hash = await hasher.digest(bytes);\n  if (!binary.equals(cid.multihash.bytes, hash.bytes)) {\n    throw new Error('CID hash does not match bytes');\n  }\n  return createUnsafe({\n    bytes,\n    cid,\n    value,\n    codec\n  });\n};\nexport {\n  encode,\n  decode,\n  create,\n  createUnsafe,\n  Block\n};","import crypto from 'crypto';\nimport { from } from './hasher.js';\nimport { coerce } from '../bytes.js';\nexport const sha256 = from({\n  name: 'sha2-256',\n  code: 18,\n  encode: input => coerce(crypto.createHash('sha256').update(input).digest())\n});\nexport const sha512 = from({\n  name: 'sha2-512',\n  code: 19,\n  encode: input => coerce(crypto.createHash('sha512').update(input).digest())\n});","import type { Blockstore } from 'ipfs-car/blockstore';\nimport type { CID } from 'multiformats';\n\n/**\n * An implementation of the CAR reader interface that is backed by a blockstore.\n * @see https://github.com/nftstorage/nft.storage/blob/0fc7e4e73867c437eac54f75f58a808dd4581c47/packages/client/src/bs-car-reader.js\n */\nexport class BlockstoreCarReader {\n  _version: number;\n  _roots: CID[];\n  _blockstore: Blockstore;\n\n  constructor(roots: CID[], blockstore: Blockstore, version = 1) {\n    this._version = version;\n    this._roots = roots;\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  has(cid: CID) {\n    return this._blockstore.has(cid);\n  }\n\n  async get(cid: CID) {\n    const bytes = await this._blockstore.get(cid);\n    return { cid, bytes };\n  }\n\n  blocks(): ReturnType<Blockstore['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","import type { Blockstore } from 'ipfs-car/blockstore';\nimport type { CID } from 'multiformats';\nimport { CarReader } from 'nft.storage';\nimport * as Block from 'multiformats/block';\nimport { sha256 } from 'multiformats/hashes/sha2';\nimport * as dagPb from '@ipld/dag-pb';\nimport { UnixFS } from 'ipfs-unixfs';\nimport { BlockstoreCarReader } from './BlockstoreCarReader';\n\nexport type EncodedCar = { car: CarReader; cid: CID };\nexport type DagPbLink = dagPb.PBLink;\nexport type DagPbBlock = Block.Block<dagPb.PBNode>;\n\nexport const DEFAULT_GATEWAY_HOST = 'https://nftstorage.link';\n\nexport function toGatewayUri(\n  cid: string,\n  path = '',\n  host: string = DEFAULT_GATEWAY_HOST\n): string {\n  let pathPrefix = `/ipfs/${cid}`;\n  if (path) {\n    pathPrefix += '/';\n  }\n  host = host || DEFAULT_GATEWAY_HOST;\n  const base = new URL(pathPrefix, host);\n  const u = new URL(path, base);\n  return u.toString();\n}\n\nexport function toIpfsUri(cid: string, path = ''): string {\n  const u = new URL(path, `ipfs://${cid}`);\n  return u.toString();\n}\n\nexport async function toDagPbLink(\n  node: EncodedCar,\n  name: string\n): Promise<DagPbLink> {\n  const block = await node.car.get(node.cid);\n  if (!block) {\n    throw new Error(`invalid CAR: missing block for CID [${node.cid}]`);\n  }\n  return dagPb.createLink(name, block.bytes.byteLength, node.cid);\n}\n\nexport async function toDirectoryBlock(\n  links: DagPbLink[]\n): Promise<DagPbBlock> {\n  const data = new UnixFS({ type: 'directory' }).marshal();\n  const value = dagPb.createNode(data, links);\n  return Block.encode({ value, codec: dagPb, hasher: sha256 });\n}\n\nexport async function toEncodedCar(\n  block: DagPbBlock,\n  blockstore: Blockstore\n): Promise<EncodedCar> {\n  await blockstore.put(block.cid, block.bytes);\n  const car = new BlockstoreCarReader([block.cid], blockstore);\n  const { cid } = block;\n\n  return { car, cid };\n}\n","import { Blob, NFTStorage } from 'nft.storage';\nimport { MemoryBlockStore } from 'ipfs-car/blockstore/memory';\nimport { NFTStorageMetaplexor } from '@nftstorage/metaplex-auth';\nimport {\n  MetaplexFile,\n  StorageDriver,\n  lamports,\n  Amount,\n  Metaplex,\n  Signer,\n  isKeypairSigner,\n} from '@metaplex-foundation/js';\nimport {\n  toDagPbLink,\n  toDirectoryBlock,\n  toEncodedCar,\n  toGatewayUri,\n  toIpfsUri,\n} from './utils';\n\nexport type NftStorageDriverOptions = {\n  identity?: Signer;\n  token?: string;\n  endpoint?: URL;\n  gatewayHost?: string;\n  batchSize?: number;\n  useGatewayUrls?: boolean;\n};\n\nexport class NftStorageDriver implements StorageDriver {\n  readonly metaplex: Metaplex;\n  readonly identity?: Signer;\n  readonly token?: string;\n  readonly endpoint?: URL;\n  readonly gatewayHost?: string;\n  onStoredChunk?: (size: number) => void;\n  batchSize: number;\n  useGatewayUrls: boolean;\n\n  constructor(metaplex: Metaplex, options: NftStorageDriverOptions = {}) {\n    this.metaplex = metaplex;\n    this.identity = options.identity;\n    this.token = options.token;\n    this.endpoint = options.endpoint;\n    this.gatewayHost = options.gatewayHost;\n    this.batchSize = options.batchSize ?? 50;\n    this.useGatewayUrls = options.useGatewayUrls ?? true;\n  }\n\n  onProgress(callback: (size: number) => void) {\n    this.onStoredChunk = callback;\n    return this;\n  }\n\n  async getUploadPrice(): Promise<Amount> {\n    return lamports(0);\n  }\n\n  async upload(file: MetaplexFile): Promise<string> {\n    return (await this.uploadAll([file]))[0];\n  }\n\n  async uploadAll(files: MetaplexFile[]): Promise<string[]> {\n    if (this.batchSize <= 0) {\n      throw new Error('batchSize must be greater than 0');\n    }\n\n    const client = await this.client();\n    const blockstore = new MemoryBlockStore();\n    const uris: string[] = [];\n    const numBatches = Math.ceil(files.length / this.batchSize);\n    const batches: MetaplexFile[][] = new Array(numBatches)\n      .fill([])\n      .map((_, i) => files.slice(i * this.batchSize, (i + 1) * this.batchSize));\n\n    for (let i = 0; i < batches.length; i++) {\n      const batch = batches[i];\n      const batchLinks = [];\n\n      for (let j = 0; j < batch.length; j++) {\n        const file = batch[j];\n        const blob = new Blob([file.buffer]);\n        const node = await NFTStorage.encodeBlob(blob, { blockstore });\n        const fileUri = this.useGatewayUrls\n          ? toGatewayUri(node.cid.toString(), undefined, this.gatewayHost)\n          : toIpfsUri(node.cid.toString());\n        uris.push(fileUri);\n        batchLinks.push(await toDagPbLink(node, file.uniqueName));\n      }\n\n      const batchBlock = await toDirectoryBlock(batchLinks);\n      const { cid, car } = await toEncodedCar(batchBlock, blockstore);\n\n      const options = { onStoredChunk: this.onStoredChunk };\n      const promise = isNFTStorageMetaplexor(client)\n        ? client.storeCar(cid, car, options)\n        : client.storeCar(car, options);\n\n      await promise;\n    }\n\n    return uris;\n  }\n\n  async client(): Promise<NFTStorage | NFTStorageMetaplexor> {\n    if (this.token) {\n      return new NFTStorage({\n        token: this.token,\n        endpoint: this.endpoint,\n      });\n    }\n\n    const signer: Signer = this.identity ?? this.metaplex.identity();\n    const authOptions = {\n      mintingAgent: '@metaplex-foundation/js-plugin-nft-storage',\n      solanaCluster: this.metaplex.cluster,\n      endpoint: this.endpoint,\n    };\n\n    return isKeypairSigner(signer)\n      ? NFTStorageMetaplexor.withSecretKey(signer.secretKey, authOptions)\n      : NFTStorageMetaplexor.withSigner(\n          signer.signMessage.bind(signer),\n          signer.publicKey.toBuffer(),\n          authOptions\n        );\n  }\n}\n\nconst isNFTStorageMetaplexor = (\n  client: NFTStorage | NFTStorageMetaplexor\n): client is NFTStorageMetaplexor => {\n  return 'storeNFTFromFilesystem' in client;\n};\n","import type { Metaplex, MetaplexPlugin } from '@metaplex-foundation/js';\nimport { NftStorageDriver, NftStorageDriverOptions } from './NftStorageDriver';\n\nexport const nftStorage = (\n  options: NftStorageDriverOptions = {}\n): MetaplexPlugin => ({\n  install(metaplex: Metaplex) {\n    metaplex.storage().setDriver(new NftStorageDriver(metaplex, options));\n  },\n});\n"],"names":["drain","source","_","itDrain","filter","fn","entry","itFilter","take","limit","items","itTake","all","arr","push","itAll","sortAll","iterable","sorter","values","sort","BaseBlockstore","open","Promise","reject","Error","close","put","key","val","options","get","has","delete","putMany","value","getMany","deleteMany","batch","puts","dels","commit","_all","q","_allKeys","query","it","prefix","e","toString","startsWith","Array","isArray","filters","reduce","f","orders","offset","i","queryKeys","cid","base","ALPHABET","name","length","TypeError","BASE_MAP","Uint8Array","j","x","charAt","xc","charCodeAt","BASE","LEADER","FACTOR","Math","log","iFACTOR","encode","ArrayBuffer","isView","buffer","byteOffset","byteLength","from","zeroes","pbegin","pend","size","b58","carry","it1","it2","str","repeat","decodeUnsafe","psz","b256","it3","it4","vch","decode","string","src","_brrp__multiformats_scope_baseX","equals","aa","bb","ii","coerce","o","constructor","Encoder","baseEncode","bytes","Decoder","baseDecode","codePointAt","undefined","prefixCodePoint","text","JSON","stringify","slice","or","decoder","ComposedDecoder","decoders","input","RangeError","Object","keys","left","right","Codec","encoder","baseX","alphabet","basex","bitsPerChar","codes","end","out","bits","written","SyntaxError","data","pad","mask","rfc4648","base32","encode_1","MSB","REST","MSBALL","INT","pow","num","oldOffset","read","MSB$1","REST$1","buf","res","shift","counter","b","l","N1","N2","N3","N4","N5","N6","N7","N8","N9","varint","encodingLength","_brrp_varint","code","encodeTo","int","target","create","digest","sizeOffset","digestOffset","set","Digest","multihash","subarray","a","equalBytes","base58btc","CID","version","asCID","_baseCache","Map","defineProperties","hidden","readonly","toV0","DAG_PB_CODE","SHA_256_CODE","createV0","toV1","createV1","other","toStringV0","toStringV1","toJSON","hash","Symbol","toStringTag","for","isCID","deprecate","IS_CID_DEPRECATION","cidSymbol","toBaseEncodedString","codec","multibaseName","encodeCID","remainder","decodeFirst","specs","inspectBytes","prefixSize","multihashSize","multihashBytes","digestBytes","digestSize","multihashCode","initialBytes","next","parse","parseCIDtoBytes","cache","codeOffset","hashOffset","writable","configurable","enumerable","range","message","test","console","warn","MemoryBlockStore","store","blocks","cidStr","entries","resolve","clear","Hasher","result","then","links","path","index","element","elementPath","join","tree","node","map","part","remaining","Block","asBlock","split","Boolean","hasher","sha256","crypto","createHash","update","BlockstoreCarReader","roots","blockstore","_version","_roots","_blockstore","getRoots","cids","DEFAULT_GATEWAY_HOST","toGatewayUri","host","pathPrefix","URL","u","toIpfsUri","toDagPbLink","block","car","dagPb","createLink","toDirectoryBlock","UnixFS","type","marshal","createNode","toEncodedCar","NftStorageDriver","metaplex","identity","token","endpoint","gatewayHost","batchSize","useGatewayUrls","onProgress","callback","onStoredChunk","getUploadPrice","lamports","upload","file","uploadAll","files","client","uris","numBatches","ceil","batches","fill","batchLinks","blob","Blob","NFTStorage","encodeBlob","fileUri","uniqueName","batchBlock","promise","isNFTStorageMetaplexor","storeCar","signer","authOptions","mintingAgent","solanaCluster","cluster","isKeypairSigner","NFTStorageMetaplexor","withSecretKey","secretKey","withSigner","signMessage","bind","publicKey","toBuffer","nftStorage","install","storage","setDriver"],"mappings":"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"}