@valkey/valkey-glide-darwin-arm64 1.3.0-rc1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/build-ts/src/server-modules/GlideJson.d.ts +5 -5
  2. package/build-ts/src/server-modules/GlideJson.js +7 -7
  3. package/build-ts/src/server-modules/GlideJson.js.map +1 -1
  4. package/node_modules/glide-rs/glide-rs.darwin-arm64.node +0 -0
  5. package/npm/glide/index.ts +2 -0
  6. package/package.json +1 -1
  7. package/rust-client/node_modules/mingo/README.md +81 -42
  8. package/rust-client/node_modules/mingo/dist/cjs/aggregator.js +10 -14
  9. package/rust-client/node_modules/mingo/dist/cjs/core.js +8 -13
  10. package/rust-client/node_modules/mingo/dist/cjs/cursor.js +24 -12
  11. package/rust-client/node_modules/mingo/dist/cjs/operators/_predicates.js +0 -1
  12. package/rust-client/node_modules/mingo/dist/cjs/operators/accumulator/bottomN.js +3 -2
  13. package/rust-client/node_modules/mingo/dist/cjs/operators/accumulator/topN.js +3 -4
  14. package/rust-client/node_modules/mingo/dist/cjs/operators/expression/array/sortArray.js +3 -2
  15. package/rust-client/node_modules/mingo/dist/cjs/operators/pipeline/fill.js +1 -1
  16. package/rust-client/node_modules/mingo/dist/cjs/operators/pipeline/lookup.js +3 -4
  17. package/rust-client/node_modules/mingo/dist/cjs/operators/pipeline/project.js +78 -85
  18. package/rust-client/node_modules/mingo/dist/cjs/operators/update/_internal.js +22 -0
  19. package/rust-client/node_modules/mingo/dist/cjs/operators/update/addToSet.js +1 -1
  20. package/rust-client/node_modules/mingo/dist/cjs/operators/update/bit.js +1 -1
  21. package/rust-client/node_modules/mingo/dist/cjs/operators/update/currentDate.js +1 -1
  22. package/rust-client/node_modules/mingo/dist/cjs/operators/update/inc.js +1 -1
  23. package/rust-client/node_modules/mingo/dist/cjs/operators/update/max.js +1 -1
  24. package/rust-client/node_modules/mingo/dist/cjs/operators/update/min.js +1 -1
  25. package/rust-client/node_modules/mingo/dist/cjs/operators/update/mul.js +1 -1
  26. package/rust-client/node_modules/mingo/dist/cjs/operators/update/pop.js +1 -1
  27. package/rust-client/node_modules/mingo/dist/cjs/operators/update/pull.js +1 -1
  28. package/rust-client/node_modules/mingo/dist/cjs/operators/update/pullAll.js +2 -1
  29. package/rust-client/node_modules/mingo/dist/cjs/operators/update/push.js +1 -1
  30. package/rust-client/node_modules/mingo/dist/cjs/operators/update/rename.js +1 -1
  31. package/rust-client/node_modules/mingo/dist/cjs/operators/update/set.js +1 -1
  32. package/rust-client/node_modules/mingo/dist/cjs/operators/update/unset.js +1 -1
  33. package/rust-client/node_modules/mingo/dist/cjs/query.js +10 -14
  34. package/rust-client/node_modules/mingo/dist/cjs/updater.js +5 -19
  35. package/rust-client/node_modules/mingo/dist/cjs/util.js +30 -18
  36. package/rust-client/node_modules/mingo/dist/esm/aggregator.js +11 -15
  37. package/rust-client/node_modules/mingo/dist/esm/core.js +8 -13
  38. package/rust-client/node_modules/mingo/dist/esm/cursor.js +27 -13
  39. package/rust-client/node_modules/mingo/dist/esm/operators/_predicates.js +0 -1
  40. package/rust-client/node_modules/mingo/dist/esm/operators/accumulator/bottomN.js +3 -2
  41. package/rust-client/node_modules/mingo/dist/esm/operators/accumulator/topN.js +3 -4
  42. package/rust-client/node_modules/mingo/dist/esm/operators/expression/array/sortArray.js +3 -2
  43. package/rust-client/node_modules/mingo/dist/esm/operators/pipeline/fill.js +1 -1
  44. package/rust-client/node_modules/mingo/dist/esm/operators/pipeline/lookup.js +3 -4
  45. package/rust-client/node_modules/mingo/dist/esm/operators/pipeline/project.js +80 -87
  46. package/rust-client/node_modules/mingo/dist/esm/operators/update/_internal.js +11 -0
  47. package/rust-client/node_modules/mingo/dist/esm/operators/update/addToSet.js +7 -2
  48. package/rust-client/node_modules/mingo/dist/esm/operators/update/bit.js +6 -2
  49. package/rust-client/node_modules/mingo/dist/esm/operators/update/currentDate.js +6 -2
  50. package/rust-client/node_modules/mingo/dist/esm/operators/update/inc.js +2 -2
  51. package/rust-client/node_modules/mingo/dist/esm/operators/update/max.js +6 -2
  52. package/rust-client/node_modules/mingo/dist/esm/operators/update/min.js +6 -2
  53. package/rust-client/node_modules/mingo/dist/esm/operators/update/mul.js +6 -2
  54. package/rust-client/node_modules/mingo/dist/esm/operators/update/pop.js +6 -2
  55. package/rust-client/node_modules/mingo/dist/esm/operators/update/pull.js +6 -2
  56. package/rust-client/node_modules/mingo/dist/esm/operators/update/pullAll.js +2 -1
  57. package/rust-client/node_modules/mingo/dist/esm/operators/update/push.js +7 -2
  58. package/rust-client/node_modules/mingo/dist/esm/operators/update/rename.js +6 -2
  59. package/rust-client/node_modules/mingo/dist/esm/operators/update/set.js +7 -2
  60. package/rust-client/node_modules/mingo/dist/esm/operators/update/unset.js +2 -2
  61. package/rust-client/node_modules/mingo/dist/esm/query.js +11 -15
  62. package/rust-client/node_modules/mingo/dist/esm/updater.js +5 -19
  63. package/rust-client/node_modules/mingo/dist/esm/util.js +30 -18
  64. package/rust-client/node_modules/mingo/dist/types/aggregator.d.ts +1 -1
  65. package/rust-client/node_modules/mingo/dist/types/core.d.ts +10 -35
  66. package/rust-client/node_modules/mingo/dist/types/operators/pipeline/project.d.ts +2 -1
  67. package/rust-client/node_modules/mingo/dist/types/operators/update/_internal.d.ts +1 -0
  68. package/rust-client/node_modules/mingo/dist/types/query.d.ts +1 -1
  69. package/rust-client/node_modules/mingo/dist/types/util.d.ts +3 -3
  70. package/rust-client/node_modules/mingo/package.json +1 -1
