bson 4.2.2 → 4.4.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 (84) hide show
  1. package/HISTORY.md +44 -0
  2. package/bower.json +1 -1
  3. package/bson.d.ts +77 -6
  4. package/dist/bson.browser.esm.js +2116 -1292
  5. package/dist/bson.browser.esm.js.map +1 -1
  6. package/dist/bson.browser.umd.js +2172 -1347
  7. package/dist/bson.browser.umd.js.map +1 -1
  8. package/dist/bson.bundle.js +2174 -1347
  9. package/dist/bson.bundle.js.map +1 -1
  10. package/dist/bson.esm.js +2061 -1241
  11. package/dist/bson.esm.js.map +1 -1
  12. package/lib/binary.js +71 -60
  13. package/lib/binary.js.map +1 -1
  14. package/lib/bson.js +60 -52
  15. package/lib/bson.js.map +1 -1
  16. package/lib/code.js +18 -15
  17. package/lib/code.js.map +1 -1
  18. package/lib/db_ref.js +40 -30
  19. package/lib/db_ref.js.map +1 -1
  20. package/lib/decimal128.js +135 -124
  21. package/lib/decimal128.js.map +1 -1
  22. package/lib/double.js +24 -21
  23. package/lib/double.js.map +1 -1
  24. package/lib/ensure_buffer.js +4 -7
  25. package/lib/ensure_buffer.js.map +1 -1
  26. package/lib/extended_json.js +113 -71
  27. package/lib/extended_json.js.map +1 -1
  28. package/lib/float_parser.js +21 -21
  29. package/lib/float_parser.js.map +1 -1
  30. package/lib/int_32.js +19 -16
  31. package/lib/int_32.js.map +1 -1
  32. package/lib/long.js +248 -230
  33. package/lib/long.js.map +1 -1
  34. package/lib/map.js +54 -45
  35. package/lib/map.js.map +1 -1
  36. package/lib/max_key.js +16 -11
  37. package/lib/max_key.js.map +1 -1
  38. package/lib/min_key.js +16 -11
  39. package/lib/min_key.js.map +1 -1
  40. package/lib/objectid.js +96 -93
  41. package/lib/objectid.js.map +1 -1
  42. package/lib/parser/calculate_size.js +17 -15
  43. package/lib/parser/calculate_size.js.map +1 -1
  44. package/lib/parser/deserializer.js +135 -123
  45. package/lib/parser/deserializer.js.map +1 -1
  46. package/lib/parser/serializer.js +108 -88
  47. package/lib/parser/serializer.js.map +1 -1
  48. package/lib/parser/utils.js +47 -25
  49. package/lib/parser/utils.js.map +1 -1
  50. package/lib/regexp.js +16 -15
  51. package/lib/regexp.js.map +1 -1
  52. package/lib/symbol.js +21 -18
  53. package/lib/symbol.js.map +1 -1
  54. package/lib/timestamp.js +50 -27
  55. package/lib/timestamp.js.map +1 -1
  56. package/lib/uuid.js +173 -42
  57. package/lib/uuid.js.map +1 -1
  58. package/lib/uuid_utils.js +34 -0
  59. package/lib/uuid_utils.js.map +1 -0
  60. package/lib/validate_utf8.js +12 -12
  61. package/lib/validate_utf8.js.map +1 -1
  62. package/package.json +5 -4
  63. package/src/binary.ts +20 -6
  64. package/src/bson.ts +3 -0
  65. package/src/code.ts +6 -2
  66. package/src/db_ref.ts +14 -5
  67. package/src/decimal128.ts +14 -5
  68. package/src/double.ts +4 -2
  69. package/src/ensure_buffer.ts +7 -7
  70. package/src/extended_json.ts +64 -16
  71. package/src/int_32.ts +4 -2
  72. package/src/long.ts +22 -8
  73. package/src/max_key.ts +5 -1
  74. package/src/min_key.ts +5 -1
  75. package/src/objectid.ts +15 -20
  76. package/src/parser/calculate_size.ts +8 -11
  77. package/src/parser/deserializer.ts +46 -36
  78. package/src/parser/serializer.ts +13 -12
  79. package/src/parser/utils.ts +49 -17
  80. package/src/regexp.ts +5 -5
  81. package/src/symbol.ts +4 -2
  82. package/src/timestamp.ts +6 -1
  83. package/src/uuid.ts +192 -40
  84. package/src/uuid_utils.ts +31 -0
