OverviewFilesCommitsIssuesDocsReleasesPeers

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

1 lines · javascript ref:
const e=require("compact-encoding"),d=require("@holepunchto/hyperindex"),{GENERIC_EVENTS:n,DISPLAY_TYPES:o}=require("@holepunchto/keet-core-api"),c=[d.UINT,d.UINT],t=[d.BUFFER,d.UINT],r=e.fixed32,i=d.UINT,p={preencode(d,n){e.fixed32.preencode(d,n.key),e.uint.preencode(d,n.seq)},encode(d,n){e.fixed32.encode(d,n.key),e.uint.encode(d,n.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},u={preencode(d,n){e.uint.preencode(d,n[0]),e.uint.preencode(d,n[1])},encode(d,n){e.uint.encode(d,n[0]),e.uint.encode(d,n[1])},decode:d=>[e.uint.decode(d),e.uint.decode(d)]},s={TYPE:o.MENTION,preencode(e,d){r.preencode(e,d.memberId),h.preencode(e,d)},encode(e,d){r.encode(e,d.memberId),h.encode(e,d)},decode:e=>({memberId:r.decode(e),...h.decode(e)})},l={preencode(d,n){let o=0;n.title&&(o|=1),n.description&&(o|=2),n.file&&(o|=4),e.uint.preencode(d,o),e.string.preencode(d,n.url),n.title&&e.string.preencode(d,n.title),n.description&&e.string.preencode(d,n.description),n.file&&C.preencode(d,n.file)},encode(d,n){let o=0;n.title&&(o|=1),n.description&&(o|=2),n.file&&(o|=4),e.uint.encode(d,o),e.string.encode(d,n.url),n.title&&e.string.encode(d,n.title),n.description&&e.string.encode(d,n.description),n.file&&C.encode(d,n.file)},decode(d){const n=e.uint.decode(d);return{url:e.string.decode(d),title:1&n?e.string.decode(d):null,description:2&n?e.string.decode(d):null,file:4&n?C.decode(d):null}}},a={TYPE:o.HTTP_LINK,preencode(d,n){let o=0;n.preview&&(o|=1),e.uint.preencode(d,o),m.preencode(d,n),n.preview&&l.preencode(d,n.preview)},encode(d,n){let o=0;n.preview&&(o|=1),e.uint.encode(d,o),m.encode(d,n),n.preview&&l.encode(d,n.preview)},decode(d){const n=e.uint.decode(d);return{...m.decode(d),preview:1&n?l.decode(d):null}}},E={TYPE:o.PEAR_LINK,preencode(d,n){let o=0;n.preview&&(o|=1),e.uint.preencode(d,o),m.preencode(d,n),n.preview&&l.preencode(d,n.preview)},encode(d,n){let o=0;n.preview&&(o|=1),e.uint.encode(d,o),m.encode(d,n),n.preview&&l.encode(d,n.preview)},decode(d){const n=e.uint.decode(d);return{...m.decode(d),preview:1&n?l.decode(d):null}}},v={TYPE:o.CODE,preencode(e,d){h.preencode(e,d)},encode(e,d){h.encode(e,d)},decode:e=>h.decode(e)},y={TYPE:o.CODE_BLOCK,preencode(e,d){h.preencode(e,d)},encode(e,d){h.encode(e,d)},decode:e=>h.decode(e)},T={TYPE:o.BOLD,preencode(e,d){h.preencode(e,d)},encode(e,d){h.encode(e,d)},decode:e=>h.decode(e)},f={TYPE:o.ITALIC,preencode(e,d){h.preencode(e,d)},encode(e,d){h.encode(e,d)},decode:e=>h.decode(e)},w={TYPE:o.STRIKE_THROUGH,preencode(e,d){h.preencode(e,d)},encode(e,d){h.encode(e,d)},decode:e=>h.decode(e)},g={TYPE:o.EMOJI,preencode(e,d){m.preencode(e,d)},encode(e,d){m.encode(e,d)},decode:e=>m.decode(e)},m={preencode(d,n){e.string.preencode(d,n.content),h.preencode(d,n)},encode(d,n){e.string.encode(d,n.content),h.encode(d,n)},decode:d=>({content:e.string.decode(d),...h.decode(d)})},h={preencode(d,n){e.uint.preencode(d,n.start),e.uint.preencode(d,n.length)},encode(d,n){e.uint.encode(d,n.start),e.uint.encode(d,n.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})};function I(e){switch(e){case s.TYPE:return s;case a.TYPE:return a;case E.TYPE:return E;case T.TYPE:return T;case f.TYPE:return f;case v.TYPE:return v;case y.TYPE:return y;case w.TYPE:return w;case g.TYPE:return g;default:return null}}const P={preencode(d,n){const o=I(n.type);if(!o)throw new Error("Unsupported display type");e.uint.preencode(d,n.type),o.preencode(d,n.value)},encode(d,n){const o=I(n.type);if(!o)throw new Error("Unsupported display type");e.uint.encode(d,n.type),o.encode(d,n.value)},decode(d){const n=e.uint.decode(d),o=I(n);if(!o)throw new Error("Unsupported display type");return{type:n,value:o.decode(d)}}},Y=e.array(P),R={preencode(d,n){d.end++,e.string.preencode(d,n.text)},encode(d,n){const o=d.start++;e.string.encode(d,n.text);let c=0;n.edited&&(c|=1),d.buffer[o]=c},decode(d){const n=e.uint.decode(d);return{text:e.string.decode(d),edited:!!(1&n)}}},x={preencode(e,d){C.preencode(e,d)},encode(e,d){C.encode(e,d)},decode:e=>C.decode(e)};function _(d){switch(d){case n.MEMBER_JOINED:case n.CALL_STARTED:case n.ROOM_AVATAR_CHANGED:case n.INVITATION_CREATED:case n.MEMBER_LEFT:return A;case n.MEMBER_REMOVED:return O;case n.ROOM_TITLE_CHANGED:return M;default:return e.buffer}}const N={preencode(d,n){e.uint.preencode(d,n.type);const o=_(n.type);o.preencode&&o.preencode(d,n.value)},encode(d,n){e.uint.encode(d,n.type);const o=_(n.type);o.preencode&&o.encode(d,n.value)},decode(d){const n=e.uint.decode(d),o=_(n);return o.preencode?{type:n,value:o.decode(d)}:{type:n,value:null}}},A={},M={preencode(d,n){e.string.preencode(d,n.from),e.string.preencode(d,n.to)},encode(d,n){e.string.encode(d,n.from),e.string.encode(d,n.to)},decode:d=>({from:e.string.decode(d),to:e.string.decode(d)})},O={preencode(d,n){e.fixed32.preencode(d,n.memberKey)},encode(d,n){e.fixed32.encode(d,n.memberKey)},decode:d=>({memberKey:e.fixed32.decode(d)})},k={preencode(d,n){let o=0;n.deleted&&(o|=1),n.timestamp&&(o|=2),n.chat&&(o|=4),n.file&&(o|=8),n.display&&(o|=16),n.event&&(o|=32),n.parent&&(o|=64),n.replyTo&&(o|=128),e.uint.preencode(d,o),e.uint.preencode(d,n.clock),p.preencode(d,n.id),n.timestamp&&e.uint.preencode(d,n.timestamp),n.chat&&R.preencode(d,n.chat),n.file&&x.preencode(d,n.file),n.display&&Y.preencode(d,n.display),n.event&&N.preencode(d,n.event),n.parent&&p.preencode(d,n.parent),n.replyTo&&p.preencode(d,n.replyTo)},encode(d,n){let o=0;n.deleted&&(o|=1),n.timestamp&&(o|=2),n.chat&&(o|=4),n.file&&(o|=8),n.display&&(o|=16),n.event&&(o|=32),n.parent&&(o|=64),n.replyTo&&(o|=128),e.uint.encode(d,o),e.uint.encode(d,n.clock),p.encode(d,n.id),n.timestamp&&e.uint.encode(d,n.timestamp),n.chat&&R.encode(d,n.chat),n.file&&x.encode(d,n.file),n.display&&Y.encode(d,n.display),n.event&&N.encode(d,n.event),n.parent&&p.encode(d,n.parent),n.replyTo&&p.encode(d,n.replyTo)},decode(d){const n=e.uint.decode(d);return{clock:e.uint.decode(d),id:p.decode(d),deleted:!!(1&n),timestamp:2&n?e.uint.decode(d):null,chat:4&n?R.decode(d):null,file:8&n?x.decode(d):null,display:16&n?Y.decode(d):null,event:32&n?N.decode(d):null,parent:64&n?p.decode(d):null,replyTo:128&n?p.decode(d):null}}},D={preencode(d,n){e.fixed32.preencode(d,n.key),e.string.preencode(d,n.path),e.uint.preencode(d,n.version)},encode(d,n){e.fixed32.encode(d,n.key),e.string.encode(d,n.path),e.uint.encode(d,n.version)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d)})},b={preencode(d,n){e.uint.preencode(d,n.width),e.uint.preencode(d,n.height)},encode(d,n){e.uint.encode(d,n.width),e.uint.encode(d,n.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},C={preencode(d,n){let o=0;n.type&&(o|=1),n.dimensions&&(o|=2),n.preview&&(o|=4),n.previewPointer&&(o|=8),e.uint.preencode(d,o),D.preencode(d,n),n.type&&e.string.preencode(d,n.type),n.dimensions&&b.preencode(d,n.dimensions),n.preview&&e.buffer.preencode(d,n.preview),n.previewPointer&&D.preencode(d,n.previewPointer)},encode(d,n){let o=0;n.type&&(o|=1),n.dimensions&&(o|=2),n.preview&&(o|=4),n.previewPointer&&(o|=8),e.uint.encode(d,o),D.encode(d,n),n.type&&e.string.encode(d,n.type),n.dimensions&&b.encode(d,n.dimensions),n.preview&&e.buffer.encode(d,n.preview),n.previewPointer&&D.encode(d,n.previewPointer)},decode(d){const n=e.uint.decode(d),{key:o,path:c,version:t}=D.decode(d);return{key:o,path:c,version:t,type:1&n?e.string.decode(d):null,dimensions:2&n?b.decode(d):null,preview:4&n?e.buffer.decode(d):null,previewPointer:8&n?D.decode(d):null}}};module.exports={PRIMARY_THREAD_ID:0,IndexEventId:c,IndexMessageId:t,ClockIndexEncoding:i,MessageId:p,EventIdValueEncoding:u,GenericEvent:N,DisplayEvent:Y,ChatEvent:R,EventRecord:k,FileRecord:C};