@ez4/database 0.21.0 → 0.22.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/library.cjs CHANGED
@@ -1,126 +1,146 @@
1
- "use strict";var oe=Object.defineProperty;var We=Object.getOwnPropertyDescriptor;var Xe=Object.getOwnPropertyNames;var Ye=Object.prototype.hasOwnProperty;var Ze=(e,r)=>{for(var t in r)oe(e,t,{get:r[t],enumerable:!0})},Le=(e,r,t,n)=>{if(r&&
2
- typeof r=="object"||typeof r=="function")for(let a of Xe(r))!Ye.call(e,a)&&a!==t&&
3
- oe(e,a,{get:()=>r[a],enumerable:!(n=We(r,a))||n.enumerable});return e};var et=e=>Le(oe({},"__esModule",{value:!0}),e);var ut={};Ze(ut,{IncompleteEngineError:()=>U,IncompleteHandlerError:()=>J,IncompleteScalabilityError:()=>z,
4
- IncompleteServiceError:()=>O,IncompleteStreamError:()=>Q,IncompleteTableError:()=>N,
5
- IncorrectIndexesTypeError:()=>F,IncorrectRelationsTypeError:()=>R,IncorrectSchemaTypeError:()=>G,
6
- IncorrectStreamTypeError:()=>_,InvalidIndexReferenceError:()=>V,InvalidIndexTypeError:()=>q,
7
- InvalidIndexesTypeError:()=>H,InvalidRelationAliasError:()=>C,InvalidRelationColumnError:()=>M,
8
- InvalidRelationTableError:()=>w,InvalidRelationTargetError:()=>A,InvalidRelationsTypeError:()=>k,
9
- InvalidSchemaTypeError:()=>$,InvalidStreamTypeError:()=>B,ServiceType:()=>K,getDatabaseServices:()=>pe,
10
- getDatabaseTable:()=>ie,getTableSchema:()=>se,isDatabaseService:()=>tt,registerTriggers:()=>dt});
11
- module.exports=et(ut);var Be=require("@ez4/common/library"),_e=require("@ez4/schema/library"),Je=require("@ez4/project/library");var d=require("@ez4/common/library"),$e=require("@ez4/reflection");var K="@ez4/database",tt=e=>e.type===K;var me=require("@ez4/common/library"),O=class extends me.IncompleteTypeError{constructor(r,t){
12
- super("Incomplete database service",r,t)}};var x=require("@ez4/common/library"),k=class extends x.InvalidTypeError{constructor(r){
13
- super("Invalid table relations type",void 0,"Database.Relations",r)}},R=class extends x.IncorrectTypeError{constructor(t,n){
1
+ "use strict";var W=Object.defineProperty;var Xe=Object.getOwnPropertyDescriptor;var Ye=Object.getOwnPropertyNames;var Ze=Object.prototype.hasOwnProperty;var o=(e,r)=>W(e,"name",{value:r,configurable:!0});var Le=(e,r)=>{for(var t in r)W(e,t,{get:r[t],enumerable:!0})},et=(e,r,t,n)=>{if(r&&
2
+ typeof r=="object"||typeof r=="function")for(let a of Ye(r))!Ze.call(e,a)&&a!==t&&
3
+ W(e,a,{get:()=>r[a],enumerable:!(n=Xe(r,a))||n.enumerable});return e};var tt=e=>et(W({},"__esModule",{value:!0}),e);var bt={};Le(bt,{IncompleteEngineError:()=>N,IncompleteHandlerError:()=>K,IncompleteScalabilityError:()=>U,
4
+ IncompleteServiceError:()=>k,IncompleteStreamError:()=>B,IncompleteTableError:()=>H,
5
+ IncorrectIndexesTypeError:()=>q,IncorrectRelationsTypeError:()=>A,IncorrectSchemaTypeError:()=>Q,
6
+ IncorrectStreamTypeError:()=>J,InvalidIndexReferenceError:()=>$,InvalidIndexTypeError:()=>V,
7
+ InvalidIndexesTypeError:()=>F,InvalidRelationAliasError:()=>z,InvalidRelationColumnError:()=>I,
8
+ InvalidRelationTableError:()=>C,InvalidRelationTargetError:()=>w,InvalidRelationsTypeError:()=>R,
9
+ InvalidSchemaTypeError:()=>G,InvalidStreamTypeError:()=>_,ServiceType:()=>X,getDatabaseServices:()=>le,
10
+ getDatabaseTable:()=>pe,getTableSchema:()=>ie,isDatabaseService:()=>rt,registerTriggers:()=>ut});
11
+ module.exports=tt(bt);var _e=require("@ez4/common/library"),Je=require("@ez4/schema/library"),Ke=require("@ez4/project/library");var u=require("@ez4/common/library"),Ge=require("@ez4/reflection");var X="@ez4/database",rt=o(e=>e.type===X,"isDatabaseService");var ce=require("@ez4/common/library");var k=class extends ce.IncompleteTypeError{static{o(this,"IncompleteServiceError")}constructor(r,t){
12
+ super("Incomplete database service",r,t)}};var g=require("@ez4/common/library");var R=class extends g.InvalidTypeError{static{o(this,"InvalidRelationsTypeError")}constructor(r){
13
+ super("Invalid table relations type",void 0,"Database.Relations",r)}},A=class extends g.IncorrectTypeError{constructor(t,n){
14
14
  super("Incorrect table relations type",t,"Database.Relations",n);this.schemaType=
15
- t}},A=class extends x.TypeError{constructor(t,n){super(`Target ${t} must follow \
16
- the pattern 'column@alias'.`,n);this.relationSource=t}},w=class extends x.TypeError{constructor(t,n){
17
- super(`Relation table ${t} don't exists.`,n);this.relationTable=t}},M=class extends x.TypeError{constructor(t,n){
18
- super(`Relation column ${t} don't exists.`,n);this.relationColumn=t}},C=class extends x.TypeError{constructor(t,n){
19
- super(`Relation alias ${t} can't override table columns.`,n);this.relationAlias=
20
- t}};var b=require("@ez4/common/library"),I=require("@ez4/reflection"),Z=require("@ez4/utils");var ce=require("@ez4/common/library"),z=class extends ce.IncompleteTypeError{constructor(r,t){
21
- super("Incomplete database scalability",r,t)}};var u=require("@ez4/common/library"),W=require("@ez4/reflection"),X=e=>(0,u.isClassDeclaration)(
22
- e)&&(0,u.hasHeritageType)(e,"Database.Service"),Y=e=>(0,u.isModelDeclaration)(e)&&
23
- (0,u.hasHeritageType)(e,"Database.Engine"),de=e=>(0,u.isModelDeclaration)(e)&&(0,u.hasHeritageType)(
24
- e,"Database.Table"),ue=e=>(0,W.isTypeCallback)(e)||(0,W.isTypeFunction)(e),be=e=>(0,u.hasHeritageType)(
25
- e,"Database.Relations"),Te=e=>(0,u.hasHeritageType)(e,"Database.Indexes"),fe=e=>(0,u.hasHeritageType)(
26
- e,"Database.Schema"),ye=e=>(0,u.hasHeritageType)(e,"Database.Stream");var Me=(e,r,t,n)=>{if(!(0,I.isTypeReference)(e))return xe(e,r,n);let a=(0,b.getReferenceType)(
27
- e,t);return a?xe(a,r,n):null},rt=e=>(0,Z.isAnyNumber)(e.minCapacity)&&(0,Z.isAnyNumber)(
28
- e.maxCapacity),xe=(e,r,t)=>Y(e)?ge(e,r,(0,b.getModelMembers)(e),t):(0,I.isTypeObject)(
29
- e)?ge(e,r,(0,b.getObjectMembers)(e),t):null,ge=(e,r,t,n)=>{let a={},o=new Set(["\
30
- minCapacity","maxCapacity"]);for(let s of t)if(!(!(0,I.isModelProperty)(s)||s.inherited))
31
- switch(s.name){default:n.push(new b.InvalidServicePropertyError(r.name,s.name,e.
32
- file));break;case"minCapacity":case"maxCapacity":let i=(0,b.getPropertyNumber)(s);
33
- (0,Z.isAnyNumber)(i)&&(a[s.name]=i,o.delete(s.name));break}return rt(a)?a:(n.push(
34
- new z([...o],e.file)),null)};var S=require("@ez4/reflection"),m=require("@ez4/common/library");var Ie=require("@ez4/common/library"),U=class extends Ie.IncompleteTypeError{constructor(r,t){
35
- super("Incomplete database engine",r,t)}};var he=(e,r,t,n)=>{if(!(0,S.isTypeReference)(e))return Se(e,r,n);let a=(0,m.getReferenceType)(
36
- e,t);return a?Se(a,r,n):null},nt=e=>!!e.name&&!!e.parametersMode&&!!e.transactionMode&&
37
- !!e.insensitiveMode&&!!e.paginationMode&&!!e.orderMode,Se=(e,r,t)=>Y(e)?De(e,r,(0,m.getModelMembers)(
38
- e),t):(0,S.isTypeObject)(e)?De(e,r,(0,m.getObjectMembers)(e),t):null,De=(e,r,t,n)=>{
39
- let a={},o=new Set(["name","parametersMode","transactionMode","insensitiveMode",
40
- "paginationMode","orderMode"]);for(let s of t)if(!(!(0,S.isModelProperty)(s)||s.
41
- inherited))switch(s.name){default:n.push(new m.InvalidServicePropertyError(r.name,
42
- s.name,e.file));break;case"name":(a.name=(0,m.getPropertyString)(s))&&o.delete(s.
43
- name);break;case"parametersMode":(a.parametersMode=(0,m.getPropertyStringIn)(s,[
44
- "index","both"]))&&o.delete(s.name);break;case"transactionMode":(a.transactionMode=
45
- (0,m.getPropertyStringIn)(s,["static","interactive"]))&&o.delete(s.name);break;case"\
46
- insensitiveMode":(a.insensitiveMode=(0,m.getPropertyStringIn)(s,["unsupported","\
47
- enabled"]))&&o.delete(s.name);break;case"paginationMode":(a.paginationMode=(0,m.getPropertyStringIn)(
48
- s,["cursor","offset"]))&&o.delete(s.name);break;case"orderMode":(a.orderMode=(0,m.getPropertyStringIn)(
49
- s,["any","index"]))&&o.delete(s.name);break}return nt(a)?a:(n.push(new U([...o],
50
- e.file)),null)};var y=require("@ez4/common/library"),j=require("@ez4/reflection");var ve=require("@ez4/common/library"),N=class extends ve.IncompleteTypeError{constructor(r,t){
51
- super("Incomplete database table",r,t)}};var g=require("@ez4/common/library"),H=class extends g.InvalidTypeError{constructor(r){
52
- super("Invalid table indexes type",void 0,"Database.Indexes",r)}},F=class extends g.IncorrectTypeError{constructor(t,n){
53
- super("Incorrect table indexes type",t,"Database.Indexes",n);this.schemaType=t}},
54
- q=class extends g.TypeError{constructor(t,n){super(`Invalid index type, ${t} mus\
55
- t follow one of the Index options.`,n);this.indexName=t}},V=class extends g.TypeError{constructor(t,n){
56
- super(`Invalid index reference, ${t} must be valid column.`,n);this.indexName=t}};var T=require("@ez4/common/library"),D=require("@ez4/reflection");var Pe=(e,r,t,n)=>{if(!(0,D.isTypeReference)(e))return Ee(e,r,n);let a=(0,T.getReferenceType)(
57
- e,t);return a?Ee(a,r,n):null},Ee=(e,r,t)=>(0,D.isTypeObject)(e)?je(e,(0,T.getObjectMembers)(
58
- e),t):(0,T.isModelDeclaration)(e)?be(e)?je(e,(0,T.getModelMembers)(e),t):(t.push(
59
- new R(e.name,e.file)),null):(t.push(new k(r.file)),null),je=(e,r,t)=>{let n=[];for(let a of r){
60
- if(!(0,D.isModelProperty)(a)||a.inherited)continue;let o=(0,T.getPropertyString)(
61
- a),s=a.name;if(!o)return t.push(new A(s,e.file)),null;let[i,p]=s.split("@",2),[l,
62
- P]=o.split(":",2);n.push({sourceTable:l,sourceColumn:P,targetColumn:i,targetAlias:p})}
63
- return n};var f=require("@ez4/common/library"),h=require("@ez4/reflection");var Re=(e,r,t,n)=>{if(!(0,h.isTypeReference)(e))return Oe(e,r,n);let a=(0,f.getReferenceType)(
64
- e,t);return a?Oe(a,r,n):null},Oe=(e,r,t)=>(0,h.isTypeObject)(e)?ke(e,(0,f.getObjectMembers)(
65
- e),t):(0,f.isModelDeclaration)(e)?Te(e)?ke(e,(0,f.getModelMembers)(e),t):(t.push(
66
- new F(e.name,e.file)),null):(t.push(new H(r.file)),null),ke=(e,r,t)=>{let n=[];for(let a of r){
67
- if(!(0,h.isModelProperty)(a)||a.inherited)continue;let o=a.name,s=(0,f.getPropertyString)(
68
- a);switch(s){case"primary":case"secondary":case"unique":case"ttl":n.push({name:o,
69
- columns:o.split(":"),type:s});break;default:return t.push(new q(o,e.file)),null}}
70
- return n};var ee=require("@ez4/common/library"),te=require("@ez4/schema/library"),re=require("@ez4/reflection");var L=require("@ez4/common/library"),$=class extends L.InvalidTypeError{constructor(r){
71
- super("Invalid table schema type",void 0,"Database.Schema",r)}},G=class extends L.IncorrectTypeError{constructor(t,n){
72
- super("Incorrect table schema type",t,"Database.Schema",n);this.schemaType=t}};var se=(e,r,t,n)=>{if(!(0,re.isTypeReference)(e))return Ae(e,r,t,n);let a=(0,ee.getReferenceType)(
73
- e,t);return a?Ae(a,r,t,n):null},Ae=(e,r,t,n)=>(0,re.isTypeObject)(e)?we(e,t):(0,ee.isModelDeclaration)(
74
- e)?fe(e)?we(e,t):(n.push(new G(e.name,e.file)),null):(n.push(new $(r.file)),null),
75
- we=(e,r)=>{let t=(0,te.getObjectSchema)(e,r);return t&&(0,te.isObjectSchema)(t)?
76
- t:null};var c=require("@ez4/common/library"),E=require("@ez4/reflection");var v=require("@ez4/common/library"),Q=class extends v.IncompleteTypeError{constructor(r,t){
77
- super("Incomplete table stream",r,t)}},B=class extends v.InvalidTypeError{constructor(r){
78
- super("Invalid table stream type",void 0,"Database.Stream",r)}},_=class extends v.IncorrectTypeError{constructor(t,n){
79
- super("Incorrect table stream type",t,"Database.Stream",n);this.streamType=t}};var Ce=require("@ez4/common/library"),J=class extends Ce.IncompleteTypeError{constructor(r,t){
80
- super("Incomplete stream handler",r,t)}};var ze=(e,r,t)=>{if(!ue(e))return null;let n={},a=new Set(["name","file","change"]);
81
- return e.description&&(n.description=e.description),(n.name=e.name)&&a.delete("n\
82
- ame"),(n.file=e.file)&&a.delete("file"),e.parameters&&a.delete("change"),a.size===
83
- 0&&at(n)?n:(t.push(new J([...a],e.file)),null)},at=e=>!!e.name&&!!e.file;var He=(e,r,t,n)=>{if(!(0,E.isTypeReference)(e))return Ue(e,r,t,n);let a=(0,c.getReferenceType)(
84
- e,t);return a?Ue(a,r,t,n):null},ot=e=>!!e.handler,Ue=(e,r,t,n)=>(0,E.isTypeObject)(
85
- e)?Ne(e,r,(0,c.getObjectMembers)(e),t,n):(0,c.isModelDeclaration)(e)?ye(e)?Ne(e,
86
- r,(0,c.getModelMembers)(e),t,n):(n.push(new _(e.name,e.file)),null):(n.push(new B(
87
- r.file)),null),Ne=(e,r,t,n,a)=>{let o={},s=new Set(["handler"]);for(let i of t)if(!(!(0,E.isModelProperty)(
88
- i)||i.inherited))switch(i.name){default:a.push(new c.InvalidServicePropertyError(
89
- r.name,i.name,e.file));break;case"handler":o.handler=ze(i.value,n,a);break;case"\
90
- listener":o.listener=(0,c.getServiceListener)(i.value,a);break;case"memory":case"\
91
- logRetention":case"timeout":o[i.name]=(0,c.getPropertyNumber)(i);break;case"vari\
92
- ables":o.variables=(0,c.getLinkedVariableList)(i,a);break}return ot(o)?o:(a.push(
93
- new Q([...s],e.file)),null)};var ie=(e,r,t,n)=>{if(!(0,j.isTypeReference)(e))return Fe(e,r,t,n);let a=(0,y.getReferenceType)(
94
- e,t);return a?Fe(a,r,t,n):null},st=e=>!!e.name&&!!e.schema&&!!e.indexes,Fe=(e,r,t,n)=>de(
95
- e)?qe(e,r,(0,y.getModelMembers)(e),t,n):(0,j.isTypeObject)(e)?qe(e,r,(0,y.getObjectMembers)(
96
- e),t,n):null,qe=(e,r,t,n,a)=>{let o={},s=new Set(["name","schema","indexes"]);for(let p of t)
97
- if(!(!(0,j.isModelProperty)(p)||p.inherited))switch(p.name){default:a.push(new y.InvalidServicePropertyError(
98
- r.name,p.name,e.file));break;case"name":(o.name=(0,y.getPropertyString)(p))&&s.delete(
99
- p.name);break;case"schema":(o.schema=se(p.value,e,n,a))&&s.delete(p.name);break;case"\
100
- indexes":(o.indexes=Re(p.value,e,n,a))&&s.delete(p.name);break;case"relations":o.
101
- relations=Pe(p.value,e,n,a);break;case"stream":o.stream=He(p.value,r,n,a);break}
102
- if(!st(o))return a.push(new N([...s],e.file)),null;let i=it(e,o.indexes,o.schema);
103
- return i.length?(a.push(...i),null):o},it=(e,r,t)=>{let n=t.properties,a=[];for(let{
104
- name:o,columns:s}of r)s.some(p=>!n[p])&&a.push(new V(o,e.file));return a};var pe=e=>{let r={},t=[];for(let n in e){let a=e[n];if(!X(a)||(0,d.isExternalDeclaration)(
105
- a))continue;let o={type:K,extras:{}},s=new Set(["engine","tables"]),i=a.file;o.name=
106
- a.name;for(let l of(0,d.getModelMembers)(a))if(!(!(0,$e.isModelProperty)(l)||l.inherited))
107
- switch(l.name){default:t.push(new d.InvalidServicePropertyError(o.name,l.name,i));
108
- break;case"client":break;case"scalability":(o.scalability=Me(l.value,a,e,t))&&s.
109
- delete(l.name);break;case"engine":(o.engine=he(l.value,a,e,t))&&s.delete(l.name);
110
- break;case"tables":(o.tables=lt(l,a,e,t))&&s.delete(l.name);break;case"variables":
111
- o.variables=(0,d.getLinkedVariableList)(l,t);break;case"services":o.services=(0,d.getLinkedServiceList)(
112
- l,e,t);break}if(!pt(o)){t.push(new O([...s],i));continue}let p=mt(a,o.tables);if(p.
113
- length){t.push(...p);continue}if(r[a.name]){t.push(new d.DuplicateServiceError(a.
114
- name,i));continue}r[a.name]=o}return{services:r,errors:t}},pt=e=>!!e.name&&!!e.tables&&
115
- !!e.extras,lt=(e,r,t,n)=>{let a=(0,d.getPropertyTuple)(e)??[],o=[];for(let s of a){
116
- let i=ie(s,r,t,n);i&&o.push(i)}return o},mt=(e,r)=>{let t=ct(r),n=[];for(let{relations:a,
117
- schema:o,indexes:s}of r){if(!a)continue;let i=o.properties;for(let p of a){let{sourceTable:l,
118
- sourceColumn:P,targetColumn:ne,targetAlias:le}=p;i[ne]||n.push(new M(ne,e.file)),
119
- i[le]&&n.push(new C(le,e.file));let ae=t[l]?.schema.properties;ae||n.push(new w(
120
- l,e.file)),ae&&!ae[P]&&n.push(new M(P,e.file));let Ke=t[l]?.indexes??[];p.sourceIndex=
121
- Ve(Ke,P),p.targetIndex=Ve(s,ne)}}return n},Ve=(e,r)=>e.find(({name:t})=>t===r)?.
122
- type,ct=e=>e.reduce((r,t)=>({...r,[t.name]:t}),{});var Ge=e=>X(e)?e.name:null;var Qe=!1,dt=()=>{Qe||((0,Be.registerTriggers)(),(0,_e.registerTriggers)(),(0,Je.createTrigger)(
123
- "@ez4/database",{"metadata:getServices":pe,"metadata:getLinkedService":Ge}),Qe=!0)};0&&(module.exports={IncompleteEngineError,IncompleteHandlerError,IncompleteScalabilityError,
15
+ t}static{o(this,"IncorrectRelationsTypeError")}},w=class extends g.TypeError{constructor(t,n){
16
+ super(`Target ${t} must follow the pattern 'column@alias'.`,n);this.relationSource=
17
+ t}static{o(this,"InvalidRelationTargetError")}},C=class extends g.TypeError{constructor(t,n){
18
+ super(`Relation table ${t} don't exists.`,n);this.relationTable=t}static{o(this,
19
+ "InvalidRelationTableError")}},I=class extends g.TypeError{constructor(t,n){super(
20
+ `Relation column ${t} don't exists.`,n);this.relationColumn=t}static{o(this,"Inv\
21
+ alidRelationColumnError")}},z=class extends g.TypeError{constructor(t,n){super(`\
22
+ Relation alias ${t} can't override table columns.`,n);this.relationAlias=t}static{
23
+ o(this,"InvalidRelationAliasError")}};var T=require("@ez4/common/library"),S=require("@ez4/reflection"),ee=require("@ez4/utils");var de=require("@ez4/common/library");var U=class extends de.IncompleteTypeError{static{o(this,"IncompleteScalabilityE\
24
+ rror")}constructor(r,t){super("Incomplete database scalability",r,t)}};var b=require("@ez4/common/library"),Y=require("@ez4/reflection");var Z=o(e=>(0,b.isClassDeclaration)(e)&&(0,b.hasHeritageType)(e,"Database.Servic\
25
+ e"),"isDatabaseService"),L=o(e=>(0,b.isModelDeclaration)(e)&&(0,b.hasHeritageType)(
26
+ e,"Database.Engine"),"isDatabaseEngine"),ue=o(e=>(0,b.isModelDeclaration)(e)&&(0,b.hasHeritageType)(
27
+ e,"Database.Table"),"isDatabaseTable"),be=o(e=>(0,Y.isTypeCallback)(e)||(0,Y.isTypeFunction)(
28
+ e),"isStreamHandler"),Te=o(e=>(0,b.hasHeritageType)(e,"Database.Relations"),"isT\
29
+ ableRelations"),fe=o(e=>(0,b.hasHeritageType)(e,"Database.Indexes"),"isTableInde\
30
+ xes"),ye=o(e=>(0,b.hasHeritageType)(e,"Database.Schema"),"isTableSchema"),xe=o(e=>(0,b.hasHeritageType)(
31
+ e,"Database.Stream"),"isTableStream");var Ie=o((e,r,t,n)=>{if(!(0,S.isTypeReference)(e))return ge(e,r,n);let a=(0,T.getReferenceType)(
32
+ e,t);return a?ge(a,r,n):null},"getDatabaseScalability"),nt=o(e=>(0,ee.isAnyNumber)(
33
+ e.minCapacity)&&(0,ee.isAnyNumber)(e.maxCapacity),"isValidScalability"),ge=o((e,r,t)=>L(
34
+ e)?Me(e,r,(0,T.getModelMembers)(e),t):(0,S.isTypeObject)(e)?Me(e,r,(0,T.getObjectMembers)(
35
+ e),t):null,"getTypeScalability"),Me=o((e,r,t,n)=>{let a={},s=new Set(["minCapaci\
36
+ ty","maxCapacity"]);for(let i of t)if(!(!(0,S.isModelProperty)(i)||i.inherited))
37
+ switch(i.name){default:n.push(new T.InvalidServicePropertyError(r.name,i.name,e.
38
+ file));break;case"minCapacity":case"maxCapacity":let p=(0,T.getPropertyNumber)(i);
39
+ (0,ee.isAnyNumber)(p)&&(a[i.name]=p,s.delete(i.name));break}return nt(a)?a:(n.push(
40
+ new U([...s],e.file)),null)},"getTypeFromMembers");var D=require("@ez4/reflection"),c=require("@ez4/common/library");var Se=require("@ez4/common/library");var N=class extends Se.IncompleteTypeError{static{o(this,"IncompleteEngineError")}constructor(r,t){
41
+ super("Incomplete database engine",r,t)}};var ve=o((e,r,t,n)=>{if(!(0,D.isTypeReference)(e))return De(e,r,n);let a=(0,c.getReferenceType)(
42
+ e,t);return a?De(a,r,n):null},"getDatabaseEngine"),at=o(e=>!!e.name&&!!e.parametersMode&&
43
+ !!e.transactionMode&&!!e.insensitiveMode&&!!e.paginationMode&&!!e.orderMode,"isV\
44
+ alidEngine"),De=o((e,r,t)=>L(e)?he(e,r,(0,c.getModelMembers)(e),t):(0,D.isTypeObject)(
45
+ e)?he(e,r,(0,c.getObjectMembers)(e),t):null,"getTypeEngine"),he=o((e,r,t,n)=>{let a={},
46
+ s=new Set(["name","parametersMode","transactionMode","insensitiveMode","paginati\
47
+ onMode","orderMode"]);for(let i of t)if(!(!(0,D.isModelProperty)(i)||i.inherited))
48
+ switch(i.name){default:n.push(new c.InvalidServicePropertyError(r.name,i.name,e.
49
+ file));break;case"name":(a.name=(0,c.getPropertyString)(i))&&s.delete(i.name);break;case"\
50
+ parametersMode":(a.parametersMode=(0,c.getPropertyStringIn)(i,["index","both"]))&&
51
+ s.delete(i.name);break;case"transactionMode":(a.transactionMode=(0,c.getPropertyStringIn)(
52
+ i,["static","interactive"]))&&s.delete(i.name);break;case"insensitiveMode":(a.insensitiveMode=
53
+ (0,c.getPropertyStringIn)(i,["unsupported","enabled"]))&&s.delete(i.name);break;case"\
54
+ paginationMode":(a.paginationMode=(0,c.getPropertyStringIn)(i,["cursor","offset"]))&&
55
+ s.delete(i.name);break;case"orderMode":(a.orderMode=(0,c.getPropertyStringIn)(i,
56
+ ["any","index"]))&&s.delete(i.name);break}return at(a)?a:(n.push(new N([...s],e.
57
+ file)),null)},"getTypeFromMembers");var x=require("@ez4/common/library"),P=require("@ez4/reflection");var Ee=require("@ez4/common/library");var H=class extends Ee.IncompleteTypeError{static{o(this,"IncompleteTableError")}constructor(r,t){
58
+ super("Incomplete database table",r,t)}};var M=require("@ez4/common/library");var F=class extends M.InvalidTypeError{static{o(this,"InvalidIndexesTypeError")}constructor(r){
59
+ super("Invalid table indexes type",void 0,"Database.Indexes",r)}},q=class extends M.IncorrectTypeError{constructor(t,n){
60
+ super("Incorrect table indexes type",t,"Database.Indexes",n);this.schemaType=t}static{
61
+ o(this,"IncorrectIndexesTypeError")}},V=class extends M.TypeError{constructor(t,n){
62
+ super(`Invalid index type, ${t} must follow one of the Index options.`,n);this.indexName=
63
+ t}static{o(this,"InvalidIndexTypeError")}},$=class extends M.TypeError{constructor(t,n){
64
+ super(`Invalid index reference, ${t} must be valid column.`,n);this.indexName=t}static{
65
+ o(this,"InvalidIndexReferenceError")}};var f=require("@ez4/common/library"),h=require("@ez4/reflection");var Oe=o((e,r,t,n)=>{if(!(0,h.isTypeReference)(e))return je(e,r,n);let a=(0,f.getReferenceType)(
66
+ e,t);return a?je(a,r,n):null},"getTableRelations"),je=o((e,r,t)=>(0,h.isTypeObject)(
67
+ e)?Pe(e,(0,f.getObjectMembers)(e),t):(0,f.isModelDeclaration)(e)?Te(e)?Pe(e,(0,f.getModelMembers)(
68
+ e),t):(t.push(new A(e.name,e.file)),null):(t.push(new R(r.file)),null),"getTypeR\
69
+ elations"),Pe=o((e,r,t)=>{let n=[];for(let a of r){if(!(0,h.isModelProperty)(a)||
70
+ a.inherited)continue;let s=(0,f.getPropertyString)(a),i=a.name;if(!s)return t.push(
71
+ new w(i,e.file)),null;let[p,l]=i.split("@",2),[m,O]=s.split(":",2);n.push({sourceTable:m,
72
+ sourceColumn:O,targetColumn:p,targetAlias:l})}return n},"getTypeFromMembers");var y=require("@ez4/common/library"),v=require("@ez4/reflection");var Ae=o((e,r,t,n)=>{if(!(0,v.isTypeReference)(e))return ke(e,r,n);let a=(0,y.getReferenceType)(
73
+ e,t);return a?ke(a,r,n):null},"getTableIndexes"),ke=o((e,r,t)=>(0,v.isTypeObject)(
74
+ e)?Re(e,(0,y.getObjectMembers)(e),t):(0,y.isModelDeclaration)(e)?fe(e)?Re(e,(0,y.getModelMembers)(
75
+ e),t):(t.push(new q(e.name,e.file)),null):(t.push(new F(r.file)),null),"getTypeI\
76
+ ndexes"),Re=o((e,r,t)=>{let n=[];for(let a of r){if(!(0,v.isModelProperty)(a)||a.
77
+ inherited)continue;let s=a.name,i=(0,y.getPropertyString)(a);switch(i){case"prim\
78
+ ary":case"secondary":case"unique":case"ttl":n.push({name:s,columns:s.split(":"),
79
+ type:i});break;default:return t.push(new V(s,e.file)),null}}return n},"getTypeFr\
80
+ omMembers");var re=require("@ez4/common/library"),ne=require("@ez4/schema/library"),ae=require("@ez4/reflection");var te=require("@ez4/common/library");var G=class extends te.InvalidTypeError{static{o(this,"InvalidSchemaTypeError")}constructor(r){
81
+ super("Invalid table schema type",void 0,"Database.Schema",r)}},Q=class extends te.IncorrectTypeError{constructor(t,n){
82
+ super("Incorrect table schema type",t,"Database.Schema",n);this.schemaType=t}static{
83
+ o(this,"IncorrectSchemaTypeError")}};var ie=o((e,r,t,n)=>{if(!(0,ae.isTypeReference)(e))return we(e,r,t,n);let a=(0,re.getReferenceType)(
84
+ e,t);return a?we(a,r,t,n):null},"getTableSchema"),we=o((e,r,t,n)=>(0,ae.isTypeObject)(
85
+ e)?Ce(e,t):(0,re.isModelDeclaration)(e)?ye(e)?Ce(e,t):(n.push(new Q(e.name,e.file)),
86
+ null):(n.push(new G(r.file)),null),"getTypeSchema"),Ce=o((e,r)=>{let t=(0,ne.getObjectSchema)(
87
+ e,r);return t&&(0,ne.isObjectSchema)(t)?t:null},"getSchema");var d=require("@ez4/common/library"),j=require("@ez4/reflection");var E=require("@ez4/common/library");var B=class extends E.IncompleteTypeError{static{o(this,"IncompleteStreamError")}constructor(r,t){
88
+ super("Incomplete table stream",r,t)}},_=class extends E.InvalidTypeError{static{
89
+ o(this,"InvalidStreamTypeError")}constructor(r){super("Invalid table stream type",
90
+ void 0,"Database.Stream",r)}},J=class extends E.IncorrectTypeError{constructor(t,n){
91
+ super("Incorrect table stream type",t,"Database.Stream",n);this.streamType=t}static{
92
+ o(this,"IncorrectStreamTypeError")}};var ze=require("@ez4/common/library");var K=class extends ze.IncompleteTypeError{static{o(this,"IncompleteHandlerError")}constructor(r,t){
93
+ super("Incomplete stream handler",r,t)}};var Ue=o((e,r,t)=>{if(!be(e))return null;let n={},a=new Set(["name","file","chan\
94
+ ge"]);return e.description&&(n.description=e.description),(n.name=e.name)&&a.delete(
95
+ "name"),(n.file=e.file)&&a.delete("file"),e.parameters&&a.delete("change"),a.size===
96
+ 0&&ot(n)?n:(t.push(new K([...a],e.file)),null)},"getStreamHandler"),ot=o(e=>!!e.
97
+ name&&!!e.file,"isValidHandler");var Fe=o((e,r,t,n)=>{if(!(0,j.isTypeReference)(e))return Ne(e,r,t,n);let a=(0,d.getReferenceType)(
98
+ e,t);return a?Ne(a,r,t,n):null},"getTableStream"),st=o(e=>!!e.handler,"isValidSt\
99
+ ream"),Ne=o((e,r,t,n)=>(0,j.isTypeObject)(e)?He(e,r,(0,d.getObjectMembers)(e),t,
100
+ n):(0,d.isModelDeclaration)(e)?xe(e)?He(e,r,(0,d.getModelMembers)(e),t,n):(n.push(
101
+ new J(e.name,e.file)),null):(n.push(new _(r.file)),null),"getTypeStream"),He=o((e,r,t,n,a)=>{
102
+ let s={},i=new Set(["handler"]);for(let p of t)if(!(!(0,j.isModelProperty)(p)||p.
103
+ inherited))switch(p.name){default:a.push(new d.InvalidServicePropertyError(r.name,
104
+ p.name,e.file));break;case"handler":s.handler=Ue(p.value,n,a);break;case"listene\
105
+ r":s.listener=(0,d.getServiceListener)(p.value,a);break;case"memory":case"logRet\
106
+ ention":case"timeout":s[p.name]=(0,d.getPropertyNumber)(p);break;case"variables":
107
+ s.variables=(0,d.getLinkedVariableList)(p,a);break}return st(s)?s:(a.push(new B(
108
+ [...i],e.file)),null)},"getTypeFromMembers");var pe=o((e,r,t,n)=>{if(!(0,P.isTypeReference)(e))return qe(e,r,t,n);let a=(0,x.getReferenceType)(
109
+ e,t);return a?qe(a,r,t,n):null},"getDatabaseTable"),it=o(e=>!!e.name&&!!e.schema&&
110
+ !!e.indexes,"isValidTable"),qe=o((e,r,t,n)=>ue(e)?Ve(e,r,(0,x.getModelMembers)(e),
111
+ t,n):(0,P.isTypeObject)(e)?Ve(e,r,(0,x.getObjectMembers)(e),t,n):null,"getTypeTa\
112
+ ble"),Ve=o((e,r,t,n,a)=>{let s={},i=new Set(["name","schema","indexes"]);for(let l of t)
113
+ if(!(!(0,P.isModelProperty)(l)||l.inherited))switch(l.name){default:a.push(new x.InvalidServicePropertyError(
114
+ r.name,l.name,e.file));break;case"name":(s.name=(0,x.getPropertyString)(l))&&i.delete(
115
+ l.name);break;case"schema":(s.schema=ie(l.value,e,n,a))&&i.delete(l.name);break;case"\
116
+ indexes":(s.indexes=Ae(l.value,e,n,a))&&i.delete(l.name);break;case"relations":s.
117
+ relations=Oe(l.value,e,n,a);break;case"stream":s.stream=Fe(l.value,r,n,a);break}
118
+ if(!it(s))return a.push(new H([...i],e.file)),null;let p=pt(e,s.indexes,s.schema);
119
+ return p.length?(a.push(...p),null):s},"getTypeFromMembers"),pt=o((e,r,t)=>{let n=t.
120
+ properties,a=[];for(let{name:s,columns:i}of r)i.some(l=>!n[l])&&a.push(new $(s,e.
121
+ file));return a},"validateIndexes");var le=o(e=>{let r={},t=[];for(let n in e){let a=e[n];if(!Z(a)||(0,u.isExternalDeclaration)(
122
+ a))continue;let s={type:X,extras:{}},i=new Set(["engine","tables"]),p=a.file;s.name=
123
+ a.name;for(let m of(0,u.getModelMembers)(a))if(!(!(0,Ge.isModelProperty)(m)||m.inherited))
124
+ switch(m.name){default:t.push(new u.InvalidServicePropertyError(s.name,m.name,p));
125
+ break;case"client":break;case"scalability":(s.scalability=Ie(m.value,a,e,t))&&i.
126
+ delete(m.name);break;case"engine":(s.engine=ve(m.value,a,e,t))&&i.delete(m.name);
127
+ break;case"tables":(s.tables=mt(m,a,e,t))&&i.delete(m.name);break;case"variables":
128
+ s.variables=(0,u.getLinkedVariableList)(m,t);break;case"services":s.services=(0,u.getLinkedServiceList)(
129
+ m,e,t);break}if(!lt(s)){t.push(new k([...i],p));continue}let l=ct(a,s.tables);if(l.
130
+ length){t.push(...l);continue}if(r[a.name]){t.push(new u.DuplicateServiceError(a.
131
+ name,p));continue}r[a.name]=s}return{services:r,errors:t}},"getDatabaseServices"),
132
+ lt=o(e=>!!e.name&&!!e.tables&&!!e.extras,"isValidService"),mt=o((e,r,t,n)=>{let a=(0,u.getPropertyTuple)(
133
+ e)??[],s=[];for(let i of a){let p=pe(i,r,t,n);p&&s.push(p)}return s},"getAllTabl\
134
+ es"),ct=o((e,r)=>{let t=dt(r),n=[];for(let{relations:a,schema:s,indexes:i}of r){
135
+ if(!a)continue;let p=s.properties;for(let l of a){let{sourceTable:m,sourceColumn:O,
136
+ targetColumn:oe,targetAlias:me}=l;p[oe]||n.push(new I(oe,e.file)),p[me]&&n.push(
137
+ new z(me,e.file));let se=t[m]?.schema.properties;se||n.push(new C(m,e.file)),se&&
138
+ !se[O]&&n.push(new I(O,e.file));let We=t[m]?.indexes??[];l.sourceIndex=$e(We,O),
139
+ l.targetIndex=$e(i,oe)}}return n},"validateRelations"),$e=o((e,r)=>e.find(({name:t})=>t===
140
+ r)?.type,"getIndexType"),dt=o(e=>e.reduce((r,t)=>({...r,[t.name]:t}),{}),"getTab\
141
+ leMap");var Qe=o(e=>Z(e)?e.name:null,"getLinkedService");var Be=!1,ut=o(()=>{Be||((0,_e.registerTriggers)(),(0,Je.registerTriggers)(),(0,Ke.createTrigger)(
142
+ "@ez4/database",{"metadata:getServices":le,"metadata:getLinkedService":Qe}),Be=!0)},
143
+ "registerTriggers");0&&(module.exports={IncompleteEngineError,IncompleteHandlerError,IncompleteScalabilityError,
124
144
  IncompleteServiceError,IncompleteStreamError,IncompleteTableError,IncorrectIndexesTypeError,
125
145
  IncorrectRelationsTypeError,IncorrectSchemaTypeError,IncorrectStreamTypeError,InvalidIndexReferenceError,
126
146
  InvalidIndexTypeError,InvalidIndexesTypeError,InvalidRelationAliasError,InvalidRelationColumnError,
package/dist/library.mjs CHANGED
@@ -1,124 +1,142 @@
1
- import{registerTriggers as sr}from"@ez4/common/library";import{registerTriggers as ir}from"@ez4/schema/library";
2
- import{createTrigger as pr}from"@ez4/project/library";import{DuplicateServiceError as Kt,InvalidServicePropertyError as Wt,isExternalDeclaration as Xt,
3
- getLinkedServiceList as Yt,getLinkedVariableList as Zt,getPropertyTuple as Lt,getModelMembers as er}from"@ez4/common/library";
4
- import{isModelProperty as tr}from"@ez4/reflection";var H="@ez4/database",lr=e=>e.type===H;import{IncompleteTypeError as Se}from"@ez4/common/library";var b=class extends Se{constructor(r,t){
5
- super("Incomplete database service",r,t)}};import{IncorrectTypeError as De,InvalidTypeError as he,TypeError as M}from"@ez4/common/library";
6
- var T=class extends he{constructor(r){super("Invalid table relations type",void 0,
7
- "Database.Relations",r)}},f=class extends De{constructor(t,n){super("Incorrect t\
8
- able relations type",t,"Database.Relations",n);this.schemaType=t}},y=class extends M{constructor(t,n){
1
+ var De=Object.defineProperty;var a=(e,r)=>De(e,"name",{value:r,configurable:!0});import{registerTriggers as pr}from"@ez4/common/library";import{registerTriggers as lr}from"@ez4/schema/library";
2
+ import{createTrigger as mr}from"@ez4/project/library";import{DuplicateServiceError as Xt,InvalidServicePropertyError as Yt,isExternalDeclaration as Zt,
3
+ getLinkedServiceList as Lt,getLinkedVariableList as er,getPropertyTuple as tr,getModelMembers as rr}from"@ez4/common/library";
4
+ import{isModelProperty as nr}from"@ez4/reflection";var F="@ez4/database",dr=a(e=>e.type===F,"isDatabaseService");import{IncompleteTypeError as he}from"@ez4/common/library";var T=class extends he{static{a(this,"IncompleteServiceError")}constructor(r,t){
5
+ super("Incomplete database service",r,t)}};import{IncorrectTypeError as ve,InvalidTypeError as Ee,TypeError as I}from"@ez4/common/library";var f=class extends Ee{static{a(this,"InvalidRelationsTypeError")}constructor(r){
6
+ super("Invalid table relations type",void 0,"Database.Relations",r)}},y=class extends ve{constructor(t,n){
7
+ super("Incorrect table relations type",t,"Database.Relations",n);this.schemaType=
8
+ t}static{a(this,"IncorrectRelationsTypeError")}},x=class extends I{constructor(t,n){
9
9
  super(`Target ${t} must follow the pattern 'column@alias'.`,n);this.relationSource=
10
- t}},x=class extends M{constructor(t,n){super(`Relation table ${t} don't exists.`,
11
- n);this.relationTable=t}},d=class extends M{constructor(t,n){super(`Relation col\
12
- umn ${t} don't exists.`,n);this.relationColumn=t}},g=class extends M{constructor(t,n){
13
- super(`Relation alias ${t} can't override table columns.`,n);this.relationAlias=
14
- t}};import{InvalidServicePropertyError as Oe,getModelMembers as ke,getPropertyNumber as Re,
15
- getObjectMembers as Ae,getReferenceType as we}from"@ez4/common/library";import{isModelProperty as Ce,
16
- isTypeObject as ze,isTypeReference as Ue}from"@ez4/reflection";import{isAnyNumber as F}from"@ez4/utils";import{IncompleteTypeError as ve}from"@ez4/common/library";var I=class extends ve{constructor(r,t){
17
- super("Incomplete database scalability",r,t)}};import{hasHeritageType as m,isClassDeclaration as Ee,isModelDeclaration as V}from"@ez4/common/library";
18
- import{isTypeCallback as je,isTypeFunction as Pe}from"@ez4/reflection";var S=e=>Ee(
19
- e)&&m(e,"Database.Service"),D=e=>V(e)&&m(e,"Database.Engine"),$=e=>V(e)&&m(e,"Da\
20
- tabase.Table"),G=e=>je(e)||Pe(e),Q=e=>m(e,"Database.Relations"),B=e=>m(e,"Databa\
21
- se.Indexes"),_=e=>m(e,"Database.Schema"),J=e=>m(e,"Database.Stream");var X=(e,r,t,n)=>{if(!Ue(e))return K(e,r,n);let a=we(e,t);return a?K(a,r,n):null},
22
- Ne=e=>F(e.minCapacity)&&F(e.maxCapacity),K=(e,r,t)=>D(e)?W(e,r,ke(e),t):ze(e)?W(
23
- e,r,Ae(e),t):null,W=(e,r,t,n)=>{let a={},o=new Set(["minCapacity","maxCapacity"]);
24
- for(let s of t)if(!(!Ce(s)||s.inherited))switch(s.name){default:n.push(new Oe(r.
25
- name,s.name,e.file));break;case"minCapacity":case"maxCapacity":let i=Re(s);F(i)&&
26
- (a[s.name]=i,o.delete(s.name));break}return Ne(a)?a:(n.push(new I([...o],e.file)),
27
- null)};import{isModelProperty as Fe,isTypeObject as qe,isTypeReference as Ve}from"@ez4/reflection";
28
- import{InvalidServicePropertyError as $e,getModelMembers as Ge,getObjectMembers as Qe,
29
- getPropertyString as Be,getPropertyStringIn as u,getReferenceType as _e}from"@ez4/common/library";import{IncompleteTypeError as He}from"@ez4/common/library";var h=class extends He{constructor(r,t){
30
- super("Incomplete database engine",r,t)}};var L=(e,r,t,n)=>{if(!Ve(e))return Y(e,r,n);let a=_e(e,t);return a?Y(a,r,n):null},
31
- Je=e=>!!e.name&&!!e.parametersMode&&!!e.transactionMode&&!!e.insensitiveMode&&!!e.
32
- paginationMode&&!!e.orderMode,Y=(e,r,t)=>D(e)?Z(e,r,Ge(e),t):qe(e)?Z(e,r,Qe(e),t):
33
- null,Z=(e,r,t,n)=>{let a={},o=new Set(["name","parametersMode","transactionMode",
34
- "insensitiveMode","paginationMode","orderMode"]);for(let s of t)if(!(!Fe(s)||s.inherited))
35
- switch(s.name){default:n.push(new $e(r.name,s.name,e.file));break;case"name":(a.
36
- name=Be(s))&&o.delete(s.name);break;case"parametersMode":(a.parametersMode=u(s,[
37
- "index","both"]))&&o.delete(s.name);break;case"transactionMode":(a.transactionMode=
38
- u(s,["static","interactive"]))&&o.delete(s.name);break;case"insensitiveMode":(a.
39
- insensitiveMode=u(s,["unsupported","enabled"]))&&o.delete(s.name);break;case"pag\
40
- inationMode":(a.paginationMode=u(s,["cursor","offset"]))&&o.delete(s.name);break;case"\
41
- orderMode":(a.orderMode=u(s,["any","index"]))&&o.delete(s.name);break}return Je(
42
- a)?a:(n.push(new h([...o],e.file)),null)};import{InvalidServicePropertyError as Ht,getModelMembers as Ft,getObjectMembers as qt,
43
- getPropertyString as Vt,getReferenceType as $t}from"@ez4/common/library";import{
44
- isModelProperty as Gt,isTypeObject as Qt,isTypeReference as Bt}from"@ez4/reflection";import{IncompleteTypeError as Ke}from"@ez4/common/library";var v=class extends Ke{constructor(r,t){
45
- super("Incomplete database table",r,t)}};import{IncorrectTypeError as We,InvalidTypeError as Xe,TypeError as ee}from"@ez4/common/library";
46
- var E=class extends Xe{constructor(r){super("Invalid table indexes type",void 0,
47
- "Database.Indexes",r)}},j=class extends We{constructor(t,n){super("Incorrect tab\
48
- le indexes type",t,"Database.Indexes",n);this.schemaType=t}},P=class extends ee{constructor(t,n){
49
- super(`Invalid index type, ${t} must follow one of the Index options.`,n);this.indexName=
50
- t}},O=class extends ee{constructor(t,n){super(`Invalid index reference, ${t} mus\
51
- t be valid column.`,n);this.indexName=t}};import{isModelDeclaration as Ye,getModelMembers as Ze,getObjectMembers as Le,getPropertyString as et,
52
- getReferenceType as tt}from"@ez4/common/library";import{isModelProperty as rt,isTypeObject as nt,
53
- isTypeReference as at}from"@ez4/reflection";var ne=(e,r,t,n)=>{if(!at(e))return te(e,r,n);let a=tt(e,t);return a?te(a,r,n):null},
54
- te=(e,r,t)=>nt(e)?re(e,Le(e),t):Ye(e)?Q(e)?re(e,Ze(e),t):(t.push(new f(e.name,e.
55
- file)),null):(t.push(new T(r.file)),null),re=(e,r,t)=>{let n=[];for(let a of r){
56
- if(!rt(a)||a.inherited)continue;let o=et(a),s=a.name;if(!o)return t.push(new y(s,
57
- e.file)),null;let[i,p]=s.split("@",2),[l,c]=o.split(":",2);n.push({sourceTable:l,
58
- sourceColumn:c,targetColumn:i,targetAlias:p})}return n};import{isModelDeclaration as ot,getModelMembers as st,getObjectMembers as it,getPropertyString as pt,
59
- getReferenceType as lt}from"@ez4/common/library";import{isModelProperty as mt,isTypeObject as ct,
60
- isTypeReference as dt}from"@ez4/reflection";var se=(e,r,t,n)=>{if(!dt(e))return ae(e,r,n);let a=lt(e,t);return a?ae(a,r,n):null},
61
- ae=(e,r,t)=>ct(e)?oe(e,it(e),t):ot(e)?B(e)?oe(e,st(e),t):(t.push(new j(e.name,e.
62
- file)),null):(t.push(new E(r.file)),null),oe=(e,r,t)=>{let n=[];for(let a of r){
63
- if(!mt(a)||a.inherited)continue;let o=a.name,s=pt(a);switch(s){case"primary":case"\
64
- secondary":case"unique":case"ttl":n.push({name:o,columns:o.split(":"),type:s});break;default:
65
- return t.push(new P(o,e.file)),null}}return n};import{getReferenceType as Tt,isModelDeclaration as ft}from"@ez4/common/library";
66
- import{getObjectSchema as yt,isObjectSchema as xt}from"@ez4/schema/library";import{
67
- isTypeObject as gt,isTypeReference as Mt}from"@ez4/reflection";import{IncorrectTypeError as ut,InvalidTypeError as bt}from"@ez4/common/library";
68
- var k=class extends bt{constructor(r){super("Invalid table schema type",void 0,"\
69
- Database.Schema",r)}},R=class extends ut{constructor(t,n){super("Incorrect table\
70
- schema type",t,"Database.Schema",n);this.schemaType=t}};var le=(e,r,t,n)=>{if(!Mt(e))return ie(e,r,t,n);let a=Tt(e,t);return a?ie(a,r,t,
71
- n):null},ie=(e,r,t,n)=>gt(e)?pe(e,t):ft(e)?_(e)?pe(e,t):(n.push(new R(e.name,e.file)),
72
- null):(n.push(new k(r.file)),null),pe=(e,r)=>{let t=yt(e,r);return t&&xt(t)?t:null};import{InvalidServicePropertyError as Et,isModelDeclaration as jt,getLinkedVariableList as Pt,
73
- getModelMembers as Ot,getObjectMembers as kt,getPropertyNumber as Rt,getServiceListener as At,
74
- getReferenceType as wt}from"@ez4/common/library";import{isModelProperty as Ct,isTypeObject as zt,
75
- isTypeReference as Ut}from"@ez4/reflection";import{IncompleteTypeError as It,IncorrectTypeError as St,InvalidTypeError as Dt}from"@ez4/common/library";
76
- var A=class extends It{constructor(r,t){super("Incomplete table stream",r,t)}},w=class extends Dt{constructor(r){
77
- super("Invalid table stream type",void 0,"Database.Stream",r)}},C=class extends St{constructor(t,n){
78
- super("Incorrect table stream type",t,"Database.Stream",n);this.streamType=t}};import{IncompleteTypeError as ht}from"@ez4/common/library";var z=class extends ht{constructor(r,t){
79
- super("Incomplete stream handler",r,t)}};var me=(e,r,t)=>{if(!G(e))return null;let n={},a=new Set(["name","file","change"]);
80
- return e.description&&(n.description=e.description),(n.name=e.name)&&a.delete("n\
81
- ame"),(n.file=e.file)&&a.delete("file"),e.parameters&&a.delete("change"),a.size===
82
- 0&&vt(n)?n:(t.push(new z([...a],e.file)),null)},vt=e=>!!e.name&&!!e.file;var ue=(e,r,t,n)=>{if(!Ut(e))return ce(e,r,t,n);let a=wt(e,t);return a?ce(a,r,t,
83
- n):null},Nt=e=>!!e.handler,ce=(e,r,t,n)=>zt(e)?de(e,r,kt(e),t,n):jt(e)?J(e)?de(e,
84
- r,Ot(e),t,n):(n.push(new C(e.name,e.file)),null):(n.push(new w(r.file)),null),de=(e,r,t,n,a)=>{
85
- let o={},s=new Set(["handler"]);for(let i of t)if(!(!Ct(i)||i.inherited))switch(i.
86
- name){default:a.push(new Et(r.name,i.name,e.file));break;case"handler":o.handler=
87
- me(i.value,n,a);break;case"listener":o.listener=At(i.value,a);break;case"memory":case"\
88
- logRetention":case"timeout":o[i.name]=Rt(i);break;case"variables":o.variables=Pt(
89
- i,a);break}return Nt(o)?o:(a.push(new A([...s],e.file)),null)};var fe=(e,r,t,n)=>{if(!Bt(e))return be(e,r,t,n);let a=$t(e,t);return a?be(a,r,t,
90
- n):null},_t=e=>!!e.name&&!!e.schema&&!!e.indexes,be=(e,r,t,n)=>$(e)?Te(e,r,Ft(e),
91
- t,n):Qt(e)?Te(e,r,qt(e),t,n):null,Te=(e,r,t,n,a)=>{let o={},s=new Set(["name","s\
92
- chema","indexes"]);for(let p of t)if(!(!Gt(p)||p.inherited))switch(p.name){default:
93
- a.push(new Ht(r.name,p.name,e.file));break;case"name":(o.name=Vt(p))&&s.delete(p.
94
- name);break;case"schema":(o.schema=le(p.value,e,n,a))&&s.delete(p.name);break;case"\
95
- indexes":(o.indexes=se(p.value,e,n,a))&&s.delete(p.name);break;case"relations":o.
96
- relations=ne(p.value,e,n,a);break;case"stream":o.stream=ue(p.value,r,n,a);break}
97
- if(!_t(o))return a.push(new v([...s],e.file)),null;let i=Jt(e,o.indexes,o.schema);
98
- return i.length?(a.push(...i),null):o},Jt=(e,r,t)=>{let n=t.properties,a=[];for(let{
99
- name:o,columns:s}of r)s.some(p=>!n[p])&&a.push(new O(o,e.file));return a};var xe=e=>{let r={},t=[];for(let n in e){let a=e[n];if(!S(a)||Xt(a))continue;let o={
100
- type:H,extras:{}},s=new Set(["engine","tables"]),i=a.file;o.name=a.name;for(let l of er(
101
- a))if(!(!tr(l)||l.inherited))switch(l.name){default:t.push(new Wt(o.name,l.name,
102
- i));break;case"client":break;case"scalability":(o.scalability=X(l.value,a,e,t))&&
103
- s.delete(l.name);break;case"engine":(o.engine=L(l.value,a,e,t))&&s.delete(l.name);
104
- break;case"tables":(o.tables=nr(l,a,e,t))&&s.delete(l.name);break;case"variables":
105
- o.variables=Zt(l,t);break;case"services":o.services=Yt(l,e,t);break}if(!rr(o)){t.
106
- push(new b([...s],i));continue}let p=ar(a,o.tables);if(p.length){t.push(...p);continue}
107
- if(r[a.name]){t.push(new Kt(a.name,i));continue}r[a.name]=o}return{services:r,errors:t}},
108
- rr=e=>!!e.name&&!!e.tables&&!!e.extras,nr=(e,r,t,n)=>{let a=Lt(e)??[],o=[];for(let s of a){
109
- let i=fe(s,r,t,n);i&&o.push(i)}return o},ar=(e,r)=>{let t=or(r),n=[];for(let{relations:a,
110
- schema:o,indexes:s}of r){if(!a)continue;let i=o.properties;for(let p of a){let{sourceTable:l,
111
- sourceColumn:c,targetColumn:U,targetAlias:q}=p;i[U]||n.push(new d(U,e.file)),i[q]&&
112
- n.push(new g(q,e.file));let N=t[l]?.schema.properties;N||n.push(new x(l,e.file)),
113
- N&&!N[c]&&n.push(new d(c,e.file));let Ie=t[l]?.indexes??[];p.sourceIndex=ye(Ie,c),
114
- p.targetIndex=ye(s,U)}}return n},ye=(e,r)=>e.find(({name:t})=>t===r)?.type,or=e=>e.
115
- reduce((r,t)=>({...r,[t.name]:t}),{});var ge=e=>S(e)?e.name:null;var Me=!1,sa=()=>{Me||(sr(),ir(),pr("@ez4/database",{"metadata:getServices":xe,"\
116
- metadata:getLinkedService":ge}),Me=!0)};export{h as IncompleteEngineError,z as IncompleteHandlerError,I as IncompleteScalabilityError,
117
- b as IncompleteServiceError,A as IncompleteStreamError,v as IncompleteTableError,
118
- j as IncorrectIndexesTypeError,f as IncorrectRelationsTypeError,R as IncorrectSchemaTypeError,
119
- C as IncorrectStreamTypeError,O as InvalidIndexReferenceError,P as InvalidIndexTypeError,
120
- E as InvalidIndexesTypeError,g as InvalidRelationAliasError,d as InvalidRelationColumnError,
121
- x as InvalidRelationTableError,y as InvalidRelationTargetError,T as InvalidRelationsTypeError,
122
- k as InvalidSchemaTypeError,w as InvalidStreamTypeError,H as ServiceType,xe as getDatabaseServices,
123
- fe as getDatabaseTable,le as getTableSchema,lr as isDatabaseService,sa as registerTriggers};
10
+ t}static{a(this,"InvalidRelationTargetError")}},g=class extends I{constructor(t,n){
11
+ super(`Relation table ${t} don't exists.`,n);this.relationTable=t}static{a(this,
12
+ "InvalidRelationTableError")}},u=class extends I{constructor(t,n){super(`Relatio\
13
+ n column ${t} don't exists.`,n);this.relationColumn=t}static{a(this,"InvalidRela\
14
+ tionColumnError")}},M=class extends I{constructor(t,n){super(`Relation alias ${t}\
15
+ can't override table columns.`,n);this.relationAlias=t}static{a(this,"InvalidRe\
16
+ lationAliasError")}};import{InvalidServicePropertyError as Re,getModelMembers as Ae,getPropertyNumber as we,
17
+ getObjectMembers as Ce,getReferenceType as ze}from"@ez4/common/library";import{isModelProperty as Ue,
18
+ isTypeObject as Ne,isTypeReference as He}from"@ez4/reflection";import{isAnyNumber as q}from"@ez4/utils";import{IncompleteTypeError as je}from"@ez4/common/library";var S=class extends je{static{a(this,"IncompleteScalabilityError")}constructor(r,t){
19
+ super("Incomplete database scalability",r,t)}};import{hasHeritageType as c,isClassDeclaration as Pe,isModelDeclaration as $}from"@ez4/common/library";
20
+ import{isTypeCallback as Oe,isTypeFunction as ke}from"@ez4/reflection";var D=a(e=>Pe(e)&&c(e,"Database.Service"),"isDatabaseService"),h=a(e=>$(e)&&c(e,
21
+ "Database.Engine"),"isDatabaseEngine"),G=a(e=>$(e)&&c(e,"Database.Table"),"isDat\
22
+ abaseTable"),Q=a(e=>Oe(e)||ke(e),"isStreamHandler"),B=a(e=>c(e,"Database.Relatio\
23
+ ns"),"isTableRelations"),_=a(e=>c(e,"Database.Indexes"),"isTableIndexes"),J=a(e=>c(
24
+ e,"Database.Schema"),"isTableSchema"),K=a(e=>c(e,"Database.Stream"),"isTableStre\
25
+ am");var Y=a((e,r,t,n)=>{if(!He(e))return W(e,r,n);let o=ze(e,t);return o?W(o,r,n):null},
26
+ "getDatabaseScalability"),Fe=a(e=>q(e.minCapacity)&&q(e.maxCapacity),"isValidSca\
27
+ lability"),W=a((e,r,t)=>h(e)?X(e,r,Ae(e),t):Ne(e)?X(e,r,Ce(e),t):null,"getTypeSc\
28
+ alability"),X=a((e,r,t,n)=>{let o={},s=new Set(["minCapacity","maxCapacity"]);for(let i of t)
29
+ if(!(!Ue(i)||i.inherited))switch(i.name){default:n.push(new Re(r.name,i.name,e.file));
30
+ break;case"minCapacity":case"maxCapacity":let p=we(i);q(p)&&(o[i.name]=p,s.delete(
31
+ i.name));break}return Fe(o)?o:(n.push(new S([...s],e.file)),null)},"getTypeFromM\
32
+ embers");import{isModelProperty as Ve,isTypeObject as $e,isTypeReference as Ge}from"@ez4/reflection";
33
+ import{InvalidServicePropertyError as Qe,getModelMembers as Be,getObjectMembers as _e,
34
+ getPropertyString as Je,getPropertyStringIn as b,getReferenceType as Ke}from"@ez4/common/library";import{IncompleteTypeError as qe}from"@ez4/common/library";var v=class extends qe{static{a(this,"IncompleteEngineError")}constructor(r,t){super(
35
+ "Incomplete database engine",r,t)}};var ee=a((e,r,t,n)=>{if(!Ge(e))return Z(e,r,n);let o=Ke(e,t);return o?Z(o,r,n):null},
36
+ "getDatabaseEngine"),We=a(e=>!!e.name&&!!e.parametersMode&&!!e.transactionMode&&
37
+ !!e.insensitiveMode&&!!e.paginationMode&&!!e.orderMode,"isValidEngine"),Z=a((e,r,t)=>h(
38
+ e)?L(e,r,Be(e),t):$e(e)?L(e,r,_e(e),t):null,"getTypeEngine"),L=a((e,r,t,n)=>{let o={},
39
+ s=new Set(["name","parametersMode","transactionMode","insensitiveMode","paginati\
40
+ onMode","orderMode"]);for(let i of t)if(!(!Ve(i)||i.inherited))switch(i.name){default:
41
+ n.push(new Qe(r.name,i.name,e.file));break;case"name":(o.name=Je(i))&&s.delete(i.
42
+ name);break;case"parametersMode":(o.parametersMode=b(i,["index","both"]))&&s.delete(
43
+ i.name);break;case"transactionMode":(o.transactionMode=b(i,["static","interactiv\
44
+ e"]))&&s.delete(i.name);break;case"insensitiveMode":(o.insensitiveMode=b(i,["uns\
45
+ upported","enabled"]))&&s.delete(i.name);break;case"paginationMode":(o.paginationMode=
46
+ b(i,["cursor","offset"]))&&s.delete(i.name);break;case"orderMode":(o.orderMode=b(
47
+ i,["any","index"]))&&s.delete(i.name);break}return We(o)?o:(n.push(new v([...s],
48
+ e.file)),null)},"getTypeFromMembers");import{InvalidServicePropertyError as qt,getModelMembers as Vt,getObjectMembers as $t,
49
+ getPropertyString as Gt,getReferenceType as Qt}from"@ez4/common/library";import{
50
+ isModelProperty as Bt,isTypeObject as _t,isTypeReference as Jt}from"@ez4/reflection";import{IncompleteTypeError as Xe}from"@ez4/common/library";var E=class extends Xe{static{a(this,"IncompleteTableError")}constructor(r,t){super(
51
+ "Incomplete database table",r,t)}};import{IncorrectTypeError as Ye,InvalidTypeError as Ze,TypeError as te}from"@ez4/common/library";var j=class extends Ze{static{a(this,"InvalidIndexesTypeError")}constructor(r){super(
52
+ "Invalid table indexes type",void 0,"Database.Indexes",r)}},P=class extends Ye{constructor(t,n){
53
+ super("Incorrect table indexes type",t,"Database.Indexes",n);this.schemaType=t}static{
54
+ a(this,"IncorrectIndexesTypeError")}},O=class extends te{constructor(t,n){super(
55
+ `Invalid index type, ${t} must follow one of the Index options.`,n);this.indexName=
56
+ t}static{a(this,"InvalidIndexTypeError")}},k=class extends te{constructor(t,n){super(
57
+ `Invalid index reference, ${t} must be valid column.`,n);this.indexName=t}static{
58
+ a(this,"InvalidIndexReferenceError")}};import{isModelDeclaration as Le,getModelMembers as et,getObjectMembers as tt,getPropertyString as rt,
59
+ getReferenceType as nt}from"@ez4/common/library";import{isModelProperty as at,isTypeObject as ot,
60
+ isTypeReference as st}from"@ez4/reflection";var ae=a((e,r,t,n)=>{if(!st(e))return re(e,r,n);let o=nt(e,t);return o?re(o,r,n):
61
+ null},"getTableRelations"),re=a((e,r,t)=>ot(e)?ne(e,tt(e),t):Le(e)?B(e)?ne(e,et(
62
+ e),t):(t.push(new y(e.name,e.file)),null):(t.push(new f(r.file)),null),"getTypeR\
63
+ elations"),ne=a((e,r,t)=>{let n=[];for(let o of r){if(!at(o)||o.inherited)continue;
64
+ let s=rt(o),i=o.name;if(!s)return t.push(new x(i,e.file)),null;let[p,l]=i.split(
65
+ "@",2),[m,d]=s.split(":",2);n.push({sourceTable:m,sourceColumn:d,targetColumn:p,
66
+ targetAlias:l})}return n},"getTypeFromMembers");import{isModelDeclaration as it,getModelMembers as pt,getObjectMembers as lt,getPropertyString as mt,
67
+ getReferenceType as ct}from"@ez4/common/library";import{isModelProperty as dt,isTypeObject as ut,
68
+ isTypeReference as bt}from"@ez4/reflection";var ie=a((e,r,t,n)=>{if(!bt(e))return oe(e,r,n);let o=ct(e,t);return o?oe(o,r,n):
69
+ null},"getTableIndexes"),oe=a((e,r,t)=>ut(e)?se(e,lt(e),t):it(e)?_(e)?se(e,pt(e),
70
+ t):(t.push(new P(e.name,e.file)),null):(t.push(new j(r.file)),null),"getTypeInde\
71
+ xes"),se=a((e,r,t)=>{let n=[];for(let o of r){if(!dt(o)||o.inherited)continue;let s=o.
72
+ name,i=mt(o);switch(i){case"primary":case"secondary":case"unique":case"ttl":n.push(
73
+ {name:s,columns:s.split(":"),type:i});break;default:return t.push(new O(s,e.file)),
74
+ null}}return n},"getTypeFromMembers");import{getReferenceType as yt,isModelDeclaration as xt}from"@ez4/common/library";
75
+ import{getObjectSchema as gt,isObjectSchema as Mt}from"@ez4/schema/library";import{
76
+ isTypeObject as It,isTypeReference as St}from"@ez4/reflection";import{IncorrectTypeError as Tt,InvalidTypeError as ft}from"@ez4/common/library";var R=class extends ft{static{a(this,"InvalidSchemaTypeError")}constructor(r){super(
77
+ "Invalid table schema type",void 0,"Database.Schema",r)}},A=class extends Tt{constructor(t,n){
78
+ super("Incorrect table schema type",t,"Database.Schema",n);this.schemaType=t}static{
79
+ a(this,"IncorrectSchemaTypeError")}};var me=a((e,r,t,n)=>{if(!St(e))return pe(e,r,t,n);let o=yt(e,t);return o?pe(o,r,
80
+ t,n):null},"getTableSchema"),pe=a((e,r,t,n)=>It(e)?le(e,t):xt(e)?J(e)?le(e,t):(n.
81
+ push(new A(e.name,e.file)),null):(n.push(new R(r.file)),null),"getTypeSchema"),le=a(
82
+ (e,r)=>{let t=gt(e,r);return t&&Mt(t)?t:null},"getSchema");import{InvalidServicePropertyError as Pt,isModelDeclaration as Ot,getLinkedVariableList as kt,
83
+ getModelMembers as Rt,getObjectMembers as At,getPropertyNumber as wt,getServiceListener as Ct,
84
+ getReferenceType as zt}from"@ez4/common/library";import{isModelProperty as Ut,isTypeObject as Nt,
85
+ isTypeReference as Ht}from"@ez4/reflection";import{IncompleteTypeError as Dt,IncorrectTypeError as ht,InvalidTypeError as vt}from"@ez4/common/library";var w=class extends Dt{static{a(this,"IncompleteStreamError")}constructor(r,t){super(
86
+ "Incomplete table stream",r,t)}},C=class extends vt{static{a(this,"InvalidStream\
87
+ TypeError")}constructor(r){super("Invalid table stream type",void 0,"Database.St\
88
+ ream",r)}},z=class extends ht{constructor(t,n){super("Incorrect table stream typ\
89
+ e",t,"Database.Stream",n);this.streamType=t}static{a(this,"IncorrectStreamTypeEr\
90
+ ror")}};import{IncompleteTypeError as Et}from"@ez4/common/library";var U=class extends Et{static{a(this,"IncompleteHandlerError")}constructor(r,t){
91
+ super("Incomplete stream handler",r,t)}};var ce=a((e,r,t)=>{if(!Q(e))return null;let n={},o=new Set(["name","file","chang\
92
+ e"]);return e.description&&(n.description=e.description),(n.name=e.name)&&o.delete(
93
+ "name"),(n.file=e.file)&&o.delete("file"),e.parameters&&o.delete("change"),o.size===
94
+ 0&&jt(n)?n:(t.push(new U([...o],e.file)),null)},"getStreamHandler"),jt=a(e=>!!e.
95
+ name&&!!e.file,"isValidHandler");var be=a((e,r,t,n)=>{if(!Ht(e))return de(e,r,t,n);let o=zt(e,t);return o?de(o,r,
96
+ t,n):null},"getTableStream"),Ft=a(e=>!!e.handler,"isValidStream"),de=a((e,r,t,n)=>Nt(
97
+ e)?ue(e,r,At(e),t,n):Ot(e)?K(e)?ue(e,r,Rt(e),t,n):(n.push(new z(e.name,e.file)),
98
+ null):(n.push(new C(r.file)),null),"getTypeStream"),ue=a((e,r,t,n,o)=>{let s={},
99
+ i=new Set(["handler"]);for(let p of t)if(!(!Ut(p)||p.inherited))switch(p.name){default:
100
+ o.push(new Pt(r.name,p.name,e.file));break;case"handler":s.handler=ce(p.value,n,
101
+ o);break;case"listener":s.listener=Ct(p.value,o);break;case"memory":case"logRete\
102
+ ntion":case"timeout":s[p.name]=wt(p);break;case"variables":s.variables=kt(p,o);break}
103
+ return Ft(s)?s:(o.push(new w([...i],e.file)),null)},"getTypeFromMembers");var ye=a((e,r,t,n)=>{if(!Jt(e))return Te(e,r,t,n);let o=Qt(e,t);return o?Te(o,r,
104
+ t,n):null},"getDatabaseTable"),Kt=a(e=>!!e.name&&!!e.schema&&!!e.indexes,"isVali\
105
+ dTable"),Te=a((e,r,t,n)=>G(e)?fe(e,r,Vt(e),t,n):_t(e)?fe(e,r,$t(e),t,n):null,"ge\
106
+ tTypeTable"),fe=a((e,r,t,n,o)=>{let s={},i=new Set(["name","schema","indexes"]);
107
+ for(let l of t)if(!(!Bt(l)||l.inherited))switch(l.name){default:o.push(new qt(r.
108
+ name,l.name,e.file));break;case"name":(s.name=Gt(l))&&i.delete(l.name);break;case"\
109
+ schema":(s.schema=me(l.value,e,n,o))&&i.delete(l.name);break;case"indexes":(s.indexes=
110
+ ie(l.value,e,n,o))&&i.delete(l.name);break;case"relations":s.relations=ae(l.value,
111
+ e,n,o);break;case"stream":s.stream=be(l.value,r,n,o);break}if(!Kt(s))return o.push(
112
+ new E([...i],e.file)),null;let p=Wt(e,s.indexes,s.schema);return p.length?(o.push(
113
+ ...p),null):s},"getTypeFromMembers"),Wt=a((e,r,t)=>{let n=t.properties,o=[];for(let{
114
+ name:s,columns:i}of r)i.some(l=>!n[l])&&o.push(new k(s,e.file));return o},"valid\
115
+ ateIndexes");var ge=a(e=>{let r={},t=[];for(let n in e){let o=e[n];if(!D(o)||Zt(o))continue;let s={
116
+ type:F,extras:{}},i=new Set(["engine","tables"]),p=o.file;s.name=o.name;for(let m of rr(
117
+ o))if(!(!nr(m)||m.inherited))switch(m.name){default:t.push(new Yt(s.name,m.name,
118
+ p));break;case"client":break;case"scalability":(s.scalability=Y(m.value,o,e,t))&&
119
+ i.delete(m.name);break;case"engine":(s.engine=ee(m.value,o,e,t))&&i.delete(m.name);
120
+ break;case"tables":(s.tables=or(m,o,e,t))&&i.delete(m.name);break;case"variables":
121
+ s.variables=er(m,t);break;case"services":s.services=Lt(m,e,t);break}if(!ar(s)){t.
122
+ push(new T([...i],p));continue}let l=sr(o,s.tables);if(l.length){t.push(...l);continue}
123
+ if(r[o.name]){t.push(new Xt(o.name,p));continue}r[o.name]=s}return{services:r,errors:t}},
124
+ "getDatabaseServices"),ar=a(e=>!!e.name&&!!e.tables&&!!e.extras,"isValidService"),
125
+ or=a((e,r,t,n)=>{let o=tr(e)??[],s=[];for(let i of o){let p=ye(i,r,t,n);p&&s.push(
126
+ p)}return s},"getAllTables"),sr=a((e,r)=>{let t=ir(r),n=[];for(let{relations:o,schema:s,
127
+ indexes:i}of r){if(!o)continue;let p=s.properties;for(let l of o){let{sourceTable:m,
128
+ sourceColumn:d,targetColumn:N,targetAlias:V}=l;p[N]||n.push(new u(N,e.file)),p[V]&&
129
+ n.push(new M(V,e.file));let H=t[m]?.schema.properties;H||n.push(new g(m,e.file)),
130
+ H&&!H[d]&&n.push(new u(d,e.file));let Se=t[m]?.indexes??[];l.sourceIndex=xe(Se,d),
131
+ l.targetIndex=xe(i,N)}}return n},"validateRelations"),xe=a((e,r)=>e.find(({name:t})=>t===
132
+ r)?.type,"getIndexType"),ir=a(e=>e.reduce((r,t)=>({...r,[t.name]:t}),{}),"getTab\
133
+ leMap");var Me=a(e=>D(e)?e.name:null,"getLinkedService");var Ie=!1,ka=a(()=>{Ie||(pr(),lr(),mr("@ez4/database",{"metadata:getServices":ge,
134
+ "metadata:getLinkedService":Me}),Ie=!0)},"registerTriggers");export{v as IncompleteEngineError,U as IncompleteHandlerError,S as IncompleteScalabilityError,
135
+ T as IncompleteServiceError,w as IncompleteStreamError,E as IncompleteTableError,
136
+ P as IncorrectIndexesTypeError,y as IncorrectRelationsTypeError,A as IncorrectSchemaTypeError,
137
+ z as IncorrectStreamTypeError,k as InvalidIndexReferenceError,O as InvalidIndexTypeError,
138
+ j as InvalidIndexesTypeError,M as InvalidRelationAliasError,u as InvalidRelationColumnError,
139
+ g as InvalidRelationTableError,x as InvalidRelationTargetError,f as InvalidRelationsTypeError,
140
+ R as InvalidSchemaTypeError,C as InvalidStreamTypeError,F as ServiceType,ge as getDatabaseServices,
141
+ ye as getDatabaseTable,me as getTableSchema,dr as isDatabaseService,ka as registerTriggers};
124
142
  //# sourceMappingURL=library.mjs.map
@@ -6,19 +6,19 @@ import type { PaginationUtils } from './pagination.js';
6
6
  import type { TableMetadata } from './table.js';
7
7
  import type { OrderUtils } from './order.js';
8
8
  import type { Database } from './database.js';
9
- import type { AnyObject, PartialProperties, PartialObject, FlatObject, OptionalObject, StrictObject, IsNullable, IsObjectEmpty, IsObject, IsArray } from '@ez4/utils';
9
+ import type { AnyObject, PartialProperties, PartialObject, FlatObject, OptionalObject, StrictObject, IsNullable, IsObjectEmpty, IsObject, IsArray, Prettify } from '@ez4/utils';
10
10
  /**
11
11
  * Query builder types.
12
12
  */
13
13
  export declare namespace Query {
14
14
  export type InsertOneInput<S extends AnyObject, T extends TableMetadata> = {
15
15
  select?: StrictSelectInput<S, T>;
16
- data: InsertDataInput<T>;
16
+ data: Prettify<InsertDataInput<T>>;
17
17
  };
18
18
  export type UpdateOneInput<S extends AnyObject, T extends TableMetadata> = {
19
19
  select?: StrictSelectInput<S, T>;
20
20
  include?: StrictIncludeInput<S, T>;
21
- data: OptionalObject<UpdateDataInput<T>>;
21
+ data: Prettify<OptionalObject<UpdateDataInput<T>>>;
22
22
  where: WhereInput<T, true>;
23
23
  };
24
24
  export type FindOneInput<S extends AnyObject, T extends TableMetadata> = {
@@ -29,8 +29,8 @@ export declare namespace Query {
29
29
  export type UpsertOneInput<S extends AnyObject, T extends TableMetadata> = {
30
30
  select?: StrictSelectInput<S, T>;
31
31
  include?: StrictIncludeInput<S, T>;
32
- update: OptionalObject<UpdateDataInput<T>>;
33
- insert: InsertDataInput<T>;
32
+ update: Prettify<OptionalObject<UpdateDataInput<T>>>;
33
+ insert: Prettify<InsertDataInput<T>>;
34
34
  where: WhereInput<T, true>;
35
35
  };
36
36
  export type DeleteOneInput<S extends AnyObject, T extends TableMetadata> = {
@@ -39,12 +39,12 @@ export declare namespace Query {
39
39
  where: WhereInput<T, true>;
40
40
  };
41
41
  export type InsertManyInput<T extends TableMetadata> = {
42
- data: T['schema'][];
42
+ data: Prettify<T['schema']>[];
43
43
  };
44
44
  export type UpdateManyInput<S extends AnyObject, T extends TableMetadata> = PaginationUtils.End<T['engine']> & {
45
45
  select?: StrictSelectInput<S, T>;
46
46
  include?: StrictIncludeInput<S, T>;
47
- data: OptionalObject<UpdateDataInput<T>>;
47
+ data: Prettify<OptionalObject<UpdateDataInput<T>>>;
48
48
  where?: WhereInput<T>;
49
49
  };
50
50
  export type FindManyInput<S extends AnyObject, T extends TableMetadata, C extends boolean> = PaginationUtils.Range<T['engine']> & {
@@ -76,11 +76,11 @@ export declare namespace Query {
76
76
  records: Record<S, T>[];
77
77
  });
78
78
  export type DeleteManyResult<S extends AnyObject, T extends TableMetadata> = Record<S, T>[];
79
- export type Record<S extends AnyObject, T extends TableMetadata> = S extends never ? undefined : PartialObject<SelectFields<T['schema'], T['relations']>, S, false>;
79
+ export type Record<S extends AnyObject, T extends TableMetadata> = S extends never ? undefined : PartialObject<SelectFields<T['schema'], T['relations']>, S>;
80
80
  export type SelectInput<T extends TableMetadata> = PartialProperties<SelectFields<T['schema'], T['relations']>>;
81
81
  export type StrictSelectInput<S extends AnyObject, T extends TableMetadata> = StrictObject<S, FlatObject<SelectFields<T['schema'], T['relations']>>>;
82
- export type InsertDataInput<T extends TableMetadata> = Omit<IsObjectEmpty<T['relations']['changes']> extends true ? T['schema'] : T['schema'] & T['relations']['changes'], T['relations']['indexes']>;
83
- export type UpdateDataInput<T extends TableMetadata> = AtomicDataInput<Omit<IsObjectEmpty<T['relations']['changes']> extends true ? T['schema'] : T['schema'] & FlatObject<T['relations']['changes']>, T['relations']['indexes']>>;
82
+ export type InsertDataInput<T extends TableMetadata> = IsObjectEmpty<T['relations']['changes']> extends false ? Omit<T['schema'] & T['relations']['changes'], T['relations']['indexes']> : T['schema'];
83
+ export type UpdateDataInput<T extends TableMetadata> = AtomicDataInput<IsObjectEmpty<T['relations']['changes']> extends false ? Omit<T['schema'] & FlatObject<T['relations']['changes']>, T['relations']['indexes']> : T['schema']>;
84
84
  export type OrderInput<T extends TableMetadata> = OrderUtils.Input<T>;
85
85
  export type StrictIncludeInput<S extends AnyObject, T extends TableMetadata> = IsObjectEmpty<T['relations']['filters']> extends true ? never : {
86
86
  [P in keyof T['relations']['filters']]?: P extends keyof S ? StrictIncludeRelation<T['relations']['filters'][P], T['engine']> : never;
@@ -90,11 +90,11 @@ export declare namespace Query {
90
90
  where?: WhereRelationField<V, E>;
91
91
  order?: StrictIncludeOrder<V>;
92
92
  };
93
- export type WhereInput<T extends TableMetadata, I extends boolean = false> = WhereInputFilters<T, I extends true ? T['indexes'] : {}> & {
93
+ export type WhereInput<T extends TableMetadata, I extends boolean = false> = Prettify<WhereInputFilters<T, I extends true ? T['indexes'] : {}> & {
94
94
  NOT?: WhereInput<T>;
95
95
  AND?: WhereInput<T>[];
96
96
  OR?: WhereInput<T>[];
97
- };
97
+ }>;
98
98
  type SelectFields<T extends Database.Schema, R extends RelationMetadata> = IsObjectEmpty<R['selects']> extends true ? T : T & R['selects'];
99
99
  type WhereOperations<V, E extends DatabaseEngine> = WhereNegate<V> | WhereEqual<V> | WhereGreaterThan<V> | WhereGreaterThanOrEqual<V> | WhereLessThan<V> | WhereLessThanOrEqual<V> | WhereIn<V> | WhereBetween<V> | WhereIsMissing | WhereIsNull | WhereStartsWith<E> | WhereContains<V, E>;
100
100
  type WhereField<V, E extends DatabaseEngine> = IsObject<V> extends false ? V | WhereOperations<V, E> : IsNullable<V> extends true ? null | WhereObjectField<NonNullable<V>, E> : WhereObjectField<NonNullable<V>, E>;
@@ -119,7 +119,7 @@ export declare namespace Query {
119
119
  [P in Exclude<keyof V, keyof WhereIndexFields<I>>]?: WhereField<V[P], T['engine']>;
120
120
  };
121
121
  type WhereCommonFilters<V extends AnyObject, T extends TableMetadata, I extends Database.Indexes> = IsObjectEmpty<I> extends true ? WhereObjectField<V, T['engine']> : WhereRequiredFilters<V, I> & WhereOptionalFilters<V, T, I>;
122
- type WhereInputFilters<T extends TableMetadata, I extends Database.Indexes> = WhereCommonFilters<T['schema'], T, I> & WhereRelationFilters<T['relations']['filters'], T['engine']>;
122
+ type WhereInputFilters<T extends TableMetadata, I extends Database.Indexes> = WhereCommonFilters<T['schema'], T, I> & (IsObjectEmpty<T['relations']['filters']> extends false ? WhereRelationFilters<T['relations']['filters'], T['engine']> : {});
123
123
  export type WhereOperators = keyof (WhereNegate<any> & WhereEqual<any> & WhereGreaterThan<any> & WhereGreaterThanOrEqual<any> & WhereLessThan<any> & WhereLessThanOrEqual<any> & WhereIn<any> & WhereBetween<any> & WhereIsMissing & WhereIsNull & WhereStartsWith<never> & WhereContains<any, never>);
124
124
  type WhereNegate<V> = {
125
125
  not: V;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ez4/database",
3
3
  "description": "EZ4: Components to build database services",
4
- "version": "0.21.0",
4
+ "version": "0.22.0",
5
5
  "author": "Silas B.",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -14,7 +14,7 @@
14
14
  "directory": "packages/database"
15
15
  },
16
16
  "engines": {
17
- "node": ">=22.3.0"
17
+ "node": ">=22.7"
18
18
  },
19
19
  "exports": {
20
20
  ".": {
@@ -42,10 +42,10 @@
42
42
  "live:publish": "npm run test && npm publish --access public"
43
43
  },
44
44
  "dependencies": {
45
- "@ez4/common": "^0.21.0",
46
- "@ez4/project": "^0.21.0",
47
- "@ez4/reflection": "^0.21.0",
48
- "@ez4/schema": "^0.21.0",
49
- "@ez4/utils": "^0.21.0"
45
+ "@ez4/common": "^0.22.0",
46
+ "@ez4/project": "^0.22.0",
47
+ "@ez4/reflection": "^0.22.0",
48
+ "@ez4/schema": "^0.22.0",
49
+ "@ez4/utils": "^0.22.0"
50
50
  }
51
51
  }