@cyberskill/shared 2.5.0 → 2.6.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.
- package/dist/node/mongo/mongo.util.cjs +5 -5
- package/dist/node/mongo/mongo.util.d.ts +5 -5
- package/dist/node/mongo/mongo.util.js +258 -256
- package/dist/util/index.cjs +1 -1
- package/dist/util/index.js +16 -15
- package/dist/util/object/index.cjs +1 -1
- package/dist/util/object/index.js +6 -5
- package/dist/util/object/object.util.cjs +1 -1
- package/dist/util/object/object.util.d.ts +17 -0
- package/dist/util/object/object.util.js +48 -32
- package/package.json +2 -2
package/dist/util/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./common/common.util.cjs"),e=require("./object/object.util.cjs"),a=require("./serializer/serializer.util.cjs"),r=require("./string/string.util.cjs"),i=require("./validate/validate.util.cjs");exports.mapEnvironment=t.mapEnvironment;exports.regexSearchMapper=t.regexSearchMapper;exports.removeAccent=t.removeAccent;exports.uniqueArray=t.uniqueArray;exports.deepMerge=e.deepMerge;exports.getNestedValue=e.getNestedValue;exports.isJSON=e.isJSON;exports.normalizeMongoFilter=e.normalizeMongoFilter;exports.setNestedValue=e.setNestedValue;exports.serializer=a.serializer;exports.generateRandomPassword=r.generateRandomPassword;exports.generateShortId=r.generateShortId;exports.generateSlug=r.generateSlug;exports.getFileName=r.getFileName;exports.substringBetween=r.substringBetween;exports.validate=i.validate;
|
package/dist/util/index.js
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import { mapEnvironment as t, regexSearchMapper as
|
|
2
|
-
import { deepMerge as g, getNestedValue as
|
|
3
|
-
import { serializer as
|
|
4
|
-
import { generateRandomPassword as
|
|
1
|
+
import { mapEnvironment as t, regexSearchMapper as o, removeAccent as a, uniqueArray as n } from "./common/common.util.js";
|
|
2
|
+
import { deepMerge as g, getNestedValue as i, isJSON as p, normalizeMongoFilter as s, setNestedValue as l } from "./object/object.util.js";
|
|
3
|
+
import { serializer as u } from "./serializer/serializer.util.js";
|
|
4
|
+
import { generateRandomPassword as f, generateShortId as N, generateSlug as S, getFileName as c, substringBetween as v } from "./string/string.util.js";
|
|
5
5
|
import { validate as h } from "./validate/validate.util.js";
|
|
6
6
|
export {
|
|
7
7
|
g as deepMerge,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
f as generateRandomPassword,
|
|
9
|
+
N as generateShortId,
|
|
10
|
+
S as generateSlug,
|
|
11
|
+
c as getFileName,
|
|
12
|
+
i as getNestedValue,
|
|
13
|
+
p as isJSON,
|
|
14
14
|
t as mapEnvironment,
|
|
15
|
-
|
|
16
|
-
o as
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
s as normalizeMongoFilter,
|
|
16
|
+
o as regexSearchMapper,
|
|
17
|
+
a as removeAccent,
|
|
18
|
+
u as serializer,
|
|
19
|
+
l as setNestedValue,
|
|
20
|
+
v as substringBetween,
|
|
20
21
|
n as uniqueArray,
|
|
21
22
|
h as validate
|
|
22
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./object.util.cjs");exports.deepMerge=e.deepMerge;exports.getNestedValue=e.getNestedValue;exports.isJSON=e.isJSON;exports.setNestedValue=e.setNestedValue;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./object.util.cjs");exports.deepMerge=e.deepMerge;exports.getNestedValue=e.getNestedValue;exports.isJSON=e.isJSON;exports.normalizeMongoFilter=e.normalizeMongoFilter;exports.setNestedValue=e.setNestedValue;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { deepMerge as
|
|
1
|
+
import { deepMerge as o, getNestedValue as r, isJSON as l, normalizeMongoFilter as s, setNestedValue as a } from "./object.util.js";
|
|
2
2
|
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
o as deepMerge,
|
|
4
|
+
r as getNestedValue,
|
|
5
|
+
l as isJSON,
|
|
6
|
+
s as normalizeMongoFilter,
|
|
7
|
+
a as setNestedValue
|
|
7
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
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;
|
|
@@ -71,3 +71,20 @@ export declare function deepMerge<T extends Record<string, unknown>>(...args: (T
|
|
|
71
71
|
* @returns The merged array.
|
|
72
72
|
*/
|
|
73
73
|
export declare function deepMerge<T extends unknown[]>(...args: (T | null | undefined)[]): T;
|
|
74
|
+
/**
|
|
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.
|
|
78
|
+
*
|
|
79
|
+
* @param filter - The filter object to normalize.
|
|
80
|
+
* @returns A normalized filter object with nested objects converted to dot notation.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* // Both of these will work the same way:
|
|
85
|
+
* normalizeMongoFilter({ "location.countryId": "240" })
|
|
86
|
+
* normalizeMongoFilter({ location: { countryId: "240" } })
|
|
87
|
+
* // Both return: { "location.countryId": "240" }
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
export declare function normalizeMongoFilter<T extends Record<string, unknown>>(filter: T): T;
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import { isArray as i, mergeWith as
|
|
2
|
-
var
|
|
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
3
|
for (var n in e || (e = {}))
|
|
4
|
-
|
|
4
|
+
b.call(e, n) && a(r, n, e[n]);
|
|
5
5
|
if (u)
|
|
6
6
|
for (var n of u(e))
|
|
7
|
-
|
|
8
|
-
return
|
|
9
|
-
},
|
|
10
|
-
function
|
|
7
|
+
_.call(e, n) && a(r, n, e[n]);
|
|
8
|
+
return r;
|
|
9
|
+
}, c = (r, e) => m(r, v(e));
|
|
10
|
+
function j(r) {
|
|
11
11
|
try {
|
|
12
|
-
return JSON.parse(
|
|
12
|
+
return JSON.parse(r), !0;
|
|
13
13
|
} catch (e) {
|
|
14
14
|
return !1;
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function w(r, e) {
|
|
18
18
|
return e.reduce((n, o) => {
|
|
19
19
|
if (n && typeof n == "object" && o in n)
|
|
20
20
|
return n[o];
|
|
21
|
-
},
|
|
21
|
+
}, r);
|
|
22
22
|
}
|
|
23
|
-
function
|
|
23
|
+
function O(r, e, n) {
|
|
24
24
|
if (e.length === 0)
|
|
25
|
-
return
|
|
26
|
-
const [o, ...
|
|
27
|
-
if (
|
|
28
|
-
return
|
|
25
|
+
return r;
|
|
26
|
+
const [o, ...t] = e;
|
|
27
|
+
if (t.length === 0)
|
|
28
|
+
return c(f({}, r), {
|
|
29
29
|
[o]: n
|
|
30
30
|
});
|
|
31
|
-
const s =
|
|
32
|
-
return
|
|
33
|
-
[o]:
|
|
31
|
+
const s = r[o];
|
|
32
|
+
return c(f({}, r), {
|
|
33
|
+
[o]: O(
|
|
34
34
|
typeof s == "object" && s !== null ? s : {},
|
|
35
|
-
|
|
35
|
+
t,
|
|
36
36
|
n
|
|
37
37
|
)
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
|
-
function
|
|
41
|
-
if (
|
|
40
|
+
function P(...r) {
|
|
41
|
+
if (r.length === 0)
|
|
42
42
|
return {};
|
|
43
|
-
const e =
|
|
43
|
+
const e = r.filter((t) => t != null).map((t) => typeof t != "object" ? {} : t);
|
|
44
44
|
if (e.length === 0)
|
|
45
45
|
return {};
|
|
46
46
|
if (e.length === 1)
|
|
@@ -48,18 +48,18 @@ function g(...t) {
|
|
|
48
48
|
if (e.every(i))
|
|
49
49
|
return [].concat(...e);
|
|
50
50
|
if (e.every(
|
|
51
|
-
(
|
|
51
|
+
(t) => typeof t == "object" && t !== null && !i(t)
|
|
52
52
|
))
|
|
53
|
-
return
|
|
54
|
-
if (i(
|
|
55
|
-
return
|
|
53
|
+
return y({}, ...e, (t, s) => {
|
|
54
|
+
if (i(t) && i(s))
|
|
55
|
+
return t.concat(s);
|
|
56
56
|
});
|
|
57
|
-
if (e.every((
|
|
57
|
+
if (e.every((t) => typeof t != "object" || t === null))
|
|
58
58
|
throw new Error(
|
|
59
59
|
"deepMerge: Cannot merge primitive values. All arguments must be objects or arrays."
|
|
60
60
|
);
|
|
61
61
|
const n = e.some(i), o = e.some(
|
|
62
|
-
(
|
|
62
|
+
(t) => typeof t == "object" && t !== null && !i(t)
|
|
63
63
|
);
|
|
64
64
|
throw n && o ? new Error(
|
|
65
65
|
"deepMerge: Cannot mix arrays and objects. All arguments must be either arrays or objects."
|
|
@@ -67,9 +67,25 @@ function g(...t) {
|
|
|
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) {
|
|
71
|
+
if (!r || typeof r != "object")
|
|
72
|
+
return r;
|
|
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;
|
|
80
|
+
}
|
|
81
|
+
} else
|
|
82
|
+
e[n] = o;
|
|
83
|
+
return e;
|
|
84
|
+
}
|
|
70
85
|
export {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
86
|
+
P as deepMerge,
|
|
87
|
+
w as getNestedValue,
|
|
88
|
+
j as isJSON,
|
|
89
|
+
h as normalizeMongoFilter,
|
|
90
|
+
O as setNestedValue
|
|
75
91
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyberskill/shared",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.6.0",
|
|
5
5
|
"description": "CyberSkill Shared",
|
|
6
6
|
"author": "Stephen Cheng",
|
|
7
7
|
"license": "MIT",
|
|
@@ -249,7 +249,7 @@
|
|
|
249
249
|
"lodash-es": "4.17.21",
|
|
250
250
|
"migrate-mongo": "12.1.3",
|
|
251
251
|
"mongodb": "6.18.0",
|
|
252
|
-
"mongoose": "8.
|
|
252
|
+
"mongoose": "8.17.0",
|
|
253
253
|
"mongoose-aggregate-paginate-v2": "1.1.4",
|
|
254
254
|
"mongoose-paginate-v2": "1.9.1",
|
|
255
255
|
"next-intl": "4.3.4",
|