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.
Files changed (90) hide show
  1. package/HISTORY.md +56 -1
  2. package/README.md +7 -9
  3. package/bower.json +1 -1
  4. package/bson.d.ts +983 -0
  5. package/dist/bson.browser.esm.js +7261 -5004
  6. package/dist/bson.browser.esm.js.map +1 -0
  7. package/dist/bson.browser.umd.js +7319 -5099
  8. package/dist/bson.browser.umd.js.map +1 -0
  9. package/dist/bson.bundle.js +8168 -9216
  10. package/dist/bson.bundle.js.map +1 -0
  11. package/dist/bson.esm.js +5643 -5409
  12. package/dist/bson.esm.js.map +1 -0
  13. package/etc/prepare.js +19 -0
  14. package/lib/binary.js +194 -377
  15. package/lib/binary.js.map +1 -0
  16. package/lib/bson.js +200 -243
  17. package/lib/bson.js.map +1 -0
  18. package/lib/code.js +36 -39
  19. package/lib/code.js.map +1 -0
  20. package/lib/constants.js +78 -203
  21. package/lib/constants.js.map +1 -0
  22. package/lib/db_ref.js +79 -79
  23. package/lib/db_ref.js.map +1 -0
  24. package/lib/decimal128.js +647 -760
  25. package/lib/decimal128.js.map +1 -0
  26. package/lib/double.js +61 -58
  27. package/lib/double.js.map +1 -0
  28. package/lib/ensure_buffer.js +22 -18
  29. package/lib/ensure_buffer.js.map +1 -0
  30. package/lib/extended_json.js +305 -322
  31. package/lib/extended_json.js.map +1 -0
  32. package/lib/float_parser.js +98 -104
  33. package/lib/float_parser.js.map +1 -0
  34. package/lib/int_32.js +45 -47
  35. package/lib/int_32.js.map +1 -0
  36. package/lib/long.js +876 -16
  37. package/lib/long.js.map +1 -0
  38. package/lib/map.js +123 -124
  39. package/lib/map.js.map +1 -0
  40. package/lib/max_key.js +21 -23
  41. package/lib/max_key.js.map +1 -0
  42. package/lib/min_key.js +21 -23
  43. package/lib/min_key.js.map +1 -0
  44. package/lib/objectid.js +264 -382
  45. package/lib/objectid.js.map +1 -0
  46. package/lib/parser/calculate_size.js +185 -224
  47. package/lib/parser/calculate_size.js.map +1 -0
  48. package/lib/parser/deserializer.js +543 -620
  49. package/lib/parser/deserializer.js.map +1 -0
  50. package/lib/parser/serializer.js +774 -918
  51. package/lib/parser/serializer.js.map +1 -0
  52. package/lib/parser/utils.js +81 -30
  53. package/lib/parser/utils.js.map +1 -0
  54. package/lib/regexp.js +54 -70
  55. package/lib/regexp.js.map +1 -0
  56. package/lib/symbol.js +40 -56
  57. package/lib/symbol.js.map +1 -0
  58. package/lib/timestamp.js +70 -95
  59. package/lib/timestamp.js.map +1 -0
  60. package/lib/uuid.js +48 -0
  61. package/lib/uuid.js.map +1 -0
  62. package/lib/validate_utf8.js +32 -33
  63. package/lib/validate_utf8.js.map +1 -0
  64. package/package.json +53 -31
  65. package/src/binary.ts +270 -0
  66. package/src/bson.ts +326 -0
  67. package/src/code.ts +57 -0
  68. package/src/constants.ts +104 -0
  69. package/src/db_ref.ts +115 -0
  70. package/src/decimal128.ts +801 -0
  71. package/src/double.ts +85 -0
  72. package/src/ensure_buffer.ts +26 -0
  73. package/src/extended_json.ts +395 -0
  74. package/src/float_parser.ts +152 -0
  75. package/src/int_32.ts +64 -0
  76. package/src/long.ts +1000 -0
  77. package/src/map.ts +139 -0
  78. package/src/max_key.ts +33 -0
  79. package/src/min_key.ts +33 -0
  80. package/src/objectid.ts +377 -0
  81. package/src/parser/calculate_size.ts +230 -0
  82. package/src/parser/deserializer.ts +655 -0
  83. package/src/parser/serializer.ts +1069 -0
  84. package/src/parser/utils.ts +93 -0
  85. package/src/regexp.ts +92 -0
  86. package/src/symbol.ts +57 -0
  87. package/src/timestamp.ts +103 -0
  88. package/src/uuid.ts +57 -0
  89. package/src/validate_utf8.ts +47 -0
  90. package/lib/fnv1a.js +0 -48
