cbor-x 1.3.2 → 1.3.3
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/decode.d.ts +1 -0
- package/decode.js +1167 -1160
- package/dist/index.js +1041 -1034
- package/dist/index.min.js +15 -14
- package/dist/node.cjs +1085 -1078
- package/dist/test.js +683 -683
- package/package.json +77 -76
package/dist/index.min.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
(function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):(e=e||self,t(e.CBOR={}))})(this,function(e){'use strict';var t=Math.log,s=Math.round,n=Math.exp;function a(){try{let e=r();if(K
|
|
2
|
-
B=K.postBundlePosition
|
|
1
|
+
(function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):(e=e||self,t(e.CBOR={}))})(this,function(e){'use strict';var t=Math.log,s=Math.round,n=Math.exp;function a(){try{let e=r();if(K){if(B>=K.postBundlePosition){let e=new Error("Unexpected bundle position");throw e.incomplete=!0,e}// bundled strings to skip past
|
|
2
|
+
B=K.postBundlePosition}if(B==x)// finished reading this source, cleanup references
|
|
3
|
+
T=null,V=null,Y&&(Y=null);else if(B>x){// over read
|
|
3
4
|
let e=new Error("Unexpected end of CBOR data");throw e.incomplete=!0,e}else if(!X)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
5
|
return e}catch(e){throw k(),(e instanceof RangeError||e.message.startsWith("Unexpected end of buffer"))&&(e.incomplete=!0),e}}function r(){let e=V[B++],t=e>>5;if(e&=31,23<e)switch(e){case 24:e=V[B++];break;case 25:if(7==t)return l();e=W.getUint16(B),B+=2;break;case 26:if(7==t){let e=W.getFloat32(B);if(2<q.useFloat32){// this does rounding of numbers that were encoded in 32-bit float to nearest significant decimal digit that could be preserved
|
|
5
6
|
let t=le[(127&V[B])<<1|V[B+1]>>7];return B+=4,(t*e+(0<e?.5:-.5)>>0)/t}return B+=4,e}e=W.getUint32(B),B+=4;break;case 27:if(7==t){let e=W.getFloat64(B);return B+=8,e}if(1<t){if(0<W.getUint32(B))throw new Error("JavaScript does not support arrays, maps, or strings with length over 4294967295");e=W.getUint32(B+4)}else q.int64AsNumber?(e=4294967296*W.getUint32(B),e+=W.getUint32(B+4)):e=W.getBigUint64(B);B+=8;break;case 31:// indefinite length
|
|
@@ -17,10 +18,10 @@ let s=Array(e);//if (currentDecoder.keyMap) for (let i = 0; i < token; i++) arra
|
|
|
17
18
|
//else
|
|
18
19
|
for(let t=0;t<e;t++)s[t]=r();return s;case 5:// map
|
|
19
20
|
if(q.mapsAsObjects){let t={};if(q.keyMap)for(let s=0;s<e;s++)t[q.decodeKey(r())]=r();else for(let s=0;s<e;s++)t[r()]=r();return t}else{z&&(q.mapsAsObjects=!0,z=!1);let t=new Map;if(q.keyMap)for(let s=0;s<e;s++)t.set(q.decodeKey(r()),r());else for(let s=0;s<e;s++)t.set(r(),r());return t}case 6:// extension
|
|
20
|
-
if(e>=
|
|
21
|
+
if(e>=D){let t=T[8191&e];// check record structures first
|
|
21
22
|
// At some point we may provide an option for dynamic tag assignment with a range like token >= 8 && (token < 16 || (token > 0x80 && token < 0xc0) || (token > 0x130 && token < 0x4000))
|
|
22
|
-
if(t)return t.read||(t.read=i(t)),t.read();if(65536>e){if(e==
|
|
23
|
-
return ie(r());if(e==L){let e=y(),t=r();for(let s=2;s<e;s++)ie([t++,r()]);return r()}if(e==
|
|
23
|
+
if(t)return t.read||(t.read=i(t)),t.read();if(65536>e){if(e==P)// we do a special check for this so that we can keep the currentExtensions as densely stored array (v8 stores arrays densely under about 3000 elements)
|
|
24
|
+
return ie(r());if(e==L){let e=y(),t=r();for(let s=2;s<e;s++)ie([t++,r()]);return r()}if(e==D)return h();if(q.getShared&&(m(),t=T[8191&e],t))return t.read||(t.read=i(t)),t.read()}}let n=J[e];if(n)return n.handlesRead?n(r):n(r());else{let t=r();for(let s,n=0;n<$.length;n++)if(s=$[n](e,t),void 0!==s)return s;return new ae(t,e)}case 7:// fixed value
|
|
24
25
|
switch(e){case 20:return!1;case 21:return!0;case 22:return null;case 23:return;// undefined
|
|
25
26
|
case 31:default:let t=(N||f())[e];if(void 0!==t)return t;throw new Error("Unknown token "+e);}default:// negative int
|
|
26
27
|
if(isNaN(e)){let e=new Error("Unexpected end of CBOR data");throw e.incomplete=!0,e}throw new Error("Unknown CBOR token "+e);}}function i(e){function t(){// get the array size from the header
|
|
@@ -47,13 +48,13 @@ let s=Ce;Ce=null,t(s[0]),t(s[1])}function U(e){if(e.Class){if(!e.encode)throw ne
|
|
|
47
48
|
* @param {Iterable|Iterator|AsyncIterable|AsyncIterableIterator} bufferIterator
|
|
48
49
|
* @param {object} [options] - Decoder options
|
|
49
50
|
* @returns {IterableIterator|Promise.<AsyncIterableIterator}
|
|
50
|
-
*/let C;try{C=new TextDecoder}catch(e){}let V,x,B=0;const L=57342,
|
|
51
|
-
{this.mapKey=new Map;for(let[t,s]of Object.entries(e.keyMap))this.mapKey.set(s,t)}Object.assign(this,e)}/*
|
|
52
|
-
decodeKey(key) {
|
|
53
|
-
return this.keyMap
|
|
54
|
-
? Object.keys(this.keyMap)[Object.values(this.keyMap).indexOf(key)] || key
|
|
55
|
-
: key
|
|
56
|
-
}
|
|
51
|
+
*/let C;try{C=new TextDecoder}catch(e){}let V,x,B=0;const L=57342,P=57343,D=57337,j=6,w={};let T,F,K,Y,N,W,z,q={},G=0,H=0,J=[],$=[],Q={useRecords:!1,mapsAsObjects:!0},X=!1;class Z{constructor(e){if(e&&((e.keyMap||e._keyMap)&&!e.useRecords&&(e.useRecords=!1,e.mapsAsObjects=!0),!1===e.useRecords&&void 0===e.mapsAsObjects&&(e.mapsAsObjects=!0),e.getStructures&&(e.getShared=e.getStructures),e.getShared&&!e.structures&&((e.structures=[]).uninitialized=!0),e.keyMap))// this is what we use to denote an uninitialized structures
|
|
52
|
+
{this.mapKey=new Map;for(let[t,s]of Object.entries(e.keyMap))this.mapKey.set(s,t)}Object.assign(this,e)}/*
|
|
53
|
+
decodeKey(key) {
|
|
54
|
+
return this.keyMap
|
|
55
|
+
? Object.keys(this.keyMap)[Object.values(this.keyMap).indexOf(key)] || key
|
|
56
|
+
: key
|
|
57
|
+
}
|
|
57
58
|
*/decodeKey(e){return this.keyMap?this.mapKey.get(e)||e:e}encodeKey(e){return this.keyMap&&this.keyMap.hasOwnProperty(e)?this.keyMap[e]:e}encodeKeys(e){if(!this._keyMap)return e;let t=new Map;for(let[s,n]of Object.entries(e))t.set(this._keyMap.hasOwnProperty(s)?this._keyMap[s]:s,n);return t}decodeKeys(e){if(!this._keyMap||"Map"!=e.constructor.name)return e;if(!this._mapKey){this._mapKey=new Map;for(let[e,t]of Object.entries(this._keyMap))this._mapKey.set(t,e)}let t={};//map.forEach((v,k) => res[Object.keys(this._keyMap)[Object.values(this._keyMap).indexOf(k)] || k] = v)
|
|
58
59
|
return e.forEach((e,s)=>t[this._mapKey.has(s)?this._mapKey.get(s):s]=e),t}mapDecode(e){let t=this.decode(e);if(this._keyMap)//Experiemntal support for Optimised KeyMap decoding
|
|
59
60
|
switch(t.constructor.name){case"Array":return t.map(e=>this.decodeKeys(e));//case 'Map': return this.decodeKeys(res)
|
|
@@ -114,8 +115,8 @@ return!1===n?(s=this.getShared()||{},this.structures=s.structures||[],this.share
|
|
|
114
115
|
encode(e,t){let s=Array.from(e);t(s)}},{tag:27,// http://cbor.schmorp.de/generic-object
|
|
115
116
|
encode(e,t){t([e.name,e.message])}},{tag:27,// http://cbor.schmorp.de/generic-object
|
|
116
117
|
encode(e,t){t(["RegExp",e.source,e.flags])}},{getTag(e){return e.tag},encode(e,t){t(e.value)}},{encode(e,t,s){_(e,s)}},{encode(e,t,s){_(e,s)}},S(64,1),S(68,1),S(69,2),S(70,4),S(71,8),S(72,1),S(77,2),S(78,4),S(79,8),S(85,4),S(86,8),{encode(e,t){// write SharedData
|
|
117
|
-
let s=e.packedValues||[],n=e.structures||[];if(0<s.values.length){Ie[Ae++]=216,Ie[Ae++]=51,R(4);let e=s.values;t(e),R(0),R(0),packedObjectMap=Object.create(sharedPackedObjectMap||null);for(let t=0,s=e.length;t<s;t++)packedObjectMap[e[t]]=t}if(n){Ue.setUint32(Ae,3655335424),Ae+=3;let s=n.slice(0);s.unshift(57344),s.push(new ae(e.version,1399353956)),t(s)}else t(new ae(e.version,1399353956))}}];let
|
|
118
|
-
n&&(e=Buffer.concat([n,e]),n=void 0);try{t=s.decodeMultiple(e)}catch(s){if(s.incomplete)n=e.slice(s.lastPosition),t=s.values;else throw s}return t};if("function"==typeof e[Symbol.iterator])return function*(){for(const t of e)yield*a(t)}();return"function"==typeof e[Symbol.asyncIterator]?async function*(){for await(const t of e)yield*a(t)}():void 0},e.decodeMultiple=ge,e.encode=
|
|
118
|
+
let s=e.packedValues||[],n=e.structures||[];if(0<s.values.length){Ie[Ae++]=216,Ie[Ae++]=51,R(4);let e=s.values;t(e),R(0),R(0),packedObjectMap=Object.create(sharedPackedObjectMap||null);for(let t=0,s=e.length;t<s;t++)packedObjectMap[e[t]]=t}if(n){Ue.setUint32(Ae,3655335424),Ae+=3;let s=n.slice(0);s.unshift(57344),s.push(new ae(e.version,1399353956)),t(s)}else t(new ae(e.version,1399353956))}}];let Pe=new xe({useRecords:!1});const De=Pe.encode,{NEVER:je,ALWAYS:we,DECIMAL_ROUND:Te,DECIMAL_FIT:Fe}=he,Ke=512,Ye=1024;e.ALWAYS=we,e.DECIMAL_FIT=Fe,e.DECIMAL_ROUND=Te,e.Decoder=Z,e.Encoder=xe,e.FLOAT32_OPTIONS=he,e.NEVER=je,e.REUSE_BUFFER_MODE=Ke,e.Tag=ae,e.addExtension=U,e.clearSource=k,e.decode=fe,e.decodeIter=function(e,t={}){if(!e||"object"!=typeof e)throw new Error("first argument must be an Iterable, Async Iterable, Iterator, Async Iterator, or a promise");const s=new Z(t);let n;const a=e=>{let t;// if there's incomplete data from previous chunk, concatinate and try again
|
|
119
|
+
n&&(e=Buffer.concat([n,e]),n=void 0);try{t=s.decodeMultiple(e)}catch(s){if(s.incomplete)n=e.slice(s.lastPosition),t=s.values;else throw s}return t};if("function"==typeof e[Symbol.iterator])return function*(){for(const t of e)yield*a(t)}();return"function"==typeof e[Symbol.asyncIterator]?async function*(){for await(const t of e)yield*a(t)}():void 0},e.decodeMultiple=ge,e.encode=De,e.encodeIter=/**
|
|
119
120
|
* Given an Iterable first argument, returns an Iterable where each value is encoded as a Buffer
|
|
120
121
|
* If the argument is only Async Iterable, the return value will be an Async Iterable.
|
|
121
122
|
* @param {Iterable|Iterator|AsyncIterable|AsyncIterator} objectIterator - iterable source, like a Readable object stream, an array, Set, or custom object
|