@signaldb/core 1.5.2 → 1.5.3

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.
@@ -163,7 +163,7 @@
163
163
  "src": "src/utils/isEqual.ts"
164
164
  },
165
165
  "src/utils/isFieldExpression.ts": {
166
- "file": "index.cjs27.js",
166
+ "file": "index.cjs29.js",
167
167
  "name": "utils/isFieldExpression",
168
168
  "src": "src/utils/isFieldExpression.ts"
169
169
  },
@@ -175,7 +175,10 @@
175
175
  "src/utils/modify.ts": {
176
176
  "file": "index.cjs10.js",
177
177
  "name": "utils/modify",
178
- "src": "src/utils/modify.ts"
178
+ "src": "src/utils/modify.ts",
179
+ "imports": [
180
+ "src/utils/deepClone.ts"
181
+ ]
179
182
  },
180
183
  "src/utils/project.ts": {
181
184
  "file": "index.cjs22.js",
@@ -197,7 +200,7 @@
197
200
  "src": "src/utils/serializeValue.ts"
198
201
  },
199
202
  "src/utils/set.ts": {
200
- "file": "index.cjs28.js",
203
+ "file": "index.cjs27.js",
201
204
  "name": "utils/set",
202
205
  "src": "src/utils/set.ts"
203
206
  },
@@ -210,7 +213,7 @@
210
213
  ]
211
214
  },
