mongodb 4.5.0 → 4.6.0-alpha.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/change_stream.js +232 -235
- package/lib/change_stream.js.map +1 -1
- package/lib/cmap/auth/mongodb_aws.js +3 -0
- package/lib/cmap/auth/mongodb_aws.js.map +1 -1
- package/lib/cmap/commands.js +12 -11
- package/lib/cmap/commands.js.map +1 -1
- package/lib/cmap/connect.js +8 -1
- package/lib/cmap/connect.js.map +1 -1
- package/lib/cmap/connection.js +0 -59
- package/lib/cmap/connection.js.map +1 -1
- package/lib/collection.js +32 -1
- package/lib/collection.js.map +1 -1
- package/lib/connection_string.js +29 -11
- package/lib/connection_string.js.map +1 -1
- package/lib/constants.js +8 -1
- package/lib/constants.js.map +1 -1
- package/lib/db.js +7 -0
- package/lib/db.js.map +1 -1
- package/lib/encrypter.js +4 -1
- package/lib/encrypter.js.map +1 -1
- package/lib/error.js +37 -24
- package/lib/error.js.map +1 -1
- package/lib/gridfs/upload.js +1 -1
- package/lib/gridfs/upload.js.map +1 -1
- package/lib/index.js +4 -3
- package/lib/index.js.map +1 -1
- package/lib/mongo_client.js +7 -0
- package/lib/mongo_client.js.map +1 -1
- package/lib/operations/command.js +0 -3
- package/lib/operations/command.js.map +1 -1
- package/lib/operations/create_collection.js +51 -17
- package/lib/operations/create_collection.js.map +1 -1
- package/lib/operations/drop.js +67 -7
- package/lib/operations/drop.js.map +1 -1
- package/lib/operations/execute_operation.js +2 -1
- package/lib/operations/execute_operation.js.map +1 -1
- package/lib/operations/find.js +0 -51
- package/lib/operations/find.js.map +1 -1
- package/lib/sdam/server.js +29 -21
- package/lib/sdam/server.js.map +1 -1
- package/lib/sdam/topology.js +22 -22
- package/lib/sdam/topology.js.map +1 -1
- package/lib/sdam/topology_description.js +2 -1
- package/lib/sdam/topology_description.js.map +1 -1
- package/lib/utils.js.map +1 -1
- package/mongodb.d.ts +299 -71
- package/package.json +3 -3
- package/src/change_stream.ts +532 -414
- package/src/cmap/auth/mongodb_aws.ts +5 -0
- package/src/cmap/commands.ts +23 -22
- package/src/cmap/connect.ts +13 -2
- package/src/cmap/connection.ts +1 -74
- package/src/collection.ts +36 -5
- package/src/connection_string.ts +39 -14
- package/src/constants.ts +6 -0
- package/src/cursor/abstract_cursor.ts +1 -1
- package/src/db.ts +13 -6
- package/src/deps.ts +32 -3
- package/src/encrypter.ts +4 -1
- package/src/error.ts +41 -27
- package/src/gridfs/upload.ts +1 -1
- package/src/index.ts +13 -0
- package/src/mongo_client.ts +18 -10
- package/src/mongo_types.ts +1 -1
- package/src/operations/command.ts +0 -4
- package/src/operations/create_collection.ts +71 -20
- package/src/operations/drop.ts +88 -6
- package/src/operations/execute_operation.ts +3 -2
- package/src/operations/find.ts +0 -80
- package/src/sdam/server.ts +39 -36
- package/src/sdam/topology.ts +30 -25
- package/src/sdam/topology_description.ts +2 -1
- package/src/utils.ts +1 -1
package/lib/change_stream.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ChangeStreamCursor = exports.ChangeStream = void 0;
|
|
4
4
|
const Denque = require("denque");
|
|
5
5
|
const collection_1 = require("./collection");
|
|
6
|
+
const constants_1 = require("./constants");
|
|
6
7
|
const abstract_cursor_1 = require("./cursor/abstract_cursor");
|
|
7
8
|
const db_1 = require("./db");
|
|
8
9
|
const error_1 = require("./error");
|
|
@@ -38,6 +39,8 @@ const CHANGE_DOMAIN_TYPES = {
|
|
|
38
39
|
DATABASE: Symbol('Database'),
|
|
39
40
|
CLUSTER: Symbol('Cluster')
|
|
40
41
|
};
|
|
42
|
+
const SELECTION_TIMEOUT = 30000;
|
|
43
|
+
const CHANGE_STREAM_EVENTS = [constants_1.RESUME_TOKEN_CHANGED, constants_1.END, constants_1.CLOSE];
|
|
41
44
|
const NO_RESUME_TOKEN_ERROR = 'A change stream document has been received that lacks a resume token (_id).';
|
|
42
45
|
const NO_CURSOR_ERROR = 'ChangeStream has no cursor';
|
|
43
46
|
const CHANGESTREAM_CLOSED_ERROR = 'ChangeStream is closed';
|
|
@@ -75,13 +78,13 @@ class ChangeStream extends mongo_types_1.TypedEventEmitter {
|
|
|
75
78
|
}
|
|
76
79
|
this[kResumeQueue] = new Denque();
|
|
77
80
|
// Create contained Change Stream cursor
|
|
78
|
-
this.cursor =
|
|
81
|
+
this.cursor = this._createChangeStreamCursor(options);
|
|
79
82
|
this[kClosed] = false;
|
|
80
83
|
this[kMode] = false;
|
|
81
84
|
// Listen for any `change` listeners being added to ChangeStream
|
|
82
85
|
this.on('newListener', eventName => {
|
|
83
86
|
if (eventName === 'change' && this.cursor && this.listenerCount('change') === 0) {
|
|
84
|
-
|
|
87
|
+
this._streamEvents(this.cursor);
|
|
85
88
|
}
|
|
86
89
|
});
|
|
87
90
|
this.on('removeListener', eventName => {
|
|
@@ -101,9 +104,9 @@ class ChangeStream extends mongo_types_1.TypedEventEmitter {
|
|
|
101
104
|
return (_a = this.cursor) === null || _a === void 0 ? void 0 : _a.resumeToken;
|
|
102
105
|
}
|
|
103
106
|
hasNext(callback) {
|
|
104
|
-
|
|
107
|
+
this._setIsIterator();
|
|
105
108
|
return (0, utils_1.maybePromise)(callback, cb => {
|
|
106
|
-
|
|
109
|
+
this._getCursor((err, cursor) => {
|
|
107
110
|
if (err || !cursor)
|
|
108
111
|
return cb(err); // failed to resume, raise an error
|
|
109
112
|
cursor.hasNext(cb);
|
|
@@ -111,18 +114,18 @@ class ChangeStream extends mongo_types_1.TypedEventEmitter {
|
|
|
111
114
|
});
|
|
112
115
|
}
|
|
113
116
|
next(callback) {
|
|
114
|
-
|
|
117
|
+
this._setIsIterator();
|
|
115
118
|
return (0, utils_1.maybePromise)(callback, cb => {
|
|
116
|
-
|
|
119
|
+
this._getCursor((err, cursor) => {
|
|
117
120
|
if (err || !cursor)
|
|
118
121
|
return cb(err); // failed to resume, raise an error
|
|
119
122
|
cursor.next((error, change) => {
|
|
120
123
|
if (error) {
|
|
121
124
|
this[kResumeQueue].push(() => this.next(cb));
|
|
122
|
-
|
|
125
|
+
this._processError(error, cb);
|
|
123
126
|
return;
|
|
124
127
|
}
|
|
125
|
-
|
|
128
|
+
this._processNewChange(change !== null && change !== void 0 ? change : null, cb);
|
|
126
129
|
});
|
|
127
130
|
});
|
|
128
131
|
});
|
|
@@ -141,7 +144,7 @@ class ChangeStream extends mongo_types_1.TypedEventEmitter {
|
|
|
141
144
|
}
|
|
142
145
|
const cursor = this.cursor;
|
|
143
146
|
return cursor.close(err => {
|
|
144
|
-
|
|
147
|
+
this._endStream();
|
|
145
148
|
this.cursor = undefined;
|
|
146
149
|
return cb(err);
|
|
147
150
|
});
|
|
@@ -158,41 +161,243 @@ class ChangeStream extends mongo_types_1.TypedEventEmitter {
|
|
|
158
161
|
return this.cursor.stream(options);
|
|
159
162
|
}
|
|
160
163
|
tryNext(callback) {
|
|
161
|
-
|
|
164
|
+
this._setIsIterator();
|
|
162
165
|
return (0, utils_1.maybePromise)(callback, cb => {
|
|
163
|
-
|
|
166
|
+
this._getCursor((err, cursor) => {
|
|
164
167
|
if (err || !cursor)
|
|
165
168
|
return cb(err); // failed to resume, raise an error
|
|
166
169
|
return cursor.tryNext(cb);
|
|
167
170
|
});
|
|
168
171
|
});
|
|
169
172
|
}
|
|
173
|
+
/** @internal */
|
|
174
|
+
_setIsEmitter() {
|
|
175
|
+
if (this[kMode] === 'iterator') {
|
|
176
|
+
// TODO(NODE-3485): Replace with MongoChangeStreamModeError
|
|
177
|
+
throw new error_1.MongoAPIError('ChangeStream cannot be used as an EventEmitter after being used as an iterator');
|
|
178
|
+
}
|
|
179
|
+
this[kMode] = 'emitter';
|
|
180
|
+
}
|
|
181
|
+
/** @internal */
|
|
182
|
+
_setIsIterator() {
|
|
183
|
+
if (this[kMode] === 'emitter') {
|
|
184
|
+
// TODO(NODE-3485): Replace with MongoChangeStreamModeError
|
|
185
|
+
throw new error_1.MongoAPIError('ChangeStream cannot be used as an iterator after being used as an EventEmitter');
|
|
186
|
+
}
|
|
187
|
+
this[kMode] = 'iterator';
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Create a new change stream cursor based on self's configuration
|
|
191
|
+
* @internal
|
|
192
|
+
*/
|
|
193
|
+
_createChangeStreamCursor(options) {
|
|
194
|
+
const changeStreamStageOptions = (0, utils_1.filterOptions)(options, CHANGE_STREAM_OPTIONS);
|
|
195
|
+
if (this.type === CHANGE_DOMAIN_TYPES.CLUSTER) {
|
|
196
|
+
changeStreamStageOptions.allChangesForCluster = true;
|
|
197
|
+
}
|
|
198
|
+
const pipeline = [{ $changeStream: changeStreamStageOptions }, ...this.pipeline];
|
|
199
|
+
const cursorOptions = (0, utils_1.filterOptions)(options, CURSOR_OPTIONS);
|
|
200
|
+
const changeStreamCursor = new ChangeStreamCursor((0, utils_1.getTopology)(this.parent), this.namespace, pipeline, cursorOptions);
|
|
201
|
+
for (const event of CHANGE_STREAM_EVENTS) {
|
|
202
|
+
changeStreamCursor.on(event, e => this.emit(event, e));
|
|
203
|
+
}
|
|
204
|
+
if (this.listenerCount(ChangeStream.CHANGE) > 0) {
|
|
205
|
+
this._streamEvents(changeStreamCursor);
|
|
206
|
+
}
|
|
207
|
+
return changeStreamCursor;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* This method performs a basic server selection loop, satisfying the requirements of
|
|
211
|
+
* ChangeStream resumability until the new SDAM layer can be used.
|
|
212
|
+
* @internal
|
|
213
|
+
*/
|
|
214
|
+
_waitForTopologyConnected(topology, options, callback) {
|
|
215
|
+
setTimeout(() => {
|
|
216
|
+
if (options && options.start == null) {
|
|
217
|
+
options.start = (0, utils_1.now)();
|
|
218
|
+
}
|
|
219
|
+
const start = options.start || (0, utils_1.now)();
|
|
220
|
+
const timeout = options.timeout || SELECTION_TIMEOUT;
|
|
221
|
+
if (topology.isConnected()) {
|
|
222
|
+
return callback();
|
|
223
|
+
}
|
|
224
|
+
if ((0, utils_1.calculateDurationInMs)(start) > timeout) {
|
|
225
|
+
// TODO(NODE-3497): Replace with MongoNetworkTimeoutError
|
|
226
|
+
return callback(new error_1.MongoRuntimeError('Timed out waiting for connection'));
|
|
227
|
+
}
|
|
228
|
+
this._waitForTopologyConnected(topology, options, callback);
|
|
229
|
+
}, 500); // this is an arbitrary wait time to allow SDAM to transition
|
|
230
|
+
}
|
|
231
|
+
/** @internal */
|
|
232
|
+
_closeWithError(error, callback) {
|
|
233
|
+
if (!callback) {
|
|
234
|
+
this.emit(ChangeStream.ERROR, error);
|
|
235
|
+
}
|
|
236
|
+
this.close(() => callback && callback(error));
|
|
237
|
+
}
|
|
238
|
+
/** @internal */
|
|
239
|
+
_streamEvents(cursor) {
|
|
240
|
+
var _a;
|
|
241
|
+
this._setIsEmitter();
|
|
242
|
+
const stream = (_a = this[kCursorStream]) !== null && _a !== void 0 ? _a : cursor.stream();
|
|
243
|
+
this[kCursorStream] = stream;
|
|
244
|
+
stream.on('data', change => this._processNewChange(change));
|
|
245
|
+
stream.on('error', error => this._processError(error));
|
|
246
|
+
}
|
|
247
|
+
/** @internal */
|
|
248
|
+
_endStream() {
|
|
249
|
+
const cursorStream = this[kCursorStream];
|
|
250
|
+
if (cursorStream) {
|
|
251
|
+
['data', 'close', 'end', 'error'].forEach(event => cursorStream.removeAllListeners(event));
|
|
252
|
+
cursorStream.destroy();
|
|
253
|
+
}
|
|
254
|
+
this[kCursorStream] = undefined;
|
|
255
|
+
}
|
|
256
|
+
/** @internal */
|
|
257
|
+
_processNewChange(change, callback) {
|
|
258
|
+
var _a;
|
|
259
|
+
if (this[kClosed]) {
|
|
260
|
+
// TODO(NODE-3485): Replace with MongoChangeStreamClosedError
|
|
261
|
+
if (callback)
|
|
262
|
+
callback(new error_1.MongoAPIError(CHANGESTREAM_CLOSED_ERROR));
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
// a null change means the cursor has been notified, implicitly closing the change stream
|
|
266
|
+
if (change == null) {
|
|
267
|
+
// TODO(NODE-3485): Replace with MongoChangeStreamClosedError
|
|
268
|
+
return this._closeWithError(new error_1.MongoRuntimeError(CHANGESTREAM_CLOSED_ERROR), callback);
|
|
269
|
+
}
|
|
270
|
+
if (change && !change._id) {
|
|
271
|
+
return this._closeWithError(new error_1.MongoChangeStreamError(NO_RESUME_TOKEN_ERROR), callback);
|
|
272
|
+
}
|
|
273
|
+
// cache the resume token
|
|
274
|
+
(_a = this.cursor) === null || _a === void 0 ? void 0 : _a.cacheResumeToken(change._id);
|
|
275
|
+
// wipe the startAtOperationTime if there was one so that there won't be a conflict
|
|
276
|
+
// between resumeToken and startAtOperationTime if we need to reconnect the cursor
|
|
277
|
+
this.options.startAtOperationTime = undefined;
|
|
278
|
+
// Return the change
|
|
279
|
+
if (!callback)
|
|
280
|
+
return this.emit(ChangeStream.CHANGE, change);
|
|
281
|
+
return callback(undefined, change);
|
|
282
|
+
}
|
|
283
|
+
/** @internal */
|
|
284
|
+
_processError(error, callback) {
|
|
285
|
+
const cursor = this.cursor;
|
|
286
|
+
// If the change stream has been closed explicitly, do not process error.
|
|
287
|
+
if (this[kClosed]) {
|
|
288
|
+
// TODO(NODE-3485): Replace with MongoChangeStreamClosedError
|
|
289
|
+
if (callback)
|
|
290
|
+
callback(new error_1.MongoAPIError(CHANGESTREAM_CLOSED_ERROR));
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
// if the resume succeeds, continue with the new cursor
|
|
294
|
+
const resumeWithCursor = (newCursor) => {
|
|
295
|
+
this.cursor = newCursor;
|
|
296
|
+
this._processResumeQueue();
|
|
297
|
+
};
|
|
298
|
+
// otherwise, raise an error and close the change stream
|
|
299
|
+
const unresumableError = (err) => {
|
|
300
|
+
if (!callback) {
|
|
301
|
+
this.emit(ChangeStream.ERROR, err);
|
|
302
|
+
}
|
|
303
|
+
this.close(() => this._processResumeQueue(err));
|
|
304
|
+
};
|
|
305
|
+
if (cursor && (0, error_1.isResumableError)(error, (0, utils_1.maxWireVersion)(cursor.server))) {
|
|
306
|
+
this.cursor = undefined;
|
|
307
|
+
// stop listening to all events from old cursor
|
|
308
|
+
this._endStream();
|
|
309
|
+
// close internal cursor, ignore errors
|
|
310
|
+
cursor.close();
|
|
311
|
+
const topology = (0, utils_1.getTopology)(this.parent);
|
|
312
|
+
this._waitForTopologyConnected(topology, { readPreference: cursor.readPreference }, err => {
|
|
313
|
+
// if the topology can't reconnect, close the stream
|
|
314
|
+
if (err)
|
|
315
|
+
return unresumableError(err);
|
|
316
|
+
// create a new cursor, preserving the old cursor's options
|
|
317
|
+
const newCursor = this._createChangeStreamCursor(cursor.resumeOptions);
|
|
318
|
+
// attempt to continue in emitter mode
|
|
319
|
+
if (!callback)
|
|
320
|
+
return resumeWithCursor(newCursor);
|
|
321
|
+
// attempt to continue in iterator mode
|
|
322
|
+
newCursor.hasNext(err => {
|
|
323
|
+
// if there's an error immediately after resuming, close the stream
|
|
324
|
+
if (err)
|
|
325
|
+
return unresumableError(err);
|
|
326
|
+
resumeWithCursor(newCursor);
|
|
327
|
+
});
|
|
328
|
+
});
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
// if initial error wasn't resumable, raise an error and close the change stream
|
|
332
|
+
return this._closeWithError(error, callback);
|
|
333
|
+
}
|
|
334
|
+
/** @internal */
|
|
335
|
+
_getCursor(callback) {
|
|
336
|
+
if (this[kClosed]) {
|
|
337
|
+
// TODO(NODE-3485): Replace with MongoChangeStreamClosedError
|
|
338
|
+
callback(new error_1.MongoAPIError(CHANGESTREAM_CLOSED_ERROR));
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
341
|
+
// if a cursor exists and it is open, return it
|
|
342
|
+
if (this.cursor) {
|
|
343
|
+
callback(undefined, this.cursor);
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
// no cursor, queue callback until topology reconnects
|
|
347
|
+
this[kResumeQueue].push(callback);
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Drain the resume queue when a new has become available
|
|
351
|
+
* @internal
|
|
352
|
+
*
|
|
353
|
+
* @param err - error getting a new cursor
|
|
354
|
+
*/
|
|
355
|
+
_processResumeQueue(error) {
|
|
356
|
+
var _a;
|
|
357
|
+
while (this[kResumeQueue].length) {
|
|
358
|
+
const request = this[kResumeQueue].pop();
|
|
359
|
+
if (!request)
|
|
360
|
+
break; // Should never occur but TS can't use the length check in the while condition
|
|
361
|
+
if (!error) {
|
|
362
|
+
if (this[kClosed]) {
|
|
363
|
+
// TODO(NODE-3485): Replace with MongoChangeStreamClosedError
|
|
364
|
+
request(new error_1.MongoAPIError(CHANGESTREAM_CLOSED_ERROR));
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
if (!this.cursor) {
|
|
368
|
+
request(new error_1.MongoChangeStreamError(NO_CURSOR_ERROR));
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
request(error, (_a = this.cursor) !== null && _a !== void 0 ? _a : undefined);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
170
375
|
}
|
|
171
376
|
exports.ChangeStream = ChangeStream;
|
|
172
377
|
/** @event */
|
|
173
|
-
ChangeStream.RESPONSE =
|
|
378
|
+
ChangeStream.RESPONSE = constants_1.RESPONSE;
|
|
174
379
|
/** @event */
|
|
175
|
-
ChangeStream.MORE =
|
|
380
|
+
ChangeStream.MORE = constants_1.MORE;
|
|
176
381
|
/** @event */
|
|
177
|
-
ChangeStream.INIT =
|
|
382
|
+
ChangeStream.INIT = constants_1.INIT;
|
|
178
383
|
/** @event */
|
|
179
|
-
ChangeStream.CLOSE =
|
|
384
|
+
ChangeStream.CLOSE = constants_1.CLOSE;
|
|
180
385
|
/**
|
|
181
386
|
* Fired for each new matching change in the specified namespace. Attaching a `change`
|
|
182
387
|
* event listener to a Change Stream will switch the stream into flowing mode. Data will
|
|
183
388
|
* then be passed as soon as it is available.
|
|
184
389
|
* @event
|
|
185
390
|
*/
|
|
186
|
-
ChangeStream.CHANGE =
|
|
391
|
+
ChangeStream.CHANGE = constants_1.CHANGE;
|
|
187
392
|
/** @event */
|
|
188
|
-
ChangeStream.END =
|
|
393
|
+
ChangeStream.END = constants_1.END;
|
|
189
394
|
/** @event */
|
|
190
|
-
ChangeStream.ERROR =
|
|
395
|
+
ChangeStream.ERROR = constants_1.ERROR;
|
|
191
396
|
/**
|
|
192
397
|
* Emitted each time the change stream stores a new resume token.
|
|
193
398
|
* @event
|
|
194
399
|
*/
|
|
195
|
-
ChangeStream.RESUME_TOKEN_CHANGED =
|
|
400
|
+
ChangeStream.RESUME_TOKEN_CHANGED = constants_1.RESUME_TOKEN_CHANGED;
|
|
196
401
|
/** @internal */
|
|
197
402
|
class ChangeStreamCursor extends abstract_cursor_1.AbstractCursor {
|
|
198
403
|
constructor(topology, namespace, pipeline = [], options = {}) {
|
|
@@ -216,7 +421,7 @@ class ChangeStreamCursor extends abstract_cursor_1.AbstractCursor {
|
|
|
216
421
|
return this._resumeToken;
|
|
217
422
|
}
|
|
218
423
|
get resumeOptions() {
|
|
219
|
-
const result =
|
|
424
|
+
const result = (0, utils_1.filterOptions)(this.options, CURSOR_OPTIONS);
|
|
220
425
|
if (this.resumeToken || this.startAtOperationTime) {
|
|
221
426
|
for (const key of ['resumeAfter', 'startAfter', 'startAtOperationTime']) {
|
|
222
427
|
Reflect.deleteProperty(result, key);
|
|
@@ -240,11 +445,12 @@ class ChangeStreamCursor extends abstract_cursor_1.AbstractCursor {
|
|
|
240
445
|
}
|
|
241
446
|
this.hasReceived = true;
|
|
242
447
|
}
|
|
243
|
-
_processBatch(
|
|
244
|
-
const cursor =
|
|
448
|
+
_processBatch(response) {
|
|
449
|
+
const cursor = response.cursor;
|
|
245
450
|
if (cursor.postBatchResumeToken) {
|
|
246
|
-
this.postBatchResumeToken = cursor.postBatchResumeToken;
|
|
247
|
-
|
|
451
|
+
this.postBatchResumeToken = response.cursor.postBatchResumeToken;
|
|
452
|
+
const batch = 'firstBatch' in response.cursor ? response.cursor.firstBatch : response.cursor.nextBatch;
|
|
453
|
+
if (batch.length === 0) {
|
|
248
454
|
this.resumeToken = cursor.postBatchResumeToken;
|
|
249
455
|
}
|
|
250
456
|
}
|
|
@@ -271,7 +477,7 @@ class ChangeStreamCursor extends abstract_cursor_1.AbstractCursor {
|
|
|
271
477
|
(0, utils_1.maxWireVersion)(server) >= 7) {
|
|
272
478
|
this.startAtOperationTime = response.operationTime;
|
|
273
479
|
}
|
|
274
|
-
this._processBatch(
|
|
480
|
+
this._processBatch(response);
|
|
275
481
|
this.emit(ChangeStream.INIT, response);
|
|
276
482
|
this.emit(ChangeStream.RESPONSE);
|
|
277
483
|
// TODO: NODE-2882
|
|
@@ -283,7 +489,7 @@ class ChangeStreamCursor extends abstract_cursor_1.AbstractCursor {
|
|
|
283
489
|
if (err) {
|
|
284
490
|
return callback(err);
|
|
285
491
|
}
|
|
286
|
-
this._processBatch(
|
|
492
|
+
this._processBatch(response);
|
|
287
493
|
this.emit(ChangeStream.MORE, response);
|
|
288
494
|
this.emit(ChangeStream.RESPONSE);
|
|
289
495
|
callback(err, response);
|
|
@@ -291,213 +497,4 @@ class ChangeStreamCursor extends abstract_cursor_1.AbstractCursor {
|
|
|
291
497
|
}
|
|
292
498
|
}
|
|
293
499
|
exports.ChangeStreamCursor = ChangeStreamCursor;
|
|
294
|
-
const CHANGE_STREAM_EVENTS = [
|
|
295
|
-
ChangeStream.RESUME_TOKEN_CHANGED,
|
|
296
|
-
ChangeStream.END,
|
|
297
|
-
ChangeStream.CLOSE
|
|
298
|
-
];
|
|
299
|
-
function setIsEmitter(changeStream) {
|
|
300
|
-
if (changeStream[kMode] === 'iterator') {
|
|
301
|
-
// TODO(NODE-3485): Replace with MongoChangeStreamModeError
|
|
302
|
-
throw new error_1.MongoAPIError('ChangeStream cannot be used as an EventEmitter after being used as an iterator');
|
|
303
|
-
}
|
|
304
|
-
changeStream[kMode] = 'emitter';
|
|
305
|
-
}
|
|
306
|
-
function setIsIterator(changeStream) {
|
|
307
|
-
if (changeStream[kMode] === 'emitter') {
|
|
308
|
-
// TODO(NODE-3485): Replace with MongoChangeStreamModeError
|
|
309
|
-
throw new error_1.MongoAPIError('ChangeStream cannot be used as an iterator after being used as an EventEmitter');
|
|
310
|
-
}
|
|
311
|
-
changeStream[kMode] = 'iterator';
|
|
312
|
-
}
|
|
313
|
-
/**
|
|
314
|
-
* Create a new change stream cursor based on self's configuration
|
|
315
|
-
* @internal
|
|
316
|
-
*/
|
|
317
|
-
function createChangeStreamCursor(changeStream, options) {
|
|
318
|
-
const changeStreamStageOptions = applyKnownOptions(options, CHANGE_STREAM_OPTIONS);
|
|
319
|
-
if (changeStream.type === CHANGE_DOMAIN_TYPES.CLUSTER) {
|
|
320
|
-
changeStreamStageOptions.allChangesForCluster = true;
|
|
321
|
-
}
|
|
322
|
-
const pipeline = [{ $changeStream: changeStreamStageOptions }].concat(changeStream.pipeline);
|
|
323
|
-
const cursorOptions = applyKnownOptions(options, CURSOR_OPTIONS);
|
|
324
|
-
const changeStreamCursor = new ChangeStreamCursor((0, utils_1.getTopology)(changeStream.parent), changeStream.namespace, pipeline, cursorOptions);
|
|
325
|
-
for (const event of CHANGE_STREAM_EVENTS) {
|
|
326
|
-
changeStreamCursor.on(event, e => changeStream.emit(event, e));
|
|
327
|
-
}
|
|
328
|
-
if (changeStream.listenerCount(ChangeStream.CHANGE) > 0) {
|
|
329
|
-
streamEvents(changeStream, changeStreamCursor);
|
|
330
|
-
}
|
|
331
|
-
return changeStreamCursor;
|
|
332
|
-
}
|
|
333
|
-
function applyKnownOptions(source, options) {
|
|
334
|
-
const result = {};
|
|
335
|
-
for (const option of options) {
|
|
336
|
-
if (option in source) {
|
|
337
|
-
result[option] = source[option];
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
return result;
|
|
341
|
-
}
|
|
342
|
-
// This method performs a basic server selection loop, satisfying the requirements of
|
|
343
|
-
// ChangeStream resumability until the new SDAM layer can be used.
|
|
344
|
-
const SELECTION_TIMEOUT = 30000;
|
|
345
|
-
function waitForTopologyConnected(topology, options, callback) {
|
|
346
|
-
setTimeout(() => {
|
|
347
|
-
if (options && options.start == null) {
|
|
348
|
-
options.start = (0, utils_1.now)();
|
|
349
|
-
}
|
|
350
|
-
const start = options.start || (0, utils_1.now)();
|
|
351
|
-
const timeout = options.timeout || SELECTION_TIMEOUT;
|
|
352
|
-
if (topology.isConnected()) {
|
|
353
|
-
return callback();
|
|
354
|
-
}
|
|
355
|
-
if ((0, utils_1.calculateDurationInMs)(start) > timeout) {
|
|
356
|
-
// TODO(NODE-3497): Replace with MongoNetworkTimeoutError
|
|
357
|
-
return callback(new error_1.MongoRuntimeError('Timed out waiting for connection'));
|
|
358
|
-
}
|
|
359
|
-
waitForTopologyConnected(topology, options, callback);
|
|
360
|
-
}, 500); // this is an arbitrary wait time to allow SDAM to transition
|
|
361
|
-
}
|
|
362
|
-
function closeWithError(changeStream, error, callback) {
|
|
363
|
-
if (!callback) {
|
|
364
|
-
changeStream.emit(ChangeStream.ERROR, error);
|
|
365
|
-
}
|
|
366
|
-
changeStream.close(() => callback && callback(error));
|
|
367
|
-
}
|
|
368
|
-
function streamEvents(changeStream, cursor) {
|
|
369
|
-
setIsEmitter(changeStream);
|
|
370
|
-
const stream = changeStream[kCursorStream] || cursor.stream();
|
|
371
|
-
changeStream[kCursorStream] = stream;
|
|
372
|
-
stream.on('data', change => processNewChange(changeStream, change));
|
|
373
|
-
stream.on('error', error => processError(changeStream, error));
|
|
374
|
-
}
|
|
375
|
-
function endStream(changeStream) {
|
|
376
|
-
const cursorStream = changeStream[kCursorStream];
|
|
377
|
-
if (cursorStream) {
|
|
378
|
-
['data', 'close', 'end', 'error'].forEach(event => cursorStream.removeAllListeners(event));
|
|
379
|
-
cursorStream.destroy();
|
|
380
|
-
}
|
|
381
|
-
changeStream[kCursorStream] = undefined;
|
|
382
|
-
}
|
|
383
|
-
function processNewChange(changeStream, change, callback) {
|
|
384
|
-
var _a;
|
|
385
|
-
if (changeStream[kClosed]) {
|
|
386
|
-
// TODO(NODE-3485): Replace with MongoChangeStreamClosedError
|
|
387
|
-
if (callback)
|
|
388
|
-
callback(new error_1.MongoAPIError(CHANGESTREAM_CLOSED_ERROR));
|
|
389
|
-
return;
|
|
390
|
-
}
|
|
391
|
-
// a null change means the cursor has been notified, implicitly closing the change stream
|
|
392
|
-
if (change == null) {
|
|
393
|
-
// TODO(NODE-3485): Replace with MongoChangeStreamClosedError
|
|
394
|
-
return closeWithError(changeStream, new error_1.MongoRuntimeError(CHANGESTREAM_CLOSED_ERROR), callback);
|
|
395
|
-
}
|
|
396
|
-
if (change && !change._id) {
|
|
397
|
-
return closeWithError(changeStream, new error_1.MongoChangeStreamError(NO_RESUME_TOKEN_ERROR), callback);
|
|
398
|
-
}
|
|
399
|
-
// cache the resume token
|
|
400
|
-
(_a = changeStream.cursor) === null || _a === void 0 ? void 0 : _a.cacheResumeToken(change._id);
|
|
401
|
-
// wipe the startAtOperationTime if there was one so that there won't be a conflict
|
|
402
|
-
// between resumeToken and startAtOperationTime if we need to reconnect the cursor
|
|
403
|
-
changeStream.options.startAtOperationTime = undefined;
|
|
404
|
-
// Return the change
|
|
405
|
-
if (!callback)
|
|
406
|
-
return changeStream.emit(ChangeStream.CHANGE, change);
|
|
407
|
-
return callback(undefined, change);
|
|
408
|
-
}
|
|
409
|
-
function processError(changeStream, error, callback) {
|
|
410
|
-
const cursor = changeStream.cursor;
|
|
411
|
-
// If the change stream has been closed explicitly, do not process error.
|
|
412
|
-
if (changeStream[kClosed]) {
|
|
413
|
-
// TODO(NODE-3485): Replace with MongoChangeStreamClosedError
|
|
414
|
-
if (callback)
|
|
415
|
-
callback(new error_1.MongoAPIError(CHANGESTREAM_CLOSED_ERROR));
|
|
416
|
-
return;
|
|
417
|
-
}
|
|
418
|
-
// if the resume succeeds, continue with the new cursor
|
|
419
|
-
function resumeWithCursor(newCursor) {
|
|
420
|
-
changeStream.cursor = newCursor;
|
|
421
|
-
processResumeQueue(changeStream);
|
|
422
|
-
}
|
|
423
|
-
// otherwise, raise an error and close the change stream
|
|
424
|
-
function unresumableError(err) {
|
|
425
|
-
if (!callback) {
|
|
426
|
-
changeStream.emit(ChangeStream.ERROR, err);
|
|
427
|
-
}
|
|
428
|
-
changeStream.close(() => processResumeQueue(changeStream, err));
|
|
429
|
-
}
|
|
430
|
-
if (cursor && (0, error_1.isResumableError)(error, (0, utils_1.maxWireVersion)(cursor.server))) {
|
|
431
|
-
changeStream.cursor = undefined;
|
|
432
|
-
// stop listening to all events from old cursor
|
|
433
|
-
endStream(changeStream);
|
|
434
|
-
// close internal cursor, ignore errors
|
|
435
|
-
cursor.close();
|
|
436
|
-
const topology = (0, utils_1.getTopology)(changeStream.parent);
|
|
437
|
-
waitForTopologyConnected(topology, { readPreference: cursor.readPreference }, err => {
|
|
438
|
-
// if the topology can't reconnect, close the stream
|
|
439
|
-
if (err)
|
|
440
|
-
return unresumableError(err);
|
|
441
|
-
// create a new cursor, preserving the old cursor's options
|
|
442
|
-
const newCursor = createChangeStreamCursor(changeStream, cursor.resumeOptions);
|
|
443
|
-
// attempt to continue in emitter mode
|
|
444
|
-
if (!callback)
|
|
445
|
-
return resumeWithCursor(newCursor);
|
|
446
|
-
// attempt to continue in iterator mode
|
|
447
|
-
newCursor.hasNext(err => {
|
|
448
|
-
// if there's an error immediately after resuming, close the stream
|
|
449
|
-
if (err)
|
|
450
|
-
return unresumableError(err);
|
|
451
|
-
resumeWithCursor(newCursor);
|
|
452
|
-
});
|
|
453
|
-
});
|
|
454
|
-
return;
|
|
455
|
-
}
|
|
456
|
-
// if initial error wasn't resumable, raise an error and close the change stream
|
|
457
|
-
return closeWithError(changeStream, error, callback);
|
|
458
|
-
}
|
|
459
|
-
/**
|
|
460
|
-
* Safely provides a cursor across resume attempts
|
|
461
|
-
*
|
|
462
|
-
* @param changeStream - the parent ChangeStream
|
|
463
|
-
*/
|
|
464
|
-
function getCursor(changeStream, callback) {
|
|
465
|
-
if (changeStream[kClosed]) {
|
|
466
|
-
// TODO(NODE-3485): Replace with MongoChangeStreamClosedError
|
|
467
|
-
callback(new error_1.MongoAPIError(CHANGESTREAM_CLOSED_ERROR));
|
|
468
|
-
return;
|
|
469
|
-
}
|
|
470
|
-
// if a cursor exists and it is open, return it
|
|
471
|
-
if (changeStream.cursor) {
|
|
472
|
-
callback(undefined, changeStream.cursor);
|
|
473
|
-
return;
|
|
474
|
-
}
|
|
475
|
-
// no cursor, queue callback until topology reconnects
|
|
476
|
-
changeStream[kResumeQueue].push(callback);
|
|
477
|
-
}
|
|
478
|
-
/**
|
|
479
|
-
* Drain the resume queue when a new has become available
|
|
480
|
-
*
|
|
481
|
-
* @param changeStream - the parent ChangeStream
|
|
482
|
-
* @param err - error getting a new cursor
|
|
483
|
-
*/
|
|
484
|
-
function processResumeQueue(changeStream, err) {
|
|
485
|
-
while (changeStream[kResumeQueue].length) {
|
|
486
|
-
const request = changeStream[kResumeQueue].pop();
|
|
487
|
-
if (!request)
|
|
488
|
-
break; // Should never occur but TS can't use the length check in the while condition
|
|
489
|
-
if (!err) {
|
|
490
|
-
if (changeStream[kClosed]) {
|
|
491
|
-
// TODO(NODE-3485): Replace with MongoChangeStreamClosedError
|
|
492
|
-
request(new error_1.MongoAPIError(CHANGESTREAM_CLOSED_ERROR));
|
|
493
|
-
return;
|
|
494
|
-
}
|
|
495
|
-
if (!changeStream.cursor) {
|
|
496
|
-
request(new error_1.MongoChangeStreamError(NO_CURSOR_ERROR));
|
|
497
|
-
return;
|
|
498
|
-
}
|
|
499
|
-
}
|
|
500
|
-
request(err, changeStream.cursor);
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
500
|
//# 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":";;;AAAA,iCAAkC;AAIlC,6CAA0C;AAC1C,8DAKkC;AAClC,6BAA0B;AAC1B,mCAOiB;AACjB,iDAA6C;AAC7C,+CAAyE;AACzE,sDAA8E;AAE9E,sEAAmF;AAInF,mCAQiB;AAEjB,gBAAgB;AAChB,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAC3C,gBAAgB;AAChB,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAC7C,gBAAgB;AAChB,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjC,gBAAgB;AAChB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAE7B,MAAM,qBAAqB,GAAG;IAC5B,aAAa;IACb,YAAY;IACZ,sBAAsB;IACtB,cAAc;CACN,CAAC;AAEX,MAAM,cAAc,GAAG;IACrB,WAAW;IACX,gBAAgB;IAChB,WAAW;IACX,gBAAgB;IAChB,SAAS;IACT,GAAG,qBAAqB;CAChB,CAAC;AAEX,MAAM,mBAAmB,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,qBAAqB,GACzB,6EAA6E,CAAC;AAChF,MAAM,eAAe,GAAG,4BAA4B,CAAC;AACrD,MAAM,yBAAyB,GAAG,wBAAwB,CAAC;AA0I3D;;;GAGG;AACH,MAAa,YAAkD,SAAQ,+BAEtE;IA2CC;;;;;OAKG;IACH,YACE,MAAuB,EACvB,WAAuB,EAAE,EACzB,UAA+B,EAAE;QAEjC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,MAAM,YAAY,uBAAU,EAAE;YAChC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,UAAU,CAAC;SAC5C;aAAM,IAAI,MAAM,YAAY,OAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,QAAQ,CAAC;SAC1C;aAAM,IAAI,MAAM,YAAY,0BAAW,EAAE;YACxC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC;SACzC;aAAM;YACL,MAAM,IAAI,8BAAsB,CAC9B,mGAAmG,CACpG,CAAC;SACH;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,EAAE;YACzD,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;SACrD;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,MAAM,EAAE,CAAC;QAElC,wCAAwC;QACxC,IAAI,CAAC,MAAM,GAAG,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QAEpB,gEAAgE;QAChE,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE;YACjC,IAAI,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC/E,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aACjC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE;;YACpC,IAAI,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC/E,MAAA,IAAI,CAAC,aAAa,CAAC,0CAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;aACjD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;IAChB,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7B,CAAC;IAED,8FAA8F;IAC9F,IAAI,WAAW;;QACb,OAAO,MAAA,IAAI,CAAC,MAAM,0CAAE,WAAW,CAAC;IAClC,CAAC;IAKD,OAAO,CAAC,QAAmB;QACzB,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;YACjC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBAC9B,IAAI,GAAG,IAAI,CAAC,MAAM;oBAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,mCAAmC;gBACvE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAKD,IAAI,CACF,QAAkD;QAElD,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;YACjC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBAC9B,IAAI,GAAG,IAAI,CAAC,MAAM;oBAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,mCAAmC;gBACvE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;oBAC5B,IAAI,KAAK,EAAE;wBACT,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC7C,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;wBAC9B,OAAO;qBACR;oBACD,gBAAgB,CAAU,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC9C,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM;;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,mCAAI,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,8BAA8B;IAC9B,KAAK,CAAC,QAAmB;QACvB,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAErB,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,OAAO,EAAE,EAAE,CAAC;aACb;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACxB,SAAS,CAAC,IAAI,CAAC,CAAC;gBAChB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,OAA6B;QAClC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,8BAAsB,CAAC,eAAe,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAOD,OAAO,CAAC,QAAoC;QAC1C,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;YACjC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBAC9B,IAAI,GAAG,IAAI,CAAC,MAAM;oBAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,mCAAmC;gBACvE,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;;AAhMH,oCAiMC;AA7KC,aAAa;AACG,qBAAQ,GAAG,UAAmB,CAAC;AAC/C,aAAa;AACG,iBAAI,GAAG,MAAe,CAAC;AACvC,aAAa;AACG,iBAAI,GAAG,MAAe,CAAC;AACvC,aAAa;AACG,kBAAK,GAAG,OAAgB,CAAC;AACzC;;;;;GAKG;AACa,mBAAM,GAAG,QAAiB,CAAC;AAC3C,aAAa;AACG,gBAAG,GAAG,KAAc,CAAC;AACrC,aAAa;AACG,kBAAK,GAAG,OAAgB,CAAC;AACzC;;;GAGG;AACa,iCAAoB,GAAG,oBAA6B,CAAC;AA+JvE,gBAAgB;AAChB,MAAa,kBAAwD,SAAQ,gCAG5E;IAWC,YACE,QAAkB,EAClB,SAA2B,EAC3B,WAAuB,EAAE,EACzB,UAAqC,EAAE;QAEvC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAEpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QAEzD,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;SACvC;aAAM,IAAI,OAAO,CAAC,WAAW,EAAE;YAC9B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;SACxC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,KAAkB;QAChC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,aAAa;QACf,MAAM,MAAM,GAAkB,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAE9E,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,oBAAoB,EAAE;YACjD,KAAK,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,sBAAsB,CAAC,EAAE;gBACvE,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;aACrC;YAED,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,MAAM,SAAS,GACb,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;gBAE9E,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;aACtC;iBAAM,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAA,sBAAc,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBACxE,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;aACzD;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gBAAgB,CAAC,WAAwB;QACvC,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC;SAC9C;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAChC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,aAAa,CAAC,SAAiB,EAAE,QAAmB;QAClD,MAAM,MAAM,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,KAAI,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,oBAAoB,EAAE;YAC/B,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;YAExD,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC;aAChD;SACF;IACH,CAAC;IAED,KAAK;QACH,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;YAC1E,GAAG,IAAI,CAAC,aAAa;SACtB,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,OAAsB,EAAE,QAAmC;QACrE,MAAM,kBAAkB,GAAG,IAAI,8BAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;YAC/E,GAAG,IAAI,CAAC,aAAa;YACrB,GAAG,IAAI,CAAC,OAAO;YACf,OAAO;SACR,CAAC,CAAC;QAEH,IAAA,oCAAgB,EAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YAC9D,IAAI,GAAG,IAAI,QAAQ,IAAI,IAAI,EAAE;gBAC3B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;aACtB;YAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC;YACzC,IACE,IAAI,CAAC,oBAAoB,IAAI,IAAI;gBACjC,IAAI,CAAC,WAAW,IAAI,IAAI;gBACxB,IAAI,CAAC,UAAU,IAAI,IAAI;gBACvB,IAAA,sBAAc,EAAC,MAAM,CAAC,IAAI,CAAC,EAC3B;gBACA,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC;aACpD;YAED,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAE3C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAEjC,kBAAkB;YAClB,QAAQ,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IAEQ,QAAQ,CAAC,SAAiB,EAAE,QAAkB;QACrD,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YAC1C,IAAI,GAAG,EAAE;gBACP,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;aACtB;YAED,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAE1C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACjC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAvID,gDAuIC;AAED,MAAM,oBAAoB,GAAG;IAC3B,YAAY,CAAC,oBAAoB;IACjC,YAAY,CAAC,GAAG;IAChB,YAAY,CAAC,KAAK;CACnB,CAAC;AAEF,SAAS,YAAY,CAA2B,YAAmC;IACjF,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,UAAU,EAAE;QACtC,2DAA2D;QAC3D,MAAM,IAAI,qBAAa,CACrB,gFAAgF,CACjF,CAAC;KACH;IACD,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;AAClC,CAAC;AAED,SAAS,aAAa,CAA2B,YAAmC;IAClF,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;QACrC,2DAA2D;QAC3D,MAAM,IAAI,qBAAa,CACrB,gFAAgF,CACjF,CAAC;KACH;IACD,YAAY,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAC/B,YAAmC,EACnC,OAA4C;IAE5C,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACnF,IAAI,YAAY,CAAC,IAAI,KAAK,mBAAmB,CAAC,OAAO,EAAE;QACrD,wBAAwB,CAAC,oBAAoB,GAAG,IAAI,CAAC;KACtD;IACD,MAAM,QAAQ,GAAG,CAAC,EAAE,aAAa,EAAE,wBAAwB,EAAc,CAAC,CAAC,MAAM,CAC/E,YAAY,CAAC,QAAQ,CACtB,CAAC;IAEF,MAAM,aAAa,GAA8B,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAE5F,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAC/C,IAAA,mBAAW,EAAC,YAAY,CAAC,MAAM,CAAC,EAChC,YAAY,CAAC,SAAS,EACtB,QAAQ,EACR,aAAa,CACd,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE;QACxC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;KAChE;IAED,IAAI,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QACvD,YAAY,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;KAChD;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAgB,EAAE,OAA8B;IACzE,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,MAAM,IAAI,MAAM,EAAE;YACpB,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;SACjC;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAMD,qFAAqF;AACrF,kEAAkE;AAClE,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC,SAAS,wBAAwB,CAC/B,QAAkB,EAClB,OAA4B,EAC5B,QAAkB;IAElB,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;YACpC,OAAO,CAAC,KAAK,GAAG,IAAA,WAAG,GAAE,CAAC;SACvB;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAA,WAAG,GAAE,CAAC;QACrC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,iBAAiB,CAAC;QACrD,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE;YAC1B,OAAO,QAAQ,EAAE,CAAC;SACnB;QAED,IAAI,IAAA,6BAAqB,EAAC,KAAK,CAAC,GAAG,OAAO,EAAE;YAC1C,yDAAyD;YACzD,OAAO,QAAQ,CAAC,IAAI,yBAAiB,CAAC,kCAAkC,CAAC,CAAC,CAAC;SAC5E;QAED,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,6DAA6D;AACxE,CAAC;AAED,SAAS,cAAc,CACrB,YAAmC,EACnC,KAAe,EACf,QAAmB;IAEnB,IAAI,CAAC,QAAQ,EAAE;QACb,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KAC9C;IAED,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,YAAY,CACnB,YAAmC,EACnC,MAAmC;IAEnC,YAAY,CAAC,YAAY,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;IAC9D,YAAY,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;IACrC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,SAAS,CAA2B,YAAmC;IAC9E,MAAM,YAAY,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IACjD,IAAI,YAAY,EAAE;QAChB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3F,YAAY,CAAC,OAAO,EAAE,CAAC;KACxB;IAED,YAAY,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;AAC1C,CAAC;AAED,SAAS,gBAAgB,CACvB,YAAmC,EACnC,MAA+C,EAC/C,QAAkD;;IAElD,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;QACzB,6DAA6D;QAC7D,IAAI,QAAQ;YAAE,QAAQ,CAAC,IAAI,qBAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACrE,OAAO;KACR;IAED,yFAAyF;IACzF,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,6DAA6D;QAC7D,OAAO,cAAc,CAAC,YAAY,EAAE,IAAI,yBAAiB,CAAC,yBAAyB,CAAC,EAAE,QAAQ,CAAC,CAAC;KACjG;IAED,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;QACzB,OAAO,cAAc,CACnB,YAAY,EACZ,IAAI,8BAAsB,CAAC,qBAAqB,CAAC,EACjD,QAAQ,CACT,CAAC;KACH;IAED,yBAAyB;IACzB,MAAA,YAAY,CAAC,MAAM,0CAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAElD,mFAAmF;IACnF,kFAAkF;IAClF,YAAY,CAAC,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAEtD,oBAAoB;IACpB,IAAI,CAAC,QAAQ;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrE,OAAO,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,YAAY,CACnB,YAAmC,EACnC,KAAe,EACf,QAAmB;IAEnB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IAEnC,yEAAyE;IACzE,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;QACzB,6DAA6D;QAC7D,IAAI,QAAQ;YAAE,QAAQ,CAAC,IAAI,qBAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACrE,OAAO;KACR;IAED,uDAAuD;IACvD,SAAS,gBAAgB,CAAC,SAAsC;QAC9D,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC;QAChC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IAED,wDAAwD;IACxD,SAAS,gBAAgB,CAAC,GAAa;QACrC,IAAI,CAAC,QAAQ,EAAE;YACb,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SAC5C;QAED,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,MAAM,IAAI,IAAA,wBAAgB,EAAC,KAAmB,EAAE,IAAA,sBAAc,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;QAClF,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC;QAEhC,+CAA+C;QAC/C,SAAS,CAAC,YAAY,CAAC,CAAC;QAExB,uCAAuC;QACvC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEf,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClD,wBAAwB,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,EAAE,GAAG,CAAC,EAAE;YAClF,oDAAoD;YACpD,IAAI,GAAG;gBAAE,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAEtC,2DAA2D;YAC3D,MAAM,SAAS,GAAG,wBAAwB,CAAC,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;YAE/E,sCAAsC;YACtC,IAAI,CAAC,QAAQ;gBAAE,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAElD,uCAAuC;YACvC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACtB,mEAAmE;gBACnE,IAAI,GAAG;oBAAE,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACtC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO;KACR;IAED,gFAAgF;IAChF,OAAO,cAAc,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAChB,YAA6B,EAC7B,QAAyC;IAEzC,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;QACzB,6DAA6D;QAC7D,QAAQ,CAAC,IAAI,qBAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACvD,OAAO;KACR;IAED,+CAA+C;IAC/C,IAAI,YAAY,CAAC,MAAM,EAAE;QACvB,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO;KACR;IAED,sDAAsD;IACtD,YAAY,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CACzB,YAAmC,EACnC,GAAW;IAEX,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE;QACxC,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,MAAM,CAAC,8EAA8E;QAEnG,IAAI,CAAC,GAAG,EAAE;YACR,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;gBACzB,6DAA6D;gBAC7D,OAAO,CAAC,IAAI,qBAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;gBACtD,OAAO;aACR;YACD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBACxB,OAAO,CAAC,IAAI,8BAAsB,CAAC,eAAe,CAAC,CAAC,CAAC;gBACrD,OAAO;aACR;SACF;QACD,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;KACnC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"change_stream.js","sourceRoot":"","sources":["../src/change_stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -195,6 +195,9 @@ function request(uri, _options, callback) {
|
|
|
195
195
|
}
|
|
196
196
|
});
|
|
197
197
|
});
|
|
198
|
+
req.on('timeout', () => {
|
|
199
|
+
req.destroy(new error_1.MongoAWSError(`AWS request to ${uri} timed out after ${options.timeout} ms`));
|
|
200
|
+
});
|
|
198
201
|
req.on('error', err => callback(err));
|
|
199
202
|
req.end();
|
|
200
203
|
}
|