bson 4.0.4 → 4.2.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/HISTORY.md +56 -1
- package/README.md +7 -9
- package/bower.json +1 -1
- package/bson.d.ts +983 -0
- package/dist/bson.browser.esm.js +7261 -5004
- package/dist/bson.browser.esm.js.map +1 -0
- package/dist/bson.browser.umd.js +7319 -5099
- package/dist/bson.browser.umd.js.map +1 -0
- package/dist/bson.bundle.js +8168 -9216
- package/dist/bson.bundle.js.map +1 -0
- package/dist/bson.esm.js +5643 -5409
- package/dist/bson.esm.js.map +1 -0
- package/etc/prepare.js +19 -0
- package/lib/binary.js +194 -377
- package/lib/binary.js.map +1 -0
- package/lib/bson.js +200 -243
- package/lib/bson.js.map +1 -0
- package/lib/code.js +36 -39
- package/lib/code.js.map +1 -0
- package/lib/constants.js +78 -203
- package/lib/constants.js.map +1 -0
- package/lib/db_ref.js +79 -79
- package/lib/db_ref.js.map +1 -0
- package/lib/decimal128.js +647 -760
- package/lib/decimal128.js.map +1 -0
- package/lib/double.js +61 -58
- package/lib/double.js.map +1 -0
- package/lib/ensure_buffer.js +22 -18
- package/lib/ensure_buffer.js.map +1 -0
- package/lib/extended_json.js +305 -322
- package/lib/extended_json.js.map +1 -0
- package/lib/float_parser.js +98 -104
- package/lib/float_parser.js.map +1 -0
- package/lib/int_32.js +45 -47
- package/lib/int_32.js.map +1 -0
- package/lib/long.js +876 -16
- package/lib/long.js.map +1 -0
- package/lib/map.js +123 -124
- package/lib/map.js.map +1 -0
- package/lib/max_key.js +21 -23
- package/lib/max_key.js.map +1 -0
- package/lib/min_key.js +21 -23
- package/lib/min_key.js.map +1 -0
- package/lib/objectid.js +264 -382
- package/lib/objectid.js.map +1 -0
- package/lib/parser/calculate_size.js +185 -224
- package/lib/parser/calculate_size.js.map +1 -0
- package/lib/parser/deserializer.js +543 -620
- package/lib/parser/deserializer.js.map +1 -0
- package/lib/parser/serializer.js +774 -918
- package/lib/parser/serializer.js.map +1 -0
- package/lib/parser/utils.js +81 -30
- package/lib/parser/utils.js.map +1 -0
- package/lib/regexp.js +54 -70
- package/lib/regexp.js.map +1 -0
- package/lib/symbol.js +40 -56
- package/lib/symbol.js.map +1 -0
- package/lib/timestamp.js +70 -95
- package/lib/timestamp.js.map +1 -0
- package/lib/uuid.js +48 -0
- package/lib/uuid.js.map +1 -0
- package/lib/validate_utf8.js +32 -33
- package/lib/validate_utf8.js.map +1 -0
- package/package.json +53 -31
- package/src/binary.ts +270 -0
- package/src/bson.ts +326 -0
- package/src/code.ts +57 -0
- package/src/constants.ts +104 -0
- package/src/db_ref.ts +115 -0
- package/src/decimal128.ts +801 -0
- package/src/double.ts +85 -0
- package/src/ensure_buffer.ts +26 -0
- package/src/extended_json.ts +395 -0
- package/src/float_parser.ts +152 -0
- package/src/int_32.ts +64 -0
- package/src/long.ts +1000 -0
- package/src/map.ts +139 -0
- package/src/max_key.ts +33 -0
- package/src/min_key.ts +33 -0
- package/src/objectid.ts +377 -0
- package/src/parser/calculate_size.ts +230 -0
- package/src/parser/deserializer.ts +655 -0
- package/src/parser/serializer.ts +1069 -0
- package/src/parser/utils.ts +93 -0
- package/src/regexp.ts +92 -0
- package/src/symbol.ts +57 -0
- package/src/timestamp.ts +103 -0
- package/src/uuid.ts +57 -0
- package/src/validate_utf8.ts +47 -0
- package/lib/fnv1a.js +0 -48
package/lib/constants.js
CHANGED
|
@@ -1,203 +1,78 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
* null BSON Type
|
|
80
|
-
*
|
|
81
|
-
* @classconstant BSON_DATA_NULL
|
|
82
|
-
**/
|
|
83
|
-
BSON_DATA_NULL: 10,
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* RegExp BSON Type
|
|
87
|
-
*
|
|
88
|
-
* @classconstant BSON_DATA_REGEXP
|
|
89
|
-
**/
|
|
90
|
-
BSON_DATA_REGEXP: 11,
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Code BSON Type
|
|
94
|
-
*
|
|
95
|
-
* @classconstant BSON_DATA_DBPOINTER
|
|
96
|
-
**/
|
|
97
|
-
BSON_DATA_DBPOINTER: 12,
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Code BSON Type
|
|
101
|
-
*
|
|
102
|
-
* @classconstant BSON_DATA_CODE
|
|
103
|
-
**/
|
|
104
|
-
BSON_DATA_CODE: 13,
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Symbol BSON Type
|
|
108
|
-
*
|
|
109
|
-
* @classconstant BSON_DATA_SYMBOL
|
|
110
|
-
**/
|
|
111
|
-
BSON_DATA_SYMBOL: 14,
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Code with Scope BSON Type
|
|
115
|
-
*
|
|
116
|
-
* @classconstant BSON_DATA_CODE_W_SCOPE
|
|
117
|
-
**/
|
|
118
|
-
BSON_DATA_CODE_W_SCOPE: 15,
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* 32 bit Integer BSON Type
|
|
122
|
-
*
|
|
123
|
-
* @classconstant BSON_DATA_INT
|
|
124
|
-
**/
|
|
125
|
-
BSON_DATA_INT: 16,
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Timestamp BSON Type
|
|
129
|
-
*
|
|
130
|
-
* @classconstant BSON_DATA_TIMESTAMP
|
|
131
|
-
**/
|
|
132
|
-
BSON_DATA_TIMESTAMP: 17,
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Long BSON Type
|
|
136
|
-
*
|
|
137
|
-
* @classconstant BSON_DATA_LONG
|
|
138
|
-
**/
|
|
139
|
-
BSON_DATA_LONG: 18,
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Long BSON Type
|
|
143
|
-
*
|
|
144
|
-
* @classconstant BSON_DATA_DECIMAL128
|
|
145
|
-
**/
|
|
146
|
-
BSON_DATA_DECIMAL128: 19,
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* MinKey BSON Type
|
|
150
|
-
*
|
|
151
|
-
* @classconstant BSON_DATA_MIN_KEY
|
|
152
|
-
**/
|
|
153
|
-
BSON_DATA_MIN_KEY: 0xff,
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* MaxKey BSON Type
|
|
157
|
-
*
|
|
158
|
-
* @classconstant BSON_DATA_MAX_KEY
|
|
159
|
-
**/
|
|
160
|
-
BSON_DATA_MAX_KEY: 0x7f,
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* Binary Default Type
|
|
164
|
-
*
|
|
165
|
-
* @classconstant BSON_BINARY_SUBTYPE_DEFAULT
|
|
166
|
-
**/
|
|
167
|
-
BSON_BINARY_SUBTYPE_DEFAULT: 0,
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Binary Function Type
|
|
171
|
-
*
|
|
172
|
-
* @classconstant BSON_BINARY_SUBTYPE_FUNCTION
|
|
173
|
-
**/
|
|
174
|
-
BSON_BINARY_SUBTYPE_FUNCTION: 1,
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* Binary Byte Array Type
|
|
178
|
-
*
|
|
179
|
-
* @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY
|
|
180
|
-
**/
|
|
181
|
-
BSON_BINARY_SUBTYPE_BYTE_ARRAY: 2,
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* Binary UUID Type
|
|
185
|
-
*
|
|
186
|
-
* @classconstant BSON_BINARY_SUBTYPE_UUID
|
|
187
|
-
**/
|
|
188
|
-
BSON_BINARY_SUBTYPE_UUID: 3,
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* Binary MD5 Type
|
|
192
|
-
*
|
|
193
|
-
* @classconstant BSON_BINARY_SUBTYPE_MD5
|
|
194
|
-
**/
|
|
195
|
-
BSON_BINARY_SUBTYPE_MD5: 4,
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Binary User Defined Type
|
|
199
|
-
*
|
|
200
|
-
* @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED
|
|
201
|
-
**/
|
|
202
|
-
BSON_BINARY_SUBTYPE_USER_DEFINED: 128
|
|
203
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BSON_BINARY_SUBTYPE_USER_DEFINED = exports.BSON_BINARY_SUBTYPE_MD5 = exports.BSON_BINARY_SUBTYPE_UUID_NEW = exports.BSON_BINARY_SUBTYPE_UUID = exports.BSON_BINARY_SUBTYPE_BYTE_ARRAY = exports.BSON_BINARY_SUBTYPE_FUNCTION = exports.BSON_BINARY_SUBTYPE_DEFAULT = exports.BSON_DATA_MAX_KEY = exports.BSON_DATA_MIN_KEY = exports.BSON_DATA_DECIMAL128 = exports.BSON_DATA_LONG = exports.BSON_DATA_TIMESTAMP = exports.BSON_DATA_INT = exports.BSON_DATA_CODE_W_SCOPE = exports.BSON_DATA_SYMBOL = exports.BSON_DATA_CODE = exports.BSON_DATA_DBPOINTER = exports.BSON_DATA_REGEXP = exports.BSON_DATA_NULL = exports.BSON_DATA_DATE = exports.BSON_DATA_BOOLEAN = exports.BSON_DATA_OID = exports.BSON_DATA_UNDEFINED = exports.BSON_DATA_BINARY = exports.BSON_DATA_ARRAY = exports.BSON_DATA_OBJECT = exports.BSON_DATA_STRING = exports.BSON_DATA_NUMBER = exports.JS_INT_MIN = exports.JS_INT_MAX = exports.BSON_INT64_MIN = exports.BSON_INT64_MAX = exports.BSON_INT32_MIN = exports.BSON_INT32_MAX = void 0;
|
|
4
|
+
/** @internal */
|
|
5
|
+
exports.BSON_INT32_MAX = 0x7fffffff;
|
|
6
|
+
/** @internal */
|
|
7
|
+
exports.BSON_INT32_MIN = -0x80000000;
|
|
8
|
+
/** @internal */
|
|
9
|
+
exports.BSON_INT64_MAX = Math.pow(2, 63) - 1;
|
|
10
|
+
/** @internal */
|
|
11
|
+
exports.BSON_INT64_MIN = -Math.pow(2, 63);
|
|
12
|
+
/**
|
|
13
|
+
* Any integer up to 2^53 can be precisely represented by a double.
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
exports.JS_INT_MAX = Math.pow(2, 53);
|
|
17
|
+
/**
|
|
18
|
+
* Any integer down to -2^53 can be precisely represented by a double.
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
exports.JS_INT_MIN = -Math.pow(2, 53);
|
|
22
|
+
/** Number BSON Type @internal */
|
|
23
|
+
exports.BSON_DATA_NUMBER = 1;
|
|
24
|
+
/** String BSON Type @internal */
|
|
25
|
+
exports.BSON_DATA_STRING = 2;
|
|
26
|
+
/** Object BSON Type @internal */
|
|
27
|
+
exports.BSON_DATA_OBJECT = 3;
|
|
28
|
+
/** Array BSON Type @internal */
|
|
29
|
+
exports.BSON_DATA_ARRAY = 4;
|
|
30
|
+
/** Binary BSON Type @internal */
|
|
31
|
+
exports.BSON_DATA_BINARY = 5;
|
|
32
|
+
/** Binary BSON Type @internal */
|
|
33
|
+
exports.BSON_DATA_UNDEFINED = 6;
|
|
34
|
+
/** ObjectId BSON Type @internal */
|
|
35
|
+
exports.BSON_DATA_OID = 7;
|
|
36
|
+
/** Boolean BSON Type @internal */
|
|
37
|
+
exports.BSON_DATA_BOOLEAN = 8;
|
|
38
|
+
/** Date BSON Type @internal */
|
|
39
|
+
exports.BSON_DATA_DATE = 9;
|
|
40
|
+
/** null BSON Type @internal */
|
|
41
|
+
exports.BSON_DATA_NULL = 10;
|
|
42
|
+
/** RegExp BSON Type @internal */
|
|
43
|
+
exports.BSON_DATA_REGEXP = 11;
|
|
44
|
+
/** Code BSON Type @internal */
|
|
45
|
+
exports.BSON_DATA_DBPOINTER = 12;
|
|
46
|
+
/** Code BSON Type @internal */
|
|
47
|
+
exports.BSON_DATA_CODE = 13;
|
|
48
|
+
/** Symbol BSON Type @internal */
|
|
49
|
+
exports.BSON_DATA_SYMBOL = 14;
|
|
50
|
+
/** Code with Scope BSON Type @internal */
|
|
51
|
+
exports.BSON_DATA_CODE_W_SCOPE = 15;
|
|
52
|
+
/** 32 bit Integer BSON Type @internal */
|
|
53
|
+
exports.BSON_DATA_INT = 16;
|
|
54
|
+
/** Timestamp BSON Type @internal */
|
|
55
|
+
exports.BSON_DATA_TIMESTAMP = 17;
|
|
56
|
+
/** Long BSON Type @internal */
|
|
57
|
+
exports.BSON_DATA_LONG = 18;
|
|
58
|
+
/** Decimal128 BSON Type @internal */
|
|
59
|
+
exports.BSON_DATA_DECIMAL128 = 19;
|
|
60
|
+
/** MinKey BSON Type @internal */
|
|
61
|
+
exports.BSON_DATA_MIN_KEY = 0xff;
|
|
62
|
+
/** MaxKey BSON Type @internal */
|
|
63
|
+
exports.BSON_DATA_MAX_KEY = 0x7f;
|
|
64
|
+
/** Binary Default Type @internal */
|
|
65
|
+
exports.BSON_BINARY_SUBTYPE_DEFAULT = 0;
|
|
66
|
+
/** Binary Function Type @internal */
|
|
67
|
+
exports.BSON_BINARY_SUBTYPE_FUNCTION = 1;
|
|
68
|
+
/** Binary Byte Array Type @internal */
|
|
69
|
+
exports.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2;
|
|
70
|
+
/** Binary Deprecated UUID Type @deprecated Please use BSON_BINARY_SUBTYPE_UUID_NEW @internal */
|
|
71
|
+
exports.BSON_BINARY_SUBTYPE_UUID = 3;
|
|
72
|
+
/** Binary UUID Type @internal */
|
|
73
|
+
exports.BSON_BINARY_SUBTYPE_UUID_NEW = 4;
|
|
74
|
+
/** Binary MD5 Type @internal */
|
|
75
|
+
exports.BSON_BINARY_SUBTYPE_MD5 = 5;
|
|
76
|
+
/** Binary User Defined Type @internal */
|
|
77
|
+
exports.BSON_BINARY_SUBTYPE_USER_DEFINED = 128;
|
|
78
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,gBAAgB;AACH,QAAA,cAAc,GAAG,UAAU,CAAC;AACzC,gBAAgB;AACH,QAAA,cAAc,GAAG,CAAC,UAAU,CAAC;AAC1C,gBAAgB;AACH,QAAA,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AAClD,gBAAgB;AACH,QAAA,cAAc,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAE/C;;;GAGG;AACU,QAAA,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAE1C;;;GAGG;AACU,QAAA,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAE3C,iCAAiC;AACpB,QAAA,gBAAgB,GAAG,CAAC,CAAC;AAElC,iCAAiC;AACpB,QAAA,gBAAgB,GAAG,CAAC,CAAC;AAElC,iCAAiC;AACpB,QAAA,gBAAgB,GAAG,CAAC,CAAC;AAElC,gCAAgC;AACnB,QAAA,eAAe,GAAG,CAAC,CAAC;AAEjC,iCAAiC;AACpB,QAAA,gBAAgB,GAAG,CAAC,CAAC;AAElC,iCAAiC;AACpB,QAAA,mBAAmB,GAAG,CAAC,CAAC;AAErC,mCAAmC;AACtB,QAAA,aAAa,GAAG,CAAC,CAAC;AAE/B,kCAAkC;AACrB,QAAA,iBAAiB,GAAG,CAAC,CAAC;AAEnC,+BAA+B;AAClB,QAAA,cAAc,GAAG,CAAC,CAAC;AAEhC,+BAA+B;AAClB,QAAA,cAAc,GAAG,EAAE,CAAC;AAEjC,iCAAiC;AACpB,QAAA,gBAAgB,GAAG,EAAE,CAAC;AAEnC,+BAA+B;AAClB,QAAA,mBAAmB,GAAG,EAAE,CAAC;AAEtC,+BAA+B;AAClB,QAAA,cAAc,GAAG,EAAE,CAAC;AAEjC,iCAAiC;AACpB,QAAA,gBAAgB,GAAG,EAAE,CAAC;AAEnC,0CAA0C;AAC7B,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAEzC,yCAAyC;AAC5B,QAAA,aAAa,GAAG,EAAE,CAAC;AAEhC,oCAAoC;AACvB,QAAA,mBAAmB,GAAG,EAAE,CAAC;AAEtC,+BAA+B;AAClB,QAAA,cAAc,GAAG,EAAE,CAAC;AAEjC,qCAAqC;AACxB,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAEvC,iCAAiC;AACpB,QAAA,iBAAiB,GAAG,IAAI,CAAC;AAEtC,iCAAiC;AACpB,QAAA,iBAAiB,GAAG,IAAI,CAAC;AAEtC,oCAAoC;AACvB,QAAA,2BAA2B,GAAG,CAAC,CAAC;AAE7C,qCAAqC;AACxB,QAAA,4BAA4B,GAAG,CAAC,CAAC;AAE9C,uCAAuC;AAC1B,QAAA,8BAA8B,GAAG,CAAC,CAAC;AAEhD,gGAAgG;AACnF,QAAA,wBAAwB,GAAG,CAAC,CAAC;AAE1C,iCAAiC;AACpB,QAAA,4BAA4B,GAAG,CAAC,CAAC;AAE9C,gCAAgC;AACnB,QAAA,uBAAuB,GAAG,CAAC,CAAC;AAEzC,yCAAyC;AAC5B,QAAA,gCAAgC,GAAG,GAAG,CAAC"}
|
package/lib/db_ref.js
CHANGED
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DBRef = exports.isDBRefLike = void 0;
|
|
4
|
+
const utils_1 = require("./parser/utils");
|
|
5
|
+
/** @internal */
|
|
6
|
+
function isDBRefLike(value) {
|
|
7
|
+
return utils_1.isObjectLike(value) && value['$id'] != null && value['$ref'] != null;
|
|
8
|
+
}
|
|
9
|
+
exports.isDBRefLike = isDBRefLike;
|
|
3
10
|
/**
|
|
4
11
|
* A class representation of the BSON DBRef type.
|
|
12
|
+
* @public
|
|
5
13
|
*/
|
|
6
14
|
class DBRef {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
/**
|
|
16
|
+
* @param collection - the collection name.
|
|
17
|
+
* @param oid - the reference ObjectId.
|
|
18
|
+
* @param db - optional db name, if omitted the reference is local to the current db.
|
|
19
|
+
*/
|
|
20
|
+
constructor(collection, oid, db, fields) {
|
|
21
|
+
// check if namespace has been provided
|
|
22
|
+
const parts = collection.split('.');
|
|
23
|
+
if (parts.length === 2) {
|
|
24
|
+
db = parts.shift();
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
26
|
+
collection = parts.shift();
|
|
27
|
+
}
|
|
28
|
+
this.collection = collection;
|
|
29
|
+
this.oid = oid;
|
|
30
|
+
this.db = db;
|
|
31
|
+
this.fields = fields || {};
|
|
32
|
+
}
|
|
33
|
+
// Property provided for compatibility with the 1.x parser
|
|
34
|
+
// the 1.x parser used a "namespace" property, while 4.x uses "collection"
|
|
35
|
+
/** @internal */
|
|
36
|
+
get namespace() {
|
|
37
|
+
return this.collection;
|
|
38
|
+
}
|
|
39
|
+
set namespace(value) {
|
|
40
|
+
this.collection = value;
|
|
41
|
+
}
|
|
42
|
+
/** @internal */
|
|
43
|
+
toJSON() {
|
|
44
|
+
const o = Object.assign({
|
|
45
|
+
$ref: this.collection,
|
|
46
|
+
$id: this.oid
|
|
47
|
+
}, this.fields);
|
|
48
|
+
if (this.db != null)
|
|
49
|
+
o.$db = this.db;
|
|
50
|
+
return o;
|
|
51
|
+
}
|
|
52
|
+
/** @internal */
|
|
53
|
+
toExtendedJSON(options) {
|
|
54
|
+
options = options || {};
|
|
55
|
+
let o = {
|
|
56
|
+
$ref: this.collection,
|
|
57
|
+
$id: this.oid
|
|
58
|
+
};
|
|
59
|
+
if (options.legacy) {
|
|
60
|
+
return o;
|
|
61
|
+
}
|
|
62
|
+
if (this.db)
|
|
63
|
+
o.$db = this.db;
|
|
64
|
+
o = Object.assign(o, this.fields);
|
|
65
|
+
return o;
|
|
66
|
+
}
|
|
67
|
+
/** @internal */
|
|
68
|
+
static fromExtendedJSON(doc) {
|
|
69
|
+
const copy = Object.assign({}, doc);
|
|
70
|
+
delete copy.$ref;
|
|
71
|
+
delete copy.$id;
|
|
72
|
+
delete copy.$db;
|
|
73
|
+
return new DBRef(doc.$ref, doc.$id, doc.$db, copy);
|
|
74
|
+
}
|
|
75
|
+
/** @internal */
|
|
76
|
+
[Symbol.for('nodejs.util.inspect.custom')]() {
|
|
77
|
+
return this.inspect();
|
|
21
78
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
this.fields = fields || {};
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* @ignore
|
|
31
|
-
* @api private
|
|
32
|
-
*/
|
|
33
|
-
toJSON() {
|
|
34
|
-
const o = Object.assign(
|
|
35
|
-
{
|
|
36
|
-
$ref: this.collection,
|
|
37
|
-
$id: this.oid
|
|
38
|
-
},
|
|
39
|
-
this.fields
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
if (this.db != null) o.$db = this.db;
|
|
43
|
-
return o;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* @ignore
|
|
48
|
-
*/
|
|
49
|
-
toExtendedJSON(options) {
|
|
50
|
-
options = options || {};
|
|
51
|
-
let o = {
|
|
52
|
-
$ref: this.collection,
|
|
53
|
-
$id: this.oid
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
if (options.legacy) {
|
|
57
|
-
return o;
|
|
79
|
+
inspect() {
|
|
80
|
+
// NOTE: if OID is an ObjectId class it will just print the oid string.
|
|
81
|
+
const oid = this.oid === undefined || this.oid.toString === undefined ? this.oid : this.oid.toString();
|
|
82
|
+
return `DBRef("${this.namespace}", "${oid}"${this.db ? `, "${this.db}"` : ''})`;
|
|
58
83
|
}
|
|
59
|
-
|
|
60
|
-
if (this.db) o.$db = this.db;
|
|
61
|
-
o = Object.assign(o, this.fields);
|
|
62
|
-
return o;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* @ignore
|
|
67
|
-
*/
|
|
68
|
-
static fromExtendedJSON(doc) {
|
|
69
|
-
var copy = Object.assign({}, doc);
|
|
70
|
-
['$ref', '$id', '$db'].forEach(k => delete copy[k]);
|
|
71
|
-
return new DBRef(doc.$ref, doc.$id, doc.$db, copy);
|
|
72
|
-
}
|
|
73
84
|
}
|
|
74
|
-
|
|
85
|
+
exports.DBRef = DBRef;
|
|
75
86
|
Object.defineProperty(DBRef.prototype, '_bsontype', { value: 'DBRef' });
|
|
76
|
-
|
|
77
|
-
// compatibility, let's expose "namespace"
|
|
78
|
-
Object.defineProperty(DBRef.prototype, 'namespace', {
|
|
79
|
-
get() {
|
|
80
|
-
return this.collection;
|
|
81
|
-
},
|
|
82
|
-
set(val) {
|
|
83
|
-
this.collection = val;
|
|
84
|
-
},
|
|
85
|
-
configurable: false
|
|
86
|
-
});
|
|
87
|
-
module.exports = DBRef;
|
|
87
|
+
//# sourceMappingURL=db_ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db_ref.js","sourceRoot":"","sources":["../src/db_ref.ts"],"names":[],"mappings":"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"}
|