UNPKG

tinybase

Version:

A reactive data store and sync engine.

2 lines (1 loc) 1.72 kB
const e=(e,t="",r)=>e.split(t,r),t=globalThis,r=Math,n=r.max,o=r.floor,a=e=>void 0===e,c=(s=a,(e,t,r)=>s(e)?r?.():t(e));var s;const i=(e,t)=>e.map(t),l=(e,t,r)=>e.reduce(t,r),p=Object,u=p.entries,d=Map,f=e=>new d(e),m=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),g=f(i(m,(e,t)=>[e,t])),v=e=>m[63&e],w=(e,t)=>{return r=g,n=e[t],r?.get(n)??0;var r,n},y=t.crypto?e=>t.crypto.getRandomValues(e):e=>i(e,()=>o(256*r.random())),h=(e=16)=>l(y(new Uint8Array(e)),(e,t)=>e+v(t),""),x=JSON.stringify,E=new t.TextEncoder,M=e=>{let t=2166136261;var r;return r=e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)},E.encode(e).forEach(r),t>>>0},b=(e,t)=>(e^t)>>>0,O=e=>l(u(e),(e,[t,r])=>b(e,T(t,r)^T(t,0)),0),T=(e,t)=>M(e+":"+t),j=(e,t)=>M(x(e??null,(e,t)=>t instanceof Map?p.fromEntries([...t]):t)+":"+t),A=j,D=T,J=O,N=T,R=e=>l(u(e),(e,[t,r])=>b(e,T(t,r)),0),S=T,U=R,V=2**36,k=2**30,q=2**24,z=2**18,B=4096,C=e=>{const t=M(e);return v(t/q)+v(t/z)+v(t/B)+v(t/64)+v(t)},F=(e,t=Date.now)=>{let r=0,o=-1;const s=c(e,C,()=>h(5)),i=e=>{const c=r,[s,i]=a(e)||""==e?[0,0]:p(e);r=n(c,s,t()),o=r==c?r==s?n(o,i):o:r==s?i:-1},l=(e,t,r)=>v(e/V)+v(e/k)+v(e/q)+v(e/z)+v(e/B)+v(e/64)+v(e)+v(t/z)+v(t/B)+v(t/64)+v(t)+(a(r)?s:C(r)),p=e=>[w(e,0)*V+w(e,1)*k+w(e,2)*q+w(e,3)*z+w(e,4)*B+64*w(e,5)+w(e,6),w(e,7)*z+w(e,8)*B+64*w(e,9)+w(e,10),e.slice(11)];return[()=>(i(),l(r,++o)),i,l,p,()=>r,()=>o,()=>s]},G=(e,t)=>(e??0)<(t??0)?-1:1;export{b as addOrRemoveHash,G as defaultSorter,A as getCellHash,D as getCellInRowHash,M as getHash,F as getHlcFunctions,J as getRowHash,N as getRowInTableHash,R as getTableHash,S as getTableInTablesHash,U as getTablesHash,h as getUniqueId,j as getValueHash,T as getValueInValuesHash,O as getValuesHash};