cbor-x 1.5.4 → 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 +24 -4
- 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 +24 -4
- 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 +33 -11
- package/dist/node.cjs.map +1 -1
- package/index.d.ts +1 -0
- package/package.json +1 -1
- package/stream.js +9 -7
package/dist/node.cjs
CHANGED
|
@@ -860,9 +860,18 @@ currentExtensions[27] = (data) => { // http://cbor.schmorp.de/generic-object
|
|
|
860
860
|
return (glbl[data[0]] || Error)(data[1], data[2])
|
|
861
861
|
};
|
|
862
862
|
const packedTable = (read) => {
|
|
863
|
-
if (src[position$1++] != 0x84)
|
|
864
|
-
|
|
863
|
+
if (src[position$1++] != 0x84) {
|
|
864
|
+
let error = new Error('Packed values structure must be followed by a 4 element array');
|
|
865
|
+
if (src.length < position$1)
|
|
866
|
+
error.incomplete = true;
|
|
867
|
+
throw error
|
|
868
|
+
}
|
|
865
869
|
let newPackedValues = read(); // packed values
|
|
870
|
+
if (!newPackedValues || !newPackedValues.length) {
|
|
871
|
+
let error = new Error('Packed values structure must be followed by a 4 element array');
|
|
872
|
+
error.incomplete = true;
|
|
873
|
+
throw error
|
|
874
|
+
}
|
|
866
875
|
packedValues = packedValues ? newPackedValues.concat(packedValues.slice(newPackedValues.length)) : newPackedValues;
|
|
867
876
|
packedValues.prefixes = read();
|
|
868
877
|
packedValues.suffixes = read();
|
|
@@ -880,7 +889,10 @@ currentExtensions[PACKED_REFERENCE_TAG_ID] = (data) => { // packed reference
|
|
|
880
889
|
}
|
|
881
890
|
if (typeof data == 'number')
|
|
882
891
|
return packedValues[16 + (data >= 0 ? 2 * data : (-2 * data - 1))]
|
|
883
|
-
|
|
892
|
+
let error = new Error('No support for non-integer packed references yet');
|
|
893
|
+
if (data === undefined)
|
|
894
|
+
error.incomplete = true;
|
|
895
|
+
throw error
|
|
884
896
|
};
|
|
885
897
|
|
|
886
898
|
// The following code is an incomplete implementation of http://cbor.schmorp.de/stringref
|
|
@@ -1006,7 +1018,15 @@ function registerTypedArray(TypedArray, tag) {
|
|
|
1006
1018
|
currentExtensions[littleEndian ? tag : (tag - 4)] = (bytesPerElement == 1 || littleEndian == isLittleEndianMachine$1) ? (buffer) => {
|
|
1007
1019
|
if (!TypedArray)
|
|
1008
1020
|
throw new Error('Could not find typed array for code ' + tag)
|
|
1009
|
-
|
|
1021
|
+
if (!currentDecoder.copyBuffers) {
|
|
1022
|
+
// try provide a direct view, but will only work if we are byte-aligned
|
|
1023
|
+
if (bytesPerElement === 1 ||
|
|
1024
|
+
bytesPerElement === 2 && !(buffer.byteOffset & 1) ||
|
|
1025
|
+
bytesPerElement === 4 && !(buffer.byteOffset & 3) ||
|
|
1026
|
+
bytesPerElement === 8 && !(buffer.byteOffset & 7))
|
|
1027
|
+
return new TypedArray(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
1028
|
+
}
|
|
1029
|
+
// we have to slice/copy here to get a new ArrayBuffer, if we are not word/byte aligned
|
|
1010
1030
|
return new TypedArray(Uint8Array.prototype.slice.call(buffer, 0).buffer)
|
|
1011
1031
|
} : buffer => {
|
|
1012
1032
|
if (!TypedArray)
|
|
@@ -2362,10 +2382,12 @@ class EncoderStream extends stream.Transform {
|
|
|
2362
2382
|
this.encoder = options.encoder || new Encoder(options);
|
|
2363
2383
|
}
|
|
2364
2384
|
async _transform(value, encoding, callback) {
|
|
2365
|
-
|
|
2366
|
-
this.
|
|
2367
|
-
|
|
2368
|
-
|
|
2385
|
+
try {
|
|
2386
|
+
for await (let chunk of this.encoder.encodeAsAsyncIterable(value)) {
|
|
2387
|
+
this.push(chunk);
|
|
2388
|
+
}
|
|
2389
|
+
callback();
|
|
2390
|
+
} catch(error) { callback (error); }
|
|
2369
2391
|
}
|
|
2370
2392
|
}
|
|
2371
2393
|
|
|
@@ -2386,13 +2408,14 @@ class DecoderStream extends stream.Transform {
|
|
|
2386
2408
|
let values;
|
|
2387
2409
|
try {
|
|
2388
2410
|
values = this.decoder.decodeMultiple(chunk);
|
|
2411
|
+
callback();
|
|
2389
2412
|
} catch(error) {
|
|
2390
2413
|
if (error.incomplete) {
|
|
2391
2414
|
this.incompleteBuffer = chunk.slice(error.lastPosition);
|
|
2392
2415
|
values = error.values;
|
|
2416
|
+
} else {
|
|
2417
|
+
callback(error);
|
|
2393
2418
|
}
|
|
2394
|
-
else
|
|
2395
|
-
throw error
|
|
2396
2419
|
} finally {
|
|
2397
2420
|
for (let value of values || []) {
|
|
2398
2421
|
if (value === null)
|
|
@@ -2400,7 +2423,6 @@ class DecoderStream extends stream.Transform {
|
|
|
2400
2423
|
this.push(value);
|
|
2401
2424
|
}
|
|
2402
2425
|
}
|
|
2403
|
-
if (callback) callback();
|
|
2404
2426
|
}
|
|
2405
2427
|
getNullValue() {
|
|
2406
2428
|
return Symbol.for(null)
|