@hostlink/light 3.0.4 → 3.0.6
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/createClient.d.ts +0 -4
- package/dist/index.d.ts +2 -2
- package/dist/light.js +416 -515
- package/dist/light.umd.cjs +1 -1
- package/dist/model.d.ts +1 -1
- package/dist/models.d.ts +205 -88
- package/package.json +1 -1
package/dist/light.umd.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(h,m){typeof exports=="object"&&typeof module<"u"?m(exports,require("json-to-graphql-query"),require("axios"),require("collect.js")):typeof define=="function"&&define.amd?define(["exports","json-to-graphql-query","axios","collect.js"],m):(h=typeof globalThis<"u"?globalThis:h||self,m(h.light={},h.jsonToGraphqlQuery,h.axios,h.collect))})(this,(function(h,m,bt,U){"use strict";function E(t){if(t===null||typeof t!="object")return!1;const e=Object.getPrototypeOf(t);return e!==null&&e!==Object.prototype&&Object.getPrototypeOf(e)!==null||Symbol.iterator in t?!1:Symbol.toStringTag in t?Object.prototype.toString.call(t)==="[object Module]":!0}function S(t,e,r=".",n){if(!E(e))return S(t,{},r,n);const o=Object.assign({},e);for(const p in t){if(p==="__proto__"||p==="constructor")continue;const a=t[p];a!=null&&(n&&n(o,p,a,r)||(Array.isArray(a)&&Array.isArray(o[p])?o[p]=[...a,...o[p]]:E(a)&&E(o[p])?o[p]=S(a,o[p],(r?`${r}.`:"")+p.toString(),n):o[p]=a))}return o}function mt(t){return(...e)=>e.reduce((r,n)=>S(r,n,"",t),{})}const A=mt();let M=null;const L=t=>{M=t},v=()=>{if(!M)throw new Error("Api client not initialized. Call setApiClient() first.");return M},Ft=()=>M;function C(t){for(let e=0;e<t.length;e++)if(t[e]instanceof File)return!0;return!1}function T(t){for(let e in t)if(t[e]instanceof File||t[e]instanceof Array&&C(t[e]))return!0;return!1}function $(t,e,r,n,o){if(!(!t||typeof t!="object"))for(let p in t){const a=t[p];if(a&&typeof a=="object"){if("__args"in a){const u=a.__args,s={};Object.entries(u).forEach(([i,c])=>{if(c instanceof Array&&C(c)){s[i]=new m.VariableType(i);let l=0;c.forEach(f=>{f instanceof File&&(r[o.current]||(r[o.current]=[]),r[o.current].push("variables."+i+"."+l),n.append(o.current.toString(),f),o.current++,l++)}),e[i]="[Upload!]!"}else c instanceof File?(s[i]=new m.VariableType(i),r[o.current]=["variables."+i],n.append(o.current.toString(),c),e[i]="Upload!",o.current++):c instanceof Object&&T(c)?(s[i]={},Object.entries(c).forEach(([l,f])=>{if(f instanceof Array&&C(f)){s[i][l]=new m.VariableType(l);let y=0;f.forEach(_=>{_ instanceof File&&(r[o.current]||(r[o.current]=[]),r[o.current].push("variables."+l+"."+y),n.append(o.current.toString(),_),o.current++,y++)}),e[l]="[Upload!]!"}else f instanceof File?(s[i][l]=new m.VariableType(l),r[o.current]=["variables."+l],n.append(o.current.toString(),f),e[l]="Upload!",o.current++):s[i][l]=f})):c!=null&&(s[i]=c)}),a.__args=s}$(a,e,r,n,o)}}}const w=async t=>{const e=v(),r=t,n=new FormData;let o=!1;const p={},a={};$(r,p,a,n,{current:0}),o=Object.keys(p).length>0,o&&(r.__variables=p);let s=null;const i={query:r},c=m.jsonToGraphQLQuery(i);if(o?(n.append("map",JSON.stringify(a)),n.append("operations",JSON.stringify({query:c})),s=await e.axios.post("",n)):s=await e.axios.post("",{query:c}),s.data.errors)throw new Error(s.data.errors[0].message);return s.data.data};function P(t,e){let r,n=[],o,p;const a=s=>!s||typeof s!="object"?!1:Object.values(s).some(i=>i&&typeof i=="object"&&Object.keys(i).some(c=>c.startsWith("_"))),u=()=>n.length===0?(n.unshift({}),n[0]):(a(n[0])&&n.unshift({}),n[0]);return{first(){return this.fetchFirst()},all(){return this.fetch()},async fetchFirst(){const i=await this.limit(1).fetch();return Array.isArray(i)&&i.length>0?i[0]:null},async fetchWithMeta(){let i=await w(this.toQuery(!0));if(p){const c=p.split(".");for(const l of c)i=i[l];return i}return i[`list${t}`]},async fetch(){let i=await w(this.toQuery());if(p){const c=p.split(".");for(const l of c)i=i[l];return i.data}return i[`list${t}`].data},dataPath(s){return s&&typeof s=="string"&&(p=s),this},sort(s){return s&&typeof s=="string"&&(o=s),this},filters(s){return s&&typeof s=="object"&&(n=[s]),this},where(s,i,c){const l=(f,y,_)=>{const D={">":"_gt","<":"_lt",">=":"_gte","<=":"_lte","!=":"_ne",in:"_in",contains:"_contains"}[y];D&&n.push({[f]:{[D]:_}})};if(c!==void 0)l(s,String(i),c);else{const f=u(),y=A(f,{[s]:i});n[0]=y}return this},whereContains(s,i){if(s&&typeof s=="string"){const c=u(),l={_contains:i};c[s]?Array.isArray(c[s])?c[s].push(l):c[s]=[c[s],l]:c[s]=[l],n[0]=c}return this},whereIn(s,i){if(s&&typeof s=="string"&&Array.isArray(i)){const c=u(),l={_in:i};c[s]?Array.isArray(c[s])?c[s].push(l):c[s]=[c[s],l]:c[s]=[l],n[0]=c}return this},whereBetween(s,i,c){if(s&&typeof s=="string"){const l=u(),f={_between:[i,c]};l[s]?Array.isArray(l[s])?l[s].push(f):l[s]=[l[s],f]:l[s]=f,n[0]=l}return this},limit(s){return typeof s=="number"&&Number.isFinite(s)&&(r=A(r||{},{limit:s})),this},offset(s){return typeof s=="number"&&Number.isFinite(s)&&(r=A(r||{},{offset:s})),this},toQuery(s=!1){let i;const c=n.length>0&&Object.keys(n[0]||{}).length>0,l=c?1:0,f=n.length>l;c&&f?i=n:f?i=n.slice(l):c&&(i=n[0]);const y=A(o?{sort:o}:{},i?{filters:i}:{}),_={data:{...e}};if(r&&(_.data.__args=r),Object.keys(y).length>0&&(_.__args=y),s&&(_.meta={total:!0,key:!0,name:!0}),p){const b=p.split(".");let D=_;for(let J=b.length-1;J>=0;J--)D={[b[J]]:D};return D}return{[`list${t}`]:_}}}}const R=(t,e)=>{const r=t,n=e;let o="list"+t;const p=a=>n[a]?n[a]:null;return{field:p,$fields:n,setDataPath(a){return o=a,o},getDataPath(){return o},gqlFields(a){let u={};for(const s of a)if(typeof s=="string"){const i=p(s);i&&(u=A(u,i.gqlField?typeof i.gqlField=="string"?{[i.gqlField]:!0}:i.gqlField:{[i.name||s]:!0}))}else typeof s=="object"&&(u=A(u,s));return u},update(a,u){return d({["update"+r]:{__args:{id:a,data:u}}}).then(s=>s["update"+r])},async delete(a){return d({["delete"+r]:{__args:{id:a}}}).then(u=>u["delete"+r])},add(a){return d({["add"+r]:{__args:{data:a}}}).then(u=>u["add"+r])},fields(a){let u=[];for(let s of a){const i=p(s);i&&u.push(i)}return u},async get(a,u){const s=(await Promise.resolve().then(()=>qt)).default,i=s(r,wt(u));for(const[c,l]of Object.entries(a))i.where(c,"==",l);return await i.first()},list(a){let u=a;const s={};Object.entries(a).forEach(([l])=>{n[l]&&(s[l]=n[l],n[l].gqlField&&(delete u[l],u=A(u,n[l].gqlField)),n[l].gql&&(u=A(u,n[l].gql),delete u[l]))});const i=P(r,u).dataPath(o),c=i.fetch.bind(i);return{...i,async fetch(){return(await c()).map(f=>{const y={...f};return Object.entries(s).forEach(([_,b])=>{b.format&&typeof b.format=="function"&&(y[_]=b.format(f))}),y})},async fetchFirst(){const f=await i.fetchFirst.bind(i)();if(!f)return f;const y={...f};return Object.entries(s).forEach(([_,b])=>{b.format&&typeof b.format=="function"&&(y[_]=b.format(f))}),y}}}}},F={},k=(t=!1)=>{const e={};return{create(r,n){const o=R(r,n);e[r]=o,t&&(F[r]=o)},get(r){return e[r]||(t&&F[r]?e[r]=F[r]:this.create(r,{})),e[r]},has(r){return!!e[r]||t&&!!F[r]},list(){const r=Object.keys(e),n=t?Object.keys(F):[];return[...new Set([...r,...n])]},clear(){Object.keys(e).forEach(r=>delete e[r])}}},At=()=>{const t=k(!1);return{manager:t,createModel:t.create,getModel:t.get,hasModel:t.has,listModels:t.list,clearModels:t.clear,defineModel(e,r){return t.create(e,r),t.get(e)},defineModels(e){Object.entries(e).forEach(([r,n])=>{t.create(r,n)})}}},Ot=()=>{const t=k(!0);return{manager:t,createModel:t.create,getModel:t.get,hasModel:t.has,listModels:t.list,clearModels:t.clear,defineModel(e,r){return t.create(e,r),t.get(e)},defineModels(e){Object.entries(e).forEach(([r,n])=>{t.create(r,n)})}}},Dt=()=>({define(t,e){const r=R(t,e);return F[t]=r,r},get(t){return F[t]},has(t){return!!F[t]},list(){return Object.keys(F)},clear(){Object.keys(F).forEach(t=>delete F[t])}}),Ct=()=>w({app:{permissions:!0}}).then(t=>t.app.permissions),W=async()=>{const{app:t}=await w({app:{auth:{webAuthnRequestOptions:!0}}}),e=t.auth.webAuthnRequestOptions,r=PublicKeyCredential.parseRequestOptionsFromJSON(e);return await navigator.credentials.get({publicKey:r})},z=async()=>{const{app:t}=await w({app:{auth:{webAuthnCreationOptions:!0}}}),e=PublicKeyCredential.parseCreationOptionsFromJSON(t.auth.webAuthnCreationOptions);return await navigator.credentials.create({publicKey:e})},G=Object.freeze(Object.defineProperty({__proto__:null,assertion:W,attestation:z,login:async()=>{const t=await W();return await d({webAuthnAssertion:{__args:{assertion:t.toJSON()}}}).then(e=>e.webAuthnAssertion)},register:async()=>{const t=await z();return await d({webAuthnRegister:{__args:{registration:t.toJSON()}}}).then(e=>e.webAuthnRegister)}},Symbol.toStringTag,{value:"Module"})),Q=(t=q)=>w({my:t}).then(e=>e.my),H=(t,e,r="")=>d({login:{__args:{username:t,password:e,code:r}}}).then(n=>n.login),V=()=>d({logout:!0}).then(t=>t.logout),X=(t,e,r)=>d({changeExpiredPassword:{__args:{username:t,old_password:e,new_password:r}}}).then(n=>n.changeExpiredPassword),Y=(t,e)=>d({changeUserPassword:{__args:{old_password:t,new_password:e}}}).then(r=>r.changeUserPassword),Z=(t,e,r)=>d({resetPassword:{__args:{jwt:t,password:e,code:r}}}).then(n=>n.resetPassword),K=(t,e)=>d({forgetPassword:{__args:{username:t,email:e}}}).then(r=>r.forgetPassword),I=(t,e)=>d({forgetPasswordVerifyCode:{__args:{jwt:t,code:e}}}).then(r=>r.forgetPasswordVerifyCode),x=t=>w({my:{granted:{__args:{right:t}}}}).then(e=>e.my.granted),tt=t=>w({my:{grantedRights:{__args:{rights:t}}}}).then(e=>e.my.grantedRights),et=()=>({getCurrentUser:Q,webAuthn:G,google:{unlink:()=>d({lightAuthUnlinkGoogle:!0}).then(t=>t.lightAuthUnlinkGoogle),login:t=>d({lightAuthLoginGoogle:{__args:{credential:t}}}).then(e=>e.lightAuthLoginGoogle),register:t=>d({lightAuthRegisterGoogle:{__args:{credential:t}}}).then(e=>e.lightAuthRegisterGoogle)},facebook:{unlink:()=>d({lightAuthUnlinkFacebook:!0}).then(t=>t.lightAuthUnlinkFacebook),login:t=>d({lightAuthLoginFacebook:{__args:{access_token:t}}}).then(e=>e.lightAuthLoginFacebook),register:t=>d({lightAuthRegisterFacebook:{__args:{access_token:t}}}).then(e=>e.lightAuthRegisterFacebook)},microsoft:{unlink:()=>d({lightAuthUnlinkMicrosoft:!0}).then(t=>t.lightAuthUnlinkMicrosoft),login:t=>d({lightAuthLoginMicrosoft:{__args:{access_token:t}}}).then(e=>e.lightAuthLoginMicrosoft),register:t=>d({lightAuthRegisterMicrosoft:{__args:{account_id:t}}}).then(e=>e.lightAuthRegisterMicrosoft)},login:H,logout:V,changeExpiredPassword:X,updatePassword:Y,resetPassword:Z,forgetPassword:K,verifyCode:I,grantedRights:tt,isGranted:x}),rt={name:!0,path:!0,size:!0,mime:!0,url:!0},st=(t,e,r=rt)=>w({app:{drive:{__args:{index:t},files:{__args:{path:e},...r}}}}).then(n=>n.app.drive.files),nt=(t,e)=>w({app:{drive:{__args:{index:t},file:{__args:{path:e},base64Content:!0}}}}).then(r=>r.app.drive?.file?.base64Content),O=t=>({list:(e,r=rt)=>st(t,e,r),get:(e,r={name:!0,path:!0,size:!0,mime:!0,url:!0})=>w({app:{drive:{__args:{index:t},file:{__args:{path:e},...r}}}}).then(n=>n.app.drive.file),readFileAsBase64(e){return nt(t,e)},read:async e=>{let r=await w({app:{drive:{__args:{index:t},file:{__args:{path:e},base64Content:!0}}}});if(!r.app.drive.file||!r.app.drive.file.base64Content)throw new Error(`File not found or cannot read content: ${e}`);return typeof window<"u"&&window.atob?window.atob(r.app.drive.file.base64Content):r.app.drive.file.base64Content},write:(e,r)=>d({lightDriveWriteFile:{__args:{index:t,path:e,content:r}}}).then(n=>n.lightDriveWriteFile),delete:e=>d({lightDriveDeleteFile:{__args:{index:t,path:e}}}).then(r=>r.lightDriveDeleteFile),rename:(e,r)=>d({lightDriveRenameFile:{__args:{index:t,path:e,name:r}}}).then(n=>n.lightDriveRenameFile),move:(e,r)=>d({lightDriveMoveFile:{__args:{index:t,source:e,destination:r}}}).then(n=>n.lightDriveMoveFile)}),it={name:!0,path:!0},ot=(t,e,r=it)=>w({app:{drive:{__args:{index:t},folders:{__args:{path:e},...r}}}}).then(n=>n.app.drive.folders),j=t=>({list:(e,r=it)=>ot(t,e,r),create:e=>d({lightDriveCreateFolder:{__args:{index:t,path:e}}}).then(r=>r.lightDriveCreateFolder),delete:e=>d({lightDriveDeleteFolder:{__args:{index:t,path:e}}}).then(r=>r.lightDriveDeleteFolder),rename:(e,r)=>d({lightDriveRenameFolder:{__args:{index:t,path:e,name:r}}}).then(n=>n.lightDriveRenameFolder)}),Pt=()=>w({app:{drives:{index:!0,name:!0}}}).then(t=>t.app.drives),at=t=>({listFiles:O(t).list,getFile:O(t).get,readFile:O(t).read,writeFile:O(t).write,deleteFile:O(t).delete,renameFile:O(t).rename,moveFile:O(t).move,listFolders:j(t).list,createFolder:j(t).create,deleteFolder:j(t).delete,renameFolder:j(t).rename,uploadTempFile:e=>d({lightDriveUploadTempFile:{__args:{index:t,file:e},name:!0,path:!0,size:!0,mime:!0}}).then(r=>r.lightDriveUploadTempFile),folders:j(t),files:O(t)}),q={user_id:!0,username:!0,first_name:!0,last_name:!0,status:!0},ct=t=>d({addUser:{__args:t}}).then(e=>e.addUser),lt=t=>d({deleteUser:{__args:{id:t}}}).then(e=>e.deleteUser),ut=(t=q)=>P("Users",t).dataPath("app.listUser").fetch(),ht=(t,e)=>d({updateUser:{__args:{id:t,data:e}}}).then(r=>r.updateUser),jt=()=>({list:ut,create:ct,delete:lt,update:ht}),ft=t=>w({app:{listConfig:{__args:{filters:{name:t}},data:{name:!0,value:!0}}}}).then(e=>e.app.listConfig.data[0]?.value),Mt={name:!0},pt=(t=Mt)=>w({app:{roles:t}}).then(e=>e.app.roles),dt=(t,e)=>d({addRole:{__args:{data:{name:t,childs:e}}}}).then(r=>r.addRole),gt=t=>d({deleteRole:{__args:{name:t}}}).then(e=>e.deleteRole),kt=()=>({list:pt,create:dt,delete:gt});function _t(t,e,r,n,o){if(!(!t||typeof t!="object"))for(let p in t){const a=t[p];if(a&&typeof a=="object"){if("__args"in a){const u=a.__args,s={};Object.entries(u).forEach(([i,c])=>{if(c instanceof Array&&C(c)){s[i]=new m.VariableType(i);let l=0;c.forEach(f=>{f instanceof File&&(r[o.current]||(r[o.current]=[]),r[o.current].push("variables."+i+"."+l),n.append(o.current.toString(),f),o.current++,l++)}),e[i]="[Upload!]!"}else c instanceof File?(s[i]=new m.VariableType(i),r[o.current]=["variables."+i],n.append(o.current.toString(),c),e[i]="Upload!",o.current++):c instanceof Object&&T(c)?(s[i]={},Object.entries(c).forEach(([l,f])=>{if(f instanceof Array&&C(f)){s[i][l]=new m.VariableType(l);let y=0;f.forEach(_=>{_ instanceof File&&(r[o.current]||(r[o.current]=[]),r[o.current].push("variables."+l+"."+y),n.append(o.current.toString(),_),o.current++,y++)}),e[l]="[Upload!]!"}else f instanceof File?(s[i][l]=new m.VariableType(l),r[o.current]=["variables."+l],n.append(o.current.toString(),f),e[l]="Upload!",o.current++):s[i][l]=f})):c!=null&&(s[i]=c)}),a.__args=s}_t(a,e,r,n,o)}}}const d=async t=>{const r=v().axios,n=t,o=new FormData;let p=!1;const a={},u={};_t(n,a,u,o,{current:0}),p=Object.keys(a).length>0,p&&(n.__variables=a);let i=null;const c={mutation:n},l=m.jsonToGraphQLQuery(c);if(p?(o.append("map",JSON.stringify(u)),o.append("operations",JSON.stringify({query:l})),i=await r.post("",o)):i=await r.post("",{query:l}),i.data.errors)throw new Error(i.data.errors[0].message);return i.data.data},yt=(t,e,r)=>d({sendMail:{__args:{email:t,subject:e,message:r}}}).then(n=>n.sendMail),Ut={send:yt},N=t=>{let e={};return typeof t=="string"?(e[t]=!0,e):t instanceof Array?(t.forEach(r=>{Object.entries(N(r)).forEach(([n,o])=>{e[n]=o})}),e):(Object.entries(t).forEach(([r,n])=>{if(r=="__args"||r=="__aliasFor"||r=="__variables"||r=="__directives"||r=="__all_on"||r=="__name"){e[r]=n;return}if(typeof n=="boolean"){e[r]=n;return}e[r]=N(n)}),e)},wt=t=>N(t),Et="list",St=["flatMap","chunk","shuffle","splice","sortBy","map","reverse","groupBy","keyBy","keys","mapToDictionary","mapWithKeys","nth","skipUntil","skipWhile","takeUntil","takeWhile","unique","pluck","push","only","pad","slice","tap","sort"],vt=["avg","count","countBy","dd","each","every","filter","firstWhere","isEmpty","isNotEmpty","last","mapToGroups","max","median","min","mode","contains","sole","sort","split","sum","toJson","get","has","implode","partition"];class g{_batchData=null;data_path="";filters;steps;fields;already_limit=!1;already_offset=!1;limit=null;offset=null;_sort=null;_sortDesc=!1;meta={};constructor(e){this.filters={},this.steps=[],this.fields=e}}g.prototype.getQueryPayload=function(){let t={meta:{total:!0,key:!0,name:!0}};return t.__args=this.buildArgs(),t.data=this.fields,t.data.__args=t.data.__args||{},this.limit&&(t.data.__args.limit=this.limit),this.offset&&(t.data.__args.offset=this.offset),{data_path:this.data_path,query:t,steps:this.steps}},g.prototype.dataPath=function(t){const e=this.clone();return e.data_path=t,e},g.prototype.buildArgs=function(){let t={};return Object.keys(this.filters).length>0&&(t.filters=this.filters),this._sort&&(t.sort=this._sort,this._sortDesc&&(t.sort+=":desc")),t},g.prototype.clone=function(){const t=Object.create(this);return t.steps=JSON.parse(JSON.stringify(this.steps)),t.filters=JSON.parse(JSON.stringify(this.filters)),t.fields=JSON.parse(JSON.stringify(this.fields)),t},U().macro("whereContains",function(t,e){return this.filter(r=>r[t].toLowerCase().includes(e.toLowerCase()))}),g.prototype.fetchData=async function(){try{if(this._batchData){const u=this._batchData;return this.meta=u.meta,U(u.data)}let t={meta:{total:!0,key:!0,name:!0}};t.__args=this.buildArgs(),t.data=this.fields,this.already_limit&&(t.data.__args=t.data.__args||{},t.data.__args.limit=this.limit),this.already_offset&&(t.data.__args=t.data.__args||{},t.data.__args.offset=this.offset);const e=this.data_path.split(".");let r={},n=r,o=e[e.length-1];for(const u of e){if(u===o){n[u]=t;break}n[u]={},n=n[u]}let a=await w(r);for(const u of e)a=a[u];return this.meta=a.meta,U(a.data)}catch(t){throw console.error("Error fetching collection data:",t),t}},g.prototype.processData=async function(){let t=await this.fetchData();for(const e of this.steps)t=t[e.type](...e.args);return t},g.prototype.all=async function(){return(await this.processData()).all()};for(const t of St)g.prototype[t]=function(...e){const r=this.clone();return r.steps.push({type:t,args:e}),r};for(const t of vt)g.prototype[t]=async function(...e){return(await this.clone().processData())[t](...e)};g.prototype.average=g.prototype.avg,g.prototype.first=async function(){return this.take(1),(await this.processData()).first()},g.prototype._handleBatchData=function(t,e){return this._batchData?(this.steps.push({type:t,args:e}),this):null},g.prototype.where=function(...t){const e=this._handleBatchData("where",t);if(e)return e;if(t.length===2)this.filters[t[0]]=t[1];else if(t.length===3){const r=t[0],n=t[1],o=t[2];switch(n){case"==":this.filters[r]=o;break;case"<":this.filters[r]={lt:o};break;case"<=":this.filters[r]={lte:o};break;case">":this.filters[r]={gt:o};break;case">=":this.filters[r]={gte:o};break;case"!==":this.filters[r]={ne:o};break;default:throw new Error(`Unsupported operator: ${n}`)}}return this},g.prototype.whereContains=function(t,e){const r=this._handleBatchData("whereContains",[t,e]);return r||(this.filters[t]={contains:e},this)},g.prototype.forPage=function(t,e){return t=Math.max(1,t),this.already_limit?(this.steps.push({type:"forPage",args:[t,e]}),this):(this.limit=e,this.offset=(t-1)*e,this.already_limit=!0,this.already_offset=!0,this)},g.prototype.whereIn=function(t,e){const r=this._handleBatchData("whereIn",[t,e]);return r||(this.filters[t]={in:e},this)},g.prototype.whereNotIn=function(t,e){const r=this._handleBatchData("whereNotIn",[t,e]);return r||(this.filters[t]={nin:e},this)},g.prototype.whereNotBetween=function(t,e){const r=this._handleBatchData("whereNotBetween",[t,e]);return r||(this.filters[t]={notBetween:e},this)},g.prototype.whereBetween=function(t,e){const r=this._handleBatchData("whereBetween",[t,e]);return r||(this.filters[t]={between:e},this)},g.prototype.sortBy=function(t){return this.steps.push({type:"sortBy",args:[t]}),typeof t=="string"&&(this._sort=t),this},g.prototype.sortByDesc=function(t){return this.steps.push({type:"sortByDesc",args:[t]}),typeof t=="string"&&(this._sort=t,this._sortDesc=!0),this},g.prototype.skip=function(t){if(t<0)throw new Error("Offset must be non-negative");return this.already_offset&&this.steps.push({type:"skip",args:[t]}),this.offset=t,this.already_offset=!0,this},g.prototype.take=function(t){if(t<0)throw new Error("Length must be non-negative");return this.already_limit?(this.steps.push({type:"take",args:[t]}),this):(this.limit=t,this.already_limit=!0,this)},g.prototype.splice=function(t,e){return this.steps.push({type:"splice",args:[t,e]}),this.offset=t,this.limit=e,this.already_limit=!0,this.already_offset=!0,this};const B=(t,e)=>{const r=new g(e);return r.data_path=Et+t,r},qt=Object.freeze(Object.defineProperty({__proto__:null,default:B},Symbol.toStringTag,{value:"Module"})),Nt=t=>{const e=typeof window>"u";let r=[];const n=bt.create({baseURL:t,withCredentials:!0});e&&(n.interceptors.request.use(a=>(a.withCredentials=!0,r.length>0&&(a.headers.Cookie=r.join("; ")),a)),n.interceptors.response.use(a=>{if(a.headers["set-cookie"]){const u=a.headers["set-cookie"].map(i=>i.split(";")[0]),s=new Map;r.forEach(i=>{const c=i.split("=")[0];s.set(c,i)}),u.forEach(i=>{const c=i.split("=")[0];s.set(c,i)}),r=Array.from(s.values())}return a}));const o=k(),p={post:n.post,baseURL:t,axios:n,auth:et(),mutation:d,query:w,config:ft,mail:Ut,users:jt(),models:o,model(a){return o.get(a)},roles:kt(),collect:(a,u)=>{const s=B(a,u);return s.data_path=o.get(a).getDataPath(),s},list:(a,u)=>P(a,u).dataPath(o.get(a).getDataPath()),drive:at,async collects(a){const u={},s={};for(const c in a){const l=a[c].getQueryPayload();s[c]=l.data_path,u[c]={};const f=l.data_path.split(".");let y=f[f.length-1],_=u[c];for(const b of f){if(b===y){_[b]=l.query;break}_[b]=_[b]||{}}u[c].__aliasFor=f[0]}const i=await w(u);for(const c in a){const l=s[c].split(".");let f=l[l.length-1],y=i[c];for(const _ of l){if(_===f){a[c]._batchData=i[c][_];break}y[_]=y[_]||{}}}return a}};return L(p),p},Bt=P;h.auth=et,h.changeExpiredPassword=X,h.createClient=Nt,h.createCollection=B,h.createList=P,h.createModelManager=k,h.createRole=dt,h.createUser=ct,h.defaultUserFields=q,h.deleteRole=gt,h.deleteUser=lt,h.forgetPassword=K,h.getApiClient=v,h.getApiClientOptional=Ft,h.getConfig=ft,h.getCurrentUser=Q,h.getDrive=at,h.getGrantedRights=tt,h.isGranted=x,h.list=Bt,h.listDrives=Pt,h.listFiles=st,h.listFolders=ot,h.listPermissions=Ct,h.listRoles=pt,h.listUsers=ut,h.login=H,h.logout=V,h.mutation=d,h.query=w,h.readFileAsBase64=nt,h.resetPassword=Z,h.sendMail=yt,h.setApiClient=L,h.toQuery=wt,h.updatePassword=Y,h.updateUser=ht,h.useGlobalModel=Ot,h.useGlobalModels=Dt,h.useModel=At,h.verifyCode=I,h.webAuthn=G,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(f,m){typeof exports=="object"&&typeof module<"u"?m(exports,require("json-to-graphql-query"),require("axios"),require("collect.js")):typeof define=="function"&&define.amd?define(["exports","json-to-graphql-query","axios","collect.js"],m):(f=typeof globalThis<"u"?globalThis:f||self,m(f.light={},f.jsonToGraphqlQuery,f.axios,f.collect))})(this,(function(f,m,bt,v){"use strict";function S(t){if(t===null||typeof t!="object")return!1;const e=Object.getPrototypeOf(t);return e!==null&&e!==Object.prototype&&Object.getPrototypeOf(e)!==null||Symbol.iterator in t?!1:Symbol.toStringTag in t?Object.prototype.toString.call(t)==="[object Module]":!0}function E(t,e,r=".",n){if(!S(e))return E(t,{},r,n);const o=Object.assign({},e);for(const h in t){if(h==="__proto__"||h==="constructor")continue;const l=t[h];l!=null&&(n&&n(o,h,l,r)||(Array.isArray(l)&&Array.isArray(o[h])?o[h]=[...l,...o[h]]:S(l)&&S(o[h])?o[h]=E(l,o[h],(r?`${r}.`:"")+h.toString(),n):o[h]=l))}return o}function Ft(t){return(...e)=>e.reduce((r,n)=>E(r,n,"",t),{})}const F=Ft();let k=null;const $=t=>{k=t},M=()=>{if(!k)throw new Error("Api client not initialized. Call setApiClient() first.");return k},At=()=>k;function O(t){for(let e=0;e<t.length;e++)if(t[e]instanceof File)return!0;return!1}function B(t){for(let e in t)if(t[e]instanceof File||t[e]instanceof Array&&O(t[e]))return!0;return!1}function Ct(t){t="<~"+t+"~>";var e,r,n,o,h,l=String,u=255;for(t.slice(0,2)==="<~"&&t.slice(-2),t=t.slice(2,-2).replace(/\s/g,"").replace("z","!!!!!"),e="uuuuu".slice(t.length%5||5),t+=e,n=[],o=0,h=t.length;h>o;o+=5)r=52200625*(t.charCodeAt(o)-33)+614125*(t.charCodeAt(o+1)-33)+7225*(t.charCodeAt(o+2)-33)+85*(t.charCodeAt(o+3)-33)+(t.charCodeAt(o+4)-33),n.push(u&r>>24,u&r>>16,u&r>>8,u&r);return(function(s,i){for(var a=i;a>0;a--)s.pop()})(n,e.length),l.fromCharCode.apply(l,n)}const q=(t="")=>{const e=t,r=(n="application/octet-stream")=>{const o=new Uint8Array(e.length);for(let u=0;u<e.length;u++)o[u]=e.charCodeAt(u);const h=new Blob([o],{type:n});return URL.createObjectURL(h)};return{getContent:()=>e,getURL:r,download:n=>{const o=document.createElement("a");o.download=n,o.href=r(),document.body.appendChild(o),o.click(),document.body.removeChild(o)},open:n=>{window.open(r(n),"_blank")}}},Ot=t=>q(atob(t)),Dt=t=>q(Ct(t));function W(t,e,r,n,o){if(!(!t||typeof t!="object"))for(let h in t){const l=t[h];if(l&&typeof l=="object"){if("__args"in l){const u=l.__args,s={};Object.entries(u).forEach(([i,a])=>{if(a instanceof Array&&O(a)){s[i]=new m.VariableType(i);let c=0;a.forEach(p=>{p instanceof File&&(r[o.current]||(r[o.current]=[]),r[o.current].push("variables."+i+"."+c),n.append(o.current.toString(),p),o.current++,c++)}),e[i]="[Upload!]!"}else a instanceof File?(s[i]=new m.VariableType(i),r[o.current]=["variables."+i],n.append(o.current.toString(),a),e[i]="Upload!",o.current++):a instanceof Object&&B(a)?(s[i]={},Object.entries(a).forEach(([c,p])=>{if(p instanceof Array&&O(p)){s[i][c]=new m.VariableType(c);let g=0;p.forEach(y=>{y instanceof File&&(r[o.current]||(r[o.current]=[]),r[o.current].push("variables."+c+"."+g),n.append(o.current.toString(),y),o.current++,g++)}),e[c]="[Upload!]!"}else p instanceof File?(s[i][c]=new m.VariableType(c),r[o.current]=["variables."+c],n.append(o.current.toString(),p),e[c]="Upload!",o.current++):s[i][c]=p})):a!=null&&(s[i]=a)}),l.__args=s}W(l,e,r,n,o)}}}const w=async t=>{const e=M(),r=t,n=new FormData;let o=!1;const h={},l={};W(r,h,l,n,{current:0}),o=Object.keys(h).length>0,o&&(r.__variables=h);let s=null;const i={query:r},a=m.jsonToGraphQLQuery(i);if(o?(n.append("map",JSON.stringify(l)),n.append("operations",JSON.stringify({query:a})),s=await e.axios.post("",n)):s=await e.axios.post("",{query:a}),s.data.errors)throw new Error(s.data.errors[0].message);return s.data.data};function P(t,e){let r,n=[],o,h;const l=s=>!s||typeof s!="object"?!1:Object.values(s).some(i=>i&&typeof i=="object"&&Object.keys(i).some(a=>a.startsWith("_"))),u=()=>n.length===0?(n.unshift({}),n[0]):(l(n[0])&&n.unshift({}),n[0]);return{first(){return this.fetchFirst()},all(){return this.fetch()},async fetchFirst(){const i=await this.limit(1).fetch();return Array.isArray(i)&&i.length>0?i[0]:null},async fetchWithMeta(){let i=await w(this.toQuery(!0));if(h){const a=h.split(".");for(const c of a)i=i[c];return i}return i[`list${t}`]},async fetch(){let i=await w(this.toQuery());if(h){const a=h.split(".");for(const c of a)i=i[c];return i.data}return i[`list${t}`].data},dataPath(s){return s&&typeof s=="string"&&(h=s),this},sort(s){return s&&typeof s=="string"&&(o=s),this},filters(s){return s&&typeof s=="object"&&(n=[s]),this},where(s,i,a){const c=(p,g,y)=>{const D={">":"_gt","<":"_lt",">=":"_gte","<=":"_lte","!=":"_ne",in:"_in",contains:"_contains"}[g];D&&n.push({[p]:{[D]:y}})};if(a!==void 0)c(s,String(i),a);else{const p=u(),g=F(p,{[s]:i});n[0]=g}return this},whereContains(s,i){if(s&&typeof s=="string"){const a=u(),c={_contains:i};a[s]?Array.isArray(a[s])?a[s].push(c):a[s]=[a[s],c]:a[s]=[c],n[0]=a}return this},whereIn(s,i){if(s&&typeof s=="string"&&Array.isArray(i)){const a=u(),c={_in:i};a[s]?Array.isArray(a[s])?a[s].push(c):a[s]=[a[s],c]:a[s]=[c],n[0]=a}return this},whereBetween(s,i,a){if(s&&typeof s=="string"){const c=u(),p={_between:[i,a]};c[s]?Array.isArray(c[s])?c[s].push(p):c[s]=[c[s],p]:c[s]=p,n[0]=c}return this},limit(s){return typeof s=="number"&&Number.isFinite(s)&&(r=F(r||{},{limit:s})),this},offset(s){return typeof s=="number"&&Number.isFinite(s)&&(r=F(r||{},{offset:s})),this},toQuery(s=!1){let i;const a=n.length>0&&Object.keys(n[0]||{}).length>0,c=a?1:0,p=n.length>c;a&&p?i=n:p?i=n.slice(c):a&&(i=n[0]);const g=F(o?{sort:o}:{},i?{filters:i}:{}),y={data:{...e}};if(r&&(y.data.__args=r),Object.keys(g).length>0&&(y.__args=g),s&&(y.meta={total:!0,key:!0,name:!0}),h){const b=h.split(".");let D=y;for(let R=b.length-1;R>=0;R--)D={[b[R]]:D};return D}return{[`list${t}`]:y}}}}const Pt=(t,e={})=>{const r=t,n=e;let o="list"+t;const h=l=>n[l]?n[l]:null;return{field:h,$fields:n,setDataPath(l){return o=l,o},getDataPath(){return o},gqlFields(l){let u={};for(const s of l)if(typeof s=="string"){const i=h(s);i&&(u=F(u,i.gqlField?typeof i.gqlField=="string"?{[i.gqlField]:!0}:i.gqlField:{[i.name||s]:!0}))}else typeof s=="object"&&(u=F(u,s));return u},update(l,u){return d({["update"+r]:{__args:{id:l,data:u}}}).then(s=>s["update"+r])},async delete(l){return d({["delete"+r]:{__args:{id:l}}}).then(u=>u["delete"+r])},add(l){return d({["add"+r]:{__args:{data:l}}}).then(u=>u["add"+r])},fields(l){let u=[];for(let s of l){const i=h(s);i&&u.push(i)}return u},async get(l,u){const s=(await Promise.resolve().then(()=>Rt)).default,i=s(r,mt(u));for(const[a,c]of Object.entries(l))i.where(a,"==",c);return await i.first()},list(l){let u=l;const s={};Object.entries(l).forEach(([c])=>{n[c]&&(s[c]=n[c],n[c].gqlField&&(delete u[c],u=F(u,n[c].gqlField)),n[c].gql&&(u=F(u,n[c].gql),delete u[c]))});const i=P(r,u).dataPath(o),a=i.fetch.bind(i);return{...i,async fetch(){return(await a()).map(p=>{const g={...p};return Object.entries(s).forEach(([y,b])=>{b.format&&typeof b.format=="function"&&(g[y]=b.format(p))}),g})},async fetchFirst(){const p=await i.fetchFirst.bind(i)();if(!p)return p;const g={...p};return Object.entries(s).forEach(([y,b])=>{b.format&&typeof b.format=="function"&&(g[y]=b.format(p))}),g}}}}},C={},N=(t,e)=>{const r=Pt(t,e);return C[t]=r,r},U=t=>C[t]?C[t]:N(t,{}),jt=t=>!!C[t],kt=()=>Object.keys(C),Ut=()=>{Object.keys(C).forEach(t=>delete C[t])},vt=t=>{Object.entries(t).forEach(([e,r])=>{N(e,r)})},St=()=>w({app:{permissions:!0}}).then(t=>t.app.permissions),z=async()=>{const{app:t}=await w({app:{auth:{webAuthnRequestOptions:!0}}}),e=t.auth.webAuthnRequestOptions,r=PublicKeyCredential.parseRequestOptionsFromJSON(e);return await navigator.credentials.get({publicKey:r})},Q=async()=>{const{app:t}=await w({app:{auth:{webAuthnCreationOptions:!0}}}),e=PublicKeyCredential.parseCreationOptionsFromJSON(t.auth.webAuthnCreationOptions);return await navigator.credentials.create({publicKey:e})},G=Object.freeze(Object.defineProperty({__proto__:null,assertion:z,attestation:Q,login:async()=>{const t=await z();return await d({webAuthnAssertion:{__args:{assertion:t.toJSON()}}}).then(e=>e.webAuthnAssertion)},register:async()=>{const t=await Q();return await d({webAuthnRegister:{__args:{registration:t.toJSON()}}}).then(e=>e.webAuthnRegister)}},Symbol.toStringTag,{value:"Module"})),H=(t=L)=>w({my:t}).then(e=>e.my),V=(t,e,r="")=>d({login:{__args:{username:t,password:e,code:r}}}).then(n=>n.login),X=()=>d({logout:!0}).then(t=>t.logout),Y=(t,e,r)=>d({changeExpiredPassword:{__args:{username:t,old_password:e,new_password:r}}}).then(n=>n.changeExpiredPassword),Z=(t,e)=>d({changeUserPassword:{__args:{old_password:t,new_password:e}}}).then(r=>r.changeUserPassword),I=(t,e,r)=>d({resetPassword:{__args:{jwt:t,password:e,code:r}}}).then(n=>n.resetPassword),K=(t,e)=>d({forgetPassword:{__args:{username:t,email:e}}}).then(r=>r.forgetPassword),x=(t,e)=>d({forgetPasswordVerifyCode:{__args:{jwt:t,code:e}}}).then(r=>r.forgetPasswordVerifyCode),tt=t=>w({my:{granted:{__args:{right:t}}}}).then(e=>e.my.granted),et=t=>w({my:{grantedRights:{__args:{rights:t}}}}).then(e=>e.my.grantedRights),rt=()=>({getCurrentUser:H,webAuthn:G,google:{unlink:()=>d({lightAuthUnlinkGoogle:!0}).then(t=>t.lightAuthUnlinkGoogle),login:t=>d({lightAuthLoginGoogle:{__args:{credential:t}}}).then(e=>e.lightAuthLoginGoogle),register:t=>d({lightAuthRegisterGoogle:{__args:{credential:t}}}).then(e=>e.lightAuthRegisterGoogle)},facebook:{unlink:()=>d({lightAuthUnlinkFacebook:!0}).then(t=>t.lightAuthUnlinkFacebook),login:t=>d({lightAuthLoginFacebook:{__args:{access_token:t}}}).then(e=>e.lightAuthLoginFacebook),register:t=>d({lightAuthRegisterFacebook:{__args:{access_token:t}}}).then(e=>e.lightAuthRegisterFacebook)},microsoft:{unlink:()=>d({lightAuthUnlinkMicrosoft:!0}).then(t=>t.lightAuthUnlinkMicrosoft),login:t=>d({lightAuthLoginMicrosoft:{__args:{access_token:t}}}).then(e=>e.lightAuthLoginMicrosoft),register:t=>d({lightAuthRegisterMicrosoft:{__args:{account_id:t}}}).then(e=>e.lightAuthRegisterMicrosoft)},login:V,logout:X,changeExpiredPassword:Y,updatePassword:Z,resetPassword:I,forgetPassword:K,verifyCode:x,grantedRights:et,isGranted:tt}),st={name:!0,path:!0,size:!0,mime:!0,url:!0},nt=(t,e,r=st)=>w({app:{drive:{__args:{index:t},files:{__args:{path:e},...r}}}}).then(n=>n.app.drive.files),it=(t,e)=>w({app:{drive:{__args:{index:t},file:{__args:{path:e},base64Content:!0}}}}).then(r=>r.app.drive?.file?.base64Content),A=t=>({list:(e,r=st)=>nt(t,e,r),get:(e,r={name:!0,path:!0,size:!0,mime:!0,url:!0})=>w({app:{drive:{__args:{index:t},file:{__args:{path:e},...r}}}}).then(n=>n.app.drive.file),readFileAsBase64(e){return it(t,e)},read:async e=>{let r=await w({app:{drive:{__args:{index:t},file:{__args:{path:e},base64Content:!0}}}});if(!r.app.drive.file||!r.app.drive.file.base64Content)throw new Error(`File not found or cannot read content: ${e}`);return typeof window<"u"&&window.atob?window.atob(r.app.drive.file.base64Content):r.app.drive.file.base64Content},write:(e,r)=>d({lightDriveWriteFile:{__args:{index:t,path:e,content:r}}}).then(n=>n.lightDriveWriteFile),delete:e=>d({lightDriveDeleteFile:{__args:{index:t,path:e}}}).then(r=>r.lightDriveDeleteFile),rename:(e,r)=>d({lightDriveRenameFile:{__args:{index:t,path:e,name:r}}}).then(n=>n.lightDriveRenameFile),move:(e,r)=>d({lightDriveMoveFile:{__args:{index:t,source:e,destination:r}}}).then(n=>n.lightDriveMoveFile)}),ot={name:!0,path:!0},at=(t,e,r=ot)=>w({app:{drive:{__args:{index:t},folders:{__args:{path:e},...r}}}}).then(n=>n.app.drive.folders),j=t=>({list:(e,r=ot)=>at(t,e,r),create:e=>d({lightDriveCreateFolder:{__args:{index:t,path:e}}}).then(r=>r.lightDriveCreateFolder),delete:e=>d({lightDriveDeleteFolder:{__args:{index:t,path:e}}}).then(r=>r.lightDriveDeleteFolder),rename:(e,r)=>d({lightDriveRenameFolder:{__args:{index:t,path:e,name:r}}}).then(n=>n.lightDriveRenameFolder)}),Et=()=>w({app:{drives:{index:!0,name:!0}}}).then(t=>t.app.drives),ct=t=>({listFiles:A(t).list,getFile:A(t).get,readFile:A(t).read,writeFile:A(t).write,deleteFile:A(t).delete,renameFile:A(t).rename,moveFile:A(t).move,listFolders:j(t).list,createFolder:j(t).create,deleteFolder:j(t).delete,renameFolder:j(t).rename,uploadTempFile:e=>d({lightDriveUploadTempFile:{__args:{index:t,file:e},name:!0,path:!0,size:!0,mime:!0}}).then(r=>r.lightDriveUploadTempFile),folders:j(t),files:A(t)}),L={user_id:!0,username:!0,first_name:!0,last_name:!0,status:!0},lt=t=>d({addUser:{__args:t}}).then(e=>e.addUser),ut=t=>d({deleteUser:{__args:{id:t}}}).then(e=>e.deleteUser),ht=(t=L)=>P("Users",t).dataPath("app.listUser").fetch(),ft=(t,e)=>d({updateUser:{__args:{id:t,data:e}}}).then(r=>r.updateUser),Mt=()=>({list:ht,create:lt,delete:ut,update:ft}),pt=t=>w({app:{listConfig:{__args:{filters:{name:t}},data:{name:!0,value:!0}}}}).then(e=>e.app.listConfig.data[0]?.value),Bt={name:!0},dt=(t=Bt)=>w({app:{roles:t}}).then(e=>e.app.roles),gt=(t,e)=>d({addRole:{__args:{data:{name:t,childs:e}}}}).then(r=>r.addRole),_t=t=>d({deleteRole:{__args:{name:t}}}).then(e=>e.deleteRole),qt=()=>({list:dt,create:gt,delete:_t});function yt(t,e,r,n,o){if(!(!t||typeof t!="object"))for(let h in t){const l=t[h];if(l&&typeof l=="object"){if("__args"in l){const u=l.__args,s={};Object.entries(u).forEach(([i,a])=>{if(a instanceof Array&&O(a)){s[i]=new m.VariableType(i);let c=0;a.forEach(p=>{p instanceof File&&(r[o.current]||(r[o.current]=[]),r[o.current].push("variables."+i+"."+c),n.append(o.current.toString(),p),o.current++,c++)}),e[i]="[Upload!]!"}else a instanceof File?(s[i]=new m.VariableType(i),r[o.current]=["variables."+i],n.append(o.current.toString(),a),e[i]="Upload!",o.current++):a instanceof Object&&B(a)?(s[i]={},Object.entries(a).forEach(([c,p])=>{if(p instanceof Array&&O(p)){s[i][c]=new m.VariableType(c);let g=0;p.forEach(y=>{y instanceof File&&(r[o.current]||(r[o.current]=[]),r[o.current].push("variables."+c+"."+g),n.append(o.current.toString(),y),o.current++,g++)}),e[c]="[Upload!]!"}else p instanceof File?(s[i][c]=new m.VariableType(c),r[o.current]=["variables."+c],n.append(o.current.toString(),p),e[c]="Upload!",o.current++):s[i][c]=p})):a!=null&&(s[i]=a)}),l.__args=s}yt(l,e,r,n,o)}}}const d=async t=>{const r=M().axios,n=t,o=new FormData;let h=!1;const l={},u={};yt(n,l,u,o,{current:0}),h=Object.keys(l).length>0,h&&(n.__variables=l);let i=null;const a={mutation:n},c=m.jsonToGraphQLQuery(a);if(h?(o.append("map",JSON.stringify(u)),o.append("operations",JSON.stringify({query:c})),i=await r.post("",o)):i=await r.post("",{query:c}),i.data.errors)throw new Error(i.data.errors[0].message);return i.data.data},wt=(t,e,r)=>d({sendMail:{__args:{email:t,subject:e,message:r}}}).then(n=>n.sendMail),Nt={send:wt},J=t=>{let e={};return typeof t=="string"?(e[t]=!0,e):t instanceof Array?(t.forEach(r=>{Object.entries(J(r)).forEach(([n,o])=>{e[n]=o})}),e):(Object.entries(t).forEach(([r,n])=>{if(r=="__args"||r=="__aliasFor"||r=="__variables"||r=="__directives"||r=="__all_on"||r=="__name"){e[r]=n;return}if(typeof n=="boolean"){e[r]=n;return}e[r]=J(n)}),e)},mt=t=>J(t),Lt="list",Jt=["flatMap","chunk","shuffle","splice","sortBy","map","reverse","groupBy","keyBy","keys","mapToDictionary","mapWithKeys","nth","skipUntil","skipWhile","takeUntil","takeWhile","unique","pluck","push","only","pad","slice","tap","sort"],Tt=["avg","count","countBy","dd","each","every","filter","firstWhere","isEmpty","isNotEmpty","last","mapToGroups","max","median","min","mode","contains","sole","sort","split","sum","toJson","get","has","implode","partition"];class _{_batchData=null;data_path="";filters;steps;fields;already_limit=!1;already_offset=!1;limit=null;offset=null;_sort=null;_sortDesc=!1;meta={};constructor(e){this.filters={},this.steps=[],this.fields=e}}_.prototype.getQueryPayload=function(){let t={meta:{total:!0,key:!0,name:!0}};return t.__args=this.buildArgs(),t.data=this.fields,t.data.__args=t.data.__args||{},this.limit&&(t.data.__args.limit=this.limit),this.offset&&(t.data.__args.offset=this.offset),{data_path:this.data_path,query:t,steps:this.steps}},_.prototype.dataPath=function(t){const e=this.clone();return e.data_path=t,e},_.prototype.buildArgs=function(){let t={};return Object.keys(this.filters).length>0&&(t.filters=this.filters),this._sort&&(t.sort=this._sort,this._sortDesc&&(t.sort+=":desc")),t},_.prototype.clone=function(){const t=Object.create(this);return t.steps=JSON.parse(JSON.stringify(this.steps)),t.filters=JSON.parse(JSON.stringify(this.filters)),t.fields=JSON.parse(JSON.stringify(this.fields)),t},v().macro("whereContains",function(t,e){return this.filter(r=>r[t].toLowerCase().includes(e.toLowerCase()))}),_.prototype.fetchData=async function(){try{if(this._batchData){const u=this._batchData;return this.meta=u.meta,v(u.data)}let t={meta:{total:!0,key:!0,name:!0}};t.__args=this.buildArgs(),t.data=this.fields,this.already_limit&&(t.data.__args=t.data.__args||{},t.data.__args.limit=this.limit),this.already_offset&&(t.data.__args=t.data.__args||{},t.data.__args.offset=this.offset);const e=this.data_path.split(".");let r={},n=r,o=e[e.length-1];for(const u of e){if(u===o){n[u]=t;break}n[u]={},n=n[u]}let l=await w(r);for(const u of e)l=l[u];return this.meta=l.meta,v(l.data)}catch(t){throw console.error("Error fetching collection data:",t),t}},_.prototype.processData=async function(){let t=await this.fetchData();for(const e of this.steps)t=t[e.type](...e.args);return t},_.prototype.all=async function(){return(await this.processData()).all()};for(const t of Jt)_.prototype[t]=function(...e){const r=this.clone();return r.steps.push({type:t,args:e}),r};for(const t of Tt)_.prototype[t]=async function(...e){return(await this.clone().processData())[t](...e)};_.prototype.average=_.prototype.avg,_.prototype.first=async function(){return this.take(1),(await this.processData()).first()},_.prototype._handleBatchData=function(t,e){return this._batchData?(this.steps.push({type:t,args:e}),this):null},_.prototype.where=function(...t){const e=this._handleBatchData("where",t);if(e)return e;if(t.length===2)this.filters[t[0]]=t[1];else if(t.length===3){const r=t[0],n=t[1],o=t[2];switch(n){case"==":this.filters[r]=o;break;case"<":this.filters[r]={lt:o};break;case"<=":this.filters[r]={lte:o};break;case">":this.filters[r]={gt:o};break;case">=":this.filters[r]={gte:o};break;case"!==":this.filters[r]={ne:o};break;default:throw new Error(`Unsupported operator: ${n}`)}}return this},_.prototype.whereContains=function(t,e){const r=this._handleBatchData("whereContains",[t,e]);return r||(this.filters[t]={contains:e},this)},_.prototype.forPage=function(t,e){return t=Math.max(1,t),this.already_limit?(this.steps.push({type:"forPage",args:[t,e]}),this):(this.limit=e,this.offset=(t-1)*e,this.already_limit=!0,this.already_offset=!0,this)},_.prototype.whereIn=function(t,e){const r=this._handleBatchData("whereIn",[t,e]);return r||(this.filters[t]={in:e},this)},_.prototype.whereNotIn=function(t,e){const r=this._handleBatchData("whereNotIn",[t,e]);return r||(this.filters[t]={nin:e},this)},_.prototype.whereNotBetween=function(t,e){const r=this._handleBatchData("whereNotBetween",[t,e]);return r||(this.filters[t]={notBetween:e},this)},_.prototype.whereBetween=function(t,e){const r=this._handleBatchData("whereBetween",[t,e]);return r||(this.filters[t]={between:e},this)},_.prototype.sortBy=function(t){return this.steps.push({type:"sortBy",args:[t]}),typeof t=="string"&&(this._sort=t),this},_.prototype.sortByDesc=function(t){return this.steps.push({type:"sortByDesc",args:[t]}),typeof t=="string"&&(this._sort=t,this._sortDesc=!0),this},_.prototype.skip=function(t){if(t<0)throw new Error("Offset must be non-negative");return this.already_offset&&this.steps.push({type:"skip",args:[t]}),this.offset=t,this.already_offset=!0,this},_.prototype.take=function(t){if(t<0)throw new Error("Length must be non-negative");return this.already_limit?(this.steps.push({type:"take",args:[t]}),this):(this.limit=t,this.already_limit=!0,this)},_.prototype.splice=function(t,e){return this.steps.push({type:"splice",args:[t,e]}),this.offset=t,this.limit=e,this.already_limit=!0,this.already_offset=!0,this};const T=(t,e)=>{const r=new _(e);return r.data_path=Lt+t,r},Rt=Object.freeze(Object.defineProperty({__proto__:null,default:T},Symbol.toStringTag,{value:"Module"})),$t=t=>{const e=typeof window>"u";let r=[];const n=bt.create({baseURL:t,withCredentials:!0});e&&(n.interceptors.request.use(h=>(h.withCredentials=!0,r.length>0&&(h.headers.Cookie=r.join("; ")),h)),n.interceptors.response.use(h=>{if(h.headers["set-cookie"]){const l=h.headers["set-cookie"].map(s=>s.split(";")[0]),u=new Map;r.forEach(s=>{const i=s.split("=")[0];u.set(i,s)}),l.forEach(s=>{const i=s.split("=")[0];u.set(i,s)}),r=Array.from(u.values())}return h}));const o={post:n.post,baseURL:t,axios:n,auth:rt(),mutation:d,query:w,config:pt,mail:Nt,users:Mt(),model(h){return U(h)},roles:qt(),collect:(h,l)=>{const u=T(h,l);return u.data_path=U(h).getDataPath(),u},list:(h,l)=>P(h,l).dataPath(U(h).getDataPath()),drive:ct,async collects(h){const l={},u={};for(const i in h){const a=h[i].getQueryPayload();u[i]=a.data_path,l[i]={};const c=a.data_path.split(".");let p=c[c.length-1],g=l[i];for(const y of c){if(y===p){g[y]=a.query;break}g[y]=g[y]||{}}l[i].__aliasFor=c[0]}const s=await w(l);for(const i in h){const a=u[i].split(".");let c=a[a.length-1],p=s[i];for(const g of a){if(g===c){h[i]._batchData=s[i][g];break}p[g]=p[g]||{}}}return h}};return $(o),o},Wt=P;f.arrayHasFile=O,f.auth=rt,f.changeExpiredPassword=Y,f.clearModels=Ut,f.createClient=$t,f.createCollection=T,f.createFileFromBase64=Ot,f.createFileFromBase85=Dt,f.createFileFromString=q,f.createList=P,f.createRole=gt,f.createUser=lt,f.defaultUserFields=L,f.defineModel=N,f.defineModels=vt,f.deleteRole=_t,f.deleteUser=ut,f.forgetPassword=K,f.getApiClient=M,f.getApiClientOptional=At,f.getConfig=pt,f.getCurrentUser=H,f.getDrive=ct,f.getGrantedRights=et,f.getModel=U,f.hasModel=jt,f.isGranted=tt,f.list=Wt,f.listDrives=Et,f.listFiles=nt,f.listFolders=at,f.listModels=kt,f.listPermissions=St,f.listRoles=dt,f.listUsers=ht,f.login=V,f.logout=X,f.mutation=d,f.objectHasFile=B,f.query=w,f.readFileAsBase64=it,f.resetPassword=I,f.sendMail=wt,f.setApiClient=$,f.toQuery=mt,f.updatePassword=Z,f.updateUser=ft,f.verifyCode=x,f.webAuthn=G,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})}));
|
package/dist/model.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export type Model = {
|
|
|
13
13
|
name: string;
|
|
14
14
|
fields: Record<string, Field>;
|
|
15
15
|
};
|
|
16
|
-
declare const _default: (name: string, fields
|
|
16
|
+
declare const _default: (name: string, fields?: Record<string, Field>) => {
|
|
17
17
|
field: (f: string) => Field | null;
|
|
18
18
|
$fields: Record<string, Field>;
|
|
19
19
|
setDataPath(path: string): string;
|
package/dist/models.d.ts
CHANGED
|
@@ -1,78 +1,211 @@
|
|
|
1
1
|
import { Field } from './model';
|
|
2
|
-
export interface ModelManager {
|
|
3
|
-
create: (name: string, fields: Record<string, Field>) => void;
|
|
4
|
-
get: (name: string) => any;
|
|
5
|
-
has: (name: string) => boolean;
|
|
6
|
-
list: () => string[];
|
|
7
|
-
clear: () => void;
|
|
8
|
-
}
|
|
9
2
|
/**
|
|
10
|
-
*
|
|
11
|
-
* @param
|
|
12
|
-
* @
|
|
3
|
+
* 創建或更新模型
|
|
4
|
+
* @param name 模型名稱
|
|
5
|
+
* @param fields 模型欄位定義
|
|
6
|
+
* @returns 模型實例
|
|
13
7
|
*/
|
|
14
|
-
export declare const
|
|
8
|
+
export declare const defineModel: (name: string, fields: Record<string, Field>) => {
|
|
9
|
+
field: (f: string) => Field | null;
|
|
10
|
+
$fields: Record<string, Field>;
|
|
11
|
+
setDataPath(path: string): string;
|
|
12
|
+
getDataPath(): string;
|
|
13
|
+
gqlFields(fields: (string | object)[]): Record<string, any>;
|
|
14
|
+
update(id: number, data: Object): Promise<any>;
|
|
15
|
+
delete(id: number): Promise<any>;
|
|
16
|
+
add(data: Object): Promise<any>;
|
|
17
|
+
fields(fields: string[]): Field[];
|
|
18
|
+
get(filters: any, fields: import('.').Fields): Promise<any>;
|
|
19
|
+
list(fields: Record<string, any>): {
|
|
20
|
+
fetch(): Promise<any[]>;
|
|
21
|
+
fetchFirst(): Promise<any>;
|
|
22
|
+
first(): Promise<any>;
|
|
23
|
+
all(): Promise<any[]>;
|
|
24
|
+
fetchWithMeta(): Promise<any>;
|
|
25
|
+
dataPath(dataPath?: string): {
|
|
26
|
+
first(): Promise<any>;
|
|
27
|
+
all(): Promise<any[]>;
|
|
28
|
+
fetchFirst(): Promise<any>;
|
|
29
|
+
fetchWithMeta(): Promise<any>;
|
|
30
|
+
fetch(): Promise<any[]>;
|
|
31
|
+
dataPath(dataPath?: string): /*elided*/ any;
|
|
32
|
+
sort(sortStr: string): /*elided*/ any;
|
|
33
|
+
filters(filterObj: Record<string, any>): /*elided*/ any;
|
|
34
|
+
where(key: string, opOrVal?: any, maybeVal?: any): /*elided*/ any;
|
|
35
|
+
whereContains(field: string, val: any): /*elided*/ any;
|
|
36
|
+
whereIn(field: string, vals: any[]): /*elided*/ any;
|
|
37
|
+
whereBetween(field: string, min: any, max: any): /*elided*/ any;
|
|
38
|
+
limit(n: number): /*elided*/ any;
|
|
39
|
+
offset(n: number): /*elided*/ any;
|
|
40
|
+
toQuery(includeMeta?: boolean): any;
|
|
41
|
+
};
|
|
42
|
+
sort(sortStr: string): {
|
|
43
|
+
first(): Promise<any>;
|
|
44
|
+
all(): Promise<any[]>;
|
|
45
|
+
fetchFirst(): Promise<any>;
|
|
46
|
+
fetchWithMeta(): Promise<any>;
|
|
47
|
+
fetch(): Promise<any[]>;
|
|
48
|
+
dataPath(dataPath?: string): /*elided*/ any;
|
|
49
|
+
sort(sortStr: string): /*elided*/ any;
|
|
50
|
+
filters(filterObj: Record<string, any>): /*elided*/ any;
|
|
51
|
+
where(key: string, opOrVal?: any, maybeVal?: any): /*elided*/ any;
|
|
52
|
+
whereContains(field: string, val: any): /*elided*/ any;
|
|
53
|
+
whereIn(field: string, vals: any[]): /*elided*/ any;
|
|
54
|
+
whereBetween(field: string, min: any, max: any): /*elided*/ any;
|
|
55
|
+
limit(n: number): /*elided*/ any;
|
|
56
|
+
offset(n: number): /*elided*/ any;
|
|
57
|
+
toQuery(includeMeta?: boolean): any;
|
|
58
|
+
};
|
|
59
|
+
filters(filterObj: Record<string, any>): {
|
|
60
|
+
first(): Promise<any>;
|
|
61
|
+
all(): Promise<any[]>;
|
|
62
|
+
fetchFirst(): Promise<any>;
|
|
63
|
+
fetchWithMeta(): Promise<any>;
|
|
64
|
+
fetch(): Promise<any[]>;
|
|
65
|
+
dataPath(dataPath?: string): /*elided*/ any;
|
|
66
|
+
sort(sortStr: string): /*elided*/ any;
|
|
67
|
+
filters(filterObj: Record<string, any>): /*elided*/ any;
|
|
68
|
+
where(key: string, opOrVal?: any, maybeVal?: any): /*elided*/ any;
|
|
69
|
+
whereContains(field: string, val: any): /*elided*/ any;
|
|
70
|
+
whereIn(field: string, vals: any[]): /*elided*/ any;
|
|
71
|
+
whereBetween(field: string, min: any, max: any): /*elided*/ any;
|
|
72
|
+
limit(n: number): /*elided*/ any;
|
|
73
|
+
offset(n: number): /*elided*/ any;
|
|
74
|
+
toQuery(includeMeta?: boolean): any;
|
|
75
|
+
};
|
|
76
|
+
where(key: string, opOrVal?: any, maybeVal?: any): {
|
|
77
|
+
first(): Promise<any>;
|
|
78
|
+
all(): Promise<any[]>;
|
|
79
|
+
fetchFirst(): Promise<any>;
|
|
80
|
+
fetchWithMeta(): Promise<any>;
|
|
81
|
+
fetch(): Promise<any[]>;
|
|
82
|
+
dataPath(dataPath?: string): /*elided*/ any;
|
|
83
|
+
sort(sortStr: string): /*elided*/ any;
|
|
84
|
+
filters(filterObj: Record<string, any>): /*elided*/ any;
|
|
85
|
+
where(key: string, opOrVal?: any, maybeVal?: any): /*elided*/ any;
|
|
86
|
+
whereContains(field: string, val: any): /*elided*/ any;
|
|
87
|
+
whereIn(field: string, vals: any[]): /*elided*/ any;
|
|
88
|
+
whereBetween(field: string, min: any, max: any): /*elided*/ any;
|
|
89
|
+
limit(n: number): /*elided*/ any;
|
|
90
|
+
offset(n: number): /*elided*/ any;
|
|
91
|
+
toQuery(includeMeta?: boolean): any;
|
|
92
|
+
};
|
|
93
|
+
whereContains(field: string, val: any): {
|
|
94
|
+
first(): Promise<any>;
|
|
95
|
+
all(): Promise<any[]>;
|
|
96
|
+
fetchFirst(): Promise<any>;
|
|
97
|
+
fetchWithMeta(): Promise<any>;
|
|
98
|
+
fetch(): Promise<any[]>;
|
|
99
|
+
dataPath(dataPath?: string): /*elided*/ any;
|
|
100
|
+
sort(sortStr: string): /*elided*/ any;
|
|
101
|
+
filters(filterObj: Record<string, any>): /*elided*/ any;
|
|
102
|
+
where(key: string, opOrVal?: any, maybeVal?: any): /*elided*/ any;
|
|
103
|
+
whereContains(field: string, val: any): /*elided*/ any;
|
|
104
|
+
whereIn(field: string, vals: any[]): /*elided*/ any;
|
|
105
|
+
whereBetween(field: string, min: any, max: any): /*elided*/ any;
|
|
106
|
+
limit(n: number): /*elided*/ any;
|
|
107
|
+
offset(n: number): /*elided*/ any;
|
|
108
|
+
toQuery(includeMeta?: boolean): any;
|
|
109
|
+
};
|
|
110
|
+
whereIn(field: string, vals: any[]): {
|
|
111
|
+
first(): Promise<any>;
|
|
112
|
+
all(): Promise<any[]>;
|
|
113
|
+
fetchFirst(): Promise<any>;
|
|
114
|
+
fetchWithMeta(): Promise<any>;
|
|
115
|
+
fetch(): Promise<any[]>;
|
|
116
|
+
dataPath(dataPath?: string): /*elided*/ any;
|
|
117
|
+
sort(sortStr: string): /*elided*/ any;
|
|
118
|
+
filters(filterObj: Record<string, any>): /*elided*/ any;
|
|
119
|
+
where(key: string, opOrVal?: any, maybeVal?: any): /*elided*/ any;
|
|
120
|
+
whereContains(field: string, val: any): /*elided*/ any;
|
|
121
|
+
whereIn(field: string, vals: any[]): /*elided*/ any;
|
|
122
|
+
whereBetween(field: string, min: any, max: any): /*elided*/ any;
|
|
123
|
+
limit(n: number): /*elided*/ any;
|
|
124
|
+
offset(n: number): /*elided*/ any;
|
|
125
|
+
toQuery(includeMeta?: boolean): any;
|
|
126
|
+
};
|
|
127
|
+
whereBetween(field: string, min: any, max: any): {
|
|
128
|
+
first(): Promise<any>;
|
|
129
|
+
all(): Promise<any[]>;
|
|
130
|
+
fetchFirst(): Promise<any>;
|
|
131
|
+
fetchWithMeta(): Promise<any>;
|
|
132
|
+
fetch(): Promise<any[]>;
|
|
133
|
+
dataPath(dataPath?: string): /*elided*/ any;
|
|
134
|
+
sort(sortStr: string): /*elided*/ any;
|
|
135
|
+
filters(filterObj: Record<string, any>): /*elided*/ any;
|
|
136
|
+
where(key: string, opOrVal?: any, maybeVal?: any): /*elided*/ any;
|
|
137
|
+
whereContains(field: string, val: any): /*elided*/ any;
|
|
138
|
+
whereIn(field: string, vals: any[]): /*elided*/ any;
|
|
139
|
+
whereBetween(field: string, min: any, max: any): /*elided*/ any;
|
|
140
|
+
limit(n: number): /*elided*/ any;
|
|
141
|
+
offset(n: number): /*elided*/ any;
|
|
142
|
+
toQuery(includeMeta?: boolean): any;
|
|
143
|
+
};
|
|
144
|
+
limit(n: number): {
|
|
145
|
+
first(): Promise<any>;
|
|
146
|
+
all(): Promise<any[]>;
|
|
147
|
+
fetchFirst(): Promise<any>;
|
|
148
|
+
fetchWithMeta(): Promise<any>;
|
|
149
|
+
fetch(): Promise<any[]>;
|
|
150
|
+
dataPath(dataPath?: string): /*elided*/ any;
|
|
151
|
+
sort(sortStr: string): /*elided*/ any;
|
|
152
|
+
filters(filterObj: Record<string, any>): /*elided*/ any;
|
|
153
|
+
where(key: string, opOrVal?: any, maybeVal?: any): /*elided*/ any;
|
|
154
|
+
whereContains(field: string, val: any): /*elided*/ any;
|
|
155
|
+
whereIn(field: string, vals: any[]): /*elided*/ any;
|
|
156
|
+
whereBetween(field: string, min: any, max: any): /*elided*/ any;
|
|
157
|
+
limit(n: number): /*elided*/ any;
|
|
158
|
+
offset(n: number): /*elided*/ any;
|
|
159
|
+
toQuery(includeMeta?: boolean): any;
|
|
160
|
+
};
|
|
161
|
+
offset(n: number): {
|
|
162
|
+
first(): Promise<any>;
|
|
163
|
+
all(): Promise<any[]>;
|
|
164
|
+
fetchFirst(): Promise<any>;
|
|
165
|
+
fetchWithMeta(): Promise<any>;
|
|
166
|
+
fetch(): Promise<any[]>;
|
|
167
|
+
dataPath(dataPath?: string): /*elided*/ any;
|
|
168
|
+
sort(sortStr: string): /*elided*/ any;
|
|
169
|
+
filters(filterObj: Record<string, any>): /*elided*/ any;
|
|
170
|
+
where(key: string, opOrVal?: any, maybeVal?: any): /*elided*/ any;
|
|
171
|
+
whereContains(field: string, val: any): /*elided*/ any;
|
|
172
|
+
whereIn(field: string, vals: any[]): /*elided*/ any;
|
|
173
|
+
whereBetween(field: string, min: any, max: any): /*elided*/ any;
|
|
174
|
+
limit(n: number): /*elided*/ any;
|
|
175
|
+
offset(n: number): /*elided*/ any;
|
|
176
|
+
toQuery(includeMeta?: boolean): any;
|
|
177
|
+
};
|
|
178
|
+
toQuery(includeMeta?: boolean): any;
|
|
179
|
+
};
|
|
180
|
+
};
|
|
15
181
|
/**
|
|
16
|
-
*
|
|
17
|
-
* @param
|
|
18
|
-
* @returns
|
|
182
|
+
* 獲取模型
|
|
183
|
+
* @param name 模型名稱
|
|
184
|
+
* @returns 模型實例
|
|
19
185
|
*/
|
|
20
|
-
export declare const
|
|
21
|
-
manager: ModelManager;
|
|
22
|
-
createModel: (name: string, fields: Record<string, Field>) => void;
|
|
23
|
-
getModel: (name: string) => any;
|
|
24
|
-
hasModel: (name: string) => boolean;
|
|
25
|
-
listModels: () => string[];
|
|
26
|
-
clearModels: () => void;
|
|
27
|
-
/**
|
|
28
|
-
* 快速創建並獲取模型
|
|
29
|
-
* @param name 模型名稱
|
|
30
|
-
* @param fields 模型欄位定義
|
|
31
|
-
* @returns 模型實例
|
|
32
|
-
*/
|
|
33
|
-
defineModel(name: string, fields: Record<string, Field>): any;
|
|
34
|
-
/**
|
|
35
|
-
* 批量創建模型
|
|
36
|
-
* @param models 模型定義對象
|
|
37
|
-
*/
|
|
38
|
-
defineModels(models: Record<string, Record<string, Field>>): void;
|
|
39
|
-
};
|
|
186
|
+
export declare const getModel: (name: string) => any;
|
|
40
187
|
/**
|
|
41
|
-
*
|
|
42
|
-
* @param
|
|
43
|
-
* @returns
|
|
188
|
+
* 檢查模型是否存在
|
|
189
|
+
* @param name 模型名稱
|
|
190
|
+
* @returns 是否存在
|
|
44
191
|
*/
|
|
45
|
-
export declare const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
* @param fields 模型欄位定義
|
|
56
|
-
* @returns 模型實例
|
|
57
|
-
*/
|
|
58
|
-
defineModel(name: string, fields: Record<string, Field>): any;
|
|
59
|
-
/**
|
|
60
|
-
* 批量創建模型
|
|
61
|
-
* @param models 模型定義對象
|
|
62
|
-
*/
|
|
63
|
-
defineModels(models: Record<string, Record<string, Field>>): void;
|
|
64
|
-
};
|
|
192
|
+
export declare const hasModel: (name: string) => boolean;
|
|
193
|
+
/**
|
|
194
|
+
* 列出所有模型名稱
|
|
195
|
+
* @returns 模型名稱陣列
|
|
196
|
+
*/
|
|
197
|
+
export declare const listModels: () => string[];
|
|
198
|
+
/**
|
|
199
|
+
* 清除所有模型
|
|
200
|
+
*/
|
|
201
|
+
export declare const clearModels: () => void;
|
|
65
202
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
203
|
+
* 批量創建模型
|
|
204
|
+
* @param modelDefinitions 模型定義對象
|
|
68
205
|
*/
|
|
69
|
-
export declare const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
* @param name 模型名稱
|
|
73
|
-
* @param fields 模型欄位定義
|
|
74
|
-
*/
|
|
75
|
-
define(name: string, fields: Record<string, Field>): {
|
|
206
|
+
export declare const defineModels: (modelDefinitions: Record<string, Record<string, Field>>) => void;
|
|
207
|
+
declare const _default: {
|
|
208
|
+
defineModel: (name: string, fields: Record<string, Field>) => {
|
|
76
209
|
field: (f: string) => Field | null;
|
|
77
210
|
$fields: Record<string, Field>;
|
|
78
211
|
setDataPath(path: string): string;
|
|
@@ -245,26 +378,10 @@ export declare const useGlobalModels: () => {
|
|
|
245
378
|
toQuery(includeMeta?: boolean): any;
|
|
246
379
|
};
|
|
247
380
|
};
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
get(name: string): any;
|
|
254
|
-
/**
|
|
255
|
-
* 檢查全域模型是否存在
|
|
256
|
-
* @param name 模型名稱
|
|
257
|
-
* @returns 是否存在
|
|
258
|
-
*/
|
|
259
|
-
has(name: string): boolean;
|
|
260
|
-
/**
|
|
261
|
-
* 列出所有全域模型
|
|
262
|
-
* @returns 模型名稱陣列
|
|
263
|
-
*/
|
|
264
|
-
list(): string[];
|
|
265
|
-
/**
|
|
266
|
-
* 清除所有全域模型
|
|
267
|
-
*/
|
|
268
|
-
clear(): void;
|
|
381
|
+
getModel: (name: string) => any;
|
|
382
|
+
hasModel: (name: string) => boolean;
|
|
383
|
+
listModels: () => string[];
|
|
384
|
+
clearModels: () => void;
|
|
385
|
+
defineModels: (modelDefinitions: Record<string, Record<string, Field>>) => void;
|
|
269
386
|
};
|
|
270
|
-
export default
|
|
387
|
+
export default _default;
|