212
215
  "src/utils/uniqueBy.ts": {
213
- "file": "index.cjs29.js",
216
+ "file": "index.cjs28.js",
214
217
  "name": "utils/uniqueBy",
215
218
  "src": "src/utils/uniqueBy.ts"
216
219
  }
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  const mingo = require("mingo");
3
+ const deepClone = require("./index.cjs15.js");
3
4
  function modify(item, modifier) {
4
5
  const hasOperators = Object.keys(modifier).some((key) => key.startsWith("$"));
5
6
  if (!hasOperators)
6
7
  return modifier;
7
- const clonedItem = { ...item };
8
+ const clonedItem = deepClone.default(item);
8
9
  mingo.update(clonedItem, modifier);
9
10
  return clonedItem;
10
11
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  const get = require("./index.cjs25.js");
3
- const set = require("./index.cjs28.js");
3
+ const set = require("./index.cjs27.js");
4
4
  function project(item, fields) {
5
5
  const allFieldsDeactivated = Object.values(fields).every((value) => value === 0);
6
6
  if (allFieldsDeactivated) {
@@ -3,7 +3,7 @@ var __defProp = Object.defineProperty;
3
3
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  const isEqual = require("./index.cjs9.js");
6
- const uniqueBy = require("./index.cjs29.js");
6
+ const uniqueBy = require("./index.cjs28.js");
7
7
  class Observer {
8
8
  /**
9
9
  * Creates a new instance of the `Observer` class.
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const isFieldExpression = require("./index.cjs27.js");
2
+ const isFieldExpression = require("./index.cjs29.js");
3
3
  const serializeValue = require("./index.cjs16.js");
4
4
  function getMatchingKeys(field, selector) {
5
5
  const result = { include: null, exclude: null };
@@ -1,42 +1,29 @@
1
1
  "use strict";
2
- const expressionKeys = /* @__PURE__ */ new Set([
3
- "$eq",
4
- "$gt",
5
- "$gte",
6
- "$lt",
7
- "$lte",
8
- "$in",
9
- "$nin",
10
- "$ne",
11
- "$exists",
12
- "$not",
13
- "$expr",
14
- "$jsonSchema",
15
- "$mod",
16
- "$regex",
17
- "$options",
18
- "$text",
19
- "$where",
20
- "$all",
21
- "$elemMatch",
22
- "$size",
23
- "$bitsAllClear",
24
- "$bitsAllSet",
25
- "$bitsAnyClear",
26
- "$bitsAnySet"
27
- ]);
28
- function isFieldExpression(expression) {
29
- if (typeof expression !== "object" || expression == null) {
30
- return false;
31
- }
32
- const keys = Object.keys(expression);
33
- if (keys.length === 0) {
34
- return false;
35
- }
36
- const hasInvalidKeys = keys.some((key) => !expressionKeys.has(key));
37
- if (hasInvalidKeys)
38
- return false;
39
- const hasValidKeys = keys.every((key) => expressionKeys.has(key));
40
- return hasValidKeys;
2
+ function set(object, path, value, deleteIfUndefined = false) {
3
+ if (object == null)
4
+ return object;
5
+ const segments = path.split(/[.[\]]/g);
6
+ if (segments[0] === "")
7
+ segments.shift();
8
+ if (segments.at(-1) === "")
9
+ segments.pop();
10
+ const apply = (node) => {
11
+ if (segments.length > 1) {
12
+ const key = segments.shift();
13
+ const nextIsNumber = !Number.isNaN(Number.parseInt(segments[0], 10));
14
+ if (node[key] === void 0) {
15
+ node[key] = nextIsNumber ? [] : {};
16
+ }
17
+ apply(node[key]);
18
+ } else {
19
+ if (deleteIfUndefined && value === void 0) {
20
+ delete node[segments[0]];
21
+ return;
22
+ }
23
+ node[segments[0]] = value;
24
+ }
25
+ };
26
+ apply(object);
27
+ return object;
41
28
  }
42
- module.exports = isFieldExpression;
29
+ module.exports = set;
@@ -1,29 +1,9 @@
1
1
  "use strict";
2
- function set(object, path, value, deleteIfUndefined = false) {
3
- if (object == null)
4
- return object;
5
- const segments = path.split(/[.[\]]/g);
6
- if (segments[0] === "")
7
- segments.shift();
8
- if (segments.at(-1) === "")
9
- segments.pop();
10
- const apply = (node) => {
11
- if (segments.length > 1) {
12
- const key = segments.shift();
13
- const nextIsNumber = !Number.isNaN(Number.parseInt(segments[0], 10));
14
- if (node[key] === void 0) {
15
- node[key] = nextIsNumber ? [] : {};
16
- }
17
- apply(node[key]);
18
- } else {
19
- if (deleteIfUndefined && value === void 0) {
20
- delete node[segments[0]];
21
- return;
22
- }
23
- node[segments[0]] = value;
24
- }
25
- };
26
- apply(object);
27
- return object;
2
+ function uniqueBy(array, fn) {
3
+ const set = /* @__PURE__ */ new Set();
4
+ return array.filter((element) => {
5
+ const value = typeof fn === "function" ? fn(element) : element[fn];
6
+ return !set.has(value) && set.add(value);
7
+ });
28
8
  }
29
- module.exports = set;
9
+ module.exports = uniqueBy;
@@ -1,9 +1,42 @@
1
1
  "use strict";
2
- function uniqueBy(array, fn) {
3
- const set = /* @__PURE__ */ new Set();
4
- return array.filter((element) => {
5
- const value = typeof fn === "function" ? fn(element) : element[fn];
6
- return !set.has(value) && set.add(value);
7
- });
2
+ const expressionKeys = /* @__PURE__ */ new Set([
3
+ "$eq",
4
+ "$gt",
5
+ "$gte",
6
+ "$lt",
7
+ "$lte",
8
+ "$in",
9
+ "$nin",
10
+ "$ne",
11
+ "$exists",
12
+ "$not",
13
+ "$expr",
14
+ "$jsonSchema",
15
+ "$mod",
16
+ "$regex",
17
+ "$options",
18
+ "$text",
19
+ "$where",
20
+ "$all",
21
+ "$elemMatch",
22
+ "$size",
23
+ "$bitsAllClear",
24
+ "$bitsAllSet",
25
+ "$bitsAnyClear",
26
+ "$bitsAnySet"
27
+ ]);
28
+ function isFieldExpression(expression) {
29
+ if (typeof expression !== "object" || expression == null) {
30
+ return false;
31
+ }
32
+ const keys = Object.keys(expression);
33
+ if (keys.length === 0) {
34
+ return false;
35
+ }
36
+ const hasInvalidKeys = keys.some((key) => !expressionKeys.has(key));
37
+ if (hasInvalidKeys)
38
+ return false;
39
+ const hasValidKeys = keys.every((key) => expressionKeys.has(key));
40
+ return hasValidKeys;
8
41
  }
9
- module.exports = uniqueBy;
42
+ module.exports = isFieldExpression;
package/dist/index10.mjs CHANGED
@@ -1,9 +1,10 @@
1
1
  import { update } from "mingo";
2
+ import deepClone from "./index15.mjs";
2
3
  function modify(item, modifier) {
3
4
  const hasOperators = Object.keys(modifier).some((key) => key.startsWith("$"));
4
5
  if (!hasOperators)
5
6
  return modifier;
6
- const clonedItem = { ...item };
7
+ const clonedItem = deepClone(item);
7
8
  update(clonedItem, modifier);
8
9
  return clonedItem;
9
10
  }
package/dist/index22.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import get from "./index25.mjs";
2
- import set from "./index28.mjs";
2
+ import set from "./index27.mjs";
3
3
  function project(item, fields) {
4
4
  const allFieldsDeactivated = Object.values(fields).every((value) => value === 0);
5
5
  if (allFieldsDeactivated) {
package/dist/index23.mjs CHANGED
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
4
  import isEqual from "./index9.mjs";
5
- import uniqueBy from "./index29.mjs";
5
+ import uniqueBy from "./index28.mjs";
6
6
  class Observer {
7
7
  /**
8
8
  * Creates a new instance of the `Observer` class.
package/dist/index26.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import isFieldExpression from "./index27.mjs";
1
+ import isFieldExpression from "./index29.mjs";
2
2
  import serializeValue from "./index16.mjs";
3
3
  function getMatchingKeys(field, selector) {
4
4
  const result = { include: null, exclude: null };
package/dist/index27.mjs CHANGED
@@ -1,43 +1,30 @@
1
- const expressionKeys = /* @__PURE__ */ new Set([
2
- "$eq",
3
- "$gt",
4
- "$gte",
5
- "$lt",
6
- "$lte",
7
- "$in",
8
- "$nin",
9
- "$ne",
10
- "$exists",
11
- "$not",
12
- "$expr",
13
- "$jsonSchema",
14
- "$mod",
15
- "$regex",
16
- "$options",
17
- "$text",
18
- "$where",
19
- "$all",
20
- "$elemMatch",
21
- "$size",
22
- "$bitsAllClear",
23
- "$bitsAllSet",
24
- "$bitsAnyClear",
25
- "$bitsAnySet"
26
- ]);
27
- function isFieldExpression(expression) {
28
- if (typeof expression !== "object" || expression == null) {
29
- return false;
30
- }
31
- const keys = Object.keys(expression);
32
- if (keys.length === 0) {
33
- return false;
34
- }
35
- const hasInvalidKeys = keys.some((key) => !expressionKeys.has(key));
36
- if (hasInvalidKeys)
37
- return false;
38
- const hasValidKeys = keys.every((key) => expressionKeys.has(key));
39
- return hasValidKeys;
1
+ function set(object, path, value, deleteIfUndefined = false) {
2
+ if (object == null)
3
+ return object;
4
+ const segments = path.split(/[.[\]]/g);
5
+ if (segments[0] === "")
6
+ segments.shift();
7
+ if (segments.at(-1) === "")
8
+ segments.pop();
9
+ const apply = (node) => {
10
+ if (segments.length > 1) {
11
+ const key = segments.shift();
12
+ const nextIsNumber = !Number.isNaN(Number.parseInt(segments[0], 10));
13
+ if (node[key] === void 0) {
14
+ node[key] = nextIsNumber ? [] : {};
15
+ }
16
+ apply(node[key]);
17
+ } else {
18
+ if (deleteIfUndefined && value === void 0) {
19
+ delete node[segments[0]];
20
+ return;
21
+ }
22
+ node[segments[0]] = value;
23
+ }
24
+ };
25
+ apply(object);
26
+ return object;
40
27
  }
41
28
  export {
42
- isFieldExpression as default
29
+ set as default
43
30
  };
package/dist/index28.mjs CHANGED
@@ -1,30 +1,10 @@
1
- function set(object, path, value, deleteIfUndefined = false) {
2
- if (object == null)
3
- return object;
4
- const segments = path.split(/[.[\]]/g);
5
- if (segments[0] === "")
6
- segments.shift();
7
- if (segments.at(-1) === "")
8
- segments.pop();
9
- const apply = (node) => {
10
- if (segments.length > 1) {
11
- const key = segments.shift();
12
- const nextIsNumber = !Number.isNaN(Number.parseInt(segments[0], 10));
13
- if (node[key] === void 0) {
14
- node[key] = nextIsNumber ? [] : {};
15
- }
16
- apply(node[key]);
17
- } else {
18
- if (deleteIfUndefined && value === void 0) {
19
- delete node[segments[0]];
20
- return;
21
- }
22
- node[segments[0]] = value;
23
- }
24
- };
25
- apply(object);
26
- return object;
1
+ function uniqueBy(array, fn) {
2
+ const set = /* @__PURE__ */ new Set();
3
+ return array.filter((element) => {
4
+ const value = typeof fn === "function" ? fn(element) : element[fn];
5
+ return !set.has(value) && set.add(value);
6
+ });
27
7
  }
28
8
  export {
29
- set as default
9
+ uniqueBy as default
30
10
  };
package/dist/index29.mjs CHANGED
@@ -1,10 +1,43 @@
1
- function uniqueBy(array, fn) {
2
- const set = /* @__PURE__ */ new Set();
3
- return array.filter((element) => {
4
- const value = typeof fn === "function" ? fn(element) : element[fn];
5
- return !set.has(value) && set.add(value);
6
- });
1
+ const expressionKeys = /* @__PURE__ */ new Set([
2
+ "$eq",
3
+ "$gt",
4
+ "$gte",
5
+ "$lt",
6
+ "$lte",
7
+ "$in",
8
+ "$nin",
9
+ "$ne",
10
+ "$exists",
11
+ "$not",
12
+ "$expr",
13
+ "$jsonSchema",
14
+ "$mod",
15
+ "$regex",
16
+ "$options",
17
+ "$text",
18
+ "$where",
19
+ "$all",
20
+ "$elemMatch",
21
+ "$size",
22
+ "$bitsAllClear",
23
+ "$bitsAllSet",
24
+ "$bitsAnyClear",
25
+ "$bitsAnySet"
26
+ ]);
27
+ function isFieldExpression(expression) {
28
+ if (typeof expression !== "object" || expression == null) {
29
+ return false;
30
+ }
31
+ const keys = Object.keys(expression);
32
+ if (keys.length === 0) {
33
+ return false;
34
+ }
35
+ const hasInvalidKeys = keys.some((key) => !expressionKeys.has(key));
36
+ if (hasInvalidKeys)
37
+ return false;
38
+ const hasValidKeys = keys.every((key) => expressionKeys.has(key));
39
+ return hasValidKeys;
7
40
  }
8
41
  export {
9
- uniqueBy as default
42
+ isFieldExpression as default
10
43
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signaldb/core",
3
- "version": "1.5.2",
3
+ "version": "1.5.3",
4
4
  "description": "SignalDB is a client-side database that provides a simple MongoDB-like interface to the data with first-class typescript support to achieve an optimistic UI. Data persistence can be achieved by using storage providers that store the data through a JSON interface to places such as localStorage.",
5
5
  "scripts": {
6
6
  "build": "rimraf dist && vite build",