@cyberskill/shared 2.8.0 → 2.9.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"});exports.E_UploadType=(t=>(t.IMAGE="IMAGE",t.VIDEO="VIDEO",t.DOCUMENT="DOCUMENT",t.OTHER="OTHER",t))(exports.E_UploadType||{});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.E_UploadType=(O=>(O.IMAGE="IMAGE",O.VIDEO="VIDEO",O.AUDIO="AUDIO",O.DOCUMENT="DOCUMENT",O.OTHER="OTHER",O))(exports.E_UploadType||{});
@@ -1,6 +1,7 @@
1
1
  export declare enum E_UploadType {
2
2
  IMAGE = "IMAGE",
3
3
  VIDEO = "VIDEO",
4
+ AUDIO = "AUDIO",
4
5
  DOCUMENT = "DOCUMENT",
5
6
  OTHER = "OTHER"
6
7
  }
@@ -15,6 +16,7 @@ export interface I_UploadTypeConfig {
15
16
  export interface I_UploadConfig {
16
17
  [E_UploadType.IMAGE]: I_UploadTypeConfig;
17
18
  [E_UploadType.VIDEO]: I_UploadTypeConfig;
19
+ [E_UploadType.AUDIO]: I_UploadTypeConfig;
18
20
  [E_UploadType.DOCUMENT]: I_UploadTypeConfig;
19
21
  [E_UploadType.OTHER]: I_UploadTypeConfig;
20
22
  }
@@ -1,4 +1,4 @@
1
- var E = /* @__PURE__ */ ((O) => (O.IMAGE = "IMAGE", O.VIDEO = "VIDEO", O.DOCUMENT = "DOCUMENT", O.OTHER = "OTHER", O))(E || {});
1
+ var D = /* @__PURE__ */ ((O) => (O.IMAGE = "IMAGE", O.VIDEO = "VIDEO", O.AUDIO = "AUDIO", O.DOCUMENT = "DOCUMENT", O.OTHER = "OTHER", O))(D || {});
2
2
  export {
3
- E as E_UploadType
3
+ D as E_UploadType
4
4
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("node:buffer"),C=require("node:stream"),x=require("node:stream/web"),A=require("./upload.constant.cjs"),c=require("./upload.type.cjs"),D=require("../path/path.util.cjs"),S=require("../fs/fs.util.cjs"),f=require("../../constant/response-status.cjs");var P=Object.defineProperty,v=Object.getOwnPropertySymbols,h=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,T=(r,t,e)=>t in r?P(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,O=(r,t)=>{for(var e in t||(t={}))h.call(t,e)&&T(r,e,t[e]);if(v)for(var e of v(t))F.call(t,e)&&T(r,e,t[e]);return r},m=(r,t,e)=>new Promise((i,a)=>{var s=l=>{try{o(e.next(l))}catch(d){a(d)}},n=l=>{try{o(e.throw(l))}catch(d){a(d)}},o=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,n);o((e=e.apply(r,t)).next())});function w(r){return m(this,null,function*(){return new Promise((t,e)=>{let i=0;r.on("data",a=>{i+=a.length}),r.on("end",()=>t(i)),r.on("error",e)})})}function _(r,t,e){return m(this,null,function*(){const i=yield(yield t).file,a=i.createReadStream(),s=yield w(a),n=e!=null?e:y(),o=U({filename:i.filename,fileSize:s},n,r);return o.isValid?{success:!0,result:i,message:"File validated successfully"}:{success:!1,message:o.error||"File validation failed",code:f.RESPONSE_STATUS.BAD_REQUEST.CODE}})}function L(r,t,e){return m(this,null,function*(){const a=(e!=null?e:y())[r],s=yield _(r,t,e);if(!s.success)return s;const{createReadStream:n}=s.result;let o=a.sizeLimit;const l=new C.Transform({transform(u,p,g){o-=u.length,o<0?g(new Error(`File size exceeds limit of ${a.sizeLimit/A.BYTES_PER_MB}MB`)):g(null,u)}}),E=n().pipe(l);return{success:!0,result:new x.ReadableStream({start(u){E.on("data",p=>{u.enqueue(typeof p=="string"?z.Buffer.from(p):p)}),E.on("end",()=>u.close()),E.on("error",p=>u.error(p))}})}})}function R(r,t){const e=r.lastIndexOf(".");if(e===-1)return!1;const i=r.substring(e+1).toLowerCase();return t.includes(i)}function U(r,t,e){const{filename:i,fileSize:a}=r,s=t[e],{allowedExtensions:n,sizeLimit:o}=s;if(!R(i,n))return{isValid:!1,error:`File extension not allowed for ${e.toLowerCase()} files. Allowed extensions: ${n.join(", ")}`};if(a!==void 0&&a>o){const l=Math.round(o/1048576);return{isValid:!1,error:`File size exceeds limit for ${e.toLowerCase()} files. Maximum size: ${l}MB`}}return{isValid:!0}}function y(r){const t={[c.E_UploadType.IMAGE]:{allowedExtensions:["jpg","jpeg","png","gif","webp","svg"],sizeLimit:5242880},[c.E_UploadType.VIDEO]:{allowedExtensions:["mp4","avi","mov","wmv","flv","webm"],sizeLimit:524288e3},[c.E_UploadType.DOCUMENT]:{allowedExtensions:["pdf","doc","docx","txt","rtf"],sizeLimit:10485760},[c.E_UploadType.OTHER]:{allowedExtensions:["zip","rar","tar","gz"],sizeLimit:5242880}};return O(O({},t),r)}function b(r){return m(this,null,function*(){const{path:t,file:e,config:i,type:a}=r;if(!t||typeof t!="string")return{success:!1,message:"Invalid path provided",code:f.RESPONSE_STATUS.BAD_REQUEST.CODE};if(!e||typeof e!="object")return{success:!1,message:"Invalid file provided",code:f.RESPONSE_STATUS.BAD_REQUEST.CODE};if(i){const s=[c.E_UploadType.IMAGE,c.E_UploadType.VIDEO,c.E_UploadType.DOCUMENT,c.E_UploadType.OTHER];for(const n of s){if(!i[n]||!Array.isArray(i[n].allowedExtensions)||i[n].allowedExtensions.length===0)return{success:!1,message:`Invalid config for ${n.toLowerCase()} files`,code:f.RESPONSE_STATUS.BAD_REQUEST.CODE};if(typeof i[n].sizeLimit!="number"||i[n].sizeLimit<=0)return{success:!1,message:`Invalid size limit for ${n.toLowerCase()} files`,code:f.RESPONSE_STATUS.BAD_REQUEST.CODE}}}try{const s=yield _(a,yield e,i);if(!s.success)return s;const{createReadStream:n}=s.result,o=D.dirname(t);S.pathExistsSync(o)||S.mkdirSync(o,{recursive:!0});const l=n(),d=S.createWriteStream(t);return l.pipe(d),yield new Promise((E,u)=>{d.on("finish",()=>E()),d.on("error",u),l.on("error",u)}),{success:!0,result:t,message:"File uploaded successfully",code:f.RESPONSE_STATUS.OK.CODE}}catch(s){return{success:!1,message:s instanceof Error?s.message:"File upload failed",code:f.RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE}}})}exports.createUploadConfig=y;exports.getAndValidateFile=_;exports.getFileSizeFromStream=w;exports.getFileWebStream=L;exports.upload=b;exports.validateFileExtension=R;exports.validateUpload=U;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("node:buffer"),x=require("node:stream"),C=require("node:stream/web"),A=require("./upload.constant.cjs"),d=require("./upload.type.cjs"),D=require("../path/path.util.cjs"),S=require("../fs/fs.util.cjs"),f=require("../../constant/response-status.cjs");var P=Object.defineProperty,v=Object.getOwnPropertySymbols,h=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,T=(i,t,e)=>t in i?P(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,w=(i,t)=>{for(var e in t||(t={}))h.call(t,e)&&T(i,e,t[e]);if(v)for(var e of v(t))F.call(t,e)&&T(i,e,t[e]);return i},m=(i,t,e)=>new Promise((r,a)=>{var s=l=>{try{n(e.next(l))}catch(c){a(c)}},o=l=>{try{n(e.throw(l))}catch(c){a(c)}},n=l=>l.done?r(l.value):Promise.resolve(l.value).then(s,o);n((e=e.apply(i,t)).next())});function O(i){return m(this,null,function*(){return new Promise((t,e)=>{let r=0;i.on("data",a=>{r+=a.length}),i.on("end",()=>t(r)),i.on("error",e)})})}function _(i,t,e){return m(this,null,function*(){const r=yield(yield t).file,a=r.createReadStream(),s=yield O(a),o=e!=null?e:y(),n=R({filename:r.filename,fileSize:s},o,i);return n.isValid?{success:!0,result:r,message:"File validated successfully"}:{success:!1,message:n.error||"File validation failed",code:f.RESPONSE_STATUS.BAD_REQUEST.CODE}})}function L(i,t,e){return m(this,null,function*(){const a=(e!=null?e:y())[i],s=yield _(i,t,e);if(!s.success)return s;const{createReadStream:o}=s.result;let n=a.sizeLimit;const l=new x.Transform({transform(u,p,g){n-=u.length,n<0?g(new Error(`File size exceeds limit of ${a.sizeLimit/A.BYTES_PER_MB}MB`)):g(null,u)}}),E=o().pipe(l);return{success:!0,result:new C.ReadableStream({start(u){E.on("data",p=>{u.enqueue(typeof p=="string"?z.Buffer.from(p):p)}),E.on("end",()=>u.close()),E.on("error",p=>u.error(p))}})}})}function U(i,t){const e=i.lastIndexOf(".");if(e===-1)return!1;const r=i.substring(e+1).toLowerCase();return t.includes(r)}function R(i,t,e){const{filename:r,fileSize:a}=i,s=t[e],{allowedExtensions:o,sizeLimit:n}=s;if(!U(r,o))return{isValid:!1,error:`File extension not allowed for ${e.toLowerCase()} files. Allowed extensions: ${o.join(", ")}`};if(a!==void 0&&a>n){const l=Math.round(n/1048576);return{isValid:!1,error:`File size exceeds limit for ${e.toLowerCase()} files. Maximum size: ${l}MB`}}return{isValid:!0}}function y(i){const t={[d.E_UploadType.IMAGE]:{allowedExtensions:["jpg","jpeg","png","gif","webp","svg"],sizeLimit:5242880},[d.E_UploadType.VIDEO]:{allowedExtensions:["mp4","avi","mov","wmv","flv","webm"],sizeLimit:524288e3},[d.E_UploadType.AUDIO]:{allowedExtensions:["mp3","wav","ogg","m4a","aac"],sizeLimit:52428800},[d.E_UploadType.DOCUMENT]:{allowedExtensions:["pdf","doc","docx","txt","rtf"],sizeLimit:10485760},[d.E_UploadType.OTHER]:{allowedExtensions:["zip","rar","tar","gz"],sizeLimit:5242880}};return w(w({},t),i)}function I(i){return m(this,null,function*(){const{path:t,file:e,config:r,type:a}=i;if(!t||typeof t!="string")return{success:!1,message:"Invalid path provided",code:f.RESPONSE_STATUS.BAD_REQUEST.CODE};if(!e||typeof e!="object")return{success:!1,message:"Invalid file provided",code:f.RESPONSE_STATUS.BAD_REQUEST.CODE};if(r){const s=[d.E_UploadType.IMAGE,d.E_UploadType.VIDEO,d.E_UploadType.DOCUMENT,d.E_UploadType.OTHER];for(const o of s){if(!r[o]||!Array.isArray(r[o].allowedExtensions)||r[o].allowedExtensions.length===0)return{success:!1,message:`Invalid config for ${o.toLowerCase()} files`,code:f.RESPONSE_STATUS.BAD_REQUEST.CODE};if(typeof r[o].sizeLimit!="number"||r[o].sizeLimit<=0)return{success:!1,message:`Invalid size limit for ${o.toLowerCase()} files`,code:f.RESPONSE_STATUS.BAD_REQUEST.CODE}}}try{const s=yield _(a,yield e,r);if(!s.success)return s;const{createReadStream:o}=s.result,n=D.dirname(t);S.pathExistsSync(n)||S.mkdirSync(n,{recursive:!0});const l=o(),c=S.createWriteStream(t);return l.pipe(c),yield new Promise((E,u)=>{c.on("finish",()=>E()),c.on("error",u),l.on("error",u)}),{success:!0,result:t,message:"File uploaded successfully",code:f.RESPONSE_STATUS.OK.CODE}}catch(s){return{success:!1,message:s instanceof Error?s.message:"File upload failed",code:f.RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE}}})}exports.createUploadConfig=y;exports.getAndValidateFile=_;exports.getFileSizeFromStream=O;exports.getFileWebStream=L;exports.upload=I;exports.validateFileExtension=U;exports.validateUpload=R;
@@ -1,50 +1,50 @@
1
- import { Buffer as O } from "node:buffer";
1
+ import { Buffer as _ } from "node:buffer";
2
2
  import { Transform as x } from "node:stream";
3
3
  import { ReadableStream as z } from "node:stream/web";
4
4
  import { BYTES_PER_MB as C } from "./upload.constant.js";
5
- import { E_UploadType as u } from "./upload.type.js";
5
+ import { E_UploadType as c } from "./upload.type.js";
6
6
  import { dirname as D } from "../path/path.util.js";
7
7
  import { pathExistsSync as R, mkdirSync as h, createWriteStream as L } from "../fs/fs.util.js";
8
8
  import { RESPONSE_STATUS as d } from "../../constant/response-status.js";
9
- var T = Object.defineProperty, v = Object.getOwnPropertySymbols, A = Object.prototype.hasOwnProperty, I = Object.prototype.propertyIsEnumerable, y = (t, r, e) => r in t ? T(t, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[r] = e, S = (t, r) => {
10
- for (var e in r || (r = {}))
11
- A.call(r, e) && y(t, e, r[e]);
9
+ var T = Object.defineProperty, v = Object.getOwnPropertySymbols, A = Object.prototype.hasOwnProperty, I = Object.prototype.propertyIsEnumerable, w = (r, t, e) => t in r ? T(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e, y = (r, t) => {
10
+ for (var e in t || (t = {}))
11
+ A.call(t, e) && w(r, e, t[e]);
12
12
  if (v)
13
- for (var e of v(r))
14
- I.call(r, e) && y(t, e, r[e]);
15
- return t;
16
- }, E = (t, r, e) => new Promise((i, a) => {
13
+ for (var e of v(t))
14
+ I.call(t, e) && w(r, e, t[e]);
15
+ return r;
16
+ }, E = (r, t, e) => new Promise((i, a) => {
17
17
  var s = (l) => {
18
18
  try {
19
19
  n(e.next(l));
20
- } catch (c) {
21
- a(c);
20
+ } catch (u) {
21
+ a(u);
22
22
  }
23
23
  }, o = (l) => {
24
24
  try {
25
25
  n(e.throw(l));
26
- } catch (c) {
27
- a(c);
26
+ } catch (u) {
27
+ a(u);
28
28
  }
29
29
  }, n = (l) => l.done ? i(l.value) : Promise.resolve(l.value).then(s, o);
30
- n((e = e.apply(t, r)).next());
30
+ n((e = e.apply(r, t)).next());
31
31
  });
32
- function P(t) {
32
+ function P(r) {
33
33
  return E(this, null, function* () {
34
- return new Promise((r, e) => {
34
+ return new Promise((t, e) => {
35
35
  let i = 0;
36
- t.on("data", (a) => {
36
+ r.on("data", (a) => {
37
37
  i += a.length;
38
- }), t.on("end", () => r(i)), t.on("error", e);
38
+ }), r.on("end", () => t(i)), r.on("error", e);
39
39
  });
40
40
  });
41
41
  }
42
- function w(t, r, e) {
42
+ function S(r, t, e) {
43
43
  return E(this, null, function* () {
44
- const i = yield (yield r).file, a = i.createReadStream(), s = yield P(a), o = e != null ? e : _(), n = F(
44
+ const i = yield (yield t).file, a = i.createReadStream(), s = yield P(a), o = e != null ? e : O(), n = F(
45
45
  { filename: i.filename, fileSize: s },
46
46
  o,
47
- t
47
+ r
48
48
  );
49
49
  return n.isValid ? {
50
50
  success: !0,
@@ -57,9 +57,9 @@ function w(t, r, e) {
57
57
  };
58
58
  });
59
59
  }
60
- function q(t, r, e) {
60
+ function q(r, t, e) {
61
61
  return E(this, null, function* () {
62
- const a = (e != null ? e : _())[t], s = yield w(t, r, e);
62
+ const a = (e != null ? e : O())[r], s = yield S(r, t, e);
63
63
  if (!s.success)
64
64
  return s;
65
65
  const { createReadStream: o } = s.result;
@@ -74,22 +74,22 @@ function q(t, r, e) {
74
74
  result: new z({
75
75
  start(f) {
76
76
  p.on("data", (m) => {
77
- f.enqueue(typeof m == "string" ? O.from(m) : m);
77
+ f.enqueue(typeof m == "string" ? _.from(m) : m);
78
78
  }), p.on("end", () => f.close()), p.on("error", (m) => f.error(m));
79
79
  }
80
80
  })
81
81
  };
82
82
  });
83
83
  }
84
- function B(t, r) {
85
- const e = t.lastIndexOf(".");
84
+ function B(r, t) {
85
+ const e = r.lastIndexOf(".");
86
86
  if (e === -1)
87
87
  return !1;
88
- const i = t.substring(e + 1).toLowerCase();
89
- return r.includes(i);
88
+ const i = r.substring(e + 1).toLowerCase();
89
+ return t.includes(i);
90
90
  }
91
- function F(t, r, e) {
92
- const { filename: i, fileSize: a } = t, s = r[e], { allowedExtensions: o, sizeLimit: n } = s;
91
+ function F(r, t, e) {
92
+ const { filename: i, fileSize: a } = r, s = t[e], { allowedExtensions: o, sizeLimit: n } = s;
93
93
  if (!B(i, o))
94
94
  return {
95
95
  isValid: !1,
@@ -104,35 +104,40 @@ function F(t, r, e) {
104
104
  }
105
105
  return { isValid: !0 };
106
106
  }
107
- function _(t) {
108
- const r = {
109
- [u.IMAGE]: {
107
+ function O(r) {
108
+ const t = {
109
+ [c.IMAGE]: {
110
110
  allowedExtensions: ["jpg", "jpeg", "png", "gif", "webp", "svg"],
111
111
  sizeLimit: 5242880
112
112
  // 5MB
113
113
  },
114
- [u.VIDEO]: {
114
+ [c.VIDEO]: {
115
115
  allowedExtensions: ["mp4", "avi", "mov", "wmv", "flv", "webm"],
116
116
  sizeLimit: 524288e3
117
117
  // 500MB
118
118
  },
119
- [u.DOCUMENT]: {
119
+ [c.AUDIO]: {
120
+ allowedExtensions: ["mp3", "wav", "ogg", "m4a", "aac"],
121
+ sizeLimit: 52428800
122
+ // 50MB
123
+ },
124
+ [c.DOCUMENT]: {
120
125
  allowedExtensions: ["pdf", "doc", "docx", "txt", "rtf"],
121
126
  sizeLimit: 10485760
122
127
  // 10MB
123
128
  },
124
- [u.OTHER]: {
129
+ [c.OTHER]: {
125
130
  allowedExtensions: ["zip", "rar", "tar", "gz"],
126
131
  sizeLimit: 5242880
127
132
  // 5MB
128
133
  }
129
134
  };
130
- return S(S({}, r), t);
135
+ return y(y({}, t), r);
131
136
  }
132
- function G(t) {
137
+ function G(r) {
133
138
  return E(this, null, function* () {
134
- const { path: r, file: e, config: i, type: a } = t;
135
- if (!r || typeof r != "string")
139
+ const { path: t, file: e, config: i, type: a } = r;
140
+ if (!t || typeof t != "string")
136
141
  return {
137
142
  success: !1,
138
143
  message: "Invalid path provided",
@@ -145,7 +150,7 @@ function G(t) {
145
150
  code: d.BAD_REQUEST.CODE
146
151
  };
147
152
  if (i) {
148
- const s = [u.IMAGE, u.VIDEO, u.DOCUMENT, u.OTHER];
153
+ const s = [c.IMAGE, c.VIDEO, c.DOCUMENT, c.OTHER];
149
154
  for (const o of s) {
150
155
  if (!i[o] || !Array.isArray(i[o].allowedExtensions) || i[o].allowedExtensions.length === 0)
151
156
  return {
@@ -162,17 +167,17 @@ function G(t) {
162
167
  }
163
168
  }
164
169
  try {
165
- const s = yield w(a, yield e, i);
170
+ const s = yield S(a, yield e, i);
166
171
  if (!s.success)
167
172
  return s;
168
- const { createReadStream: o } = s.result, n = D(r);
173
+ const { createReadStream: o } = s.result, n = D(t);
169
174
  R(n) || h(n, { recursive: !0 });
170
- const l = o(), c = L(r);
171
- return l.pipe(c), yield new Promise((p, f) => {
172
- c.on("finish", () => p()), c.on("error", f), l.on("error", f);
175
+ const l = o(), u = L(t);
176
+ return l.pipe(u), yield new Promise((p, f) => {
177
+ u.on("finish", () => p()), u.on("error", f), l.on("error", f);
173
178
  }), {
174
179
  success: !0,
175
- result: r,
180
+ result: t,
176
181
  message: "File uploaded successfully",
177
182
  code: d.OK.CODE
178
183
  };
@@ -186,8 +191,8 @@ function G(t) {
186
191
  });
187
192
  }
188
193
  export {
189
- _ as createUploadConfig,
190
- w as getAndValidateFile,
194
+ O as createUploadConfig,
195
+ S as getAndValidateFile,
191
196
  P as getFileSizeFromStream,
192
197
  q as getFileWebStream,
193
198
  G as upload,
@@ -1 +1 @@
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;
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,a=Object.getOwnPropertySymbols,b=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,u=(r,e,t)=>e in r?g(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,l=(r,e)=>{for(var t in e||(e={}))b.call(e,t)&&u(r,t,e[t]);if(a)for(var t of a(e))h.call(e,t)&&u(r,t,e[t]);return r},c=(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 f(r,e,t){if(e.length===0)return r;const[n,...o]=e;if(o.length===0)return c(l({},r),{[n]:t});const s=r[n];return c(l({},r),{[n]:f(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 p(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]=n;else{const s=p(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=p;exports.setNestedValue=f;
@@ -1,12 +1,12 @@
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) => {
1
+ import { isArray as i, mergeWith as d } from "lodash-es";
2
+ var m = Object.defineProperty, v = Object.defineProperties, O = Object.getOwnPropertyDescriptors, a = Object.getOwnPropertySymbols, b = Object.prototype.hasOwnProperty, h = Object.prototype.propertyIsEnumerable, u = (r, e, t) => e in r ? m(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, f = (r, e) => {
3
3
  for (var t in e || (e = {}))
4
- h.call(e, t) && u(r, t, e[t]);
4
+ b.call(e, t) && u(r, t, e[t]);
5
5
  if (a)
6
6
  for (var t of a(e))
7
- _.call(e, t) && u(r, t, e[t]);
7
+ h.call(e, t) && u(r, t, e[t]);
8
8
  return r;
9
- }, c = (r, e) => O(r, b(e));
9
+ }, c = (r, e) => v(r, O(e));
10
10
  function w(r) {
11
11
  try {
12
12
  return JSON.parse(r), !0;
@@ -20,7 +20,7 @@ function P(r, e) {
20
20
  return t[n];
21
21
  }, r);
22
22
  }
23
- function g(r, e, t) {
23
+ function _(r, e, t) {
24
24
  if (e.length === 0)
25
25
  return r;
26
26
  const [n, ...o] = e;
@@ -30,7 +30,7 @@ function g(r, e, t) {
30
30
  });
31
31
  const s = r[n];
32
32
  return c(f({}, r), {
33
- [n]: g(
33
+ [n]: _(
34
34
  typeof s == "object" && s !== null ? s : {},
35
35
  o,
36
36
  t
@@ -50,7 +50,7 @@ function A(...r) {
50
50
  if (e.every(
51
51
  (o) => typeof o == "object" && o !== null && !i(o)
52
52
  ))
53
- return m({}, ...e, (o, s) => {
53
+ return d({}, ...e, (o, s) => {
54
54
  if (i(o) && i(s))
55
55
  return o.concat(s);
56
56
  });
@@ -67,7 +67,7 @@ function A(...r) {
67
67
  "deepMerge: Invalid arguments provided. All arguments must be objects or arrays of the same type."
68
68
  );
69
69
  }
70
- function l(r) {
70
+ function g(r) {
71
71
  if (!r || typeof r != "object")
72
72
  return r;
73
73
  const e = {};
@@ -76,12 +76,12 @@ function l(r) {
76
76
  if (Object.keys(n).some(
77
77
  (s) => s.startsWith("$")
78
78
  ))
79
- e[t] = l(n);
79
+ e[t] = n;
80
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;
81
+ const s = g(n);
82
+ for (const [l, p] of Object.entries(s)) {
83
+ const y = `${t}.${l}`;
84
+ e[y] = p;
85
85
  }
86
86
  }
87
87
  else
@@ -92,6 +92,6 @@ export {
92
92
  A as deepMerge,
93
93
  P as getNestedValue,
94
94
  w as isJSON,
95
- l as normalizeMongoFilter,
96
- g as setNestedValue
95
+ g as normalizeMongoFilter,
96
+ _ as setNestedValue
97
97
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cyberskill/shared",
3
3
  "type": "module",
4
- "version": "2.8.0",
4
+ "version": "2.9.0",
5
5
  "description": "CyberSkill Shared",
6
6
  "author": "Stephen Cheng",
7
7
  "license": "MIT",