msgpack-lite 0.1.17 → 0.1.26

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.
Files changed (56) hide show
  1. package/.npmignore +1 -0
  2. package/.travis.yml +4 -2
  3. package/.zuul.yml +3 -3
  4. package/Makefile +2 -2
  5. package/README.md +109 -12
  6. package/bower.json +34 -0
  7. package/dist/msgpack.min.js +2 -2
  8. package/lib/buffer-global.js +11 -0
  9. package/lib/buffer-lite.js +88 -64
  10. package/lib/bufferish-array.js +41 -0
  11. package/lib/bufferish-buffer.js +46 -0
  12. package/lib/bufferish-proto.js +86 -0
  13. package/lib/bufferish-uint8array.js +51 -0
  14. package/lib/bufferish.js +108 -0
  15. package/lib/codec-base.js +67 -0
  16. package/lib/codec.js +10 -1
  17. package/lib/decode-buffer.js +16 -10
  18. package/lib/decode-stream.js +2 -3
  19. package/lib/decode.js +2 -3
  20. package/lib/decoder.js +2 -3
  21. package/lib/encode-buffer.js +15 -56
  22. package/lib/encode-stream.js +1 -2
  23. package/lib/encode.js +1 -2
  24. package/lib/encoder.js +1 -2
  25. package/lib/ext-buffer.js +3 -1
  26. package/lib/ext-packer.js +78 -0
  27. package/lib/ext-unpacker.js +81 -0
  28. package/lib/ext.js +5 -70
  29. package/lib/flex-buffer.js +194 -0
  30. package/lib/read-core.js +46 -25
  31. package/lib/read-format.js +118 -72
  32. package/lib/read-token.js +34 -4
  33. package/lib/write-core.js +64 -6
  34. package/lib/write-token.js +82 -42
  35. package/lib/write-type.js +218 -122
  36. package/lib/write-uint8.js +2 -2
  37. package/package.json +24 -12
  38. package/test/10.encode.js +50 -30
  39. package/test/11.decode.js +2 -0
  40. package/test/14.codec.js +95 -0
  41. package/test/15.useraw.js +92 -0
  42. package/test/16.binarraybuffer.js +91 -0
  43. package/test/17.uint8array.js +43 -0
  44. package/test/18.utf8.js +59 -0
  45. package/test/20.roundtrip.js +53 -33
  46. package/test/21.ext.js +2 -2
  47. package/test/23.extbuffer.js +44 -2
  48. package/test/24.int64.js +76 -0
  49. package/test/27.usemap.js +66 -0
  50. package/test/61.encode-only.js +26 -0
  51. package/test/62.decode-only.js +23 -0
  52. package/test/63.module-deps.js +77 -0
  53. package/lib/common.js +0 -3
  54. package/lib/ext-preset.js +0 -133
  55. package/lib/is-array.js +0 -3
  56. package/test/60.buffer-lite.js +0 -98
