OverviewFilesCommitsIssuesDocsReleasesPeers

holepunchto-deps / @holepunchto / keet-core / lib / api / v1 / decode.js

1 lines · javascript ref:
const e=require("hypercore-id-encoding"),t=require("b4a");function n({start:e,length:t,content:n,preview:r}){return r?.file&&(r.file=l(r.file)),{range:{start:e,length:t},url:n,preview:r}}function r(t){if(!t)return null;const{id:n,key:r,blob:i}=t;return{id:n,key:n?e.decode(n):r,blob:i}}function i(t){if(!t)return null;const{id:n,key:r,path:i,version:l,size:a}=t;return{id:n,key:n?e.decode(n):r,path:i,version:l,size:a}}function l(e){return e&&(e.pointer||e.preview)?(e.metadata?.userdata&&(e.metadata.userdata=t.from(e.metadata.userdata,"base64")),{...e,pointer:(n=e.pointer,n?{...n,bee:n.bee?{hash:t.from(n.bee.hash,"base64")}:null,inlined:n.inlined?t.from(n.inlined,"base64"):null,externalBlob:r(n.externalBlob),externalDrive:i(n.externalDrive)}:{}),preview:a(e.preview)}):null;var n}function a(e){return e?{small:l(e.small),medium:l(e.medium),large:l(e.large)}:null}function d(t){return{key:e.decode(t.deviceId),seq:t.seq}}function o(t){return t&&Array.isArray(t)?t.map(t=>({publicKey:e.decode(t.publicKey),blindingKey:e.decode(t.blindingKey)})):[]}module.exports={decodeContactInfo:function({memberId:t,blindWriters:n,displayName:r,avatar:i}){return{memberKey:e.decode(t),blindWriters:o(n),displayName:r,avatar:a(i)}},decodeChatRangeOptions:function(e,t){const n={...t},r=n.prefix||0;return Number.isInteger(n.gt)&&(n.gt={id:{thread:r,index:t.gt}}),Number.isInteger(n.gte)&&(n.gte={id:{thread:r,index:t.gte}}),Number.isInteger(n.lt)&&(n.lt={id:{thread:r,index:t.lt}}),Number.isInteger(n.lte)&&(n.lte={id:{thread:r,index:t.lte}}),n.gt||n.gte||(n.gte={id:{thread:r}}),n.lt||n.lte||(n.lte={id:{thread:r}}),n},decodeKeyRangeOptions:function({gt:t,gte:n,lt:r,lte:i,limit:l,reverse:a}={}){return{limit:l,reverse:a,gt:t?{key:e.decode(t)}:null,gte:n?{key:e.decode(n)}:null,lt:r?{key:e.decode(r)}:null,lte:i?{key:e.decode(i)}:null}},decodeChatMessage:function(t,r){const i=r.mentions?.map(t=>({range:{start:t.start,length:t.length},memberKey:e.decode(t.memberId)}))||null,a=r.translations?.map(e=>({range:{start:e.start,length:e.length},language:e.language,text:e.text}))||null,o={httpLink:r?.httpLinks?.map(n),pearLink:r?.pearLinks?.map(n),mention:i,translation:a,bold:r.bold||[],italic:r.italic||[],code:r.code||[],emoji:r?.emoji?.map(({start:e,length:t,content:n})=>({range:{start:e,length:t},content:n})),codeBlock:r.codeBlock||[],strike:r.strike||[]},s={callStarted:!0===r?.callStarted,callHangup:!0===r?.callHangup,callMissed:!0===r?.callMissed,locationShared:r?.locationShared};let c=null;r.replyTo&&(c=d(r.replyTo));const u=!0===r.forwarded,g=[];for(const e of r?.files||[]){const t=l(e);t&&g.push(t)}return{text:t,replyTo:c,forwarded:u,display:o,files:g,event:s}},decodeImageFile:a,decodeFile:l,decodeMessageId:d,decodeConfig:function(t){return t?{...t,avatar:a(t.avatar),blindPeers:(n=t.blindPeers,n&&Array.isArray(n)?n.map(t=>e.decode(t)):[])}:null;var n},decodeUserSettings:function(e){return e?{disableReadReceipts:!0===e.disableReadReceipts,stripAttachmentMetadata:!0===e.stripAttachmentMetadata,profileSnoozeTime:e.profileSnoozeTime}:null},decodeFileRangeOptions:function({reverse:e=!0,limit:t=50,gt:n,gte:r,lt:i,lte:l,type:a}={reverse:!0,limit:50}){const d={reverse:e,limit:t};return Number.isInteger(n)&&(d.gt=a?{id:n,type:a}:{id:n}),Number.isInteger(r)&&(d.gte=a?{id:r,type:a}:{id:r}),Number.isInteger(i)&&(d.lt=a?{id:i,type:a}:{id:i}),Number.isInteger(l)&&(d.lte=a?{id:l,type:a}:{id:l}),a&&(e&&!d.lte&&(d.lte={type:a}),e||d.gte||(d.gte={type:a}),d.lte&&!d.gte&&(d.gte={type:a}),d.gte&&!d.lte&&(d.lte={type:a})),d}};