@cyberskill/shared 2.27.0 → 3.0.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/config/config.util.cjs +1 -1
- package/dist/config/config.util.js +24 -33
- package/dist/config/eslint/index.cjs +1 -1
- package/dist/config/eslint/index.d.ts +6 -0
- package/dist/config/eslint/index.js +4 -12
- package/dist/config/graphql-codegen/graphql-codegen.util.cjs +1 -1
- package/dist/config/graphql-codegen/graphql-codegen.util.js +28 -33
- package/dist/config/storybook/storybook.preview.cjs +1 -1
- package/dist/config/storybook/storybook.preview.js +10 -13
- package/dist/config/vitest/vitest.e2e.cjs +1 -1
- package/dist/config/vitest/vitest.e2e.js +1 -1
- package/dist/config/vitest/vitest.unit.cjs +1 -1
- package/dist/config/vitest/vitest.unit.js +19 -8
- package/dist/constant/common.cjs +1 -1
- package/dist/constant/common.js +1 -1
- package/dist/node/apollo-server/apollo-server.util.cjs +1 -1
- package/dist/node/apollo-server/apollo-server.util.js +21 -48
- package/dist/node/cli/index.cjs +2 -5
- package/dist/node/cli/index.js +109 -170
- package/dist/node/command/command.util.cjs +2 -2
- package/dist/node/command/command.util.js +135 -170
- package/dist/node/express/express.util.cjs +1 -1
- package/dist/node/express/express.util.js +39 -72
- package/dist/node/fs/fs.util.cjs +4 -1
- package/dist/node/fs/fs.util.d.ts +8 -0
- package/dist/node/fs/fs.util.js +46 -53
- package/dist/node/fs/index.cjs +1 -1
- package/dist/node/fs/index.js +13 -12
- package/dist/node/log/log.util.cjs +1 -1
- package/dist/node/log/log.util.js +29 -30
- package/dist/node/mongo/mongo.controller.cjs +1 -1
- package/dist/node/mongo/mongo.controller.js +531 -629
- package/dist/node/mongo/mongo.type.js +3 -3
- package/dist/node/mongo/mongo.util.cjs +2 -5
- package/dist/node/mongo/mongo.util.js +308 -354
- package/dist/node/package/package.util.cjs +1 -1
- package/dist/node/package/package.util.js +197 -226
- package/dist/node/path/index.cjs +1 -1
- package/dist/node/path/index.js +26 -25
- package/dist/node/path/path.constant.cjs +1 -1
- package/dist/node/path/path.constant.d.ts +2 -0
- package/dist/node/path/path.constant.js +130 -150
- package/dist/node/storage/storage.util.cjs +1 -1
- package/dist/node/storage/storage.util.js +110 -158
- package/dist/node/upload/upload.util.cjs +1 -1
- package/dist/node/upload/upload.util.js +119 -150
- package/dist/node/ws/ts.util.cjs +1 -1
- package/dist/node/ws/ts.util.js +31 -54
- package/dist/react/apollo-client/apollo-client.component.cjs +1 -1
- package/dist/react/apollo-client/apollo-client.component.js +4 -4
- package/dist/react/apollo-client/apollo-client.util.cjs +1 -1
- package/dist/react/apollo-client/apollo-client.util.js +51 -58
- package/dist/react/apollo-client/links/upload.cjs +1 -1
- package/dist/react/apollo-client/links/upload.js +71 -74
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.util.cjs +1 -1
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.util.js +11 -18
- package/dist/react/apollo-error/apollo-error.component.cjs +1 -1
- package/dist/react/apollo-error/apollo-error.component.js +61 -23
- package/dist/react/apollo-error/apollo-error.module.scss.cjs +1 -1
- package/dist/react/apollo-error/apollo-error.module.scss.js +6 -6
- package/dist/react/apollo-error/apollo-error.test.unit.d.ts +1 -0
- package/dist/react/apollo-error/apollo-error.util.cjs +1 -1
- package/dist/react/apollo-error/apollo-error.util.js +6 -6
- package/dist/react/loading/loading.component.cjs +2 -2
- package/dist/react/loading/loading.component.js +30 -46
- package/dist/react/log/log.util.cjs +1 -1
- package/dist/react/log/log.util.js +4 -4
- package/dist/react/next-intl/next-intl.hoc.cjs +1 -1
- package/dist/react/next-intl/next-intl.hoc.js +13 -22
- package/dist/react/next-intl/next-intl.provider.cjs +1 -1
- package/dist/react/next-intl/next-intl.provider.js +7 -7
- package/dist/react/storage/storage.hook.cjs +1 -1
- package/dist/react/storage/storage.hook.js +43 -59
- package/dist/react/storage/storage.util.cjs +1 -1
- package/dist/react/storage/storage.util.js +28 -53
- package/dist/react/userback/userback.component.cjs +1 -1
- package/dist/react/userback/userback.component.js +18 -42
- package/dist/style.css +1 -1
- package/dist/util/common/common.util.cjs +1 -1
- package/dist/util/common/common.util.d.ts +11 -0
- package/dist/util/common/common.util.js +33 -37
- package/dist/util/common/index.cjs +1 -1
- package/dist/util/common/index.js +6 -5
- package/dist/util/index.cjs +1 -1
- package/dist/util/index.js +22 -20
- package/dist/util/object/object.util.cjs +1 -1
- package/dist/util/object/object.util.js +70 -70
- package/dist/util/string/index.cjs +1 -1
- package/dist/util/string/index.js +4 -3
- package/dist/util/string/string.util.cjs +1 -1
- package/dist/util/string/string.util.d.ts +12 -0
- package/dist/util/string/string.util.js +63 -44
- package/package.json +53 -44
- package/public/tsconfig.base.json +7 -3
- package/README.md +0 -470
- package/dist/node/mongo/mongo.util.d.ts +0 -1040
- /package/dist/node_modules/.pnpm/{vitest@4.0.17_@types_node@25.0.9_jiti@2.6.1_jsdom@27.4.0_@noble_hashes@1.8.0__sass@1.97.2_tsx@4.21.0_yaml@2.8.2 → vitest@4.0.18_@types_node@25.3.3_jiti@2.6.1_jsdom@28.1.0_@noble_hashes@1.8.0__sass@1.97.3_tsx@4.21.0_yaml@2.8.2}/node_modules/vitest/dist/config.cjs +0 -0
- /package/dist/node_modules/.pnpm/{vitest@4.0.17_@types_node@25.0.9_jiti@2.6.1_jsdom@27.4.0_@noble_hashes@1.8.0__sass@1.97.2_tsx@4.21.0_yaml@2.8.2 → vitest@4.0.18_@types_node@25.3.3_jiti@2.6.1_jsdom@28.1.0_@noble_hashes@1.8.0__sass@1.97.3_tsx@4.21.0_yaml@2.8.2}/node_modules/vitest/dist/config.js +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Collection as o, Db as s } from "mongodb";
|
|
2
2
|
import { Document as t, Model as l } from "mongoose";
|
|
3
|
-
class d extends
|
|
3
|
+
class d extends s {
|
|
4
4
|
}
|
|
5
5
|
class m extends t {
|
|
6
6
|
}
|
|
7
7
|
class C extends l {
|
|
8
8
|
}
|
|
9
|
-
class r extends
|
|
9
|
+
class r extends o {
|
|
10
10
|
}
|
|
11
11
|
export {
|
|
12
12
|
r as C_Collection,
|
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
2
|
-
module.exports = ${JSON.stringify(t,null,4)}`;
|
|
3
|
-
${w.MIGRATE_MONGO_CONFIG}
|
|
4
|
-
`;E.pathExistsSync(w.PATH.GIT_IGNORE)?E.readFileSync(w.PATH.GIT_IGNORE,"utf-8").split(`
|
|
5
|
-
`).includes(w.MIGRATE_MONGO_CONFIG)||E.appendFileSync(w.PATH.GIT_IGNORE,e):E.writeFileSync(w.PATH.GIT_IGNORE,e)}}),regexify(t,i){if(!t)return{};let e=F.deepClone(t);if(!i||i.length===0)return e;for(const o of i){const r=o.toString().split("."),n=F.getNestedValue(e,r);if(typeof n=="string"&&n.length>0){const l={$regex:`.*${B.regexSearchMapper(n)}.*`,$options:"i"};e=F.setNestedValue(e,r,l)}}return e},isDynamicVirtual(t){return!!(t&&typeof t.ref=="function")},getNewRecords(t,i,e){return R(this,null,function*(){const o=yield t.findAll({});return o.success?i.filter(n=>!o.result.some(l=>e(l,n))):i})},getExistingRecords(t,i,e){return R(this,null,function*(){const o=yield t.findAll({});return o.success?o.result.filter(n=>i.some(l=>e(n,l))):[]})}};function x(t,i,e,o,r){return R(this,null,function*(){if(!i.length||!e)return i;const n=Array.isArray(e)?e:[e];for(const l of n)typeof l=="string"?yield C(t,i,l,o,r):l&&typeof l=="object"&&(yield X(t,i,l,o,r));return i})}function C(t,i,e,o,r){return R(this,null,function*(){var n,l,y,s;const h=e.split(".");if(h.length<2){for(const m of i)yield V(t,m,e,o,void 0,r);return}const u=h[0];if(!u||u.trim()==="")return;const S=h.slice(1).join(".");for(const m of i){const N=m,O=N[u];if(O&&typeof O=="object"){let c=r;const a=c;if(r&&r.schema&&r.schema.virtuals){const f=r.schema.virtuals[u];if(f&&f.options&&f.options.ref){let g;if(typeof f.options.ref=="function"?g=f.options.ref(N):typeof f.options.ref=="string"&&(g=f.options.ref),g){const p=P(g);t.models[p]&&(c=t.models[p])}}}if(!c){const f=(l=(n=r==null?void 0:r.schema)==null?void 0:n.statics)!=null?l:{},p=((r==null?void 0:r._virtualConfigs)||f._dynamicVirtuals||[]).find(d=>d.name===u);if(p&&p.options&&p.options.ref){let d;if(typeof p.options.ref=="function"?d=p.options.ref(N):typeof p.options.ref=="string"&&(d=p.options.ref),d){const b=P(d);t.models[b]&&(c=t.models[b])}}}if(c===a){const f=(s=(y=r==null?void 0:r.schema)==null?void 0:y.statics)!=null?s:{},p=((r==null?void 0:r._virtualConfigs)||f._dynamicVirtuals||[]).find(d=>d.name===u);if(p&&p.options&&p.options.ref){let d;if(typeof p.options.ref=="function"?d=p.options.ref(N):typeof p.options.ref=="string"&&(d=p.options.ref),d){const b=P(d);t.models[b]&&(c=t.models[b])}}}if(Array.isArray(O))for(const f of O)f&&typeof f=="object"&&(yield V(t,f,S,o,u,c));else O&&typeof O=="object"&&(yield V(t,O,S,o,u,c))}}})}function X(t,i,e,o,r){return R(this,null,function*(){const{path:n,populate:l}=e;if(!n)return;if(!l){yield C(t,i,n,o,r);return}const y=n;for(const s of i){const h=s,u=h[y];let S=r;if(r&&r.schema&&r.schema.virtuals){const m=r.schema.virtuals[y];if(m&&m.options&&m.options.ref){let N;if(typeof m.options.ref=="function"?N=m.options.ref(h):typeof m.options.ref=="string"&&(N=m.options.ref),N){const O=P(N);t.models[O]&&(S=t.models[O])}}}if(!S&&typeof u=="object"&&u&&"entityType"in u){const m=P(String(u.entityType));t.models[m]&&(S=t.models[m])}if(u&&typeof u=="object")if(Array.isArray(u))for(const m of u)m&&typeof m=="object"&&(yield x(t,[m],l,o,S));else u&&typeof u=="object"&&(yield x(t,[u],l,o,S))}})}function G(t,i,e,o){if(!e||!i||!i.schema)return;const r=e.split(".");let n=i.schema;for(let l=0;l<r.length;l++){const y=r[l];if(n&&n.virtuals&&y){const s=n.virtuals[y];if(s&&s.options&&s.options.ref){let h;if(typeof s.options.ref=="function"?h=s.options.ref(o):typeof s.options.ref=="string"&&(h=s.options.ref),h&&typeof h=="string"){if(l===r.length-1)return h;const u=t.models[h];if(u&&u.schema){n=u.schema;continue}}}}if(n&&n.paths&&y){const s=n.paths[y];if(s&&s.schema){n=s.schema;continue}}return}}function Y(t,i){if(i)for(const e of Object.keys(t.models)){const o=t.models[e],r=o==null?void 0:o.schema;if(r&&(r.paths&&r.paths[i]||r.virtuals&&r.virtuals[i]))return o}}function Z(t,i){const e=(i||"").split(".")[0]||"";if(e)for(const o of Object.keys(t.models)){const r=t.models[o],n=r==null?void 0:r.schema;if(n&&(n.paths&&n.paths[e]||n.virtuals&&n.virtuals[e]))return r}}function V(t,i,e,o,r,n){return R(this,null,function*(){var l,y;let s=i.__t;if(!s){if(n){const c=r?`${r}.${e}`:e,a=(c||"").split(".")[0]||"";let f=n;if(!!!((l=f==null?void 0:f.schema)!=null&&l.paths&&f.schema.paths[a]||(y=f==null?void 0:f.schema)!=null&&y.virtuals&&f.schema.virtuals[a])){const d=Z(t,c);d&&(f=d)}const p=G(t,f,c,i);if(p)s=p;else{const d=(c.includes(".")?c.split(".").pop():c)||"";if(d){const b=Y(t,d);if(b){const j=G(t,b,c,i);j&&(s=j)}}}}if(o&&o.length>0){const c=e.split(".").pop()||"",a=o.find(f=>f.name===c);if(a&&a.options.ref){let f;typeof a.options.ref=="function"?f=a.options.ref(i):typeof a.options.ref=="string"&&(f=a.options.ref),f&&typeof f=="string"&&(s=f)}}if(!s){for(const[c,a]of Object.entries(i))if(c==="entityType"&&typeof a=="string"){s=a;break}if(s&&t.models[s]){const c=t.models[s];if(c&&c.schema){const a=c.schema,f=e.split(".").pop()||"",g=(d,b="root")=>{if(!d||!d.virtuals)return;const j=d.virtuals;for(const _ of Object.keys(j))if(_===f){const v=j[_];if(v&&v.options&&v.options.ref){let A;if(typeof v.options.ref=="function"?A=v.options.ref(i):typeof v.options.ref=="string"&&(A=v.options.ref),A&&typeof A=="string")return A}}if(d.paths)for(const _ of Object.keys(d.paths)){const v=d.paths[_];if(v&&v.schema){const A=g(v.schema,`${b}.${_}`);if(A)return A}}},p=g(a);p&&(s=p)}}}if(!s){const c=e.split(".").pop()||"";if(n&&n.schema){const a=n.schema,f=(p,d="root")=>{if(!p||!p.virtuals)return;const b=p.virtuals;for(const j of Object.keys(b))if(j===c){const _=b[j];if(_&&_.options&&_.options.ref){let v;if(typeof _.options.ref=="function"?v=_.options.ref(i):typeof _.options.ref=="string"&&(v=_.options.ref),v&&typeof v=="string")return v}}if(p.paths)for(const j of Object.keys(p.paths)){const _=p.paths[j];if(_&&_.schema){const v=f(_.schema,`${d}.${j}`);if(v)return v}}},g=f(a);g&&(s=g)}if(!s&&n){const a=G(t,n,e,i);a&&(s=a)}if(!s&&o&&o.length>0){const a=o.find(f=>f.name===c);if(a&&a.options.ref){let f;typeof a.options.ref=="function"?f=a.options.ref(i):typeof a.options.ref=="string"&&(f=a.options.ref),f&&typeof f=="string"&&(s=f)}}}if(!s){const c=e.split(".").pop()||"",a=c?c.charAt(0).toUpperCase()+c.slice(1):"";a&&t.models[a]&&(s=a)}}const h=t.models[s];if(!h)return;const u=`${e}Id`,S=`${e}Ids`,m=i[u]||i[S]||i[e];if(!m)return;const N=Array.isArray(m)?m:[m],O=yield h.find({id:{$in:N}}).lean();O.length>0&&(Array.isArray(m)?i[e]=O:i[e]=O[0])})}exports.applyNestedPopulate=x;exports.convertEnumToModelName=P;exports.mongo=I;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $=require("migrate-mongo"),G=require("mongoose-aggregate-paginate-v2"),D=require("mongoose-paginate-v2"),V=require("node:crypto"),S=require("../../util/object/object.util.cjs"),k=require("../../util/common/common.util.cjs"),x=require("../fs/fs.util.cjs"),_=require("../path/path.constant.cjs"),U=require("../../util/validate/validate.util.cjs");function A(t){return t===t.toUpperCase()?t.charAt(0).toUpperCase()+t.slice(1).toLowerCase():t}const R={createGenericFields(){return{id:V.randomUUID(),isDel:!1,createdAt:new Date,updatedAt:new Date}},applyPlugins(t,e){e.filter(i=>typeof i=="function").forEach(i=>t.plugin(i))},applyMiddlewares(t,e){e.forEach(({method:i,pre:a,post:r})=>{i&&a&&t.pre(i,a),i&&r&&t.post(i,r)})},createGenericSchema(t){return new t.Schema({id:{type:String,default:()=>V.randomUUID(),unique:!0},isDel:{type:Boolean,default:!1}},{timestamps:!0})},createSchema({mongoose:t,schema:e,virtuals:i=[],standalone:a=!1}){const r=new t.Schema(e,{toJSON:{virtuals:!0},toObject:{virtuals:!0}});return i.forEach(({name:o,options:s,get:u})=>{if(R.isDynamicVirtual(s)){const p=r.statics;p._dynamicVirtuals||(p._dynamicVirtuals=[]),p._dynamicVirtuals.push({name:o,options:s});const y=r.virtual(o);u?y.get(u):y.get(function(){return this._populated?.[o]||(s?.count?0:s?.justOne?null:[])})}else{const p=r.virtual(o,s);u&&p.get(u)}}),a||r.add(R.createGenericSchema(t)),r},createModel({mongoose:t,name:e,schema:i,virtuals:a=[],pagination:r=!0,aggregate:o=!0,middlewares:s=[]}){if(!e)throw new Error("Model name is required.");if(t.models[e])return t.models[e];const u=R.createSchema({mongoose:t,schema:i,virtuals:a});(r||o)&&R.applyPlugins(u,[r&&D,o&&G]),R.applyMiddlewares(u,s);const p=t.model(e,u);return a.length>0&&(p._virtualConfigs=a),p},validator:{isRequired(){return async function(t){return!U.validate.isEmpty(t)}},isUnique(t){return async function(e){if(!Array.isArray(t)||t.length===0)throw new Error("Fields must be a non-empty array of strings.");const i={$or:t.map(r=>({[r]:e}))};return!await this.constructor.exists(i)}},matchesRegex(t){return async e=>{if(!Array.isArray(t)||t.some(i=>!(i instanceof RegExp)))throw new Error("regexArray must be an array of valid RegExp objects.");return t.every(i=>i.test(e))}}},migrate:{...$,setConfig:t=>{const e=`// This file is automatically generated by the Cyberskill CLI.
|
|
2
|
+
module.exports = ${JSON.stringify(t,null,4)}`;x.writeFileSync(_.PATH.MIGRATE_MONGO_CONFIG,e),x.addGitIgnoreEntry(_.PATH.GIT_IGNORE,_.MIGRATE_MONGO_CONFIG)}},regexify(t,e){if(!t)return{};let i=S.deepClone(t);if(!e||e.length===0)return i;for(const a of e){const r=a.toString().split("."),o=S.getNestedValue(i,r);if(typeof o=="string"&&o.length>0){const s={$regex:`.*${k.regexSearchMapper(o)}.*`,$options:"i"};i=S.setNestedValue(i,r,s)}}return i},isDynamicVirtual(t){return!!(t&&typeof t.ref=="function")},async getNewRecords(t,e,i){const a=await t.findAll({});return a.success?e.filter(o=>!a.result.some(s=>i(s,o))):e},async getExistingRecords(t,e,i){const a=await t.findAll({});return a.success?a.result.filter(o=>e.some(s=>i(o,s))):[]}};async function I(t,e,i,a,r){if(!e.length||!i)return e;const o=Array.isArray(i)?i:[i];for(const s of o)typeof s=="string"?await q(t,e,s,a,r):s&&typeof s=="object"&&await C(t,e,s,a,r);return e}async function q(t,e,i,a,r){const o=i.split(".");if(o.length<2){for(const p of e)await E(t,p,i,a,void 0,r);return}const s=o[0];if(!s||s.trim()==="")return;const u=o.slice(1).join(".");for(const p of e){const y=p,l=y[s];if(l&&typeof l=="object"){let b=r;const d=b;if(r&&r.schema&&r.schema.virtuals){const f=r.schema.virtuals[s];if(f&&f.options&&f.options.ref){let c;if(typeof f.options.ref=="function"?c=f.options.ref(y):typeof f.options.ref=="string"&&(c=f.options.ref),c){const n=A(c);t.models[n]&&(b=t.models[n])}}}if(!b){const f=r?.schema?.statics??{},n=(r?._virtualConfigs||f._dynamicVirtuals||[]).find(m=>m.name===s);if(n&&n.options&&n.options.ref){let m;if(typeof n.options.ref=="function"?m=n.options.ref(y):typeof n.options.ref=="string"&&(m=n.options.ref),m){const v=A(m);t.models[v]&&(b=t.models[v])}}}if(b===d){const f=r?.schema?.statics??{},n=(r?._virtualConfigs||f._dynamicVirtuals||[]).find(m=>m.name===s);if(n&&n.options&&n.options.ref){let m;if(typeof n.options.ref=="function"?m=n.options.ref(y):typeof n.options.ref=="string"&&(m=n.options.ref),m){const v=A(m);t.models[v]&&(b=t.models[v])}}}if(Array.isArray(l))for(const f of l)f&&typeof f=="object"&&await E(t,f,u,a,s,b);else l&&typeof l=="object"&&await E(t,l,u,a,s,b)}}}async function C(t,e,i,a,r){const{path:o,populate:s}=i;if(!o)return;if(!s){await q(t,e,o,a,r);return}const u=o;for(const p of e){const y=p,l=y[u];let b=r;if(r&&r.schema&&r.schema.virtuals){const d=r.schema.virtuals[u];if(d&&d.options&&d.options.ref){let f;if(typeof d.options.ref=="function"?f=d.options.ref(y):typeof d.options.ref=="string"&&(f=d.options.ref),f){const c=A(f);t.models[c]&&(b=t.models[c])}}}if(!b&&typeof l=="object"&&l&&"entityType"in l){const d=A(String(l.entityType));t.models[d]&&(b=t.models[d])}if(l&&typeof l=="object")if(Array.isArray(l))for(const d of l)d&&typeof d=="object"&&await I(t,[d],s,a,b);else l&&typeof l=="object"&&await I(t,[l],s,a,b)}}function F(t,e,i,a){if(!i||!e||!e.schema)return;const r=i.split(".");let o=e.schema;for(let s=0;s<r.length;s++){const u=r[s];if(o&&o.virtuals&&u){const p=o.virtuals[u];if(p&&p.options&&p.options.ref){let y;if(typeof p.options.ref=="function"?y=p.options.ref(a):typeof p.options.ref=="string"&&(y=p.options.ref),y&&typeof y=="string"){if(s===r.length-1)return y;const l=t.models[y];if(l&&l.schema){o=l.schema;continue}}}}if(o&&o.paths&&u){const p=o.paths[u];if(p&&p.schema){o=p.schema;continue}}return}}function P(t,e){if(e)for(const i of Object.keys(t.models)){const a=t.models[i],r=a?.schema;if(r&&(r.paths&&r.paths[e]||r.virtuals&&r.virtuals[e]))return a}}function B(t,e){const i=(e||"").split(".")[0]||"";if(i)for(const a of Object.keys(t.models)){const r=t.models[a],o=r?.schema;if(o&&(o.paths&&o.paths[i]||o.virtuals&&o.virtuals[i]))return r}}async function E(t,e,i,a,r,o){let s=e.__t;if(!s){if(o){const f=r?`${r}.${i}`:i,c=(f||"").split(".")[0]||"";let n=o;if(!!!(n?.schema?.paths&&n.schema.paths[c]||n?.schema?.virtuals&&n.schema.virtuals[c])){const N=B(t,f);N&&(n=N)}const v=F(t,n,f,e);if(v)s=v;else{const N=(f.includes(".")?f.split(".").pop():f)||"";if(N){const O=P(t,N);if(O){const j=F(t,O,f,e);j&&(s=j)}}}}if(a&&a.length>0){const f=i.split(".").pop()||"",c=a.find(n=>n.name===f);if(c&&c.options.ref){let n;typeof c.options.ref=="function"?n=c.options.ref(e):typeof c.options.ref=="string"&&(n=c.options.ref),n&&typeof n=="string"&&(s=n)}}if(!s){for(const[f,c]of Object.entries(e))if(f==="entityType"&&typeof c=="string"){s=c;break}if(s&&t.models[s]){const f=t.models[s];if(f&&f.schema){const c=f.schema,n=i.split(".").pop()||"",m=(N,O="root")=>{if(!N||!N.virtuals)return;const j=N.virtuals;for(const g of Object.keys(j))if(g===n){const h=j[g];if(h&&h.options&&h.options.ref){let w;if(typeof h.options.ref=="function"?w=h.options.ref(e):typeof h.options.ref=="string"&&(w=h.options.ref),w&&typeof w=="string")return w}}if(N.paths)for(const g of Object.keys(N.paths)){const h=N.paths[g];if(h&&h.schema){const w=m(h.schema,`${O}.${g}`);if(w)return w}}},v=m(c);v&&(s=v)}}}if(!s){const f=i.split(".").pop()||"";if(o&&o.schema){const c=o.schema,n=(v,N="root")=>{if(!v||!v.virtuals)return;const O=v.virtuals;for(const j of Object.keys(O))if(j===f){const g=O[j];if(g&&g.options&&g.options.ref){let h;if(typeof g.options.ref=="function"?h=g.options.ref(e):typeof g.options.ref=="string"&&(h=g.options.ref),h&&typeof h=="string")return h}}if(v.paths)for(const j of Object.keys(v.paths)){const g=v.paths[j];if(g&&g.schema){const h=n(g.schema,`${N}.${j}`);if(h)return h}}},m=n(c);m&&(s=m)}if(!s&&o){const c=F(t,o,i,e);c&&(s=c)}if(!s&&a&&a.length>0){const c=a.find(n=>n.name===f);if(c&&c.options.ref){let n;typeof c.options.ref=="function"?n=c.options.ref(e):typeof c.options.ref=="string"&&(n=c.options.ref),n&&typeof n=="string"&&(s=n)}}}if(!s){const f=i.split(".").pop()||"",c=f?f.charAt(0).toUpperCase()+f.slice(1):"";c&&t.models[c]&&(s=c)}}const u=t.models[s];if(!u)return;const p=`${i}Id`,y=`${i}Ids`,l=e[p]||e[y]||e[i];if(!l)return;const b=Array.isArray(l)?l:[l],d=await u.find({id:{$in:b}}).lean();d.length>0&&(Array.isArray(l)?e[i]=d:e[i]=d[0])}exports.applyNestedPopulate=I;exports.convertEnumToModelName=A;exports.mongo=R;
|