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.
- package/HISTORY.md +44 -0
- package/bower.json +1 -1
- package/bson.d.ts +77 -6
- package/dist/bson.browser.esm.js +2116 -1292
- package/dist/bson.browser.esm.js.map +1 -1
- package/dist/bson.browser.umd.js +2172 -1347
- package/dist/bson.browser.umd.js.map +1 -1
- package/dist/bson.bundle.js +2174 -1347
- package/dist/bson.bundle.js.map +1 -1
- package/dist/bson.esm.js +2061 -1241
- package/dist/bson.esm.js.map +1 -1
- package/lib/binary.js +71 -60
- package/lib/binary.js.map +1 -1
- package/lib/bson.js +60 -52
- package/lib/bson.js.map +1 -1
- package/lib/code.js +18 -15
- package/lib/code.js.map +1 -1
- package/lib/db_ref.js +40 -30
- package/lib/db_ref.js.map +1 -1
- package/lib/decimal128.js +135 -124
- package/lib/decimal128.js.map +1 -1
- package/lib/double.js +24 -21
- package/lib/double.js.map +1 -1
- package/lib/ensure_buffer.js +4 -7
- package/lib/ensure_buffer.js.map +1 -1
- package/lib/extended_json.js +113 -71
- package/lib/extended_json.js.map +1 -1
- package/lib/float_parser.js +21 -21
- package/lib/float_parser.js.map +1 -1
- package/lib/int_32.js +19 -16
- package/lib/int_32.js.map +1 -1
- package/lib/long.js +248 -230
- package/lib/long.js.map +1 -1
- package/lib/map.js +54 -45
- package/lib/map.js.map +1 -1
- package/lib/max_key.js +16 -11
- package/lib/max_key.js.map +1 -1
- package/lib/min_key.js +16 -11
- package/lib/min_key.js.map +1 -1
- package/lib/objectid.js +96 -93
- package/lib/objectid.js.map +1 -1
- package/lib/parser/calculate_size.js +17 -15
- package/lib/parser/calculate_size.js.map +1 -1
- package/lib/parser/deserializer.js +135 -123
- package/lib/parser/deserializer.js.map +1 -1
- package/lib/parser/serializer.js +108 -88
- package/lib/parser/serializer.js.map +1 -1
- package/lib/parser/utils.js +47 -25
- package/lib/parser/utils.js.map +1 -1
- package/lib/regexp.js +16 -15
- package/lib/regexp.js.map +1 -1
- package/lib/symbol.js +21 -18
- package/lib/symbol.js.map +1 -1
- package/lib/timestamp.js +50 -27
- package/lib/timestamp.js.map +1 -1
- package/lib/uuid.js +173 -42
- package/lib/uuid.js.map +1 -1
- package/lib/uuid_utils.js +34 -0
- package/lib/uuid_utils.js.map +1 -0
- package/lib/validate_utf8.js +12 -12
- package/lib/validate_utf8.js.map +1 -1
- package/package.json +5 -4
- package/src/binary.ts +20 -6
- package/src/bson.ts +3 -0
- package/src/code.ts +6 -2
- package/src/db_ref.ts +14 -5
- package/src/decimal128.ts +14 -5
- package/src/double.ts +4 -2
- package/src/ensure_buffer.ts +7 -7
- package/src/extended_json.ts +64 -16
- package/src/int_32.ts +4 -2
- package/src/long.ts +22 -8
- package/src/max_key.ts +5 -1
- package/src/min_key.ts +5 -1
- package/src/objectid.ts +15 -20
- package/src/parser/calculate_size.ts +8 -11
- package/src/parser/deserializer.ts +46 -36
- package/src/parser/serializer.ts +13 -12
- package/src/parser/utils.ts +49 -17
- package/src/regexp.ts +5 -5
- package/src/symbol.ts +4 -2
- package/src/timestamp.ts +6 -1
- package/src/uuid.ts +192 -40
- 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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"}
|
package/lib/parser/serializer.js
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.serializeInto = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
225
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
259
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
305
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
371
|
+
var functionString = utils_1.normalizedFunctionString(value);
|
|
363
372
|
// Write the string
|
|
364
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
402
|
+
var startIndex = index;
|
|
389
403
|
// Serialize the function
|
|
390
404
|
// Get the function string
|
|
391
|
-
|
|
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
|
-
|
|
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
|
-
|
|
421
|
+
var endIndex = serializeInto(buffer, value.scope, checkKeys, index, depth + 1, serializeFunctions, ignoreUndefined);
|
|
408
422
|
index = endIndex - 1;
|
|
409
423
|
// Writ the total
|
|
410
|
-
|
|
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
|
-
|
|
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
|
-
|
|
443
|
+
var functionString = value.code.toString();
|
|
430
444
|
// Write the string
|
|
431
|
-
|
|
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
|
-
|
|
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
|
-
|
|
469
|
+
var data = value.value(true);
|
|
456
470
|
// Calculate size
|
|
457
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
516
|
-
|
|
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
|
-
|
|
538
|
+
var endIndex = serializeInto(buffer, output, false, index, depth + 1, serializeFunctions);
|
|
525
539
|
// Calculate object size
|
|
526
|
-
|
|
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
|
|
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
|
-
|
|
561
|
+
var index = startingIndex + 4;
|
|
542
562
|
// Special case isArray
|
|
543
563
|
if (Array.isArray(object)) {
|
|
544
564
|
// Get object keys
|
|
545
|
-
for (
|
|
546
|
-
|
|
547
|
-
|
|
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.
|
|
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
|
-
|
|
629
|
-
|
|
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
|
-
|
|
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
|
-
|
|
639
|
-
|
|
658
|
+
var key = entry.value[0];
|
|
659
|
+
var value = entry.value[1];
|
|
640
660
|
// Check the type of the value
|
|
641
|
-
|
|
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.
|
|
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 (
|
|
737
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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;
|