@mongosh/shell-bson 1.0.1 → 1.0.2
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/lib/bson-export.d.ts +3 -2
- package/lib/printable-bson.js +20 -7
- package/lib/printable-bson.js.map +1 -1
- package/lib/shell-bson.js +1 -5
- package/lib/shell-bson.js.map +1 -1
- package/package.json +2 -2
- package/src/bson-export.ts +3 -0
- package/src/printable-bson.ts +33 -11
- package/src/shell-bson.ts +4 -6
package/lib/bson-export.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ObjectId, DBRef, MaxKey, MinKey, Timestamp, BSONSymbol, Code, Decimal128, Int32, Long, Binary, calculateObjectSize, Double, EJSON, BSONRegExp } from 'bson';
|
|
2
|
-
export type { ObjectId, DBRef, MaxKey, MinKey, Timestamp, BSONSymbol, Code, Decimal128, Int32, Long, Binary, Double, EJSON, BSONRegExp, calculateObjectSize, };
|
|
1
|
+
import type { ObjectId, DBRef, MaxKey, MinKey, Timestamp, BSONSymbol, Code, Decimal128, Int32, Long, Binary, calculateObjectSize, Double, EJSON, UUID, BSONRegExp } from 'bson';
|
|
2
|
+
export type { ObjectId, DBRef, MaxKey, MinKey, Timestamp, BSONSymbol, Code, Decimal128, Int32, Long, Binary, Double, EJSON, UUID, BSONRegExp, calculateObjectSize, };
|
|
3
3
|
export type BSON = {
|
|
4
4
|
ObjectId: typeof ObjectId;
|
|
5
5
|
DBRef: typeof DBRef;
|
|
@@ -13,6 +13,7 @@ export type BSON = {
|
|
|
13
13
|
Binary: typeof Binary;
|
|
14
14
|
Double: typeof Double;
|
|
15
15
|
EJSON: typeof EJSON;
|
|
16
|
+
UUID: typeof UUID;
|
|
16
17
|
BSONRegExp: typeof BSONRegExp;
|
|
17
18
|
BSONSymbol: typeof BSONSymbol;
|
|
18
19
|
calculateObjectSize: typeof calculateObjectSize;
|
package/lib/printable-bson.js
CHANGED
|
@@ -2,8 +2,24 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.makeBsonStringifiers = void 0;
|
|
4
4
|
exports.makePrintableBson = makePrintableBson;
|
|
5
|
-
const util_1 = require("util");
|
|
6
5
|
const inspectCustom = Symbol.for('nodejs.util.inspect.custom');
|
|
6
|
+
let coreUtilInspect;
|
|
7
|
+
function inspectTypedArray(obj, options) {
|
|
8
|
+
try {
|
|
9
|
+
coreUtilInspect ?? (coreUtilInspect = require('util').inspect);
|
|
10
|
+
return coreUtilInspect(obj, {
|
|
11
|
+
...options,
|
|
12
|
+
maxArrayLength: coreUtilInspect.defaultOptions.maxArrayLength,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
const arr = Array.from(obj);
|
|
17
|
+
if (arr.length > 100) {
|
|
18
|
+
return `[${arr.slice(0, 100).join(', ')}, ... ${arr.length - 100} more items]`;
|
|
19
|
+
}
|
|
20
|
+
return `[${arr.join(', ')}]`;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
7
23
|
function removeNewFromInspectResult(str) {
|
|
8
24
|
return str.replace(/^(\s*)(new )/, '$1');
|
|
9
25
|
}
|
|
@@ -21,23 +37,20 @@ const makeBinaryVectorInspect = (bsonLibrary) => {
|
|
|
21
37
|
const binaryInspect = makeClasslessInspect(bsonLibrary.Binary);
|
|
22
38
|
switch (this.buffer[0]) {
|
|
23
39
|
case bsonLibrary.Binary.VECTOR_TYPE.Int8:
|
|
24
|
-
return `Binary.fromInt8Array(new Int8Array(${removeTypedArrayPrefixFromInspectResult((
|
|
40
|
+
return `Binary.fromInt8Array(new Int8Array(${removeTypedArrayPrefixFromInspectResult(inspectTypedArray(this.toInt8Array(), {
|
|
25
41
|
depth,
|
|
26
42
|
...options,
|
|
27
|
-
maxArrayLength: util_1.inspect.defaultOptions.maxArrayLength,
|
|
28
43
|
}))}))`;
|
|
29
44
|
case bsonLibrary.Binary.VECTOR_TYPE.Float32:
|
|
30
|
-
return `Binary.fromFloat32Array(new Float32Array(${removeTypedArrayPrefixFromInspectResult((
|
|
45
|
+
return `Binary.fromFloat32Array(new Float32Array(${removeTypedArrayPrefixFromInspectResult(inspectTypedArray(this.toFloat32Array(), {
|
|
31
46
|
depth,
|
|
32
47
|
...options,
|
|
33
|
-
maxArrayLength: util_1.inspect.defaultOptions.maxArrayLength,
|
|
34
48
|
}))}))`;
|
|
35
49
|
case bsonLibrary.Binary.VECTOR_TYPE.PackedBit: {
|
|
36
50
|
const paddingInfo = this.buffer[1] === 0 ? '' : `, ${this.buffer[1]}`;
|
|
37
|
-
return `Binary.fromPackedBits(new Uint8Array(${removeTypedArrayPrefixFromInspectResult((
|
|
51
|
+
return `Binary.fromPackedBits(new Uint8Array(${removeTypedArrayPrefixFromInspectResult(inspectTypedArray(this.toPackedBits(), {
|
|
38
52
|
depth,
|
|
39
53
|
...options,
|
|
40
|
-
maxArrayLength: util_1.inspect.defaultOptions.maxArrayLength,
|
|
41
54
|
}))})${paddingInfo})`;
|
|
42
55
|
}
|
|
43
56
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printable-bson.js","sourceRoot":"","sources":["../src/printable-bson.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"printable-bson.js","sourceRoot":"","sources":["../src/printable-bson.ts"],"names":[],"mappings":"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"}
|
package/lib/shell-bson.js
CHANGED
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.constructShellBson = constructShellBson;
|
|
4
4
|
const errors_1 = require("@mongosh/errors");
|
|
5
5
|
const helpers_1 = require("./helpers");
|
|
6
|
-
const crypto_1 = require("crypto");
|
|
7
6
|
function constructShellBson({ bsonLibrary: bson, printWarning, assignMetadata, constructHelp, }) {
|
|
8
7
|
const bsonNames = [
|
|
9
8
|
'Binary',
|
|
@@ -126,10 +125,7 @@ function constructShellBson({ bsonLibrary: bson, printWarning, assignMetadata, c
|
|
|
126
125
|
}, { prototype: bson.Binary.prototype }),
|
|
127
126
|
UUID: (0, helpers_1.assignAll)(function UUID(hexstr) {
|
|
128
127
|
if (hexstr === undefined) {
|
|
129
|
-
|
|
130
|
-
uuid[6] = (uuid[6] & 0x0f) | 0x40;
|
|
131
|
-
uuid[8] = (uuid[8] & 0x3f) | 0x80;
|
|
132
|
-
hexstr = uuid.toString('hex');
|
|
128
|
+
hexstr = new bson.UUID().toString();
|
|
133
129
|
}
|
|
134
130
|
(0, helpers_1.assertArgsDefinedType)([hexstr], ['string'], 'UUID');
|
|
135
131
|
const buffer = Buffer.from(hexstr.replace(/-/g, ''), 'hex');
|
package/lib/shell-bson.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-bson.js","sourceRoot":"","sources":["../src/shell-bson.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"shell-bson.js","sourceRoot":"","sources":["../src/shell-bson.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mongosh/shell-bson",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "mongosh-style BSON handling",
|
|
5
5
|
"homepage": "https://github.com/mongodb-js/mongosh/tree/main/packages/shell-bson#readme",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"eslint": "^7.25.0",
|
|
52
52
|
"prettier": "^2.8.8"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "d6e3e2e3df785683c7a1c6b3a30765ea75c603fc"
|
|
55
55
|
}
|
package/src/bson-export.ts
CHANGED
|
@@ -13,6 +13,7 @@ import type {
|
|
|
13
13
|
calculateObjectSize,
|
|
14
14
|
Double,
|
|
15
15
|
EJSON,
|
|
16
|
+
UUID,
|
|
16
17
|
BSONRegExp,
|
|
17
18
|
} from 'bson';
|
|
18
19
|
export type {
|
|
@@ -29,6 +30,7 @@ export type {
|
|
|
29
30
|
Binary,
|
|
30
31
|
Double,
|
|
31
32
|
EJSON,
|
|
33
|
+
UUID,
|
|
32
34
|
BSONRegExp,
|
|
33
35
|
calculateObjectSize,
|
|
34
36
|
};
|
|
@@ -45,6 +47,7 @@ export type BSON = {
|
|
|
45
47
|
Binary: typeof Binary;
|
|
46
48
|
Double: typeof Double;
|
|
47
49
|
EJSON: typeof EJSON;
|
|
50
|
+
UUID: typeof UUID;
|
|
48
51
|
BSONRegExp: typeof BSONRegExp;
|
|
49
52
|
BSONSymbol: typeof BSONSymbol;
|
|
50
53
|
calculateObjectSize: typeof calculateObjectSize;
|
package/src/printable-bson.ts
CHANGED
|
@@ -1,12 +1,40 @@
|
|
|
1
1
|
import type { BSON } from './';
|
|
2
|
-
import type {
|
|
3
|
-
|
|
2
|
+
import type {
|
|
3
|
+
InspectOptionsStylized,
|
|
4
|
+
CustomInspectFunction,
|
|
5
|
+
InspectOptions,
|
|
6
|
+
} from 'util';
|
|
4
7
|
const inspectCustom = Symbol.for('nodejs.util.inspect.custom');
|
|
5
8
|
type BSONClassKey = BSON[Exclude<
|
|
6
9
|
keyof BSON,
|
|
7
10
|
'EJSON' | 'calculateObjectSize'
|
|
8
11
|
>]['prototype']['_bsontype'];
|
|
9
12
|
|
|
13
|
+
let coreUtilInspect: ((obj: any, options: InspectOptions) => string) & {
|
|
14
|
+
defaultOptions: InspectOptions;
|
|
15
|
+
};
|
|
16
|
+
function inspectTypedArray(
|
|
17
|
+
obj: Iterable<number>,
|
|
18
|
+
options: InspectOptions
|
|
19
|
+
): string {
|
|
20
|
+
try {
|
|
21
|
+
coreUtilInspect ??= require('util').inspect;
|
|
22
|
+
return coreUtilInspect(obj, {
|
|
23
|
+
...options,
|
|
24
|
+
// These arrays can be very large, so would prefer to use the default options instead.
|
|
25
|
+
maxArrayLength: coreUtilInspect.defaultOptions.maxArrayLength,
|
|
26
|
+
});
|
|
27
|
+
} catch {
|
|
28
|
+
const arr = Array.from(obj);
|
|
29
|
+
if (arr.length > 100) {
|
|
30
|
+
return `[${arr.slice(0, 100).join(', ')}, ... ${
|
|
31
|
+
arr.length - 100
|
|
32
|
+
} more items]`;
|
|
33
|
+
}
|
|
34
|
+
return `[${arr.join(', ')}]`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
10
38
|
// Turn e.g. 'new Double(...)' into 'Double(...)' but preserve possible leading whitespace
|
|
11
39
|
function removeNewFromInspectResult(str: string): string {
|
|
12
40
|
return str.replace(/^(\s*)(new )/, '$1');
|
|
@@ -43,30 +71,24 @@ const makeBinaryVectorInspect = (bsonLibrary: BSON): CustomInspectFunction => {
|
|
|
43
71
|
switch (this.buffer[0]) {
|
|
44
72
|
case bsonLibrary.Binary.VECTOR_TYPE.Int8:
|
|
45
73
|
return `Binary.fromInt8Array(new Int8Array(${removeTypedArrayPrefixFromInspectResult(
|
|
46
|
-
|
|
74
|
+
inspectTypedArray(this.toInt8Array(), {
|
|
47
75
|
depth,
|
|
48
76
|
...options,
|
|
49
|
-
// These arrays can be very large, so would prefer to use the default options instead.
|
|
50
|
-
maxArrayLength: utilInspect.defaultOptions.maxArrayLength,
|
|
51
77
|
})
|
|
52
78
|
)}))`;
|
|
53
79
|
case bsonLibrary.Binary.VECTOR_TYPE.Float32:
|
|
54
80
|
return `Binary.fromFloat32Array(new Float32Array(${removeTypedArrayPrefixFromInspectResult(
|
|
55
|
-
|
|
81
|
+
inspectTypedArray(this.toFloat32Array(), {
|
|
56
82
|
depth,
|
|
57
83
|
...options,
|
|
58
|
-
// These arrays can be very large, so would prefer to use the default options instead.
|
|
59
|
-
maxArrayLength: utilInspect.defaultOptions.maxArrayLength,
|
|
60
84
|
})
|
|
61
85
|
)}))`;
|
|
62
86
|
case bsonLibrary.Binary.VECTOR_TYPE.PackedBit: {
|
|
63
87
|
const paddingInfo = this.buffer[1] === 0 ? '' : `, ${this.buffer[1]}`;
|
|
64
88
|
return `Binary.fromPackedBits(new Uint8Array(${removeTypedArrayPrefixFromInspectResult(
|
|
65
|
-
|
|
89
|
+
inspectTypedArray(this.toPackedBits(), {
|
|
66
90
|
depth,
|
|
67
91
|
...options,
|
|
68
|
-
// These arrays can be very large, so would prefer to use the default options instead.
|
|
69
|
-
maxArrayLength: utilInspect.defaultOptions.maxArrayLength,
|
|
70
92
|
})
|
|
71
93
|
)})${paddingInfo})`;
|
|
72
94
|
}
|
package/src/shell-bson.ts
CHANGED
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
assignAll,
|
|
11
11
|
pickWithExactKeyMatch,
|
|
12
12
|
} from './helpers';
|
|
13
|
-
import { randomBytes } from 'crypto';
|
|
14
13
|
|
|
15
14
|
type LongWithoutAccidentallyExposedMethods = Omit<
|
|
16
15
|
typeof Long,
|
|
@@ -327,11 +326,10 @@ export function constructShellBson<
|
|
|
327
326
|
UUID: assignAll(
|
|
328
327
|
function UUID(hexstr?: string): BinaryType {
|
|
329
328
|
if (hexstr === undefined) {
|
|
330
|
-
//
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
hexstr = uuid.toString('hex');
|
|
329
|
+
// TODO(MONGOSH-2710): Actually use UUID instances from `bson`
|
|
330
|
+
// (but then also be consistent about that when we e.g. receive
|
|
331
|
+
// them from the server).
|
|
332
|
+
hexstr = new bson.UUID().toString();
|
|
335
333
|
}
|
|
336
334
|
assertArgsDefinedType([hexstr], ['string'], 'UUID');
|
|
337
335
|
// Strip any dashes, as they occur in the standard UUID formatting
|