OverviewFilesCommitsIssuesDocsReleasesPeers

holepunchto-deps / @holepunchto / keet-media / shared / spec / hrpc / messages.js

531 lines · javascript ref:
// This file is autogenerated by the hyperschema compiler
// Schema Version: 1
/* eslint-disable camelcase */
/* eslint-disable quotes */
/* eslint-disable space-before-function-paren */

import { c } from 'hyperschema/runtime'

const VERSION = 1

// eslint-disable-next-line no-unused-vars
let version = VERSION

// @media/dimensions
const encoding0 = {
  preencode(state, m) {
    c.uint.preencode(state, m.width)
    c.uint.preencode(state, m.height)
  },
  encode(state, m) {
    c.uint.encode(state, m.width)
    c.uint.encode(state, m.height)
  },
  decode(state) {
    const r0 = c.uint.decode(state)
    const r1 = c.uint.decode(state)

    return {
      width: r0,
      height: r1
    }
  }
}

// @media/metadata.dimensions
const encoding1_1 = c.frame(encoding0)

// @media/metadata
const encoding1 = {
  preencode(state, m) {
    state.end++ // max flag is 4 so always one byte

    if (m.mimetype) c.string.preencode(state, m.mimetype)
    if (m.dimensions) encoding1_1.preencode(state, m.dimensions)
    if (m.duration) c.uint.preencode(state, m.duration)
  },
  encode(state, m) {
    const flags = (m.mimetype ? 1 : 0) | (m.dimensions ? 2 : 0) | (m.duration ? 4 : 0)

    c.uint.encode(state, flags)

    if (m.mimetype) c.string.encode(state, m.mimetype)
    if (m.dimensions) encoding1_1.encode(state, m.dimensions)
    if (m.duration) c.uint.encode(state, m.duration)
  },
  decode(state) {
    const flags = c.uint.decode(state)

    return {
      mimetype: (flags & 1) !== 0 ? c.string.decode(state) : null,
      dimensions: (flags & 2) !== 0 ? encoding1_1.decode(state) : null,
      duration: (flags & 4) !== 0 ? c.uint.decode(state) : 0
    }
  }
}

// @media/file.metadata
const encoding2_0 = c.frame(encoding1)

// @media/file
const encoding2 = {
  preencode(state, m) {
    state.end++ // max flag is 4 so always one byte

    if (m.metadata) encoding2_0.preencode(state, m.metadata)
    if (m.base64) c.string.preencode(state, m.base64)
    if (m.buffer) c.buffer.preencode(state, m.buffer)
  },
  encode(state, m) {
    const flags = (m.metadata ? 1 : 0) | (m.base64 ? 2 : 0) | (m.buffer ? 4 : 0)

    c.uint.encode(state, flags)

    if (m.metadata) encoding2_0.encode(state, m.metadata)
    if (m.base64) c.string.encode(state, m.base64)
    if (m.buffer) c.buffer.encode(state, m.buffer)
  },
  decode(state) {
    const flags = c.uint.decode(state)

    return {
      metadata: (flags & 1) !== 0 ? encoding2_0.decode(state) : null,
      base64: (flags & 2) !== 0 ? c.string.decode(state) : null,
      buffer: (flags & 4) !== 0 ? c.buffer.decode(state) : null
    }
  }
}

// @media/crop
const encoding3 = {
  preencode(state, m) {
    state.end++ // max flag is 8 so always one byte

    if (m.left) c.uint.preencode(state, m.left)
    if (m.top) c.uint.preencode(state, m.top)
    if (m.width) c.uint.preencode(state, m.width)
    if (m.height) c.uint.preencode(state, m.height)
  },
  encode(state, m) {
    const flags = (m.left ? 1 : 0) | (m.top ? 2 : 0) | (m.width ? 4 : 0) | (m.height ? 8 : 0)

    c.uint.encode(state, flags)

    if (m.left) c.uint.encode(state, m.left)
    if (m.top) c.uint.encode(state, m.top)
    if (m.width) c.uint.encode(state, m.width)
    if (m.height) c.uint.encode(state, m.height)
  },
  decode(state) {
    const flags = c.uint.decode(state)

    return {
      left: (flags & 1) !== 0 ? c.uint.decode(state) : 0,
      top: (flags & 2) !== 0 ? c.uint.decode(state) : 0,
      width: (flags & 4) !== 0 ? c.uint.decode(state) : 0,
      height: (flags & 8) !== 0 ? c.uint.decode(state) : 0
    }
  }
}

// @media/create-chat-image-preview-request
const encoding4 = {
  preencode(state, m) {
    state.end++ // max flag is 1 so always one byte

    if (m.path) c.string.preencode(state, m.path)
  },
  encode(state, m) {
    const flags = m.path ? 1 : 0

    c.uint.encode(state, flags)

    if (m.path) c.string.encode(state, m.path)
  },
  decode(state) {
    const flags = c.uint.decode(state)

    return {
      path: (flags & 1) !== 0 ? c.string.decode(state) : null
    }
  }
}

// @media/create-chat-image-preview-response.metadata
const encoding5_0 = encoding2_0
// @media/create-chat-image-preview-response.small
const encoding5_1 = c.frame(encoding2)
// @media/create-chat-image-preview-response.medium
const encoding5_2 = encoding5_1
// @media/create-chat-image-preview-response.large
const encoding5_3 = encoding5_1

// @media/create-chat-image-preview-response
const encoding5 = {
  preencode(state, m) {
    encoding5_0.preencode(state, m.metadata)
    encoding5_1.preencode(state, m.small)
    encoding5_2.preencode(state, m.medium)
    encoding5_3.preencode(state, m.large)
  },
  encode(state, m) {
    encoding5_0.encode(state, m.metadata)
    encoding5_1.encode(state, m.small)
    encoding5_2.encode(state, m.medium)
    encoding5_3.encode(state, m.large)
  },
  decode(state) {
    const r0 = encoding5_0.decode(state)
    const r1 = encoding5_1.decode(state)
    const r2 = encoding5_2.decode(state)
    const r3 = encoding5_3.decode(state)

    return {
      metadata: r0,
      small: r1,
      medium: r2,
      large: r3
    }
  }
}

// @media/create-chat-video-preview-request
const encoding6 = encoding4

// @media/create-chat-video-preview-response.metadata
const encoding7_0 = encoding2_0
// @media/create-chat-video-preview-response.small
const encoding7_1 = encoding5_1
// @media/create-chat-video-preview-response.medium
const encoding7_2 = encoding5_1
// @media/create-chat-video-preview-response.large
const encoding7_3 = encoding5_1

// @media/create-chat-video-preview-response
const encoding7 = {
  preencode(state, m) {
    encoding7_0.preencode(state, m.metadata)
    encoding7_1.preencode(state, m.small)
    encoding7_2.preencode(state, m.medium)
    encoding7_3.preencode(state, m.large)
  },
  encode(state, m) {
    encoding7_0.encode(state, m.metadata)
    encoding7_1.encode(state, m.small)
    encoding7_2.encode(state, m.medium)
    encoding7_3.encode(state, m.large)
  },
  decode(state) {
    const r0 = encoding7_0.decode(state)
    const r1 = encoding7_1.decode(state)
    const r2 = encoding7_2.decode(state)
    const r3 = encoding7_3.decode(state)

    return {
      metadata: r0,
      small: r1,
      medium: r2,
      large: r3
    }
  }
}

