@dxos/hypercore 0.6.13-main.ed424a1 → 0.6.13

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.
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../node_modules/.pnpm/last-one-wins@1.0.4/node_modules/last-one-wins/index.js", "../../../../../../node_modules/.pnpm/unordered-array-remove@1.0.2/node_modules/unordered-array-remove/index.js", "../../../../../../node_modules/.pnpm/unordered-set@2.0.1/node_modules/unordered-set/index.js", "../../../../../../node_modules/.pnpm/flat-tree@1.9.0/node_modules/flat-tree/index.js", "../../../../../../node_modules/.pnpm/merkle-tree-stream@4.0.0/node_modules/merkle-tree-stream/generator.js", "../../../../../../node_modules/.pnpm/codecs@2.2.0/node_modules/codecs/index.js", "../../../../../../node_modules/.pnpm/atomic-batcher@1.0.2/node_modules/atomic-batcher/index.js", "../../../../../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js", "../../../../../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits.js", "../../../../../../node_modules/.pnpm/varint@4.0.1/node_modules/varint/encode.js", "../../../../../../node_modules/.pnpm/varint@4.0.1/node_modules/varint/decode.js", "../../../../../../node_modules/.pnpm/varint@4.0.1/node_modules/varint/length.js", "../../../../../../node_modules/.pnpm/varint@4.0.1/node_modules/varint/index.js", "../../../../../../node_modules/.pnpm/buffer-alloc-unsafe@1.1.0/node_modules/buffer-alloc-unsafe/index.js", "../../../../../../node_modules/.pnpm/bitfield-rle@2.2.1/node_modules/bitfield-rle/index.js", "../../../../../../node_modules/.pnpm/memory-pager@1.5.0/node_modules/memory-pager/index.js", "../../../../../../node_modules/.pnpm/sparse-bitfield@3.0.3/node_modules/sparse-bitfield/index.js", "../../../../../../node_modules/.pnpm/hypercore@9.12.0/node_modules/hypercore/lib/bitfield.js", "../../../../../../node_modules/.pnpm/hypercore@9.12.0/node_modules/hypercore/lib/tree-index.js", "../../../../../../node_modules/.pnpm/buffer-fill@1.0.0/node_modules/buffer-fill/index.js", "../../../../../../node_modules/.pnpm/buffer-alloc@1.2.0/node_modules/buffer-alloc/index.js", "../../../../../../node_modules/.pnpm/uint64be@2.0.2/node_modules/uint64be/index.js", "../../../../../../node_modules/.pnpm/hypercore-cache@1.0.2/node_modules/hypercore-cache/index.js", "../../../../../../node_modules/.pnpm/hypercore@9.12.0/node_modules/hypercore/lib/cache.js", "../../../../../../node_modules/.pnpm/hypercore@9.12.0/node_modules/hypercore/lib/storage.js", "../../../../../../node_modules/.pnpm/uint64be@3.0.0/node_modules/uint64be/index.js", "../../../../../../node_modules/.pnpm/hypercore-crypto@2.3.2/node_modules/hypercore-crypto/index.js", "../../../../../../node_modules/.pnpm/inspect-custom-symbol@1.1.1/node_modules/inspect-custom-symbol/index.js", "../../../../../../node_modules/.pnpm/pretty-hash@1.0.1/node_modules/pretty-hash/index.js", "../../../../../../node_modules/.pnpm/nanoguard@1.3.0/node_modules/nanoguard/index.js", "../../../../../../node_modules/.pnpm/hypercore@9.12.0/node_modules/hypercore/lib/safe-buffer-equals.js", "../../../../../../node_modules/.pnpm/nanoassert@2.0.0/node_modules/nanoassert/index.js", "../../../../../../node_modules/.pnpm/clone@2.1.2/node_modules/clone/clone.js", "../../../../../../node_modules/.pnpm/noise-protocol@3.0.1/node_modules/noise-protocol/cipher.js", "../../../../../../node_modules/.pnpm/noise-protocol@3.0.1/node_modules/noise-protocol/cipher-state.js", "../../../../../../node_modules/.pnpm/nanoassert@1.1.0/node_modules/nanoassert/index.js", "../../../../../../node_modules/.pnpm/hmac-blake2b@2.0.0/node_modules/hmac-blake2b/index.js", "../../../../../../node_modules/.pnpm/noise-protocol@3.0.1/node_modules/noise-protocol/dh.js", "../../../../../../node_modules/.pnpm/noise-protocol@3.0.1/node_modules/noise-protocol/hash.js", "../../../../../../node_modules/.pnpm/noise-protocol@3.0.1/node_modules/noise-protocol/symmetric-state.js", "../../../../../../node_modules/.pnpm/noise-protocol@3.0.1/node_modules/noise-protocol/handshake-state.js", "../../../../../../node_modules/.pnpm/noise-protocol@3.0.1/node_modules/noise-protocol/index.js", "../../../../../../node_modules/.pnpm/simple-handshake@3.0.0/node_modules/simple-handshake/index.js", "../../../../../../node_modules/.pnpm/varint@5.0.2/node_modules/varint/encode.js", "../../../../../../node_modules/.pnpm/varint@5.0.2/node_modules/varint/decode.js", "../../../../../../node_modules/.pnpm/varint@5.0.2/node_modules/varint/length.js", "../../../../../../node_modules/.pnpm/varint@5.0.2/node_modules/varint/index.js", "../../../../../../node_modules/.pnpm/simple-hypercore-protocol@2.1.2/node_modules/simple-hypercore-protocol/lib/handshake.js", "../../../../../../node_modules/.pnpm/varint@5.0.0/node_modules/varint/encode.js", "../../../../../../node_modules/.pnpm/varint@5.0.0/node_modules/varint/decode.js", "../../../../../../node_modules/.pnpm/varint@5.0.0/node_modules/varint/length.js", "../../../../../../node_modules/.pnpm/varint@5.0.0/node_modules/varint/index.js", "../../../../../../node_modules/.pnpm/signed-varint@2.0.1/node_modules/signed-varint/index.js", "../../../../../../node_modules/.pnpm/b4a@1.6.0/node_modules/b4a/index.js", "../../../../../../node_modules/.pnpm/protocol-buffers-encodings@1.2.0/node_modules/protocol-buffers-encodings/index.js", "../../../../../../node_modules/.pnpm/simple-hypercore-protocol@2.1.2/node_modules/simple-hypercore-protocol/messages.js", "../../../../../../node_modules/.pnpm/xsalsa20-universal@1.0.0/node_modules/xsalsa20-universal/index.js", "../../../../../../node_modules/.pnpm/simple-hypercore-protocol@2.1.2/node_modules/simple-hypercore-protocol/lib/xor.js", "../../../../../../node_modules/.pnpm/simple-message-channels@1.2.1/node_modules/simple-message-channels/index.js", "../../../../../../node_modules/.pnpm/simple-hypercore-protocol@2.1.2/node_modules/simple-hypercore-protocol/index.js", "../../../../../../node_modules/.pnpm/timeout-refresh@1.0.3/node_modules/timeout-refresh/refresh.js", "../../../../../../node_modules/.pnpm/timeout-refresh@1.0.3/node_modules/timeout-refresh/browser.js", "../../../../../../node_modules/.pnpm/timeout-refresh@1.0.3/node_modules/timeout-refresh/timers.js", "../../../../../../node_modules/.pnpm/timeout-refresh@1.0.3/node_modules/timeout-refresh/index.js", "../../../../../../node_modules/.pnpm/abstract-extension@3.1.1/node_modules/abstract-extension/index.js", "../../../../../../node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js", "../../../../../../node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/common.js", "../../../../../../node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/browser.js", "../../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js", "../../../../../../node_modules/.pnpm/supports-color@8.1.1/node_modules/supports-color/index.js", "../../../../../../node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/node.js", "../../../../../../node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/index.js", "../../../../../../node_modules/.pnpm/hypercore-protocol@8.0.7/node_modules/hypercore-protocol/index.js", "../../../../../../node_modules/.pnpm/count-trailing-zeros@1.0.1/node_modules/count-trailing-zeros/ctz.js", "../../../../../../node_modules/.pnpm/fast-bitfield@1.2.2/node_modules/fast-bitfield/index.js", "../../../../../../node_modules/.pnpm/hypercore@9.12.0/node_modules/hypercore/lib/replicate.js", "../../../../../../node_modules/.pnpm/nanoresource@1.3.0/node_modules/nanoresource/emitter.js", "../../../src/empty.ts", "../../../../../../node_modules/.pnpm/hypercore-streams@1.0.1/node_modules/hypercore-streams/index.js", "../../../../../../node_modules/.pnpm/hypercore@9.12.0/node_modules/hypercore/index.js", "../../../src/index.ts", "../../../src/crypto.ts", "../../../src/defaults.ts", "../../../src/hypercore-factory.ts", "../../../src/util.ts", "../../../src/iterator.ts"],
4
4
  "sourcesContent": ["module.exports = function (work) {\n var pending = null\n var callback = null\n var callbacks = null\n var next = null\n\n return function (val, cb) {\n next = val\n update(cb || noop)\n }\n\n function update (cb) {\n if (callback) {\n if (!pending) pending = []\n pending.push(cb)\n return\n }\n\n var val = next\n next = null\n callback = cb\n work(val, done)\n }\n\n function done (err) {\n var cb = callback\n var cbs = callbacks\n callbacks = null\n callback = null\n\n if (pending) {\n callbacks = pending\n pending = null\n update(noop)\n }\n\n if (cbs) {\n for (var i = 0; i < cbs.length; i++) cbs[i](err)\n }\n cb(err)\n }\n}\n\nfunction noop (_) {}\n", "module.exports = remove\n\nfunction remove (arr, i) {\n if (i >= arr.length || i < 0) return\n var last = arr.pop()\n if (i < arr.length) {\n var tmp = arr[i]\n arr[i] = last\n return tmp\n }\n return last\n}\n", "exports.add = add\nexports.has = has\nexports.remove = remove\nexports.swap = swap\n\nfunction add (list, item) {\n if (has(list, item)) return item\n item._index = list.length\n list.push(item)\n return item\n}\n\nfunction has (list, item) {\n return item._index < list.length && list[item._index] === item\n}\n\nfunction remove (list, item) {\n if (!has(list, item)) return null\n\n var last = list.pop()\n if (last !== item) {\n list[item._index] = last\n last._index = item._index\n }\n\n return item\n}\n\nfunction swap (list, a, b) {\n if (!has(list, a) || !has(list, b)) return\n var tmp = a._index\n a._index = b._index\n list[a._index] = a\n b._index = tmp\n list[b._index] = b\n}\n", "exports.fullRoots = function (index, result) {\n if (index & 1) throw new Error('You can only look up roots for depth(0) blocks')\n if (!result) result = []\n\n index /= 2\n\n var offset = 0\n var factor = 1\n\n while (true) {\n if (!index) return result\n while (factor * 2 <= index) factor *= 2\n result.push(offset + factor - 1)\n offset = offset + 2 * factor\n index -= factor\n factor = 1\n }\n}\n\nexports.depth = function (index) {\n var depth = 0\n\n index += 1\n while (!(index & 1)) {\n depth++\n index = rightShift(index)\n }\n\n return depth\n}\n\nexports.sibling = function (index, depth) {\n if (!depth) depth = exports.depth(index)\n var offset = exports.offset(index, depth)\n\n return exports.index(depth, offset & 1 ? offset - 1 : offset + 1)\n}\n\nexports.parent = function (index, depth) {\n if (!depth) depth = exports.depth(index)\n var offset = exports.offset(index, depth)\n\n return exports.index(depth + 1, rightShift(offset))\n}\n\nexports.leftChild = function (index, depth) {\n if (!(index & 1)) return -1\n if (!depth) depth = exports.depth(index)\n return exports.index(depth - 1, exports.offset(index, depth) * 2)\n}\n\nexports.rightChild = function (index, depth) {\n if (!(index & 1)) return -1\n if (!depth) depth = exports.depth(index)\n return exports.index(depth - 1, 1 + (exports.offset(index, depth) * 2))\n}\n\nexports.children = function (index, depth) {\n if (!(index & 1)) return null\n\n if (!depth) depth = exports.depth(index)\n var offset = exports.offset(index, depth) * 2\n\n return [\n exports.index(depth - 1, offset),\n exports.index(depth - 1, offset + 1)\n ]\n}\n\nexports.leftSpan = function (index, depth) {\n if (!(index & 1)) return index\n if (!depth) depth = exports.depth(index)\n return exports.offset(index, depth) * twoPow(depth + 1)\n}\n\nexports.rightSpan = function (index, depth) {\n if (!(index & 1)) return index\n if (!depth) depth = exports.depth(index)\n return (exports.offset(index, depth) + 1) * twoPow(depth + 1) - 2\n}\n\nexports.count = function (index, depth) {\n if (!(index & 1)) return 1\n if (!depth) depth = exports.depth(index)\n return twoPow(depth + 1) - 1\n}\n\nexports.countLeaves = function (index) {\n return (exports.count(index) + 1) / 2\n}\n\nexports.spans = function (index, depth) {\n if (!(index & 1)) return [index, index]\n if (!depth) depth = exports.depth(index)\n\n var offset = exports.offset(index, depth)\n var width = twoPow(depth + 1)\n\n return [offset * width, (offset + 1) * width - 2]\n}\n\nexports.index = function (depth, offset) {\n return (1 + 2 * offset) * twoPow(depth) - 1\n}\n\nexports.offset = function (index, depth) {\n if (!(index & 1)) return index / 2\n if (!depth) depth = exports.depth(index)\n\n return ((index + 1) / twoPow(depth) - 1) / 2\n}\n\nexports.iterator = function (index) {\n var ite = new Iterator()\n ite.seek(index || 0)\n return ite\n}\n\nfunction twoPow (n) {\n return n < 31 ? 1 << n : ((1 << 30) * (1 << (n - 30)))\n}\n\nfunction rightShift (n) {\n return (n - (n & 1)) / 2\n}\n\nfunction Iterator () {\n this.index = 0\n this.offset = 0\n this.factor = 0\n}\n\nIterator.prototype.seek = function (index) {\n this.index = index\n if (this.index & 1) {\n this.offset = exports.offset(index)\n this.factor = twoPow(exports.depth(index) + 1)\n } else {\n this.offset = index / 2\n this.factor = 2\n }\n}\n\nIterator.prototype.isLeft = function () {\n return (this.offset & 1) === 0\n}\n\nIterator.prototype.isRight = function () {\n return (this.offset & 1) === 1\n}\n\nIterator.prototype.contains = function (index) {\n return index > this.index\n ? index < (this.index + this.factor / 2)\n : index < this.index\n ? index > (this.index - this.factor / 2)\n : true\n}\n\nIterator.prototype.prev = function () {\n if (!this.offset) return this.index\n this.offset--\n this.index -= this.factor\n return this.index\n}\n\nIterator.prototype.next = function () {\n this.offset++\n this.index += this.factor\n return this.index\n}\n\nIterator.prototype.count = function () {\n if (!(this.index & 1)) return 1\n return this.factor - 1\n}\n\nIterator.prototype.countLeaves = function () {\n return (this.count() + 1) / 2\n}\n\nIterator.prototype.sibling = function () {\n return this.isLeft() ? this.next() : this.prev()\n}\n\nIterator.prototype.parent = function () {\n if (this.offset & 1) {\n this.index -= this.factor / 2\n this.offset = (this.offset - 1) / 2\n } else {\n this.index += this.factor / 2\n this.offset /= 2\n }\n this.factor *= 2\n return this.index\n}\n\nIterator.prototype.leftSpan = function () {\n this.index = this.index - this.factor / 2 + 1\n this.offset = this.index / 2\n this.factor = 2\n return this.index\n}\n\nIterator.prototype.rightSpan = function () {\n this.index = this.index + this.factor / 2 - 1\n this.offset = this.index / 2\n this.factor = 2\n return this.index\n}\n\nIterator.prototype.leftChild = function () {\n if (this.factor === 2) return this.index\n this.factor /= 2\n this.index -= this.factor / 2\n this.offset *= 2\n return this.index\n}\n\nIterator.prototype.rightChild = function () {\n if (this.factor === 2) return this.index\n this.factor /= 2\n this.index += this.factor / 2\n this.offset = 2 * this.offset + 1\n return this.index\n}\n\nIterator.prototype.nextTree = function () {\n this.index = this.index + this.factor / 2 + 1\n this.offset = this.index / 2\n this.factor = 2\n return this.index\n}\n\nIterator.prototype.prevTree = function () {\n if (!this.offset) {\n this.index = 0\n this.factor = 2\n } else {\n this.index = this.index - this.factor / 2 - 1\n this.offset = this.index / 2\n this.factor = 2\n }\n return this.index\n}\n\nIterator.prototype.fullRoot = function (index) {\n if (index <= this.index || (this.index & 1) > 0) return false\n while (index > this.index + this.factor + this.factor / 2) {\n this.index += this.factor / 2\n this.factor *= 2\n this.offset /= 2\n }\n return true\n}\n", "// a more low level interface to the merkle tree stream.\n// useful for certain applications the require non-streamy access to the algos.\n// versioned by the same semver as the stream interface.\n\nconst flat = require('flat-tree')\n\nmodule.exports = class MerkleGenerator {\n constructor (opts, roots) {\n if (!opts || !opts.leaf || !opts.parent) throw new Error('opts.leaf and opts.parent required')\n\n this.roots = roots || opts.roots || []\n this.blocks = this.roots.length ? 1 + flat.rightSpan(this.roots[this.roots.length - 1].index) / 2 : 0\n\n for (var i = 0; i < this.roots.length; i++) {\n var r = this.roots[i]\n if (r && !r.parent) r.parent = flat.parent(r.index)\n }\n\n this._leaf = opts.leaf\n this._parent = opts.parent\n }\n\n next (data, nodes) {\n if (!Buffer.isBuffer(data)) data = Buffer.from(data)\n if (!nodes) nodes = []\n\n var index = 2 * this.blocks++\n\n var leaf = {\n index: index,\n parent: flat.parent(index),\n hash: null,\n size: data.length,\n data: data\n }\n\n leaf.hash = this._leaf(leaf, this.roots)\n this.roots.push(leaf)\n nodes.push(leaf)\n\n while (this.roots.length > 1) {\n var left = this.roots[this.roots.length - 2]\n var right = this.roots[this.roots.length - 1]\n\n if (left.parent !== right.parent) break\n\n this.roots.pop()\n this.roots[this.roots.length - 1] = leaf = {\n index: left.parent,\n parent: flat.parent(left.parent),\n hash: this._parent(left, right),\n size: left.size + right.size,\n data: null\n }\n nodes.push(leaf)\n }\n\n return nodes\n }\n}\n", "module.exports = codecs\n\ncodecs.ascii = createString('ascii')\ncodecs.utf8 = createString('utf-8')\ncodecs.hex = createString('hex')\ncodecs.base64 = createString('base64')\ncodecs.ucs2 = createString('ucs2')\ncodecs.utf16le = createString('utf16le')\ncodecs.ndjson = createJSON(true)\ncodecs.json = createJSON(false)\ncodecs.binary = {\n name: 'binary',\n encode: function encodeBinary (obj) {\n return typeof obj === 'string'\n ? Buffer.from(obj, 'utf-8')\n : Buffer.isBuffer(obj)\n ? obj\n : Buffer.from(obj.buffer, obj.byteOffset, obj.byteLength)\n },\n decode: function decodeBinary (buf) {\n return Buffer.isBuffer(buf)\n ? buf\n : Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength)\n }\n}\n\nfunction codecs (fmt, fallback) {\n if (typeof fmt === 'object' && fmt && fmt.encode && fmt.decode) return fmt\n\n switch (fmt) {\n case 'ndjson': return codecs.ndjson\n case 'json': return codecs.json\n case 'ascii': return codecs.ascii\n case 'utf-8':\n case 'utf8': return codecs.utf8\n case 'hex': return codecs.hex\n case 'base64': return codecs.base64\n case 'ucs-2':\n case 'ucs2': return codecs.ucs2\n case 'utf16-le':\n case 'utf16le': return codecs.utf16le\n }\n\n return fallback !== undefined ? fallback : codecs.binary\n}\n\nfunction createJSON (newline) {\n return {\n name: newline ? 'ndjson' : 'json',\n encode: newline ? encodeNDJSON : encodeJSON,\n decode: function decodeJSON (buf) {\n return JSON.parse(buf.toString())\n }\n }\n\n function encodeJSON (val) {\n return Buffer.from(JSON.stringify(val))\n }\n\n function encodeNDJSON (val) {\n return Buffer.from(JSON.stringify(val) + '\\n')\n }\n}\n\nfunction createString (type) {\n return {\n name: type,\n encode: function encodeString (val) {\n if (typeof val !== 'string') val = val.toString()\n return Buffer.from(val, type)\n },\n decode: function decodeString (buf) {\n return buf.toString(type)\n }\n }\n}\n", "module.exports = batcher\n\nfunction batcher (run) {\n var running = false\n var pendingBatch = null\n var pendingCallbacks = null\n var callbacks = null\n\n return append\n\n function done (err) {\n if (callbacks) callAll(callbacks, err)\n\n running = false\n callbacks = pendingCallbacks\n var nextBatch = pendingBatch\n\n pendingBatch = null\n pendingCallbacks = null\n\n if (!nextBatch || !nextBatch.length) {\n if (!callbacks || !callbacks.length) {\n callbacks = null\n return\n }\n if (!nextBatch) nextBatch = []\n }\n\n running = true\n run(nextBatch, done)\n }\n\n function append (val, cb) {\n if (running) {\n if (!pendingBatch) {\n pendingBatch = []\n pendingCallbacks = []\n }\n pushAll(pendingBatch, val)\n if (cb) pendingCallbacks.push(cb)\n } else {\n if (cb) callbacks = [cb]\n running = true\n run(Array.isArray(val) ? val : [val], done)\n }\n }\n}\n\nfunction pushAll (list, val) {\n if (Array.isArray(val)) pushArray(list, val)\n else list.push(val)\n}\n\nfunction pushArray (list, val) {\n for (var i = 0; i < val.length; i++) list.push(val[i])\n}\n\nfunction callAll (list, err) {\n for (var i = 0; i < list.length; i++) list[i](err)\n}\n", "if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n", "try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n", "module.exports = encode\n\nvar MSB = 0x80\n , REST = 0x7F\n , MSBALL = ~REST\n , INT = Math.pow(2, 31)\n\nfunction encode(num, out, offset) {\n out = out || []\n offset = offset || 0\n var oldOffset = offset\n\n while(num >= INT) {\n out[offset++] = (num & 0xFF) | MSB\n num /= 128\n }\n while(num & MSBALL) {\n out[offset++] = (num & 0xFF) | MSB\n num >>>= 7\n }\n out[offset] = num | 0\n \n encode.bytes = offset - oldOffset + 1\n \n return out\n}\n", "module.exports = read\n\nvar MSB = 0x80\n , REST = 0x7F\n\nfunction read(buf, offset) {\n var res = 0\n , offset = offset || 0\n , shift = 0\n , counter = offset\n , b\n , l = buf.length\n\n do {\n if(counter >= l) {\n read.bytes = 0\n read.bytesRead = 0 // DEPRECATED\n return undefined\n }\n b = buf[counter++]\n res += shift < 28\n ? (b & REST) << shift\n : (b & REST) * Math.pow(2, shift)\n shift += 7\n } while (b >= MSB)\n\n read.bytes = counter - offset\n\n return res\n}\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)\n\nmodule.exports = function (value) {\n return (\n value < N1 ? 1\n : value < N2 ? 2\n : value < N3 ? 3\n : value < N4 ? 4\n : value < N5 ? 5\n : value < N6 ? 6\n : value < N7 ? 7\n : value < N8 ? 8\n : value < N9 ? 9\n : 10\n )\n}\n", "module.exports = {\n encode: require('./encode.js')\n , decode: require('./decode.js')\n , encodingLength: require('./length.js')\n}\n", "function allocUnsafe (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n }\n\n if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n\n if (Buffer.allocUnsafe) {\n return Buffer.allocUnsafe(size)\n } else {\n return new Buffer(size)\n }\n}\n\nmodule.exports = allocUnsafe\n", "var varint = require('varint')\nvar alloc = require('buffer-alloc-unsafe')\n\nmodule.exports = align(1)\n\nfunction align (n) {\n var exports = {}\n\n exports.align = align\n\n exports.encode = encode\n exports.encode.bytes = 0\n exports.encodingLength = encodingLength\n\n exports.decode = decode\n exports.decode.bytes = 0\n exports.decodingLength = decodingLength\n\n return exports\n\n function State (input, output, offset) {\n this.inputOffset = 0\n this.inputLength = input.length\n this.input = input\n this.outputOffset = offset\n this.output = output\n }\n\n function encode (bitfield, buffer, offset) {\n if (!offset) offset = 0\n if (!buffer) buffer = alloc(encodingLength(bitfield))\n var state = new State(bitfield, buffer, offset)\n rle(state)\n encode.bytes = state.outputOffset - offset\n return buffer\n }\n\n function encodingLength (bitfield) {\n var state = new State(bitfield, null, 0)\n rle(state)\n return state.outputOffset\n }\n\n function decode (buffer, offset) {\n if (!offset) offset = 0\n\n var bitfield = alloc(decodingLength(buffer, offset))\n var ptr = 0\n\n while (offset < buffer.length) {\n var next = varint.decode(buffer, offset)\n var repeat = next & 1\n var len = repeat ? (next - (next & 3)) / 4 : next / 2\n\n offset += varint.decode.bytes\n\n if (repeat) {\n bitfield.fill(next & 2 ? 255 : 0, ptr, ptr + len)\n } else {\n buffer.copy(bitfield, ptr, offset, offset + len)\n offset += len\n }\n\n ptr += len\n }\n\n bitfield.fill(0, ptr)\n decode.bytes = buffer.length - offset\n\n return bitfield\n }\n\n function decodingLength (buffer, offset) {\n if (!offset) offset = 0\n\n var len = 0\n\n while (offset < buffer.length) {\n var next = varint.decode(buffer, offset)\n offset += varint.decode.bytes\n\n var repeat = next & 1\n var slice = repeat ? (next - (next & 3)) / 4 : next / 2\n\n len += slice\n if (!repeat) offset += slice\n }\n\n if (offset > buffer.length) throw new Error('Invalid RLE bitfield')\n\n if (len & (n - 1)) return len + (n - (len & (n - 1)))\n\n return len\n }\n\n function rle (state) {\n var len = 0\n var bits = 0\n var input = state.input\n\n while (state.inputLength > 0 && !input[state.inputLength - 1]) state.inputLength--\n\n for (var i = 0; i < state.inputLength; i++) {\n if (input[i] === bits) {\n len++\n continue\n }\n\n if (len) encodeUpdate(state, i, len, bits)\n\n if (input[i] === 0 || input[i] === 255) {\n bits = input[i]\n len = 1\n } else {\n len = 0\n }\n }\n\n if (len) encodeUpdate(state, state.inputLength, len, bits)\n encodeFinal(state)\n }\n\n function encodeHead (state, end) {\n var headLength = end - state.inputOffset\n varint.encode(2 * headLength, state.output, state.outputOffset)\n state.outputOffset += varint.encode.bytes\n state.input.copy(state.output, state.outputOffset, state.inputOffset, end)\n state.outputOffset += headLength\n }\n\n function encodeFinal (state) {\n var headLength = state.inputLength - state.inputOffset\n if (!headLength) return\n\n if (!state.output) {\n state.outputOffset += (headLength + varint.encodingLength(2 * headLength))\n } else {\n encodeHead(state, state.inputLength)\n }\n\n state.inputOffset = state.inputLength\n }\n\n function encodeUpdate (state, i, len, bit) {\n var headLength = i - len - state.inputOffset\n var headCost = (headLength ? varint.encodingLength(2 * headLength) + headLength : 0)\n var enc = 4 * len + (bit ? 2 : 0) + 1 // len << 2 | bit << 1 | 1\n var encCost = headCost + varint.encodingLength(enc)\n var baseCost = varint.encodingLength(2 * (i - state.inputOffset)) + i - state.inputOffset\n\n if (encCost >= baseCost) return\n\n if (!state.output) {\n state.outputOffset += encCost\n state.inputOffset = i\n return\n }\n\n if (headLength) encodeHead(state, i - len)\n\n varint.encode(enc, state.output, state.outputOffset)\n state.outputOffset += varint.encode.bytes\n state.inputOffset = i\n }\n}\n", "module.exports = Pager\n\nfunction Pager (pageSize, opts) {\n if (!(this instanceof Pager)) return new Pager(pageSize, opts)\n\n this.length = 0\n this.updates = []\n this.path = new Uint16Array(4)\n this.pages = new Array(32768)\n this.maxPages = this.pages.length\n this.level = 0\n this.pageSize = pageSize || 1024\n this.deduplicate = opts ? opts.deduplicate : null\n this.zeros = this.deduplicate ? alloc(this.deduplicate.length) : null\n}\n\nPager.prototype.updated = function (page) {\n while (this.deduplicate && page.buffer[page.deduplicate] === this.deduplicate[page.deduplicate]) {\n page.deduplicate++\n if (page.deduplicate === this.deduplicate.length) {\n page.deduplicate = 0\n if (page.buffer.equals && page.buffer.equals(this.deduplicate)) page.buffer = this.deduplicate\n break\n }\n }\n if (page.updated || !this.updates) return\n page.updated = true\n this.updates.push(page)\n}\n\nPager.prototype.lastUpdate = function () {\n if (!this.updates || !this.updates.length) return null\n var page = this.updates.pop()\n page.updated = false\n return page\n}\n\nPager.prototype._array = function (i, noAllocate) {\n if (i >= this.maxPages) {\n if (noAllocate) return\n grow(this, i)\n }\n\n factor(i, this.path)\n\n var arr = this.pages\n\n for (var j = this.level; j > 0; j--) {\n var p = this.path[j]\n var next = arr[p]\n\n if (!next) {\n if (noAllocate) return\n next = arr[p] = new Array(32768)\n }\n\n arr = next\n }\n\n return arr\n}\n\nPager.prototype.get = function (i, noAllocate) {\n var arr = this._array(i, noAllocate)\n var first = this.path[0]\n var page = arr && arr[first]\n\n if (!page && !noAllocate) {\n page = arr[first] = new Page(i, alloc(this.pageSize))\n if (i >= this.length) this.length = i + 1\n }\n\n if (page && page.buffer === this.deduplicate && this.deduplicate && !noAllocate) {\n page.buffer = copy(page.buffer)\n page.deduplicate = 0\n }\n\n return page\n}\n\nPager.prototype.set = function (i, buf) {\n var arr = this._array(i, false)\n var first = this.path[0]\n\n if (i >= this.length) this.length = i + 1\n\n if (!buf || (this.zeros && buf.equals && buf.equals(this.zeros))) {\n arr[first] = undefined\n return\n }\n\n if (this.deduplicate && buf.equals && buf.equals(this.deduplicate)) {\n buf = this.deduplicate\n }\n\n var page = arr[first]\n var b = truncate(buf, this.pageSize)\n\n if (page) page.buffer = b\n else arr[first] = new Page(i, b)\n}\n\nPager.prototype.toBuffer = function () {\n var list = new Array(this.length)\n var empty = alloc(this.pageSize)\n var ptr = 0\n\n while (ptr < list.length) {\n var arr = this._array(ptr, true)\n for (var i = 0; i < 32768 && ptr < list.length; i++) {\n list[ptr++] = (arr && arr[i]) ? arr[i].buffer : empty\n }\n }\n\n return Buffer.concat(list)\n}\n\nfunction grow (pager, index) {\n while (pager.maxPages < index) {\n var old = pager.pages\n pager.pages = new Array(32768)\n pager.pages[0] = old\n pager.level++\n pager.maxPages *= 32768\n }\n}\n\nfunction truncate (buf, len) {\n if (buf.length === len) return buf\n if (buf.length > len) return buf.slice(0, len)\n var cpy = alloc(len)\n buf.copy(cpy)\n return cpy\n}\n\nfunction alloc (size) {\n if (Buffer.alloc) return Buffer.alloc(size)\n var buf = new Buffer(size)\n buf.fill(0)\n return buf\n}\n\nfunction copy (buf) {\n var cpy = Buffer.allocUnsafe ? Buffer.allocUnsafe(buf.length) : new Buffer(buf.length)\n buf.copy(cpy)\n return cpy\n}\n\nfunction Page (i, buf) {\n this.offset = i * buf.length\n this.buffer = buf\n this.updated = false\n this.deduplicate = 0\n}\n\nfunction factor (n, out) {\n n = (n - (out[0] = (n & 32767))) / 32768\n n = (n - (out[1] = (n & 32767))) / 32768\n out[3] = ((n - (out[2] = (n & 32767))) / 32768) & 32767\n}\n", "var pager = require('memory-pager')\n\nmodule.exports = Bitfield\n\nfunction Bitfield (opts) {\n if (!(this instanceof Bitfield)) return new Bitfield(opts)\n if (!opts) opts = {}\n if (Buffer.isBuffer(opts)) opts = {buffer: opts}\n\n this.pageOffset = opts.pageOffset || 0\n this.pageSize = opts.pageSize || 1024\n this.pages = opts.pages || pager(this.pageSize)\n\n this.byteLength = this.pages.length * this.pageSize\n this.length = 8 * this.byteLength\n\n if (!powerOfTwo(this.pageSize)) throw new Error('The page size should be a power of two')\n\n this._trackUpdates = !!opts.trackUpdates\n this._pageMask = this.pageSize - 1\n\n if (opts.buffer) {\n for (var i = 0; i < opts.buffer.length; i += this.pageSize) {\n this.pages.set(i / this.pageSize, opts.buffer.slice(i, i + this.pageSize))\n }\n this.byteLength = opts.buffer.length\n this.length = 8 * this.byteLength\n }\n}\n\nBitfield.prototype.get = function (i) {\n var o = i & 7\n var j = (i - o) / 8\n\n return !!(this.getByte(j) & (128 >> o))\n}\n\nBitfield.prototype.getByte = function (i) {\n var o = i & this._pageMask\n var j = (i - o) / this.pageSize\n var page = this.pages.get(j, true)\n\n return page ? page.buffer[o + this.pageOffset] : 0\n}\n\nBitfield.prototype.set = function (i, v) {\n var o = i & 7\n var j = (i - o) / 8\n var b = this.getByte(j)\n\n return this.setByte(j, v ? b | (128 >> o) : b & (255 ^ (128 >> o)))\n}\n\nBitfield.prototype.toBuffer = function () {\n var all = alloc(this.pages.length * this.pageSize)\n\n for (var i = 0; i < this.pages.length; i++) {\n var next = this.pages.get(i, true)\n var allOffset = i * this.pageSize\n if (next) next.buffer.copy(all, allOffset, this.pageOffset, this.pageOffset + this.pageSize)\n }\n\n return all\n}\n\nBitfield.prototype.setByte = function (i, b) {\n var o = i & this._pageMask\n var j = (i - o) / this.pageSize\n var page = this.pages.get(j, false)\n\n o += this.pageOffset\n\n if (page.buffer[o] === b) return false\n page.buffer[o] = b\n\n if (i >= this.byteLength) {\n this.byteLength = i + 1\n this.length = this.byteLength * 8\n }\n\n if (this._trackUpdates) this.pages.updated(page)\n\n return true\n}\n\nfunction alloc (n) {\n if (Buffer.alloc) return Buffer.alloc(n)\n var b = new Buffer(n)\n b.fill(0)\n return b\n}\n\nfunction powerOfTwo (x) {\n return !(x & (x - 1))\n}\n", "var flat = require('flat-tree')\nvar rle = require('bitfield-rle')\nvar pager = require('memory-pager')\nvar bitfield = require('sparse-bitfield')\n\nvar INDEX_UPDATE_MASK = [63, 207, 243, 252]\nvar INDEX_ITERATE_MASK = [0, 192, 240, 252]\nvar DATA_ITERATE_MASK = [128, 192, 224, 240, 248, 252, 254, 255]\nvar DATA_UPDATE_MASK = [127, 191, 223, 239, 247, 251, 253, 254]\nvar MAP_PARENT_RIGHT = new Array(256)\nvar MAP_PARENT_LEFT = new Array(256)\nvar NEXT_DATA_0_BIT = new Array(256)\nvar NEXT_INDEX_0_BIT = new Array(256)\nvar TOTAL_1_BITS = new Array(256)\n\nfor (var i = 0; i < 256; i++) {\n var a = (i & (15 << 4)) >> 4\n var b = i & 15\n var nibble = [0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4]\n MAP_PARENT_RIGHT[i] = ((a === 15 ? 3 : a === 0 ? 0 : 1) << 2) | (b === 15 ? 3 : b === 0 ? 0 : 1)\n MAP_PARENT_LEFT[i] = MAP_PARENT_RIGHT[i] << 4\n NEXT_DATA_0_BIT[i] = i === 255 ? -1 : (8 - Math.ceil(Math.log(256 - i) / Math.log(2)))\n NEXT_INDEX_0_BIT[i] = i === 255 ? -1 : Math.floor(NEXT_DATA_0_BIT[i] / 2)\n TOTAL_1_BITS[i] = nibble[i >> 4] + nibble[i & 0x0F]\n}\n\nmodule.exports = Bitfield\n\nfunction Bitfield (pageSize, pages) {\n if (!(this instanceof Bitfield)) return new Bitfield(pageSize, pages)\n if (!pageSize) pageSize = 2048 + 1024 + 512\n\n var deduplicate = Buffer.allocUnsafe(pageSize)\n deduplicate.fill(255)\n\n this.indexSize = pageSize - 2048 - 1024\n this.pages = pager(pageSize, { deduplicate })\n\n if (pages) {\n for (var i = 0; i < pages.length; i++) {\n this.pages.set(i, pages[i])\n }\n }\n\n this.data = bitfield({\n pageSize: 1024,\n pageOffset: 0,\n pages: this.pages,\n trackUpdates: true\n })\n\n this.tree = bitfield({\n pageSize: 2048,\n pageOffset: 1024,\n pages: this.pages,\n trackUpdates: true\n })\n\n this.index = bitfield({\n pageSize: this.indexSize,\n pageOffset: 1024 + 2048,\n pages: this.pages,\n trackUpdates: true\n })\n\n this.length = this.data.length\n this._iterator = flat.iterator(0)\n}\n\nBitfield.prototype.set = function (i, value) {\n var o = i & 7\n i = (i - o) / 8\n var v = value ? this.data.getByte(i) | (128 >> o) : this.data.getByte(i) & DATA_UPDATE_MASK[o]\n\n if (!this.data.setByte(i, v)) return false\n this.length = this.data.length\n this._setIndex(i, v)\n return true\n}\n\nBitfield.prototype.get = function (i) {\n return this.data.get(i)\n}\n\nBitfield.prototype.total = function (start, end) {\n if (!start || start < 0) start = 0\n if (!end) end = this.data.length\n if (end < start) return 0\n if (end > this.data.length) {\n this._expand(end)\n }\n var o = start & 7\n var e = end & 7\n var pos = (start - o) / 8\n var last = (end - e) / 8\n var leftMask = (255 - (o ? DATA_ITERATE_MASK[o - 1] : 0))\n var rightMask = (e ? DATA_ITERATE_MASK[e - 1] : 0)\n var byte = this.data.getByte(pos)\n if (pos === last) {\n return TOTAL_1_BITS[byte & leftMask & rightMask]\n }\n var total = TOTAL_1_BITS[byte & leftMask]\n for (var i = pos + 1; i < last; i++) {\n total += TOTAL_1_BITS[this.data.getByte(i)]\n }\n total += TOTAL_1_BITS[this.data.getByte(last) & rightMask]\n return total\n}\n\n// TODO: use the index to speed this up *a lot*\nBitfield.prototype.compress = function (start, length) {\n if (!start && !length) return rle.encode(this.data.toBuffer())\n\n if (start + length > this.length) length = Math.max(1, this.length - start)\n var buf = Buffer.alloc(Math.ceil(length / 8))\n\n var p = start / this.data.pageSize / 8\n var end = p + length / this.data.pageSize / 8\n var offset = p * this.data.pageSize\n\n for (; p < end; p++) {\n var page = this.data.pages.get(p, true)\n if (!page || !page.buffer) continue\n page.buffer.copy(buf, p * this.data.pageSize - offset, this.data.pageOffset, this.data.pageOffset + this.data.pageSize)\n }\n\n return rle.encode(buf)\n}\n\nBitfield.prototype._setIndex = function (i, value) {\n // (a + b | c + d | e + f | g + h)\n // -> (a | b | c | d) (e | f | g | h)\n //\n\n var o = i & 3\n i = (i - o) / 4\n\n var bitfield = this.index\n var ite = this._iterator\n var start = 2 * i\n var byte = (bitfield.getByte(start) & INDEX_UPDATE_MASK[o]) | (getIndexValue(value) >> (2 * o))\n var len = bitfield.length\n var maxLength = this.pages.length * this.indexSize\n\n ite.seek(start)\n\n while (ite.index < maxLength && bitfield.setByte(ite.index, byte)) {\n if (ite.isLeft()) {\n byte = MAP_PARENT_LEFT[byte] | MAP_PARENT_RIGHT[bitfield.getByte(ite.sibling())]\n } else {\n byte = MAP_PARENT_RIGHT[byte] | MAP_PARENT_LEFT[bitfield.getByte(ite.sibling())]\n }\n ite.parent()\n }\n\n if (len !== bitfield.length) this._expand(len)\n\n return ite.index !== start\n}\n\nBitfield.prototype._expand = function (len) {\n var roots = flat.fullRoots(2 * len)\n var bitfield = this.index\n var ite = this._iterator\n var byte = 0\n\n for (var i = 0; i < roots.length; i++) {\n ite.seek(roots[i])\n byte = bitfield.getByte(ite.index)\n\n do {\n if (ite.isLeft()) {\n byte = MAP_PARENT_LEFT[byte] | MAP_PARENT_RIGHT[bitfield.getByte(ite.sibling())]\n } else {\n byte = MAP_PARENT_RIGHT[byte] | MAP_PARENT_LEFT[bitfield.getByte(ite.sibling())]\n }\n } while (setByteNoAlloc(bitfield, ite.parent(), byte))\n }\n}\n\nfunction setByteNoAlloc (bitfield, i, b) {\n if (8 * i >= bitfield.length) return false\n return bitfield.setByte(i, b)\n}\n\nBitfield.prototype.iterator = function (start, end) {\n var ite = new Iterator(this)\n\n ite.range(start || 0, end || this.length)\n ite.seek(0)\n\n return ite\n}\n\nfunction Iterator (bitfield) {\n this.start = 0\n this.end = 0\n\n this._indexEnd = 0\n this._pos = 0\n this._byte = 0\n this._bitfield = bitfield\n}\n\nIterator.prototype.range = function (start, end) {\n this.start = start\n this.end = end\n this._indexEnd = 2 * Math.ceil(end / 32)\n\n if (this.end > this._bitfield.length) {\n this._bitfield._expand(this.end)\n }\n\n return this\n}\n\nIterator.prototype.seek = function (offset) {\n offset += this.start\n if (offset < this.start) offset = this.start\n\n if (offset >= this.end) {\n this._pos = -1\n return this\n }\n\n var o = offset & 7\n\n this._pos = (offset - o) / 8\n this._byte = this._bitfield.data.getByte(this._pos) | (o ? DATA_ITERATE_MASK[o - 1] : 0)\n\n return this\n}\n\nIterator.prototype.random = function () {\n var i = this.seek(Math.floor(Math.random() * (this.end - this.start))).next()\n return i === -1 ? this.seek(0).next() : i\n}\n\nIterator.prototype.next = function () {\n if (this._pos === -1) return -1\n\n var dataBitfield = this._bitfield.data\n var free = NEXT_DATA_0_BIT[this._byte]\n\n while (free === -1) {\n this._byte = dataBitfield.getByte(++this._pos)\n free = NEXT_DATA_0_BIT[this._byte]\n\n if (free === -1) {\n this._pos = this._skipAhead(this._pos)\n if (this._pos === -1) return -1\n\n this._byte = dataBitfield.getByte(this._pos)\n free = NEXT_DATA_0_BIT[this._byte]\n }\n }\n\n this._byte |= DATA_ITERATE_MASK[free]\n\n var n = 8 * this._pos + free\n return n < this.end ? n : -1\n}\n\nIterator.prototype.peek = function () {\n if (this._pos === -1) return -1\n\n var free = NEXT_DATA_0_BIT[this._byte]\n var n = 8 * this._pos + free\n return n < this.end ? n : -1\n}\n\nIterator.prototype._skipAhead = function (start) {\n var indexBitfield = this._bitfield.index\n var treeEnd = this._indexEnd\n var ite = this._bitfield._iterator\n var o = start & 3\n\n ite.seek(2 * ((start - o) / 4))\n\n var treeByte = indexBitfield.getByte(ite.index) | INDEX_ITERATE_MASK[o]\n\n while (NEXT_INDEX_0_BIT[treeByte] === -1) {\n if (ite.isLeft()) {\n ite.next()\n } else {\n ite.next()\n ite.parent()\n }\n\n if (rightSpan(ite) >= treeEnd) {\n while (rightSpan(ite) >= treeEnd && isParent(ite)) ite.leftChild()\n if (rightSpan(ite) >= treeEnd) return -1\n }\n\n treeByte = indexBitfield.getByte(ite.index)\n }\n\n while (ite.factor > 2) {\n if (NEXT_INDEX_0_BIT[treeByte] < 2) ite.leftChild()\n else ite.rightChild()\n\n treeByte = indexBitfield.getByte(ite.index)\n }\n\n var free = NEXT_INDEX_0_BIT[treeByte]\n if (free === -1) free = 4\n\n var next = ite.index * 2 + free\n\n return next <= start ? start + 1 : next\n}\n\nfunction rightSpan (ite) {\n return ite.index + ite.factor / 2 - 1\n}\n\nfunction isParent (ite) {\n return ite.index & 1\n}\n\nfunction getIndexValue (n) {\n switch (n) {\n case 255: return 192\n case 0: return 0\n default: return 64\n }\n}\n", "var flat = require('flat-tree')\nvar bitfield = require('sparse-bitfield')\n\nmodule.exports = TreeIndex\n\nfunction TreeIndex (bits) {\n if (!(this instanceof TreeIndex)) return new TreeIndex(bits)\n this.bitfield = bits || bitfield()\n}\n\nTreeIndex.prototype.proof = function (index, opts) {\n if (!opts) opts = {}\n\n var nodes = []\n var remoteTree = opts.tree || new TreeIndex()\n var digest = opts.digest || 0\n\n if (!this.get(index)) return null\n if (opts.hash) nodes.push(index) // always return hash - no matter what the digest says\n if (digest === 1) return { nodes: nodes, verifiedBy: 0 }\n\n var roots = null\n var sibling = index\n var next = index\n var hasRoot = digest & 1\n digest = rightShift(digest)\n\n while (digest) {\n if (digest === 1 && hasRoot) {\n if (this.get(next)) remoteTree.set(next)\n\n // having a root implies having prev roots as well\n // TODO: this can be optimized away be only sending \"newer\" roots,\n // when sending roots\n if (flat.sibling(next) < next) next = flat.sibling(next)\n roots = flat.fullRoots(flat.rightSpan(next) + 2)\n for (var i = 0; i < roots.length; i++) {\n if (this.get(roots[i])) remoteTree.set(roots[i])\n }\n break\n }\n\n sibling = flat.sibling(next)\n if (digest & 1) {\n if (this.get(sibling)) remoteTree.set(sibling)\n }\n next = flat.parent(next)\n digest = rightShift(digest)\n }\n\n next = index\n\n while (!remoteTree.get(next)) {\n sibling = flat.sibling(next)\n if (!this.get(sibling)) {\n // next is a local root\n var verifiedBy = this.verifiedBy(next)\n addFullRoots(verifiedBy, nodes, next, remoteTree)\n return { nodes: nodes, verifiedBy: verifiedBy }\n } else {\n if (!remoteTree.get(sibling)) nodes.push(sibling)\n }\n\n next = flat.parent(next)\n }\n\n return { nodes: nodes, verifiedBy: 0 }\n}\n\nTreeIndex.prototype.digest = function (index) {\n if (this.get(index)) return 1\n\n var digest = 0\n var next = flat.sibling(index)\n var max = Math.max(next + 2, this.bitfield.length) // TODO: make this less ... hacky\n\n var bit = 2\n var depth = flat.depth(index)\n var parent = flat.parent(next, depth++)\n\n while (flat.rightSpan(next) < max || flat.leftSpan(parent) > 0) {\n if (this.get(next)) {\n digest += bit // + cause in this case it's the same as | but works for large nums\n }\n if (this.get(parent)) {\n digest += 2 * bit\n if (!(digest & 1)) digest += 1\n if (digest + 1 === 4 * bit) return 1\n return digest\n }\n next = flat.sibling(parent)\n parent = flat.parent(next, depth++)\n bit *= 2\n }\n\n return digest\n}\n\nTreeIndex.prototype.blocks = function () {\n var top = 0\n var next = 0\n var max = this.bitfield.length\n\n while (flat.rightSpan(next) < max) {\n next = flat.parent(next)\n if (this.get(next)) top = next\n }\n\n return (this.get(top) ? this.verifiedBy(top) : 0) / 2\n}\n\nTreeIndex.prototype.roots = function () {\n return flat.fullRoots(2 * this.blocks())\n}\n\nTreeIndex.prototype.verifiedBy = function (index, nodes) {\n var hasIndex = this.get(index)\n if (!hasIndex) return 0\n\n // find root of current tree\n\n var depth = flat.depth(index)\n var top = index\n var parent = flat.parent(top, depth++)\n while (this.get(parent) && this.get(flat.sibling(top))) {\n top = parent\n parent = flat.parent(top, depth++)\n }\n\n // expand right down\n\n depth--\n while (depth) {\n top = flat.leftChild(flat.index(depth, flat.offset(top, depth) + 1), depth)\n depth--\n\n while (!this.get(top) && depth) top = flat.leftChild(top, depth--)\n if (nodes && this.get(top)) nodes.push(top)\n }\n\n return this.get(top) ? top + 2 : top\n}\n\nTreeIndex.prototype.get = function (index) {\n return this.bitfield.get(index)\n}\n\nTreeIndex.prototype.truncate = function (len) {\n const currentLen = 2 * this.blocks()\n const roots = flat.fullRoots(len)\n\n for (let i = len; i < currentLen; i++) {\n this.bitfield.set(i, false)\n }\n\n for (const root of roots) {\n let p = flat.parent(root)\n while (p < len) {\n this.bitfield.set(p, false)\n p = flat.parent(p)\n }\n }\n}\n\nTreeIndex.prototype.set = function (index) {\n if (!this.bitfield.set(index, true)) return false\n while (this.bitfield.get(flat.sibling(index))) {\n index = flat.parent(index)\n if (!this.bitfield.set(index, true)) break\n }\n return true\n}\n\nfunction rightShift (n) {\n return (n - (n & 1)) / 2\n}\n\nfunction addFullRoots (verifiedBy, nodes, root, remoteTree) {\n var roots = flat.fullRoots(verifiedBy)\n for (var i = 0; i < roots.length; i++) {\n if (roots[i] !== root && !remoteTree.get(roots[i])) nodes.push(roots[i])\n }\n}\n", "/* Node.js 6.4.0 and up has full support */\nvar hasFullSupport = (function () {\n try {\n if (!Buffer.isEncoding('latin1')) {\n return false\n }\n\n var buf = Buffer.alloc ? Buffer.alloc(4) : new Buffer(4)\n\n buf.fill('ab', 'ucs2')\n\n return (buf.toString('hex') === '61006200')\n } catch (_) {\n return false\n }\n}())\n\nfunction isSingleByte (val) {\n return (val.length === 1 && val.charCodeAt(0) < 256)\n}\n\nfunction fillWithNumber (buffer, val, start, end) {\n if (start < 0 || end > buffer.length) {\n throw new RangeError('Out of range index')\n }\n\n start = start >>> 0\n end = end === undefined ? buffer.length : end >>> 0\n\n if (end > start) {\n buffer.fill(val, start, end)\n }\n\n return buffer\n}\n\nfunction fillWithBuffer (buffer, val, start, end) {\n if (start < 0 || end > buffer.length) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return buffer\n }\n\n start = start >>> 0\n end = end === undefined ? buffer.length : end >>> 0\n\n var pos = start\n var len = val.length\n while (pos <= (end - len)) {\n val.copy(buffer, pos)\n pos += len\n }\n\n if (pos !== end) {\n val.copy(buffer, pos, 0, end - pos)\n }\n\n return buffer\n}\n\nfunction fill (buffer, val, start, end, encoding) {\n if (hasFullSupport) {\n return buffer.fill(val, start, end, encoding)\n }\n\n if (typeof val === 'number') {\n return fillWithNumber(buffer, val, start, end)\n }\n\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = buffer.length\n } else if (typeof end === 'string') {\n encoding = end\n end = buffer.length\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n\n if (encoding === 'latin1') {\n encoding = 'binary'\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n if (val === '') {\n return fillWithNumber(buffer, 0, start, end)\n }\n\n if (isSingleByte(val)) {\n return fillWithNumber(buffer, val.charCodeAt(0), start, end)\n }\n\n val = new Buffer(val, encoding)\n }\n\n if (Buffer.isBuffer(val)) {\n return fillWithBuffer(buffer, val, start, end)\n }\n\n // Other values (e.g. undefined, boolean, object) results in zero-fill\n return fillWithNumber(buffer, 0, start, end)\n}\n\nmodule.exports = fill\n", "var bufferFill = require('buffer-fill')\nvar allocUnsafe = require('buffer-alloc-unsafe')\n\nmodule.exports = function alloc (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n }\n\n if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n\n if (Buffer.alloc) {\n return Buffer.alloc(size, fill, encoding)\n }\n\n var buffer = allocUnsafe(size)\n\n if (size === 0) {\n return buffer\n }\n\n if (fill === undefined) {\n return bufferFill(buffer, 0)\n }\n\n if (typeof encoding !== 'string') {\n encoding = undefined\n }\n\n return bufferFill(buffer, fill, encoding)\n}\n", "var bufferAlloc = require('buffer-alloc')\n\nvar UINT_32_MAX = Math.pow(2, 32)\n\nexports.encodingLength = function () {\n return 8\n}\n\nexports.encode = function (num, buf, offset) {\n if (!buf) buf = bufferAlloc(8)\n if (!offset) offset = 0\n\n var top = Math.floor(num / UINT_32_MAX)\n var rem = num - top * UINT_32_MAX\n\n buf.writeUInt32BE(top, offset)\n buf.writeUInt32BE(rem, offset + 4)\n return buf\n}\n\nexports.decode = function (buf, offset) {\n if (!offset) offset = 0\n\n var top = buf.readUInt32BE(offset)\n var rem = buf.readUInt32BE(offset + 4)\n\n return top * UINT_32_MAX + rem\n}\n\nexports.encode.bytes = 8\nexports.decode.bytes = 8\n", "const DEFAULT_MAX_BYTE_SIZE = 1024 * 1024 * 16\n\nclass NamespacedCache {\n constructor (parent, name) {\n this.name = name\n this.parent = parent\n }\n\n get _info () {\n return this.parent._info\n }\n\n set (key, value) {\n return this.parent._set(this.name, key, value)\n }\n\n del (key) {\n return this.parent._del(this.name, key)\n }\n\n get (key) {\n return this.parent._get(this.name, key)\n }\n}\n\nmodule.exports = class HypercoreCache {\n constructor (opts = {}) {\n this.maxByteSize = opts.maxByteSize || DEFAULT_MAX_BYTE_SIZE\n this.onEvict = opts.onEvict\n this.estimateSize = opts.estimateSize || defaultSize\n\n this._nextNamespace = 0\n this.defaultCache = new NamespacedCache(this, this._nextNamespace++)\n\n this._stale = null\n this._fresh = new Map()\n this._freshByteSize = 0\n this._staleByteSize = 0\n }\n\n get _info () {\n return {\n freshByteSize: this._freshByteSize,\n staleByteSize: this._staleByteSize,\n staleEntries: this._stale ? this._stale.size : 0,\n freshEntries: this._fresh.size,\n byteSize: this.byteSize\n }\n }\n\n _prefix (namespace, key) {\n return namespace + ':' + key\n }\n\n _gc () {\n if (this.onEvict && this._staleByteSize > 0) this.onEvict(this._stale)\n this._stale = this._fresh\n this._fresh = new Map()\n this._staleByteSize = this._freshByteSize\n this._freshByteSize = 0\n }\n\n _get (namespace, key, prefixedKey) {\n if (!prefixedKey) prefixedKey = this._prefix(namespace, key)\n return this._fresh.get(prefixedKey) || (this._stale && this._stale.get(prefixedKey))\n }\n\n _set (namespace, key, value) {\n const valueSize = this.estimateSize(value)\n const prefixedKey = this._prefix(namespace, key)\n if (this._freshByteSize + valueSize > this.maxByteSize) {\n this._gc()\n }\n this._fresh.set(prefixedKey, value)\n this._freshByteSize += valueSize\n }\n\n _del (namespace, key) {\n const prefixedKey = this._prefix(namespace, key)\n let val = this._stale && this._stale.get(prefixedKey)\n if (val) {\n this._stale.delete(prefixedKey)\n this._staleByteSize -= this.estimateSize(val)\n }\n val = this._fresh.get(prefixedKey)\n if (val) {\n this._fresh.delete(prefixedKey)\n this._freshByteSize -= this.estimateSize(val)\n }\n }\n\n get byteSize () {\n return this._freshByteSize + this._staleByteSize\n }\n\n namespace () {\n const cache = new NamespacedCache(this, this._nextNamespace++)\n return cache\n }\n\n set (key, value) {\n return this.defaultCache.set(key, value)\n }\n\n del (key) {\n return this.defaultCache.del(key)\n }\n\n get (key) {\n return this.defaultCache.get(key)\n }\n}\n\nfunction defaultSize () {\n // Return an estimate of the object overhead, without being clever here.\n // (You should pass in a size estimator)\n return 1024\n}\n", "const HypercoreCache = require('hypercore-cache')\n\nconst DEFAULT_TREE_CACHE_SIZE = 65536 * 40\n\nfunction createCache (opts) {\n if (opts.cache === false) return {}\n\n const cacheOpts = opts.cache || {}\n if (cacheOpts.tree === undefined || typeof cacheOpts.tree === 'number') {\n const cacheSize = cacheOpts.tree || opts.storageCacheSize\n cacheOpts.tree = new HypercoreCache({\n maxByteSize: cacheSize !== undefined ? cacheSize : DEFAULT_TREE_CACHE_SIZE,\n estimateSize: () => 40\n })\n }\n if (cacheOpts.data === undefined) return cacheOpts\n if (typeof cacheOpts.data === 'number') {\n cacheOpts.data = new HypercoreCache({\n maxByteSize: cacheOpts.data,\n estimateSize: buf => buf.length\n })\n }\n return cacheOpts\n}\n\nmodule.exports = createCache\n", "var uint64be = require('uint64be')\nvar flat = require('flat-tree')\nvar createCache = require('./cache')\n\nmodule.exports = Storage\n\nvar noarr = []\n\nfunction Storage (create, opts) {\n if (!(this instanceof Storage)) return new Storage(create, opts)\n\n const cache = createCache(opts)\n\n this.treeCache = cache.tree || null\n this.dataCache = cache.data || null\n this.key = null\n this.secretKey = null\n this.tree = null\n this.data = null\n this.bitfield = null\n this.signatures = null\n this.create = create\n}\n\nStorage.prototype.putData = function (index, data, nodes, cb) {\n if (!cb) cb = noop\n var self = this\n if (!data.length) return cb(null)\n this.dataOffset(index, nodes, function (err, offset, size) {\n if (err) return cb(err)\n if (size !== data.length) return cb(new Error('Unexpected data size'))\n self.data.write(offset, data, cb)\n })\n}\n\nStorage.prototype.getData = function (index, cb) {\n var self = this\n var cached = this.dataCache && this.dataCache.get(index)\n if (cached) return process.nextTick(cb, null, cached)\n this.dataOffset(index, noarr, function (err, offset, size) {\n if (err) return cb(err)\n self.data.read(offset, size, (err, data) => {\n if (err) return cb(err)\n if (self.dataCache) self.dataCache.set(index, data)\n return cb(null, data)\n })\n })\n}\n\nStorage.prototype.nextSignature = function (index, cb) {\n var self = this\n\n this._getSignature(index, function (err, signature) {\n if (err) return cb(err)\n if (isBlank(signature)) return self.nextSignature(index + 1, cb)\n cb(null, { index: index, signature: signature })\n })\n}\n\nStorage.prototype.getSignature = function (index, cb) {\n this._getSignature(index, function (err, signature) {\n if (err) return cb(err)\n if (isBlank(signature)) return cb(new Error('No signature found'))\n cb(null, signature)\n })\n}\n\n// Caching not enabled for signatures because they are rarely reused.\nStorage.prototype._getSignature = function (index, cb) {\n this.signatures.read(32 + 64 * index, 64, cb)\n}\n\nStorage.prototype.putSignature = function (index, signature, cb) {\n this.signatures.write(32 + 64 * index, signature, cb)\n}\n\nStorage.prototype.deleteSignatures = function (start, end, cb) {\n this.signatures.del(32 + 64 * start, (end - start) * 64, cb)\n}\n\nStorage.prototype.dataOffset = function (index, cachedNodes, cb) {\n var roots = flat.fullRoots(2 * index)\n var self = this\n var offset = 0\n var pending = roots.length\n var error = null\n var blk = 2 * index\n\n if (!pending) {\n pending = 1\n onnode(null, null)\n return\n }\n\n for (var i = 0; i < roots.length; i++) {\n var node = findNode(cachedNodes, roots[i])\n if (node) onnode(null, node)\n else this.getNode(roots[i], onnode)\n }\n\n function onlast (err, node) {\n if (err) return cb(err)\n cb(null, offset, node.size)\n }\n\n function onnode (err, node) {\n if (err) error = err\n if (node) offset += node.size\n if (--pending) return\n\n if (error) return cb(error)\n\n var last = findNode(cachedNodes, blk)\n if (last) onlast(null, last)\n else self.getNode(blk, onlast)\n }\n}\n\n// Caching not enabled for batch reads because they'd be complicated to batch and they're rarely used.\nStorage.prototype.getDataBatch = function (start, n, cb) {\n var result = new Array(n)\n var sizes = new Array(n)\n var self = this\n\n this.dataOffset(start, noarr, function (err, offset, size) {\n if (err) return cb(err)\n\n start++\n n--\n\n if (n <= 0) return ontree(null, null)\n self.tree.read(32 + 80 * start, 80 * n - 40, ontree)\n\n function ontree (err, buf) {\n if (err) return cb(err)\n\n var total = sizes[0] = size\n\n if (buf) {\n for (var i = 1; i < sizes.length; i++) {\n sizes[i] = uint64be.decode(buf, 32 + (i - 1) * 80)\n total += sizes[i]\n }\n }\n\n self.data.read(offset, total, ondata)\n }\n\n function ondata (err, buf) {\n if (err) return cb(err)\n var total = 0\n for (var i = 0; i < result.length; i++) {\n result[i] = buf.slice(total, total += sizes[i])\n }\n\n cb(null, result)\n }\n })\n}\n\nStorage.prototype.getNode = function (index, cb) {\n if (this.treeCache) {\n var cached = this.treeCache.get(index)\n if (cached) return cb(null, cached)\n }\n\n var self = this\n\n this.tree.read(32 + 40 * index, 40, function (err, buf) {\n if (err) return cb(err)\n\n var hash = buf.slice(0, 32)\n var size = uint64be.decode(buf, 32)\n\n if (!size && isBlank(hash)) return cb(new Error('No node found'))\n\n var val = new Node(index, self.treeCache ? copyMaybe(hash, 40) : hash, size, null)\n if (self.treeCache) self.treeCache.set(index, val)\n cb(null, val)\n })\n}\n\nStorage.prototype.putNodeBatch = function (index, nodes, cb) {\n if (!cb) cb = noop\n\n var buf = Buffer.alloc(nodes.length * 40)\n\n for (var i = 0; i < nodes.length; i++) {\n var offset = i * 40\n var node = nodes[i]\n if (!node) continue\n node.hash.copy(buf, offset)\n uint64be.encode(node.size, buf, 32 + offset)\n }\n\n this.tree.write(32 + 40 * index, buf, cb)\n}\n\nStorage.prototype.putNode = function (index, node, cb) {\n if (!cb) cb = noop\n\n // TODO: re-enable put cache. currently this causes a memleak\n // because node.hash is a slice of the big data buffer on replicate\n // if (this.cache) this.cache.set(index, node)\n\n var buf = Buffer.allocUnsafe(40)\n\n node.hash.copy(buf, 0)\n uint64be.encode(node.size, buf, 32)\n this.tree.write(32 + 40 * index, buf, cb)\n}\n\nStorage.prototype.putBitfield = function (offset, data, cb) {\n this.bitfield.write(32 + offset, data, cb)\n}\n\nStorage.prototype.close = function (cb) {\n if (!cb) cb = noop\n var missing = 6\n var error = null\n\n close(this.bitfield, done)\n close(this.tree, done)\n close(this.data, done)\n close(this.key, done)\n close(this.secretKey, done)\n close(this.signatures, done)\n\n function done (err) {\n if (err) error = err\n if (--missing) return\n cb(error)\n }\n}\n\nStorage.prototype.destroy = function (cb) {\n if (!cb) cb = noop\n var missing = 6\n var error = null\n\n destroy(this.bitfield, done)\n destroy(this.tree, done)\n destroy(this.data, done)\n destroy(this.key, done)\n destroy(this.secretKey, done)\n destroy(this.signatures, done)\n\n function done (err) {\n if (err) error = err\n if (--missing) return\n cb(error)\n }\n}\n\nStorage.prototype.openKey = function (opts, cb) {\n if (typeof opts === 'function') return this.openKey({}, opts)\n if (!this.key) this.key = this.create('key', opts)\n this.key.read(0, 32, cb)\n}\n\nStorage.prototype.open = function (opts, cb) {\n if (typeof opts === 'function') return this.open({}, opts)\n\n var self = this\n var error = null\n var missing = 5\n\n if (!this.key) this.key = this.create('key', opts)\n if (!this.secretKey) this.secretKey = this.create('secret_key', opts)\n if (!this.tree) this.tree = this.create('tree', opts)\n if (!this.data) this.data = this.create('data', opts)\n if (!this.bitfield) this.bitfield = this.create('bitfield', opts)\n if (!this.signatures) this.signatures = this.create('signatures', opts)\n\n var result = {\n bitfield: [],\n bitfieldPageSize: 3584, // we upgraded the page size to fix a bug\n secretKey: null,\n key: null\n }\n\n this.bitfield.read(0, 32, function (err, h) {\n if (err && err.code === 'ELOCKED') return cb(err)\n if (h) result.bitfieldPageSize = h.readUInt16BE(5)\n self.bitfield.write(0, header(0, result.bitfieldPageSize, null), function (err) {\n if (err) return cb(err)\n readAll(self.bitfield, 32, result.bitfieldPageSize, function (err, pages) {\n if (pages) result.bitfield = pages\n done(err)\n })\n })\n })\n\n this.signatures.write(0, header(1, 64, 'Ed25519'), done)\n this.tree.write(0, header(2, 40, 'BLAKE2b'), done)\n\n // TODO: Improve the error handling here.\n // I.e. if secretKey length === 64 and it fails, error\n\n this.secretKey.read(0, 64, function (_, data) {\n if (data) result.secretKey = data\n done(null)\n })\n\n this.key.read(0, 32, function (_, data) {\n if (data) result.key = data\n done(null)\n })\n\n function done (err) {\n if (err) error = err\n if (--missing) return\n if (error) cb(error)\n else cb(null, result)\n }\n}\n\nStorage.Node = Node\n\nfunction noop () {}\n\nfunction copyMaybe (buf, maxSize) {\n if (buf.buffer.byteLength <= maxSize) return buf\n const cpy = Buffer.alloc(buf.byteLength)\n buf.copy(cpy)\n return cpy\n}\n\nfunction header (type, size, name) {\n var buf = Buffer.alloc(32)\n\n // magic number\n buf[0] = 5\n buf[1] = 2\n buf[2] = 87\n buf[3] = type\n\n // version\n buf[4] = 0\n\n // block size\n buf.writeUInt16BE(size, 5)\n\n if (name) {\n // algo name\n buf[7] = name.length\n buf.write(name, 8)\n }\n\n return buf\n}\n\nfunction Node (index, hash, size) {\n this.index = index\n this.hash = hash\n this.size = size\n}\n\nfunction findNode (nodes, index) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].index === index) return nodes[i]\n }\n return null\n}\n\nfunction isBlank (buf) {\n for (var i = 0; i < buf.length; i++) {\n if (buf[i]) return false\n }\n return true\n}\n\nfunction close (st, cb) {\n if (st.close) st.close(cb)\n else cb()\n}\n\nfunction destroy (st, cb) {\n if (st.destroy) st.destroy(cb)\n else cb()\n}\n\nfunction statAndReadAll (st, offset, pageSize, cb) {\n st.stat(function (err, stat) {\n if (err) return cb(null, [])\n\n var result = []\n\n loop(null, null)\n\n function loop (err, batch) {\n if (err) return cb(err)\n\n if (batch) {\n offset += batch.length\n for (var i = 0; i < batch.length; i += pageSize) {\n result.push(batch.slice(i, i + pageSize))\n }\n }\n\n var next = Math.min(stat.size - offset, 32 * pageSize)\n if (!next) return cb(null, result)\n\n st.read(offset, next, loop)\n }\n })\n}\n\nfunction readAll (st, offset, pageSize, cb) {\n if (st.statable === true) return statAndReadAll(st, offset, pageSize, cb)\n\n var bufs = []\n\n st.read(offset, pageSize, loop)\n\n function loop (err, buf) {\n if (err) return cb(null, bufs)\n bufs.push(buf)\n st.read(offset + bufs.length * pageSize, pageSize, loop)\n }\n}\n", "const UINT_32_MAX = Math.pow(2, 32)\n\nexports.encodingLength = function () {\n return 8\n}\n\nexports.encode = function (num, buf, offset) {\n if (!buf) buf = Buffer.allocUnsafe(8)\n if (!offset) offset = 0\n\n const top = Math.floor(num / UINT_32_MAX)\n const rem = num - top * UINT_32_MAX\n\n buf.writeUInt32BE(top, offset)\n buf.writeUInt32BE(rem, offset + 4)\n return buf\n}\n\nexports.decode = function (buf, offset) {\n if (!offset) offset = 0\n\n const top = buf.readUInt32BE(offset)\n const rem = buf.readUInt32BE(offset + 4)\n\n return top * UINT_32_MAX + rem\n}\n\nexports.encode.bytes = 8\nexports.decode.bytes = 8\n", "const sodium = require('sodium-universal')\nconst uint64be = require('uint64be')\n\n// https://en.wikipedia.org/wiki/Merkle_tree#Second_preimage_attack\nconst LEAF_TYPE = Buffer.from([0])\nconst PARENT_TYPE = Buffer.from([1])\nconst ROOT_TYPE = Buffer.from([2])\nconst CAP_TYPE = Buffer.from([3])\n\nconst HYPERCORE = Buffer.from('hypercore')\nconst HYPERCORE_CAP = Buffer.from('hypercore capability')\n\nexports.writerCapability = function (key, secretKey, split) {\n if (!split) return null\n\n const out = Buffer.allocUnsafe(32)\n sodium.crypto_generichash_batch(out, [\n CAP_TYPE,\n HYPERCORE_CAP,\n split.tx.slice(0, 32),\n key\n ], split.rx.slice(0, 32))\n\n return exports.sign(out, secretKey)\n}\n\nexports.verifyRemoteWriterCapability = function (key, cap, split) {\n if (!split) return null\n\n const out = Buffer.allocUnsafe(32)\n sodium.crypto_generichash_batch(out, [\n CAP_TYPE,\n HYPERCORE_CAP,\n split.rx.slice(0, 32),\n key\n ], split.tx.slice(0, 32))\n\n return exports.verify(out, cap, key)\n}\n\n// TODO: add in the CAP_TYPE in a future version\nexports.capability = function (key, split) {\n if (!split) return null\n\n const out = Buffer.allocUnsafe(32)\n sodium.crypto_generichash_batch(out, [\n HYPERCORE_CAP,\n split.tx.slice(0, 32),\n key\n ], split.rx.slice(0, 32))\n\n return out\n}\n\n// TODO: add in the CAP_TYPE in a future version\nexports.remoteCapability = function (key, split) {\n if (!split) return null\n\n const out = Buffer.allocUnsafe(32)\n sodium.crypto_generichash_batch(out, [\n HYPERCORE_CAP,\n split.rx.slice(0, 32),\n key\n ], split.tx.slice(0, 32))\n\n return out\n}\n\nexports.keyPair = function (seed) {\n const publicKey = Buffer.allocUnsafe(sodium.crypto_sign_PUBLICKEYBYTES)\n const secretKey = Buffer.allocUnsafe(sodium.crypto_sign_SECRETKEYBYTES)\n\n if (seed) sodium.crypto_sign_seed_keypair(publicKey, secretKey, seed)\n else sodium.crypto_sign_keypair(publicKey, secretKey)\n\n return {\n publicKey,\n secretKey\n }\n}\n\nexports.validateKeyPair = function (keyPair) {\n const pk = Buffer.allocUnsafe(sodium.crypto_sign_PUBLICKEYBYTES)\n sodium.crypto_sign_ed25519_sk_to_pk(pk, keyPair.secretKey)\n return pk.equals(keyPair.publicKey)\n}\n\nexports.sign = function (message, secretKey) {\n const signature = Buffer.allocUnsafe(sodium.crypto_sign_BYTES)\n sodium.crypto_sign_detached(signature, message, secretKey)\n return signature\n}\n\nexports.verify = function (message, signature, publicKey) {\n return sodium.crypto_sign_verify_detached(signature, message, publicKey)\n}\n\nexports.data = function (data) {\n const out = Buffer.allocUnsafe(32)\n\n sodium.crypto_generichash_batch(out, [\n LEAF_TYPE,\n encodeUInt64(data.length),\n data\n ])\n\n return out\n}\n\nexports.leaf = function (leaf) {\n return exports.data(leaf.data)\n}\n\nexports.parent = function (a, b) {\n if (a.index > b.index) {\n const tmp = a\n a = b\n b = tmp\n }\n\n const out = Buffer.allocUnsafe(32)\n\n sodium.crypto_generichash_batch(out, [\n PARENT_TYPE,\n encodeUInt64(a.size + b.size),\n a.hash,\n b.hash\n ])\n\n return out\n}\n\nexports.tree = function (roots, out) {\n const buffers = new Array(3 * roots.length + 1)\n var j = 0\n\n buffers[j++] = ROOT_TYPE\n\n for (var i = 0; i < roots.length; i++) {\n const r = roots[i]\n buffers[j++] = r.hash\n buffers[j++] = encodeUInt64(r.index)\n buffers[j++] = encodeUInt64(r.size)\n }\n\n if (!out) out = Buffer.allocUnsafe(32)\n sodium.crypto_generichash_batch(out, buffers)\n return out\n}\n\nexports.signable = function (roots, length) {\n const out = Buffer.allocUnsafe(40)\n\n if (Buffer.isBuffer(roots)) roots.copy(out)\n else exports.tree(roots, out.slice(0, 32))\n\n uint64be.encode(length, out.slice(32))\n\n return out\n}\n\nexports.randomBytes = function (n) {\n const buf = Buffer.allocUnsafe(n)\n sodium.randombytes_buf(buf)\n return buf\n}\n\nexports.discoveryKey = function (publicKey) {\n const digest = Buffer.allocUnsafe(32)\n sodium.crypto_generichash(digest, HYPERCORE, publicKey)\n return digest\n}\n\nif (sodium.sodium_free) {\n exports.free = function (secureBuf) {\n if (secureBuf.secure) sodium.sodium_free(secureBuf)\n }\n} else {\n exports.free = function () {}\n}\n\nfunction encodeUInt64 (n) {\n return uint64be.encode(n, Buffer.allocUnsafe(8))\n}\n", "var util = require('util')\nvar custom = util.inspect.custom\n\nmodule.exports = custom || Symbol.for('nodejs.util.inspect.custom')\n", "\nmodule.exports = function prettyHash (buf) {\n if (Buffer.isBuffer(buf)) buf = buf.toString('hex')\n if (typeof buf === 'string' && buf.length > 8) {\n return buf.slice(0, 6) + '..' + buf.slice(-2)\n }\n return buf\n}", "module.exports = class Nanoguard {\n constructor () {\n this._tick = 0\n this._fns = []\n this._dep = null\n }\n\n get waiting () {\n return this._tick > 0\n }\n\n depend (dep) {\n if (this._dep !== null) throw new Error('Can only depend on one other guard currently')\n this._dep = dep\n }\n\n wait () {\n this._tick++\n }\n\n continue (cb, err, val) {\n if (this._tick === 1) process.nextTick(continueNT, this)\n else this._tick--\n if (cb) cb(err, val)\n }\n\n waitAndContinue () {\n let once = false\n this.wait()\n return () => {\n if (once) return false\n once = true\n this.continue()\n return true\n }\n }\n\n continueSync (cb, err, val) {\n if (--this._tick) return\n while (this._fns !== null && this._fns.length) this._ready(this._fns.pop())\n if (cb) cb(err, val)\n }\n\n destroy () {\n const fns = this._fns\n if (fns) return\n this._fns = null\n while (fns.length) fns.pop()()\n }\n\n ready (fn) {\n if (this._fns === null || this._tick === 0) this._ready(fn)\n else this._fns.push(fn)\n }\n\n _ready (fn) {\n if (this._dep === null) fn()\n else this._dep.ready(fn)\n }\n}\n\nfunction continueNT (guard) {\n guard.continueSync()\n}\n", "// buffer-equals, but handle 'null' buffer parameters.\nmodule.exports = function safeBufferEquals (a, b) {\n if (!a) return !b\n if (!b) return !a\n return Buffer.compare(a, b) === 0\n}\n", "module.exports = assert\n\nclass AssertionError extends Error {}\nAssertionError.prototype.name = 'AssertionError'\n\n/**\n * Minimal assert function\n * @param {any} t Value to check if falsy\n * @param {string=} m Optional assertion error message\n * @throws {AssertionError}\n */\nfunction assert (t, m) {\n if (!t) {\n var err = new AssertionError(m)\n if (Error.captureStackTrace) Error.captureStackTrace(err, assert)\n throw err\n }\n}\n", "var clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n", "/* eslint-disable camelcase */\nconst { sodium_malloc, sodium_memzero } = require('sodium-universal/memory')\nconst {\n crypto_aead_chacha20poly1305_ietf_KEYBYTES,\n crypto_aead_chacha20poly1305_ietf_NPUBBYTES,\n crypto_aead_chacha20poly1305_ietf_ABYTES,\n crypto_aead_chacha20poly1305_ietf_encrypt,\n crypto_aead_chacha20poly1305_ietf_decrypt\n} = require('sodium-universal/crypto_aead')\n\nvar assert = require('nanoassert')\n\nvar KEYLEN = 32\nvar NONCELEN = 8\nvar MACLEN = 16\n\nassert(crypto_aead_chacha20poly1305_ietf_KEYBYTES === KEYLEN)\n// 16 bytes are cut off in the following functions\nassert(crypto_aead_chacha20poly1305_ietf_NPUBBYTES === 4 + NONCELEN)\nassert(crypto_aead_chacha20poly1305_ietf_ABYTES === MACLEN)\n\nmodule.exports = {\n KEYLEN,\n NONCELEN,\n MACLEN,\n encrypt,\n decrypt,\n rekey\n}\n\nvar ElongatedNonce = sodium_malloc(crypto_aead_chacha20poly1305_ietf_NPUBBYTES)\nfunction encrypt (out, k, n, ad, plaintext) {\n assert(out.byteLength >= plaintext.byteLength + MACLEN, 'output buffer must be at least plaintext plus MACLEN bytes long')\n assert(k.byteLength === KEYLEN)\n assert(n.byteLength === NONCELEN)\n assert(ad == null ? true : ad.byteLength != null)\n sodium_memzero(ElongatedNonce)\n\n ElongatedNonce.set(n, 4)\n\n encrypt.bytesWritten = crypto_aead_chacha20poly1305_ietf_encrypt(out.subarray(0, plaintext.byteLength + MACLEN), plaintext, ad, null, ElongatedNonce, k)\n encrypt.bytesRead = encrypt.bytesWritten - MACLEN\n\n sodium_memzero(ElongatedNonce)\n}\nencrypt.bytesWritten = 0\nencrypt.bytesRead = 0\n\nfunction decrypt (out, k, n, ad, ciphertext) {\n assert(out.byteLength >= ciphertext.byteLength - MACLEN)\n assert(k.byteLength === KEYLEN)\n assert(n.byteLength === NONCELEN)\n assert(ad == null ? true : ad.byteLength != null)\n sodium_memzero(ElongatedNonce)\n\n ElongatedNonce.set(n, 4)\n\n decrypt.bytesWritten = crypto_aead_chacha20poly1305_ietf_decrypt(out.subarray(0, ciphertext.byteLength - MACLEN), null, ciphertext, ad, ElongatedNonce, k)\n decrypt.bytesRead = decrypt.bytesWritten + MACLEN\n\n sodium_memzero(ElongatedNonce)\n}\ndecrypt.bytesWritten = 0\ndecrypt.bytesRead = 0\n\nvar maxnonce = new Uint8Array(8).fill(0xff)\nvar zerolen = new Uint8Array(0)\nvar zeros = new Uint8Array(32)\n\nvar IntermediateKey = sodium_malloc(KEYLEN + MACLEN)\nsodium_memzero(IntermediateKey)\nfunction rekey (out, k) {\n assert(out.byteLength === KEYLEN)\n assert(k.byteLength === KEYLEN)\n sodium_memzero(IntermediateKey)\n\n IntermediateKey.set(k)\n encrypt(IntermediateKey, k, maxnonce, zerolen, zeros)\n rekey.bytesWritten = encrypt.bytesWritten\n rekey.bytesRead = encrypt.bytesRead\n out.set(IntermediateKey.subarray(0, KEYLEN))\n sodium_memzero(IntermediateKey)\n}\nrekey.bytesWritten = 0\nrekey.bytesRead = 0\n", "/* eslint-disable camelcase */\nconst { sodium_memzero } = require('sodium-universal/memory')\nconst { sodium_increment, sodium_memcmp, sodium_is_zero } = require('sodium-universal/helpers')\n\nvar assert = require('nanoassert')\nvar cipher = require('./cipher')\n\nvar STATELEN = cipher.KEYLEN + cipher.NONCELEN\nvar NONCELEN = cipher.NONCELEN\nvar MACLEN = cipher.MACLEN\n\nmodule.exports = {\n STATELEN,\n NONCELEN,\n MACLEN,\n initializeKey,\n hasKey,\n setNonce,\n encryptWithAd,\n decryptWithAd,\n rekey\n}\n\nvar KEY_BEGIN = 0\nvar KEY_END = cipher.KEYLEN\nvar NONCE_BEGIN = KEY_END\nvar NONCE_END = NONCE_BEGIN + cipher.NONCELEN\n\nfunction initializeKey (state, key) {\n assert(state.byteLength === STATELEN)\n assert(key == null ? true : key.byteLength === cipher.KEYLEN)\n\n if (key == null) {\n sodium_memzero(state.subarray(KEY_BEGIN, KEY_END))\n return\n }\n\n state.set(key)\n sodium_memzero(state.subarray(NONCE_BEGIN, NONCE_END))\n}\n\nfunction hasKey (state) {\n assert(state.byteLength === STATELEN)\n var k = state.subarray(KEY_BEGIN, KEY_END)\n return sodium_is_zero(k) === false\n}\n\nfunction setNonce (state, nonce) {\n assert(state.byteLength === STATELEN)\n assert(nonce.byteLength === NONCELEN)\n\n state.set(nonce, NONCE_BEGIN)\n}\n\nvar maxnonce = new Uint8Array(8).fill(0xff)\nfunction encryptWithAd (state, out, ad, plaintext) {\n assert(state.byteLength === STATELEN)\n assert(out.byteLength != null)\n assert(plaintext.byteLength != null)\n\n var n = state.subarray(NONCE_BEGIN, NONCE_END)\n if (sodium_memcmp(n, maxnonce)) throw new Error('Nonce overflow')\n\n if (hasKey(state) === false) {\n out.set(plaintext)\n encryptWithAd.bytesRead = plaintext.byteLength\n encryptWithAd.bytesWritten = encryptWithAd.bytesRead\n return\n }\n\n var k = state.subarray(KEY_BEGIN, KEY_END)\n\n cipher.encrypt(\n out,\n k,\n n,\n ad,\n plaintext\n )\n encryptWithAd.bytesRead = cipher.encrypt.bytesRead\n encryptWithAd.bytesWritten = cipher.encrypt.bytesWritten\n\n sodium_increment(n)\n}\nencryptWithAd.bytesRead = 0\nencryptWithAd.bytesWritten = 0\n\nfunction decryptWithAd (state, out, ad, ciphertext) {\n assert(state.byteLength === STATELEN)\n assert(out.byteLength != null)\n assert(ciphertext.byteLength != null)\n\n var n = state.subarray(NONCE_BEGIN, NONCE_END)\n if (sodium_memcmp(n, maxnonce)) throw new Error('Nonce overflow')\n\n if (hasKey(state) === false) {\n out.set(ciphertext)\n decryptWithAd.bytesRead = ciphertext.byteLength\n decryptWithAd.bytesWritten = decryptWithAd.bytesRead\n return\n }\n\n var k = state.subarray(KEY_BEGIN, KEY_END)\n\n cipher.decrypt(\n out,\n k,\n n,\n ad,\n ciphertext\n )\n decryptWithAd.bytesRead = cipher.decrypt.bytesRead\n decryptWithAd.bytesWritten = cipher.decrypt.bytesWritten\n\n sodium_increment(n)\n}\ndecryptWithAd.bytesRead = 0\ndecryptWithAd.bytesWritten = 0\n\nfunction rekey (state) {\n assert(state.byteLength === STATELEN)\n\n var k = state.subarray(KEY_BEGIN, KEY_END)\n cipher.rekey(k, k)\n rekey.bytesRead = cipher.rekey.bytesRead\n rekey.bytesWritten = cipher.rekey.bytesWritten\n}\nrekey.bytesRead = 0\nrekey.bytesWritten = 0\n", "assert.notEqual = notEqual\nassert.notOk = notOk\nassert.equal = equal\nassert.ok = assert\n\nmodule.exports = assert\n\nfunction equal (a, b, m) {\n assert(a == b, m) // eslint-disable-line eqeqeq\n}\n\nfunction notEqual (a, b, m) {\n assert(a != b, m) // eslint-disable-line eqeqeq\n}\n\nfunction notOk (t, m) {\n assert(!t, m)\n}\n\nfunction assert (t, m) {\n if (!t) throw new Error(m || 'AssertionError')\n}\n", "/* eslint-disable camelcase */\nvar { sodium_malloc, sodium_memzero } = require('sodium-universal/memory')\nvar { crypto_generichash, crypto_generichash_batch } = require('sodium-universal/crypto_generichash')\nvar assert = require('nanoassert')\n\nvar HASHLEN = 64\nvar BLOCKLEN = 128\nvar scratch = sodium_malloc(BLOCKLEN * 3)\nvar HMACKey = scratch.subarray(BLOCKLEN * 0, BLOCKLEN * 1)\nvar OuterKeyPad = scratch.subarray(BLOCKLEN * 1, BLOCKLEN * 2)\nvar InnerKeyPad = scratch.subarray(BLOCKLEN * 2, BLOCKLEN * 3)\n\n// Post-fill is done in the cases where someone caught an exception that\n// happened before we were able to clear data at the end\nmodule.exports = function hmac (out, data, key) {\n assert(out.byteLength === HASHLEN)\n assert(key.byteLength != null)\n assert(Array.isArray(data) ? data.every(d => d.byteLength != null) : data.byteLength != null)\n\n if (key.byteLength > BLOCKLEN) {\n crypto_generichash(HMACKey.subarray(0, HASHLEN), key)\n sodium_memzero(HMACKey.subarray(HASHLEN))\n } else {\n // Covers key <= BLOCKLEN\n HMACKey.set(key)\n sodium_memzero(HMACKey.subarray(key.byteLength))\n }\n\n for (var i = 0; i < HMACKey.byteLength; i++) {\n OuterKeyPad[i] = 0x5c ^ HMACKey[i]\n InnerKeyPad[i] = 0x36 ^ HMACKey[i]\n }\n sodium_memzero(HMACKey)\n\n crypto_generichash_batch(out, [InnerKeyPad].concat(data))\n sodium_memzero(InnerKeyPad)\n crypto_generichash_batch(out, [OuterKeyPad].concat(out))\n sodium_memzero(OuterKeyPad)\n}\n\nmodule.exports.BYTES = HASHLEN\nmodule.exports.KEYBYTES = BLOCKLEN\n", "/* eslint-disable camelcase */\nconst { crypto_kx_SEEDBYTES, crypto_kx_keypair, crypto_kx_seed_keypair } = require('sodium-universal/crypto_kx')\nconst { crypto_scalarmult_BYTES, crypto_scalarmult_SCALARBYTES, crypto_scalarmult } = require('sodium-universal/crypto_scalarmult')\n\nvar assert = require('nanoassert')\n\nvar DHLEN = crypto_scalarmult_BYTES\nvar PKLEN = crypto_scalarmult_BYTES\nvar SKLEN = crypto_scalarmult_SCALARBYTES\nvar SEEDLEN = crypto_kx_SEEDBYTES\n\nmodule.exports = {\n DHLEN,\n PKLEN,\n SKLEN,\n SEEDLEN,\n generateKeypair,\n generateSeedKeypair,\n dh\n}\n\nfunction generateKeypair (pk, sk) {\n assert(pk.byteLength === PKLEN)\n assert(sk.byteLength === SKLEN)\n crypto_kx_keypair(pk, sk)\n}\n\nfunction generateSeedKeypair (pk, sk, seed) {\n assert(pk.byteLength === PKLEN)\n assert(sk.byteLength === SKLEN)\n assert(seed.byteLength === SKLEN)\n\n crypto_kx_seed_keypair(pk, sk, seed)\n}\n\nfunction dh (output, lsk, pk) {\n assert(output.byteLength === DHLEN)\n assert(lsk.byteLength === SKLEN)\n assert(pk.byteLength === PKLEN)\n\n crypto_scalarmult(\n output,\n lsk,\n pk\n )\n}\n", "/* eslint-disable camelcase */\nconst { sodium_malloc, sodium_memzero } = require('sodium-universal/memory')\nconst { crypto_generichash_batch } = require('sodium-universal/crypto_generichash')\n\nconst assert = require('nanoassert')\nconst hmacBlake2b = require('hmac-blake2b')\nconst dh = require('./dh')\n\nconst HASHLEN = 64\nconst BLOCKLEN = 128\n\nassert(hmacBlake2b.KEYBYTES === BLOCKLEN, 'mismatching hmac BLOCKLEN')\nassert(hmacBlake2b.BYTES === HASHLEN, 'mismatching hmac HASHLEN')\n\nmodule.exports = {\n HASHLEN,\n BLOCKLEN,\n hash,\n hkdf\n}\n\nfunction hash (out, data) {\n assert(out.byteLength === HASHLEN)\n assert(Array.isArray(data))\n\n crypto_generichash_batch(out, data)\n}\n\nfunction hmac (out, key, data) {\n return hmacBlake2b(out, data, key)\n}\n\nconst TempKey = sodium_malloc(HASHLEN)\nconst Byte0x01 = new Uint8Array([0x01])\nconst Byte0x02 = new Uint8Array([0x02])\nconst Byte0x03 = new Uint8Array([0x03])\n\nfunction hkdf (out1, out2, out3, chainingKey, inputKeyMaterial) {\n assert(out1.byteLength === HASHLEN)\n assert(out2.byteLength === HASHLEN)\n assert(out3 == null ? true : out3.byteLength === HASHLEN)\n assert(chainingKey.byteLength === HASHLEN)\n assert([0, 32, dh.DHLEN, dh.PKLEN].includes(inputKeyMaterial.byteLength))\n\n sodium_memzero(TempKey)\n hmac(TempKey, chainingKey, [inputKeyMaterial])\n hmac(out1, TempKey, [Byte0x01])\n hmac(out2, TempKey, [out1, Byte0x02])\n\n if (out3 != null) {\n hmac(out3, TempKey, [out2, Byte0x03])\n }\n\n sodium_memzero(TempKey)\n}\n", "/* eslint-disable camelcase */\nconst { sodium_malloc, sodium_memzero } = require('sodium-universal/memory')\nvar assert = require('nanoassert')\nvar cipherState = require('./cipher-state')\nvar hash = require('./hash')\n\nvar STATELEN = hash.HASHLEN + hash.HASHLEN + cipherState.STATELEN\nvar HASHLEN = hash.HASHLEN\n\nmodule.exports = {\n STATELEN,\n initializeSymmetric,\n mixKey,\n mixHash,\n mixKeyAndHash,\n getHandshakeHash,\n encryptAndHash,\n decryptAndHash,\n split,\n _hasKey\n}\n\nvar CHAINING_KEY_BEGIN = 0\nvar CHAINING_KEY_END = hash.HASHLEN\nvar HASH_BEGIN = CHAINING_KEY_END\nvar HASH_END = HASH_BEGIN + hash.HASHLEN\nvar CIPHER_BEGIN = HASH_END\nvar CIPHER_END = CIPHER_BEGIN + cipherState.STATELEN\n\nfunction initializeSymmetric (state, protocolName) {\n assert(state.byteLength === STATELEN)\n assert(protocolName.byteLength != null)\n\n sodium_memzero(state)\n if (protocolName.byteLength <= HASHLEN) state.set(protocolName, HASH_BEGIN)\n else hash.hash(state.subarray(HASH_BEGIN, HASH_END), [protocolName])\n\n state.subarray(CHAINING_KEY_BEGIN, CHAINING_KEY_END).set(state.subarray(HASH_BEGIN, HASH_END))\n\n cipherState.initializeKey(state.subarray(CIPHER_BEGIN, CIPHER_END), null)\n}\n\nvar TempKey = sodium_malloc(HASHLEN)\nfunction mixKey (state, inputKeyMaterial) {\n assert(state.byteLength === STATELEN)\n assert(inputKeyMaterial.byteLength != null)\n\n hash.hkdf(\n state.subarray(CHAINING_KEY_BEGIN, CHAINING_KEY_END),\n TempKey,\n null,\n state.subarray(CHAINING_KEY_BEGIN, CHAINING_KEY_END),\n inputKeyMaterial\n )\n\n // HASHLEN is always 64 here, so we truncate to 32 bytes per the spec\n cipherState.initializeKey(state.subarray(CIPHER_BEGIN, CIPHER_END), TempKey.subarray(0, 32))\n sodium_memzero(TempKey)\n}\n\nfunction mixHash (state, data) {\n assert(state.byteLength === STATELEN)\n\n var h = state.subarray(HASH_BEGIN, HASH_END)\n\n hash.hash(h, [h, data])\n}\n\nvar TempHash = sodium_malloc(HASHLEN)\nfunction mixKeyAndHash (state, inputKeyMaterial) {\n assert(state.byteLength === STATELEN)\n assert(inputKeyMaterial.byteLength != null)\n\n hash.hkdf(\n state.subarray(CHAINING_KEY_BEGIN, CHAINING_KEY_END),\n TempHash,\n TempKey,\n state.subarray(CHAINING_KEY_BEGIN, CHAINING_KEY_END),\n inputKeyMaterial\n )\n\n mixHash(state, TempHash)\n sodium_memzero(TempHash)\n\n // HASHLEN is always 64 here, so we truncate to 32 bytes per the spec\n cipherState.initializeKey(state.subarray(CIPHER_BEGIN, CIPHER_END), TempKey.subarray(0, 32))\n sodium_memzero(TempKey)\n}\n\nfunction getHandshakeHash (state, out) {\n assert(state.byteLength === STATELEN)\n assert(out.byteLength === HASHLEN)\n\n out.set(state.subarray(HASH_BEGIN, HASH_END))\n}\n\n// ciphertext is the output here\nfunction encryptAndHash (state, ciphertext, plaintext) {\n assert(state.byteLength === STATELEN)\n assert(ciphertext.byteLength != null)\n assert(plaintext.byteLength != null)\n\n var cstate = state.subarray(CIPHER_BEGIN, CIPHER_END)\n var h = state.subarray(HASH_BEGIN, HASH_END)\n\n cipherState.encryptWithAd(cstate, ciphertext, h, plaintext)\n encryptAndHash.bytesRead = cipherState.encryptWithAd.bytesRead\n encryptAndHash.bytesWritten = cipherState.encryptWithAd.bytesWritten\n mixHash(state, ciphertext.subarray(0, encryptAndHash.bytesWritten))\n}\nencryptAndHash.bytesRead = 0\nencryptAndHash.bytesWritten = 0\n\n// plaintext is the output here\nfunction decryptAndHash (state, plaintext, ciphertext) {\n assert(state.byteLength === STATELEN)\n assert(plaintext.byteLength != null)\n assert(ciphertext.byteLength != null)\n\n var cstate = state.subarray(CIPHER_BEGIN, CIPHER_END)\n var h = state.subarray(HASH_BEGIN, HASH_END)\n\n cipherState.decryptWithAd(cstate, plaintext, h, ciphertext)\n decryptAndHash.bytesRead = cipherState.decryptWithAd.bytesRead\n decryptAndHash.bytesWritten = cipherState.decryptWithAd.bytesWritten\n mixHash(state, ciphertext.subarray(0, decryptAndHash.bytesRead))\n}\ndecryptAndHash.bytesRead = 0\ndecryptAndHash.bytesWritten = 0\n\nvar TempKey1 = sodium_malloc(HASHLEN)\nvar TempKey2 = sodium_malloc(HASHLEN)\nvar zerolen = new Uint8Array(0)\nfunction split (state, cipherstate1, cipherstate2) {\n assert(state.byteLength === STATELEN)\n assert(cipherstate1.byteLength === cipherState.STATELEN)\n assert(cipherstate2.byteLength === cipherState.STATELEN)\n\n hash.hkdf(\n TempKey1,\n TempKey2,\n null,\n state.subarray(CHAINING_KEY_BEGIN, CHAINING_KEY_END),\n zerolen\n )\n\n // HASHLEN is always 64 here, so we truncate to 32 bytes per the spec\n cipherState.initializeKey(cipherstate1, TempKey1.subarray(0, 32))\n cipherState.initializeKey(cipherstate2, TempKey2.subarray(0, 32))\n sodium_memzero(TempKey1)\n sodium_memzero(TempKey2)\n}\n\nfunction _hasKey (state) {\n return cipherState.hasKey(state.subarray(CIPHER_BEGIN, CIPHER_END))\n}\n", "/* eslint-disable camelcase */\nconst { sodium_malloc, sodium_memzero, sodium_free } = require('sodium-universal/memory')\nconst assert = require('nanoassert')\nconst clone = require('clone')\nconst symmetricState = require('./symmetric-state')\nconst cipherState = require('./cipher-state')\nconst dh = require('./dh')\n\nconst PKLEN = dh.PKLEN\nconst SKLEN = dh.SKLEN\n\nmodule.exports = Object.freeze({\n initialize,\n writeMessage,\n readMessage,\n destroy,\n keygen,\n seedKeygen,\n SKLEN,\n PKLEN\n})\n\nfunction HandshakeState () {\n this.symmetricState = sodium_malloc(symmetricState.STATELEN)\n\n this.initiator = null\n\n this.spk = null\n this.ssk = null\n\n this.epk = null\n this.esk = null\n\n this.rs = null\n this.re = null\n\n this.messagePatterns = null\n}\n\nconst INITIATOR = Symbol('initiator')\nconst RESPONDER = Symbol('responder')\n\nconst TOK_S = Symbol('s')\nconst TOK_E = Symbol('e')\nconst TOK_ES = Symbol('es')\nconst TOK_SE = Symbol('se')\nconst TOK_EE = Symbol('ee')\nconst TOK_SS = Symbol('es')\n\n// initiator, ->\n// responder, <-\nvar PATTERNS = Object.freeze({\n N: {\n premessages: [\n [RESPONDER, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_ES]\n ]\n },\n K: {\n premessages: [\n [INITIATOR, TOK_S],\n [RESPONDER, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_ES, TOK_SS]\n ]\n },\n X: {\n premessages: [\n [RESPONDER, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_ES, TOK_S, TOK_SS]\n ]\n },\n NN: {\n premessages: [],\n messagePatterns: [\n [INITIATOR, TOK_E],\n [RESPONDER, TOK_E, TOK_EE]\n ]\n },\n KN: {\n premessages: [\n [INITIATOR, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E],\n [RESPONDER, TOK_E, TOK_EE, TOK_SE]\n ]\n },\n NK: {\n premessages: [\n [RESPONDER, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_ES],\n [RESPONDER, TOK_E, TOK_EE]\n ]\n },\n KK: {\n premessages: [\n [INITIATOR, TOK_S],\n [RESPONDER, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_ES, TOK_SS],\n [RESPONDER, TOK_E, TOK_EE, TOK_SE]\n ]\n },\n NX: {\n premessages: [],\n messagePatterns: [\n [INITIATOR, TOK_E],\n [RESPONDER, TOK_E, TOK_EE, TOK_S, TOK_ES]\n ]\n },\n KX: {\n premessages: [\n [INITIATOR, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E],\n [RESPONDER, TOK_E, TOK_EE, TOK_SE, TOK_S, TOK_ES]\n ]\n },\n XN: {\n premessages: [],\n messagePatterns: [\n [INITIATOR, TOK_E],\n [RESPONDER, TOK_E, TOK_EE],\n [INITIATOR, TOK_S, TOK_SE]\n ]\n },\n IN: {\n premessages: [],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_S],\n [RESPONDER, TOK_E, TOK_EE, TOK_SE]\n ]\n },\n XK: {\n premessages: [\n [RESPONDER, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_ES],\n [RESPONDER, TOK_E, TOK_EE],\n [INITIATOR, TOK_S, TOK_SE]\n ]\n },\n IK: {\n premessages: [\n [RESPONDER, TOK_S]\n ],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_ES, TOK_S, TOK_SS],\n [RESPONDER, TOK_E, TOK_EE, TOK_SE]\n ]\n },\n XX: {\n premessages: [],\n messagePatterns: [\n [INITIATOR, TOK_E],\n [RESPONDER, TOK_E, TOK_EE, TOK_S, TOK_ES],\n [INITIATOR, TOK_S, TOK_SE]\n ]\n },\n IX: {\n premessages: [],\n messagePatterns: [\n [INITIATOR, TOK_E, TOK_S],\n [RESPONDER, TOK_E, TOK_EE, TOK_SE, TOK_S, TOK_ES]\n ]\n }\n})\n\nfunction sodiumBufferCopy (src) {\n var buf = sodium_malloc(src.byteLength)\n buf.set(src)\n return buf\n}\n\nfunction initialize (handshakePattern, initiator, prologue, s, e, rs, re) {\n assert(Object.keys(PATTERNS).includes(handshakePattern), 'Unsupported handshake pattern')\n assert(typeof initiator === 'boolean', 'Initiator must be a boolean')\n assert(prologue.byteLength != null, 'prolouge must be a Buffer')\n\n assert(e == null ? true : e.publicKey.byteLength === dh.PKLEN, `e.publicKey must be ${dh.PKLEN} bytes`)\n assert(e == null ? true : e.secretKey.byteLength === dh.SKLEN, `e.secretKey must be ${dh.SKLEN} bytes`)\n\n assert(rs == null ? true : rs.byteLength === dh.PKLEN, `rs must be ${dh.PKLEN} bytes`)\n assert(re == null ? true : re.byteLength === dh.PKLEN, `re must be ${dh.PKLEN} bytes`)\n\n var state = new HandshakeState()\n\n var protocolName = Uint8Array.from(`Noise_${handshakePattern}_25519_ChaChaPoly_BLAKE2b`, toCharCode)\n\n symmetricState.initializeSymmetric(state.symmetricState, protocolName)\n symmetricState.mixHash(state.symmetricState, prologue)\n\n state.role = initiator === true ? INITIATOR : RESPONDER\n\n if (s != null) {\n assert(s.publicKey.byteLength === dh.PKLEN, `s.publicKey must be ${dh.PKLEN} bytes`)\n assert(s.secretKey.byteLength === dh.SKLEN, `s.secretKey must be ${dh.SKLEN} bytes`)\n\n state.spk = sodiumBufferCopy(s.publicKey)\n state.ssk = sodiumBufferCopy(s.secretKey)\n }\n\n if (e != null) {\n assert(e.publicKey.byteLength === dh.PKLEN)\n assert(e.secretKey.byteLength === dh.SKLEN)\n\n state.epk = sodiumBufferCopy(e.publicKey)\n state.esk = sodiumBufferCopy(e.secretKey)\n }\n\n if (rs != null) {\n assert(rs.byteLength === dh.PKLEN)\n state.rs = sodiumBufferCopy(rs)\n }\n if (re != null) {\n assert(re.byteLength === dh.PKLEN)\n state.re = sodiumBufferCopy(re)\n }\n\n // hashing\n var pat = PATTERNS[handshakePattern]\n\n for (var pattern of clone(pat.premessages)) {\n var patternRole = pattern.shift()\n\n for (var token of pattern) {\n switch (token) {\n case TOK_E:\n assert(state.role === patternRole ? state.epk.byteLength != null : state.re.byteLength != null)\n symmetricState.mixHash(state.symmetricState, state.role === patternRole ? state.epk : state.re)\n break\n case TOK_S:\n assert(state.role === patternRole ? state.spk.byteLength != null : state.rs.byteLength != null)\n symmetricState.mixHash(state.symmetricState, state.role === patternRole ? state.spk : state.rs)\n break\n default:\n throw new Error('Invalid premessage pattern')\n }\n }\n }\n\n state.messagePatterns = clone(pat.messagePatterns)\n\n assert(state.messagePatterns.filter(p => p[0] === INITIATOR).some(p => p.includes(TOK_S))\n ? (state.spk !== null && state.ssk !== null)\n : true, // Default if none is found\n 'This handshake pattern requires a static keypair')\n\n return state\n}\n\nvar DhResult = sodium_malloc(dh.DHLEN)\nfunction writeMessage (state, payload, messageBuffer) {\n assert(state instanceof HandshakeState)\n assert(payload.byteLength != null)\n assert(messageBuffer.byteLength != null)\n\n var mpat = state.messagePatterns.shift()\n var moffset = 0\n\n assert(mpat != null)\n\n assert(state.role === mpat.shift())\n\n for (var token of mpat) {\n switch (token) {\n case TOK_E:\n assert(state.epk == null)\n assert(state.esk == null)\n\n state.epk = sodium_malloc(dh.PKLEN)\n state.esk = sodium_malloc(dh.SKLEN)\n\n dh.generateKeypair(state.epk, state.esk)\n\n messageBuffer.set(state.epk, moffset)\n moffset += state.epk.byteLength\n\n symmetricState.mixHash(state.symmetricState, state.epk)\n\n break\n\n case TOK_S:\n assert(state.spk.byteLength === dh.PKLEN)\n\n symmetricState.encryptAndHash(state.symmetricState, messageBuffer.subarray(moffset), state.spk)\n moffset += symmetricState.encryptAndHash.bytesWritten\n\n break\n\n case TOK_EE:\n dh.dh(DhResult, state.esk, state.re)\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n case TOK_ES:\n if (state.role === INITIATOR) dh.dh(DhResult, state.esk, state.rs)\n else dh.dh(DhResult, state.ssk, state.re)\n\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n case TOK_SE:\n if (state.role === INITIATOR) dh.dh(DhResult, state.ssk, state.re)\n else dh.dh(DhResult, state.esk, state.rs)\n\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n case TOK_SS:\n dh.dh(DhResult, state.ssk, state.rs)\n\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n\n default:\n throw new Error('Invalid message pattern')\n }\n }\n\n symmetricState.encryptAndHash(state.symmetricState, messageBuffer.subarray(moffset), payload)\n moffset += symmetricState.encryptAndHash.bytesWritten\n\n writeMessage.bytes = moffset\n\n if (state.messagePatterns.length === 0) {\n var tx = sodium_malloc(cipherState.STATELEN)\n var rx = sodium_malloc(cipherState.STATELEN)\n symmetricState.split(state.symmetricState, tx, rx)\n\n return { tx, rx }\n }\n}\nwriteMessage.bytes = 0\n\nfunction readMessage (state, message, payloadBuffer) {\n assert(state instanceof HandshakeState)\n assert(message.byteLength != null)\n assert(payloadBuffer.byteLength != null)\n\n var mpat = state.messagePatterns.shift()\n var moffset = 0\n\n assert(mpat != null)\n assert(mpat.shift() !== state.role)\n\n for (var token of mpat) {\n switch (token) {\n case TOK_E:\n assert(state.re == null)\n assert(message.byteLength - moffset >= dh.PKLEN)\n\n // PKLEN instead of DHLEN since they are different in out case\n state.re = sodium_malloc(dh.PKLEN)\n state.re.set(message.subarray(moffset, moffset + dh.PKLEN))\n moffset += dh.PKLEN\n\n symmetricState.mixHash(state.symmetricState, state.re)\n\n break\n\n case TOK_S:\n assert(state.rs == null)\n state.rs = sodium_malloc(dh.PKLEN)\n\n var bytes = 0\n if (symmetricState._hasKey(state.symmetricState)) {\n bytes = dh.PKLEN + 16\n } else {\n bytes = dh.PKLEN\n }\n\n assert(message.byteLength - moffset >= bytes)\n\n symmetricState.decryptAndHash(\n state.symmetricState,\n state.rs,\n message.subarray(moffset, moffset + bytes) // <- called temp in noise spec\n )\n\n moffset += symmetricState.decryptAndHash.bytesRead\n\n break\n case TOK_EE:\n dh.dh(DhResult, state.esk, state.re)\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n case TOK_ES:\n if (state.role === INITIATOR) dh.dh(DhResult, state.esk, state.rs)\n else dh.dh(DhResult, state.ssk, state.re)\n\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n case TOK_SE:\n if (state.role === INITIATOR) dh.dh(DhResult, state.ssk, state.re)\n else dh.dh(DhResult, state.esk, state.rs)\n\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n case TOK_SS:\n dh.dh(DhResult, state.ssk, state.rs)\n\n symmetricState.mixKey(state.symmetricState, DhResult)\n sodium_memzero(DhResult)\n break\n\n default:\n throw new Error('Invalid message pattern')\n }\n }\n\n symmetricState.decryptAndHash(state.symmetricState, payloadBuffer, message.subarray(moffset))\n\n // How many bytes were written to payload (minus the TAG/MAC)\n readMessage.bytes = symmetricState.decryptAndHash.bytesWritten\n\n if (state.messagePatterns.length === 0) {\n var tx = sodium_malloc(cipherState.STATELEN)\n var rx = sodium_malloc(cipherState.STATELEN)\n symmetricState.split(state.symmetricState, rx, tx)\n\n return { tx, rx }\n }\n}\nreadMessage.bytes = 0\n\nfunction destroy (state) {\n if (state.symmetricState != null) {\n sodium_free(state.symmetricState)\n state.symmetricState = null\n }\n\n state.role = null\n\n if (state.spk != null) {\n sodium_free(state.spk)\n state.spk = null\n }\n\n if (state.ssk != null) {\n sodium_free(state.ssk)\n state.ssk = null\n }\n\n if (state.epk != null) {\n sodium_free(state.epk)\n state.epk = null\n }\n\n if (state.esk != null) {\n sodium_free(state.esk)\n state.esk = null\n }\n\n if (state.rs != null) {\n sodium_free(state.rs)\n state.rs = null\n }\n\n if (state.re != null) {\n sodium_free(state.re)\n state.re = null\n }\n\n state.messagePatterns = null\n}\n\nfunction keygen (obj, sk) {\n if (!obj) {\n obj = { publicKey: sodium_malloc(PKLEN), secretKey: sodium_malloc(SKLEN) }\n return keygen(obj)\n }\n\n if (obj.publicKey) {\n dh.generateKeypair(obj.publicKey, obj.secretKey)\n return obj\n }\n\n if (obj.byteLength != null) dh.generateKeypair(null, obj)\n}\n\nfunction seedKeygen (seed) {\n var obj = { publicKey: sodium_malloc(PKLEN), secretKey: sodium_malloc(SKLEN) }\n dh.generateSeedKeypair(obj.publicKey, obj.secretKey, seed)\n return obj\n}\n\nfunction toCharCode (s) {\n return s.charCodeAt(0)\n}\n", "module.exports = require('./handshake-state')\n", "var noise = require('noise-protocol')\nvar NoiseSymmetricState = require('noise-protocol/symmetric-state')\nvar NoiseHash = require('noise-protocol/hash')\nvar assert = require('nanoassert')\nvar EMPTY = Buffer.alloc(0)\n\nfunction SimpleHandshake (isInitiator, opts) {\n if (!(this instanceof SimpleHandshake)) return new SimpleHandshake(isInitiator, opts)\n opts = opts || {}\n\n var pattern = opts.pattern || 'NN'\n var prolouge = opts.prolouge || EMPTY\n\n this.handshakeHash = null\n this.onstatickey = opts.onstatickey || function (_, cb) { cb() }\n this.onephemeralkey = opts.onephemeralkey || function (_, cb) { cb() }\n this.onhandshake = opts.onhandshake || function (_, cb) { cb() }\n\n this.state = noise.initialize(\n pattern,\n isInitiator,\n prolouge,\n opts.staticKeyPair,\n opts.ephemeralKeyPair,\n opts.remoteStaticKey,\n opts.remoteEphemeralKey\n )\n\n // initiators should send first message, so if initiator, waiting = false\n // while servers should await any message, so if not initiator, waiting = true\n this.waiting = isInitiator === false\n this.finished = false\n // Will hold the \"split\" for transport encryption after handshake\n this.split = null\n\n // ~64KiB is the max noise message length\n this._tx = Buffer.alloc(65535)\n this._rx = Buffer.alloc(65535)\n}\n\nSimpleHandshake.prototype.recv = function recv (data, cb) {\n var self = this\n assert(self.finished === false, 'Should not call recv if finished')\n assert(data != null, 'must have data')\n assert(data.byteLength <= self._rx.byteLength, 'too much data received')\n assert(self.waiting === true, 'Wrong state, not ready to receive data')\n assert(self.split == null, 'split should be null')\n\n var hasREBefore = self.state.re != null\n var hasRSBefore = self.state.rs != null\n try {\n self.split = noise.readMessage(self.state, data, self._rx)\n } catch (ex) {\n return self._finish(ex, null, cb)\n }\n\n self.waiting = false\n\n var hasREAfter = self.state.re != null\n var hasRSAfter = self.state.rs != null\n\n // e and s may come in the same message, so we always have to check static\n // after ephemeral. Assumption here (which holds for all official Noise handshakes)\n // is that e always comes before s\n if (hasREBefore === false && hasREAfter === true) {\n return self.onephemeralkey(self.state.re, checkStatic)\n }\n\n return checkStatic()\n\n function checkStatic (err) {\n if (err) return ondone(err)\n\n if (hasRSBefore === false && hasRSAfter === true) {\n return self.onstatickey(self.state.rs, ondone)\n }\n\n return ondone()\n }\n\n function ondone (err) {\n if (err) return self._finish(err, null, cb)\n\n var msg = self._rx.subarray(0, noise.readMessage.bytes)\n if (self.split) return self._finish(null, msg, cb)\n\n cb(null, msg)\n }\n}\n\nSimpleHandshake.prototype.send = function send (data, cb) {\n assert(this.finished === false, 'Should not call send if finished')\n assert(this.waiting === false, 'Wrong state, not ready to send data')\n assert(this.split == null, 'split should be null')\n\n data = data || EMPTY\n\n try {\n this.split = noise.writeMessage(this.state, data, this._tx)\n } catch (ex) {\n return this._finish(ex, null, cb)\n }\n\n this.waiting = true\n\n var buf = this._tx.subarray(0, noise.writeMessage.bytes)\n\n if (this.split != null) return this._finish(null, buf, cb)\n\n return cb(null, buf)\n}\n\nSimpleHandshake.prototype.destroy = function () {\n this._finish(null, null, function () {})\n}\n\nSimpleHandshake.prototype._finish = function _finish (err, msg, cb) {\n assert(this.finished === false, 'Already finished')\n const self = this\n\n self.finished = true\n self.waiting = false\n\n if (self.split) {\n self.handshakeHash = Buffer.alloc(NoiseHash.HASHLEN)\n NoiseSymmetricState.getHandshakeHash(self.state.symmetricState, self.handshakeHash)\n }\n if (err) return ondone(err)\n self.onhandshake(self.state, ondone)\n\n function ondone (err) {\n noise.destroy(self.state)\n\n cb(err, msg, self.split)\n\n // Should be sodium_memzero?\n self._rx.fill(0)\n self._tx.fill(0)\n }\n}\n\nSimpleHandshake.keygen = noise.keygen\nSimpleHandshake.seedKeygen = noise.seedKeygen\n\nmodule.exports = SimpleHandshake\n", "module.exports = encode\n\nvar MSB = 0x80\n , REST = 0x7F\n , MSBALL = ~REST\n , INT = Math.pow(2, 31)\n\nfunction encode(num, out, offset) {\n out = out || []\n offset = offset || 0\n var oldOffset = offset\n\n while(num >= INT) {\n out[offset++] = (num & 0xFF) | MSB\n num /= 128\n }\n while(num & MSBALL) {\n out[offset++] = (num & 0xFF) | MSB\n num >>>= 7\n }\n out[offset] = num | 0\n \n encode.bytes = offset - oldOffset + 1\n \n return out\n}\n", "module.exports = read\n\nvar MSB = 0x80\n , REST = 0x7F\n\nfunction read(buf, offset) {\n var res = 0\n , offset = offset || 0\n , shift = 0\n , counter = offset\n , b\n , l = buf.length\n\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\n ? (b & REST) << shift\n : (b & REST) * Math.pow(2, shift)\n shift += 7\n } while (b >= MSB)\n\n read.bytes = counter - offset\n\n return res\n}\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)\n\nmodule.exports = function (value) {\n return (\n value < N1 ? 1\n : value < N2 ? 2\n : value < N3 ? 3\n : value < N4 ? 4\n : value < N5 ? 5\n : value < N6 ? 6\n : value < N7 ? 7\n : value < N8 ? 8\n : value < N9 ? 9\n : 10\n )\n}\n", "module.exports = {\n encode: require('./encode.js')\n , decode: require('./decode.js')\n , encodingLength: require('./length.js')\n}\n", "const SH = require('simple-handshake')\nconst DH = require('noise-protocol/dh')\nconst crypto = require('hypercore-crypto')\nconst varint = require('varint')\n\nmodule.exports = class ProtocolHandshake {\n constructor (initiator, payload, opts, done) {\n this.options = opts\n this.ondone = done\n this.buffer = null\n this.length = 0\n this.remotePayload = null\n this.payload = payload\n this.keyPair = opts.keyPair || ProtocolHandshake.keyPair()\n this.remotePublicKey = null\n this.onrecv = onrecv.bind(this)\n this.onsend = onsend.bind(this)\n this.destroyed = false\n this.noise = SH(initiator, {\n pattern: 'XX',\n onhandshake,\n staticKeyPair: this.keyPair,\n onstatickey: onstatickey.bind(this)\n })\n\n const self = this\n if (this.noise.waiting === false) process.nextTick(start, this)\n\n function onhandshake (state, cb) {\n process.nextTick(finish, self)\n cb(null)\n }\n }\n\n recv (data) {\n if (this.destroyed) return\n\n if (this.buffer) this.buffer = Buffer.concat([this.buffer, data])\n else this.buffer = data\n\n while (!this.destroyed && !this.noise.finished) {\n if (!this.buffer || this.buffer.length < 3) return\n if (this.length) {\n if (this.buffer.length < this.length) return\n const message = this.buffer.slice(0, this.length)\n this.buffer = this.length < this.buffer.length ? this.buffer.slice(this.length) : null\n this.length = 0\n this.noise.recv(message, this.onrecv)\n } else {\n this.length = varint.decode(this.buffer, 0)\n this.buffer = this.buffer.slice(varint.decode.bytes)\n }\n }\n }\n\n destroy (err) {\n if (this.destroyed) return\n this.destroyed = true\n if (!this.noise.finished) this.noise.destroy()\n this.ondone(err)\n }\n\n static keyPair (seed) {\n const obj = {\n // suboptimal but to reduce secure memory overhead on linux with default settings\n // better fix is to batch mallocs in noise-protocol\n publicKey: Buffer.alloc(DH.PKLEN),\n secretKey: Buffer.alloc(DH.SKLEN)\n }\n\n if (seed) DH.generateSeedKeypair(obj.publicKey, obj.secretKey, seed)\n else DH.generateKeypair(obj.publicKey, obj.secretKey)\n\n return obj\n }\n}\n\nfunction finish (self) {\n if (self.destroyed) return\n self.destroyed = true\n // suboptimal but to reduce secure memory overhead on linux with default settings\n // better fix is to batch mallocs in noise-protocol\n const split = { rx: Buffer.from(self.noise.split.rx), tx: Buffer.from(self.noise.split.tx) }\n crypto.free(self.noise.split.rx)\n crypto.free(self.noise.split.tx)\n self.ondone(null, self.remotePayload, split, self.buffer, self.remotePublicKey, self.noise.handshakeHash)\n}\n\nfunction start (self) {\n if (self.destroyed) return\n self.noise.send(self.payload, self.onsend)\n}\n\nfunction onsend (err, data) {\n if (err) return this.destroy(err)\n const buf = Buffer.allocUnsafe(varint.encodingLength(data.length) + data.length)\n varint.encode(data.length, buf, 0)\n data.copy(buf, varint.encode.bytes)\n this.options.send(buf)\n}\n\nfunction onrecv (err, data) { // data is reused so we need to copy it if we use it\n if (err) return this.destroy(err)\n if (data && data.length) this.remotePayload = Buffer.from(data)\n if (this.destroyed || this.noise.finished) return\n\n if (this.noise.waiting === false) {\n this.noise.send(this.payload, this.onsend)\n }\n}\n\nfunction onstatickey (remoteKey, done) {\n this.remotePublicKey = Buffer.from(remoteKey)\n if (this.options.onauthenticate) this.options.onauthenticate(this.remotePublicKey, done)\n else done(null)\n}\n", "module.exports = encode\n\nvar MSB = 0x80\n , REST = 0x7F\n , MSBALL = ~REST\n , INT = Math.pow(2, 31)\n\nfunction encode(num, out, offset) {\n out = out || []\n offset = offset || 0\n var oldOffset = offset\n\n while(num >= INT) {\n out[offset++] = (num & 0xFF) | MSB\n num /= 128\n }\n while(num & MSBALL) {\n out[offset++] = (num & 0xFF) | MSB\n num >>>= 7\n }\n out[offset] = num | 0\n \n encode.bytes = offset - oldOffset + 1\n \n return out\n}\n", "module.exports = read\n\nvar MSB = 0x80\n , REST = 0x7F\n\nfunction read(buf, offset) {\n var res = 0\n , offset = offset || 0\n , shift = 0\n , counter = offset\n , b\n , l = buf.length\n\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\n ? (b & REST) << shift\n : (b & REST) * Math.pow(2, shift)\n shift += 7\n } while (b >= MSB)\n\n read.bytes = counter - offset\n\n return res\n}\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)\n\nmodule.exports = function (value) {\n return (\n value < N1 ? 1\n : value < N2 ? 2\n : value < N3 ? 3\n : value < N4 ? 4\n : value < N5 ? 5\n : value < N6 ? 6\n : value < N7 ? 7\n : value < N8 ? 8\n : value < N9 ? 9\n : 10\n )\n}\n", "module.exports = {\n encode: require('./encode.js')\n , decode: require('./decode.js')\n , encodingLength: require('./length.js')\n}\n", "var varint = require('varint')\nexports.encode = function encode (v, b, o) {\n v = v >= 0 ? v*2 : v*-2 - 1\n var r = varint.encode(v, b, o)\n encode.bytes = varint.encode.bytes\n return r\n}\nexports.decode = function decode (b, o) {\n var v = varint.decode(b, o)\n decode.bytes = varint.decode.bytes\n return v & 1 ? (v+1) / -2 : v / 2\n}\n\nexports.encodingLength = function (v) {\n return varint.encodingLength(v >= 0 ? v*2 : v*-2 - 1)\n}\n", "function isBuffer (value) {\n return Buffer.isBuffer(value) || value instanceof Uint8Array\n}\n\nfunction isEncoding (encoding) {\n return Buffer.isEncoding(encoding)\n}\n\nfunction alloc (size, fill, encoding) {\n return Buffer.alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n return Buffer.allocUnsafe(size)\n}\n\nfunction allocUnsafeSlow (size) {\n return Buffer.allocUnsafeSlow(size)\n}\n\nfunction byteLength (string, encoding) {\n return Buffer.byteLength(string, encoding)\n}\n\nfunction compare (a, b) {\n return Buffer.compare(a, b)\n}\n\nfunction concat (buffers, totalLength) {\n return Buffer.concat(buffers, totalLength)\n}\n\nfunction copy (source, target, targetStart, start, end) {\n return toBuffer(source).copy(target, targetStart, start, end)\n}\n\nfunction equals (a, b) {\n return toBuffer(a).equals(b)\n}\n\nfunction fill (buffer, value, offset, end, encoding) {\n return toBuffer(buffer).fill(value, offset, end, encoding)\n}\n\nfunction from (value, encodingOrOffset, length) {\n return Buffer.from(value, encodingOrOffset, length)\n}\n\nfunction includes (buffer, value, byteOffset, encoding) {\n return toBuffer(buffer).includes(value, byteOffset, encoding)\n}\n\nfunction indexOf (buffer, value, byfeOffset, encoding) {\n return toBuffer(buffer).indexOf(value, byfeOffset, encoding)\n}\n\nfunction lastIndexOf (buffer, value, byteOffset, encoding) {\n return toBuffer(buffer).lastIndexOf(value, byteOffset, encoding)\n}\n\nfunction swap16 (buffer) {\n return toBuffer(buffer).swap16()\n}\n\nfunction swap32 (buffer) {\n return toBuffer(buffer).swap32()\n}\n\nfunction swap64 (buffer) {\n return toBuffer(buffer).swap64()\n}\n\nfunction toBuffer (buffer) {\n if (Buffer.isBuffer(buffer)) return buffer\n return Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n}\n\nfunction toString (buffer, encoding, start, end) {\n return toBuffer(buffer).toString(encoding, start, end)\n}\n\nfunction write (buffer, string, offset, length, encoding) {\n return toBuffer(buffer).write(string, offset, length, encoding)\n}\n\nfunction writeDoubleLE (buffer, value, offset) {\n return toBuffer(buffer).writeDoubleLE(value, offset)\n}\n\nfunction writeFloatLE (buffer, value, offset) {\n return toBuffer(buffer).writeFloatLE(value, offset)\n}\n\nfunction writeUInt32LE (buffer, value, offset) {\n return toBuffer(buffer).writeUInt32LE(value, offset)\n}\n\nfunction writeInt32LE (buffer, value, offset) {\n return toBuffer(buffer).writeInt32LE(value, offset)\n}\n\nfunction readDoubleLE (buffer, offset) {\n return toBuffer(buffer).readDoubleLE(offset)\n}\n\nfunction readFloatLE (buffer, offset) {\n return toBuffer(buffer).readFloatLE(offset)\n}\n\nfunction readUInt32LE (buffer, offset) {\n return toBuffer(buffer).readUInt32LE(offset)\n}\n\nfunction readInt32LE (buffer, offset) {\n return toBuffer(buffer).readInt32LE(offset)\n}\n\nmodule.exports = {\n isBuffer,\n isEncoding,\n alloc,\n allocUnsafe,\n allocUnsafeSlow,\n byteLength,\n compare,\n concat,\n copy,\n equals,\n fill,\n from,\n includes,\n indexOf,\n lastIndexOf,\n swap16,\n swap32,\n swap64,\n toBuffer,\n toString,\n write,\n writeDoubleLE,\n writeFloatLE,\n writeUInt32LE,\n writeInt32LE,\n readDoubleLE,\n readFloatLE,\n readUInt32LE,\n readInt32LE\n}\n", "var varint = require('varint')\nvar svarint = require('signed-varint')\nvar b4a = require('b4a')\n\nexports.make = encoder\n\nexports.name = function (enc) {\n var keys = Object.keys(exports)\n for (var i = 0; i < keys.length; i++) {\n if (exports[keys[i]] === enc) return keys[i]\n }\n return null\n}\n\nexports.skip = function (type, buffer, offset) {\n switch (type) {\n case 0:\n varint.decode(buffer, offset)\n return offset + varint.decode.bytes\n\n case 1:\n return offset + 8\n\n case 2:\n var len = varint.decode(buffer, offset)\n return offset + varint.decode.bytes + len\n\n case 3:\n case 4:\n throw new Error('Groups are not supported')\n\n case 5:\n return offset + 4\n }\n\n throw new Error('Unknown wire type: ' + type)\n}\n\nexports.bytes = encoder(2,\n function encode (val, buffer, offset) {\n var oldOffset = offset\n var len = bufferLength(val)\n\n varint.encode(len, buffer, offset)\n offset += varint.encode.bytes\n\n if (b4a.isBuffer(val)) b4a.copy(val, buffer, offset)\n else b4a.write(buffer, val, offset, len)\n offset += len\n\n encode.bytes = offset - oldOffset\n return buffer\n },\n function decode (buffer, offset) {\n var oldOffset = offset\n\n var len = varint.decode(buffer, offset)\n offset += varint.decode.bytes\n\n var val = buffer.subarray(offset, offset + len)\n offset += val.length\n\n decode.bytes = offset - oldOffset\n return val\n },\n function encodingLength (val) {\n var len = bufferLength(val)\n return varint.encodingLength(len) + len\n }\n)\n\nexports.string = encoder(2,\n function encode (val, buffer, offset) {\n var oldOffset = offset\n var len = b4a.byteLength(val)\n\n varint.encode(len, buffer, offset, 'utf-8')\n offset += varint.encode.bytes\n\n b4a.write(buffer, val, offset, len)\n offset += len\n\n encode.bytes = offset - oldOffset\n return buffer\n },\n function decode (buffer, offset) {\n var oldOffset = offset\n\n var len = varint.decode(buffer, offset)\n offset += varint.decode.bytes\n\n var val = b4a.toString(buffer, 'utf-8', offset, offset + len)\n offset += len\n\n decode.bytes = offset - oldOffset\n return val\n },\n function encodingLength (val) {\n var len = b4a.byteLength(val)\n return varint.encodingLength(len) + len\n }\n)\n\nexports.bool = encoder(0,\n function encode (val, buffer, offset) {\n buffer[offset] = val ? 1 : 0\n encode.bytes = 1\n return buffer\n },\n function decode (buffer, offset) {\n var bool = buffer[offset] > 0\n decode.bytes = 1\n return bool\n },\n function encodingLength () {\n return 1\n }\n)\n\nexports.int32 = encoder(0,\n function encode (val, buffer, offset) {\n varint.encode(val < 0 ? val + 4294967296 : val, buffer, offset)\n encode.bytes = varint.encode.bytes\n return buffer\n },\n function decode (buffer, offset) {\n var val = varint.decode(buffer, offset)\n decode.bytes = varint.decode.bytes\n return val > 2147483647 ? val - 4294967296 : val\n },\n function encodingLength (val) {\n return varint.encodingLength(val < 0 ? val + 4294967296 : val)\n }\n)\n\nexports.int64 = encoder(0,\n function encode (val, buffer, offset) {\n if (val < 0) {\n var last = offset + 9\n varint.encode(val * -1, buffer, offset)\n offset += varint.encode.bytes - 1\n buffer[offset] = buffer[offset] | 0x80\n while (offset < last - 1) {\n offset++\n buffer[offset] = 0xff\n }\n buffer[last] = 0x01\n encode.bytes = 10\n } else {\n varint.encode(val, buffer, offset)\n encode.bytes = varint.encode.bytes\n }\n return buffer\n },\n function decode (buffer, offset) {\n var val = varint.decode(buffer, offset)\n if (val >= Math.pow(2, 63)) {\n var limit = 9\n while (buffer[offset + limit - 1] === 0xff) limit--\n limit = limit || 9\n var subset = b4a.allocUnsafe(limit)\n b4a.copy(buffer, subset, 0, offset, offset + limit)\n subset[limit - 1] = subset[limit - 1] & 0x7f\n val = -1 * varint.decode(subset, 0)\n decode.bytes = 10\n } else {\n decode.bytes = varint.decode.bytes\n }\n return val\n },\n function encodingLength (val) {\n return val < 0 ? 10 : varint.encodingLength(val)\n }\n)\n\nexports.sint32 =\nexports.sint64 = encoder(0,\n svarint.encode,\n svarint.decode,\n svarint.encodingLength\n)\n\nexports.uint32 =\nexports.uint64 =\nexports.enum =\nexports.varint = encoder(0,\n varint.encode,\n varint.decode,\n varint.encodingLength\n)\n\n// we cannot represent these in javascript so we just use buffers\nexports.fixed64 =\nexports.sfixed64 = encoder(1,\n function encode (val, buffer, offset) {\n b4a.copy(val, buffer, offset)\n encode.bytes = 8\n return buffer\n },\n function decode (buffer, offset) {\n var val = buffer.subarray(offset, offset + 8)\n decode.bytes = 8\n return val\n },\n function encodingLength () {\n return 8\n }\n)\n\nexports.double = encoder(1,\n function encode (val, buffer, offset) {\n b4a.writeDoubleLE(buffer, val, offset)\n encode.bytes = 8\n return buffer\n },\n function decode (buffer, offset) {\n var val = b4a.readDoubleLE(buffer, offset)\n decode.bytes = 8\n return val\n },\n function encodingLength () {\n return 8\n }\n)\n\nexports.fixed32 = encoder(5,\n function encode (val, buffer, offset) {\n b4a.writeUInt32LE(buffer, val, offset)\n encode.bytes = 4\n return buffer\n },\n function decode (buffer, offset) {\n var val = b4a.readUInt32LE(buffer, offset)\n decode.bytes = 4\n return val\n },\n function encodingLength () {\n return 4\n }\n)\n\nexports.sfixed32 = encoder(5,\n function encode (val, buffer, offset) {\n b4a.writeInt32LE(buffer, val, offset)\n encode.bytes = 4\n return buffer\n },\n function decode (buffer, offset) {\n var val = b4a.readInt32LE(buffer, offset)\n decode.bytes = 4\n return val\n },\n function encodingLength () {\n return 4\n }\n)\n\nexports.float = encoder(5,\n function encode (val, buffer, offset) {\n b4a.writeFloatLE(buffer, val, offset)\n encode.bytes = 4\n return buffer\n },\n function decode (buffer, offset) {\n var val = b4a.readFloatLE(buffer, offset)\n decode.bytes = 4\n return val\n },\n function encodingLength () {\n return 4\n }\n)\n\nfunction encoder (type, encode, decode, encodingLength) {\n encode.bytes = decode.bytes = 0\n\n return {\n type: type,\n encode: encode,\n decode: decode,\n encodingLength: encodingLength\n }\n}\n\nfunction bufferLength (val) {\n return b4a.isBuffer(val) ? val.length : b4a.byteLength(val)\n}\n", "// This file is auto generated by the protocol-buffers compiler\n\n/* eslint-disable quotes */\n/* eslint-disable indent */\n/* eslint-disable no-redeclare */\n/* eslint-disable camelcase */\n\n// Remember to `npm install --save protocol-buffers-encodings`\nvar encodings = require('protocol-buffers-encodings')\nvar varint = encodings.varint\nvar skip = encodings.skip\n\nvar NoisePayload = exports.NoisePayload = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Open = exports.Open = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Options = exports.Options = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Status = exports.Status = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Have = exports.Have = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Unhave = exports.Unhave = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Want = exports.Want = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Unwant = exports.Unwant = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Request = exports.Request = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Cancel = exports.Cancel = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Data = exports.Data = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\nvar Close = exports.Close = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n}\n\ndefineNoisePayload()\ndefineOpen()\ndefineOptions()\ndefineStatus()\ndefineHave()\ndefineUnhave()\ndefineWant()\ndefineUnwant()\ndefineRequest()\ndefineCancel()\ndefineData()\ndefineClose()\n\nfunction defineNoisePayload () {\n var enc = [\n encodings.bytes\n ]\n\n NoisePayload.encodingLength = encodingLength\n NoisePayload.encode = encode\n NoisePayload.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.nonce)) throw new Error(\"nonce is required\")\n var len = enc[0].encodingLength(obj.nonce)\n length += 1 + len\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.nonce)) throw new Error(\"nonce is required\")\n buf[offset++] = 10\n enc[0].encode(obj.nonce, buf, offset)\n offset += enc[0].encode.bytes\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n nonce: null\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.nonce = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineOpen () {\n var enc = [\n encodings.bytes\n ]\n\n Open.encodingLength = encodingLength\n Open.encode = encode\n Open.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.discoveryKey)) throw new Error(\"discoveryKey is required\")\n var len = enc[0].encodingLength(obj.discoveryKey)\n length += 1 + len\n if (defined(obj.capability)) {\n var len = enc[0].encodingLength(obj.capability)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.discoveryKey)) throw new Error(\"discoveryKey is required\")\n buf[offset++] = 10\n enc[0].encode(obj.discoveryKey, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.capability)) {\n buf[offset++] = 18\n enc[0].encode(obj.capability, buf, offset)\n offset += enc[0].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n discoveryKey: null,\n capability: null\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.discoveryKey = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.capability = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineOptions () {\n var enc = [\n encodings.string,\n encodings.bool\n ]\n\n Options.encodingLength = encodingLength\n Options.encode = encode\n Options.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (defined(obj.extensions)) {\n for (var i = 0; i < obj.extensions.length; i++) {\n if (!defined(obj.extensions[i])) continue\n var len = enc[0].encodingLength(obj.extensions[i])\n length += 1 + len\n }\n }\n if (defined(obj.ack)) {\n var len = enc[1].encodingLength(obj.ack)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (defined(obj.extensions)) {\n for (var i = 0; i < obj.extensions.length; i++) {\n if (!defined(obj.extensions[i])) continue\n buf[offset++] = 10\n enc[0].encode(obj.extensions[i], buf, offset)\n offset += enc[0].encode.bytes\n }\n }\n if (defined(obj.ack)) {\n buf[offset++] = 16\n enc[1].encode(obj.ack, buf, offset)\n offset += enc[1].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n extensions: [],\n ack: false\n }\n while (true) {\n if (end <= offset) {\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.extensions.push(enc[0].decode(buf, offset))\n offset += enc[0].decode.bytes\n break\n case 2:\n obj.ack = enc[1].decode(buf, offset)\n offset += enc[1].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineStatus () {\n var enc = [\n encodings.bool\n ]\n\n Status.encodingLength = encodingLength\n Status.encode = encode\n Status.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (defined(obj.uploading)) {\n var len = enc[0].encodingLength(obj.uploading)\n length += 1 + len\n }\n if (defined(obj.downloading)) {\n var len = enc[0].encodingLength(obj.downloading)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (defined(obj.uploading)) {\n buf[offset++] = 8\n enc[0].encode(obj.uploading, buf, offset)\n offset += enc[0].encode.bytes\n }\n if (defined(obj.downloading)) {\n buf[offset++] = 16\n enc[0].encode(obj.downloading, buf, offset)\n offset += enc[0].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n uploading: false,\n downloading: false\n }\n while (true) {\n if (end <= offset) {\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.uploading = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n case 2:\n obj.downloading = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineHave () {\n var enc = [\n encodings.varint,\n encodings.bytes,\n encodings.bool\n ]\n\n Have.encodingLength = encodingLength\n Have.encode = encode\n Have.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.start)) throw new Error(\"start is required\")\n var len = enc[0].encodingLength(obj.start)\n length += 1 + len\n if (defined(obj.length)) {\n var len = enc[0].encodingLength(obj.length)\n length += 1 + len\n }\n if (defined(obj.bitfield)) {\n var len = enc[1].encodingLength(obj.bitfield)\n length += 1 + len\n }\n if (defined(obj.ack)) {\n var len = enc[2].encodingLength(obj.ack)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.start)) throw new Error(\"start is required\")\n buf[offset++] = 8\n enc[0].encode(obj.start, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.length)) {\n buf[offset++] = 16\n enc[0].encode(obj.length, buf, offset)\n offset += enc[0].encode.bytes\n }\n if (defined(obj.bitfield)) {\n buf[offset++] = 26\n enc[1].encode(obj.bitfield, buf, offset)\n offset += enc[1].encode.bytes\n }\n if (defined(obj.ack)) {\n buf[offset++] = 32\n enc[2].encode(obj.ack, buf, offset)\n offset += enc[2].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n start: 0,\n length: 1,\n bitfield: null,\n ack: false\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.start = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.length = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n case 3:\n obj.bitfield = enc[1].decode(buf, offset)\n offset += enc[1].decode.bytes\n break\n case 4:\n obj.ack = enc[2].decode(buf, offset)\n offset += enc[2].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineUnhave () {\n var enc = [\n encodings.varint\n ]\n\n Unhave.encodingLength = encodingLength\n Unhave.encode = encode\n Unhave.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.start)) throw new Error(\"start is required\")\n var len = enc[0].encodingLength(obj.start)\n length += 1 + len\n if (defined(obj.length)) {\n var len = enc[0].encodingLength(obj.length)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.start)) throw new Error(\"start is required\")\n buf[offset++] = 8\n enc[0].encode(obj.start, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.length)) {\n buf[offset++] = 16\n enc[0].encode(obj.length, buf, offset)\n offset += enc[0].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n start: 0,\n length: 1\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.start = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.length = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineWant () {\n var enc = [\n encodings.varint\n ]\n\n Want.encodingLength = encodingLength\n Want.encode = encode\n Want.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.start)) throw new Error(\"start is required\")\n var len = enc[0].encodingLength(obj.start)\n length += 1 + len\n if (defined(obj.length)) {\n var len = enc[0].encodingLength(obj.length)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.start)) throw new Error(\"start is required\")\n buf[offset++] = 8\n enc[0].encode(obj.start, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.length)) {\n buf[offset++] = 16\n enc[0].encode(obj.length, buf, offset)\n offset += enc[0].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n start: 0,\n length: 0\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.start = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.length = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineUnwant () {\n var enc = [\n encodings.varint\n ]\n\n Unwant.encodingLength = encodingLength\n Unwant.encode = encode\n Unwant.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.start)) throw new Error(\"start is required\")\n var len = enc[0].encodingLength(obj.start)\n length += 1 + len\n if (defined(obj.length)) {\n var len = enc[0].encodingLength(obj.length)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.start)) throw new Error(\"start is required\")\n buf[offset++] = 8\n enc[0].encode(obj.start, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.length)) {\n buf[offset++] = 16\n enc[0].encode(obj.length, buf, offset)\n offset += enc[0].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n start: 0,\n length: 0\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.start = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.length = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineRequest () {\n var enc = [\n encodings.varint,\n encodings.bool\n ]\n\n Request.encodingLength = encodingLength\n Request.encode = encode\n Request.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.index)) throw new Error(\"index is required\")\n var len = enc[0].encodingLength(obj.index)\n length += 1 + len\n if (defined(obj.bytes)) {\n var len = enc[0].encodingLength(obj.bytes)\n length += 1 + len\n }\n if (defined(obj.hash)) {\n var len = enc[1].encodingLength(obj.hash)\n length += 1 + len\n }\n if (defined(obj.nodes)) {\n var len = enc[0].encodingLength(obj.nodes)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.index)) throw new Error(\"index is required\")\n buf[offset++] = 8\n enc[0].encode(obj.index, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.bytes)) {\n buf[offset++] = 16\n enc[0].encode(obj.bytes, buf, offset)\n offset += enc[0].encode.bytes\n }\n if (defined(obj.hash)) {\n buf[offset++] = 24\n enc[1].encode(obj.hash, buf, offset)\n offset += enc[1].encode.bytes\n }\n if (defined(obj.nodes)) {\n buf[offset++] = 32\n enc[0].encode(obj.nodes, buf, offset)\n offset += enc[0].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n index: 0,\n bytes: 0,\n hash: false,\n nodes: 0\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.index = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.bytes = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n case 3:\n obj.hash = enc[1].decode(buf, offset)\n offset += enc[1].decode.bytes\n break\n case 4:\n obj.nodes = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineCancel () {\n var enc = [\n encodings.varint,\n encodings.bool\n ]\n\n Cancel.encodingLength = encodingLength\n Cancel.encode = encode\n Cancel.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.index)) throw new Error(\"index is required\")\n var len = enc[0].encodingLength(obj.index)\n length += 1 + len\n if (defined(obj.bytes)) {\n var len = enc[0].encodingLength(obj.bytes)\n length += 1 + len\n }\n if (defined(obj.hash)) {\n var len = enc[1].encodingLength(obj.hash)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.index)) throw new Error(\"index is required\")\n buf[offset++] = 8\n enc[0].encode(obj.index, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.bytes)) {\n buf[offset++] = 16\n enc[0].encode(obj.bytes, buf, offset)\n offset += enc[0].encode.bytes\n }\n if (defined(obj.hash)) {\n buf[offset++] = 24\n enc[1].encode(obj.hash, buf, offset)\n offset += enc[1].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n index: 0,\n bytes: 0,\n hash: false\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.index = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.bytes = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n case 3:\n obj.hash = enc[1].decode(buf, offset)\n offset += enc[1].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineData () {\n var Node = Data.Node = {\n buffer: true,\n encodingLength: null,\n encode: null,\n decode: null\n }\n\n defineNode()\n\n function defineNode () {\n var enc = [\n encodings.varint,\n encodings.bytes\n ]\n\n Node.encodingLength = encodingLength\n Node.encode = encode\n Node.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.index)) throw new Error(\"index is required\")\n var len = enc[0].encodingLength(obj.index)\n length += 1 + len\n if (!defined(obj.hash)) throw new Error(\"hash is required\")\n var len = enc[1].encodingLength(obj.hash)\n length += 1 + len\n if (!defined(obj.size)) throw new Error(\"size is required\")\n var len = enc[0].encodingLength(obj.size)\n length += 1 + len\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.index)) throw new Error(\"index is required\")\n buf[offset++] = 8\n enc[0].encode(obj.index, buf, offset)\n offset += enc[0].encode.bytes\n if (!defined(obj.hash)) throw new Error(\"hash is required\")\n buf[offset++] = 18\n enc[1].encode(obj.hash, buf, offset)\n offset += enc[1].encode.bytes\n if (!defined(obj.size)) throw new Error(\"size is required\")\n buf[offset++] = 24\n enc[0].encode(obj.size, buf, offset)\n offset += enc[0].encode.bytes\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n index: 0,\n hash: null,\n size: 0\n }\n var found0 = false\n var found1 = false\n var found2 = false\n while (true) {\n if (end <= offset) {\n if (!found0 || !found1 || !found2) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.index = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.hash = enc[1].decode(buf, offset)\n offset += enc[1].decode.bytes\n found1 = true\n break\n case 3:\n obj.size = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found2 = true\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n }\n\n var enc = [\n encodings.varint,\n encodings.bytes,\n Node\n ]\n\n Data.encodingLength = encodingLength\n Data.encode = encode\n Data.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (!defined(obj.index)) throw new Error(\"index is required\")\n var len = enc[0].encodingLength(obj.index)\n length += 1 + len\n if (defined(obj.value)) {\n var len = enc[1].encodingLength(obj.value)\n length += 1 + len\n }\n if (defined(obj.nodes)) {\n for (var i = 0; i < obj.nodes.length; i++) {\n if (!defined(obj.nodes[i])) continue\n var len = enc[2].encodingLength(obj.nodes[i])\n length += varint.encodingLength(len)\n length += 1 + len\n }\n }\n if (defined(obj.signature)) {\n var len = enc[1].encodingLength(obj.signature)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (!defined(obj.index)) throw new Error(\"index is required\")\n buf[offset++] = 8\n enc[0].encode(obj.index, buf, offset)\n offset += enc[0].encode.bytes\n if (defined(obj.value)) {\n buf[offset++] = 18\n enc[1].encode(obj.value, buf, offset)\n offset += enc[1].encode.bytes\n }\n if (defined(obj.nodes)) {\n for (var i = 0; i < obj.nodes.length; i++) {\n if (!defined(obj.nodes[i])) continue\n buf[offset++] = 26\n varint.encode(enc[2].encodingLength(obj.nodes[i]), buf, offset)\n offset += varint.encode.bytes\n enc[2].encode(obj.nodes[i], buf, offset)\n offset += enc[2].encode.bytes\n }\n }\n if (defined(obj.signature)) {\n buf[offset++] = 34\n enc[1].encode(obj.signature, buf, offset)\n offset += enc[1].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n index: 0,\n value: null,\n nodes: [],\n signature: null\n }\n var found0 = false\n while (true) {\n if (end <= offset) {\n if (!found0) throw new Error(\"Decoded message is not valid\")\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.index = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n found0 = true\n break\n case 2:\n obj.value = enc[1].decode(buf, offset)\n offset += enc[1].decode.bytes\n break\n case 3:\n var len = varint.decode(buf, offset)\n offset += varint.decode.bytes\n obj.nodes.push(enc[2].decode(buf, offset, offset + len))\n offset += enc[2].decode.bytes\n break\n case 4:\n obj.signature = enc[1].decode(buf, offset)\n offset += enc[1].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defineClose () {\n var enc = [\n encodings.bytes\n ]\n\n Close.encodingLength = encodingLength\n Close.encode = encode\n Close.decode = decode\n\n function encodingLength (obj) {\n var length = 0\n if (defined(obj.discoveryKey)) {\n var len = enc[0].encodingLength(obj.discoveryKey)\n length += 1 + len\n }\n return length\n }\n\n function encode (obj, buf, offset) {\n if (!offset) offset = 0\n if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))\n var oldOffset = offset\n if (defined(obj.discoveryKey)) {\n buf[offset++] = 10\n enc[0].encode(obj.discoveryKey, buf, offset)\n offset += enc[0].encode.bytes\n }\n encode.bytes = offset - oldOffset\n return buf\n }\n\n function decode (buf, offset, end) {\n if (!offset) offset = 0\n if (!end) end = buf.length\n if (!(end <= buf.length && offset <= buf.length)) throw new Error(\"Decoded message is not valid\")\n var oldOffset = offset\n var obj = {\n discoveryKey: null\n }\n while (true) {\n if (end <= offset) {\n decode.bytes = offset - oldOffset\n return obj\n }\n var prefix = varint.decode(buf, offset)\n offset += varint.decode.bytes\n var tag = prefix >> 3\n switch (tag) {\n case 1:\n obj.discoveryKey = enc[0].decode(buf, offset)\n offset += enc[0].decode.bytes\n break\n default:\n offset = skip(prefix & 7, buf, offset)\n }\n }\n }\n}\n\nfunction defined (val) {\n return val !== null && val !== undefined && (typeof val !== 'number' || !isNaN(val))\n}\n", "const sodium = require('sodium-native')\n\nmodule.exports = class XORNative {\n constructor (nonce, key) {\n this.handle = Buffer.alloc(sodium.crypto_stream_xor_STATEBYTES)\n this.nonce = nonce\n this.key = key\n sodium.crypto_stream_xor_init(this.handle, this.nonce, this.key)\n }\n\n update (out, message) {\n sodium.crypto_stream_xor_update(this.handle, out, message)\n }\n\n final () {\n sodium.crypto_stream_xor_final(this.handle)\n }\n}\n", "const XSalsa20 = require('xsalsa20-universal')\nconst crypto = require('hypercore-crypto')\n\nmodule.exports = class XOR {\n constructor (nonces, split) {\n this.rnonce = nonces.rnonce\n this.tnonce = nonces.tnonce\n this.rx = new XSalsa20(this.rnonce, split.rx.slice(0, 32))\n this.tx = new XSalsa20(this.tnonce, split.tx.slice(0, 32))\n }\n\n encrypt (data) {\n this.tx.update(data, data)\n return data\n }\n\n decrypt (data) {\n this.rx.update(data, data)\n return data\n }\n\n destroy () {\n this.tx.final()\n this.rx.final()\n }\n\n static nonce () {\n return crypto.randomBytes(24)\n }\n}\n", "const varint = require('varint')\n\nmodule.exports = class SimpleMessageChannels {\n constructor ({ maxSize = 8 * 1024 * 1024, context = null, onmessage = null, onmissing = null, types = null } = {}) {\n this._message = null\n this._ptr = 0\n this._varint = 0\n this._factor = 1\n this._length = 0\n this._header = 0\n this._state = 0\n this._consumed = 0\n this._maxSize = maxSize\n this._types = types || []\n\n this.receiving = false\n this.destroyed = false\n this.error = null\n this.context = context\n this.onmessage = onmessage\n this.onmissing = onmissing\n }\n\n destroy (err) {\n if (err) this.error = err\n this.destroyed = true\n }\n\n recv (data) {\n if (this.receiving === true) throw new Error('Cannot recursively receive data')\n this.receiving = true\n\n let offset = 0\n while (offset < data.length) {\n if (this._state === 2) offset = this._readMessage(data, offset)\n else offset = this._readVarint(data, offset)\n }\n if (this._state === 2 && this._length === 0) {\n this._readMessage(data, offset)\n }\n\n this.receiving = false\n return !this.destroyed\n }\n\n _readMessage (data, offset) {\n const free = data.length - offset\n if (free >= this._length) {\n if (this._message) {\n data.copy(this._message, this._message.length - this._length, offset)\n } else {\n this._message = data.slice(offset, offset + this._length)\n }\n return this._nextState(data, offset += this._length) ? offset : data.length\n }\n\n if (!this._message) this._message = Buffer.allocUnsafe(this._length)\n data.copy(this._message, this._message.length - this._length, offset)\n this._length -= free\n\n return data.length\n }\n\n _readVarint (data, offset) {\n for (; offset < data.length; offset++) {\n this._varint += (data[offset] & 127) * this._factor\n this._consumed++\n if (data[offset] < 128) return this._nextState(data, ++offset) ? offset : data.length\n this._factor *= 128\n }\n if (this._consumed >= 8) this.destroy(new Error('Incoming varint is invalid')) // 8 * 7bits is 56 ie max for js\n return data.length\n }\n\n _nextState (data, offset) {\n switch (this._state) {\n case 0:\n this._state = 1\n this._factor = 1\n this._length = this._varint\n this._consumed = this._varint = 0\n if (this._length === 0) this._state = 0\n return true\n\n case 1:\n this._state = 2\n this._factor = 1\n this._header = this._varint\n this._length -= this._consumed\n this._consumed = this._varint = 0\n if (this._length < 0 || this._length > this._maxSize) {\n this.destroy(new Error('Incoming message is larger than max size'))\n return false\n }\n if (this.onmissing) {\n const extra = data.length - offset\n if (this._length > extra) this.onmissing(this._length - extra, this.context)\n }\n return true\n\n case 2:\n this._state = 0\n this._onmessage(this._header >> 4, this._header & 0b1111, this._message, data, offset)\n this._message = null\n return !this.destroyed\n\n default:\n return false\n }\n }\n\n _onmessage (channel, type, message, data, offset) {\n if (type >= this._types.length) {\n if (this.onmessage === null) return\n return this.onmessage(channel, type, message, this.context, data, offset)\n }\n\n let m = null\n const { onmessage, encoding, context } = this._types[type]\n\n try {\n m = encoding.decode(message)\n } catch (err) {\n this.destroy(err)\n return\n }\n\n onmessage(channel, m, context, data, offset)\n }\n\n send (channel, type, message) {\n const header = channel << 4 | type\n const length = this._encodingLength(type, message) + varint.encodingLength(header)\n const payload = Buffer.allocUnsafe(varint.encodingLength(length) + length)\n\n varint.encode(length, payload, 0)\n const offset = varint.encode.bytes\n varint.encode(header, payload, offset)\n this._encode(type, message, payload, offset + varint.encode.bytes)\n\n return payload\n }\n\n sendBatch (messages) {\n let length = 0\n let offset = 0\n\n for (const { type, message } of messages) {\n // 16 is >= the max size of the varints\n length += 16 + this._encodingLength(type, message)\n }\n\n const payload = Buffer.allocUnsafe(length)\n\n for (const { channel, type, message } of messages) {\n const header = channel << 4 | type\n const length = this._encodingLength(type, message) + varint.encodingLength(header)\n varint.encode(length, payload, offset)\n offset += varint.encode.bytes\n varint.encode(header, payload, offset)\n offset += varint.encode.bytes\n offset += this._encode(type, message, payload, offset)\n }\n\n return payload.slice(0, offset)\n }\n\n _encodingLength (type, message) {\n if (type >= this._types.length) return message.length\n return this._types[type].encoding.encodingLength(message)\n }\n\n _encode (type, message, buf, offset) {\n if (type >= this._types.length) {\n message.copy(buf, offset)\n return message.length\n }\n\n const enc = this._types[type].encoding\n enc.encode(message, buf, offset)\n return enc.encode.bytes\n }\n}\n", "const Handshake = require('./lib/handshake')\nconst messages = require('./messages')\nconst XOR = require('./lib/xor')\nconst SMC = require('simple-message-channels')\nconst crypto = require('hypercore-crypto')\nconst varint = require('varint')\n\nmodule.exports = class SimpleProtocol {\n constructor (initiator, handlers) {\n const payload = { nonce: XOR.nonce() }\n\n this.handlers = handlers || {}\n this.remotePayload = null\n this.remotePublicKey = null\n this.publicKey = null\n this.handshakeHash = null\n this.destroyed = false\n\n this._initiator = initiator\n this._payload = payload\n this._pending = []\n this._handshake = null\n this._split = null\n this._encryption = null\n this._noise = !(handlers.encrypted === false && handlers.noise === false)\n this._buffering = null\n this._handshaking = false\n\n this._messages = new SMC({\n onmessage,\n onmissing,\n context: this,\n types: [\n { context: this, onmessage: onopen, encoding: messages.Open },\n { context: this, onmessage: onoptions, encoding: messages.Options },\n { context: this, onmessage: onstatus, encoding: messages.Status },\n { context: this, onmessage: onhave, encoding: messages.Have },\n { context: this, onmessage: onunhave, encoding: messages.Unhave },\n { context: this, onmessage: onwant, encoding: messages.Want },\n { context: this, onmessage: onunwant, encoding: messages.Unwant },\n { context: this, onmessage: onrequest, encoding: messages.Request },\n { context: this, onmessage: oncancel, encoding: messages.Cancel },\n { context: this, onmessage: ondata, encoding: messages.Data },\n { context: this, onmessage: onclose, encoding: messages.Close }\n ]\n })\n\n if (handlers.encrypted !== false || handlers.noise !== false) {\n this._handshaking = true\n if (typeof this.handlers.keyPair !== 'function') {\n this._onkeypair(null, this.handlers.keyPair || null)\n } else {\n this._buffering = []\n this.handlers.keyPair(this._onkeypair.bind(this))\n }\n }\n }\n\n _onkeypair (err, keyPair) {\n if (err) return this.destroy(err)\n if (this._handshake !== null) return\n\n this.handlers.keyPair = keyPair\n const handshake = new Handshake(this._initiator, messages.NoisePayload.encode(this._payload), this.handlers, this._onhandshake.bind(this))\n\n this.publicKey = handshake.keyPair.publicKey\n this._handshake = handshake\n\n if (this._buffering) {\n while (this._buffering.length) this._recv(this._buffering.shift())\n }\n\n this._buffering = null\n }\n\n open (ch, message) {\n return this._send(ch, 0, message)\n }\n\n options (ch, message) {\n return this._send(ch, 1, message)\n }\n\n status (ch, message) {\n return this._send(ch, 2, message)\n }\n\n have (ch, message) {\n return this._send(ch, 3, message)\n }\n\n unhave (ch, message) {\n return this._send(ch, 4, message)\n }\n\n want (ch, message) {\n return this._send(ch, 5, message)\n }\n\n unwant (ch, message) {\n return this._send(ch, 6, message)\n }\n\n request (ch, message) {\n return this._send(ch, 7, message)\n }\n\n cancel (ch, message) {\n return this._send(ch, 8, message)\n }\n\n data (ch, message) {\n return this._send(ch, 9, message)\n }\n\n close (ch, message) {\n return this._send(ch, 10, message || {})\n }\n\n extension (ch, id, message) {\n const buf = Buffer.allocUnsafe(varint.encodingLength(id) + message.length)\n\n varint.encode(id, buf, 0)\n message.copy(buf, varint.encode.bytes)\n\n return this._send(ch, 15, buf)\n }\n\n ping () {\n if (this._handshaking || this._pending.length) return\n\n let ping = Buffer.from([0])\n if (this._encryption !== null) {\n ping = this._encryption.encrypt(ping)\n }\n\n return this.handlers.send(ping)\n }\n\n _onhandshake (err, remotePayload, split, overflow, remotePublicKey, handshakeHash) {\n if (err) return this.destroy(new Error('Noise handshake error')) // workaround for https://github.com/emilbayes/noise-protocol/issues/5\n if (!remotePayload) return this.destroy(new Error('Remote did not include a handshake payload'))\n\n this.remotePublicKey = remotePublicKey\n this.handshakeHash = handshakeHash\n\n try {\n remotePayload = messages.NoisePayload.decode(remotePayload)\n } catch (_) {\n return this.destroy(new Error('Could not parse remote payload'))\n }\n\n this._handshake = null\n this._handshaking = false\n this._split = split\n this._encryption = this.handlers.encrypted === false\n ? null\n : new XOR({ rnonce: remotePayload.nonce, tnonce: this._payload.nonce }, split)\n\n this.remotePayload = remotePayload\n\n if (this.handlers.onhandshake) this.handlers.onhandshake()\n if (this.destroyed) return\n\n if (overflow) this.recv(overflow)\n while (this._pending.length && !this.destroyed) {\n this._sendNow(...this._pending.shift())\n }\n }\n\n _send (channel, type, message) {\n if (this._handshaking || this._pending.length) {\n this._pending.push([channel, type, message])\n return false\n }\n\n return this._sendNow(channel, type, message)\n }\n\n _sendNow (channel, type, message) {\n if (type === 0 && message.key && !message.capability) {\n message.capability = this.capability(message.key)\n message.key = null\n }\n\n let data = this._messages.send(channel, type, message)\n\n if (this._encryption !== null) {\n data = this._encryption.encrypt(data)\n }\n\n return this.handlers.send(data)\n }\n\n capability (key) {\n return crypto.capability(key, this._split)\n }\n\n remoteCapability (key) {\n return crypto.remoteCapability(key, this._split)\n }\n\n recv (data) {\n if (this._buffering !== null) this._buffering.push(data)\n else this._recv(data)\n }\n\n _recv (data) {\n if (this.destroyed) return\n\n if (this._handshaking) {\n this._handshake.recv(data)\n return\n }\n\n if (this._encryption !== null) {\n data = this._encryption.decrypt(data)\n }\n\n if (!this._messages.recv(data)) {\n this.destroy(this._messages.error)\n }\n }\n\n destroy (err) {\n if (this.destroyed) return\n this.destroyed = true\n if (this._handshake) this._handshake.destroy()\n if (this._encryption) this._encryption.destroy()\n if (this.handlers.destroy) this.handlers.destroy(err)\n }\n\n static keyPair (seed) {\n return Handshake.keyPair(seed)\n }\n}\n\nfunction onopen (ch, message, self) {\n if (self.handlers.onopen) self.handlers.onopen(ch, message)\n}\n\nfunction onoptions (ch, message, self) {\n if (self.handlers.onoptions) self.handlers.onoptions(ch, message)\n}\n\nfunction onstatus (ch, message, self) {\n if (self.handlers.onstatus) self.handlers.onstatus(ch, message)\n}\n\nfunction onhave (ch, message, self) {\n if (self.handlers.onhave) self.handlers.onhave(ch, message)\n}\n\nfunction onunhave (ch, message, self) {\n if (self.handlers.onunhave) self.handlers.onunhave(ch, message)\n}\n\nfunction onwant (ch, message, self) {\n if (self.handlers.onwant) self.handlers.onwant(ch, message)\n}\n\nfunction onunwant (ch, message, self) {\n if (self.handlers.onunwant) self.handlers.onunwant(ch, message)\n}\n\nfunction onrequest (ch, message, self) {\n if (self.handlers.onrequest) self.handlers.onrequest(ch, message)\n}\n\nfunction oncancel (ch, message, self) {\n if (self.handlers.oncancel) self.handlers.oncancel(ch, message)\n}\n\nfunction ondata (ch, message, self) {\n if (self.handlers.ondata) self.handlers.ondata(ch, message)\n}\n\nfunction onclose (ch, message, self) {\n if (self.handlers.onclose) self.handlers.onclose(ch, message)\n}\n\nfunction onmessage (ch, type, message, self) {\n if (type !== 15) return\n const id = varint.decode(message)\n const m = message.slice(varint.decode.bytes)\n if (self.handlers.onextension) self.handlers.onextension(ch, id, m)\n}\n\nfunction onmissing (bytes, self) {\n if (self.handlers.onmissing) self.handlers.onmissing(bytes)\n}\n", "module.exports = Timer\n\nfunction Timer (ms, fn, ctx) {\n if (!(this instanceof Timer)) return new Timer(ms, fn, ctx)\n this.ms = ms\n this.ontimeout = fn\n this.context = ctx || null\n this.called = false\n this._timeout = setTimeout(call, ms, this)\n this._timeout.unref()\n}\n\nTimer.prototype.refresh = function () {\n if (this.called || this.ontimeout === null) return\n this._timeout.refresh()\n}\n\nTimer.prototype.destroy = function () {\n this.ontimeout = null\n clearTimeout(this._timeout)\n}\n\nfunction call (self) {\n self.called = true\n self.ontimeout.call(self.context)\n}\n", "module.exports = Timeout\n\nfunction Timeout (ms, fn, ctx) {\n if (!(this instanceof Timeout)) return new Timeout(ms, fn, ctx)\n this.ms = ms\n this.ontimeout = fn\n this.context = ctx || null\n this.called = false\n this._timeout = setTimeout(call, ms, this)\n}\n\nTimeout.prototype.refresh = function () {\n if (this.called || this.ontimeout === null) return\n clearTimeout(this._timeout)\n this._timeout = setTimeout(call, this.ms, this)\n}\n\nTimeout.prototype.destroy = function () {\n this.ontimeout = null\n clearTimeout(this._timeout)\n}\n\nfunction call (self) {\n self.called = true\n self.ontimeout.call(self.context)\n}\n", "var timers = require('timers')\n\nvar enroll = timers.enroll || noop\nvar active = timers._unrefActive || timers.active || noop\nvar unenroll = timers.unenroll || noop\n\nmodule.exports = Timeout\n\nfunction Timeout (ms, fn, ctx) {\n if (!(this instanceof Timeout)) return new Timeout(ms, fn, ctx)\n this.ms = ms\n this.ontimeout = fn\n this.context = ctx || null\n this.called = false\n enroll(this, ms)\n active(this)\n}\n\nTimeout.prototype._onTimeout = function () {\n this.called = true\n this.ontimeout.call(this.context)\n}\n\nTimeout.prototype.refresh = function () {\n if (this.called || this.ontimeout === null) return\n active(this)\n}\n\nTimeout.prototype.destroy = function () {\n this.ontimeout = null\n unenroll(this)\n}\n\nfunction noop () {}\n", "const to = setTimeout(function () {}, 1000)\nclearTimeout(to)\n\nmodule.exports = to.refresh\n ? require('./refresh')\n : process.versions.electron ? require('./browser') : require('./timers')\n", "const codecs = require('codecs')\n\nclass AbstractExtension {\n constructor (local, name, handlers = {}) {\n this.id = 0\n this.name = name\n this.encoding = codecs(handlers.encoding || 'binary')\n this.handlers = handlers\n this.local = local\n }\n\n encode (message) {\n return this.encoding.encode(message)\n }\n\n remoteSupports () {\n return !!(this.local && this.local.map && this.local.map[this.id] === this)\n }\n\n onmessage (buf, context) {\n if (!this.handlers.onmessage) return\n\n let message\n try {\n message = this.encoding.decode(buf)\n } catch (err) {\n if (this.handlers.onerror) this.handlers.onerror(err, context)\n return\n }\n\n this.handlers.onmessage(message, context)\n }\n\n get destroyed () {\n return this.local === null\n }\n\n destroy () {\n if (this.local === null) return\n this.local._remove(this)\n this.local = null\n }\n\n static createLocal (handlers = null) {\n return new Local(handlers, this)\n }\n}\n\nclass Remote {\n constructor (local) {\n this.local = local\n this.names = null\n this.map = null\n this.changes = 0\n }\n\n update (names) {\n this.names = names\n this.changes = 0\n }\n\n onmessage (id, message, context = null) {\n if (this.changes !== this.local.changes) {\n this.map = this.names ? match(this.local.messages, this.names) : null\n this.changes = this.local.changes\n }\n const m = this.map && this.map[id]\n if (m) m.onmessage(message, context)\n }\n}\n\nclass Local {\n constructor (handlers = null, M) {\n this.messages = []\n this.handlers = handlers\n this.Extension = M\n this.changes = 1\n this.exclusive = true\n }\n\n get length () {\n return this.messages.length\n }\n\n [Symbol.iterator] () {\n return this.messages[Symbol.iterator]()\n }\n\n get (name) {\n // technically we can bisect here, but yolo\n for (const m of this.messages) {\n if (m.name === name) return m\n }\n return null\n }\n\n add (name, handlers) {\n let m\n\n if (typeof handlers !== 'function') {\n m = new this.Extension(this, name, handlers)\n } else {\n m = new this.Extension(this, name, {})\n m.handlers = handlers(m) || {}\n m.encoding = codecs(m.handlers.encoding || 'binary')\n }\n\n this.changes++\n this.messages.push(m)\n this.messages.sort(sortMessages)\n for (let i = 0; i < this.messages.length; i++) {\n this.messages[i].id = i\n }\n\n if (this.exclusive) {\n if ((m.id > 0 && this.messages[m.id - 1].name === m.name) || (m.id < this.messages.length - 1 && this.messages[m.id + 1].name === m.name)) {\n this._remove(m)\n throw new Error('Cannot add multiple messages with the same name')\n }\n }\n\n if (this.handlers && this.handlers.onextensionupdate) this.handlers.onextensionupdate()\n\n return m\n }\n\n remote () {\n return new Remote(this)\n }\n\n _remove (m) {\n this.changes++\n this.messages.splice(m.id, 1)\n m.id = -1\n if (this.handlers && this.handlers.onextensionupdate) this.handlers.onextensionupdate()\n }\n\n names () {\n const names = new Array(this.messages.length)\n for (let i = 0; i < names.length; i++) {\n names[i] = this.messages[i].name\n }\n return names\n }\n}\n\nfunction sortMessages (a, b) {\n return a.name < b.name ? -1 : a.name > b.name ? 1 : 0\n}\n\nfunction match (local, remote) {\n let i = 0\n let j = 0\n\n const map = new Array(remote.length)\n\n while (i < local.length && j < remote.length) {\n const l = local[i].name\n const r = remote[j]\n\n if (l < r) i++\n else if (l > r) j++\n else map[j++] = local[i]\n }\n\n return map\n}\n\nmodule.exports = AbstractExtension\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n", "'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet flagForceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tflagForceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tflagForceColor = 1;\n}\n\nfunction envForceColor() {\n\tif ('FORCE_COLOR' in env) {\n\t\tif (env.FORCE_COLOR === 'true') {\n\t\t\treturn 1;\n\t\t}\n\n\t\tif (env.FORCE_COLOR === 'false') {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m') ||\n\t\t\thasFlag('color=full') ||\n\t\t\thasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream, options = {}) {\n\tconst level = supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options\n\t});\n\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: getSupportLevel({isTTY: tty.isatty(1)}),\n\tstderr: getSupportLevel({isTTY: tty.isatty(2)})\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n", "const SHP = require('simple-hypercore-protocol')\nconst crypto = require('hypercore-crypto')\nconst timeout = require('timeout-refresh')\nconst inspect = require('inspect-custom-symbol')\nconst Nanoguard = require('nanoguard')\nconst pretty = require('pretty-hash')\nconst Message = require('abstract-extension')\nconst { Duplex } = require('streamx')\nconst debug = require('debug')('hypercore-protocol')\n\nclass StreamExtension extends Message {\n send (message) {\n const stream = this.local.handlers\n if (stream._changes !== this.local.changes) {\n stream._changes = this.local.changes\n stream.state.options(0, { extensions: this.local.names() })\n }\n return stream.state.extension(0, this.id, this.encode(message))\n }\n}\n\nclass Channelizer {\n constructor (stream, { encrypted, noise, keyPair }) {\n this.stream = stream\n this.created = new Map()\n this.local = [null]\n this.remote = [null]\n this.noise = !(noise === false && encrypted === false)\n this.encrypted = encrypted !== false\n this.keyPair = keyPair\n }\n\n allocLocal () {\n const id = this.local.indexOf(null)\n if (id > 0) return id\n this.local.push(null)\n return this.local.length - 1\n }\n\n attachLocal (ch) {\n const id = this.allocLocal()\n this.local[id] = ch\n ch.localId = id\n }\n\n attachRemote (ch, id) {\n if (this.remote.length === id) this.remote.push(null)\n this.remote[id] = ch\n ch.remoteId = id\n }\n\n detachChannel (ch) {\n if (ch.localId > -1 && this.local[ch.localId] === ch) {\n this.local[ch.localId] = null\n ch.localId = -1\n if (ch.handlers && ch.handlers.onclose) ch.handlers.onclose()\n }\n if (ch.remoteId > -1 && this.remote[ch.remoteId] === ch) {\n this.remote[ch.remoteId] = null\n }\n\n const hex = ch.discoveryKey.toString('hex')\n if (this.created.get(hex) === ch) this.created.delete(hex)\n }\n\n getChannel (dk) {\n return this.created.get(dk.toString('hex'))\n }\n\n createChannel (dk) {\n const hex = dk.toString('hex')\n\n const old = this.created.get(hex)\n if (old) return old\n\n const fresh = new Channel(this.stream.state, this.stream, dk)\n this.created.set(hex, fresh)\n return fresh\n }\n\n onauthenticate (key, done) {\n if (this.stream.handlers && this.stream.handlers.onauthenticate) this.stream.handlers.onauthenticate(key, done)\n else done(null)\n }\n\n onhandshake () {\n debug('recv handshake')\n if (this.stream.handlers && this.stream.handlers.onhandshake) this.stream.handlers.onhandshake()\n this.stream.emit('handshake')\n }\n\n onopen (channelId, message) {\n debug('recv open', channelId, message)\n const ch = this.createChannel(message.discoveryKey)\n ch.remoteCapability = message.capability\n this.attachRemote(ch, channelId)\n if (ch.localId === -1) {\n if (this.stream.handlers.ondiscoverykey) this.stream.handlers.ondiscoverykey(ch.discoveryKey)\n this.stream.emit('discovery-key', ch.discoveryKey)\n } else {\n if (this.noise && !ch.remoteVerified) {\n // We are leaking metadata here that the remote cap was bad which means the remote prob can figure\n // out that we indeed had the key. Since we were the one to initialise the channel that's ok, as\n // that already kinda leaks that.\n this.stream.destroy(new Error('Invalid remote channel capability'))\n return\n }\n this.stream.emit('duplex-channel', ch)\n }\n if (ch.handlers && ch.handlers.onopen) ch.handlers.onopen()\n\n if (this.stream.handlers.onremoteopen) this.stream.handlers.onremoteopen(ch.discoveryKey)\n this.stream.emit('remote-open', ch.discoveryKey)\n }\n\n onoptions (channelId, message) {\n debug('recv options', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onoptions) ch.handlers.onoptions(message)\n else if (channelId === 0 && !ch) this.stream._updateExtensions(message.extensions)\n }\n\n onstatus (channelId, message) {\n debug('recv status', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onstatus) ch.handlers.onstatus(message)\n }\n\n onhave (channelId, message) {\n debug('recv have', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onhave) ch.handlers.onhave(message)\n }\n\n onunhave (channelId, message) {\n debug('recv unhave', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onunhave) ch.handlers.onunhave(message)\n }\n\n onwant (channelId, message) {\n debug('recv want', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onwant) ch.handlers.onwant(message)\n }\n\n onunwant (channelId, message) {\n debug('recv unwant', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onunwant) ch.handlers.onunwant(message)\n }\n\n onrequest (channelId, message) {\n debug('recv request', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onrequest) ch.handlers.onrequest(message)\n }\n\n oncancel (channelId, message) {\n debug('recv cancel', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.oncancel) ch.handlers.oncancel(message)\n }\n\n ondata (channelId, message) {\n debug('recv data', channelId, message)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.ondata) ch.handlers.ondata(message)\n }\n\n onextension (channelId, id, buf) {\n debug('recv extension', channelId, id)\n const ch = this.remote[channelId]\n if (ch && ch.handlers && ch.handlers.onextension) ch.handlers.onextension(id, buf)\n else if (channelId === 0 && !ch) this.stream.remoteExtensions.onmessage(id, buf)\n }\n\n onclose (channelId, message) {\n debug('recv close', channelId, message)\n let ch = channelId < this.remote.length ? this.remote[channelId] : null\n\n if (ch) {\n this.remote[channelId] = null\n } else if (message.discoveryKey) {\n ch = this.getChannel(message.discoveryKey)\n }\n\n if (!ch) return\n\n if (ch.localId > -1 && this.local[ch.localId] === ch) {\n this.local[ch.localId] = null\n ch.state.close(ch.localId, {})\n ch.localId = -1\n if (ch.handlers && ch.handlers.onclose) ch.handlers.onclose()\n }\n\n if (this.stream.handlers && this.stream.handlers.onchannelclose) {\n this.stream.handlers.onchannelclose(ch.discoveryKey, ch.key)\n }\n\n const hex = ch.discoveryKey.toString('hex')\n if (this.created.get(hex) === ch) this.created.delete(hex)\n this.stream._prefinalize()\n }\n\n onmissing (bytes) {\n if (this.stream._utp === null) return\n this.stream._utp.setContentSize(bytes)\n }\n\n // called by the state machine\n send (data) {\n if (this.stream.keepAlive !== null) this.stream.keepAlive.refresh()\n this.stream.bytesSent += data.length\n return this.stream.push(data)\n }\n\n // called by the state machine\n destroy (err) {\n this.stream.destroy(err)\n this.local = []\n this.remote = []\n for (const ch of this.created.values()) {\n const closed = ch.localId === -1\n ch.localId = ch.remoteId = -1\n if (!closed && ch.handlers && ch.handlers.onclose) ch.handlers.onclose()\n\n if (this.stream.handlers && this.stream.handlers.onchannelclose) {\n this.stream.handlers.onchannelclose(ch.discoveryKey, ch.key)\n }\n }\n this.created.clear()\n }\n}\n\nclass Channel {\n constructor (state, stream, dk) {\n this.key = null\n this.discoveryKey = dk\n this.localId = -1\n this.remoteId = -1\n this.remoteCapability = null\n this.handlers = null\n this.state = state\n this.stream = stream\n }\n\n get opened () {\n return this.localId > -1\n }\n\n get closed () {\n return this.localId === -1\n }\n\n get remoteOpened () {\n return this.remoteId > -1\n }\n\n get remoteVerified () {\n return this.localId > -1 &&\n this.remoteId > -1 &&\n !!this.remoteCapability &&\n this.remoteCapability.equals(this.state.remoteCapability(this.key))\n }\n\n options (message) {\n debug('send options', message)\n return this.state.options(this.localId, message)\n }\n\n status (message) {\n debug('send status', message)\n return this.state.status(this.localId, message)\n }\n\n have (message) {\n debug('send have', message)\n return this.state.have(this.localId, message)\n }\n\n unhave (message) {\n debug('send unhave', message)\n return this.state.unhave(this.localId, message)\n }\n\n want (message) {\n debug('send want', message)\n return this.state.want(this.localId, message)\n }\n\n unwant (message) {\n debug('send unwant', message)\n return this.state.unwant(this.localId, message)\n }\n\n request (message) {\n debug('send request', message)\n return this.state.request(this.localId, message)\n }\n\n cancel (message) {\n debug('send cancel', message)\n return this.state.cancel(this.localId, message)\n }\n\n data (message) {\n debug('send data', message)\n return this.state.data(this.localId, message)\n }\n\n extension (id, buf) {\n debug('send extension', id)\n return this.state.extension(this.localId, id, buf)\n }\n\n close () {\n debug('send close')\n if (this.closed) return\n\n const localId = this.localId\n this.stream.channelizer.detachChannel(this)\n this.state.close(localId, {})\n this.stream._prefinalize()\n }\n\n destroy (err) {\n this.stream.destroy(err)\n }\n}\n\nmodule.exports = class ProtocolStream extends Duplex {\n constructor (initiator, handlers = {}) {\n super()\n\n if (typeof initiator !== 'boolean') throw new Error('Must specify initiator boolean in replication stream')\n\n this.initiator = initiator\n this.handlers = handlers\n this.channelizer = new Channelizer(this, {\n encrypted: handlers.encrypted,\n noise: handlers.noise,\n keyPair: handlers.keyPair\n })\n this.state = new SHP(initiator, this.channelizer)\n this.live = !!handlers.live\n this.timeout = null\n this.keepAlive = null\n this.prefinalize = new Nanoguard()\n this.bytesSent = 0\n this.bytesReceived = 0\n this.extensions = StreamExtension.createLocal(this)\n this.remoteExtensions = this.extensions.remote()\n\n this._utp = null\n this._changes = 0\n\n this.once('finish', this.push.bind(this, null))\n this.on('pipe', this._onpipe)\n\n if (handlers.timeout !== false && handlers.timeout !== 0) {\n const timeout = handlers.timeout || 20000\n this.setTimeout(timeout, () => this.destroy(new Error('ETIMEDOUT')))\n this.setKeepAlive(Math.ceil(timeout / 2))\n }\n }\n\n registerExtension (name, handlers) {\n return this.extensions.add(name, handlers)\n }\n\n [inspect] (depth, opts) {\n let indent = ''\n if (typeof opts.indentationLvl === 'number') {\n while (indent.length < opts.indentationLvl) indent += ' '\n }\n\n return 'HypercoreProtocolStream(\\n' +\n indent + ' publicKey: ' + opts.stylize((this.publicKey && pretty(this.publicKey)), 'string') + '\\n' +\n indent + ' remotePublicKey: ' + opts.stylize((this.remotePublicKey && pretty(this.remotePublicKey)), 'string') + '\\n' +\n indent + ' remoteAddress: ' + opts.stylize(this.remoteAddress, 'string') + '\\n' +\n indent + ' remoteType: ' + opts.stylize(this.remoteType, 'string') + '\\n' +\n indent + ' live: ' + opts.stylize(this.live, 'boolean') + '\\n' +\n indent + ' initiator: ' + opts.stylize(this.initiator, 'boolean') + '\\n' +\n indent + ' channelCount: ' + opts.stylize(this.channelCount, 'number') + '\\n' +\n indent + ' destroyed: ' + opts.stylize(this.destroyed, 'boolean') + '\\n' +\n indent + ' prefinalized: ' + opts.stylize(!this.prefinalize.waiting, 'boolean') + '\\n' +\n indent + ' bytesSent: ' + opts.stylize(this.bytesSent, 'number') + '\\n' +\n indent + ' bytesReceived: ' + opts.stylize(this.bytesReceived, 'number') + '\\n' +\n indent + ')'\n }\n\n static isProtocolStream (s) {\n return !!(s && typeof s.initiator === 'boolean' && typeof s.pipe === 'function' && s.state)\n }\n\n static keyPair (seed) {\n return SHP.keyPair(seed)\n }\n\n get remoteAddress () {\n const to = this._readableState.pipeTo\n if (!to) return null\n if (ProtocolStream.isProtocolStream(to)) return null\n return to.remoteAddress\n }\n\n get remoteType () {\n const to = this._readableState.pipeTo\n if (!to) return null\n if (to._utp) return 'utp'\n if (to.remoteAddress) return 'tcp'\n return 'unknown'\n }\n\n get publicKey () {\n return this.state.publicKey\n }\n\n get remotePublicKey () {\n return this.state.remotePublicKey\n }\n\n _onpipe (dest) {\n if (typeof dest.setContentSize === 'function') this._utp = dest\n }\n\n _write (data, cb) {\n if (this.timeout !== null) this.timeout.refresh()\n this.bytesReceived += data.length\n this.state.recv(data)\n cb(null)\n }\n\n _destroy (cb) {\n this._predestroy() // make sure this always runs\n this.channelizer.destroy()\n this.state.destroy()\n cb(null)\n }\n\n _predestroy () {\n if (this.timeout !== null) {\n this.timeout.destroy()\n this.timeout = null\n }\n if (this.keepAlive !== null) {\n this.keepAlive.destroy()\n this.keepAlive = null\n }\n this.prefinalize.destroy()\n }\n\n _prefinalize () {\n this.emit('prefinalize')\n this.prefinalize.ready(() => {\n if (this.destroyed) return\n if (this.channelCount) return\n if (this.live) return\n this.finalize()\n })\n }\n\n _updateExtensions (names) {\n this.remoteExtensions.update(names)\n if (this.handlers.onextensions) this.handlers.onextensions(names)\n this.emit('extensions', names)\n }\n\n remoteOpened (key) {\n const ch = this.channelizer.getChannel(crypto.discoveryKey(key))\n return !!(ch && ch.remoteId > -1)\n }\n\n remoteVerified (key) {\n const ch = this.channelizer.getChannel(crypto.discoveryKey(key))\n return !!ch && !!ch.remoteCapability && ch.remoteCapability.equals(this.state.remoteCapability(key))\n }\n\n opened (key) {\n const ch = this.channelizer.getChannel(crypto.discoveryKey(key))\n return !!(ch && ch.localId > -1)\n }\n\n ping () {\n return this.state.ping()\n }\n\n setKeepAlive (ms) {\n if (this.keepAlive) this.keepAlive.destroy()\n if (!ms) {\n this.keepAlive = null\n return\n }\n this.keepAlive = timeout(ms, ping, this)\n\n function ping () {\n this.ping()\n this.keepAlive = timeout(ms, ping, this)\n }\n }\n\n setTimeout (ms, ontimeout) {\n if (this.timeout) this.timeout.destroy()\n if (!ms) {\n this.timeout = null\n return\n }\n this.timeout = timeout(ms, this.emit.bind(this, 'timeout'))\n if (ontimeout) this.once('timeout', ontimeout)\n }\n\n get channelCount () {\n return this.channelizer.created.size\n }\n\n get channels () {\n return this.channelizer.created.values()\n }\n\n open (key, handlers) {\n const discoveryKey = crypto.discoveryKey(key)\n const ch = this.channelizer.createChannel(discoveryKey)\n\n if (ch.key === null) {\n ch.key = key\n this.channelizer.attachLocal(ch)\n this.state.open(ch.localId, { key, discoveryKey })\n }\n\n if (handlers) ch.handlers = handlers\n\n if (ch.remoteId > -1) this.emit('duplex-channel', ch)\n\n return ch\n }\n\n close (discoveryKey) {\n const ch = this.channelizer.getChannel(discoveryKey)\n\n if (ch && ch.localId > -1) {\n ch.close()\n return\n }\n\n this.state.close(this.channelizer.allocLocal(), { discoveryKey })\n }\n\n finalize () {\n this.push(null)\n }\n}\n", "module.exports = function(v) {\n var c = 32\n v &= -v\n if (v) c--\n if (v & 0x0000FFFF) c -= 16\n if (v & 0x00FF00FF) c -= 8\n if (v & 0x0F0F0F0F) c -= 4\n if (v & 0x33333333) c -= 2\n if (v & 0x55555555) c -= 1\n return c\n}\n", "'use strict'\n\nconst ctz = require('count-trailing-zeros')\n\nmodule.exports = () => new Bitfield()\n\nclass Page {\n constructor (level) {\n const buf = new Uint8Array(level ? 8456 : 4360)\n const b = buf.byteOffset\n\n this.buffer = buf\n this.bits = level ? null : new Uint32Array(buf.buffer, b, 1024)\n this.children = level ? new Array(32768) : null\n this.level = level\n\n this.allOne = level\n ? [\n new Uint32Array(buf.buffer, b, 1024),\n new Uint32Array(buf.buffer, b + 4096, 32),\n new Uint32Array(buf.buffer, b + 4224, 1)\n ]\n : [\n this.bits,\n new Uint32Array(buf.buffer, b + 4096, 32),\n new Uint32Array(buf.buffer, b + 4224, 1)\n ]\n\n this.oneOne = level\n ? [\n new Uint32Array(buf.buffer, b + 4228, 1024),\n new Uint32Array(buf.buffer, b + 8324, 32),\n new Uint32Array(buf.buffer, b + 8452, 1)\n ]\n : [\n this.bits,\n new Uint32Array(buf.buffer, b + 4228, 32),\n new Uint32Array(buf.buffer, b + 4356, 1)\n ]\n }\n}\n\nconst ZEROS = [new Page(0), new Page(1), new Page(2), new Page(3)]\nconst MASK = new Uint32Array(32)\nconst MASK_INCL = new Uint32Array(32)\n\nfor (var i = 0; i < 32; i++) {\n MASK[i] = Math.pow(2, 31 - i) - 1\n MASK_INCL[i] = Math.pow(2, 32 - i) - 1\n}\n\nconst LITTLE_ENDIAN = new Uint8Array(MASK.buffer, MASK.byteOffset, 1)[0] === 0xff\n\nclass Bitfield {\n constructor () {\n this.length = 32768\n this.littleEndian = LITTLE_ENDIAN\n\n this._path = new Uint16Array(5)\n this._offsets = new Uint16Array(this._path.buffer, this._path.byteOffset + 2, 4)\n this._parents = new Array(4).fill(null)\n this._page = new Page(0)\n this._allocs = 1\n }\n\n last () {\n var page = this._page\n var b = 0\n\n while (true) {\n for (var i = 2; i >= 0; i--) {\n const c = ctz(page.oneOne[i][b])\n if (c === 32) return -1\n b = (b << 5) + (31 - c)\n }\n\n this._path[page.level] = b\n if (!page.level) return defactor(this._path)\n page = page.children[b]\n b = 0\n }\n }\n\n set (index, bit) {\n const page = this._getPage(index, bit)\n if (!page) return false\n\n const i = this._path[0]\n const r = i & 31\n const b = i >>> 5\n const prev = page.bits[b]\n\n page.bits[b] = bit\n ? (prev | (0x80000000 >>> r))\n : (prev & ~(0x80000000 >>> r))\n\n const upd = page.bits[b]\n if (upd === prev) return false\n\n this._updateAllOne(page, b, upd)\n this._updateOneOne(page, b, upd)\n\n return true\n }\n\n get (index) {\n const page = this._getPage(index, false)\n if (!page) return false\n\n const i = this._path[0]\n const r = i & 31\n\n return (page.bits[i >>> 5] & (0x80000000 >>> r)) !== 0\n }\n\n iterator () {\n return new Iterator(this)\n }\n\n fill (val, start, end) {\n if (!start) start = 0\n if (val === true) return this._fillBit(true, start, end === 0 ? end : (end || this.length))\n if (val === false) return this._fillBit(false, start, end === 0 ? end : (end || this.length))\n this._fillBuffer(val, start, end === 0 ? end : (end || (start + 8 * val.length)))\n }\n\n grow () {\n if (this._page.level === 3) throw new Error('Cannot grow beyond ' + this.length)\n const page = this._page\n this._page = new Page(page.level + 1)\n this._page.children[0] = page\n if (this._page.level === 3) this.length = Number.MAX_SAFE_INTEGER\n else this.length *= 32768\n }\n\n _fillBuffer (buf, start, end) {\n if ((start & 7) || (end & 7)) throw new Error('Offsets must be a multiple of 8')\n\n start /= 8\n while (end > this.length) this.grow()\n end /= 8\n\n const offset = start\n var page = this._getPage(8 * start, true)\n\n while (start < end) {\n const delta = end - start < 4096 ? end - start : 4096\n const s = start - offset\n\n start += this._setPageBuffer(page, buf.subarray(s, s + delta), start & 1023)\n if (start !== end) page = this._nextPage(page, 8 * start)\n }\n }\n\n _fillBit (bit, start, end) {\n var page = this._getPage(start, bit)\n\n // TODO: this can be optimised a lot in the case of end - start > 32768\n // in that case clear levels of 32768 ** 2 instead etc\n\n while (start < end) {\n const delta = end - start < 32768 ? end - start : 32768\n start += this._setPageBits(page, bit, start & 32767, delta)\n if (start !== end) page = this._nextPage(page, start)\n }\n }\n\n _nextPage (page, start) {\n const i = ++this._offsets[page.level]\n return i === 32768\n ? this._getPage(start, true)\n : this._parents[page.level].children[i] || this._addPage(this._parents[page.level], i)\n }\n\n _setPageBuffer (page, buf, start) {\n new Uint8Array(page.bits.buffer, page.bits.byteOffset, page.bits.length * 4).set(buf, start)\n start >>>= 2\n this._update(page, start, start + (buf.length >>> 2) + (buf.length & 3 ? 1 : 0))\n return buf.length\n }\n\n _setPageBits (page, bit, start, end) {\n const s = start >>> 5\n const e = end >>> 5\n const sm = 0xffffffff >>> (start & 31)\n const em = ~(0xffffffff >>> (end & 31))\n\n if (s === e) {\n page.bits[s] = bit\n ? page.bits[s] | (sm & em)\n : page.bits[s] & ~(sm & em)\n this._update(page, s, s + 1)\n return end - start\n }\n\n page.bits[s] = bit\n ? page.bits[s] | sm\n : page.bits[s] & (~sm)\n\n if (e - s > 2) page.bits.fill(bit ? 0xffffffff : 0, s + 1, e - 1)\n\n if (e === 1024) {\n page.bits[e - 1] = bit ? 0xffffffff : 0\n this._update(page, s, e)\n return end - start\n }\n\n page.bits[e] = bit\n ? page.bits[e] | em\n : page.bits[e] & (~em)\n\n this._update(page, s, e + 1)\n return end - start\n }\n\n _update (page, start, end) {\n for (; start < end; start++) {\n const upd = page.bits[start]\n this._updateAllOne(page, start, upd)\n this._updateOneOne(page, start, upd)\n }\n }\n\n _updateAllOne (page, b, upd) {\n var i = 1\n\n do {\n for (; i < 3; i++) {\n const buf = page.allOne[i]\n const r = b & 31\n const prev = buf[b >>>= 5]\n buf[b] = upd === 0xffffffff\n ? (prev | (0x80000000 >>> r))\n : (prev & ~(0x80000000 >>> r))\n upd = buf[b]\n if (upd === prev) return\n }\n\n b += this._offsets[page.level]\n page = this._parents[page.level]\n i = 0\n } while (page)\n }\n\n _updateOneOne (page, b, upd) {\n var i = 1\n\n do {\n for (; i < 3; i++) {\n const buf = page.oneOne[i]\n const r = b & 31\n const prev = buf[b >>>= 5]\n buf[b] = upd !== 0\n ? (prev | (0x80000000 >>> r))\n : (prev & ~(0x80000000 >>> r))\n upd = buf[b]\n if (upd === prev) return\n }\n\n b += this._offsets[page.level]\n page = this._parents[page.level]\n i = 0\n\n if (upd === 0 && page) {\n // all zeros, non root -> free page\n page.children[this._offsets[page.level - 1]] = undefined\n }\n } while (page)\n }\n\n _getPage (index, createIfMissing) {\n factor(index, this._path)\n\n while (index >= this.length) {\n if (!createIfMissing) return null\n this.grow()\n }\n\n var page = this._page\n\n for (var i = page.level; i > 0 && page; i--) {\n const p = this._path[i]\n this._parents[i - 1] = page\n page = page.children[p] || (createIfMissing ? this._addPage(page, p) : null)\n }\n\n return page\n }\n\n _addPage (page, i) {\n this._allocs++\n page = page.children[i] = new Page(page.level - 1)\n return page\n }\n}\n\nclass Iterator {\n constructor (bitfield) {\n this._bitfield = bitfield\n this._path = new Uint16Array(5)\n this._offsets = new Uint16Array(this._path.buffer, this._path.byteOffset + 2, 4)\n this._parents = new Array(4).fill(null)\n this._page = null\n this._allocs = bitfield._allocs\n\n this.seek(0)\n }\n\n seek (index) {\n this._allocs = this._bitfield._allocs\n\n if (index >= this._bitfield.length) {\n this._page = null\n return this\n }\n\n factor(index, this._path)\n\n this._page = this._bitfield._page\n for (var i = this._page.level; i > 0; i--) {\n this._parents[i - 1] = this._page\n this._page = this._page.children[this._path[i]] || ZEROS[i - 1]\n }\n\n return this\n }\n\n next (bit) {\n return bit ? this.nextTrue() : this.nextFalse()\n }\n\n nextFalse () {\n if (this._allocs !== this._bitfield._allocs) {\n // If a page has been alloced while we are iterating\n // and we have a zero page in our path we need to reseek\n // in case that page has been overwritten\n this.seek(defactor(this._path))\n }\n\n var page = this._page\n var b = this._path[0]\n var mask = MASK_INCL\n\n while (page) {\n for (var i = 0; i < 3; i++) {\n const r = b & 31\n const clz = Math.clz32((~page.allOne[i][b >>>= 5]) & mask[r])\n if (clz !== 32) return this._downLeftFalse(page, i, b, clz)\n mask = MASK\n }\n\n b = this._offsets[page.level]\n page = this._parents[page.level]\n }\n\n return -1\n }\n\n _downLeftFalse (page, i, b, clz) {\n while (true) {\n while (i) {\n b = (b << 5) + clz\n clz = Math.clz32(~page.allOne[--i][b])\n }\n\n b = (b << 5) + clz\n\n if (!page.level) break\n\n this._parents[page.level - 1] = page\n this._path[page.level] = b\n\n page = page.children[b]\n i = 3\n clz = b = 0\n }\n\n this._page = page\n this._path[0] = b\n\n return this._inc()\n }\n\n nextTrue () {\n var page = this._page\n var b = this._path[0]\n var mask = MASK_INCL\n\n while (page) {\n for (var i = 0; i < 3; i++) {\n const r = b & 31\n const clz = Math.clz32(page.oneOne[i][b >>>= 5] & mask[r])\n if (clz !== 32) return this._downLeftTrue(page, i, b, clz)\n mask = MASK\n }\n\n b = this._offsets[page.level]\n page = this._parents[page.level]\n }\n\n return -1\n }\n\n _downLeftTrue (page, i, b, clz) {\n while (true) {\n while (i) {\n b = (b << 5) + clz\n clz = Math.clz32(page.oneOne[--i][b])\n }\n\n b = (b << 5) + clz\n\n if (!page.level) break\n\n this._parents[page.level - 1] = page\n this._path[page.level] = b\n\n page = page.children[b]\n i = 3\n clz = b = 0\n }\n\n this._page = page\n this._path[0] = b\n\n return this._inc()\n }\n\n _inc () {\n const n = defactor(this._path)\n if (this._path[0] < 32767) this._path[0]++\n else this.seek(n + 1)\n return n\n }\n}\n\nfunction defactor (out) {\n return ((((out[3] * 32768 + out[2]) * 32768) + out[1]) * 32768) + out[0]\n}\n\nfunction factor (n, out) {\n n = (n - (out[0] = (n & 32767))) / 32768\n n = (n - (out[1] = (n & 32767))) / 32768\n out[3] = ((n - (out[2] = (n & 32767))) / 32768) & 32767\n}\n", "var Protocol = require('hypercore-protocol')\nvar timeout = require('timeout-refresh')\nvar bitfield = require('fast-bitfield')\nvar set = require('unordered-set')\nvar rle = require('bitfield-rle').align(4)\nvar treeIndex = require('./tree-index')\n\nvar EMPTY = new Uint8Array(1024)\n\nmodule.exports = replicate\n\nfunction replicate (feed, initiator, opts) {\n feed.ifAvailable.wait()\n var stream = Protocol.isProtocolStream(initiator) ? initiator : opts.stream\n\n if (!stream) {\n if (!opts.keyPair) opts.keyPair = feed.noiseKeyPair\n stream = new Protocol(initiator, opts)\n }\n\n if (feed.opened) onready(null)\n else feed.ready(onready)\n\n return stream\n\n function onready (err) {\n feed.ifAvailable.continue()\n\n if (err) return stream.destroy(err)\n if (stream.destroyed) return\n if (stream.opened(feed.key)) return\n\n if (opts.noise !== false && opts.onfeedauthenticate) {\n if (!stream.remotePublicKey) {\n feed.ifAvailable.wait()\n stream.setMaxListeners(0)\n stream.on('close', onhandshake)\n stream.on('handshake', onhandshake)\n return\n }\n feedauthenticate()\n return\n }\n replicatePeer()\n }\n\n function onhandshake () {\n feed.ifAvailable.continue()\n stream.off('close', onhandshake)\n stream.off('handshake', onhandshake)\n feedauthenticate()\n }\n\n function feedauthenticate () {\n if (stream.destroyed) return\n if (stream.opened(feed.key)) return\n feed.ifAvailable.wait()\n opts.onfeedauthenticate(feed, stream.remotePublicKey, function (err) {\n feed.ifAvailable.continue()\n if (stream.destroyed) return\n if (stream.opened(feed.key)) return\n if (err) {\n stream.close(feed.discoveryKey)\n return\n }\n replicatePeer()\n })\n }\n\n function replicatePeer () {\n if (opts.noise !== false) {\n if (stream.remoteOpened(feed.key) && !stream.remoteVerified(feed.key)) {\n stream.close(feed.discoveryKey)\n return\n }\n }\n\n var peer = new Peer(feed, opts)\n\n peer.feed = feed\n peer.stream = stream.open(feed.key, peer)\n\n stream.setMaxListeners(0)\n peer.ready()\n feed.emit('replicating', stream)\n }\n}\n\nfunction Peer (feed, opts) {\n if (opts.extensions) throw new Error('Per peer extensions is not supported. Use feed.registerExtension instead')\n\n this.feed = feed\n this.stream = null // set by replicate just after creation\n this.wants = bitfield()\n this.remoteBitfield = bitfield()\n this.remoteLength = 0\n this.remoteWant = false\n this.remoteTree = null\n this.remoteAck = false\n this.remoteOpened = false\n this.live = !!opts.live\n this.sparse = feed.sparse\n this.ack = !!opts.ack\n\n this.remoteDownloading = true\n this.remoteUploading = true\n this.remoteExtensions = feed.extensions.remote()\n this.downloading = typeof opts.download === 'boolean' ? opts.download : feed.downloading\n this.uploading = typeof opts.upload === 'boolean' ? opts.upload : feed.uploading\n\n this.updated = false\n\n this.maxRequests = opts.maxRequests || feed.maxRequests || 16\n this.urgentRequests = this.maxRequests + 16\n this.inflightRequests = []\n this.inflightWants = 0\n\n this._index = -1\n this._lastBytes = 0\n this._first = true\n this._closed = false\n this._destroyed = false\n this._defaultDownloading = this.downloading\n this._iterator = this.remoteBitfield.iterator()\n this._requestTimeout = null\n\n this.stats = !opts.stats ? null : {\n uploadedBytes: 0,\n uploadedBlocks: 0,\n downloadedBytes: 0,\n downloadedBlocks: 0\n }\n}\n\nObject.defineProperty(Peer.prototype, 'remoteAddress', {\n enumerable: true,\n get: function () {\n return this.stream.stream.remoteAddress\n }\n})\n\nObject.defineProperty(Peer.prototype, 'remoteType', {\n enumerable: true,\n get: function () {\n return this.stream.stream.remoteType\n }\n})\n\nObject.defineProperty(Peer.prototype, 'remotePublicKey', {\n enumerable: true,\n get: function () {\n return this.stream.state.remotePublicKey\n }\n})\n\nPeer.prototype.onwant = function (want) {\n if (!this.uploading) return\n // We only reploy to multipla of 8192 in terms of offsets and lengths for want messages\n // since this is much easier for the bitfield, in terms of paging.\n if ((want.start & 8191) || (want.length & 8191)) return\n if (!this.remoteWant && this.feed.length && this.feed.bitfield.get(this.feed.length - 1)) {\n // Eagerly send the length of the feed to the otherside\n // TODO: only send this if the remote is not wanting a region\n // where this is contained in\n this.stream.have({ start: this.feed.length - 1 })\n }\n this.remoteWant = true\n var rle = this.feed.bitfield.compress(want.start, want.length)\n this.stream.have({ start: want.start, length: want.length, bitfield: rle })\n}\n\nPeer.prototype.ondata = function (data) {\n var self = this\n\n // Ignore unrequested messages unless we allow push\n // TODO: would be better to check if the byte range was requested instead, but this works fine\n var allowPush = this.feed.allowPush || !data.value\n if (!allowPush && !this.feed._reserved.get(data.index)) {\n // If we do not have this block, send back unhave message for this index,\n // to let the remote know we rejected it.\n // TODO: we might want to have some \"unwanted push\" threshold to punish spammers\n if (!self.feed.bitfield.get(data.index)) self.unhave({ start: data.index })\n self._clear(data.index, !data.value)\n return\n }\n\n this.feed._putBuffer(data.index, data.value, data, this, function (err) {\n if (err) return self.destroy(err)\n if (data.value) self.remoteBitfield.set(data.index, false)\n if (self.remoteAck) {\n // Send acknowledgement.\n // In the future this could batch several ACKs at once\n self.stream.have({ start: data.index, length: 1, ack: true })\n }\n if (self.stats && data.value) {\n self.stats.downloadedBlocks += 1\n self.stats.downloadedBytes += data.value.length\n }\n self._clear(data.index, !data.value)\n })\n}\n\nPeer.prototype._clear = function (index, hash) {\n // TODO: optimize me (no splice and do not run through all ...)\n for (var i = 0; i < this.inflightRequests.length; i++) {\n if (this.inflightRequests[i].index === index) {\n if (this._requestTimeout !== null) this._requestTimeout.refresh()\n this.inflightRequests.splice(i, 1)\n i--\n }\n }\n\n this.feed._reserved.set(index, false)\n // TODO: only update all if we have overlapping selections\n this.feed._updatePeers()\n\n if (this.inflightRequests.length === 0 && this._requestTimeout !== null) {\n this._requestTimeout.destroy()\n this._requestTimeout = null\n }\n}\n\nPeer.prototype.onrequest = function (request) {\n if (!this.uploading) return\n if (request.bytes) return this._onbytes(request)\n\n // lazily instantiate the remote tree\n if (!this.remoteTree) this.remoteTree = treeIndex()\n\n var self = this\n var opts = { digest: request.nodes, hash: request.hash, tree: this.remoteTree }\n\n this.feed.proof(request.index, opts, onproof)\n\n function onproof (err, proof) {\n if (err) return self.destroy(err)\n if (request.hash) onvalue(null, null)\n else if (self.feed.bitfield.get(request.index)) self.feed._getBuffer(request.index, onvalue)\n\n function onvalue (err, value) {\n if (!self.uploading) return\n if (err) return self.destroy(err)\n\n if (value) {\n if (self.stats) {\n self.stats.uploadedBlocks += 1\n self.stats.uploadedBytes += value.length\n self.feed._stats.uploadedBlocks += 1\n self.feed._stats.uploadedBytes += value.length\n }\n self.feed.emit('upload', request.index, value, self)\n }\n\n // TODO: prob not needed with new bitfield\n if (request.index + 1 > self.remoteLength) {\n self.remoteLength = request.index + 1\n self._updateEnd()\n }\n\n self.stream.data({\n index: request.index,\n value: value,\n nodes: proof.nodes,\n signature: proof.signature\n })\n }\n }\n}\n\nPeer.prototype._updateOptions = function () {\n if (this.ack || this.feed.extensions.length) {\n this.stream.options({\n ack: this.ack,\n extensions: this.feed.extensions.names()\n })\n }\n}\n\nPeer.prototype.setDownloading = function (downloading) {\n if (downloading === this.downloading) return\n this.downloading = downloading\n this.stream.status({\n downloading,\n uploading: this.uploading\n })\n this.update()\n}\n\nPeer.prototype.setUploading = function (uploading) {\n if (uploading === this.uploading) return\n this.uploading = uploading\n this.stream.status({\n downloading: this.downloading,\n uploading\n })\n this.update()\n}\n\nPeer.prototype._onbytes = function (request) {\n var self = this\n\n this.feed.seek(request.bytes, { wait: false }, function (err, index) {\n if (err) {\n request.bytes = 0\n self.onrequest(request)\n return\n }\n\n // quick'n'dirty filter for parallel bytes requests\n // it does not matter that this doesn't catch ALL parallel requests - just a bandwidth optimization\n if (self._lastBytes === request.bytes) return\n self._lastBytes = request.bytes\n\n request.bytes = 0\n request.index = index\n request.nodes = 0\n\n self.onrequest(request)\n })\n}\n\nPeer.prototype._onrequesttimeout = function () {\n this._requestTimeout = null\n if (!this.inflightRequests.length) return\n\n var first = this.inflightRequests[0]\n\n if (first.hash ? this.feed.tree.get(2 * first.index) : this.feed.bitfield.get(first.index)) {\n // prob a bytes response\n this.inflightRequests.shift()\n this.feed._reserved.set(first.index, false)\n\n if (this.stream.stream.timeout) {\n this._requestTimeout = timeout(this.stream.stream.timeout.ms, this._onrequesttimeout, this)\n }\n return\n }\n\n this.destroy(new Error('Request timeout'))\n}\n\nPeer.prototype.onhave = function (have) {\n this.feed.emit('peer-ack', this, have)\n\n if (this.ack && have.ack && !have.bitfield && this.feed.bitfield.get(have.start)) {\n this.stream.stream.emit('ack', have)\n return\n }\n\n var updated = this._first\n if (this._first) this._first = false\n\n // In this impl, we only sent WANTs for 1024 * 1024 length ranges\n // so if we get a HAVE for that it is a reply to a WANT.\n if (have.length === 1024 * 1024 && this.inflightWants > 0) {\n this.feed.ifAvailable.continue()\n this.inflightWants--\n }\n\n if (have.bitfield) { // TODO: handle start !== 0\n if (have.length === 0 || have.length === 1) { // length === 1 is for backwards compat\n this.wants = null // we are in backwards compat mode where we subscribe everything\n }\n var buf = rle.decode(have.bitfield)\n var bits = buf.length * 8\n remoteAndNotLocal(this.feed.bitfield, buf, this.remoteBitfield.littleEndian, have.start)\n this.remoteBitfield.fill(buf, have.start)\n if (bits > this.remoteLength) {\n this.remoteLength = this.remoteBitfield.last() + 1\n updated = true\n }\n } else {\n // TODO: if len > something simply copy a 0b1111... buffer to the bitfield\n\n var start = have.start\n var len = have.length || 1\n\n while (len--) this.remoteBitfield.set(start, !this.feed.bitfield.get(start++))\n if (start > this.remoteLength) {\n this.remoteLength = start\n updated = true\n }\n }\n\n if (updated) {\n this.updated = true\n this.feed.emit('remote-update', this)\n }\n\n this._updateEnd()\n this.update()\n}\n\nPeer.prototype._updateEnd = function () {\n if (this.live || this.feed.sparse || !this.feed._selections.length) return\n\n var sel = this.feed._selections[0]\n var remoteLength = this.feed.length || -1\n\n for (var i = 0; i < this.feed.peers.length; i++) {\n if (this.feed.peers[i].remoteLength > remoteLength) {\n remoteLength = this.feed.peers[i].remoteLength\n }\n }\n\n sel.end = remoteLength\n}\n\nPeer.prototype.onextension = function (id, message) {\n this.remoteExtensions.onmessage(id, message, this)\n}\n\nPeer.prototype.onstatus = function (info) {\n this.remoteUploading = info.uploading\n this.remoteDownloading = info.downloading\n\n if (!info.uploading) {\n while (this.inflightRequests.length) {\n const data = this.inflightRequests[0]\n this._clear(data.index, !data.value)\n }\n for (var i = 0; i < this.inflightWants; i++) {\n this.feed.ifAvailable.continue()\n }\n this.inflightWants = 0\n this.wants = bitfield()\n }\n this.update()\n if (info.downloading || this.live) return\n if (this.feed._selections.length && this.downloading) return\n this._autoEnd()\n}\n\nPeer.prototype._autoEnd = function () {\n if (this.uploading && this.remoteDownloading) return\n if ((this.sparse || this.live) && (this.remoteUploading || this.downloading)) return\n this.end()\n}\n\nPeer.prototype.onunhave = function (unhave) {\n var start = unhave.start\n var len = unhave.length || 1\n\n if (start === 0 && len >= this.remoteLength) {\n this.remoteLength = 0\n this.remoteBitfield = bitfield()\n return\n }\n\n while (len--) this.remoteBitfield.set(start++, false)\n}\n\nPeer.prototype.onunwant =\nPeer.prototype.oncancel = function () {\n // TODO: impl all of me\n}\n\nPeer.prototype.onclose = function () {\n this._close()\n}\n\nPeer.prototype.have = function (have) { // called by feed\n if (this.stream && this.remoteWant) this.stream.have(have)\n var start = have.start\n var len = have.length\n while (len--) this.remoteBitfield.set(start++, false)\n}\n\nPeer.prototype.unhave = function (unhave) { // called by feed\n if (this.stream && this.remoteWant) this.stream.unhave(unhave)\n}\n\nPeer.prototype.haveBytes = function (bytes) { // called by feed\n for (var i = 0; i < this.inflightRequests.length; i++) {\n if (this.inflightRequests[i].bytes === bytes) {\n this.feed._reserved.set(this.inflightRequests[i].index, false)\n this.inflightRequests.splice(i, 1)\n i--\n }\n }\n\n this.update()\n\n if (this.inflightRequests.length === 0 && this._requestTimeout !== null) {\n this._requestTimeout.destroy()\n this._requestTimeout = null\n }\n}\n\nPeer.prototype.update = function () {\n // do nothing\n while (this._update()) {}\n this._sendWantsMaybe()\n}\n\nPeer.prototype._update = function () {\n // should return true if mutated false if not\n if (!this.downloading || !this.remoteUploading) return false\n var selections = this.feed._selections\n var waiting = this.feed._waiting\n var wlen = waiting.length\n var slen = selections.length\n var inflight = this.inflightRequests.length\n var offset = 0\n var i = 0\n\n // TODO: less duplicate code here\n // TODO: re-add priority levels\n\n while (inflight < this.urgentRequests) {\n offset = Math.floor(Math.random() * waiting.length)\n\n for (i = 0; i < waiting.length; i++) {\n var w = waiting[offset++]\n if (offset === waiting.length) offset = 0\n\n this._downloadWaiting(w)\n if (waiting.length !== wlen) return true // mutated\n if (this.inflightRequests.length >= this.urgentRequests) return false\n }\n if (inflight === this.inflightRequests.length) break\n inflight = this.inflightRequests.length\n }\n\n while (inflight < this.maxRequests) {\n offset = Math.floor(Math.random() * selections.length)\n\n for (i = 0; i < selections.length; i++) {\n var s = selections[offset++]\n if (offset === selections.length) offset = 0\n\n if (!s.iterator) s.iterator = this.feed.bitfield.iterator(s.start, s.end)\n if (s.blocks) this._downloadBlocks(s)\n else this._downloadRange(s)\n if (selections.length !== slen) return true // mutated\n if (this.inflightRequests.length >= this.maxRequests) return false\n }\n\n if (inflight === this.inflightRequests.length) return false\n inflight = this.inflightRequests.length\n }\n\n return false\n}\n\nPeer.prototype.onopen = function () {\n this.feed.ifAvailable.continue()\n this.remoteOpened = true\n\n this._updateOptions()\n\n if (!this.uploading || !this.downloading) {\n this.stream.status({\n uploading: this.uploading,\n downloading: this.downloading\n })\n }\n\n this._sendWants()\n this.feed.emit('peer-open', this)\n}\n\nPeer.prototype.onoptions = function (options) {\n this.remoteAck = options.ack\n this.remoteExtensions.update(options.extensions)\n}\n\nPeer.prototype.ready = function () {\n this.feed.ifAvailable.wait() // continued by onopen or close\n set.add(this.feed.peers, this)\n this.feed.emit('peer-add', this)\n if (this.stream.remoteOpened) this.onopen()\n}\n\nPeer.prototype.end = function () {\n if (!this.downloading && !this.remoteDownloading && !this.live) {\n if (!this._defaultDownloading) {\n this.stream.status({ downloading: false, uploading: false })\n }\n this._close()\n return\n }\n if (!this._closed) {\n this._closed = true\n this.downloading = false\n this.stream.status({ downloading: false, uploading: true })\n } else {\n if (!this.live) this._close()\n }\n}\n\nPeer.prototype._close = function () {\n if (!this._destroyed) {\n this._destroyed = true\n this.stream.close()\n }\n if (this._index === -1) return\n set.remove(this.feed.peers, this)\n this._index = -1\n for (var i = 0; i < this.inflightRequests.length; i++) {\n this.feed._reserved.set(this.inflightRequests[i].index, false)\n }\n if (this._requestTimeout !== null) {\n this._requestTimeout.destroy()\n this._requestTimeout = null\n }\n this._updateEnd()\n this.remoteWant = false\n this.feed._updatePeers()\n this.feed.emit('peer-remove', this)\n for (i = 0; i < this.inflightWants; i++) {\n this.feed.ifAvailable.continue()\n }\n if (!this.remoteOpened) {\n this.feed.ifAvailable.continue()\n }\n}\n\nPeer.prototype.destroy = function (err) {\n if (this._index === -1 || this._destroyed) return\n this.stream.destroy(err)\n this._destroyed = true\n this._close()\n}\n\nPeer.prototype._sendWantsMaybe = function () {\n if (this.inflightRequests.length < this.urgentRequests) this._sendWants()\n}\n\nPeer.prototype._sendWants = function () {\n if (!this.wants || !this.downloading || !this.remoteOpened || !this.remoteUploading) return\n if (this.inflightWants >= 16) return\n\n var i\n\n for (i = 0; i < this.feed._waiting.length; i++) {\n var w = this.feed._waiting[i]\n if (w.index === -1) this._sendWantRange(w)\n else this._sendWant(w.index)\n if (this.inflightWants >= 16) return\n }\n\n for (i = 0; i < this.feed._selections.length; i++) {\n var s = this.feed._selections[i]\n this._sendWantRange(s)\n if (this.inflightWants >= 16) return\n }\n\n // always sub to the first range for now, usually what you want\n this._sendWant(0)\n}\n\nPeer.prototype._sendWantRange = function (s) {\n if (s.blocks) {\n if (!s.selected) s.selected = new WeakSet()\n if (s.selected.has(this)) return\n s.selected.add(this)\n for (const block of s.blocks) {\n this._sendWant(block)\n }\n return\n }\n\n var want = s.start ? 1024 * 1024 * Math.floor(s.start / 1024 / 1024) : 0\n\n while (true) {\n if (want >= this.remoteLength) return\n if (s.end !== -1 && want >= s.end) return\n\n if (this._sendWant(want)) return\n\n // check if region is already selected - if so try next one\n if (!this.wants.get(Math.floor(want / 1024 / 1024))) return\n want += 1024 * 1024\n }\n}\n\nPeer.prototype._sendWant = function (index) {\n var len = 1024 * 1024\n var j = Math.floor(index / len)\n if (this.wants.get(j)) return false\n this.wants.set(j, true)\n this.inflightWants++\n this.feed.ifAvailable.wait()\n this.stream.want({ start: j * len, length: len })\n return true\n}\n\nPeer.prototype._downloadWaiting = function (wait) {\n if (!wait.bytes) {\n if (!this.remoteBitfield.get(wait.index) || !this.feed._reserved.set(wait.index, true)) {\n if (!wait.update || this.feed._reserved.get(wait.index)) return\n const i = this._iterator.seek(wait.index).next(true)\n if (i === -1 || !this.feed._reserved.set(i, true)) return\n wait.index = i\n }\n this._request(wait.index, 0, wait.hash === true)\n return\n }\n\n this._downloadRange(wait)\n}\n\nPeer.prototype._downloadBlocks = function (range) {\n while (range.blocksDownloaded < range.blocks.length) {\n const blk = range.blocks[range.blocksDownloaded]\n if (!this.feed.bitfield.get(blk)) break\n range.blocksDownloaded++\n }\n\n if (range.blocksDownloaded >= range.blocks.length) {\n set.remove(this.feed._selections, range)\n range.callback(null)\n return\n }\n\n for (var i = range.blocksDownloaded; i < range.blocks.length; i++) {\n const blk = range.blocks[i]\n if (this.remoteBitfield.get(blk) && this.feed._reserved.set(blk, true)) {\n range.requested++\n this._request(blk, 0, false)\n return\n }\n }\n}\n\nPeer.prototype._downloadRange = function (range) {\n if (!range.iterator) range.iterator = this.feed.bitfield.iterator(range.start, range.end)\n\n var reserved = this.feed._reserved\n var ite = this._iterator\n var wantedEnd = Math.min(range.end === -1 ? this.remoteLength : range.end, this.remoteLength)\n\n var i = range.linear ? ite.seek(range.start).next(true) : nextRandom(ite, range.start, wantedEnd)\n var start = i\n\n if (i === -1 || i >= wantedEnd) {\n if (!range.bytes && range.end > -1 && this.feed.length >= range.end && range.iterator.seek(0).next() === -1) {\n set.remove(this.feed._selections, range)\n range.callback(null)\n if (!this.live && !this.sparse && !this.feed._selections.length) this.end()\n }\n return\n }\n\n while ((range.hash && this.feed.tree.get(2 * i)) || !reserved.set(i, true)) {\n i = ite.next(true)\n\n if (i > -1 && i < wantedEnd) {\n // check this index\n continue\n }\n\n if (!range.linear && start !== 0) {\n // retry from the beginning since we are iterating randomly and started !== 0\n i = ite.seek(range.start).next(true)\n start = 0\n if (i > -1 && i < wantedEnd) continue\n }\n\n // we have checked all indexes.\n // if we are looking for hashes we should check if we have all now (first check only checks blocks)\n if (range.hash) {\n // quick'n'dirty check if have all hashes - can be optimized be checking only tree roots\n // but we don't really request long ranges of hashes so yolo\n for (var j = range.start; j < wantedEnd; j++) {\n if (!this.feed.tree.get(2 * j)) return\n }\n if (!range.bytes) {\n set.remove(this.feed._selections, range)\n range.callback(null)\n }\n }\n\n // exit the update loop - nothing to do\n return\n }\n\n range.requested++\n this._request(i, range.bytes || 0, range.hash)\n}\n\nPeer.prototype._request = function (index, bytes, hash) {\n var request = {\n bytes: bytes,\n index: index,\n hash: hash,\n nodes: this.feed.digest(index)\n }\n\n if (this._requestTimeout === null && this.stream.stream.timeout) {\n this._requestTimeout = timeout(this.stream.stream.timeout.ms, this._onrequesttimeout, this)\n }\n this.inflightRequests.push(request)\n this.stream.request(request)\n}\n\nPeer.prototype.extension = function (id, message) {\n this.stream.extension(id, message)\n}\n\nfunction createView (page) {\n var buf = page ? page.buffer : EMPTY\n return new DataView(buf.buffer, buf.byteOffset, 1024)\n}\n\nfunction remoteAndNotLocal (local, buf, le, start) {\n var remote = new DataView(buf.buffer, buf.byteOffset)\n var len = Math.floor(buf.length / 4)\n var arr = new Uint32Array(buf.buffer, buf.byteOffset, len)\n var p = start / 8192 // 8192 is bits per bitfield page\n var l = 0\n var page = createView(local.pages.get(p++, true))\n\n for (var i = 0; i < len; i++) {\n arr[i] = remote.getUint32(4 * i, !le) & ~page.getUint32(4 * (l++), !le)\n\n if (l === 256) {\n page = createView(local.pages.get(p++, true))\n l = 0\n }\n }\n}\n\nfunction nextRandom (ite, start, end) {\n var len = end - start\n var i = ite.seek(Math.floor(Math.random() * len) + start).next(true)\n return i === -1 || i >= end ? ite.seek(start).next(true) : i\n}\n", "// Copy of index.js that extends from EventEmitter\n\nconst events = require('events')\nconst inherits = require('inherits')\n\nconst opening = Symbol('opening queue')\nconst preclosing = Symbol('closing when inactive')\nconst closing = Symbol('closing queue')\nconst sync = Symbol('sync')\nconst fastClose = Symbol('fast close')\n\nmodule.exports = Nanoresource\n\nfunction Nanoresource (opts) {\n if (!(this instanceof Nanoresource)) return new Nanoresource(opts)\n events.EventEmitter.call(this)\n\n if (!opts) opts = {}\n if (opts.open) this._open = opts.open\n if (opts.close) this._close = opts.close\n\n this.opening = false\n this.opened = false\n this.closing = false\n this.closed = false\n this.actives = 0\n\n this[opening] = null\n this[preclosing] = null\n this[closing] = null\n this[sync] = false\n this[fastClose] = true\n}\n\ninherits(Nanoresource, events.EventEmitter)\n\nNanoresource.prototype._open = function (cb) {\n cb(null)\n}\n\nNanoresource.prototype._close = function (cb) {\n cb(null)\n}\n\nNanoresource.prototype.open = function (cb) {\n if (!cb) cb = noop\n\n if (this[closing] || this.closed) return process.nextTick(cb, new Error('Resource is closed'))\n if (this.opened) return process.nextTick(cb)\n\n if (this[opening]) {\n this[opening].push(cb)\n return\n }\n\n this.opening = true\n this[opening] = [cb]\n this[sync] = true\n this._open(onopen.bind(this))\n this[sync] = false\n}\n\nNanoresource.prototype.active = function (cb) {\n if ((this[fastClose] && this[preclosing]) || this[closing] || this.closed) {\n if (cb) process.nextTick(cb, new Error('Resource is closed'))\n return false\n }\n this.actives++\n return true\n}\n\nNanoresource.prototype.inactive = function (cb, err, val) {\n if (!--this.actives) {\n const queue = this[preclosing]\n if (queue) {\n this[preclosing] = null\n while (queue.length) this.close(queue.shift())\n }\n }\n\n if (cb) cb(err, val)\n}\n\nNanoresource.prototype.close = function (allowActive, cb) {\n if (typeof allowActive === 'function') return this.close(false, allowActive)\n if (!cb) cb = noop\n\n if (allowActive) this[fastClose] = false\n\n if (this.closed) return process.nextTick(cb)\n\n if (this.actives || this[opening]) {\n if (!this[preclosing]) this[preclosing] = []\n this[preclosing].push(cb)\n return\n }\n\n if (!this.opened) {\n this.closed = true\n process.nextTick(cb)\n return\n }\n\n if (this[closing]) {\n this[closing].push(cb)\n return\n }\n\n this.closing = true\n this[closing] = [cb]\n this[sync] = true\n this._close(onclose.bind(this))\n this[sync] = false\n}\n\nfunction onopen (err) {\n if (this[sync]) return process.nextTick(onopen.bind(this), err)\n\n const oqueue = this[opening]\n this[opening] = null\n this.opening = false\n this.opened = !err\n\n while (oqueue.length) oqueue.shift()(err)\n\n const cqueue = this[preclosing]\n if (cqueue && !this.actives) {\n this[preclosing] = null\n while (cqueue.length) this.close(cqueue.shift())\n }\n}\n\nfunction onclose (err) {\n if (this[sync]) return process.nextTick(onclose.bind(this), err)\n const queue = this[closing]\n this.closing = false\n this[closing] = null\n this.closed = !err\n while (queue.length) queue.shift()(err)\n}\n\nfunction noop () {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// Empty module to stub packages that we know won't be used at runtime and can be replaces with a mock like this.\nmodule.exports = new Proxy(\n {},\n {\n get: (target, prop) => {\n throw new Error('Package has been stripped');\n },\n },\n);\n", "const { Writable, Readable } = require('streamx')\n\nclass WriteStream extends Writable {\n constructor (feed, opts) {\n super()\n\n this.feed = feed\n this.maxBlockSize = (opts && opts.maxBlockSize) || 0\n }\n\n _writev (batch, cb) {\n this.feed.append(this.maxBlockSize ? this._ensureMaxSize(batch) : batch, cb)\n }\n\n _ensureMaxSize (batch) {\n for (let i = 0; i < batch.length; i++) {\n let blk = batch[i]\n if (blk.length > this.maxBlockSize) {\n const chunked = []\n while (blk.length > this.maxBlockSize) {\n chunked.push(blk.slice(0, this.maxBlockSize))\n blk = blk.slice(this.maxBlockSize)\n }\n if (blk.length) chunked.push(blk)\n batch.splice(i, 1, ...chunked)\n i += chunked.length - 1\n }\n }\n return batch\n }\n}\n\nclass ReadStream extends Readable {\n constructor (feed, opts = {}) {\n super()\n\n this.feed = feed\n this.start = opts.start || 0\n this.end = typeof opts.end === 'number' ? opts.end : -1\n this.live = !!opts.live\n this.snapshot = opts.snapshot !== false\n this.tail = !!opts.tail\n this.index = this.start\n this.options = { wait: opts.wait !== false, ifAvailable: !!opts.ifAvailable, valueEncoding: opts.valueEncoding }\n }\n\n _open (cb) {\n this.feed.ready((err) => {\n if (err) return cb(err)\n if (this.end === -1) {\n if (this.live) this.end = Infinity\n else if (this.snapshot) this.end = this.feed.length\n if (this.start > this.end) this.push(null)\n }\n if (this.tail) this.start = this.feed.length\n this.index = this.start\n cb(null)\n })\n }\n\n _read (cb) {\n if (this.index === this.end || (this.end === -1 && this.index >= this.feed.length)) {\n this.push(null)\n return cb(null)\n }\n this.feed.get(this.index++, this.options, (err, block) => {\n if (err) return cb(err)\n this.push(block)\n cb(null)\n })\n }\n}\n\nmodule.exports = { WriteStream, ReadStream }\n", "var low = require('last-one-wins')\nvar remove = require('unordered-array-remove')\nvar set = require('unordered-set')\nvar MerkleGenerator = require('merkle-tree-stream/generator')\nvar flat = require('flat-tree')\nvar codecs = require('codecs')\nvar batcher = require('atomic-batcher')\nvar inherits = require('inherits')\nvar bitfield = require('./lib/bitfield')\nvar sparseBitfield = require('sparse-bitfield')\nvar treeIndex = require('./lib/tree-index')\nvar storage = require('./lib/storage')\nvar crypto = require('hypercore-crypto')\nvar inspect = require('inspect-custom-symbol')\nvar pretty = require('pretty-hash')\nvar Nanoguard = require('nanoguard')\nvar safeBufferEquals = require('./lib/safe-buffer-equals')\nvar replicate = require('./lib/replicate')\nvar Protocol = require('hypercore-protocol')\nvar Message = require('abstract-extension')\nvar Nanoresource = require('nanoresource/emitter')\nvar defaultStorage = require('hypercore-default-storage')\nvar { WriteStream, ReadStream } = require('hypercore-streams')\n\nclass Extension extends Message {\n broadcast (message) {\n const feed = this.local.handlers\n const buf = this.encoding.encode(message)\n let broadcasted = false\n for (const peer of feed.peers) {\n broadcasted = true\n peer.extension(this.id, buf)\n }\n return broadcasted\n }\n\n send (message, peer) {\n peer.extension(this.id, this.encode(message))\n }\n}\n\nvar defaultCrypto = {\n sign (data, sk, cb) {\n return cb(null, crypto.sign(data, sk))\n },\n verify (sig, data, pk, cb) {\n return cb(null, crypto.verify(sig, data, pk))\n }\n}\n\nmodule.exports = Feed\n\nfunction Feed (createStorage, key, opts) {\n if (!(this instanceof Feed)) return new Feed(createStorage, key, opts)\n Nanoresource.call(this)\n\n if (typeof createStorage === 'string') createStorage = defaultStorageDir(createStorage)\n if (typeof createStorage !== 'function') throw new Error('Storage should be a function or string')\n\n if (typeof key === 'string') key = Buffer.from(key, 'hex')\n\n if (!Buffer.isBuffer(key) && !opts) {\n opts = key\n key = null\n }\n\n if (!opts) opts = {}\n\n var self = this\n\n var secretKey = opts.secretKey || null\n if (typeof secretKey === 'string') secretKey = Buffer.from(secretKey, 'hex')\n\n this.noiseKeyPair = opts.noiseKeyPair || Protocol.keyPair()\n this.live = opts.live !== false\n this.sparse = !!opts.sparse\n this.length = 0\n this.byteLength = 0\n this.maxRequests = opts.maxRequests || 16\n this.key = key || opts.key || null\n this.discoveryKey = this.key && crypto.discoveryKey(this.key)\n this.secretKey = secretKey\n this.bitfield = null\n this.tree = null\n this.writable = !!opts.writable\n this.readable = true\n this.downloading = opts.downloading !== false\n this.uploading = opts.uploading !== false\n this.allowPush = !!opts.allowPush\n this.peers = []\n this.ifAvailable = new Nanoguard()\n this.extensions = Extension.createLocal(this) // set Feed as the handlers\n\n this.crypto = opts.crypto || defaultCrypto\n\n // hooks\n this._onwrite = opts.onwrite || null\n\n this._force = !!opts.force\n this._expectedLength = -1\n this._indexing = !!opts.indexing\n this._createIfMissing = opts.createIfMissing !== false\n this._overwrite = !!opts.overwrite\n this._storeSecretKey = opts.storeSecretKey !== false\n this._alwaysIfAvailable = !!opts.ifAvailable\n this._merkle = null\n this._storage = storage(createStorage, opts)\n this._batch = batcher(this._onwrite ? workHook : work)\n\n this.timeouts = opts.timeouts || {\n get (cb) {\n cb(null)\n },\n update (cb) {\n cb(null)\n }\n }\n\n this._seq = 0\n this._waiting = []\n this._selections = []\n this._reserved = sparseBitfield()\n this._synced = null\n this._downloadingSet = typeof opts.downloading === 'boolean'\n\n this._stats = (typeof opts.stats !== 'undefined' && !opts.stats) ? null : {\n downloadedBlocks: 0,\n downloadedBytes: 0,\n uploadedBlocks: 0,\n uploadedBytes: 0\n }\n\n this._codec = toCodec(opts.valueEncoding)\n this._sync = low(sync)\n if (!this.sparse) this.download({ start: 0, end: -1 })\n\n if (this.sparse && opts.eagerUpdate) {\n this.update(function loop (err) {\n if (err) self.emit('update-error', err)\n self.update(loop)\n })\n }\n\n // open it right away\n this.open(onerror)\n\n function onerror (err) {\n if (err) self.emit('error', err)\n }\n\n function workHook (values, cb) {\n if (!self._merkle) return self._reloadMerkleStateBeforeAppend(workHook, values, cb)\n self._appendHook(values, cb)\n }\n\n function work (values, cb) {\n if (!self._merkle) return self._reloadMerkleStateBeforeAppend(work, values, cb)\n self._append(values, cb)\n }\n\n function sync (_, cb) {\n self._syncBitfield(cb)\n }\n}\n\ninherits(Feed, Nanoresource)\n\nFeed.discoveryKey = crypto.discoveryKey\n\nFeed.prototype[inspect] = function (depth, opts) {\n var indent = ''\n if (typeof opts.indentationLvl === 'number') {\n while (indent.length < opts.indentationLvl) indent += ' '\n }\n return 'Hypercore(\\n' +\n indent + ' key: ' + opts.stylize((this.key && pretty(this.key)), 'string') + '\\n' +\n indent + ' discoveryKey: ' + opts.stylize((this.discoveryKey && pretty(this.discoveryKey)), 'string') + '\\n' +\n indent + ' opened: ' + opts.stylize(this.opened, 'boolean') + '\\n' +\n indent + ' sparse: ' + opts.stylize(this.sparse, 'boolean') + '\\n' +\n indent + ' writable: ' + opts.stylize(this.writable, 'boolean') + '\\n' +\n indent + ' length: ' + opts.stylize(this.length, 'number') + '\\n' +\n indent + ' byteLength: ' + opts.stylize(this.byteLength, 'number') + '\\n' +\n indent + ' peers: ' + opts.stylize(this.peers.length, 'number') + '\\n' +\n indent + ')'\n}\n\n// TODO: instead of using a getter, update on remote-update/add/remove\nObject.defineProperty(Feed.prototype, 'remoteLength', {\n enumerable: true,\n get: function () {\n var len = 0\n for (var i = 0; i < this.peers.length; i++) {\n var remoteLength = this.peers[i].remoteLength\n if (remoteLength > len) len = remoteLength\n }\n return len\n }\n})\n\nObject.defineProperty(Feed.prototype, 'stats', {\n enumerable: true,\n get: function () {\n if (!this._stats) return null\n var peerStats = []\n for (var i = 0; i < this.peers.length; i++) {\n var peer = this.peers[i]\n peerStats[i] = peer.stats\n }\n return {\n peers: peerStats,\n totals: this._stats\n }\n }\n})\n\nFeed.prototype.replicate = function (initiator, opts) {\n if ((!this._selections.length || this._selections[0].end !== -1) && !this.sparse && !(opts && opts.live)) {\n // hack!! proper fix is to refactor ./replicate to *not* clear our non-sparse selection\n this.download({ start: 0, end: -1 })\n }\n\n if (isOptions(initiator) && !opts) {\n opts = initiator\n initiator = opts.initiator\n }\n\n opts = opts || {}\n opts.stats = !!this._stats\n opts.noise = !(opts.noise === false && opts.encrypted === false)\n\n return replicate(this, initiator, opts)\n}\n\nFeed.prototype.registerExtension = function (name, handlers) {\n return this.extensions.add(name, handlers)\n}\n\nFeed.prototype.onextensionupdate = function () {\n for (const peer of this.peers) peer._updateOptions()\n}\n\nFeed.prototype.setDownloading = function (downloading) {\n if (this.downloading === downloading && this._downloadingSet) return\n this.downloading = downloading\n this._downloadingSet = true\n this.ready((err) => {\n if (err) return\n for (const peer of this.peers) peer.setDownloading(this.downloading)\n })\n}\n\nFeed.prototype.setUploading = function (uploading) {\n if (uploading === this.uploading) return\n this.uploading = uploading\n this.ready((err) => {\n if (err) return\n for (const peer of this.peers) peer.setUploading(this.uploading)\n })\n}\n\n// Alias the nanoresource open method\nFeed.prototype.ready = Feed.prototype.open\n\nFeed.prototype.update = function (opts, cb) {\n if (typeof opts === 'function') return this.update(-1, opts)\n if (typeof opts === 'number') opts = { minLength: opts }\n if (!opts) opts = {}\n if (!cb) cb = noop\n\n var self = this\n var len = typeof opts.minLength === 'number' ? opts.minLength : -1\n\n this.ready(function (err) {\n if (err) return cb(err)\n if (len === -1) len = self.length + 1\n if (self.length >= len) return cb(null)\n\n const ifAvailable = typeof opts.ifAvailable === 'boolean'\n ? opts.ifAvailable\n : self._alwaysIfAvailable\n\n if (ifAvailable && self.writable && !opts.force) return cb(new Error('No update available from peers'))\n if (self.writable) cb = self._writeStateReloader(cb)\n\n var w = {\n hash: opts.hash !== false,\n bytes: 0,\n index: len - 1,\n options: opts,\n update: true,\n callback: cb\n }\n\n self._waiting.push(w)\n if (ifAvailable) self._ifAvailable(w, len)\n self._updatePeers()\n })\n}\n\n// Used to hint to the update guard if it can bail early\nFeed.prototype.setExpectedLength = function (len) {\n this._expectedLength = len\n this.ready((err) => {\n if (err) return\n\n this.ifAvailable.ready(() => {\n this._expectedLength = -1\n })\n\n if (this._expectedLength === -1 || this._expectedLength > this.length) return\n\n for (const w of this._waiting) {\n if (w.update && w.ifAvailable) w.callback(new Error('Expected length is less than current length'))\n }\n })\n}\n\n// Beware! This might break your core if you share forks with other people through replication\nFeed.prototype.truncate = function (newLength, cb) {\n if (!cb) cb = noop\n const self = this\n\n this.ready(function (err) {\n if (err) return cb(err)\n\n self._roots(newLength, function (err, roots) {\n if (err) return cb(err)\n\n const oldLength = self.length\n if (oldLength <= newLength) return cb(null)\n\n let byteLength = 0\n for (const { size } of roots) byteLength += size\n\n for (let i = oldLength; i < newLength; i++) self.data.set(i, false)\n self.byteLength = byteLength\n self.length = newLength\n self.tree.truncate(2 * newLength)\n self._merkle = new MerkleGenerator(crypto, roots)\n\n self._sync(null, function (err) {\n if (err) return cb(err)\n self._storage.deleteSignatures(newLength, oldLength, cb)\n })\n })\n })\n}\n\nFeed.prototype._ifAvailable = function (w, minLength) {\n var cb = w.callback\n var called = false\n var self = this\n\n w.callback = done\n w.ifAvailable = true\n\n if (this._expectedLength > -1 && this._expectedLength <= this.length) {\n return process.nextTick(w.callback, new Error('Expected length is less than current length'))\n }\n\n this.timeouts.update(function () {\n if (self.closed) return done(new Error('Closed'))\n\n process.nextTick(readyNT, self.ifAvailable, function () {\n if (self.closed) return done(new Error('Closed'))\n if (self.length >= minLength || self.remoteLength >= minLength) return\n done(new Error('No update available from peers'))\n })\n })\n\n function done (err) {\n if (called) return\n called = true\n\n var i = self._waiting.indexOf(w)\n if (i > -1) remove(self._waiting, i)\n cb(err)\n }\n}\n\nFeed.prototype._ifAvailableGet = function (w) {\n var cb = w.callback\n var called = false\n var self = this\n\n w.callback = done\n\n self.timeouts.get(function () {\n if (self.closed) return done(new Error('Closed'))\n\n process.nextTick(readyNT, self.ifAvailable, function () {\n if (self.closed) return done(new Error('Closed'))\n\n for (var i = 0; i < self.peers.length; i++) {\n var peer = self.peers[i]\n if (peer.remoteBitfield.get(w.index)) return\n }\n done(new Error('Block not available from peers'))\n })\n })\n\n function done (err, data) {\n if (called) return\n called = true\n\n var i = self._waiting.indexOf(w)\n if (i > -1) remove(self._waiting, i)\n cb(err, data)\n }\n}\n\n// will reload the writable state. used by .update on a writable peer\nFeed.prototype._writeStateReloader = function (cb) {\n var self = this\n return function (err) {\n if (err) return cb(err)\n self._reloadMerkleState(cb)\n }\n}\n\nFeed.prototype._reloadMerkleState = function (cb) {\n var self = this\n\n this._roots(self.length, function (err, roots) {\n if (err) return cb(err)\n self._merkle = new MerkleGenerator(crypto, roots)\n cb(null)\n })\n}\n\nFeed.prototype._reloadMerkleStateBeforeAppend = function (work, values, cb) {\n this._reloadMerkleState(function (err) {\n if (err) return cb(err)\n work(values, cb)\n })\n}\n\nFeed.prototype._open = function (cb) {\n var self = this\n var generatedKey = false\n var retryOpen = true\n\n // TODO: clean up the duplicate code below ...\n\n this._storage.openKey(function (_, key) {\n if (key && !self._overwrite && !self.key) self.key = key\n\n if (!self.key && self.live) {\n var keyPair = crypto.keyPair()\n self.secretKey = keyPair.secretKey\n self.key = keyPair.publicKey\n generatedKey = true\n }\n\n self.discoveryKey = self.key && crypto.discoveryKey(self.key)\n self._storage.open({ key: self.key, discoveryKey: self.discoveryKey }, onopen)\n })\n\n function onopen (err, state) {\n if (err) return cb(err)\n\n // if no key but we have data do a bitfield reset since we cannot verify the data.\n if (!state.key && state.bitfield.length) {\n self._overwrite = true\n }\n\n if (self._force && state.key && self.key && Buffer.compare(state.key, self.key) !== 0) {\n self._overwrite = true\n }\n\n if (self._overwrite) {\n state.bitfield = []\n state.key = state.secretKey = null\n }\n\n self.bitfield = bitfield(state.bitfieldPageSize, state.bitfield)\n self.tree = treeIndex(self.bitfield.tree)\n self.length = self.tree.blocks()\n self._seq = self.length\n\n if (state.key && self.key && Buffer.compare(state.key, self.key) !== 0) {\n return self._forceClose(cb, new Error('Another hypercore is stored here'))\n }\n\n if (state.key) self.key = state.key\n if (state.secretKey) self.secretKey = state.secretKey\n\n if (!self.length) return onsignature(null, null)\n self._storage.getSignature(self.length - 1, onsignature)\n\n function onsignature (_, sig) {\n if (self.length) self.live = !!sig\n\n if ((generatedKey || !self.key) && !self._createIfMissing) {\n return self._forceClose(cb, new Error('No hypercore is stored here'))\n }\n\n if (!self.key && self.live) {\n var keyPair = crypto.keyPair()\n self.secretKey = keyPair.secretKey\n self.key = keyPair.publicKey\n }\n\n var writable = !!self.secretKey || self.key === null\n\n if (!writable && self.writable) return self._forceClose(cb, new Error('Feed is not writable'))\n self.writable = writable\n if (!self._downloadingSet) self.downloading = !writable\n self.discoveryKey = self.key && crypto.discoveryKey(self.key)\n\n if (self._storeSecretKey && !self.secretKey) {\n self._storeSecretKey = false\n }\n\n var shouldWriteKey = generatedKey || !safeBufferEquals(self.key, state.key)\n var shouldWriteSecretKey = self._storeSecretKey && (generatedKey || !safeBufferEquals(self.secretKey, state.secretKey))\n\n var missing = 1 +\n (shouldWriteKey ? 1 : 0) +\n (shouldWriteSecretKey ? 1 : 0) +\n (self._overwrite ? 1 : 0)\n var error = null\n\n if (shouldWriteKey) self._storage.key.write(0, self.key, done)\n if (shouldWriteSecretKey) self._storage.secretKey.write(0, self.secretKey, done)\n\n if (self._overwrite) {\n self._storage.bitfield.del(32, Infinity, done)\n }\n\n done(null)\n\n function done (err) {\n if (err) error = err\n if (--missing) return\n if (error) return self._forceClose(cb, error)\n self._roots(self.length, onroots)\n }\n\n function onroots (err, roots) {\n if (err && retryOpen) {\n retryOpen = false\n self.length--\n self._storage.getSignature(self.length - 1, onsignature)\n return\n }\n\n if (err) return self._forceClose(cb, err)\n\n self._merkle = new MerkleGenerator(crypto, roots)\n self.byteLength = roots.reduce(addSize, 0)\n self.emit('ready')\n\n cb(null)\n }\n }\n }\n}\n\nFeed.prototype.download = function (range, cb) {\n if (typeof range === 'function') return this.download(null, range)\n if (typeof range === 'number') range = { start: range, end: range + 1 }\n if (Array.isArray(range)) range = { blocks: range }\n if (!range) range = {}\n if (!cb) cb = noop\n if (!this.readable) return cb(new Error('Feed is closed'))\n\n // TODO: if no peers, check if range is already satisfied and nextTick(cb) if so\n // this._updatePeers does this for us when there is a peer though, so not critical\n\n // We need range.start, end for the want messages so make sure to infer these\n // when blocks are passed and start,end is not set\n if (range.blocks && typeof range.start !== 'number') {\n var min = -1\n var max = 0\n\n for (var i = 0; i < range.blocks.length; i++) {\n const blk = range.blocks[i]\n if (min === -1 || blk < min) min = blk\n if (blk >= max) max = blk + 1\n }\n\n range.start = min === -1 ? 0 : min\n range.end = max\n }\n\n var sel = {\n _index: this._selections.length,\n hash: !!range.hash,\n iterator: null,\n start: range.start || 0,\n end: range.end || -1,\n want: 0,\n linear: !!range.linear,\n blocks: range.blocks || null,\n blocksDownloaded: 0,\n requested: 0,\n callback: cb\n }\n\n sel.want = toWantRange(sel.start)\n\n this._selections.push(sel)\n this._updatePeers()\n\n return sel\n}\n\nFeed.prototype.undownload = function (range) {\n if (typeof range === 'number') range = { start: range, end: range + 1 }\n if (!range) range = {}\n\n if (range.callback && range._index > -1) {\n set.remove(this._selections, range)\n process.nextTick(range.callback, createError('ECANCELED', -11, 'Download was cancelled'))\n return\n }\n\n var start = range.start || 0\n var end = range.end || -1\n var hash = !!range.hash\n var linear = !!range.linear\n\n for (var i = 0; i < this._selections.length; i++) {\n var s = this._selections[i]\n\n if (s.start === start && s.end === end && s.hash === hash && s.linear === linear) {\n set.remove(this._selections, s)\n process.nextTick(range.callback, createError('ECANCELED', -11, 'Download was cancelled'))\n return\n }\n }\n}\n\nFeed.prototype.digest = function (index) {\n return this.tree.digest(2 * index)\n}\n\nFeed.prototype.proof = function (index, opts, cb) {\n if (typeof opts === 'function') return this.proof(index, null, opts)\n if (!this.opened) return this._readyAndProof(index, opts, cb)\n if (!opts) opts = {}\n\n var proof = this.tree.proof(2 * index, opts)\n if (!proof) return cb(new Error('No proof available for this index'))\n\n var needsSig = this.live && !!proof.verifiedBy\n var pending = proof.nodes.length + (needsSig ? 1 : 0)\n var error = null\n var signature = null\n var nodes = new Array(proof.nodes.length)\n\n if (!pending) return cb(null, { nodes: nodes, signature: null })\n\n for (var i = 0; i < proof.nodes.length; i++) {\n this._storage.getNode(proof.nodes[i], onnode)\n }\n if (needsSig) {\n this._storage.getSignature(proof.verifiedBy / 2 - 1, onsignature)\n }\n\n function onsignature (err, sig) {\n if (sig) signature = sig\n onnode(err, null)\n }\n\n function onnode (err, node) {\n if (err) error = err\n\n if (node) {\n nodes[proof.nodes.indexOf(node.index)] = node\n }\n\n if (--pending) return\n if (error) return cb(error)\n cb(null, { nodes: nodes, signature: signature })\n }\n}\n\nFeed.prototype._readyAndProof = function (index, opts, cb) {\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n self.proof(index, opts, cb)\n })\n}\n\nFeed.prototype.put = function (index, data, proof, cb) {\n if (!this.opened) return this._readyAndPut(index, data, proof, cb)\n this._putBuffer(index, data === null ? null : this._codec.encode(data), proof, null, cb)\n}\n\nFeed.prototype.cancel = function (start, end) { // TODO: use same argument scheme as download\n if (typeof start !== 'symbol') {\n if (!end) end = start + 1\n\n // cancel these right away as .download does not wait for ready\n for (var i = this._selections.length - 1; i >= 0; i--) {\n var sel = this._selections[i]\n if (start <= sel.start && sel.end <= end) {\n this.undownload(sel)\n }\n }\n }\n\n // defer the last part until after ready as .get does that as well\n if (this.opened) this._cancel(start, end)\n else this._readyAndCancel(start, end)\n}\n\nFeed.prototype._cancel = function (start, end) {\n var i = 0\n\n if (typeof start === 'symbol') {\n for (i = this._waiting.length - 1; i >= 0; i--) {\n const w = this._waiting[i]\n if (w.options.cancel === start) {\n remove(this._waiting, i)\n this._reserved.set(w.index, false)\n if (w.callback) process.nextTick(w.callback, new Error('Request cancelled'))\n this._updatePeers()\n return\n }\n }\n return\n }\n\n for (i = start; i < end; i++) {\n this._reserved.set(i, false) // TODO: send cancel message if set returns true\n }\n\n for (i = this._waiting.length - 1; i >= 0; i--) {\n var w = this._waiting[i]\n if ((start <= w.start && w.end <= end) || (start <= w.index && w.index < end)) {\n remove(this._waiting, i)\n if (w.callback) process.nextTick(w.callback, new Error('Request cancelled'))\n }\n }\n}\n\nFeed.prototype.clear = function (start, end, opts, cb) { // TODO: use same argument scheme as download\n if (typeof end === 'function') return this.clear(start, start + 1, null, end)\n if (typeof opts === 'function') return this.clear(start, end, null, opts)\n if (!opts) opts = {}\n if (!end) end = start + 1\n if (!cb) cb = noop\n\n // TODO: this needs some work. fx we can only calc byte offset for blocks we know about\n // so internally we should make sure to only do that. We should use the merkle tree for this\n\n var self = this\n var byteOffset = start === 0 ? 0 : (typeof opts.byteOffset === 'number' ? opts.byteOffset : -1)\n var byteLength = typeof opts.byteLength === 'number' ? opts.byteLength : -1\n\n this.ready(function (err) {\n if (err) return cb(err)\n\n var modified = false\n\n // TODO: use a buffer.fill thing here to speed this up!\n\n for (var i = start; i < end; i++) {\n if (self.bitfield.set(i, false)) modified = true\n }\n\n if (!modified) return process.nextTick(cb)\n\n // TODO: write to a tmp/update file that we want to del this incase it crashes will del'ing\n\n self._unannounce({ start: start, length: end - start })\n if (opts.delete === false || self._indexing) return sync()\n if (byteOffset > -1) return onstartbytes(null, byteOffset)\n self._storage.dataOffset(start, [], onstartbytes)\n\n function sync () {\n self.emit('clear', start, end)\n self._sync(null, cb)\n }\n\n function onstartbytes (err, offset) {\n if (err) return cb(err)\n byteOffset = offset\n if (byteLength > -1) return onendbytes(null, byteLength + byteOffset)\n if (end === self.length) return onendbytes(null, self.byteLength)\n self._storage.dataOffset(end, [], onendbytes)\n }\n\n function onendbytes (err, end) {\n if (err) return cb(err)\n if (!self._storage.data.del) return sync() // Not all data storage impls del\n self._storage.data.del(byteOffset, end - byteOffset, sync)\n }\n })\n}\n\nFeed.prototype.signature = function (index, cb) {\n if (typeof index === 'function') return this.signature(this.length - 1, index)\n\n if (index < 0 || index >= this.length) return cb(new Error('No signature available for this index'))\n\n this._storage.nextSignature(index, cb)\n}\n\nFeed.prototype.verify = function (index, signature, cb) {\n var self = this\n\n this.rootHashes(index, function (err, roots) {\n if (err) return cb(err)\n\n var checksum = crypto.signable(roots, index + 1)\n\n verifyCompat(self, checksum, signature, function (err, valid) {\n if (err) return cb(err)\n\n if (!valid) return cb(new Error('Signature verification failed'))\n\n return cb(null, true)\n })\n })\n}\n\nFeed.prototype.rootHashes = function (index, cb) {\n this._getRootsToVerify(index * 2 + 2, {}, [], cb)\n}\n\nFeed.prototype.seek = function (bytes, opts, cb) {\n if (typeof opts === 'function') return this.seek(bytes, null, opts)\n if (!opts) opts = {}\n if (!this.opened) return this._readyAndSeek(bytes, opts, cb)\n\n var self = this\n\n if (bytes === this.byteLength) return process.nextTick(cb, null, this.length, 0)\n\n this._seek(bytes, function (err, index, offset) {\n if (!err && isBlock(index)) return done(index / 2, offset)\n if (opts.wait === false) return cb(err || new Error('Unable to seek to this offset'))\n\n var start = opts.start || 0\n var end = opts.end || -1\n\n if (!err) {\n var left = flat.leftSpan(index) / 2\n var right = flat.rightSpan(index) / 2 + 1\n\n if (left > start) start = left\n if (right < end || end === -1) end = right\n }\n\n if (end > -1 && end <= start) return cb(new Error('Unable to seek to this offset'))\n\n var w = {\n hash: opts.hash !== false,\n bytes: bytes,\n index: -1,\n ifAvailable: opts && typeof opts.ifAvailable === 'boolean' ? opts.ifAvailable : self._alwaysIfAvailable,\n start: start,\n end: end,\n want: toWantRange(start),\n requested: 0,\n callback: cb || noop\n }\n\n self._waiting.push(w)\n self._updatePeers()\n if (w.ifAvailable) self._ifAvailableSeek(w)\n })\n\n function done (index, offset) {\n for (var i = 0; i < self.peers.length; i++) {\n self.peers[i].haveBytes(bytes)\n }\n cb(null, index, offset)\n }\n}\n\nFeed.prototype._ifAvailableSeek = function (w) {\n var self = this\n var cb = w.callback\n\n self.timeouts.get(function () {\n if (self.closed) return done(new Error('Closed'))\n\n process.nextTick(readyNT, self.ifAvailable, function () {\n if (self.closed) return done(new Error('Closed'))\n\n let available = false\n for (const peer of self.peers) {\n const ite = peer._iterator\n let i = ite.seek(w.start).next(true)\n while (self.tree.get(i * 2) && i > -1) i = ite.next(true)\n if (i > -1 && (w.end === -1 || i < w.end)) {\n available = true\n break\n }\n }\n\n if (!available) done(new Error('Seek not available from peers'))\n })\n })\n\n function done (err) {\n var i = self._waiting.indexOf(w)\n if (i > -1) {\n remove(self._waiting, i)\n w.callback = noop\n cb(err)\n }\n }\n}\n\nFeed.prototype._seek = function (offset, cb) {\n if (offset === 0) return cb(null, 0, 0)\n\n var self = this\n var roots = flat.fullRoots(this.length * 2)\n var nearestRoot = 0\n\n loop(null, null)\n\n function onroot (top) {\n if (isBlock(top)) return cb(null, nearestRoot, offset)\n\n var left = flat.leftChild(top)\n while (!self.tree.get(left)) {\n if (isBlock(left)) return cb(null, nearestRoot, offset)\n left = flat.leftChild(left)\n }\n\n self._storage.getNode(left, onleftchild)\n }\n\n function onleftchild (err, node) {\n if (err) return cb(err)\n\n if (node.size > offset) {\n nearestRoot = node.index\n onroot(node.index)\n } else {\n offset -= node.size\n if (flat.parent(node.index) === nearestRoot) {\n nearestRoot = flat.sibling(node.index)\n onroot(nearestRoot)\n } else {\n onroot(flat.sibling(node.index))\n }\n }\n }\n\n function loop (err, node) {\n if (err) return cb(err)\n\n if (node) {\n if (node.size > offset) {\n nearestRoot = node.index\n return onroot(node.index)\n }\n offset -= node.size\n }\n\n if (!roots.length) return cb(new Error('Out of bounds'))\n self._storage.getNode(roots.shift(), loop)\n }\n}\n\nFeed.prototype._readyAndSeek = function (bytes, opts, cb) {\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n self.seek(bytes, opts, cb)\n })\n}\n\nFeed.prototype._getBuffer = function (index, cb) {\n this._storage.getData(index, cb)\n}\n\nFeed.prototype._putBuffer = function (index, data, proof, from, cb) {\n // TODO: this nodes in proof are not instances of our Node prototype\n // but just similar. Check if this has any v8 perf implications.\n\n // TODO: if the proof contains a valid signature BUT fails, emit a critical error\n // --> feed should be considered dead\n\n var self = this\n var trusted = -1\n var missing = []\n var next = 2 * index\n var i = data ? 0 : 1\n\n while (true) {\n if (this.tree.get(next)) {\n trusted = next\n break\n }\n\n var sib = flat.sibling(next)\n next = flat.parent(next)\n\n if (i < proof.nodes.length && proof.nodes[i].index === sib) {\n i++\n continue\n }\n\n if (!this.tree.get(sib)) break\n missing.push(sib)\n }\n\n if (trusted === -1 && this.tree.get(next)) trusted = next\n\n var error = null\n var trustedNode = null\n var missingNodes = new Array(missing.length)\n var pending = missing.length + (trusted > -1 ? 1 : 0)\n\n for (i = 0; i < missing.length; i++) this._storage.getNode(missing[i], onmissing)\n if (trusted > -1) this._storage.getNode(trusted, ontrusted)\n if (!missing.length && trusted === -1) onmissingloaded(null)\n\n function ontrusted (err, node) {\n if (err) error = err\n if (node) trustedNode = node\n if (!--pending) onmissingloaded(error)\n }\n\n function onmissing (err, node) {\n if (err) error = err\n if (node) missingNodes[missing.indexOf(node.index)] = node\n if (!--pending) onmissingloaded(error)\n }\n\n function onmissingloaded (err) {\n if (err) return cb(err)\n self._verifyAndWrite(index, data, proof, missingNodes, trustedNode, from, cb)\n }\n}\n\nFeed.prototype._readyAndPut = function (index, data, proof, cb) {\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n self.put(index, data, proof, cb)\n })\n}\n\nFeed.prototype._write = function (index, data, nodes, sig, from, cb) {\n if (!this._onwrite) return this._writeAfterHook(index, data, nodes, sig, from, cb)\n this._onwrite(index, data, from, writeHookDone(this, index, data, nodes, sig, from, cb))\n}\n\nfunction writeHookDone (self, index, data, nodes, sig, from, cb) {\n return function (err) {\n if (err) return cb(err)\n self._writeAfterHook(index, data, nodes, sig, from, cb)\n }\n}\n\nFeed.prototype._writeAfterHook = function (index, data, nodes, sig, from, cb) {\n var self = this\n var pending = nodes.length + 1 + (sig ? 1 : 0)\n var error = null\n\n for (var i = 0; i < nodes.length; i++) this._storage.putNode(nodes[i].index, nodes[i], ondone)\n if (data) this._storage.putData(index, data, nodes, ondone)\n else ondone()\n if (sig) this._storage.putSignature(sig.index, sig.signature, ondone)\n\n function ondone (err) {\n if (err) error = err\n if (--pending) return\n if (error) return cb(error)\n self._writeDone(index, data, nodes, from, cb)\n }\n}\n\nFeed.prototype._writeDone = function (index, data, nodes, from, cb) {\n for (var i = 0; i < nodes.length; i++) this.tree.set(nodes[i].index)\n this.tree.set(2 * index)\n\n if (data) {\n if (this.bitfield.set(index, true)) {\n if (this._stats) {\n this._stats.downloadedBlocks += 1\n this._stats.downloadedBytes += data.length\n }\n this.emit('download', index, data, from)\n }\n if (this.peers.length) this._announce({ start: index }, from)\n\n if (!this.writable) {\n if (!this._synced) this._synced = this.bitfield.iterator(0, this.length)\n if (this._synced.next() === -1) {\n this._synced.range(0, this.length)\n this._synced.seek(0)\n if (this._synced.next() === -1) {\n this.emit('sync')\n }\n }\n }\n }\n\n this._sync(null, cb)\n}\n\nFeed.prototype._verifyAndWrite = function (index, data, proof, localNodes, trustedNode, from, cb) {\n var visited = []\n var remoteNodes = proof.nodes\n var top = data ? new storage.Node(2 * index, crypto.data(data), data.length) : remoteNodes.shift()\n\n // check if we already have the hash for this node\n if (verifyNode(trustedNode, top)) {\n this._write(index, data, visited, null, from, cb)\n return\n }\n\n // keep hashing with siblings until we reach or trusted node\n while (true) {\n var node = null\n var next = flat.sibling(top.index)\n\n if (remoteNodes.length && remoteNodes[0].index === next) {\n node = remoteNodes.shift()\n visited.push(node)\n } else if (localNodes.length && localNodes[0].index === next) {\n node = localNodes.shift()\n } else {\n // we cannot create another parent, i.e. these nodes must be roots in the tree\n this._verifyRootsAndWrite(index, data, top, proof, visited, from, cb)\n return\n }\n\n visited.push(top)\n top = new storage.Node(flat.parent(top.index), crypto.parent(top, node), top.size + node.size)\n\n // the tree checks out, write the data and the visited nodes\n if (verifyNode(trustedNode, top)) {\n this._write(index, data, visited, null, from, cb)\n return\n }\n }\n}\n\nFeed.prototype._verifyRootsAndWrite = function (index, data, top, proof, nodes, from, cb) {\n var remoteNodes = proof.nodes\n var lastNode = remoteNodes.length ? remoteNodes[remoteNodes.length - 1].index : top.index\n var verifiedBy = Math.max(flat.rightSpan(top.index), flat.rightSpan(lastNode)) + 2\n var length = verifiedBy / 2\n var self = this\n\n this._getRootsToVerify(verifiedBy, top, remoteNodes, function (err, roots, extraNodes) {\n if (err) return cb(err)\n\n var checksum = crypto.signable(roots, length)\n var signature = null\n\n if (self.length && self.live && !proof.signature) {\n return cb(new Error('Remote did not include a signature'))\n }\n\n if (proof.signature) { // check signatures\n verifyCompat(self, checksum, proof.signature, function (err, valid) {\n if (err) return cb(err)\n if (!valid) return cb(new Error('Remote signature could not be verified'))\n\n signature = { index: verifiedBy / 2 - 1, signature: proof.signature }\n write()\n })\n } else { // check tree root\n if (Buffer.compare(checksum.slice(0, 32), self.key) !== 0) {\n return cb(new Error('Remote checksum failed'))\n }\n\n write()\n }\n\n function write () {\n self.live = !!signature\n\n if (length > self.length) {\n // TODO: only emit this after the info has been flushed to storage\n if (self.writable) self._merkle = null // We need to reload merkle state now\n self.length = length\n self._seq = length\n self.byteLength = roots.reduce(addSize, 0)\n if (self._synced) self._synced.seek(0, self.length)\n self.emit('append')\n }\n\n self._write(index, data, nodes.concat(extraNodes), signature, from, cb)\n }\n })\n}\n\nFeed.prototype._getRootsToVerify = function (verifiedBy, top, remoteNodes, cb) {\n var indexes = flat.fullRoots(verifiedBy)\n var roots = new Array(indexes.length)\n var nodes = []\n var error = null\n var pending = roots.length\n\n for (var i = 0; i < indexes.length; i++) {\n if (indexes[i] === top.index) {\n nodes.push(top)\n onnode(null, top)\n } else if (remoteNodes.length && indexes[i] === remoteNodes[0].index) {\n nodes.push(remoteNodes[0])\n onnode(null, remoteNodes.shift())\n } else if (this.tree.get(indexes[i])) {\n this._storage.getNode(indexes[i], onnode)\n } else {\n onnode(new Error('Missing tree roots needed for verify'))\n }\n }\n\n function onnode (err, node) {\n if (err) error = err\n if (node) roots[indexes.indexOf(node.index)] = node\n if (!--pending) done(error)\n }\n\n function done (err) {\n if (err) return cb(err)\n\n cb(null, roots, nodes)\n }\n}\n\nFeed.prototype._announce = function (message, from) {\n for (var i = 0; i < this.peers.length; i++) {\n var peer = this.peers[i]\n if (peer !== from) peer.have(message)\n }\n}\n\nFeed.prototype._unannounce = function (message) {\n for (var i = 0; i < this.peers.length; i++) this.peers[i].unhave(message)\n}\n\nFeed.prototype.downloaded = function (start, end, cb) {\n const count = this.bitfield.total(start, end)\n if (cb) process.nextTick(cb, null, count) // prepare async interface for this\n return count\n}\n\nFeed.prototype.has = function (start, end, cb) {\n if (typeof end === 'function') return this.has(start, undefined, end)\n if (end === undefined) {\n const res = this.bitfield.get(start)\n if (cb) process.nextTick(cb, null, res)\n return res\n }\n const total = end - start\n const res = total === this.bitfield.total(start, end)\n if (cb) process.nextTick(cb, null, res)\n return res\n}\n\nFeed.prototype.getBlockInfo = function (index, cb) {\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n self._storage.getNode(2 * index, cb)\n })\n}\n\nFeed.prototype.head = function (opts, cb) {\n if (typeof opts === 'function') return this.head({}, opts)\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n if (opts && opts.update) self.update(opts, onupdate)\n else process.nextTick(onupdate)\n })\n\n function onupdate () {\n if (self.length === 0) cb(new Error('feed is empty'))\n else self.get(self.length - 1, opts, cb)\n }\n}\n\nFeed.prototype.get = function (index, opts, cb) {\n if (typeof opts === 'function') return this.get(index, null, opts)\n\n opts = { ...opts }\n if (!opts.cancel) opts.cancel = Symbol('hypercore-get')\n\n if (!this.opened) return this._readyAndGet(index, opts, cb)\n\n if (!this.readable) {\n process.nextTick(cb, new Error('Feed is closed'))\n return opts.cancel\n }\n\n if (opts.timeout) cb = timeoutCallback(cb, opts.timeout)\n\n if (!this.bitfield.get(index)) {\n if (opts && opts.wait === false) return process.nextTick(cb, new Error('Block not downloaded'))\n\n var w = { bytes: 0, hash: false, index: index, options: opts, requested: 0, callback: cb }\n this._waiting.push(w)\n\n if (opts && typeof opts.ifAvailable === 'boolean' ? opts.ifAvailable : this._alwaysIfAvailable) this._ifAvailableGet(w)\n\n this._updatePeers()\n if (opts.onwait) {\n const onwait = opts.onwait\n opts.onwait = null\n onwait(index)\n }\n return opts.cancel\n }\n\n if (opts && opts.valueEncoding) cb = wrapCodec(toCodec(opts.valueEncoding), cb)\n else if (this._codec !== codecs.binary) cb = wrapCodec(this._codec, cb)\n\n this._getBuffer(index, cb)\n return opts.cancel\n}\n\nFeed.prototype._readyAndGet = function (index, opts, cb) {\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n self.get(index, opts, cb)\n })\n return opts.cancel\n}\n\nFeed.prototype.getBatch = function (start, end, opts, cb) {\n if (typeof opts === 'function') return this.getBatch(start, end, null, opts)\n if (!this.opened) return this._readyAndGetBatch(start, end, opts, cb)\n\n var self = this\n var wait = !opts || opts.wait !== false\n\n if (this.has(start, end)) return this._getBatch(start, end, opts, cb)\n if (!wait) return process.nextTick(cb, new Error('Block not downloaded'))\n\n if (opts && opts.timeout) cb = timeoutCallback(cb, opts.timeout)\n\n this.download({ start: start, end: end }, function (err) {\n if (err) return cb(err)\n self._getBatch(start, end, opts, cb)\n })\n}\n\nFeed.prototype._getBatch = function (start, end, opts, cb) {\n var enc = opts && opts.valueEncoding\n var codec = enc ? toCodec(enc) : this._codec\n\n this._storage.getDataBatch(start, end - start, onbatch)\n\n function onbatch (err, buffers) {\n if (err) return cb(err)\n\n var batch = new Array(buffers.length)\n\n for (var i = 0; i < buffers.length; i++) {\n try {\n batch[i] = codec ? codec.decode(buffers[i]) : buffers[i]\n } catch (err) {\n return cb(err)\n }\n }\n\n cb(null, batch)\n }\n}\n\nFeed.prototype._readyAndGetBatch = function (start, end, opts, cb) {\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n self.getBatch(start, end, opts, cb)\n })\n}\n\nFeed.prototype._updatePeers = function () {\n for (var i = 0; i < this.peers.length; i++) this.peers[i].update()\n}\n\nFeed.prototype.createWriteStream = function (opts) {\n return new WriteStream(this, opts)\n}\n\nFeed.prototype.createReadStream = function (opts) {\n return new ReadStream(this, opts)\n}\n\n// TODO: when calling finalize on a live feed write an END_OF_FEED block (length === 0?)\nFeed.prototype.finalize = function (cb) {\n if (!this.key) {\n this.key = crypto.tree(this._merkle.roots)\n this.discoveryKey = crypto.discoveryKey(this.key)\n }\n this._storage.key.write(0, this.key, cb)\n}\n\nFeed.prototype.append = function (batch, cb) {\n if (!cb) cb = noop\n\n var self = this\n var list = Array.isArray(batch) ? batch : [batch]\n this._batch(list, onappend)\n\n function onappend (err) {\n if (err) return cb(err)\n var seq = self._seq\n self._seq += list.length\n cb(null, seq)\n }\n}\n\nFeed.prototype.flush = function (cb) {\n this.append([], cb)\n}\n\nFeed.prototype.destroyStorage = function (cb) {\n const self = this\n\n this.close(function (err) {\n if (err) cb(err)\n else self._storage.destroy(cb)\n })\n}\n\nFeed.prototype._close = function (cb) {\n const self = this\n\n for (const peer of this.peers) {\n if (!peer._destroyed) peer._close()\n }\n\n this._forceClose(onclose, null)\n\n function onclose (err) {\n if (!err) self.emit('close')\n cb(err)\n }\n}\n\nFeed.prototype._forceClose = function (cb, error) {\n var self = this\n\n this.writable = false\n this.readable = false\n\n this._storage.close(function (err) {\n if (!err) err = error\n self._destroy(err || new Error('Feed is closed'))\n cb(err)\n })\n}\n\nFeed.prototype._destroy = function (err) {\n this.ifAvailable.destroy()\n\n while (this._waiting.length) {\n this._waiting.pop().callback(err)\n }\n while (this._selections.length) {\n this._selections.pop().callback(err)\n }\n}\n\nFeed.prototype._appendHook = function (batch, cb) {\n var self = this\n var missing = batch.length\n var error = null\n\n if (!missing) return this._append(batch, cb)\n for (var i = 0; i < batch.length; i++) {\n this._onwrite(i + this.length, batch[i], null, done)\n }\n\n function done (err) {\n if (err) error = err\n if (--missing) return\n if (error) return cb(error)\n self._append(batch, cb)\n }\n}\n\nFeed.prototype._append = function (batch, cb) {\n if (!this.opened) return this._readyAndAppend(batch, cb)\n if (!this.writable) return cb(new Error('This feed is not writable. Did you create it?'))\n\n var self = this\n var pending = 1\n var offset = 0\n var error = null\n var nodeBatch = new Array(batch.length ? batch.length * 2 - 1 : 0)\n var nodeOffset = this.length * 2\n var dataBatch = new Array(batch.length)\n\n if (!pending) return cb()\n\n for (var i = 0; i < batch.length; i++) {\n var data = this._codec.encode(batch[i])\n var nodes = this._merkle.next(data)\n\n // the replication stream rejects frames >8MB for DOS defense. Is configurable there, so\n // we could bubble that up here. For now just hardcode it so you can't accidentally \"brick\" your core\n // note: this is *only* for individual blocks and is just a sanity check. most blocks are <1MB\n if (data.length > 8388608) return cb(new Error('Individual blocks has be less than 8MB'))\n\n offset += data.length\n dataBatch[i] = data\n\n for (var j = 0; j < nodes.length; j++) {\n var node = nodes[j]\n if (node.index >= nodeOffset && node.index - nodeOffset < nodeBatch.length) {\n nodeBatch[node.index - nodeOffset] = node\n } else {\n pending++\n this._storage.putNode(node.index, node, done)\n }\n }\n }\n\n if (this.live && batch.length) {\n pending++\n this.crypto.sign(crypto.signable(this._merkle.roots, self.length + batch.length), this.secretKey, function (err, sig) {\n if (err) return done(err)\n self._storage.putSignature(self.length + batch.length - 1, sig, done)\n })\n }\n\n if (!this._indexing) {\n pending++\n if (dataBatch.length === 1) this._storage.data.write(this.byteLength, dataBatch[0], done)\n else this._storage.data.write(this.byteLength, Buffer.concat(dataBatch), done)\n }\n\n this._storage.putNodeBatch(nodeOffset, nodeBatch, done)\n\n function done (err) {\n if (err) error = err\n if (--pending) return\n if (error) return cb(error)\n\n var start = self.length\n\n // TODO: only emit append and update length / byteLength after the info has been flushed to storage\n self.byteLength += offset\n for (var i = 0; i < batch.length; i++) {\n self.bitfield.set(self.length, true)\n self.tree.set(2 * self.length++)\n }\n self.emit('append')\n\n var message = self.length - start > 1 ? { start: start, length: self.length - start } : { start: start }\n if (self.peers.length) self._announce(message)\n\n self._sync(null, cb)\n }\n}\n\nFeed.prototype._readyAndAppend = function (batch, cb) {\n var self = this\n this.ready(function (err) {\n if (err) return cb(err)\n self._append(batch, cb)\n })\n}\n\nFeed.prototype._readyAndCancel = function (start, end) {\n var self = this\n this.ready(function () {\n self._cancel(start, end)\n })\n}\n\nFeed.prototype._pollWaiting = function () {\n var len = this._waiting.length\n\n for (var i = 0; i < len; i++) {\n var next = this._waiting[i]\n if (!next.bytes && !this.bitfield.get(next.index) && (!next.hash || !this.tree.get(next.index * 2))) {\n continue\n }\n\n remove(this._waiting, i--)\n len--\n\n if (next.bytes) this.seek(next.bytes, next, next.callback)\n else if (next.update) this.update(next.index + 1, next.callback)\n else this.get(next.index, next.options, next.callback)\n }\n}\n\nFeed.prototype._syncBitfield = function (cb) {\n var missing = this.bitfield.pages.updates.length\n var next = null\n var error = null\n\n // All data / nodes have been written now. We still need to update the bitfields though\n\n // TODO 1: if the program fails during this write the bitfield might not have been fully written\n // HOWEVER, we can easily recover from this by traversing the tree and checking if the nodes exists\n // on disk. So if a get fails, it should try and recover once.\n\n // TODO 2: if .writable append bitfield updates into a single buffer for extra perf\n // Added benefit is that if the program exits while flushing the bitfield the feed will only get\n // truncated and not have missing chunks which is what you expect.\n\n if (!missing) {\n this._pollWaiting()\n return cb(null)\n }\n\n while ((next = this.bitfield.pages.lastUpdate()) !== null) {\n this._storage.putBitfield(next.offset, next.buffer, ondone)\n }\n\n this._pollWaiting()\n\n function ondone (err) {\n if (err) error = err\n if (--missing) return\n cb(error)\n }\n}\n\nFeed.prototype._roots = function (index, cb) {\n var roots = flat.fullRoots(2 * index)\n var result = new Array(roots.length)\n var pending = roots.length\n var error = null\n\n if (!pending) return cb(null, result)\n\n for (var i = 0; i < roots.length; i++) {\n this._storage.getNode(roots[i], onnode)\n }\n\n function onnode (err, node) {\n if (err) error = err\n if (node) result[roots.indexOf(node.index)] = node\n if (--pending) return\n if (error) return cb(error)\n cb(null, result)\n }\n}\n\nFeed.prototype.audit = function (cb) {\n if (!cb) cb = noop\n\n var self = this\n var report = {\n valid: 0,\n invalid: 0\n }\n\n this.ready(function (err) {\n if (err) return cb(err)\n\n var block = 0\n var max = self.length\n\n next()\n\n function onnode (err, node) {\n if (err) return ondata(null, null)\n self._storage.getData(block, ondata)\n\n function ondata (_, data) {\n var verified = data && crypto.data(data).equals(node.hash)\n if (verified) report.valid++\n else report.invalid++\n self.bitfield.set(block, verified)\n block++\n next()\n }\n }\n\n function next () {\n while (block < max && !self.bitfield.get(block)) block++\n if (block >= max) return done()\n self._storage.getNode(2 * block, onnode)\n }\n\n function done () {\n self._sync(null, function (err) {\n if (err) return cb(err)\n cb(null, report)\n })\n }\n })\n}\n\nFeed.prototype.extension = function (name, message) {\n var peers = this.peers\n\n for (var i = 0; i < peers.length; i++) {\n peers[i].extension(name, message)\n }\n}\n\nfunction noop () {}\n\nfunction verifyNode (trusted, node) {\n return trusted && trusted.index === node.index && Buffer.compare(trusted.hash, node.hash) === 0\n}\n\nfunction addSize (size, node) {\n return size + node.size\n}\n\nfunction isBlock (index) {\n return (index & 1) === 0\n}\n\nfunction toCodec (enc) {\n // Switch to ndjson encoding if JSON is used. That way data files parse like ndjson \\o/\n return codecs(enc === 'json' ? 'ndjson' : enc)\n}\n\nfunction wrapCodec (enc, cb) {\n return function (err, buf) {\n if (err) return cb(err)\n try {\n buf = enc.decode(buf)\n } catch (err) {\n return cb(err)\n }\n cb(null, buf)\n }\n}\n\nfunction timeoutCallback (cb, timeout) {\n var failed = false\n var id = setTimeout(ontimeout, timeout)\n return done\n\n function ontimeout () {\n failed = true\n // TODO: make libs/errors for all this stuff\n var err = new Error('ETIMEDOUT')\n err.code = 'ETIMEDOUT'\n cb(err)\n }\n\n function done (err, val) {\n if (failed) return\n clearTimeout(id)\n cb(err, val)\n }\n}\n\nfunction toWantRange (i) {\n return Math.floor(i / 1024 / 1024) * 1024 * 1024\n}\n\nfunction createError (code, errno, msg) {\n var err = new Error(msg)\n err.code = code\n err.errno = errno\n return err\n}\n\nfunction defaultStorageDir (directory) {\n return function (name) {\n return defaultStorage(name, { directory })\n }\n}\n\nfunction isOptions (initiator) {\n return !Protocol.isProtocolStream(initiator) &&\n typeof initiator === 'object' &&\n !!initiator &&\n typeof initiator.initiator === 'boolean'\n}\n\nfunction readyNT (ifAvailable, fn) {\n ifAvailable.ready(fn)\n}\n\nfunction verifyCompat (self, checksum, signature, cb) {\n self.crypto.verify(checksum, signature, self.key, function (err, valid) {\n if (err || valid) return cb(err, valid)\n // compat mode, will be removed in a later version\n self.crypto.verify(checksum.slice(0, 32), signature, self.key, cb)\n })\n}\n", "//\n// Copyright 2021 DXOS.org\n//\n\nexport { default as hypercore } from 'hypercore';\nexport type { Hypercore, HypercoreOptions, HypercoreProperties, ReadStreamOptions } from 'hypercore';\n\nexport * from './crypto';\nexport * from './defaults';\nexport * from './hypercore-factory';\nexport * from './iterator';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type AbstractValueEncoding, type Crypto } from 'hypercore';\nimport { callbackify } from 'node:util';\n\nimport { type Codec, type EncodingOptions } from '@dxos/codec-protobuf';\nimport { type Signer, verifySignature } from '@dxos/crypto';\nimport { invariant } from '@dxos/invariant';\nimport { type PublicKey } from '@dxos/keys';\nimport { arrayToBuffer } from '@dxos/util';\n\n/**\n * Create encoding (e.g., from protobuf codec).\n */\nexport const createCodecEncoding = <T>(codec: Codec<T>, opts?: EncodingOptions): AbstractValueEncoding<T> => ({\n encode: (obj: T) => arrayToBuffer(codec.encode(obj, opts)),\n decode: (buffer: Buffer) => codec.decode(buffer, opts),\n});\n\n/**\n * Create a custom hypercore crypto signer.\n */\n// TODO(burdon): Create test without adding deps.\nexport const createCrypto = (signer: Signer, publicKey: PublicKey): Crypto => {\n invariant(signer);\n invariant(publicKey);\n\n return {\n sign: (message, secretKey, cb) => {\n callbackify(signer.sign.bind(signer!))(publicKey, message, (err, result) => {\n if (err) {\n cb(err, null);\n return;\n }\n\n cb(null, arrayToBuffer(result));\n });\n },\n\n verify: async (message, signature, key, cb) => {\n // NOTE: Uses the public key passed into function.\n callbackify(verifySignature)(publicKey, message, signature, cb);\n },\n };\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport type { HypercoreOptions, ReadStreamOptions, ReplicationOptions, WriteStreamOptions } from 'hypercore';\n\n/**\n * https://github.com/hypercore-protocol/hypercore/tree/v9.12.0#var-feed--hypercorestorage-key-options\n */\nexport const defaultFeedOptions: HypercoreOptions = {\n createIfMissing: true,\n valueEncoding: 'binary',\n};\n\n/**\n * https://github.com/hypercore-protocol/hypercore/tree/v9.12.0#var-stream--feedcreatereadstreamoptions\n */\nexport const defaultReadStreamOptions: ReadStreamOptions = {\n start: 0,\n end: Infinity,\n snapshot: true,\n tail: false,\n live: false,\n timeout: 0,\n wait: true,\n batch: 1,\n};\n\n/**\n * https://github.com/hypercore-protocol/hypercore/tree/v9.12.0#var-stream--feedcreatewritestreamopts\n */\nexport const defaultWriteStreamOptions: WriteStreamOptions = {\n maxBlockSize: Infinity,\n};\n\n/**\n * https://github.com/hypercore-protocol/hypercore/tree/v9.12.0#var-stream--feedreplicateisinitiator-options\n */\nexport const defaultReplicateOptions: ReplicationOptions = {\n live: false,\n ack: false,\n download: true,\n upload: true,\n encrypted: true,\n noise: true,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport hypercore from 'hypercore';\nimport type { Hypercore, HypercoreOptions } from 'hypercore';\n\nimport { invariant } from '@dxos/invariant';\nimport { createStorage, type Directory, StorageType } from '@dxos/random-access-storage';\n\nimport { py } from './util';\n\n/**\n * Creates feeds with default properties.\n */\nexport class HypercoreFactory<T> {\n constructor(\n private readonly _root: Directory = createStorage({ type: StorageType.RAM }).createDirectory(),\n private readonly _options?: HypercoreOptions,\n ) {\n invariant(this._root);\n }\n\n /**\n * Creates a feed using a storage factory prefixed with the feed's key.\n * NOTE: We have to use our `random-access-storage` implementation since the native ones\n * do not behave uniformly across platforms.\n */\n createFeed(publicKey: Buffer, options?: HypercoreOptions): Hypercore<T> {\n const directory = this._root.createDirectory(publicKey.toString('hex'));\n const storage = (filename: string) => directory.getOrCreateFile(filename).native;\n return hypercore(storage, publicKey, Object.assign({}, this._options, options));\n }\n\n /**\n * Creates and opens a feed.\n */\n async openFeed(publicKey: Buffer, options?: HypercoreOptions): Promise<Hypercore<T>> {\n const feed = this.createFeed(publicKey, options);\n await py(feed, feed.open)(); // TODO(burdon): Sometimes strange bug if done inside function.\n return feed;\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport util from 'node:util';\n\nexport const py = (obj: any, fn: Function) => util.promisify(fn.bind(obj));\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Readable } from 'readable-stream';\nimport { type Readable as StreamXReadable } from 'streamx';\n\n/**\n * Wraps streamx.Readable (hypercore.createReadStream) to a standard Readable stream.\n *\n * The read-stream package is mirror of the streams implementations in Node.js 18.9.0.\n * This function is here to standardize the cast in case there are incompatibilities\n * across different platforms.\n *\n * Hypercore createReadStream returns a `streamx` Readable, which does not close properly on destroy.\n *\n * https://github.com/nodejs/readable-stream\n * https://nodejs.org/api/stream.html#readable-streams\n * https://nodejs.org/dist/v18.9.0/docs/api/stream.html#readablewrapstream\n */\nexport const createReadable = (stream: StreamXReadable): Readable => {\n return new Readable({ objectMode: true }).wrap(stream as any);\n};\n\n/**\n * Converts streamx.Readable (hypercore.createReadStream) to an async iterator.\n *\n * https://github.com/tc39/proposal-async-iteration\n * https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-3.html#async-iteration\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols\n */\nexport const createAsyncIterator = (stream: Readable): AsyncIterator<any> => {\n return stream[Symbol.asyncIterator]();\n};\n"],
