msgpack5 3.4.1 → 3.6.1

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 (50) hide show
  1. package/.travis.yml +2 -0
  2. package/README.md +10 -0
  3. package/dist/msgpack5.js +2711 -1755
  4. package/dist/msgpack5.min.js +1 -4
  5. package/example.js +4 -1
  6. package/index.js +8 -3
  7. package/lib/decoder.js +12 -1
  8. package/lib/encoder.js +35 -29
  9. package/lib/streams.js +2 -0
  10. package/package.json +13 -13
  11. package/test/1-byte-length-buffers.js +6 -5
  12. package/test/1-byte-length-exts.js +4 -3
  13. package/test/1-byte-length-strings.js +4 -3
  14. package/test/1-byte-length-uint8arrays.js +43 -0
  15. package/test/15-elements-arrays.js +2 -1
  16. package/test/15-elements-maps.js +3 -2
  17. package/test/16-bits-signed-integers.js +3 -2
  18. package/test/16-bits-unsigned-integers.js +3 -2
  19. package/test/2-bytes-length-arrays.js +3 -2
  20. package/test/2-bytes-length-buffers.js +5 -4
  21. package/test/2-bytes-length-exts.js +4 -3
  22. package/test/2-bytes-length-maps.js +3 -2
  23. package/test/2-bytes-length-strings.js +8 -7
  24. package/test/2-bytes-length-uint8arrays.js +43 -0
  25. package/test/31-chars-strings.js +3 -2
  26. package/test/32-bits-signed-integers.js +3 -2
  27. package/test/32-bits-unsigned-integers.js +3 -2
  28. package/test/32-bytes-strings.js +2 -1
  29. package/test/4-bytes-length-arrays.js +3 -2
  30. package/test/4-bytes-length-buffers.js +5 -4
  31. package/test/4-bytes-length-exts.js +4 -3
  32. package/test/4-bytes-length-strings.js +7 -6
  33. package/test/4-bytes-length-uint8arrays.js +42 -0
  34. package/test/5-bits-negative-integers.js +2 -1
  35. package/test/64-bits-signed-integers.js +2 -1
  36. package/test/64-bits-unsigned-integers.js +2 -1
  37. package/test/7-bits-positive-integers.js +2 -1
  38. package/test/8-bits-positive-integers.js +3 -2
  39. package/test/8-bits-signed-integers.js +3 -2
  40. package/test/booleans.js +3 -2
  41. package/test/doubles.js +3 -2
  42. package/test/ext-custom-encode-check.js +3 -2
  43. package/test/fixexts.js +21 -20
  44. package/test/floats.js +3 -2
  45. package/test/levelup-encoding.js +4 -4
  46. package/test/null.js +2 -1
  47. package/test/object-prototype-poisoning.js +49 -0
  48. package/test/object-with-buffers.js +4 -3
  49. package/test/streams.js +3 -2
  50. package/.npmignore +0 -27
package/example.js CHANGED
@@ -1,3 +1,6 @@
1
+ 'use strict'
2
+
3
+ var Buffer = require('safe-buffer').Buffer
1
4
  var msgpack = require('./')() // namespace our extensions
2
5
  var a = new MyType(2, 'a')
3
6
  var encode = msgpack.encode
@@ -22,7 +25,7 @@ function MyType (size, value) {
22
25
  }
23
26
 
24
27
  function mytipeEncode (obj) {
25
- var buf = new Buffer(obj.size)
28
+ var buf = Buffer.allocUnsafe(obj.size)
26
29
  buf.fill(obj.value)
27
30
  return buf
28
31
  }
package/index.js CHANGED
@@ -1,3 +1,6 @@
1
+ 'use strict'
2
+
3
+ var Buffer = require('safe-buffer').Buffer
1
4
  var assert = require('assert')
2
5
  var bl = require('bl')
3
6
  var streams = require('./lib/streams')
