simple-hypercore-protocol
Version:
Hypercore protocol state machine
1,190 lines (1,106 loc) • 30.7 kB
JavaScript
// This file is auto generated by the protocol-buffers compiler
/* eslint-disable quotes */
/* eslint-disable indent */
/* eslint-disable no-redeclare */
/* eslint-disable camelcase */
// Remember to `npm install --save protocol-buffers-encodings`
var encodings = require('protocol-buffers-encodings')
var varint = encodings.varint
var skip = encodings.skip
var NoisePayload = exports.NoisePayload = {
buffer: true,
encodingLength: null,
encode: null,
decode: null
}
var Open = exports.Open = {
buffer: true,
encodingLength: null,
encode: null,
decode: null
}
var Options = exports.Options = {
buffer: true,
encodingLength: null,
encode: null,
decode: null
}
var Status = exports.Status = {
buffer: true,
encodingLength: null,
encode: null,
decode: null
}
var Have = exports.Have = {
buffer: true,
encodingLength: null,
encode: null,
decode: null
}
var Unhave = exports.Unhave = {
buffer: true,
encodingLength: null,
encode: null,
decode: null
}
var Want = exports.Want = {
buffer: true,
encodingLength: null,
encode: null,
decode: null
}
var Unwant = exports.Unwant = {
buffer: true,
encodingLength: null,
encode: null,
decode: null
}
var Request = exports.Request = {
buffer: true,
encodingLength: null,
encode: null,
decode: null
}
var Cancel = exports.Cancel = {
buffer: true,
encodingLength: null,
encode: null,
decode: null
}
var Data = exports.Data = {
buffer: true,
encodingLength: null,
encode: null,
decode: null
}
var Close = exports.Close = {
buffer: true,
encodingLength: null,
encode: null,
decode: null
}
defineNoisePayload()
defineOpen()
defineOptions()
defineStatus()
defineHave()
defineUnhave()
defineWant()
defineUnwant()
defineRequest()
defineCancel()
defineData()
defineClose()
function defineNoisePayload () {
var enc = [
encodings.bytes
]
NoisePayload.encodingLength = encodingLength
NoisePayload.encode = encode
NoisePayload.decode = decode
function encodingLength (obj) {
var length = 0
if (!defined(obj.nonce)) throw new Error("nonce is required")
var len = enc[0].encodingLength(obj.nonce)
length += 1 + len
return length
}
function encode (obj, buf, offset) {
if (!offset) offset = 0
if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))
var oldOffset = offset
if (!defined(obj.nonce)) throw new Error("nonce is required")
buf[offset++] = 10
enc[0].encode(obj.nonce, buf, offset)
offset += enc[0].encode.bytes
encode.bytes = offset - oldOffset
return buf
}
function decode (buf, offset, end) {
if (!offset) offset = 0
if (!end) end = buf.length
if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid")
var oldOffset = offset
var obj = {
nonce: null
}
var found0 = false
while (true) {
if (end <= offset) {
if (!found0) throw new Error("Decoded message is not valid")
decode.bytes = offset - oldOffset
return obj
}
var prefix = varint.decode(buf, offset)
offset += varint.decode.bytes
var tag = prefix >> 3
switch (tag) {
case 1:
obj.nonce = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
found0 = true
break
default:
offset = skip(prefix & 7, buf, offset)
}
}
}
}
function defineOpen () {
var enc = [
encodings.bytes
]
Open.encodingLength = encodingLength
Open.encode = encode
Open.decode = decode
function encodingLength (obj) {
var length = 0
if (!defined(obj.discoveryKey)) throw new Error("discoveryKey is required")
var len = enc[0].encodingLength(obj.discoveryKey)
length += 1 + len
if (defined(obj.capability)) {
var len = enc[0].encodingLength(obj.capability)
length += 1 + len
}
return length
}
function encode (obj, buf, offset) {
if (!offset) offset = 0
if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))
var oldOffset = offset
if (!defined(obj.discoveryKey)) throw new Error("discoveryKey is required")
buf[offset++] = 10
enc[0].encode(obj.discoveryKey, buf, offset)
offset += enc[0].encode.bytes
if (defined(obj.capability)) {
buf[offset++] = 18
enc[0].encode(obj.capability, buf, offset)
offset += enc[0].encode.bytes
}
encode.bytes = offset - oldOffset
return buf
}
function decode (buf, offset, end) {
if (!offset) offset = 0
if (!end) end = buf.length
if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid")
var oldOffset = offset
var obj = {
discoveryKey: null,
capability: null
}
var found0 = false
while (true) {
if (end <= offset) {
if (!found0) throw new Error("Decoded message is not valid")
decode.bytes = offset - oldOffset
return obj
}
var prefix = varint.decode(buf, offset)
offset += varint.decode.bytes
var tag = prefix >> 3
switch (tag) {
case 1:
obj.discoveryKey = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
found0 = true
break
case 2:
obj.capability = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
break
default:
offset = skip(prefix & 7, buf, offset)
}
}
}
}
function defineOptions () {
var enc = [
encodings.string,
encodings.bool
]
Options.encodingLength = encodingLength
Options.encode = encode
Options.decode = decode
function encodingLength (obj) {
var length = 0
if (defined(obj.extensions)) {
for (var i = 0; i < obj.extensions.length; i++) {
if (!defined(obj.extensions[i])) continue
var len = enc[0].encodingLength(obj.extensions[i])
length += 1 + len
}
}
if (defined(obj.ack)) {
var len = enc[1].encodingLength(obj.ack)
length += 1 + len
}
return length
}
function encode (obj, buf, offset) {
if (!offset) offset = 0
if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))
var oldOffset = offset
if (defined(obj.extensions)) {
for (var i = 0; i < obj.extensions.length; i++) {
if (!defined(obj.extensions[i])) continue
buf[offset++] = 10
enc[0].encode(obj.extensions[i], buf, offset)
offset += enc[0].encode.bytes
}
}
if (defined(obj.ack)) {
buf[offset++] = 16
enc[1].encode(obj.ack, buf, offset)
offset += enc[1].encode.bytes
}
encode.bytes = offset - oldOffset
return buf
}
function decode (buf, offset, end) {
if (!offset) offset = 0
if (!end) end = buf.length
if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid")
var oldOffset = offset
var obj = {
extensions: [],
ack: false
}
while (true) {
if (end <= offset) {
decode.bytes = offset - oldOffset
return obj
}
var prefix = varint.decode(buf, offset)
offset += varint.decode.bytes
var tag = prefix >> 3
switch (tag) {
case 1:
obj.extensions.push(enc[0].decode(buf, offset))
offset += enc[0].decode.bytes
break
case 2:
obj.ack = enc[1].decode(buf, offset)
offset += enc[1].decode.bytes
break
default:
offset = skip(prefix & 7, buf, offset)
}
}
}
}
function defineStatus () {
var enc = [
encodings.bool
]
Status.encodingLength = encodingLength
Status.encode = encode
Status.decode = decode
function encodingLength (obj) {
var length = 0
if (defined(obj.uploading)) {
var len = enc[0].encodingLength(obj.uploading)
length += 1 + len
}
if (defined(obj.downloading)) {
var len = enc[0].encodingLength(obj.downloading)
length += 1 + len
}
return length
}
function encode (obj, buf, offset) {
if (!offset) offset = 0
if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))
var oldOffset = offset
if (defined(obj.uploading)) {
buf[offset++] = 8
enc[0].encode(obj.uploading, buf, offset)
offset += enc[0].encode.bytes
}
if (defined(obj.downloading)) {
buf[offset++] = 16
enc[0].encode(obj.downloading, buf, offset)
offset += enc[0].encode.bytes
}
encode.bytes = offset - oldOffset
return buf
}
function decode (buf, offset, end) {
if (!offset) offset = 0
if (!end) end = buf.length
if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid")
var oldOffset = offset
var obj = {
uploading: false,
downloading: false
}
while (true) {
if (end <= offset) {
decode.bytes = offset - oldOffset
return obj
}
var prefix = varint.decode(buf, offset)
offset += varint.decode.bytes
var tag = prefix >> 3
switch (tag) {
case 1:
obj.uploading = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
break
case 2:
obj.downloading = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
break
default:
offset = skip(prefix & 7, buf, offset)
}
}
}
}
function defineHave () {
var enc = [
encodings.varint,
encodings.bytes,
encodings.bool
]
Have.encodingLength = encodingLength
Have.encode = encode
Have.decode = decode
function encodingLength (obj) {
var length = 0
if (!defined(obj.start)) throw new Error("start is required")
var len = enc[0].encodingLength(obj.start)
length += 1 + len
if (defined(obj.length)) {
var len = enc[0].encodingLength(obj.length)
length += 1 + len
}
if (defined(obj.bitfield)) {
var len = enc[1].encodingLength(obj.bitfield)
length += 1 + len
}
if (defined(obj.ack)) {
var len = enc[2].encodingLength(obj.ack)
length += 1 + len
}
return length
}
function encode (obj, buf, offset) {
if (!offset) offset = 0
if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))
var oldOffset = offset
if (!defined(obj.start)) throw new Error("start is required")
buf[offset++] = 8
enc[0].encode(obj.start, buf, offset)
offset += enc[0].encode.bytes
if (defined(obj.length)) {
buf[offset++] = 16
enc[0].encode(obj.length, buf, offset)
offset += enc[0].encode.bytes
}
if (defined(obj.bitfield)) {
buf[offset++] = 26
enc[1].encode(obj.bitfield, buf, offset)
offset += enc[1].encode.bytes
}
if (defined(obj.ack)) {
buf[offset++] = 32
enc[2].encode(obj.ack, buf, offset)
offset += enc[2].encode.bytes
}
encode.bytes = offset - oldOffset
return buf
}
function decode (buf, offset, end) {
if (!offset) offset = 0
if (!end) end = buf.length
if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid")
var oldOffset = offset
var obj = {
start: 0,
length: 1,
bitfield: null,
ack: false
}
var found0 = false
while (true) {
if (end <= offset) {
if (!found0) throw new Error("Decoded message is not valid")
decode.bytes = offset - oldOffset
return obj
}
var prefix = varint.decode(buf, offset)
offset += varint.decode.bytes
var tag = prefix >> 3
switch (tag) {
case 1:
obj.start = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
found0 = true
break
case 2:
obj.length = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
break
case 3:
obj.bitfield = enc[1].decode(buf, offset)
offset += enc[1].decode.bytes
break
case 4:
obj.ack = enc[2].decode(buf, offset)
offset += enc[2].decode.bytes
break
default:
offset = skip(prefix & 7, buf, offset)
}
}
}
}
function defineUnhave () {
var enc = [
encodings.varint
]
Unhave.encodingLength = encodingLength
Unhave.encode = encode
Unhave.decode = decode
function encodingLength (obj) {
var length = 0
if (!defined(obj.start)) throw new Error("start is required")
var len = enc[0].encodingLength(obj.start)
length += 1 + len
if (defined(obj.length)) {
var len = enc[0].encodingLength(obj.length)
length += 1 + len
}
return length
}
function encode (obj, buf, offset) {
if (!offset) offset = 0
if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))
var oldOffset = offset
if (!defined(obj.start)) throw new Error("start is required")
buf[offset++] = 8
enc[0].encode(obj.start, buf, offset)
offset += enc[0].encode.bytes
if (defined(obj.length)) {
buf[offset++] = 16
enc[0].encode(obj.length, buf, offset)
offset += enc[0].encode.bytes
}
encode.bytes = offset - oldOffset
return buf
}
function decode (buf, offset, end) {
if (!offset) offset = 0
if (!end) end = buf.length
if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid")
var oldOffset = offset
var obj = {
start: 0,
length: 1
}
var found0 = false
while (true) {
if (end <= offset) {
if (!found0) throw new Error("Decoded message is not valid")
decode.bytes = offset - oldOffset
return obj
}
var prefix = varint.decode(buf, offset)
offset += varint.decode.bytes
var tag = prefix >> 3
switch (tag) {
case 1:
obj.start = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
found0 = true
break
case 2:
obj.length = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
break
default:
offset = skip(prefix & 7, buf, offset)
}
}
}
}
function defineWant () {
var enc = [
encodings.varint
]
Want.encodingLength = encodingLength
Want.encode = encode
Want.decode = decode
function encodingLength (obj) {
var length = 0
if (!defined(obj.start)) throw new Error("start is required")
var len = enc[0].encodingLength(obj.start)
length += 1 + len
if (defined(obj.length)) {
var len = enc[0].encodingLength(obj.length)
length += 1 + len
}
return length
}
function encode (obj, buf, offset) {
if (!offset) offset = 0
if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))
var oldOffset = offset
if (!defined(obj.start)) throw new Error("start is required")
buf[offset++] = 8
enc[0].encode(obj.start, buf, offset)
offset += enc[0].encode.bytes
if (defined(obj.length)) {
buf[offset++] = 16
enc[0].encode(obj.length, buf, offset)
offset += enc[0].encode.bytes
}
encode.bytes = offset - oldOffset
return buf
}
function decode (buf, offset, end) {
if (!offset) offset = 0
if (!end) end = buf.length
if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid")
var oldOffset = offset
var obj = {
start: 0,
length: 0
}
var found0 = false
while (true) {
if (end <= offset) {
if (!found0) throw new Error("Decoded message is not valid")
decode.bytes = offset - oldOffset
return obj
}
var prefix = varint.decode(buf, offset)
offset += varint.decode.bytes
var tag = prefix >> 3
switch (tag) {
case 1:
obj.start = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
found0 = true
break
case 2:
obj.length = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
break
default:
offset = skip(prefix & 7, buf, offset)
}
}
}
}
function defineUnwant () {
var enc = [
encodings.varint
]
Unwant.encodingLength = encodingLength
Unwant.encode = encode
Unwant.decode = decode
function encodingLength (obj) {
var length = 0
if (!defined(obj.start)) throw new Error("start is required")
var len = enc[0].encodingLength(obj.start)
length += 1 + len
if (defined(obj.length)) {
var len = enc[0].encodingLength(obj.length)
length += 1 + len
}
return length
}
function encode (obj, buf, offset) {
if (!offset) offset = 0
if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))
var oldOffset = offset
if (!defined(obj.start)) throw new Error("start is required")
buf[offset++] = 8
enc[0].encode(obj.start, buf, offset)
offset += enc[0].encode.bytes
if (defined(obj.length)) {
buf[offset++] = 16
enc[0].encode(obj.length, buf, offset)
offset += enc[0].encode.bytes
}
encode.bytes = offset - oldOffset
return buf
}
function decode (buf, offset, end) {
if (!offset) offset = 0
if (!end) end = buf.length
if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid")
var oldOffset = offset
var obj = {
start: 0,
length: 0
}
var found0 = false
while (true) {
if (end <= offset) {
if (!found0) throw new Error("Decoded message is not valid")
decode.bytes = offset - oldOffset
return obj
}
var prefix = varint.decode(buf, offset)
offset += varint.decode.bytes
var tag = prefix >> 3
switch (tag) {
case 1:
obj.start = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
found0 = true
break
case 2:
obj.length = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
break
default:
offset = skip(prefix & 7, buf, offset)
}
}
}
}
function defineRequest () {
var enc = [
encodings.varint,
encodings.bool
]
Request.encodingLength = encodingLength
Request.encode = encode
Request.decode = decode
function encodingLength (obj) {
var length = 0
if (!defined(obj.index)) throw new Error("index is required")
var len = enc[0].encodingLength(obj.index)
length += 1 + len
if (defined(obj.bytes)) {
var len = enc[0].encodingLength(obj.bytes)
length += 1 + len
}
if (defined(obj.hash)) {
var len = enc[1].encodingLength(obj.hash)
length += 1 + len
}
if (defined(obj.nodes)) {
var len = enc[0].encodingLength(obj.nodes)
length += 1 + len
}
return length
}
function encode (obj, buf, offset) {
if (!offset) offset = 0
if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))
var oldOffset = offset
if (!defined(obj.index)) throw new Error("index is required")
buf[offset++] = 8
enc[0].encode(obj.index, buf, offset)
offset += enc[0].encode.bytes
if (defined(obj.bytes)) {
buf[offset++] = 16
enc[0].encode(obj.bytes, buf, offset)
offset += enc[0].encode.bytes
}
if (defined(obj.hash)) {
buf[offset++] = 24
enc[1].encode(obj.hash, buf, offset)
offset += enc[1].encode.bytes
}
if (defined(obj.nodes)) {
buf[offset++] = 32
enc[0].encode(obj.nodes, buf, offset)
offset += enc[0].encode.bytes
}
encode.bytes = offset - oldOffset
return buf
}
function decode (buf, offset, end) {
if (!offset) offset = 0
if (!end) end = buf.length
if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid")
var oldOffset = offset
var obj = {
index: 0,
bytes: 0,
hash: false,
nodes: 0
}
var found0 = false
while (true) {
if (end <= offset) {
if (!found0) throw new Error("Decoded message is not valid")
decode.bytes = offset - oldOffset
return obj
}
var prefix = varint.decode(buf, offset)
offset += varint.decode.bytes
var tag = prefix >> 3
switch (tag) {
case 1:
obj.index = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
found0 = true
break
case 2:
obj.bytes = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
break
case 3:
obj.hash = enc[1].decode(buf, offset)
offset += enc[1].decode.bytes
break
case 4:
obj.nodes = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
break
default:
offset = skip(prefix & 7, buf, offset)
}
}
}
}
function defineCancel () {
var enc = [
encodings.varint,
encodings.bool
]
Cancel.encodingLength = encodingLength
Cancel.encode = encode
Cancel.decode = decode
function encodingLength (obj) {
var length = 0
if (!defined(obj.index)) throw new Error("index is required")
var len = enc[0].encodingLength(obj.index)
length += 1 + len
if (defined(obj.bytes)) {
var len = enc[0].encodingLength(obj.bytes)
length += 1 + len
}
if (defined(obj.hash)) {
var len = enc[1].encodingLength(obj.hash)
length += 1 + len
}
return length
}
function encode (obj, buf, offset) {
if (!offset) offset = 0
if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))
var oldOffset = offset
if (!defined(obj.index)) throw new Error("index is required")
buf[offset++] = 8
enc[0].encode(obj.index, buf, offset)
offset += enc[0].encode.bytes
if (defined(obj.bytes)) {
buf[offset++] = 16
enc[0].encode(obj.bytes, buf, offset)
offset += enc[0].encode.bytes
}
if (defined(obj.hash)) {
buf[offset++] = 24
enc[1].encode(obj.hash, buf, offset)
offset += enc[1].encode.bytes
}
encode.bytes = offset - oldOffset
return buf
}
function decode (buf, offset, end) {
if (!offset) offset = 0
if (!end) end = buf.length
if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid")
var oldOffset = offset
var obj = {
index: 0,
bytes: 0,
hash: false
}
var found0 = false
while (true) {
if (end <= offset) {
if (!found0) throw new Error("Decoded message is not valid")
decode.bytes = offset - oldOffset
return obj
}
var prefix = varint.decode(buf, offset)
offset += varint.decode.bytes
var tag = prefix >> 3
switch (tag) {
case 1:
obj.index = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
found0 = true
break
case 2:
obj.bytes = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
break
case 3:
obj.hash = enc[1].decode(buf, offset)
offset += enc[1].decode.bytes
break
default:
offset = skip(prefix & 7, buf, offset)
}
}
}
}
function defineData () {
var Node = Data.Node = {
buffer: true,
encodingLength: null,
encode: null,
decode: null
}
defineNode()
function defineNode () {
var enc = [
encodings.varint,
encodings.bytes
]
Node.encodingLength = encodingLength
Node.encode = encode
Node.decode = decode
function encodingLength (obj) {
var length = 0
if (!defined(obj.index)) throw new Error("index is required")
var len = enc[0].encodingLength(obj.index)
length += 1 + len
if (!defined(obj.hash)) throw new Error("hash is required")
var len = enc[1].encodingLength(obj.hash)
length += 1 + len
if (!defined(obj.size)) throw new Error("size is required")
var len = enc[0].encodingLength(obj.size)
length += 1 + len
return length
}
function encode (obj, buf, offset) {
if (!offset) offset = 0
if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))
var oldOffset = offset
if (!defined(obj.index)) throw new Error("index is required")
buf[offset++] = 8
enc[0].encode(obj.index, buf, offset)
offset += enc[0].encode.bytes
if (!defined(obj.hash)) throw new Error("hash is required")
buf[offset++] = 18
enc[1].encode(obj.hash, buf, offset)
offset += enc[1].encode.bytes
if (!defined(obj.size)) throw new Error("size is required")
buf[offset++] = 24
enc[0].encode(obj.size, buf, offset)
offset += enc[0].encode.bytes
encode.bytes = offset - oldOffset
return buf
}
function decode (buf, offset, end) {
if (!offset) offset = 0
if (!end) end = buf.length
if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid")
var oldOffset = offset
var obj = {
index: 0,
hash: null,
size: 0
}
var found0 = false
var found1 = false
var found2 = false
while (true) {
if (end <= offset) {
if (!found0 || !found1 || !found2) throw new Error("Decoded message is not valid")
decode.bytes = offset - oldOffset
return obj
}
var prefix = varint.decode(buf, offset)
offset += varint.decode.bytes
var tag = prefix >> 3
switch (tag) {
case 1:
obj.index = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
found0 = true
break
case 2:
obj.hash = enc[1].decode(buf, offset)
offset += enc[1].decode.bytes
found1 = true
break
case 3:
obj.size = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
found2 = true
break
default:
offset = skip(prefix & 7, buf, offset)
}
}
}
}
var enc = [
encodings.varint,
encodings.bytes,
Node
]
Data.encodingLength = encodingLength
Data.encode = encode
Data.decode = decode
function encodingLength (obj) {
var length = 0
if (!defined(obj.index)) throw new Error("index is required")
var len = enc[0].encodingLength(obj.index)
length += 1 + len
if (defined(obj.value)) {
var len = enc[1].encodingLength(obj.value)
length += 1 + len
}
if (defined(obj.nodes)) {
for (var i = 0; i < obj.nodes.length; i++) {
if (!defined(obj.nodes[i])) continue
var len = enc[2].encodingLength(obj.nodes[i])
length += varint.encodingLength(len)
length += 1 + len
}
}
if (defined(obj.signature)) {
var len = enc[1].encodingLength(obj.signature)
length += 1 + len
}
return length
}
function encode (obj, buf, offset) {
if (!offset) offset = 0
if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))
var oldOffset = offset
if (!defined(obj.index)) throw new Error("index is required")
buf[offset++] = 8
enc[0].encode(obj.index, buf, offset)
offset += enc[0].encode.bytes
if (defined(obj.value)) {
buf[offset++] = 18
enc[1].encode(obj.value, buf, offset)
offset += enc[1].encode.bytes
}
if (defined(obj.nodes)) {
for (var i = 0; i < obj.nodes.length; i++) {
if (!defined(obj.nodes[i])) continue
buf[offset++] = 26
varint.encode(enc[2].encodingLength(obj.nodes[i]), buf, offset)
offset += varint.encode.bytes
enc[2].encode(obj.nodes[i], buf, offset)
offset += enc[2].encode.bytes
}
}
if (defined(obj.signature)) {
buf[offset++] = 34
enc[1].encode(obj.signature, buf, offset)
offset += enc[1].encode.bytes
}
encode.bytes = offset - oldOffset
return buf
}
function decode (buf, offset, end) {
if (!offset) offset = 0
if (!end) end = buf.length
if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid")
var oldOffset = offset
var obj = {
index: 0,
value: null,
nodes: [],
signature: null
}
var found0 = false
while (true) {
if (end <= offset) {
if (!found0) throw new Error("Decoded message is not valid")
decode.bytes = offset - oldOffset
return obj
}
var prefix = varint.decode(buf, offset)
offset += varint.decode.bytes
var tag = prefix >> 3
switch (tag) {
case 1:
obj.index = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
found0 = true
break
case 2:
obj.value = enc[1].decode(buf, offset)
offset += enc[1].decode.bytes
break
case 3:
var len = varint.decode(buf, offset)
offset += varint.decode.bytes
obj.nodes.push(enc[2].decode(buf, offset, offset + len))
offset += enc[2].decode.bytes
break
case 4:
obj.signature = enc[1].decode(buf, offset)
offset += enc[1].decode.bytes
break
default:
offset = skip(prefix & 7, buf, offset)
}
}
}
}
function defineClose () {
var enc = [
encodings.bytes
]
Close.encodingLength = encodingLength
Close.encode = encode
Close.decode = decode
function encodingLength (obj) {
var length = 0
if (defined(obj.discoveryKey)) {
var len = enc[0].encodingLength(obj.discoveryKey)
length += 1 + len
}
return length
}
function encode (obj, buf, offset) {
if (!offset) offset = 0
if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj))
var oldOffset = offset
if (defined(obj.discoveryKey)) {
buf[offset++] = 10
enc[0].encode(obj.discoveryKey, buf, offset)
offset += enc[0].encode.bytes
}
encode.bytes = offset - oldOffset
return buf
}
function decode (buf, offset, end) {
if (!offset) offset = 0
if (!end) end = buf.length
if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid")
var oldOffset = offset
var obj = {
discoveryKey: null
}
while (true) {
if (end <= offset) {
decode.bytes = offset - oldOffset
return obj
}
var prefix = varint.decode(buf, offset)
offset += varint.decode.bytes
var tag = prefix >> 3
switch (tag) {
case 1:
obj.discoveryKey = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
break
default:
offset = skip(prefix & 7, buf, offset)
}
}
}
}
function defined (val) {
return val !== null && val !== undefined && (typeof val !== 'number' || !isNaN(val))
}