package/lib/ext-preset.js DELETED
@@ -1,133 +0,0 @@
1
- // ext-preset.js
2
-
3
- var Ext = require("./ext").Ext;
4
-
5
- var preset = exports.preset = new Ext();
6
-
7
- var encode = require("./encode").encode;
8
- var decode = require("./decode").decode;
9
-
10
- var ERROR_COLUMNS = {name: 1, message: 1, stack: 1, columnNumber: 1, fileName: 1, lineNumber: 1};
11
-
12
- init();
13
-
14
- function init() {
15
- preset.addExtPacker(0x0E, Error, [packError, encode]);
16
- preset.addExtPacker(0x01, EvalError, [packError, encode]);
17
- preset.addExtPacker(0x02, RangeError, [packError, encode]);
18
- preset.addExtPacker(0x03, ReferenceError, [packError, encode]);
19
- preset.addExtPacker(0x04, SyntaxError, [packError, encode]);
20
- preset.addExtPacker(0x05, TypeError, [packError, encode]);
21
- preset.addExtPacker(0x06, URIError, [packError, encode]);
22
-
23
- preset.addExtUnpacker(0x0E, [decode, unpackError(Error)]);
24
- preset.addExtUnpacker(0x01, [decode, unpackError(EvalError)]);
25
- preset.addExtUnpacker(0x02, [decode, unpackError(RangeError)]);
26
- preset.addExtUnpacker(0x03, [decode, unpackError(ReferenceError)]);
27
- preset.addExtUnpacker(0x04, [decode, unpackError(SyntaxError)]);
28
- preset.addExtUnpacker(0x05, [decode, unpackError(TypeError)]);
29
- preset.addExtUnpacker(0x06, [decode, unpackError(URIError)]);
30
-
31
- preset.addExtPacker(0x0A, RegExp, [packRegExp, encode]);
32
- preset.addExtPacker(0x0B, Boolean, [packValueOf, encode]);
33
- preset.addExtPacker(0x0C, String, [packValueOf, encode]);
34
- preset.addExtPacker(0x0D, Date, [Number, encode]);
35
- preset.addExtPacker(0x0F, Number, [packValueOf, encode]);
36
-
37
- preset.addExtUnpacker(0x0A, [decode, unpackRegExp]);
38
- preset.addExtUnpacker(0x0B, [decode, unpackClass(Boolean)]);
39
- preset.addExtUnpacker(0x0C, [decode, unpackClass(String)]);
40
- preset.addExtUnpacker(0x0D, [decode, unpackClass(Date)]);
41
- preset.addExtUnpacker(0x0F, [decode, unpackClass(Number)]);
42
-
43
- if ("undefined" !== typeof Uint8Array) {
44
- preset.addExtPacker(0x11, Int8Array, packBuffer);
45
- preset.addExtPacker(0x12, Uint8Array, packBuffer);
46
- preset.addExtPacker(0x13, Int16Array, packTypedArray);
47
- preset.addExtPacker(0x14, Uint16Array, packTypedArray);
48
- preset.addExtPacker(0x15, Int32Array, packTypedArray);
49
- preset.addExtPacker(0x16, Uint32Array, packTypedArray);
50
- preset.addExtPacker(0x17, Float32Array, packTypedArray);
51
-
52
- preset.addExtUnpacker(0x11, unpackClass(Int8Array));
53
- preset.addExtUnpacker(0x12, unpackClass(Uint8Array));
54
- preset.addExtUnpacker(0x13, [unpackArrayBuffer, unpackClass(Int16Array)]);
55
- preset.addExtUnpacker(0x14, [unpackArrayBuffer, unpackClass(Uint16Array)]);
56
- preset.addExtUnpacker(0x15, [unpackArrayBuffer, unpackClass(Int32Array)]);
57
- preset.addExtUnpacker(0x16, [unpackArrayBuffer, unpackClass(Uint32Array)]);
58
- preset.addExtUnpacker(0x17, [unpackArrayBuffer, unpackClass(Float32Array)]);
59
-
60
- if ("undefined" !== typeof Float64Array) {
61
- // PhantomJS/1.9.7 doesn't have Float64Array
62
- preset.addExtPacker(0x18, Float64Array, packTypedArray);
63
- preset.addExtUnpacker(0x18, [unpackArrayBuffer, unpackClass(Float64Array)]);
64
- }
65
-
66
- if ("undefined" !== typeof Uint8ClampedArray) {
67
- // IE10 doesn't have Uint8ClampedArray
68
- preset.addExtPacker(0x19, Uint8ClampedArray, packBuffer);
69
- preset.addExtUnpacker(0x19, unpackClass(Uint8ClampedArray));
70
- }
71
-
72
- preset.addExtPacker(0x1A, ArrayBuffer, packArrayBuffer);
73
- preset.addExtPacker(0x1D, DataView, packTypedArray);
74
- preset.addExtUnpacker(0x1A, unpackArrayBuffer);
75
- preset.addExtUnpacker(0x1D, [unpackArrayBuffer, unpackClass(DataView)]);
76
- }
77
- }
78
-
79
- function packBuffer(value) {
80
- return new Buffer(value);
81
- }
82
-
83
- function packValueOf(value) {
84
- return (value).valueOf();
85
- }
86
-
87
- function packRegExp(value) {
88
- value = RegExp.prototype.toString.call(value).split("/");
89
- value.shift();
90
- var out = [value.pop()];
91
- out.unshift(value.join("/"));
92
- return out;
93
- }
94
-
95
- function unpackRegExp(value) {
96
- return RegExp.apply(null, value);
97
- }
98
-
99
- function packError(value) {
100
- var out = {};
101
- for (var key in ERROR_COLUMNS) {
102
- out[key] = value[key];
103
- }
104
- return out;
105
- }
106
-
107
- function unpackError(Class) {
108
- return function(value) {
109
- var out = new Class();
110
- for (var key in ERROR_COLUMNS) {
111
- out[key] = value[key];
112
- }
113
- return out;
114
- };
115
- }
116
-
117
- function unpackClass(Class) {
118
- return function(value) {
119
- return new Class(value);
120
- };
121
- }
122
-
123
- function packTypedArray(value) {
124
- return new Buffer(new Uint8Array(value.buffer));
125
- }
126
-
127
- function packArrayBuffer(value) {
128
- return new Buffer(new Uint8Array(value));
129
- }
130
-
131
- function unpackArrayBuffer(value) {
132
- return (new Uint8Array(value)).buffer;
133
- }
package/lib/is-array.js DELETED
@@ -1,3 +0,0 @@
1
- module.exports = Array.isArray || function (array) {
2
- return "[object Array]" === Object.prototype.toString.call(array);
3
- };
@@ -1,98 +0,0 @@
1
- #!/usr/bin/env mocha -R spec
2
-
3
- var assert = require("assert");
4
-
5
- var msgpack = require("../index");
6
- var BufferLite = require("../lib/buffer-lite");
7
- var TITLE = __filename.replace(/^.*\//, "");
8
-
9
- describe(TITLE, function() {
10
-
11
- it("BufferLite.writeUint64BE() 1...", function() {
12
- var exp = [
13
- [0xcf, 0, 0, 0, 0, 0, 0, 0, 1], // 1
14
- [0xcf, 0, 0, 0, 0, 0, 0, 1, 0], // 256
15
- [0xcf, 0, 0, 0, 0, 0, 1, 0, 0], // 65536
16
- [0xcf, 0, 0, 0, 0, 1, 0, 0, 0],
17
- [0xcf, 0, 0, 0, 1, 0, 0, 0, 0],
18
- [0xcf, 0, 0, 1, 0, 0, 0, 0, 0],
19
- [0xcf, 0, 1, 0, 0, 0, 0, 0, 0],
20
- [0xcf, 1, 0, 0, 0, 0, 0, 0, 0]
21
- ];
22
- var val = 1;
23
- for (var i = 0; i < exp.length; i++) {
24
- var buffer = Buffer(9);
25
- buffer[0] = 0xcf;
26
- BufferLite.writeUint64BE.call(buffer, val, 1);
27
- assert.deepEqual(buffer, Buffer(exp[i]));
28
- assert.equal(msgpack.decode(buffer), val);
29
- val *= 256;
30
- }
31
- });
32
-
33
- it("BufferLite.writeUint64BE() 32767...", function() {
34
- var exp = [
35
- [0xcf, 0, 0, 0, 0, 0, 0, 0x7F, 0xFF], // 32767
36
- [0xcf, 0, 0, 0, 0, 0, 0x7F, 0xFF, 0],
37
- [0xcf, 0, 0, 0, 0, 0x7F, 0xFF, 0, 0],
38
- [0xcf, 0, 0, 0, 0x7F, 0xFF, 0, 0, 0],
39
- [0xcf, 0, 0, 0x7F, 0xFF, 0, 0, 0, 0],
40
- [0xcf, 0, 0x7F, 0xFF, 0, 0, 0, 0, 0],
41
- [0xcf, 0x7F, 0xFF, 0, 0, 0, 0, 0, 0]
42
- ];
43
- var val = 32767;
44
- for (var i = 0; i < exp.length; i++) {
45
- var buffer = Buffer(9);
46
- buffer[0] = 0xcf;
47
- BufferLite.writeUint64BE.call(buffer, val, 1);
48
- assert.deepEqual(buffer, Buffer(exp[i]));
49
- assert.equal(msgpack.decode(buffer), val);
50
- val *= 256;
51
- }
52
- });
53
-
54
- it("BufferLite.writeInt64BE() -2...", function() {
55
- var exp = [
56
- [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE], // -2
57
- [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF], // -257
58
- [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF], // -65537
59
- [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF],
60
- [0xd3, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF],
61
- [0xd3, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
62
- [0xd3, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
63
- [0xd3, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]
64
- ];
65
- var value = 1;
66
- for (var i = 0; i < exp.length; i++) {
67
- var buffer = Buffer(9);
68
- buffer[0] = 0xd3;
69
- var val = -value - 1;
70
- BufferLite.writeInt64BE.call(buffer, val, 1);
71
- assert.deepEqual(buffer, Buffer(exp[i]));
72
- assert.equal(msgpack.decode(buffer), val);
73
- value *= 256;
74
- }
75
- });
76
-
77
- it("BufferLite.writeInt64BE() -32768...", function() {
78
- var exp = [
79
- [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0], // -32768
80
- [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0, 0xFF],
81
- [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0, 0xFF, 0xFF],
82
- [0xd3, 0xFF, 0xFF, 0xFF, 0x80, 0, 0xFF, 0xFF, 0xFF],
83
- [0xd3, 0xFF, 0xFF, 0x80, 0, 0xFF, 0xFF, 0xFF, 0xFF],
84
- [0xd3, 0xFF, 0x80, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
85
- [0xd3, 0x80, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]
86
- ];
87
- var val = -32768;
88
- for (var i = 0; i < exp.length; i++) {
89
- var buffer = Buffer(9);
90
- buffer[0] = 0xd3;
91
- BufferLite.writeInt64BE.call(buffer, val, 1);
92
- assert.deepEqual(buffer, Buffer(exp[i]));
93
- assert.equal(msgpack.decode(buffer), val);
94
- val *= 256;
95
- val += 255;
96
- }
97
- });
98
- });