cbor-x 0.8.2 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -1,53 +1,77 @@
1
- (function(a,b){"object"==typeof exports&&"undefined"!=typeof module?b(exports):"function"==typeof define&&define.amd?define(["exports"],b):(a=a||self,b(a.CBOR={}))})(this,function(a){'use strict';function b(){let a=u[w++],d=a>>5;if(a&=31,23<a)switch(a){case 24:a=u[w++];break;case 25:if(7==d)return i();a=C.getUint16(w),w+=2;break;case 26:if(7==d){let a=C.getFloat32(w);if(2<D.useFloat32){// this does rounding of numbers that were encoded in 32-bit float to nearest significant decimal digit that could be preserved
2
- let b=S[(127&u[w])<<1|u[w+1]>>7];return w+=4,(b*a+(0<a?.5:-.5)>>0)/b}return w+=4,a}a=C.getUint32(w),w+=4;break;case 27:if(7==d){let a=C.getFloat64(w);return w+=8,a}if(D.uint64AsNumber)return 72057594037927940*u[w++]+281474976710656*u[w++]+1099511627776*u[w++]+4294967296*u[w++]+16777216*u[w++]+(u[w++]<<16)+(u[w++]<<8)+u[w++];a=C.getBigUint64(w),w+=8;break;case 31:// indefinite length
3
- switch(d){case 2:// byte string
1
+ (function(a,b){"object"==typeof exports&&"undefined"!=typeof module?b(exports):"function"==typeof define&&define.amd?define(["exports"],b):(a=a||self,b(a.CBOR={}))})(this,function(a){'use strict';function b(){try{let a=c();if(B==A)// finished reading this source, cleanup references
2
+ E=null,z=null,G&&(G=null);else if(B>A){// over read
3
+ let a=new Error("Unexpected end of CBOR data");throw a.incomplete=!0,a}else if(!Q)throw new Error("Data read, but end of buffer not reached");// else more to read, but we are reading sequentially, so don't clear source yet
4
+ return a}catch(a){throw o(),(a instanceof RangeError||a.message.startsWith("Unexpected end of buffer"))&&(a.incomplete=!0),a}}function c(){let a=z[B++],b=a>>5;if(a&=31,23<a)switch(a){case 24:a=z[B++];break;case 25:if(7==b)return j();a=I.getUint16(B),B+=2;break;case 26:if(7==b){let a=I.getFloat32(B);if(2<K.useFloat32){// this does rounding of numbers that were encoded in 32-bit float to nearest significant decimal digit that could be preserved
5
+ let b=aa[(127&z[B])<<1|z[B+1]>>7];return B+=4,(b*a+(0<a?.5:-.5)>>0)/b}return B+=4,a}a=I.getUint32(B),B+=4;break;case 27:if(7==b){let a=I.getFloat64(B);return B+=8,a}if(K.uint64AsNumber)return 72057594037927940*z[B++]+281474976710656*z[B++]+1099511627776*z[B++]+4294967296*z[B++]+16777216*z[B++]+(z[B++]<<16)+(z[B++]<<8)+z[B++];a=I.getBigUint64(B),B+=8;break;case 31:// indefinite length
6
+ switch(b){case 2:// byte string
4
7
  case 3:// text string
5
8
  case 4:// array
6
- let a,c=[],e=0;for(;(a=b())!=y;)c[e++]=a;return 4==d?c:3==d?c.join(""):Buffer.concat(c);case 5:// map
7
- let f;if(D.mapsAsObjects){let a={};for(;(f=j())!=y;)a[f]=b();return a}else{let a=new Map;for(;(f=b())!=y;)a.set(f,b());return a}case 7:return y;default:throw new Error("Invalid major type for indefinite length "+d);}default:throw new Error("Unknown token "+a);}switch(d){case 0:// positive int
9
+ let a,d=[],e=0;for(;(a=c())!=D;)d[e++]=a;return 4==b?d:3==b?d.join(""):Buffer.concat(d);case 5:// map
10
+ let f;if(K.mapsAsObjects){let a={};for(;(f=k())!=D;)a[f]=c();return a}else{J&&(K.mapsAsObjects=!0,J=!1);let a=new Map;for(;(f=c())!=D;)a.set(f,c());return a}case 7:return D;default:throw new Error("Invalid major type for indefinite length "+b);}default:throw new Error("Unknown token "+a);}switch(b){case 0:// positive int
8
11
  return a;case 1:// negative int
9
12
  return~a;case 2:// buffer
10
- return h(a);case 3:// string
11
- if(F>=w)return A.slice(w-E,(w+=a)-E);if(0==F&&140>v&&32>a){// for small blocks, avoiding the overhead of the extract call is helpful
12
- let b=16>a?g(a):f(a);if(null!=b)return b}return K(a);case 4:// array
13
- let e=Array(a);for(let c=0;c<a;c++)e[c]=b();return e;case 5:// map
14
- if(D.mapsAsObjects){let c={};for(let d=0;d<a;d++)c[j()]=b();return c}else{let c=new Map;for(let d=0;d<a;d++)c.set(b(),b());return c}case 6:// extension
15
- if(a>>8==x){// record structures
16
- let b=z[255&a];if(b)return b.read||(b.read=c(b)),b.read();if(D.getStructures){let d=l(()=>(u=null,D.getStructures()));return!0===z?D.structures=z=d:z.splice.apply(z,[0,d.length].concat(d)),b=z[255&a],b?(b.read||(b.read=c(b)),b.read()):a}return a}else{let c=G[a];return c?c.handlesRead?c(b):c(b()):new N(b())}case 7:// fixed value
13
+ return i(a);case 3:// string
14
+ if(M>=B)return F.slice(B-L,(B+=a)-L);if(0==M&&140>A&&32>a){// for small blocks, avoiding the overhead of the extract call is helpful
15
+ let b=16>a?h(a):g(a);if(null!=b)return b}return T(a);case 4:// array
16
+ let e=Array(a);for(let b=0;b<a;b++)e[b]=c();return e;case 5:// map
17
+ if(K.mapsAsObjects){let b={};for(let d=0;d<a;d++)b[k()]=c();return b}else{J&&(K.mapsAsObjects=!0,J=!1);let b=new Map;for(let d=0;d<a;d++)b.set(c(),c());return b}case 6:// extension
18
+ if(a>>8==C){// record structures
19
+ let b=E[255&a];if(b)return b.read||(b.read=d(b)),b.read();if(K.getStructures){let c=n(()=>(z=null,K.getStructures()));return!0===E?K.structures=E=c:E.splice.apply(E,[0,c.length].concat(c)),b=E[255&a],b?(b.read||(b.read=d(b)),b.read()):a}return a}else{let b=N[a];if(b)return b.handlesRead?b(c):b(c());else{let b=c();for(let c,d=0;d<O.length;d++)if(c=O[d](a,b),void 0!==c)return c;return new W(b)}}case 7:// fixed value
17
20
  switch(a){case 20:return!1;case 21:return!0;case 22:return null;case 23:return;// undefined
18
- case 31:default:throw new Error("Unknown token "+a);}default:// negative int
19
- if(isNaN(a)){let a=new Error("Unexpected end of CBOR data");throw a.incomplete=!0,a}throw new Error("Unknown CBOR token "+a);}}function c(a){function c(){// This initial function is quick to instantiate, but runs slower. After several iterations pay the cost to build the faster function
20
- if(2<c.count++)return this.read=new Function("a","r","return function(){a();return {"+a.map(a=>J.test(a)?a+":r()":"["+JSON.stringify(a)+"]:r()").join(",")+"}}")(d,b),this.read();d();let f={};for(let c,d=0;d<e;d++)c=a[d],f[c]=b();return f}let e=a.length;return c.count=0,c}function d(){// consume the array header, TODO: check expected length
21
- let a=u[w++];//let majorType = token >> 5
22
- a&=31;23<a&&(24===a?w++:25===a?w+=2:26===a?w+=4:void 0)}function e(a){let b;if(16>a&&(b=g(a)))return b;if(64<a&&t)return t.decode(u.subarray(w,w+=a));const c=w+a,d=[];for(b="";w<c;){const a=u[w++];if(0==(128&a))d.push(a);else if(192==(224&a)){// 2 bytes
23
- const b=63&u[w++];d.push((31&a)<<6|b)}else if(224==(240&a)){// 3 bytes
24
- const b=63&u[w++],c=63&u[w++];d.push((31&a)<<12|b<<6|c)}else if(240==(248&a)){// 4 bytes
25
- const b=63&u[w++],c=63&u[w++],e=63&u[w++];let f=(7&a)<<18|b<<12|c<<6|e;65535<f&&(f-=65536,d.push(55296|1023&f>>>10),f=56320|1023&f),d.push(f)}else d.push(a);4096<=d.length&&(b+=L.apply(String,d),d.length=0)}return 0<d.length&&(b+=L.apply(String,d)),b}function f(a){let b=w,c=Array(a);for(let d=0;d<a;d++){const a=u[w++];if(0<(128&a))return void(w=b);c[d]=a}return L.apply(String,c)}function g(p){if(4>p){if(!(2>p)){let d=u[w++],a=u[w++];if(0<(128&d)||0<(128&a))return void(w-=2);if(3>p)return L(d,a);let b=u[w++];return 0<(128&b)?void(w-=3):L(d,a,b)}if(0===p)return"";else{let b=u[w++];return 1<(128&b)?void(w-=1):L(b)}}else{let q=u[w++],a=u[w++],b=u[w++],c=u[w++];if(0<(128&q)||0<(128&a)||0<(128&b)||0<(128&c))return void(w-=4);if(6>p){if(4===p)return L(q,a,b,c);else{let d=u[w++];return 0<(128&d)?void(w-=5):L(q,a,b,c,d)}}else if(8>p){let d=u[w++],e=u[w++];if(0<(128&d)||0<(128&e))return void(w-=6);if(7>p)return L(q,a,b,c,d,e);let f=u[w++];return 0<(128&f)?void(w-=7):L(q,a,b,c,d,e,f)}else{let d=u[w++],e=u[w++],f=u[w++],g=u[w++];if(0<(128&d)||0<(128&e)||0<(128&f)||0<(128&g))return void(w-=8);if(10>p){if(8===p)return L(q,a,b,c,d,e,f,g);else{let h=u[w++];return 0<(128&h)?void(w-=9):L(q,a,b,c,d,e,f,g,h)}}else if(12>p){let h=u[w++],i=u[w++];if(0<(128&h)||0<(128&i))return void(w-=10);if(11>p)return L(q,a,b,c,d,e,f,g,h,i);let j=u[w++];return 0<(128&j)?void(w-=11):L(q,a,b,c,d,e,f,g,h,i,j)}else{let h=u[w++],i=u[w++],j=u[w++],k=u[w++];if(0<(128&h)||0<(128&i)||0<(128&j)||0<(128&k))return void(w-=12);if(!(14>p)){let l=u[w++],m=u[w++];if(0<(128&l)||0<(128&m))return void(w-=14);if(15>p)return L(q,a,b,c,d,e,f,g,h,i,j,k,l,m);let n=u[w++];return 0<(128&n)?void(w-=15):L(q,a,b,c,d,e,f,g,h,i,j,k,l,m,n)}if(12===p)return L(q,a,b,c,d,e,f,g,h,i,j,k);else{let l=u[w++];return 0<(128&l)?void(w-=13):L(q,a,b,c,d,e,f,g,h,i,j,k,l)}}}}}function h(a){return D.copyBuffers?// specifically use the copying slice (not the node one)
26
- Uint8Array.prototype.slice.call(u,w,w+=a):u.subarray(w,w+=a)}function i(){var a=Math.exp;let b,c=u[w++],d=u[w++],e=(c<<8)+d,f=31&e>>10,g=1023&e;return b=0==f?a(g,-24):31==f?0==g?1/0:NaN:a(g+1024,f-25),32768&e?-b:b}function j(){let a=u[w++];if(96<=a&&120>a){if(a-=96,F>=w)// if it has been extracted, must use it (and faster anyway)
27
- return A.slice(w-E,(w+=a)-E);if(!(0==F&&180>v))return K(a)}else return w--,b();let c,d=4095&(a<<5^(1<a?C.getUint16(w):0<a?u[w]:0)),e=M[d],h=w,j=w+a-3,k=0;if(e&&e.bytes==a){for(;h<j;){if(c=C.getUint32(h),c!=e[k++]){h=1879048192;break}h+=4}for(j+=3;h<j;)if(c=u[h++],c!=e[k++]){h=1879048192;break}if(h===j)return w=h,e.string;j-=3,h=w}for(e=[],M[d]=e,e.bytes=a;h<j;)c=C.getUint32(h),e.push(c),h+=4;for(j+=3;h<j;)c=u[h++],e.push(c);// for small blocks, avoiding the overhead of the extract call is helpful
28
- let l=16>a?g(a):f(a);return null==l?e.string=K(a):e.string=l}function k(a,b){G[b]=b=>{if(!a)throw new Error("Could not find typed array for code "+typeCode);// we have to always slice/copy here to get a new ArrayBuffer that is word/byte aligned
29
- return new O[a](Uint8Array.prototype.slice.call(b,0).buffer)}}function l(a){let b=v,c=w,d=E,e=F,f=A,g=B,h=new Uint8Array(u.slice(0,v)),i=z,j=D,k=a();return v=b,w=c,E=d,F=e,A=f,B=g,u=h,z=i,D=j,C=new DataView(u.buffer,u.byteOffset,u.byteLength),k}function m(){u=null,B=null,z=null}function n(a){G[a.tag]=a.decode}function o(a){256>a?(ea[ha++]=152,ea[ha++]=a):65536>a?(ea[ha++]=153,ea[ha++]=a>>8,ea[ha++]=255&a):(ea[ha++]=154,fa.setUint32(ha,a),ha+=4)}function p(a){return{tag:a,encode:function(a,b){let c=a.byteLength,d=a.byteOffset||0,e=a.buffer||a;b($?Buffer.from(e,d,c):new Uint8Array(e,d,c))}}}function q(a,b){let c=a.byteLength;256>c?(ea[ha++]=88,ea[ha++]=c):65536>c?(ea[ha++]=89,ea[ha++]=c>>8,ea[ha++]=255&c):(ea[ha++]=90,fa.setUint32(ha,c),ha+=4),ha+c>=ea.length&&b(ha+c),ea.set(a,ha),ha+=c}function r(a,b){// insert the ids that need to be referenced for structured clones
21
+ case 31:default:let b=H[a];if(void 0!==b)return b;throw new Error("Unknown token "+a);}default:// negative int
22
+ if(isNaN(a)){let a=new Error("Unexpected end of CBOR data");throw a.incomplete=!0,a}throw new Error("Unknown CBOR token "+a);}}function d(a){function b(){// This initial function is quick to instantiate, but runs slower. After several iterations pay the cost to build the faster function
23
+ if(2<b.count++)return this.read=new Function("a","r","return function(){a();return {"+a.map(a=>S.test(a)?a+":r()":"["+JSON.stringify(a)+"]:r()").join(",")+"}}")(e,c),this.read();e();let f={};for(let b,e=0;e<d;e++)b=a[e],f[b]=c();return f}let d=a.length;return b.count=0,b}function e(){// consume the array header, TODO: check expected length
24
+ let a=z[B++];//let majorType = token >> 5
25
+ a&=31;23<a&&(24===a?B++:25===a?B+=2:26===a?B+=4:void 0)}function f(a){let b;if(16>a&&(b=h(a)))return b;if(64<a&&y)return y.decode(z.subarray(B,B+=a));const c=B+a,d=[];for(b="";B<c;){const a=z[B++];if(0==(128&a))d.push(a);else if(192==(224&a)){// 2 bytes
26
+ const b=63&z[B++];d.push((31&a)<<6|b)}else if(224==(240&a)){// 3 bytes
27
+ const b=63&z[B++],c=63&z[B++];d.push((31&a)<<12|b<<6|c)}else if(240==(248&a)){// 4 bytes
28
+ const b=63&z[B++],c=63&z[B++],e=63&z[B++];let f=(7&a)<<18|b<<12|c<<6|e;65535<f&&(f-=65536,d.push(55296|1023&f>>>10),f=56320|1023&f),d.push(f)}else d.push(a);4096<=d.length&&(b+=U.apply(String,d),d.length=0)}return 0<d.length&&(b+=U.apply(String,d)),b}function g(a){let b=B,c=Array(a);for(let d=0;d<a;d++){const a=z[B++];if(0<(128&a))return void(B=b);c[d]=a}return U.apply(String,c)}function h(p){if(4>p){if(!(2>p)){let d=z[B++],a=z[B++];if(0<(128&d)||0<(128&a))return void(B-=2);if(3>p)return U(d,a);let b=z[B++];return 0<(128&b)?void(B-=3):U(d,a,b)}if(0===p)return"";else{let b=z[B++];return 1<(128&b)?void(B-=1):U(b)}}else{let q=z[B++],a=z[B++],b=z[B++],c=z[B++];if(0<(128&q)||0<(128&a)||0<(128&b)||0<(128&c))return void(B-=4);if(6>p){if(4===p)return U(q,a,b,c);else{let d=z[B++];return 0<(128&d)?void(B-=5):U(q,a,b,c,d)}}else if(8>p){let d=z[B++],e=z[B++];if(0<(128&d)||0<(128&e))return void(B-=6);if(7>p)return U(q,a,b,c,d,e);let f=z[B++];return 0<(128&f)?void(B-=7):U(q,a,b,c,d,e,f)}else{let d=z[B++],e=z[B++],f=z[B++],g=z[B++];if(0<(128&d)||0<(128&e)||0<(128&f)||0<(128&g))return void(B-=8);if(10>p){if(8===p)return U(q,a,b,c,d,e,f,g);else{let h=z[B++];return 0<(128&h)?void(B-=9):U(q,a,b,c,d,e,f,g,h)}}else if(12>p){let h=z[B++],i=z[B++];if(0<(128&h)||0<(128&i))return void(B-=10);if(11>p)return U(q,a,b,c,d,e,f,g,h,i);let j=z[B++];return 0<(128&j)?void(B-=11):U(q,a,b,c,d,e,f,g,h,i,j)}else{let h=z[B++],i=z[B++],j=z[B++],k=z[B++];if(0<(128&h)||0<(128&i)||0<(128&j)||0<(128&k))return void(B-=12);if(!(14>p)){let l=z[B++],m=z[B++];if(0<(128&l)||0<(128&m))return void(B-=14);if(15>p)return U(q,a,b,c,d,e,f,g,h,i,j,k,l,m);let n=z[B++];return 0<(128&n)?void(B-=15):U(q,a,b,c,d,e,f,g,h,i,j,k,l,m,n)}if(12===p)return U(q,a,b,c,d,e,f,g,h,i,j,k);else{let l=z[B++];return 0<(128&l)?void(B-=13):U(q,a,b,c,d,e,f,g,h,i,j,k,l)}}}}}function i(a){return K.copyBuffers?// specifically use the copying slice (not the node one)
29
+ Uint8Array.prototype.slice.call(z,B,B+=a):z.subarray(B,B+=a)}function j(){var a=Math.exp;let b,c=z[B++],d=z[B++],e=(c<<8)+d,f=31&e>>10,g=1023&e;return b=0==f?a(g,-24):31==f?0==g?1/0:NaN:a(g+1024,f-25),32768&e?-b:b}function k(){let a=z[B++];if(96<=a&&120>a){if(a-=96,M>=B)// if it has been extracted, must use it (and faster anyway)
30
+ return F.slice(B-L,(B+=a)-L);if(!(0==M&&180>A))return T(a)}else return B--,c();let b,d=4095&(a<<5^(1<a?I.getUint16(B):0<a?z[B]:0)),e=V[d],f=B,j=B+a-3,k=0;if(e&&e.bytes==a){for(;f<j;){if(b=I.getUint32(f),b!=e[k++]){f=1879048192;break}f+=4}for(j+=3;f<j;)if(b=z[f++],b!=e[k++]){f=1879048192;break}if(f===j)return B=f,e.string;j-=3,f=B}for(e=[],V[d]=e,e.bytes=a;f<j;)b=I.getUint32(f),e.push(b),f+=4;for(j+=3;f<j;)b=z[f++],e.push(b);// for small blocks, avoiding the overhead of the extract call is helpful
31
+ let l=16>a?h(a):g(a);return null==l?e.string=T(a):e.string=l}function l(c,a){return"string"==typeof c?c+a:c instanceof Array?c.concat(a):Object.assign({},c,a)}function m(a,b){N[b]=b=>{if(!a)throw new Error("Could not find typed array for code "+typeCode);// we have to always slice/copy here to get a new ArrayBuffer that is word/byte aligned
32
+ return new X[a](Uint8Array.prototype.slice.call(b,0).buffer)}}function n(a){let b=A,c=B,d=L,e=M,f=F,g=G,h=new Uint8Array(z.slice(0,A)),i=E,j=K,k=Q,l=a();return A=b,B=c,L=d,M=e,F=f,G=g,z=h,Q=k,E=i,K=j,I=new DataView(z.buffer,z.byteOffset,z.byteLength),l}function o(){z=null,G=null,E=null}function p(a){N[a.tag]=a.decode}function q(a){24>a?qa[ta++]=128|a:256>a?(qa[ta++]=152,qa[ta++]=a):65536>a?(qa[ta++]=153,qa[ta++]=a>>8,qa[ta++]=255&a):(qa[ta++]=154,ra.setUint32(ta,a),ta+=4)}function r(a,b){switch(typeof a){case"string":if(3<a.length){if(-1<b.objectMap[a]||b.values.length>=b.maxValues)return;let c=b.get(a);if(c)2==++c.count&&b.values.push(a);else if(b.set(a,{count:1}),b.samplingPackedValues){let c=b.samplingPackedValues.get(a);c?c.count++:b.samplingPackedValues.set(a,{count:1})}}break;case"object":if(a)if(a instanceof Array)for(let c=0,d=a.length;c<d;c++)r(a[c],b);else{let d=!b.encoder.useRecords;for(var c in a)a.hasOwnProperty(c)&&(d&&r(c,b),r(a[c],b))}break;case"function":console.log(a);}}function s(a){return{tag:a,encode:function(a,b){let c=a.byteLength,d=a.byteOffset||0,e=a.buffer||a;b(ka?Buffer.from(e,d,c):new Uint8Array(e,d,c))}}}function t(a,b){let c=a.byteLength;24>c?qa[ta++]=64+c:256>c?(qa[ta++]=88,qa[ta++]=c):65536>c?(qa[ta++]=89,qa[ta++]=c>>8,qa[ta++]=255&c):(qa[ta++]=90,ra.setUint32(ta,c),ta+=4),ta+c>=qa.length&&b(ta+c),qa.set(a,ta),ta+=c}function u(a,b){// insert the ids that need to be referenced for structured clones
30
33
  let c,d=8*b.length,e=a.length-d;for(b.sort((c,a)=>c.offset>a.offset?1:-1);c=b.pop();){let b=c.offset,f=c.id;a.copyWithin(b+d,b,e),d-=8;let g=b+d;// uint32
31
- a[g++]=217,a[g++]=156,a[g++]=73,a[g++]=26,a[g++]=f>>24,a[g++]=255&f>>16,a[g++]=255&f>>8,a[g++]=255&f,e=b}return a}function s(a){if(a.Class){if(!a.encode)throw new Error("Extension has no encode function");Z.unshift(a.Class),Y.unshift(a)}n(a)}let t;try{t=new TextDecoder}catch(a){}let u,v,w=0;const x=105,y={};let z,A,B,C,D={},E=0,F=0,G=[],H={useRecords:!1,mapsAsObjects:!0};class I{constructor(a){a&&(!1===a.useRecords&&a.mapsAsObjects===void 0&&(a.mapsAsObjects=!0),a.getStructures&&!a.structures&&((a.structures=[]).uninitialized=!0)),Object.assign(this,a)}decode(a,c,d){if(u)// re-entrant execution, save the state and restore it after we do this decode
32
- return l(()=>(m(),this?this.decode(a,c,d):I.prototype.decode.call(H,a,c,d)));if(v=-1<c?c:a.length,w=0,F=0,A=null,u=a,C=a.dataView||(a.dataView=new DataView(a.buffer,a.byteOffset,a.byteLength)),!this)D=H,(!z||0<z.length)&&(z=[]);else if(D=this,this.structures){z=this.structures;try{return b()}finally{(w>=v||!d)&&(z=null,u=null,B&&(B=null))}}else(!z||0<z.length)&&(z=[]);try{return b()}finally{(w>=v||!d)&&(u=null,B&&(B=null))}}decodeMultiple(a,c){try{let d,e=this,f=a.length,g=this?this.decode(a,f,!0):T.decode(a,f,!0);if(c){for(c(g);w<f;)if(!1===c(b()))return;}else{for(d=[g];w<f;)d.push(b());return d}}finally{m()}}}const J=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;let K=e,L=String.fromCharCode,M=Array(4096);class N{constructor(a){this.value=a}}let O="object"==typeof window?window:global;G[0]=a=>new Date(a),G[1]=a=>new Date(1e3*a),G[2]=a=>new DataView(a.buffer,a.byteOffset,a.byteLength).getBigUint64(0),G[3]=a=>BigInt(-1)-new DataView(a.buffer,a.byteOffset,a.byteLength).getBigUint64(0);// the registration of the record definition extension (tag 105)
33
- const P=()=>{let a=b(),d=a[0],e=a[1];z[255&e]=d,d.read=c(d);let f={};for(let b,c=2,e=a.length;c<e;c++)b=d[c-2],f[b]=a[c];return f};P.handlesRead=!0,G[105]=P,G[27]=a=>(O[a[0]]||Error)(a[1],a[2]),G[40009]=a=>{B||(B=new Map);let c,d=u[w];c=4==d>>5?[]:{};let e={target:c};// a placeholder object
34
- B.set(a,e);let f=b();// read the next value as the target object to id
35
- return e.used?Object.assign(c,f):(e.target=f,f);// no cycle, can just use the returned read object
36
- },G[40010]=a=>{// pointer extension (for structured clones)
37
- let b=B.get(a);return b.used=!0,b.target},G[258]=a=>new Set(a);// https://github.com/input-output-hk/cbor-sets-spec/blob/master/CBOR_SETS.md
38
- const Q=["Uint8","Uint8Clamped","Uint16","Uint32","BigUint64","Int8","Int16","Int32","BigInt64","Float32","Float64"].map(a=>a+"Array"),R=[64,68,69,70,71,72,77,78,79,81,82];for(let b=0;b<Q.length;b++)k(Q[b],R[b]);let S=Array(147);// this is a table matching binary exponents to the multiplier to determine significant digit rounding
39
- for(let b=0;256>b;b++)S[b]=+("1e"+Math.floor(45.15-.30103*b));let T=new I({useRecords:!1});const U=T.decode,V=T.decodeMultiple,W={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4};let X;try{X=new TextEncoder}catch(a){}let Y,Z;const $="undefined"!=typeof Buffer,_=$?Buffer.allocUnsafeSlow:Uint8Array,aa=$?Buffer:Uint8Array,ba=105,ca=256,da=$?4294967296:2144337920;let ea,fa,ga,ha=0;const ia=Symbol("record-id");class ja extends I{constructor(a){super(a),this.offset=0;let b,c,d,e,f,g=0,h=aa.prototype.utf8Write?function(a,b,c){return ea.utf8Write(a,b,c)}:!!(X&&X.encodeInto)&&function(a,b){return X.encodeInto(a,ea.subarray(b)).written},i=this,j=64,k=a&&a.sequential;k&&(j=0,this.structures=[]);let m=[],n=0,p=0;if(this.structures&&this.structures.length>j)throw new Error("Too many shared structures");this.encode=function(a){if(ea||(ea=new _(8192),fa=new DataView(ea.buffer,0,8192),ha=0),ga=ea.length-10,2048>ga-ha&&(ea=new _(ea.length),fa=new DataView(ea.buffer,0,ea.length),ga=ea.length-10,ha=0),b=ha,f=i.structuredClone?new Map:null,c=i.structures,c){c.uninitialized&&(i.structures=c=i.getStructures());let a=c.length;if(a>j&&!k&&(a=j),!c.transitions){c.transitions=Object.create(null);for(let b,d=0;d<a;d++){if(b=c[d],!b)continue;let a,e=c.transitions;for(let c,d=0,f=b.length;d<f;d++)c=b[d],a=e[c],a||(a=e[c]=Object.create(null)),e=a;e[ia]=d}g=c.length}k||(c.nextId=a)}d&&(d=!1),e=c||[];try{// update the offset so next serialization doesn't write over our buffer, but can continue writing to same buffer sequentially
40
- if(q(a),i.offset=ha,f&&f.idsToInsert){ha+=8*f.idsToInsert.length,ha>ga&&t(ha),i.offset=ha;let a=r(ea.subarray(b,ha),f.idsToInsert);return f=null,a}return ea.subarray(b,ha);// position can change if we call encode again in saveStructures, so we get the buffer now
41
- }finally{if(c){if(10>p&&p++,1e4<n)c.transitions=null,p=0,n=0,0<m.length&&(m=[]);else if(0<m.length&&!k){for(let a=0,b=m.length;a<b;a++)m[a][ia]=0;m=[]}if(d&&i.saveStructures){if(i.structures.length>j&&(i.structures=i.structures.slice(0,j)),!1===i.saveStructures(i.structures,g))return i.structures=i.getStructures()||[],i.encode(a);g=i.structures.length}}}};const q=a=>{ha>ga&&(ea=t(ha));var c,d=typeof a;if("string"==d){let b,d=a.length;b=32>d?1:256>d?2:65536>d?3:5;let e=3*d;if(ha+e>ga&&(ea=t(ha+e)),64>d||!h){let e,f,g,h=ha+b;for(e=0;e<d;e++)f=a.charCodeAt(e),128>f?ea[h++]=f:2048>f?(ea[h++]=192|f>>6,ea[h++]=128|63&f):55296==(64512&f)&&56320==(64512&(g=a.charCodeAt(e+1)))?(f=65536+((1023&f)<<10)+(1023&g),e++,ea[h++]=240|f>>18,ea[h++]=128|63&f>>12,ea[h++]=128|63&f>>6,ea[h++]=128|63&f):(ea[h++]=224|f>>12,ea[h++]=128|63&f>>6,ea[h++]=128|63&f);c=h-ha-b}else c=h(a,ha+b,e);24>c?ea[ha++]=96|c:256>c?(2>b&&ea.copyWithin(ha+2,ha+1,ha+1+c),ea[ha++]=120,ea[ha++]=c):65536>c?(3>b&&ea.copyWithin(ha+3,ha+2,ha+2+c),ea[ha++]=121,ea[ha++]=c>>8,ea[ha++]=255&c):(5>b&&ea.copyWithin(ha+5,ha+3,ha+3+c),ea[ha++]=122,fa.setUint32(ha,c),ha+=4),ha+=c}else if("number"===d){if(a>>>0===a)24>a?ea[ha++]=a:256>a?(ea[ha++]=24,ea[ha++]=a):65536>a?(ea[ha++]=25,ea[ha++]=a>>8,ea[ha++]=255&a):(ea[ha++]=26,fa.setUint32(ha,a),ha+=4);else if(a>>0===a)-24<=a?ea[ha++]=31-a:-256<=a?(ea[ha++]=56,ea[ha++]=~a):-65536<=a?(ea[ha++]=57,fa.setUint16(ha,~a),ha+=2):(ea[ha++]=58,fa.setUint32(ha,~a),ha+=4);else{let b;if(0<(b=this.useFloat32)&&4294967296>a&&-2147483648<=a){ea[ha++]=250,fa.setFloat32(ha,a);let c;if(4>b||// this checks for rounding of numbers that were encoded in 32-bit float to nearest significant decimal digit that could be preserved
42
- (c=a*S[(127&ea[ha])<<1|ea[ha+1]>>7])>>0===c)return void(ha+=4);// move back into position for writing a double
43
- ha--}ea[ha++]=251,fa.setFloat64(ha,a),ha+=8}}else if("object"===d){if(!a)ea[ha++]=246;else{if(f){let c=f.get(a);if(c){if(!c.id){let a=f.idsToInsert||(f.idsToInsert=[]);c.id=a.push(c)}return ea[ha++]=217,ea[ha++]=156,ea[ha++]=74,ea[ha++]=26,fa.setUint32(ha,c.id),void(ha+=4)}f.set(a,{offset:ha-b})}let d=a.constructor;if(d===Object)s(a,!0);else if(d===Array){c=a.length,24>c?ea[ha++]=128|c:o(c);for(let b=0;b<c;b++)q(a[b])}else if(d===Map){c=a.size,24>c?ea[ha++]=160|c:256>c?(ea[ha++]=184,ea[ha++]=c):65536>c?(ea[ha++]=185,ea[ha++]=c>>8,ea[ha++]=255&c):(ea[ha++]=186,fa.setUint32(ha,c),ha+=4);for(let[b,c]of a)q(b),q(c)}else{for(let b,c=0,d=Y.length;c<d;c++)if(b=Z[c],a instanceof b){let b=Y[c],d=b.tag;return 24>d?ea[ha++]=192|d:256>d?(ea[ha++]=216,ea[ha++]=d):65536>d?(ea[ha++]=217,ea[ha++]=d>>8,ea[ha++]=255&d):-1<d&&(ea[ha++]=218,fa.setUint32(ha,d),ha+=4),void b.encode.call(this,a,q,t)}if(a[Symbol.iterator]){ea[ha++]=159;// indefinite length array
44
- for(let b of a)q(b);// stop-code
45
- return void(ea[ha++]=255)}// no extension found, write as object
46
- s(a,!a.hasOwnProperty)}}}else if("boolean"===d)ea[ha++]=a?245:244;else if("bigint"===d){if(a<BigInt(1)<<BigInt(64)&&0<=a)ea[ha++]=27,fa.setBigUint64(ha,a);else if(a>-(BigInt(1)<<BigInt(64))&&0>a)ea[ha++]=59,fa.setBigUint64(ha,-a-BigInt(1));else// overflow
47
- if(this.largeBigIntToFloat)ea[ha++]=251,fa.setFloat64(ha,+a);else throw new RangeError(a+" was too large to fit in CBOR 64-bit integer format, set largeBigIntToFloat to convert to float-64");ha+=8}else if("undefined"===d)//target[position++] = 0xc1 // this is the "never-used" byte
48
- ea[ha++]=247;else throw new Error("Unknown type "+d)},s=!1===this.useRecords?this.variableMapSize?a=>{// this method is slightly slower, but generates "preferred serialization" (optimally small for smaller objects)
49
- let b=Object.keys(a),c=b.length;24>c?ea[ha++]=160|c:256>c?(ea[ha++]=184,ea[ha++]=c):65536>c?(ea[ha++]=185,ea[ha++]=c>>8,ea[ha++]=255&c):(ea[ha++]=186,fa.setUint32(ha,c),ha+=4);let d;for(let e=0;e<c;e++)q(d=b[e]),q(a[d])}:(a,c)=>{ea[ha++]=185;// always use map 16, so we can preallocate and set the length afterwards
50
- let d=ha-b;ha+=2;let e=0;for(let b in a)(c||a.hasOwnProperty(b))&&(q(b),q(a[b]),e++);ea[d++ +b]=e>>8,ea[d+b]=255&e}:/* sharedStructures ? // For highly stable structures, using for-in can a little bit faster
34
+ a[g++]=217,a[g++]=156,a[g++]=73,a[g++]=26,a[g++]=f>>24,a[g++]=255&f>>16,a[g++]=255&f>>8,a[g++]=255&f,e=b}return a}function v(a){if(a.Class){if(!a.encode)throw new Error("Extension has no encode function");ja.unshift(a.Class),ia.unshift(a)}p(a)}function*w(a,b){const c=new va(b);for(const d of a)yield c.encode(d)}async function*x(a,b){const c=new va(b);for await(const d of a)yield c.encode(d)}/**
35
+ * Given an Iterable/Iterator input which yields buffers, returns an IterableIterator which yields sync decoded objects
36
+ * Or, given an Async Iterable/Iterator which yields promises resolving in buffers, returns an AsyncIterableIterator.
37
+ * @param {Iterable|Iterator|AsyncIterable|AsyncIterableIterator} bufferIterator
38
+ * @param {object} [options] - Decoder options
39
+ * @returns {IterableIterator|Promise.<AsyncIterableIterator}
40
+ */let y;try{y=new TextDecoder}catch(a){}let z,A,B=0;const C=105,D={};let E,F,G,H,I,J,K={},L=0,M=0,N=[],O=[],P={useRecords:!1,mapsAsObjects:!0},Q=!1;class R{constructor(a){a&&(!1===a.useRecords&&a.mapsAsObjects===void 0&&(a.mapsAsObjects=!0),a.getStructures&&!a.structures&&((a.structures=[]).uninitialized=!0)),Object.assign(this,a)}decode(a,c){if(z)// re-entrant execution, save the state and restore it after we do this decode
41
+ return n(()=>(o(),this?this.decode(a,c):R.prototype.decode.call(P,a,c)));if(A=-1<c?c:a.length,B=0,M=0,F=null,z=a,I=a.dataView||(a.dataView=new DataView(a.buffer,a.byteOffset,a.byteLength)),this){if(K=this,H=this.sharedValues&&(this.pack?Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues),this.structures)return E=this.structures,b();(!E||0<E.length)&&(E=[])}else K=P,(!E||0<E.length)&&(E=[]),H=null;return b()}decodeMultiple(a,c){let d,e=0;try{let f=a.length;Q=!0;let g=this?this.decode(a,f):ba.decode(a,f);if(c){if(!1===c(g))return;for(;B<f;)if(e=B,!1===c(b()))return}else{for(d=[g];B<f;)e=B,d.push(b());return d}}catch(a){throw a.lastPosition=e,a.values=d,a}finally{Q=!1,o()}}}const S=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;let T=f,U=String.fromCharCode,V=Array(4096);class W{constructor(a){this.value=a}}let X="object"==typeof window?window:global;N[0]=a=>new Date(a),N[1]=a=>new Date(1e3*a),N[2]=a=>new DataView(a.buffer,a.byteOffset,a.byteLength).getBigUint64(0),N[3]=a=>BigInt(-1)-new DataView(a.buffer,a.byteOffset,a.byteLength).getBigUint64(0);// the registration of the record definition extension (tag 105)
42
+ const Y=()=>{let a=c(),b=a[0],e=a[1];E[255&e]=b,b.read=d(b);let f={};for(let c,d=2,e=a.length;d<e;d++)c=b[d-2],f[c]=a[d];return f};Y.handlesRead=!0,N[105]=Y,N[27]=a=>(X[a[0]]||Error)(a[1],a[2]);const Z=a=>{if(132!=z[B++])throw new Error("Packed values structure must be followed by 4 element array");let b=a();// packed values
43
+ return H=H?b.concat(H.slice(b.length)):b,H.prefixes=a(),H.suffixes=a(),a();// read the rump
44
+ };Z.handlesRead=!0,N[51]=Z,N[6]=a=>{// packed reference
45
+ if("number"==typeof a)return H[16+(0<=a?2*a:-2*a-1)];throw new Error("No support for non-integer packed references yet")},N[40009]=a=>{G||(G=new Map);let b,d=z[B];b=4==d>>5?[]:{};let e={target:b};// a placeholder object
46
+ G.set(a,e);let f=c();// read the next value as the target object to id
47
+ return e.used?Object.assign(b,f):(e.target=f,f);// no cycle, can just use the returned read object
48
+ },N[40010]=a=>{// pointer extension (for structured clones)
49
+ let b=G.get(a);return b.used=!0,b.target},N[258]=a=>new Set(a),(N[259]=a=>(K.mapsAsObjects&&(K.mapsAsObjects=!1,J=!0),a())).handlesRead=!0,O.push((a,b)=>225<=a&&255>=a?l(Z.prefixes[a-224],b):28704<=a&&32767>=a?l(Z.prefixes[a-28672],b):1879052288<=a&&2147483647>=a?l(Z.prefixes[a-1879048192],b):216<=a&&223>=a?l(b,Z.suffixes[a-216]):27647<=a&&28671>=a?l(b,Z.suffixes[a-27639]):1811940352<=a&&1879048191>=a?l(b,Z.suffixes[a-1811939328]):void 0);const $=["Uint8","Uint8Clamped","Uint16","Uint32","BigUint64","Int8","Int16","Int32","BigInt64","Float32","Float64"].map(a=>a+"Array"),_=[64,68,69,70,71,72,77,78,79,81,82];for(let b=0;b<$.length;b++)m($[b],_[b]);const aa=Array(147);// this is a table matching binary exponents to the multiplier to determine significant digit rounding
50
+ for(let b=0;256>b;b++)aa[b]=+("1e"+Math.floor(45.15-.30103*b));let ba=new R({useRecords:!1});const ca=ba.decode,da=ba.decodeMultiple,ea={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4};let fa,ga=new Float32Array(1),ha=new Uint8Array(ga.buffer,0,4);try{fa=new TextEncoder}catch(a){}let ia,ja;const ka="undefined"!=typeof Buffer,la=ka?Buffer.allocUnsafeSlow:Uint8Array,ma=ka?Buffer:Uint8Array,na=105,oa=256,pa=ka?4294967296:2144337920;let qa,ra,sa,ta=0;const ua=Symbol("record-id");class va extends R{constructor(a){super(a),this.offset=0;let b,c,d,e,f;a=a||{};let g=0,h=ma.prototype.utf8Write?function(a,b,c){return qa.utf8Write(a,b,c)}:!!(fa&&fa.encodeInto)&&function(a,b){return fa.encodeInto(a,qa.subarray(b)).written},i=this,j=64,k=a.sequential;k&&(j=0,this.structures=[]);let l,m,n,o=a.sharedValues;if(o){n=Object.create(null);for(let a=0,b=o.length;a<b;a++)n[o[a]]=a}let p=[],s=0,t=0;this.encode=function(h,w){if(qa||(qa=new la(8192),ra=new DataView(qa.buffer,0,8192),ta=0),sa=qa.length-10,2048>sa-ta?(qa=new la(qa.length),ra=new DataView(qa.buffer,0,qa.length),sa=qa.length-10,ta=0):w===Ca&&(ta=2147483640&ta+7),b=ta,f=i.structuredClone?new Map:null,c=i.structures,c){c.uninitialized&&(i.structures=c=i.getStructures());let a=c.length;if(a>j&&!k&&(a=j),!c.transitions){c.transitions=Object.create(null);for(let b,d=0;d<a;d++){if(b=c[d],!b)continue;let a,e=c.transitions;for(let c,d=0,f=b.length;d<f;d++)c=b[d],a=e[c],a||(a=e[c]=Object.create(null)),e=a;e[ua]=d}g=c.length}k||(c.nextId=a)}if(d&&(d=!1),e=c||[],m=n,a.pack){let b=new Map;if(b.values=[],b.encoder=i,b.maxValues=a.maxPrivatePackedValues||(n?16:1/0),b.objectMap=n||!1,b.samplingPackedValues=l,r(h,b),0<b.values.length){qa[ta++]=216,qa[ta++]=51,q(4);let a=b.values;v(a),q(0),q(0),m=Object.create(n||null);for(let b=0,c=a.length;b<c;b++)m[a[b]]=b}}try{// update the offset so next serialization doesn't write over our buffer, but can continue writing to same buffer sequentially
51
+ if(v(h),i.offset=ta,f&&f.idsToInsert){ta+=8*f.idsToInsert.length,ta>sa&&x(ta),i.offset=ta;let a=u(qa.subarray(b,ta),f.idsToInsert);return f=null,a}return w===Ca?(qa.start=b,qa.end=ta,qa):qa.subarray(b,ta);// position can change if we call pack again in saveStructures, so we get the buffer now
52
+ }finally{if(c){if(10>t&&t++,1e4<s)c.transitions=null,t=0,s=0,0<p.length&&(p=[]);else if(0<p.length&&!k){for(let a=0,b=p.length;a<b;a++)p[a][ua]=void 0;p=[]}if(d&&i.saveStructures){i.structures.length>j&&(i.structures=i.structures.slice(0,j));// we can't rely on start/end with REUSE_BUFFER_MODE since they will (probably) change when we save
53
+ let a=qa.subarray(b,ta),c=i.structures||[];return(o&&(c=c.concat(o)),!1===i.saveStructures(i.structures,g))?(i.structures=i.getStructures()||[],i.encode(h)):(g=c.length,a)}}}},this.findCommonStringsToPack=()=>(l=new Map,n||(n=Object.create(null)),({threshold:b})=>{b=b||4;let c=this.pack?a.maxPrivatePackedValues||16:0;o||(o=this.sharedValues=[]);for(let[a,e]of l)e.count>b&&(n[a]=c++,o.push(a),d=!0);l=null});const v=c=>{ta>sa&&(qa=x(ta));var d,e=typeof c;if("string"==e){if(m){let b=m[c];if(0<=b)return void(16>b?qa[ta++]=b+224:(qa[ta++]=198,1&b?v(15-b>>1):v(b-16>>1)));/* } else if (packedStatus.serializationId != serializationId) {
54
+ packedStatus.serializationId = serializationId
55
+ packedStatus.count = 1
56
+ if (options.sharedPack) {
57
+ let sharedCount = packedStatus.sharedCount = (packedStatus.sharedCount || 0) + 1
58
+ if (shareCount > (options.sharedPack.threshold || 5)) {
59
+ let sharedPosition = packedStatus.position = packedStatus.nextSharedPosition
60
+ hasSharedUpdate = true
61
+ if (sharedPosition < 16)
62
+ target[position++] = sharedPosition + 0xc0
63
+
64
+ }
65
+ }
66
+ } // else any in-doc incrementation?*/if(l&&!a.pack){let a=l.get(c);a?a.count++:l.set(c,{count:1})}}let b,e=c.length;b=32>e?1:256>e?2:65536>e?3:5;let f=3*e;if(ta+f>sa&&(qa=x(ta+f)),64>e||!h){let a,f,g,h=ta+b;for(a=0;a<e;a++)f=c.charCodeAt(a),128>f?qa[h++]=f:2048>f?(qa[h++]=192|f>>6,qa[h++]=128|63&f):55296==(64512&f)&&56320==(64512&(g=c.charCodeAt(a+1)))?(f=65536+((1023&f)<<10)+(1023&g),a++,qa[h++]=240|f>>18,qa[h++]=128|63&f>>12,qa[h++]=128|63&f>>6,qa[h++]=128|63&f):(qa[h++]=224|f>>12,qa[h++]=128|63&f>>6,qa[h++]=128|63&f);d=h-ta-b}else d=h(c,ta+b,f);24>d?qa[ta++]=96|d:256>d?(2>b&&qa.copyWithin(ta+2,ta+1,ta+1+d),qa[ta++]=120,qa[ta++]=d):65536>d?(3>b&&qa.copyWithin(ta+3,ta+2,ta+2+d),qa[ta++]=121,qa[ta++]=d>>8,qa[ta++]=255&d):(5>b&&qa.copyWithin(ta+5,ta+3,ta+3+d),qa[ta++]=122,ra.setUint32(ta,d),ta+=4),ta+=d}else if("number"===e){if(c>>>0===c)24>c?qa[ta++]=c:256>c?(qa[ta++]=24,qa[ta++]=c):65536>c?(qa[ta++]=25,qa[ta++]=c>>8,qa[ta++]=255&c):(qa[ta++]=26,ra.setUint32(ta,c),ta+=4);else if(c>>0===c)-24<=c?qa[ta++]=31-c:-256<=c?(qa[ta++]=56,qa[ta++]=~c):-65536<=c?(qa[ta++]=57,ra.setUint16(ta,~c),ta+=2):(qa[ta++]=58,ra.setUint32(ta,~c),ta+=4);else{let a;if(0<(a=this.useFloat32)&&4294967296>c&&-2147483648<=c){qa[ta++]=250,ra.setFloat32(ta,c);let b;if(4>a||// this checks for rounding of numbers that were encoded in 32-bit float to nearest significant decimal digit that could be preserved
67
+ (b=c*aa[(127&qa[ta])<<1|qa[ta+1]>>7])>>0===b)return void(ta+=4);// move back into position for writing a double
68
+ ta--}qa[ta++]=251,ra.setFloat64(ta,c),ta+=8}}else if("object"===e){if(!c)qa[ta++]=246;else{if(f){let a=f.get(c);if(a){if(!a.id){let b=f.idsToInsert||(f.idsToInsert=[]);a.id=b.push(a)}return qa[ta++]=217,qa[ta++]=156,qa[ta++]=74,qa[ta++]=26,ra.setUint32(ta,a.id),void(ta+=4)}f.set(c,{offset:ta-b})}let a=c.constructor;if(a===Object)w(c,!0);else if(a===Array){d=c.length,24>d?qa[ta++]=128|d:q(d);for(let a=0;a<d;a++)v(c[a])}else if(a===Map){(this.mapsAsObjects?!1!==this.useTag259ForMaps:this.useTag259ForMaps)&&(qa[ta++]=217,qa[ta++]=1,qa[ta++]=3),d=c.size,24>d?qa[ta++]=160|d:256>d?(qa[ta++]=184,qa[ta++]=d):65536>d?(qa[ta++]=185,qa[ta++]=d>>8,qa[ta++]=255&d):(qa[ta++]=186,ra.setUint32(ta,d),ta+=4);for(let[a,b]of c)v(a),v(b)}else{for(let a,b=0,d=ia.length;b<d;b++)if(a=ja[b],c instanceof a){let a=ia[b],d=a.tag;return 24>d?qa[ta++]=192|d:256>d?(qa[ta++]=216,qa[ta++]=d):65536>d?(qa[ta++]=217,qa[ta++]=d>>8,qa[ta++]=255&d):-1<d&&(qa[ta++]=218,ra.setUint32(ta,d),ta+=4),void a.encode.call(this,c,v,x)}if(c[Symbol.iterator]){qa[ta++]=159;// indefinite length array
69
+ for(let a of c)v(a);// stop-code
70
+ return void(qa[ta++]=255)}// no extension found, write as object
71
+ w(c,!c.hasOwnProperty)}}}else if("boolean"===e)qa[ta++]=c?245:244;else if("bigint"===e){if(c<BigInt(1)<<BigInt(64)&&0<=c)qa[ta++]=27,ra.setBigUint64(ta,c);else if(c>-(BigInt(1)<<BigInt(64))&&0>c)qa[ta++]=59,ra.setBigUint64(ta,-c-BigInt(1));else// overflow
72
+ if(this.largeBigIntToFloat)qa[ta++]=251,ra.setFloat64(ta,+c);else throw new RangeError(c+" was too large to fit in CBOR 64-bit integer format, set largeBigIntToFloat to convert to float-64");ta+=8}else if("undefined"===e)qa[ta++]=247;else throw new Error("Unknown type: "+e)},w=!1===this.useRecords?this.variableMapSize?a=>{// this method is slightly slower, but generates "preferred serialization" (optimally small for smaller objects)
73
+ let b=Object.keys(a),c=b.length;24>c?qa[ta++]=160|c:256>c?(qa[ta++]=184,qa[ta++]=c):65536>c?(qa[ta++]=185,qa[ta++]=c>>8,qa[ta++]=255&c):(qa[ta++]=186,ra.setUint32(ta,c),ta+=4);let d;for(let e=0;e<c;e++)v(d=b[e]),v(a[d])}:(a,c)=>{qa[ta++]=185;// always use map 16, so we can preallocate and set the length afterwards
74
+ let d=ta-b;ta+=2;let e=0;for(let b in a)(c||a.hasOwnProperty(b))&&(v(b),v(a[b]),e++);qa[d++ +b]=e>>8,qa[d+b]=255&e}:/* sharedStructures ? // For highly stable structures, using for-in can a little bit faster
51
75
  (object, safePrototype) => {
52
76
  let nextTransition, transition = structures.transitions || (structures.transitions = Object.create(null))
53
77
  let objectOffset = position++ - start
@@ -86,15 +110,21 @@ let d=ha-b;ha+=2;let e=0;for(let b in a)(c||a.hasOwnProperty(b))&&(q(b),q(a[b]),
86
110
  sharedStructures.onUpdate(id, transition.__keys__)
87
111
  }
88
112
  target[objectOffset + start] = id
89
- }*/a=>{let b,f=Object.keys(a),g=e.transitions||(e.transitions=Object.create(null)),h=0,k=f.length;for(let c,d=0;d<k;d++)c=f[d],b=g[c],b||(b=g[c]=Object.create(null),h++),g=b;let l=g[ia];if(l)// tag two byte
90
- ea[ha++]=217,ea[ha++]=ba,ea[ha++]=l;else if(l=e.nextId++,l||(l=0,e.nextId=1),l>=ca&&(e.nextId=(l=j)+1),g[ia]=l,e[l]=f,c&&c.length<=j)// tag two byte
113
+ }*/a=>{let b,f=Object.keys(a),g=e.transitions||(e.transitions=Object.create(null)),h=0,k=f.length;for(let c,d=0;d<k;d++)c=f[d],b=g[c],b||(b=g[c]=Object.create(null),h++),g=b;let l=g[ua];if(void 0!==l)// tag two byte
114
+ qa[ta++]=217,qa[ta++]=na,qa[ta++]=l;else if(l=e.nextId++,l||(l=0,e.nextId=1),l>=oa&&(e.nextId=(l=j)+1),g[ua]=l,e[l]=f,c&&c.length<=j)// tag two byte
91
115
  // tag number
92
- ea[ha++]=217,ea[ha++]=ba,ea[ha++]=l,d=!0;else{ea[ha++]=216,ea[ha++]=ba,h&&(n+=p*h),m.length>=ca-j&&(m.shift()[ia]=0),m.push(g),22>k?ea[ha++]=130+k:// array header, length of values + 2
93
- o(k+2),q(f),ea[ha++]=25,ea[ha++]=ba,ea[ha++]=l;// now write the values
94
- for(let b=0;b<k;b++)q(a[f[b]]);return}24>k?ea[ha++]=128|k:o(k);for(let b=0;b<k;b++)q(a[f[b]])},t=a=>{var c=Math.min,d=Math.round,e=Math.max;let f;if(16777216<a){// special handling for really large buffers
95
- if(a-b>da)throw new Error("Encoded buffer would be larger than maximum buffer size");f=c(da,4096*d(e((a-b)*(67108864<a?1.25:2),16777216)/4096))}else// faster handling for smaller buffers
96
- f=(e(a-b<<2,ea.length-1)>>12)+1<<12;let g=new _(f);return fa=new DataView(g.buffer,0,f),ea.copy?ea.copy(g,0,b,a):g.set(ea.slice(b,a)),ha-=b,b=0,ga=g.length-10,ea=g}}useBuffer(a){// this means we are finished using our own buffer and we can write over it safely
97
- ea=a,fa=new DataView(ea.buffer,ea.byteOffset,ea.byteLength),ha=0}}Z=[Date,Set,Error,RegExp,ArrayBuffer,aa,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,BigUint64Array,Int8Array,Int16Array,Int32Array,BigInt64Array,Float32Array,Float64Array],Y=[{tag:1,encode(a){let b=a.getTime()/1e3;(this.useTimestamp32||0===a.getMilliseconds())&&0<=b&&4294967296>b?(ea[ha++]=26,fa.setUint32(ha,b),ha+=4):(ea[ha++]=251,fa.setFloat64(ha,b),ha+=8)}},{tag:258,// https://github.com/input-output-hk/cbor-sets-spec/blob/master/CBOR_SETS.md
116
+ qa[ta++]=217,qa[ta++]=na,qa[ta++]=l,d=!0;else{qa[ta++]=216,qa[ta++]=na,h&&(s+=t*h),p.length>=oa-j&&(p.shift()[ua]=void 0),p.push(g),q(k+2),v(f),qa[ta++]=25,qa[ta++]=na,qa[ta++]=l;// now write the values
117
+ for(let b=0;b<k;b++)v(a[f[b]]);return}24>k?qa[ta++]=128|k:q(k);for(let b=0;b<k;b++)v(a[f[b]])},x=a=>{var c=Math.min,d=Math.round,e=Math.max;let f;if(16777216<a){// special handling for really large buffers
118
+ if(a-b>pa)throw new Error("Encoded buffer would be larger than maximum buffer size");f=c(pa,4096*d(e((a-b)*(67108864<a?1.25:2),16777216)/4096))}else// faster handling for smaller buffers
119
+ f=(e(a-b<<2,qa.length-1)>>12)+1<<12;let g=new la(f);return ra=new DataView(g.buffer,0,f),qa.copy?qa.copy(g,0,b,a):g.set(qa.slice(b,a)),ta-=b,b=0,sa=g.length-10,qa=g}}useBuffer(a){// this means we are finished using our own buffer and we can write over it safely
120
+ qa=a,ra=new DataView(qa.buffer,qa.byteOffset,qa.byteLength),ta=0}}ja=[Date,Set,Error,RegExp,ArrayBuffer,ma,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,BigUint64Array,Int8Array,Int16Array,Int32Array,BigInt64Array,Float32Array,Float64Array],ia=[{tag:1,encode(a){let b=a.getTime()/1e3;(this.useTimestamp32||0===a.getMilliseconds())&&0<=b&&4294967296>b?(qa[ta++]=26,ra.setUint32(ta,b),ta+=4):(qa[ta++]=251,ra.setFloat64(ta,b),ta+=8)}},{tag:258,// https://github.com/input-output-hk/cbor-sets-spec/blob/master/CBOR_SETS.md
98
121
  encode(a,b){let c=Array.from(a);b(c)}},{tag:27,// http://cbor.schmorp.de/generic-object
99
122
  encode(a,b){b([a.name,a.message])}},{tag:27,// http://cbor.schmorp.de/generic-object
100
- encode(a,b){b(["RegExp",a.source,a.flags])}},{encode(a,b,c){q(a,c)}},{encode(a,b,c){q(a,c)}},p(64),p(68),p(69),p(70),p(71),p(72),p(77),p(78),p(79),p(81),p(82)];let ka=new ja({useRecords:!1});const la=ka.encode,{NEVER:ma,ALWAYS:na,DECIMAL_ROUND:oa,DECIMAL_FIT:pa}=W;a.ALWAYS=na,a.DECIMAL_FIT=pa,a.DECIMAL_ROUND=oa,a.Decoder=I,a.Encoder=ja,a.FLOAT32_OPTIONS=W,a.NEVER=ma,a.Tag=N,a.addExtension=s,a.decode=U,a.decodeMultiple=V,a.encode=la,a.mapsAsObjects=!0,a.useRecords=!1,Object.defineProperty(a,"__esModule",{value:!0})});
123
+ encode(a,b){b(["RegExp",a.source,a.flags])}},{encode(a,b,c){t(a,c)}},{encode(a,b,c){t(a,c)}},s(64),s(68),s(69),s(70),s(71),s(72),s(77),s(78),s(79),s(81),s(82)];let wa=new va({useRecords:!1});const xa=wa.encode,{NEVER:ya,ALWAYS:za,DECIMAL_ROUND:Aa,DECIMAL_FIT:Ba}=ea,Ca=1e3;a.ALWAYS=za,a.DECIMAL_FIT=Ba,a.DECIMAL_ROUND=Aa,a.Decoder=R,a.Encoder=va,a.FLOAT32_OPTIONS=ea,a.NEVER=ya,a.Tag=W,a.addExtension=v,a.clearSource=o,a.decode=ca,a.decodeIter=function(a,b={}){if(!a||"object"!=typeof a)throw new Error("first argument must be an Iterable, Async Iterable, Iterator, Async Iterator, or a promise");const c=new R(b);let d;const e=a=>{let b;// if there's incomplete data from previous chunk, concatinate and try again
124
+ d&&(a=Buffer.concat([d,a]),d=void 0);try{b=c.decodeMultiple(a)}catch(c){if(c.incomplete)d=a.slice(c.lastPosition),b=c.values;else throw c}return b};if("function"==typeof a[Symbol.iterator])return function*(){for(const b of a)yield*e(b)}();return"function"==typeof a[Symbol.asyncIterator]?async function*(){for await(const b of a)yield*e(b)}():void 0},a.decodeMultiple=da,a.encode=xa,a.encodeIter=/**
125
+ * Given an Iterable first argument, returns an Iterable where each value is encoded as a Buffer
126
+ * If the argument is only Async Iterable, the return value will be an Async Iterable.
127
+ * @param {Iterable|Iterator|AsyncIterable|AsyncIterator} objectIterator - iterable source, like a Readable object stream, an array, Set, or custom object
128
+ * @param {options} [options] - cbor-x Encoder options
129
+ * @returns {IterableIterator|Promise.<AsyncIterableIterator>}
130
+ */function(a,b={}){if(!a||"object"!=typeof a)throw new Error("first argument must be an Iterable, Async Iterable, or a Promise for an Async Iterable");else{if("function"==typeof a[Symbol.iterator])return w(a,b);if("function"==typeof a.then||"function"==typeof a[Symbol.asyncIterator])return x(a,b);throw new Error("first argument must be an Iterable, Async Iterable, Iterator, Async Iterator, or a Promise")}},a.mapsAsObjects=!0,a.roundFloat32=function(a){ga[0]=a;let b=aa[(127&ha[3])<<1|ha[2]>>7];return(b*a+(0<a?.5:-.5)>>0)/b},a.useRecords=!1,Object.defineProperty(a,"__esModule",{value:!0})});