diff --git a/HISTORY.md b/HISTORY.md
index 4cfa71c1fce..367d10c2b60 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,3 +1,28 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+
+## [3.1.4](https://github.com/mongodb/node-mongodb-native/compare/v3.1.3...v3.1.4) (2018-08-25)
+
+
+### Bug Fixes
+
+* **buffer:** use safe-buffer polyfill to maintain compatibility ([327da95](https://github.com/mongodb/node-mongodb-native/commit/327da95))
+* **change-stream:** properly support resumablity in stream mode ([c43a34b](https://github.com/mongodb/node-mongodb-native/commit/c43a34b))
+* **connect:** correct replacement of topology on connect callback ([918a1e0](https://github.com/mongodb/node-mongodb-native/commit/918a1e0))
+* **cursor:** remove deprecated notice on forEach ([a474158](https://github.com/mongodb/node-mongodb-native/commit/a474158))
+* **url-parser:** bail early on validation when using domain socket ([3cb3da3](https://github.com/mongodb/node-mongodb-native/commit/3cb3da3))
+
+
+### Features
+
+* **client-ops:** allow bypassing creation of topologies on connect ([fe39b93](https://github.com/mongodb/node-mongodb-native/commit/fe39b93))
+* **core:** update mongodb-core to 3.1.3 ([a029047](https://github.com/mongodb/node-mongodb-native/commit/a029047))
+* **test:** use connection strings for all calls to `newClient` ([1dac18f](https://github.com/mongodb/node-mongodb-native/commit/1dac18f))
+
+
+
## [3.1.3](https://github.com/mongodb/node-mongodb-native/compare/v3.1.2...v3.1.3) (2018-08-13)
diff --git a/lib/change_stream.js b/lib/change_stream.js
index 03ee9d8d3c2..1d2bbe69ea4 100644
--- a/lib/change_stream.js
+++ b/lib/change_stream.js
@@ -46,7 +46,7 @@ class ChangeStream extends EventEmitter {
if (changeDomain instanceof Collection) {
this.type = CHANGE_DOMAIN_TYPES.COLLECTION;
- this.serverConfig = changeDomain.s.db.serverConfig;
+ this.topology = changeDomain.s.db.serverConfig;
this.namespace = {
collection: changeDomain.collectionName,
@@ -58,12 +58,12 @@ class ChangeStream extends EventEmitter {
this.type = CHANGE_DOMAIN_TYPES.DATABASE;
this.namespace = { collection: '', database: changeDomain.databaseName };
this.cursorNamespace = this.namespace.database;
- this.serverConfig = changeDomain.serverConfig;
+ this.topology = changeDomain.serverConfig;
} else if (changeDomain instanceof MongoClient) {
this.type = CHANGE_DOMAIN_TYPES.CLUSTER;
this.namespace = { collection: '', database: 'admin' };
this.cursorNamespace = this.namespace.database;
- this.serverConfig = changeDomain.topology;
+ this.topology = changeDomain.topology;
} else {
throw new TypeError(
'changeDomain provided to ChangeStream constructor is not an instance of Collection, Db, or MongoClient'
@@ -76,9 +76,9 @@ class ChangeStream extends EventEmitter {
}
// We need to get the operationTime as early as possible
- const isMaster = this.serverConfig.lastIsMaster();
+ const isMaster = this.topology.lastIsMaster();
if (!isMaster) {
- throw new MongoError('ServerConfig does not have an ismaster yet.');
+ throw new MongoError('Topology does not have an ismaster yet.');
}
this.operationTime = isMaster.operationTime;
@@ -88,8 +88,10 @@ class ChangeStream extends EventEmitter {
// Listen for any `change` listeners being added to ChangeStream
this.on('newListener', eventName => {
- if (eventName === 'change' && this.cursor && this.cursor.listenerCount('change') === 0) {
- this.cursor.on('data', change => processNewChange(this, null, change));
+ if (eventName === 'change' && this.cursor && this.listenerCount('change') === 0) {
+ this.cursor.on('data', change =>
+ processNewChange({ changeStream: this, change, eventEmitter: true })
+ );
}
});
@@ -125,14 +127,11 @@ class ChangeStream extends EventEmitter {
if (callback) return callback(new Error('Change Stream is not open.'), null);
return self.promiseLibrary.reject(new Error('Change Stream is not open.'));
}
+
return this.cursor
.next()
- .then(function(change) {
- return processNewChange(self, null, change, callback);
- })
- .catch(function(err) {
- return processNewChange(self, err, null, callback);
- });
+ .then(change => processNewChange({ changeStream: self, change, callback }))
+ .catch(error => processNewChange({ changeStream: self, error, callback }));
}
/**
@@ -230,14 +229,16 @@ var createChangeStreamCursor = function(self) {
var changeStreamCursor = buildChangeStreamAggregationCommand(self);
/**
- * Fired for each new matching change in the specified namespace. Attaching a `change` event listener to a Change Stream will switch the stream into flowing mode. Data will then be passed as soon as it is available.
+ * Fired for each new matching change in the specified namespace. Attaching a `change`
+ * event listener to a Change Stream will switch the stream into flowing mode. Data will
+ * then be passed as soon as it is available.
*
* @event ChangeStream#change
* @type {object}
*/
if (self.listenerCount('change') > 0) {
changeStreamCursor.on('data', function(change) {
- processNewChange(self, null, change);
+ processNewChange({ changeStream: self, change, eventEmitter: true });
});
}
@@ -268,7 +269,7 @@ var createChangeStreamCursor = function(self) {
* @type {Error}
*/
changeStreamCursor.on('error', function(error) {
- self.emit('error', error);
+ processNewChange({ changeStream: self, error, eventEmitter: true });
});
if (self.pipeDestinations) {
@@ -286,14 +287,14 @@ function getResumeToken(self) {
}
function getStartAtOperationTime(self) {
- const isMaster = self.serverConfig.lastIsMaster() || {};
+ const isMaster = self.topology.lastIsMaster() || {};
return (
isMaster.maxWireVersion && isMaster.maxWireVersion >= 7 && self.options.startAtOperationTime
);
}
var buildChangeStreamAggregationCommand = function(self) {
- const serverConfig = self.serverConfig;
+ const topology = self.topology;
const namespace = self.namespace;
const pipeline = self.pipeline;
const options = self.options;
@@ -339,62 +340,110 @@ var buildChangeStreamAggregationCommand = function(self) {
};
// Create and return the cursor
- return serverConfig.cursor(cursorNamespace, command, cursorOptions);
+ return topology.cursor(cursorNamespace, command, cursorOptions);
};
+// This method performs a basic server selection loop, satisfying the requirements of
+// ChangeStream resumability until the new SDAM layer can be used.
+const SELECTION_TIMEOUT = 30000;
+function waitForTopologyConnected(topology, options, callback) {
+ setTimeout(() => {
+ if (options && options.start == null) options.start = process.hrtime();
+ const start = options.start || process.hrtime();
+ const timeout = options.timeout || SELECTION_TIMEOUT;
+ const readPreference = options.readPreference;
+
+ if (topology.isConnected({ readPreference })) return callback(null, null);
+ const hrElapsed = process.hrtime(start);
+ const elapsed = (hrElapsed[0] * 1e9 + hrElapsed[1]) / 1e6;
+ if (elapsed > timeout) return callback(new MongoError('Timed out waiting for connection'));
+ waitForTopologyConnected(topology, options, callback);
+ }, 3000); // this is an arbitrary wait time to allow SDAM to transition
+}
+
// Handle new change events. This method brings together the routes from the callback, event emitter, and promise ways of using ChangeStream.
-var processNewChange = function(self, err, change, callback) {
- // Handle errors
- if (err) {
- // Handle resumable MongoNetworkErrors
- if (isResumableError(err) && !self.attemptingResume) {
- self.attemptingResume = true;
-
- if (!(getResumeToken(self) || getStartAtOperationTime(self))) {
- const startAtOperationTime = self.cursor.cursorState.operationTime;
- self.options = Object.assign({ startAtOperationTime }, self.options);
+function processNewChange(args) {
+ const changeStream = args.changeStream;
+ const error = args.error;
+ const change = args.change;
+ const callback = args.callback;
+ const eventEmitter = args.eventEmitter || false;
+ const topology = changeStream.topology;
+ const options = changeStream.cursor.options;
+
+ if (error) {
+ if (isResumableError(error) && !changeStream.attemptingResume) {
+ changeStream.attemptingResume = true;
+
+ if (!(getResumeToken(changeStream) || getStartAtOperationTime(changeStream))) {
+ const startAtOperationTime = changeStream.cursor.cursorState.operationTime;
+ changeStream.options = Object.assign({ startAtOperationTime }, changeStream.options);
}
- if (callback) {
- return self.cursor.close(function(closeErr) {
- if (closeErr) {
- return callback(err, null);
- }
+ // stop listening to all events from old cursor
+ ['data', 'close', 'end', 'error'].forEach(event =>
+ changeStream.cursor.removeAllListeners(event)
+ );
+
+ // close internal cursor, ignore errors
+ changeStream.cursor.close();
+
+ // attempt recreating the cursor
+ if (eventEmitter) {
+ waitForTopologyConnected(topology, { readPreference: options.readPreference }, err => {
+ if (err) return changeStream.emit('error', err);
+ changeStream.cursor = createChangeStreamCursor(changeStream);
+ });
+
+ return;
+ }
- self.cursor = createChangeStreamCursor(self);
+ if (callback) {
+ waitForTopologyConnected(topology, { readPreference: options.readPreference }, err => {
+ if (err) return callback(err, null);
- return self.next(callback);
+ changeStream.cursor = createChangeStreamCursor(changeStream);
+ changeStream.next(callback);
});
+
+ return;
}
- return self.cursor
- .close()
- .then(() => (self.cursor = createChangeStreamCursor(self)))
- .then(() => self.next());
+ return new Promise((resolve, reject) => {
+ waitForTopologyConnected(topology, { readPreference: options.readPreference }, err => {
+ if (err) return reject(err);
+ resolve();
+ });
+ })
+ .then(() => (changeStream.cursor = createChangeStreamCursor(changeStream)))
+ .then(() => changeStream.next());
}
- if (typeof callback === 'function') return callback(err, null);
- if (self.listenerCount('error')) return self.emit('error', err);
- return self.promiseLibrary.reject(err);
+ if (eventEmitter) return changeStream.emit('error', error);
+ if (typeof callback === 'function') return callback(error, null);
+ return changeStream.promiseLibrary.reject(error);
}
- self.attemptingResume = false;
+
+ changeStream.attemptingResume = false;
// Cache the resume token if it is present. If it is not present return an error.
if (!change || !change._id) {
var noResumeTokenError = new Error(
'A change stream document has been received that lacks a resume token (_id).'
);
+
+ if (eventEmitter) return changeStream.emit('error', noResumeTokenError);
if (typeof callback === 'function') return callback(noResumeTokenError, null);
- if (self.listenerCount('error')) return self.emit('error', noResumeTokenError);
- return self.promiseLibrary.reject(noResumeTokenError);
+ return changeStream.promiseLibrary.reject(noResumeTokenError);
}
- self.resumeToken = change._id;
+
+ changeStream.resumeToken = change._id;
// Return the change
- if (typeof callback === 'function') return callback(err, change);
- if (self.listenerCount('change')) return self.emit('change', change);
- return self.promiseLibrary.resolve(change);
-};
+ if (eventEmitter) return changeStream.emit('change', change);
+ if (typeof callback === 'function') return callback(error, change);
+ return changeStream.promiseLibrary.resolve(change);
+}
/**
* The callback format for results
diff --git a/lib/cursor.js b/lib/cursor.js
index d7cd06493fe..69293213ec0 100644
--- a/lib/cursor.js
+++ b/lib/cursor.js
@@ -729,8 +729,14 @@ Cursor.prototype.each = deprecate(function(callback) {
* @return {Promise} if no callback supplied
*/
Cursor.prototype.forEach = function(iterator, callback) {
+ // Rewind cursor state
+ this.rewind();
+
+ // Set current cursor to INIT
+ this.s.state = Cursor.INIT;
+
if (typeof callback === 'function') {
- this.each((err, doc) => {
+ each(this, (err, doc) => {
if (err) {
callback(err);
return false;
@@ -748,7 +754,7 @@ Cursor.prototype.forEach = function(iterator, callback) {
});
} else {
return new this.s.promiseLibrary((fulfill, reject) => {
- this.each((err, doc) => {
+ each(this, (err, doc) => {
if (err) {
reject(err);
return false;
diff --git a/lib/gridfs-stream/upload.js b/lib/gridfs-stream/upload.js
index 45f0e474d60..da77dcd6500 100644
--- a/lib/gridfs-stream/upload.js
+++ b/lib/gridfs-stream/upload.js
@@ -4,6 +4,7 @@ var core = require('mongodb-core');
var crypto = require('crypto');
var stream = require('stream');
var util = require('util');
+var Buffer = require('safe-buffer').Buffer;
var ERROR_NAMESPACE_NOT_FOUND = 26;
diff --git a/lib/gridfs/chunk.js b/lib/gridfs/chunk.js
index fef81c14fcf..c29bba02a7e 100644
--- a/lib/gridfs/chunk.js
+++ b/lib/gridfs/chunk.js
@@ -3,6 +3,8 @@
var Binary = require('mongodb-core').BSON.Binary,
ObjectID = require('mongodb-core').BSON.ObjectID;
+var Buffer = require('safe-buffer').Buffer;
+
/**
* Class for representing a single chunk in GridFS.
*
diff --git a/lib/gridfs/grid_store.js b/lib/gridfs/grid_store.js
index bf72537b586..4b5eb5e4b85 100644
--- a/lib/gridfs/grid_store.js
+++ b/lib/gridfs/grid_store.js
@@ -38,7 +38,7 @@
const Chunk = require('./chunk');
const ObjectID = require('mongodb-core').BSON.ObjectID;
const ReadPreference = require('mongodb-core').ReadPreference;
-const Buffer = require('buffer').Buffer;
+const Buffer = require('safe-buffer').Buffer;
const fs = require('fs');
const f = require('util').format;
const util = require('util');
diff --git a/lib/operations/mongo_client_ops.js b/lib/operations/mongo_client_ops.js
index 6c888405f18..e99d5470236 100644
--- a/lib/operations/mongo_client_ops.js
+++ b/lib/operations/mongo_client_ops.js
@@ -31,7 +31,8 @@ const monitoringEvents = [
'ping',
'ha',
'all',
- 'fullsetup'
+ 'fullsetup',
+ 'open'
];
const ignoreOptionNames = ['native_parser'];
const legacyOptionNames = ['server', 'replset', 'replSet', 'mongos', 'db'];
@@ -132,11 +133,11 @@ function collectEvents(mongoClient, topology) {
if (mongoClient instanceof MongoClient) {
monitoringEvents.forEach(event => {
topology.on(event, (object1, object2) => {
- collectedEvents.push({
- event: event,
- object1: object1,
- object2: object2
- });
+ if (event === 'open') {
+ collectedEvents.push({ event: event, object1: mongoClient });
+ } else {
+ collectedEvents.push({ event: event, object1: object1, object2: object2 });
+ }
});
});
}
@@ -346,11 +347,11 @@ function createServer(mongoClient, options, callback) {
// Set default options
const servers = translateOptions(options);
- // Propagate the events to the client
- const collectedEvents = collectEvents(mongoClient, servers[0]);
-
const server = servers[0];
+ // Propagate the events to the client
+ const collectedEvents = collectEvents(mongoClient, server);
+
// Connect to topology
server.connect(options, (err, topology) => {
if (err) {
@@ -389,8 +390,11 @@ function createTopology(mongoClient, topologyType, options, callback) {
// Pass in the promise library
options.promiseLibrary = mongoClient.s.promiseLibrary;
+ const translationOptions = {};
+ if (topologyType === 'unified') translationOptions.createServers = false;
+
// Set default options
- const servers = translateOptions(options);
+ const servers = translateOptions(options, translationOptions);
// Create the topology
let topology;
@@ -407,14 +411,14 @@ function createTopology(mongoClient, topologyType, options, callback) {
relayEvents(mongoClient, topology);
// Open the connection
- topology.connect(options, (err, topology) => {
+ topology.connect(options, (err, newTopology) => {
if (err) {
topology.close(true);
return callback(err);
}
- assignTopology(mongoClient, topology);
- callback(null, topology);
+ assignTopology(mongoClient, newTopology);
+ callback(null, newTopology);
});
}
@@ -571,7 +575,9 @@ function transformUrlOptions(_object) {
return object;
}
-function translateOptions(options) {
+function translateOptions(options, translationOptions) {
+ translationOptions = Object.assign({}, { createServers: true }, translationOptions);
+
// If we have a readPreference passed in by the db options
if (typeof options.readPreference === 'string' || typeof options.read_preference === 'string') {
options.readPreference = new ReadPreference(options.readPreference || options.read_preference);
@@ -591,6 +597,10 @@ function translateOptions(options) {
if (options.socketTimeoutMS == null) options.socketTimeoutMS = 360000;
if (options.connectTimeoutMS == null) options.connectTimeoutMS = 30000;
+ if (!translationOptions.createServers) {
+ return;
+ }
+
// Create server instances
return options.servers.map(serverObj => {
return serverObj.domain_socket
diff --git a/lib/url_parser.js b/lib/url_parser.js
index 8ced4f11b12..7cc0b2f2935 100644
--- a/lib/url_parser.js
+++ b/lib/url_parser.js
@@ -212,6 +212,7 @@ function parseConnectionString(url, options) {
for (let i = 0; i < hosts.length; i++) {
let r = parser.parse(f('mongodb://%s', hosts[i].trim()));
+ if (r.path && r.path.indexOf('.sock') !== -1) continue;
if (r.path && r.path.indexOf(':') !== -1) {
// Not connecting to a socket so check for an extra slash in the hostname.
// Using String#split as perf is better than match.
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 00000000000..b85063e01ad
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,5909 @@
+{
+ "name": "mongodb",
+ "version": "3.1.4",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@sinonjs/formatio": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz",
+ "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==",
+ "dev": true,
+ "requires": {
+ "samsam": "1.3.0"
+ }
+ },
+ "JSONStream": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.4.tgz",
+ "integrity": "sha512-Y7vfi3I5oMOYIr+WxV8NZxDSwcbNgzdKYsTNInmycOq9bUYwGg9ryu57Wg5NLmCjqdFPNUmpMBo3kSJN9tCbXg==",
+ "dev": true,
+ "requires": {
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ }
+ },
+ "abbrev": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
+ "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
+ "dev": true
+ },
+ "acorn": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.2.tgz",
+ "integrity": "sha512-cJrKCNcr2kv8dlDnbw+JPUGjHZzo4myaxOLmpOX8a+rgX94YeTcTMv/LFJUSByRpc+i4GgVnnhLxvMu/2Y+rqw==",
+ "dev": true
+ },
+ "acorn-jsx": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
+ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
+ "dev": true,
+ "requires": {
+ "acorn": "^3.0.4"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "dev": true
+ }
+ }
+ },
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "dev": true,
+ "requires": {
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
+ }
+ },
+ "ajv-keywords": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
+ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
+ "dev": true
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2",
+ "longest": "^1.0.1",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "dev": true
+ },
+ "ampersand-events": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ampersand-events/-/ampersand-events-2.0.2.tgz",
+ "integrity": "sha1-9AK8LhgwX6vZldvc07cFe73X00c=",
+ "dev": true,
+ "requires": {
+ "ampersand-version": "^1.0.2",
+ "lodash": "^4.6.1"
+ }
+ },
+ "ampersand-state": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/ampersand-state/-/ampersand-state-5.0.3.tgz",
+ "integrity": "sha512-sr904K5zvw6mkGjFHhTcfBIdpoJ6mn/HrFg7OleRmBpw3apLb3Z0gVrgRTb7kK1wOLI34vs4S+IXqNHUeqWCzw==",
+ "dev": true,
+ "requires": {
+ "ampersand-events": "^2.0.1",
+ "ampersand-version": "^1.0.0",
+ "array-next": "~0.0.1",
+ "key-tree-store": "^1.3.0",
+ "lodash": "^4.12.0"
+ }
+ },
+ "ampersand-version": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/ampersand-version/-/ampersand-version-1.0.2.tgz",
+ "integrity": "sha1-/489TOrE0yzNg/a9Zpc5f3tZ4sA=",
+ "dev": true,
+ "requires": {
+ "find-root": "^0.1.1",
+ "through2": "^0.6.3"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ },
+ "through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
+ "dev": true,
+ "requires": {
+ "readable-stream": ">=1.0.33-1 <1.1.0-0",
+ "xtend": ">=4.0.0 <4.1.0-0"
+ }
+ }
+ }
+ },
+ "ansi": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
+ "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=",
+ "dev": true
+ },
+ "ansi-escapes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
+ "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "dev": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+ "dev": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
+ },
+ "array-ify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
+ "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=",
+ "dev": true
+ },
+ "array-next": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/array-next/-/array-next-0.0.1.tgz",
+ "integrity": "sha1-5eRmCkwn/agVH/d2QnXQCQAGK+E=",
+ "dev": true
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
+ "dev": true
+ },
+ "assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true
+ },
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
+ "dev": true
+ },
+ "aws4": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
+ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
+ "dev": true
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ }
+ },
+ "babylon": {
+ "version": "7.0.0-beta.19",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.19.tgz",
+ "integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "base64-js": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz",
+ "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=",
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "bindings": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz",
+ "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==",
+ "dev": true
+ },
+ "bl": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
+ "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "bluebird": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz",
+ "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=",
+ "dev": true
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "dev": true
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "dev": true,
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "browser-stdout": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
+ "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
+ "dev": true
+ },
+ "bson": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.0.tgz",
+ "integrity": "sha512-9Aeai9TacfNtWXOYarkFJRW2CWo+dRon+fuLZYJmvLV3+MiUp0bEI6IAZfXEIg7/Pl/7IWlLaDnhzTsD81etQA=="
+ },
+ "buffer": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz",
+ "integrity": "sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=",
+ "dev": true,
+ "requires": {
+ "base64-js": "0.0.8",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
+ }
+ },
+ "buffer-alloc": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "dev": true,
+ "requires": {
+ "buffer-alloc-unsafe": "^1.1.0",
+ "buffer-fill": "^1.0.0"
+ }
+ },
+ "buffer-alloc-unsafe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
+ "dev": true
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
+ "dev": true
+ },
+ "buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
+ "dev": true
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "buffer-shims": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
+ "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=",
+ "dev": true
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "dev": true
+ },
+ "caller-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
+ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
+ "dev": true,
+ "requires": {
+ "callsites": "^0.2.0"
+ }
+ },
+ "callsites": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
+ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true,
+ "optional": true
+ },
+ "camelcase-keys": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz",
+ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^4.1.0",
+ "map-obj": "^2.0.0",
+ "quick-lru": "^1.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ }
+ }
+ },
+ "caseless": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
+ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
+ "dev": true
+ },
+ "catharsis": {
+ "version": "0.8.9",
+ "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.9.tgz",
+ "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=",
+ "dev": true,
+ "requires": {
+ "underscore-contrib": "~0.3.0"
+ }
+ },
+ "caw": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz",
+ "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==",
+ "dev": true,
+ "requires": {
+ "get-proxy": "^2.0.0",
+ "isurl": "^1.0.0-alpha5",
+ "tunnel-agent": "^0.6.0",
+ "url-to-options": "^1.0.1"
+ },
+ "dependencies": {
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ }
+ }
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "align-text": "^0.1.3",
+ "lazy-cache": "^1.0.3"
+ }
+ },
+ "chai": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz",
+ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=",
+ "dev": true,
+ "requires": {
+ "assertion-error": "^1.0.1",
+ "check-error": "^1.0.1",
+ "deep-eql": "^3.0.0",
+ "get-func-name": "^2.0.0",
+ "pathval": "^1.0.0",
+ "type-detect": "^4.0.0"
+ }
+ },
+ "chai-subset": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/chai-subset/-/chai-subset-1.6.0.tgz",
+ "integrity": "sha1-pdDKFOMpp5WW7XAFi2ZGvWmIz+k=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "chardet": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
+ "dev": true
+ },
+ "check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
+ "dev": true
+ },
+ "cheerio": {
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz",
+ "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=",
+ "dev": true,
+ "requires": {
+ "css-select": "~1.2.0",
+ "dom-serializer": "~0.1.0",
+ "entities": "~1.1.1",
+ "htmlparser2": "^3.9.1",
+ "lodash.assignin": "^4.0.9",
+ "lodash.bind": "^4.1.4",
+ "lodash.defaults": "^4.0.1",
+ "lodash.filter": "^4.4.0",
+ "lodash.flatten": "^4.2.0",
+ "lodash.foreach": "^4.3.0",
+ "lodash.map": "^4.4.0",
+ "lodash.merge": "^4.4.0",
+ "lodash.pick": "^4.2.1",
+ "lodash.reduce": "^4.4.0",
+ "lodash.reject": "^4.4.0",
+ "lodash.some": "^4.4.0"
+ }
+ },
+ "chownr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz",
+ "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=",
+ "dev": true
+ },
+ "circular-json": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
+ "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
+ "dev": true
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^2.0.0"
+ }
+ },
+ "cli-width": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "center-align": "^0.1.1",
+ "right-align": "^0.1.1",
+ "wordwrap": "0.0.2"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "dev": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz",
+ "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.1"
+ }
+ },
+ "color-name": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz",
+ "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
+ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.17.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
+ "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
+ "dev": true
+ },
+ "compare-func": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz",
+ "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=",
+ "dev": true,
+ "requires": {
+ "array-ify": "^1.0.0",
+ "dot-prop": "^3.0.0"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "config-chain": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz",
+ "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ }
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "dev": true
+ },
+ "content-disposition": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
+ "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=",
+ "dev": true
+ },
+ "conventional-changelog": {
+ "version": "1.1.24",
+ "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.24.tgz",
+ "integrity": "sha512-2WcSUst4Y3Z4hHvoMTWXMJr/DmgVdLiMOVY1Kak2LfFz+GIz2KDp5naqbFesYbfXPmaZ5p491dO0FWZIJoJw1Q==",
+ "dev": true,
+ "requires": {
+ "conventional-changelog-angular": "^1.6.6",
+ "conventional-changelog-atom": "^0.2.8",
+ "conventional-changelog-codemirror": "^0.3.8",
+ "conventional-changelog-core": "^2.0.11",
+ "conventional-changelog-ember": "^0.3.12",
+ "conventional-changelog-eslint": "^1.0.9",
+ "conventional-changelog-express": "^0.3.6",
+ "conventional-changelog-jquery": "^0.1.0",
+ "conventional-changelog-jscs": "^0.1.0",
+ "conventional-changelog-jshint": "^0.3.8",
+ "conventional-changelog-preset-loader": "^1.1.8"
+ }
+ },
+ "conventional-changelog-angular": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz",
+ "integrity": "sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==",
+ "dev": true,
+ "requires": {
+ "compare-func": "^1.3.1",
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-atom": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.2.8.tgz",
+ "integrity": "sha512-8pPZqhMbrnltNBizjoDCb/Sz85KyUXNDQxuAEYAU5V/eHn0okMBVjqc8aHWYpHrytyZWvMGbayOlDv7i8kEf6g==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-codemirror": {
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.8.tgz",
+ "integrity": "sha512-3HFZKtBXTaUCHvz7ai6nk2+psRIkldDoNzCsom0egDtVmPsvvHZkzjynhdQyULfacRSsBTaiQ0ol6nBOL4dDiQ==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-core": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-2.0.11.tgz",
+ "integrity": "sha512-HvTE6RlqeEZ/NFPtQeFLsIDOLrGP3bXYr7lFLMhCVsbduF1MXIe8OODkwMFyo1i9ku9NWBwVnVn0jDmIFXjDRg==",
+ "dev": true,
+ "requires": {
+ "conventional-changelog-writer": "^3.0.9",
+ "conventional-commits-parser": "^2.1.7",
+ "dateformat": "^3.0.0",
+ "get-pkg-repo": "^1.0.0",
+ "git-raw-commits": "^1.3.6",
+ "git-remote-origin-url": "^2.0.0",
+ "git-semver-tags": "^1.3.6",
+ "lodash": "^4.2.1",
+ "normalize-package-data": "^2.3.5",
+ "q": "^1.5.1",
+ "read-pkg": "^1.1.0",
+ "read-pkg-up": "^1.0.1",
+ "through2": "^2.0.0"
+ }
+ },
+ "conventional-changelog-ember": {
+ "version": "0.3.12",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.3.12.tgz",
+ "integrity": "sha512-mmJzA7uzbrOqeF89dMMi6z17O07ORTXlTMArnLG9ZTX4oLaKNolUlxFUFlFm9JUoVWajVpaHQWjxH1EOQ+ARoQ==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-eslint": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.9.tgz",
+ "integrity": "sha512-h87nfVh2fdk9fJIvz26wCBsbDC/KxqCc5wSlNMZbXcARtbgNbNDIF7Y7ctokFdnxkzVdaHsbINkh548T9eBA7Q==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-express": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.3.6.tgz",
+ "integrity": "sha512-3iWVtBJZ9RnRnZveNDzOD8QRn6g6vUif0qVTWWyi5nUIAbuN1FfPVyKdAlJJfp5Im+dE8Kiy/d2SpaX/0X678Q==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-jquery": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz",
+ "integrity": "sha1-Agg5cWLjhGmG5xJztsecW1+A9RA=",
+ "dev": true,
+ "requires": {
+ "q": "^1.4.1"
+ }
+ },
+ "conventional-changelog-jscs": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz",
+ "integrity": "sha1-BHnrRDzH1yxYvwvPDvHURKkvDlw=",
+ "dev": true,
+ "requires": {
+ "q": "^1.4.1"
+ }
+ },
+ "conventional-changelog-jshint": {
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.8.tgz",
+ "integrity": "sha512-hn9QU4ZI/5V50wKPJNPGT4gEWgiBFpV6adieILW4MaUFynuDYOvQ71EMSj3EznJyKi/KzuXpc9dGmX8njZMjig==",
+ "dev": true,
+ "requires": {
+ "compare-func": "^1.3.1",
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-preset-loader": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.8.tgz",
+ "integrity": "sha512-MkksM4G4YdrMlT2MbTsV2F6LXu/hZR0Tc/yenRrDIKRwBl/SP7ER4ZDlglqJsCzLJi4UonBc52Bkm5hzrOVCcw==",
+ "dev": true
+ },
+ "conventional-changelog-writer": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-3.0.9.tgz",
+ "integrity": "sha512-n9KbsxlJxRQsUnK6wIBRnARacvNnN4C/nxnxCkH+B/R1JS2Fa+DiP1dU4I59mEDEjgnFaN2+9wr1P1s7GYB5/Q==",
+ "dev": true,
+ "requires": {
+ "compare-func": "^1.3.1",
+ "conventional-commits-filter": "^1.1.6",
+ "dateformat": "^3.0.0",
+ "handlebars": "^4.0.2",
+ "json-stringify-safe": "^5.0.1",
+ "lodash": "^4.2.1",
+ "meow": "^4.0.0",
+ "semver": "^5.5.0",
+ "split": "^1.0.0",
+ "through2": "^2.0.0"
+ }
+ },
+ "conventional-commits-filter": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.1.6.tgz",
+ "integrity": "sha512-KcDgtCRKJCQhyk6VLT7zR+ZOyCnerfemE/CsR3iQpzRRFbLEs0Y6rwk3mpDvtOh04X223z+1xyJ582Stfct/0Q==",
+ "dev": true,
+ "requires": {
+ "is-subset": "^0.1.1",
+ "modify-values": "^1.0.0"
+ }
+ },
+ "conventional-commits-parser": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz",
+ "integrity": "sha512-BoMaddIEJ6B4QVMSDu9IkVImlGOSGA1I2BQyOZHeLQ6qVOJLcLKn97+fL6dGbzWEiqDzfH4OkcveULmeq2MHFQ==",
+ "dev": true,
+ "requires": {
+ "JSONStream": "^1.0.4",
+ "is-text-path": "^1.0.0",
+ "lodash": "^4.2.1",
+ "meow": "^4.0.0",
+ "split2": "^2.0.0",
+ "through2": "^2.0.0",
+ "trim-off-newlines": "^1.0.0"
+ }
+ },
+ "conventional-recommended-bump": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-1.2.1.tgz",
+ "integrity": "sha512-oJjG6DkRgtnr/t/VrPdzmf4XZv8c4xKVJrVT4zrSHd92KEL+EYxSbYoKq8lQ7U5yLMw7130wrcQTLRjM/T+d4w==",
+ "dev": true,
+ "requires": {
+ "concat-stream": "^1.4.10",
+ "conventional-commits-filter": "^1.1.1",
+ "conventional-commits-parser": "^2.1.1",
+ "git-raw-commits": "^1.3.0",
+ "git-semver-tags": "^1.3.0",
+ "meow": "^3.3.0",
+ "object-assign": "^4.0.1"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^2.0.0",
+ "map-obj": "^1.0.0"
+ }
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
+ }
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^4.0.1"
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "dev": true
+ }
+ }
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "coveralls": {
+ "version": "2.13.3",
+ "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.3.tgz",
+ "integrity": "sha512-iiAmn+l1XqRwNLXhW8Rs5qHZRFMYp9ZIPjEOVRpC/c4so6Y/f4/lFi0FfR5B9cCqgyhkJ5cZmbvcVRfP8MHchw==",
+ "dev": true,
+ "requires": {
+ "js-yaml": "3.6.1",
+ "lcov-parse": "0.0.10",
+ "log-driver": "1.2.5",
+ "minimist": "1.2.0",
+ "request": "2.79.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "request": {
+ "version": "2.79.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
+ "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "~0.6.0",
+ "aws4": "^1.2.1",
+ "caseless": "~0.11.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.0",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.1.1",
+ "har-validator": "~2.0.6",
+ "hawk": "~3.1.3",
+ "http-signature": "~1.1.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.7",
+ "oauth-sign": "~0.8.1",
+ "qs": "~6.3.0",
+ "stringstream": "~0.0.4",
+ "tough-cookie": "~2.3.0",
+ "tunnel-agent": "~0.4.1",
+ "uuid": "^3.0.0"
+ }
+ },
+ "uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "dev": true
+ }
+ }
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "dev": true,
+ "requires": {
+ "boom": "2.x.x"
+ }
+ },
+ "css-select": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0",
+ "css-what": "2.1",
+ "domutils": "1.5.1",
+ "nth-check": "~1.0.1"
+ }
+ },
+ "css-what": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
+ "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
+ "dev": true
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
+ "requires": {
+ "array-find-index": "^1.0.1"
+ }
+ },
+ "dargs": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz",
+ "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "dateformat": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
+ "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
+ "dev": true
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "decamelize-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
+ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
+ "dev": true,
+ "requires": {
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
+ },
+ "dependencies": {
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ }
+ }
+ },
+ "decompress": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz",
+ "integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=",
+ "dev": true,
+ "requires": {
+ "decompress-tar": "^4.0.0",
+ "decompress-tarbz2": "^4.0.0",
+ "decompress-targz": "^4.0.0",
+ "decompress-unzip": "^4.0.1",
+ "graceful-fs": "^4.1.10",
+ "make-dir": "^1.0.0",
+ "pify": "^2.3.0",
+ "strip-dirs": "^2.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "decompress-tar": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz",
+ "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==",
+ "dev": true,
+ "requires": {
+ "file-type": "^5.2.0",
+ "is-stream": "^1.1.0",
+ "tar-stream": "^1.5.2"
+ }
+ },
+ "decompress-tarbz2": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz",
+ "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==",
+ "dev": true,
+ "requires": {
+ "decompress-tar": "^4.1.0",
+ "file-type": "^6.1.0",
+ "is-stream": "^1.1.0",
+ "seek-bzip": "^1.0.5",
+ "unbzip2-stream": "^1.0.9"
+ },
+ "dependencies": {
+ "file-type": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz",
+ "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==",
+ "dev": true
+ }
+ }
+ },
+ "decompress-targz": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz",
+ "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==",
+ "dev": true,
+ "requires": {
+ "decompress-tar": "^4.1.1",
+ "file-type": "^5.2.0",
+ "is-stream": "^1.1.0"
+ }
+ },
+ "decompress-unzip": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz",
+ "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=",
+ "dev": true,
+ "requires": {
+ "file-type": "^3.8.0",
+ "get-stream": "^2.2.0",
+ "pify": "^2.3.0",
+ "yauzl": "^2.4.2"
+ },
+ "dependencies": {
+ "file-type": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
+ "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz",
+ "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.0.1",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "deep-eql": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
+ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
+ "dev": true,
+ "requires": {
+ "type-detect": "^4.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "dev": true
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "dev": true
+ },
+ "del": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
+ "dev": true,
+ "requires": {
+ "globby": "^5.0.0",
+ "is-path-cwd": "^1.0.0",
+ "is-path-in-cwd": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "rimraf": "^2.2.8"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "dev": true
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
+ "dev": true
+ },
+ "diff": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz",
+ "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=",
+ "dev": true
+ },
+ "docopt": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz",
+ "integrity": "sha1-so6eIiDaXsSffqW7JKR3h0Be6xE=",
+ "dev": true
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "dom-serializer": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
+ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "~1.1.1",
+ "entities": "~1.1.1"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
+ "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
+ "dev": true
+ }
+ }
+ },
+ "domelementtype": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
+ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
+ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "dot-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz",
+ "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=",
+ "dev": true,
+ "requires": {
+ "is-obj": "^1.0.0"
+ }
+ },
+ "dotgitignore": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-1.0.3.tgz",
+ "integrity": "sha512-eu5XjSstm0WXQsARgo6kPjkINYZlOUW+z/KtAAIBjHa5mUpMPrxJytbPIndWz6GubBuuuH5ljtVcXKnVnH5q8w==",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.1.0",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "downcache": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/downcache/-/downcache-0.0.9.tgz",
+ "integrity": "sha1-eQuwQkaJE2EVzpPyqhWUbG2AbQ4=",
+ "dev": true,
+ "requires": {
+ "extend": "^3.0.0",
+ "graceful-fs": "^4.1.3",
+ "limiter": "^1.1.0",
+ "mkdirp": "^0.5.1",
+ "npmlog": "^2.0.3",
+ "request": "^2.69.0",
+ "rimraf": "^2.5.2"
+ },
+ "dependencies": {
+ "gauge": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz",
+ "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=",
+ "dev": true,
+ "requires": {
+ "ansi": "^0.3.0",
+ "has-unicode": "^2.0.0",
+ "lodash.pad": "^4.1.0",
+ "lodash.padend": "^4.1.0",
+ "lodash.padstart": "^4.1.0"
+ }
+ },
+ "npmlog": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz",
+ "integrity": "sha1-mLUlMPJRTKkNCexbIsiEZyI3VpI=",
+ "dev": true,
+ "requires": {
+ "ansi": "~0.3.1",
+ "are-we-there-yet": "~1.1.2",
+ "gauge": "~1.2.5"
+ }
+ }
+ }
+ },
+ "download": {
+ "version": "6.2.5",
+ "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz",
+ "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==",
+ "dev": true,
+ "requires": {
+ "caw": "^2.0.0",
+ "content-disposition": "^0.5.2",
+ "decompress": "^4.0.0",
+ "ext-name": "^5.0.0",
+ "file-type": "5.2.0",
+ "filenamify": "^2.0.0",
+ "get-stream": "^3.0.0",
+ "got": "^7.0.0",
+ "make-dir": "^1.0.0",
+ "p-event": "^1.0.0",
+ "pify": "^3.0.0"
+ }
+ },
+ "duplexer3": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
+ "dev": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
+ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "entities": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
+ "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
+ "dev": true
+ },
+ "errno": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+ "dev": true,
+ "requires": {
+ "prr": "~1.0.1"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "es6-promise": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz",
+ "integrity": "sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "escodegen": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
+ "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
+ "dev": true,
+ "requires": {
+ "esprima": "^2.7.1",
+ "estraverse": "^1.9.1",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.2.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
+ "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
+ "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ }
+ }
+ },
+ "eslint": {
+ "version": "4.19.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz",
+ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "^5.3.0",
+ "babel-code-frame": "^6.22.0",
+ "chalk": "^2.1.0",
+ "concat-stream": "^1.6.0",
+ "cross-spawn": "^5.1.0",
+ "debug": "^3.1.0",
+ "doctrine": "^2.1.0",
+ "eslint-scope": "^3.7.1",
+ "eslint-visitor-keys": "^1.0.0",
+ "espree": "^3.5.4",
+ "esquery": "^1.0.0",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^2.0.0",
+ "functional-red-black-tree": "^1.0.1",
+ "glob": "^7.1.2",
+ "globals": "^11.0.1",
+ "ignore": "^3.3.3",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^3.0.6",
+ "is-resolvable": "^1.0.0",
+ "js-yaml": "^3.9.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.4",
+ "minimatch": "^3.0.2",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.2",
+ "path-is-inside": "^1.0.2",
+ "pluralize": "^7.0.0",
+ "progress": "^2.0.0",
+ "regexpp": "^1.0.1",
+ "require-uncached": "^1.0.3",
+ "semver": "^5.3.0",
+ "strip-ansi": "^4.0.0",
+ "strip-json-comments": "~2.0.1",
+ "table": "4.0.2",
+ "text-table": "~0.2.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
+ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "eslint-plugin-prettier": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.2.tgz",
+ "integrity": "sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og==",
+ "dev": true,
+ "requires": {
+ "fast-diff": "^1.1.1",
+ "jest-docblock": "^21.0.0"
+ }
+ },
+ "eslint-scope": {
+ "version": "3.7.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz",
+ "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
+ "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
+ "dev": true
+ },
+ "espree": {
+ "version": "3.5.4",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
+ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
+ "dev": true,
+ "requires": {
+ "acorn": "^5.5.0",
+ "acorn-jsx": "^3.0.0"
+ }
+ },
+ "esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "dev": true
+ },
+ "esquery": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
+ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^4.0.0"
+ }
+ },
+ "esrecurse": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^4.1.0"
+ }
+ },
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true
+ },
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "expand-template": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.1.tgz",
+ "integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==",
+ "dev": true
+ },
+ "ext-list": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz",
+ "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==",
+ "dev": true,
+ "requires": {
+ "mime-db": "^1.28.0"
+ }
+ },
+ "ext-name": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz",
+ "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==",
+ "dev": true,
+ "requires": {
+ "ext-list": "^2.0.0",
+ "sort-keys-length": "^1.0.0"
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
+ },
+ "external-editor": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
+ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
+ "dev": true,
+ "requires": {
+ "chardet": "^0.4.0",
+ "iconv-lite": "^0.4.17",
+ "tmp": "^0.0.33"
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+ "dev": true
+ },
+ "fast-diff": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz",
+ "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==",
+ "dev": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
+ "dev": true,
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "file-entry-cache": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^1.2.1",
+ "object-assign": "^4.0.1"
+ }
+ },
+ "file-type": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
+ "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=",
+ "dev": true
+ },
+ "filename-reserved-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
+ "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=",
+ "dev": true
+ },
+ "filenamify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz",
+ "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==",
+ "dev": true,
+ "requires": {
+ "filename-reserved-regex": "^2.0.0",
+ "strip-outer": "^1.0.0",
+ "trim-repeated": "^1.0.0"
+ }
+ },
+ "find-root": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-0.1.2.tgz",
+ "integrity": "sha1-mNImfP8ZFsyvJ0OzoO6oHXnX3NE=",
+ "dev": true
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "flat-cache": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
+ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
+ "dev": true,
+ "requires": {
+ "circular-json": "^0.3.1",
+ "del": "^2.0.2",
+ "graceful-fs": "^4.1.2",
+ "write": "^0.2.1"
+ }
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true
+ },
+ "form-data": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.5",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "fs-access": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz",
+ "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=",
+ "dev": true,
+ "requires": {
+ "null-check": "^1.0.0"
+ }
+ },
+ "fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "dev": true
+ },
+ "fs-extra": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
+ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ }
+ }
+ },
+ "generate-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
+ "dev": true
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "dev": true,
+ "requires": {
+ "is-property": "^1.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "dev": true
+ },
+ "get-func-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
+ "dev": true
+ },
+ "get-mongodb-version": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-mongodb-version/-/get-mongodb-version-1.0.0.tgz",
+ "integrity": "sha1-pSTTu1Ph6Ff84Jt0DSQB5HVWKqM=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.2.0",
+ "lodash.startswith": "^4.2.1",
+ "minimist": "^1.1.1",
+ "mongodb": "^2.0.39",
+ "which": "^1.1.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "get-pkg-repo": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz",
+ "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "meow": "^3.3.0",
+ "normalize-package-data": "^2.3.0",
+ "parse-github-repo-url": "^1.3.0",
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^2.0.0",
+ "map-obj": "^1.0.0"
+ }
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
+ }
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^4.0.1"
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "dev": true
+ }
+ }
+ },
+ "get-proxy": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz",
+ "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==",
+ "dev": true,
+ "requires": {
+ "npm-conf": "^1.1.0"
+ }
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "git-raw-commits": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.3.6.tgz",
+ "integrity": "sha512-svsK26tQ8vEKnMshTDatSIQSMDdz8CxIIqKsvPqbtV23Etmw6VNaFAitu8zwZ0VrOne7FztwPyRLxK7/DIUTQg==",
+ "dev": true,
+ "requires": {
+ "dargs": "^4.0.1",
+ "lodash.template": "^4.0.2",
+ "meow": "^4.0.0",
+ "split2": "^2.0.0",
+ "through2": "^2.0.0"
+ }
+ },
+ "git-remote-origin-url": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz",
+ "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=",
+ "dev": true,
+ "requires": {
+ "gitconfiglocal": "^1.0.0",
+ "pify": "^2.3.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "git-semver-tags": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.3.6.tgz",
+ "integrity": "sha512-2jHlJnln4D/ECk9FxGEBh3k44wgYdWjWDtMmJPaecjoRmxKo3Y1Lh8GMYuOPu04CHw86NTAODchYjC5pnpMQig==",
+ "dev": true,
+ "requires": {
+ "meow": "^4.0.0",
+ "semver": "^5.5.0"
+ }
+ },
+ "gitconfiglocal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz",
+ "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.2"
+ }
+ },
+ "github-from-package": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "globals": {
+ "version": "11.7.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz",
+ "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==",
+ "dev": true
+ },
+ "globby": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "arrify": "^1.0.0",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "got": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz",
+ "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==",
+ "dev": true,
+ "requires": {
+ "decompress-response": "^3.2.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^3.0.0",
+ "is-plain-obj": "^1.1.0",
+ "is-retry-allowed": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "isurl": "^1.0.0-alpha5",
+ "lowercase-keys": "^1.0.0",
+ "p-cancelable": "^0.3.0",
+ "p-timeout": "^1.1.1",
+ "safe-buffer": "^5.0.1",
+ "timed-out": "^4.0.0",
+ "url-parse-lax": "^1.0.0",
+ "url-to-options": "^1.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+ "dev": true
+ },
+ "growl": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
+ "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=",
+ "dev": true
+ },
+ "handlebars": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz",
+ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=",
+ "dev": true,
+ "requires": {
+ "async": "^1.4.0",
+ "optimist": "^0.6.1",
+ "source-map": "^0.4.4",
+ "uglify-js": "^2.6"
+ }
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true
+ },
+ "har-validator": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
+ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.1",
+ "commander": "^2.9.0",
+ "is-my-json-valid": "^2.12.4",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "has-symbol-support-x": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
+ "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==",
+ "dev": true
+ },
+ "has-to-string-tag-x": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
+ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
+ "dev": true,
+ "requires": {
+ "has-symbol-support-x": "^1.4.1"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "dev": true
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "dev": true,
+ "requires": {
+ "boom": "2.x.x",
+ "cryptiles": "2.x.x",
+ "hoek": "2.x.x",
+ "sntp": "1.x.x"
+ }
+ },
+ "he": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
+ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
+ "dev": true
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
+ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
+ "dev": true
+ },
+ "htmlparser2": {
+ "version": "3.9.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
+ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^1.3.0",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^0.2.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ieee754": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
+ "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==",
+ "dev": true
+ },
+ "ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
+ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^3.0.0",
+ "chalk": "^2.0.0",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^2.0.4",
+ "figures": "^2.0.0",
+ "lodash": "^4.3.0",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rx-lite": "^4.0.8",
+ "rx-lite-aggregates": "^4.0.8",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^4.0.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "^1.0.0"
+ }
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "is-my-ip-valid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz",
+ "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==",
+ "dev": true
+ },
+ "is-my-json-valid": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.19.0.tgz",
+ "integrity": "sha512-mG0f/unGX1HZ5ep4uhRaPOS8EkAY8/j6mDRMJrutq4CqhoJWYp7qAlonIPy3TV7p3ju4TK9fo/PbnoksWmsp5Q==",
+ "dev": true,
+ "requires": {
+ "generate-function": "^2.0.0",
+ "generate-object-property": "^1.1.0",
+ "is-my-ip-valid": "^1.0.0",
+ "jsonpointer": "^4.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "is-natural-number": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz",
+ "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=",
+ "dev": true
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
+ },
+ "is-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz",
+ "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=",
+ "dev": true
+ },
+ "is-path-cwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+ "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
+ "dev": true
+ },
+ "is-path-in-cwd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
+ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
+ "dev": true,
+ "requires": {
+ "is-path-inside": "^1.0.0"
+ }
+ },
+ "is-path-inside": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+ "dev": true,
+ "requires": {
+ "path-is-inside": "^1.0.1"
+ }
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+ "dev": true
+ },
+ "is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
+ "dev": true
+ },
+ "is-resolvable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
+ "dev": true
+ },
+ "is-retry-allowed": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
+ "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "is-subset": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
+ "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=",
+ "dev": true
+ },
+ "is-text-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz",
+ "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=",
+ "dev": true,
+ "requires": {
+ "text-extensions": "^1.0.0"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "istanbul": {
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz",
+ "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1.0.x",
+ "async": "1.x",
+ "escodegen": "1.8.x",
+ "esprima": "2.7.x",
+ "glob": "^5.0.15",
+ "handlebars": "^4.0.1",
+ "js-yaml": "3.x",
+ "mkdirp": "0.5.x",
+ "nopt": "3.x",
+ "once": "1.x",
+ "resolve": "1.1.x",
+ "supports-color": "^3.1.0",
+ "which": "^1.1.1",
+ "wordwrap": "^1.0.0"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "dev": true,
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ },
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "dev": true
+ }
+ }
+ },
+ "isurl": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
+ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
+ "dev": true,
+ "requires": {
+ "has-to-string-tag-x": "^1.2.0",
+ "is-object": "^1.0.1"
+ }
+ },
+ "jest-docblock": {
+ "version": "21.2.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz",
+ "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz",
+ "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^2.6.0"
+ }
+ },
+ "js2xmlparser": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz",
+ "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=",
+ "dev": true,
+ "requires": {
+ "xmlcreate": "^1.0.1"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true,
+ "optional": true
+ },
+ "jsdoc": {
+ "version": "3.5.5",
+ "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.5.tgz",
+ "integrity": "sha512-6PxB65TAU4WO0Wzyr/4/YhlGovXl0EVYfpKbpSroSj0qBxT4/xod/l40Opkm38dRHRdQgdeY836M0uVnJQG7kg==",
+ "dev": true,
+ "requires": {
+ "babylon": "7.0.0-beta.19",
+ "bluebird": "~3.5.0",
+ "catharsis": "~0.8.9",
+ "escape-string-regexp": "~1.0.5",
+ "js2xmlparser": "~3.0.0",
+ "klaw": "~2.0.0",
+ "marked": "~0.3.6",
+ "mkdirp": "~0.5.1",
+ "requizzle": "~0.2.1",
+ "strip-json-comments": "~2.0.1",
+ "taffydb": "2.6.2",
+ "underscore": "~1.8.3"
+ }
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "dev": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true
+ },
+ "json3": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
+ "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "jsonparse": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+ "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
+ "dev": true
+ },
+ "jsonpointer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
+ "dev": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "just-extend": {
+ "version": "1.1.27",
+ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz",
+ "integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==",
+ "dev": true
+ },
+ "kerberos": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-1.0.0.tgz",
+ "integrity": "sha512-iYA/5PICH3BD18kgkjH/UjLroxTilNqrEuADFNzPqbwiJn79E+lP0U8LfHqqMGqW0qSi4YaMhwLWowKh0dSn4A==",
+ "dev": true,
+ "requires": {
+ "bindings": "^1.3.0",
+ "nan": "^2.10.0",
+ "prebuild-install": "^5.0.0"
+ }
+ },
+ "key-tree-store": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/key-tree-store/-/key-tree-store-1.3.0.tgz",
+ "integrity": "sha1-XqKa/CUppCWThDfWlVtxTOapeR8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ },
+ "klaw": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz",
+ "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.9"
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "dev": true,
+ "optional": true
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "dev": true,
+ "requires": {
+ "invert-kv": "^1.0.0"
+ }
+ },
+ "lcov-parse": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz",
+ "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=",
+ "dev": true
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "limiter": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.3.tgz",
+ "integrity": "sha512-zrycnIMsLw/3ZxTbW7HCez56rcFGecWTx5OZNplzcXUUmJLmoYArC6qdJzmAN5BWiNXGcpjhF9RQ1HSv5zebEw==",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.10",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
+ "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
+ "dev": true
+ },
+ "lodash._baseassign": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
+ "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=",
+ "dev": true,
+ "requires": {
+ "lodash._basecopy": "^3.0.0",
+ "lodash.keys": "^3.0.0"
+ }
+ },
+ "lodash._basecopy": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
+ "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
+ "dev": true
+ },
+ "lodash._basecreate": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz",
+ "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=",
+ "dev": true
+ },
+ "lodash._getnative": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
+ "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
+ "dev": true
+ },
+ "lodash._isiterateecall": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
+ "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
+ "dev": true
+ },
+ "lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
+ "dev": true
+ },
+ "lodash.assignin": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz",
+ "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=",
+ "dev": true
+ },
+ "lodash.bind": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz",
+ "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=",
+ "dev": true
+ },
+ "lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
+ "dev": true
+ },
+ "lodash.create": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz",
+ "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=",
+ "dev": true,
+ "requires": {
+ "lodash._baseassign": "^3.0.0",
+ "lodash._basecreate": "^3.0.0",
+ "lodash._isiterateecall": "^3.0.0"
+ }
+ },
+ "lodash.defaults": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
+ "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=",
+ "dev": true
+ },
+ "lodash.difference": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
+ "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=",
+ "dev": true
+ },
+ "lodash.filter": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz",
+ "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=",
+ "dev": true
+ },
+ "lodash.flatten": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
+ "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=",
+ "dev": true
+ },
+ "lodash.foreach": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
+ "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=",
+ "dev": true
+ },
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
+ "dev": true
+ },
+ "lodash.isarguments": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
+ "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
+ "dev": true
+ },
+ "lodash.isarray": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
+ "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
+ "dev": true
+ },
+ "lodash.keys": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
+ "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
+ "dev": true,
+ "requires": {
+ "lodash._getnative": "^3.0.0",
+ "lodash.isarguments": "^3.0.0",
+ "lodash.isarray": "^3.0.0"
+ }
+ },
+ "lodash.map": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
+ "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=",
+ "dev": true
+ },
+ "lodash.merge": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz",
+ "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==",
+ "dev": true
+ },
+ "lodash.pad": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz",
+ "integrity": "sha1-QzCUmoM6fI2iLMIPaibE1Z3runA=",
+ "dev": true
+ },
+ "lodash.padend": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
+ "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=",
+ "dev": true
+ },
+ "lodash.padstart": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz",
+ "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=",
+ "dev": true
+ },
+ "lodash.pick": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
+ "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=",
+ "dev": true
+ },
+ "lodash.reduce": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
+ "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=",
+ "dev": true
+ },
+ "lodash.reject": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz",
+ "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=",
+ "dev": true
+ },
+ "lodash.some": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz",
+ "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=",
+ "dev": true
+ },
+ "lodash.startswith": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/lodash.startswith/-/lodash.startswith-4.2.1.tgz",
+ "integrity": "sha1-xZjErc4YiiflMUVzHNxsDnF3YAw=",
+ "dev": true
+ },
+ "lodash.template": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz",
+ "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=",
+ "dev": true,
+ "requires": {
+ "lodash._reinterpolate": "~3.0.0",
+ "lodash.templatesettings": "^4.0.0"
+ }
+ },
+ "lodash.templatesettings": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz",
+ "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=",
+ "dev": true,
+ "requires": {
+ "lodash._reinterpolate": "~3.0.0"
+ }
+ },
+ "log-driver": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz",
+ "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=",
+ "dev": true
+ },
+ "lolex": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.1.tgz",
+ "integrity": "sha512-Oo2Si3RMKV3+lV5MsSWplDQFoTClz/24S0MMHYcgGWWmFXr6TMlqcqk/l1GtH+d5wLBwNRiqGnwDRMirtFalJw==",
+ "dev": true
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+ "dev": true
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
+ }
+ },
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
+ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "map-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz",
+ "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=",
+ "dev": true
+ },
+ "marked": {
+ "version": "0.3.19",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz",
+ "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==",
+ "dev": true
+ },
+ "mem": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "meow": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
+ "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^4.0.0",
+ "decamelize-keys": "^1.0.0",
+ "loud-rejection": "^1.0.0",
+ "minimist": "^1.1.3",
+ "minimist-options": "^3.0.1",
+ "normalize-package-data": "^2.3.4",
+ "read-pkg-up": "^3.0.0",
+ "redent": "^2.0.0",
+ "trim-newlines": "^2.0.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^3.0.0"
+ }
+ }
+ }
+ },
+ "metamocha": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/metamocha/-/metamocha-1.3.2.tgz",
+ "integrity": "sha512-GQj+vxauCtP5o9hxGJm7tZIwwCpDJUW7KLBqqLJyhnpKdxDWxfUTwjgbMfLdGs/BQiFvVP2b3JmGobBkUQPvtg==",
+ "dev": true,
+ "requires": {
+ "mocha": "^3.5.3"
+ }
+ },
+ "mime-db": {
+ "version": "1.35.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz",
+ "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.19",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz",
+ "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==",
+ "dev": true,
+ "requires": {
+ "mime-db": "~1.35.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "dev": true
+ },
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+ "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
+ "dev": true
+ },
+ "minimist-options": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz",
+ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ }
+ }
+ },
+ "mocha": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz",
+ "integrity": "sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==",
+ "dev": true,
+ "requires": {
+ "browser-stdout": "1.3.0",
+ "commander": "2.9.0",
+ "debug": "2.6.8",
+ "diff": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "glob": "7.1.1",
+ "growl": "1.9.2",
+ "he": "1.1.1",
+ "json3": "3.3.2",
+ "lodash.create": "3.1.1",
+ "mkdirp": "0.5.1",
+ "supports-color": "3.1.2"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "dev": true,
+ "requires": {
+ "graceful-readlink": ">= 1.0.0"
+ }
+ },
+ "debug": {
+ "version": "2.6.8",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+ "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.2",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz",
+ "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "mocha-sinon": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mocha-sinon/-/mocha-sinon-2.1.0.tgz",
+ "integrity": "sha512-E+rqBhoCQlvo+Kn9SY9qvoO/TWqJFnmxG70dyVYdFc6LGZAq08dr+pV2yUP4sBeMMYGYABB8T7NHNsG+4scy/A==",
+ "dev": true
+ },
+ "modify-values": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz",
+ "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==",
+ "dev": true
+ },
+ "mongodb": {
+ "version": "2.2.36",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.36.tgz",
+ "integrity": "sha512-P2SBLQ8Z0PVx71ngoXwo12+FiSfbNfGOClAao03/bant5DgLNkOPAck5IaJcEk4gKlQhDEURzfR3xuBG1/B+IA==",
+ "dev": true,
+ "requires": {
+ "es6-promise": "3.2.1",
+ "mongodb-core": "2.1.20",
+ "readable-stream": "2.2.7"
+ },
+ "dependencies": {
+ "bson": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz",
+ "integrity": "sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg==",
+ "dev": true
+ },
+ "mongodb-core": {
+ "version": "2.1.20",
+ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.20.tgz",
+ "integrity": "sha512-IN57CX5/Q1bhDq6ShAR6gIv4koFsZP7L8WOK1S0lR0pVDQaScffSMV5jxubLsmZ7J+UdqmykKw4r9hG3XQEGgQ==",
+ "dev": true,
+ "requires": {
+ "bson": "~1.0.4",
+ "require_optional": "~1.0.0"
+ }
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz",
+ "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=",
+ "dev": true,
+ "requires": {
+ "buffer-shims": "~1.0.0",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~1.0.0",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "mongodb-core": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.3.tgz",
+ "integrity": "sha512-dISiV3zHGJTwZpg0xDhi9zCqFGMhA5kDPByHlcaEp09NSKfzHJ7XQbqVrL7qhki1U9PZHsmRfbFzco+6b1h2wA==",
+ "requires": {
+ "bson": "^1.1.0",
+ "require_optional": "^1.0.1",
+ "safe-buffer": "^5.1.2",
+ "saslprep": "^1.0.0"
+ }
+ },
+ "mongodb-download-url": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/mongodb-download-url/-/mongodb-download-url-0.3.3.tgz",
+ "integrity": "sha1-46ilSPE+sg9aDN+GPLwGNCGjk0w=",
+ "dev": true,
+ "requires": {
+ "async": "^2.1.2",
+ "debug": "^2.2.0",
+ "lodash.defaults": "^4.0.0",
+ "minimist": "^1.2.0",
+ "mongodb-version-list": "^1.0.0",
+ "request": "^2.65.0",
+ "semver": "^5.0.3"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
+ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.10"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "mongodb-extjson": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/mongodb-extjson/-/mongodb-extjson-2.1.4.tgz",
+ "integrity": "sha512-AYGhTnrMoPW3JXdtY2QkP3kPBNrUqcTW4tQaW1rQ/JO41QCiMqIq5RWf5e3lhs4McGx9rIXHKPYGDH6TDp8RHg==",
+ "dev": true,
+ "requires": {
+ "bson": "^2.0.7"
+ },
+ "dependencies": {
+ "bson": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-2.0.8.tgz",
+ "integrity": "sha512-0F0T3gHeOwJzHWcN60BZomqj5hCBDRk4b3fANuruvDTnyJJ8sggABKSaePM2F34THNZZSIlB2P1mk2nQWgBr9w==",
+ "dev": true
+ }
+ }
+ },
+ "mongodb-mock-server": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/mongodb-mock-server/-/mongodb-mock-server-1.0.0.tgz",
+ "integrity": "sha1-bewhLSLMEWz9IlfI+b4/pN00Ej0=",
+ "dev": true,
+ "requires": {
+ "snappy": "^6.0.1"
+ }
+ },
+ "mongodb-test-runner": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/mongodb-test-runner/-/mongodb-test-runner-1.3.4.tgz",
+ "integrity": "sha512-Ubfi6nfhEHFCaF0cIg7e8jZBYbjpjTa7GhOS5dWkYTwtVcNMmL0TeQAaea4i3dVl85VdoI5I4WNFpDpu8Ye58Q==",
+ "dev": true,
+ "requires": {
+ "metamocha": "^1.2.5",
+ "mongodb-topology-manager": "^2.0.0",
+ "mongodb-version-manager": "^1.0.7",
+ "semver": "^5.4.1",
+ "yargs": "^8.0.2"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ }
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "requires": {
+ "pify": "^2.0.0"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^2.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^2.0.0"
+ }
+ },
+ "yargs": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
+ "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^4.1.0",
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.0.0",
+ "read-pkg-up": "^2.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^7.0.0"
+ }
+ }
+ }
+ },
+ "mongodb-topology-manager": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mongodb-topology-manager/-/mongodb-topology-manager-2.1.0.tgz",
+ "integrity": "sha512-s2PelP303LsyJIsReIDUyHhdGPN1xoBY5RynfDKpgT2Wz/D0vaQZN+x0AK6lzj7ro7c8hPFzvHyGA5bJ7JWUug==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.1",
+ "co": "^4.6.0",
+ "kerberos": "^1.0.0",
+ "mkdirp": "^0.5.1",
+ "mongodb-core": "^3.1.2",
+ "rimraf": "^2.6.2"
+ },
+ "dependencies": {
+ "bluebird": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
+ "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
+ "dev": true
+ }
+ }
+ },
+ "mongodb-version-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/mongodb-version-list/-/mongodb-version-list-1.0.0.tgz",
+ "integrity": "sha1-8lAxz83W8UWx3o/OKk6+wCiLtKQ=",
+ "dev": true,
+ "requires": {
+ "cheerio": "^0.22.0",
+ "debug": "^2.2.0",
+ "downcache": "^0.0.9",
+ "fs-extra": "^1.0.0",
+ "minimist": "^1.1.1",
+ "semver": "^5.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "fs-extra": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
+ "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^2.1.0",
+ "klaw": "^1.0.0"
+ }
+ },
+ "jsonfile": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "klaw": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
+ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.9"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "mongodb-version-manager": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/mongodb-version-manager/-/mongodb-version-manager-1.1.3.tgz",
+ "integrity": "sha512-EInfE8Uu4umFHnFr1+kjvxaC8n0v2HR9WEJ659FxOITStOMzzvFvKw88j4m//rK85rAKk6aZ+Kx29tRTcatrkA==",
+ "dev": true,
+ "requires": {
+ "ampersand-state": "^5.0.1",
+ "async": "^2.1.2",
+ "chalk": "^2.1.0",
+ "debug": "^3.0.1",
+ "docopt": "^0.6.2",
+ "download": "^6.2.5",
+ "figures": "^2.0.0",
+ "fs-extra": "^4.0.2",
+ "get-mongodb-version": "^1.0.0",
+ "lodash.defaults": "^4.2.0",
+ "lodash.difference": "^4.1.1",
+ "mongodb-download-url": "^0.3.3",
+ "mongodb-version-list": "^1.0.0",
+ "semver": "^5.3.0",
+ "tildify": "^1.2.0",
+ "untildify": "^3.0.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
+ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.10"
+ }
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "dev": true
+ },
+ "nan": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz",
+ "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==",
+ "dev": true
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "nise": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.3.tgz",
+ "integrity": "sha512-cg44dkGHutAY+VmftgB1gHvLWxFl2vwYdF8WpbceYicQwylESRJiAAKgCRJntdoEbMiUzywkZEUzjoDWH0JwKA==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/formatio": "^2.0.0",
+ "just-extend": "^1.1.27",
+ "lolex": "^2.3.2",
+ "path-to-regexp": "^1.7.0",
+ "text-encoding": "^0.6.4"
+ }
+ },
+ "node-abi": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.4.3.tgz",
+ "integrity": "sha512-b656V5C0628gOOA2kwcpNA/bxdlqYF9FvxJ+qqVX0ctdXNVZpS8J6xEUYir3WAKc7U0BH/NRlSpNbGsy+azjeg==",
+ "dev": true,
+ "requires": {
+ "semver": "^5.4.1"
+ }
+ },
+ "noop-logger": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
+ "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=",
+ "dev": true
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "is-builtin-module": "^1.0.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "npm-conf": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
+ "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
+ "dev": true,
+ "requires": {
+ "config-chain": "^1.1.11",
+ "pify": "^3.0.0"
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "dev": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "nth-check": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
+ "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "null-check": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz",
+ "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=",
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+ "dev": true,
+ "requires": {
+ "minimist": "~0.0.1",
+ "wordwrap": "~0.0.2"
+ }
+ },
+ "optionator": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+ "dev": true,
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.4",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "wordwrap": "~1.0.0"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "dev": true
+ }
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "dev": true,
+ "requires": {
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "p-cancelable": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz",
+ "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==",
+ "dev": true
+ },
+ "p-event": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz",
+ "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=",
+ "dev": true,
+ "requires": {
+ "p-timeout": "^1.1.1"
+ }
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-timeout": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
+ "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=",
+ "dev": true,
+ "requires": {
+ "p-finally": "^1.0.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ },
+ "parse-github-repo-url": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz",
+ "integrity": "sha1-nn2LslKmy2ukJZUGC3v23z28H1A=",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
+ "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
+ "dev": true,
+ "requires": {
+ "isarray": "0.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ }
+ }
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "pathval": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
+ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
+ "dev": true
+ },
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "dev": true
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "pluralize": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
+ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
+ "dev": true
+ },
+ "prebuild-install": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.0.0.tgz",
+ "integrity": "sha512-AvcPLFqNz/hDd6o7qLj8i9xB479P9jSjA/p6m4927CRfY3tsmPfyFmD7RKXtdp6I2d1BAIVBgJoj5mxRJDZL4w==",
+ "dev": true,
+ "requires": {
+ "detect-libc": "^1.0.3",
+ "expand-template": "^1.0.2",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.0",
+ "mkdirp": "^0.5.1",
+ "node-abi": "^2.2.0",
+ "noop-logger": "^0.1.1",
+ "npmlog": "^4.0.1",
+ "os-homedir": "^1.0.1",
+ "pump": "^2.0.1",
+ "rc": "^1.2.7",
+ "simple-get": "^2.7.0",
+ "tar-fs": "^1.13.0",
+ "tunnel-agent": "^0.6.0",
+ "which-pm-runs": "^1.0.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ }
+ }
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "dev": true
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "dev": true
+ },
+ "prettier": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.12.1.tgz",
+ "integrity": "sha1-wa0g6APndJ+vkFpAnSNn4Gu+cyU=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "dev": true
+ },
+ "progress": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
+ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
+ "dev": true
+ },
+ "proto-list": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+ "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
+ "dev": true
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "psl": {
+ "version": "1.1.29",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
+ "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==",
+ "dev": true
+ },
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ },
+ "q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.3.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
+ "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=",
+ "dev": true
+ },
+ "quick-lru": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz",
+ "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=",
+ "dev": true
+ },
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dev": true,
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ },
+ "dependencies": {
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "redent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
+ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^3.0.0",
+ "strip-indent": "^2.0.0"
+ }
+ },
+ "regexpp": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz",
+ "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "request": {
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "dev": true
+ },
+ "form-data": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
+ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "har-validator": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
+ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
+ "dev": true,
+ "requires": {
+ "ajv": "^5.3.0",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+ "dev": true
+ },
+ "tough-cookie": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+ "dev": true,
+ "requires": {
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "dev": true
+ }
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
+ },
+ "require-uncached": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
+ "dev": true,
+ "requires": {
+ "caller-path": "^0.1.0",
+ "resolve-from": "^1.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
+ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
+ "dev": true
+ }
+ }
+ },
+ "require_optional": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
+ "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
+ "requires": {
+ "resolve-from": "^2.0.0",
+ "semver": "^5.1.0"
+ }
+ },
+ "requizzle": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.1.tgz",
+ "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=",
+ "dev": true,
+ "requires": {
+ "underscore": "~1.6.0"
+ },
+ "dependencies": {
+ "underscore": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
+ "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=",
+ "dev": true
+ }
+ }
+ },
+ "resolve": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
+ "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "dev": true,
+ "requires": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "align-text": "^0.1.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.5"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "dev": true,
+ "requires": {
+ "is-promise": "^2.1.0"
+ }
+ },
+ "rx-lite": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
+ "dev": true
+ },
+ "rx-lite-aggregates": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
+ "dev": true,
+ "requires": {
+ "rx-lite": "*"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "samsam": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz",
+ "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==",
+ "dev": true
+ },
+ "saslprep": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.1.tgz",
+ "integrity": "sha512-ntN6SbE3hRqd45PKKadRPgA+xHPWg5lPSj2JWJdJvjTwXDDfkPVtXWvP8jJojvnm+rAsZ2b299C5NwZqq818EA==",
+ "optional": true
+ },
+ "seek-bzip": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz",
+ "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=",
+ "dev": true,
+ "requires": {
+ "commander": "~2.8.1"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
+ "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
+ "dev": true,
+ "requires": {
+ "graceful-readlink": ">= 1.0.0"
+ }
+ }
+ }
+ },
+ "semver": {
+ "version": "5.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
+ "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw=="
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "simple-concat": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz",
+ "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=",
+ "dev": true
+ },
+ "simple-get": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz",
+ "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==",
+ "dev": true,
+ "requires": {
+ "decompress-response": "^3.3.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "sinon": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.5.0.tgz",
+ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/formatio": "^2.0.0",
+ "diff": "^3.1.0",
+ "lodash.get": "^4.4.2",
+ "lolex": "^2.2.0",
+ "nise": "^1.2.0",
+ "supports-color": "^5.1.0",
+ "type-detect": "^4.0.5"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "sinon-chai": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.2.0.tgz",
+ "integrity": "sha512-Z72B4a0l0IQe5uWi9yzcqX/Ml6K9e1Hp03NmkjJnRG3gDsKTX7KvLFZsVUmCaz0eqeXLLK089mwTsP1P1W+DUQ==",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
+ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0"
+ }
+ },
+ "snappy": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/snappy/-/snappy-6.0.4.tgz",
+ "integrity": "sha512-+MjETxi/G7fLtiLFWW9n9VLzpJvOVqRRohJ7kTgaU4bUJ37rsoWwxhZzO91BOB7sCgOILtKsGtCUviUo3REIfQ==",
+ "dev": true,
+ "requires": {
+ "bindings": "^1.3.0",
+ "nan": "^2.10.0"
+ }
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "dev": true,
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "sort-keys": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+ "dev": true,
+ "requires": {
+ "is-plain-obj": "^1.0.0"
+ }
+ },
+ "sort-keys-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz",
+ "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=",
+ "dev": true,
+ "requires": {
+ "sort-keys": "^1.0.0"
+ }
+ },
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dev": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ },
+ "spdx-correct": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz",
+ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz",
+ "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz",
+ "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==",
+ "dev": true
+ },
+ "split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "dev": true,
+ "requires": {
+ "through": "2"
+ }
+ },
+ "split2": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz",
+ "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==",
+ "dev": true,
+ "requires": {
+ "through2": "^2.0.2"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.14.2",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
+ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
+ "dev": true,
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "standard-version": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-4.4.0.tgz",
+ "integrity": "sha512-jJ8FZhnmh9xJRQLnaXiGRLaAUNItIH29lOQZGpL5fd4+jUHto9Ij6SPCYN86h6ZNNXkYq2TYiIVVF7gVyC+pcQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "conventional-changelog": "^1.1.0",
+ "conventional-recommended-bump": "^1.0.0",
+ "dotgitignore": "^1.0.3",
+ "figures": "^1.5.0",
+ "fs-access": "^1.0.0",
+ "semver": "^5.1.0",
+ "yargs": "^8.0.1"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ }
+ }
+ },
+ "figures": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5",
+ "object-assign": "^4.1.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "requires": {
+ "pify": "^2.0.0"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^2.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^2.0.0"
+ }
+ },
+ "yargs": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
+ "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^4.1.0",
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.0.0",
+ "read-pkg-up": "^2.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^7.0.0"
+ }
+ }
+ }
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "stringstream": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz",
+ "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "strip-dirs": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz",
+ "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==",
+ "dev": true,
+ "requires": {
+ "is-natural-number": "^4.0.1"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ },
+ "strip-outer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
+ "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.2"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "table": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
+ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
+ "dev": true,
+ "requires": {
+ "ajv": "^5.2.3",
+ "ajv-keywords": "^2.1.0",
+ "chalk": "^2.1.0",
+ "lodash": "^4.17.4",
+ "slice-ansi": "1.0.0",
+ "string-width": "^2.1.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "taffydb": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz",
+ "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=",
+ "dev": true
+ },
+ "tar-fs": {
+ "version": "1.16.3",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz",
+ "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==",
+ "dev": true,
+ "requires": {
+ "chownr": "^1.0.1",
+ "mkdirp": "^0.5.1",
+ "pump": "^1.0.0",
+ "tar-stream": "^1.1.2"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz",
+ "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "tar-stream": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.1.tgz",
+ "integrity": "sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA==",
+ "dev": true,
+ "requires": {
+ "bl": "^1.0.0",
+ "buffer-alloc": "^1.1.0",
+ "end-of-stream": "^1.0.0",
+ "fs-constants": "^1.0.0",
+ "readable-stream": "^2.3.0",
+ "to-buffer": "^1.1.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "text-encoding": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz",
+ "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=",
+ "dev": true
+ },
+ "text-extensions": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.7.0.tgz",
+ "integrity": "sha512-AKXZeDq230UaSzaO5s3qQUZOaC7iKbzq0jOFL614R7d9R593HLqAOL0cYoqLdkNrjBSOdmoQI06yigq1TSBXAg==",
+ "dev": true
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ },
+ "tildify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
+ "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "^1.0.0"
+ }
+ },
+ "timed-out": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
+ "dev": true
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "to-buffer": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
+ "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==",
+ "dev": true
+ },
+ "tough-cookie": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
+ "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
+ "dev": true,
+ "requires": {
+ "punycode": "^1.4.1"
+ }
+ },
+ "trim-newlines": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz",
+ "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=",
+ "dev": true
+ },
+ "trim-off-newlines": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz",
+ "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=",
+ "dev": true
+ },
+ "trim-repeated": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
+ "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.2"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+ "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
+ "dev": true
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true,
+ "optional": true
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ },
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0",
+ "yargs": "~3.10.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "dev": true,
+ "optional": true
+ },
+ "unbzip2-stream": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz",
+ "integrity": "sha512-izD3jxT8xkzwtXRUZjtmRwKnZoeECrfZ8ra/ketwOcusbZEp4mjULMnJOCfTDZBgGQAAY1AJ/IgxcwkavcX9Og==",
+ "dev": true,
+ "requires": {
+ "buffer": "^3.0.1",
+ "through": "^2.3.6"
+ }
+ },
+ "underscore": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
+ "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=",
+ "dev": true
+ },
+ "underscore-contrib": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz",
+ "integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=",
+ "dev": true,
+ "requires": {
+ "underscore": "1.6.0"
+ },
+ "dependencies": {
+ "underscore": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
+ "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=",
+ "dev": true
+ }
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ },
+ "untildify": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz",
+ "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==",
+ "dev": true
+ },
+ "url-parse-lax": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
+ "dev": true,
+ "requires": {
+ "prepend-http": "^1.0.1"
+ }
+ },
+ "url-to-options": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
+ "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=",
+ "dev": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "which-pm-runs": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
+ "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=",
+ "dev": true
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "dev": true,
+ "optional": true
+ },
+ "wordwrap": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
+ "dev": true
+ },
+ "worker-farm": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz",
+ "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==",
+ "dev": true,
+ "requires": {
+ "errno": "~0.1.7"
+ }
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "write": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
+ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "^0.5.1"
+ }
+ },
+ "xmlcreate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz",
+ "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "camelcase": "^1.0.2",
+ "cliui": "^2.1.0",
+ "decamelize": "^1.0.0",
+ "window-size": "0.1.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^4.1.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ }
+ }
+ },
+ "yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+ "dev": true,
+ "requires": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
index 41b645bab34..c882063ed43 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "mongodb",
- "version": "3.1.3",
+ "version": "3.1.4",
"description": "The official MongoDB driver for Node.js",
"main": "index.js",
"repository": {
@@ -13,7 +13,8 @@
"official"
],
"dependencies": {
- "mongodb-core": "3.1.2"
+ "mongodb-core": "3.1.3",
+ "safe-buffer": "^5.1.2"
},
"devDependencies": {
"bluebird": "3.5.0",
@@ -21,7 +22,6 @@
"chai": "^4.1.1",
"chai-subset": "^1.6.0",
"co": "4.6.0",
- "conventional-changelog-cli": "^1.3.5",
"coveralls": "^2.11.6",
"eslint": "^4.5.0",
"eslint-plugin-prettier": "^2.2.0",
@@ -36,6 +36,7 @@
"semver": "^5.5.0",
"sinon": "^4.3.0",
"sinon-chai": "^3.2.0",
+ "standard-version": "^4.4.0",
"worker-farm": "^1.5.0"
},
"author": "Christian Kvalheim",
@@ -51,9 +52,9 @@
"coverage": "istanbul cover mongodb-test-runner -- -t 60000 test/unit test/functional",
"lint": "eslint lib test",
"format": "prettier --print-width 100 --tab-width 2 --single-quote --write 'test/**/*.js' 'lib/**/*.js'",
- "changelog": "conventional-changelog -p angular -i HISTORY.md -s",
"bench": "node test/driverBench/",
- "generate-evergreen": "node .evergreen/generate_evergreen_tasks.js"
+ "generate-evergreen": "node .evergreen/generate_evergreen_tasks.js",
+ "release": "standard-version -i HISTORY.md"
},
"homepage": "https://github.com/mongodb/node-mongodb-native"
}
diff --git a/test/config.js b/test/config.js
index 33a5add7ecd..68e8bd53bdd 100644
--- a/test/config.js
+++ b/test/config.js
@@ -1,7 +1,8 @@
'use strict';
const ConfigurationBase = require('mongodb-test-runner').ConfigurationBase;
const f = require('util').format;
-
+const url = require('url');
+const qs = require('querystring');
class NativeConfiguration extends ConfigurationBase {
constructor(options) {
super(options);
@@ -47,6 +48,12 @@ class NativeConfiguration extends ConfigurationBase {
}
newClient(dbOptions, serverOptions) {
+ // support MongoClient contructor form (url, options) for `newClient`
+ if (typeof dbOptions === 'string') {
+ return new this.mongo.MongoClient(dbOptions, serverOptions);
+ }
+
+ dbOptions = dbOptions || {};
serverOptions = Object.assign({}, { haInterval: 100 }, serverOptions);
// Override implementation
@@ -59,17 +66,27 @@ class NativeConfiguration extends ConfigurationBase {
if (keys.indexOf('sslOnNormalPorts') !== -1) serverOptions.ssl = true;
// Fall back
- const dbHost = (serverOptions && serverOptions.host) || 'localhost';
+ let dbHost = (serverOptions && serverOptions.host) || 'localhost';
const dbPort = (serverOptions && serverOptions.port) || this.options.port || 27017;
- // Default topology
- const DbTopology = this.options.topology ? this.options.topology : this.mongo.Server;
+ if (dbHost.indexOf('.sock') !== -1) {
+ dbHost = qs.escape(dbHost);
+ }
+
+ if (this.options.setName) {
+ Object.assign(dbOptions, { replicaSet: this.options.setName, auto_reconnect: false });
+ }
+
+ const connectionString = url.format({
+ protocol: 'mongodb',
+ slashes: true,
+ hostname: dbHost,
+ port: dbPort,
+ query: dbOptions,
+ pathname: '/'
+ });
- // Return a new MongoClient instance
- return new this.mongo.MongoClient(
- new DbTopology(dbHost, dbPort, serverOptions, this.mongo),
- dbOptions
- );
+ return new this.mongo.MongoClient(connectionString, serverOptions);
}
url(username, password) {
diff --git a/test/examples/change_streams.js b/test/examples/change_streams.js
index f9e998fc0a9..d1ea7814669 100644
--- a/test/examples/change_streams.js
+++ b/test/examples/change_streams.js
@@ -28,9 +28,10 @@ describe('examples(change-stream):', function() {
it('Open A Change Stream', {
metadata: { requires: { topology: ['replicaset'], mongodb: '>=3.6.0' } },
test: async function() {
+ await db.collection('inventory').insertOne({ a: 1 });
setTimeout(async function() {
await db.collection('inventory').insertOne({ a: 1 });
- });
+ }, 250);
// Start Changestream Example 1
const collection = db.collection('inventory');
@@ -52,7 +53,7 @@ describe('examples(change-stream):', function() {
await db.collection('inventory').insertOne({ a: 1, b: 2 });
setTimeout(async function() {
await db.collection('inventory').updateOne({ a: 1 }, { $set: { a: 2 } });
- });
+ }, 250);
// Start Changestream Example 2
const collection = db.collection('inventory');
@@ -77,7 +78,7 @@ describe('examples(change-stream):', function() {
setTimeout(async function() {
await db.collection('inventory').insertOne({ a: 1 });
await db.collection('inventory').insertOne({ b: 2 });
- });
+ }, 250);
// Start Changestream Example 3
const collection = db.collection('inventory');
@@ -103,7 +104,7 @@ describe('examples(change-stream):', function() {
test: async function() {
setTimeout(async function() {
await db.collection('inventory').insertOne({ username: 'alice' });
- });
+ }, 250);
// Start Changestream Example 4
const pipeline = [
diff --git a/test/functional/aggregation_tests.js b/test/functional/aggregation_tests.js
index 7db2f43d342..f4677ea28aa 100644
--- a/test/functional/aggregation_tests.js
+++ b/test/functional/aggregation_tests.js
@@ -25,7 +25,7 @@ describe('Aggregation', function() {
databaseName = this.configuration.db;
// LINE var MongoClient = require('mongodb').MongoClient;
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
// REPLACE this.configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE test.
// BEGIN
@@ -117,7 +117,7 @@ describe('Aggregation', function() {
databaseName = this.configuration.db;
// LINE var MongoClient = require('mongodb').MongoClient;
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
// REPLACE this.configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE test.
// BEGIN
@@ -210,7 +210,7 @@ describe('Aggregation', function() {
databaseName = this.configuration.db;
// LINE var MongoClient = require('mongodb').MongoClient;
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
// REPLACE this.configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE test.
// BEGIN
@@ -303,7 +303,7 @@ describe('Aggregation', function() {
databaseName = this.configuration.db;
// LINE var MongoClient = require('mongodb').MongoClient;
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
// REPLACE this.configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE test.
// BEGIN
@@ -388,7 +388,7 @@ describe('Aggregation', function() {
databaseName = this.configuration.db;
// LINE var MongoClient = require('mongodb').MongoClient;
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
// REPLACE this.configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE test.
// BEGIN
@@ -478,7 +478,7 @@ describe('Aggregation', function() {
databaseName = this.configuration.db;
// LINE var MongoClient = require('mongodb').MongoClient;
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
// REPLACE this.configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE test.
// BEGIN
@@ -572,7 +572,7 @@ describe('Aggregation', function() {
databaseName = this.configuration.db;
// LINE var MongoClient = require('mongodb').MongoClient;
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
// REPLACE this.configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE test.
// BEGIN
@@ -664,7 +664,7 @@ describe('Aggregation', function() {
databaseName = this.configuration.db;
// LINE var MongoClient = require('mongodb').MongoClient;
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
// REPLACE this.configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE test.
// BEGIN
diff --git a/test/functional/apm_tests.js b/test/functional/apm_tests.js
index 84c30f92021..005977e9f2e 100644
--- a/test/functional/apm_tests.js
+++ b/test/functional/apm_tests.js
@@ -1,6 +1,5 @@
'use strict';
-const MongoClient = require('../..').MongoClient;
const instrument = require('../..').instrument;
const path = require('path');
const fs = require('fs');
@@ -94,7 +93,7 @@ describe('APM', function() {
}
);
- it('should support legacy `instrument`/`uninstrument` methods with MongoClient.connect', {
+ it('should support legacy `instrument`/`uninstrument` methods with MongoClient `connect`', {
metadata: { requires: { topology: ['single', 'replicaset', 'sharded'] } },
// The actual test we wish to run
@@ -106,8 +105,9 @@ describe('APM', function() {
instrumentation.on('started', filterForCommands('insert', started));
instrumentation.on('succeeded', filterForCommands('insert', succeeded));
- const uri = this.configuration.url();
- return MongoClient.connect(uri, { monitorCommands: true }).then(client => {
+ const firstClient = this.configuration.newClient({}, { monitorCommands: true });
+ const secondClient = this.configuration.newClient({}, { monitorCommands: true });
+ return firstClient.connect().then(client => {
return client
.db(this.configuration.db)
.collection('apm_test')
@@ -124,7 +124,7 @@ describe('APM', function() {
.then(() => {
started = [];
succeeded = [];
- return MongoClient.connect(uri, { monitorCommands: true });
+ return secondClient.connect();
})
.then(newClient => {
return newClient
@@ -266,7 +266,7 @@ describe('APM', function() {
client.on('commandStarted', filterForCommands(desiredEvents, started));
client.on('commandSucceeded', filterForCommands(desiredEvents, succeeded));
- client.on('fullsetup', client => {
+ client.connect().then(() => {
const db = client.db(self.configuration.db);
db
@@ -295,8 +295,6 @@ describe('APM', function() {
done();
});
});
-
- client.connect();
}
});
@@ -416,7 +414,6 @@ describe('APM', function() {
.limit(100)
.batchSize(2)
.comment('some comment')
- .maxScan(1000)
.maxTimeMS(5000)
.setReadPreference(ReadPreference.PRIMARY)
.addCursorFlag('noCursorTimeout', true)
@@ -491,7 +488,6 @@ describe('APM', function() {
.limit(100)
.batchSize(2)
.comment('some comment')
- .maxScan(1000)
.maxTimeMS(5000)
.setReadPreference(ReadPreference.PRIMARY)
.addCursorFlag('noCursorTimeout', true)
@@ -1003,11 +999,17 @@ describe('APM', function() {
expect(data).to.have.length(r.insertedCount);
// Set up the listeners
- client.on('commandStarted', filterOutCommands('endSessions', monitoringResults.starts));
- client.on('commandFailed', filterOutCommands('endSessions', monitoringResults.failures));
+ client.on(
+ 'commandStarted',
+ filterOutCommands(['ismaster', 'endSessions'], monitoringResults.starts)
+ );
+ client.on(
+ 'commandFailed',
+ filterOutCommands(['ismaster', 'endSessions'], monitoringResults.failures)
+ );
client.on(
'commandSucceeded',
- filterOutCommands('endSessions', monitoringResults.successes)
+ filterOutCommands(['ismaster', 'endSessions'], monitoringResults.successes)
);
// Unpack the operation
@@ -1110,9 +1112,8 @@ describe('APM', function() {
it(test.description, {
metadata: { requires: requirements },
test: function() {
- return MongoClient.connect(this.configuration.url(), {
- monitorCommands: true
- }).then(client => {
+ const client = this.configuration.newClient({}, { monitorCommands: true });
+ return client.connect().then(client => {
expect(client).to.exist;
return executeOperation(client, scenario, test).then(() => client.close());
});
diff --git a/test/functional/buffering_proxy_tests.js b/test/functional/buffering_proxy_tests.js
index ad216ea01f9..0807a3e3989 100644
--- a/test/functional/buffering_proxy_tests.js
+++ b/test/functional/buffering_proxy_tests.js
@@ -29,7 +29,6 @@ describe.skip('Buffering Proxy', function() {
test: function(done) {
var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient,
ObjectId = configuration.require.ObjectId,
ReadPreference = configuration.require.ReadPreference;
@@ -179,68 +178,69 @@ describe.skip('Buffering Proxy', function() {
}
});
- MongoClient.connect(
+ const client = configuration.newClient(
'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs',
{
socketTimeoutMS: 2000,
haInterval: 1000
- },
- function(err, client) {
- test.equal(null, err);
- var db = client.db(configuration.db);
- var results = [];
+ }
+ );
+
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
+ var results = [];
+
+ setTimeout(function() {
+ die = true;
+ dieSecondary = true;
setTimeout(function() {
- die = true;
- dieSecondary = true;
+ db.collection('test').insertOne({ a: 1 }, function(err) {
+ test.equal(null, err);
+ results.push('insertOne');
+ });
+
+ db.command(
+ { count: 'test', query: {} },
+ { readPreference: new ReadPreference(ReadPreference.SECONDARY) },
+ function(err) {
+ test.equal(null, err);
+ results.push('count');
+ }
+ );
+
+ db
+ .collection('test')
+ .aggregate([{ $match: {} }])
+ .toArray(function(err) {
+ test.equal(null, err);
+ results.push('aggregate');
+ });
- setTimeout(function() {
- db.collection('test').insertOne({ a: 1 }, function(err) {
+ db
+ .collection('test')
+ .find({})
+ .setReadPreference(new ReadPreference(ReadPreference.SECONDARY))
+ .toArray(function(err) {
test.equal(null, err);
- results.push('insertOne');
+ results.push('find');
});
- db.command(
- { count: 'test', query: {} },
- { readPreference: new ReadPreference(ReadPreference.SECONDARY) },
- function(err) {
- test.equal(null, err);
- results.push('count');
- }
- );
-
- db
- .collection('test')
- .aggregate([{ $match: {} }])
- .toArray(function(err) {
- test.equal(null, err);
- results.push('aggregate');
- });
-
- db
- .collection('test')
- .find({})
- .setReadPreference(new ReadPreference(ReadPreference.SECONDARY))
- .toArray(function(err) {
- test.equal(null, err);
- results.push('find');
- });
+ setTimeout(function() {
+ die = false;
setTimeout(function() {
- die = false;
+ test.deepEqual(['insertOne', 'aggregate'].sort(), results.sort());
- setTimeout(function() {
- test.deepEqual(['insertOne', 'aggregate'].sort(), results.sort());
-
- client.close();
- // test.deepEqual(['insertOne', 'aggregate', 'count', 'find'], results);
- done();
- }, 1000);
+ client.close();
+ // test.deepEqual(['insertOne', 'aggregate', 'count', 'find'], results);
+ done();
}, 1000);
- }, 3000);
- }, 1000);
- }
- );
+ }, 1000);
+ }, 3000);
+ }, 1000);
+ });
});
}
});
@@ -255,7 +255,6 @@ describe.skip('Buffering Proxy', function() {
test: function(done) {
var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient,
ObjectId = configuration.require.ObjectId,
ReadPreference = configuration.require.ReadPreference;
@@ -409,70 +408,71 @@ describe.skip('Buffering Proxy', function() {
}
});
- MongoClient.connect(
+ const client = configuration.newClient(
'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs',
{
socketTimeoutMS: 2000,
haInterval: 1000
- },
- function(err, client) {
- test.equal(null, err);
- var db = client.db(configuration.db);
+ }
+ );
+
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
+
+ setTimeout(function() {
+ die = true;
+ diePrimary = true;
setTimeout(function() {
- die = true;
- diePrimary = true;
+ var results = [];
- setTimeout(function() {
- var results = [];
+ db.collection('test').insertOne({ a: 1 }, function(err) {
+ test.equal(null, err);
+ results.push('insertOne');
+ });
+
+ db.command(
+ { count: 'test', query: {} },
+ { readPreference: new ReadPreference(ReadPreference.SECONDARY) },
+ function(err) {
+ test.equal(null, err);
+ results.push('count');
+ }
+ );
+
+ db
+ .collection('test')
+ .aggregate([{ $match: {} }])
+ .toArray(function(err) {
+ test.equal(null, err);
+ results.push('aggregate');
+ });
- db.collection('test').insertOne({ a: 1 }, function(err) {
+ db
+ .collection('test')
+ .find({})
+ .setReadPreference(new ReadPreference(ReadPreference.SECONDARY))
+ .toArray(function(err) {
test.equal(null, err);
- results.push('insertOne');
+ results.push('find');
});
- db.command(
- { count: 'test', query: {} },
- { readPreference: new ReadPreference(ReadPreference.SECONDARY) },
- function(err) {
- test.equal(null, err);
- results.push('count');
- }
- );
-
- db
- .collection('test')
- .aggregate([{ $match: {} }])
- .toArray(function(err) {
- test.equal(null, err);
- results.push('aggregate');
- });
-
- db
- .collection('test')
- .find({})
- .setReadPreference(new ReadPreference(ReadPreference.SECONDARY))
- .toArray(function(err) {
- test.equal(null, err);
- results.push('find');
- });
+ setTimeout(function() {
+ die = false;
setTimeout(function() {
- die = false;
+ test.deepEqual(['count', 'find'].sort(), results.sort());
- setTimeout(function() {
- test.deepEqual(['count', 'find'].sort(), results.sort());
+ client.close();
- client.close();
-
- // test.deepEqual(['count', 'find', 'insertOne', 'aggregate'], results);
- done();
- }, 1500);
- }, 1000);
- }, 3000);
- }, 1000);
- }
- );
+ // test.deepEqual(['count', 'find', 'insertOne', 'aggregate'], results);
+ done();
+ }, 1500);
+ }, 1000);
+ }, 3000);
+ }, 1000);
+ });
});
}
});
diff --git a/test/functional/byo_promises_tests.js b/test/functional/byo_promises_tests.js
index 736cd8a8dee..2f14c15ac46 100644
--- a/test/functional/byo_promises_tests.js
+++ b/test/functional/byo_promises_tests.js
@@ -12,13 +12,18 @@ describe('BYO Promises', function() {
// The actual test we wish to run
test: function(done) {
var self = this;
- var MongoClient = self.configuration.require.MongoClient;
+ const configuration = this.configuration;
var Promise = require('bluebird');
- MongoClient.connect(self.configuration.url(), {
- promiseLibrary: Promise,
- sslValidate: false
- }).then(function(client) {
+ const client = configuration.newClient(
+ {},
+ {
+ promiseLibrary: Promise,
+ sslValidate: false
+ }
+ );
+
+ client.connect().then(function(client) {
var db = client.db(self.configuration.db);
var promise = db.collection('test').insert({ a: 1 });
expect(promise).to.be.an.instanceOf(Promise);
diff --git a/test/functional/change_stream_spec_tests.js b/test/functional/change_stream_spec_tests.js
index 46b4e2321b6..5b2e1aecff2 100644
--- a/test/functional/change_stream_spec_tests.js
+++ b/test/functional/change_stream_spec_tests.js
@@ -4,7 +4,6 @@ const EJSON = require('mongodb-extjson');
const chai = require('chai');
const fs = require('fs');
const camelCase = require('lodash.camelcase');
-const MongoClient = require('../../lib/mongo_client');
const setupDatabase = require('./shared').setupDatabase;
const delay = require('./shared').delay;
const expect = chai.expect;
@@ -17,8 +16,9 @@ describe('Change Stream Spec', function() {
let events;
before(function() {
- return setupDatabase(this.configuration).then(() => {
- globalClient = new MongoClient(this.configuration.url());
+ const configuration = this.configuration;
+ return setupDatabase(configuration).then(() => {
+ globalClient = configuration.newClient();
return globalClient.connect();
});
});
@@ -43,11 +43,10 @@ describe('Change Stream Spec', function() {
const gc = globalClient;
const sDB = specData.database_name;
const sColl = specData.collection_name;
+ const configuration = this.configuration;
return Promise.all(ALL_DBS.map(db => gc.db(db).dropDatabase()))
.then(() => gc.db(sDB).createCollection(sColl))
- .then(() =>
- new MongoClient(this.configuration.url(), { monitorCommands: true }).connect()
- )
+ .then(() => configuration.newClient({}, { monitorCommands: true }).connect())
.then(client => {
ctx = { gc, client };
events = [];
diff --git a/test/functional/change_stream_tests.js b/test/functional/change_stream_tests.js
index b7d2315abe8..b3dc38b9525 100644
--- a/test/functional/change_stream_tests.js
+++ b/test/functional/change_stream_tests.js
@@ -25,8 +25,7 @@ describe('Change Streams', function() {
beforeEach(function() {
const configuration = this.configuration;
- const MongoClient = configuration.require.MongoClient;
- const client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
return client.connect().then(() => {
const db = client.db('integration_tests');
@@ -40,8 +39,7 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
client.connect(function(err, client) {
assert.ifError(err);
@@ -95,8 +93,7 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
client.connect(function(err, client) {
assert.ifError(err);
@@ -155,8 +152,7 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
client.connect(function(err, client) {
assert.ifError(err);
@@ -242,8 +238,7 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
client.connect(function(err, client) {
assert.ifError(err);
@@ -274,8 +269,7 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
client.connect(function(err, client) {
assert.ifError(err);
@@ -302,8 +296,7 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
client.connect(function(err, client) {
assert.ifError(err);
@@ -342,8 +335,7 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function() {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
return client.connect().then(function() {
var theDatabase = client.db('integration_tests');
@@ -380,8 +372,7 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
client.connect(function(err, client) {
assert.ifError(err);
@@ -417,8 +408,7 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
client.connect(function(err, client) {
assert.ifError(err);
@@ -465,8 +455,8 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
+
client.connect(function(err, client) {
assert.ifError(err);
@@ -508,8 +498,7 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
client.connect(function(err, client) {
assert.ifError(err);
@@ -530,12 +519,11 @@ describe('Change Streams', function() {
);
// Attach second event listener
- changeStream.once('change', function(change) {
- // Check the cursor invalidation has occured
- assert.equal(change.operationType, 'invalidate');
-
- // now expect the server to close the stream
- changeStream.once('close', () => client.close(done));
+ changeStream.on('change', function(change) {
+ if (change.operationType === 'invalidate') {
+ // now expect the server to close the stream
+ changeStream.once('close', () => client.close(done));
+ }
});
// Trigger the second database event
@@ -545,7 +533,7 @@ describe('Change Streams', function() {
.rename('renamedDocs', { dropTarget: true }, function(err) {
assert.ifError(err);
});
- });
+ }, 250);
});
// Trigger the first database event
@@ -564,8 +552,7 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
client.connect(function(err, client) {
assert.ifError(err);
@@ -586,18 +573,28 @@ describe('Change Streams', function() {
database.dropDatabase(function(err) {
assert.ifError(err);
- changeStream.next(function(err, change) {
- assert.ifError(err);
-
- // Check the cursor invalidation has occured
- assert.equal(change.operationType, 'invalidate');
-
+ function completeStream() {
changeStream.hasNext(function(err, hasNext) {
assert.equal(hasNext, false);
assert.equal(changeStream.isClosed(), true);
client.close(done);
});
- });
+ }
+
+ function checkInvalidate() {
+ changeStream.next(function(err, change) {
+ assert.ifError(err);
+
+ // Check the cursor invalidation has occured
+ if (change.operationType === 'invalidate') {
+ return completeStream();
+ }
+
+ checkInvalidate();
+ });
+ }
+
+ checkInvalidate();
});
});
});
@@ -610,8 +607,17 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
+
+ function checkInvalidate(changeStream) {
+ return changeStream.next().then(change => {
+ if (change.operationType === 'invalidate') {
+ return Promise.resolve();
+ }
+
+ return checkInvalidate(changeStream);
+ });
+ }
client.connect(function(err, client) {
assert.ifError(err);
@@ -626,21 +632,16 @@ describe('Change Streams', function() {
.then(function() {
return delay(200);
});
- });
+ }, 200);
+
return changeStream
.next()
.then(function(change) {
assert.equal(change.operationType, 'insert');
return database.dropCollection('invalidateCollectionDropPromises');
})
- .then(function() {
- return changeStream.next();
- })
- .then(function(change) {
- // Check the cursor invalidation has occured
- assert.equal(change.operationType, 'invalidate');
- return changeStream.hasNext();
- })
+ .then(() => checkInvalidate(changeStream))
+ .then(() => changeStream.hasNext())
.then(function(hasNext) {
assert.equal(hasNext, false);
assert.equal(changeStream.isClosed(), true);
@@ -664,8 +665,7 @@ describe('Change Streams', function() {
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient,
- ObjectId = configuration.require.ObjectId;
+ const ObjectId = configuration.require.ObjectId;
// Contain mock server
var primaryServer = null;
@@ -712,8 +712,7 @@ describe('Change Streams', function() {
});
const mockServerURL = 'mongodb://localhost:32000/';
-
- var client = new MongoClient(mockServerURL);
+ const client = configuration.newClient(mockServerURL);
client.connect(function(err, client) {
assert.ifError(err);
@@ -763,8 +762,7 @@ describe('Change Streams', function() {
},
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient,
- ObjectId = configuration.require.ObjectId;
+ const ObjectId = configuration.require.ObjectId;
// Contain mock server
var primaryServer = null;
@@ -815,39 +813,37 @@ describe('Change Streams', function() {
});
});
- MongoClient.connect(
- 'mongodb://localhost:32000/',
- {
- socketTimeoutMS: 500,
- validateOptions: true
- },
- function(err, client) {
- assert.ifError(err);
+ const client = configuration.newClient('mongodb://localhost:32000/', {
+ socketTimeoutMS: 500,
+ validateOptions: true
+ });
- var theDatabase = client.db('integration_tests');
- var theCollection = theDatabase.collection('MongoNetworkErrorTestPromises');
- var thisChangeStream = theCollection.watch(pipeline);
+ client.connect(function(err, client) {
+ assert.ifError(err);
- thisChangeStream.next(function(err, change) {
- assert.ok(err instanceof MongoNetworkError);
- assert.ok(err.message);
- assert.ok(err.message.indexOf('timed out') > -1);
+ var theDatabase = client.db('integration_tests');
+ var theCollection = theDatabase.collection('MongoNetworkErrorTestPromises');
+ var thisChangeStream = theCollection.watch(pipeline);
- assert.equal(
- change,
- null,
- 'ChangeStream.next() returned a change document but it should have returned a MongoNetworkError'
- );
+ thisChangeStream.next(function(err, change) {
+ assert.ok(err instanceof MongoNetworkError);
+ assert.ok(err.message);
+ assert.ok(err.message.indexOf('timed out') > -1);
- thisChangeStream.close(function(err) {
- assert.ifError(err);
- thisChangeStream.close();
+ assert.equal(
+ change,
+ null,
+ 'ChangeStream.next() returned a change document but it should have returned a MongoNetworkError'
+ );
- client.close(() => mock.cleanup(() => done()));
- });
+ thisChangeStream.close(function(err) {
+ assert.ifError(err);
+ thisChangeStream.close();
+
+ client.close(() => mock.cleanup(() => done()));
});
- }
- );
+ });
+ });
}
});
@@ -861,10 +857,9 @@ describe('Change Streams', function() {
},
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient,
- ObjectId = configuration.require.ObjectId,
- Timestamp = configuration.require.Timestamp,
- Long = configuration.require.Long;
+ const ObjectId = configuration.require.ObjectId;
+ const Timestamp = configuration.require.Timestamp;
+ const Long = configuration.require.Long;
// Contain mock server
var primaryServer = null;
@@ -939,11 +934,13 @@ describe('Change Streams', function() {
});
let finalError = undefined;
-
- MongoClient.connect('mongodb://localhost:32000/', {
+ const client = configuration.newClient('mongodb://localhost:32000/', {
socketTimeoutMS: 500,
validateOptions: true
- })
+ });
+
+ client
+ .connect()
.then(client => {
var database = client.db('integration_tests');
var collection = database.collection('MongoNetworkErrorTestPromises');
@@ -990,8 +987,7 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function() {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
return client.connect().then(client => {
var database = client.db('integration_tests');
@@ -1081,8 +1077,7 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function() {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
return client.connect().then(client => {
var database = client.db('integration_tests');
@@ -1137,8 +1132,7 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function() {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
return client.connect().then(client => {
var database = client.db('integration_tests');
@@ -1206,9 +1200,8 @@ describe('Change Streams', function() {
// The actual test we wish to run
test: function() {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var ReadPreference = configuration.require.ReadPreference;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
return client.connect().then(client => {
// Should get preference from database
@@ -1256,8 +1249,7 @@ describe('Change Streams', function() {
test: function(done) {
var configuration = this.configuration;
var fs = require('fs');
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
client.connect(function(err, client) {
assert.ifError(err);
@@ -1304,10 +1296,9 @@ describe('Change Streams', function() {
},
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient,
- ObjectId = configuration.require.ObjectId,
- Timestamp = configuration.require.Timestamp,
- Long = configuration.require.Long;
+ const ObjectId = configuration.require.ObjectId;
+ const Timestamp = configuration.require.Timestamp;
+ const Long = configuration.require.Long;
// Contain mock server
var primaryServer = null;
@@ -1403,44 +1394,42 @@ describe('Change Streams', function() {
}
});
- MongoClient.connect(
- `mongodb://${primaryServer.uri()}/`,
- {
- socketTimeoutMS: 500,
- validateOptions: true
- },
- function(err, client) {
- assert.ifError(err);
+ const client = configuration.newClient(`mongodb://${primaryServer.uri()}/`, {
+ socketTimeoutMS: 500,
+ validateOptions: true
+ });
- var fs = require('fs');
- var theDatabase = client.db('integration_tests5');
- var theCollection = theDatabase.collection('MongoNetworkErrorTestPromises');
- var thisChangeStream = theCollection.watch(pipeline);
+ client.connect(function(err, client) {
+ assert.ifError(err);
- var filename = '/tmp/_nodemongodbnative_resumepipe.txt';
- var outStream = fs.createWriteStream(filename);
+ var fs = require('fs');
+ var theDatabase = client.db('integration_tests5');
+ var theCollection = theDatabase.collection('MongoNetworkErrorTestPromises');
+ var thisChangeStream = theCollection.watch(pipeline);
- thisChangeStream.stream({ transform: JSON.stringify }).pipe(outStream);
+ var filename = '/tmp/_nodemongodbnative_resumepipe.txt';
+ var outStream = fs.createWriteStream(filename);
- // Listen for changes to the file
- var watcher = fs.watch(filename, function(eventType) {
- assert.equal(eventType, 'change');
+ thisChangeStream.stream({ transform: JSON.stringify }).pipe(outStream);
- var fileContents = fs.readFileSync(filename, 'utf8');
+ // Listen for changes to the file
+ var watcher = fs.watch(filename, function(eventType) {
+ assert.equal(eventType, 'change');
- var parsedFileContents = JSON.parse(fileContents);
- assert.equal(parsedFileContents.fullDocument.a, 1);
+ var fileContents = fs.readFileSync(filename, 'utf8');
- watcher.close();
+ var parsedFileContents = JSON.parse(fileContents);
+ assert.equal(parsedFileContents.fullDocument.a, 1);
- thisChangeStream.close(function(err) {
- assert.ifError(err);
+ watcher.close();
- mock.cleanup(() => done());
- });
+ thisChangeStream.close(function(err) {
+ assert.ifError(err);
+
+ mock.cleanup(() => done());
});
- }
- );
+ });
+ });
});
}
});
@@ -1452,8 +1441,7 @@ describe('Change Streams', function() {
test: function(done) {
var configuration = this.configuration;
var crypto = require('crypto');
- var MongoClient = configuration.require.MongoClient;
- var client = new MongoClient(configuration.url(), {
+ const client = configuration.newClient(configuration.url(), {
poolSize: 1,
autoReconnect: false
});
@@ -1512,8 +1500,7 @@ describe('Change Streams', function() {
metadata: { requires: { topology: 'replicaset', mongodb: '>=3.5.10' } },
test: function(done) {
const configuration = this.configuration;
- const MongoClient = configuration.require.MongoClient;
- const client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
const collectionName = 'resumeAfterKillCursor';
@@ -1552,7 +1539,6 @@ describe('Change Streams', function() {
metadata: { requires: { topology: 'replicaset', mongodb: '>=3.7.3' } },
test: function(done) {
const configuration = this.configuration;
- const MongoClient = configuration.require.MongoClient;
const ObjectId = configuration.require.ObjectId;
const Timestamp = configuration.require.Timestamp;
const Long = configuration.require.Long;
@@ -1632,9 +1618,9 @@ describe('Change Streams', function() {
let getMoreCounter = 0;
let aggregateCounter = 0;
- let client;
let changeStream;
let server;
+ let client;
let finish = err => {
finish = () => {};
@@ -1652,9 +1638,9 @@ describe('Change Streams', function() {
return request.reply(makeIsMaster(server));
} else if (doc.aggregate) {
if (aggregateCounter++ > 0) {
- expect(doc)
- .to.have.nested.property('pipeline[0].$changeStream.startAtOperationTime')
- .that.deep.equals(OPERATION_TIME);
+ expect(doc).to.have.nested.property('pipeline[0].$changeStream.startAtOperationTime');
+ expect(doc.pipeline[0].$changeStream.startAtOperationTime.equals(OPERATION_TIME)).to
+ .be.ok;
expect(doc).to.not.have.nested.property('pipeline[0].$changeStream.resumeAfter');
} else {
expect(doc).to.not.have.nested.property(
@@ -1681,8 +1667,8 @@ describe('Change Streams', function() {
.createServer()
.then(_server => (server = _server))
.then(() => server.setMessageHandler(primaryServerHandler))
- .then(() => MongoClient.connect(`mongodb://${server.uri()}`, connectOptions))
- .then(_client => (client = _client))
+ .then(() => (client = configuration.newClient(`mongodb://${server.uri()}`, connectOptions)))
+ .then(() => client.connect())
.then(() => client.db(dbName))
.then(db => db.collection(collectionName))
.then(col => col.watch(pipeline))
diff --git a/test/functional/collations_tests.js b/test/functional/collations_tests.js
index 1d89a0dfc31..321e0b628a0 100644
--- a/test/functional/collations_tests.js
+++ b/test/functional/collations_tests.js
@@ -27,8 +27,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields)];
@@ -50,7 +49,8 @@ describe('Collation', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -79,8 +79,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields)];
@@ -102,7 +101,8 @@ describe('Collation', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -123,8 +123,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields)];
@@ -148,7 +147,8 @@ describe('Collation', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -174,8 +174,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields)];
@@ -199,7 +198,8 @@ describe('Collation', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -222,8 +222,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields)];
@@ -247,7 +246,8 @@ describe('Collation', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -280,7 +280,6 @@ describe('Collation', function() {
test: function(done) {
var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient,
Code = configuration.require.Code;
// Primary server states
@@ -305,7 +304,8 @@ describe('Collation', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -338,8 +338,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields)];
@@ -363,7 +362,8 @@ describe('Collation', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -384,8 +384,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields)];
@@ -409,7 +408,8 @@ describe('Collation', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -434,8 +434,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields)];
@@ -459,7 +458,8 @@ describe('Collation', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -483,8 +483,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields)];
@@ -508,7 +507,8 @@ describe('Collation', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -533,8 +533,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields)];
@@ -558,7 +557,8 @@ describe('Collation', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -582,7 +582,6 @@ describe('Collation', function() {
test: function(done) {
var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient,
Long = configuration.require.Long;
// Primary server states
@@ -616,7 +615,8 @@ describe('Collation', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -637,8 +637,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields, { maxWireVersion: 4 })];
@@ -659,7 +658,8 @@ describe('Collation', function() {
});
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -681,8 +681,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields, { maxWireVersion: 4 })];
@@ -703,7 +702,8 @@ describe('Collation', function() {
});
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -723,8 +723,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields)];
@@ -750,7 +749,8 @@ describe('Collation', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -785,8 +785,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields, { maxWireVersion: 4 })];
@@ -808,7 +807,8 @@ describe('Collation', function() {
});
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -843,7 +843,6 @@ describe('Collation', function() {
test: function(done) {
var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient,
ObjectId = configuration.require.ObjectId;
var electionIds = [new ObjectId(), new ObjectId()];
@@ -930,35 +929,36 @@ describe('Collation', function() {
setTimeout(() => {
// Connect to the mocks
- MongoClient.connect(
- 'mongodb://localhost:32000,localhost:32001/test?replicaSet=rs',
- function(err, client) {
- test.equal(null, err);
- var db = client.db(configuration.db);
-
- db.collection('test').bulkWrite(
- [
- {
- updateOne: {
- q: { a: 2 },
- u: { $set: { a: 2 } },
- upsert: true,
- collation: { caseLevel: true }
- }
- },
- { deleteOne: { q: { c: 1 } } }
- ],
- { ordered: true },
- function(err) {
- test.ok(err);
- test.equal('server/primary/mongos does not support collation', err.message);
-
- client.close();
- done();
- }
- );
- }
+ const client = configuration.newClient(
+ 'mongodb://localhost:32000,localhost:32001/test?replicaSet=rs'
);
+
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
+
+ db.collection('test').bulkWrite(
+ [
+ {
+ updateOne: {
+ q: { a: 2 },
+ u: { $set: { a: 2 } },
+ upsert: true,
+ collation: { caseLevel: true }
+ }
+ },
+ { deleteOne: { q: { c: 1 } } }
+ ],
+ { ordered: true },
+ function(err) {
+ test.ok(err);
+ test.equal('server/primary/mongos does not support collation', err.message);
+
+ client.close();
+ done();
+ }
+ );
+ });
}, 500);
});
}
@@ -968,8 +968,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields)];
@@ -991,7 +990,8 @@ describe('Collation', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -1017,8 +1017,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields, { maxWireVersion: 4 })];
@@ -1039,7 +1038,8 @@ describe('Collation', function() {
});
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -1062,8 +1062,7 @@ describe('Collation', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Primary server states
var primary = [Object.assign({}, defaultFields, { maxWireVersion: 4 })];
@@ -1084,7 +1083,8 @@ describe('Collation', function() {
});
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -1142,11 +1142,11 @@ describe('Collation', function() {
metadata: { requires: { topology: 'single', mongodb: '>=3.3.12' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Connect to the mocks
- MongoClient.connect(configuration.url(), function(err, client) {
+ const client = configuration.newClient();
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -1184,11 +1184,11 @@ describe('Collation', function() {
metadata: { requires: { topology: 'single', mongodb: '>=3.3.12' } },
test: function(done) {
- var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient;
+ var configuration = this.configuration;
// Connect to the mocks
- MongoClient.connect(configuration.url(), function(err, client) {
+ const client = configuration.newClient();
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
diff --git a/test/functional/collection_tests.js b/test/functional/collection_tests.js
index 61ed7d7e442..8facf4433b9 100644
--- a/test/functional/collection_tests.js
+++ b/test/functional/collection_tests.js
@@ -3,7 +3,6 @@ const test = require('./shared').assert;
const setupDatabase = require('./shared').setupDatabase;
const chai = require('chai');
const expect = chai.expect;
-const MongoClient = require('../..').MongoClient;
const sinonChai = require('sinon-chai');
const mock = require('mongodb-mock-server');
chai.use(sinonChai);
@@ -1588,7 +1587,7 @@ describe('Collection', function() {
it('should correctly perform estimatedDocumentCount on non-matching query', function(done) {
const configuration = this.configuration;
- const client = new MongoClient(configuration.url(), { w: 1 });
+ const client = configuration.newClient({}, { w: 1 });
client.connect(function(err, client) {
const db = client.db(configuration.db);
@@ -1605,7 +1604,7 @@ describe('Collection', function() {
it('should correctly perform countDocuments on non-matching query', function(done) {
const configuration = this.configuration;
- const client = new MongoClient(configuration.url(), { w: 1 });
+ const client = configuration.newClient({}, { w: 1 });
client.connect(function(err, client) {
const db = client.db(configuration.db);
@@ -1622,7 +1621,7 @@ describe('Collection', function() {
it('countDocuments should return Promise that resolves when no callback passed', function(done) {
const configuration = this.configuration;
- const client = new MongoClient(configuration.url(), { w: 1 });
+ const client = configuration.newClient({}, { w: 1 });
client.connect(function(err, client) {
const db = client.db(configuration.db);
@@ -1641,7 +1640,7 @@ describe('Collection', function() {
it('countDocuments should not return a promise if callback given', function(done) {
const configuration = this.configuration;
- const client = new MongoClient(configuration.url(), { w: 1 });
+ const client = configuration.newClient({}, { w: 1 });
client.connect(function(err, client) {
const db = client.db(configuration.db);
@@ -1657,7 +1656,7 @@ describe('Collection', function() {
it('countDocuments should correctly call the given callback', function(done) {
const configuration = this.configuration;
- const client = new MongoClient(configuration.url(), { w: 1 });
+ const client = configuration.newClient({}, { w: 1 });
client.connect(function(err, client) {
const db = client.db(configuration.db);
@@ -1685,8 +1684,8 @@ describe('Collection', function() {
afterEach(() => mock.cleanup());
- function testCountDocMock(config, done) {
- const client = new MongoClient(`mongodb://${server.uri()}/test`);
+ function testCountDocMock(testConfiguration, config, done) {
+ const client = testConfiguration.newClient(`mongodb://${server.uri()}/test`);
const close = e => client.close(() => done(e));
server.setMessageHandler(request => {
@@ -1726,6 +1725,7 @@ describe('Collection', function() {
};
testCountDocMock(
+ this.configuration,
{
replyHandler,
executeCountDocuments,
@@ -1748,6 +1748,7 @@ describe('Collection', function() {
};
testCountDocMock(
+ this.configuration,
{
replyHandler,
executeCountDocuments,
@@ -1770,6 +1771,7 @@ describe('Collection', function() {
};
testCountDocMock(
+ this.configuration,
{
replyHandler,
executeCountDocuments,
@@ -1780,9 +1782,9 @@ describe('Collection', function() {
});
});
- function testCapped(config, done) {
+ function testCapped(testConfiguration, config, done) {
const configuration = config.config;
- const client = new MongoClient(configuration.url(), { w: 1 });
+ const client = testConfiguration.newClient({}, { w: 1 });
client.connect(function(err, client) {
const db = client.db(configuration.db);
@@ -1798,16 +1800,22 @@ describe('Collection', function() {
}
it('isCapped should return false for uncapped collections', function(done) {
- testCapped({ config: this.configuration, collName: 'uncapped', opts: { capped: false } }, done);
+ testCapped(
+ this.configuration,
+ { config: this.configuration, collName: 'uncapped', opts: { capped: false } },
+ done
+ );
});
it('isCapped should return false for collections instantiated without specifying capped', function(done) {
- testCapped({ config: this.configuration, collName: 'uncapped2', opts: {} }, done);
+ testCapped(
+ this.configuration,
+ { config: this.configuration, collName: 'uncapped2', opts: {} },
+ done
+ );
});
describe('Retryable Writes on bulk ops', function() {
- const MongoClient = require('../../lib/mongo_client');
-
let client;
let db;
let collection;
@@ -1815,7 +1823,7 @@ describe('Collection', function() {
const metadata = { requires: { topology: ['replicaset'], mongodb: '>=3.6.0' } };
beforeEach(function() {
- client = new MongoClient(this.configuration.url(), { retryWrites: true });
+ client = this.configuration.newClient({}, { retryWrites: true });
return client.connect().then(() => {
db = client.db('test_retry_writes');
collection = db.collection('tests');
diff --git a/test/functional/command_write_concern_tests.js b/test/functional/command_write_concern_tests.js
index 369d6ba77f7..cc58cd87c45 100644
--- a/test/functional/command_write_concern_tests.js
+++ b/test/functional/command_write_concern_tests.js
@@ -30,7 +30,6 @@ describe('Command Write Concern', function() {
test: function(done) {
var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient,
ObjectId = configuration.require.ObjectId;
var electionIds = [new ObjectId(), new ObjectId()];
@@ -112,27 +111,28 @@ describe('Command Write Concern', function() {
});
var commandResult = null;
- MongoClient.connect(
- 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs',
- function(err, client) {
- test.equal(null, err);
- var db = client.db(configuration.db);
-
- db
- .collection('test')
- .aggregate([{ $match: {} }, { $out: 'readConcernCollectionAggregate1Output' }], {
- w: 2,
- wtimeout: 1000
- })
- .toArray(function(err) {
- test.equal(null, err);
- test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
-
- client.close();
- done();
- });
- }
+ const client = configuration.newClient(
+ 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs'
);
+
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
+
+ db
+ .collection('test')
+ .aggregate([{ $match: {} }, { $out: 'readConcernCollectionAggregate1Output' }], {
+ w: 2,
+ wtimeout: 1000
+ })
+ .toArray(function(err) {
+ test.equal(null, err);
+ test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+
+ client.close();
+ done();
+ });
+ });
});
}
});
@@ -147,7 +147,6 @@ describe('Command Write Concern', function() {
test: function(done) {
var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient,
ObjectId = configuration.require.ObjectId,
Long = configuration.require.Long;
@@ -242,21 +241,22 @@ describe('Command Write Concern', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(
- 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs',
- function(err, client) {
- test.equal(null, err);
- var db = client.db(configuration.db);
+ const client = configuration.newClient(
+ 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs'
+ );
- db.createCollection('test_collection_methods', { w: 2, wtimeout: 1000 }, function(err) {
- test.equal(null, err);
- test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
- client.close();
- done();
- });
- }
- );
+ db.createCollection('test_collection_methods', { w: 2, wtimeout: 1000 }, function(err) {
+ test.equal(null, err);
+ test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+
+ client.close();
+ done();
+ });
+ });
});
}
});
@@ -271,7 +271,6 @@ describe('Command Write Concern', function() {
test: function(done) {
var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient,
ObjectId = configuration.require.ObjectId;
var electionIds = [new ObjectId(), new ObjectId()];
@@ -356,29 +355,30 @@ describe('Command Write Concern', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(
- 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs',
- function(err, client) {
- test.equal(null, err);
- var db = client.db(configuration.db);
+ const client = configuration.newClient(
+ 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs'
+ );
- db.collection('indexOptionDefault').createIndex(
- { a: 1 },
- {
- indexOptionDefaults: true,
- w: 2,
- wtimeout: 1000
- },
- function(err) {
- test.equal(null, err);
- test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
+
+ db.collection('indexOptionDefault').createIndex(
+ { a: 1 },
+ {
+ indexOptionDefaults: true,
+ w: 2,
+ wtimeout: 1000
+ },
+ function(err) {
+ test.equal(null, err);
+ test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
- client.close();
- done();
- }
- );
- }
- );
+ client.close();
+ done();
+ }
+ );
+ });
});
}
});
@@ -393,7 +393,6 @@ describe('Command Write Concern', function() {
test: function(done) {
var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient,
ObjectId = configuration.require.ObjectId;
var electionIds = [new ObjectId(), new ObjectId()];
@@ -477,27 +476,28 @@ describe('Command Write Concern', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(
- 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs',
- function(err, client) {
- test.equal(null, err);
- var db = client.db(configuration.db);
+ const client = configuration.newClient(
+ 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs'
+ );
- db.collection('indexOptionDefault').drop(
- {
- w: 2,
- wtimeout: 1000
- },
- function(err) {
- test.equal(null, err);
- test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
- client.close();
- done();
- }
- );
- }
- );
+ db.collection('indexOptionDefault').drop(
+ {
+ w: 2,
+ wtimeout: 1000
+ },
+ function(err) {
+ test.equal(null, err);
+ test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+
+ client.close();
+ done();
+ }
+ );
+ });
});
}
});
@@ -512,7 +512,6 @@ describe('Command Write Concern', function() {
test: function(done) {
var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient,
ObjectId = configuration.require.ObjectId;
var electionIds = [new ObjectId(), new ObjectId()];
@@ -596,27 +595,28 @@ describe('Command Write Concern', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(
- 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs',
- function(err, client) {
- test.equal(null, err);
- var db = client.db(configuration.db);
+ const client = configuration.newClient(
+ 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs'
+ );
- db.dropDatabase(
- {
- w: 2,
- wtimeout: 1000
- },
- function(err) {
- test.equal(null, err);
- test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
- client.close();
- done();
- }
- );
- }
- );
+ db.dropDatabase(
+ {
+ w: 2,
+ wtimeout: 1000
+ },
+ function(err) {
+ test.equal(null, err);
+ test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+
+ client.close();
+ done();
+ }
+ );
+ });
});
}
});
@@ -631,7 +631,6 @@ describe('Command Write Concern', function() {
test: function(done) {
var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient,
ObjectId = configuration.require.ObjectId;
var electionIds = [new ObjectId(), new ObjectId()];
@@ -715,27 +714,28 @@ describe('Command Write Concern', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(
- 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs',
- function(err, client) {
- test.equal(null, err);
- var db = client.db(configuration.db);
+ const client = configuration.newClient(
+ 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs'
+ );
- db.collection('test').dropIndexes(
- {
- w: 2,
- wtimeout: 1000
- },
- function(err) {
- test.equal(null, err);
- test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
- client.close();
- done();
- }
- );
- }
- );
+ db.collection('test').dropIndexes(
+ {
+ w: 2,
+ wtimeout: 1000
+ },
+ function(err) {
+ test.equal(null, err);
+ test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+
+ client.close();
+ done();
+ }
+ );
+ });
});
}
});
@@ -750,7 +750,6 @@ describe('Command Write Concern', function() {
test: function(done) {
var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient,
ObjectId = configuration.require.ObjectId,
Code = configuration.require.Code;
@@ -835,35 +834,36 @@ describe('Command Write Concern', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(
- 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs',
- function(err, client) {
- test.equal(null, err);
- var db = client.db(configuration.db);
-
- // String functions
- var map = new Code('function() { emit(this.user_id, 1); }');
- var reduce = new Code('function(k,vals) { return 1; }');
-
- // db.collection('test').mapReduce({
- db.collection('test').mapReduce(
- map,
- reduce,
- {
- out: { replace: 'tempCollection' },
- w: 2,
- wtimeout: 1000
- },
- function(err) {
- test.equal(null, err);
- test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
-
- client.close();
- done();
- }
- );
- }
+ const client = configuration.newClient(
+ 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs'
);
+
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
+
+ // String functions
+ var map = new Code('function() { emit(this.user_id, 1); }');
+ var reduce = new Code('function(k,vals) { return 1; }');
+
+ // db.collection('test').mapReduce({
+ db.collection('test').mapReduce(
+ map,
+ reduce,
+ {
+ out: { replace: 'tempCollection' },
+ w: 2,
+ wtimeout: 1000
+ },
+ function(err) {
+ test.equal(null, err);
+ test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+
+ client.close();
+ done();
+ }
+ );
+ });
});
}
});
@@ -878,7 +878,6 @@ describe('Command Write Concern', function() {
test: function(done) {
var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient,
ObjectId = configuration.require.ObjectId;
var electionIds = [new ObjectId(), new ObjectId()];
@@ -962,21 +961,22 @@ describe('Command Write Concern', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(
- 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs',
- function(err, client) {
- test.equal(null, err);
- var db = client.db(configuration.db);
+ const client = configuration.newClient(
+ 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs'
+ );
- db.admin().addUser('kay:kay', 'abc123', { w: 2, wtimeout: 1000 }, function(err) {
- test.equal(null, err);
- test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
- client.close();
- done();
- });
- }
- );
+ db.admin().addUser('kay:kay', 'abc123', { w: 2, wtimeout: 1000 }, function(err) {
+ test.equal(null, err);
+ test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+
+ client.close();
+ done();
+ });
+ });
});
}
});
@@ -991,7 +991,6 @@ describe('Command Write Concern', function() {
test: function(done) {
var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient,
ObjectId = configuration.require.ObjectId;
var electionIds = [new ObjectId(), new ObjectId()];
@@ -1075,21 +1074,22 @@ describe('Command Write Concern', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(
- 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs',
- function(err, client) {
- test.equal(null, err);
- var db = client.db(configuration.db);
+ const client = configuration.newClient(
+ 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs'
+ );
- db.admin().removeUser('kay:kay', { w: 2, wtimeout: 1000 }, function(err) {
- test.equal(null, err);
- test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
- client.close();
- done();
- });
- }
- );
+ db.admin().removeUser('kay:kay', { w: 2, wtimeout: 1000 }, function(err) {
+ test.equal(null, err);
+ test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+
+ client.close();
+ done();
+ });
+ });
});
}
});
@@ -1104,7 +1104,6 @@ describe('Command Write Concern', function() {
test: function(done) {
var configuration = this.configuration,
- MongoClient = configuration.require.MongoClient,
ObjectId = configuration.require.ObjectId;
var electionIds = [new ObjectId(), new ObjectId()];
@@ -1188,30 +1187,31 @@ describe('Command Write Concern', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(
- 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs',
- function(err, client) {
- test.equal(null, err);
- var db = client.db(configuration.db);
-
- // Simple findAndModify command returning the new document
- db
- .collection('test')
- .findAndModify(
- { a: 1 },
- [['a', 1]],
- { $set: { b1: 1 } },
- { new: true, w: 2, wtimeout: 1000 },
- function(err) {
- test.equal(null, err);
- test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
-
- client.close();
- done();
- }
- );
- }
+ const client = configuration.newClient(
+ 'mongodb://localhost:32000,localhost:32001,localhost:32002/test?replicaSet=rs'
);
+
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
+
+ // Simple findAndModify command returning the new document
+ db
+ .collection('test')
+ .findAndModify(
+ { a: 1 },
+ [['a', 1]],
+ { $set: { b1: 1 } },
+ { new: true, w: 2, wtimeout: 1000 },
+ function(err) {
+ test.equal(null, err);
+ test.deepEqual({ w: 2, wtimeout: 1000 }, commandResult.writeConcern);
+
+ client.close();
+ done();
+ }
+ );
+ });
});
}
});
diff --git a/test/functional/connection_tests.js b/test/functional/connection_tests.js
index 9f6daad3300..b1864ce0239 100644
--- a/test/functional/connection_tests.js
+++ b/test/functional/connection_tests.js
@@ -128,14 +128,12 @@ describe('Connection', function() {
var configuration = this.configuration;
var client = configuration.newClient({ w: 1 }, { poolSize: 1, auto_reconnect: true });
- client.on('open', function(client) {
+ client.connect().then(() => {
test.equal('js', client.topology.parserType);
client.close();
done();
});
-
- client.connect();
}
});
diff --git a/test/functional/crud_spec_tests.js b/test/functional/crud_spec_tests.js
index a73aee29a06..9889eeb7b55 100644
--- a/test/functional/crud_spec_tests.js
+++ b/test/functional/crud_spec_tests.js
@@ -19,8 +19,8 @@ const testContext = {};
describe('CRUD spec', function() {
beforeEach(function() {
const configuration = this.configuration;
- const MongoClient = configuration.require.MongoClient;
- return MongoClient.connect(configuration.url()).then(client => {
+ const client = configuration.newClient();
+ return client.connect().then(client => {
testContext.client = client;
testContext.db = client.db(configuration.db);
});
@@ -227,17 +227,14 @@ describe('CRUD spec', function() {
});
const options = Object.assign({}, args.options);
- collection
+ return collection
.bulkWrite(operations, options)
.then(result =>
Object.keys(scenarioTest.outcome.result).forEach(resultName =>
test.deepEqual(result[resultName], scenarioTest.outcome.result[resultName])
)
- );
-
- return collection
- .find({})
- .toArray()
+ )
+ .then(() => collection.find({}).toArray())
.then(results => test.deepEqual(results, scenarioTest.outcome.collection.data));
}
diff --git a/test/functional/cursor_tests.js b/test/functional/cursor_tests.js
index 21146f6777c..de79182c3b7 100644
--- a/test/functional/cursor_tests.js
+++ b/test/functional/cursor_tests.js
@@ -6,6 +6,7 @@ const expect = require('chai').expect;
const Long = require('bson').Long;
const sinon = require('sinon');
const ReadPreference = require('mongodb-core').ReadPreference;
+const Buffer = require('safe-buffer').Buffer;
describe('Cursor', function() {
before(function() {
@@ -4540,16 +4541,19 @@ describe('Cursor', function() {
const configuration = this.configuration;
const ReadPreference = this.configuration.require.ReadPreference;
const client = configuration.newClient(
- { w: 1, readPreference: ReadPreference.secondary },
- { poolSize: 1, auto_reconnect: false }
+ { w: 1, readPreference: ReadPreference.SECONDARY },
+ { poolSize: 1, auto_reconnect: false, connectWithNoPrimary: true }
);
client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
const db = client.db(configuration.db);
let collection, cursor, spy;
const close = e => cursor.close(() => client.close(() => done(e)));
Promise.resolve()
+ .then(() => new Promise(resolve => setTimeout(() => resolve(), 500)))
.then(() => db.createCollection('test_count_readPreference'))
.then(() => (collection = db.collection('test_count_readPreference')))
.then(() => collection.find())
diff --git a/test/functional/cursorstream_tests.js b/test/functional/cursorstream_tests.js
index 79621dd261c..bee7f647f21 100644
--- a/test/functional/cursorstream_tests.js
+++ b/test/functional/cursorstream_tests.js
@@ -1,5 +1,6 @@
'use strict';
var expect = require('chai').expect;
+var Buffer = require('safe-buffer').Buffer;
describe('Cursor Streams', function() {
before(function() {
diff --git a/test/functional/custom_pk_tests.js b/test/functional/custom_pk_tests.js
index ea0e7d192e9..5cfe78b43b7 100644
--- a/test/functional/custom_pk_tests.js
+++ b/test/functional/custom_pk_tests.js
@@ -27,11 +27,15 @@ describe('Custom PK', function() {
return new ObjectID('aaaaaaaaaaaa');
};
- var client = configuration.newClient({
- w: 1,
- poolSize: 1,
- pkFactory: CustomPKFactory
- });
+ var client = configuration.newClient(
+ {
+ w: 1,
+ poolSize: 1
+ },
+ {
+ pkFactory: CustomPKFactory
+ }
+ );
client.connect(function(err, client) {
var db = client.db(configuration.db);
diff --git a/test/functional/db_tests.js b/test/functional/db_tests.js
index 2a118286c7a..d03edc12592 100644
--- a/test/functional/db_tests.js
+++ b/test/functional/db_tests.js
@@ -196,8 +196,8 @@ describe('Db', function() {
test: function(done) {
var configuration = this.configuration;
var client = configuration.newClient(
- { w: 1, bufferMaxEntries: 0 },
- { poolSize: 1, auto_reconnect: true }
+ { w: 1 },
+ { poolSize: 1, auto_reconnect: true, bufferMaxEntries: 0 }
);
client.connect(function(err, client) {
@@ -232,13 +232,10 @@ describe('Db', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient,
- Server = configuration.require.Server;
+ var fs_client = configuration.newClient('mongodb://127.0.0.1:25117/test', {
+ auto_reconnect: false
+ });
- var fs_client = new MongoClient(
- new Server('127.0.0.1', 25117, { auto_reconnect: false }),
- configuration.writeConcernMax()
- );
fs_client.connect(function(err) {
test.ok(err != null);
done();
@@ -426,13 +423,11 @@ describe('Db', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient,
- Server = configuration.require.Server;
+ var client = configuration.newClient(`mongodb://127.0.0.1:27088/test`, {
+ auto_reconnect: false,
+ poolSize: 4
+ });
- var client = new MongoClient(
- new Server('127.0.0.1', 27088, { auto_reconnect: false, poolSize: 4 }),
- configuration.writeConcernMax()
- );
// Establish connection to db
client.connect(function(err) {
test.ok(err != null);
diff --git a/test/functional/disconnect_handler_tests.js b/test/functional/disconnect_handler_tests.js
index c7957e35a5a..c2ef21760b4 100644
--- a/test/functional/disconnect_handler_tests.js
+++ b/test/functional/disconnect_handler_tests.js
@@ -11,9 +11,9 @@ describe('Disconnect Handler', function() {
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect(configuration.url(), {}, function(err, client) {
+ const client = configuration.newCLient();
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
diff --git a/test/functional/domain_tests.js b/test/functional/domain_tests.js
index a8761a7cd0a..02cc1eaeecb 100644
--- a/test/functional/domain_tests.js
+++ b/test/functional/domain_tests.js
@@ -53,30 +53,24 @@ describe('Decimal128', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var Domain = require('domain');
var domainInstance = Domain.create();
- MongoClient.connect(
- configuration.url(),
- {
- domainsEnabled: true
- },
- function(err, client) {
- test.ok(!err);
- var db = client.db(configuration.db);
- var collection = db.collection('test');
- domainInstance.run(function() {
- collection.count({}, function(err) {
- test.ok(!err);
- test.ok(domainInstance === process.domain);
- domainInstance.exit();
- client.close();
- done();
- });
+ const client = configuration.newClient({}, { domainsEnabled: true });
+ client.connect(function(err, client) {
+ test.ok(!err);
+ var db = client.db(configuration.db);
+ var collection = db.collection('test');
+ domainInstance.run(function() {
+ collection.count({}, function(err) {
+ test.ok(!err);
+ test.ok(domainInstance === process.domain);
+ domainInstance.exit();
+ client.close();
+ done();
});
- }
- );
+ });
+ });
}
});
@@ -129,8 +123,8 @@ describe('Decimal128', function() {
var domainInstance = Domain.create();
var configuration = this.configuration;
var client = configuration.newClient(
- { w: 0, bufferMaxEntries: 0 },
- { poolSize: 1, auto_reconnect: true, domainsEnabled: true }
+ { w: 0 },
+ { poolSize: 1, auto_reconnect: true, domainsEnabled: true, bufferMaxEntries: 0 }
);
client.connect(function(err, client) {
@@ -168,8 +162,8 @@ describe('Decimal128', function() {
var domainInstance = Domain.create();
var configuration = this.configuration;
var client = configuration.newClient(
- { w: 1, bufferMaxEntries: 0 },
- { poolSize: 1, auto_reconnect: true, domainsEnabled: true }
+ { w: 1 },
+ { poolSize: 1, auto_reconnect: true, domainsEnabled: true, bufferMaxEntries: 0 }
);
client.connect(function(err, client) {
diff --git a/test/functional/error_tests.js b/test/functional/error_tests.js
index 03ea7fb0e32..9f78c2d2270 100644
--- a/test/functional/error_tests.js
+++ b/test/functional/error_tests.js
@@ -209,7 +209,6 @@ describe.skip('Errors', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var domain = require('domain');
var d = domain.create();
d.on('error', function(err) {
@@ -218,7 +217,8 @@ describe.skip('Errors', function() {
});
d.run(function() {
- MongoClient.connect(configuration.url(), function() {
+ const client = configuration.newClient();
+ client.connect(function() {
testdfdma(); // eslint-disable-line
test.ok(false);
});
@@ -234,11 +234,9 @@ describe.skip('Errors', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect(configuration.url(), { server: { sslValidate: false } }, function(
- err,
- client
- ) {
+
+ const client = configuration.newClient({}, { server: { sslValidate: false } });
+ client.connect(function(err, client) {
var db = client.db(configuration.db);
process.once('uncaughtException', function(err) {
@@ -265,8 +263,6 @@ describe.skip('Errors', function() {
// The actual test we wish to run
test: function(done) {
- var client = null;
-
// TODO: check exception and fix test
process.once('uncaughtException', function() {
client.close();
@@ -274,31 +270,30 @@ describe.skip('Errors', function() {
});
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect(
- configuration.url(),
+ const client = configuration.newClient(
+ {},
{
server: { sslValidate: false },
replset: { sslValidate: false },
mongos: { sslValidate: false }
- },
- function(err, _client) {
- test.equal(null, err);
- client = _client;
- var db = client.db(configuration.db);
+ }
+ );
- db.collection('throwerrorduringoperation').insert([{ a: 1 }, { a: 1 }], function(err) {
- test.equal(null, err);
+ client.connect(function(err) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
- db
- .collection('throwerrorduringoperation')
- .find()
- .toArray(function() {
+ db.collection('throwerrorduringoperation').insert([{ a: 1 }, { a: 1 }], function(err) {
+ test.equal(null, err);
+
+ db
+ .collection('throwerrorduringoperation')
+ .find()
+ .toArray(function() {
err = a; // eslint-disable-line
- });
- });
- }
- );
+ });
+ });
+ });
}
});
diff --git a/test/functional/find_and_modify_tests.js b/test/functional/find_and_modify_tests.js
index 442b6440437..2b5774119e3 100644
--- a/test/functional/find_and_modify_tests.js
+++ b/test/functional/find_and_modify_tests.js
@@ -147,7 +147,6 @@ describe('Find and Modify', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var started = [];
var succeeded = [];
@@ -167,7 +166,8 @@ describe('Find and Modify', function() {
url = url.indexOf('?') !== -1 ? f('%s&%s', url, 'fsync=true') : f('%s?%s', url, 'fsync=true');
// Establish connection to db
- MongoClient.connect(url, { sslValidate: false }, function(err, client) {
+ const client = configuration.newClient(url, { sslValidate: false });
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
var collection = db.collection('findAndModifyTEST');
diff --git a/test/functional/find_tests.js b/test/functional/find_tests.js
index 9e9848c55d1..cae428f64e7 100644
--- a/test/functional/find_tests.js
+++ b/test/functional/find_tests.js
@@ -2,7 +2,7 @@
const test = require('./shared').assert;
const setupDatabase = require('./shared').setupDatabase;
const expect = require('chai').expect;
-const MongoClient = require('../../lib/mongo_client');
+const Buffer = require('safe-buffer').Buffer;
describe('Find', function() {
before(function() {
@@ -2413,7 +2413,7 @@ describe('Find', function() {
it('Should correctly execute parallelCollectionScan with multiple cursors using each', {
// Add a tag that our runner can trigger on
// in this case we are setting that node needs to be higher than 0.10.X to run
- metadata: { requires: { mongodb: '>2.5.5', topology: ['single', 'replicaset'] } },
+ metadata: { requires: { mongodb: '>2.5.5 <=4.1.0', topology: ['single', 'replicaset'] } },
// The actual test we wish to run
test: function(done) {
@@ -2478,7 +2478,7 @@ describe('Find', function() {
it('Should correctly execute parallelCollectionScan with multiple cursors using next', {
// Add a tag that our runner can trigger on
// in this case we are setting that node needs to be higher than 0.10.X to run
- metadata: { requires: { mongodb: '>2.5.5', topology: ['single', 'replicaset'] } },
+ metadata: { requires: { mongodb: '>2.5.5 <=4.1.0', topology: ['single', 'replicaset'] } },
// The actual test we wish to run
test: function(done) {
@@ -2536,7 +2536,7 @@ describe('Find', function() {
it('Should correctly execute parallelCollectionScan with single cursor and close', {
// Add a tag that our runner can trigger on
// in this case we are setting that node needs to be higher than 0.10.X to run
- metadata: { requires: { mongodb: '>2.5.5', topology: ['single', 'replicaset'] } },
+ metadata: { requires: { mongodb: '>2.5.5 <=4.1.0', topology: ['single', 'replicaset'] } },
// The actual test we wish to run
test: function(done) {
@@ -2580,7 +2580,7 @@ describe('Find', function() {
it('Should correctly execute parallelCollectionScan with single cursor streaming', {
// Add a tag that our runner can trigger on
// in this case we are setting that node needs to be higher than 0.10.X to run
- metadata: { requires: { mongodb: '>2.5.5', topology: ['single', 'replicaset'] } },
+ metadata: { requires: { mongodb: '>2.5.5 <=4.1.0', topology: ['single', 'replicaset'] } },
// The actual test we wish to run
test: function(done) {
@@ -2628,13 +2628,13 @@ describe('Find', function() {
it('Should not use a session when using parallelCollectionScan', {
metadata: {
requires: {
- mongodb: '>=3.6.0',
+ mongodb: '>=3.6.0 <= 4.1.0',
topology: ['single', 'replicaset', 'sharded', 'ssl', 'heap', 'wiredtiger']
}
},
test: function(done) {
const configuration = this.configuration;
- const client = new MongoClient(configuration.url());
+ const client = configuration.newClient();
client.connect(function(err, client) {
var db = client.db(configuration.db);
@@ -2754,7 +2754,7 @@ describe('Find', function() {
{
// Add a tag that our runner can trigger on
// in this case we are setting that node needs to be higher than 0.10.X to run
- metadata: { requires: { mongodb: '>2.5.5', topology: ['single', 'replicaset'] } },
+ metadata: { requires: { mongodb: '>2.5.5 <=4.1.0', topology: ['single', 'replicaset'] } },
// The actual test we wish to run
test: function(done) {
@@ -3095,35 +3095,29 @@ describe('Find', function() {
});
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect(
- configuration.url(),
- {
- ignoreUndefined: true
- },
- function(err, client) {
- var db = client.db(configuration.db);
- var collection = db.collection('test_find_simple_cursor_inheritance');
+ const client = configuration.newClient({}, { ignoreUndefined: true });
+ client.connect(function(err, client) {
+ var db = client.db(configuration.db);
+ var collection = db.collection('test_find_simple_cursor_inheritance');
- // Insert some test documents
- collection.insert([{ a: 2 }, { b: 3, c: undefined }], function(err) {
- test.equal(null, err);
- // Ensure correct insertion testing via the cursor and the count function
- var cursor = collection.find({ c: undefined });
- test.equal(true, cursor.s.options.ignoreUndefined);
+ // Insert some test documents
+ collection.insert([{ a: 2 }, { b: 3, c: undefined }], function(err) {
+ test.equal(null, err);
+ // Ensure correct insertion testing via the cursor and the count function
+ var cursor = collection.find({ c: undefined });
+ test.equal(true, cursor.s.options.ignoreUndefined);
- cursor.toArray(function(err, documents) {
- test.equal(2, documents.length);
- // process.exit(0)
- listener.uninstrument();
+ cursor.toArray(function(err, documents) {
+ test.equal(2, documents.length);
+ // process.exit(0)
+ listener.uninstrument();
- // Let's close the db
- client.close();
- done();
- });
+ // Let's close the db
+ client.close();
+ done();
});
- }
- );
+ });
+ });
}
});
});
diff --git a/test/functional/gridfs_stream_tests.js b/test/functional/gridfs_stream_tests.js
index 6bb98d5fa76..3cba86a51ea 100644
--- a/test/functional/gridfs_stream_tests.js
+++ b/test/functional/gridfs_stream_tests.js
@@ -5,7 +5,8 @@ const crypto = require('crypto'),
fs = require('fs'),
test = require('./shared').assert,
setupDatabase = require('./shared').setupDatabase,
- expect = require('chai').expect;
+ expect = require('chai').expect,
+ Buffer = require('safe-buffer').Buffer;
describe('GridFS Stream', function() {
before(function() {
@@ -28,16 +29,17 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
db.dropDatabase(function(error) {
test.equal(error, null);
@@ -112,16 +114,16 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
db.dropDatabase(function(error) {
test.equal(error, null);
@@ -198,16 +200,16 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, { bucketName: 'gridfsdownload' });
var CHUNKS_COLL = 'gridfsdownload.chunks';
@@ -266,16 +268,16 @@ describe('GridFS Stream', function() {
ObjectId = configuration.require.ObjectID;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, { bucketName: 'gridfsdownload' });
@@ -310,16 +312,16 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, { bucketName: 'gridfsdownload' });
var readStream = fs.createReadStream('./LICENSE');
@@ -364,16 +366,16 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, {
bucketName: 'gridfsdownload',
@@ -433,16 +435,16 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, { bucketName: 'gridfsdownload' });
var CHUNKS_COLL = 'gridfsdownload.chunks';
@@ -494,16 +496,16 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, { bucketName: 'gridfsabort', chunkSizeBytes: 1 });
var CHUNKS_COLL = 'gridfsabort.chunks';
@@ -556,16 +558,16 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, { bucketName: 'gridfsabort', chunkSizeBytes: 1 });
var CHUNKS_COLL = 'gridfsabort.chunks';
@@ -620,16 +622,16 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, { bucketName: 'gridfsdestroy', chunkSizeBytes: 10 });
var readStream = fs.createReadStream('./LICENSE');
@@ -692,16 +694,16 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, { bucketName: 'gridfsdownload' });
var CHUNKS_COLL = 'gridfsdownload.chunks';
@@ -745,16 +747,16 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, { bucketName: 'fs' });
@@ -791,16 +793,16 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, { bucketName: 'gridfsdownload' });
var CHUNKS_COLL = 'gridfsdownload.chunks';
@@ -853,16 +855,16 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, { bucketName: 'gridfsdownload' });
var CHUNKS_COLL = 'gridfsdownload.chunks';
@@ -913,16 +915,16 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, { bucketName: 'gridfsdownload_2' });
var readStream = fs.createReadStream('./LICENSE');
@@ -960,16 +962,16 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, { bucketName: 'gridfsdownload_3' });
var readStream = fs.createReadStream('./LICENSE');
@@ -1286,16 +1288,16 @@ describe('GridFS Stream', function() {
var configuration = this.configuration;
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, { bucketName: 'gridfsabort', chunkSizeBytes: 1 });
var CHUNKS_COLL = 'gridfsabort.chunks';
@@ -1355,16 +1357,16 @@ describe('GridFS Stream', function() {
var GridFSBucket = configuration.require.GridFSBucket;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE const db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
client.connect(function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
var db = client.db(configuration.db);
var bucket = new GridFSBucket(db, {
bucketName: 'gridfsdownload',
diff --git a/test/functional/gridfs_tests.js b/test/functional/gridfs_tests.js
index 6a801d09f8e..5fb301c8dd3 100644
--- a/test/functional/gridfs_tests.js
+++ b/test/functional/gridfs_tests.js
@@ -5,7 +5,8 @@ const test = require('./shared').assert,
fs = require('fs'),
format = require('util').format,
child_process = require('child_process'),
- expect = require('chai').expect;
+ expect = require('chai').expect,
+ Buffer = require('safe-buffer').Buffer;
describe('GridFS', function() {
before(function() {
@@ -3670,12 +3671,12 @@ describe('GridFS', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient,
- GridStore = configuration.require.GridStore,
+ var GridStore = configuration.require.GridStore,
fs = require('fs');
// Use connect method to connect to the Server
- MongoClient.connect(configuration.url(), { sslValidate: false }, function(err, client) {
+ const client = configuration.newClient({}, { sslValidate: false });
+ client.connect(function(err, client) {
expect(err).to.not.exist;
var db = client.db(configuration.db);
@@ -3715,11 +3716,11 @@ describe('GridFS', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient,
- GridStore = configuration.require.GridStore;
+ var GridStore = configuration.require.GridStore;
// Use connect method to connect to the Server
- MongoClient.connect(configuration.url(), { sslValidate: false }, function(err, client) {
+ const client = configuration.newClient({}, { sslValidate: false });
+ client.connect(function(err, client) {
expect(err).to.not.exist;
var db = client.db(configuration.db);
@@ -3785,12 +3786,12 @@ describe('GridFS', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient,
- GridStore = configuration.require.GridStore,
+ var GridStore = configuration.require.GridStore,
ObjectID = configuration.require.ObjectID;
var id = new ObjectID();
- MongoClient.connect(configuration.url(), { sslValidate: false }, function(err, client) {
+ const client = configuration.newClient({}, { sslValidate: false });
+ client.connect(function(err, client) {
expect(err).to.not.exist;
var db = client.db(configuration.db);
@@ -3868,15 +3869,15 @@ describe('GridFS', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient,
- GridStore = configuration.require.GridStore,
+ var GridStore = configuration.require.GridStore,
ObjectID = configuration.require.ObjectID;
// Create a test buffer
var buffer = Buffer.alloc(200033);
// Use connect method to connect to the Server
- MongoClient.connect(configuration.url(), { sslValidate: false }, function(err, client) {
+ const client = configuration.newClient({}, { sslValidate: false });
+ client.connect(function(err, client) {
expect(err).to.not.exist;
var db = client.db(configuration.db);
diff --git a/test/functional/ignore_undefined_tests.js b/test/functional/ignore_undefined_tests.js
index c1150d30fef..9c6eb6e8259 100644
--- a/test/functional/ignore_undefined_tests.js
+++ b/test/functional/ignore_undefined_tests.js
@@ -15,12 +15,10 @@ describe('Ignore Undefined', function() {
test: function(done) {
var configuration = this.configuration;
- var client = configuration.newClient(
- Object.assign({}, configuration.writeConcernMax(), {
- poolSize: 1,
- ignoreUndefined: true
- })
- );
+ var client = configuration.newClient(configuration.writeConcernMax(), {
+ poolSize: 1,
+ ignoreUndefined: true
+ });
client.connect(function(err, client) {
var db = client.db(configuration.db);
@@ -52,48 +50,47 @@ describe('Ignore Undefined', function() {
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
-
- MongoClient.connect(
- configuration.url(),
+ const client = configuration.newClient(
+ {},
{
bufferMaxEntries: 0,
ignoreUndefined: true,
sslValidate: false
- },
- function(err, client) {
- var db = client.db(configuration.db);
- var collection = db.collection('shouldCorrectlyIgnoreUndefinedValue1');
- collection.insert({ a: 1, b: undefined }, function(err) {
- test.equal(null, err);
-
- collection.findOne(function(err, item) {
- test.equal(1, item.a);
- test.ok(item.b === undefined);
-
- collection.insertOne({ a: 2, b: undefined }, function(err) {
- test.equal(null, err);
+ }
+ );
- collection.findOne({ a: 2 }, function(err, item) {
- test.equal(2, item.a);
- test.ok(item.b === undefined);
+ client.connect(function(err, client) {
+ var db = client.db(configuration.db);
+ var collection = db.collection('shouldCorrectlyIgnoreUndefinedValue1');
+ collection.insert({ a: 1, b: undefined }, function(err) {
+ test.equal(null, err);
- collection.insertMany([{ a: 3, b: undefined }], function(err) {
- test.equal(null, err);
+ collection.findOne(function(err, item) {
+ test.equal(1, item.a);
+ test.ok(item.b === undefined);
- collection.findOne({ a: 3 }, function(err, item) {
- test.equal(3, item.a);
- test.ok(item.b === undefined);
- client.close();
- done();
- });
+ collection.insertOne({ a: 2, b: undefined }, function(err) {
+ test.equal(null, err);
+
+ collection.findOne({ a: 2 }, function(err, item) {
+ test.equal(2, item.a);
+ test.ok(item.b === undefined);
+
+ collection.insertMany([{ a: 3, b: undefined }], function(err) {
+ test.equal(null, err);
+
+ collection.findOne({ a: 3 }, function(err, item) {
+ test.equal(3, item.a);
+ test.ok(item.b === undefined);
+ client.close();
+ done();
});
});
});
});
});
- }
- );
+ });
+ });
}
}
);
@@ -108,12 +105,10 @@ describe('Ignore Undefined', function() {
var configuration = this.configuration;
var ObjectId = configuration.require.ObjectID;
- var client = configuration.newClient(
- Object.assign({}, configuration.writeConcernMax(), {
- poolSize: 1,
- ignoreUndefined: true
- })
- );
+ var client = configuration.newClient(configuration.writeConcernMax(), {
+ poolSize: 1,
+ ignoreUndefined: true
+ });
client.connect(function(err, client) {
var db = client.db(configuration.db);
diff --git a/test/functional/insert_tests.js b/test/functional/insert_tests.js
index a2f008364e3..eba7cf5040f 100644
--- a/test/functional/insert_tests.js
+++ b/test/functional/insert_tests.js
@@ -3,7 +3,8 @@ const test = require('./shared').assert,
setupDatabase = require('./shared').setupDatabase,
Script = require('vm'),
expect = require('chai').expect,
- normalizedFunctionString = require('bson/lib/bson/parser/utils').normalizedFunctionString;
+ normalizedFunctionString = require('bson/lib/bson/parser/utils').normalizedFunctionString,
+ Buffer = require('safe-buffer').Buffer;
/**
* Module for parsing an ISO 8601 formatted string into a Date object.
diff --git a/test/functional/jira_bug_tests.js b/test/functional/jira_bug_tests.js
index df040bc0191..4e234cb0bc6 100644
--- a/test/functional/jira_bug_tests.js
+++ b/test/functional/jira_bug_tests.js
@@ -99,72 +99,68 @@ describe('JIRA bugs', function() {
/**
* @ignore
*/
- it(
- 'NODE-746 should correctly connect using MongoClient.connect to single primary/secondary with both hosts in uri',
- {
- metadata: { requires: { topology: ['auth'] } },
+ it('NODE-746 should correctly connect to single primary/secondary with both hosts in uri', {
+ metadata: { requires: { topology: ['auth'] } },
- // The actual test we wish to run
- test: function(done) {
- var configuration = this.configuration;
- var Db = configuration.require.Db,
- MongoClient = configuration.require.MongoClient,
- Server = configuration.require.Server,
- ReplSet = configuration.require.ReplSet;
+ // The actual test we wish to run
+ test: function(done) {
+ var configuration = this.configuration;
+ var Db = configuration.require.Db,
+ Server = configuration.require.Server,
+ ReplSet = configuration.require.ReplSet;
- setUp(configuration, function(err, replicasetManager) {
- var replSet = new ReplSet(
- [new Server('localhost', 31000), new Server('localhost', 31001)],
- {
- rs_name: 'rs',
- poolSize: 1
- }
- );
+ setUp(configuration, function(err, replicasetManager) {
+ var replSet = new ReplSet(
+ [new Server('localhost', 31000), new Server('localhost', 31001)],
+ {
+ rs_name: 'rs',
+ poolSize: 1
+ }
+ );
- // Connect
- new Db('replicaset_test_auth', replSet, { w: 1 }).open(function(err, db) {
- // Add a user
- db.admin().addUser('root', 'root', { w: 3, wtimeout: 25000 }, function(err) {
- test.equal(null, err);
- db.close();
+ // Connect
+ new Db('replicaset_test_auth', replSet, { w: 1 }).open(function(err, db) {
+ // Add a user
+ db.admin().addUser('root', 'root', { w: 3, wtimeout: 25000 }, function(err) {
+ test.equal(null, err);
+ db.close();
- // shut down one of the secondaries
- replicasetManager.secondaries().then(function(managers) {
- // Remove the secondary server
- replicasetManager
- .removeMember(
- managers[1],
- {
- returnImmediately: false,
- force: true,
- skipWait: false
- },
- {
- provider: 'scram-sha-1',
- db: 'admin',
- user: 'root',
- password: 'root'
- }
- )
- .then(function() {
- // Attempt to connect
- MongoClient.connect(
- 'mongodb://root:root@localhost:31000,localhost:31001/admin?replicaSet=rs',
- function(err, db) {
- test.equal(null, err);
- db.close();
+ // shut down one of the secondaries
+ replicasetManager.secondaries().then(function(managers) {
+ // Remove the secondary server
+ replicasetManager
+ .removeMember(
+ managers[1],
+ {
+ returnImmediately: false,
+ force: true,
+ skipWait: false
+ },
+ {
+ provider: 'scram-sha-1',
+ db: 'admin',
+ user: 'root',
+ password: 'root'
+ }
+ )
+ .then(function() {
+ // Attempt to connect
+ const client = configuration.newClient(
+ 'mongodb://root:root@localhost:31000,localhost:31001/admin?replicaSet=rs'
+ );
+ client.connect(function(err, db) {
+ test.equal(null, err);
+ db.close();
- replicasetManager.stop().then(function() {
- done();
- });
- }
- );
+ replicasetManager.stop().then(function() {
+ done();
+ });
});
- });
+ });
});
});
});
- }
+ });
}
- );
+ });
});
diff --git a/test/functional/kerberos_tests.js b/test/functional/kerberos_tests.js
index b25db2b6782..04eda4201f8 100644
--- a/test/functional/kerberos_tests.js
+++ b/test/functional/kerberos_tests.js
@@ -23,36 +23,33 @@ describe('Kerberos', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
// KDC Server
var server = 'ldaptest.10gen.cc';
var principal = 'drivers@LDAPTEST.10GEN.CC';
var urlEncodedPrincipal = encodeURIComponent(principal);
+ const url = format(
+ 'mongodb://%s@%s/kerberos?authMechanism=GSSAPI&gssapiServiceName=mongodb&maxPoolSize=1',
+ urlEncodedPrincipal,
+ server
+ );
- // Let's write the actual connection code
- MongoClient.connect(
- format(
- 'mongodb://%s@%s/kerberos?authMechanism=GSSAPI&gssapiServiceName=mongodb&maxPoolSize=1',
- urlEncodedPrincipal,
- server
- ),
- function(err, client) {
- test.equal(null, err);
- var db = client.db('kerberos');
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db('kerberos');
- db
- .collection('test')
- .find()
- .toArray(function(err, docs) {
- test.equal(null, err);
- test.ok(true, docs[0].kerberos);
+ db
+ .collection('test')
+ .find()
+ .toArray(function(err, docs) {
+ test.equal(null, err);
+ test.ok(true, docs[0].kerberos);
- client.close();
- done();
- });
- }
- );
+ client.close();
+ done();
+ });
+ });
}
});
@@ -65,36 +62,33 @@ describe('Kerberos', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
// KDC Server
var server = 'ldaptest.10gen.cc';
var principal = 'drivers@LDAPTEST.10GEN.CC';
var urlEncodedPrincipal = encodeURIComponent(principal);
+ const url = format(
+ 'mongodb://%s@%s/kerberos?authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:mongodb,CANONICALIZE_HOST_NAME:false,SERVICE_REALM:windows&maxPoolSize=1',
+ urlEncodedPrincipal,
+ server
+ );
- // Let's write the actual connection code
- MongoClient.connect(
- format(
- 'mongodb://%s@%s/kerberos?authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:mongodb,CANONICALIZE_HOST_NAME:false,SERVICE_REALM:windows&maxPoolSize=1',
- urlEncodedPrincipal,
- server
- ),
- function(err, client) {
- test.equal(null, err);
- var db = client.db('kerberos');
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db('kerberos');
- db
- .collection('test')
- .find()
- .toArray(function(err, docs) {
- test.equal(null, err);
- test.ok(true, docs[0].kerberos);
+ db
+ .collection('test')
+ .find()
+ .toArray(function(err, docs) {
+ test.equal(null, err);
+ test.ok(true, docs[0].kerberos);
- client.close();
- done();
- });
- }
- );
+ client.close();
+ done();
+ });
+ });
}
});
@@ -109,36 +103,33 @@ describe('Kerberos', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
// KDC Server
var server = 'ldaptest.10gen.cc';
var principal = 'drivers@LDAPTEST.10GEN.CC';
var urlEncodedPrincipal = encodeURIComponent(principal);
-
- // Let's write the actual connection code
- MongoClient.connect(
- format(
- 'mongodb://%s@%s/kerberos?authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:mongodb,CANONICALIZE_HOST_NAME:false&maxPoolSize=1',
- urlEncodedPrincipal,
- server
- ),
- function(err, client) {
- test.equal(null, err);
- var db = client.db('kerberos');
-
- db
- .collection('test')
- .find()
- .toArray(function(err, docs) {
- test.equal(null, err);
- test.ok(true, docs[0].kerberos);
-
- client.close();
- done();
- });
- }
+ const url = format(
+ 'mongodb://%s@%s/kerberos?authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:mongodb,CANONICALIZE_HOST_NAME:false&maxPoolSize=1',
+ urlEncodedPrincipal,
+ server
);
+
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db('kerberos');
+
+ db
+ .collection('test')
+ .find()
+ .toArray(function(err, docs) {
+ test.equal(null, err);
+ test.ok(true, docs[0].kerberos);
+
+ client.close();
+ done();
+ });
+ });
}
}
);
@@ -152,61 +143,58 @@ describe('Kerberos', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
// KDC Server
var server = 'ldaptest.10gen.cc';
var principal = 'drivers@LDAPTEST.10GEN.CC';
var urlEncodedPrincipal = encodeURIComponent(principal);
+ const url = format(
+ 'mongodb://%s@%s/kerberos?authMechanism=GSSAPI&gssapiServiceName=mongodb&maxPoolSize=5',
+ urlEncodedPrincipal,
+ server
+ );
- // Let's write the actual connection code
- MongoClient.connect(
- format(
- 'mongodb://%s@%s/kerberos?authMechanism=GSSAPI&gssapiServiceName=mongodb&maxPoolSize=5',
- urlEncodedPrincipal,
- server
- ),
- function(err, client) {
- test.equal(null, err);
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
+ test.equal(null, err);
- client
- .db('kerberos')
- .collection('test')
- .findOne(function(err, doc) {
- test.equal(null, err);
- test.equal(true, doc.kerberos);
-
- client.topology.once('reconnect', function() {
- // Await reconnect and re-authentication
- client
- .db('kerberos')
- .collection('test')
- .findOne(function(err, doc) {
- test.equal(null, err);
- test.equal(true, doc.kerberos);
-
- // Attempt disconnect again
- client.topology.connections()[0].destroy();
-
- // Await reconnect and re-authentication
- client
- .db('kerberos')
- .collection('test')
- .findOne(function(err, doc) {
- test.equal(null, err);
- test.equal(true, doc.kerberos);
-
- client.close();
- done();
- });
- });
- });
-
- // Force close
- client.topology.connections()[0].destroy();
+ client
+ .db('kerberos')
+ .collection('test')
+ .findOne(function(err, doc) {
+ test.equal(null, err);
+ test.equal(true, doc.kerberos);
+
+ client.topology.once('reconnect', function() {
+ // Await reconnect and re-authentication
+ client
+ .db('kerberos')
+ .collection('test')
+ .findOne(function(err, doc) {
+ test.equal(null, err);
+ test.equal(true, doc.kerberos);
+
+ // Attempt disconnect again
+ client.topology.connections()[0].destroy();
+
+ // Await reconnect and re-authentication
+ client
+ .db('kerberos')
+ .collection('test')
+ .findOne(function(err, doc) {
+ test.equal(null, err);
+ test.equal(true, doc.kerberos);
+
+ client.close();
+ done();
+ });
+ });
});
- }
- );
+
+ // Force close
+ client.topology.connections()[0].destroy();
+ });
+ });
}
});
@@ -258,25 +246,22 @@ describe('Kerberos', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
// KDC Server
var server = 'ldaptest.10gen.cc';
var principal = 'drivers@LDAPTEST.10GEN.CC';
var urlEncodedPrincipal = encodeURIComponent(principal);
-
- // Let's write the actual connection code
- MongoClient.connect(
- format(
- 'mongodb://%s@%s/test?authMechanism=GSSAPI&gssapiServiceName=mongodb2&maxPoolSize=1',
- urlEncodedPrincipal,
- server
- ),
- function(err) {
- test.ok(err != null);
- done();
- }
+ const url = format(
+ 'mongodb://%s@%s/test?authMechanism=GSSAPI&gssapiServiceName=mongodb2&maxPoolSize=1',
+ urlEncodedPrincipal,
+ server
);
+
+ const client = configuration.newClient(url);
+ client.connect(function(err) {
+ test.ok(err != null);
+ done();
+ });
}
});
@@ -289,7 +274,6 @@ describe('Kerberos', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
// KDC Server
var server = 'ldaptest.10gen.cc';
@@ -298,31 +282,29 @@ describe('Kerberos', function() {
if (pass == null) throw new Error('The env parameter LDAPTEST_PASSWORD must be set');
var urlEncodedPrincipal = encodeURIComponent(principal);
+ const url = format(
+ 'mongodb://%s:%s@%s/kerberos?authMechanism=GSSAPI&maxPoolSize=1',
+ urlEncodedPrincipal,
+ pass,
+ server
+ );
- // Let's write the actual connection code
- MongoClient.connect(
- format(
- 'mongodb://%s:%s@%s/kerberos?authMechanism=GSSAPI&maxPoolSize=1',
- urlEncodedPrincipal,
- pass,
- server
- ),
- function(err, client) {
- test.equal(null, err);
- var db = client.db('kerberos');
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db('kerberos');
- db
- .collection('test')
- .find()
- .toArray(function(err, docs) {
- test.equal(null, err);
- test.ok(true, docs[0].kerberos);
+ db
+ .collection('test')
+ .find()
+ .toArray(function(err, docs) {
+ test.equal(null, err);
+ test.ok(true, docs[0].kerberos);
- client.close();
- done();
- });
- }
- );
+ client.close();
+ done();
+ });
+ });
}
});
@@ -335,7 +317,6 @@ describe('Kerberos', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
// KDC Server
var server = 'ldaptest.10gen.cc';
@@ -343,56 +324,54 @@ describe('Kerberos', function() {
var pass = process.env['LDAPTEST_PASSWORD'];
if (pass == null) throw new Error('The env parameter LDAPTEST_PASSWORD must be set');
var urlEncodedPrincipal = encodeURIComponent(principal);
+ const url = format(
+ 'mongodb://%s:%s@%s/kerberos?authMechanism=GSSAPI&maxPoolSize=5',
+ urlEncodedPrincipal,
+ pass,
+ server
+ );
- // Let's write the actual connection code
- MongoClient.connect(
- format(
- 'mongodb://%s:%s@%s/kerberos?authMechanism=GSSAPI&maxPoolSize=5',
- urlEncodedPrincipal,
- pass,
- server
- ),
- function(err, client) {
- test.equal(null, err);
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
+ test.equal(null, err);
- client
- .db('kerberos')
- .collection('test')
- .findOne(function(err, doc) {
- test.equal(null, err);
- test.equal(true, doc.kerberos);
-
- client.topology.once('reconnect', function() {
- // Await reconnect and re-authentication
- client
- .db('kerberos')
- .collection('test')
- .findOne(function(err, doc) {
- test.equal(null, err);
- test.equal(true, doc.kerberos);
-
- // Attempt disconnect again
- client.topology.connections()[0].destroy();
-
- // Await reconnect and re-authentication
- client
- .db('kerberos')
- .collection('test')
- .findOne(function(err, doc) {
- test.equal(null, err);
- test.equal(true, doc.kerberos);
-
- client.close();
- done();
- });
- });
- });
-
- // Force close
- client.topology.connections()[0].destroy();
+ client
+ .db('kerberos')
+ .collection('test')
+ .findOne(function(err, doc) {
+ test.equal(null, err);
+ test.equal(true, doc.kerberos);
+
+ client.topology.once('reconnect', function() {
+ // Await reconnect and re-authentication
+ client
+ .db('kerberos')
+ .collection('test')
+ .findOne(function(err, doc) {
+ test.equal(null, err);
+ test.equal(true, doc.kerberos);
+
+ // Attempt disconnect again
+ client.topology.connections()[0].destroy();
+
+ // Await reconnect and re-authentication
+ client
+ .db('kerberos')
+ .collection('test')
+ .findOne(function(err, doc) {
+ test.equal(null, err);
+ test.equal(true, doc.kerberos);
+
+ client.close();
+ done();
+ });
+ });
});
- }
- );
+
+ // Force close
+ client.topology.connections()[0].destroy();
+ });
+ });
}
});
@@ -413,13 +392,13 @@ describe('Kerberos', function() {
var principal = 'drivers@LDAPTEST.10GEN.CC';
var pass = process.env['LDAPTEST_PASSWORD'];
if (pass == null) throw new Error('The env parameter LDAPTEST_PASSWORD must be set');
-
var client = new MongoClient(new Server(server, 27017), {
w: 1,
user: principal,
password: pass,
authMechanism: 'GSSAPI'
});
+
client.connect(function(err, client) {
test.equal(null, err);
var db = client.db('kerberos');
@@ -447,7 +426,6 @@ describe('Kerberos', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
// KDC Server
var server = 'ldaptest.10gen.cc';
@@ -456,20 +434,18 @@ describe('Kerberos', function() {
if (pass == null) throw new Error('The env parameter LDAPTEST_PASSWORD must be set');
var urlEncodedPrincipal = encodeURIComponent(principal);
-
- // Let's write the actual connection code
- MongoClient.connect(
- format(
- 'mongodb://%s:%s@%s/kerberos?authMechanism=GSSAPI&gssapiServiceName=mongodb2&maxPoolSize=1',
- urlEncodedPrincipal,
- pass,
- server
- ),
- function(err) {
- test.ok(err != null);
- done();
- }
+ const url = format(
+ 'mongodb://%s:%s@%s/kerberos?authMechanism=GSSAPI&gssapiServiceName=mongodb2&maxPoolSize=1',
+ urlEncodedPrincipal,
+ pass,
+ server
);
+
+ const client = configuration.newClient(url);
+ client.connect(function(err) {
+ test.ok(err != null);
+ done();
+ });
}
});
});
diff --git a/test/functional/ldap_tests.js b/test/functional/ldap_tests.js
index 953df9021cd..c293b65a7c4 100644
--- a/test/functional/ldap_tests.js
+++ b/test/functional/ldap_tests.js
@@ -18,7 +18,6 @@ describe('LDAP', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
// KDC Server
var server = 'ldaptest.10gen.cc';
@@ -33,8 +32,8 @@ describe('LDAP', function() {
server
);
- // Let's write the actual connection code
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
test.equal(null, err);
client
@@ -60,7 +59,6 @@ describe('LDAP', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
// KDC Server
var server = 'ldaptest.10gen.cc';
@@ -75,8 +73,8 @@ describe('LDAP', function() {
server
);
- // Let's write the actual connection code
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
test.equal(null, err);
client
diff --git a/test/functional/mapreduce_tests.js b/test/functional/mapreduce_tests.js
index e70076e3051..c3797f4ecff 100644
--- a/test/functional/mapreduce_tests.js
+++ b/test/functional/mapreduce_tests.js
@@ -12,7 +12,10 @@ describe('MapReduce', function() {
*/
it('shouldCorrectlyExecuteGroupFunctionWithFinalizeFunction', {
metadata: {
- requires: { topology: ['single', 'replicaset', 'sharded', 'ssl', 'heap', 'wiredtiger'] }
+ requires: {
+ mongodb: '<=4.1.0',
+ topology: ['single', 'replicaset', 'sharded', 'ssl', 'heap', 'wiredtiger']
+ }
},
// The actual test we wish to run
@@ -414,7 +417,10 @@ describe('MapReduce', function() {
*/
it('shouldCorrectlyReturnNestedKeys', {
metadata: {
- requires: { topology: ['single', 'replicaset', 'sharded', 'ssl', 'heap', 'wiredtiger'] }
+ requires: {
+ mongodb: '<=4.1.0', // Because of use of `group` command
+ topology: ['single', 'replicaset', 'sharded', 'ssl', 'heap', 'wiredtiger']
+ }
},
// The actual test we wish to run
diff --git a/test/functional/max_staleness_tests.js b/test/functional/max_staleness_tests.js
index 6766e73e851..5e4519f91bc 100644
--- a/test/functional/max_staleness_tests.js
+++ b/test/functional/max_staleness_tests.js
@@ -41,7 +41,7 @@ describe('Max Staleness', function() {
});
});
- it('should correctly set maxStalenessSeconds on Mongos query using MongoClient.connect', {
+ it('should correctly set maxStalenessSeconds on Mongos query on connect', {
metadata: {
requires: {
generators: true,
@@ -50,30 +50,30 @@ describe('Max Staleness', function() {
},
test: function(done) {
- var self = this,
- MongoClient = self.configuration.require.MongoClient;
-
- MongoClient.connect(
- `mongodb://${test.server.uri()}/test?readPreference=secondary&maxStalenessSeconds=250`,
- function(err, client) {
- expect(err).to.not.exist;
- var db = client.db(self.configuration.db);
+ var self = this;
+ const configuration = this.configuration;
+ const client = configuration.newClient(
+ `mongodb://${test.server.uri()}/test?readPreference=secondary&maxStalenessSeconds=250`
+ );
- db
- .collection('test')
- .find({})
- .toArray(function(err) {
- expect(err).to.not.exist;
- expect(test.checkCommand).to.eql({
- $query: { find: 'test', filter: {}, returnKey: false, showRecordId: false },
- $readPreference: { mode: 'secondary', maxStalenessSeconds: 250 }
- });
+ client.connect(function(err, client) {
+ expect(err).to.not.exist;
+ var db = client.db(self.configuration.db);
- client.close();
- done();
+ db
+ .collection('test')
+ .find({})
+ .toArray(function(err) {
+ expect(err).to.not.exist;
+ expect(test.checkCommand).to.eql({
+ $query: { find: 'test', filter: {}, returnKey: false, showRecordId: false },
+ $readPreference: { mode: 'secondary', maxStalenessSeconds: 250 }
});
- }
- );
+
+ client.close();
+ done();
+ });
+ });
}
});
@@ -86,11 +86,12 @@ describe('Max Staleness', function() {
},
test: function(done) {
- var self = this,
- MongoClient = self.configuration.require.MongoClient,
- ReadPreference = self.configuration.require.ReadPreference;
+ var self = this;
+ const configuration = this.configuration;
+ const ReadPreference = self.configuration.require.ReadPreference;
- MongoClient.connect(`mongodb://${test.server.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${test.server.uri()}/test`);
+ client.connect(function(err, client) {
expect(err).to.not.exist;
// Get a db with a new readPreference
@@ -126,11 +127,12 @@ describe('Max Staleness', function() {
},
test: function(done) {
- var self = this,
- MongoClient = self.configuration.require.MongoClient,
- ReadPreference = self.configuration.require.ReadPreference;
+ var self = this;
+ const configuration = this.configuration;
+ const ReadPreference = self.configuration.require.ReadPreference;
- MongoClient.connect(`mongodb://${test.server.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${test.server.uri()}/test`);
+ client.connect(function(err, client) {
expect(err).to.not.exist;
var db = client.db(self.configuration.db);
@@ -164,11 +166,12 @@ describe('Max Staleness', function() {
},
test: function(done) {
- var self = this,
- MongoClient = self.configuration.require.MongoClient,
- ReadPreference = self.configuration.require.ReadPreference;
+ var self = this;
+ const configuration = this.configuration;
+ const ReadPreference = self.configuration.require.ReadPreference;
- MongoClient.connect(`mongodb://${test.server.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${test.server.uri()}/test`);
+ client.connect(function(err, client) {
expect(err).to.not.exist;
var db = client.db(self.configuration.db);
var readPreference = new ReadPreference('secondary', null, { maxStalenessSeconds: 250 });
diff --git a/test/functional/mongo_client_tests.js b/test/functional/mongo_client_tests.js
index 21d7b5ef96e..5de99c9c112 100644
--- a/test/functional/mongo_client_tests.js
+++ b/test/functional/mongo_client_tests.js
@@ -19,39 +19,33 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect(
- configuration.url(),
- {
- bufferMaxEntries: 0,
- sslValidate: false
- },
- function(err, client) {
- var db = client.db(configuration.db);
- // Listener for closing event
- var closeListener = function() {
- // Let's insert a document
- var collection = db.collection('test_object_id_generation.data2');
- // Insert another test document and collect using ObjectId
- var docs = [];
- for (var i = 0; i < 1500; i++) docs.push({ a: i });
-
- collection.insert(docs, configuration.writeConcern(), function(err) {
- test.ok(err != null);
- test.ok(err.message.indexOf('0') !== -1);
-
- // Let's close the db
- client.close();
- done();
- });
- };
-
- // Add listener to close event
- db.once('close', closeListener);
- // Ensure death of server instance
- client.topology.connections()[0].destroy();
- }
- );
+ const client = configuration.newClient({}, { bufferMaxEntries: 0, sslValidate: false });
+
+ client.connect(function(err, client) {
+ var db = client.db(configuration.db);
+ // Listener for closing event
+ var closeListener = function() {
+ // Let's insert a document
+ var collection = db.collection('test_object_id_generation.data2');
+ // Insert another test document and collect using ObjectId
+ var docs = [];
+ for (var i = 0; i < 1500; i++) docs.push({ a: i });
+
+ collection.insert(docs, configuration.writeConcern(), function(err) {
+ test.ok(err != null);
+ test.ok(err.message.indexOf('0') !== -1);
+
+ // Let's close the db
+ client.close();
+ done();
+ });
+ };
+
+ // Add listener to close event
+ db.once('close', closeListener);
+ // Ensure death of server instance
+ client.topology.connections()[0].destroy();
+ });
}
});
@@ -65,42 +59,36 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect(
- configuration.url(),
- {
- bufferMaxEntries: 0,
- sslValidate: false
- },
- function(err, client) {
- var db = client.db(configuration.db);
- // Listener for closing event
- var closeListener = function() {
- // Let's insert a document
- var collection = db.collection('test_object_id_generation.data_3');
- // Insert another test document and collect using ObjectId
- var docs = [];
- for (var i = 0; i < 1500; i++) docs.push({ a: i });
-
- var opts = configuration.writeConcern();
- opts.keepGoing = true;
- // Execute insert
- collection.insert(docs, opts, function(err) {
- test.ok(err != null);
- test.ok(err.message.indexOf('0') !== -1);
-
- // Let's close the db
- client.close();
- done();
- });
- };
-
- // Add listener to close event
- db.once('close', closeListener);
- // Ensure death of server instance
- client.topology.connections()[0].destroy();
- }
- );
+ const client = configuration.newClient({}, { bufferMaxEntries: 0, sslValidate: false });
+
+ client.connect(function(err, client) {
+ var db = client.db(configuration.db);
+ // Listener for closing event
+ var closeListener = function() {
+ // Let's insert a document
+ var collection = db.collection('test_object_id_generation.data_3');
+ // Insert another test document and collect using ObjectId
+ var docs = [];
+ for (var i = 0; i < 1500; i++) docs.push({ a: i });
+
+ var opts = configuration.writeConcern();
+ opts.keepGoing = true;
+ // Execute insert
+ collection.insert(docs, opts, function(err) {
+ test.ok(err != null);
+ test.ok(err.message.indexOf('0') !== -1);
+
+ // Let's close the db
+ client.close();
+ done();
+ });
+ };
+
+ // Add listener to close event
+ db.once('close', closeListener);
+ // Ensure death of server instance
+ client.topology.connections()[0].destroy();
+ });
}
});
@@ -114,9 +102,8 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect(
- configuration.url(),
+ const client = configuration.newClient(
+ {},
{
w: 1,
wtimeout: 1000,
@@ -133,30 +120,31 @@ describe('MongoClient', function() {
raw: true,
numberOfRetries: 10,
bufferMaxEntries: 0
- },
- function(err, client) {
- var db = client.db(configuration.db);
-
- test.equal(1, db.writeConcern.w);
- test.equal(1000, db.writeConcern.wtimeout);
- test.equal(true, db.writeConcern.fsync);
- test.equal(true, db.writeConcern.j);
-
- test.equal('nearest', db.s.readPreference.mode);
- test.deepEqual({ loc: 'ny' }, db.s.readPreference.tags);
-
- test.equal(false, db.s.nativeParser);
- test.equal(true, db.s.options.forceServerObjectId);
- test.equal(1, db.s.pkFactory());
- test.equal(true, db.s.options.serializeFunctions);
- test.equal(true, db.s.options.raw);
- test.equal(10, db.s.options.numberOfRetries);
- test.equal(0, db.s.options.bufferMaxEntries);
-
- client.close();
- done();
}
);
+
+ client.connect(function(err, client) {
+ var db = client.db(configuration.db);
+
+ test.equal(1, db.writeConcern.w);
+ test.equal(1000, db.writeConcern.wtimeout);
+ test.equal(true, db.writeConcern.fsync);
+ test.equal(true, db.writeConcern.j);
+
+ test.equal('nearest', db.s.readPreference.mode);
+ test.deepEqual({ loc: 'ny' }, db.s.readPreference.tags);
+
+ test.equal(false, db.s.nativeParser);
+ test.equal(true, db.s.options.forceServerObjectId);
+ test.equal(1, db.s.pkFactory());
+ test.equal(true, db.s.options.serializeFunctions);
+ test.equal(true, db.s.options.raw);
+ test.equal(10, db.s.options.numberOfRetries);
+ test.equal(0, db.s.options.bufferMaxEntries);
+
+ client.close();
+ done();
+ });
}
});
@@ -170,9 +158,8 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect(
- configuration.url(),
+ const client = configuration.newClient(
+ {},
{
poolSize: 10,
autoReconnect: false,
@@ -181,20 +168,21 @@ describe('MongoClient', function() {
keepAliveInitialDelay: 100,
connectTimeoutMS: 444444,
socketTimeoutMS: 555555
- },
- function(err, client) {
- var db = client.db(configuration.db);
- test.equal(10, db.s.topology.s.poolSize);
- test.equal(false, db.s.topology.autoReconnect);
- test.equal(444444, db.s.topology.s.clonedOptions.connectionTimeout);
- test.equal(555555, db.s.topology.s.clonedOptions.socketTimeout);
- test.equal(true, db.s.topology.s.clonedOptions.keepAlive);
- test.equal(100, db.s.topology.s.clonedOptions.keepAliveInitialDelay);
-
- client.close();
- done();
}
);
+
+ client.connect(function(err, client) {
+ var db = client.db(configuration.db);
+ test.equal(10, db.s.topology.s.poolSize);
+ test.equal(false, db.s.topology.autoReconnect);
+ test.equal(444444, db.s.topology.s.clonedOptions.connectionTimeout);
+ test.equal(555555, db.s.topology.s.clonedOptions.socketTimeout);
+ test.equal(true, db.s.topology.s.clonedOptions.keepAlive);
+ test.equal(100, db.s.topology.s.clonedOptions.keepAliveInitialDelay);
+
+ client.close();
+ done();
+ });
}
});
@@ -208,46 +196,43 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url().replace('rs_name=rs', 'rs_name=rs1');
- MongoClient.connect(
- url,
- {
- replSet: {
- ha: false,
- haInterval: 10000,
- replicaSet: 'rs',
- secondaryAcceptableLatencyMS: 100,
- connectWithNoPrimary: true,
- poolSize: 1,
- socketOptions: {
- noDelay: false,
- keepAlive: true,
- keepAliveInitialDelay: 100,
- connectTimeoutMS: 444444,
- socketTimeoutMS: 555555
- }
+ const client = configuration.newClient(url, {
+ replSet: {
+ ha: false,
+ haInterval: 10000,
+ replicaSet: 'rs',
+ secondaryAcceptableLatencyMS: 100,
+ connectWithNoPrimary: true,
+ poolSize: 1,
+ socketOptions: {
+ noDelay: false,
+ keepAlive: true,
+ keepAliveInitialDelay: 100,
+ connectTimeoutMS: 444444,
+ socketTimeoutMS: 555555
}
- },
- function(err, client) {
- var db = client.db(configuration.db);
-
- test.equal(false, db.s.topology.s.clonedOptions.ha);
- test.equal(10000, db.s.topology.s.clonedOptions.haInterval);
- test.equal('rs', db.s.topology.s.clonedOptions.setName);
- test.equal(100, db.s.topology.s.clonedOptions.acceptableLatency);
- test.equal(true, db.s.topology.s.clonedOptions.secondaryOnlyConnectionAllowed);
- test.equal(1, db.s.topology.s.clonedOptions.size);
-
- test.equal(444444, db.s.topology.s.clonedOptions.connectionTimeout);
- test.equal(555555, db.s.topology.s.clonedOptions.socketTimeout);
- test.equal(true, db.s.topology.s.clonedOptions.keepAlive);
- test.equal(100, db.s.topology.s.clonedOptions.keepAliveInitialDelay);
-
- client.close();
- done();
}
- );
+ });
+
+ client.connect(function(err, client) {
+ var db = client.db(configuration.db);
+
+ test.equal(false, db.s.topology.s.clonedOptions.ha);
+ test.equal(10000, db.s.topology.s.clonedOptions.haInterval);
+ test.equal('rs', db.s.topology.s.clonedOptions.setName);
+ test.equal(100, db.s.topology.s.clonedOptions.acceptableLatency);
+ test.equal(true, db.s.topology.s.clonedOptions.secondaryOnlyConnectionAllowed);
+ test.equal(1, db.s.topology.s.clonedOptions.size);
+
+ test.equal(444444, db.s.topology.s.clonedOptions.connectionTimeout);
+ test.equal(555555, db.s.topology.s.clonedOptions.socketTimeout);
+ test.equal(true, db.s.topology.s.clonedOptions.keepAlive);
+ test.equal(100, db.s.topology.s.clonedOptions.keepAliveInitialDelay);
+
+ client.close();
+ done();
+ });
}
});
@@ -261,9 +246,8 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect(
- configuration.url(),
+ const client = configuration.newClient(
+ {},
{
ha: false,
haInterval: 10000,
@@ -276,24 +260,25 @@ describe('MongoClient', function() {
connectTimeoutMS: 444444,
socketTimeoutMS: 555555
}
- },
- function(err, client) {
- var db = client.db(configuration.db);
+ }
+ );
- test.equal(false, db.s.topology.s.clonedOptions.ha);
- test.equal(10000, db.s.topology.s.clonedOptions.haInterval);
- test.equal(100, db.s.topology.s.clonedOptions.localThresholdMS);
- test.equal(1, db.s.topology.s.clonedOptions.poolSize);
+ client.connect(function(err, client) {
+ var db = client.db(configuration.db);
- test.equal(444444, db.s.topology.s.clonedOptions.connectionTimeout);
- test.equal(555555, db.s.topology.s.clonedOptions.socketTimeout);
- test.equal(true, db.s.topology.s.clonedOptions.keepAlive);
- test.equal(100, db.s.topology.s.clonedOptions.keepAliveInitialDelay);
+ test.equal(false, db.s.topology.s.clonedOptions.ha);
+ test.equal(10000, db.s.topology.s.clonedOptions.haInterval);
+ test.equal(100, db.s.topology.s.clonedOptions.localThresholdMS);
+ test.equal(1, db.s.topology.s.clonedOptions.poolSize);
- client.close();
- done();
- }
- );
+ test.equal(444444, db.s.topology.s.clonedOptions.connectionTimeout);
+ test.equal(555555, db.s.topology.s.clonedOptions.socketTimeout);
+ test.equal(true, db.s.topology.s.clonedOptions.keepAlive);
+ test.equal(100, db.s.topology.s.clonedOptions.keepAliveInitialDelay);
+
+ client.close();
+ done();
+ });
}
});
@@ -307,14 +292,14 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=100')
: f('%s?%s', url, 'maxPoolSize=100');
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
test.equal(1, client.topology.connections().length);
test.equal(100, client.topology.s.coreTopology.s.pool.size);
@@ -334,14 +319,14 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=100')
: f('%s?%s', url, 'maxPoolSize=100');
- MongoClient.connect(url, {}, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
test.ok(client.topology.connections().length >= 1);
var connections = client.topology.connections();
@@ -353,26 +338,25 @@ describe('MongoClient', function() {
client.close();
- MongoClient.connect(
- url,
- {
- connectTimeoutMS: 15000,
- socketTimeoutMS: 30000
- },
- function(err, client) {
- test.ok(client.topology.connections().length >= 1);
+ const secondClient = configuration.newClient(url, {
+ connectTimeoutMS: 15000,
+ socketTimeoutMS: 30000
+ });
- var connections = client.topology.connections();
+ secondClient.connect(function(err) {
+ test.equal(null, err);
+ test.ok(secondClient.topology.connections().length >= 1);
- for (var i = 0; i < connections.length; i++) {
- test.equal(15000, connections[i].connectionTimeout);
- test.equal(30000, connections[i].socketTimeout);
- }
+ var connections = secondClient.topology.connections();
- client.close();
- done();
+ for (var i = 0; i < connections.length; i++) {
+ test.equal(15000, connections[i].connectionTimeout);
+ test.equal(30000, connections[i].socketTimeout);
}
- );
+
+ secondClient.close();
+ done();
+ });
});
}
});
@@ -387,14 +371,14 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=100')
: f('%s?%s', url, 'maxPoolSize=100');
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
test.ok(client.topology.connections().length >= 1);
client.close();
@@ -414,9 +398,9 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
+ const client = configuration.newClient('user:password@localhost:27017/test');
- MongoClient.connect('user:password@localhost:27017/test', function(err) {
+ client.connect(function(err) {
test.equal(err.message, 'Invalid schema, expected `mongodb` or `mongodb+srv`');
done();
});
@@ -434,11 +418,11 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
+ const client = configuration.newClient('user:password@localhost:27017/test', {
+ useNewUrlParser: true
+ });
- MongoClient.connect('user:password@localhost:27017/test', { useNewUrlParser: true }, function(
- err
- ) {
+ client.connect(function(err) {
test.equal(err.message, 'Invalid connection string');
done();
});
@@ -448,7 +432,7 @@ describe('MongoClient', function() {
/**
* @ignore
*/
- it('correctly error out when no socket available on MongoClient.connect', {
+ it('correctly error out when no socket available on MongoClient `connect`', {
metadata: {
requires: { topology: ['single', 'replicaset', 'sharded', 'ssl', 'heap', 'wiredtiger'] }
},
@@ -456,8 +440,8 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect('mongodb://localhost:27088/test', function(err) {
+ const client = configuration.newClient('mongodb://localhost:27088/test');
+ client.connect(function(err) {
test.ok(err != null);
done();
@@ -471,8 +455,8 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect('mongodb://%2Ftmp%2Fmongodb-27017.sock/test', function(err) {
+ const client = configuration.newClient('mongodb://%2Ftmp%2Fmongodb-27017.sock/test');
+ client.connect(function(err) {
test.equal(null, err);
done();
});
@@ -482,7 +466,7 @@ describe('MongoClient', function() {
/**
* @ignore
*/
- it('correctly error out when no socket available on MongoClient.connect with domain', {
+ it('correctly error out when no socket available on MongoClient `connect` with domain', {
metadata: {
requires: { topology: ['single', 'replicaset', 'sharded', 'ssl', 'heap', 'wiredtiger'] }
},
@@ -490,9 +474,8 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
-
- MongoClient.connect('mongodb://test.does.not.exist.com:80/test', function(err) {
+ const client = configuration.newClient('mongodb://test.does.not.exist.com:80/test');
+ client.connect(function(err) {
test.ok(err != null);
done();
@@ -511,40 +494,34 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
-
- MongoClient.connect(
- configuration.url(),
+ const client = configuration.newClient(
+ {},
{
keepAlive: true,
keepAliveInitialDelay: 100
- },
- function(err, client) {
- test.equal(null, err);
- var connection = client.topology.connections()[0];
- test.equal(true, connection.keepAlive);
- test.equal(100, connection.keepAliveInitialDelay);
-
- client.close();
-
- MongoClient.connect(
- configuration.url(),
- {
- keepAlive: false
- },
- function(err, client) {
- test.equal(null, err);
-
- client.topology.connections().forEach(function(x) {
- test.equal(false, x.keepAlive);
- });
-
- client.close();
- done();
- }
- );
}
);
+
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var connection = client.topology.connections()[0];
+ test.equal(true, connection.keepAlive);
+ test.equal(100, connection.keepAliveInitialDelay);
+
+ client.close();
+
+ const secondClient = configuration.newClient({}, { keepAlive: false });
+ secondClient.connect(function(err) {
+ test.equal(null, err);
+
+ secondClient.topology.connections().forEach(function(x) {
+ test.equal(false, x.keepAlive);
+ });
+
+ secondClient.close();
+ done();
+ });
+ });
}
});
@@ -559,9 +536,8 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
-
- MongoClient.connect(configuration.url(), {}, function(err, client) {
+ const client = configuration.newClient();
+ client.connect(function(err, client) {
test.equal(null, err);
client.topology.connections().forEach(function(x) {
test.equal(true, x.keepAlive);
@@ -583,8 +559,8 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect('mongodb://unknownhost:36363/ddddd', {}, function(err) {
+ const client = configuration.newClient('mongodb://unknownhost:36363/ddddd');
+ client.connect(function(err) {
test.ok(err != null);
done();
});
@@ -601,12 +577,13 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration
.url()
.replace('rs_name=rs', '')
.replace('localhost:31000', 'localhost:31000,localhost:31001');
- MongoClient.connect(url, function(err) {
+
+ const client = configuration.newClient(url);
+ client.connect(function(err) {
test.ok(err != null);
done();
});
@@ -623,7 +600,6 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
if (url.indexOf('rs_name') !== -1) {
url = f('%s&appname=hello%20world', configuration.url());
@@ -631,7 +607,8 @@ describe('MongoClient', function() {
url = f('%s?appname=hello%20world', configuration.url());
}
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
test.equal(null, err);
test.equal('hello world', client.topology.clientInfo.application.name);
@@ -651,10 +628,10 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
- MongoClient.connect(url, { appname: 'hello world' }, function(err, db) {
+ const client = configuration.newClient(url, { appname: 'hello world' });
+ client.connect(function(err, db) {
test.equal(null, err);
test.equal('hello world', db.topology.clientInfo.application.name);
@@ -674,29 +651,29 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect(
- configuration.url(),
+ const client = configuration.newClient(
+ {},
{
socketTimeoutMS: 0,
connectTimeoutMS: 0
- },
- function(err, client) {
- test.equal(null, err);
- var db = client.db(configuration.db);
-
- if (db.s.topology.s.clonedOptions) {
- test.equal(0, db.s.topology.s.clonedOptions.connectionTimeout);
- test.equal(0, db.s.topology.s.clonedOptions.socketTimeout);
- } else {
- test.equal(0, db.s.topology.s.options.connectionTimeout);
- test.equal(0, db.s.topology.s.options.socketTimeout);
- }
-
- client.close();
- done();
}
);
+
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
+
+ if (db.s.topology.s.clonedOptions) {
+ test.equal(0, db.s.topology.s.clonedOptions.connectionTimeout);
+ test.equal(0, db.s.topology.s.clonedOptions.socketTimeout);
+ } else {
+ test.equal(0, db.s.topology.s.options.connectionTimeout);
+ test.equal(0, db.s.topology.s.options.socketTimeout);
+ }
+
+ client.close();
+ done();
+ });
}
});
@@ -710,10 +687,10 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var uri = f('%s?socketTimeoutMS=120000&connectTimeoutMS=15000', configuration.url());
- MongoClient.connect(uri, {}, function(err, client) {
+ const client = configuration.newClient(uri);
+ client.connect(function(err, client) {
test.equal(null, err);
test.equal(120000, client.topology.s.coreTopology.s.options.socketTimeout);
test.equal(15000, client.topology.s.coreTopology.s.options.connectionTimeout);
@@ -739,9 +716,8 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
-
- new MongoClient(configuration.url()).connect(function(err, mongoclient) {
+ const client = configuration.newClient();
+ client.connect(function(err, mongoclient) {
test.equal(null, err);
mongoclient
@@ -768,9 +744,8 @@ describe('MongoClient', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
-
- new MongoClient(configuration.url()).connect().then(function(mongoclient) {
+ const client = configuration.newClient();
+ client.connect().then(function(mongoclient) {
mongoclient
.db('integration_tests')
.collection('new_mongo_client_collection')
diff --git a/test/functional/mongodb_srv_tests.js b/test/functional/mongodb_srv_tests.js
index ce3a2881bd0..d8cf3a6f864 100644
--- a/test/functional/mongodb_srv_tests.js
+++ b/test/functional/mongodb_srv_tests.js
@@ -17,6 +17,7 @@ function getTests() {
describe('mongodb+srv (spec)', function() {
it('should parse a default database', function(done) {
parse('mongodb+srv://test5.test.build.10gen.cc/somedb', (err, result) => {
+ expect(err).to.not.exist;
expect(result.dbName).to.eql('somedb');
done();
});
diff --git a/test/functional/multiple_db_tests.js b/test/functional/multiple_db_tests.js
index 2d46ccf2b78..53cdf82b136 100644
--- a/test/functional/multiple_db_tests.js
+++ b/test/functional/multiple_db_tests.js
@@ -169,8 +169,8 @@ describe('Multiple Databases', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect(configuration.url(), { sslValidate: false }, function(err, client) {
+ const client = configuration.newClient({}, { sslValidate: false });
+ client.connect(function(err, client) {
for (var i = 0; i < 100; i++) {
client.db('test');
}
diff --git a/test/functional/operation_example_tests.js b/test/functional/operation_example_tests.js
index b8280360523..bed7887fe43 100644
--- a/test/functional/operation_example_tests.js
+++ b/test/functional/operation_example_tests.js
@@ -2,7 +2,8 @@
const test = require('./shared').assert,
setupDatabase = require('./shared').setupDatabase,
f = require('util').format,
- expect = require('chai').expect;
+ expect = require('chai').expect,
+ Buffer = require('safe-buffer').Buffer;
describe('Operation Examples', function() {
before(function() {
@@ -39,7 +40,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -132,7 +134,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -220,7 +223,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -308,7 +312,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -400,7 +405,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -490,7 +496,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -586,7 +593,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -673,7 +681,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -730,7 +739,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -798,7 +808,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -854,7 +865,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -920,7 +932,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -984,7 +997,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -1044,7 +1058,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -1104,7 +1119,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -1150,7 +1166,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -1217,7 +1234,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -1285,7 +1303,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -1352,7 +1371,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -1405,7 +1425,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -1457,7 +1478,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -1520,7 +1542,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -1613,7 +1636,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -1673,7 +1697,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -1724,7 +1749,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -1779,7 +1805,10 @@ describe('Operation Examples', function() {
*/
it('shouldCorrectlyExecuteGroupFunction', {
metadata: {
- requires: { topology: ['single', 'replicaset', 'sharded', 'ssl', 'heap', 'wiredtiger'] }
+ requires: {
+ mongodb: '<=4.1.0',
+ topology: ['single', 'replicaset', 'sharded', 'ssl', 'heap', 'wiredtiger']
+ }
},
// The actual test we wish to run
@@ -1790,7 +1819,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -2013,7 +2043,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -2088,7 +2119,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -2160,7 +2192,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -2257,7 +2290,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -2352,7 +2386,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -2410,7 +2445,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -2472,7 +2508,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -2543,7 +2580,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -2612,7 +2650,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -2660,7 +2699,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -2713,7 +2753,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -2775,7 +2816,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -2847,7 +2889,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -2894,7 +2937,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -2933,7 +2977,7 @@ describe('Operation Examples', function() {
it('Should correctly execute parallelCollectionScan with multiple cursors using toArray', {
// Add a tag that our runner can trigger on
// in this case we are setting that node needs to be higher than 0.10.X to run
- metadata: { requires: { mongodb: '>2.5.5', topology: ['single', 'replicaset'] } },
+ metadata: { requires: { mongodb: '>2.5.5 <=4.1.0', topology: ['single', 'replicaset'] } },
// The actual test we wish to run
test: function(done) {
@@ -2942,7 +2986,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3017,7 +3062,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3085,7 +3131,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3135,7 +3182,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3184,7 +3232,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3299,7 +3348,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3346,7 +3396,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3411,7 +3462,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3466,7 +3518,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3517,7 +3570,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3579,7 +3633,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3631,7 +3686,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3713,7 +3769,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3751,7 +3808,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3795,7 +3853,10 @@ describe('Operation Examples', function() {
*/
it('shouldCorrectlyExecuteEvalFunctions', {
metadata: {
- requires: { topology: ['single', 'replicaset', 'sharded', 'ssl', 'heap', 'wiredtiger'] }
+ requires: {
+ topology: ['single', 'replicaset', 'sharded', 'ssl', 'heap', 'wiredtiger'],
+ mongodb: '<=4.1.0'
+ }
},
// The actual test we wish to run
@@ -3807,7 +3868,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3920,7 +3982,10 @@ describe('Operation Examples', function() {
*/
it('shouldCorrectlyDefineSystemLevelFunctionAndExecuteFunction', {
metadata: {
- requires: { topology: ['single', 'replicaset', 'sharded', 'ssl', 'heap', 'wiredtiger'] }
+ requires: {
+ mongodb: '<=4.1.0',
+ topology: ['single', 'replicaset', 'sharded', 'ssl', 'heap', 'wiredtiger']
+ }
},
// The actual test we wish to run
@@ -3931,7 +3996,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -3990,7 +4056,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4031,7 +4098,8 @@ describe('Operation Examples', function() {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4067,7 +4135,8 @@ describe('Operation Examples', function() {
test.equal(null, err);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4120,7 +4189,8 @@ describe('Operation Examples', function() {
test.equal(null, err);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4174,7 +4244,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4237,7 +4308,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4277,7 +4349,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4319,12 +4392,13 @@ describe('Operation Examples', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
+
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4340,15 +4414,16 @@ describe('Operation Examples', function() {
test.equal(null, err);
client.close();
- MongoClient.connect('mongodb://user:name@localhost:27017/integration_tests', function(
- err,
- client
- ) {
+ const secondClient = configuration.newClient(
+ 'mongodb://user:name@localhost:27017/integration_tests'
+ );
+
+ secondClient.connect(function(err) {
test.equal(null, err);
- var db = client.db(configuration.db);
+ var db = secondClient.db(configuration.db);
// Logout the db
- client.logout(function(err, result) {
+ secondClient.logout(function(err, result) {
test.equal(true, result);
// Remove the user from the db
@@ -4356,17 +4431,17 @@ describe('Operation Examples', function() {
test.ok(result);
test.equal(null, err);
- const oldClient = client;
- // Authenticate
- MongoClient.connect(
- 'mongodb://user:name@localhost:27017/integration_tests',
- function(err, client) {
- expect(err).to.exist;
- expect(client).to.not.exist;
- oldClient.close();
- done();
- }
+ const oldClient = secondClient;
+ const thirdClient = configuration.newClient(
+ 'mongodb://user:name@localhost:27017/integration_tests'
);
+
+ // Authenticate
+ thirdClient.connect(function(err) {
+ expect(err).to.exist;
+ oldClient.close();
+ done();
+ });
});
});
});
@@ -4395,7 +4470,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4446,7 +4522,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4519,7 +4596,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4561,7 +4639,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4644,7 +4723,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4713,7 +4793,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4780,7 +4861,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4851,7 +4933,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4892,7 +4975,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4969,7 +5053,8 @@ describe('Operation Examples', function() {
test.equal(null, err);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5006,7 +5091,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5048,7 +5134,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5089,7 +5176,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5142,7 +5230,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5214,7 +5303,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5264,7 +5354,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5305,7 +5396,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5348,7 +5440,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5396,7 +5489,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5435,7 +5529,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5483,7 +5578,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5535,7 +5631,8 @@ describe('Operation Examples', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5597,7 +5694,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5648,7 +5746,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5708,7 +5807,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5768,7 +5868,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5835,7 +5936,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5889,7 +5991,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5956,7 +6059,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -6014,7 +6118,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -6073,7 +6178,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -6132,7 +6238,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -6219,7 +6326,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -6274,7 +6382,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -6335,7 +6444,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -6402,7 +6512,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -6466,7 +6577,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -6536,7 +6648,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -6588,7 +6701,6 @@ describe('Operation Examples', function() {
* Example of a simple url connection string to a replicaset, with acknowledgement of writes.
*
* @example-class MongoClient
- * @example-method MongoClient.connect
* @ignore
*/
it('Should correctly connect to a replicaset', {
@@ -6597,8 +6709,6 @@ describe('Operation Examples', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var mongo = configuration.require,
- MongoClient = mongo.MongoClient;
// Create url
var url = f(
@@ -6610,11 +6720,13 @@ describe('Operation Examples', function() {
'primary'
);
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -6642,7 +6754,6 @@ describe('Operation Examples', function() {
* Example of a simple url connection string to a shard, with acknowledgement of writes.
*
* @example-class MongoClient
- * @example-method MongoClient.connect
* @ignore
*/
it('Should connect to mongos proxies using connectiong string', {
@@ -6651,8 +6762,6 @@ describe('Operation Examples', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
-
var url = f(
'mongodb://%s:%s,%s:%s/sharded_test_db?w=1',
configuration.host,
@@ -6661,10 +6770,12 @@ describe('Operation Examples', function() {
configuration.port + 1
);
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -6693,7 +6804,6 @@ describe('Operation Examples', function() {
* Example of a simple url connection string for a single server connection
*
* @example-class MongoClient
- * @example-method MongoClient.connect
* @ignore
*/
it('Should correctly connect using MongoClient to a single server using connect', {
@@ -6704,37 +6814,36 @@ describe('Operation Examples', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
+ const client = configuration.newClient('mongodb://localhost:27017/integration_tests', {
+ native_parser: true
+ });
// DOC_START
// Connect using the connection string
- MongoClient.connect(
- 'mongodb://localhost:27017/integration_tests',
- { native_parser: true },
- function(err, client) {
- // LINE var MongoClient = require('mongodb').MongoClient,
- // LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
- // LINE var db = client.db('test);
- // REPLACE configuration.writeConcernMax() WITH {w:1}
- // REMOVE-LINE restartAndDone
- // REMOVE-LINE done();
- // REMOVE-LINE var db = client.db(configuration.db);
- // BEGIN
- var db = client.db(configuration.db);
- test.equal(null, err);
+ client.connect(function(err, client) {
+ // LINE var MongoClient = require('mongodb').MongoClient,
+ // LINE test = require('assert');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
+ // LINE var db = client.db('test);
+ // REPLACE configuration.writeConcernMax() WITH {w:1}
+ // REMOVE-LINE restartAndDone
+ // REMOVE-LINE done();
+ // REMOVE-LINE var db = client.db(configuration.db);
+ // BEGIN
+ var db = client.db(configuration.db);
+ test.equal(null, err);
- db
- .collection('mongoclient_test')
- .updateOne({ a: 1 }, { $set: { b: 1 } }, { upsert: true }, function(err, result) {
- test.equal(null, err);
- test.equal(1, result.result.n);
+ db
+ .collection('mongoclient_test')
+ .updateOne({ a: 1 }, { $set: { b: 1 } }, { upsert: true }, function(err, result) {
+ test.equal(null, err);
+ test.equal(1, result.result.n);
- client.close();
- done();
- });
- }
- );
+ client.close();
+ done();
+ });
+ });
// END
}
});
@@ -6979,7 +7088,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -7050,7 +7160,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -7186,7 +7297,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -7238,7 +7350,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -7326,7 +7439,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -7395,7 +7509,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -7455,7 +7570,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -7518,7 +7634,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -7581,7 +7698,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -7651,7 +7769,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -7714,7 +7833,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -7769,7 +7889,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -7821,7 +7942,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -7891,7 +8013,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -7943,7 +8066,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -8009,7 +8133,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -8078,7 +8203,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -8133,7 +8259,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -8206,7 +8333,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -8258,7 +8386,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -8329,7 +8458,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -8453,7 +8583,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -8530,7 +8661,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -8583,7 +8715,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -8647,7 +8780,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -8703,7 +8837,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -8783,7 +8918,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -8855,7 +8991,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -8943,7 +9080,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -9016,7 +9154,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -9083,7 +9222,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -9158,7 +9298,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -9199,7 +9340,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -9240,7 +9382,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -9282,7 +9425,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -9331,7 +9475,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -9377,7 +9522,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -9425,7 +9571,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -9489,7 +9636,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -9539,7 +9687,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -9597,7 +9746,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -9655,7 +9805,8 @@ describe('Operation Examples', function() {
client.connect(function(err, client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect(function(err, client) {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
diff --git a/test/functional/operation_generators_example_tests.js b/test/functional/operation_generators_example_tests.js
index 3edf376b0e5..475edf7bc2f 100644
--- a/test/functional/operation_generators_example_tests.js
+++ b/test/functional/operation_generators_example_tests.js
@@ -1,6 +1,7 @@
'use strict';
var test = require('./shared').assert;
var setupDatabase = require('./shared').setupDatabase;
+var Buffer = require('safe-buffer').Buffer;
/**************************************************************************
*
@@ -41,7 +42,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -125,7 +128,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -208,7 +213,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -259,7 +266,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -314,7 +323,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -372,7 +383,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -430,7 +443,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -491,7 +506,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -531,7 +548,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -586,7 +605,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -644,7 +665,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -699,7 +722,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -750,7 +775,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -799,7 +826,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -861,7 +890,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -940,7 +971,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -996,7 +1029,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -1048,7 +1083,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -1086,7 +1123,7 @@ describe('Operation (Generators)', function() {
* @ignore
*/
it('shouldCorrectlyExecuteGroupFunctionWithGenerators', {
- metadata: { requires: { generators: true, topology: ['single'] } },
+ metadata: { requires: { generators: true, topology: ['single'], mongodb: '<=4.1.0' } },
// The actual test we wish to run
test: function() {
@@ -1105,7 +1142,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -1302,7 +1341,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -1369,7 +1410,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -1434,7 +1477,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -1523,7 +1568,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -1611,7 +1658,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -1660,7 +1709,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -1718,7 +1769,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -1779,7 +1832,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -1838,7 +1893,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -1882,7 +1939,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -1932,7 +1991,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -1983,7 +2044,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2047,7 +2110,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2095,7 +2160,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2128,7 +2195,7 @@ describe('Operation (Generators)', function() {
it('Should correctly execute parallelCollectionScan with multiple cursors with Generators', {
// Add a tag that our runner can trigger on
// in this case we are setting that node needs to be higher than 0.10.X to run
- metadata: { requires: { generators: true, mongodb: '>2.5.5', topology: ['single'] } },
+ metadata: { requires: { generators: true, mongodb: '>2.5.5 <=4.1.0', topology: ['single'] } },
// The actual test we wish to run
test: function() {
@@ -2146,7 +2213,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2208,7 +2277,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2265,7 +2336,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2314,7 +2387,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2360,7 +2435,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2465,7 +2542,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2510,7 +2589,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2570,7 +2651,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2621,7 +2704,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2672,7 +2757,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2729,7 +2816,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2779,7 +2868,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2848,7 +2939,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2883,7 +2976,7 @@ describe('Operation (Generators)', function() {
* @ignore
*/
it('shouldCorrectlyExecuteEvalFunctionsWithGenerators', {
- metadata: { requires: { generators: true, topology: ['single'] } },
+ metadata: { requires: { generators: true, topology: ['single'], mongodb: '<=4.1.0' } },
// The actual test we wish to run
test: function() {
@@ -2903,7 +2996,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -2992,7 +3087,7 @@ describe('Operation (Generators)', function() {
* @ignore
*/
it('shouldCorrectlyDefineSystemLevelFunctionAndExecuteFunctionWithGenerators', {
- metadata: { requires: { generators: true, topology: ['single'] } },
+ metadata: { requires: { generators: true, topology: ['single'], mongodb: '<=4.1.0' } },
// The actual test we wish to run
test: function() {
@@ -3011,7 +3106,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3064,7 +3161,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3117,7 +3216,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3157,7 +3258,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3185,8 +3288,7 @@ describe('Operation (Generators)', function() {
// The actual test we wish to run
test: function() {
var configuration = this.configuration;
- var co = require('co'),
- MongoClient = configuration.require.MongoClient;
+ var co = require('co');
return co(function*() {
// Connect
@@ -3199,7 +3301,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3208,9 +3312,11 @@ describe('Operation (Generators)', function() {
yield db.addUser('user', 'name');
// Authenticate
- var client2 = yield MongoClient.connect(
+ var client2 = configuration.newClient(
'mongodb://user:name@localhost:27017/' + configuration.db
);
+
+ yield client2.connect();
client2.close();
// Remove the user from the db
@@ -3218,7 +3324,8 @@ describe('Operation (Generators)', function() {
try {
// Authenticate
- yield MongoClient.connect('mongodb://user:name@localhost:27017/admin');
+ const client = configuration.newClient('mongodb://user:name@localhost:27017/admin');
+ yield client.connect();
test.ok(false);
} catch (err) {} // eslint-disable-line
@@ -3254,7 +3361,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3300,7 +3409,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3357,7 +3468,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3395,7 +3508,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3466,7 +3581,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3526,7 +3643,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3586,7 +3705,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3651,7 +3772,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3690,7 +3813,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3751,7 +3876,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3794,7 +3921,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3838,7 +3967,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3912,7 +4043,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -3973,7 +4106,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4023,7 +4158,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4066,7 +4203,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4111,7 +4250,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4158,7 +4299,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4202,7 +4345,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4253,7 +4398,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4313,7 +4460,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4363,7 +4512,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4412,7 +4563,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4473,7 +4626,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4523,7 +4678,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4587,7 +4744,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4647,7 +4806,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4762,7 +4923,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4813,7 +4976,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4886,7 +5051,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4945,7 +5112,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -4999,7 +5168,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -5056,7 +5227,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -5116,7 +5289,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -5183,7 +5358,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -5243,7 +5420,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -5296,7 +5475,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -5359,7 +5540,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -5422,7 +5605,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -5488,7 +5673,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -5540,7 +5727,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -5643,7 +5832,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -5711,7 +5902,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -5769,7 +5962,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -5822,7 +6017,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -5896,7 +6093,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -5966,7 +6165,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -6042,7 +6243,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -6083,7 +6286,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -6124,7 +6329,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -6166,7 +6373,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -6213,7 +6422,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -6257,7 +6468,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -6303,7 +6516,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -6366,7 +6581,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -6411,7 +6628,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -6466,7 +6685,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
@@ -6521,7 +6742,9 @@ describe('Operation (Generators)', function() {
// LINE test = require('assert');
// LINE
// LINE co(function*() {
- // LINE var client = yield MongoClient.connect('mongodb://localhost:27017/test');
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE yield client.connect();
+ // LINE
// LINE var db = client.db('test');
// REPLACE configuration.writeConcernMax() WITH {w:1}
// BEGIN
diff --git a/test/functional/operation_promises_example_tests.js b/test/functional/operation_promises_example_tests.js
index 725fc2866c7..22e2b6770fd 100644
--- a/test/functional/operation_promises_example_tests.js
+++ b/test/functional/operation_promises_example_tests.js
@@ -3,6 +3,7 @@ var fs = require('fs');
var f = require('util').format;
var test = require('./shared').assert;
var setupDatabase = require('./shared').setupDatabase;
+var Buffer = require('safe-buffer').Buffer;
var delay = function(ms) {
return new Promise(function(resolve) {
@@ -44,7 +45,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -127,7 +129,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
// BEGIN
@@ -212,7 +215,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -266,7 +270,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -326,7 +331,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -385,7 +391,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -442,7 +449,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -502,7 +510,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -545,7 +554,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -604,7 +614,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -667,7 +678,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -726,7 +738,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -775,7 +788,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -824,7 +838,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -887,7 +902,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -972,7 +988,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -1029,7 +1046,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -1079,7 +1097,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -1127,7 +1146,7 @@ describe('Operation (Promises)', function() {
* @ignore
*/
it('shouldCorrectlyExecuteGroupFunctionWithPromises', {
- metadata: { requires: { topology: ['single'] } },
+ metadata: { requires: { topology: ['single'], mongodb: '<=4.1.0' } },
// The actual test we wish to run
test: function() {
@@ -1140,7 +1159,8 @@ describe('Operation (Promises)', function() {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE Code = require('mongodb').Code,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -1348,7 +1368,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -1416,7 +1437,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -1483,7 +1505,8 @@ describe('Operation (Promises)', function() {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE Code = require('mongodb').Code,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -1575,7 +1598,8 @@ describe('Operation (Promises)', function() {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE Code = require('mongodb').Code,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -1665,7 +1689,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -1719,7 +1744,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -1784,7 +1810,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -1847,7 +1874,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -1907,7 +1935,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -1950,7 +1979,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -1999,7 +2029,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2055,7 +2086,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2125,7 +2157,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2168,7 +2201,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2204,7 +2238,7 @@ describe('Operation (Promises)', function() {
// Add a tag that our runner can trigger on
// in this case we are setting that node needs to be higher than 0.10.X to run
metadata: {
- requires: { mongodb: '>2.5.5', topology: ['single', 'replicaset'] }
+ requires: { mongodb: '>2.5.5 <=4.1.0', topology: ['single', 'replicaset'] }
},
// The actual test we wish to run
@@ -2219,7 +2253,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2291,7 +2326,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2352,7 +2388,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2402,7 +2439,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2455,7 +2493,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2579,7 +2618,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2623,7 +2663,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2687,7 +2728,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2737,7 +2779,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2784,7 +2827,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2839,7 +2883,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2884,7 +2929,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2960,7 +3006,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -2998,7 +3045,7 @@ describe('Operation (Promises)', function() {
* @ignore
*/
it('shouldCorrectlyExecuteEvalFunctionsWithPromises', {
- metadata: { requires: { topology: ['single'] } },
+ metadata: { requires: { topology: ['single'], mongodb: '<=4.1.0' } },
// The actual test we wish to run
test: function() {
@@ -3014,7 +3061,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3107,7 +3155,7 @@ describe('Operation (Promises)', function() {
* @ignore
*/
it('shouldCorrectlyDefineSystemLevelFunctionAndExecuteFunctionWithPromises', {
- metadata: { requires: { topology: ['single'] } },
+ metadata: { requires: { topology: ['single'], mongodb: '<=4.1.0' } },
// The actual test we wish to run
test: function() {
@@ -3122,7 +3170,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3176,7 +3225,8 @@ describe('Operation (Promises)', function() {
return client.connect().then(function(client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3212,7 +3262,8 @@ describe('Operation (Promises)', function() {
return client.connect().then(function(client) {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3313,7 +3364,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3374,7 +3426,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3411,7 +3464,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3447,13 +3501,14 @@ describe('Operation (Promises)', function() {
// The actual test we wish to run
test: function() {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- return MongoClient.connect(configuration.url()).then(function(client) {
+ const client = configuration.newClient();
+ return client.connect().then(function(client) {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3465,8 +3520,11 @@ describe('Operation (Promises)', function() {
.then(function(result) {
test.ok(result);
client.close();
+ const secondClient = configuration.newClient(
+ 'mongodb://user3:name@localhost:27017/integration_tests'
+ );
- return MongoClient.connect('mongodb://user3:name@localhost:27017/integration_tests');
+ return secondClient.connect();
})
.then(function(client) {
// Logout the db
@@ -3483,7 +3541,11 @@ describe('Operation (Promises)', function() {
test.equal(true, result);
// Should error out due to user no longer existing
- return MongoClient.connect('mongodb://user3:name@localhost:27017/integration_tests');
+ const thirdClient = configuration.newClient(
+ 'mongodb://user3:name@localhost:27017/integration_tests'
+ );
+
+ return thirdClient.connect();
})
.catch(function(err) {
test.ok(err);
@@ -3516,7 +3578,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3564,7 +3627,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3629,7 +3693,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3666,7 +3731,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3746,7 +3812,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3812,7 +3879,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3878,7 +3946,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3945,7 +4014,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -3978,7 +4048,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -4048,7 +4119,8 @@ describe('Operation (Promises)', function() {
return client.connect().then(function() {
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4085,7 +4157,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4124,7 +4197,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4163,7 +4237,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4214,7 +4289,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4297,7 +4373,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4365,7 +4442,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4414,7 +4492,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4453,7 +4532,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4498,7 +4578,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4545,7 +4626,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4584,7 +4666,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4655,7 +4738,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4707,7 +4791,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4758,7 +4843,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4809,7 +4895,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4860,7 +4947,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4910,7 +4998,6 @@ describe('Operation (Promises)', function() {
* Example of a simple url connection string to a replicaset, with acknowledgement of writes using a Promise.
*
* @example-class MongoClient
- * @example-method MongoClient.connect
* @ignore
*/
it('Should correctly connect to a replicaset With Promises', {
@@ -4919,10 +5006,6 @@ describe('Operation (Promises)', function() {
// The actual test we wish to run
test: function() {
var configuration = this.configuration;
- var mongo = configuration.require,
- MongoClient = mongo.MongoClient;
-
- // Create url
var url = f(
'mongodb://%s,%s/%s?replicaSet=%s&readPreference=%s',
f('%s:%s', configuration.host, configuration.port),
@@ -4932,11 +5015,13 @@ describe('Operation (Promises)', function() {
'primary'
);
- return MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ return client.connect().then(function(client) {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -4960,7 +5045,6 @@ describe('Operation (Promises)', function() {
* Example of a simple url connection string to a shard, with acknowledgement of writes using a Promise.
*
* @example-class MongoClient
- * @example-method MongoClient.connect
* @ignore
*/
it('Should connect to mongos proxies using connectiong string With Promises', {
@@ -4969,8 +5053,6 @@ describe('Operation (Promises)', function() {
// The actual test we wish to run
test: function() {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
-
var url = f(
'mongodb://%s:%s,%s:%s/sharded_test_db?w=1',
configuration.host,
@@ -4979,11 +5061,13 @@ describe('Operation (Promises)', function() {
configuration.port + 1
);
- return MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ return client.connect().then(function(client) {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5007,7 +5091,6 @@ describe('Operation (Promises)', function() {
* Example of a simple url connection string for a single server connection
*
* @example-class MongoClient
- * @example-method MongoClient.connect
* @ignore
*/
it('Should correctly connect using MongoClient to a single server using connect With Promises', {
@@ -5018,17 +5101,18 @@ describe('Operation (Promises)', function() {
// The actual test we wish to run
test: function() {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
+ const client = configuration.newClient('mongodb://localhost:27017/integration_tests', {
+ native_parser: true
+ });
// DOC_START
// Connect using the connection string
- return MongoClient.connect('mongodb://localhost:27017/integration_tests', {
- native_parser: true
- }).then(function(client) {
+ return client.connect().then(function(client) {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE restartAndDone
@@ -5075,7 +5159,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -5141,7 +5226,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -5271,7 +5357,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -5324,7 +5411,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -5411,7 +5499,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -5480,7 +5569,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -5535,7 +5625,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -5593,7 +5684,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -5653,7 +5745,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -5720,7 +5813,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -5782,7 +5876,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -5835,7 +5930,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -5904,7 +6000,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -5970,7 +6067,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -6042,7 +6140,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -6098,7 +6197,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -6224,7 +6324,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -6304,7 +6405,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -6370,7 +6472,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -6430,7 +6533,8 @@ describe('Operation (Promises)', function() {
// LINE GridStore = require('mongodb').GridStore,
// LINE ObjectID = require('mongodb').ObjectID,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -6522,7 +6626,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -6590,7 +6695,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -6664,7 +6770,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -6703,7 +6810,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -6742,7 +6850,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -6782,7 +6891,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -6835,7 +6945,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -6881,7 +6992,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -6929,7 +7041,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -7023,7 +7136,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -7070,7 +7184,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -7126,7 +7241,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -7183,7 +7299,8 @@ describe('Operation (Promises)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
diff --git a/test/functional/promises_collection_tests.js b/test/functional/promises_collection_tests.js
index 9148cd92a69..596cb237b8c 100644
--- a/test/functional/promises_collection_tests.js
+++ b/test/functional/promises_collection_tests.js
@@ -18,14 +18,14 @@ describe('Promises (Collection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=100')
: f('%s?%s', url, 'maxPoolSize=100');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
test.equal(1, client.topology.connections().length);
var db = client.db(configuration.db);
@@ -61,7 +61,9 @@ describe('Promises (Collection)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
+ // LINE
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -108,7 +110,9 @@ describe('Promises (Collection)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
+ // LINE
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -157,7 +161,9 @@ describe('Promises (Collection)', function() {
var db = client.db(configuration.db);
// LINE var MongoClient = require('mongodb').MongoClient,
// LINE test = require('assert');
- // LINE MongoClient.connect('mongodb://localhost:27017/test', function(err, client) {
+ // LINE const client = new MongoClient('mongodb://localhost:27017/test');
+ // LINE client.connect().then(() => {
+ // LINE
// LINE var db = client.db('test);
// REPLACE configuration.writeConcernMax() WITH {w:1}
// REMOVE-LINE done();
@@ -237,14 +243,14 @@ describe('Promises (Collection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=100')
: f('%s?%s', url, 'maxPoolSize=100');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
var db = client.db(configuration.db);
db
.collection('insertMany_Promise_error')
@@ -270,14 +276,14 @@ describe('Promises (Collection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=100')
: f('%s?%s', url, 'maxPoolSize=100');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
var db = client.db(configuration.db);
db
.collection('insertOne_Promise_error')
@@ -303,14 +309,14 @@ describe('Promises (Collection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=100')
: f('%s?%s', url, 'maxPoolSize=100');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
var db = client.db(configuration.db);
var bulk = db.collection('unordered_bulk_promise_form').initializeUnorderedBulkOp({ w: 1 });
bulk.insert({ a: 1 });
@@ -335,14 +341,14 @@ describe('Promises (Collection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=100')
: f('%s?%s', url, 'maxPoolSize=100');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
var db = client.db(configuration.db);
var bulk = db.collection('unordered_bulk_promise_form').initializeOrderedBulkOp({ w: 1 });
bulk.insert({ a: 1 });
diff --git a/test/functional/promises_cursor_tests.js b/test/functional/promises_cursor_tests.js
index b9faa1d41ba..940b2f70171 100644
--- a/test/functional/promises_cursor_tests.js
+++ b/test/functional/promises_cursor_tests.js
@@ -18,14 +18,14 @@ describe('Promises (Cursor)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=100')
: f('%s?%s', url, 'maxPoolSize=100');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
var db = client.db(configuration.db);
test.equal(1, client.topology.connections().length);
diff --git a/test/functional/promises_db_tests.js b/test/functional/promises_db_tests.js
index 8467d0a6f2e..c76f9a7340c 100644
--- a/test/functional/promises_db_tests.js
+++ b/test/functional/promises_db_tests.js
@@ -8,7 +8,7 @@ describe('Promises (Db)', function() {
return setupDatabase(this.configuration);
});
- it('Should correctly connect with MongoClient.connect using Promise', {
+ it('Should correctly connect with MongoClient `connect` using Promise', {
metadata: {
requires: {
topology: ['single']
@@ -18,14 +18,14 @@ describe('Promises (Db)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=100')
: f('%s?%s', url, 'maxPoolSize=100');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
test.equal(1, client.topology.connections().length);
client.close();
@@ -62,14 +62,14 @@ describe('Promises (Db)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=5')
: f('%s?%s', url, 'maxPoolSize=5');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
// Execute ismaster
client
.db(configuration.db)
@@ -94,14 +94,14 @@ describe('Promises (Db)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=5')
: f('%s?%s', url, 'maxPoolSize=5');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
// Execute ismaster
client
.db(configuration.db)
@@ -127,14 +127,14 @@ describe('Promises (Db)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=5')
: f('%s?%s', url, 'maxPoolSize=5');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
client
.db(configuration.db)
.createCollection('promiseCollection')
@@ -161,14 +161,14 @@ describe('Promises (Db)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=5')
: f('%s?%s', url, 'maxPoolSize=5');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
client
.db(configuration.db)
.stats()
@@ -192,14 +192,14 @@ describe('Promises (Db)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=5')
: f('%s?%s', url, 'maxPoolSize=5');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
client
.db(configuration.db)
.eval('function (x) {return x;}', [3], { nolock: true })
@@ -223,14 +223,14 @@ describe('Promises (Db)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=5')
: f('%s?%s', url, 'maxPoolSize=5');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
var db = client.db(configuration.db);
db.createCollection('promiseCollection1').then(function(col) {
@@ -262,14 +262,14 @@ describe('Promises (Db)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=5')
: f('%s?%s', url, 'maxPoolSize=5');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
client
.db(configuration.db)
.dropDatabase()
@@ -296,14 +296,14 @@ describe('Promises (Db)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=5')
: f('%s?%s', url, 'maxPoolSize=5');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
var db = client.db(configuration.db);
db.createCollection('promiseCollectionCollections1').then(function(col) {
@@ -334,14 +334,14 @@ describe('Promises (Db)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=5')
: f('%s?%s', url, 'maxPoolSize=5');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
client
.db(configuration.db)
.executeDbAdminCommand({ ismaster: true })
@@ -365,14 +365,14 @@ describe('Promises (Db)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=5')
: f('%s?%s', url, 'maxPoolSize=5');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
// Create an index
client
.db(configuration.db)
@@ -397,14 +397,14 @@ describe('Promises (Db)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var url = configuration.url();
url =
url.indexOf('?') !== -1
? f('%s&%s', url, 'maxPoolSize=5')
: f('%s?%s', url, 'maxPoolSize=5');
- MongoClient.connect(url).then(function(client) {
+ const client = configuration.newClient(url);
+ client.connect().then(function(client) {
// Create an index
client
.db(configuration.db)
@@ -429,14 +429,13 @@ describe('Promises (Db)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var db = null;
- var client = null;
var BlueBird = require('bluebird');
- MongoClient.connect(configuration.url(), { promiseLibrary: BlueBird })
- .then(function(_client) {
- client = _client;
+ const client = configuration.newClient({}, { promiseLibrary: BlueBird });
+ client
+ .connect()
+ .then(function() {
db = client.db(configuration.db);
return db.createCollection('test');
})
diff --git a/test/functional/promote_buffers_tests.js b/test/functional/promote_buffers_tests.js
index 68b8efedd12..84a0a95df8b 100644
--- a/test/functional/promote_buffers_tests.js
+++ b/test/functional/promote_buffers_tests.js
@@ -1,7 +1,7 @@
'use strict';
var test = require('./shared').assert;
var setupDatabase = require('./shared').setupDatabase;
-var Buffer = require('buffer').Buffer;
+var Buffer = require('safe-buffer').Buffer;
describe('Promote Buffers', function() {
before(function() {
@@ -55,34 +55,28 @@ describe('Promote Buffers', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
-
- MongoClient.connect(
- configuration.url(),
- {
- promoteBuffers: true
- },
- function(err, client) {
- var db = client.db(configuration.db);
-
- db.collection('shouldCorrectlyHonorPromoteBuffer2').insert(
- {
- doc: Buffer.alloc(256)
- },
- function(err) {
- test.equal(null, err);
- db.collection('shouldCorrectlyHonorPromoteBuffer2').findOne(function(err, doc) {
- test.equal(null, err);
- test.ok(doc.doc instanceof Buffer);
+ const client = configuration.newClient({}, { promoteBuffers: true });
+ client.connect(function(err, client) {
+ var db = client.db(configuration.db);
- client.close();
- done();
- });
- }
- );
- }
- );
+ db.collection('shouldCorrectlyHonorPromoteBuffer2').insert(
+ {
+ doc: Buffer.alloc(256)
+ },
+ function(err) {
+ test.equal(null, err);
+
+ db.collection('shouldCorrectlyHonorPromoteBuffer2').findOne(function(err, doc) {
+ test.equal(null, err);
+ test.ok(doc.doc instanceof Buffer);
+
+ client.close();
+ done();
+ });
+ }
+ );
+ });
}
});
@@ -96,37 +90,31 @@ describe('Promote Buffers', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
-
- MongoClient.connect(
- configuration.url(),
- {
- promoteBuffers: true
- },
- function(err, client) {
- var db = client.db(configuration.db);
-
- db.collection('shouldCorrectlyHonorPromoteBuffer3').insert(
- {
- doc: Buffer.alloc(256)
- },
- function(err) {
- test.equal(null, err);
- db
- .collection('shouldCorrectlyHonorPromoteBuffer3')
- .find()
- .next(function(err, doc) {
- test.equal(null, err);
- test.ok(doc.doc instanceof Buffer);
-
- client.close();
- done();
- });
- }
- );
- }
- );
+ const client = configuration.newClient({}, { promoteBuffers: true });
+ client.connect(function(err, client) {
+ var db = client.db(configuration.db);
+
+ db.collection('shouldCorrectlyHonorPromoteBuffer3').insert(
+ {
+ doc: Buffer.alloc(256)
+ },
+ function(err) {
+ test.equal(null, err);
+
+ db
+ .collection('shouldCorrectlyHonorPromoteBuffer3')
+ .find()
+ .next(function(err, doc) {
+ test.equal(null, err);
+ test.ok(doc.doc instanceof Buffer);
+
+ client.close();
+ done();
+ });
+ }
+ );
+ });
}
});
@@ -140,9 +128,9 @@ describe('Promote Buffers', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect(configuration.url(), {}, function(err, client) {
+ const client = configuration.newClient();
+ client.connect(function(err, client) {
var db = client.db(configuration.db);
db.collection('shouldCorrectlyHonorPromoteBuffer4').insert(
{
@@ -180,9 +168,9 @@ describe('Promote Buffers', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
- MongoClient.connect(configuration.url(), {}, function(err, client) {
+ const client = configuration.newClient();
+ client.connect(function(err, client) {
var db = client.db(configuration.db);
db.collection('shouldCorrectlyHonorPromoteBuffer5').insert(
{
diff --git a/test/functional/promote_values_tests.js b/test/functional/promote_values_tests.js
index eb70f999909..486e8641a32 100644
--- a/test/functional/promote_values_tests.js
+++ b/test/functional/promote_values_tests.js
@@ -67,40 +67,34 @@ describe('Promote Values', function() {
var configuration = this.configuration;
var Long = configuration.require.Long,
Int32 = configuration.require.Int32,
- Double = configuration.require.Double,
- MongoClient = configuration.require.MongoClient;
-
- MongoClient.connect(
- configuration.url(),
- {
- promoteValues: false
- },
- function(err, client) {
- var db = client.db(configuration.db);
- db.collection('shouldCorrectlyHonorPromoteValues').insert(
- {
- doc: Long.fromNumber(10),
- int: 10,
- double: 2.2222,
- array: [[Long.fromNumber(10)]]
- },
- function(err) {
- test.equal(null, err);
+ Double = configuration.require.Double;
- db.collection('shouldCorrectlyHonorPromoteValues').findOne(function(err, doc) {
- test.equal(null, err);
+ const client = configuration.newClient({}, { promoteValues: false });
+ client.connect(function(err, client) {
+ var db = client.db(configuration.db);
+ db.collection('shouldCorrectlyHonorPromoteValues').insert(
+ {
+ doc: Long.fromNumber(10),
+ int: 10,
+ double: 2.2222,
+ array: [[Long.fromNumber(10)]]
+ },
+ function(err) {
+ test.equal(null, err);
- test.deepEqual(Long.fromNumber(10), doc.doc);
- test.deepEqual(new Int32(10), doc.int);
- test.deepEqual(new Double(2.2222), doc.double);
+ db.collection('shouldCorrectlyHonorPromoteValues').findOne(function(err, doc) {
+ test.equal(null, err);
- client.close();
- done();
- });
- }
- );
- }
- );
+ test.deepEqual(Long.fromNumber(10), doc.doc);
+ test.deepEqual(new Int32(10), doc.int);
+ test.deepEqual(new Double(2.2222), doc.double);
+
+ client.close();
+ done();
+ });
+ }
+ );
+ });
}
});
@@ -116,43 +110,37 @@ describe('Promote Values', function() {
var configuration = this.configuration;
var Long = configuration.require.Long,
Int32 = configuration.require.Int32,
- Double = configuration.require.Double,
- MongoClient = configuration.require.MongoClient;
-
- MongoClient.connect(
- configuration.url(),
- {
- promoteValues: false
- },
- function(err, client) {
- var db = client.db(configuration.db);
- db.collection('shouldCorrectlyHonorPromoteValues').insert(
- {
- doc: Long.fromNumber(10),
- int: 10,
- double: 2.2222,
- array: [[Long.fromNumber(10)]]
- },
- function(err) {
- test.equal(null, err);
+ Double = configuration.require.Double;
- db
- .collection('shouldCorrectlyHonorPromoteValues')
- .find()
- .next(function(err, doc) {
- test.equal(null, err);
-
- test.deepEqual(Long.fromNumber(10), doc.doc);
- test.deepEqual(new Int32(10), doc.int);
- test.deepEqual(new Double(2.2222), doc.double);
-
- client.close();
- done();
- });
- }
- );
- }
- );
+ const client = configuration.newClient({}, { promoteValues: false });
+ client.connect(function(err, client) {
+ var db = client.db(configuration.db);
+ db.collection('shouldCorrectlyHonorPromoteValues').insert(
+ {
+ doc: Long.fromNumber(10),
+ int: 10,
+ double: 2.2222,
+ array: [[Long.fromNumber(10)]]
+ },
+ function(err) {
+ test.equal(null, err);
+
+ db
+ .collection('shouldCorrectlyHonorPromoteValues')
+ .find()
+ .next(function(err, doc) {
+ test.equal(null, err);
+
+ test.deepEqual(Long.fromNumber(10), doc.doc);
+ test.deepEqual(new Int32(10), doc.int);
+ test.deepEqual(new Double(2.2222), doc.double);
+
+ client.close();
+ done();
+ });
+ }
+ );
+ });
}
});
@@ -168,10 +156,10 @@ describe('Promote Values', function() {
var configuration = this.configuration;
var Long = configuration.require.Long,
Int32 = configuration.require.Int32,
- Double = configuration.require.Double,
- MongoClient = configuration.require.MongoClient;
+ Double = configuration.require.Double;
- MongoClient.connect(configuration.url(), {}, function(err, client) {
+ const client = configuration.newClient();
+ client.connect(function(err, client) {
var db = client.db(configuration.db);
db.collection('shouldCorrectlyHonorPromoteValues').insert(
{
@@ -214,10 +202,10 @@ describe('Promote Values', function() {
var configuration = this.configuration;
var Long = configuration.require.Long,
Int32 = configuration.require.Int32,
- Double = configuration.require.Double,
- MongoClient = configuration.require.MongoClient;
+ Double = configuration.require.Double;
- MongoClient.connect(configuration.url(), {}, function(err, client) {
+ const client = configuration.newClient();
+ client.connect(function(err, client) {
var db = client.db(configuration.db);
db.collection('shouldCorrectlyHonorPromoteValues2').insert(
{
@@ -258,10 +246,10 @@ describe('Promote Values', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var Long = configuration.require.Long;
- MongoClient.connect(configuration.url(), function(err, client) {
+ const client = configuration.newClient();
+ client.connect(function(err, client) {
var docs = new Array(150).fill(0).map(function(_, i) {
return {
_id: 'needle_' + i,
diff --git a/test/functional/readconcern_tests.js b/test/functional/readconcern_tests.js
index 936dcb980cb..4fa25436e66 100644
--- a/test/functional/readconcern_tests.js
+++ b/test/functional/readconcern_tests.js
@@ -2,6 +2,7 @@
var test = require('./shared').assert;
var setupDatabase = require('./shared').setupDatabase;
var f = require('util').format;
+const expect = require('chai').expect;
describe('ReadConcern', function() {
before(function(done) {
@@ -33,14 +34,14 @@ describe('ReadConcern', function() {
// Get a new instance
var configuration = this.configuration;
var client = configuration.newClient(
- { w: 1, readConcern: { level: 'local' } },
- { poolSize: 1 }
+ { w: 1 },
+ { poolSize: 1, readConcern: { level: 'local' } }
);
client.connect(function(err, client) {
- var db = client.db(configuration.db);
+ expect(err).to.not.exist;
- test.equal(null, err);
+ var db = client.db(configuration.db);
test.deepEqual({ level: 'local' }, db.s.readConcern);
// Get a collection
@@ -79,13 +80,14 @@ describe('ReadConcern', function() {
// Get a new instance
var configuration = this.configuration;
var client = configuration.newClient(
- { w: 1, readConcern: { level: 'majority' } },
- { poolSize: 1 }
+ { w: 1 },
+ { poolSize: 1, readConcern: { level: 'majority' } }
);
client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
var db = client.db(configuration.db);
- test.equal(null, err);
test.deepEqual({ level: 'majority' }, db.s.readConcern);
// Get a collection
@@ -125,8 +127,9 @@ describe('ReadConcern', function() {
var configuration = this.configuration;
var client = configuration.newClient(configuration.writeConcernMax(), { poolSize: 1 });
client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
var db = client.db(configuration.db);
- test.equal(null, err);
// Get a collection
var collection = db.collection('readConcernCollection', {
readConcern: { level: 'local' }
@@ -166,13 +169,14 @@ describe('ReadConcern', function() {
// Get a new instance
var configuration = this.configuration;
var client = configuration.newClient(
- { w: 1, readConcern: { level: 'majority' } },
- { poolSize: 1 }
+ { w: 1 },
+ { poolSize: 1, readConcern: { level: 'majority' } }
);
client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
var db = client.db(configuration.db);
- test.equal(null, err);
// Get a collection
var collection = db.collection('readConcernCollection', {
readConcern: { level: 'majority' }
@@ -203,7 +207,6 @@ describe('ReadConcern', function() {
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var listener = require('../..').instrument(function(err) {
test.equal(null, err);
});
@@ -217,9 +220,11 @@ describe('ReadConcern', function() {
: f('%s?%s', url, 'readConcernLevel=local');
// Connect using mongoclient
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
var db = client.db(configuration.db);
- test.equal(null, err);
test.deepEqual({ level: 'local' }, db.s.readConcern);
// Get a collection
@@ -250,7 +255,6 @@ describe('ReadConcern', function() {
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var listener = require('../..').instrument(function(err) {
test.equal(null, err);
});
@@ -264,9 +268,11 @@ describe('ReadConcern', function() {
: f('%s?%s', url, 'readConcernLevel=majority');
// Connect using mongoclient
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
var db = client.db(configuration.db);
- test.equal(null, err);
test.deepEqual({ level: 'majority' }, db.s.readConcern);
// Get a collection
@@ -297,7 +303,6 @@ describe('ReadConcern', function() {
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var listener = require('../..').instrument(function(err) {
test.equal(null, err);
});
@@ -312,9 +317,11 @@ describe('ReadConcern', function() {
};
// Connect using mongoclient
- MongoClient.connect(url, options, function(err, client) {
+ const client = configuration.newClient(url, options);
+ client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
var db = client.db(configuration.db);
- test.equal(null, err);
test.deepEqual({ level: 'majority' }, db.s.readConcern);
// Get a collection
@@ -354,13 +361,14 @@ describe('ReadConcern', function() {
// Get a new instance
var configuration = this.configuration;
var client = configuration.newClient(
- { w: 1, readConcern: { level: 'majority' } },
- { poolSize: 1 }
+ { w: 1 },
+ { poolSize: 1, readConcern: { level: 'majority' } }
);
client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
var db = client.db(configuration.db);
- test.equal(null, err);
test.deepEqual({ level: 'majority' }, db.s.readConcern);
// Get a collection
@@ -397,13 +405,14 @@ describe('ReadConcern', function() {
// Get a new instance
var configuration = this.configuration;
var client = configuration.newClient(
- { w: 1, readConcern: { level: 'majority' } },
- { poolSize: 1 }
+ { w: 1 },
+ { poolSize: 1, readConcern: { level: 'majority' } }
);
client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
var db = client.db(configuration.db);
- test.equal(null, err);
test.deepEqual({ level: 'majority' }, db.s.readConcern);
// Get a collection
@@ -449,13 +458,14 @@ describe('ReadConcern', function() {
// Get a new instance
var configuration = this.configuration;
var client = configuration.newClient(
- { w: 1, readConcern: { level: 'majority' } },
- { poolSize: 1 }
+ { w: 1 },
+ { poolSize: 1, readConcern: { level: 'majority' } }
);
client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
var db = client.db(configuration.db);
- test.equal(null, err);
test.deepEqual({ level: 'majority' }, db.s.readConcern);
// Get a collection
@@ -514,13 +524,14 @@ describe('ReadConcern', function() {
// Get a new instance
var configuration = this.configuration;
var client = configuration.newClient(
- { w: 1, readConcern: { level: 'majority' } },
- { poolSize: 1 }
+ { w: 1 },
+ { poolSize: 1, readConcern: { level: 'majority' } }
);
client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
var db = client.db(configuration.db);
- test.equal(null, err);
test.deepEqual({ level: 'majority' }, db.s.readConcern);
// Get the collection
@@ -577,13 +588,14 @@ describe('ReadConcern', function() {
// Get a new instance
var configuration = this.configuration;
var client = configuration.newClient(
- { w: 1, readConcern: { level: 'majority' } },
- { poolSize: 1 }
+ { w: 1 },
+ { poolSize: 1, readConcern: { level: 'majority' } }
);
client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
var db = client.db(configuration.db);
- test.equal(null, err);
test.deepEqual({ level: 'majority' }, db.s.readConcern);
// Get the collection
@@ -643,13 +655,14 @@ describe('ReadConcern', function() {
// Get a new instance
var configuration = this.configuration;
var client = configuration.newClient(
- { w: 1, readConcern: { level: 'majority' } },
- { poolSize: 1 }
+ { w: 1 },
+ { poolSize: 1, readConcern: { level: 'majority' } }
);
client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
var db = client.db(configuration.db);
- test.equal(null, err);
test.deepEqual({ level: 'majority' }, db.s.readConcern);
// Get the collection
@@ -696,7 +709,7 @@ describe('ReadConcern', function() {
});
it('Should set majority readConcern group command', {
- metadata: { requires: { topology: 'replicaset', mongodb: '>= 3.2.0' } },
+ metadata: { requires: { topology: 'replicaset', mongodb: '>=3.2.0 <=4.1.0' } },
test: function(done) {
var listener = require('../..').instrument(function(err) {
@@ -709,13 +722,14 @@ describe('ReadConcern', function() {
// Get a new instance
var configuration = this.configuration;
var client = configuration.newClient(
- { w: 1, readConcern: { level: 'majority' } },
- { poolSize: 1 }
+ { w: 1 },
+ { poolSize: 1, readConcern: { level: 'majority' } }
);
client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
var db = client.db(configuration.db);
- test.equal(null, err);
test.deepEqual({ level: 'majority' }, db.s.readConcern);
// Get the collection
@@ -768,7 +782,7 @@ describe('ReadConcern', function() {
});
it('Should set majority readConcern parallelCollectionScan command', {
- metadata: { requires: { topology: 'replicaset', mongodb: '>= 3.2.0' } },
+ metadata: { requires: { topology: 'replicaset', mongodb: '>= 3.2.0 <=4.1.0' } },
test: function(done) {
var listener = require('../..').instrument(function(err) {
@@ -781,13 +795,14 @@ describe('ReadConcern', function() {
// Get a new instance
var configuration = this.configuration;
var client = configuration.newClient(
- { w: 1, readConcern: { level: 'majority' } },
- { poolSize: 1 }
+ { w: 1 },
+ { poolSize: 1, readConcern: { level: 'majority' } }
);
client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
var db = client.db(configuration.db);
- test.equal(null, err);
test.deepEqual({ level: 'majority' }, db.s.readConcern);
// Get the collection
@@ -847,13 +862,14 @@ describe('ReadConcern', function() {
// Get a new instance
var configuration = this.configuration;
var client = configuration.newClient(
- { w: 1, readConcern: { level: 'majority' } },
- { poolSize: 1 }
+ { w: 1 },
+ { poolSize: 1, readConcern: { level: 'majority' } }
);
client.connect(function(err, client) {
+ expect(err).to.not.exist;
+
var db = client.db(configuration.db);
- test.equal(null, err);
test.deepEqual({ level: 'majority' }, db.s.readConcern);
// Get the collection
diff --git a/test/functional/reconnect_tests.js b/test/functional/reconnect_tests.js
index 1a53904a2b2..f07e427c5ea 100644
--- a/test/functional/reconnect_tests.js
+++ b/test/functional/reconnect_tests.js
@@ -54,52 +54,48 @@ describe('Reconnect', function() {
// The actual test we wish to run
test: function(done) {
- var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
+ const configuration = this.configuration;
+ const client = configuration.newClient('mongodb://localhost:27017/test', {
+ db: { native_parser: true, bufferMaxEntries: -1 },
+ server: {
+ poolSize: 20,
+ socketOptions: { autoReconnect: true, keepAlive: true, keepAliveInitialDelay: 50 },
+ reconnectTries: 1000,
+ reconnectInterval: 1000
+ }
+ });
- MongoClient.connect(
- 'mongodb://localhost:27017/test',
- {
- db: { native_parser: true, bufferMaxEntries: -1 },
- server: {
- poolSize: 20,
- socketOptions: { autoReconnect: true, keepAlive: true, keepAliveInitialDelay: 50 },
- reconnectTries: 1000,
- reconnectInterval: 1000
- }
- },
- function(err, client) {
- var db = client.db(configuration.db);
- var col = db.collection('t');
- var count = 1;
-
- var execute = function() {
- if (!done) {
- col.insertOne({ a: 1, count: count }, function(err) {
- test.equal(null, err);
- count = count + 1;
+ client.connect(function(err, client) {
+ var db = client.db(configuration.db);
+ var col = db.collection('t');
+ var count = 1;
- col.findOne({}, function(err) {
- test.equal(null, err);
- setTimeout(execute, 500);
- });
- });
- } else {
- col.insertOne({ a: 1, count: count }, function(err) {
+ var execute = function() {
+ if (!done) {
+ col.insertOne({ a: 1, count: count }, function(err) {
+ test.equal(null, err);
+ count = count + 1;
+
+ col.findOne({}, function(err) {
test.equal(null, err);
+ setTimeout(execute, 500);
+ });
+ });
+ } else {
+ col.insertOne({ a: 1, count: count }, function(err) {
+ test.equal(null, err);
- col.findOne({}, function(err) {
- test.equal(null, err);
- client.close();
- done();
- });
+ col.findOne({}, function(err) {
+ test.equal(null, err);
+ client.close();
+ done();
});
- }
- };
+ });
+ }
+ };
- setTimeout(execute, 500);
- }
- );
+ setTimeout(execute, 500);
+ });
var count = 2;
diff --git a/test/functional/replicaset_mock_tests.js b/test/functional/replicaset_mock_tests.js
index bf6b494319a..ef42f360767 100644
--- a/test/functional/replicaset_mock_tests.js
+++ b/test/functional/replicaset_mock_tests.js
@@ -62,9 +62,7 @@ describe('ReplSet (mocks)', function() {
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient,
- Logger = configuration.require.Logger;
-
+ var Logger = configuration.require.Logger;
var logger = Logger.currentLogger();
Logger.setLevel('warn');
Logger.setCurrentLogger(function(msg, state) {
@@ -74,10 +72,10 @@ describe('ReplSet (mocks)', function() {
);
});
- MongoClient.connect(`mongodb://${test.mongos1.uri()},${test.mongos2.uri()}/test`, function(
- err,
- client
- ) {
+ const client = configuration.newClient(
+ `mongodb://${test.mongos1.uri()},${test.mongos2.uri()}/test`
+ );
+ client.connect(function(err, client) {
Logger.setCurrentLogger(logger);
Logger.reset();
expect(err).to.not.exist;
@@ -99,9 +97,7 @@ describe('ReplSet (mocks)', function() {
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient,
- Logger = configuration.require.Logger;
-
+ var Logger = configuration.require.Logger;
var warnings = [];
var logger = Logger.currentLogger();
Logger.setLevel('warn');
@@ -110,10 +106,11 @@ describe('ReplSet (mocks)', function() {
warnings.push(state);
});
- MongoClient.connect(`mongodb://${test.mongos1.uri()},${test.mongos2.uri()}/test`, function(
- err,
- client
- ) {
+ const client = configuration.newClient(
+ `mongodb://${test.mongos1.uri()},${test.mongos2.uri()}/test`
+ );
+
+ client.connect(function(err, client) {
Logger.setCurrentLogger(logger);
Logger.reset();
@@ -155,19 +152,18 @@ describe('ReplSet (mocks)', function() {
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
+ const client = configuration.newClient(
+ `mongodb://${test.mongos1.uri()},${test.mongos2.uri()}/test?socketTimeoutMS=120000&connectTimeoutMS=15000`
+ );
- MongoClient.connect(
- `mongodb://${test.mongos1.uri()},${test.mongos2.uri()}/test?socketTimeoutMS=120000&connectTimeoutMS=15000`,
- function(err, client) {
- expect(err).to.not.exist;
- expect(client.topology.s.coreTopology.s.options.connectionTimeout).to.equal(15000);
- expect(client.topology.s.coreTopology.s.options.socketTimeout).to.equal(120000);
+ client.connect(function(err, client) {
+ expect(err).to.not.exist;
+ expect(client.topology.s.coreTopology.s.options.connectionTimeout).to.equal(15000);
+ expect(client.topology.s.coreTopology.s.options.socketTimeout).to.equal(120000);
- client.close();
- done();
- }
- );
+ client.close();
+ done();
+ });
}
});
});
diff --git a/test/functional/replset_connection_tests.js b/test/functional/replset_connection_tests.js
index a0ddfa30013..e05462ef1da 100644
--- a/test/functional/replset_connection_tests.js
+++ b/test/functional/replset_connection_tests.js
@@ -59,27 +59,17 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
// Accounting tests
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server('localhost', 28390),
- new Server('localhost', 28391),
- new Server('localhost', 28392)
- ],
- { rs_name: configuration.replicasetName }
+ var client = configuration.newClient(
+ 'mongodb://localhost:28390,localhost:28391,localhost:28392/test?replicaSet=rs',
+ { w: 0 }
);
-
- var client = new MongoClient(replSet, { w: 0 });
client.connect(function(err) {
test.ok(err != null);
@@ -102,10 +92,7 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
// Replset start port
@@ -115,17 +102,7 @@ describe.skip('ReplSet (Connection)', function() {
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName }
- );
-
- var client = new MongoClient(replSet, { w: 0 });
+ const client = configuration.newClient({}, { w: 0 });
client.connect(function(err, client) {
test.equal(null, err);
client.close();
@@ -145,10 +122,7 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
// Replset start port
@@ -158,17 +132,7 @@ describe.skip('ReplSet (Connection)', function() {
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- {}
- );
-
- var client = new MongoClient(replSet, { w: 0 });
+ const client = configuration.newClient({}, { w: 0 });
client.connect(function(err, client) {
test.equal(null, err);
client.close();
@@ -186,30 +150,17 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
// Accounting tests
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- {
- socketOptions: { keepAlive: true, keepAliveInitialDelay: 100 },
- rs_name: configuration.replicasetName
- }
+ const client = configuration.newClient(
+ {},
+ { w: 0, keepAlive: true, keepAliveInitialDelay: 100 }
);
- var client = new MongoClient(replSet, { w: 0 });
client.connect(function(err, client) {
test.equal(null, err);
// Get a connection
@@ -228,27 +179,15 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
// Accounting tests
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName }
- );
-
- new MongoClient(replSet, { w: 0 }).connect(function(err, client) {
+ const client = configuration.newClient({}, { w: 0 });
+ client.connect(function(err, client) {
test.equal(null, err);
var dbCloseCount = 0;
client.on('close', function() {
@@ -278,27 +217,15 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
// Accounting tests
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName }
- );
-
- new MongoClient(replSet, { w: 0 }).connect(function(err, client) {
+ const client = configuration.newClient({}, { w: 0 });
+ client.connect(function(err, client) {
test.equal(null, err);
var dbCloseCount = 0;
client.on('close', function() {
@@ -328,21 +255,7 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName + '-wrong' }
- );
-
- var client = new MongoClient(replSet, { w: 0 });
+ const client = configuration.newClient({}, { rs_name: 'wrong' });
client.connect(function(err) {
test.notEqual(null, err);
done();
@@ -352,26 +265,12 @@ describe.skip('ReplSet (Connection)', function() {
var retries = 120;
var ensureConnection = function(configuration, numberOfTries, callback) {
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName, socketOptions: { connectTimeoutMS: 1000 } }
- );
-
if (numberOfTries <= 0) {
return callback(new Error('could not connect correctly'), null);
}
// Open the db
- var client = new MongoClient(replSet, { w: 0 });
+ const client = configuration.newClient({}, { w: 0, connectTimeoutMS: 1000 });
client.connect(function(err, client) {
if (err != null) {
// Wait for a sec and retry
@@ -392,26 +291,13 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
// Accounting tests
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName }
- );
-
// // Step down primary server
configuration.manager
.stepDownPrimary(false, { stepDownSecs: 1, force: true })
@@ -420,7 +306,8 @@ describe.skip('ReplSet (Connection)', function() {
ensureConnection(configuration, retries, function(err) {
test.equal(null, err);
- new MongoClient(replSet, { w: 0 }).connect(function(err, client) {
+ const client = configuration.newClient({}, { w: 0 });
+ client.connect(function(err, client) {
test.ok(err == null);
// Get a connection
var connection = client.topology.connections()[0];
@@ -441,10 +328,7 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
// Replset start port
@@ -454,21 +338,12 @@ describe.skip('ReplSet (Connection)', function() {
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName }
- );
-
// Wait for new primary to pop up
ensureConnection(configuration, retries, function(err) {
test.equal(null, err);
- new MongoClient(replSet, { w: 0 }).connect(function(err, client) {
+ const client = configuration.newClient({}, { w: 0 });
+ client.connect(function(err, client) {
test.ok(err == null);
// Get a connection
var connection = client.topology.connections()[0];
@@ -490,10 +365,7 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
// Replset start port
@@ -503,21 +375,12 @@ describe.skip('ReplSet (Connection)', function() {
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName }
- );
-
// Wait for new primary to pop up
ensureConnection(configuration, retries, function(err) {
test.equal(null, err);
- new MongoClient(replSet, { w: 0 }).connect(function(err, client) {
+ const client = configuration.newClient({}, { w: 0 });
+ client.connect(function(err, client) {
test.ok(err == null);
// Get a connection
var connection = client.topology.connections()[0];
@@ -539,10 +402,7 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
var openCalled = false;
@@ -550,17 +410,7 @@ describe.skip('ReplSet (Connection)', function() {
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName }
- );
-
- var client = new MongoClient(replSet, { w: 0 });
+ const client = configuration.newClient({}, { w: 0 });
client.once('open', function(_err) {
test.equal(null, _err);
openCalled = true;
@@ -595,34 +445,23 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
// Accounting tests
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
+ const client = configuration.newClient(
+ {},
{
- socketOptions: {
- connectTimeoutMS: 1000,
- socketTimeoutMS: 3000,
- noDelay: false
- },
- rs_name: configuration.replicasetName
+ w: 0,
+ connectTimeoutMS: 1000,
+ socketTimeoutMS: 3000,
+ noDelay: false
}
);
- var client = new MongoClient(replSet, { w: 0 });
client.connect(function(err, client) {
test.equal(null, err);
// Get a connection
@@ -651,28 +490,15 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
// Accounting tests
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName }
- );
-
// Connect to the replicaset
- var client = new MongoClient(replSet, { w: 0 });
+ const client = configuration.newClient({}, { w: 0 });
client.connect(function(err, client) {
// Kill the secondary
// Replset start port
@@ -694,28 +520,15 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
// Accounting tests
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName }
- );
-
// Connect to the replicaset
- var client = new MongoClient(replSet, { w: 1, bufferMaxEntries: 0 });
+ const client = configuration.newClient({}, { w: 1, bufferMaxEntries: 0 });
client.connect(function(err, client) {
var db = client.db(configuration.db);
@@ -752,11 +565,9 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
- var configuration = this.configuration;
- var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- CoreServer = configuration.require.CoreServer,
- CoreConnection = configuration.require.CoreConnection;
+ const configuration = this.configuration;
+ const CoreServer = configuration.require.CoreServer;
+ const CoreConnection = configuration.require.CoreConnection;
var url = f(
'mongodb://localhost:%s,localhost:%s,localhost:%s/integration_test_?replicaSet=%s',
@@ -770,43 +581,41 @@ describe.skip('ReplSet (Connection)', function() {
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- MongoClient.connect(
- url,
- {
- replSet: {
- haInterval: 500,
- socketOptions: {
- connectTimeoutMS: 500
- }
+ const client = configuration.newClient(url, {
+ replSet: {
+ haInterval: 500,
+ socketOptions: {
+ connectTimeoutMS: 500
}
- },
- function(err, client) {
- test.equal(null, err);
- var db = client.db(configuration.db);
+ }
+ });
- test.equal(500, client.topology.connections()[0].connectionTimeout);
- test.equal(360000, client.topology.connections()[0].socketTimeout);
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
- db
- .collection('replicaset_mongo_client_collection')
- .update({ a: 1 }, { b: 1 }, { upsert: true }, function(err, result) {
- test.equal(null, err);
- test.equal(1, result.result.n);
+ test.equal(500, client.topology.connections()[0].connectionTimeout);
+ test.equal(360000, client.topology.connections()[0].socketTimeout);
- client.close();
+ db
+ .collection('replicaset_mongo_client_collection')
+ .update({ a: 1 }, { b: 1 }, { upsert: true }, function(err, result) {
+ test.equal(null, err);
+ test.equal(1, result.result.n);
- setTimeout(function() {
- // Connection account tests
- test.equal(0, Object.keys(CoreConnection.connections()).length);
- test.equal(0, Object.keys(CoreServer.servers()).length);
- CoreServer.disableServerAccounting();
- CoreConnection.disableConnectionAccounting();
+ client.close();
- done();
- }, 200);
- });
- }
- );
+ setTimeout(function() {
+ // Connection account tests
+ test.equal(0, Object.keys(CoreConnection.connections()).length);
+ test.equal(0, Object.keys(CoreServer.servers()).length);
+ CoreServer.disableServerAccounting();
+ CoreConnection.disableConnectionAccounting();
+
+ done();
+ }, 200);
+ });
+ });
}
});
@@ -818,11 +627,9 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
- var configuration = this.configuration;
- var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- CoreServer = configuration.require.CoreServer,
- CoreConnection = configuration.require.CoreConnection;
+ const configuration = this.configuration;
+ const CoreServer = configuration.require.CoreServer;
+ const CoreConnection = configuration.require.CoreConnection;
// Create url
var url = f(
@@ -838,7 +645,8 @@ describe.skip('ReplSet (Connection)', function() {
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
var db = client.db(configuration.db);
db.collection('test_collection').insert({ a: 1 }, function(err) {
@@ -869,9 +677,6 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var mongo = configuration.require,
- MongoClient = mongo.MongoClient;
-
var url = f(
'mongodb://%s,%s/%s?replicaSet=%s&readPreference=%s',
'nolocalhost:30000',
@@ -881,7 +686,8 @@ describe.skip('ReplSet (Connection)', function() {
'primary'
);
- MongoClient.connect(url, function(err) {
+ const client = configuration.newClient(url);
+ client.connect(function(err) {
test.ok(err != null);
done();
});
@@ -900,7 +706,6 @@ describe.skip('ReplSet (Connection)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
GridStore = mongo.GridStore,
ObjectID = mongo.ObjectID,
CoreServer = configuration.require.CoreServer,
@@ -920,7 +725,8 @@ describe.skip('ReplSet (Connection)', function() {
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
var db = client.db(configuration.db);
var gs = new GridStore(db, new ObjectID());
test.equal('majority', gs.writeConcern.w);
@@ -950,28 +756,15 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
// Accounting tests
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName, socketTimeoutMS: 5000 }
- );
-
// Open the db connection
- var client = new MongoClient(replSet, { w: 1 });
+ const client = configuration.newClient({}, { w: 1, socketTimeoutMS: 5000 });
client.on('fullsetup', function(client) {
var db = client.db(configuration.db);
db.command({ ismaster: true }, function(err, result) {
@@ -984,7 +777,7 @@ describe.skip('ReplSet (Connection)', function() {
// Get the arbiters
var host = secondaries[0].split(':')[0];
var port = parseInt(secondaries[0].split(':')[1], 10);
- var client1 = new MongoClient(new Server(host, port), { w: 1 });
+ var client1 = configuration.newClient({}, { host, port, w: 1 });
var finished = false;
client.topology.on('left', function(t) {
@@ -1039,7 +832,6 @@ describe.skip('ReplSet (Connection)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
Server = mongo.Server,
CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
@@ -1050,7 +842,8 @@ describe.skip('ReplSet (Connection)', function() {
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
test.equal(null, err);
test.ok(client.topology instanceof Server);
client.close();
@@ -1097,10 +890,7 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var mongo = configuration.require,
- Server = mongo.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
// Replset start port
@@ -1113,7 +903,7 @@ describe.skip('ReplSet (Connection)', function() {
var host = managers[0].host;
var port = managers[0].port;
- var client = new MongoClient(new Server(host, port), { w: 1 });
+ var client = configuration.newClient({}, { host, port, w: 1 });
client.connect(function(err, client) {
var db = client.db(configuration.db);
test.equal(null, err);
@@ -1139,10 +929,7 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var mongo = configuration.require,
- Server = mongo.Server,
- MongoClient = configuration.require.MongoClient,
- CoreServer = configuration.require.CoreServer,
+ var CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
configuration.manager.secondaries().then(function(managers) {
@@ -1154,7 +941,7 @@ describe.skip('ReplSet (Connection)', function() {
var host = managers[0].host;
var port = managers[0].port;
- var client = new MongoClient(new Server(host, port), { w: 1 });
+ var client = configuration.newClient({}, { host, port, w: 1 });
client.connect(function(err, client) {
var db = client.db(configuration.db);
test.equal(null, err);
@@ -1180,7 +967,6 @@ describe.skip('ReplSet (Connection)', function() {
var configuration = this.configuration;
var ReplSet = configuration.require.ReplSet,
ServerManager = require('mongodb-topology-manager').Server,
- MongoClient = configuration.require.MongoClient,
CoreServer = configuration.require.CoreServer,
CoreConnection = configuration.require.CoreConnection;
@@ -1213,7 +999,8 @@ describe.skip('ReplSet (Connection)', function() {
CoreConnection.enableConnectionAccounting();
// Attempt to connect using MongoClient uri
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
test.equal(null, err);
test.ok(client.topology instanceof ReplSet);
client.close();
@@ -1239,13 +1026,10 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
- var configuration = this.configuration;
- var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- CoreServer = configuration.require.CoreServer,
- CoreConnection = configuration.require.CoreConnection;
-
- var url = f(
+ const configuration = this.configuration;
+ const CoreServer = configuration.require.CoreServer;
+ const CoreConnection = configuration.require.CoreConnection;
+ const url = f(
'mongodb://localhost:%s,localhost:%s,localhost:%s/integration_test_?replicaSet=%s',
configuration.port,
configuration.port + 1,
@@ -1257,33 +1041,28 @@ describe.skip('ReplSet (Connection)', function() {
CoreServer.enableServerAccounting();
CoreConnection.enableConnectionAccounting();
- MongoClient.connect(
- url,
- {
- reconnectTries: 10
- },
- function(err, client) {
- test.equal(null, err);
+ const client = configuration.newClient(url, { reconnectTries: 10 });
+ client.connect(function(err, client) {
+ test.equal(null, err);
- var servers = client.topology.s.coreTopology.s.replicaSetState.allServers();
- for (var i = 0; i < servers.length; i++) {
- test.equal(10, servers[i].s.pool.options.reconnectTries);
- }
+ var servers = client.topology.s.coreTopology.s.replicaSetState.allServers();
+ for (var i = 0; i < servers.length; i++) {
+ test.equal(10, servers[i].s.pool.options.reconnectTries);
+ }
- // Destroy the pool
- client.close();
+ // Destroy the pool
+ client.close();
- setTimeout(function() {
- // Connection account tests
- test.equal(0, Object.keys(CoreConnection.connections()).length);
- test.equal(0, Object.keys(CoreServer.servers()).length);
- CoreServer.disableServerAccounting();
- CoreConnection.disableConnectionAccounting();
+ setTimeout(function() {
+ // Connection account tests
+ test.equal(0, Object.keys(CoreConnection.connections()).length);
+ test.equal(0, Object.keys(CoreServer.servers()).length);
+ CoreServer.disableServerAccounting();
+ CoreConnection.disableConnectionAccounting();
- done();
- }, 200);
- }
- );
+ done();
+ }, 200);
+ });
}
});
@@ -1298,9 +1077,6 @@ describe.skip('ReplSet (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var mongo = configuration.require,
- MongoClient = mongo.MongoClient;
-
var url = f(
'mongodb://me:secret@localhost:%s,localhost:%s/integration_test_?replicaSet=%s',
configuration.port + 1,
@@ -1308,22 +1084,20 @@ describe.skip('ReplSet (Connection)', function() {
configuration.replicasetName
);
- MongoClient.connect(
- url,
- {
- connectWithNoPrimary: true,
- bufferMaxEntries: 0
- },
- function(err) {
- test.ok(err);
- test.ok(
- err.message.indexOf(
- 'no connection available for operation and number of stored operation'
- ) === -1
- );
- done();
- }
- );
+ const client = configuration.newClient(url, {
+ connectWithNoPrimary: true,
+ bufferMaxEntries: 0
+ });
+
+ client.connect(function(err) {
+ test.ok(err);
+ test.ok(
+ err.message.indexOf(
+ 'no connection available for operation and number of stored operation'
+ ) === -1
+ );
+ done();
+ });
}
}
);
diff --git a/test/functional/replset_failover_tests.js b/test/functional/replset_failover_tests.js
index 23f937397c0..dc0413edbd3 100644
--- a/test/functional/replset_failover_tests.js
+++ b/test/functional/replset_failover_tests.js
@@ -271,24 +271,9 @@ describe.skip('ReplSet (Failover)', function() {
test: function(done) {
var configuration = this.configuration;
- var ReplSet = configuration.require.ReplSet,
- MongoClient = configuration.require.MongoClient,
- Server = configuration.require.Server;
-
var manager = configuration.manager;
+ const client = configuration.newClient({}, { w: 1, tag: 'Application', poolSize: 1 });
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName, tag: 'Application', poolSize: 1 }
- );
-
- // Get a new instance
- var client = new MongoClient(replSet, { w: 1 });
client.on('fullsetup', function(client) {
var db = client.db(configuration.db);
// Drop collection on replicaset
@@ -398,27 +383,18 @@ describe.skip('ReplSet (Failover)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- ReadPreference = mongo.ReadPreference,
- MongoClient = configuration.require.MongoClient,
- ReplSet = mongo.ReplSet,
- Server = mongo.Server;
-
+ ReadPreference = mongo.ReadPreference;
var manager = configuration.manager;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName, tag: 'Application', poolSize: 1 }
+ var client = configuration.newClient(
+ {},
+ {
+ w: 0,
+ readPreference: ReadPreference.PRIMARY_PREFERRED,
+ tag: 'Application',
+ poolSize: 1
+ }
);
- var client = new MongoClient(replSet, {
- w: 0,
- readPreference: ReadPreference.PRIMARY_PREFERRED
- });
client.on('fullsetup', function(client) {
var p_db = client.db(configuration.db);
var collection = p_db.collection('notempty');
@@ -467,7 +443,6 @@ describe.skip('ReplSet (Failover)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
ReadPreference = mongo.ReadPreference;
var manager = configuration.manager;
@@ -480,62 +455,58 @@ describe.skip('ReplSet (Failover)', function() {
);
// Connect using the MongoClient
- MongoClient.connect(
- url,
- {
- replSet: {
- //set replset check interval to be much smaller than our querying interval
- haInterval: 50,
- socketOptions: {
- connectTimeoutMS: 500
- }
+ const client = configuration.newClient(url, {
+ replSet: {
+ //set replset check interval to be much smaller than our querying interval
+ haInterval: 50,
+ socketOptions: {
+ connectTimeoutMS: 500
}
- },
- function(err, client) {
+ }
+ });
+
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ var db = client.db(configuration.db);
+
+ db.collection('replicaset_readpref_test').insert({ testfield: 123 }, function(err) {
test.equal(null, err);
- var db = client.db(configuration.db);
- db.collection('replicaset_readpref_test').insert({ testfield: 123 }, function(err) {
+ db.collection('replicaset_readpref_test').findOne({}, function(err, result) {
test.equal(null, err);
+ test.equal(result.testfield, 123);
- db.collection('replicaset_readpref_test').findOne({}, function(err, result) {
- test.equal(null, err);
- test.equal(result.testfield, 123);
-
- // wait five seconds, then kill 2 of the 3 nodes that are up.
- setTimeout(function() {
- manager.secondaries().then(function(secondaries) {
- secondaries[0].stop().then(function() {
- // Shut down primary server
- manager.primary().then(function(primary) {
- // Stop the primary
- primary.stop().then(function() {});
- });
+ // wait five seconds, then kill 2 of the 3 nodes that are up.
+ setTimeout(function() {
+ manager.secondaries().then(function(secondaries) {
+ secondaries[0].stop().then(function() {
+ // Shut down primary server
+ manager.primary().then(function(primary) {
+ // Stop the primary
+ primary.stop().then(function() {});
});
});
- }, 5000);
+ });
+ }, 5000);
- // we should be able to continue querying for a full minute
- var counter = 0;
- var intervalid = setInterval(function() {
- if (counter++ >= 30) {
- clearInterval(intervalid);
- client.close();
- return restartAndDone(configuration, done);
- }
-
- db
- .collection('replicaset_readpref_test')
- .findOne({}, { readPreference: ReadPreference.SECONDARY_PREFERRED }, function(
- err
- ) {
- test.equal(null, err);
- });
- }, 1000);
- });
+ // we should be able to continue querying for a full minute
+ var counter = 0;
+ var intervalid = setInterval(function() {
+ if (counter++ >= 30) {
+ clearInterval(intervalid);
+ client.close();
+ return restartAndDone(configuration, done);
+ }
+
+ db
+ .collection('replicaset_readpref_test')
+ .findOne({}, { readPreference: ReadPreference.SECONDARY_PREFERRED }, function(err) {
+ test.equal(null, err);
+ });
+ }, 1000);
});
- }
- );
+ });
+ });
}
});
@@ -550,7 +521,6 @@ describe.skip('ReplSet (Failover)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
ReadPreference = mongo.ReadPreference;
var manager = configuration.manager;
@@ -563,7 +533,8 @@ describe.skip('ReplSet (Failover)', function() {
configuration.replicasetName
);
- MongoClient.connect(url, { readPreference: ReadPreference.NEAREST }, function(err, client) {
+ const client = configuration.newClient(url, { readPreference: ReadPreference.NEAREST });
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
diff --git a/test/functional/replset_operations_tests.js b/test/functional/replset_operations_tests.js
index 92bb61629b6..98c3113610e 100644
--- a/test/functional/replset_operations_tests.js
+++ b/test/functional/replset_operations_tests.js
@@ -36,8 +36,6 @@ describe('ReplSet (Operations)', function() {
// The actual test we wish to run
test: function(done) {
const configuration = this.configuration;
- const mongo = configuration.require,
- MongoClient = mongo.MongoClient;
// Create url
const url = format(
@@ -93,7 +91,8 @@ describe('ReplSet (Operations)', function() {
});
}
- MongoClient.connect(url, (err, client) => {
+ const client = configuration.newClient(url);
+ client.connect((err, client) => {
expect(err).to.not.exist;
const db = client.db(configuration.db);
@@ -122,8 +121,6 @@ describe('ReplSet (Operations)', function() {
// The actual test we wish to run
test: function(done) {
const configuration = this.configuration;
- const mongo = configuration.require,
- MongoClient = mongo.MongoClient;
// Create url
const url = format(
@@ -192,7 +189,8 @@ describe('ReplSet (Operations)', function() {
});
}
- MongoClient.connect(url, (err, client) => {
+ const client = configuration.newClient(url);
+ client.connect((err, client) => {
expect(err).to.not.exist;
const db = client.db(configuration.db);
@@ -226,8 +224,6 @@ describe('ReplSet (Operations)', function() {
// The actual test we wish to run
test: function(done) {
const configuration = this.configuration;
- const mongo = configuration.require,
- MongoClient = mongo.MongoClient;
// Create url
const url = format(
@@ -288,7 +284,8 @@ describe('ReplSet (Operations)', function() {
});
}
- MongoClient.connect(url, (err, client) => {
+ const client = configuration.newClient(url);
+ client.connect((err, client) => {
expect(err).to.not.exist;
const db = client.db(configuration.db);
@@ -317,8 +314,6 @@ describe('ReplSet (Operations)', function() {
// The actual test we wish to run
test: function(done) {
const configuration = this.configuration;
- const mongo = configuration.require,
- MongoClient = mongo.MongoClient;
// Create url
const url = format(
@@ -395,7 +390,8 @@ describe('ReplSet (Operations)', function() {
});
}
- MongoClient.connect(url, (err, client) => {
+ const client = configuration.newClient(url);
+ client.connect((err, client) => {
expect(err).to.not.exist;
const db = client.db(configuration.db);
@@ -416,7 +412,6 @@ describe('ReplSet (Operations)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
ReadPreference = mongo.ReadPreference;
// Create url
@@ -429,7 +424,8 @@ describe('ReplSet (Operations)', function() {
'primary'
);
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -474,12 +470,11 @@ describe('ReplSet (Operations)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var mongo = configuration.require,
- MongoClient = mongo.MongoClient;
-
- MongoClient.connect(
+ const client = configuration.newClient(
'mongodb://localhost:31001/integration_test_?replicaSet=rs&readPreference=primaryPreferred'
- ).then(function(client) {
+ );
+
+ client.connect().then(function(client) {
var db = client.db(configuration.db);
var collection = db.collection('ensureIndexWithPrimaryPreferred');
collection.ensureIndex({ a: 1 }, function(err) {
@@ -500,7 +495,6 @@ describe('ReplSet (Operations)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
ReadPreference = mongo.ReadPreference;
// Create url
@@ -515,7 +509,8 @@ describe('ReplSet (Operations)', function() {
var manager = configuration.manager;
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -567,7 +562,6 @@ describe('ReplSet (Operations)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
ReadPreference = mongo.ReadPreference;
// Create url
@@ -580,7 +574,8 @@ describe('ReplSet (Operations)', function() {
'secondary'
);
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
diff --git a/test/functional/replset_read_preference_tests.js b/test/functional/replset_read_preference_tests.js
index f397f0bcd54..98a9a755065 100644
--- a/test/functional/replset_read_preference_tests.js
+++ b/test/functional/replset_read_preference_tests.js
@@ -30,23 +30,14 @@ describe.skip('ReplSet (ReadPreference)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- ReadPreference = mongo.ReadPreference,
- ReplSet = mongo.ReplSet,
- Server = mongo.Server;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { secondaryAcceptableLatencyMS: 5, rs_name: configuration.replicasetName, debug: true }
- );
+ ReadPreference = mongo.ReadPreference;
// Open the database
- var client = new MongoClient(replSet, { w: 1 });
+ const client = configuration.newClient(
+ {},
+ { secondaryAcceptableLatencyMS: 5, debug: true, w: 1 }
+ );
+
// Trigger test once whole set is up
client.on('fullsetup', function(client) {
var db = client.db(configuration.db);
@@ -171,27 +162,14 @@ describe.skip('ReplSet (ReadPreference)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- ReadPreference = mongo.ReadPreference,
- ReplSet = mongo.ReplSet,
- Server = mongo.Server;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- {
- readPreference: ReadPreference.NEAREST,
- rs_name: configuration.replicasetName,
- debug: true
- }
- );
+ ReadPreference = mongo.ReadPreference;
// Open the database
- var client = new MongoClient(replSet, { w: 1, readPreference: ReadPreference.NEAREST });
+ const client = configuration.newClient(
+ {},
+ { w: 1, readPreference: ReadPreference.NEAREST, debug: true }
+ );
+
client.on('fullsetup', function() {
var db = client.db(configuration.db);
// Servers viewed
@@ -244,23 +222,14 @@ describe.skip('ReplSet (ReadPreference)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- ReadPreference = mongo.ReadPreference,
- ReplSet = mongo.ReplSet,
- Server = mongo.Server;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName, debug: true }
- );
+ ReadPreference = mongo.ReadPreference;
// Open the database
- var client = new MongoClient(replSet, { w: 1, readPreference: ReadPreference.NEAREST });
+ var client = configuration.newClient(
+ {},
+ { w: 1, readPreference: ReadPreference.NEAREST, debug: true }
+ );
+
client.on('fullsetup', function() {
var db = client.db(configuration.db);
// Servers viewed
@@ -328,29 +297,20 @@ describe.skip('ReplSet (ReadPreference)', function() {
var configuration = this.configuration;
var GridStore = configuration.require.GridStore,
ObjectID = configuration.require.ObjectID,
- MongoClient = configuration.require.MongoClient,
- ReadPreference = configuration.require.ReadPreference,
- ReplSet = configuration.require.ReplSet,
- Server = configuration.require.Server;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
+ ReadPreference = configuration.require.ReadPreference;
+
+ // Create an id
+ var id = new ObjectID();
+ // Open the database
+ var client = configuration.newClient(
+ {},
{
+ w: 1,
readPreference: ReadPreference.NEAREST,
- rs_name: configuration.replicasetName,
debug: true
}
);
- // Create an id
- var id = new ObjectID();
- // Open the database
- var client = new MongoClient(replSet, { w: 1 });
client.on('fullsetup', function() {
var db = client.db(configuration.db);
@@ -414,23 +374,14 @@ describe.skip('ReplSet (ReadPreference)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- ReadPreference = mongo.ReadPreference,
- ReplSet = mongo.ReplSet,
- Server = mongo.Server;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName, debug: true }
- );
+ ReadPreference = mongo.ReadPreference;
// Create db instance
- var client = new MongoClient(replSet, { w: 0, readPreference: ReadPreference.PRIMARY });
+ var client = configuration.newClient(
+ {},
+ { w: 0, readPreference: ReadPreference.PRIMARY, debug: true }
+ );
+
// Logger.setLevel('info');
// Trigger test once whole set is up
client.on('fullsetup', function(client) {
@@ -472,23 +423,10 @@ describe.skip('ReplSet (ReadPreference)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- ReadPreference = mongo.ReadPreference,
- ReplSet = mongo.ReplSet,
- Server = mongo.Server;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName, debug: true }
- );
+ ReadPreference = mongo.ReadPreference;
// Create db instance
- var client = new MongoClient(replSet, { w: 0 });
+ var client = configuration.newClient({}, { w: 0, debug: true });
// Connect to the db
client.on('fullsetup', function(client) {
var db = client.db(configuration.db);
@@ -535,23 +473,10 @@ describe.skip('ReplSet (ReadPreference)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- ReadPreference = mongo.ReadPreference,
- ReplSet = mongo.ReplSet,
- Server = mongo.Server;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName, debug: true }
- );
+ ReadPreference = mongo.ReadPreference;
// Create db instance
- var client = new MongoClient(replSet, { w: 0 });
+ var client = configuration.newClient({}, { w: 0, debug: true });
// Connect to the db
client.on('fullsetup', function() {
var db = client.db(configuration.db);
@@ -602,23 +527,10 @@ describe.skip('ReplSet (ReadPreference)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- ReadPreference = mongo.ReadPreference,
- ReplSet = mongo.ReplSet,
- Server = mongo.Server;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName, debug: true }
- );
+ ReadPreference = mongo.ReadPreference;
// Create db instance
- var client = new MongoClient(replSet, { w: 0 });
+ var client = configuration.newClient({}, { w: 0, debug: true });
// Connect to the db
client.on('fullsetup', function() {
var db = client.db(configuration.db);
@@ -665,23 +577,9 @@ describe.skip('ReplSet (ReadPreference)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- ReadPreference = mongo.ReadPreference,
- ReplSet = mongo.ReplSet,
- Server = mongo.Server;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName, debug: true }
- );
+ ReadPreference = mongo.ReadPreference;
- // Create db instance
- var client = new MongoClient(replSet, { w: 0 });
+ const client = configuration.newClient({}, { w: 0, debug: true });
// Connect to the db
client.connect(function(err, client) {
var db = client.db(configuration.db);
@@ -724,26 +622,13 @@ describe.skip('ReplSet (ReadPreference)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- ReadPreference = mongo.ReadPreference,
- ReplSet = mongo.ReplSet,
- Server = mongo.Server;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName, debug: true }
+ ReadPreference = mongo.ReadPreference;
+
+ const client = configuration.newClient(
+ {},
+ { w: 0, debug: true, readPreference: new ReadPreference(ReadPreference.SECONDARY) }
);
- // Create db instance
- var client = new MongoClient(replSet, {
- w: 0,
- readPreference: new ReadPreference(ReadPreference.SECONDARY)
- });
// Connect to the db
client.on('fullsetup', function() {
var db = client.db(configuration.db);
@@ -787,23 +672,10 @@ describe.skip('ReplSet (ReadPreference)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- ReadPreference = mongo.ReadPreference,
- ReplSet = mongo.ReplSet,
- Server = mongo.Server;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName, debug: true, haInterval: 100 }
- );
+ ReadPreference = mongo.ReadPreference;
+
+ const client = configuration.newClient({}, { w: 0, debug: true, haInterval: 100 });
- // Create db instance
- var client = new MongoClient(replSet, { w: 0 });
// Connect to the db
client.on('fullsetup', function(client) {
var db = client.db(configuration.db);
@@ -849,26 +721,18 @@ describe.skip('ReplSet (ReadPreference)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- ReadPreference = mongo.ReadPreference,
- ReplSet = mongo.ReplSet,
- Server = mongo.Server;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName, debug: true }
- );
+ ReadPreference = mongo.ReadPreference;
// Open the database
- var client = new MongoClient(replSet, {
- w: 0,
- readPreference: new ReadPreference(ReadPreference.SECONDARY, { loc: 'ny' })
- });
+ const client = configuration.newClient(
+ {},
+ {
+ w: 0,
+ debug: true,
+ readPreference: new ReadPreference(ReadPreference.SECONDARY, { loc: 'ny' })
+ }
+ );
+
// Trigger test once whole set is up
client.on('fullsetup', function() {
client.topology.replset.once('pickedServer', function(readPreference) {
@@ -903,26 +767,18 @@ describe.skip('ReplSet (ReadPreference)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- ReadPreference = mongo.ReadPreference,
- ReplSet = mongo.ReplSet,
- Server = mongo.Server;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName, debug: true }
- );
+ ReadPreference = mongo.ReadPreference;
// Open the database
- var client = new MongoClient(replSet, {
- w: 1,
- readPreference: new ReadPreference(ReadPreference.NEAREST, { loc: 'ny' })
- });
+ const client = configuration(
+ {},
+ {
+ w: 1,
+ debug: true,
+ readPreference: new ReadPreference(ReadPreference.NEAREST, { loc: 'ny' })
+ }
+ );
+
var success = false;
// Trigger test once whole set is up
client.on('fullsetup', function(client) {
@@ -960,26 +816,17 @@ describe.skip('ReplSet (ReadPreference)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- ReadPreference = mongo.ReadPreference,
- ReplSet = mongo.ReplSet,
- Server = mongo.Server;
-
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- { rs_name: configuration.replicasetName, debug: true }
- );
+ ReadPreference = mongo.ReadPreference;
// Open the database
- var client = new MongoClient(replSet, {
- w: 0,
- readPreference: new ReadPreference(ReadPreference.SECONDARY_PREFERRED)
- });
+ const client = configuration.newClient(
+ {},
+ {
+ w: 0,
+ debug: true,
+ readPreference: new ReadPreference(ReadPreference.SECONDARY_PREFERRED)
+ }
+ );
// Trigger test once whole set is up
client.on('fullsetup', function(client) {
@@ -1007,27 +854,17 @@ describe.skip('ReplSet (ReadPreference)', function() {
test: function(done) {
var configuration = this.configuration;
var mongo = configuration.require,
- MongoClient = mongo.MongoClient,
- ReplSet = mongo.ReplSet,
Server = mongo.Server,
ReadPreference = mongo.ReadPreference;
- // Replica configuration
- var replSet = new ReplSet(
- [
- new Server(configuration.host, configuration.port),
- new Server(configuration.host, configuration.port + 1),
- new Server(configuration.host, configuration.port + 2)
- ],
- {
- readPreference: ReadPreference.NEAREST,
- rs_name: configuration.replicasetName,
- debug: true
- }
- );
-
// Open the database
- var client = new MongoClient(replSet, { w: 'majority', wtimeout: 10000 });
+ const client = configuration.newClient({
+ w: 'majority',
+ wtimeout: 10000,
+ debug: true,
+ readPreference: ReadPreference.NEAREST
+ });
+
client.on('fullsetup', function(client) {
var db = client.db(configuration.db);
@@ -1047,16 +884,17 @@ describe.skip('ReplSet (ReadPreference)', function() {
);
// Connect using the MongoClient
- MongoClient.connect(url, function(err, client) {
+ const client2 = configuration.newClient(url);
+ client2.connect(url, function(err, client2) {
test.equal(null, err);
- var db = client.db(configuration.db);
- test.ok(client.topology instanceof Server);
+ var db = client2.db(configuration.db);
+ test.ok(client2.topology instanceof Server);
db.collection('direct_secondary_read_test').count(function(err, n) {
test.equal(null, err);
test.ok(n > 0);
- client.close();
+ client2.close();
done();
});
});
@@ -1089,7 +927,8 @@ describe.skip('ReplSet (ReadPreference)', function() {
var url = format('mongodb://localhost:%s/integration_test_?slaveOk=true', configuration.port);
// Connect using the MongoClient
- MongoClient.connect(url, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
test.equal(null, err);
test.ok(client != null);
diff --git a/test/functional/retryable_writes_tests.js b/test/functional/retryable_writes_tests.js
index f37d9af946e..24fc4da2db3 100644
--- a/test/functional/retryable_writes_tests.js
+++ b/test/functional/retryable_writes_tests.js
@@ -57,7 +57,6 @@ function loadTestFiles() {
}
function executeScenarioSetup(scenario, test, config, ctx) {
- const MongoClient = config.require.MongoClient;
const url = config.url();
const options = Object.assign({}, test.clientOptions, {
haInterval: 100,
@@ -67,7 +66,9 @@ function executeScenarioSetup(scenario, test, config, ctx) {
ctx.failPointName = test.failPoint && test.failPoint.configureFailPoint;
- return MongoClient.connect(url, options)
+ const client = config.newClient(url, options);
+ return client
+ .connect()
.then(client => (ctx.client = client))
.then(() => (ctx.db = ctx.client.db(config.db)))
.then(
diff --git a/test/functional/scram_sha_256_tests.js b/test/functional/scram_sha_256_tests.js
index 02a2eb6c168..5ed6e39c7cc 100644
--- a/test/functional/scram_sha_256_tests.js
+++ b/test/functional/scram_sha_256_tests.js
@@ -81,13 +81,15 @@ describe('SCRAM-SHA-256 auth', function() {
metadata: { requires: { mongodb: '>=3.7.3' } },
test: function() {
const options = {
- user: user.username,
- password: user.password,
+ auth: {
+ user: user.username,
+ password: user.password
+ },
authMechanism: mechanism,
authSource: this.configuration.db
};
- return withClient(this.configuration.newClient(options), client => {
+ return withClient(this.configuration.newClient({}, options), client => {
return client.db(this.configuration.db).stats();
});
}
@@ -118,12 +120,14 @@ describe('SCRAM-SHA-256 auth', function() {
metadata: { requires: { mongodb: '>=3.7.3' } },
test: function() {
const options = {
- user: user.username,
- password: user.password,
+ auth: {
+ user: user.username,
+ password: user.password
+ },
authSource: this.configuration.db
};
- return withClient(this.configuration.newClient(options), client => {
+ return withClient(this.configuration.newClient({}, options), client => {
return client.db(this.configuration.db).stats();
});
}
@@ -151,14 +155,16 @@ describe('SCRAM-SHA-256 auth', function() {
metadata: { requires: { mongodb: '>=3.7.3' } },
test: function() {
const options = {
- user: userMap.both.username,
- password: userMap.both.password,
+ auth: {
+ user: userMap.both.username,
+ password: userMap.both.password
+ },
authSource: this.configuration.db
};
test.sandbox.spy(ScramSHA256.prototype, 'auth');
- return withClient(this.configuration.newClient(options), () => {
+ return withClient(this.configuration.newClient({}, options), () => {
expect(ScramSHA256.prototype.auth.calledOnce).to.equal(true);
});
}
@@ -170,15 +176,17 @@ describe('SCRAM-SHA-256 auth', function() {
metadata: { requires: { mongodb: '>=3.7.3' } },
test: function() {
const options = {
- user: userMap.sha256.username,
- password: userMap.sha256.password,
+ auth: {
+ user: userMap.sha256.username,
+ password: userMap.sha256.password
+ },
authSource: this.configuration.db,
authMechanism: 'SCRAM-SHA-1'
};
return withClient(
- this.configuration.newClient(options),
- () => Promise.reject('This request should have failed to authenticate'),
+ this.configuration.newClient({}, options),
+ () => Promise.reject(new Error('This request should have failed to authenticate')),
err => expect(err).to.not.be.null
);
}
@@ -192,21 +200,25 @@ describe('SCRAM-SHA-256 auth', function() {
metadata: { requires: { mongodb: '>=3.7.3' } },
test: function() {
const noUsernameOptions = {
- user: 'roth',
- password: 'pencil',
+ auth: {
+ user: 'roth',
+ password: 'pencil'
+ },
authSource: 'admin'
};
const badPasswordOptions = {
- user: 'both',
- password: 'pencil',
+ auth: {
+ user: 'both',
+ password: 'pencil'
+ },
authSource: 'admin'
};
const getErrorMsg = options =>
withClient(
- this.configuration.newClient(options),
- () => Promise.reject('This request should have failed to authenticate'),
+ this.configuration.newClient({}, options),
+ () => Promise.reject(new Error('This request should have failed to authenticate')),
err => expect(err).to.be.an.instanceof(MongoError)
);
diff --git a/test/functional/sdam_tests.js b/test/functional/sdam_tests.js
index 3c0c72ec498..6cc981fe2fd 100644
--- a/test/functional/sdam_tests.js
+++ b/test/functional/sdam_tests.js
@@ -2,7 +2,7 @@
var test = require('./shared').assert;
var setupDatabase = require('./shared').setupDatabase;
-describe('SDAM', function() {
+describe.skip('SDAM', function() {
before(function() {
return setupDatabase(this.configuration);
});
@@ -13,7 +13,6 @@ describe('SDAM', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var operations = {
serverDescriptionChanged: [],
serverHeartbeatStarted: [],
@@ -25,7 +24,7 @@ describe('SDAM', function() {
topologyClosed: []
};
- var client = new MongoClient(configuration.url());
+ var client = configuration.newClient();
var events = [
'serverDescriptionChanged',
'serverHeartbeatStarted',
@@ -42,18 +41,18 @@ describe('SDAM', function() {
});
});
- client.on('fullsetup', function(topology) {
- topology.close(true);
-
- for (var name in operations) {
- test.ok(operations[name].length > 0);
- }
-
- done();
- });
-
client.connect(function(err) {
test.equal(null, err);
+
+ client.close(true, function() {
+ setTimeout(() => {
+ for (var name in operations) {
+ test.ok(operations[name].length > 0);
+ }
+
+ done();
+ }, 1000);
+ });
});
}
});
@@ -64,7 +63,6 @@ describe('SDAM', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var operations = {
serverDescriptionChanged: [],
serverHeartbeatStarted: [],
@@ -76,7 +74,7 @@ describe('SDAM', function() {
topologyClosed: []
};
- var client = new MongoClient(configuration.url(), { haInterval: 500 });
+ var client = configuration.newClient({}, { haInterval: 500 });
var events = [
'serverDescriptionChanged',
'serverHeartbeatStarted',
@@ -117,7 +115,6 @@ describe('SDAM', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
var operations = {
serverDescriptionChanged: [],
serverOpening: [],
@@ -127,7 +124,7 @@ describe('SDAM', function() {
topologyClosed: []
};
- var client = new MongoClient(configuration.url());
+ var client = configuration.newClient();
var events = [
'serverDescriptionChanged',
'serverOpening',
diff --git a/test/functional/session_leak_test.js b/test/functional/session_leak_test.js
index 148e3475dde..88323573224 100644
--- a/test/functional/session_leak_test.js
+++ b/test/functional/session_leak_test.js
@@ -28,6 +28,7 @@ beforeEach('Session Leak Before Each - setup session tracking', function() {
const _acquire = ServerSessionPool.prototype.acquire;
sandbox.stub(ServerSessionPool.prototype, 'acquire').callsFake(function() {
const session = _acquire.apply(this, arguments);
+ session.trace = new Error().stack;
activeSessions.add(sessionId(session.id));
return session;
});
@@ -71,16 +72,28 @@ afterEach('Session Leak After Each - ensure no leaks', function() {
}
try {
+ if (activeSessionsBeforeClose.size) {
+ console.dir(activeSessionsBeforeClose, { depth: 5 });
+ }
+
expect(
activeSessionsBeforeClose.size,
`test is leaking ${activeSessionsBeforeClose.size} active sessions while running client`
).to.equal(0);
+ if (activeSessions.size) {
+ console.dir(activeSessions, { depth: 5 });
+ }
+
expect(
activeSessions.size,
`client close failed to clean up ${activeSessions.size} active sessions`
).to.equal(0);
+ if (pooledSessions.size) {
+ console.dir(pooledSessions, { depth: 5 });
+ }
+
expect(
pooledSessions.size,
`client close failed to clean up ${pooledSessions.size} pooled sessions`
diff --git a/test/functional/sharding_connection_tests.js b/test/functional/sharding_connection_tests.js
index fef10225cf9..23eb4d3a612 100644
--- a/test/functional/sharding_connection_tests.js
+++ b/test/functional/sharding_connection_tests.js
@@ -19,8 +19,6 @@ describe('Sharding (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
-
var url = f(
'mongodb://%s:%s,%s:%s/sharded_test_db?w=1&readPreference=secondaryPreferred&readPreferenceTags=sf%3A1&readPreferenceTags=',
configuration.host,
@@ -28,34 +26,33 @@ describe('Sharding (Connection)', function() {
configuration.host,
configuration.port + 1
);
- MongoClient.connect(
- url,
- {
- mongos: {
- haInterval: 500
- }
- },
- function(err, client) {
- test.equal(null, err);
- test.equal(500, client.topology.haInterval);
- var db = client.db(configuration.db);
- db
- .collection('replicaset_mongo_client_collection')
- .update({ a: 1 }, { b: 1 }, { upsert: true }, function(err, result) {
- test.equal(null, err);
- test.equal(1, result.result.n);
+ const client = configuration.newClient(url, {
+ mongos: {
+ haInterval: 500
+ }
+ });
+
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ test.equal(500, client.topology.haInterval);
+ var db = client.db(configuration.db);
+
+ db
+ .collection('replicaset_mongo_client_collection')
+ .update({ a: 1 }, { b: 1 }, { upsert: true }, function(err, result) {
+ test.equal(null, err);
+ test.equal(1, result.result.n);
- // Perform fetch of document
- db.collection('replicaset_mongo_client_collection').findOne(function(err) {
- test.equal(null, err);
+ // Perform fetch of document
+ db.collection('replicaset_mongo_client_collection').findOne(function(err) {
+ test.equal(null, err);
- client.close();
- done();
- });
+ client.close();
+ done();
});
- }
- );
+ });
+ });
}
});
@@ -68,8 +65,6 @@ describe('Sharding (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
-
var url = f(
'mongodb://%s:%s,%s:%s,localhost:50002/sharded_test_db?w=1',
configuration.host,
@@ -78,7 +73,8 @@ describe('Sharding (Connection)', function() {
configuration.port + 1
);
- MongoClient.connect(url, {}, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
setTimeout(function() {
test.equal(null, err);
client.close();
@@ -97,8 +93,6 @@ describe('Sharding (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
-
var url = f(
'mongodb://%s:%s,%s:%s/sharded_test_db?w=1&readPreference=secondaryPreferred&readPreferenceTags=sf%3A1&readPreferenceTags=',
configuration.host,
@@ -106,27 +100,21 @@ describe('Sharding (Connection)', function() {
configuration.host,
configuration.port + 1
);
- MongoClient.connect(
- url,
- {
- mongos: {
- haInterval: 500
- }
- },
- function(err, client) {
- test.equal(null, err);
- test.equal(500, client.topology.haInterval);
- test.ok(client.topology.capabilities() != null);
- test.equal(true, client.topology.isConnected());
- test.ok(client.topology.lastIsMaster() != null);
- test.ok(client.topology.connections() != null);
- test.ok(client.topology.isMasterDoc != null);
- test.ok(client.topology.bson != null);
- client.close();
- done();
- }
- );
+ const client = configuration.newClient(url, { mongos: { haInterval: 500 } });
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ test.equal(500, client.topology.haInterval);
+ test.ok(client.topology.capabilities() != null);
+ test.equal(true, client.topology.isConnected());
+ test.ok(client.topology.lastIsMaster() != null);
+ test.ok(client.topology.connections() != null);
+ test.ok(client.topology.isMasterDoc != null);
+ test.ok(client.topology.bson != null);
+
+ client.close();
+ done();
+ });
}
});
@@ -139,9 +127,6 @@ describe('Sharding (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var mongo = configuration.require,
- MongoClient = mongo.MongoClient;
-
var url = f(
'mongodb://%s:%s,%s:%s/sharded_test_db?w=1&readPreference=secondaryPreferred&readPreferenceTags=sf%3A1&readPreferenceTags=',
configuration.host,
@@ -150,24 +135,19 @@ describe('Sharding (Connection)', function() {
configuration.port + 1
);
- MongoClient.connect(
- url,
- {
- reconnectTries: 10
- },
- function(err, client) {
- test.equal(null, err);
- test.ok(client != null);
+ const client = configuration.newClient(url, { reconnectTries: 10 });
+ client.connect(function(err, client) {
+ test.equal(null, err);
+ test.ok(client != null);
- var servers = client.topology.s.coreTopology.connectedProxies;
- for (var i = 0; i < servers.length; i++) {
- test.equal(10, servers[i].s.pool.options.reconnectTries);
- }
-
- client.close();
- done();
+ var servers = client.topology.s.coreTopology.connectedProxies;
+ for (var i = 0; i < servers.length; i++) {
+ test.equal(10, servers[i].s.pool.options.reconnectTries);
}
- );
+
+ client.close();
+ done();
+ });
}
});
@@ -180,8 +160,6 @@ describe('Sharding (Connection)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var mongo = configuration.require;
- var MongoClient = mongo.MongoClient;
var manager = configuration.manager;
var mongos = manager.proxies;
@@ -194,7 +172,8 @@ describe('Sharding (Connection)', function() {
configuration.port + 1
);
- var client = yield MongoClient.connect(url);
+ const client = configuration.newClient(url);
+ yield client.connect();
var doc = { answer: 42 };
var db = client.db('Test');
diff --git a/test/functional/sharding_failover_tests.js b/test/functional/sharding_failover_tests.js
index 16ae1844e5d..2f47a7938d9 100644
--- a/test/functional/sharding_failover_tests.js
+++ b/test/functional/sharding_failover_tests.js
@@ -20,8 +20,6 @@ describe.skip('Sharding (Failover)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
-
var manager = configuration.manager;
var url = f(
'mongodb://%s:%s,%s:%s/sharded_test_db?w=1',
@@ -31,7 +29,8 @@ describe.skip('Sharding (Failover)', function() {
configuration.port + 1
);
- MongoClient.connect(url, {}, function(err, client) {
+ const client = configuration.newClient(url);
+ client.connect(function(err, client) {
test.equal(null, err);
var db = client.db(configuration.db);
@@ -187,8 +186,6 @@ describe.skip('Sharding (Failover)', function() {
// The actual test we wish to run
test: function(done) {
var configuration = this.configuration;
- var MongoClient = configuration.require.MongoClient;
-
var manager = configuration.manager;
var url = f(
'mongodb://%s:%s,%s:%s/sharded_test_db?w=1',
@@ -198,7 +195,8 @@ describe.skip('Sharding (Failover)', function() {
configuration.port + 1
);
- MongoClient.connect(url, {}, function(err, client) {
+ const client = this.configuration.newClient(url);
+ client.connect(function(err, client) {
test.equal(null, err);
test.ok(client != null);
var db = client.db(configuration.db);
diff --git a/test/functional/transactions_tests.js b/test/functional/transactions_tests.js
index d94d47ba043..9d2e8d170df 100644
--- a/test/functional/transactions_tests.js
+++ b/test/functional/transactions_tests.js
@@ -1,8 +1,6 @@
'use strict';
const Promise = require('bluebird');
-const mongodb = require('../..');
-const MongoClient = mongodb.MongoClient;
const path = require('path');
const fs = require('fs');
const chai = require('chai');
@@ -100,7 +98,7 @@ describe('Transactions (spec)', function() {
config.replicasetName
}`;
- testContext.sharedClient = new MongoClient(testContext.url);
+ testContext.sharedClient = config.newClient(testContext.url);
return testContext.sharedClient.connect();
});
@@ -123,7 +121,9 @@ describe('Transactions (spec)', function() {
}
// run the actual test
- testPromise = testPromise.then(() => runTestSuiteTest(testData, testContext));
+ testPromise = testPromise.then(() =>
+ runTestSuiteTest(this.configuration, testData, testContext)
+ );
if (testData.failPoint) {
testPromise = testPromise.then(() =>
@@ -180,7 +180,7 @@ function disableFailPoint(failPoint, testContext) {
}
let displayCommands = false;
-function runTestSuiteTest(testData, context) {
+function runTestSuiteTest(configuration, testData, context) {
const commandEvents = [];
const clientOptions = translateClientOptions(
Object.assign({ monitorCommands: true }, testData.clientOptions)
@@ -190,7 +190,8 @@ function runTestSuiteTest(testData, context) {
clientOptions.autoReconnect = false;
clientOptions.haInterval = 100;
- return MongoClient.connect(context.url, clientOptions).then(client => {
+ const client = configuration.newClient(context.url, clientOptions);
+ return client.connect().then(client => {
context.testClient = client;
client.on('commandStarted', event => {
if (event.databaseName === context.dbName || isTransactionCommand(event.commandName)) {
diff --git a/test/functional/uri_tests.js b/test/functional/uri_tests.js
index 4e5d96c0318..dbc5a29c59f 100644
--- a/test/functional/uri_tests.js
+++ b/test/functional/uri_tests.js
@@ -1,7 +1,6 @@
'use strict';
const expect = require('chai').expect;
-const MongoClient = require('../..').MongoClient;
describe('URI', function() {
/**
@@ -19,30 +18,28 @@ describe('URI', function() {
var self = this;
// Connect using the connection string
- MongoClient.connect(
- 'mongodb://localhost:27017/integration_tests',
- {
- native_parser: false,
- socketOptions: {
- connectTimeoutMS: 500
- }
- },
- function(err, client) {
- var db = client.db(self.configuration.db);
- expect(err).to.not.exist;
- expect(client.topology.connections()[0].connectionTimeout).to.equal(500);
+ const client = this.configuration.newClient('mongodb://localhost:27017/integration_tests', {
+ native_parser: false,
+ socketOptions: {
+ connectTimeoutMS: 500
+ }
+ });
- db
- .collection('mongoclient_test')
- .update({ a: 1 }, { b: 1 }, { upsert: true }, function(err, result) {
- expect(err).to.not.exist;
- expect(result.result.n).to.equal(1);
+ client.connect(function(err, client) {
+ var db = client.db(self.configuration.db);
+ expect(err).to.not.exist;
+ expect(client.topology.connections()[0].connectionTimeout).to.equal(500);
- client.close();
- done();
- });
- }
- );
+ db
+ .collection('mongoclient_test')
+ .update({ a: 1 }, { b: 1 }, { upsert: true }, function(err, result) {
+ expect(err).to.not.exist;
+ expect(result.result.n).to.equal(1);
+
+ client.close();
+ done();
+ });
+ });
}
}
);
@@ -60,7 +57,11 @@ describe('URI', function() {
var self = this;
// Connect using the connection string
- MongoClient.connect('mongodb://localhost:27017/integration_tests?w=0', function(err, client) {
+ const client = this.configuration.newClient(
+ 'mongodb://localhost:27017/integration_tests?w=0'
+ );
+
+ client.connect(function(err, client) {
expect(err).to.not.exist;
var db = client.db(self.configuration.db);
@@ -89,18 +90,19 @@ describe('URI', function() {
// The actual test we wish to run
test: function(done) {
- if (process.platform !== 'win32') {
- MongoClient.connect('mongodb://%2Ftmp%2Fmongodb-27017.sock?safe=false', function(
- err,
- client
- ) {
- expect(err).to.not.exist;
- client.close();
- done();
- });
- } else {
- done();
+ if (process.platform === 'win32') {
+ return done();
}
+
+ const client = this.configuration.newClient(
+ 'mongodb://%2Ftmp%2Fmongodb-27017.sock?safe=false'
+ );
+
+ client.connect(function(err, client) {
+ expect(err).to.not.exist;
+ client.close();
+ done();
+ });
}
});
@@ -111,9 +113,9 @@ describe('URI', function() {
// The actual test we wish to run
test: function(done) {
- var self = this;
- MongoClient.connect('mongodb://127.0.0.1:27017/?fsync=true', function(err, client) {
- var db = client.db(self.configuration.db);
+ const client = this.configuration.newClient('mongodb://127.0.0.1:27017/?fsync=true');
+ client.connect((err, client) => {
+ var db = client.db(this.configuration.db);
expect(db.writeConcern.fsync).to.be.true;
client.close();
done();
@@ -129,34 +131,36 @@ describe('URI', function() {
// The actual test we wish to run
test: function(done) {
var self = this;
+ const configuration = this.configuration;
+ const client = configuration.newClient('mongodb://localhost:27017/integration_tests', {
+ native_parser: true
+ });
- MongoClient.connect(
- 'mongodb://localhost:27017/integration_tests',
- { native_parser: true },
- function(err, client) {
- expect(err).to.not.exist;
- var user = 'u$ser',
- pass = '$specialch@rs';
- var db = client.db(self.configuration.db);
+ client.connect(function(err, client) {
+ expect(err).to.not.exist;
+ var user = 'u$ser',
+ pass = '$specialch@rs';
+ var db = client.db(self.configuration.db);
- db.addUser(user, pass, function(err) {
+ db.addUser(user, pass, function(err) {
+ expect(err).to.not.exist;
+ var uri =
+ 'mongodb://' +
+ encodeURIComponent(user) +
+ ':' +
+ encodeURIComponent(pass) +
+ '@localhost:27017/integration_tests';
+
+ const aclient = configuration.newClient(uri, { native_parser: true });
+ aclient.connect(function(err, aclient) {
expect(err).to.not.exist;
- var uri =
- 'mongodb://' +
- encodeURIComponent(user) +
- ':' +
- encodeURIComponent(pass) +
- '@localhost:27017/integration_tests';
- MongoClient.connect(uri, { native_parser: true }, function(err, aclient) {
- expect(err).to.not.exist;
- client.close();
- aclient.close();
- done();
- });
+ client.close();
+ aclient.close();
+ done();
});
- }
- );
+ });
+ });
}
});
@@ -168,7 +172,8 @@ describe('URI', function() {
config.replicasetName
}`;
- MongoClient.connect(uri, { useNewUrlParser: true }, (err, client) => {
+ const client = this.configuration.newClient(uri, { useNewUrlParser: true });
+ client.connect((err, client) => {
if (err) console.dir(err);
expect(err).to.not.exist;
expect(client).to.exist;
diff --git a/test/functional/view_tests.js b/test/functional/view_tests.js
index 2c1ce079266..be1aaade81c 100644
--- a/test/functional/view_tests.js
+++ b/test/functional/view_tests.js
@@ -8,9 +8,9 @@ describe('Views', function() {
metadata: { requires: { generators: true, topology: 'single' } },
test: function(done) {
- var self = this,
- MongoClient = self.configuration.mongo.MongoClient,
- Long = self.configuration.mongo.Long;
+ var self = this;
+ const configuration = this.configuration;
+ const Long = configuration.mongo.Long;
// Default message fields
var defaultFields = Object.assign({}, mock.DEFAULT_ISMASTER);
@@ -46,7 +46,8 @@ describe('Views', function() {
var commandResult = null;
// Connect to the mocks
- MongoClient.connect(`mongodb://${singleServer.uri()}/test`, function(err, client) {
+ const client = configuration.newClient(`mongodb://${singleServer.uri()}/test`);
+ client.connect(function(err, client) {
expect(err).to.not.exist;
var db = client.db(self.configuration.db);
diff --git a/test/unit/bypass_validation_tests.js b/test/unit/bypass_validation_tests.js
index a9b5d77ee51..7ac4e5d7db2 100644
--- a/test/unit/bypass_validation_tests.js
+++ b/test/unit/bypass_validation_tests.js
@@ -1,6 +1,5 @@
'use strict';
-const MongoClient = require('../..').MongoClient;
const expect = require('chai').expect;
const mock = require('mongodb-mock-server');
@@ -14,8 +13,8 @@ describe('bypass document validation', function() {
afterEach(() => mock.cleanup());
// general test for aggregate function
- function testAggregate(config, done) {
- const client = new MongoClient(`mongodb://${test.server.uri()}/test`);
+ function testAggregate(testConfiguration, config, done) {
+ const client = testConfiguration.newClient(`mongodb://${test.server.uri()}/test`);
let close = e => {
close = () => {};
client.close(() => done(e));
@@ -63,16 +62,16 @@ describe('bypass document validation', function() {
}
// aggregate
it('should only set bypass document validation if strictly true in aggregate', function(done) {
- testAggregate({ expected: true, actual: true }, done);
+ testAggregate(this.configuration, { expected: true, actual: true }, done);
});
it('should not set bypass document validation if not strictly true in aggregate', function(done) {
- testAggregate({ expected: undefined, actual: false }, done);
+ testAggregate(this.configuration, { expected: undefined, actual: false }, done);
});
// general test for mapReduce function
- function testMapReduce(config, done) {
- const client = new MongoClient(`mongodb://${test.server.uri()}/test`);
+ function testMapReduce(testConfiguration, config, done) {
+ const client = testConfiguration.newClient(`mongodb://${test.server.uri()}/test`);
let close = e => {
close = () => {};
client.close(() => done(e));
@@ -116,16 +115,16 @@ describe('bypass document validation', function() {
}
// map reduce
it('should only set bypass document validation if strictly true in mapReduce', function(done) {
- testMapReduce({ expected: true, actual: true }, done);
+ testMapReduce(this.configuration, { expected: true, actual: true }, done);
});
it('should not set bypass document validation if not strictly true in mapReduce', function(done) {
- testMapReduce({ expected: undefined, actual: false }, done);
+ testMapReduce(this.configuration, { expected: undefined, actual: false }, done);
});
// general test for findAndModify function
- function testFindAndModify(config, done) {
- const client = new MongoClient(`mongodb://${test.server.uri()}/test`);
+ function testFindAndModify(testConfiguration, config, done) {
+ const client = testConfiguration.newClient(`mongodb://${test.server.uri()}/test`);
let close = e => {
close = () => {};
client.close(() => done(e));
@@ -171,16 +170,16 @@ describe('bypass document validation', function() {
}
// find and modify
it('should only set bypass document validation if strictly true in findAndModify', function(done) {
- testFindAndModify({ expected: true, actual: true }, done);
+ testFindAndModify(this.configuration, { expected: true, actual: true }, done);
});
it('should not set bypass document validation if not strictly true in findAndModify', function(done) {
- testFindAndModify({ expected: undefined, actual: false }, done);
+ testFindAndModify(this.configuration, { expected: undefined, actual: false }, done);
});
// general test for BlukWrite to test changes made in ordered.js and unordered.js
- function testBulkWrite(config, done) {
- const client = new MongoClient(`mongodb://${test.server.uri()}/test`);
+ function testBulkWrite(testConfiguration, config, done) {
+ const client = testConfiguration.newClient(`mongodb://${test.server.uri()}/test`);
let close = e => {
close = () => {};
client.close(() => done(e));
@@ -221,19 +220,19 @@ describe('bypass document validation', function() {
}
// ordered bulk write, testing change in ordered.js
it('should only set bypass document validation if strictly true in ordered bulkWrite', function(done) {
- testBulkWrite({ expected: true, actual: true, ordered: true }, done);
+ testBulkWrite(this.configuration, { expected: true, actual: true, ordered: true }, done);
});
it('should not set bypass document validation if not strictly true in ordered bulkWrite', function(done) {
- testBulkWrite({ expected: undefined, actual: false, ordered: true }, done);
+ testBulkWrite(this.configuration, { expected: undefined, actual: false, ordered: true }, done);
});
// unordered bulk write, testing change in ordered.js
it('should only set bypass document validation if strictly true in unordered bulkWrite', function(done) {
- testBulkWrite({ expected: true, actual: true, ordered: false }, done);
+ testBulkWrite(this.configuration, { expected: true, actual: true, ordered: false }, done);
});
it('should not set bypass document validation if not strictly true in unordered bulkWrite', function(done) {
- testBulkWrite({ expected: undefined, actual: false, ordered: false }, done);
+ testBulkWrite(this.configuration, { expected: undefined, actual: false, ordered: false }, done);
});
});
diff --git a/test/unit/change_stream_resume_tests.js b/test/unit/change_stream_resume_tests.js
index 5cd59225491..a3999f1f011 100644
--- a/test/unit/change_stream_resume_tests.js
+++ b/test/unit/change_stream_resume_tests.js
@@ -2,7 +2,6 @@
const expect = require('chai').expect;
const mock = require('mongodb-mock-server');
-const MongoClient = require('../../lib/mongo_client');
const ObjectId = require('../../index').ObjectId;
const Timestamp = require('../../index').Timestamp;
const Long = require('../../index').Long;
@@ -183,8 +182,9 @@ describe('Change Stream Resume Tests', function() {
it(config.description, {
metadata: { requires: { mongodb: '>=3.6.0' } },
test: function() {
+ const configuration = this.configuration;
test.server.setMessageHandler(makeServerHandler(config));
- client = new MongoClient(`mongodb://${test.server.uri()}`, {
+ client = configuration.newClient(`mongodb://${test.server.uri()}`, {
socketTimeoutMS: 300
});
return client
diff --git a/test/unit/db_list_collections_tests.js b/test/unit/db_list_collections_tests.js
index 05fffe0110f..ac6e034d5b6 100644
--- a/test/unit/db_list_collections_tests.js
+++ b/test/unit/db_list_collections_tests.js
@@ -2,7 +2,6 @@
const mock = require('mongodb-mock-server');
const expect = require('chai').expect;
-const MongoClient = require('../../lib/mongo_client');
describe('db.listCollections', function() {
const testHarness = {};
@@ -59,7 +58,8 @@ describe('db.listCollections', function() {
}
].forEach(config => {
function testFn(done) {
- const client = new MongoClient(`mongodb://${testHarness.server.uri()}/test`, {
+ const configuration = this.configuration;
+ const client = configuration.newClient(`mongodb://${testHarness.server.uri()}/test`, {
monitorCommands: true
});
diff --git a/test/unit/sessions/client_tests.js b/test/unit/sessions/client_tests.js
index 99d9b876a36..0231f07a647 100644
--- a/test/unit/sessions/client_tests.js
+++ b/test/unit/sessions/client_tests.js
@@ -1,6 +1,5 @@
'use strict';
-const MongoClient = require('../../..').MongoClient;
const expect = require('chai').expect;
const mock = require('mongodb-mock-server');
@@ -26,7 +25,8 @@ describe('Sessions', function() {
}
});
- MongoClient.connect(`mongodb://${test.server.uri()}/test`, function(err, client) {
+ const client = this.configuration.newClient(`mongodb://${test.server.uri()}/test`);
+ client.connect(function(err, client) {
expect(err).to.not.exist;
expect(() => {
client.startSession();
@@ -55,7 +55,8 @@ describe('Sessions', function() {
}
});
- MongoClient.connect(`mongodb://${test.server.uri()}/test`, function(err, client) {
+ const client = this.configuration.newClient(`mongodb://${test.server.uri()}/test`);
+ client.connect(function(err, client) {
expect(err).to.not.exist;
let session = client.startSession();
expect(session).to.exist;
diff --git a/test/unit/sessions/collection_tests.js b/test/unit/sessions/collection_tests.js
index ebcffddebe2..5c667152ccb 100644
--- a/test/unit/sessions/collection_tests.js
+++ b/test/unit/sessions/collection_tests.js
@@ -1,8 +1,7 @@
'use strict';
-const MongoClient = require('../../..').MongoClient,
- Timestamp = require('bson').Timestamp,
- expect = require('chai').expect,
- mock = require('mongodb-mock-server');
+const Timestamp = require('bson').Timestamp;
+const expect = require('chai').expect;
+const mock = require('mongodb-mock-server');
const test = {};
describe('Sessions', function() {
@@ -34,7 +33,8 @@ describe('Sessions', function() {
}
});
- return MongoClient.connect(`mongodb://${test.server.uri()}/test`).then(client => {
+ const client = this.configuration.newClient(`mongodb://${test.server.uri()}/test`);
+ return client.connect().then(client => {
const session = client.startSession({ causalConsistency: true });
const coll = client.db('foo').collection('bar');
@@ -66,7 +66,8 @@ describe('Sessions', function() {
}
});
- return MongoClient.connect(`mongodb://${test.server.uri()}/test`).then(client => {
+ const client = this.configuration.newClient(`mongodb://${test.server.uri()}/test`);
+ return client.connect().then(client => {
const coll = client.db('foo').collection('bar');
return coll.count({}, options).then(() => {
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 00000000000..37db1a41e37
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3708 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@sinonjs/formatio@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2"
+ dependencies:
+ samsam "1.3.0"
+
+JSONStream@^1.0.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.4.tgz#615bb2adb0cd34c8f4c447b5f6512fa1d8f16a2e"
+ dependencies:
+ jsonparse "^1.2.0"
+ through ">=2.2.7 <3"
+
+abbrev@1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+
+abbrev@1.0.x:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
+
+acorn-jsx@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
+ dependencies:
+ acorn "^3.0.4"
+
+acorn@^3.0.4:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
+
+acorn@^5.5.0:
+ version "5.7.2"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.2.tgz#91fa871883485d06708800318404e72bfb26dcc5"
+
+ajv-keywords@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
+
+ajv@^5.2.3, ajv@^5.3.0:
+ version "5.5.2"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
+ dependencies:
+ co "^4.6.0"
+ fast-deep-equal "^1.0.0"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.3.0"
+
+align-text@^0.1.1, align-text@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
+ dependencies:
+ kind-of "^3.0.2"
+ longest "^1.0.1"
+ repeat-string "^1.5.2"
+
+amdefine@>=0.0.4:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+
+ampersand-events@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/ampersand-events/-/ampersand-events-2.0.2.tgz#f402bc2e18305fabd995dbdcd3b7057bbdd7d347"
+ dependencies:
+ ampersand-version "^1.0.2"
+ lodash "^4.6.1"
+
+ampersand-state@^5.0.1:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/ampersand-state/-/ampersand-state-5.0.3.tgz#33402ea604375af64a249f664a0312c1160da475"
+ dependencies:
+ ampersand-events "^2.0.1"
+ ampersand-version "^1.0.0"
+ array-next "~0.0.1"
+ key-tree-store "^1.3.0"
+ lodash "^4.12.0"
+
+ampersand-version@^1.0.0, ampersand-version@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/ampersand-version/-/ampersand-version-1.0.2.tgz#ff8f3d4ceac4d32ccd83f6bd6697397f7b59e2c0"
+ dependencies:
+ find-root "^0.1.1"
+ through2 "^0.6.3"
+
+ansi-escapes@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
+
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+
+ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+
+ansi-styles@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+
+ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ dependencies:
+ color-convert "^1.9.0"
+
+ansi@^0.3.0, ansi@~0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21"
+
+aproba@^1.0.3:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+
+are-we-there-yet@~1.1.2:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
+ dependencies:
+ delegates "^1.0.0"
+ readable-stream "^2.0.6"
+
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ dependencies:
+ sprintf-js "~1.0.2"
+
+array-find-index@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
+
+array-ify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece"
+
+array-next@~0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/array-next/-/array-next-0.0.1.tgz#e5e4660a4c27fda8151ff7764275d00900062be1"
+
+array-union@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
+ dependencies:
+ array-uniq "^1.0.1"
+
+array-uniq@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
+
+arrify@^1.0.0, arrify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+
+asn1@~0.2.3:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
+ dependencies:
+ safer-buffer "~2.1.0"
+
+assert-plus@1.0.0, assert-plus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+
+assert-plus@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
+
+assertion-error@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
+
+async@1.x, async@^1.4.0:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+
+async@^2.1.2:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
+ dependencies:
+ lodash "^4.17.10"
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+
+aws-sign2@~0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
+
+aws-sign2@~0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+
+aws4@^1.2.1, aws4@^1.8.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
+
+babel-code-frame@^6.22.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
+ dependencies:
+ chalk "^1.1.3"
+ esutils "^2.0.2"
+ js-tokens "^3.0.2"
+
+babylon@7.0.0-beta.19:
+ version "7.0.0-beta.19"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.19.tgz#e928c7e807e970e0536b078ab3e0c48f9e052503"
+
+balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+
+base64-js@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
+
+bcrypt-pbkdf@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
+ dependencies:
+ tweetnacl "^0.14.3"
+
+bindings@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7"
+
+bl@^1.0.0:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c"
+ dependencies:
+ readable-stream "^2.3.5"
+ safe-buffer "^5.1.1"
+
+bluebird@3.5.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"
+
+bluebird@^3.5.1, bluebird@~3.5.0:
+ version "3.5.1"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
+
+boolbase@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+
+boom@2.x.x:
+ version "2.10.1"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
+ dependencies:
+ hoek "2.x.x"
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+browser-stdout@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
+
+bson@^1.0.4, bson@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/bson/-/bson-1.1.0.tgz#bee57d1fb6a87713471af4e32bcae36de814b5b0"
+
+bson@^2.0.7:
+ version "2.0.8"
+ resolved "https://registry.yarnpkg.com/bson/-/bson-2.0.8.tgz#e3bcc115e486bdcb222de7568c43b0b43292761e"
+
+bson@~1.0.4:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/bson/-/bson-1.0.9.tgz#12319f8323b1254739b7c6bef8d3e89ae05a2f57"
+
+buffer-alloc-unsafe@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
+
+buffer-alloc@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
+ dependencies:
+ buffer-alloc-unsafe "^1.1.0"
+ buffer-fill "^1.0.0"
+
+buffer-crc32@~0.2.3:
+ version "0.2.13"
+ resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
+
+buffer-fill@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
+
+buffer-from@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+
+buffer-shims@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
+
+buffer@^3.0.1:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb"
+ dependencies:
+ base64-js "0.0.8"
+ ieee754 "^1.1.4"
+ isarray "^1.0.0"
+
+builtin-modules@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+
+caller-path@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
+ dependencies:
+ callsites "^0.2.0"
+
+callsites@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
+
+camelcase-keys@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
+ dependencies:
+ camelcase "^2.0.0"
+ map-obj "^1.0.0"
+
+camelcase-keys@^4.0.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77"
+ dependencies:
+ camelcase "^4.1.0"
+ map-obj "^2.0.0"
+ quick-lru "^1.0.0"
+
+camelcase@^1.0.2:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
+
+camelcase@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
+
+camelcase@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
+
+caseless@~0.11.0:
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
+
+caseless@~0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+
+catharsis@~0.8.9:
+ version "0.8.9"
+ resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.9.tgz#98cc890ca652dd2ef0e70b37925310ff9e90fc8b"
+ dependencies:
+ underscore-contrib "~0.3.0"
+
+caw@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95"
+ dependencies:
+ get-proxy "^2.0.0"
+ isurl "^1.0.0-alpha5"
+ tunnel-agent "^0.6.0"
+ url-to-options "^1.0.1"
+
+center-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
+ dependencies:
+ align-text "^0.1.3"
+ lazy-cache "^1.0.3"
+
+chai-subset@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/chai-subset/-/chai-subset-1.6.0.tgz#a5d0ca14e329a79596ed70058b6646bd6988cfe9"
+
+chai@^4.1.1:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c"
+ dependencies:
+ assertion-error "^1.0.1"
+ check-error "^1.0.1"
+ deep-eql "^3.0.0"
+ get-func-name "^2.0.0"
+ pathval "^1.0.0"
+ type-detect "^4.0.0"
+
+chalk@^1.1.1, chalk@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ dependencies:
+ ansi-styles "^2.2.1"
+ escape-string-regexp "^1.0.2"
+ has-ansi "^2.0.0"
+ strip-ansi "^3.0.0"
+ supports-color "^2.0.0"
+
+chalk@^2.0.0, chalk@^2.1.0:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+chardet@^0.4.0:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
+
+check-error@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
+
+cheerio@^0.22.0:
+ version "0.22.0"
+ resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
+ dependencies:
+ css-select "~1.2.0"
+ dom-serializer "~0.1.0"
+ entities "~1.1.1"
+ htmlparser2 "^3.9.1"
+ lodash.assignin "^4.0.9"
+ lodash.bind "^4.1.4"
+ lodash.defaults "^4.0.1"
+ lodash.filter "^4.4.0"
+ lodash.flatten "^4.2.0"
+ lodash.foreach "^4.3.0"
+ lodash.map "^4.4.0"
+ lodash.merge "^4.4.0"
+ lodash.pick "^4.2.1"
+ lodash.reduce "^4.4.0"
+ lodash.reject "^4.4.0"
+ lodash.some "^4.4.0"
+
+chownr@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
+
+circular-json@^0.3.1:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
+
+cli-cursor@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
+ dependencies:
+ restore-cursor "^2.0.0"
+
+cli-width@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
+
+cliui@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
+ dependencies:
+ center-align "^0.1.1"
+ right-align "^0.1.1"
+ wordwrap "0.0.2"
+
+cliui@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+ wrap-ansi "^2.0.0"
+
+co@4.6.0, co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+
+code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+
+color-convert@^1.9.0:
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147"
+ dependencies:
+ color-name "1.1.1"
+
+color-name@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689"
+
+combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5, combined-stream@~1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
+ dependencies:
+ delayed-stream "~1.0.0"
+
+commander@2.9.0:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
+ dependencies:
+ graceful-readlink ">= 1.0.0"
+
+commander@^2.9.0:
+ version "2.17.1"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
+
+commander@~2.8.1:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
+ dependencies:
+ graceful-readlink ">= 1.0.0"
+
+compare-func@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648"
+ dependencies:
+ array-ify "^1.0.0"
+ dot-prop "^3.0.0"
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+
+concat-stream@^1.4.10, concat-stream@^1.6.0:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^2.2.2"
+ typedarray "^0.0.6"
+
+config-chain@^1.1.11:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2"
+ dependencies:
+ ini "^1.3.4"
+ proto-list "~1.2.1"
+
+console-control-strings@^1.0.0, console-control-strings@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
+
+content-disposition@^0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
+
+conventional-changelog-angular@^1.6.6:
+ version "1.6.6"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz#b27f2b315c16d0a1f23eb181309d0e6a4698ea0f"
+ dependencies:
+ compare-func "^1.3.1"
+ q "^1.5.1"
+
+conventional-changelog-atom@^0.2.8:
+ version "0.2.8"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.8.tgz#8037693455990e3256f297320a45fa47ee553a14"
+ dependencies:
+ q "^1.5.1"
+
+conventional-changelog-codemirror@^0.3.8:
+ version "0.3.8"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.8.tgz#a1982c8291f4ee4d6f2f62817c6b2ecd2c4b7b47"
+ dependencies:
+ q "^1.5.1"
+
+conventional-changelog-core@^2.0.11:
+ version "2.0.11"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.11.tgz#19b5fbd55a9697773ed6661f4e32030ed7e30287"
+ dependencies:
+ conventional-changelog-writer "^3.0.9"
+ conventional-commits-parser "^2.1.7"
+ dateformat "^3.0.0"
+ get-pkg-repo "^1.0.0"
+ git-raw-commits "^1.3.6"
+ git-remote-origin-url "^2.0.0"
+ git-semver-tags "^1.3.6"
+ lodash "^4.2.1"
+ normalize-package-data "^2.3.5"
+ q "^1.5.1"
+ read-pkg "^1.1.0"
+ read-pkg-up "^1.0.1"
+ through2 "^2.0.0"
+
+conventional-changelog-ember@^0.3.12:
+ version "0.3.12"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.12.tgz#b7d31851756d0fcb49b031dffeb6afa93b202400"
+ dependencies:
+ q "^1.5.1"
+
+conventional-changelog-eslint@^1.0.9:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.9.tgz#b13cc7e4b472c819450ede031ff1a75c0e3d07d3"
+ dependencies:
+ q "^1.5.1"
+
+conventional-changelog-express@^0.3.6:
+ version "0.3.6"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.6.tgz#4a6295cb11785059fb09202180d0e59c358b9c2c"
+ dependencies:
+ q "^1.5.1"
+
+conventional-changelog-jquery@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz#0208397162e3846986e71273b6c79c5b5f80f510"
+ dependencies:
+ q "^1.4.1"
+
+conventional-changelog-jscs@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz#0479eb443cc7d72c58bf0bcf0ef1d444a92f0e5c"
+ dependencies:
+ q "^1.4.1"
+
+conventional-changelog-jshint@^0.3.8:
+ version "0.3.8"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.8.tgz#9051c1ac0767abaf62a31f74d2fe8790e8acc6c8"
+ dependencies:
+ compare-func "^1.3.1"
+ q "^1.5.1"
+
+conventional-changelog-preset-loader@^1.1.8:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.8.tgz#40bb0f142cd27d16839ec6c74ee8db418099b373"
+
+conventional-changelog-writer@^3.0.9:
+ version "3.0.9"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-3.0.9.tgz#4aecdfef33ff2a53bb0cf3b8071ce21f0e994634"
+ dependencies:
+ compare-func "^1.3.1"
+ conventional-commits-filter "^1.1.6"
+ dateformat "^3.0.0"
+ handlebars "^4.0.2"
+ json-stringify-safe "^5.0.1"
+ lodash "^4.2.1"
+ meow "^4.0.0"
+ semver "^5.5.0"
+ split "^1.0.0"
+ through2 "^2.0.0"
+
+conventional-changelog@^1.1.0:
+ version "1.1.24"
+ resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.24.tgz#3d94c29c960f5261c002678315b756cdd3d7d1f0"
+ dependencies:
+ conventional-changelog-angular "^1.6.6"
+ conventional-changelog-atom "^0.2.8"
+ conventional-changelog-codemirror "^0.3.8"
+ conventional-changelog-core "^2.0.11"
+ conventional-changelog-ember "^0.3.12"
+ conventional-changelog-eslint "^1.0.9"
+ conventional-changelog-express "^0.3.6"
+ conventional-changelog-jquery "^0.1.0"
+ conventional-changelog-jscs "^0.1.0"
+ conventional-changelog-jshint "^0.3.8"
+ conventional-changelog-preset-loader "^1.1.8"
+
+conventional-commits-filter@^1.1.1, conventional-commits-filter@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.6.tgz#4389cd8e58fe89750c0b5fb58f1d7f0cc8ad3831"
+ dependencies:
+ is-subset "^0.1.1"
+ modify-values "^1.0.0"
+
+conventional-commits-parser@^2.1.1, conventional-commits-parser@^2.1.7:
+ version "2.1.7"
+ resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz#eca45ed6140d72ba9722ee4132674d639e644e8e"
+ dependencies:
+ JSONStream "^1.0.4"
+ is-text-path "^1.0.0"
+ lodash "^4.2.1"
+ meow "^4.0.0"
+ split2 "^2.0.0"
+ through2 "^2.0.0"
+ trim-off-newlines "^1.0.0"
+
+conventional-recommended-bump@^1.0.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-1.2.1.tgz#1b7137efb5091f99fe009e2fe9ddb7cc490e9375"
+ dependencies:
+ concat-stream "^1.4.10"
+ conventional-commits-filter "^1.1.1"
+ conventional-commits-parser "^2.1.1"
+ git-raw-commits "^1.3.0"
+ git-semver-tags "^1.3.0"
+ meow "^3.3.0"
+ object-assign "^4.0.1"
+
+core-util-is@1.0.2, core-util-is@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+
+coveralls@^2.11.6:
+ version "2.13.3"
+ resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-2.13.3.tgz#9ad7c2ae527417f361e8b626483f48ee92dd2bc7"
+ dependencies:
+ js-yaml "3.6.1"
+ lcov-parse "0.0.10"
+ log-driver "1.2.5"
+ minimist "1.2.0"
+ request "2.79.0"
+
+cross-spawn@^5.0.1, cross-spawn@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
+ dependencies:
+ lru-cache "^4.0.1"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
+cryptiles@2.x.x:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
+ dependencies:
+ boom "2.x.x"
+
+css-select@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858"
+ dependencies:
+ boolbase "~1.0.0"
+ css-what "2.1"
+ domutils "1.5.1"
+ nth-check "~1.0.1"
+
+css-what@2.1:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd"
+
+currently-unhandled@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
+ dependencies:
+ array-find-index "^1.0.1"
+
+dargs@^4.0.1:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+dashdash@^1.12.0:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ dependencies:
+ assert-plus "^1.0.0"
+
+dateformat@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
+
+debug@2.6.8:
+ version "2.6.8"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
+ dependencies:
+ ms "2.0.0"
+
+debug@^2.2.0:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ dependencies:
+ ms "2.0.0"
+
+debug@^3.0.1, debug@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ dependencies:
+ ms "2.0.0"
+
+decamelize-keys@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9"
+ dependencies:
+ decamelize "^1.1.0"
+ map-obj "^1.0.0"
+
+decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+
+decompress-response@^3.2.0, decompress-response@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
+ dependencies:
+ mimic-response "^1.0.0"
+
+decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1"
+ dependencies:
+ file-type "^5.2.0"
+ is-stream "^1.1.0"
+ tar-stream "^1.5.2"
+
+decompress-tarbz2@^4.0.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b"
+ dependencies:
+ decompress-tar "^4.1.0"
+ file-type "^6.1.0"
+ is-stream "^1.1.0"
+ seek-bzip "^1.0.5"
+ unbzip2-stream "^1.0.9"
+
+decompress-targz@^4.0.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee"
+ dependencies:
+ decompress-tar "^4.1.1"
+ file-type "^5.2.0"
+ is-stream "^1.1.0"
+
+decompress-unzip@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69"
+ dependencies:
+ file-type "^3.8.0"
+ get-stream "^2.2.0"
+ pify "^2.3.0"
+ yauzl "^2.4.2"
+
+decompress@^4.0.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d"
+ dependencies:
+ decompress-tar "^4.0.0"
+ decompress-tarbz2 "^4.0.0"
+ decompress-targz "^4.0.0"
+ decompress-unzip "^4.0.1"
+ graceful-fs "^4.1.10"
+ make-dir "^1.0.0"
+ pify "^2.3.0"
+ strip-dirs "^2.0.0"
+
+deep-eql@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
+ dependencies:
+ type-detect "^4.0.0"
+
+deep-extend@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+
+deep-is@~0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+
+del@^2.0.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
+ dependencies:
+ globby "^5.0.0"
+ is-path-cwd "^1.0.0"
+ is-path-in-cwd "^1.0.0"
+ object-assign "^4.0.1"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+ rimraf "^2.2.8"
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+
+delegates@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+
+detect-libc@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
+
+diff@3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
+
+diff@^3.1.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
+
+docopt@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/docopt/-/docopt-0.6.2.tgz#b28e9e2220da5ec49f7ea5bb24a47787405eeb11"
+
+doctrine@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
+ dependencies:
+ esutils "^2.0.2"
+
+dom-serializer@0, dom-serializer@~0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
+ dependencies:
+ domelementtype "~1.1.1"
+ entities "~1.1.1"
+
+domelementtype@1, domelementtype@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2"
+
+domelementtype@~1.1.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b"
+
+domhandler@^2.3.0:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
+ dependencies:
+ domelementtype "1"
+
+domutils@1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
+ dependencies:
+ dom-serializer "0"
+ domelementtype "1"
+
+domutils@^1.5.1:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
+ dependencies:
+ dom-serializer "0"
+ domelementtype "1"
+
+dot-prop@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177"
+ dependencies:
+ is-obj "^1.0.0"
+
+dotgitignore@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/dotgitignore/-/dotgitignore-1.0.3.tgz#a442cbde7dc20dff51cdb849e4c5a64568c07923"
+ dependencies:
+ find-up "^2.1.0"
+ minimatch "^3.0.4"
+
+downcache@^0.0.9:
+ version "0.0.9"
+ resolved "https://registry.yarnpkg.com/downcache/-/downcache-0.0.9.tgz#790bb0424689136115ce93f2aa15946c6d806d0e"
+ dependencies:
+ extend "^3.0.0"
+ graceful-fs "^4.1.3"
+ limiter "^1.1.0"
+ mkdirp "^0.5.1"
+ npmlog "^2.0.3"
+ request "^2.69.0"
+ rimraf "^2.5.2"
+
+download@^6.2.5:
+ version "6.2.5"
+ resolved "https://registry.yarnpkg.com/download/-/download-6.2.5.tgz#acd6a542e4cd0bb42ca70cfc98c9e43b07039714"
+ dependencies:
+ caw "^2.0.0"
+ content-disposition "^0.5.2"
+ decompress "^4.0.0"
+ ext-name "^5.0.0"
+ file-type "5.2.0"
+ filenamify "^2.0.0"
+ get-stream "^3.0.0"
+ got "^7.0.0"
+ make-dir "^1.0.0"
+ p-event "^1.0.0"
+ pify "^3.0.0"
+
+duplexer3@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
+
+ecc-jsbn@~0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
+ dependencies:
+ jsbn "~0.1.0"
+ safer-buffer "^2.1.0"
+
+end-of-stream@^1.0.0, end-of-stream@^1.1.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
+ dependencies:
+ once "^1.4.0"
+
+entities@^1.1.1, entities@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
+
+errno@~0.1.7:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
+ dependencies:
+ prr "~1.0.1"
+
+error-ex@^1.2.0, error-ex@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+ dependencies:
+ is-arrayish "^0.2.1"
+
+es6-promise@3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.2.1.tgz#ec56233868032909207170c39448e24449dd1fc4"
+
+escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+
+escodegen@1.8.x:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018"
+ dependencies:
+ esprima "^2.7.1"
+ estraverse "^1.9.1"
+ esutils "^2.0.2"
+ optionator "^0.8.1"
+ optionalDependencies:
+ source-map "~0.2.0"
+
+eslint-plugin-prettier@^2.2.0:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.2.tgz#71998c60aedfa2141f7bfcbf9d1c459bf98b4fad"
+ dependencies:
+ fast-diff "^1.1.1"
+ jest-docblock "^21.0.0"
+
+eslint-scope@^3.7.1:
+ version "3.7.3"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535"
+ dependencies:
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+eslint-visitor-keys@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
+
+eslint@^4.5.0:
+ version "4.19.1"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300"
+ dependencies:
+ ajv "^5.3.0"
+ babel-code-frame "^6.22.0"
+ chalk "^2.1.0"
+ concat-stream "^1.6.0"
+ cross-spawn "^5.1.0"
+ debug "^3.1.0"
+ doctrine "^2.1.0"
+ eslint-scope "^3.7.1"
+ eslint-visitor-keys "^1.0.0"
+ espree "^3.5.4"
+ esquery "^1.0.0"
+ esutils "^2.0.2"
+ file-entry-cache "^2.0.0"
+ functional-red-black-tree "^1.0.1"
+ glob "^7.1.2"
+ globals "^11.0.1"
+ ignore "^3.3.3"
+ imurmurhash "^0.1.4"
+ inquirer "^3.0.6"
+ is-resolvable "^1.0.0"
+ js-yaml "^3.9.1"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.3.0"
+ lodash "^4.17.4"
+ minimatch "^3.0.2"
+ mkdirp "^0.5.1"
+ natural-compare "^1.4.0"
+ optionator "^0.8.2"
+ path-is-inside "^1.0.2"
+ pluralize "^7.0.0"
+ progress "^2.0.0"
+ regexpp "^1.0.1"
+ require-uncached "^1.0.3"
+ semver "^5.3.0"
+ strip-ansi "^4.0.0"
+ strip-json-comments "~2.0.1"
+ table "4.0.2"
+ text-table "~0.2.0"
+
+espree@^3.5.4:
+ version "3.5.4"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7"
+ dependencies:
+ acorn "^5.5.0"
+ acorn-jsx "^3.0.0"
+
+esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1:
+ version "2.7.3"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
+
+esprima@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+
+esquery@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
+ dependencies:
+ estraverse "^4.0.0"
+
+esrecurse@^4.1.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
+ dependencies:
+ estraverse "^4.1.0"
+
+estraverse@^1.9.1:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
+
+estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
+
+esutils@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+
+execa@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
+ dependencies:
+ cross-spawn "^5.0.1"
+ get-stream "^3.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+expand-template@^1.0.2:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.1.tgz#981f188c0c3a87d2e28f559bc541426ff94f21dd"
+
+ext-list@^2.0.0:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37"
+ dependencies:
+ mime-db "^1.28.0"
+
+ext-name@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6"
+ dependencies:
+ ext-list "^2.0.0"
+ sort-keys-length "^1.0.0"
+
+extend@^3.0.0, extend@~3.0.0, extend@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+
+external-editor@^2.0.4:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
+ dependencies:
+ chardet "^0.4.0"
+ iconv-lite "^0.4.17"
+ tmp "^0.0.33"
+
+extsprintf@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+
+extsprintf@^1.2.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
+
+fast-deep-equal@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
+
+fast-diff@^1.1.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154"
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
+
+fast-levenshtein@~2.0.4:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+
+fd-slicer@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
+ dependencies:
+ pend "~1.2.0"
+
+figures@^1.5.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
+ dependencies:
+ escape-string-regexp "^1.0.5"
+ object-assign "^4.1.0"
+
+figures@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
+ dependencies:
+ escape-string-regexp "^1.0.5"
+
+file-entry-cache@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
+ dependencies:
+ flat-cache "^1.2.1"
+ object-assign "^4.0.1"
+
+file-type@5.2.0, file-type@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6"
+
+file-type@^3.8.0:
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
+
+file-type@^6.1.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919"
+
+filename-reserved-regex@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229"
+
+filenamify@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-2.1.0.tgz#88faf495fb1b47abfd612300002a16228c677ee9"
+ dependencies:
+ filename-reserved-regex "^2.0.0"
+ strip-outer "^1.0.0"
+ trim-repeated "^1.0.0"
+
+find-root@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/find-root/-/find-root-0.1.2.tgz#98d2267cff1916ccaf2743b3a0eea81d79d7dcd1"
+
+find-up@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ dependencies:
+ path-exists "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+find-up@^2.0.0, find-up@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ dependencies:
+ locate-path "^2.0.0"
+
+flat-cache@^1.2.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
+ dependencies:
+ circular-json "^0.3.1"
+ del "^2.0.2"
+ graceful-fs "^4.1.2"
+ write "^0.2.1"
+
+forever-agent@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+
+form-data@~2.1.1:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.5"
+ mime-types "^2.1.12"
+
+form-data@~2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "1.0.6"
+ mime-types "^2.1.12"
+
+fs-access@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a"
+ dependencies:
+ null-check "^1.0.0"
+
+fs-constants@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
+
+fs-extra@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950"
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^2.1.0"
+ klaw "^1.0.0"
+
+fs-extra@^4.0.2:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94"
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+
+functional-red-black-tree@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+
+gauge@~1.2.5:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/gauge/-/gauge-1.2.7.tgz#e9cec5483d3d4ee0ef44b60a7d99e4935e136d93"
+ dependencies:
+ ansi "^0.3.0"
+ has-unicode "^2.0.0"
+ lodash.pad "^4.1.0"
+ lodash.padend "^4.1.0"
+ lodash.padstart "^4.1.0"
+
+gauge@~2.7.3:
+ version "2.7.4"
+ resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
+ dependencies:
+ aproba "^1.0.3"
+ console-control-strings "^1.0.0"
+ has-unicode "^2.0.0"
+ object-assign "^4.1.0"
+ signal-exit "^3.0.0"
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+ wide-align "^1.1.0"
+
+generate-function@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
+
+generate-object-property@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
+ dependencies:
+ is-property "^1.0.0"
+
+get-caller-file@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
+
+get-func-name@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
+
+get-mongodb-version@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/get-mongodb-version/-/get-mongodb-version-1.0.0.tgz#a524d3bb53e1e857fce09b740d2401e475562aa3"
+ dependencies:
+ debug "^2.2.0"
+ lodash.startswith "^4.2.1"
+ minimist "^1.1.1"
+ mongodb "^2.0.39"
+ which "^1.1.1"
+
+get-pkg-repo@^1.0.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d"
+ dependencies:
+ hosted-git-info "^2.1.4"
+ meow "^3.3.0"
+ normalize-package-data "^2.3.0"
+ parse-github-repo-url "^1.3.0"
+ through2 "^2.0.0"
+
+get-proxy@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93"
+ dependencies:
+ npm-conf "^1.1.0"
+
+get-stdin@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
+
+get-stream@^2.2.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
+ dependencies:
+ object-assign "^4.0.1"
+ pinkie-promise "^2.0.0"
+
+get-stream@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+
+getpass@^0.1.1:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+ dependencies:
+ assert-plus "^1.0.0"
+
+git-raw-commits@^1.3.0, git-raw-commits@^1.3.6:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.6.tgz#27c35a32a67777c1ecd412a239a6c19d71b95aff"
+ dependencies:
+ dargs "^4.0.1"
+ lodash.template "^4.0.2"
+ meow "^4.0.0"
+ split2 "^2.0.0"
+ through2 "^2.0.0"
+
+git-remote-origin-url@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f"
+ dependencies:
+ gitconfiglocal "^1.0.0"
+ pify "^2.3.0"
+
+git-semver-tags@^1.3.0, git-semver-tags@^1.3.6:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.6.tgz#357ea01f7280794fe0927f2806bee6414d2caba5"
+ dependencies:
+ meow "^4.0.0"
+ semver "^5.5.0"
+
+gitconfiglocal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b"
+ dependencies:
+ ini "^1.3.2"
+
+github-from-package@0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
+
+glob@7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.2"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+glob@^5.0.15:
+ version "5.0.15"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
+ dependencies:
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "2 || 3"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+glob@^7.0.3, glob@^7.0.5, glob@^7.1.2:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+globals@^11.0.1:
+ version "11.7.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673"
+
+globby@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
+ dependencies:
+ array-union "^1.0.1"
+ arrify "^1.0.0"
+ glob "^7.0.3"
+ object-assign "^4.0.1"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+got@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a"
+ dependencies:
+ decompress-response "^3.2.0"
+ duplexer3 "^0.1.4"
+ get-stream "^3.0.0"
+ is-plain-obj "^1.1.0"
+ is-retry-allowed "^1.0.0"
+ is-stream "^1.0.0"
+ isurl "^1.0.0-alpha5"
+ lowercase-keys "^1.0.0"
+ p-cancelable "^0.3.0"
+ p-timeout "^1.1.1"
+ safe-buffer "^5.0.1"
+ timed-out "^4.0.0"
+ url-parse-lax "^1.0.0"
+ url-to-options "^1.0.1"
+
+graceful-fs@^4.1.10, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
+ version "4.1.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
+
+"graceful-readlink@>= 1.0.0":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
+
+growl@1.9.2:
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
+
+handlebars@^4.0.1, handlebars@^4.0.2:
+ version "4.0.11"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
+ dependencies:
+ async "^1.4.0"
+ optimist "^0.6.1"
+ source-map "^0.4.4"
+ optionalDependencies:
+ uglify-js "^2.6"
+
+har-schema@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+
+har-validator@~2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
+ dependencies:
+ chalk "^1.1.1"
+ commander "^2.9.0"
+ is-my-json-valid "^2.12.4"
+ pinkie-promise "^2.0.0"
+
+har-validator@~5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29"
+ dependencies:
+ ajv "^5.3.0"
+ har-schema "^2.0.0"
+
+has-ansi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+has-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+
+has-symbol-support-x@^1.4.1:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455"
+
+has-to-string-tag-x@^1.2.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d"
+ dependencies:
+ has-symbol-support-x "^1.4.1"
+
+has-unicode@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+
+hawk@~3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
+ dependencies:
+ boom "2.x.x"
+ cryptiles "2.x.x"
+ hoek "2.x.x"
+ sntp "1.x.x"
+
+he@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
+
+hoek@2.x.x:
+ version "2.16.3"
+ resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
+
+hosted-git-info@^2.1.4:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047"
+
+htmlparser2@^3.9.1:
+ version "3.9.2"
+ resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338"
+ dependencies:
+ domelementtype "^1.3.0"
+ domhandler "^2.3.0"
+ domutils "^1.5.1"
+ entities "^1.1.1"
+ inherits "^2.0.1"
+ readable-stream "^2.0.2"
+
+http-signature@~1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
+ dependencies:
+ assert-plus "^0.2.0"
+ jsprim "^1.2.2"
+ sshpk "^1.7.0"
+
+http-signature@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+ dependencies:
+ assert-plus "^1.0.0"
+ jsprim "^1.2.2"
+ sshpk "^1.7.0"
+
+iconv-lite@^0.4.17:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+ieee754@^1.1.4:
+ version "1.1.12"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b"
+
+ignore@^3.3.3:
+ version "3.3.10"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+
+indent-string@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
+ dependencies:
+ repeating "^2.0.0"
+
+indent-string@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+
+ini@^1.3.2, ini@^1.3.4, ini@~1.3.0:
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
+
+inquirer@^3.0.6:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
+ dependencies:
+ ansi-escapes "^3.0.0"
+ chalk "^2.0.0"
+ cli-cursor "^2.1.0"
+ cli-width "^2.0.0"
+ external-editor "^2.0.4"
+ figures "^2.0.0"
+ lodash "^4.3.0"
+ mute-stream "0.0.7"
+ run-async "^2.2.0"
+ rx-lite "^4.0.8"
+ rx-lite-aggregates "^4.0.8"
+ string-width "^2.1.0"
+ strip-ansi "^4.0.0"
+ through "^2.3.6"
+
+invert-kv@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+
+is-buffer@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+
+is-builtin-module@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
+ dependencies:
+ builtin-modules "^1.0.0"
+
+is-finite@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+
+is-my-ip-valid@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824"
+
+is-my-json-valid@^2.12.4:
+ version "2.19.0"
+ resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.19.0.tgz#8fd6e40363cd06b963fa877d444bfb5eddc62175"
+ dependencies:
+ generate-function "^2.0.0"
+ generate-object-property "^1.1.0"
+ is-my-ip-valid "^1.0.0"
+ jsonpointer "^4.0.0"
+ xtend "^4.0.0"
+
+is-natural-number@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8"
+
+is-obj@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
+
+is-object@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470"
+
+is-path-cwd@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
+
+is-path-in-cwd@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52"
+ dependencies:
+ is-path-inside "^1.0.0"
+
+is-path-inside@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
+ dependencies:
+ path-is-inside "^1.0.1"
+
+is-plain-obj@^1.0.0, is-plain-obj@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
+
+is-promise@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
+
+is-property@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
+
+is-resolvable@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
+
+is-retry-allowed@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
+
+is-stream@^1.0.0, is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+
+is-subset@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6"
+
+is-text-path@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e"
+ dependencies:
+ text-extensions "^1.0.0"
+
+is-typedarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+
+is-utf8@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
+
+isarray@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+
+isarray@^1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+
+isstream@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+
+istanbul@^0.4.5:
+ version "0.4.5"
+ resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b"
+ dependencies:
+ abbrev "1.0.x"
+ async "1.x"
+ escodegen "1.8.x"
+ esprima "2.7.x"
+ glob "^5.0.15"
+ handlebars "^4.0.1"
+ js-yaml "3.x"
+ mkdirp "0.5.x"
+ nopt "3.x"
+ once "1.x"
+ resolve "1.1.x"
+ supports-color "^3.1.0"
+ which "^1.1.1"
+ wordwrap "^1.0.0"
+
+isurl@^1.0.0-alpha5:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67"
+ dependencies:
+ has-to-string-tag-x "^1.2.0"
+ is-object "^1.0.1"
+
+jest-docblock@^21.0.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414"
+
+js-tokens@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
+
+js-yaml@3.6.1:
+ version "3.6.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30"
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^2.6.0"
+
+js-yaml@3.x, js-yaml@^3.9.1:
+ version "3.12.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+js2xmlparser@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-3.0.0.tgz#3fb60eaa089c5440f9319f51760ccd07e2499733"
+ dependencies:
+ xmlcreate "^1.0.1"
+
+jsbn@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+
+jsdoc@3.5.5:
+ version "3.5.5"
+ resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.5.5.tgz#484521b126e81904d632ff83ec9aaa096708fa4d"
+ dependencies:
+ babylon "7.0.0-beta.19"
+ bluebird "~3.5.0"
+ catharsis "~0.8.9"
+ escape-string-regexp "~1.0.5"
+ js2xmlparser "~3.0.0"
+ klaw "~2.0.0"
+ marked "~0.3.6"
+ mkdirp "~0.5.1"
+ requizzle "~0.2.1"
+ strip-json-comments "~2.0.1"
+ taffydb "2.6.2"
+ underscore "~1.8.3"
+
+json-parse-better-errors@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
+
+json-schema-traverse@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
+
+json-schema@0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+
+json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+
+json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+
+json3@3.3.2:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
+
+jsonfile@^2.1.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsonparse@^1.2.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
+
+jsonpointer@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
+
+jsprim@^1.2.2:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
+ dependencies:
+ assert-plus "1.0.0"
+ extsprintf "1.3.0"
+ json-schema "0.2.3"
+ verror "1.10.0"
+
+just-extend@^1.1.27:
+ version "1.1.27"
+ resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-1.1.27.tgz#ec6e79410ff914e472652abfa0e603c03d60e905"
+
+kerberos@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/kerberos/-/kerberos-1.0.0.tgz#b8e490349a30ccd5f2dc675f1fae7c681cf3c495"
+ dependencies:
+ bindings "^1.3.0"
+ nan "^2.10.0"
+ prebuild-install "^5.0.0"
+
+key-tree-store@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/key-tree-store/-/key-tree-store-1.3.0.tgz#5ea29afc2529a425938437d6955b714ce6a9791f"
+
+kind-of@^3.0.2:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ dependencies:
+ is-buffer "^1.1.5"
+
+klaw@^1.0.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
+ optionalDependencies:
+ graceful-fs "^4.1.9"
+
+klaw@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/klaw/-/klaw-2.0.0.tgz#59c128e0dc5ce410201151194eeb9cbf858650f6"
+ dependencies:
+ graceful-fs "^4.1.9"
+
+lazy-cache@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
+
+lcid@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
+ dependencies:
+ invert-kv "^1.0.0"
+
+lcov-parse@0.0.10:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3"
+
+levn@^0.3.0, levn@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ dependencies:
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+
+limiter@^1.1.0:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.3.tgz#32e2eb55b2324076943e5d04c1185ffb387968ef"
+
+load-json-file@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+ strip-bom "^2.0.0"
+
+load-json-file@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ strip-bom "^3.0.0"
+
+load-json-file@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^4.0.0"
+ pify "^3.0.0"
+ strip-bom "^3.0.0"
+
+locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
+lodash._baseassign@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
+ dependencies:
+ lodash._basecopy "^3.0.0"
+ lodash.keys "^3.0.0"
+
+lodash._basecopy@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
+
+lodash._basecreate@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821"
+
+lodash._getnative@^3.0.0:
+ version "3.9.1"
+ resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
+
+lodash._isiterateecall@^3.0.0:
+ version "3.0.9"
+ resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
+
+lodash._reinterpolate@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
+
+lodash.assignin@^4.0.9:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2"
+
+lodash.bind@^4.1.4:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35"
+
+lodash.camelcase@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+
+lodash.create@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7"
+ dependencies:
+ lodash._baseassign "^3.0.0"
+ lodash._basecreate "^3.0.0"
+ lodash._isiterateecall "^3.0.0"
+
+lodash.defaults@^4.0.0, lodash.defaults@^4.0.1, lodash.defaults@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
+
+lodash.difference@^4.1.1:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c"
+
+lodash.filter@^4.4.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace"
+
+lodash.flatten@^4.2.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
+
+lodash.foreach@^4.3.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
+
+lodash.get@^4.4.2:
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
+
+lodash.isarguments@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
+
+lodash.isarray@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
+
+lodash.keys@^3.0.0:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
+ dependencies:
+ lodash._getnative "^3.0.0"
+ lodash.isarguments "^3.0.0"
+ lodash.isarray "^3.0.0"
+
+lodash.map@^4.4.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3"
+
+lodash.merge@^4.4.0:
+ version "4.6.1"
+ resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54"
+
+lodash.pad@^4.1.0:
+ version "4.5.1"
+ resolved "https://registry.yarnpkg.com/lodash.pad/-/lodash.pad-4.5.1.tgz#4330949a833a7c8da22cc20f6a26c4d59debba70"
+
+lodash.padend@^4.1.0:
+ version "4.6.1"
+ resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e"
+
+lodash.padstart@^4.1.0:
+ version "4.6.1"
+ resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b"
+
+lodash.pick@^4.2.1:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
+
+lodash.reduce@^4.4.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b"
+
+lodash.reject@^4.4.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415"
+
+lodash.some@^4.4.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d"
+
+lodash.startswith@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/lodash.startswith/-/lodash.startswith-4.2.1.tgz#c598c4adce188a27e53145731cdc6c0e7177600c"
+
+lodash.template@^4.0.2:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0"
+ dependencies:
+ lodash._reinterpolate "~3.0.0"
+ lodash.templatesettings "^4.0.0"
+
+lodash.templatesettings@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316"
+ dependencies:
+ lodash._reinterpolate "~3.0.0"
+
+lodash@^4.12.0, lodash@^4.17.10, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1:
+ version "4.17.10"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
+
+log-driver@1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.5.tgz#7ae4ec257302fd790d557cb10c97100d857b0056"
+
+lolex@^2.2.0, lolex@^2.3.2:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.1.tgz#e40a8c4d1f14b536aa03e42a537c7adbaf0c20be"
+
+longest@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
+
+loud-rejection@^1.0.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
+ dependencies:
+ currently-unhandled "^0.4.1"
+ signal-exit "^3.0.0"
+
+lowercase-keys@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
+
+lru-cache@^4.0.1:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c"
+ dependencies:
+ pseudomap "^1.0.2"
+ yallist "^2.1.2"
+
+make-dir@^1.0.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
+ dependencies:
+ pify "^3.0.0"
+
+map-obj@^1.0.0, map-obj@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
+
+map-obj@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9"
+
+marked@~0.3.6:
+ version "0.3.19"
+ resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790"
+
+mem@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
+ dependencies:
+ mimic-fn "^1.0.0"
+
+meow@^3.3.0:
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
+ dependencies:
+ camelcase-keys "^2.0.0"
+ decamelize "^1.1.2"
+ loud-rejection "^1.0.0"
+ map-obj "^1.0.1"
+ minimist "^1.1.3"
+ normalize-package-data "^2.3.4"
+ object-assign "^4.0.1"
+ read-pkg-up "^1.0.1"
+ redent "^1.0.0"
+ trim-newlines "^1.0.0"
+
+meow@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975"
+ dependencies:
+ camelcase-keys "^4.0.0"
+ decamelize-keys "^1.0.0"
+ loud-rejection "^1.0.0"
+ minimist "^1.1.3"
+ minimist-options "^3.0.1"
+ normalize-package-data "^2.3.4"
+ read-pkg-up "^3.0.0"
+ redent "^2.0.0"
+ trim-newlines "^2.0.0"
+
+metamocha@^1.2.5:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/metamocha/-/metamocha-1.3.2.tgz#13703deafd53c1ad77e1bfad37f2196cc3cecac0"
+ dependencies:
+ mocha "^3.5.3"
+
+mime-db@^1.28.0:
+ version "1.36.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397"
+
+mime-db@~1.35.0:
+ version "1.35.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz#0569d657466491283709663ad379a99b90d9ab47"
+
+mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.7:
+ version "2.1.19"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0"
+ dependencies:
+ mime-db "~1.35.0"
+
+mimic-fn@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+
+mimic-response@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
+
+"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist-options@^3.0.1:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954"
+ dependencies:
+ arrify "^1.0.1"
+ is-plain-obj "^1.1.0"
+
+minimist@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+
+minimist@1.2.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+
+minimist@~0.0.1:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+
+mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.1, mkdirp@~0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ dependencies:
+ minimist "0.0.8"
+
+mocha-sinon@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/mocha-sinon/-/mocha-sinon-2.1.0.tgz#61e92727e577bee44cac6f32162dcec33c1301e5"
+
+mocha@^3.5.3:
+ version "3.5.3"
+ resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d"
+ dependencies:
+ browser-stdout "1.3.0"
+ commander "2.9.0"
+ debug "2.6.8"
+ diff "3.2.0"
+ escape-string-regexp "1.0.5"
+ glob "7.1.1"
+ growl "1.9.2"
+ he "1.1.1"
+ json3 "3.3.2"
+ lodash.create "3.1.1"
+ mkdirp "0.5.1"
+ supports-color "3.1.2"
+
+modify-values@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
+
+mongodb-core@2.1.20:
+ version "2.1.20"
+ resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-2.1.20.tgz#fece8dd76b59ee7d7f2d313b65322c160492d8f1"
+ dependencies:
+ bson "~1.0.4"
+ require_optional "~1.0.0"
+
+mongodb-core@3.1.3, mongodb-core@^3.1.2:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-3.1.3.tgz#b036bce5290b383fe507238965bef748dd8adb75"
+ dependencies:
+ bson "^1.1.0"
+ require_optional "^1.0.1"
+ safe-buffer "^5.1.2"
+ optionalDependencies:
+ saslprep "^1.0.0"
+
+mongodb-download-url@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/mongodb-download-url/-/mongodb-download-url-0.3.3.tgz#e3a8a548f13eb20f5a0cdf863cbc063421a3934c"
+ dependencies:
+ async "^2.1.2"
+ debug "^2.2.0"
+ lodash.defaults "^4.0.0"
+ minimist "^1.2.0"
+ mongodb-version-list "^1.0.0"
+ request "^2.65.0"
+ semver "^5.0.3"
+
+mongodb-extjson@^2.1.1:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/mongodb-extjson/-/mongodb-extjson-2.1.4.tgz#c7eae23bbeea9646b8f2c302764aa9540c20fe56"
+ dependencies:
+ bson "^2.0.7"
+
+mongodb-mock-server@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/mongodb-mock-server/-/mongodb-mock-server-1.0.0.tgz#6dec212d22cc116cfd2257c8f9be3fa4dd34123d"
+ dependencies:
+ snappy "^6.0.1"
+
+mongodb-test-runner@^1.1.18:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/mongodb-test-runner/-/mongodb-test-runner-1.3.4.tgz#63dfdaa357499f07f5087570d0fdc6ef305126b4"
+ dependencies:
+ metamocha "^1.2.5"
+ mongodb-topology-manager "^2.0.0"
+ mongodb-version-manager "^1.0.7"
+ semver "^5.4.1"
+ yargs "^8.0.2"
+
+mongodb-topology-manager@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/mongodb-topology-manager/-/mongodb-topology-manager-2.1.0.tgz#5dee0d517d1474f3003d96cc20c7a41ea9d263e9"
+ dependencies:
+ bluebird "^3.5.1"
+ co "^4.6.0"
+ kerberos "^1.0.0"
+ mkdirp "^0.5.1"
+ mongodb-core "^3.1.2"
+ rimraf "^2.6.2"
+
+mongodb-version-list@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/mongodb-version-list/-/mongodb-version-list-1.0.0.tgz#f25031cfcdd6f145b1de8fce2a4ebec0288bb4a4"
+ dependencies:
+ cheerio "^0.22.0"
+ debug "^2.2.0"
+ downcache "^0.0.9"
+ fs-extra "^1.0.0"
+ minimist "^1.1.1"
+ semver "^5.0.1"
+
+mongodb-version-manager@^1.0.7:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/mongodb-version-manager/-/mongodb-version-manager-1.1.3.tgz#7cf543a9b33b663d09cf6f8ca91264b408418209"
+ dependencies:
+ ampersand-state "^5.0.1"
+ async "^2.1.2"
+ chalk "^2.1.0"
+ debug "^3.0.1"
+ docopt "^0.6.2"
+ download "^6.2.5"
+ figures "^2.0.0"
+ fs-extra "^4.0.2"
+ get-mongodb-version "^1.0.0"
+ lodash.defaults "^4.2.0"
+ lodash.difference "^4.1.1"
+ mongodb-download-url "^0.3.3"
+ mongodb-version-list "^1.0.0"
+ semver "^5.3.0"
+ tildify "^1.2.0"
+ untildify "^3.0.2"
+
+mongodb@^2.0.39:
+ version "2.2.36"
+ resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-2.2.36.tgz#1c573680b2849fb0f47acbba3dc5fa228de975f5"
+ dependencies:
+ es6-promise "3.2.1"
+ mongodb-core "2.1.20"
+ readable-stream "2.2.7"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+
+mute-stream@0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+
+nan@^2.10.0:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.0.tgz#574e360e4d954ab16966ec102c0c049fd961a099"
+
+natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+
+nise@^1.2.0:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.3.tgz#d1996e8d15256ceff1a0a1596e0c72bff370e37c"
+ dependencies:
+ "@sinonjs/formatio" "^2.0.0"
+ just-extend "^1.1.27"
+ lolex "^2.3.2"
+ path-to-regexp "^1.7.0"
+ text-encoding "^0.6.4"
+
+node-abi@^2.2.0:
+ version "2.4.3"
+ resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.4.3.tgz#43666b7b17e57863e572409edbb82115ac7af28b"
+ dependencies:
+ semver "^5.4.1"
+
+noop-logger@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2"
+
+nopt@3.x:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
+ dependencies:
+ abbrev "1"
+
+normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
+ dependencies:
+ hosted-git-info "^2.1.4"
+ is-builtin-module "^1.0.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
+npm-conf@^1.1.0:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9"
+ dependencies:
+ config-chain "^1.1.11"
+ pify "^3.0.0"
+
+npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ dependencies:
+ path-key "^2.0.0"
+
+npmlog@^2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-2.0.4.tgz#98b52530f2514ca90d09ec5b22c8846722375692"
+ dependencies:
+ ansi "~0.3.1"
+ are-we-there-yet "~1.1.2"
+ gauge "~1.2.5"
+
+npmlog@^4.0.1:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
+ dependencies:
+ are-we-there-yet "~1.1.2"
+ console-control-strings "~1.1.0"
+ gauge "~2.7.3"
+ set-blocking "~2.0.0"
+
+nth-check@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4"
+ dependencies:
+ boolbase "~1.0.0"
+
+null-check@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd"
+
+number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+
+oauth-sign@~0.8.1:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
+
+oauth-sign@~0.9.0:
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
+
+object-assign@^4.0.1, object-assign@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+
+once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ dependencies:
+ wrappy "1"
+
+onetime@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
+ dependencies:
+ mimic-fn "^1.0.0"
+
+optimist@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
+ dependencies:
+ minimist "~0.0.1"
+ wordwrap "~0.0.2"
+
+optionator@^0.8.1, optionator@^0.8.2:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
+ dependencies:
+ deep-is "~0.1.3"
+ fast-levenshtein "~2.0.4"
+ levn "~0.3.0"
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+ wordwrap "~1.0.0"
+
+os-homedir@^1.0.0, os-homedir@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+
+os-locale@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
+ dependencies:
+ execa "^0.7.0"
+ lcid "^1.0.0"
+ mem "^1.1.0"
+
+os-tmpdir@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+
+p-cancelable@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa"
+
+p-event@^1.0.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/p-event/-/p-event-1.3.0.tgz#8e6b4f4f65c72bc5b6fe28b75eda874f96a4a085"
+ dependencies:
+ p-timeout "^1.1.1"
+
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+
+p-limit@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+ dependencies:
+ p-try "^1.0.0"
+
+p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ dependencies:
+ p-limit "^1.1.0"
+
+p-timeout@^1.1.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386"
+ dependencies:
+ p-finally "^1.0.0"
+
+p-try@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+
+parse-github-repo-url@^1.3.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50"
+
+parse-json@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ dependencies:
+ error-ex "^1.2.0"
+
+parse-json@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
+ dependencies:
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+
+path-exists@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ dependencies:
+ pinkie-promise "^2.0.0"
+
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+
+path-is-inside@^1.0.1, path-is-inside@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
+
+path-key@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+
+path-to-regexp@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
+ dependencies:
+ isarray "0.0.1"
+
+path-type@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
+ dependencies:
+ graceful-fs "^4.1.2"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+path-type@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
+ dependencies:
+ pify "^2.0.0"
+
+path-type@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
+ dependencies:
+ pify "^3.0.0"
+
+pathval@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0"
+
+pend@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
+
+performance-now@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+
+pify@^2.0.0, pify@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+
+pify@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+
+pinkie-promise@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ dependencies:
+ pinkie "^2.0.0"
+
+pinkie@^2.0.0:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+
+pluralize@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
+
+prebuild-install@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.0.0.tgz#bc1a24636beaf0af7945c0a84d4b9249bf191b6b"
+ dependencies:
+ detect-libc "^1.0.3"
+ expand-template "^1.0.2"
+ github-from-package "0.0.0"
+ minimist "^1.2.0"
+ mkdirp "^0.5.1"
+ node-abi "^2.2.0"
+ noop-logger "^0.1.1"
+ npmlog "^4.0.1"
+ os-homedir "^1.0.1"
+ pump "^2.0.1"
+ rc "^1.2.7"
+ simple-get "^2.7.0"
+ tar-fs "^1.13.0"
+ tunnel-agent "^0.6.0"
+ which-pm-runs "^1.0.0"
+
+prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+
+prepend-http@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
+
+prettier@~1.12.0:
+ version "1.12.1"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.12.1.tgz#c1ad20e803e7749faf905a409d2367e06bbe7325"
+
+process-nextick-args@~1.0.6:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
+
+process-nextick-args@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
+
+progress@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
+
+proto-list@~1.2.1:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
+
+prr@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
+
+pseudomap@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+
+psl@^1.1.24:
+ version "1.1.29"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67"
+
+pump@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954"
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+pump@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+punycode@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+
+q@^1.4.1, q@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
+
+qs@~6.3.0:
+ version "6.3.2"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
+
+qs@~6.5.2:
+ version "6.5.2"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+
+quick-lru@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8"
+
+rc@^1.2.7:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+ dependencies:
+ deep-extend "^0.6.0"
+ ini "~1.3.0"
+ minimist "^1.2.0"
+ strip-json-comments "~2.0.1"
+
+read-pkg-up@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
+ dependencies:
+ find-up "^1.0.0"
+ read-pkg "^1.0.0"
+
+read-pkg-up@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
+ dependencies:
+ find-up "^2.0.0"
+ read-pkg "^2.0.0"
+
+read-pkg-up@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
+ dependencies:
+ find-up "^2.0.0"
+ read-pkg "^3.0.0"
+
+read-pkg@^1.0.0, read-pkg@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
+ dependencies:
+ load-json-file "^1.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^1.0.0"
+
+read-pkg@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
+ dependencies:
+ load-json-file "^2.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^2.0.0"
+
+read-pkg@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
+ dependencies:
+ load-json-file "^4.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^3.0.0"
+
+readable-stream@2.2.7:
+ version "2.2.7"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.7.tgz#07057acbe2467b22042d36f98c5ad507054e95b1"
+ dependencies:
+ buffer-shims "~1.0.0"
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "~1.0.0"
+ process-nextick-args "~1.0.6"
+ string_decoder "~1.0.0"
+ util-deprecate "~1.0.1"
+
+"readable-stream@>=1.0.33-1 <1.1.0-0":
+ version "1.0.34"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "0.0.1"
+ string_decoder "~0.10.x"
+
+readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
+redent@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
+ dependencies:
+ indent-string "^2.1.0"
+ strip-indent "^1.0.1"
+
+redent@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa"
+ dependencies:
+ indent-string "^3.0.0"
+ strip-indent "^2.0.0"
+
+regexpp@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab"
+
+repeat-string@^1.5.2:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+
+repeating@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
+ dependencies:
+ is-finite "^1.0.0"
+
+request@2.79.0:
+ version "2.79.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
+ dependencies:
+ aws-sign2 "~0.6.0"
+ aws4 "^1.2.1"
+ caseless "~0.11.0"
+ combined-stream "~1.0.5"
+ extend "~3.0.0"
+ forever-agent "~0.6.1"
+ form-data "~2.1.1"
+ har-validator "~2.0.6"
+ hawk "~3.1.3"
+ http-signature "~1.1.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.7"
+ oauth-sign "~0.8.1"
+ qs "~6.3.0"
+ stringstream "~0.0.4"
+ tough-cookie "~2.3.0"
+ tunnel-agent "~0.4.1"
+ uuid "^3.0.0"
+
+request@^2.65.0, request@^2.69.0:
+ version "2.88.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
+ dependencies:
+ aws-sign2 "~0.7.0"
+ aws4 "^1.8.0"
+ caseless "~0.12.0"
+ combined-stream "~1.0.6"
+ extend "~3.0.2"
+ forever-agent "~0.6.1"
+ form-data "~2.3.2"
+ har-validator "~5.1.0"
+ http-signature "~1.2.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.19"
+ oauth-sign "~0.9.0"
+ performance-now "^2.1.0"
+ qs "~6.5.2"
+ safe-buffer "^5.1.2"
+ tough-cookie "~2.4.3"
+ tunnel-agent "^0.6.0"
+ uuid "^3.3.2"
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+
+require-main-filename@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+
+require-uncached@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
+ dependencies:
+ caller-path "^0.1.0"
+ resolve-from "^1.0.0"
+
+require_optional@^1.0.1, require_optional@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e"
+ dependencies:
+ resolve-from "^2.0.0"
+ semver "^5.1.0"
+
+requizzle@~0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.1.tgz#6943c3530c4d9a7e46f1cddd51c158fc670cdbde"
+ dependencies:
+ underscore "~1.6.0"
+
+resolve-from@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
+
+resolve-from@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
+
+resolve@1.1.x:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
+
+restore-cursor@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
+ dependencies:
+ onetime "^2.0.0"
+ signal-exit "^3.0.2"
+
+right-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
+ dependencies:
+ align-text "^0.1.1"
+
+rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
+ dependencies:
+ glob "^7.0.5"
+
+run-async@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
+ dependencies:
+ is-promise "^2.1.0"
+
+rx-lite-aggregates@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
+ dependencies:
+ rx-lite "*"
+
+rx-lite@*, rx-lite@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
+
+safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+
+"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+
+samsam@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50"
+
+saslprep@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.1.tgz#b644e0ba25b156b652f3cb90df7542f896049ba6"
+
+seek-bzip@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc"
+ dependencies:
+ commander "~2.8.1"
+
+"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0:
+ version "5.5.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477"
+
+set-blocking@^2.0.0, set-blocking@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+
+shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ dependencies:
+ shebang-regex "^1.0.0"
+
+shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+
+signal-exit@^3.0.0, signal-exit@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+
+simple-concat@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6"
+
+simple-get@^2.7.0:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d"
+ dependencies:
+ decompress-response "^3.3.0"
+ once "^1.3.1"
+ simple-concat "^1.0.0"
+
+sinon-chai@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-3.2.0.tgz#ed995e13a8a3cfccec18f218d9b767edc47e0715"
+
+sinon@^4.3.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/sinon/-/sinon-4.5.0.tgz#427ae312a337d3c516804ce2754e8c0d5028cb04"
+ dependencies:
+ "@sinonjs/formatio" "^2.0.0"
+ diff "^3.1.0"
+ lodash.get "^4.4.2"
+ lolex "^2.2.0"
+ nise "^1.2.0"
+ supports-color "^5.1.0"
+ type-detect "^4.0.5"
+
+slice-ansi@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+
+snappy@^6.0.1:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/snappy/-/snappy-6.0.4.tgz#8914f84a273270868828f3e2f10f61631aceabe5"
+ dependencies:
+ bindings "^1.3.0"
+ nan "^2.10.0"
+
+sntp@1.x.x:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
+ dependencies:
+ hoek "2.x.x"
+
+sort-keys-length@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188"
+ dependencies:
+ sort-keys "^1.0.0"
+
+sort-keys@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
+ dependencies:
+ is-plain-obj "^1.0.0"
+
+source-map@^0.4.4:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
+ dependencies:
+ amdefine ">=0.0.4"
+
+source-map@~0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d"
+ dependencies:
+ amdefine ">=0.0.4"
+
+source-map@~0.5.1:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+
+spdx-correct@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82"
+ dependencies:
+ spdx-expression-parse "^3.0.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-exceptions@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9"
+
+spdx-expression-parse@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
+ dependencies:
+ spdx-exceptions "^2.1.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-license-ids@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87"
+
+split2@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493"
+ dependencies:
+ through2 "^2.0.2"
+
+split@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
+ dependencies:
+ through "2"
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+
+sshpk@^1.7.0:
+ version "1.14.2"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98"
+ dependencies:
+ asn1 "~0.2.3"
+ assert-plus "^1.0.0"
+ dashdash "^1.12.0"
+ getpass "^0.1.1"
+ safer-buffer "^2.0.2"
+ optionalDependencies:
+ bcrypt-pbkdf "^1.0.0"
+ ecc-jsbn "~0.1.1"
+ jsbn "~0.1.0"
+ tweetnacl "~0.14.0"
+
+standard-version@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/standard-version/-/standard-version-4.4.0.tgz#99de7a0709e6cafddf9c5984dd342c8cfe66e79f"
+ dependencies:
+ chalk "^1.1.3"
+ conventional-changelog "^1.1.0"
+ conventional-recommended-bump "^1.0.0"
+ dotgitignore "^1.0.3"
+ figures "^1.5.0"
+ fs-access "^1.0.0"
+ semver "^5.1.0"
+ yargs "^8.0.1"
+
+string-width@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+string_decoder@~0.10.x:
+ version "0.10.31"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
+
+string_decoder@~1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
+ dependencies:
+ safe-buffer "~5.1.0"
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ dependencies:
+ safe-buffer "~5.1.0"
+
+stringstream@~0.0.4:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72"
+
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ dependencies:
+ ansi-regex "^3.0.0"
+
+strip-bom@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
+ dependencies:
+ is-utf8 "^0.2.0"
+
+strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+
+strip-dirs@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5"
+ dependencies:
+ is-natural-number "^4.0.1"
+
+strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+
+strip-indent@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
+ dependencies:
+ get-stdin "^4.0.1"
+
+strip-indent@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
+
+strip-json-comments@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+
+strip-outer@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631"
+ dependencies:
+ escape-string-regexp "^1.0.2"
+
+supports-color@3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
+ dependencies:
+ has-flag "^1.0.0"
+
+supports-color@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+
+supports-color@^3.1.0:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
+ dependencies:
+ has-flag "^1.0.0"
+
+supports-color@^5.1.0, supports-color@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ dependencies:
+ has-flag "^3.0.0"
+
+table@4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36"
+ dependencies:
+ ajv "^5.2.3"
+ ajv-keywords "^2.1.0"
+ chalk "^2.1.0"
+ lodash "^4.17.4"
+ slice-ansi "1.0.0"
+ string-width "^2.1.1"
+
+taffydb@2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268"
+
+tar-fs@^1.13.0:
+ version "1.16.3"
+ resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509"
+ dependencies:
+ chownr "^1.0.1"
+ mkdirp "^0.5.1"
+ pump "^1.0.0"
+ tar-stream "^1.1.2"
+
+tar-stream@^1.1.2, tar-stream@^1.5.2:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395"
+ dependencies:
+ bl "^1.0.0"
+ buffer-alloc "^1.1.0"
+ end-of-stream "^1.0.0"
+ fs-constants "^1.0.0"
+ readable-stream "^2.3.0"
+ to-buffer "^1.1.0"
+ xtend "^4.0.0"
+
+text-encoding@^0.6.4:
+ version "0.6.4"
+ resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.6.4.tgz#e399a982257a276dae428bb92845cb71bdc26d19"
+
+text-extensions@^1.0.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.7.0.tgz#faaaba2625ed746d568a23e4d0aacd9bf08a8b39"
+
+text-table@~0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+
+through2@^0.6.3:
+ version "0.6.5"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
+ dependencies:
+ readable-stream ">=1.0.33-1 <1.1.0-0"
+ xtend ">=4.0.0 <4.1.0-0"
+
+through2@^2.0.0, through2@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
+ dependencies:
+ readable-stream "^2.1.5"
+ xtend "~4.0.1"
+
+through@2, "through@>=2.2.7 <3", through@^2.3.6:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+
+tildify@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a"
+ dependencies:
+ os-homedir "^1.0.0"
+
+timed-out@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
+
+tmp@^0.0.33:
+ version "0.0.33"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ dependencies:
+ os-tmpdir "~1.0.2"
+
+to-buffer@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
+
+tough-cookie@~2.3.0:
+ version "2.3.4"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
+ dependencies:
+ punycode "^1.4.1"
+
+tough-cookie@~2.4.3:
+ version "2.4.3"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
+ dependencies:
+ psl "^1.1.24"
+ punycode "^1.4.1"
+
+trim-newlines@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
+
+trim-newlines@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20"
+
+trim-off-newlines@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3"
+
+trim-repeated@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21"
+ dependencies:
+ escape-string-regexp "^1.0.2"
+
+tunnel-agent@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+ dependencies:
+ safe-buffer "^5.0.1"
+
+tunnel-agent@~0.4.1:
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
+
+tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+
+type-check@~0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ dependencies:
+ prelude-ls "~1.1.2"
+
+type-detect@^4.0.0, type-detect@^4.0.5:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+
+typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+
+uglify-js@^2.6:
+ version "2.8.29"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
+ dependencies:
+ source-map "~0.5.1"
+ yargs "~3.10.0"
+ optionalDependencies:
+ uglify-to-browserify "~1.0.0"
+
+uglify-to-browserify@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
+
+unbzip2-stream@^1.0.9:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47"
+ dependencies:
+ buffer "^3.0.1"
+ through "^2.3.6"
+
+underscore-contrib@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/underscore-contrib/-/underscore-contrib-0.3.0.tgz#665b66c24783f8fa2b18c9f8cbb0e2c7d48c26c7"
+ dependencies:
+ underscore "1.6.0"
+
+underscore@1.6.0, underscore@~1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8"
+
+underscore@~1.8.3:
+ version "1.8.3"
+ resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
+
+universalify@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+
+untildify@^3.0.2:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9"
+
+url-parse-lax@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
+ dependencies:
+ prepend-http "^1.0.1"
+
+url-to-options@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9"
+
+util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+
+uuid@^3.0.0, uuid@^3.3.2:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
+
+validate-npm-package-license@^3.0.1:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+ dependencies:
+ spdx-correct "^3.0.0"
+ spdx-expression-parse "^3.0.0"
+
+verror@1.10.0:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ dependencies:
+ assert-plus "^1.0.0"
+ core-util-is "1.0.2"
+ extsprintf "^1.2.0"
+
+which-module@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+
+which-pm-runs@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
+
+which@^1.1.1, which@^1.2.9:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+ dependencies:
+ isexe "^2.0.0"
+
+wide-align@^1.1.0:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
+ dependencies:
+ string-width "^1.0.2 || 2"
+
+window-size@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
+
+wordwrap@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
+
+wordwrap@^1.0.0, wordwrap@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+
+wordwrap@~0.0.2:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+
+worker-farm@^1.5.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0"
+ dependencies:
+ errno "~0.1.7"
+
+wrap-ansi@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+
+write@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
+ dependencies:
+ mkdirp "^0.5.1"
+
+xmlcreate@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-1.0.2.tgz#fa6bf762a60a413fb3dd8f4b03c5b269238d308f"
+
+"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
+
+y18n@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
+
+yallist@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+
+yargs-parser@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
+ dependencies:
+ camelcase "^4.1.0"
+
+yargs@^8.0.1, yargs@^8.0.2:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
+ dependencies:
+ camelcase "^4.1.0"
+ cliui "^3.2.0"
+ decamelize "^1.1.1"
+ get-caller-file "^1.0.1"
+ os-locale "^2.0.0"
+ read-pkg-up "^2.0.0"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1"
+ yargs-parser "^7.0.0"
+
+yargs@~3.10.0:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
+ dependencies:
+ camelcase "^1.0.2"
+ cliui "^2.1.0"
+ decamelize "^1.0.0"
+ window-size "0.1.0"
+
+yauzl@^2.4.2:
+ version "2.10.0"
+ resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
+ dependencies:
+ buffer-crc32 "~0.2.3"
+ fd-slicer "~1.1.0"