5
- "mappings": "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",
6
- "names": ["import_invariant", "import_node_util", "exports", "module", "util", "i", "bitfield", "b", "err", "node", "require_uint64be", "clone", "parent", "depth", "require_nanoassert", "require_encode", "require_decode", "require_length", "require_varint", "fill", "enc", "encodingLength", "encode", "decode", "length", "require_browser", "useColors", "timeout", "rle", "Proxy", "get", "target", "prop", "Error", "Readable", "createStorage", "w", "end", "res", "import_hypercore", "__toESM", "createCodecEncoding", "codec", "opts", "obj", "arrayToBuffer", "buffer", "createCrypto", "signer", "publicKey", "invariant", "sign", "message", "secretKey", "cb", "callbackify", "bind", "result", "verify", "signature", "key", "verifySignature", "defaultFeedOptions", "createIfMissing", "valueEncoding", "defaultReadStreamOptions", "start", "Infinity", "snapshot", "tail", "live", "wait", "batch", "defaultWriteStreamOptions", "maxBlockSize", "defaultReplicateOptions", "ack", "download", "upload", "encrypted", "noise", "py", "fn", "promisify", "HypercoreFactory", "constructor", "_root", "type", "StorageType", "RAM", "createDirectory", "_options", "createFeed", "options", "directory", "toString", "storage", "filename", "getOrCreateFile", "native", "hypercore", "Object", "assign", "openFeed", "feed", "open", "createReadable", "stream", "objectMode", "wrap", "createAsyncIterator", "Symbol", "asyncIterator"]
5
+ "mappings": "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",
6
+ "names": ["_options", "invariant", "__defProp", "__getOwnPropDesc", "__toESM", "__create", "__getProtoOf", "__copyProps", "exports", "module", "util", "exports2", "i", "bitfield", "err", "node", "require_uint64be", "import$sodium_universal", "import$node_util", "parent", "depth", "clone", "require_nanoassert", "require_encode", "require_decode", "require_length", "require_varint", "enc", "encode", "decode", "import$sodium_native", "length", "import$node_timers", "require_browser", "import$node_os", "import$node_tty", "useColors", "timeout", "import$node_events", "Proxy", "get", "prop", "Error", "createStorage", "w", "end", "import_hypercore", "verifySignature", "arrayToBuffer", "createCodecEncoding", "publicKey", "sign", "callbackify", "cb", "verify", "defaultFeedOptions", "createIfMissing", "valueEncoding", "defaultReadStreamOptions", "start", "snapshot", "tail", "live", "defaultWriteStreamOptions", "maxBlockSize", "Infinity", "ack", "download", "upload", "encrypted", "noise", "py", "HypercoreFactory", "_root", "createFeed", "Readable", "createReadable", "stream", "createAsyncIterator", "Symbol", "asyncIterator"]
7
7
  }