Socket
Socket
Sign inDemoInstall

sift

Package Overview
Dependencies
Maintainers
2
Versions
155
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 13.1.10 to 13.2.0

8

changelog.md

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

## 13.1.0
- Added stronger types for queries: https://github.com/crcn/sift.js/issues/197
## 13.0.0
- Fix behavior discrepancy with Mongo: https://github.com/crcn/sift.js/issues/196
## 12.0.0

@@ -2,0 +10,0 @@

110

es/index.js

@@ -99,6 +99,12 @@ const typeChecker = (type) => {

}
class NamedBaseOperation extends BaseOperation {
constructor(params, owneryQuery, options, name) {
super(params, owneryQuery, options);
this.name = name;
}
}
class GroupOperation extends BaseOperation {
constructor(params, owneryQuery, options, _children) {
constructor(params, owneryQuery, options, children) {
super(params, owneryQuery, options);
this._children = _children;
this.children = children;
}

@@ -110,4 +116,4 @@ /**

this.done = false;
for (let i = 0, { length } = this._children; i < length; i++) {
this._children[i].reset();
for (let i = 0, { length } = this.children; i < length; i++) {
this.children[i].reset();
}

@@ -120,4 +126,4 @@ }

let success = true;
for (let i = 0, { length } = this._children; i < length; i++) {
const childOperation = this._children[i];
for (let i = 0, { length } = this.children; i < length; i++) {
const childOperation = this.children[i];
childOperation.next(item, key, owner);

@@ -141,2 +147,8 @@ if (!childOperation.success) {

}
class NamedGroupOperation extends GroupOperation {
constructor(params, owneryQuery, options, children, name) {
super(params, owneryQuery, options, children);
this.name = name;
}
}
class QueryOperation extends GroupOperation {

@@ -198,7 +210,7 @@ /**

}
const numericalOperationCreator = (createNumericalOperation) => (params, owneryQuery, options) => {
const numericalOperationCreator = (createNumericalOperation) => (params, owneryQuery, options, name) => {
if (params == null) {
return new NopeOperation(params, owneryQuery, options);
}
return createNumericalOperation(params, owneryQuery, options);
return createNumericalOperation(params, owneryQuery, options, name);
};

@@ -212,3 +224,3 @@ const numericalOperation = (createTester) => numericalOperationCreator((params, owneryQuery, options) => {

});
const createOperation = (name, params, parentQuery, options) => {
const createNamedOperation = (name, params, parentQuery, options) => {
const operationCreator = options.operations[name];

@@ -218,3 +230,3 @@ if (!operationCreator) {

}
return operationCreator(params, parentQuery, options);
return operationCreator(params, parentQuery, options, name);
};

@@ -240,3 +252,7 @@ const containsOperation = (query) => {

};
const createQueryOperation = (query, owneryQuery, options) => {
const createQueryOperation = (query, owneryQuery = null, { compare, operations } = {}) => {
const options = {
compare: compare || equals,
operations: Object.assign({}, operations || {})
};
const [selfOperations, nestedOperations] = createQueryOperations(query, options);

@@ -262,3 +278,3 @@ const ops = [];

if (key.charAt(0) === "$") {
const op = createOperation(key, query[key], query, options);
const op = createNamedOperation(key, query[key], query, options);
// probably just a flag for another operation (like $options)

@@ -275,15 +291,12 @@ if (op != null) {

};
const createQueryTester = (query, { compare, operations } = {}) => {
const operation = createQueryOperation(query, null, {
compare: compare || equals,
operations: Object.assign({}, operations || {})
});
return (item, key, owner) => {
operation.reset();
operation.next(item, key, owner);
return operation.success;
};
const createOperationTester = (operation) => (item, key, owner) => {
operation.reset();
operation.next(item, key, owner);
return operation.success;
};
const createQueryTester = (query, options = {}) => {
return createOperationTester(createQueryOperation(query, null, options));
};
class $Ne extends BaseOperation {
class $Ne extends NamedBaseOperation {
init() {

@@ -304,3 +317,3 @@ this._test = createTester(this.params, this.options.compare);

// https://docs.mongodb.com/manual/reference/operator/query/elemMatch/
class $ElemMatch extends BaseOperation {
class $ElemMatch extends NamedBaseOperation {
init() {

@@ -316,4 +329,5 @@ this._queryOperation = createQueryOperation(this.params, this.owneryQuery, this.options);

this._queryOperation.next(item, key, owner);
this.done = this._queryOperation.done || key === owner.length - 1;
this.success = this._queryOperation.success;
this.done =
this.done || this._queryOperation.done || key === owner.length - 1;
this.success = this.success || this._queryOperation.success;
}

@@ -326,3 +340,3 @@ else {

}
class $Not extends BaseOperation {
class $Not extends NamedBaseOperation {
init() {

@@ -340,3 +354,3 @@ this._queryOperation = createQueryOperation(this.params, this.owneryQuery, this.options);

}
class $Or extends BaseOperation {
class $Or extends NamedBaseOperation {
init() {

@@ -374,3 +388,3 @@ this._ops = this.params.map(op => createQueryOperation(op, null, this.options));

}
class $In extends BaseOperation {
class $In extends NamedBaseOperation {
init() {

@@ -405,3 +419,3 @@ this._testers = this.params.map(value => {

}
class $Exists extends BaseOperation {
class $Exists extends NamedBaseOperation {
next(item, key, owner) {

@@ -414,5 +428,5 @@ if (owner.hasOwnProperty(key) === this.params) {

}
class $And extends GroupOperation {
constructor(params, owneryQuery, options) {
super(params, owneryQuery, options, params.map(query => createQueryOperation(query, owneryQuery, options)));
class $And extends NamedGroupOperation {
constructor(params, owneryQuery, options, name) {
super(params, owneryQuery, options, params.map(query => createQueryOperation(query, owneryQuery, options)), name);
}

@@ -424,8 +438,8 @@ next(item, key, owner) {

const $eq = (params, owneryQuery, options) => new EqualsOperation(params, owneryQuery, options);
const $ne = (params, owneryQuery, options) => new $Ne(params, owneryQuery, options);
const $or = (params, owneryQuery, options) => new $Or(params, owneryQuery, options);
const $nor = (params, owneryQuery, options) => new $Nor(params, owneryQuery, options);
const $elemMatch = (params, owneryQuery, options) => new $ElemMatch(params, owneryQuery, options);
const $nin = (params, owneryQuery, options) => new $Nin(params, owneryQuery, options);
const $in = (params, owneryQuery, options) => new $In(params, owneryQuery, options);
const $ne = (params, owneryQuery, options, name) => new $Ne(params, owneryQuery, options, name);
const $or = (params, owneryQuery, options, name) => new $Or(params, owneryQuery, options, name);
const $nor = (params, owneryQuery, options, name) => new $Nor(params, owneryQuery, options, name);
const $elemMatch = (params, owneryQuery, options, name) => new $ElemMatch(params, owneryQuery, options, name);
const $nin = (params, owneryQuery, options, name) => new $Nin(params, owneryQuery, options, name);
const $in = (params, owneryQuery, options, name) => new $In(params, owneryQuery, options, name);
const $lt = numericalOperation(params => b => b < params);

@@ -436,7 +450,7 @@ const $lte = numericalOperation(params => b => b <= params);

const $mod = ([mod, equalsValue], owneryQuery, options) => new EqualsOperation(b => comparable(b) % mod === equalsValue, owneryQuery, options);
const $exists = (params, owneryQuery, options) => new $Exists(params, owneryQuery, options);
const $exists = (params, owneryQuery, options, name) => new $Exists(params, owneryQuery, options, name);
const $regex = (pattern, owneryQuery, options) => new EqualsOperation(new RegExp(pattern, owneryQuery.$options), owneryQuery, options);
const $not = (params, owneryQuery, options) => new $Not(params, owneryQuery, options);
const $not = (params, owneryQuery, options, name) => new $Not(params, owneryQuery, options, name);
const $type = (clazz, owneryQuery, options) => new EqualsOperation(b => (b != null ? b instanceof clazz || b.constructor === clazz : false), owneryQuery, options);
const $and = (params, ownerQuery, options) => new $And(params, ownerQuery, options);
const $and = (params, ownerQuery, options, name) => new $And(params, ownerQuery, options, name);
const $all = $and;

@@ -484,11 +498,15 @@ const $size = (params, ownerQuery, options) => new EqualsOperation(b => b && b.length === params, ownerQuery, options);

const createDefaultQueryTester = (query, { compare, operations } = {}) => {
return createQueryTester(query, {
const createDefaultQueryOperation = (query, ownerQuery, { compare, operations } = {}) => {
return createQueryOperation(query, ownerQuery, {
compare: compare,
operations: Object.assign({}, defaultOperations, operations)
operations: Object.assign({}, defaultOperations, operations || {})
});
};
const createDefaultQueryTester = (query, options = {}) => {
const op = createDefaultQueryOperation(query, null, options);
return createOperationTester(op);
};
export default createDefaultQueryTester;
export { $all, $and, $elemMatch, $eq, $exists, $gt, $gte, $in, $lt, $lte, $mod, $ne, $nin, $nor, $not, $options, $or, $regex, $size, $type, $where, EqualsOperation, createEqualsOperation, createQueryTester };
export { $all, $and, $elemMatch, $eq, $exists, $gt, $gte, $in, $lt, $lte, $mod, $ne, $nin, $nor, $not, $options, $or, $regex, $size, $type, $where, EqualsOperation, createDefaultQueryOperation, createEqualsOperation, createOperationTester, createQueryOperation, createQueryTester };
//# sourceMappingURL=index.js.map

@@ -129,7 +129,16 @@ /*! *****************************************************************************

}());
var NamedBaseOperation = /** @class */ (function (_super) {
__extends(NamedBaseOperation, _super);
function NamedBaseOperation(params, owneryQuery, options, name) {
var _this = _super.call(this, params, owneryQuery, options) || this;
_this.name = name;
return _this;
}
return NamedBaseOperation;
}(BaseOperation));
var GroupOperation = /** @class */ (function (_super) {
__extends(GroupOperation, _super);
function GroupOperation(params, owneryQuery, options, _children) {
function GroupOperation(params, owneryQuery, options, children) {
var _this = _super.call(this, params, owneryQuery, options) || this;
_this._children = _children;
_this.children = children;
return _this;

@@ -142,4 +151,4 @@ }

this.done = false;
for (var i = 0, length_2 = this._children.length; i < length_2; i++) {
this._children[i].reset();
for (var i = 0, length_2 = this.children.length; i < length_2; i++) {
this.children[i].reset();
}

@@ -152,4 +161,4 @@ };

var success = true;
for (var i = 0, length_3 = this._children.length; i < length_3; i++) {
var childOperation = this._children[i];
for (var i = 0, length_3 = this.children.length; i < length_3; i++) {
var childOperation = this.children[i];
childOperation.next(item, key, owner);

@@ -174,2 +183,11 @@ if (!childOperation.success) {

}(BaseOperation));
var NamedGroupOperation = /** @class */ (function (_super) {
__extends(NamedGroupOperation, _super);
function NamedGroupOperation(params, owneryQuery, options, children, name) {
var _this = _super.call(this, params, owneryQuery, options, children) || this;
_this.name = name;
return _this;
}
return NamedGroupOperation;
}(GroupOperation));
var QueryOperation = /** @class */ (function (_super) {

@@ -249,7 +267,7 @@ __extends(QueryOperation, _super);

}(BaseOperation));
var numericalOperationCreator = function (createNumericalOperation) { return function (params, owneryQuery, options) {
var numericalOperationCreator = function (createNumericalOperation) { return function (params, owneryQuery, options, name) {
if (params == null) {
return new NopeOperation(params, owneryQuery, options);
}
return createNumericalOperation(params, owneryQuery, options);
return createNumericalOperation(params, owneryQuery, options, name);
}; };

@@ -265,3 +283,3 @@ var numericalOperation = function (createTester) {

};
var createOperation = function (name, params, parentQuery, options) {
var createNamedOperation = function (name, params, parentQuery, options) {
var operationCreator = options.operations[name];

@@ -271,3 +289,3 @@ if (!operationCreator) {

}
return operationCreator(params, parentQuery, options);
return operationCreator(params, parentQuery, options, name);
};

@@ -293,4 +311,10 @@ var containsOperation = function (query) {

};
var createQueryOperation = function (query, owneryQuery, options) {
var _a = createQueryOperations(query, options), selfOperations = _a[0], nestedOperations = _a[1];
var createQueryOperation = function (query, owneryQuery, _a) {
if (owneryQuery === void 0) { owneryQuery = null; }
var _b = _a === void 0 ? {} : _a, compare = _b.compare, operations = _b.operations;
var options = {
compare: compare || equals,
operations: Object.assign({}, operations || {})
};
var _c = createQueryOperations(query, options), selfOperations = _c[0], nestedOperations = _c[1];
var ops = [];

@@ -315,3 +339,3 @@ if (selfOperations.length) {

if (key.charAt(0) === "$") {
var op = createOperation(key, query[key], query, options);
var op = createNamedOperation(key, query[key], query, options);
// probably just a flag for another operation (like $options)

@@ -328,13 +352,10 @@ if (op != null) {

};
var createQueryTester = function (query, _a) {
var _b = _a === void 0 ? {} : _a, compare = _b.compare, operations = _b.operations;
var operation = createQueryOperation(query, null, {
compare: compare || equals,
operations: Object.assign({}, operations || {})
});
return function (item, key, owner) {
operation.reset();
operation.next(item, key, owner);
return operation.success;
};
var createOperationTester = function (operation) { return function (item, key, owner) {
operation.reset();
operation.next(item, key, owner);
return operation.success;
}; };
var createQueryTester = function (query, options) {
if (options === void 0) { options = {}; }
return createOperationTester(createQueryOperation(query, null, options));
};

@@ -361,3 +382,3 @@

return $Ne;
}(BaseOperation));
}(NamedBaseOperation));
// https://docs.mongodb.com/manual/reference/operator/query/elemMatch/

@@ -379,4 +400,5 @@ var $ElemMatch = /** @class */ (function (_super) {

this._queryOperation.next(item, key, owner);
this.done = this._queryOperation.done || key === owner.length - 1;
this.success = this._queryOperation.success;
this.done =
this.done || this._queryOperation.done || key === owner.length - 1;
this.success = this.success || this._queryOperation.success;
}

@@ -389,3 +411,3 @@ else {

return $ElemMatch;
}(BaseOperation));
}(NamedBaseOperation));
var $Not = /** @class */ (function (_super) {

@@ -408,3 +430,3 @@ __extends($Not, _super);

return $Not;
}(BaseOperation));
}(NamedBaseOperation));
var $Or = /** @class */ (function (_super) {

@@ -444,3 +466,3 @@ __extends($Or, _super);

return $Or;
}(BaseOperation));
}(NamedBaseOperation));
var $Nor = /** @class */ (function (_super) {

@@ -486,3 +508,3 @@ __extends($Nor, _super);

return $In;
}(BaseOperation));
}(NamedBaseOperation));
var $Nin = /** @class */ (function (_super) {

@@ -511,7 +533,7 @@ __extends($Nin, _super);

return $Exists;
}(BaseOperation));
}(NamedBaseOperation));
var $And = /** @class */ (function (_super) {
__extends($And, _super);
function $And(params, owneryQuery, options) {
return _super.call(this, params, owneryQuery, options, params.map(function (query) { return createQueryOperation(query, owneryQuery, options); })) || this;
function $And(params, owneryQuery, options, name) {
return _super.call(this, params, owneryQuery, options, params.map(function (query) { return createQueryOperation(query, owneryQuery, options); }), name) || this;
}

@@ -522,18 +544,12 @@ $And.prototype.next = function (item, key, owner) {

return $And;
}(GroupOperation));
}(NamedGroupOperation));
var $eq = function (params, owneryQuery, options) {
return new EqualsOperation(params, owneryQuery, options);
};
var $ne = function (params, owneryQuery, options) {
return new $Ne(params, owneryQuery, options);
};
var $or = function (params, owneryQuery, options) { return new $Or(params, owneryQuery, options); };
var $nor = function (params, owneryQuery, options) { return new $Nor(params, owneryQuery, options); };
var $elemMatch = function (params, owneryQuery, options) { return new $ElemMatch(params, owneryQuery, options); };
var $nin = function (params, owneryQuery, options) {
return new $Nin(params, owneryQuery, options);
};
var $in = function (params, owneryQuery, options) {
return new $In(params, owneryQuery, options);
};
var $ne = function (params, owneryQuery, options, name) { return new $Ne(params, owneryQuery, options, name); };
var $or = function (params, owneryQuery, options, name) { return new $Or(params, owneryQuery, options, name); };
var $nor = function (params, owneryQuery, options, name) { return new $Nor(params, owneryQuery, options, name); };
var $elemMatch = function (params, owneryQuery, options, name) { return new $ElemMatch(params, owneryQuery, options, name); };
var $nin = function (params, owneryQuery, options, name) { return new $Nin(params, owneryQuery, options, name); };
var $in = function (params, owneryQuery, options, name) { return new $In(params, owneryQuery, options, name); };
var $lt = numericalOperation(function (params) { return function (b) { return b < params; }; });