package/lib/constants.js CHANGED
@@ -1,203 +1,78 @@
1
- 'use strict';
2
-
3
- module.exports = {
4
- // BSON MAX VALUES
5
- BSON_INT32_MAX: 0x7fffffff,
6
- BSON_INT32_MIN: -0x80000000,
7
-
8
- BSON_INT64_MAX: Math.pow(2, 63) - 1,
9
- BSON_INT64_MIN: -Math.pow(2, 63),
10
-
11
- // JS MAX PRECISE VALUES
12
- JS_INT_MAX: 0x20000000000000, // Any integer up to 2^53 can be precisely represented by a double.
13
- JS_INT_MIN: -0x20000000000000, // Any integer down to -2^53 can be precisely represented by a double.
14
-
15
- /**
16
- * Number BSON Type
17
- *
18
- * @classconstant BSON_DATA_NUMBER
19
- **/
20
- BSON_DATA_NUMBER: 1,
21
-
22
- /**
23
- * String BSON Type
24
- *
25
- * @classconstant BSON_DATA_STRING
26
- **/
27
- BSON_DATA_STRING: 2,
28
-
29
- /**
30
- * Object BSON Type
31
- *
32
- * @classconstant BSON_DATA_OBJECT
33
- **/
34
- BSON_DATA_OBJECT: 3,
35
-
36
- /**
37
- * Array BSON Type
38
- *
39
- * @classconstant BSON_DATA_ARRAY
40
- **/
41
- BSON_DATA_ARRAY: 4,
42
-
43
- /**
44
- * Binary BSON Type
45
- *
46
- * @classconstant BSON_DATA_BINARY
47
- **/
48
- BSON_DATA_BINARY: 5,
49
-
50
- /**
51
- * Binary BSON Type
52
- *
53
- * @classconstant BSON_DATA_UNDEFINED
54
- **/
55
- BSON_DATA_UNDEFINED: 6,
56
-
57
- /**
58
- * ObjectId BSON Type
59
- *
60
- * @classconstant BSON_DATA_OID
61
- **/
62
- BSON_DATA_OID: 7,
63
-
64
- /**
65
- * Boolean BSON Type
66
- *
67
- * @classconstant BSON_DATA_BOOLEAN
68
- **/
69
- BSON_DATA_BOOLEAN: 8,
70
-
71
- /**
72
- * Date BSON Type
73
- *
74
- * @classconstant BSON_DATA_DATE
75
- **/
76
- BSON_DATA_DATE: 9,
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
- 'use strict';
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
- * Create a DBRef type
9
- *
10
- * @param {string} collection the collection name.
11
- * @param {ObjectId} oid the reference ObjectId.
12
- * @param {string} [db] optional db name, if omitted the reference is local to the current db.
13
- * @return {DBRef}
14
- */
15
- constructor(collection, oid, db, fields) {
16
- // check if namespace has been provided
17
- const parts = collection.split('.');
18
- if (parts.length === 2) {
19
- db = parts.shift();
20
- collection = parts.shift();
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
- this.collection = collection;
24
- this.oid = oid;
25
- this.db = db;
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
- // the 1.x parser used a "namespace" property, while 4.x uses "collection". To ensure backwards
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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"}