// @media/create-chat-link-preview-request
const encoding8 = {
  preencode(state, m) {
    state.end++ // max flag is 2 so always one byte

    if (m.path) c.string.preencode(state, m.path)
    if (m.buffer) c.buffer.preencode(state, m.buffer)
  },
  encode(state, m) {
    const flags = (m.path ? 1 : 0) | (m.buffer ? 2 : 0)

    c.uint.encode(state, flags)

    if (m.path) c.string.encode(state, m.path)
    if (m.buffer) c.buffer.encode(state, m.buffer)
  },
  decode(state) {
    const flags = c.uint.decode(state)

    return {
      path: (flags & 1) !== 0 ? c.string.decode(state) : null,
      buffer: (flags & 2) !== 0 ? c.buffer.decode(state) : null
    }
  }
}

// @media/create-chat-link-preview-response.metadata
const encoding9_0 = encoding2_0

// @media/create-chat-link-preview-response
const encoding9 = {
  preencode(state, m) {
    state.end++ // max flag is 2 so always one byte

    if (m.metadata) encoding9_0.preencode(state, m.metadata)
    if (m.buffer) c.buffer.preencode(state, m.buffer)
  },
  encode(state, m) {
    const flags = (m.metadata ? 1 : 0) | (m.buffer ? 2 : 0)

    c.uint.encode(state, flags)

    if (m.metadata) encoding9_0.encode(state, m.metadata)
    if (m.buffer) c.buffer.encode(state, m.buffer)
  },
  decode(state) {
    const flags = c.uint.decode(state)

    return {
      metadata: (flags & 1) !== 0 ? encoding9_0.decode(state) : null,
      buffer: (flags & 2) !== 0 ? c.buffer.decode(state) : null
    }
  }
}

// @media/create-profile-avatar-request.crop
const encoding10_1 = c.frame(encoding3)

// @media/create-profile-avatar-request
const encoding10 = {
  preencode(state, m) {
    state.end++ // max flag is 2 so always one byte

    if (m.path) c.string.preencode(state, m.path)
    if (m.crop) encoding10_1.preencode(state, m.crop)
  },
  encode(state, m) {
    const flags = (m.path ? 1 : 0) | (m.crop ? 2 : 0)

    c.uint.encode(state, flags)

    if (m.path) c.string.encode(state, m.path)
    if (m.crop) encoding10_1.encode(state, m.crop)
  },
  decode(state) {
    const flags = c.uint.decode(state)

    return {
      path: (flags & 1) !== 0 ? c.string.decode(state) : null,
      crop: (flags & 2) !== 0 ? encoding10_1.decode(state) : null
    }
  }
}

// @media/create-profile-avatar-response.small
const encoding11_0 = encoding5_1
// @media/create-profile-avatar-response.medium
const encoding11_1 = encoding5_1

// @media/create-profile-avatar-response
const encoding11 = {
  preencode(state, m) {
    encoding11_0.preencode(state, m.small)
    encoding11_1.preencode(state, m.medium)
  },
  encode(state, m) {
    encoding11_0.encode(state, m.small)
    encoding11_1.encode(state, m.medium)
  },
  decode(state) {
    const r0 = encoding11_0.decode(state)
    const r1 = encoding11_1.decode(state)

    return {
      small: r0,
      medium: r1
    }
  }
}

// @media/create-room-avatar-request.crop
const encoding12_1 = encoding10_1

// @media/create-room-avatar-request
const encoding12 = {
  preencode(state, m) {
    state.end++ // max flag is 2 so always one byte

    if (m.path) c.string.preencode(state, m.path)
    if (m.crop) encoding12_1.preencode(state, m.crop)
  },
  encode(state, m) {
    const flags = (m.path ? 1 : 0) | (m.crop ? 2 : 0)

    c.uint.encode(state, flags)

    if (m.path) c.string.encode(state, m.path)
    if (m.crop) encoding12_1.encode(state, m.crop)
  },
  decode(state) {
    const flags = c.uint.decode(state)

    return {
      path: (flags & 1) !== 0 ? c.string.decode(state) : null,
      crop: (flags & 2) !== 0 ? encoding12_1.decode(state) : null
    }
  }
}

// @media/create-room-avatar-response.small
const encoding13_0 = encoding5_1
// @media/create-room-avatar-response.medium
const encoding13_1 = encoding5_1