@@ -547,13 +563,11 @@ var $lte = numericalOperation(function (params) { return function (b) { return b <= params; }; });

};
var $exists = function (params, owneryQuery, options) { return new $Exists(params, owneryQuery, options); };
var $exists = function (params, owneryQuery, options, name) { return new $Exists(params, owneryQuery, options, name); };
var $regex = function (pattern, owneryQuery, options) {
return new EqualsOperation(new RegExp(pattern, owneryQuery.$options), owneryQuery, options);
};
var $not = function (params, owneryQuery, options) {
return new $Not(params, owneryQuery, options);
};
var $not = function (params, owneryQuery, options, name) { return new $Not(params, owneryQuery, options, name); };
var $type = function (clazz, owneryQuery, options) {
return new EqualsOperation(function (b) { return (b != null ? b instanceof clazz || b.constructor === clazz : false); }, owneryQuery, options);
};
var $and = function (params, ownerQuery, options) { return new $And(params, ownerQuery, options); };
var $and = function (params, ownerQuery, options, name) { return new $And(params, ownerQuery, options, name); };
var $all = $and;

@@ -601,12 +615,17 @@ var $size = function (params, ownerQuery, options) { return new EqualsOperation(function (b) { return b && b.length === params; }, ownerQuery, options); };

var createDefaultQueryTester = function (query, _a) {
var createDefaultQueryOperation = function (query, ownerQuery, _a) {
var _b = _a === void 0 ? {} : _a, compare = _b.compare, operations = _b.operations;
return createQueryTester(query, {
return createQueryOperation(query, ownerQuery, {
compare: compare,
operations: Object.assign({}, defaultOperations, operations)
operations: Object.assign({}, defaultOperations, operations || {})
});
};
var createDefaultQueryTester = function (query, options) {
if (options === void 0) { options = {}; }
var op = createDefaultQueryOperation(query, null, options);
return createOperationTester(op);
};
export default createDefaultQueryTester;
export { $all, $and, $elemMatch, $eq, $exists, $gt, $gte, $in, $lt, $lte, $mod, $ne, $nin, $nor, $not, $options, $or, $regex, $size, $type, $where, EqualsOperation, createEqualsOperation, createQueryTester };
export { $all, $and, $elemMatch, $eq, $exists, $gt, $gte, $in, $lt, $lte, $mod, $ne, $nin, $nor, $not, $options, $or, $regex, $size, $type, $where, EqualsOperation, createDefaultQueryOperation, createEqualsOperation, createOperationTester, createQueryOperation, createQueryTester };
//# sourceMappingURL=index.js.map

@@ -1,80 +0,1 @@

// export type SupportedType =
// | string
// | { [index: string]: RegExp | any }
// | number
// | null
// | any;
// export type KeyOrValue<T extends SupportedType> = T;
// export type ElemMatch<T> = { [P in keyof T]?: SiftQuery<T[P]> };
// export type Query<T extends SupportedType> = {
// $eq?: T;
// $ne?: T;
// $or?: T[];
// $gt?: T;
// $gte?: T;
// $lt?: T;
// $lte?: T;
// $mod?: number[];
// $in?: T[];
// $nin?: T[];
// $not?: SiftQuery<T>;
// $type?: any;
// $all?: T[];
// $size?: number;
// $nor?: T[];
// $and?: T[];
// $regex?: RegExp | string;
// $elemMatch?: ExternalQuery<T>;
// $exists?: boolean;
// $where?: string | WhereFn<T>;
// };
// export interface InternalQuery<T extends SupportedType> extends Query<T> {}
// export type ExternalQuery<T extends SupportedType> = ElemMatch<T>;
// export type WhereFn<T extends SupportedType> = (
// this: T,
// value: T,
// index: number,
// array: T
// ) => boolean;
// export type FilterFn = <T>(value: T, index?: number, array?: T[]) => boolean;
// export type SiftQuery<T extends SupportedType> =
// | ExternalQuery<T>
// | InternalQuery<T>;
// export type PluginDefinition<T> = {
// [index: string]: (a: T, b: T) => boolean | number;
// };
// export type PluginFunction<T> = (sift: Sift) => PluginDefinition<T>;
// export type Exec = <T extends SupportedType>(array: T) => T;
// type Options<T> = {
// expressions?: {
// [identifier: string]: (
// item: T,
// query: SiftQuery<T>,
// options: Options<T>
// ) => boolean;
// };
// };
// export interface Sift {
// <T extends SupportedType>(
// query: SiftQuery<T>,
// options?: Options<T>
// ): FilterFn;
// compare<T, K>(a: T, b: K): 0 | -1 | 1;
// }
// declare const Sift: Sift;
// export default Sift;
import sift from "./lib";

@@ -81,0 +2,0 @@

import { Key, Comparator } from "./utils";
export interface Operation {
export interface Operation<TItem> {
readonly success: boolean;
readonly done: boolean;
reset(): any;
next(item: any, key: Key, owner: any): any;
next(item: TItem, key?: Key, owner?: any): any;
}
export declare type Tester = (item: any, key?: Key, owner?: any) => boolean;
export declare type OperationCreator = (params: any, parentQuery: any, options: Options) => Operation;
export interface NamedOperation {
name: string;
}
export declare type OperationCreator<TItem> = (params: any, parentQuery: any, options: Options, name: string) => Operation<TItem>;
declare type BasicValueQuery<TValue> = {

@@ -43,3 +46,3 @@ $eq?: TValue;

export declare type Query<TItemSchema> = TItemSchema | RegExp | NestedQuery<TItemSchema>;
export declare abstract class BaseOperation<TParams> implements Operation {
declare abstract class BaseOperation<TParams, TItem = any> implements Operation<TItem> {
readonly params: TParams;

@@ -55,7 +58,11 @@ readonly owneryQuery: any;

}
export declare abstract class GroupOperation extends BaseOperation<any> {
protected readonly _children: Operation[];
export declare abstract class NamedBaseOperation<TParams, TItem = any> extends BaseOperation<TParams, TItem> implements NamedOperation {
readonly name: string;
constructor(params: TParams, owneryQuery: any, options: Options, name: string);
}
declare abstract class GroupOperation extends BaseOperation<any> {
readonly children: Operation<any>[];
success: boolean;
done: boolean;
constructor(params: any, owneryQuery: any, options: Options, _children: Operation[]);
constructor(params: any, owneryQuery: any, options: Options, children: Operation<any>[]);
/**

@@ -69,10 +76,14 @@ */

}
export declare class QueryOperation extends GroupOperation {
export declare abstract class NamedGroupOperation extends GroupOperation implements NamedOperation {
readonly name: string;
constructor(params: any, owneryQuery: any, options: Options, children: Operation<any>[], name: string);
}
export declare class QueryOperation<TItem> extends GroupOperation {
/**
*/
next(item: any, key: Key, parent: any): void;
next(item: TItem, key: Key, parent: any): void;
}
export declare class NestedOperation extends GroupOperation {
readonly keyPath: Key[];
constructor(keyPath: Key[], params: any, owneryQuery: any, options: Options, children: Operation[]);
constructor(keyPath: Key[], params: any, owneryQuery: any, options: Options, children: Operation<any>[]);
/**

@@ -95,7 +106,7 @@ */

}
export declare const numericalOperationCreator: (createNumericalOperation: OperationCreator) => (params: any, owneryQuery: any, options: Options) => Operation | NopeOperation<any>;
export declare const numericalOperation: (createTester: (any: any) => Tester) => (params: any, owneryQuery: any, options: Options) => Operation | NopeOperation<any>;
export declare const numericalOperationCreator: (createNumericalOperation: OperationCreator<any>) => (params: any, owneryQuery: any, options: Options, name: string) => Operation<any> | NopeOperation<any>;
export declare const numericalOperation: (createTester: (any: any) => Tester) => (params: any, owneryQuery: any, options: Options, name: string) => Operation<any> | NopeOperation<any>;
export declare type Options = {
operations: {
[identifier: string]: OperationCreator;
[identifier: string]: OperationCreator<any>;
};

@@ -105,4 +116,5 @@ compare: (a: any, b: any) => boolean;

export declare const containsOperation: (query: any) => boolean;
export declare const createQueryOperation: (query: any, owneryQuery: any, options: Options) => any;
export declare const createQueryTester: <TItem, TSchema = TItem>(query: Query<TSchema>, { compare, operations }?: Partial<Options>) => (item: TItem, key?: Key, owner?: any) => any;
export declare const createQueryOperation: <TItem, TSchema = TItem>(query: Query<TSchema>, owneryQuery?: any, { compare, operations }?: Partial<Options>) => QueryOperation<TItem>;
export declare const createOperationTester: <TItem>(operation: Operation<TItem>) => (item: TItem, key?: Key, owner?: any) => boolean;
export declare const createQueryTester: <TItem, TSchema = TItem>(query: Query<TSchema>, options?: Partial<Options>) => (item: TItem, key?: Key, owner?: any) => boolean;
export {};

@@ -1,5 +0,6 @@

import { Query, Options, createQueryTester, EqualsOperation, createEqualsOperation } from "./core";
declare const createDefaultQueryTester: <TItem, TSchema extends TItem = TItem>(query: Query<TSchema>, { compare, operations }?: Partial<Options>) => (item: TItem, key?: string | number, owner?: any) => any;
export { Query, EqualsOperation, createQueryTester, createEqualsOperation };
import { Query, Options, createQueryTester, EqualsOperation, createQueryOperation, createEqualsOperation, createOperationTester } from "./core";
declare const createDefaultQueryOperation: <TItem, TSchema extends TItem = TItem>(query: Query<TSchema>, ownerQuery: any, { compare, operations }?: Partial<Options>) => import("./core").QueryOperation<unknown>;
declare const createDefaultQueryTester: <TItem, TSchema extends TItem = TItem>(query: Query<TSchema>, options?: Partial<Options>) => (item: unknown, key?: string | number, owner?: any) => boolean;
export { Query, EqualsOperation, createQueryTester, createOperationTester, createDefaultQueryOperation, createEqualsOperation, createQueryOperation };
export * from "./operations";
export default createDefaultQueryTester;

@@ -135,7 +135,16 @@ (function (global, factory) {

}());
var NamedBaseOperation = /** @class */ (function (_super) {
__extends(NamedBaseOperation, _super);
function NamedBaseOperation(params, owneryQuery, options, name) {
var _this = _super.call(this, params, owneryQuery, options) || this;
_this.name = name;
return _this;
}
return NamedBaseOperation;
}(BaseOperation));
var GroupOperation = /** @class */ (function (_super) {
__extends(GroupOperation, _super);
function GroupOperation(params, owneryQuery, options, _children) {
function GroupOperation(params, owneryQuery, options, children) {
var _this = _super.call(this, params, owneryQuery, options) || this;
_this._children = _children;
_this.children = children;
return _this;

@@ -148,4 +157,4 @@ }

this.done = false;
for (var i = 0, length_2 = this._children.length; i < length_2; i++) {
this._children[i].reset();
for (var i = 0, length_2 = this.children.length; i < length_2; i++) {
this.children[i].reset();
}

@@ -158,4 +167,4 @@ };

var success = true;
for (var i = 0, length_3 = this._children.length; i < length_3; i++) {
var childOperation = this._children[i];
for (var i = 0, length_3 = this.children.length; i < length_3; i++) {
var childOperation = this.children[i];
childOperation.next(item, key, owner);

@@ -180,2 +189,11 @@ if (!childOperation.success) {

}(BaseOperation));
var NamedGroupOperation = /** @class */ (function (_super) {
__extends(NamedGroupOperation, _super);
function NamedGroupOperation(params, owneryQuery, options, children, name) {
var _this = _super.call(this, params, owneryQuery, options, children) || this;
_this.name = name;
return _this;
}
return NamedGroupOperation;
}(GroupOperation));
var QueryOperation = /** @class */ (function (_super) {

@@ -255,7 +273,7 @@ __extends(QueryOperation, _super);

}(BaseOperation));
var numericalOperationCreator = function (createNumericalOperation) { return function (params, owneryQuery, options) {
var numericalOperationCreator = function (createNumericalOperation) { return function (params, owneryQuery, options, name) {
if (params == null) {
return new NopeOperation(params, owneryQuery, options);
}
return createNumericalOperation(params, owneryQuery, options);
return createNumericalOperation(params, owneryQuery, options, name);
}; };

@@ -271,3 +289,3 @@ var numericalOperation = function (createTester) {

};
var createOperation = function (name, params, parentQuery, options) {
var createNamedOperation = function (name, params, parentQuery, options) {
var operationCreator = options.operations[name];

@@ -277,3 +295,3 @@ if (!operationCreator) {

}
return operationCreator(params, parentQuery, options);
return operationCreator(params, parentQuery, options, name);
};

@@ -299,4 +317,10 @@ var containsOperation = function (query) {

};
var createQueryOperation = function (query, owneryQuery, options) {
var _a = createQueryOperations(query, options), selfOperations = _a[0], nestedOperations = _a[1];
var createQueryOperation = function (query, owneryQuery, _a) {
if (owneryQuery === void 0) { owneryQuery = null; }
var _b = _a === void 0 ? {} : _a, compare = _b.compare, operations = _b.operations;
var options = {
compare: compare || equals,
operations: Object.assign({}, operations || {})
};
var _c = createQueryOperations(query, options), selfOperations = _c[0], nestedOperations = _c[1];
var ops = [];

@@ -321,3 +345,3 @@ if (selfOperations.length) {

if (key.charAt(0) === "$") {
var op = createOperation(key, query[key], query, options);
var op = createNamedOperation(key, query[key], query, options);
// probably just a flag for another operation (like $options)

@@ -334,13 +358,10 @@ if (op != null) {

};
var createQueryTester = function (query, _a) {
var _b = _a === void 0 ? {} : _a, compare = _b.compare, operations = _b.operations;
var operation = createQueryOperation(query, null, {
compare: compare || equals,
operations: Object.assign({}, operations || {})
});
return function (item, key, owner) {
operation.reset();
operation.next(item, key, owner);
return operation.success;
};
var createOperationTester = function (operation) { return function (item, key, owner) {
operation.reset();
operation.next(item, key, owner);
return operation.success;
}; };
var createQueryTester = function (query, options) {
if (options === void 0) { options = {}; }
return createOperationTester(createQueryOperation(query, null, options));
};

@@ -367,3 +388,3 @@

return $Ne;
}(BaseOperation));
}(NamedBaseOperation));
// https://docs.mongodb.com/manual/reference/operator/query/elemMatch/

@@ -385,4 +406,5 @@ var $ElemMatch = /** @class */ (function (_super) {

this._queryOperation.next(item, key, owner);
this.done = this._queryOperation.done || key === owner.length - 1;
this.success = this._queryOperation.success;
this.done =
this.done || this._queryOperation.done || key === owner.length - 1;
this.success = this.success || this._queryOperation.success;
}

@@ -395,3 +417,3 @@ else {

return $ElemMatch;
}(BaseOperation));
}(NamedBaseOperation));
var $Not = /** @class */ (function (_super) {

@@ -414,3 +436,3 @@ __extends($Not, _super);

return $Not;
}(BaseOperation));
}(NamedBaseOperation));
var $Or = /** @class */ (function (_super) {

@@ -450,3 +472,3 @@ __extends($Or, _super);

return $Or;
}(BaseOperation));
}(NamedBaseOperation));
var $Nor = /** @class */ (function (_super) {

@@ -492,3 +514,3 @@ __extends($Nor, _super);

return $In;
}(BaseOperation));
}(NamedBaseOperation));
var $Nin = /** @class */ (function (_super) {

@@ -517,7 +539,7 @@ __extends($Nin, _super);

return $Exists;
}(BaseOperation));
}(NamedBaseOperation));
var $And = /** @class */ (function (_super) {
__extends($And, _super);
function $And(params, owneryQuery, options) {
return _super.call(this, params, owneryQuery, options, params.map(function (query) { return createQueryOperation(query, owneryQuery, options); })) || this;
function $And(params, owneryQuery, options, name) {
return _super.call(this, params, owneryQuery, options, params.map(function (query) { return createQueryOperation(query, owneryQuery, options); }), name) || this;
}

@@ -528,18 +550,12 @@ $And.prototype.next = function (item, key, owner) {

return $And;
}(GroupOperation));
}(NamedGroupOperation));
var $eq = function (params, owneryQuery, options) {
return new EqualsOperation(params, owneryQuery, options);
};
var $ne = function (params, owneryQuery, options) {
return new $Ne(params, owneryQuery, options);
};
var $or = function (params, owneryQuery, options) { return new $Or(params, owneryQuery, options); };
var $nor = function (params, owneryQuery, options) { return new $Nor(params, owneryQuery, options); };
var $elemMatch = function (params, owneryQuery, options) { return new $ElemMatch(params, owneryQuery, options); };
var $nin = function (params, owneryQuery, options) {
return new $Nin(params, owneryQuery, options);
};
var $in = function (params, owneryQuery, options) {
return new $In(params, owneryQuery, options);
};
var $ne = function (params, owneryQuery, options, name) { return new $Ne(params, owneryQuery, options, name); };
var $or = function (params, owneryQuery, options, name) { return new $Or(params, owneryQuery, options, name); };
var $nor = function (params, owneryQuery, options, name) { return new $Nor(params, owneryQuery, options, name); };
var $elemMatch = function (params, owneryQuery, options, name) { return new $ElemMatch(params, owneryQuery, options, name); };
var $nin = function (params, owneryQuery, options, name) { return new $Nin(params, owneryQuery, options, name); };
var $in = function (params, owneryQuery, options, name) { return new $In(params, owneryQuery, options, name); };
var $lt = numericalOperation(function (params) { return function (b) { return b < params; }; });

@@ -553,13 +569,11 @@ var $lte = numericalOperation(function (params) { return function (b) { return b <= params; }; });

};
var $exists = function (params, owneryQuery, options) { return new $Exists(params, owneryQuery, options); };
var $exists = function (params, owneryQuery, options, name) { return new $Exists(params, owneryQuery, options, name); };
var $regex = function (pattern, owneryQuery, options) {
return new EqualsOperation(new RegExp(pattern, owneryQuery.$options), owneryQuery, options);
};
var $not = function (params, owneryQuery, options) {
return new $Not(params, owneryQuery, options);
};
var $not = function (params, owneryQuery, options, name) { return new $Not(params, owneryQuery, options, name); };
var $type = function (clazz, owneryQuery, options) {
return new EqualsOperation(function (b) { return (b != null ? b instanceof clazz || b.constructor === clazz : false); }, owneryQuery, options);
};
var $and = function (params, ownerQuery, options) { return new $And(params, ownerQuery, options); };
var $and = function (params, ownerQuery, options, name) { return new $And(params, ownerQuery, options, name); };
var $all = $and;

@@ -607,9 +621,14 @@ var $size = function (params, ownerQuery, options) { return new EqualsOperation(function (b) { return b && b.length === params; }, ownerQuery, options); };

var createDefaultQueryTester = function (query, _a) {
var createDefaultQueryOperation = function (query, ownerQuery, _a) {
var _b = _a === void 0 ? {} : _a, compare = _b.compare, operations = _b.operations;
return createQueryTester(query, {
return createQueryOperation(query, ownerQuery, {
compare: compare,
operations: Object.assign({}, defaultOperations, operations)
operations: Object.assign({}, defaultOperations, operations || {})
});
};
var createDefaultQueryTester = function (query, options) {
if (options === void 0) { options = {}; }
var op = createDefaultQueryOperation(query, null, options);
return createOperationTester(op);
};

@@ -638,3 +657,6 @@ exports.$all = $all;

exports.EqualsOperation = EqualsOperation;
exports.createDefaultQueryOperation = createDefaultQueryOperation;
exports.createEqualsOperation = createEqualsOperation;
exports.createOperationTester = createOperationTester;
exports.createQueryOperation = createQueryOperation;
exports.createQueryTester = createQueryTester;

@@ -641,0 +663,0 @@ exports.default = createDefaultQueryTester;

@@ -1,4 +0,4 @@

import { BaseOperation, EqualsOperation, Options, Operation, Query, GroupOperation } from "./core";
import { NamedBaseOperation, EqualsOperation, Options, Operation, Query, NamedGroupOperation } from "./core";
import { Key } from "./utils";
declare class $Ne extends BaseOperation<any> {
declare class $Ne extends NamedBaseOperation<any> {
private _test;

@@ -9,5 +9,4 @@ init(): void;

}
declare class $ElemMatch extends BaseOperation<Query<any>> {
declare class $ElemMatch extends NamedBaseOperation<Query<any>> {
private _queryOperation;
private _current;
init(): void;

@@ -17,3 +16,3 @@ reset(): void;

}
declare class $Not extends BaseOperation<Query<any>> {
declare class $Not extends NamedBaseOperation<Query<any>> {
private _queryOperation;

@@ -24,3 +23,3 @@ init(): void;

}
declare class $Or extends BaseOperation<any> {
declare class $Or extends NamedBaseOperation<any> {
private _ops;

@@ -34,3 +33,3 @@ init(): void;

}
declare class $In extends BaseOperation<any> {
declare class $In extends NamedBaseOperation<any> {
private _testers;

@@ -43,27 +42,27 @@ init(): void;

}
declare class $Exists extends BaseOperation<boolean> {
declare class $Exists extends NamedBaseOperation<boolean> {
next(item: any, key: Key, owner: any): void;
}
declare class $And extends GroupOperation {
constructor(params: Query<any>[], owneryQuery: Query<any>, options: Options);
declare class $And extends NamedGroupOperation {
constructor(params: Query<any>[], owneryQuery: Query<any>, options: Options, name: string);
next(item: any, key: Key, owner: any): void;
}
export declare const $eq: (params: any, owneryQuery: Query<any>, options: Options) => EqualsOperation<any>;
export declare const $ne: (params: any, owneryQuery: Query<any>, options: Options) => $Ne;
export declare const $or: (params: Query<any>[], owneryQuery: Query<any>, options: Options) => $Or;
export declare const $nor: (params: Query<any>[], owneryQuery: Query<any>, options: Options) => $Nor;
export declare const $elemMatch: (params: any, owneryQuery: Query<any>, options: Options) => $ElemMatch;
export declare const $nin: (params: any, owneryQuery: Query<any>, options: Options) => $Nin;
export declare const $in: (params: any, owneryQuery: Query<any>, options: Options) => $In;
export declare const $lt: (params: any, owneryQuery: any, options: Options) => Operation | import("./core").NopeOperation<any>;
export declare const $lte: (params: any, owneryQuery: any, options: Options) => Operation | import("./core").NopeOperation<any>;
export declare const $gt: (params: any, owneryQuery: any, options: Options) => Operation | import("./core").NopeOperation<any>;
export declare const $gte: (params: any, owneryQuery: any, options: Options) => Operation | import("./core").NopeOperation<any>;
export declare const $ne: (params: any, owneryQuery: Query<any>, options: Options, name: string) => $Ne;
export declare const $or: (params: Query<any>[], owneryQuery: Query<any>, options: Options, name: string) => $Or;
export declare const $nor: (params: Query<any>[], owneryQuery: Query<any>, options: Options, name: string) => $Nor;
export declare const $elemMatch: (params: any, owneryQuery: Query<any>, options: Options, name: string) => $ElemMatch;
export declare const $nin: (params: any, owneryQuery: Query<any>, options: Options, name: string) => $Nin;
export declare const $in: (params: any, owneryQuery: Query<any>, options: Options, name: string) => $In;
export declare const $lt: (params: any, owneryQuery: any, options: Options, name: string) => Operation<any> | import("./core").NopeOperation<any>;
export declare const $lte: (params: any, owneryQuery: any, options: Options, name: string) => Operation<any> | import("./core").NopeOperation<any>;
export declare const $gt: (params: any, owneryQuery: any, options: Options, name: string) => Operation<any> | import("./core").NopeOperation<any>;
export declare const $gte: (params: any, owneryQuery: any, options: Options, name: string) => Operation<any> | import("./core").NopeOperation<any>;
export declare const $mod: ([mod, equalsValue]: number[], owneryQuery: Query<any>, options: Options) => EqualsOperation<(b: any) => boolean>;
export declare const $exists: (params: boolean, owneryQuery: Query<any>, options: Options) => $Exists;
export declare const $exists: (params: boolean, owneryQuery: Query<any>, options: Options, name: string) => $Exists;
export declare const $regex: (pattern: string, owneryQuery: Query<any>, options: Options) => EqualsOperation<RegExp>;
export declare const $not: (params: any, owneryQuery: Query<any>, options: Options) => $Not;
export declare const $not: (params: any, owneryQuery: Query<any>, options: Options, name: string) => $Not;
export declare const $type: (clazz: Function, owneryQuery: Query<any>, options: Options) => EqualsOperation<(b: any) => boolean>;
export declare const $and: (params: Query<any>[], ownerQuery: Query<any>, options: Options) => $And;
export declare const $all: (params: Query<any>[], ownerQuery: Query<any>, options: Options) => $And;
export declare const $and: (params: Query<any>[], ownerQuery: Query<any>, options: Options, name: string) => $And;
export declare const $all: (params: Query<any>[], ownerQuery: Query<any>, options: Options, name: string) => $And;
export declare const $size: (params: number, ownerQuery: Query<any>, options: Options) => EqualsOperation<(b: any) => boolean>;

@@ -70,0 +69,0 @@ export declare const $options: () => any;

{
"name": "sift",
"description": "MongoDB query filtering in JavaScript",
"version": "13.1.10",
"version": "13.2.0",
"repository": "crcn/sift.js",

@@ -45,3 +45,2 @@ "sideEffects": false,

"build:types": "tsc -p tsconfig.json --emitDeclarationOnly --outDir lib",
"build:watch": "tsc --watch",
"test": "npm run test:spec && npm run test:types",

@@ -48,0 +47,0 @@ "test:spec": "mocha ./test -R spec",

@@ -135,7 +135,16 @@ (function (global, factory) {

}());
var NamedBaseOperation = /** @class */ (function (_super) {
__extends(NamedBaseOperation, _super);
function NamedBaseOperation(params, owneryQuery, options, name) {
var _this = _super.call(this, params, owneryQuery, options) || this;
_this.name = name;
return _this;
}
return NamedBaseOperation;
}(BaseOperation));
var GroupOperation = /** @class */ (function (_super) {
__extends(GroupOperation, _super);
function GroupOperation(params, owneryQuery, options, _children) {
function GroupOperation(params, owneryQuery, options, children) {
var _this = _super.call(this, params, owneryQuery, options) || this;
_this._children = _children;
_this.children = children;
return _this;

@@ -148,4 +157,4 @@ }

this.done = false;
for (var i = 0, length_2 = this._children.length; i < length_2; i++) {
this._children[i].reset();
for (var i = 0, length_2 = this.children.length; i < length_2; i++) {
this.children[i].reset();
}

@@ -158,4 +167,4 @@ };

var success = true;
for (var i = 0, length_3 = this._children.length; i < length_3; i++) {
var childOperation = this._children[i];
for (var i = 0, length_3 = this.children.length; i < length_3; i++) {
var childOperation = this.children[i];
childOperation.next(item, key, owner);

@@ -180,2 +189,11 @@ if (!childOperation.success) {

}(BaseOperation));
var NamedGroupOperation = /** @class */ (function (_super) {
__extends(NamedGroupOperation, _super);
function NamedGroupOperation(params, owneryQuery, options, children, name) {
var _this = _super.call(this, params, owneryQuery, options, children) || this;
_this.name = name;
return _this;
}
return NamedGroupOperation;
}(GroupOperation));
var QueryOperation = /** @class */ (function (_super) {

@@ -255,7 +273,7 @@ __extends(QueryOperation, _super);

}(BaseOperation));
var numericalOperationCreator = function (createNumericalOperation) { return function (params, owneryQuery, options) {
var numericalOperationCreator = function (createNumericalOperation) { return function (params, owneryQuery, options, name) {
if (params == null) {
return new NopeOperation(params, owneryQuery, options);
}
return createNumericalOperation(params, owneryQuery, options);
return createNumericalOperation(params, owneryQuery, options, name);
}; };

@@ -271,3 +289,3 @@ var numericalOperation = function (createTester) {

};
var createOperation = function (name, params, parentQuery, options) {
var createNamedOperation = function (name, params, parentQuery, options) {
var operationCreator = options.operations[name];

@@ -277,3 +295,3 @@ if (!operationCreator) {

}
return operationCreator(params, parentQuery, options);
return operationCreator(params, parentQuery, options, name);
};

@@ -299,4 +317,10 @@ var containsOperation = function (query) {

};
var createQueryOperation = function (query, owneryQuery, options) {
var _a = createQueryOperations(query, options), selfOperations = _a[0], nestedOperations = _a[1];
var createQueryOperation = function (query, owneryQuery, _a) {
if (owneryQuery === void 0) { owneryQuery = null; }
var _b = _a === void 0 ? {} : _a, compare = _b.compare, operations = _b.operations;
var options = {
compare: compare || equals,
operations: Object.assign({}, operations || {})
};
var _c = createQueryOperations(query, options), selfOperations = _c[0], nestedOperations = _c[1];
var ops = [];

@@ -321,3 +345,3 @@ if (selfOperations.length) {

if (key.charAt(0) === "$") {
var op = createOperation(key, query[key], query, options);
var op = createNamedOperation(key, query[key], query, options);
// probably just a flag for another operation (like $options)

@@ -334,13 +358,10 @@ if (op != null) {

};
var createQueryTester = function (query, _a) {
var _b = _a === void 0 ? {} : _a, compare = _b.compare, operations = _b.operations;
var operation = createQueryOperation(query, null, {
compare: compare || equals,
operations: Object.assign({}, operations || {})
});
return function (item, key, owner) {
operation.reset();
operation.next(item, key, owner);
return operation.success;
};
var createOperationTester = function (operation) { return function (item, key, owner) {
operation.reset();
operation.next(item, key, owner);
return operation.success;
}; };
var createQueryTester = function (query, options) {
if (options === void 0) { options = {}; }
return createOperationTester(createQueryOperation(query, null, options));
};

@@ -367,3 +388,3 @@

return $Ne;
}(BaseOperation));
}(NamedBaseOperation));
// https://docs.mongodb.com/manual/reference/operator/query/elemMatch/

@@ -385,4 +406,5 @@ var $ElemMatch = /** @class */ (function (_super) {

this._queryOperation.next(item, key, owner);
this.done = this._queryOperation.done || key === owner.length - 1;
this.success = this._queryOperation.success;
this.done =
this.done || this._queryOperation.done || key === owner.length - 1;
this.success = this.success || this._queryOperation.success;
}

@@ -395,3 +417,3 @@ else {

return $ElemMatch;
}(BaseOperation));
}(NamedBaseOperation));
var $Not = /** @class */ (function (_super) {

@@ -414,3 +436,3 @@ __extends($Not, _super);

return $Not;
}(BaseOperation));
}(NamedBaseOperation));
var $Or = /** @class */ (function (_super) {

@@ -450,3 +472,3 @@ __extends($Or, _super);

return $Or;
}(BaseOperation));
}(NamedBaseOperation));
var $Nor = /** @class */ (function (_super) {

@@ -492,3 +514,3 @@ __extends($Nor, _super);

return $In;
}(BaseOperation));
}(NamedBaseOperation));
var $Nin = /** @class */ (function (_super) {

@@ -517,7 +539,7 @@ __extends($Nin, _super);

return $Exists;
}(BaseOperation));
}(NamedBaseOperation));
var $And = /** @class */ (function (_super) {
__extends($And, _super);
function $And(params, owneryQuery, options) {
return _super.call(this, params, owneryQuery, options, params.map(function (query) { return createQueryOperation(query, owneryQuery, options); })) || this;
function $And(params, owneryQuery, options, name) {
return _super.call(this, params, owneryQuery, options, params.map(function (query) { return createQueryOperation(query, owneryQuery, options); }), name) || this;
}

@@ -528,18 +550,12 @@ $And.prototype.next = function (item, key, owner) {

return $And;
}(GroupOperation));
}(NamedGroupOperation));
var $eq = function (params, owneryQuery, options) {
return new EqualsOperation(params, owneryQuery, options);
};
var $ne = function (params, owneryQuery, options) {
return new $Ne(params, owneryQuery, options);
};
var $or = function (params, owneryQuery, options) { return new $Or(params, owneryQuery, options); };
var $nor = function (params, owneryQuery, options) { return new $Nor(params, owneryQuery, options); };
var $elemMatch = function (params, owneryQuery, options) { return new $ElemMatch(params, owneryQuery, options); };
var $nin = function (params, owneryQuery, options) {
return new $Nin(params, owneryQuery, options);
};
var $in = function (params, owneryQuery, options) {
return new $In(params, owneryQuery, options);
};
var $ne = function (params, owneryQuery, options, name) { return new $Ne(params, owneryQuery, options, name); };
var $or = function (params, owneryQuery, options, name) { return new $Or(params, owneryQuery, options, name); };
var $nor = function (params, owneryQuery, options, name) { return new $Nor(params, owneryQuery, options, name); };
var $elemMatch = function (params, owneryQuery, options, name) { return new $ElemMatch(params, owneryQuery, options, name); };
var $nin = function (params, owneryQuery, options, name) { return new $Nin(params, owneryQuery, options, name); };
var $in = function (params, owneryQuery, options, name) { return new $In(params, owneryQuery, options, name); };
var $lt = numericalOperation(function (params) { return function (b) { return b < params; }; });

@@ -553,13 +569,11 @@ var $lte = numericalOperation(function (params) { return function (b) { return b <= params; }; });

};
var $exists = function (params, owneryQuery, options) { return new $Exists(params, owneryQuery, options); };
var $exists = function (params, owneryQuery, options, name) { return new $Exists(params, owneryQuery, options, name); };
var $regex = function (pattern, owneryQuery, options) {
return new EqualsOperation(new RegExp(pattern, owneryQuery.$options), owneryQuery, options);
};
var $not = function (params, owneryQuery, options) {
return new $Not(params, owneryQuery, options);
};
var $not = function (params, owneryQuery, options, name) { return new $Not(params, owneryQuery, options, name); };
var $type = function (clazz, owneryQuery, options) {
return new EqualsOperation(function (b) { return (b != null ? b instanceof clazz || b.constructor === clazz : false); }, owneryQuery, options);
};
var $and = function (params, ownerQuery, options) { return new $And(params, ownerQuery, options); };
var $and = function (params, ownerQuery, options, name) { return new $And(params, ownerQuery, options, name); };
var $all = $and;

@@ -604,9 +618,14 @@ var $size = function (params, ownerQuery, options) { return new EqualsOperation(function (b) { return b && b.length === params; }, ownerQuery, options); };

var createDefaultQueryTester = function (query, _a) {
var createDefaultQueryOperation = function (query, ownerQuery, _a) {
var _b = _a === void 0 ? {} : _a, compare = _b.compare, operations = _b.operations;
return createQueryTester(query, {
return createQueryOperation(query, ownerQuery, {
compare: compare,
operations: Object.assign({}, defaultOperations, operations)
operations: Object.assign({}, defaultOperations, operations || {})
});
};
var createDefaultQueryTester = function (query, options) {
if (options === void 0) { options = {}; }
var op = createDefaultQueryOperation(query, null, options);
return createOperationTester(op);
};

@@ -635,3 +654,6 @@ exports.$all = $all;

exports.EqualsOperation = EqualsOperation;
exports.createDefaultQueryOperation = createDefaultQueryOperation;
exports.createEqualsOperation = createEqualsOperation;
exports.createOperationTester = createOperationTester;
exports.createQueryOperation = createQueryOperation;
exports.createQueryTester = createQueryTester;

@@ -638,0 +660,0 @@ exports.default = createDefaultQueryTester;

@@ -15,3 +15,3 @@ !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n=n||self).sift={})}(this,(function(n){"use strict";

PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */var t=function(n,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])})(n,i)};function i(n,i){function r(){this.constructor=n}t(n,i),n.prototype=null===i?Object.create(i):(r.prototype=i.prototype,new r)}var r=function(n){var t="[object "+n+"]";return function(n){return u(n)===t}},u=function(n){return Object.prototype.toString.call(n)},e=function(n){return n instanceof Date?n.getTime():o(n)?n.map(e):n&&"function"==typeof n.toJSON?n.toJSON():n},o=r("Array"),f=r("Object"),c=r("Function"),s=function(n,t){if(null==n&&n==t)return!0;if(n===t)return!0;if(Object.prototype.toString.call(n)!==Object.prototype.toString.call(t))return!1;if(o(n)){if(n.length!==t.length)return!1;for(var i=0,r=n.length;i<r;i++)if(!s(n[i],t[i]))return!1;return!0}if(f(n)){if(Object.keys(n).length!==Object.keys(t).length)return!1;for(var u in n)if(!s(n[u],t[u]))return!1;return!0}return!1},h=function(n,t,i,r,u,e){var f=t[r];if(o(n)&&isNaN(Number(f)))for(var c=0,s=n.length;c<s;c++)if(!h(n[c],t,i,r,c,n))return!1;return r===t.length||null==n?i(n,u,e):h(n[f],t,i,r+1,f,n)},a=function(){function n(n,t,i){this.params=n,this.owneryQuery=t,this.options=i,this.init()}return n.prototype.init=function(){},n.prototype.reset=function(){this.done=!1,this.success=!1},n}(),l=function(n){function t(t,i,r,u){var e=n.call(this,t,i,r)||this;return e.t=u,e}return i(t,n),t.prototype.reset=function(){this.success=!1,this.done=!1;for(var n=0,t=this.t.length;n<t;n++)this.t[n].reset()},t.prototype.childrenNext=function(n,t,i){for(var r=!0,u=!0,e=0,o=this.t.length;e<o;e++){var f=this.t[e];if(f.next(n,t,i),f.success||(u=!1),f.done){if(!f.success)break}else r=!1}this.done=r,this.success=u},t}(a),v=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.next=function(n,t,i){this.childrenNext(n,t,i)},t}(l),w=function(n){function t(t,i,r,u,e){var o=n.call(this,i,r,u,e)||this;return o.keyPath=t,o.i=function(n,t,i){return o.childrenNext(n,t,i),!o.done},o}return i(t,n),t.prototype.next=function(n,t,i){h(n,this.keyPath,this.i,0,t,i)},t}(l),p=function(n,t){if(n instanceof Function)return n;if(n instanceof RegExp)return function(t){var i="string"==typeof t&&n.test(t);return n.lastIndex=0,i};var i=e(n);return function(n){return t(i,e(n))}},$=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.init=function(){this.u=p(this.params,this.options.compare)},t.prototype.next=function(n,t,i){this.u(n,t,i)&&(this.done=!0,this.success=!0)},t}(a),b=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.next=function(){this.done=!0,this.success=!1},t}(a),d=function(n){return t=function(t,i,r){var u=typeof e(t),o=n(t);return new $((function(n){return typeof e(n)===u&&o(n)}),i,r)},function(n,i,r){return null==n?new b(n,i,r):t(n,i,r)};var t},j=function(n,t,i,r){var u=r.operations[n];if(!u)throw new Error("Unsupported operation: "+n);return u(t,i,r)},y=function(n){for(var t in n)if("$"===t.charAt(0))return!0;return!1},O=function(n,t,i,r){if(y(t)){var u=m(t,r),e=u[0];if(u[1].length)throw new Error("Property queries must contain only operations, or exact objects.");return new w(n,t,i,r,e)}return new w(n,t,i,r,[new $(t,i,r)])},_=function(n,t,i){var r=m(n,i),u=r[0],e=r[1],o=[];return u.length&&o.push(new w([],n,t,i,u)),o.push.apply(o,e),1===o.length?o[0]:new v(n,t,i,o)},m=function(n,t){var i,r=[],u=[];if(!(i=n)||i.constructor!==Object&&i.constructor!==Array&&"function Object() { [native code] }"!==i.constructor.toString()&&"function Array() { [native code] }"!==i.constructor.toString()||i.toJSON)return r.push(new $(n,n,t)),[r,u];for(var e in n)if("$"===e.charAt(0)){var o=j(e,n[e],n,t);null!=o&&r.push(o)}else u.push(O(e.split("."),n[e],n,t));return[r,u]},x=function(n,t){var i=void 0===t?{}:t,r=i.compare,u=i.operations,e=_(n,null,{compare:r||s,operations:Object.assign({},u||{})});return function(n,t,i){return e.reset(),e.next(n,t,i),e.success}},g=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.init=function(){this.u=p(this.params,this.options.compare)},t.prototype.reset=function(){n.prototype.reset.call(this),this.success=!0},t.prototype.next=function(n){this.u(n)&&(this.done=!0,this.success=!1)},t}(a),E=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.init=function(){this.o=_(this.params,this.owneryQuery,this.options)},t.prototype.reset=function(){this.o.reset()},t.prototype.next=function(n,t,i){this.o.reset(),o(i)?(this.o.next(n,t,i),this.done=this.o.done||t===i.length-1,this.success=this.o.success):(this.done=!0,this.success=!1)},t}(a),A=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.init=function(){this.o=_(this.params,this.owneryQuery,this.options)},t.prototype.reset=function(){this.o.reset()},t.prototype.next=function(n,t,i){this.o.next(n,t,i),this.done=this.o.done,this.success=!this.o.success},t}(a),k=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.init=function(){var n=this;this.s=this.params.map((function(t){return _(t,null,n.options)}))},t.prototype.reset=function(){this.done=!1,this.success=!1;for(var n=0,t=this.s.length;n<t;n++)this.s[n].reset()},t.prototype.next=function(n,t,i){for(var r=!1,u=!1,e=0,o=this.s.length;e<o;e++){var f=this.s[e];if(f.next(n,t,i),f.success){r=!0,u=f.success;break}}this.success=u,this.done=r},t}(a),F=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.next=function(t,i,r){n.prototype.next.call(this,t,i,r),this.success=!this.success},t}(k),N=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.init=function(){var n=this;this.h=this.params.map((function(t){if(y(t))throw new Error("cannot nest $ under "+n.constructor.name.toLowerCase());return p(t,n.options.compare)}))},t.prototype.next=function(n,t,i){for(var r=!1,u=!1,e=0,o=this.h.length;e<o;e++){if((0,this.h[e])(n)){r=!0,u=!0;break}}this.success=u,this.done=r},t}(a),q=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.next=function(t,i,r){n.prototype.next.call(this,t,i,r),this.success=!this.success},t}(N),M=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.next=function(n,t,i){i.hasOwnProperty(t)===this.params&&(this.done=!0,this.success=!0)},t}(a),P=function(n){function t(t,i,r){return n.call(this,t,i,r,t.map((function(n){return _(n,i,r)})))||this}return i(t,n),t.prototype.next=function(n,t,i){this.childrenNext(n,t,i)},t}(l),R=function(n,t,i){return new $(n,t,i)},z=function(n,t,i){return new g(n,t,i)},C=function(n,t,i){return new k(n,t,i)},D=function(n,t,i){return new F(n,t,i)},I=function(n,t,i){return new E(n,t,i)},S=function(n,t,i){return new q(n,t,i)},U=function(n,t,i){return new N(n,t,i)},B=d((function(n){return function(t){return t<n}})),G=d((function(n){return function(t){return t<=n}})),H=d((function(n){return function(t){return t>n}})),J=d((function(n){return function(t){return t>=n}})),K=function(n,t,i){var r=n[0],u=n[1];return new $((function(n){return e(n)%r===u}),t,i)},L=function(n,t,i){return new M(n,t,i)},Q=function(n,t,i){return new $(new RegExp(n,t.$options),t,i)},T=function(n,t,i){return new A(n,t,i)},V=function(n,t,i){return new $((function(t){return null!=t&&(t instanceof n||t.constructor===n)}),t,i)},W=function(n,t,i){return new P(n,t,i)},X=W,Y=function(n,t,i){return new $((function(t){return t&&t.length===n}),t,i)},Z=function(){return null},nn=function(n,t,i){var r;if(c(n))r=n;else{if(process.env.CSP_ENABLED)throw new Error('In CSP mode, sift does not support strings in "$where" condition');r=new Function("obj","return "+n)}return new $((function(n){return r.bind(n)(n)}),t,i)},tn=Object.freeze({__proto__:null,$eq:R,$ne:z,$or:C,$nor:D,$elemMatch:I,$nin:S,$in:U,$lt:B,$lte:G,$gt:H,$gte:J,$mod:K,$exists:L,$regex:Q,$not:T,$type:V,$and:W,$all:X,$size:Y,$options:Z,$where:nn});n.$all=X,n.$and=W,n.$elemMatch=I,n.$eq=R,n.$exists=L,n.$gt=H,n.$gte=J,n.$in=U,n.$lt=B,n.$lte=G,n.$mod=K,n.$ne=z,n.$nin=S,n.$nor=D,n.$not=T,n.$options=Z,n.$or=C,n.$regex=Q,n.$size=Y,n.$type=V,n.$where=nn,n.EqualsOperation=$,n.createEqualsOperation=function(n,t,i){return new $(n,t,i)},n.createQueryTester=x,n.default=function(n,t){var i=void 0===t?{}:t,r=i.compare,u=i.operations;return x(n,{compare:r,operations:Object.assign({},tn,u)})},Object.defineProperty(n,"l",{value:!0})}));
***************************************************************************** */var t=function(n,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])})(n,i)};function i(n,i){function r(){this.constructor=n}t(n,i),n.prototype=null===i?Object.create(i):(r.prototype=i.prototype,new r)}var r=function(n){var t="[object "+n+"]";return function(n){return u(n)===t}},u=function(n){return Object.prototype.toString.call(n)},e=function(n){return n instanceof Date?n.getTime():o(n)?n.map(e):n&&"function"==typeof n.toJSON?n.toJSON():n},o=r("Array"),f=r("Object"),c=r("Function"),s=function(n,t){if(null==n&&n==t)return!0;if(n===t)return!0;if(Object.prototype.toString.call(n)!==Object.prototype.toString.call(t))return!1;if(o(n)){if(n.length!==t.length)return!1;for(var i=0,r=n.length;i<r;i++)if(!s(n[i],t[i]))return!1;return!0}if(f(n)){if(Object.keys(n).length!==Object.keys(t).length)return!1;for(var u in n)if(!s(n[u],t[u]))return!1;return!0}return!1},h=function(n,t,i,r,u,e){var f=t[r];if(o(n)&&isNaN(Number(f)))for(var c=0,s=n.length;c<s;c++)if(!h(n[c],t,i,r,c,n))return!1;return r===t.length||null==n?i(n,u,e):h(n[f],t,i,r+1,f,n)},a=function(){function n(n,t,i){this.params=n,this.owneryQuery=t,this.options=i,this.init()}return n.prototype.init=function(){},n.prototype.reset=function(){this.done=!1,this.success=!1},n}(),l=function(n){function t(t,i,r,u){var e=n.call(this,t,i,r)||this;return e.name=u,e}return i(t,n),t}(a),v=function(n){function t(t,i,r,u){var e=n.call(this,t,i,r)||this;return e.children=u,e}return i(t,n),t.prototype.reset=function(){this.success=!1,this.done=!1;for(var n=0,t=this.children.length;n<t;n++)this.children[n].reset()},t.prototype.childrenNext=function(n,t,i){for(var r=!0,u=!0,e=0,o=this.children.length;e<o;e++){var f=this.children[e];if(f.next(n,t,i),f.success||(u=!1),f.done){if(!f.success)break}else r=!1}this.done=r,this.success=u},t}(a),w=function(n){function t(t,i,r,u,e){var o=n.call(this,t,i,r,u)||this;return o.name=e,o}return i(t,n),t}(v),p=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.next=function(n,t,i){this.childrenNext(n,t,i)},t}(v),$=function(n){function t(t,i,r,u,e){var o=n.call(this,i,r,u,e)||this;return o.keyPath=t,o.t=function(n,t,i){return o.childrenNext(n,t,i),!o.done},o}return i(t,n),t.prototype.next=function(n,t,i){h(n,this.keyPath,this.t,0,t,i)},t}(v),b=function(n,t){if(n instanceof Function)return n;if(n instanceof RegExp)return function(t){var i="string"==typeof t&&n.test(t);return n.lastIndex=0,i};var i=e(n);return function(n){return t(i,e(n))}},d=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.init=function(){this.i=b(this.params,this.options.compare)},t.prototype.next=function(n,t,i){this.i(n,t,i)&&(this.done=!0,this.success=!0)},t}(a),j=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.next=function(){this.done=!0,this.success=!1},t}(a),y=function(n){return t=function(t,i,r){var u=typeof e(t),o=n(t);return new d((function(n){return typeof e(n)===u&&o(n)}),i,r)},function(n,i,r,u){return null==n?new j(n,i,r):t(n,i,r,u)};var t},O=function(n,t,i,r){var u=r.operations[n];if(!u)throw new Error("Unsupported operation: "+n);return u(t,i,r,n)},_=function(n){for(var t in n)if("$"===t.charAt(0))return!0;return!1},m=function(n,t,i,r){if(_(t)){var u=g(t,r),e=u[0];if(u[1].length)throw new Error("Property queries must contain only operations, or exact objects.");return new $(n,t,i,r,e)}return new $(n,t,i,r,[new d(t,i,r)])},x=function(n,t,i){void 0===t&&(t=null);var r=void 0===i?{}:i,u=r.compare,e=r.operations,o={compare:u||s,operations:Object.assign({},e||{})},f=g(n,o),c=f[0],h=f[1],a=[];return c.length&&a.push(new $([],n,t,o,c)),a.push.apply(a,h),1===a.length?a[0]:new p(n,t,o,a)},g=function(n,t){var i,r=[],u=[];if(!(i=n)||i.constructor!==Object&&i.constructor!==Array&&"function Object() { [native code] }"!==i.constructor.toString()&&"function Array() { [native code] }"!==i.constructor.toString()||i.toJSON)return r.push(new d(n,n,t)),[r,u];for(var e in n)if("$"===e.charAt(0)){var o=O(e,n[e],n,t);null!=o&&r.push(o)}else u.push(m(e.split("."),n[e],n,t));return[r,u]},E=function(n){return function(t,i,r){return n.reset(),n.next(t,i,r),n.success}},A=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.init=function(){this.i=b(this.params,this.options.compare)},t.prototype.reset=function(){n.prototype.reset.call(this),this.success=!0},t.prototype.next=function(n){this.i(n)&&(this.done=!0,this.success=!1)},t}(l),k=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.init=function(){this.u=x(this.params,this.owneryQuery,this.options)},t.prototype.reset=function(){this.u.reset()},t.prototype.next=function(n,t,i){this.u.reset(),o(i)?(this.u.next(n,t,i),this.done=this.done||this.u.done||t===i.length-1,this.success=this.success||this.u.success):(this.done=!0,this.success=!1)},t}(l),F=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.init=function(){this.u=x(this.params,this.owneryQuery,this.options)},t.prototype.reset=function(){this.u.reset()},t.prototype.next=function(n,t,i){this.u.next(n,t,i),this.done=this.u.done,this.success=!this.u.success},t}(l),N=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.init=function(){var n=this;this.o=this.params.map((function(t){return x(t,null,n.options)}))},t.prototype.reset=function(){this.done=!1,this.success=!1;for(var n=0,t=this.o.length;n<t;n++)this.o[n].reset()},t.prototype.next=function(n,t,i){for(var r=!1,u=!1,e=0,o=this.o.length;e<o;e++){var f=this.o[e];if(f.next(n,t,i),f.success){r=!0,u=f.success;break}}this.success=u,this.done=r},t}(l),q=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.next=function(t,i,r){n.prototype.next.call(this,t,i,r),this.success=!this.success},t}(N),M=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.init=function(){var n=this;this.s=this.params.map((function(t){if(_(t))throw new Error("cannot nest $ under "+n.constructor.name.toLowerCase());return b(t,n.options.compare)}))},t.prototype.next=function(n,t,i){for(var r=!1,u=!1,e=0,o=this.s.length;e<o;e++){if((0,this.s[e])(n)){r=!0,u=!0;break}}this.success=u,this.done=r},t}(l),P=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.next=function(t,i,r){n.prototype.next.call(this,t,i,r),this.success=!this.success},t}(M),R=function(n){function t(){return null!==n&&n.apply(this,arguments)||this}return i(t,n),t.prototype.next=function(n,t,i){i.hasOwnProperty(t)===this.params&&(this.done=!0,this.success=!0)},t}(l),z=function(n){function t(t,i,r,u){return n.call(this,t,i,r,t.map((function(n){return x(n,i,r)})),u)||this}return i(t,n),t.prototype.next=function(n,t,i){this.childrenNext(n,t,i)},t}(w),C=function(n,t,i){return new d(n,t,i)},D=function(n,t,i,r){return new A(n,t,i,r)},I=function(n,t,i,r){return new N(n,t,i,r)},S=function(n,t,i,r){return new q(n,t,i,r)},U=function(n,t,i,r){return new k(n,t,i,r)},B=function(n,t,i,r){return new P(n,t,i,r)},G=function(n,t,i,r){return new M(n,t,i,r)},H=y((function(n){return function(t){return t<n}})),J=y((function(n){return function(t){return t<=n}})),K=y((function(n){return function(t){return t>n}})),L=y((function(n){return function(t){return t>=n}})),Q=function(n,t,i){var r=n[0],u=n[1];return new d((function(n){return e(n)%r===u}),t,i)},T=function(n,t,i,r){return new R(n,t,i,r)},V=function(n,t,i){return new d(new RegExp(n,t.$options),t,i)},W=function(n,t,i,r){return new F(n,t,i,r)},X=function(n,t,i){return new d((function(t){return null!=t&&(t instanceof n||t.constructor===n)}),t,i)},Y=function(n,t,i,r){return new z(n,t,i,r)},Z=Y,nn=function(n,t,i){return new d((function(t){return t&&t.length===n}),t,i)},tn=function(){return null},rn=function(n,t,i){var r;if(c(n))r=n;else{if(process.env.CSP_ENABLED)throw new Error('In CSP mode, sift does not support strings in "$where" condition');r=new Function("obj","return "+n)}return new d((function(n){return r.bind(n)(n)}),t,i)},un=Object.freeze({__proto__:null,$eq:C,$ne:D,$or:I,$nor:S,$elemMatch:U,$nin:B,$in:G,$lt:H,$lte:J,$gt:K,$gte:L,$mod:Q,$exists:T,$regex:V,$not:W,$type:X,$and:Y,$all:Z,$size:nn,$options:tn,$where:rn}),en=function(n,t,i){var r=void 0===i?{}:i,u=r.compare,e=r.operations;return x(n,t,{compare:u,operations:Object.assign({},un,e||{})})};n.$all=Z,n.$and=Y,n.$elemMatch=U,n.$eq=C,n.$exists=T,n.$gt=K,n.$gte=L,n.$in=G,n.$lt=H,n.$lte=J,n.$mod=Q,n.$ne=D,n.$nin=B,n.$nor=S,n.$not=W,n.$options=tn,n.$or=I,n.$regex=V,n.$size=nn,n.$type=X,n.$where=rn,n.EqualsOperation=d,n.createDefaultQueryOperation=en,n.createEqualsOperation=function(n,t,i){return new d(n,t,i)},n.createOperationTester=E,n.createQueryOperation=x,n.createQueryTester=function(n,t){return void 0===t&&(t={}),E(x(n,null,t))},n.default=function(n,t){void 0===t&&(t={});var i=en(n,null,t);return E(i)},Object.defineProperty(n,"h",{value:!0})}));
//# sourceMappingURL=sift.min.js.map

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc