cborkit
Version:
A modern, extensible CBOR (Concise Binary Object Representation) library for TypeScript and JavaScript.
2 lines (1 loc) • 2.02 kB
JavaScript
import{a as i,b as p,g as c,h as l,j as x,k as a,l as W,o as b}from"./chunk-YKGOQYF7.js";var m=new TextEncoder,s=(r,e=new b)=>{switch(r.type){case"int":N(r.value,e);break;case"bytes":h(r.value,e);break;case"text":d(r.value,e);break;case"array":T(r.value.length,e);for(let t of r.value)s(t,e);break;case"map":g(r.value.length,e);for(let[t,n]of r.value)s(t,e),s(n,e);break;case"tag":w(r.value,e),s(r.item,e);break;case"simple":u(r.value,e);break;case"float":k(r.value,e);break}return e},o=(r,e,t)=>(t.push([r<<5|e]),t),f=(r,e,t)=>{if(e===null)return o(r,31,t),t;if(e<0)throw new Error("length must be positive");if(e<=23)o(r,Number(e),t);else if(e<=255)o(r,24,t),t.push([Number(e)]);else if(e<=65535){o(r,25,t);let n=Number(e);t.push([n>>8,n])}else if(e<=4294967295){o(r,26,t);let n=Number(e);t.push([n>>24,n>>16,n>>8,n])}else{o(r,27,t);let n=BigInt(e);if(n<=0xffffffffffffffffn)t.push([Number(n>>56n&0xffn),Number(n>>48n&0xffn),Number(n>>40n&0xffn),Number(n>>32n&0xffn),Number(n>>24n&0xffn),Number(n>>16n&0xffn),Number(n>>8n&0xffn),Number(n&0xffn)]);else throw new Error("length must be less than 2^64")}return t},N=(r,e)=>{let t=r>=0,n=t?r:typeof r=="bigint"?-r-1n:-r-1;return f(t?i.PosInt:i.NegInt,n,e)},F=r=>f(i.Bytes,null,r),h=(r,e)=>(f(i.Bytes,r.byteLength,e),e.push(r),e),E=r=>f(i.Text,null,r),d=(r,e)=>{let t=m.encode(r);return f(i.Text,BigInt(t.length),e),e.push(t),e},T=(r,e)=>(f(i.Array,r,e),e),g=(r,e)=>(f(i.Map,r,e),e),w=(r,e)=>(f(i.Tag,r,e),e),u=(r,e)=>{if(r<=23)return o(i.Special,Number(r),e),e;if(r<=255)return o(i.Special,24,e),e.push([Number(r)]),e;throw new Error("value must be less than 2^8")},H=(r,e)=>u(r?21:20,e),M=r=>u(23,r),_=r=>u(22,r),k=(r,e)=>{let t=new Uint8Array(8);return p&&(x(t,0,r),c(t,0)===r)?(o(i.Special,25,e),e.push(t.slice(0,2)),e):(a(t,0,r),l(t,0)===r?(o(i.Special,26,e),e.push(t.slice(0,4)),e):(o(i.Special,27,e),W(t,0,r),e.push(t),e))},v=r=>o(i.Special,31,r);export{s as a,o as b,N as c,F as d,h as e,E as f,d as g,T as h,g as i,w as j,u as k,H as l,M as m,_ as n,k as o,v as p};