@cyberskill/shared 2.6.0 → 2.8.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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("lodash-es");var m=Object.defineProperty,v=Object.defineProperties,b=Object.getOwnPropertyDescriptors,a=Object.getOwnPropertySymbols,g=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,u=(r,e,n)=>e in r?m(r,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[e]=n,l=(r,e)=>{for(var n in e||(e={}))g.call(e,n)&&u(r,n,e[n]);if(a)for(var n of a(e))O.call(e,n)&&u(r,n,e[n]);return r},c=(r,e)=>v(r,b(e));function _(r){try{return JSON.parse(r),!0}catch(e){return!1}}function h(r,e){return e.reduce((n,o)=>{if(n&&typeof n=="object"&&o in n)return n[o]},r)}function f(r,e,n){if(e.length===0)return r;const[o,...t]=e;if(t.length===0)return c(l({},r),{[o]:n});const s=r[o];return c(l({},r),{[o]:f(typeof s=="object"&&s!==null?s:{},t,n)})}function j(...r){if(r.length===0)return{};const e=r.filter(t=>t!=null).map(t=>typeof t!="object"?{}:t);if(e.length===0)return{};if(e.length===1)return e[0];if(e.every(i.isArray))return[].concat(...e);if(e.every(t=>typeof t=="object"&&t!==null&&!i.isArray(t)))return i.mergeWith({},...e,(t,s)=>{if(i.isArray(t)&&i.isArray(s))return t.concat(s)});if(e.every(t=>typeof t!="object"||t===null))throw new Error("deepMerge: Cannot merge primitive values. All arguments must be objects or arrays.");const n=e.some(i.isArray),o=e.some(t=>typeof t=="object"&&t!==null&&!i.isArray(t));throw n&&o?new Error("deepMerge: Cannot mix arrays and objects. All arguments must be either arrays or objects."):new Error("deepMerge: Invalid arguments provided. All arguments must be objects or arrays of the same type.")}function p(r){if(!r||typeof r!="object")return r;const e={};for(const[n,o]of Object.entries(r))if(o&&typeof o=="object"&&!Array.isArray(o)){const t=p(o);for(const[s,y]of Object.entries(t)){const d=`${n}.${s}`;e[d]=y}}else e[n]=o;return e}exports.deepMerge=j;exports.getNestedValue=h;exports.isJSON=_;exports.normalizeMongoFilter=p;exports.setNestedValue=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("lodash-es");var g=Object.defineProperty,v=Object.defineProperties,O=Object.getOwnPropertyDescriptors,u=Object.getOwnPropertySymbols,b=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,l=(r,e,t)=>e in r?g(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,c=(r,e)=>{for(var t in e||(e={}))b.call(e,t)&&l(r,t,e[t]);if(u)for(var t of u(e))h.call(e,t)&&l(r,t,e[t]);return r},f=(r,e)=>v(r,O(e));function _(r){try{return JSON.parse(r),!0}catch(e){return!1}}function j(r,e){return e.reduce((t,n)=>{if(t&&typeof t=="object"&&n in t)return t[n]},r)}function p(r,e,t){if(e.length===0)return r;const[n,...o]=e;if(o.length===0)return f(c({},r),{[n]:t});const s=r[n];return f(c({},r),{[n]:p(typeof s=="object"&&s!==null?s:{},o,t)})}function w(...r){if(r.length===0)return{};const e=r.filter(o=>o!=null).map(o=>typeof o!="object"?{}:o);if(e.length===0)return{};if(e.length===1)return e[0];if(e.every(i.isArray))return[].concat(...e);if(e.every(o=>typeof o=="object"&&o!==null&&!i.isArray(o)))return i.mergeWith({},...e,(o,s)=>{if(i.isArray(o)&&i.isArray(s))return o.concat(s)});if(e.every(o=>typeof o!="object"||o===null))throw new Error("deepMerge: Cannot merge primitive values. All arguments must be objects or arrays.");const t=e.some(i.isArray),n=e.some(o=>typeof o=="object"&&o!==null&&!i.isArray(o));throw t&&n?new Error("deepMerge: Cannot mix arrays and objects. All arguments must be either arrays or objects."):new Error("deepMerge: Invalid arguments provided. All arguments must be objects or arrays of the same type.")}function a(r){if(!r||typeof r!="object")return r;const e={};for(const[t,n]of Object.entries(r))if(n&&typeof n=="object"&&!Array.isArray(n))if(Object.keys(n).some(s=>s.startsWith("$")))e[t]=a(n);else{const s=a(n);for(const[y,d]of Object.entries(s)){const m=`${t}.${y}`;e[m]=d}}else e[t]=n;return e}exports.deepMerge=w;exports.getNestedValue=j;exports.isJSON=_;exports.normalizeMongoFilter=a;exports.setNestedValue=p;
@@ -73,11 +73,12 @@ export declare function deepMerge<T extends Record<string, unknown>>(...args: (T
73
73
  export declare function deepMerge<T extends unknown[]>(...args: (T | null | undefined)[]): T;
74
74
  /**
75
75
  * Normalizes MongoDB filters to support both dot notation strings and nested objects.
76
- * This function converts nested object filters to dot notation format to ensure
77
- * consistent behavior across different filter input formats.
76
+ * This function converts nested object filters to dot notation format while preserving
77
+ * MongoDB operators to ensure consistent behavior across different filter input formats.
78
78
  *
79
79
  * @param filter - The filter object to normalize.
80
- * @returns A normalized filter object with nested objects converted to dot notation.
80
+ * @returns A normalized filter object with nested objects converted to dot notation,
81
+ * while preserving MongoDB operators as nested objects.
81
82
  *
82
83
  * @example
83
84
  * ```typescript
@@ -85,6 +86,10 @@ export declare function deepMerge<T extends unknown[]>(...args: (T | null | unde
85
86
  * normalizeMongoFilter({ "location.countryId": "240" })
86
87
  * normalizeMongoFilter({ location: { countryId: "240" } })
87
88
  * // Both return: { "location.countryId": "240" }
89
+ *
90
+ * // MongoDB operators are preserved:
91
+ * normalizeMongoFilter({ id: { $in: ["240", "59"] } })
92
+ * // Returns: { id: { $in: ["240", "59"] } }
88
93
  * ```
89
94
  */
90
95
  export declare function normalizeMongoFilter<T extends Record<string, unknown>>(filter: T): T;
@@ -1,46 +1,46 @@
1
- import { isArray as i, mergeWith as y } from "lodash-es";
2
- var d = Object.defineProperty, m = Object.defineProperties, v = Object.getOwnPropertyDescriptors, u = Object.getOwnPropertySymbols, b = Object.prototype.hasOwnProperty, _ = Object.prototype.propertyIsEnumerable, a = (r, e, n) => e in r ? d(r, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : r[e] = n, f = (r, e) => {
3
- for (var n in e || (e = {}))
4
- b.call(e, n) && a(r, n, e[n]);
5
- if (u)
6
- for (var n of u(e))
7
- _.call(e, n) && a(r, n, e[n]);
1
+ import { isArray as i, mergeWith as m } from "lodash-es";
2
+ var v = Object.defineProperty, O = Object.defineProperties, b = Object.getOwnPropertyDescriptors, a = Object.getOwnPropertySymbols, h = Object.prototype.hasOwnProperty, _ = Object.prototype.propertyIsEnumerable, u = (r, e, t) => e in r ? v(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, f = (r, e) => {
3
+ for (var t in e || (e = {}))
4
+ h.call(e, t) && u(r, t, e[t]);
5
+ if (a)
6
+ for (var t of a(e))
7
+ _.call(e, t) && u(r, t, e[t]);
8
8
  return r;
9
- }, c = (r, e) => m(r, v(e));
10
- function j(r) {
9
+ }, c = (r, e) => O(r, b(e));
10
+ function w(r) {
11
11
  try {
12
12
  return JSON.parse(r), !0;
13
13
  } catch (e) {
14
14
  return !1;
15
15
  }
16
16
  }
17
- function w(r, e) {
18
- return e.reduce((n, o) => {
19
- if (n && typeof n == "object" && o in n)
20
- return n[o];
17
+ function P(r, e) {
18
+ return e.reduce((t, n) => {
19
+ if (t && typeof t == "object" && n in t)
20
+ return t[n];
21
21
  }, r);
22
22
  }
23
- function O(r, e, n) {
23
+ function g(r, e, t) {
24
24
  if (e.length === 0)
25
25
  return r;
26
- const [o, ...t] = e;
27
- if (t.length === 0)
26
+ const [n, ...o] = e;
27
+ if (o.length === 0)
28
28
  return c(f({}, r), {
29
- [o]: n
29
+ [n]: t
30
30
  });
31
- const s = r[o];
31
+ const s = r[n];
32
32
  return c(f({}, r), {
33
- [o]: O(
33
+ [n]: g(
34
34
  typeof s == "object" && s !== null ? s : {},
35
- t,
36
- n
35
+ o,
36
+ t
37
37
  )
38
38
  });
39
39
  }
40
- function P(...r) {
40
+ function A(...r) {
41
41
  if (r.length === 0)
42
42
  return {};
43
- const e = r.filter((t) => t != null).map((t) => typeof t != "object" ? {} : t);
43
+ const e = r.filter((o) => o != null).map((o) => typeof o != "object" ? {} : o);
44
44
  if (e.length === 0)
45
45
  return {};
46
46
  if (e.length === 1)
@@ -48,44 +48,50 @@ function P(...r) {
48
48
  if (e.every(i))
49
49
  return [].concat(...e);
50
50
  if (e.every(
51
- (t) => typeof t == "object" && t !== null && !i(t)
51
+ (o) => typeof o == "object" && o !== null && !i(o)
52
52
  ))
53
- return y({}, ...e, (t, s) => {
54
- if (i(t) && i(s))
55
- return t.concat(s);
53
+ return m({}, ...e, (o, s) => {
54
+ if (i(o) && i(s))
55
+ return o.concat(s);
56
56
  });
57
- if (e.every((t) => typeof t != "object" || t === null))
57
+ if (e.every((o) => typeof o != "object" || o === null))
58
58
  throw new Error(
59
59
  "deepMerge: Cannot merge primitive values. All arguments must be objects or arrays."
60
60
  );
61
- const n = e.some(i), o = e.some(
62
- (t) => typeof t == "object" && t !== null && !i(t)
61
+ const t = e.some(i), n = e.some(
62
+ (o) => typeof o == "object" && o !== null && !i(o)
63
63
  );
64
- throw n && o ? new Error(
64
+ throw t && n ? new Error(
65
65
  "deepMerge: Cannot mix arrays and objects. All arguments must be either arrays or objects."
66
66
  ) : new Error(
67
67
  "deepMerge: Invalid arguments provided. All arguments must be objects or arrays of the same type."
68
68
  );
69
69
  }
70
- function h(r) {
70
+ function l(r) {
71
71
  if (!r || typeof r != "object")
72
72
  return r;
73
73
  const e = {};
74
- for (const [n, o] of Object.entries(r))
75
- if (o && typeof o == "object" && !Array.isArray(o)) {
76
- const t = h(o);
77
- for (const [s, l] of Object.entries(t)) {
78
- const p = `${n}.${s}`;
79
- e[p] = l;
74
+ for (const [t, n] of Object.entries(r))
75
+ if (n && typeof n == "object" && !Array.isArray(n))
76
+ if (Object.keys(n).some(
77
+ (s) => s.startsWith("$")
78
+ ))
79
+ e[t] = l(n);
80
+ else {
81
+ const s = l(n);
82
+ for (const [p, y] of Object.entries(s)) {
83
+ const d = `${t}.${p}`;
84
+ e[d] = y;
85
+ }
80
86
  }
81
- } else
82
- e[n] = o;
87
+ else
88
+ e[t] = n;
83
89
  return e;
84
90
  }
85
91
  export {
86
- P as deepMerge,
87
- w as getNestedValue,
88
- j as isJSON,
89
- h as normalizeMongoFilter,
90
- O as setNestedValue
92
+ A as deepMerge,
93
+ P as getNestedValue,
94
+ w as isJSON,
95
+ l as normalizeMongoFilter,
96
+ g as setNestedValue
91
97
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cyberskill/shared",
3
3
  "type": "module",
4
- "version": "2.6.0",
4
+ "version": "2.8.0",
5
5
  "description": "CyberSkill Shared",
6
6
  "author": "Stephen Cheng",
7
7
  "license": "MIT",