@@ -1 +1 @@
1
- {"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../../src/parser/deserializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../../src/parser/deserializer.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.serializeInto = void 0;
4
- const binary_1 = require("../binary");
5
- const constants = require("../constants");
6
- const ensure_buffer_1 = require("../ensure_buffer");
7
- const extended_json_1 = require("../extended_json");
8
- const float_parser_1 = require("../float_parser");
9
- const long_1 = require("../long");
10
- const map_1 = require("../map");
11
- const utils_1 = require("./utils");
12
- const regexp = /\x00/; // eslint-disable-line no-control-regex
13
- const ignoreKeys = new Set(['$db', '$ref', '$id', '$clusterTime']);
14
- function isRegExp(d) {
15
- return Object.prototype.toString.call(d) === '[object RegExp]';
16
- }
4
+ var binary_1 = require("../binary");
5
+ var constants = require("../constants");
6
+ var ensure_buffer_1 = require("../ensure_buffer");
7
+ var extended_json_1 = require("../extended_json");
8
+ var float_parser_1 = require("../float_parser");
9
+ var long_1 = require("../long");
10
+ var map_1 = require("../map");
11
+ var utils_1 = require("./utils");
12
+ var regexp = /\x00/; // eslint-disable-line no-control-regex
13
+ var ignoreKeys = new Set(['$db', '$ref', '$id', '$clusterTime']);
17
14
  /*
18
15
  * isArray indicates if we are writing to a BSON array (type 0x04)
19
16
  * which forces the "key" which really an array index as a string to be written as ascii
@@ -23,14 +20,14 @@ function serializeString(buffer, key, value, index, isArray) {
23
20
  // Encode String type
24
21
  buffer[index++] = constants.BSON_DATA_STRING;
25
22
  // Number of written bytes
26
- const numberOfWrittenBytes = !isArray
23
+ var numberOfWrittenBytes = !isArray
27
24
  ? buffer.write(key, index, undefined, 'utf8')
28
25
  : buffer.write(key, index, undefined, 'ascii');
29
26
  // Encode the name
30
27
  index = index + numberOfWrittenBytes + 1;
31
28
  buffer[index - 1] = 0;
32
29
  // Write the string
33
- const size = buffer.write(value, index + 4, undefined, 'utf8');
30
+ var size = buffer.write(value, index + 4, undefined, 'utf8');
34
31
  // Write the size of the string to buffer
35
32
  buffer[index + 3] = ((size + 1) >> 24) & 0xff;
36
33
  buffer[index + 2] = ((size + 1) >> 16) & 0xff;
@@ -52,7 +49,7 @@ function serializeNumber(buffer, key, value, index, isArray) {
52
49
  // Set int type 32 bits or less
53
50
  buffer[index++] = constants.BSON_DATA_INT;
54
51
  // Number of written bytes
55
- const numberOfWrittenBytes = !isArray
52
+ var numberOfWrittenBytes = !isArray
56
53
  ? buffer.write(key, index, undefined, 'utf8')
57
54
  : buffer.write(key, index, undefined, 'ascii');
58
55
  // Encode the name
@@ -68,7 +65,7 @@ function serializeNumber(buffer, key, value, index, isArray) {
68
65
  // Encode as double
69
66
  buffer[index++] = constants.BSON_DATA_NUMBER;
70
67
  // Number of written bytes
71
- const numberOfWrittenBytes = !isArray
68
+ var numberOfWrittenBytes = !isArray
72
69
  ? buffer.write(key, index, undefined, 'utf8')
73
70
  : buffer.write(key, index, undefined, 'ascii');
74
71
  // Encode the name
@@ -85,7 +82,7 @@ function serializeNull(buffer, key, _, index, isArray) {
85
82
  // Set long type
86
83
  buffer[index++] = constants.BSON_DATA_NULL;
87
84
  // Number of written bytes
88
- const numberOfWrittenBytes = !isArray
85
+ var numberOfWrittenBytes = !isArray
89
86
  ? buffer.write(key, index, undefined, 'utf8')
90
87
  : buffer.write(key, index, undefined, 'ascii');
91
88
  // Encode the name
@@ -97,7 +94,7 @@ function serializeBoolean(buffer, key, value, index, isArray) {
97
94
  // Write the type
98
95
  buffer[index++] = constants.BSON_DATA_BOOLEAN;
99
96
  // Number of written bytes
100
- const numberOfWrittenBytes = !isArray
97
+ var numberOfWrittenBytes = !isArray
101
98
  ? buffer.write(key, index, undefined, 'utf8')
102
99
  : buffer.write(key, index, undefined, 'ascii');
103
100
  // Encode the name
@@ -111,16 +108,16 @@ function serializeDate(buffer, key, value, index, isArray) {
111
108
  // Write the type
112
109
  buffer[index++] = constants.BSON_DATA_DATE;
113
110
  // Number of written bytes
114
- const numberOfWrittenBytes = !isArray
111
+ var numberOfWrittenBytes = !isArray
115
112
  ? buffer.write(key, index, undefined, 'utf8')
116
113
  : buffer.write(key, index, undefined, 'ascii');
117
114
  // Encode the name
118
115
  index = index + numberOfWrittenBytes;
119
116
  buffer[index++] = 0;
120
117
  // Write the date
121
- const dateInMilis = long_1.Long.fromNumber(value.getTime());
122
- const lowBits = dateInMilis.getLowBits();
123
- const highBits = dateInMilis.getHighBits();
118
+ var dateInMilis = long_1.Long.fromNumber(value.getTime());
119
+ var lowBits = dateInMilis.getLowBits();
120
+ var highBits = dateInMilis.getHighBits();
124
121
  // Encode low bits
125
122
  buffer[index++] = lowBits & 0xff;
126
123
  buffer[index++] = (lowBits >> 8) & 0xff;
@@ -137,7 +134,7 @@ function serializeRegExp(buffer, key, value, index, isArray) {
137
134
  // Write the type
138
135
  buffer[index++] = constants.BSON_DATA_REGEXP;
139
136
  // Number of written bytes
140
- const numberOfWrittenBytes = !isArray
137
+ var numberOfWrittenBytes = !isArray
141
138
  ? buffer.write(key, index, undefined, 'utf8')
142
139
  : buffer.write(key, index, undefined, 'ascii');
143
140
  // Encode the name
@@ -165,7 +162,7 @@ function serializeBSONRegExp(buffer, key, value, index, isArray) {
165
162
  // Write the type
166
163
  buffer[index++] = constants.BSON_DATA_REGEXP;
167
164
  // Number of written bytes
168
- const numberOfWrittenBytes = !isArray
165
+ var numberOfWrittenBytes = !isArray
169
166
  ? buffer.write(key, index, undefined, 'utf8')
170
167
  : buffer.write(key, index, undefined, 'ascii');
171
168
  // Encode the name
@@ -199,7 +196,7 @@ function serializeMinMax(buffer, key, value, index, isArray) {
199
196
  buffer[index++] = constants.BSON_DATA_MAX_KEY;
200
197
  }
201
198
  // Number of written bytes
202
- const numberOfWrittenBytes = !isArray
199
+ var numberOfWrittenBytes = !isArray
203
200
  ? buffer.write(key, index, undefined, 'utf8')
204
201
  : buffer.write(key, index, undefined, 'ascii');
205
202
  // Encode the name
@@ -211,7 +208,7 @@ function serializeObjectId(buffer, key, value, index, isArray) {
211
208
  // Write the type
212
209
  buffer[index++] = constants.BSON_DATA_OID;
213
210
  // Number of written bytes
214
- const numberOfWrittenBytes = !isArray
211
+ var numberOfWrittenBytes = !isArray
215
212
  ? buffer.write(key, index, undefined, 'utf8')
216
213
  : buffer.write(key, index, undefined, 'ascii');
217
214
  // Encode the name
@@ -221,8 +218,10 @@ function serializeObjectId(buffer, key, value, index, isArray) {
221
218
  if (typeof value.id === 'string') {
222
219
  buffer.write(value.id, index, undefined, 'binary');
223
220
  }
224
- else if (value.id && value.id.copy) {
225
- value.id.copy(buffer, index, 0, 12);
221
+ else if (utils_1.isUint8Array(value.id)) {
222
+ // Use the standard JS methods here because buffer.copy() is buggy with the
223
+ // browser polyfill
224
+ buffer.set(value.id.subarray(0, 12), index);
226
225
  }
227
226
  else {
228
227
  throw new TypeError('object [' + JSON.stringify(value) + '] is not a valid ObjectId');
@@ -234,14 +233,14 @@ function serializeBuffer(buffer, key, value, index, isArray) {
234
233
  // Write the type
235
234
  buffer[index++] = constants.BSON_DATA_BINARY;
236
235
  // Number of written bytes
237
- const numberOfWrittenBytes = !isArray
236
+ var numberOfWrittenBytes = !isArray
238
237
  ? buffer.write(key, index, undefined, 'utf8')
239
238
  : buffer.write(key, index, undefined, 'ascii');
240
239
  // Encode the name
241
240
  index = index + numberOfWrittenBytes;
242
241
  buffer[index++] = 0;
243
242
  // Get size of the buffer (current write point)
244
- const size = value.length;
243
+ var size = value.length;
245
244
  // Write the size of the string to buffer
246
245
  buffer[index++] = size & 0xff;
247
246
  buffer[index++] = (size >> 8) & 0xff;
@@ -255,8 +254,14 @@ function serializeBuffer(buffer, key, value, index, isArray) {
255
254
  index = index + size;
256
255
  return index;
257
256
  }
258
- function serializeObject(buffer, key, value, index, checkKeys = false, depth = 0, serializeFunctions = false, ignoreUndefined = true, isArray = false, path = []) {
259
- for (let i = 0; i < path.length; i++) {
257
+ function serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, isArray, path) {
258
+ if (checkKeys === void 0) { checkKeys = false; }
259
+ if (depth === void 0) { depth = 0; }
260
+ if (serializeFunctions === void 0) { serializeFunctions = false; }
261
+ if (ignoreUndefined === void 0) { ignoreUndefined = true; }
262
+ if (isArray === void 0) { isArray = false; }
263
+ if (path === void 0) { path = []; }
264
+ for (var i = 0; i < path.length; i++) {
260
265
  if (path[i] === value)
261
266
  throw new Error('cyclic dependency detected');
262
267
  }
@@ -265,13 +270,13 @@ function serializeObject(buffer, key, value, index, checkKeys = false, depth = 0
265
270
  // Write the type
266
271
  buffer[index++] = Array.isArray(value) ? constants.BSON_DATA_ARRAY : constants.BSON_DATA_OBJECT;
267
272
  // Number of written bytes
268
- const numberOfWrittenBytes = !isArray
273
+ var numberOfWrittenBytes = !isArray
269
274
  ? buffer.write(key, index, undefined, 'utf8')
270
275
  : buffer.write(key, index, undefined, 'ascii');
271
276
  // Encode the name
272
277
  index = index + numberOfWrittenBytes;
273
278
  buffer[index++] = 0;
274
- const endIndex = serializeInto(buffer, value, checkKeys, index, depth + 1, serializeFunctions, ignoreUndefined, path);
279
+ var endIndex = serializeInto(buffer, value, checkKeys, index, depth + 1, serializeFunctions, ignoreUndefined, path);
275
280
  // Pop stack
276
281
  path.pop();
277
282
  return endIndex;
@@ -279,14 +284,16 @@ function serializeObject(buffer, key, value, index, checkKeys = false, depth = 0
279
284
  function serializeDecimal128(buffer, key, value, index, isArray) {
280
285
  buffer[index++] = constants.BSON_DATA_DECIMAL128;
281
286
  // Number of written bytes
282
- const numberOfWrittenBytes = !isArray
287
+ var numberOfWrittenBytes = !isArray
283
288
  ? buffer.write(key, index, undefined, 'utf8')
284
289
  : buffer.write(key, index, undefined, 'ascii');
285
290
  // Encode the name
286
291
  index = index + numberOfWrittenBytes;
287
292
  buffer[index++] = 0;
288
293
  // Write the data from the value
289
- value.bytes.copy(buffer, index, 0, 16);
294
+ // Prefer the standard JS methods because their typechecking is not buggy,
295
+ // unlike the `buffer` polyfill's.
296
+ buffer.set(value.bytes.subarray(0, 16), index);
290
297
  return index + 16;
291
298
  }
292
299
  function serializeLong(buffer, key, value, index, isArray) {
@@ -294,15 +301,15 @@ function serializeLong(buffer, key, value, index, isArray) {
294
301
  buffer[index++] =
295
302
  value._bsontype === 'Long' ? constants.BSON_DATA_LONG : constants.BSON_DATA_TIMESTAMP;
296
303
  // Number of written bytes
297
- const numberOfWrittenBytes = !isArray
304
+ var numberOfWrittenBytes = !isArray
298
305
  ? buffer.write(key, index, undefined, 'utf8')
299
306
  : buffer.write(key, index, undefined, 'ascii');
300
307
  // Encode the name
301
308
  index = index + numberOfWrittenBytes;
302
309
  buffer[index++] = 0;
303
310
  // Write the date
304
- const lowBits = value.getLowBits();
305
- const highBits = value.getHighBits();
311
+ var lowBits = value.getLowBits();
312
+ var highBits = value.getHighBits();
306
313
  // Encode low bits
307
314
  buffer[index++] = lowBits & 0xff;
308
315
  buffer[index++] = (lowBits >> 8) & 0xff;
@@ -320,7 +327,7 @@ function serializeInt32(buffer, key, value, index, isArray) {
320
327
  // Set int type 32 bits or less
321
328
  buffer[index++] = constants.BSON_DATA_INT;
322
329
  // Number of written bytes
323
- const numberOfWrittenBytes = !isArray
330
+ var numberOfWrittenBytes = !isArray
324
331
  ? buffer.write(key, index, undefined, 'utf8')
325
332
  : buffer.write(key, index, undefined, 'ascii');
326
333
  // Encode the name
@@ -337,7 +344,7 @@ function serializeDouble(buffer, key, value, index, isArray) {
337
344
  // Encode as double
338
345
  buffer[index++] = constants.BSON_DATA_NUMBER;
339
346
  // Number of written bytes
340
- const numberOfWrittenBytes = !isArray
347
+ var numberOfWrittenBytes = !isArray
341
348
  ? buffer.write(key, index, undefined, 'utf8')
342
349
  : buffer.write(key, index, undefined, 'ascii');
343
350
  // Encode the name
@@ -349,19 +356,21 @@ function serializeDouble(buffer, key, value, index, isArray) {
349
356
  index = index + 8;
350
357
  return index;
351
358
  }
352
- function serializeFunction(buffer, key, value, index, _checkKeys = false, _depth = 0, isArray) {
359
+ function serializeFunction(buffer, key, value, index, _checkKeys, _depth, isArray) {
360
+ if (_checkKeys === void 0) { _checkKeys = false; }
361
+ if (_depth === void 0) { _depth = 0; }
353
362
  buffer[index++] = constants.BSON_DATA_CODE;
354
363
  // Number of written bytes
355
- const numberOfWrittenBytes = !isArray
364
+ var numberOfWrittenBytes = !isArray
356
365
  ? buffer.write(key, index, undefined, 'utf8')
357
366
  : buffer.write(key, index, undefined, 'ascii');
358
367
  // Encode the name
359
368
  index = index + numberOfWrittenBytes;
360
369
  buffer[index++] = 0;
361
370
  // Function string
362
- const functionString = utils_1.normalizedFunctionString(value);
371
+ var functionString = utils_1.normalizedFunctionString(value);
363
372
  // Write the string
364
- const size = buffer.write(functionString, index + 4, undefined, 'utf8') + 1;
373
+ var size = buffer.write(functionString, index + 4, undefined, 'utf8') + 1;
365
374
  // Write the size of the string to buffer
366
375
  buffer[index] = size & 0xff;
367
376
  buffer[index + 1] = (size >> 8) & 0xff;
@@ -373,26 +382,31 @@ function serializeFunction(buffer, key, value, index, _checkKeys = false, _depth
373
382
  buffer[index++] = 0;
374
383
  return index;
375
384
  }
376
- function serializeCode(buffer, key, value, index, checkKeys = false, depth = 0, serializeFunctions = false, ignoreUndefined = true, isArray = false) {
385
+ function serializeCode(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, isArray) {
386
+ if (checkKeys === void 0) { checkKeys = false; }
387
+ if (depth === void 0) { depth = 0; }
388
+ if (serializeFunctions === void 0) { serializeFunctions = false; }
389
+ if (ignoreUndefined === void 0) { ignoreUndefined = true; }
390
+ if (isArray === void 0) { isArray = false; }
377
391
  if (value.scope && typeof value.scope === 'object') {
378
392
  // Write the type
379
393
  buffer[index++] = constants.BSON_DATA_CODE_W_SCOPE;
380
394
  // Number of written bytes
381
- const numberOfWrittenBytes = !isArray
395
+ var numberOfWrittenBytes = !isArray
382
396
  ? buffer.write(key, index, undefined, 'utf8')
383
397
  : buffer.write(key, index, undefined, 'ascii');
384
398
  // Encode the name
385
399
  index = index + numberOfWrittenBytes;
386
400
  buffer[index++] = 0;
387
401
  // Starting index
388
- let startIndex = index;
402
+ var startIndex = index;
389
403
  // Serialize the function
390
404
  // Get the function string
391
- const functionString = typeof value.code === 'string' ? value.code : value.code.toString();
405
+ var functionString = typeof value.code === 'string' ? value.code : value.code.toString();
392
406
  // Index adjustment
393
407
  index = index + 4;
394
408
  // Write string into buffer
395
- const codeSize = buffer.write(functionString, index + 4, undefined, 'utf8') + 1;
409
+ var codeSize = buffer.write(functionString, index + 4, undefined, 'utf8') + 1;
396
410
  // Write the size of the string to buffer
397
411
  buffer[index] = codeSize & 0xff;
398
412
  buffer[index + 1] = (codeSize >> 8) & 0xff;
@@ -404,10 +418,10 @@ function serializeCode(buffer, key, value, index, checkKeys = false, depth = 0,
404
418
  index = index + codeSize + 4;
405
419
  //
406
420
  // Serialize the scope value
407
- const endIndex = serializeInto(buffer, value.scope, checkKeys, index, depth + 1, serializeFunctions, ignoreUndefined);
421
+ var endIndex = serializeInto(buffer, value.scope, checkKeys, index, depth + 1, serializeFunctions, ignoreUndefined);
408
422
  index = endIndex - 1;
409
423
  // Writ the total
410
- const totalSize = endIndex - startIndex;
424
+ var totalSize = endIndex - startIndex;
411
425
  // Write the total size of the object
412
426
  buffer[startIndex++] = totalSize & 0xff;
413
427
  buffer[startIndex++] = (totalSize >> 8) & 0xff;
@@ -419,16 +433,16 @@ function serializeCode(buffer, key, value, index, checkKeys = false, depth = 0,
419
433
  else {
420
434
  buffer[index++] = constants.BSON_DATA_CODE;
421
435
  // Number of written bytes
422
- const numberOfWrittenBytes = !isArray
436
+ var numberOfWrittenBytes = !isArray
423
437
  ? buffer.write(key, index, undefined, 'utf8')
424
438
  : buffer.write(key, index, undefined, 'ascii');
425
439
  // Encode the name
426
440
  index = index + numberOfWrittenBytes;
427
441
  buffer[index++] = 0;
428
442
  // Function string
429
- const functionString = value.code.toString();
443
+ var functionString = value.code.toString();
430
444
  // Write the string
431
- const size = buffer.write(functionString, index + 4, undefined, 'utf8') + 1;
445
+ var size = buffer.write(functionString, index + 4, undefined, 'utf8') + 1;
432
446
  // Write the size of the string to buffer
433
447
  buffer[index] = size & 0xff;
434
448
  buffer[index + 1] = (size >> 8) & 0xff;
@@ -445,16 +459,16 @@ function serializeBinary(buffer, key, value, index, isArray) {
445
459
  // Write the type
446
460
  buffer[index++] = constants.BSON_DATA_BINARY;
447
461
  // Number of written bytes
448
- const numberOfWrittenBytes = !isArray
462
+ var numberOfWrittenBytes = !isArray
449
463
  ? buffer.write(key, index, undefined, 'utf8')
450
464
  : buffer.write(key, index, undefined, 'ascii');
451
465
  // Encode the name
452
466
  index = index + numberOfWrittenBytes;
453
467
  buffer[index++] = 0;
454
468
  // Extract the buffer
455
- const data = value.value(true);
469
+ var data = value.value(true);
456
470
  // Calculate size
457
- let size = value.position;
471
+ var size = value.position;
458
472
  // Add the deprecated 02 type 4 bytes of size to total
459
473
  if (value.sub_type === binary_1.Binary.SUBTYPE_BYTE_ARRAY)
460
474
  size = size + 4;
@@ -483,14 +497,14 @@ function serializeSymbol(buffer, key, value, index, isArray) {
483
497
  // Write the type
484
498
  buffer[index++] = constants.BSON_DATA_SYMBOL;
485
499
  // Number of written bytes
486
- const numberOfWrittenBytes = !isArray
500
+ var numberOfWrittenBytes = !isArray
487
501
  ? buffer.write(key, index, undefined, 'utf8')
488
502
  : buffer.write(key, index, undefined, 'ascii');
489
503
  // Encode the name
490
504
  index = index + numberOfWrittenBytes;
491
505
  buffer[index++] = 0;
492
506
  // Write the string
493
- const size = buffer.write(value.value, index + 4, undefined, 'utf8') + 1;
507
+ var size = buffer.write(value.value, index + 4, undefined, 'utf8') + 1;
494
508
  // Write the size of the string to buffer
495
509
  buffer[index] = size & 0xff;
496
510
  buffer[index + 1] = (size >> 8) & 0xff;
@@ -506,14 +520,14 @@ function serializeDBRef(buffer, key, value, index, depth, serializeFunctions, is
506
520
  // Write the type
507
521
  buffer[index++] = constants.BSON_DATA_OBJECT;
508
522
  // Number of written bytes
509
- const numberOfWrittenBytes = !isArray
523
+ var numberOfWrittenBytes = !isArray
510
524
  ? buffer.write(key, index, undefined, 'utf8')
511
525
  : buffer.write(key, index, undefined, 'ascii');
512
526
  // Encode the name
513
527
  index = index + numberOfWrittenBytes;
514
528
  buffer[index++] = 0;
515
- let startIndex = index;
516
- let output = {
529
+ var startIndex = index;
530
+ var output = {
517
531
  $ref: value.collection || value.namespace,
518
532
  $id: value.oid
519
533
  };
@@ -521,9 +535,9 @@ function serializeDBRef(buffer, key, value, index, depth, serializeFunctions, is
521
535
  output.$db = value.db;
522
536
  }
523
537
  output = Object.assign(output, value.fields);
524
- const endIndex = serializeInto(buffer, output, false, index, depth + 1, serializeFunctions);
538
+ var endIndex = serializeInto(buffer, output, false, index, depth + 1, serializeFunctions);
525
539
  // Calculate object size
526
- const size = endIndex - startIndex;
540
+ var size = endIndex - startIndex;
527
541
  // Write the size
528
542
  buffer[startIndex++] = size & 0xff;
529
543
  buffer[startIndex++] = (size >> 8) & 0xff;
@@ -532,19 +546,25 @@ function serializeDBRef(buffer, key, value, index, depth, serializeFunctions, is
532
546
  // Set index
533
547
  return endIndex;
534
548
  }
535
- function serializeInto(buffer, object, checkKeys = false, startingIndex = 0, depth = 0, serializeFunctions = false, ignoreUndefined = true, path = []) {
549
+ function serializeInto(buffer, object, checkKeys, startingIndex, depth, serializeFunctions, ignoreUndefined, path) {
550
+ if (checkKeys === void 0) { checkKeys = false; }
551
+ if (startingIndex === void 0) { startingIndex = 0; }
552
+ if (depth === void 0) { depth = 0; }
553
+ if (serializeFunctions === void 0) { serializeFunctions = false; }
554
+ if (ignoreUndefined === void 0) { ignoreUndefined = true; }
555
+ if (path === void 0) { path = []; }
536
556
  startingIndex = startingIndex || 0;
537
557
  path = path || [];
538
558
  // Push the object to the path
539
559
  path.push(object);
540
560
  // Start place to serialize into
541
- let index = startingIndex + 4;
561
+ var index = startingIndex + 4;
542
562
  // Special case isArray
543
563
  if (Array.isArray(object)) {
544
564
  // Get object keys
545
- for (let i = 0; i < object.length; i++) {
546
- const key = '' + i;
547
- let value = object[i];
565
+ for (var i = 0; i < object.length; i++) {
566
+ var key = '' + i;
567
+ var value = object[i];
548
568
  // Is there an override value
549
569
  if (value && value.toBSON) {
550
570
  if (typeof value.toBSON !== 'function')
@@ -575,10 +595,10 @@ function serializeInto(buffer, object, checkKeys = false, startingIndex = 0, dep
575
595
  else if (value['_bsontype'] === 'ObjectId' || value['_bsontype'] === 'ObjectID') {
576
596
  index = serializeObjectId(buffer, key, value, index, true);
577
597
  }
578
- else if (utils_1.isBuffer(value) || utils_1.isUint8Array(value)) {
598
+ else if (utils_1.isUint8Array(value)) {
579
599
  index = serializeBuffer(buffer, key, value, index, true);
580
600
  }
581
- else if (value instanceof RegExp || isRegExp(value)) {
601
+ else if (value instanceof RegExp || utils_1.isRegExp(value)) {
582
602
  index = serializeRegExp(buffer, key, value, index, true);
583
603
  }
584
604
  else if (typeof value === 'object' && value['_bsontype'] == null) {
@@ -624,21 +644,21 @@ function serializeInto(buffer, object, checkKeys = false, startingIndex = 0, dep
624
644
  }
625
645
  }
626
646
  }
627
- else if (object instanceof map_1.Map) {
628
- const iterator = object.entries();
629
- let done = false;
647
+ else if (object instanceof map_1.Map || utils_1.isMap(object)) {
648
+ var iterator = object.entries();
649
+ var done = false;
630
650
  while (!done) {
631
651
  // Unpack the next entry
632
- const entry = iterator.next();
652
+ var entry = iterator.next();
633
653
  done = !!entry.done;
634
654
  // Are we done, then skip and terminate
635
655
  if (done)
636
656
  continue;
637
657
  // Get the entry values
638
- const key = entry.value[0];
639
- const value = entry.value[1];
658
+ var key = entry.value[0];
659
+ var value = entry.value[1];
640
660
  // Check the type of the value
641
- const type = typeof value;
661
+ var type = typeof value;
642
662
  // Check the key and throw error if it's illegal
643
663
  if (typeof key === 'string' && !ignoreKeys.has(key)) {
644
664
  if (key.match(regexp) != null) {
@@ -676,10 +696,10 @@ function serializeInto(buffer, object, checkKeys = false, startingIndex = 0, dep
676
696
  else if (value['_bsontype'] === 'ObjectId' || value['_bsontype'] === 'ObjectID') {
677
697
  index = serializeObjectId(buffer, key, value, index);
678
698
  }
679
- else if (utils_1.isBuffer(value) || utils_1.isUint8Array(value)) {
699
+ else if (utils_1.isUint8Array(value)) {
680
700
  index = serializeBuffer(buffer, key, value, index);
681
701
  }
682
- else if (value instanceof RegExp || isRegExp(value)) {
702
+ else if (value instanceof RegExp || utils_1.isRegExp(value)) {
683
703
  index = serializeRegExp(buffer, key, value, index);
684
704
  }
685
705
  else if (type === 'object' && value['_bsontype'] == null) {
@@ -733,8 +753,8 @@ function serializeInto(buffer, object, checkKeys = false, startingIndex = 0, dep
733
753
  throw new TypeError('toBSON function did not return an object');
734
754
  }
735
755
  // Iterate over all the keys
736
- for (const key in object) {
737
- let value = object[key];
756
+ for (var key in object) {
757
+ var value = object[key];
738
758
  // Is there an override value
739
759
  if (value && value.toBSON) {
740
760
  if (typeof value.toBSON !== 'function')
@@ -742,7 +762,7 @@ function serializeInto(buffer, object, checkKeys = false, startingIndex = 0, dep
742
762
  value = value.toBSON();
743
763
  }
744
764
  // Check the type of the value
745
- const type = typeof value;
765
+ var type = typeof value;
746
766
  // Check the key and throw error if it's illegal
747
767
  if (typeof key === 'string' && !ignoreKeys.has(key)) {
748
768
  if (key.match(regexp) != null) {
@@ -784,10 +804,10 @@ function serializeInto(buffer, object, checkKeys = false, startingIndex = 0, dep
784
804
  else if (value['_bsontype'] === 'ObjectId' || value['_bsontype'] === 'ObjectID') {
785
805
  index = serializeObjectId(buffer, key, value, index);
786
806
  }
787
- else if (utils_1.isBuffer(value) || utils_1.isUint8Array(value)) {
807
+ else if (utils_1.isUint8Array(value)) {
788
808
  index = serializeBuffer(buffer, key, value, index);
789
809
  }
790
- else if (value instanceof RegExp || isRegExp(value)) {
810
+ else if (value instanceof RegExp || utils_1.isRegExp(value)) {
791
811
  index = serializeRegExp(buffer, key, value, index);
792
812
  }
793
813
  else if (type === 'object' && value['_bsontype'] == null) {
@@ -836,7 +856,7 @@ function serializeInto(buffer, object, checkKeys = false, startingIndex = 0, dep
836
856
  // Final padding byte for object
837
857
  buffer[index++] = 0x00;
838
858
  // Final size
839
- const size = index - startingIndex;
859
+ var size = index - startingIndex;
840
860
  // Write the size of the object
841
861
  buffer[startingIndex++] = size & 0xff;
842
862
  buffer[startingIndex++] = (size >> 8) & 0xff;