Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

mquery

Package Overview
Dependencies
Maintainers
2
Versions
74
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mquery - npm Package Compare versions

Comparing version 3.2.5 to 4.0.0-rc0

.eslintrc.json

7

History.md

@@ -0,1 +1,8 @@

4.0.0-rc0 / 2021-08-19
======================
* BREAKING CHANGE: drop support for Node < 12 #123
* BREAKING CHANGE: upgrade to mongodb driver 4.x: drop support for `findAndModify()`, use native `findOneAndUpdate/Delete` #124
* BREAKING CHANGE: rename findStream -> findCursor #124
* BREAKING CHANGE: use native ES6 promises by default, remove bluebird dependency #123
3.2.5 / 2021-03-29

@@ -2,0 +9,0 @@ ==================

11

lib/collection/collection.js

@@ -7,3 +7,3 @@ 'use strict';

var methods = [
const methods = [
'find',

@@ -18,5 +18,6 @@ 'findOne',

'distinct',
'findAndModify',
'findOneAndDelete',
'findOneAndUpdate',
'aggregate',
'findStream',
'findCursor',
'deleteOne',

@@ -32,4 +33,4 @@ 'deleteMany'

for (var i = 0, len = methods.length; i < len; ++i) {
var method = methods[i];
for (let i = 0, len = methods.length; i < len; ++i) {
const method = methods[i];
Collection.prototype[method] = notImplemented(method);

@@ -36,0 +37,0 @@ }

'use strict';
var env = require('../env');
const env = require('../env');

@@ -5,0 +5,0 @@ if ('unknown' == env.type) {

@@ -7,4 +7,4 @@ 'use strict';

var Collection = require('./collection');
var utils = require('../utils');
const Collection = require('./collection');
const utils = require('../utils');

@@ -27,11 +27,9 @@ function NodeCollection(col) {

NodeCollection.prototype.find = function(match, options, cb) {
this.collection.find(match, options, function(err, cursor) {
if (err) return cb(err);
const cursor = this.collection.find(match, options);
try {
cursor.toArray(cb);
} catch (error) {
cb(error);
}
});
try {
cursor.toArray(cb);
} catch (error) {
cb(error);
}
};

@@ -120,24 +118,23 @@

/**
* findAndModify(match, update, options, function(err, doc))
* findOneAndDelete(match, options, function(err[, result])
*/
NodeCollection.prototype.findAndModify = function(match, update, options, cb) {
var sort = Array.isArray(options.sort) ? options.sort : [];
this.collection.findAndModify(match, sort, update, options, cb);
NodeCollection.prototype.findOneAndDelete = function(match, options, cb) {
this.collection.findOneAndDelete(match, options, cb);
};
/**
* var stream = findStream(match, findOptions, streamOptions)
* findOneAndUpdate(match, update, options, function(err[, result])
*/
NodeCollection.prototype.findStream = function(match, findOptions, streamOptions) {
return this.collection.find(match, findOptions).stream(streamOptions);
NodeCollection.prototype.findOneAndUpdate = function(match, update, options, cb) {
this.collection.findOneAndUpdate(match, update, options, cb);
};
/**
* var cursor = findCursor(match, findOptions)
* var cursor = findCursor(match, options)
*/
NodeCollection.prototype.findCursor = function(match, findOptions) {
return this.collection.find(match, findOptions);
NodeCollection.prototype.findCursor = function(match, options) {
return this.collection.find(match, options);
};

@@ -144,0 +141,0 @@

'use strict';
var denied = exports;
const denied = exports;

@@ -10,4 +10,4 @@ denied.distinct = function(self) {

var keys = Object.keys(denied.distinct);
var err;
const keys = Object.keys(denied.distinct);
let err;

@@ -42,4 +42,4 @@ keys.every(function(option) {

denied.findOneAndRemove = function(self) {
var keys = Object.keys(denied.findOneAndUpdate);
var err;
const keys = Object.keys(denied.findOneAndUpdate);
let err;

@@ -71,4 +71,4 @@ keys.every(function(option) {

var keys = Object.keys(denied.count);
var err;
const keys = Object.keys(denied.count);
let err;

@@ -75,0 +75,0 @@ keys.every(function(option) {

@@ -7,6 +7,5 @@ 'use strict';

var Buffer = require('safe-buffer').Buffer;
var RegExpClone = require('regexp-clone');
const RegExpClone = require('regexp-clone');
var specialProperties = ['__proto__', 'constructor', 'prototype'];
const specialProperties = ['__proto__', 'constructor', 'prototype'];

@@ -22,3 +21,3 @@ /**

var clone = exports.clone = function clone(obj, options) {
const clone = exports.clone = function clone(obj, options) {
if (obj === undefined || obj === null)

@@ -69,8 +68,11 @@ return obj;

exports.cloneObject = function cloneObject(obj, options) {
var minimize = options && options.minimize;
var ret = {};
var hasKeys;
var val;
const minimize = options && options.minimize;
const ret = {};
let hasKeys;
let val;
const keys = Object.keys(obj);
let k;
for (const k of Object.keys(obj)) {
for (let i = 0; i < keys.length; ++i) {
k = keys[i];
// Not technically prototype pollution because this wouldn't merge properties

@@ -96,4 +98,4 @@ // onto `Object.prototype`, but avoid properties like __proto__ as a precaution.

exports.cloneArray = function cloneArray(arr, options) {
var ret = [];
for (var i = 0, l = arr.length; i < l; i++)
const ret = [];
for (let i = 0, l = arr.length; i < l; i++)
ret.push(clone(arr[i], options));

@@ -125,3 +127,3 @@ return ret;

// which has historically been a problem.
var args = arguments;
const args = arguments;
soon(function() {

@@ -142,8 +144,5 @@ callback.apply(this, args);

exports.merge = function merge(to, from) {
var keys = Object.keys(from),
i = keys.length,
key;
const keys = Object.keys(from);
while (i--) {
key = keys[i];
for (const key of keys) {
if (specialProperties.indexOf(key) !== -1) {

@@ -173,8 +172,5 @@ continue;

exports.mergeClone = function mergeClone(to, from) {
var keys = Object.keys(from),
i = keys.length,
key;
const keys = Object.keys(from);
while (i--) {
key = keys[i];
for (const key of keys) {
if (specialProperties.indexOf(key) !== -1) {

@@ -274,3 +270,3 @@ continue;

var _toString = Object.prototype.toString;
const _toString = Object.prototype.toString;
exports.toString = function(arg) {

@@ -287,3 +283,3 @@ return _toString.call(arg);

var isObject = exports.isObject = function(arg) {
const isObject = exports.isObject = function(arg) {
return '[object Object]' == exports.toString(arg);

@@ -346,3 +342,3 @@ };

var soon = exports.soon = 'function' == typeof setImmediate
const soon = exports.soon = 'function' == typeof setImmediate
? setImmediate

@@ -359,3 +355,3 @@ : process.nextTick;

exports.cloneBuffer = function(buff) {
var dupe = Buffer.alloc(buff.length);
const dupe = Buffer.alloc(buff.length);
buff.copy(dupe, 0, 0, buff.length);

@@ -362,0 +358,0 @@ return dupe;

{
"name": "mquery",
"version": "3.2.5",
"version": "4.0.0-rc0",
"description": "Expressive query building for MongoDB",

@@ -16,9 +16,7 @@ "main": "lib/mquery.js",

"engines": {
"node": ">=4.0.0"
"node": ">=12.0.0"
},
"dependencies": {
"bluebird": "3.5.1",
"debug": "3.1.0",
"debug": "4.x",
"regexp-clone": "^1.0.0",
"safe-buffer": "5.1.2",
"sliced": "1.0.1"

@@ -28,4 +26,5 @@ },

"eslint": "5.x",
"mocha": "4.1.0",
"mongodb": "3.6.1"
"eslint-plugin-mocha-no-only": "1.1.0",
"mocha": "9.x",
"mongodb": "4.x"
},

@@ -42,46 +41,3 @@ "bugs": {

],
"homepage": "https://github.com/aheckmann/mquery/",
"eslintConfig": {
"env": {
"node": true,
"mocha": true,
"es6": false
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 5
},
"rules": {
"comma-style": "error",
"consistent-this": [
"error",
"_this"
],
"indent": [
"error",
2,
{
"SwitchCase": 1,
"VariableDeclarator": 2
}
],
"keyword-spacing": "error",
"no-console": "off",
"no-multi-spaces": "error",
"func-call-spacing": "error",
"no-trailing-spaces": "error",
"quotes": [
"error",
"single"
],
"semi": "error",
"space-before-blocks": "error",
"space-before-function-paren": [
"error",
"never"
],
"space-infix-ops": "error",
"space-unary-ops": "error"
}
}
"homepage": "https://github.com/aheckmann/mquery/"
}

@@ -269,3 +269,3 @@ # mquery

- `new`: boolean - true to return the modified document rather than the original. defaults to true
- `returnDocument`: string - `'after'` to return the modified document rather than the original. defaults to `'before'`
- `upsert`: boolean - creates the object if it doesn't exist. defaults to false

@@ -1244,4 +1244,2 @@ - `sort`: if multiple docs are found by the match condition, sets the sort order to choose which doc to update

- [hint](#hint) *
- [slaveOk](#slaveOk) *
- [safe](http://docs.mongodb.org/manual/reference/write-concern/): Boolean - passed through to the collection. Setting to `true` is equivalent to `{ w: 1 }`
- [collection](#collection): the collection to query against

@@ -1248,0 +1246,0 @@

@@ -0,8 +1,9 @@

'use strict';
var assert = require('assert');
var mongo = require('mongodb');
const assert = require('assert');
const mongo = require('mongodb');
var uri = process.env.MQUERY_URI || 'mongodb://localhost/mquery';
var client;
var db;
const uri = process.env.MQUERY_URI || 'mongodb://localhost/mquery';
let client;
let db;

@@ -15,3 +16,3 @@ exports.getCollection = function(cb) {

var collection = db.collection('stuff');
const collection = db.collection('stuff');

@@ -18,0 +19,0 @@ // clean test db before starting

@@ -0,7 +1,8 @@

'use strict';
var env = require('../').env;
const env = require('../').env;
console.log('environment: %s', env.type);
var col;
let col;
switch (env.type) {

@@ -8,0 +9,0 @@ case 'node':

'use strict';
var Buffer = require('safe-buffer').Buffer;
var utils = require('../lib/utils');
var assert = require('assert');
var debug = require('debug');
const utils = require('../lib/utils');
const assert = require('assert');
const debug = require('debug');
var mongo;
let mongo;
try {

@@ -22,4 +21,4 @@ mongo = new require('mongodb');

var o1 = new ObjectId('1234');
var o2 = utils.clone(o1);
const o1 = new ObjectId('1234');
const o2 = utils.clone(o1);
assert.ok(o2 instanceof ObjectId);

@@ -35,4 +34,4 @@

var o1 = new ObjectID('1234');
var o2 = utils.clone(o1);
const o1 = new ObjectID('1234');
const o2 = utils.clone(o1);

@@ -48,4 +47,4 @@ assert.ok(o2 instanceof ObjectID);

var o1 = new ObjectIdd('1234');
var o2 = utils.clone(o1);
const o1 = new ObjectIdd('1234');
const o2 = utils.clone(o1);
assert.ok(!(o2 instanceof ObjectIdd));

@@ -63,3 +62,3 @@

ObjectID.prototype.clone = function() {
var ret = new ObjectID(this.id);
const ret = new ObjectID(this.id);
ret.cloned = true;

@@ -69,8 +68,8 @@ return ret;

var id = 1234;
var o1 = new ObjectID(id);
const id = 1234;
const o1 = new ObjectID(id);
assert.equal(id, o1.id);
assert.equal(false, o1.cloned);
var o2 = utils.clone(o1);
const o2 = utils.clone(o1);
assert.ok(o2 instanceof ObjectID);

@@ -85,6 +84,6 @@ assert.equal(id, o2.id);

var tags = [
{dc: 'tag1'}
const tags = [
{ dc: 'tag1' }
];
var prefs = [
const prefs = [
new mongo.ReadPreference('primary'),

@@ -95,5 +94,5 @@ new mongo.ReadPreference(mongo.ReadPreference.PRIMARY_PREFERRED),

var prefsCloned = utils.clone(prefs);
const prefsCloned = utils.clone(prefs);
for (var i = 0; i < prefsCloned.length; i++) {
for (let i = 0; i < prefsCloned.length; i++) {
assert.notEqual(prefs[i], prefsCloned[i]);

@@ -114,5 +113,5 @@ if (prefs[i].tags) {

if (!mongo) return done();
var buf = Buffer.from('hi');
var binary = new mongo.Binary(buf, 2);
var clone = utils.clone(binary);
const buf = Buffer.from('hi');
const binary = new mongo.Binary(buf, 2);
const clone = utils.clone(binary);
assert.equal(binary.sub_type, clone.sub_type);

@@ -125,8 +124,8 @@ assert.equal(String(binary.buffer), String(buf));

it('handles objects with no constructor', function(done) {
var name = '335';
const name = '335';
var o = Object.create(null);
const o = Object.create(null);
o.name = name;
var clone;
let clone;
assert.doesNotThrow(function() {

@@ -142,7 +141,7 @@ clone = utils.clone(o);

it('handles buffers', function(done) {
var buff = Buffer.alloc(10);
const buff = Buffer.alloc(10);
buff.fill(1);
var clone = utils.clone(buff);
const clone = utils.clone(buff);
for (var i = 0; i < buff.length; i++) {
for (let i = 0; i < buff.length; i++) {
assert.equal(buff[i], clone[i]);

@@ -155,4 +154,4 @@ }

it('skips __proto__', function() {
var payload = JSON.parse('{"__proto__": {"polluted": "vulnerable"}}');
var res = utils.clone(payload);
const payload = JSON.parse('{"__proto__": {"polluted": "vulnerable"}}');
const res = utils.clone(payload);

@@ -166,4 +165,4 @@ assert.strictEqual({}.polluted, void 0);

it('avoids prototype pollution', function() {
var payload = JSON.parse('{"__proto__": {"polluted": "vulnerable"}}');
var obj = {};
const payload = JSON.parse('{"__proto__": {"polluted": "vulnerable"}}');
const obj = {};
utils.merge(obj, payload);

@@ -170,0 +169,0 @@

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc