cbor-x 1.5.3 → 1.5.5
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/README.md +1 -1
- package/decode.js +24 -4
- package/dist/decode-no-eval.cjs +24 -4
- package/dist/decode-no-eval.cjs.map +1 -1
- package/dist/index-no-eval.cjs +32 -5
- package/dist/index-no-eval.cjs.map +1 -1
- package/dist/index-no-eval.min.js +1 -1
- package/dist/index-no-eval.min.js.map +1 -1
- package/dist/index.js +32 -5
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/node.cjs +41 -12
- package/dist/node.cjs.map +1 -1
- package/encode.js +8 -1
- package/index.d.ts +2 -0
- package/package.json +1 -1
- package/stream.js +9 -7
package/dist/index.js
CHANGED
|
@@ -821,9 +821,18 @@
|
|
|
821
821
|
return (glbl[data[0]] || Error)(data[1], data[2])
|
|
822
822
|
};
|
|
823
823
|
const packedTable = (read) => {
|
|
824
|
-
if (src[position$1++] != 0x84)
|
|
825
|
-
|
|
824
|
+
if (src[position$1++] != 0x84) {
|
|
825
|
+
let error = new Error('Packed values structure must be followed by a 4 element array');
|
|
826
|
+
if (src.length < position$1)
|
|
827
|
+
error.incomplete = true;
|
|
828
|
+
throw error
|
|
829
|
+
}
|
|
826
830
|
let newPackedValues = read(); // packed values
|
|
831
|
+
if (!newPackedValues || !newPackedValues.length) {
|
|
832
|
+
let error = new Error('Packed values structure must be followed by a 4 element array');
|
|
833
|
+
error.incomplete = true;
|
|
834
|
+
throw error
|
|
835
|
+
}
|
|
827
836
|
packedValues = packedValues ? newPackedValues.concat(packedValues.slice(newPackedValues.length)) : newPackedValues;
|
|
828
837
|
packedValues.prefixes = read();
|
|
829
838
|
packedValues.suffixes = read();
|
|
@@ -841,7 +850,10 @@
|
|
|
841
850
|
}
|
|
842
851
|
if (typeof data == 'number')
|
|
843
852
|
return packedValues[16 + (data >= 0 ? 2 * data : (-2 * data - 1))]
|
|
844
|
-
|
|
853
|
+
let error = new Error('No support for non-integer packed references yet');
|
|
854
|
+
if (data === undefined)
|
|
855
|
+
error.incomplete = true;
|
|
856
|
+
throw error
|
|
845
857
|
};
|
|
846
858
|
|
|
847
859
|
// The following code is an incomplete implementation of http://cbor.schmorp.de/stringref
|
|
@@ -967,7 +979,15 @@
|
|
|
967
979
|
currentExtensions[littleEndian ? tag : (tag - 4)] = (bytesPerElement == 1 || littleEndian == isLittleEndianMachine$1) ? (buffer) => {
|
|
968
980
|
if (!TypedArray)
|
|
969
981
|
throw new Error('Could not find typed array for code ' + tag)
|
|
970
|
-
|
|
982
|
+
if (!currentDecoder.copyBuffers) {
|
|
983
|
+
// try provide a direct view, but will only work if we are byte-aligned
|
|
984
|
+
if (bytesPerElement === 1 ||
|
|
985
|
+
bytesPerElement === 2 && !(buffer.byteOffset & 1) ||
|
|
986
|
+
bytesPerElement === 4 && !(buffer.byteOffset & 3) ||
|
|
987
|
+
bytesPerElement === 8 && !(buffer.byteOffset & 7))
|
|
988
|
+
return new TypedArray(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
989
|
+
}
|
|
990
|
+
// we have to slice/copy here to get a new ArrayBuffer, if we are not word/byte aligned
|
|
971
991
|
return new TypedArray(Uint8Array.prototype.slice.call(buffer, 0).buffer)
|
|
972
992
|
} : buffer => {
|
|
973
993
|
if (!TypedArray)
|
|
@@ -1653,6 +1673,13 @@
|
|
|
1653
1673
|
error.iteratorNotHandled = true;
|
|
1654
1674
|
throw error;
|
|
1655
1675
|
}
|
|
1676
|
+
if (this.useToJSON && value.toJSON) {
|
|
1677
|
+
const json = value.toJSON();
|
|
1678
|
+
// if for some reason value.toJSON returns itself it'll loop forever
|
|
1679
|
+
if (json !== value)
|
|
1680
|
+
return encode(json)
|
|
1681
|
+
}
|
|
1682
|
+
|
|
1656
1683
|
// no extension found, write as object
|
|
1657
1684
|
writeObject(value, !value.hasOwnProperty); // if it doesn't have hasOwnProperty, don't do hasOwnProperty checks
|
|
1658
1685
|
}
|
|
@@ -1706,7 +1733,7 @@
|
|
|
1706
1733
|
}
|
|
1707
1734
|
if (encoder.keyMap) {
|
|
1708
1735
|
for (let i = 0; i < length; i++) {
|
|
1709
|
-
encode(encodeKey(keys[i]));
|
|
1736
|
+
encode(encoder.encodeKey(keys[i]));
|
|
1710
1737
|
encode(vals[i]);
|
|
1711
1738
|
}
|
|
1712
1739
|
} else {
|