mongodb 4.7.0 → 4.9.0
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.js +4 -2
- package/lib/bson.js.map +1 -1
- package/lib/bulk/common.js +1 -0
- package/lib/bulk/common.js.map +1 -1
- package/lib/change_stream.js +136 -271
- package/lib/change_stream.js.map +1 -1
- package/lib/cmap/command_monitoring_events.js +2 -32
- package/lib/cmap/command_monitoring_events.js.map +1 -1
- package/lib/cmap/commands.js +1 -153
- package/lib/cmap/commands.js.map +1 -1
- package/lib/cmap/connect.js +3 -6
- package/lib/cmap/connect.js.map +1 -1
- package/lib/cmap/connection.js +21 -84
- package/lib/cmap/connection.js.map +1 -1
- package/lib/cmap/connection_pool.js +196 -170
- package/lib/cmap/connection_pool.js.map +1 -1
- package/lib/cmap/message_stream.js.map +1 -1
- package/lib/cmap/wire_protocol/compression.js +2 -6
- package/lib/cmap/wire_protocol/compression.js.map +1 -1
- package/lib/cmap/wire_protocol/constants.js +1 -3
- package/lib/cmap/wire_protocol/constants.js.map +1 -1
- package/lib/collection.js +24 -9
- package/lib/collection.js.map +1 -1
- package/lib/connection_string.js.map +1 -1
- package/lib/cursor/abstract_cursor.js +62 -75
- package/lib/cursor/abstract_cursor.js.map +1 -1
- package/lib/cursor/change_stream_cursor.js +115 -0
- package/lib/cursor/change_stream_cursor.js.map +1 -0
- package/lib/cursor/list_collections_cursor.js +37 -0
- package/lib/cursor/list_collections_cursor.js.map +1 -0
- package/lib/cursor/list_indexes_cursor.js +36 -0
- package/lib/cursor/list_indexes_cursor.js.map +1 -0
- package/lib/db.js +2 -2
- package/lib/db.js.map +1 -1
- package/lib/deps.js.map +1 -1
- package/lib/encrypter.js +3 -13
- package/lib/encrypter.js.map +1 -1
- package/lib/index.js +28 -21
- package/lib/index.js.map +1 -1
- package/lib/mongo_client.js +62 -21
- package/lib/mongo_client.js.map +1 -1
- package/lib/mongo_types.js.map +1 -1
- package/lib/operations/common_functions.js.map +1 -1
- package/lib/operations/create_collection.js.map +1 -1
- package/lib/operations/distinct.js +5 -5
- package/lib/operations/distinct.js.map +1 -1
- package/lib/operations/estimated_document_count.js +5 -0
- package/lib/operations/estimated_document_count.js.map +1 -1
- package/lib/operations/execute_operation.js +17 -8
- package/lib/operations/execute_operation.js.map +1 -1
- package/lib/operations/find.js +3 -0
- package/lib/operations/find.js.map +1 -1
- package/lib/operations/get_more.js +32 -7
- package/lib/operations/get_more.js.map +1 -1
- package/lib/operations/indexes.js +39 -65
- package/lib/operations/indexes.js.map +1 -1
- package/lib/operations/kill_cursors.js +32 -0
- package/lib/operations/kill_cursors.js.map +1 -0
- package/lib/operations/list_collections.js +1 -33
- package/lib/operations/list_collections.js.map +1 -1
- package/lib/operations/operation.js +4 -1
- package/lib/operations/operation.js.map +1 -1
- package/lib/read_preference.js.map +1 -1
- package/lib/sdam/common.js +2 -1
- package/lib/sdam/common.js.map +1 -1
- package/lib/sdam/monitor.js +2 -1
- package/lib/sdam/monitor.js.map +1 -1
- package/lib/sdam/server.js +1 -52
- package/lib/sdam/server.js.map +1 -1
- package/lib/sdam/server_description.js +51 -58
- package/lib/sdam/server_description.js.map +1 -1
- package/lib/sdam/srv_polling.js +2 -2
- package/lib/sdam/srv_polling.js.map +1 -1
- package/lib/sdam/topology.js +28 -67
- package/lib/sdam/topology.js.map +1 -1
- package/lib/sdam/topology_description.js +24 -42
- package/lib/sdam/topology_description.js.map +1 -1
- package/lib/sessions.js +29 -31
- package/lib/sessions.js.map +1 -1
- package/lib/utils.js +65 -70
- package/lib/utils.js.map +1 -1
- package/mongodb.d.ts +136 -73
- package/package.json +23 -22
- package/src/bson.ts +4 -0
- package/src/bulk/common.ts +1 -0
- package/src/change_stream.ts +147 -373
- package/src/cmap/command_monitoring_events.ts +3 -37
- package/src/cmap/commands.ts +2 -190
- package/src/cmap/connect.ts +20 -25
- package/src/cmap/connection.ts +27 -139
- package/src/cmap/connection_pool.ts +208 -169
- package/src/cmap/message_stream.ts +2 -3
- package/src/cmap/wire_protocol/compression.ts +8 -6
- package/src/cmap/wire_protocol/constants.ts +0 -2
- package/src/collection.ts +27 -13
- package/src/connection_string.ts +1 -1
- package/src/cursor/abstract_cursor.ts +98 -87
- package/src/cursor/change_stream_cursor.ts +194 -0
- package/src/cursor/list_collections_cursor.ts +52 -0
- package/src/cursor/list_indexes_cursor.ts +41 -0
- package/src/db.ts +2 -5
- package/src/deps.ts +13 -22
- package/src/encrypter.ts +4 -14
- package/src/index.ts +13 -9
- package/src/mongo_client.ts +102 -33
- package/src/mongo_types.ts +81 -57
- package/src/operations/common_functions.ts +1 -1
- package/src/operations/create_collection.ts +1 -2
- package/src/operations/distinct.ts +7 -9
- package/src/operations/estimated_document_count.ts +6 -0
- package/src/operations/execute_operation.ts +17 -8
- package/src/operations/find.ts +9 -0
- package/src/operations/get_more.ts +56 -13
- package/src/operations/indexes.ts +52 -89
- package/src/operations/kill_cursors.ts +53 -0
- package/src/operations/list_collections.ts +0 -43
- package/src/operations/operation.ts +5 -1
- package/src/read_preference.ts +5 -9
- package/src/sdam/common.ts +2 -0
- package/src/sdam/monitor.ts +2 -1
- package/src/sdam/server.ts +4 -89
- package/src/sdam/server_description.ts +70 -80
- package/src/sdam/srv_polling.ts +1 -1
- package/src/sdam/topology.ts +37 -103
- package/src/sdam/topology_description.ts +44 -68
- package/src/sessions.ts +32 -39
- package/src/utils.ts +78 -75
package/lib/change_stream.js
CHANGED
|
@@ -1,21 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const
|
|
5
|
-
const timers_1 = require("timers");
|
|
3
|
+
exports.ChangeStream = void 0;
|
|
4
|
+
const util_1 = require("util");
|
|
6
5
|
const collection_1 = require("./collection");
|
|
7
6
|
const constants_1 = require("./constants");
|
|
8
|
-
const
|
|
7
|
+
const change_stream_cursor_1 = require("./cursor/change_stream_cursor");
|
|
9
8
|
const db_1 = require("./db");
|
|
10
9
|
const error_1 = require("./error");
|
|
11
10
|
const mongo_client_1 = require("./mongo_client");
|
|
12
11
|
const mongo_types_1 = require("./mongo_types");
|
|
13
|
-
const aggregate_1 = require("./operations/aggregate");
|
|
14
|
-
const execute_operation_1 = require("./operations/execute_operation");
|
|
15
12
|
const utils_1 = require("./utils");
|
|
16
13
|
/** @internal */
|
|
17
|
-
const kResumeQueue = Symbol('resumeQueue');
|
|
18
|
-
/** @internal */
|
|
19
14
|
const kCursorStream = Symbol('cursorStream');
|
|
20
15
|
/** @internal */
|
|
21
16
|
const kClosed = Symbol('closed');
|
|
@@ -34,10 +29,8 @@ const CHANGE_DOMAIN_TYPES = {
|
|
|
34
29
|
DATABASE: Symbol('Database'),
|
|
35
30
|
CLUSTER: Symbol('Cluster')
|
|
36
31
|
};
|
|
37
|
-
const SELECTION_TIMEOUT = 30000;
|
|
38
32
|
const CHANGE_STREAM_EVENTS = [constants_1.RESUME_TOKEN_CHANGED, constants_1.END, constants_1.CLOSE];
|
|
39
33
|
const NO_RESUME_TOKEN_ERROR = 'A change stream document has been received that lacks a resume token (_id).';
|
|
40
|
-
const NO_CURSOR_ERROR = 'ChangeStream has no cursor';
|
|
41
34
|
const CHANGESTREAM_CLOSED_ERROR = 'ChangeStream is closed';
|
|
42
35
|
/**
|
|
43
36
|
* Creates a new Change Stream instance. Normally created using {@link Collection#watch|Collection.watch()}.
|
|
@@ -52,6 +45,15 @@ class ChangeStream extends mongo_types_1.TypedEventEmitter {
|
|
|
52
45
|
*/
|
|
53
46
|
constructor(parent, pipeline = [], options = {}) {
|
|
54
47
|
super();
|
|
48
|
+
/**
|
|
49
|
+
* @internal
|
|
50
|
+
*
|
|
51
|
+
* TODO(NODE-4320): promisify selectServer and refactor this code to be async
|
|
52
|
+
*
|
|
53
|
+
* we promisify _processErrorIteratorModeCallback until we have a promisifed version of selectServer.
|
|
54
|
+
*/
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
56
|
+
this._processErrorIteratorMode = (0, util_1.promisify)(this._processErrorIteratorModeCallback);
|
|
55
57
|
this.pipeline = pipeline;
|
|
56
58
|
this.options = options;
|
|
57
59
|
if (parent instanceof collection_1.Collection) {
|
|
@@ -71,7 +73,6 @@ class ChangeStream extends mongo_types_1.TypedEventEmitter {
|
|
|
71
73
|
if (!this.options.readPreference && parent.readPreference) {
|
|
72
74
|
this.options.readPreference = parent.readPreference;
|
|
73
75
|
}
|
|
74
|
-
this[kResumeQueue] = new Denque();
|
|
75
76
|
// Create contained Change Stream cursor
|
|
76
77
|
this.cursor = this._createChangeStreamCursor(options);
|
|
77
78
|
this[kClosed] = false;
|
|
@@ -100,71 +101,110 @@ class ChangeStream extends mongo_types_1.TypedEventEmitter {
|
|
|
100
101
|
}
|
|
101
102
|
hasNext(callback) {
|
|
102
103
|
this._setIsIterator();
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
104
|
+
// TOOD(NODE-4319): Add eslint rule preventing accidental variable shadowing
|
|
105
|
+
// Shadowing is intentional here. We want to override the `callback` variable
|
|
106
|
+
// from the outer scope so that the inner scope doesn't accidentally call the wrong callback.
|
|
107
|
+
return (0, utils_1.maybePromise)(callback, callback => {
|
|
108
|
+
(async () => {
|
|
109
|
+
try {
|
|
110
|
+
const hasNext = await this.cursor.hasNext();
|
|
111
|
+
return hasNext;
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
try {
|
|
115
|
+
await this._processErrorIteratorMode(error);
|
|
116
|
+
const hasNext = await this.cursor.hasNext();
|
|
117
|
+
return hasNext;
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
await this.close().catch(err => err);
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
})().then(hasNext => callback(undefined, hasNext), error => callback(error));
|
|
109
125
|
});
|
|
110
126
|
}
|
|
111
127
|
next(callback) {
|
|
112
128
|
this._setIsIterator();
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
129
|
+
// TOOD(NODE-4319): Add eslint rule preventing accidental variable shadowing
|
|
130
|
+
// Shadowing is intentional here. We want to override the `callback` variable
|
|
131
|
+
// from the outer scope so that the inner scope doesn't accidentally call the wrong callback.
|
|
132
|
+
return (0, utils_1.maybePromise)(callback, callback => {
|
|
133
|
+
(async () => {
|
|
134
|
+
try {
|
|
135
|
+
const change = await this.cursor.next();
|
|
136
|
+
const processedChange = this._processChange(change !== null && change !== void 0 ? change : null);
|
|
137
|
+
return processedChange;
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
try {
|
|
141
|
+
await this._processErrorIteratorMode(error);
|
|
142
|
+
const change = await this.cursor.next();
|
|
143
|
+
const processedChange = this._processChange(change !== null && change !== void 0 ? change : null);
|
|
144
|
+
return processedChange;
|
|
122
145
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
146
|
+
catch (error) {
|
|
147
|
+
await this.close().catch(err => err);
|
|
148
|
+
throw error;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
})().then(change => callback(undefined, change), error => callback(error));
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
tryNext(callback) {
|
|
155
|
+
this._setIsIterator();
|
|
156
|
+
// TOOD(NODE-4319): Add eslint rule preventing accidental variable shadowing
|
|
157
|
+
// Shadowing is intentional here. We want to override the `callback` variable
|
|
158
|
+
// from the outer scope so that the inner scope doesn't accidentally call the wrong callback.
|
|
159
|
+
return (0, utils_1.maybePromise)(callback, callback => {
|
|
160
|
+
(async () => {
|
|
161
|
+
try {
|
|
162
|
+
const change = await this.cursor.tryNext();
|
|
163
|
+
return change !== null && change !== void 0 ? change : null;
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
try {
|
|
167
|
+
await this._processErrorIteratorMode(error);
|
|
168
|
+
const change = await this.cursor.tryNext();
|
|
169
|
+
return change !== null && change !== void 0 ? change : null;
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
await this.close().catch(err => err);
|
|
173
|
+
throw error;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
})().then(change => callback(undefined, change), error => callback(error));
|
|
126
177
|
});
|
|
127
178
|
}
|
|
128
179
|
/** Is the cursor closed */
|
|
129
180
|
get closed() {
|
|
130
|
-
|
|
131
|
-
return this[kClosed] || ((_b = (_a = this.cursor) === null || _a === void 0 ? void 0 : _a.closed) !== null && _b !== void 0 ? _b : false);
|
|
181
|
+
return this[kClosed] || this.cursor.closed;
|
|
132
182
|
}
|
|
133
|
-
/** Close the Change Stream */
|
|
134
183
|
close(callback) {
|
|
135
184
|
this[kClosed] = true;
|
|
136
185
|
return (0, utils_1.maybePromise)(callback, cb => {
|
|
137
|
-
if (!this.cursor) {
|
|
138
|
-
return cb();
|
|
139
|
-
}
|
|
140
186
|
const cursor = this.cursor;
|
|
141
187
|
return cursor.close(err => {
|
|
142
188
|
this._endStream();
|
|
143
|
-
this.cursor = undefined;
|
|
144
189
|
return cb(err);
|
|
145
190
|
});
|
|
146
191
|
});
|
|
147
192
|
}
|
|
148
193
|
/**
|
|
149
194
|
* Return a modified Readable stream including a possible transform method.
|
|
150
|
-
*
|
|
195
|
+
*
|
|
196
|
+
* NOTE: When using a Stream to process change stream events, the stream will
|
|
197
|
+
* NOT automatically resume in the case a resumable error is encountered.
|
|
198
|
+
*
|
|
199
|
+
* @throws MongoChangeStreamError if the underlying cursor or the change stream is closed
|
|
151
200
|
*/
|
|
152
201
|
stream(options) {
|
|
202
|
+
if (this.closed) {
|
|
203
|
+
throw new error_1.MongoChangeStreamError(CHANGESTREAM_CLOSED_ERROR);
|
|
204
|
+
}
|
|
153
205
|
this.streamOptions = options;
|
|
154
|
-
if (!this.cursor)
|
|
155
|
-
throw new error_1.MongoChangeStreamError(NO_CURSOR_ERROR);
|
|
156
206
|
return this.cursor.stream(options);
|
|
157
207
|
}
|
|
158
|
-
tryNext(callback) {
|
|
159
|
-
this._setIsIterator();
|
|
160
|
-
return (0, utils_1.maybePromise)(callback, cb => {
|
|
161
|
-
this._getCursor((err, cursor) => {
|
|
162
|
-
if (err || !cursor)
|
|
163
|
-
return cb(err); // failed to resume, raise an error
|
|
164
|
-
return cursor.tryNext(cb);
|
|
165
|
-
});
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
208
|
/** @internal */
|
|
169
209
|
_setIsEmitter() {
|
|
170
210
|
if (this[kMode] === 'iterator') {
|
|
@@ -202,7 +242,7 @@ class ChangeStream extends mongo_types_1.TypedEventEmitter {
|
|
|
202
242
|
// This should never happen because of the assertion in the constructor
|
|
203
243
|
throw new error_1.MongoRuntimeError(`Changestream type should only be one of cluster, database, collection. Found ${this.type.toString()}`);
|
|
204
244
|
}
|
|
205
|
-
const changeStreamCursor = new ChangeStreamCursor(client, this.namespace, pipeline, options);
|
|
245
|
+
const changeStreamCursor = new change_stream_cursor_1.ChangeStreamCursor(client, this.namespace, pipeline, options);
|
|
206
246
|
for (const event of CHANGE_STREAM_EVENTS) {
|
|
207
247
|
changeStreamCursor.on(event, e => this.emit(event, e));
|
|
208
248
|
}
|
|
@@ -211,34 +251,12 @@ class ChangeStream extends mongo_types_1.TypedEventEmitter {
|
|
|
211
251
|
}
|
|
212
252
|
return changeStreamCursor;
|
|
213
253
|
}
|
|
214
|
-
/**
|
|
215
|
-
* This method performs a basic server selection loop, satisfying the requirements of
|
|
216
|
-
* ChangeStream resumability until the new SDAM layer can be used.
|
|
217
|
-
* @internal
|
|
218
|
-
*/
|
|
219
|
-
_waitForTopologyConnected(topology, options, callback) {
|
|
220
|
-
(0, timers_1.setTimeout)(() => {
|
|
221
|
-
if (options && options.start == null) {
|
|
222
|
-
options.start = (0, utils_1.now)();
|
|
223
|
-
}
|
|
224
|
-
const start = options.start || (0, utils_1.now)();
|
|
225
|
-
const timeout = options.timeout || SELECTION_TIMEOUT;
|
|
226
|
-
if (topology.isConnected()) {
|
|
227
|
-
return callback();
|
|
228
|
-
}
|
|
229
|
-
if ((0, utils_1.calculateDurationInMs)(start) > timeout) {
|
|
230
|
-
// TODO(NODE-3497): Replace with MongoNetworkTimeoutError
|
|
231
|
-
return callback(new error_1.MongoRuntimeError('Timed out waiting for connection'));
|
|
232
|
-
}
|
|
233
|
-
this._waitForTopologyConnected(topology, options, callback);
|
|
234
|
-
}, 500); // this is an arbitrary wait time to allow SDAM to transition
|
|
235
|
-
}
|
|
236
254
|
/** @internal */
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
255
|
+
_closeEmitterModeWithError(error) {
|
|
256
|
+
this.emit(ChangeStream.ERROR, error);
|
|
257
|
+
this.close(() => {
|
|
258
|
+
// nothing to do
|
|
259
|
+
});
|
|
242
260
|
}
|
|
243
261
|
/** @internal */
|
|
244
262
|
_streamEvents(cursor) {
|
|
@@ -246,8 +264,16 @@ class ChangeStream extends mongo_types_1.TypedEventEmitter {
|
|
|
246
264
|
this._setIsEmitter();
|
|
247
265
|
const stream = (_a = this[kCursorStream]) !== null && _a !== void 0 ? _a : cursor.stream();
|
|
248
266
|
this[kCursorStream] = stream;
|
|
249
|
-
stream.on('data', change =>
|
|
250
|
-
|
|
267
|
+
stream.on('data', change => {
|
|
268
|
+
try {
|
|
269
|
+
const processedChange = this._processChange(change);
|
|
270
|
+
this.emit(ChangeStream.CHANGE, processedChange);
|
|
271
|
+
}
|
|
272
|
+
catch (error) {
|
|
273
|
+
this.emit(ChangeStream.ERROR, error);
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
stream.on('error', error => this._processErrorStreamMode(error));
|
|
251
277
|
}
|
|
252
278
|
/** @internal */
|
|
253
279
|
_endStream() {
|
|
@@ -259,122 +285,64 @@ class ChangeStream extends mongo_types_1.TypedEventEmitter {
|
|
|
259
285
|
this[kCursorStream] = undefined;
|
|
260
286
|
}
|
|
261
287
|
/** @internal */
|
|
262
|
-
|
|
263
|
-
var _a;
|
|
288
|
+
_processChange(change) {
|
|
264
289
|
if (this[kClosed]) {
|
|
265
290
|
// TODO(NODE-3485): Replace with MongoChangeStreamClosedError
|
|
266
|
-
|
|
267
|
-
callback(new error_1.MongoAPIError(CHANGESTREAM_CLOSED_ERROR));
|
|
268
|
-
return;
|
|
291
|
+
throw new error_1.MongoAPIError(CHANGESTREAM_CLOSED_ERROR);
|
|
269
292
|
}
|
|
270
293
|
// a null change means the cursor has been notified, implicitly closing the change stream
|
|
271
294
|
if (change == null) {
|
|
272
295
|
// TODO(NODE-3485): Replace with MongoChangeStreamClosedError
|
|
273
|
-
|
|
296
|
+
throw new error_1.MongoRuntimeError(CHANGESTREAM_CLOSED_ERROR);
|
|
274
297
|
}
|
|
275
298
|
if (change && !change._id) {
|
|
276
|
-
|
|
299
|
+
throw new error_1.MongoChangeStreamError(NO_RESUME_TOKEN_ERROR);
|
|
277
300
|
}
|
|
278
301
|
// cache the resume token
|
|
279
|
-
|
|
302
|
+
this.cursor.cacheResumeToken(change._id);
|
|
280
303
|
// wipe the startAtOperationTime if there was one so that there won't be a conflict
|
|
281
304
|
// between resumeToken and startAtOperationTime if we need to reconnect the cursor
|
|
282
305
|
this.options.startAtOperationTime = undefined;
|
|
283
|
-
|
|
284
|
-
if (!callback)
|
|
285
|
-
return this.emit(ChangeStream.CHANGE, change);
|
|
286
|
-
return callback(undefined, change);
|
|
306
|
+
return change;
|
|
287
307
|
}
|
|
288
308
|
/** @internal */
|
|
289
|
-
|
|
290
|
-
const cursor = this.cursor;
|
|
309
|
+
_processErrorStreamMode(changeStreamError) {
|
|
291
310
|
// If the change stream has been closed explicitly, do not process error.
|
|
292
|
-
if (this[kClosed])
|
|
293
|
-
// TODO(NODE-3485): Replace with MongoChangeStreamClosedError
|
|
294
|
-
if (callback)
|
|
295
|
-
callback(new error_1.MongoAPIError(CHANGESTREAM_CLOSED_ERROR));
|
|
311
|
+
if (this[kClosed])
|
|
296
312
|
return;
|
|
297
|
-
|
|
298
|
-
// if the resume succeeds, continue with the new cursor
|
|
299
|
-
const resumeWithCursor = (newCursor) => {
|
|
300
|
-
this.cursor = newCursor;
|
|
301
|
-
this._processResumeQueue();
|
|
302
|
-
};
|
|
303
|
-
// otherwise, raise an error and close the change stream
|
|
304
|
-
const unresumableError = (err) => {
|
|
305
|
-
if (!callback) {
|
|
306
|
-
this.emit(ChangeStream.ERROR, err);
|
|
307
|
-
}
|
|
308
|
-
this.close(() => this._processResumeQueue(err));
|
|
309
|
-
};
|
|
310
|
-
if (cursor && (0, error_1.isResumableError)(error, (0, utils_1.maxWireVersion)(cursor.server))) {
|
|
311
|
-
this.cursor = undefined;
|
|
312
|
-
// stop listening to all events from old cursor
|
|
313
|
+
if ((0, error_1.isResumableError)(changeStreamError, this.cursor.maxWireVersion)) {
|
|
313
314
|
this._endStream();
|
|
314
|
-
|
|
315
|
-
cursor.close();
|
|
315
|
+
this.cursor.close().catch(() => null);
|
|
316
316
|
const topology = (0, utils_1.getTopology)(this.parent);
|
|
317
|
-
this.
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
// create a new cursor, preserving the old cursor's options
|
|
322
|
-
const newCursor = this._createChangeStreamCursor(cursor.resumeOptions);
|
|
323
|
-
// attempt to continue in emitter mode
|
|
324
|
-
if (!callback)
|
|
325
|
-
return resumeWithCursor(newCursor);
|
|
326
|
-
// attempt to continue in iterator mode
|
|
327
|
-
newCursor.hasNext(err => {
|
|
328
|
-
// if there's an error immediately after resuming, close the stream
|
|
329
|
-
if (err)
|
|
330
|
-
return unresumableError(err);
|
|
331
|
-
resumeWithCursor(newCursor);
|
|
332
|
-
});
|
|
317
|
+
topology.selectServer(this.cursor.readPreference, {}, serverSelectionError => {
|
|
318
|
+
if (serverSelectionError)
|
|
319
|
+
return this._closeEmitterModeWithError(changeStreamError);
|
|
320
|
+
this.cursor = this._createChangeStreamCursor(this.cursor.resumeOptions);
|
|
333
321
|
});
|
|
334
|
-
return;
|
|
335
322
|
}
|
|
336
|
-
|
|
337
|
-
|
|
323
|
+
else {
|
|
324
|
+
this._closeEmitterModeWithError(changeStreamError);
|
|
325
|
+
}
|
|
338
326
|
}
|
|
339
327
|
/** @internal */
|
|
340
|
-
|
|
328
|
+
_processErrorIteratorModeCallback(changeStreamError, callback) {
|
|
341
329
|
if (this[kClosed]) {
|
|
342
330
|
// TODO(NODE-3485): Replace with MongoChangeStreamClosedError
|
|
343
|
-
callback(new error_1.MongoAPIError(CHANGESTREAM_CLOSED_ERROR));
|
|
344
|
-
return;
|
|
331
|
+
return callback(new error_1.MongoAPIError(CHANGESTREAM_CLOSED_ERROR));
|
|
345
332
|
}
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
333
|
+
if ((0, error_1.isResumableError)(changeStreamError, this.cursor.maxWireVersion)) {
|
|
334
|
+
this.cursor.close().catch(() => null);
|
|
335
|
+
const topology = (0, utils_1.getTopology)(this.parent);
|
|
336
|
+
topology.selectServer(this.cursor.readPreference, {}, serverSelectionError => {
|
|
337
|
+
// if the topology can't reconnect, close the stream
|
|
338
|
+
if (serverSelectionError)
|
|
339
|
+
return this.close(() => callback(changeStreamError));
|
|
340
|
+
this.cursor = this._createChangeStreamCursor(this.cursor.resumeOptions);
|
|
341
|
+
callback();
|
|
342
|
+
});
|
|
350
343
|
}
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
}
|
|
354
|
-
/**
|
|
355
|
-
* Drain the resume queue when a new has become available
|
|
356
|
-
* @internal
|
|
357
|
-
*
|
|
358
|
-
* @param error - error getting a new cursor
|
|
359
|
-
*/
|
|
360
|
-
_processResumeQueue(error) {
|
|
361
|
-
var _a;
|
|
362
|
-
while (this[kResumeQueue].length) {
|
|
363
|
-
const request = this[kResumeQueue].pop();
|
|
364
|
-
if (!request)
|
|
365
|
-
break; // Should never occur but TS can't use the length check in the while condition
|
|
366
|
-
if (!error) {
|
|
367
|
-
if (this[kClosed]) {
|
|
368
|
-
// TODO(NODE-3485): Replace with MongoChangeStreamClosedError
|
|
369
|
-
request(new error_1.MongoAPIError(CHANGESTREAM_CLOSED_ERROR));
|
|
370
|
-
return;
|
|
371
|
-
}
|
|
372
|
-
if (!this.cursor) {
|
|
373
|
-
request(new error_1.MongoChangeStreamError(NO_CURSOR_ERROR));
|
|
374
|
-
return;
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
request(error, (_a = this.cursor) !== null && _a !== void 0 ? _a : undefined);
|
|
344
|
+
else {
|
|
345
|
+
this.close(() => callback(changeStreamError));
|
|
378
346
|
}
|
|
379
347
|
}
|
|
380
348
|
}
|
|
@@ -403,107 +371,4 @@ ChangeStream.ERROR = constants_1.ERROR;
|
|
|
403
371
|
* @event
|
|
404
372
|
*/
|
|
405
373
|
ChangeStream.RESUME_TOKEN_CHANGED = constants_1.RESUME_TOKEN_CHANGED;
|
|
406
|
-
/** @internal */
|
|
407
|
-
class ChangeStreamCursor extends abstract_cursor_1.AbstractCursor {
|
|
408
|
-
constructor(client, namespace, pipeline = [], options = {}) {
|
|
409
|
-
super(client, namespace, options);
|
|
410
|
-
this.pipeline = pipeline;
|
|
411
|
-
this.options = options;
|
|
412
|
-
this._resumeToken = null;
|
|
413
|
-
this.startAtOperationTime = options.startAtOperationTime;
|
|
414
|
-
if (options.startAfter) {
|
|
415
|
-
this.resumeToken = options.startAfter;
|
|
416
|
-
}
|
|
417
|
-
else if (options.resumeAfter) {
|
|
418
|
-
this.resumeToken = options.resumeAfter;
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
set resumeToken(token) {
|
|
422
|
-
this._resumeToken = token;
|
|
423
|
-
this.emit(ChangeStream.RESUME_TOKEN_CHANGED, token);
|
|
424
|
-
}
|
|
425
|
-
get resumeToken() {
|
|
426
|
-
return this._resumeToken;
|
|
427
|
-
}
|
|
428
|
-
get resumeOptions() {
|
|
429
|
-
const options = {
|
|
430
|
-
...this.options
|
|
431
|
-
};
|
|
432
|
-
for (const key of ['resumeAfter', 'startAfter', 'startAtOperationTime']) {
|
|
433
|
-
delete options[key];
|
|
434
|
-
}
|
|
435
|
-
if (this.resumeToken != null) {
|
|
436
|
-
if (this.options.startAfter && !this.hasReceived) {
|
|
437
|
-
options.startAfter = this.resumeToken;
|
|
438
|
-
}
|
|
439
|
-
else {
|
|
440
|
-
options.resumeAfter = this.resumeToken;
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
else if (this.startAtOperationTime != null && (0, utils_1.maxWireVersion)(this.server) >= 7) {
|
|
444
|
-
options.startAtOperationTime = this.startAtOperationTime;
|
|
445
|
-
}
|
|
446
|
-
return options;
|
|
447
|
-
}
|
|
448
|
-
cacheResumeToken(resumeToken) {
|
|
449
|
-
if (this.bufferedCount() === 0 && this.postBatchResumeToken) {
|
|
450
|
-
this.resumeToken = this.postBatchResumeToken;
|
|
451
|
-
}
|
|
452
|
-
else {
|
|
453
|
-
this.resumeToken = resumeToken;
|
|
454
|
-
}
|
|
455
|
-
this.hasReceived = true;
|
|
456
|
-
}
|
|
457
|
-
_processBatch(response) {
|
|
458
|
-
const cursor = response.cursor;
|
|
459
|
-
if (cursor.postBatchResumeToken) {
|
|
460
|
-
this.postBatchResumeToken = response.cursor.postBatchResumeToken;
|
|
461
|
-
const batch = 'firstBatch' in response.cursor ? response.cursor.firstBatch : response.cursor.nextBatch;
|
|
462
|
-
if (batch.length === 0) {
|
|
463
|
-
this.resumeToken = cursor.postBatchResumeToken;
|
|
464
|
-
}
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
|
-
clone() {
|
|
468
|
-
return new ChangeStreamCursor(this.client, this.namespace, this.pipeline, {
|
|
469
|
-
...this.cursorOptions
|
|
470
|
-
});
|
|
471
|
-
}
|
|
472
|
-
_initialize(session, callback) {
|
|
473
|
-
const aggregateOperation = new aggregate_1.AggregateOperation(this.namespace, this.pipeline, {
|
|
474
|
-
...this.cursorOptions,
|
|
475
|
-
...this.options,
|
|
476
|
-
session
|
|
477
|
-
});
|
|
478
|
-
(0, execute_operation_1.executeOperation)(session.client, aggregateOperation, (err, response) => {
|
|
479
|
-
if (err || response == null) {
|
|
480
|
-
return callback(err);
|
|
481
|
-
}
|
|
482
|
-
const server = aggregateOperation.server;
|
|
483
|
-
if (this.startAtOperationTime == null &&
|
|
484
|
-
this.resumeAfter == null &&
|
|
485
|
-
this.startAfter == null &&
|
|
486
|
-
(0, utils_1.maxWireVersion)(server) >= 7) {
|
|
487
|
-
this.startAtOperationTime = response.operationTime;
|
|
488
|
-
}
|
|
489
|
-
this._processBatch(response);
|
|
490
|
-
this.emit(ChangeStream.INIT, response);
|
|
491
|
-
this.emit(ChangeStream.RESPONSE);
|
|
492
|
-
// TODO: NODE-2882
|
|
493
|
-
callback(undefined, { server, session, response });
|
|
494
|
-
});
|
|
495
|
-
}
|
|
496
|
-
_getMore(batchSize, callback) {
|
|
497
|
-
super._getMore(batchSize, (err, response) => {
|
|
498
|
-
if (err) {
|
|
499
|
-
return callback(err);
|
|
500
|
-
}
|
|
501
|
-
this._processBatch(response);
|
|
502
|
-
this.emit(ChangeStream.MORE, response);
|
|
503
|
-
this.emit(ChangeStream.RESPONSE);
|
|
504
|
-
callback(err, response);
|
|
505
|
-
});
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
exports.ChangeStreamCursor = ChangeStreamCursor;
|
|
509
374
|
//# sourceMappingURL=change_stream.js.map
|
package/lib/change_stream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change_stream.js","sourceRoot":"","sources":["../src/change_stream.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"change_stream.js","sourceRoot":"","sources":["../src/change_stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -157,19 +157,6 @@ const OP_QUERY_KEYS = [
|
|
|
157
157
|
/** Extract the actual command from the query, possibly up-converting if it's a legacy format */
|
|
158
158
|
function extractCommand(command) {
|
|
159
159
|
var _a;
|
|
160
|
-
if (command instanceof commands_1.GetMore) {
|
|
161
|
-
return {
|
|
162
|
-
getMore: (0, utils_1.deepCopy)(command.cursorId),
|
|
163
|
-
collection: collectionName(command),
|
|
164
|
-
batchSize: command.numberToReturn
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
if (command instanceof commands_1.KillCursor) {
|
|
168
|
-
return {
|
|
169
|
-
killCursors: collectionName(command),
|
|
170
|
-
cursors: (0, utils_1.deepCopy)(command.cursorIds)
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
160
|
if (command instanceof commands_1.Msg) {
|
|
174
161
|
return (0, utils_1.deepCopy)(command.command);
|
|
175
162
|
}
|
|
@@ -195,9 +182,8 @@ function extractCommand(command) {
|
|
|
195
182
|
}
|
|
196
183
|
});
|
|
197
184
|
OP_QUERY_KEYS.forEach(key => {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
result[opKey] = command[opKey];
|
|
185
|
+
if (command[key]) {
|
|
186
|
+
result[key] = command[key];
|
|
201
187
|
}
|
|
202
188
|
});
|
|
203
189
|
if (command.pre32Limit != null) {
|
|
@@ -224,25 +210,9 @@ function extractCommand(command) {
|
|
|
224
210
|
return command.query ? clonedQuery : clonedCommand;
|
|
225
211
|
}
|
|
226
212
|
function extractReply(command, reply) {
|
|
227
|
-
if (command instanceof commands_1.KillCursor) {
|
|
228
|
-
return {
|
|
229
|
-
ok: 1,
|
|
230
|
-
cursorsUnknown: command.cursorIds
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
213
|
if (!reply) {
|
|
234
214
|
return reply;
|
|
235
215
|
}
|
|
236
|
-
if (command instanceof commands_1.GetMore) {
|
|
237
|
-
return {
|
|
238
|
-
ok: 1,
|
|
239
|
-
cursor: {
|
|
240
|
-
id: (0, utils_1.deepCopy)(reply.cursorId),
|
|
241
|
-
ns: namespace(command),
|
|
242
|
-
nextBatch: (0, utils_1.deepCopy)(reply.documents)
|
|
243
|
-
}
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
216
|
if (command instanceof commands_1.Msg) {
|
|
247
217
|
return (0, utils_1.deepCopy)(reply.result ? reply.result : reply);
|
|
248
218
|
}
|