OverviewFilesCommitsIssuesDocsReleasesPeers

holepunchto-deps / @holepunchto / keet-core-schemas / lib / invitations / messages.js

1 lines · javascript ref:
const e=require("compact-encoding"),d={preencode(d,i){d.end++,e.fixed32.preencode(d,i.publicKey),e.uint.preencode(d,i.capabilities),i.expiration&&e.uint.preencode(d,i.expiration),i.uses&&e.uint.preencode(d,i.uses)},encode(d,i){const n=d.start++;e.fixed32.encode(d,i.publicKey),e.uint.encode(d,i.capabilities);let t=0;i.expiration&&(t|=1,e.uint.encode(d,i.expiration)),i.uses&&(t|=2,e.uint.encode(d,i.uses)),i.reusable&&(t|=4),d.buffer[n]=t},decode(d){const i=e.uint.decode(d);return{publicKey:e.fixed32.decode(d),capabilities:e.uint.decode(d),expiration:1&i?e.uint.decode(d):0,uses:2&i?e.uint.decode(d):0,reusable:!!(4&i)}}},i={preencode(d,i){e.buffer.preencode(d,i.data),e.buffer.preencode(d,i.signature)},encode(d,i){e.buffer.encode(d,i.data),e.buffer.encode(d,i.signature)},decode:d=>({data:e.buffer.decode(d),signature:e.buffer.decode(d)})},n={preencode(d,n){let t=0;n.expiration&&(t|=1),n.uses&&(t|=2),n.reusable&&(t|=4),n.attestsTo&&(t|=8),n.additional&&(t|=16),e.uint.preencode(d,t),e.fixed32.preencode(d,n.publicKey),e.uint.preencode(d,n.capabilities),n.expiration&&e.uint.preencode(d,n.expiration),n.uses&&e.uint.preencode(d,n.uses),n.attestsTo&&e.fixed32.preencode(d,n.attestsTo),n.additional&&i.preencode(d,n.additional)},encode(d,n){let t=0;n.expiration&&(t|=1),n.uses&&(t|=2),n.reusable&&(t|=4),n.attestsTo&&(t|=8),n.additional&&(t|=16),e.uint.encode(d,t),e.fixed32.encode(d,n.publicKey),e.uint.encode(d,n.capabilities),n.expiration&&e.uint.encode(d,n.expiration),n.uses&&e.uint.encode(d,n.uses),n.attestsTo&&e.fixed32.encode(d,n.attestsTo),n.additional&&i.encode(d,n.additional)},decode(d){const n=e.uint.decode(d);return{publicKey:e.fixed32.decode(d),capabilities:e.uint.decode(d),expiration:1&n?e.uint.decode(d):0,uses:2&n?e.uint.decode(d):0,reusable:!!(4&n),attestsTo:8&n?e.fixed32.decode(d):null,additional:16&n?i.decode(d):null}}},t={preencode(d,i){e.fixed32.preencode(d,i.deviceKey),e.fixed32.preencode(d,i.noisePublicKey),i.attestation?e.buffer.preencode(d,i.attestation):i.deviceName&&e.buffer.preencode(d,null);let n=0;i.deviceName&&(n|=1),e.uint.preencode(d,n),i.deviceName&&e.string.preencode(d,i.deviceName)},encode(d,i){e.fixed32.encode(d,i.deviceKey),e.fixed32.encode(d,i.noisePublicKey),i.attestation?e.buffer.encode(d,i.attestation):i.deviceName&&e.buffer.encode(d,null);let n=0;i.deviceName&&(n|=1),e.uint.encode(d,n),i.deviceName&&e.string.encode(d,i.deviceName)},decode(d){const i={deviceKey:e.fixed32.decode(d),noisePublicKey:e.fixed32.decode(d),attestation:d.start<d.end?e.buffer.decode(d):null,deviceName:null};if(d.start<d.end){const n=e.uint.decode(d);i.deviceName=1&n?e.string.decode(d):null}return i}};module.exports={InvitationRecordV1:d,InvitationRecord:n,InvitationUserData:t};