1
0
basics/stfx/ui/html/cbor.min.js

2 lines
6.5 KiB
JavaScript

let CBOR={encode(e,r){let o=r&&r.resizable?(r.resize(0),r):new ArrayBuffer(0,{maxByteLength:64}),f=new DataView(o),i=[o],y=CBOR.encodeTag;function l(e,r,t){var n=1+t;if(o.byteLength+n>o.maxByteLength){let e=1;for(;e<=o.maxByteLength||e<=t;)e*=2;o=new ArrayBuffer(0,{maxByteLength:e}),i.push(o),f=new DataView(o)}var a=o.byteLength;return o.resize(a+n),f.setUint8(a,e<<5|r),a+1}function s(e,r,t){var n;return r<24?l(e,r,t):r<256?(n=l(e,24,t+1),f.setUint8(n,r),n+1):r<65536?(n=l(e,25,t+2),f.setUint16(n,r),n+2):(n=l(e,26,t+4),f.setUint32(n,r),n+4)}if(!function r(t){if("number"==typeof t)Number.isInteger(t)&&t<=Number.MAX_SAFE_INTEGER&&t>=Number.MIN_SAFE_INTEGER?0<=t?t<4294967296?s(0,t,0):t<0x10000000000000000?(e=l(0,27,8),f.setBigUint64(e,BigInt(t))):(e=l(7,27,8),f.setFloat64(e,t)):-4294967296<=t?s(1,-1-t,0):-18446744073709551616n<=t?(e=l(1,27,8),f.setBigUint64(e,BigInt(-1-t))):(e=l(7,26,8),f.setFloat64(e,t)):(e=l(7,27,8),f.setFloat64(e,t));else if("bigint"==typeof t)if(0<=t)if(t<18446744073709551616n){var e=l(0,27,8);f.setBigUint64(e,t)}else{l(6,2,0);for(var n=[];t;)n.unshift(Number(0xffn&t)),t>>=8n;r(new Uint8Array(n).buffer)}else if(-18446744073709551616n<=t){e=l(1,27,8);f.setBigUint64(e,-1n-t)}else{l(6,3,0),t=-1n-t;for(var a=[];t;)a.unshift(Number(0xffn&t)),t>>=8n;r(new Uint8Array(a).buffer)}else if(!1===t)l(7,20,0);else if(!0===t)l(7,21,0);else if(null===t)l(7,22,0);else if(void 0===t)l(7,23,0);else if("string"==typeof t){var i=s(3,(e=(new TextEncoder).encode(t)).length,e.length);new Uint8Array(o).set(e,i)}else if(t instanceof ArrayBuffer)e=s(2,t.byteLength,t.byteLength),new Uint8Array(o).set(new Uint8Array(t),e);else if(t instanceof DataView){i=s(2,t.byteLength,t.byteLength);new Uint8Array(o).set(new Uint8Array(t.buffer,t.byteOffset,t.byteLength),i)}else if(Array.isArray(t))s(4,t.length,0),t.forEach(r);else{if("object"!=typeof t){for(let e=0;e<256;++e)if(t===CBOR.simple[e])return s(7,e,0);throw Error("unknown simple value")}if(y in t)return s(6,(e=t[y](t))[0],0),r(e[1]);l(5,(i=Object.keys(t)).length,0),i.forEach(e=>{r(e),r(t[e])})}}(e),1==i.length)return i[0];let t=0,n=(i.forEach(e=>t+=e.byteLength),new ArrayBuffer(0,{maxByteLength:t})),a=new Uint8Array(n);return i.forEach(e=>{var r=n.byteLength;n.resize(r+e.byteLength),a.set(new Uint8Array(e),r)}),n},decode(s){let o=CBOR.decodeTags,u=0,c=(ArrayBuffer.isView(s)&&(u=s.byteOffset,s=s.buffer),s.byteLength),g=(s=new DataView(s),CBOR.breakCode);function h(e,r,t){switch(e){case 0:return r;case 1:return-1-r;case 2:var n=t?new Uint8Array(s.buffer,u,r):s.buffer.slice(u,u+r);return u+=r,n;case 3:n=new Uint8Array(s.buffer,u,r);return u+=r,(new TextDecoder).decode(n);case 4:var a=[];for(let e=0;e<r;++e)a.push(A());return a;case 5:var i=Object.create(null);for(let e=0;e<r;++e)i[A()]=A();return i;case 6:return o[r]?o[r](A(!0)):A();case 7:if(256<=r)throw Error("invalid simple value");return CBOR.simple[r]}}function A(e=!1){if(u>=c)throw Error("end of CBOR");var r=s.getUint8(u++),t=r>>5,n=31&r;switch(n){case 24:return h(t,s.getUint8(u++),e);case 25:return 7==t?(a=s.getFloat16(u),u+=2,a):(a=s.getUint16(u),u+=2,h(t,a,e));case 26:return 7==t?(a=s.getFloat32(u),u+=4,a):(a=s.getUint32(u),u+=4,h(t,a,e));case 27:if(7==t)return a=s.getFloat64(u),u+=8,a;var a=s.getBigUint64(u);if(u+=8,a<Number.MAX_SAFE_INTEGER)return h(t,Number(a),e);var i=a;switch(t){case 0:return i;case 1:return-1n-i;default:throw Error("unsupported type for 8-byte length")}return;case 28:case 29:case 30:throw Error("invalid additional CBOR code");case 31:var o=e;switch(t){case 2:{var f=[];let e=0,r=A(!0);for(;r!=g;){if(!(r instanceof Uint8Array))throw Error("indefinite bytes with non-byte item");f.push(r),e+=r.length,r=A(!0)}let t=new Uint8Array(e),n=0;return f.forEach(e=>{t.set(e,n),n+=e.length}),o?t:t.buffer}case 3:{let e="",r=A();for(;r!=g;){if("string"!=typeof r)throw Error("indefinite string with non-string item");e+=r,r=A()}return e}case 4:{var y=[];let e=A();for(;e!=g;)y.push(e),e=A();return y}case 5:{var l=Object.create(null);let e=A();for(;e!=g;)l[e]=A(),e=A();return l}case 7:return g;default:throw Error("invalid indefinite type")}return;default:return h(t,n,e)}}return A()},simple:[],encodeTag:Symbol(),decodeTags:{0:e=>new Date(e),1:e=>new Date(1e3*e),2:r=>{let t=0n;for(let e=0;e<r.length;++e)t=256n*t+BigInt(r[e]);return t},3:r=>{let t=0n;for(let e=0;e<r.length;++e)t=256n*t+BigInt(r[e]);return-1n-t},32:e=>new URL(e),258:e=>new Set(e)},encode16(e,r){var t=new Uint8Array(CBOR.encode(e,r));let n="";for(let e=0;e<t.length;++e)n+=(t[e]>>4).toString(16)+(15&t[e]).toString(16);return n},encode64(e,r){var t=new Uint8Array(CBOR.encode(e,r));let n="";for(let e=0;e<t.length;++e)n+=String.fromCharCode(t[e]);return btoa(n)},decode64(e){var r=atob(e),t=new Uint8Array(r.length);for(let e=0;e<t.length;++e)t[e]=r.charCodeAt(e);return CBOR.decode(t)},decode16(r){var t=new Uint8Array(r.length/2);for(let e=0;e<t.length;++e)t[e]=parseInt(r.substr(2*e,2),16);return CBOR.decode(t)}};for(let e=0;e<256;++e)CBOR.simple[e]=Symbol("CBOR "+e);CBOR.simple[20]=!1,CBOR.simple[21]=!0,CBOR.simple[22]=null,CBOR.simple[23]=void 0,((e,y)=>{function r(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}Date.prototype[e]=e=>[1,+e/1e3],URL.prototype[e]=e=>[32,e.href],Set.prototype[e]=e=>[258,Array.from(e)];var t="function"==typeof Float16Array;Uint8Array.prototype[e]=e=>[64,r(e)],Int8Array.prototype[e]=e=>[72,r(e)],Uint16Array.prototype[e]=e=>[y?65:69,r(e)],Int16Array.prototype[e]=e=>[y?73:77,r(e)],Uint32Array.prototype[e]=e=>[y?66:70,r(e)],Int32Array.prototype[e]=e=>[y?74:78,r(e)],BigUint64Array.prototype[e]=e=>[y?67:71,r(e)],BigInt64Array.prototype[e]=e=>[y?75:79,r(e)],t&&(Float16Array.prototype[e]=e=>[y?80:84,r(e)]),Float32Array.prototype[e]=e=>[y?81:85,r(e)],Float64Array.prototype[e]=e=>[y?82:86,r(e)];e=(r,o)=>{const f=r.BYTES_PER_ELEMENT;return e=>{if((e.byteOffset%f||o!=y)&&(e=e.slice()),o!=y){var t=e,n=f;for(let r=0;r<t.length;r+=n)for(let e=0;e<n/2;++e){var a=n-1-e,i=t[r+e];t[r+e]=t[r+a],t[r+a]=i}}return new r(e.buffer,e.byteOffset,e.length/f)}};Object.assign(CBOR.decodeTags,{64:e=>e,65:e(Uint16Array,!0),66:e(Uint32Array,!0),67:e(BigUint64Array,!0),69:e(Uint16Array,!1),70:e(Uint32Array,!1),71:e(BigUint64Array,!1),72:e=>new Int8Array(e.buffer,e.byteOffset,e.length),73:e(Int16Array,!0),74:e(Int32Array,!0),75:e(BigInt64Array,!0),77:e(Int16Array,!1),78:e(Int32Array,!1),79:e(BigInt64Array,!1),80:t&&e(Float16Array,!0),81:e(Float32Array,!0),82:e(Float64Array,!0),84:t&&e(Float16Array,!1),85:e(Float32Array,!1),86:e(Float64Array,!1)})})(CBOR.encodeTag,!!new Uint8Array(new Uint16Array([256]).buffer)[0]),"object"==typeof module&&module?.exports&&(module.exports=CBOR);