// @media/create-room-avatar-response
const encoding13 = {
  preencode(state, m) {
    encoding13_0.preencode(state, m.small)
    encoding13_1.preencode(state, m.medium)
  },
  encode(state, m) {
    encoding13_0.encode(state, m.small)
    encoding13_1.encode(state, m.medium)
  },
  decode(state) {
    const r0 = encoding13_0.decode(state)
    const r1 = encoding13_1.decode(state)

    return {
      small: r0,
      medium: r1
    }
  }
}

// @media/decode-image-request
const encoding14 = {
  preencode(state, m) {
    state.end++ // max flag is 1 so always one byte

    if (m.httpLink) c.string.preencode(state, m.httpLink)
  },
  encode(state, m) {
    const flags = m.httpLink ? 1 : 0

    c.uint.encode(state, flags)

    if (m.httpLink) c.string.encode(state, m.httpLink)
  },
  decode(state) {
    const flags = c.uint.decode(state)

    return {
      httpLink: (flags & 1) !== 0 ? c.string.decode(state) : null
    }
  }
}

// @media/decode-image-response.metadata
const encoding15_0 = encoding2_0

// @media/decode-image-response
const encoding15 = {
  preencode(state, m) {
    state.end++ // max flag is 2 so always one byte

    if (m.metadata) encoding15_0.preencode(state, m.metadata)
    if (m.data) c.buffer.preencode(state, m.data)
  },
  encode(state, m) {
    const flags = (m.metadata ? 1 : 0) | (m.data ? 2 : 0)

    c.uint.encode(state, flags)

    if (m.metadata) encoding15_0.encode(state, m.metadata)
    if (m.data) c.buffer.encode(state, m.data)
  },
  decode(state) {
    const flags = c.uint.decode(state)

    return {
      metadata: (flags & 1) !== 0 ? encoding15_0.decode(state) : null,
      data: (flags & 2) !== 0 ? c.buffer.decode(state) : null
    }
  }
}

function setVersion(v) {
  version = v
}

function encode(name, value, v = VERSION) {
  version = v
  return c.encode(getEncoding(name), value)
}

function decode(name, buffer, v = VERSION) {
  version = v
  return c.decode(getEncoding(name), buffer)
}

function getEnum(name) {
  switch (name) {
    default:
      throw new Error('Enum not found ' + name)
  }
}

function getEncoding(name) {
  switch (name) {
    case '@media/dimensions':
      return encoding0
    case '@media/metadata':
      return encoding1
    case '@media/file':
      return encoding2
    case '@media/crop':
      return encoding3
    case '@media/create-chat-image-preview-request':
      return encoding4
    case '@media/create-chat-image-preview-response':
      return encoding5
    case '@media/create-chat-video-preview-request':
      return encoding6
    case '@media/create-chat-video-preview-response':
      return encoding7
    case '@media/create-chat-link-preview-request':
      return encoding8
    case '@media/create-chat-link-preview-response':
      return encoding9
    case '@media/create-profile-avatar-request':
      return encoding10
    case '@media/create-profile-avatar-response':
      return encoding11
    case '@media/create-room-avatar-request':
      return encoding12
    case '@media/create-room-avatar-response':
      return encoding13
    case '@media/decode-image-request':
      return encoding14
    case '@media/decode-image-response':
      return encoding15
    default:
      throw new Error('Encoder not found ' + name)
  }
}

function getStruct(name, v = VERSION) {
  const enc = getEncoding(name)
  return {
    preencode(state, m) {
      version = v
      enc.preencode(state, m)
    },
    encode(state, m) {
      version = v
      enc.encode(state, m)
    },
    decode(state) {
      version = v
      return enc.decode(state)
    }
  }
}

const resolveStruct = getStruct // compat

export { resolveStruct, getStruct, getEnum, getEncoding, encode, decode, setVersion, version }