{"version":3,"sources":["webpack:///./node_modules/cids/node_modules/multicodec/src/int-table.js","webpack:///./node_modules/cids/node_modules/multibase/src/base16.js","webpack:///./node_modules/cids/node_modules/multicodec/src/varint-table.js","webpack:///./node_modules/cids/node_modules/multibase/src/constants.js","webpack:///./node_modules/cids/src/cid-util.js","webpack:///./node_modules/cids/node_modules/multicodec/src/print.js","webpack:///./node_modules/cipher-base/index.js","webpack:///./node_modules/cids/node_modules/multicodec/src/index.js","webpack:///./node_modules/builtin-status-codes/browser.js","webpack:///./node_modules/buffer-xor/index.js","webpack:///./node_modules/cids/node_modules/multibase/src/base.js","webpack:///./node_modules/cids/node_modules/multibase/src/index.js","webpack:///./node_modules/cids/node_modules/multicodec/src/constants.js","webpack:///./node_modules/cids/src/index.js","webpack:///./node_modules/cids/node_modules/multibase/src/base64.js","webpack:///./node_modules/cids/node_modules/multicodec/src/util.js","webpack:///./node_modules/cids/node_modules/multibase/src/base32.js"],"names":["baseTable","nameTable","Map","encodingName","code","set","module","exports","Object","freeze","Buffer","alphabet","encode","input","from","toString","decode","char","indexOf","Error","varintEncode","varintTable","Base","baseX","base16","base32","base64","constants","names","reduce","prev","tupple","codes","mh","CIDUtil","checkCIDComponents","other","version","codec","multibaseName","isBuffer","multihash","validate","err","errorMsg","message","table","tableByCode","name","entries","Transform","StringDecoder","CipherBase","hashMode","call","this","_finalOrDigest","final","_final","__final","_decoder","_encoding","inherits","prototype","update","data","inputEnc","outputEnc","outData","_update","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_transform","_","next","push","e","_flush","done","alloc","value","enc","fin","out","write","end","varint","intTable","codecNameToCodeVarint","util","addPrefix","multicodecStrOrCode","prefix","varintBufferEncode","concat","rmPrefix","slice","bytes","getCodec","prefixedData","codecName","get","getName","getNumber","varintBufferDecode","getCode","getCodeVarint","getVarint","assign","print","length","Math","min","a","b","buffer","i","constructor","implementation","engine","stringOrBuffer","isImplemented","multibase","nameOrCode","buf","base","getBase","bufOrString","substring","isEncoded","keys","errNotSupported","codeBuf","validEncode","toUpperCase","replace","multicodec","codecs","withIs","CID","_CID","isCID","cid","baseName","parseInt","fromB58String","validateCID","defineProperty","firstByte","v","_buffer","toV0","toV1","toBaseEncodedString","string","str","toB58String","Symbol","for","toJSON","hash","equals","static","className","symbolName","padding","url","output","pad","bufferToNumber","numberToBuffer","num","hexString","byteLength","view","Uint8Array","bits","RegExp","index"],"mappings":"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","file":"js/chunk-vendors~7274e1de.15670fae.js","sourcesContent":["'use strict'\nconst baseTable = require('./base-table.json')\n\n// map for hexString -> codecName\nconst nameTable = new Map()\n\nfor (const encodingName in baseTable) {\n const code = baseTable[encodingName]\n nameTable.set(code, encodingName)\n}\n\nmodule.exports = Object.freeze(nameTable)\n","'use strict'\nconst { Buffer } = require('buffer')\n\nmodule.exports = function base16 (alphabet) {\n return {\n encode (input) {\n if (typeof input === 'string') {\n return Buffer.from(input).toString('hex')\n }\n return input.toString('hex')\n },\n decode (input) {\n for (const char of input) {\n if (alphabet.indexOf(char) < 0) {\n throw new Error('invalid base16 character')\n }\n }\n return Buffer.from(input, 'hex')\n }\n }\n}\n","'use strict'\n\nconst baseTable = require('./base-table.json')\nconst varintEncode = require('./util').varintEncode\n\n// map for codecName -> codeVarintBuffer\nconst varintTable = {}\n\nfor (const encodingName in baseTable) {\n const code = baseTable[encodingName]\n varintTable[encodingName] = varintEncode(code)\n}\n\nmodule.exports = Object.freeze(varintTable)\n","'use strict'\n\nconst Base = require('./base.js')\nconst baseX = require('base-x')\nconst base16 = require('./base16')\nconst base32 = require('./base32')\nconst base64 = require('./base64')\n\n// name, code, implementation, alphabet\nconst constants = [\n ['base1', '1', '', '1'],\n ['base2', '0', baseX, '01'],\n ['base8', '7', baseX, '01234567'],\n ['base10', '9', baseX, '0123456789'],\n ['base16', 'f', base16, '0123456789abcdef'],\n ['base32', 'b', base32, 'abcdefghijklmnopqrstuvwxyz234567'],\n ['base32pad', 'c', base32, 'abcdefghijklmnopqrstuvwxyz234567='],\n ['base32hex', 'v', base32, '0123456789abcdefghijklmnopqrstuv'],\n ['base32hexpad', 't', base32, '0123456789abcdefghijklmnopqrstuv='],\n ['base32z', 'h', base32, 'ybndrfg8ejkmcpqxot1uwisza345h769'],\n ['base58flickr', 'Z', baseX, '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'],\n ['base58btc', 'z', baseX, '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'],\n ['base64', 'm', base64, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'],\n ['base64pad', 'M', base64, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='],\n ['base64url', 'u', base64, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'],\n ['base64urlpad', 'U', base64, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=']\n]\n\nconst names = constants.reduce((prev, tupple) => {\n prev[tupple[0]] = new Base(tupple[0], tupple[1], tupple[2], tupple[3])\n return prev\n}, {})\n\nconst codes = constants.reduce((prev, tupple) => {\n prev[tupple[1]] = names[tupple[0]]\n return prev\n}, {})\n\nmodule.exports = {\n names: names,\n codes: codes\n}\n","'use strict'\n\nconst mh = require('multihashes')\nconst { Buffer } = require('buffer')\nvar CIDUtil = {\n /**\n * Test if the given input is a valid CID object.\n * Returns an error message if it is not.\n * Returns undefined if it is a valid CID.\n *\n * @param {any} other\n * @returns {string}\n */\n checkCIDComponents: function (other) {\n if (other == null) {\n return 'null values are not valid CIDs'\n }\n\n if (!(other.version === 0 || other.version === 1)) {\n return 'Invalid version, must be a number equal to 1 or 0'\n }\n\n if (typeof other.codec !== 'string') {\n return 'codec must be string'\n }\n\n if (other.version === 0) {\n if (other.codec !== 'dag-pb') {\n return \"codec must be 'dag-pb' for CIDv0\"\n }\n if (other.multibaseName !== 'base58btc') {\n return \"multibaseName must be 'base58btc' for CIDv0\"\n }\n }\n\n if (!Buffer.isBuffer(other.multihash)) {\n return 'multihash must be a Buffer'\n }\n\n try {\n mh.validate(other.multihash)\n } catch (err) {\n let errorMsg = err.message\n if (!errorMsg) { // Just in case mh.validate() throws an error with empty error message\n errorMsg = 'Multihash validation failed'\n }\n return errorMsg\n }\n }\n}\n\nmodule.exports = CIDUtil\n","'use strict'\n\nconst table = require('./base-table.json')\n\n// map for code -> print friendly name\nconst tableByCode = {}\n\nfor (const [name, code] of Object.entries(table)) {\n if (tableByCode[code] === undefined) tableByCode[code] = name\n}\n\nmodule.exports = Object.freeze(tableByCode)\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","/**\n * Implementation of the multicodec specification.\n *\n * @module multicodec\n * @example\n * const multicodec = require('multicodec')\n *\n * const prefixedProtobuf = multicodec.addPrefix('protobuf', protobufBuffer)\n * // prefixedProtobuf 0x50...\n *\n */\n'use strict'\n\nconst { Buffer } = require('buffer')\nconst varint = require('varint')\nconst intTable = require('./int-table')\nconst codecNameToCodeVarint = require('./varint-table')\nconst util = require('./util')\n\nexports = module.exports\n\n/**\n * Prefix a buffer with a multicodec-packed.\n *\n * @param {string|number} multicodecStrOrCode\n * @param {Buffer} data\n * @returns {Buffer}\n */\nexports.addPrefix = (multicodecStrOrCode, data) => {\n let prefix\n\n if (Buffer.isBuffer(multicodecStrOrCode)) {\n prefix = util.varintBufferEncode(multicodecStrOrCode)\n } else {\n if (codecNameToCodeVarint[multicodecStrOrCode]) {\n prefix = codecNameToCodeVarint[multicodecStrOrCode]\n } else {\n throw new Error('multicodec not recognized')\n }\n }\n return Buffer.concat([prefix, data])\n}\n\n/**\n * Decapsulate the multicodec-packed prefix from the data.\n *\n * @param {Buffer} data\n * @returns {Buffer}\n */\nexports.rmPrefix = (data) => {\n varint.decode(data)\n return data.slice(varint.decode.bytes)\n}\n\n/**\n * Get the codec of the prefixed data.\n * @param {Buffer} prefixedData\n * @returns {string}\n */\nexports.getCodec = (prefixedData) => {\n const code = varint.decode(prefixedData)\n const codecName = intTable.get(code)\n if (codecName === undefined) {\n throw new Error(`Code ${code} not found`)\n }\n return codecName\n}\n\n/**\n * Get the name of the codec.\n * @param {number} codec\n * @returns {string}\n */\nexports.getName = (codec) => {\n return intTable.get(codec)\n}\n\n/**\n * Get the code of the codec\n * @param {string} name\n * @returns {number}\n */\nexports.getNumber = (name) => {\n const code = codecNameToCodeVarint[name]\n if (code === undefined) {\n throw new Error('Codec `' + name + '` not found')\n }\n return util.varintBufferDecode(code)[0]\n}\n\n/**\n * Get the code of the prefixed data.\n * @param {Buffer} prefixedData\n * @returns {number}\n */\nexports.getCode = (prefixedData) => {\n return varint.decode(prefixedData)\n}\n\n/**\n * Get the code as varint of a codec name.\n * @param {string} codecName\n * @returns {Buffer}\n */\nexports.getCodeVarint = (codecName) => {\n const code = codecNameToCodeVarint[codecName]\n if (code === undefined) {\n throw new Error('Codec `' + codecName + '` not found')\n }\n return code\n}\n\n/**\n * Get the varint of a code.\n * @param {Number} code\n * @returns {Array.}\n */\nexports.getVarint = (code) => {\n return varint.encode(code)\n}\n\n// Make the constants top-level constants\nconst constants = require('./constants')\nObject.assign(exports, constants)\n\n// Human friendly names for printing, e.g. in error messages\nexports.print = require('./print')\n","module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Unordered Collection\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","'use strict'\n\nclass Base {\n constructor (name, code, implementation, alphabet) {\n this.name = name\n this.code = code\n this.alphabet = alphabet\n if (implementation && alphabet) {\n this.engine = implementation(alphabet)\n }\n }\n\n encode (stringOrBuffer) {\n return this.engine.encode(stringOrBuffer)\n }\n\n decode (stringOrBuffer) {\n return this.engine.decode(stringOrBuffer)\n }\n\n isImplemented () {\n return this.engine\n }\n}\n\nmodule.exports = Base\n","/**\n * Implementation of the [multibase](https://github.com/multiformats/multibase) specification.\n * @module Multibase\n */\n'use strict'\n\nconst { Buffer } = require('buffer')\nconst constants = require('./constants')\n\nexports = module.exports = multibase\nexports.encode = encode\nexports.decode = decode\nexports.isEncoded = isEncoded\nexports.names = Object.freeze(Object.keys(constants.names))\nexports.codes = Object.freeze(Object.keys(constants.codes))\n\nconst errNotSupported = new Error('Unsupported encoding')\n\n/**\n * Create a new buffer with the multibase varint+code.\n *\n * @param {string|number} nameOrCode - The multibase name or code number.\n * @param {Buffer} buf - The data to be prefixed with multibase.\n * @memberof Multibase\n * @returns {Buffer}\n */\nfunction multibase (nameOrCode, buf) {\n if (!buf) {\n throw new Error('requires an encoded buffer')\n }\n const base = getBase(nameOrCode)\n const codeBuf = Buffer.from(base.code)\n\n const name = base.name\n validEncode(name, buf)\n return Buffer.concat([codeBuf, buf])\n}\n\n/**\n * Encode data with the specified base and add the multibase prefix.\n *\n * @param {string|number} nameOrCode - The multibase name or code number.\n * @param {Buffer} buf - The data to be encoded.\n * @returns {Buffer}\n * @memberof Multibase\n */\nfunction encode (nameOrCode, buf) {\n const base = getBase(nameOrCode)\n const name = base.name\n\n return multibase(name, Buffer.from(base.encode(buf)))\n}\n\n/**\n * Takes a buffer or string encoded with multibase header, decodes it and\n * returns the decoded buffer\n *\n * @param {Buffer|string} bufOrString\n * @returns {Buffer}\n * @memberof Multibase\n *\n */\nfunction decode (bufOrString) {\n if (Buffer.isBuffer(bufOrString)) {\n bufOrString = bufOrString.toString()\n }\n\n const code = bufOrString.substring(0, 1)\n bufOrString = bufOrString.substring(1, bufOrString.length)\n\n if (typeof bufOrString === 'string') {\n bufOrString = Buffer.from(bufOrString)\n }\n\n const base = getBase(code)\n return Buffer.from(base.decode(bufOrString.toString()))\n}\n\n/**\n * Is the given data multibase encoded?\n *\n * @param {Buffer|string} bufOrString\n * @returns {boolean}\n * @memberof Multibase\n */\nfunction isEncoded (bufOrString) {\n if (Buffer.isBuffer(bufOrString)) {\n bufOrString = bufOrString.toString()\n }\n\n // Ensure bufOrString is a string\n if (Object.prototype.toString.call(bufOrString) !== '[object String]') {\n return false\n }\n\n const code = bufOrString.substring(0, 1)\n try {\n const base = getBase(code)\n return base.name\n } catch (err) {\n return false\n }\n}\n\n/**\n * @param {string} name\n * @param {Buffer} buf\n * @private\n * @returns {undefined}\n */\nfunction validEncode (name, buf) {\n const base = getBase(name)\n base.decode(buf.toString())\n}\n\nfunction getBase (nameOrCode) {\n let base\n\n if (constants.names[nameOrCode]) {\n base = constants.names[nameOrCode]\n } else if (constants.codes[nameOrCode]) {\n base = constants.codes[nameOrCode]\n } else {\n throw errNotSupported\n }\n\n if (!base.isImplemented()) {\n throw new Error('Base ' + nameOrCode + ' is not implemented yet')\n }\n\n return base\n}\n","'use strict'\n\nconst table = require('./base-table.json')\n\n// map for codecConstant -> code\nconst constants = {}\n\nfor (const [name, code] of Object.entries(table)) {\n constants[name.toUpperCase().replace(/-/g, '_')] = code\n}\n\nmodule.exports = Object.freeze(constants)\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst mh = require('multihashes')\nconst multibase = require('multibase')\nconst multicodec = require('multicodec')\nconst codecs = require('multicodec/src/base-table.json')\nconst CIDUtil = require('./cid-util')\nconst withIs = require('class-is')\n\n/**\n * @typedef {Object} SerializedCID\n * @param {string} codec\n * @param {number} version\n * @param {Buffer} multihash\n */\n\n/**\n * Test if the given input is a CID.\n * @function isCID\n * @memberof CID\n * @static\n * @param {any} other\n * @returns {bool}\n */\n\n/**\n * Class representing a CID ``\n * , as defined in [ipld/cid](https://github.com/multiformats/cid).\n * @class CID\n */\nclass CID {\n /**\n * Create a new CID.\n *\n * The algorithm for argument input is roughly:\n * ```\n * if (cid)\n * -> create a copy\n * else if (str)\n * if (1st char is on multibase table) -> CID String\n * else -> bs58 encoded multihash\n * else if (Buffer)\n * if (1st byte is 0 or 1) -> CID\n * else -> multihash\n * else if (Number)\n * -> construct CID by parts\n * ```\n *\n * @param {string|Buffer|CID} version\n * @param {string} [codec]\n * @param {Buffer} [multihash]\n * @param {string} [multibaseName]\n *\n * @example\n * new CID(, , , )\n * new CID()\n * new CID()\n * new CID()\n * new CID()\n * new CID()\n */\n constructor (version, codec, multihash, multibaseName) {\n if (_CID.isCID(version)) {\n // version is an exising CID instance\n const cid = version\n this.version = cid.version\n this.codec = cid.codec\n this.multihash = Buffer.from(cid.multihash)\n // Default guard for when a CID < 0.7 is passed with no multibaseName\n this.multibaseName = cid.multibaseName || (cid.version === 0 ? 'base58btc' : 'base32')\n return\n }\n\n if (typeof version === 'string') {\n // e.g. 'base32' or false\n const baseName = multibase.isEncoded(version)\n if (baseName) {\n // version is a CID String encoded with multibase, so v1\n const cid = multibase.decode(version)\n this.version = parseInt(cid.slice(0, 1).toString('hex'), 16)\n this.codec = multicodec.getCodec(cid.slice(1))\n this.multihash = multicodec.rmPrefix(cid.slice(1))\n this.multibaseName = baseName\n } else {\n // version is a base58btc string multihash, so v0\n this.version = 0\n this.codec = 'dag-pb'\n this.multihash = mh.fromB58String(version)\n this.multibaseName = 'base58btc'\n }\n CID.validateCID(this)\n Object.defineProperty(this, 'string', { value: version })\n return\n }\n\n if (Buffer.isBuffer(version)) {\n const firstByte = version.slice(0, 1)\n const v = parseInt(firstByte.toString('hex'), 16)\n if (v === 1) {\n // version is a CID buffer\n const cid = version\n this.version = v\n this.codec = multicodec.getCodec(cid.slice(1))\n this.multihash = multicodec.rmPrefix(cid.slice(1))\n this.multibaseName = 'base32'\n } else {\n // version is a raw multihash buffer, so v0\n this.version = 0\n this.codec = 'dag-pb'\n this.multihash = version\n this.multibaseName = 'base58btc'\n }\n CID.validateCID(this)\n return\n }\n\n // otherwise, assemble the CID from the parameters\n\n /**\n * @type {number}\n */\n this.version = version\n\n /**\n * @type {string}\n */\n this.codec = codec\n\n /**\n * @type {Buffer}\n */\n this.multihash = multihash\n\n /**\n * @type {string}\n */\n this.multibaseName = multibaseName || (version === 0 ? 'base58btc' : 'base32')\n\n CID.validateCID(this)\n }\n\n /**\n * The CID as a `Buffer`\n *\n * @return {Buffer}\n * @readonly\n *\n * @memberOf CID\n */\n get buffer () {\n let buffer = this._buffer\n\n if (!buffer) {\n if (this.version === 0) {\n buffer = this.multihash\n } else if (this.version === 1) {\n buffer = Buffer.concat([\n Buffer.from('01', 'hex'),\n multicodec.getCodeVarint(this.codec),\n this.multihash\n ])\n } else {\n throw new Error('unsupported version')\n }\n\n // Cache this buffer so it doesn't have to be recreated\n Object.defineProperty(this, '_buffer', { value: buffer })\n }\n\n return buffer\n }\n\n /**\n * Get the prefix of the CID.\n *\n * @returns {Buffer}\n * @readonly\n */\n get prefix () {\n return Buffer.concat([\n Buffer.from(`0${this.version}`, 'hex'),\n multicodec.getCodeVarint(this.codec),\n mh.prefix(this.multihash)\n ])\n }\n\n /**\n * Convert to a CID of version `0`.\n *\n * @returns {CID}\n */\n toV0 () {\n if (this.codec !== 'dag-pb') {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0')\n }\n\n const { name, length } = mh.decode(this.multihash)\n\n if (name !== 'sha2-256') {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0')\n }\n\n if (length !== 32) {\n throw new Error('Cannot convert non 32 byte multihash CID to CIDv0')\n }\n\n return new _CID(0, this.codec, this.multihash)\n }\n\n /**\n * Convert to a CID of version `1`.\n *\n * @returns {CID}\n */\n toV1 () {\n return new _CID(1, this.codec, this.multihash)\n }\n\n /**\n * Encode the CID into a string.\n *\n * @param {string} [base=this.multibaseName] - Base encoding to use.\n * @returns {string}\n */\n toBaseEncodedString (base = this.multibaseName) {\n if (this.string && base === this.multibaseName) {\n return this.string\n }\n let str = null\n if (this.version === 0) {\n if (base !== 'base58btc') {\n throw new Error('not supported with CIDv0, to support different bases, please migrate the instance do CIDv1, you can do that through cid.toV1()')\n }\n str = mh.toB58String(this.multihash)\n } else if (this.version === 1) {\n str = multibase.encode(base, this.buffer).toString()\n } else {\n throw new Error('unsupported version')\n }\n if (base === this.multibaseName) {\n // cache the string value\n Object.defineProperty(this, 'string', { value: str })\n }\n return str\n }\n\n /**\n * CID(QmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n)\n *\n * @returns {String}\n */\n [Symbol.for('nodejs.util.inspect.custom')] () {\n return 'CID(' + this.toString() + ')'\n }\n\n toString (base) {\n return this.toBaseEncodedString(base)\n }\n\n /**\n * Serialize to a plain object.\n *\n * @returns {SerializedCID}\n */\n toJSON () {\n return {\n codec: this.codec,\n version: this.version,\n hash: this.multihash\n }\n }\n\n /**\n * Compare equality with another CID.\n *\n * @param {CID} other\n * @returns {bool}\n */\n equals (other) {\n return this.codec === other.codec &&\n this.version === other.version &&\n this.multihash.equals(other.multihash)\n }\n\n /**\n * Test if the given input is a valid CID object.\n * Throws if it is not.\n *\n * @param {any} other\n * @returns {void}\n */\n static validateCID (other) {\n const errorMsg = CIDUtil.checkCIDComponents(other)\n if (errorMsg) {\n throw new Error(errorMsg)\n }\n }\n}\n\nconst _CID = withIs(CID, {\n className: 'CID',\n symbolName: '@ipld/js-cid/CID'\n})\n\n_CID.codecs = codecs\n\nmodule.exports = _CID\n","'use strict'\nconst { Buffer } = require('buffer')\n\nmodule.exports = function base64 (alphabet) {\n // The alphabet is only used to know:\n // 1. If padding is enabled (must contain '=')\n // 2. If the output must be url-safe (must contain '-' and '_')\n // 3. If the input of the output function is valid\n // The alphabets from RFC 4648 are always used.\n const padding = alphabet.indexOf('=') > -1\n const url = alphabet.indexOf('-') > -1 && alphabet.indexOf('_') > -1\n\n return {\n encode (input) {\n let output = ''\n\n if (typeof input === 'string') {\n output = Buffer.from(input).toString('base64')\n } else {\n output = input.toString('base64')\n }\n\n if (url) {\n output = output.replace(/\\+/g, '-').replace(/\\//g, '_')\n }\n\n const pad = output.indexOf('=')\n if (pad > 0 && !padding) {\n output = output.substring(0, pad)\n }\n\n return output\n },\n decode (input) {\n for (const char of input) {\n if (alphabet.indexOf(char) < 0) {\n throw new Error('invalid base64 character')\n }\n }\n\n return Buffer.from(input, 'base64')\n }\n }\n}\n","'use strict'\nconst varint = require('varint')\nconst { Buffer } = require('buffer')\n\nmodule.exports = {\n numberToBuffer,\n bufferToNumber,\n varintBufferEncode,\n varintBufferDecode,\n varintEncode\n}\n\nfunction bufferToNumber (buf) {\n return parseInt(buf.toString('hex'), 16)\n}\n\nfunction numberToBuffer (num) {\n let hexString = num.toString(16)\n if (hexString.length % 2 === 1) {\n hexString = '0' + hexString\n }\n return Buffer.from(hexString, 'hex')\n}\n\nfunction varintBufferEncode (input) {\n return Buffer.from(varint.encode(bufferToNumber(input)))\n}\n\nfunction varintBufferDecode (input) {\n return numberToBuffer(varint.decode(input))\n}\n\nfunction varintEncode (num) {\n return Buffer.from(varint.encode(num))\n}\n","'use strict'\n\nfunction decode (input, alphabet) {\n input = input.replace(new RegExp('=', 'g'), '')\n const length = input.length\n\n let bits = 0\n let value = 0\n\n let index = 0\n const output = new Uint8Array((length * 5 / 8) | 0)\n\n for (let i = 0; i < length; i++) {\n value = (value << 5) | alphabet.indexOf(input[i])\n bits += 5\n\n if (bits >= 8) {\n output[index++] = (value >>> (bits - 8)) & 255\n bits -= 8\n }\n }\n\n return output.buffer\n}\n\nfunction encode (buffer, alphabet) {\n const length = buffer.byteLength\n const view = new Uint8Array(buffer)\n const padding = alphabet.indexOf('=') === alphabet.length - 1\n\n if (padding) {\n alphabet = alphabet.substring(0, alphabet.length - 1)\n }\n\n let bits = 0\n let value = 0\n let output = ''\n\n for (let i = 0; i < length; i++) {\n value = (value << 8) | view[i]\n bits += 8\n\n while (bits >= 5) {\n output += alphabet[(value >>> (bits - 5)) & 31]\n bits -= 5\n }\n }\n\n if (bits > 0) {\n output += alphabet[(value << (5 - bits)) & 31]\n }\n\n if (padding) {\n while ((output.length % 8) !== 0) {\n output += '='\n }\n }\n\n return output\n}\n\nmodule.exports = function base32 (alphabet) {\n return {\n encode (input) {\n if (typeof input === 'string') {\n return encode(Uint8Array.from(input), alphabet)\n }\n\n return encode(input, alphabet)\n },\n decode (input) {\n for (const char of input) {\n if (alphabet.indexOf(char) < 0) {\n throw new Error('invalid base32 character')\n }\n }\n\n return decode(input, alphabet)\n }\n }\n}\n"],"sourceRoot":""}