cbor-x 0.9.1 → 1.0.0
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 +67 -21
- package/decode.d.ts +4 -0
- package/decode.js +323 -117
- package/dist/index.js +563 -270
- package/dist/index.min.js +101 -69
- package/dist/node.cjs +560 -265
- package/dist/test.js +62 -8
- package/encode.d.ts +1 -1
- package/encode.js +236 -89
- package/index.d.ts +1 -1
- package/index.js +2 -4
- package/node-index.js +2 -4
- package/package.json +13 -4
- package/.vscode/launch.json +0 -22
- package/dist/index.js.map +0 -1
- package/tests/benchmark-stream.cjs +0 -282
- package/tests/benchmark.cjs +0 -245
- package/tests/example.json +0 -52
- package/tests/example2.json +0 -26
- package/tests/example3.json +0 -22
- package/tests/example4.json +0 -1
- package/tests/example5.json +0 -12
- package/tests/floats.json +0 -1
- package/tests/index.html +0 -28
- package/tests/sample-large.json +0 -231
- package/tests/strings2.json +0 -1
- package/tests/test-compatibility.cjs +0 -36
- package/tests/test-incomplete.js +0 -41
- package/tests/test-node-iterators.js +0 -72
- package/tests/test-node-stream.js +0 -60
- package/tests/test.js +0 -586
package/dist/test.js
CHANGED
|
@@ -581,6 +581,18 @@
|
|
|
581
581
|
outcomesScore: outcomesScore
|
|
582
582
|
};
|
|
583
583
|
|
|
584
|
+
const senmlData = [
|
|
585
|
+
{ bn: '/3303/0/5700', bt: 1278887, v: 35.5 },
|
|
586
|
+
{ t: 10, v: 34 },
|
|
587
|
+
{ t: 20, v: 33 },
|
|
588
|
+
{ t: 30, v: 32 },
|
|
589
|
+
{ t: 40, v: 31 },
|
|
590
|
+
{ t: 50, v: 30 }
|
|
591
|
+
];
|
|
592
|
+
|
|
593
|
+
const senmlKeys = { bs: -6, bv: -5, bu: -4, bt: -3, bn: -2, n: 0, u: 1, v: 2, vs: 3, t: 6, ut: 7, vd: 8 };
|
|
594
|
+
|
|
595
|
+
|
|
584
596
|
//import inspector from 'inspector'; inspector.open(9229, null, true); debugger
|
|
585
597
|
function tryRequire(module) {
|
|
586
598
|
try {
|
|
@@ -608,6 +620,27 @@
|
|
|
608
620
|
var ITERATIONS = 4000;
|
|
609
621
|
|
|
610
622
|
suite('CBOR basic tests', function(){
|
|
623
|
+
|
|
624
|
+
test('encode/decode with keyMaps (basic)', function() {
|
|
625
|
+
var data = senmlData;
|
|
626
|
+
let cborSenml = new Encoder({ useRecords: false, keyMap: senmlKeys });
|
|
627
|
+
let cborBasic = new Encoder();
|
|
628
|
+
var serialized = cborSenml.encode(data);
|
|
629
|
+
var deserialized = cborSenml.decode(serialized);
|
|
630
|
+
assert(serialized.length < cborBasic.encode(data).length);
|
|
631
|
+
assert.deepEqual(deserialized, data);
|
|
632
|
+
});
|
|
633
|
+
|
|
634
|
+
test('encode/decode with keyMaps and Records)', function() {
|
|
635
|
+
var data = senmlData;
|
|
636
|
+
let cborSenml = new Encoder({ useRecords: true, keyMap: senmlKeys });
|
|
637
|
+
let cborBasic = new Encoder();
|
|
638
|
+
var serialized = cborSenml.encode(data);
|
|
639
|
+
var deserialized = cborSenml.decode(serialized);
|
|
640
|
+
assert(serialized.length < cborBasic.encode(data).length);
|
|
641
|
+
assert.deepEqual(deserialized, data);
|
|
642
|
+
});
|
|
643
|
+
|
|
611
644
|
test('encode/decode data', function(){
|
|
612
645
|
var data = {
|
|
613
646
|
data: [
|
|
@@ -677,9 +710,10 @@
|
|
|
677
710
|
});
|
|
678
711
|
test('encode/decode sample data with records', function(){
|
|
679
712
|
var data = sampleData;
|
|
680
|
-
let
|
|
681
|
-
let encoder = new Encoder({
|
|
713
|
+
let sharedSerialized;
|
|
714
|
+
let encoder = new Encoder({ getStructures() { return }, saveStructures(shared) { sharedSerialized = encode(shared); }, useRecords: true });
|
|
682
715
|
var serialized = encoder.encode(data);
|
|
716
|
+
encoder = new Encoder({ getStructures() { return decode(sharedSerialized) }, saveStructures(shared) { sharedSerialized = encode(shared); }, useRecords: true });
|
|
683
717
|
var deserialized = encoder.decode(serialized);
|
|
684
718
|
assert.deepEqual(deserialized, data);
|
|
685
719
|
});
|
|
@@ -692,8 +726,7 @@
|
|
|
692
726
|
});
|
|
693
727
|
test('encode/decode sample data with packing and records', function(){
|
|
694
728
|
var data = sampleData;
|
|
695
|
-
let
|
|
696
|
-
let encoder = new Encoder({ structures, pack: true, useRecords: true });
|
|
729
|
+
let encoder = new Encoder({ useStringRefs: true });
|
|
697
730
|
var serialized = encoder.encode(data);
|
|
698
731
|
var deserialized = encoder.decode(serialized);
|
|
699
732
|
assert.deepEqual(deserialized, data);
|
|
@@ -732,6 +765,13 @@
|
|
|
732
765
|
assert.deepEqual(deserialized, data);
|
|
733
766
|
}
|
|
734
767
|
});
|
|
768
|
+
test('pack/unpack sample data with bundled strings', function(){
|
|
769
|
+
var data = sampleData;
|
|
770
|
+
let encoder = new Encoder({ /*structures,*/ useRecords: false, bundleStrings: true });
|
|
771
|
+
var serialized = encoder.encode(data);
|
|
772
|
+
var deserialized = encoder.decode(serialized);
|
|
773
|
+
assert.deepEqual(deserialized, data);
|
|
774
|
+
});
|
|
735
775
|
if (typeof Buffer != 'undefined')
|
|
736
776
|
test('replace data', function(){
|
|
737
777
|
var data1 = {
|
|
@@ -931,6 +971,7 @@
|
|
|
931
971
|
date: new Date(1532219539733),
|
|
932
972
|
farFutureDate: new Date(3532219539133),
|
|
933
973
|
ancient: new Date(-3532219539133),
|
|
974
|
+
invalidDate: new Date('invalid')
|
|
934
975
|
};
|
|
935
976
|
let encoder = new Encoder();
|
|
936
977
|
var serialized = encoder.encode(data);
|
|
@@ -940,6 +981,7 @@
|
|
|
940
981
|
assert.equal(deserialized.date.getTime(), 1532219539733);
|
|
941
982
|
assert.equal(deserialized.farFutureDate.getTime(), 3532219539133);
|
|
942
983
|
assert.equal(deserialized.ancient.getTime(), -3532219539133);
|
|
984
|
+
assert.equal(deserialized.invalidDate.toString(), 'Invalid Date');
|
|
943
985
|
});
|
|
944
986
|
test('map/date with options', function(){
|
|
945
987
|
var map = new Map();
|
|
@@ -948,6 +990,7 @@
|
|
|
948
990
|
var data = {
|
|
949
991
|
map: map,
|
|
950
992
|
date: new Date(1532219539011),
|
|
993
|
+
invalidDate: new Date('invalid')
|
|
951
994
|
};
|
|
952
995
|
let encoder = new Encoder({
|
|
953
996
|
mapsAsObjects: true,
|
|
@@ -959,6 +1002,7 @@
|
|
|
959
1002
|
assert.equal(deserialized.map[4], 'four');
|
|
960
1003
|
assert.equal(deserialized.map.three, 3);
|
|
961
1004
|
assert.equal(deserialized.date.getTime(), 1532219539000);
|
|
1005
|
+
assert.isTrue(isNaN(deserialized.invalidDate.getTime()));
|
|
962
1006
|
});
|
|
963
1007
|
test('key caching', function() {
|
|
964
1008
|
var data = {
|
|
@@ -1008,11 +1052,21 @@
|
|
|
1008
1052
|
useFloat32: DECIMAL_FIT
|
|
1009
1053
|
});
|
|
1010
1054
|
var serialized = encoder.encode(data);
|
|
1011
|
-
assert.equal(serialized.length,
|
|
1055
|
+
assert.equal(serialized.length, 36);
|
|
1012
1056
|
var deserialized = encoder.decode(serialized);
|
|
1013
1057
|
assert.deepEqual(deserialized, data);
|
|
1014
1058
|
});
|
|
1015
|
-
|
|
1059
|
+
test('bigint to float', function() {
|
|
1060
|
+
var data = {
|
|
1061
|
+
a: 325283295382932843n
|
|
1062
|
+
};
|
|
1063
|
+
let encoder = new Encoder({
|
|
1064
|
+
int64AsNumber: true
|
|
1065
|
+
});
|
|
1066
|
+
var serialized = encoder.encode(data);
|
|
1067
|
+
var deserialized = encoder.decode(serialized);
|
|
1068
|
+
assert.deepEqual(deserialized.a, 325283295382932843);
|
|
1069
|
+
});
|
|
1016
1070
|
test('numbers', function(){
|
|
1017
1071
|
var data = {
|
|
1018
1072
|
bigEncodable: 48978578104322,
|
|
@@ -1133,7 +1187,7 @@
|
|
|
1133
1187
|
let structures = [];
|
|
1134
1188
|
var serialized = encode(data);
|
|
1135
1189
|
console.log('CBOR size', serialized.length);
|
|
1136
|
-
let encoder = new Encoder({ structures });
|
|
1190
|
+
let encoder = new Encoder({ structures, bundleStrings: true });
|
|
1137
1191
|
var serialized = encoder.encode(data);
|
|
1138
1192
|
console.log('CBOR w/ record ext size', serialized.length);
|
|
1139
1193
|
for (var i = 0; i < ITERATIONS; i++) {
|
|
@@ -1144,7 +1198,7 @@
|
|
|
1144
1198
|
var data = sampleData;
|
|
1145
1199
|
this.timeout(10000);
|
|
1146
1200
|
let structures = [];
|
|
1147
|
-
let encoder = new Encoder({ structures });
|
|
1201
|
+
let encoder = new Encoder({ structures, bundleStrings: true });
|
|
1148
1202
|
let buffer = typeof Buffer != 'undefined' ? Buffer.alloc(0x10000) : new Uint8Array(0x10000);
|
|
1149
1203
|
|
|
1150
1204
|
for (var i = 0; i < ITERATIONS; i++) {
|
package/encode.d.ts
CHANGED