@dxos/hypercore 0.3.8-next.f4e0086 → 0.3.9-main.14901ff

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_supports-color@8.1.1/node_modules/debug/src/common.js", "../../../../../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/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_supports-color@8.1.1/node_modules/debug/src/node.js", "../../../../../../node_modules/.pnpm/debug@4.3.4_supports-color@8.1.1/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": ["module", "module", "module", "module", "module", "module", "module", "util", "module", "module", "module", "module", "module", "module", "exports", "module", "module", "module", "i", "bitfield", "b", "module", "module", "module", "module", "module", "module", "err", "node", "require_uint64be", "module", "util", "module", "module", "module", "module", "module", "clone", "parent", "depth", "module", "module", "require_nanoassert", "module", "module", "module", "module", "module", "module", "module", "module", "err", "require_encode", "module", "require_decode", "module", "require_length", "module", "require_varint", "module", "module", "require_encode", "module", "require_decode", "module", "require_length", "module", "require_varint", "module", "module", "fill", "enc", "encodingLength", "encode", "decode", "module", "module", "module", "length", "module", "module", "module", "module", "module", "module", "module", "module", "require_browser", "module", "module", "module", "module", "util", "useColors", "module", "module", "timeout", "module", "module", "i", "module", "rle", "err", "module", "module", "exports", "Proxy", "get", "target", "prop", "Error", "module", "Readable", "module", "createStorage", "err", "w", "end", "res", "i", "import_hypercore", "createCodecEncoding", "codec", "opts", "encode", "obj", "arrayToBuffer", "decode", "buffer", "createCrypto", "signer", "publicKey", "invariant", "sign", "message", "secretKey", "cb", "callbackify", "bind", "err", "result", "verify", "signature", "key", "verifySignature", "defaultFeedOptions", "createIfMissing", "valueEncoding", "defaultReadStreamOptions", "start", "end", "Infinity", "snapshot", "tail", "live", "timeout", "wait", "batch", "defaultWriteStreamOptions", "maxBlockSize", "defaultReplicateOptions", "ack", "download", "upload", "encrypted", "noise", "import_invariant", "import_node_util", "py", "obj", "fn", "util", "promisify", "bind", "HypercoreFactory", "constructor", "_root", "createStorage", "type", "StorageType", "RAM", "createDirectory", "_options", "invariant", "createFeed", "publicKey", "options", "directory", "toString", "storage", "filename", "getOrCreateFile", "native", "hypercore", "Object", "assign", "openFeed", "feed", "py", "open", "createReadable", "stream", "Readable", "objectMode", "wrap", "createAsyncIterator", "Symbol", "asyncIterator"]
5
+ "mappings": "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",
6
+ "names": ["_options", "invariant", "__defProp", "__getOwnPropDesc", "__toESM", "__create", "__getProtoOf", "__copyProps", "module", "util", "exports", "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", "get", "target", "prop", "Error", "createStorage", "res", "import_hypercore", "callbackify", "verifySignature", "arrayToBuffer", "createCodecEncoding", "publicKey", "sign", "cb", "verify", "defaultFeedOptions", "createIfMissing", "valueEncoding", "defaultReadStreamOptions", "start", "end", "snapshot", "tail", "live", "defaultWriteStreamOptions", "maxBlockSize", "Infinity", "ack", "download", "upload", "encrypted", "noise", "py", "HypercoreFactory", "_root", "createFeed", "Readable", "createReadable", "stream", "createAsyncIterator", "Symbol", "asyncIterator"]
7
7
  }