@@ -10,7 +13,9 @@ function msgpack (options) {
10
13
 
11
14
  options = options || {
12
15
  forceFloat64: false,
13
- compatibilityMode: false
16
+ compatibilityMode: false,
17
+ // options.protoAction: 'error' (default) / 'remove' / 'ignore'
18
+ protoAction: 'error'
14
19
  }
15
20
 
16
21
  function registerEncoder (check, encode) {
@@ -47,7 +52,7 @@ function msgpack (options) {
47
52
 
48
53
  function reEncode (obj) {
49
54
  var buf = bl()
50
- var header = new Buffer(1)
55
+ var header = Buffer.allocUnsafe(1)
51
56
 
52
57
  header.writeInt8(type, 0)
53
58
 
@@ -65,7 +70,7 @@ function msgpack (options) {
65
70
 
66
71
  return {
67
72
  encode: buildEncode(encodingTypes, options.forceFloat64, options.compatibilityMode),
68
- decode: buildDecode(decodingTypes),
73
+ decode: buildDecode(decodingTypes, options),
69
74
  register: register,
70
75
  registerEncoder: registerEncoder,
71
76
  registerDecoder: registerDecoder,
package/lib/decoder.js CHANGED
@@ -12,7 +12,7 @@ function IncompleteBufferError (message) {
12
12
 
13
13
  util.inherits(IncompleteBufferError, Error)
14
14
 
15
- module.exports = function buildDecode (decodingTypes) {
15
+ module.exports = function buildDecode (decodingTypes, options) {
16
16
  return decode
17
17
 
18
18
  function getSize (first) {
@@ -358,6 +358,17 @@ module.exports = function buildDecode (decodingTypes) {
358
358
  var valueResult = tryDecode(buf, offset)
359
359
  if (valueResult) {
360
360
  key = keyResult.value
361
+
362
+ if (key === '__proto__') {
363
+ if (options.protoAction === 'error') {
364
+ throw new SyntaxError('Object contains forbidden prototype property')
365
+ }
366
+
367
+ if (options.protoAction === 'remove') {
368
+ continue
369
+ }
370
+ }
371
+
361
372
  result[key] = valueResult.value
362
373
  offset += valueResult.bytesConsumed
363
374
  totalBytesConsumed += (keyResult.bytesConsumed + valueResult.bytesConsumed)
package/lib/encoder.js CHANGED
@@ -1,3 +1,6 @@
1
+ 'use strict'
2
+
3
+ var Buffer = require('safe-buffer').Buffer
1
4
  var bl = require('bl')
2
5
  var TOLERANCE = 0.1
3
6
 
@@ -9,52 +12,55 @@ module.exports = function buildEncode (encodingTypes, forceFloat64, compatibilit
9
12
  if (obj === undefined) {
10
13
  throw new Error('undefined is not encodable in msgpack!')
11
14
  } else if (obj === null) {
12
- buf = new Buffer(1)
15
+ buf = Buffer.allocUnsafe(1)
13
16
  buf[0] = 0xc0
14
17
  } else if (obj === true) {
15
- buf = new Buffer(1)
18
+ buf = Buffer.allocUnsafe(1)
16
19
  buf[0] = 0xc3
17
20
  } else if (obj === false) {
18
- buf = new Buffer(1)
21
+ buf = Buffer.allocUnsafe(1)
19
22
  buf[0] = 0xc2
20
23
  } else if (typeof obj === 'string') {
21
24
  len = Buffer.byteLength(obj)
22
25
  if (len < 32) {
23
- buf = new Buffer(1 + len)
26
+ buf = Buffer.allocUnsafe(1 + len)
24
27
  buf[0] = 0xa0 | len
25
28
  if (len > 0) {
26
29
  buf.write(obj, 1)
27
30
  }
28
31
  } else if (len <= 0xff && !compatibilityMode) {
29
32
  // str8, but only when not in compatibility mode
30
- buf = new Buffer(2 + len)
33
+ buf = Buffer.allocUnsafe(2 + len)
31
34
  buf[0] = 0xd9
32
35
  buf[1] = len
33
36
  buf.write(obj, 2)
34
37
  } else if (len <= 0xffff) {
35
- buf = new Buffer(3 + len)
38
+ buf = Buffer.allocUnsafe(3 + len)
36
39
  buf[0] = 0xda
37
40
  buf.writeUInt16BE(len, 1)
38
41
  buf.write(obj, 3)
39
42
  } else {
40
- buf = new Buffer(5 + len)
43
+ buf = Buffer.allocUnsafe(5 + len)
41
44
  buf[0] = 0xdb
42
45
  buf.writeUInt32BE(len, 1)
43
46
  buf.write(obj, 5)
44
47
  }
45
- } else if (obj && obj.readUInt32LE) {
48
+ } else if (obj && (obj.readUInt32LE || obj instanceof Uint8Array)) {
49
+ if (obj instanceof Uint8Array) {
50
+ obj = Buffer.from(obj)
51
+ }
46
52
  // weird hack to support Buffer
47
53
  // and Buffer-like objects
48
54
  if (obj.length <= 0xff) {
49
- buf = new Buffer(2)
55
+ buf = Buffer.allocUnsafe(2)
50
56
  buf[0] = 0xc4
51
57
  buf[1] = obj.length
52
58
  } else if (obj.length <= 0xffff) {
53
- buf = new Buffer(3)
59
+ buf = Buffer.allocUnsafe(3)
54
60
  buf[0] = 0xc5
55
61
  buf.writeUInt16BE(obj.length, 1)
56
62
  } else {
57
- buf = new Buffer(5)
63
+ buf = Buffer.allocUnsafe(5)
58
64
  buf[0] = 0xc6
59
65
  buf.writeUInt32BE(obj.length, 1)
60
66
  }
@@ -62,14 +68,14 @@ module.exports = function buildEncode (encodingTypes, forceFloat64, compatibilit
62
68
  buf = bl([buf, obj])
63
69
  } else if (Array.isArray(obj)) {
64
70
  if (obj.length < 16) {
65
- buf = new Buffer(1)
71
+ buf = Buffer.allocUnsafe(1)
66
72
  buf[0] = 0x90 | obj.length
67
73
  } else if (obj.length < 65536) {
68
- buf = new Buffer(3)
74
+ buf = Buffer.allocUnsafe(3)
69
75
  buf[0] = 0xdc
70
76
  buf.writeUInt16BE(obj.length, 1)
71
77
  } else {
72
- buf = new Buffer(5)
78
+ buf = Buffer.allocUnsafe(5)
73
79
  buf[0] = 0xdd
74
80
  buf.writeUInt32BE(obj.length, 1)
75
81
  }
@@ -85,22 +91,22 @@ module.exports = function buildEncode (encodingTypes, forceFloat64, compatibilit
85
91
  return encodeFloat(obj, forceFloat64)
86
92
  } else if (obj >= 0) {
87
93
  if (obj < 128) {
88
- buf = new Buffer(1)
94
+ buf = Buffer.allocUnsafe(1)
89
95
  buf[0] = obj
90
96
  } else if (obj < 256) {
91
- buf = new Buffer(2)
97
+ buf = Buffer.allocUnsafe(2)
92
98
  buf[0] = 0xcc
93
99
  buf[1] = obj
94
100
  } else if (obj < 65536) {
95
- buf = new Buffer(3)
101
+ buf = Buffer.allocUnsafe(3)
96
102
  buf[0] = 0xcd
97
103
  buf.writeUInt16BE(obj, 1)
98
104
  } else if (obj <= 0xffffffff) {
99
- buf = new Buffer(5)
105
+ buf = Buffer.allocUnsafe(5)
100
106
  buf[0] = 0xce
101
107
  buf.writeUInt32BE(obj, 1)
102
108
  } else if (obj <= 9007199254740991) {
103
- buf = new Buffer(9)
109
+ buf = Buffer.allocUnsafe(9)
104
110
  buf[0] = 0xcf
105
111
  write64BitUint(buf, obj)
106
112
  } else {
@@ -108,22 +114,22 @@ module.exports = function buildEncode (encodingTypes, forceFloat64, compatibilit
108
114
  }
109
115
  } else {
110
116
  if (obj >= -32) {
111
- buf = new Buffer(1)
117
+ buf = Buffer.allocUnsafe(1)
112
118
  buf[0] = 0x100 + obj
113
119
  } else if (obj >= -128) {
114
- buf = new Buffer(2)
120
+ buf = Buffer.allocUnsafe(2)
115
121
  buf[0] = 0xd0
116
122
  buf.writeInt8(obj, 1)
117
123
  } else if (obj >= -32768) {
118
- buf = new Buffer(3)
124
+ buf = Buffer.allocUnsafe(3)
119
125
  buf[0] = 0xd1
120
126
  buf.writeInt16BE(obj, 1)
121
127
  } else if (obj > -214748365) {
122
- buf = new Buffer(5)
128
+ buf = Buffer.allocUnsafe(5)
123
129
  buf[0] = 0xd2
124
130
  buf.writeInt32BE(obj, 1)
125
131
  } else if (obj >= -9007199254740991) {
126
- buf = new Buffer(9)
132
+ buf = Buffer.allocUnsafe(9)
127
133
  buf[0] = 0xd3
128
134
  write64BitInt(buf, 1, obj)
129
135
  } else {
@@ -189,7 +195,7 @@ module.exports = function buildEncode (encodingTypes, forceFloat64, compatibilit
189
195
  headers.push(length & 0x000000ff)
190
196
  }
191
197
 
192
- return bl().append(new Buffer(headers)).append(encoded)
198
+ return bl().append(Buffer.from(headers)).append(encoded)
193
199
  }
194
200
 
195
201
  function encodeObject (obj) {
@@ -209,10 +215,10 @@ module.exports = function buildEncode (encodingTypes, forceFloat64, compatibilit
209
215
  }
210
216
 
211
217
  if (length < 16) {
212
- header = new Buffer(1)
218
+ header = Buffer.allocUnsafe(1)
213
219
  header[0] = 0x80 | length
214
220
  } else {
215
- header = new Buffer(3)
221
+ header = Buffer.allocUnsafe(3)
216
222
  header[0] = 0xde
217
223
  header.writeUInt16BE(length, 1)
218
224
  }
@@ -266,14 +272,14 @@ function isFloat (n) {
266
272
  function encodeFloat (obj, forceFloat64) {
267
273
  var buf
268
274
 
269
- buf = new Buffer(5)
275
+ buf = Buffer.allocUnsafe(5)
270
276
  buf[0] = 0xca
271
277
  buf.writeFloatBE(obj, 1)
272
278
 
273
279
  // FIXME is there a way to check if a
274
280
  // value fits in a float?
275
281
  if (forceFloat64 || Math.abs(obj - buf.readFloatBE(1)) > TOLERANCE) {
276
- buf = new Buffer(9)
282
+ buf = Buffer.allocUnsafe(9)
277
283
  buf[0] = 0xcb
278
284
  buf.writeDoubleBE(obj, 1)
279
285
  }
package/lib/streams.js CHANGED
@@ -1,3 +1,5 @@
1
+ 'use strict'
2
+
1
3
  var Transform = require('readable-stream').Transform
2
4
  var inherits = require('inherits')
3
5
  var bl = require('bl')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "msgpack5",
3
- "version": "3.4.1",
3
+ "version": "3.6.1",
4
4
  "description": "A msgpack v5 implementation for node.js and the browser, with extension points",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -21,8 +21,7 @@
21
21
  "msgpack",
22
22
  "extension",
23
23
  "v5",
24
- "msgpack",
25
- "v5",
24
+ "MessagePack",
26
25
  "ext"
27
26
  ],
28
27
  "author": "Matteo collina <hello@matteocollina.com>",
@@ -32,15 +31,15 @@
32
31
  },
33
32
  "homepage": "https://github.com/mcollina/msgpack5",
34
33
  "devDependencies": {
35
- "browserify": "^10.2.4",
34
+ "browserify": "^14.0.0",
36
35
  "faucet": "0.0.1",
37
- "jshint": "^2.5.2",
38
- "level-test": "^2.0.0",
39
- "pre-commit": "1.0.10",
40
- "standard": "^8.0.0",
41
- "tape": "^4.0.0",
36
+ "jshint": "^2.9.5",
37
+ "memdb": "^1.3.1",
38
+ "pre-commit": "^1.2.2",
39
+ "standard": "^10.0.3",
40
+ "tape": "^4.8.0",
42
41
  "testling": "^1.7.1",
43
- "uglify-js": "^2.4.15"
42
+ "uglify-js": "^3.0.28"
44
43
  },
45
44
  "standard": {
46
45
  "ignore": [
@@ -61,8 +60,9 @@
61
60
  ]
62
61
  },
63
62
  "dependencies": {
64
- "bl": "^1.0.0",
65
- "inherits": "^2.0.1",
66
- "readable-stream": "^2.0.1"
63
+ "bl": "^1.2.1",
64
+ "inherits": "^2.0.3",
65
+ "readable-stream": "^2.3.3",
66
+ "safe-buffer": "^5.1.1"
67
67
  }
68
68
  }
@@ -1,5 +1,6 @@
1
1
  'use strict'
2
2
 
3
+ var Buffer = require('safe-buffer').Buffer
3
4
  var test = require('tape').test
4
5
  var msgpack = require('../')
5
6
  var bl = require('bl')
@@ -7,7 +8,7 @@ var bl = require('bl')
7
8
  function build (size) {
8
9
  var buf
9
10
 
10
- buf = new Buffer(size)
11
+ buf = Buffer.allocUnsafe(size)
11
12
  buf.fill('a')
12
13
 
13
14
  return buf
@@ -20,7 +21,7 @@ test('encode/decode 2^8-1 bytes buffers', function (t) {
20
21
  all.push(build(Math.pow(2, 8) - 1))
21
22
  all.push(build(Math.pow(2, 6) + 1))
22
23
  all.push(build(1))
23
- all.push(new Buffer(0))
24
+ all.push(Buffer.allocUnsafe(0))
24
25
 
25
26
  all.forEach(function (orig) {
26
27
  t.test('encoding a buffer of length ' + orig.length, function (t) {
@@ -33,7 +34,7 @@ test('encode/decode 2^8-1 bytes buffers', function (t) {
33
34
  })
34
35
 
35
36
  t.test('decoding a buffer of length ' + orig.length, function (t) {
36
- var buf = new Buffer(2 + orig.length)
37
+ var buf = Buffer.allocUnsafe(2 + orig.length)
37
38
  buf[0] = 0xc4
38
39
  buf[1] = orig.length
39
40
  orig.copy(buf, 2)
@@ -53,7 +54,7 @@ test('encode/decode 2^8-1 bytes buffers', function (t) {
53
54
  test('decoding a chopped 2^8-1 bytes buffer', function (t) {
54
55
  var encoder = msgpack()
55
56
  var orig = build(Math.pow(2, 6))
56
- var buf = new Buffer(2 + orig.length)
57
+ var buf = Buffer.allocUnsafe(2 + orig.length)
57
58
  buf[0] = 0xc4
58
59
  buf[1] = Math.pow(2, 8) - 1 // set bigger size
59
60
  orig.copy(buf, 2)
@@ -68,7 +69,7 @@ test('decoding a chopped 2^8-1 bytes buffer', function (t) {
68
69
 
69
70
  test('decoding an incomplete header of 2^8-1 bytes buffer', function (t) {
70
71
  var encoder = msgpack()
71
- var buf = new Buffer(1)
72
+ var buf = Buffer.allocUnsafe(1)
72
73
  buf[0] = 0xc4
73
74
  buf = bl().append(buf)
74
75
  var origLength = buf.length
@@ -1,5 +1,6 @@
1
1
  'use strict'
2
2
 
3
+ var Buffer = require('safe-buffer').Buffer
3
4
  var test = require('tape').test
4
5
  var msgpack = require('../')
5
6
  var bl = require('bl')
@@ -14,7 +15,7 @@ test('encode/decode variable ext data up to 0xff', function (t) {
14
15
  }
15
16
 
16
17
  function mytipeEncode (obj) {
17
- var buf = new Buffer(obj.size)
18
+ var buf = Buffer.allocUnsafe(obj.size)
18
19
  buf.fill(obj.value)
19
20
  return buf
20
21
  }
@@ -72,7 +73,7 @@ test('encode/decode variable ext data up to 0xff', function (t) {
72
73
 
73
74
  t.test('decoding an incomplete variable ext data up to 0xff', function (t) {
74
75
  var obj = encoder.encode(new MyType(250, 'a'))
75
- var buf = new Buffer(obj.length)
76
+ var buf = Buffer.allocUnsafe(obj.length)
76
77
  buf[0] = 0xc7
77
78
  buf.writeUInt8(obj.length + 2, 1) // set bigger size
78
79
  obj.copy(buf, 2, 2, obj.length)
@@ -86,7 +87,7 @@ test('encode/decode variable ext data up to 0xff', function (t) {
86
87
  })
87
88
 
88
89
  t.test('decoding an incomplete header of variable ext data up to 0xff', function (t) {
89
- var buf = new Buffer(2)
90
+ var buf = Buffer.allocUnsafe(2)
90
91
  buf[0] = 0xc7
91
92
  buf = bl().append(buf)
92
93
  var origLength = buf.length
@@ -1,5 +1,6 @@
1
1
  'use strict'
2
2
 
3
+ var Buffer = require('safe-buffer').Buffer
3
4
  var test = require('tape').test
4
5
  var msgpack = require('../')
5
6
  var bl = require('bl')
@@ -28,7 +29,7 @@ test('encode/decode 32 <-> (2^8-1) bytes strings', function (t) {
28
29
  })
29
30
 
30
31
  t.test('decoding a string of length ' + str.length, function (t) {
31
- var buf = new Buffer(2 + Buffer.byteLength(str))
32
+ var buf = Buffer.allocUnsafe(2 + Buffer.byteLength(str))
32
33
  buf[0] = 0xd9
33
34
  buf[1] = Buffer.byteLength(str)
34
35
  buf.write(str, 2)
@@ -50,7 +51,7 @@ test('decoding a chopped string', function (t) {
50
51
  var str
51
52
  for (str = 'a'; str.length < 40; str += 'a') {
52
53
  }
53
- var buf = new Buffer(2 + Buffer.byteLength(str))
54
+ var buf = Buffer.allocUnsafe(2 + Buffer.byteLength(str))
54
55
  buf[0] = 0xd9
55
56
  buf[1] = Buffer.byteLength(str) + 10 // set bigger size
56
57
  buf.write(str, 2)
@@ -65,7 +66,7 @@ test('decoding a chopped string', function (t) {
65
66
 
66
67
  test('decoding an incomplete header of a string', function (t) {
67
68
  var encoder = msgpack()
68
- var buf = new Buffer(1)
69
+ var buf = Buffer.allocUnsafe(1)
69
70
  buf[0] = 0xd9
70
71
  buf = bl().append(buf)
71
72
  var origLength = buf.length
@@ -0,0 +1,43 @@
1
+ 'use strict'
2
+
3
+ var Buffer = require('safe-buffer').Buffer
4
+ var test = require('tape').test
5
+ var msgpack = require('../')
6
+
7
+ function build (size) {
8
+ var array = []
9
+ var i
10
+
11
+ for (i = 0; i < size; i++) {
12
+ array.push(42)
13
+ }
14
+
15
+ return new Uint8Array(array)
16
+ }
17
+
18
+ test('encode/decode 2^8-1 Uint8Arrays', function (t) {
19
+ var encoder = msgpack()
20
+ var all = []
21
+
22
+ all.push(build(Math.pow(2, 8) - 1))
23
+ all.push(build(Math.pow(2, 6) + 1))
24
+ all.push(build(1))
25
+ all.push(new Uint8Array(0))
26
+
27
+ all.forEach(function (array) {
28
+ t.test('encoding Uint8Array of length ' + array.byteLength + ' bytes', function (t) {
29
+ var buf = encoder.encode(array)
30
+ t.equal(buf.length, 2 + array.byteLength, 'must have the right length')
31
+ t.equal(buf.readUInt8(0), 0xc4, 'must have the proper header')
32
+ t.equal(buf.readUInt8(1), array.byteLength, 'must include the buf length')
33
+ t.end()
34
+ })
35
+
36
+ t.test('mirror test for an Uint8Array of length ' + array.byteLength + ' bytes', function (t) {
37
+ t.deepEqual(encoder.decode(encoder.encode(array)), new Buffer(array), 'must stay the same')
38
+ t.end()
39
+ })
40
+ })
41
+
42
+ t.end()
43
+ })
@@ -1,5 +1,6 @@
1
1
  'use strict'
2
2
 
3
+ var Buffer = require('safe-buffer').Buffer
3
4
  var test = require('tape').test
4
5
  var msgpack = require('../')
5
6
  var bl = require('bl')
@@ -65,7 +66,7 @@ test('decoding an incomplete array', function (t) {
65
66
 
66
67
  var array = ['a', 'b', 'c']
67
68
  var size = computeLength(array)
68
- var buf = new Buffer(size)
69
+ var buf = Buffer.allocUnsafe(size)
69
70
  buf[0] = 0x90 | array.length + 2 // set bigger size
70
71
  var pos = 1
71
72
  for (var i = 0; i < array.length; i++) {
@@ -1,5 +1,6 @@
1
1
  'use strict'
2
2
 
3
+ var Buffer = require('safe-buffer').Buffer
3
4
  var test = require('tape').test
4
5
  var msgpack = require('../')
5
6
  var bl = require('bl')
@@ -74,7 +75,7 @@ test('encode/decode map with buf, ints and strings', function (t) {
74
75
  var map = {
75
76
  topic: 'hello',
76
77
  qos: 1,
77
- payload: new Buffer('world'),
78
+ payload: Buffer.from('world'),
78
79
  messageId: '42',
79
80
  ttl: 1416309270167
80
81
  }
@@ -87,7 +88,7 @@ test('encode/decode map with buf, ints and strings', function (t) {
87
88
  test('decoding a chopped map', function (t) {
88
89
  var encoder = msgpack()
89
90
  var map = encoder.encode({'a': 'b', 'c': 'd', 'e': 'f'})
90
- var buf = new Buffer(map.length)
91
+ var buf = Buffer.allocUnsafe(map.length)
91
92
  buf[0] = 0x80 | 5 // set bigger size
92
93
  map.copy(buf, 1, 1, map.length)
93
94
  buf = bl().append(buf)
@@ -1,5 +1,6 @@
1
1
  'use strict'
2
2
 
3
+ var Buffer = require('safe-buffer').Buffer
3
4
  var test = require('tape').test
4
5
  var msgpack = require('../')
5
6
  var bl = require('bl')
@@ -25,7 +26,7 @@ test('encoding/decoding 16-bits big-endian signed integers', function (t) {
25
26
  })
26
27
 
27
28
  t.test('decoding ' + num, function (t) {
28
- var buf = new Buffer(3)
29
+ var buf = Buffer.allocUnsafe(3)
29
30
  buf[0] = 0xd1
30
31
  buf.writeInt16BE(num, 1)
31
32
  t.equal(encoder.decode(buf), num, 'must decode correctly')
@@ -43,7 +44,7 @@ test('encoding/decoding 16-bits big-endian signed integers', function (t) {
43
44
 
44
45
  test('decoding an incomplete 16-bits big-endian integer', function (t) {
45
46
  var encoder = msgpack()
46
- var buf = new Buffer(2)
47
+ var buf = Buffer.allocUnsafe(2)
47
48
  buf[0] = 0xd1
48
49
  buf = bl().append(buf)
49
50
  var origLength = buf.length
@@ -1,5 +1,6 @@
1
1
  'use strict'
2
2
 
3
+ var Buffer = require('safe-buffer').Buffer
3
4
  var test = require('tape').test
4
5
  var msgpack = require('../')
5
6
  var bl = require('bl')
@@ -25,7 +26,7 @@ test('encoding/decoding 16-bits big-endian unsigned integers', function (t) {
25
26
  })
26
27
 
27
28
  t.test('decoding ' + num, function (t) {
28
- var buf = new Buffer(3)
29
+ var buf = Buffer.allocUnsafe(3)
29
30
  buf[0] = 0xcd
30
31
  buf.writeUInt16BE(num, 1)
31
32
  t.equal(encoder.decode(buf), num, 'must decode correctly')
@@ -43,7 +44,7 @@ test('encoding/decoding 16-bits big-endian unsigned integers', function (t) {
43
44
 
44
45
  test('decoding an incomplete 16-bits big-endian unsigned integer', function (t) {
45
46
  var encoder = msgpack()
46
- var buf = new Buffer(2)
47
+ var buf = Buffer.allocUnsafe(2)
47
48
  buf[0] = 0xcd
48
49
  buf = bl().append(buf)
49
50
  var origLength = buf.length
@@ -1,5 +1,6 @@
1
1
  'use strict'
2
2
 
3
+ var Buffer = require('safe-buffer').Buffer
3
4
  var test = require('tape').test
4
5
  var msgpack = require('../')
5
6
  var bl = require('bl')
@@ -50,7 +51,7 @@ test('decoding an incomplete array', function (t) {
50
51
  var encoder = msgpack()
51
52
 
52
53
  var array = build(0xffff / 2)
53
- var buf = new Buffer(3 + array.length)
54
+ var buf = Buffer.allocUnsafe(3 + array.length)
54
55
  buf[0] = 0xdc
55
56
  buf.writeUInt16BE(array.length + 10, 1) // set bigger size
56
57
  var pos = 3
@@ -71,7 +72,7 @@ test('decoding an incomplete array', function (t) {
71
72
  test('decoding an incomplete header', function (t) {
72
73
  var encoder = msgpack()
73
74
 
74
- var buf = new Buffer(2)
75
+ var buf = Buffer.allocUnsafe(2)
75
76
  buf[0] = 0xdc
76
77
  buf = bl().append(buf)
77
78
  var origLength = buf.length
@@ -1,5 +1,6 @@
1
1
  'use strict'
2
2
 
3
+ var Buffer = require('safe-buffer').Buffer
3
4
  var test = require('tape').test
4
5
  var msgpack = require('../')
5
6
  var bl = require('bl')
@@ -7,7 +8,7 @@ var bl = require('bl')
7
8
  function build (size) {
8
9
  var buf
9
10
 
10
- buf = new Buffer(size)
11
+ buf = Buffer.allocUnsafe(size)
11
12
  buf.fill('a')
12
13
 
13
14
  return buf
@@ -33,7 +34,7 @@ test('encode/decode 2^16-1 bytes buffers', function (t) {
33
34
  })
34
35
 
35
36
  t.test('decoding a buffer of length ' + orig.length, function (t) {
36
- var buf = new Buffer(3 + orig.length)
37
+ var buf = Buffer.allocUnsafe(3 + orig.length)
37
38
  buf[0] = 0xc5
38
39
  buf.writeUInt16BE(orig.length, 1)
39
40
  orig.copy(buf, 3)
@@ -53,7 +54,7 @@ test('encode/decode 2^16-1 bytes buffers', function (t) {
53
54
  test('decoding a chopped 2^16-1 bytes buffer', function (t) {
54
55
  var encoder = msgpack()
55
56
  var orig = build(Math.pow(2, 12))
56
- var buf = new Buffer(3 + orig.length)
57
+ var buf = Buffer.allocUnsafe(3 + orig.length)
57
58
  buf[0] = 0xc5
58
59
  buf[1] = Math.pow(2, 16) - 1 // set bigger size
59
60
  orig.copy(buf, 3)
@@ -68,7 +69,7 @@ test('decoding a chopped 2^16-1 bytes buffer', function (t) {
68
69
 
69
70
  test('decoding an incomplete header of 2^16-1 bytes buffer', function (t) {
70
71
  var encoder = msgpack()
71
- var buf = new Buffer(2)
72
+ var buf = Buffer.allocUnsafe(2)
72
73
  buf[0] = 0xc5
73
74
  buf = bl().append(buf)
74
75
  var origLength = buf.length
@@ -1,5 +1,6 @@
1
1
  'use strict'
2
2
 
3
+ var Buffer = require('safe-buffer').Buffer
3
4
  var test = require('tape').test
4
5
  var msgpack = require('../')
5
6
  var bl = require('bl')
@@ -14,7 +15,7 @@ test('encode/decode variable ext data up between 0x0100 and 0xffff', function (t
14
15
  }
15
16
 
16
17
  function mytipeEncode (obj) {
17
- var buf = new Buffer(obj.size)
18
+ var buf = Buffer.allocUnsafe(obj.size)
18
19
  buf.fill(obj.value)
19
20
  return buf
20
21
  }
@@ -56,7 +57,7 @@ test('encode/decode variable ext data up between 0x0100 and 0xffff', function (t
56
57
 
57
58
  t.test('decoding an incomplete variable ext data up between 0x0100 and 0xffff', function (t) {
58
59
  var obj = encoder.encode(new MyType(0xfff0, 'a'))
59
- var buf = new Buffer(obj.length)
60
+ var buf = Buffer.allocUnsafe(obj.length)
60
61
  buf[0] = 0xc8
61
62
  buf.writeUInt16BE(obj.length + 2, 1) // set bigger size
62
63
  obj.copy(buf, 3, 3, obj.length)
@@ -70,7 +71,7 @@ test('encode/decode variable ext data up between 0x0100 and 0xffff', function (t
70
71
  })
71
72
 
72
73
  t.test('decoding an incomplete header of variable ext data up between 0x0100 and 0xffff', function (t) {
73
- var buf = new Buffer(3)
74
+ var buf = Buffer.allocUnsafe(3)
74
75
  buf[0] = 0xc8
75
76
  buf = bl().append(buf)
76
77
  var origLength = buf.length