@@ -1,5 +1,6 @@
1
+ import { UPDATE_OPTIONS } from "./_internal";
1
2
  import { $pull } from "./pull";
2
- const $pullAll = (obj, expr, arrayFilters = [], options = {}) => {
3
+ const $pullAll = (obj, expr, arrayFilters = [], options = UPDATE_OPTIONS) => {
3
4
  const pullExpr = {};
4
5
  Object.entries(expr).forEach(([k, v]) => {
5
6
  pullExpr[k] = { $in: v };
@@ -1,12 +1,17 @@
1
1
  import { compare, has, isEqual, isNumber, isObject, resolve } from "../../util";
2
- import { applyUpdate, clone, walkExpression } from "./_internal";
2
+ import {
3
+ applyUpdate,
4
+ clone,
5
+ UPDATE_OPTIONS,
6
+ walkExpression
7
+ } from "./_internal";
3
8
  const OPERATOR_MODIFIERS = Object.freeze([
4
9
  "$each",
5
10
  "$slice",
6
11
  "$sort",
7
12
  "$position"
8
13
  ]);
9
- const $push = (obj, expr, arrayFilters = [], options = {}) => {
14
+ const $push = (obj, expr, arrayFilters = [], options = UPDATE_OPTIONS) => {
10
15
  return walkExpression(expr, arrayFilters, options, (val, node, queries) => {
11
16
  const args = {
12
17
  $each: [val]
@@ -1,7 +1,11 @@
1
1
  import { has } from "../../util";
2
- import { applyUpdate, walkExpression } from "./_internal";
2
+ import {
3
+ applyUpdate,
4
+ UPDATE_OPTIONS,
5
+ walkExpression
6
+ } from "./_internal";
3
7
  import { $set } from "./set";
4
- const $rename = (obj, expr, arrayFilters = [], options = {}) => {
8
+ const $rename = (obj, expr, arrayFilters = [], options = UPDATE_OPTIONS) => {
5
9
  const res = [];
6
10
  const changed = walkExpression(expr, arrayFilters, options, (val, node, queries) => {
7
11
  return applyUpdate(obj, node, queries, (o, k) => {
@@ -1,6 +1,11 @@
1
1
  import { isEqual } from "../../util";
2
- import { applyUpdate, clone, walkExpression } from "./_internal";
3
- const $set = (obj, expr, arrayFilters = [], options = {}) => {
2
+ import {
3
+ applyUpdate,
4
+ clone,
5
+ UPDATE_OPTIONS,
6
+ walkExpression
7
+ } from "./_internal";
8
+ const $set = (obj, expr, arrayFilters = [], options = UPDATE_OPTIONS) => {
4
9
  return walkExpression(expr, arrayFilters, options, (val, node, queries) => {
5
10
  return applyUpdate(
6
11
  obj,
@@ -1,6 +1,6 @@
1
1
  import { has, isArray } from "../../util";
2
- import { applyUpdate, walkExpression } from "./_internal";
3
- const $unset = (obj, expr, arrayFilters = [], options = {}) => {
2
+ import { applyUpdate, UPDATE_OPTIONS, walkExpression } from "./_internal";
3
+ const $unset = (obj, expr, arrayFilters = [], options = UPDATE_OPTIONS) => {
4
4
  return walkExpression(expr, arrayFilters, options, (_, node, queries) => {
5
5
  return applyUpdate(obj, node, queries, (o, k) => {
6
6
  if (!has(o, k)) return false;
@@ -1,6 +1,6 @@
1
1
  import { getOperator, initOptions } from "./core";
2
2
  import { Cursor } from "./cursor";
3
- import { assert, isObject, isOperator, MingoError, normalize } from "./util";
3
+ import { assert, cloneDeep, isObject, isOperator, normalize } from "./util";
4
4
  const TOP_LEVEL_OPS = new Set(
5
5
  Array.from(["$and", "$or", "$nor", "$expr", "$jsonSchema"])
6
6
  );
@@ -9,7 +9,7 @@ class Query {
9
9
  #options;
10
10
  #condition;
11
11
  constructor(condition, options) {
12
- this.#condition = condition;
12
+ this.#condition = cloneDeep(condition);
13
13
  this.#options = initOptions(options);
14
14
  this.#compiled = [];
15
15
  this.compile();
@@ -22,6 +22,10 @@ class Query {
22
22
  const whereOperator = {};
23
23
  for (const [field, expr] of Object.entries(this.#condition)) {
24
24
  if ("$where" === field) {
25
+ assert(
26
+ this.#options.scriptEnabled,
27
+ "$where operator requires 'scriptEnabled' option to be true."
28
+ );
25
29
  Object.assign(whereOperator, { field, expr });
26
30
  } else if (TOP_LEVEL_OPS.has(field)) {
27
31
  this.processOperator(field, field, expr);
@@ -44,25 +48,17 @@ class Query {
44
48
  }
45
49
  processOperator(field, operator, value) {
46
50
  const call = getOperator("query", operator, this.#options);
47
- if (!call) {
48
- throw new MingoError(`unknown query operator ${operator}`);
49
- }
50
- const fn = call(field, value, this.#options);
51
- this.#compiled.push(fn);
51
+ assert(!!call, `unknown query operator ${operator}`);
52
+ this.#compiled.push(call(field, value, this.#options));
52
53
  }
53
54
  /**
54
55
  * Checks if the object passes the query criteria. Returns true if so, false otherwise.
55
56
  *
56
57
  * @param obj The object to test
57
- * @returns {boolean} True or false
58
+ * @returns {boolean}
58
59
  */
59
60
  test(obj) {
60
- for (let i = 0, len = this.#compiled.length; i < len; i++) {
61
- if (!this.#compiled[i](obj)) {
62
- return false;
63
- }
64
- }
65
- return true;
61
+ return this.#compiled.every((p) => p(obj));
66
62
  }
67
63
  /**
68
64
  * Returns a cursor to select matching documents from the input source.
@@ -74,7 +70,7 @@ class Query {
74
70
  find(collection, projection) {
75
71
  return new Cursor(
76
72
  collection,
77
- (x) => this.test(x),
73
+ (o) => this.test(o),
78
74
  projection || {},
79
75
  this.#options
80
76
  );
@@ -1,24 +1,10 @@
1
- import { initOptions } from "./core";
2
- import * as booleanOperators from "./operators/expression/boolean";
3
- import * as comparisonOperators from "./operators/expression/comparison";
4
- import * as queryOperators from "./operators/query";
5
1
  import * as UPDATE_OPERATORS from "./operators/update";
2
+ import { UPDATE_OPTIONS } from "./operators/update/_internal";
6
3
  import { Query } from "./query";
7
4
  import { assert, has } from "./util";
8
5
  function createUpdater(defaultOptions) {
9
- defaultOptions = defaultOptions || {};
10
- defaultOptions = {
11
- ...defaultOptions,
12
- queryOptions: initOptions(defaultOptions.queryOptions)
13
- };
14
- defaultOptions.queryOptions.context.addQueryOps(queryOperators).addExpressionOps(booleanOperators).addExpressionOps(comparisonOperators);
15
- return (obj, expr, arrayFilters = [], condition = {}, options = {}) => {
16
- const opts = Object.assign({ cloneMode: "copy" }, defaultOptions, options);
17
- Object.assign(opts, {
18
- queryOptions: initOptions(
19
- Object.assign({ useStrictMode: false }, opts?.queryOptions)
20
- )
21
- });
6
+ defaultOptions = defaultOptions ?? UPDATE_OPTIONS;
7
+ return (obj, expr, arrayFilters = [], condition = {}, options = defaultOptions) => {
22
8
  const entry = Object.entries(expr);
23
9
  assert(
24
10
  entry.length === 1,
@@ -31,10 +17,10 @@ function createUpdater(defaultOptions) {
31
17
  );
32
18
  const mutate = UPDATE_OPERATORS[op];
33
19
  if (Object.keys(condition).length) {
34
- const q = condition instanceof Query ? condition : new Query(condition, opts.queryOptions);
20
+ const q = new Query(condition, options.queryOptions);
35
21
  if (!q.test(obj)) return [];
36
22
  }
37
- return mutate(obj, args, arrayFilters, opts);
23
+ return mutate(obj, args, arrayFilters, options);
38
24
  };
39
25
  }
40
26
  const update = createUpdater();
@@ -11,9 +11,6 @@ const DEFAULT_HASH_FUNCTION = (value) => {
11
11
  while (i) hash = (hash << 5) - hash ^ s.charCodeAt(--i);
12
12
  return hash >>> 0;
13
13
  };
14
- const objectProto = Object.prototype;
15
- const arrayProto = Array.prototype;
16
- const getPrototypeOf = Object.getPrototypeOf;
17
14
  const isPrimitive = (v) => typeof v !== "object" && typeof v !== "function" || v === null;
18
15
  const isScalar = (v) => isPrimitive(v) || isDate(v) || isRegExp(v);
19
16
  const SORT_ORDER = {
@@ -123,7 +120,7 @@ function assert(condition, message) {
123
120
  if (!condition) throw new MingoError(message);
124
121
  }
125
122
  const typeOf = (v) => {
126
- const s = objectProto.toString.call(v);
123
+ const s = Object.prototype.toString.call(v);
127
124
  const t = s.substring(8, s.length - 1).toLowerCase();
128
125
  if (t !== "object") return t;
129
126
  const ctor = v.constructor;
@@ -148,7 +145,7 @@ const isNil = (v) => v === null || v === void 0;
148
145
  const truthy = (arg, strict = true) => !!arg || strict && arg === "";
149
146
  const isEmpty = (x) => isNil(x) || isString(x) && !x || isArray(x) && x.length === 0 || isObject(x) && Object.keys(x).length === 0;
150
147
  const ensureArray = (x) => isArray(x) ? x : [x];
151
- const has = (obj, prop) => !!obj && objectProto.hasOwnProperty.call(obj, prop);
148
+ const has = (obj, prop) => !!obj && Object.prototype.hasOwnProperty.call(obj, prop);
152
149
  const isTypedArray = (v) => typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView(v);
153
150
  const cloneDeep = (v, refs) => {
154
151
  if (isNil(v) || isBoolean(v) || isNumber(v) || isString(v)) return v;
@@ -223,23 +220,39 @@ function flatten(xs, depth = 1) {
223
220
  flatten2(xs, depth);
224
221
  return arr;
225
222
  }
223
+ const objToString = Object.prototype.toString;
224
+ function hasCustomToString(o) {
225
+ if (isTypedArray(o)) return true;
226
+ if (typeof o.toString === "function") {
227
+ let proto = Object.getPrototypeOf(o);
228
+ while (proto !== null) {
229
+ if (has(proto, "toString") && proto.toString !== objToString) {
230
+ return true;
231
+ }
232
+ proto = Object.getPrototypeOf(proto);
233
+ }
234
+ }
235
+ return false;
236
+ }
226
237
  function isEqual(a, b) {
227
238
  if (a === b || Object.is(a, b)) return true;
228
- const ctor = !!a && a.constructor || a;
229
- if (a === null || b === null || a === void 0 || b === void 0 || ctor !== b.constructor || ctor === Function) {
230
- return false;
231
- }
239
+ if (a === null || b === null) return false;
240
+ if (typeof a !== typeof b) return false;
241
+ if (typeof a !== "object") return false;
242
+ if (a.constructor !== b.constructor) return false;
243
+ if (a instanceof Date) return +a === +b;
244
+ if (a instanceof RegExp) return a.toString() === b.toString();
245
+ const ctor = a.constructor;
232
246
  if (ctor === Array || ctor === Object) {
233
- const aKeys = Object.keys(a);
234
- const bKeys = Object.keys(b);
247
+ const aKeys = Object.keys(a).sort();
248
+ const bKeys = Object.keys(b).sort();
235
249
  if (aKeys.length !== bKeys.length) return false;
236
- if ((/* @__PURE__ */ new Set([...aKeys, ...bKeys])).size != aKeys.length) return false;
237
- for (const k of aKeys) if (!isEqual(a[k], b[k])) return false;
250
+ for (let i = 0, k = aKeys[i]; i < aKeys.length; k = aKeys[++i]) {
251
+ if (k !== bKeys[i] || !isEqual(a[k], b[k])) return false;
252
+ }
238
253
  return true;
239
254
  }
240
- const proto = getPrototypeOf(a);
241
- const cmp = isTypedArray(a) || proto !== objectProto && proto !== arrayProto && has(proto, "toString");
242
- return cmp && a.toString() === b.toString();
255
+ return hasCustomToString(a) && a.toString() === b.toString();
243
256
  }
244
257
  function unique(input, hashFunction = DEFAULT_HASH_FUNCTION) {
245
258
  const m = ValueMap.init(hashFunction);
@@ -264,8 +277,7 @@ const stringify = (v, refs) => {
264
277
  const keys = Object.keys(v).sort();
265
278
  return "{" + keys.map((k) => `${k}:${stringify(v[k], refs)}`).join() + "}";
266
279
  }
267
- const proto = Object.getPrototypeOf(v);
268
- if (proto !== objectProto && proto !== arrayProto && has(proto, "toString")) {
280
+ if (hasCustomToString(v)) {
269
281
  return typeOf(v) + "(" + JSON.stringify(v.toString()) + ")";
270
282
  }
271
283
  throw new Error(
@@ -14,7 +14,7 @@ export declare class Aggregator {
14
14
  /**
15
15
  * Returns an {@link Iterator} for lazy evaluation of the pipeline.
16
16
  *
17
- * @param {*} collection An array or iterator object
17
+ * @param collection An array or iterator object
18
18
  * @returns {Iterator} an iterator object
19
19
  */
20
20
  stream(collection: Source, options?: Options): Iterator;
@@ -22,38 +22,17 @@ export interface CollationSpec {
22
22
  */
23
23
  export type JsonSchemaValidator = (schema: AnyObject) => Predicate<AnyObject>;
24
24
  /**
25
- * This controls how input and output documents are processed to meet different application needs.
26
- * Each mode has different trade offs for; immutability, reference sharing, and performance.
25
+ * Specified how input and output documents are processed.
27
26
  */
28
27
  export declare enum ProcessingMode {
29
- /**
30
- * Clone inputs prior to processing, and the outputs if some objects graphs may be shared.
31
- * Use this option to keep input collection immutable and to get distinct output objects.
32
- *
33
- * Note: This option is expensive and reduces performance.
34
- */
35
- CLONE_ALL = "CLONE_ALL",
36
- /**
37
- * Clones inputs prior to processing.
38
- * This option will return output objects with shared graphs in their path if specific operators are used.
39
- * Use this option to keep the input collection immutable.
40
- *
41
- */
42
- CLONE_INPUT = "CLONE_INPUT",
43
- /**
44
- * Clones the output to return distinct objects with no shared paths.
45
- * This option modifies the input collection and during processing.
46
- */
47
- CLONE_OUTPUT = "CLONE_OUTPUT",
48
- /**
49
- * Turn off cloning and modifies the input collection as needed.
50
- * This option will also return output objects with shared paths in their graph when specific operators are used.
51
- * This option provides the greatest speedup for the biggest tradeoff.
52
- * When using the aggregation pipeline, you can use the "$out" operator to collect immutable intermediate results.
53
- *
54
- * @default
55
- */
56
- CLONE_OFF = "CLONE_OFF"
28
+ /** Do not clone inputs or outputs. Resulting documents may share references. @default */
29
+ CLONE_OFF = 0,
30
+ /** Clone input documents to maintain immutability of original input. */
31
+ CLONE_INPUT = 1,
32
+ /** Clone output documents to ensure distinct objects without shared references. */
33
+ CLONE_OUTPUT = 2,
34
+ /** Clone input and output documents. */
35
+ CLONE_ALL = 3
57
36
  }
58
37
  /**
59
38
  * Generic options interface passed down to all operators
@@ -67,7 +46,7 @@ export interface Options {
67
46
  readonly processingMode: ProcessingMode;
68
47
  /** Enforces strict MongoDB compatibilty. See README. @default true. */
69
48
  readonly useStrictMode: boolean;
70
- /** Enable or disable custom script execution via $where, $accumulator, and $function operators. @default true. */
49
+ /** Enable or disable custom script execution using `$where`, `$accumulator`, and `$function` operators. @default true. */
71
50
  readonly scriptEnabled: boolean;
72
51
  /** Enable or disable falling back to the global context for operators. @default true. */
73
52
  readonly useGlobalContext: boolean;
@@ -94,10 +73,6 @@ export declare class ComputeOptions implements Options {
94
73
  private constructor();
95
74
  /**
96
75
  * Initialize new ComputeOptions.
97
- *
98
- * @param options
99
- * @param root
100
- * @param local
101
76
  * @returns {ComputeOptions}
102
77
  */
103
78
  static init(options: Options, root?: Any, local?: LocalData): ComputeOptions;
@@ -1,6 +1,7 @@
1
1
  import { PipelineOperator } from "../../core";
2
2
  /**
3
- * Reshapes each document in the stream, such as by adding new fields or removing existing fields. For each input document, outputs one document.
3
+ * Reshapes each document in the stream, such as by adding new fields or removing existing fields.
4
+ * For each input document, outputs one document.
4
5
  *
5
6
  * See {@link https://www.mongodb.com/docs/manual/reference/operator/aggregation/project usage}.
6
7
  *
@@ -2,6 +2,7 @@ import { CloneMode, UpdateOptions } from "../../core";
2
2
  import { Query } from "../../query";
3
3
  import { Any, AnyObject, ArrayOrObject, Callback } from "../../types";
4
4
  import { WalkOptions } from "../../util";
5
+ export declare const UPDATE_OPTIONS: UpdateOptions;
5
6
  export declare const clone: (mode: CloneMode, val: Any) => Any;
6
7
  export type PathNode = {
7
8
  selector: string;
@@ -18,7 +18,7 @@ export declare class Query {
18
18
  * Checks if the object passes the query criteria. Returns true if so, false otherwise.
19
19
  *
20
20
  * @param obj The object to test
21
- * @returns {boolean} True or false
21
+ * @returns {boolean}
22
22
  */
23
23
  test<T>(obj: T): boolean;
24
24
  /**
@@ -108,9 +108,9 @@ export declare function flatten(xs: Any[], depth?: number): Any[];
108
108
  * For user-defined objects this checks for only referential equality so
109
109
  * two different instances with the same values are not equal.
110
110
  *
111
- * @param {*} a The first value
112
- * @param {*} b The second value
113
- * @return {Boolean} True if value contents are the same, false otherwise.
111
+ * @param a The first value
112
+ * @param b The second value
113
+ * @return True if values are equivalent, false otherwise.
114
114
  */
115
115
  export declare function isEqual(a: Any, b: Any): boolean;
116
116
  /**
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mingo",
3
- "version": "6.5.2",
3
+ "version": "6.5.3",
4
4
  "description": "MongoDB query language for in-memory objects",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",