@ez4/database 0.29.0 → 0.31.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,148 +1,149 @@
1
- "use strict";var X=Object.defineProperty;var Ye=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Le=Object.prototype.hasOwnProperty;var o=(e,r)=>X(e,"name",{value:r,configurable:!0});var et=(e,r)=>{for(var t in r)X(e,t,{get:r[t],enumerable:!0})},tt=(e,r,t,a)=>{if(r&&
2
- typeof r=="object"||typeof r=="function")for(let n of Ze(r))!Le.call(e,n)&&n!==t&&
3
- X(e,n,{get:()=>r[n],enumerable:!(a=Ye(r,n))||a.enumerable});return e};var rt=e=>tt(X({},"__esModule",{value:!0}),e);var Tt={};et(Tt,{IncompleteEngineError:()=>H,IncompleteHandlerError:()=>W,IncompleteScalabilityError:()=>N,
4
- IncompleteServiceError:()=>A,IncompleteStreamError:()=>_,IncompleteTableError:()=>F,
5
- IncorrectIndexesTypeError:()=>V,IncorrectRelationsTypeError:()=>j,IncorrectSchemaTypeError:()=>B,
6
- IncorrectStreamTypeError:()=>K,Index:()=>ie,InvalidIndexReferenceError:()=>G,InvalidIndexTypeError:()=>$,
7
- InvalidIndexesTypeError:()=>q,InvalidRelationAliasError:()=>z,InvalidRelationColumnError:()=>I,
8
- InvalidRelationTableError:()=>U,InvalidRelationTargetError:()=>C,InvalidRelationsTypeError:()=>w,
9
- InvalidSchemaTypeError:()=>Q,InvalidStreamTypeError:()=>J,ServiceType:()=>Y,getDatabaseServices:()=>me,
10
- getDatabaseTable:()=>le,getTableSchema:()=>pe,isDatabaseService:()=>nt,registerTriggers:()=>bt});
11
- module.exports=rt(Tt);var Je=require("@ez4/common/library"),Ke=require("@ez4/schema/library"),We=require("@ez4/project/library");var u=require("@ez4/common/library"),Qe=require("@ez4/reflection");var Y="@ez4/database",nt=o(e=>e.type===Y,"isDatabaseService");var de=require("@ez4/common/library");var A=class extends de.IncompleteTypeError{static{o(this,"IncompleteServiceError")}constructor(r,t){
12
- super("Incomplete database service",r,t)}};var g=require("@ez4/common/library");var w=class extends g.InvalidTypeError{static{o(this,"InvalidRelationsTypeError")}constructor(r){
13
- super("Invalid table relations type",void 0,"Database.Relations",r)}},j=class extends g.IncorrectTypeError{constructor(t,a){
14
- super("Incorrect table relations type",t,"Database.Relations",a);this.schemaType=
15
- t}static{o(this,"IncorrectRelationsTypeError")}},C=class extends g.TypeError{constructor(t,a){
16
- super(`Target ${t} must follow the pattern 'column@alias'.`,a);this.relationSource=
17
- t}static{o(this,"InvalidRelationTargetError")}},U=class extends g.TypeError{constructor(t,a){
18
- super(`Relation table ${t} don't exists.`,a);this.relationTable=t}static{o(this,
19
- "InvalidRelationTableError")}},I=class extends g.TypeError{constructor(t,a){super(
20
- `Relation column ${t} don't exists.`,a);this.relationColumn=t}static{o(this,"Inv\
21
- alidRelationColumnError")}},z=class extends g.TypeError{constructor(t,a){super(`\
22
- Relation alias ${t} can't override table columns.`,a);this.relationAlias=t}static{
23
- o(this,"InvalidRelationAliasError")}};var T=require("@ez4/common/library"),S=require("@ez4/reflection"),te=require("@ez4/utils");var ue=require("@ez4/common/library");var N=class extends ue.IncompleteTypeError{static{o(this,"IncompleteScalabilityE\
24
- rror")}constructor(r,t){super("Incomplete database scalability",r,t)}};var b=require("@ez4/common/library"),Z=require("@ez4/reflection");var L=o(e=>(0,b.isClassDeclaration)(e)&&(0,b.hasHeritageType)(e,"Database.Servic\
25
- e"),"isDatabaseService"),ee=o(e=>(0,b.isModelDeclaration)(e)&&(0,b.hasHeritageType)(
26
- e,"Database.Engine"),"isDatabaseEngine"),be=o(e=>(0,b.isModelDeclaration)(e)&&(0,b.hasHeritageType)(
27
- e,"Database.Table"),"isDatabaseTable"),Te=o(e=>(0,Z.isTypeCallback)(e)||(0,Z.isTypeFunction)(
28
- e),"isStreamHandler"),ye=o(e=>(0,b.hasHeritageType)(e,"Database.Relations"),"isT\
29
- ableRelations"),fe=o(e=>(0,b.hasHeritageType)(e,"Database.Indexes"),"isTableInde\
30
- xes"),xe=o(e=>(0,b.hasHeritageType)(e,"Database.Schema"),"isTableSchema"),ge=o(e=>(0,b.hasHeritageType)(
31
- e,"Database.Stream"),"isTableStream");var Se=o((e,r,t,a)=>{if(!(0,S.isTypeReference)(e))return Me(e,r,a);let n=(0,T.getReferenceType)(
32
- e,t);return n?Me(n,r,a):null},"getDatabaseScalability"),at=o(e=>(0,te.isAnyNumber)(
33
- e.minCapacity)&&(0,te.isAnyNumber)(e.maxCapacity),"isValidScalability"),Me=o((e,r,t)=>ee(
34
- e)?Ie(e,r,(0,T.getModelMembers)(e),t):(0,S.isTypeObject)(e)?Ie(e,r,(0,T.getObjectMembers)(
35
- e),t):null,"getTypeScalability"),Ie=o((e,r,t,a)=>{let n={},s=new Set(["minCapaci\
36
- ty","maxCapacity"]);for(let i of t)if(!(!(0,S.isModelProperty)(i)||i.inherited))
37
- switch(i.name){default:a.push(new T.InvalidServicePropertyError(r.name,i.name,e.
38
- file));break;case"minCapacity":case"maxCapacity":let p=(0,T.getPropertyNumber)(i);
39
- (0,te.isAnyNumber)(p)&&(n[i.name]=p,s.delete(i.name));break}return at(n)?n:(a.push(
40
- new N([...s],e.file)),null)},"getTypeFromMembers");var D=require("@ez4/reflection"),c=require("@ez4/common/library");var De=require("@ez4/common/library");var H=class extends De.IncompleteTypeError{static{o(this,"IncompleteEngineError")}constructor(r,t){
41
- super("Incomplete database engine",r,t)}};var Ee=o((e,r,t,a)=>{if(!(0,D.isTypeReference)(e))return he(e,r,a);let n=(0,c.getReferenceType)(
42
- e,t);return n?he(n,r,a):null},"getDatabaseEngine"),ot=o(e=>!!e.name&&!!e.parametersMode&&
1
+ "use strict";var X=Object.defineProperty;var Ye=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Le=Object.prototype.hasOwnProperty;var a=(e,t)=>X(e,"name",{value:t,configurable:!0});var er=(e,t)=>{for(var r in t)X(e,r,{get:t[r],enumerable:!0})},rr=(e,t,r,n)=>{if(t&&
2
+ typeof t=="object"||typeof t=="function")for(let o of Ze(t))!Le.call(e,o)&&o!==r&&
3
+ X(e,o,{get:()=>t[o],enumerable:!(n=Ye(t,o))||n.enumerable});return e};var tr=e=>rr(X({},"__esModule",{value:!0}),e);var br={};er(br,{IncompleteEngineError:()=>F,IncompleteHandlerError:()=>W,IncompleteScalabilityError:()=>H,
4
+ IncompleteServiceError:()=>j,IncompleteStreamError:()=>J,IncompleteTableError:()=>U,
5
+ IncorrectIndexesTypeError:()=>$,IncorrectRelationsTypeError:()=>R,IncorrectSchemaTypeError:()=>G,
6
+ IncorrectStreamTypeError:()=>Q,Index:()=>Oe,InvalidIndexReferenceError:()=>_,InvalidIndexTypeError:()=>q,
7
+ InvalidIndexesTypeError:()=>V,InvalidRelationAliasError:()=>N,InvalidRelationColumnError:()=>S,
8
+ InvalidRelationTableError:()=>C,InvalidRelationTargetError:()=>z,InvalidRelationsTypeError:()=>A,
9
+ InvalidSchemaTypeError:()=>B,InvalidStreamTypeError:()=>K,ServiceType:()=>Y,getDatabaseServices:()=>me,
10
+ getDatabaseTable:()=>pe,getTableSchema:()=>ie,isDatabaseService:()=>or,registerTriggers:()=>ur});
11
+ module.exports=tr(br);var Ke=require("@ez4/common/library"),Qe=require("@ez4/schema/library"),We=require("@ez4/project/library");var f=require("@ez4/common/library"),Be=require("@ez4/reflection");var Y="@ez4/database",or=a(e=>e.type===Y,"isDatabaseService");var le=require("@ez4/common/library");var j=class extends le.IncompleteTypeError{static{a(this,"IncompleteServiceError")}constructor(t,r){
12
+ super("Incomplete database service",t,r)}};var g=require("@ez4/common/library");var A=class extends g.InvalidTypeError{static{a(this,"InvalidRelationsTypeError")}constructor(t){
13
+ super("Invalid table relations type",void 0,"Database.Relations",t)}},R=class extends g.IncorrectTypeError{constructor(r,n){
14
+ super("Incorrect table relations type",r,"Database.Relations",n);this.schemaType=
15
+ r}static{a(this,"IncorrectRelationsTypeError")}},z=class extends g.TypeError{constructor(r,n){
16
+ super(`Target ${r} must follow the pattern 'column@alias'.`,n);this.relationSource=
17
+ r}static{a(this,"InvalidRelationTargetError")}},C=class extends g.TypeError{constructor(r,n){
18
+ super(`Relation table ${r} don't exists.`,n);this.relationTable=r}static{a(this,
19
+ "InvalidRelationTableError")}},S=class extends g.TypeError{constructor(r,n){super(
20
+ `Relation column ${r} don't exists.`,n);this.relationColumn=r}static{a(this,"Inv\
21
+ alidRelationColumnError")}},N=class extends g.TypeError{constructor(r,n){super(`\
22
+ Relation alias ${r} can't override table columns.`,n);this.relationAlias=r}static{
23
+ a(this,"InvalidRelationAliasError")}};var b=require("@ez4/common/library"),I=require("@ez4/reflection"),re=require("@ez4/utils");var de=require("@ez4/common/library");var H=class extends de.IncompleteTypeError{static{a(this,"IncompleteScalabilityE\
24
+ rror")}constructor(t,r){super("Incomplete database scalability",t,r)}};var u=require("@ez4/common/library"),Z=require("@ez4/reflection");var L=a(e=>(0,u.isClassDeclaration)(e)&&(0,u.hasHeritageType)(e,"Database.Servic\
25
+ e"),"isDatabaseService"),ee=a(e=>(0,u.isModelDeclaration)(e)&&(0,u.hasHeritageType)(
26
+ e,"Database.Engine"),"isDatabaseEngine"),fe=a(e=>(0,u.isModelDeclaration)(e)&&(0,u.hasHeritageType)(
27
+ e,"Database.Table"),"isDatabaseTable"),ue=a(e=>(0,Z.isTypeCallback)(e)||(0,Z.isTypeFunction)(
28
+ e),"isStreamHandler"),be=a(e=>(0,u.hasHeritageType)(e,"Database.Relations"),"isT\
29
+ ableRelations"),Te=a(e=>(0,u.hasHeritageType)(e,"Database.Indexes"),"isTableInde\
30
+ xes"),ye=a(e=>(0,u.hasHeritageType)(e,"Database.Schema"),"isTableSchema"),xe=a(e=>(0,u.hasHeritageType)(
31
+ e,"Database.Stream"),"isTableStream");var Se=a((e,t,r,n)=>{if(!(0,I.isTypeReference)(e))return ge(e,t,n);let o=(0,b.getReferenceType)(
32
+ e,r);if(o)return ge(o,t,n)},"getDatabaseScalability"),nr=a(e=>(0,re.isAnyNumber)(
33
+ e.minCapacity)&&(0,re.isAnyNumber)(e.maxCapacity),"isValidScalability"),ge=a((e,t,r)=>{
34
+ if(ee(e))return Me(e,t,(0,b.getModelMembers)(e),r);if((0,I.isTypeObject)(e))return Me(
35
+ e,t,(0,b.getObjectMembers)(e),r)},"getTypeScalability"),Me=a((e,t,r,n)=>{let o={},
36
+ s=new Set(["minCapacity","maxCapacity"]);for(let i of r)if(!(!(0,I.isModelProperty)(
37
+ i)||i.inherited))switch(i.name){default:n.push(new b.InvalidServicePropertyError(
38
+ t.name,i.name,e.file));break;case"minCapacity":case"maxCapacity":let p=(0,b.getPropertyNumber)(
39
+ i);(0,re.isAnyNumber)(p)&&(o[i.name]=p,s.delete(i.name));break}if(!nr(o)){n.push(
40
+ new H([...s],e.file));return}return o},"getTypeFromMembers");var h=require("@ez4/reflection"),l=require("@ez4/common/library");var Ie=require("@ez4/common/library");var F=class extends Ie.IncompleteTypeError{static{a(this,"IncompleteEngineError")}constructor(t,r){
41
+ super("Incomplete database engine",t,r)}};var ve=a((e,t,r,n)=>{if(!(0,h.isTypeReference)(e))return he(e,t,n);let o=(0,l.getReferenceType)(
42
+ e,r);if(o)return he(o,t,n)},"getDatabaseEngine"),ar=a(e=>!!e.name&&!!e.parametersMode&&
43
43
  !!e.transactionMode&&!!e.insensitiveMode&&!!e.paginationMode&&!!e.orderMode,"isV\
44
- alidEngine"),he=o((e,r,t)=>ee(e)?ve(e,r,(0,c.getModelMembers)(e),t):(0,D.isTypeObject)(
45
- e)?ve(e,r,(0,c.getObjectMembers)(e),t):null,"getTypeEngine"),ve=o((e,r,t,a)=>{let n={},
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:a.push(new c.InvalidServicePropertyError(r.name,i.name,e.
49
- file));break;case"name":(n.name=(0,c.getPropertyString)(i))&&s.delete(i.name);break;case"\
50
- parametersMode":(n.parametersMode=(0,c.getPropertyStringIn)(i,["index","both"]))&&
51
- s.delete(i.name);break;case"transactionMode":(n.transactionMode=(0,c.getPropertyStringIn)(
52
- i,["static","interactive"]))&&s.delete(i.name);break;case"insensitiveMode":(n.insensitiveMode=
53
- (0,c.getPropertyStringIn)(i,["unsupported","enabled"]))&&s.delete(i.name);break;case"\
54
- paginationMode":(n.paginationMode=(0,c.getPropertyStringIn)(i,["cursor","offset"]))&&
55
- s.delete(i.name);break;case"orderMode":(n.orderMode=(0,c.getPropertyStringIn)(i,
56
- ["any","index"]))&&s.delete(i.name);break;case"lockMode":(n.lockMode=(0,c.getPropertyStringIn)(
57
- i,["unsupported","supported"]))&&s.delete(i.name);break}return ot(n)?n:(a.push(new H(
58
- [...s],e.file)),null)},"getTypeFromMembers");var x=require("@ez4/common/library"),k=require("@ez4/reflection");var Pe=require("@ez4/common/library");var F=class extends Pe.IncompleteTypeError{static{o(this,"IncompleteTableError")}constructor(r,t){
59
- super("Incomplete database table",r,t)}};var M=require("@ez4/common/library");var q=class extends M.InvalidTypeError{static{o(this,"InvalidIndexesTypeError")}constructor(r){
60
- super("Invalid table indexes type",void 0,"Database.Indexes",r)}},V=class extends M.IncorrectTypeError{constructor(t,a){
61
- super("Incorrect table indexes type",t,"Database.Indexes",a);this.schemaType=t}static{
62
- o(this,"IncorrectIndexesTypeError")}},$=class extends M.TypeError{constructor(t,a){
63
- super(`Invalid index type, ${t} must follow one of the Index options.`,a);this.indexName=
64
- t}static{o(this,"InvalidIndexTypeError")}},G=class extends M.TypeError{constructor(t,a){
65
- super(`Invalid index reference, ${t} must be valid column.`,a);this.indexName=t}static{
66
- o(this,"InvalidIndexReferenceError")}};var y=require("@ez4/common/library"),h=require("@ez4/reflection");var Re=o((e,r,t,a)=>{if(!(0,h.isTypeReference)(e))return Oe(e,r,a);let n=(0,y.getReferenceType)(
67
- e,t);return n?Oe(n,r,a):null},"getTableRelations"),Oe=o((e,r,t)=>(0,h.isTypeObject)(
68
- e)?ke(e,(0,y.getObjectMembers)(e),t):(0,y.isModelDeclaration)(e)?ye(e)?ke(e,(0,y.getModelMembers)(
69
- e),t):(t.push(new j(e.name,e.file)),null):(t.push(new w(r.file)),null),"getTypeR\
70
- elations"),ke=o((e,r,t)=>{let a=[];for(let n of r){if(!(0,h.isModelProperty)(n)||
71
- n.inherited)continue;let s=(0,y.getPropertyString)(n),i=n.name;if(!s)return t.push(
72
- new C(i,e.file)),null;let[p,l]=i.split("@",2),[m,R]=s.split(":",2);a.push({sourceTable:m,
73
- sourceColumn:R,targetColumn:p,targetAlias:l})}return a},"getTypeFromMembers");var f=require("@ez4/common/library"),v=require("@ez4/reflection");var ie=(n=>(n.Primary="primary",n.Secondary="secondary",n.Unique="unique",n.TTL=
74
- "ttl",n))(ie||{});var je=o((e,r,t,a)=>{if(!(0,v.isTypeReference)(e))return Ae(e,r,a);let n=(0,f.getReferenceType)(
75
- e,t);return n?Ae(n,r,a):null},"getTableIndexes"),Ae=o((e,r,t)=>(0,v.isTypeObject)(
76
- e)?we(e,(0,f.getObjectMembers)(e),t):(0,f.isModelDeclaration)(e)?fe(e)?we(e,(0,f.getModelMembers)(
77
- e),t):(t.push(new V(e.name,e.file)),null):(t.push(new q(r.file)),null),"getTypeI\
78
- ndexes"),we=o((e,r,t)=>{let a=[];for(let n of r){if(!(0,v.isModelProperty)(n)||n.
79
- inherited)continue;let s=n.name,i=(0,f.getPropertyString)(n);switch(i){case"prim\
80
- ary":case"secondary":case"unique":case"ttl":a.push({name:s,columns:s.split(":"),
81
- type:i});break;default:return t.push(new $(s,e.file)),null}}return a},"getTypeFr\
82
- omMembers");var E=require("@ez4/schema/library"),ne=require("@ez4/common/library"),ae=require("@ez4/reflection");var re=require("@ez4/common/library");var Q=class extends re.InvalidTypeError{static{o(this,"InvalidSchemaTypeError")}constructor(r){
83
- super("Invalid table schema type",void 0,"Database.Schema",r)}},B=class extends re.IncorrectTypeError{constructor(t,a){
84
- super("Incorrect table schema type",t,"Database.Schema",a);this.schemaType=t}static{
85
- o(this,"IncorrectSchemaTypeError")}};var pe=o((e,r,t,a)=>{if(!(0,ae.isTypeReference)(e))return Ce(e,r,t,a);let n=(0,ne.getReferenceType)(
86
- e,t);return n?Ce(n,r,t,a):null},"getTableSchema"),Ce=o((e,r,t,a)=>(0,ae.isTypeObject)(
87
- e)?Ue(e,t):(0,ne.isModelDeclaration)(e)?xe(e)?Ue(e,t):(a.push(new B(e.name,e.file)),
88
- null):(a.push(new Q(r.file)),null),"getTypeSchema"),Ue=o((e,r)=>{let t=(0,E.getObjectSchema)(
89
- e,r,(0,E.createSchemaContext)({nullish:!0}));return t&&(0,E.isObjectSchema)(t)?t:
90
- null},"getSchema");var d=require("@ez4/common/library"),O=require("@ez4/reflection");var P=require("@ez4/common/library");var _=class extends P.IncompleteTypeError{static{o(this,"IncompleteStreamError")}constructor(r,t){
91
- super("Incomplete table stream",r,t)}},J=class extends P.InvalidTypeError{static{
92
- o(this,"InvalidStreamTypeError")}constructor(r){super("Invalid table stream type",
93
- void 0,"Database.Stream",r)}},K=class extends P.IncorrectTypeError{constructor(t,a){
94
- super("Incorrect table stream type",t,"Database.Stream",a);this.streamType=t}static{
95
- o(this,"IncorrectStreamTypeError")}};var ze=require("@ez4/common/library");var W=class extends ze.IncompleteTypeError{static{o(this,"IncompleteHandlerError")}constructor(r,t){
96
- super("Incomplete stream handler",r,t)}};var Ne=o((e,r,t)=>{if(!Te(e))return null;let{description:a,module:n}=e,s={...a&&
97
- {description:a},...n&&{module:n}},i=new Set(["name","file","change"]);return(s.name=
98
- e.name)&&i.delete("name"),(s.file=e.file)&&i.delete("file"),e.parameters&&i.delete(
99
- "change"),i.size===0&&st(s)?s:(t.push(new W([...i],e.file)),null)},"getStreamHan\
100
- dler"),st=o(e=>!!e.name&&!!e.file,"isValidHandler");var qe=o((e,r,t,a)=>{if(!(0,O.isTypeReference)(e))return He(e,r,t,a);let n=(0,d.getReferenceType)(
101
- e,t);return n?He(n,r,t,a):null},"getTableStream"),it=o(e=>!!e.handler,"isValidSt\
102
- ream"),He=o((e,r,t,a)=>(0,O.isTypeObject)(e)?Fe(e,r,(0,d.getObjectMembers)(e),t,
103
- a):(0,d.isModelDeclaration)(e)?ge(e)?Fe(e,r,(0,d.getModelMembers)(e),t,a):(a.push(
104
- new K(e.name,e.file)),null):(a.push(new J(r.file)),null),"getTypeStream"),Fe=o((e,r,t,a,n)=>{
105
- let s={},i=new Set(["handler"]);for(let p of t)if(!(!(0,O.isModelProperty)(p)||p.
106
- inherited))switch(p.name){default:n.push(new d.InvalidServicePropertyError(r.name,
107
- p.name,e.file));break;case"handler":s.handler=Ne(p.value,a,n);break;case"listene\
108
- r":s.listener=(0,d.getServiceListener)(p.value,n);break;case"memory":case"logRet\
109
- ention":case"timeout":s[p.name]=(0,d.getPropertyNumber)(p);break;case"variables":
110
- s.variables=(0,d.getLinkedVariableList)(p,n);break}return it(s)?s:(n.push(new _(
111
- [...i],e.file)),null)},"getTypeFromMembers");var le=o((e,r,t,a)=>{if(!(0,k.isTypeReference)(e))return Ve(e,r,t,a);let n=(0,x.getReferenceType)(
112
- e,t);return n?Ve(n,r,t,a):null},"getDatabaseTable"),pt=o(e=>!!e.name&&!!e.schema&&
113
- !!e.indexes,"isValidTable"),Ve=o((e,r,t,a)=>be(e)?$e(e,r,(0,x.getModelMembers)(e),
114
- t,a):(0,k.isTypeObject)(e)?$e(e,r,(0,x.getObjectMembers)(e),t,a):null,"getTypeTa\
115
- ble"),$e=o((e,r,t,a,n)=>{let s={},i=new Set(["name","schema","indexes"]);for(let l of t)
116
- if(!(!(0,k.isModelProperty)(l)||l.inherited))switch(l.name){default:n.push(new x.InvalidServicePropertyError(
117
- r.name,l.name,e.file));break;case"name":(s.name=(0,x.getPropertyString)(l))&&i.delete(
118
- l.name);break;case"schema":(s.schema=pe(l.value,e,a,n))&&i.delete(l.name);break;case"\
119
- indexes":(s.indexes=je(l.value,e,a,n))&&i.delete(l.name);break;case"relations":s.
120
- relations=Re(l.value,e,a,n);break;case"stream":s.stream=qe(l.value,r,a,n);break}
121
- if(!pt(s))return n.push(new F([...i],e.file)),null;let p=lt(e,s.indexes,s.schema);
122
- return p.length?(n.push(...p),null):s},"getTypeFromMembers"),lt=o((e,r,t)=>{let a=t.
123
- properties,n=[];for(let{name:s,columns:i}of r)i.some(l=>!a[l])&&n.push(new G(s,e.
124
- file));return n},"validateIndexes");var me=o(e=>{let r={},t=[];for(let a in e){let n=e[a];if(!L(n)||(0,u.isExternalDeclaration)(
125
- n))continue;let s={type:Y,extras:{}},i=new Set(["engine","tables"]),p=n.file;s.name=
126
- n.name;for(let m of(0,u.getModelMembers)(n))if(!(!(0,Qe.isModelProperty)(m)||m.inherited))
127
- switch(m.name){default:t.push(new u.InvalidServicePropertyError(s.name,m.name,p));
128
- break;case"client":break;case"scalability":(s.scalability=Se(m.value,n,e,t))&&i.
129
- delete(m.name);break;case"engine":(s.engine=Ee(m.value,n,e,t))&&i.delete(m.name);
130
- break;case"tables":(s.tables=ct(m,n,e,t))&&i.delete(m.name);break;case"variables":
131
- s.variables=(0,u.getLinkedVariableList)(m,t);break;case"services":s.services=(0,u.getLinkedServiceList)(
132
- m,e,t);break}if(!mt(s)){t.push(new A([...i],p));continue}let l=dt(n,s.tables);if(l.
133
- length){t.push(...l);continue}if(r[n.name]){t.push(new u.DuplicateServiceError(n.
134
- name,p));continue}r[n.name]=s}return{services:r,errors:t}},"getDatabaseServices"),
135
- mt=o(e=>!!e.name&&!!e.tables&&!!e.extras,"isValidService"),ct=o((e,r,t,a)=>{let n=(0,u.getPropertyTuple)(
136
- e)??[],s=[];for(let i of n){let p=le(i,r,t,a);p&&s.push(p)}return s},"getAllTabl\
137
- es"),dt=o((e,r)=>{let t=ut(r),a=[];for(let{relations:n,schema:s,indexes:i}of r){
138
- if(!n)continue;let p=s.properties;for(let l of n){let{sourceTable:m,sourceColumn:R,
139
- targetColumn:oe,targetAlias:ce}=l;p[oe]||a.push(new I(oe,e.file)),p[ce]&&a.push(
140
- new z(ce,e.file));let se=t[m]?.schema.properties;se||a.push(new U(m,e.file)),se&&
141
- !se[R]&&a.push(new I(R,e.file));let Xe=t[m]?.indexes??[];l.sourceIndex=Ge(Xe,R),
142
- l.targetIndex=Ge(i,oe)}}return a},"validateRelations"),Ge=o((e,r)=>e.find(({name:t})=>t===
143
- r)?.type,"getIndexType"),ut=o(e=>e.reduce((r,t)=>({...r,[t.name]:t}),{}),"getTab\
144
- leMap");var Be=o(e=>L(e)?e.name:null,"getLinkedService");var _e=!1,bt=o(()=>{_e||((0,Je.registerTriggers)(),(0,Ke.registerTriggers)(),(0,We.createTrigger)(
145
- "@ez4/database",{"metadata:getServices":me,"metadata:getLinkedService":Be}),_e=!0)},
44
+ alidEngine"),he=a((e,t,r)=>{if(ee(e))return De(e,t,(0,l.getModelMembers)(e),r);if((0,h.isTypeObject)(
45
+ e))return De(e,t,(0,l.getObjectMembers)(e),r)},"getTypeEngine"),De=a((e,t,r,n)=>{
46
+ let o={},s=new Set(["name","parametersMode","transactionMode","insensitiveMode",
47
+ "paginationMode","orderMode"]);for(let i of r)if(!(!(0,h.isModelProperty)(i)||i.
48
+ inherited))switch(i.name){default:n.push(new l.InvalidServicePropertyError(t.name,
49
+ i.name,e.file));break;case"name":(o.name=(0,l.getPropertyString)(i))&&s.delete(i.
50
+ name);break;case"parametersMode":(o.parametersMode=(0,l.getPropertyStringIn)(i,[
51
+ "index","both"]))&&s.delete(i.name);break;case"transactionMode":(o.transactionMode=
52
+ (0,l.getPropertyStringIn)(i,["static","interactive"]))&&s.delete(i.name);break;case"\
53
+ insensitiveMode":(o.insensitiveMode=(0,l.getPropertyStringIn)(i,["unsupported","\
54
+ enabled"]))&&s.delete(i.name);break;case"paginationMode":(o.paginationMode=(0,l.getPropertyStringIn)(
55
+ i,["cursor","offset"]))&&s.delete(i.name);break;case"orderMode":(o.orderMode=(0,l.getPropertyStringIn)(
56
+ i,["any","index"]))&&s.delete(i.name);break;case"lockMode":(o.lockMode=(0,l.getPropertyStringIn)(
57
+ i,["unsupported","supported"]))&&s.delete(i.name);break}if(!ar(o)){n.push(new F(
58
+ [...s],e.file));return}return o},"getTypeFromMembers");var x=require("@ez4/common/library"),w=require("@ez4/reflection");var Ee=require("@ez4/common/library");var U=class extends Ee.IncompleteTypeError{static{a(this,"IncompleteTableError")}constructor(t,r){
59
+ super("Incomplete database table",t,r)}};var M=require("@ez4/common/library");var V=class extends M.InvalidTypeError{static{a(this,"InvalidIndexesTypeError")}constructor(t){
60
+ super("Invalid table indexes type",void 0,"Database.Indexes",t)}},$=class extends M.IncorrectTypeError{constructor(r,n){
61
+ super("Incorrect table indexes type",r,"Database.Indexes",n);this.schemaType=r}static{
62
+ a(this,"IncorrectIndexesTypeError")}},q=class extends M.TypeError{constructor(r,n){
63
+ super(`Invalid index type, ${r} must follow one of the Index options.`,n);this.indexName=
64
+ r}static{a(this,"InvalidIndexTypeError")}},_=class extends M.TypeError{constructor(r,n){
65
+ super(`Invalid index reference, ${r} must be valid column.`,n);this.indexName=r}static{
66
+ a(this,"InvalidIndexReferenceError")}};var T=require("@ez4/common/library"),D=require("@ez4/reflection");var we=a((e,t,r,n)=>{if(!(0,D.isTypeReference)(e))return Pe(e,t,n);let o=(0,T.getReferenceType)(
67
+ e,r);if(o)return Pe(o,t,n)},"getTableRelations"),Pe=a((e,t,r)=>{if((0,D.isTypeObject)(
68
+ e))return ke(e,(0,T.getObjectMembers)(e),r);if(!(0,T.isModelDeclaration)(e)){r.push(
69
+ new A(t.file));return}if(!be(e)){r.push(new R(e.name,e.file));return}return ke(e,
70
+ (0,T.getModelMembers)(e),r)},"getTypeRelations"),ke=a((e,t,r)=>{let n=[];for(let o of t){
71
+ if(!(0,D.isModelProperty)(o)||o.inherited)continue;let s=(0,T.getPropertyString)(
72
+ o),i=o.name;if(!s){r.push(new z(i,e.file));return}let[p,m]=i.split("@",2),[c,O]=s.
73
+ split(":",2);n.push({sourceTable:c,sourceColumn:O,targetColumn:p,targetAlias:m})}
74
+ return n},"getTypeFromMembers");var y=require("@ez4/common/library"),v=require("@ez4/reflection");var Oe=(o=>(o.Primary="primary",o.Secondary="secondary",o.Unique="unique",o.TTL=
75
+ "ttl",o))(Oe||{});var Re=a((e,t,r,n)=>{if(!(0,v.isTypeReference)(e))return je(e,t,n);let o=(0,y.getReferenceType)(
76
+ e,r);if(o)return je(o,t,n)},"getTableIndexes"),je=a((e,t,r)=>{if((0,v.isTypeObject)(
77
+ e))return Ae(e,(0,y.getObjectMembers)(e),r);if(!(0,y.isModelDeclaration)(e)){r.push(
78
+ new V(t.file));return}if(!Te(e)){r.push(new $(e.name,e.file));return}return Ae(e,
79
+ (0,y.getModelMembers)(e),r)},"getTypeIndexes"),Ae=a((e,t,r)=>{let n=[];for(let o of t){
80
+ if(!(0,v.isModelProperty)(o)||o.inherited)continue;let s=o.name,i=(0,y.getPropertyString)(
81
+ o);switch(i){case"primary":case"secondary":case"unique":case"ttl":n.push({name:s,
82
+ columns:s.split(":"),type:i});break;default:r.push(new q(s,e.file));return}}return n},
83
+ "getTypeFromMembers");var E=require("@ez4/schema/library"),oe=require("@ez4/common/library"),ne=require("@ez4/reflection");var te=require("@ez4/common/library");var B=class extends te.InvalidTypeError{static{a(this,"InvalidSchemaTypeError")}constructor(t){
84
+ super("Invalid table schema type",void 0,"Database.Schema",t)}},G=class extends te.IncorrectTypeError{constructor(r,n){
85
+ super("Incorrect table schema type",r,"Database.Schema",n);this.schemaType=r}static{
86
+ a(this,"IncorrectSchemaTypeError")}};var ie=a((e,t,r,n)=>{if(!(0,ne.isTypeReference)(e))return ze(e,t,r,n);let o=(0,oe.getReferenceType)(
87
+ e,r);if(o)return ze(o,t,r,n)},"getTableSchema"),ze=a((e,t,r,n)=>{if((0,ne.isTypeObject)(
88
+ e))return Ce(e,r);if(!(0,oe.isModelDeclaration)(e)){n.push(new B(t.file));return}
89
+ if(!ye(e)){n.push(new G(e.name,e.file));return}return Ce(e,r)},"getTypeSchema"),
90
+ Ce=a((e,t)=>{let r=(0,E.getObjectSchema)(e,t,(0,E.createSchemaContext)({nullish:!0}));
91
+ if(r&&(0,E.isObjectSchema)(r))return r},"getSchema");var d=require("@ez4/common/library"),k=require("@ez4/reflection");var P=require("@ez4/common/library");var J=class extends P.IncompleteTypeError{static{a(this,"IncompleteStreamError")}constructor(t,r){
92
+ super("Incomplete table stream",t,r)}},K=class extends P.InvalidTypeError{static{
93
+ a(this,"InvalidStreamTypeError")}constructor(t){super("Invalid table stream type",
94
+ void 0,"Database.Stream",t)}},Q=class extends P.IncorrectTypeError{constructor(r,n){
95
+ super("Incorrect table stream type",r,"Database.Stream",n);this.streamType=r}static{
96
+ a(this,"IncorrectStreamTypeError")}};var Ne=require("@ez4/common/library");var W=class extends Ne.IncompleteTypeError{static{a(this,"IncompleteHandlerError")}constructor(t,r){
97
+ super("Incomplete stream handler",t,r)}};var He=a((e,t,r)=>{if(!ue(e))return;let{description:n,module:o}=e,s={...n&&{description:n},
98
+ ...o&&{module:o}},i=new Set(["name","file","change"]);if((s.name=e.name)&&i.delete(
99
+ "name"),(s.file=e.file)&&i.delete("file"),e.parameters&&i.delete("change"),i.size===
100
+ 0&&sr(s))return s;r.push(new W([...i],e.file))},"getStreamHandler"),sr=a(e=>!!e.
101
+ name&&!!e.file,"isValidHandler");var Ve=a((e,t,r,n)=>{if(!(0,k.isTypeReference)(e))return Fe(e,t,r,n);let o=(0,d.getReferenceType)(
102
+ e,r);if(o)return Fe(o,t,r,n)},"getTableStream"),ir=a(e=>!!e.handler,"isValidStre\
103
+ am"),Fe=a((e,t,r,n)=>{if((0,k.isTypeObject)(e))return Ue(e,t,(0,d.getObjectMembers)(
104
+ e),r,n);if(!(0,d.isModelDeclaration)(e)){n.push(new K(t.file));return}if(!xe(e)){
105
+ n.push(new Q(e.name,e.file));return}return Ue(e,t,(0,d.getModelMembers)(e),r,n)},
106
+ "getTypeStream"),Ue=a((e,t,r,n,o)=>{let s={},i=new Set(["handler"]);for(let p of r)
107
+ if(!(!(0,k.isModelProperty)(p)||p.inherited))switch(p.name){default:o.push(new d.InvalidServicePropertyError(
108
+ t.name,p.name,e.file));break;case"handler":s.handler=He(p.value,n,o);break;case"\
109
+ listener":s.listener=(0,d.getServiceListener)(p.value,o);break;case"memory":case"\
110
+ logRetention":case"timeout":s[p.name]=(0,d.getPropertyNumber)(p);break;case"vari\
111
+ ables":s.variables=(0,d.getLinkedVariableList)(p,o);break}if(ir(s))return s;o.push(
112
+ new J([...i],e.file))},"getTypeFromMembers");var pe=a((e,t,r,n)=>{if(!(0,w.isTypeReference)(e))return $e(e,t,r,n);let o=(0,x.getReferenceType)(
113
+ e,r);if(o)return $e(o,t,r,n)},"getDatabaseTable"),pr=a(e=>!!e.name&&!!e.schema&&
114
+ !!e.indexes,"isValidTable"),$e=a((e,t,r,n)=>{if(fe(e))return qe(e,t,(0,x.getModelMembers)(
115
+ e),r,n);if((0,w.isTypeObject)(e))return qe(e,t,(0,x.getObjectMembers)(e),r,n)},"\
116
+ getTypeTable"),qe=a((e,t,r,n,o)=>{let s={},i=new Set(["name","schema","indexes"]);
117
+ for(let m of r)if(!(!(0,w.isModelProperty)(m)||m.inherited))switch(m.name){default:
118
+ o.push(new x.InvalidServicePropertyError(t.name,m.name,e.file));break;case"name":
119
+ (s.name=(0,x.getPropertyString)(m))&&i.delete(m.name);break;case"schema":(s.schema=
120
+ ie(m.value,e,n,o))&&i.delete(m.name);break;case"indexes":(s.indexes=Re(m.value,e,
121
+ n,o))&&i.delete(m.name);break;case"relations":s.relations=we(m.value,e,n,o);break;case"\
122
+ stream":s.stream=Ve(m.value,t,n,o);break}if(!pr(s)){o.push(new U([...i],e.file));
123
+ return}let p=mr(e,s.indexes,s.schema);if(p.length){o.push(...p);return}return s},
124
+ "getTypeFromMembers"),mr=a((e,t,r)=>{let n=r.properties,o=[];for(let{name:s,columns:i}of t)
125
+ i.some(m=>!n[m])&&o.push(new _(s,e.file));return o},"validateIndexes");var me=a(e=>{let t={},r=[];for(let n in e){let o=e[n];if(!L(o)||(0,f.isExternalDeclaration)(
126
+ o))continue;let s={type:Y,context:{}},i=new Set(["engine","tables"]),p=o.file;s.
127
+ name=o.name;for(let c of(0,f.getModelMembers)(o))if(!(!(0,Be.isModelProperty)(c)||
128
+ c.inherited))switch(c.name){default:r.push(new f.InvalidServicePropertyError(s.name,
129
+ c.name,p));break;case"client":break;case"scalability":(s.scalability=Se(c.value,
130
+ o,e,r))&&i.delete(c.name);break;case"engine":(s.engine=ve(c.value,o,e,r))&&i.delete(
131
+ c.name);break;case"tables":(s.tables=lr(c,o,e,r))&&i.delete(c.name);break;case"v\
132
+ ariables":s.variables=(0,f.getLinkedVariableList)(c,r);break;case"services":s.services=
133
+ (0,f.getLinkedServiceList)(c,e,r);break}if(!cr(s)){r.push(new j([...i],p));continue}
134
+ let m=dr(o,s.tables);if(m.length){r.push(...m);continue}if(t[o.name]){r.push(new f.DuplicateServiceError(
135
+ o.name,p));continue}t[o.name]=s}return{services:t,errors:r}},"getDatabaseService\
136
+ s"),cr=a(e=>!!e.name&&!!e.tables&&!!e.context,"isValidService"),lr=a((e,t,r,n)=>{
137
+ let o=(0,f.getPropertyTuple)(e)??[],s=[];for(let i of o){let p=pe(i,t,r,n);p&&s.
138
+ push(p)}return s},"getAllTables"),dr=a((e,t)=>{let r=fr(t),n=[];for(let{relations:o,
139
+ schema:s,indexes:i}of t){if(!o)continue;let p=s.properties;for(let m of o){let{sourceTable:c,
140
+ sourceColumn:O,targetColumn:ae,targetAlias:ce}=m;p[ae]||n.push(new S(ae,e.file)),
141
+ p[ce]&&n.push(new N(ce,e.file));let se=r[c]?.schema.properties;se||n.push(new C(
142
+ c,e.file)),se&&!se[O]&&n.push(new S(O,e.file));let Xe=r[c]?.indexes??[];m.sourceIndex=
143
+ _e(Xe,O),m.targetIndex=_e(i,ae)}}return n},"validateRelations"),_e=a((e,t)=>e.find(
144
+ ({name:r})=>r===t)?.type,"getIndexType"),fr=a(e=>e.reduce((t,r)=>({...t,[r.name]:r}),
145
+ {}),"getTableMap");var Ge=a(e=>L(e)?e.name:null,"getLinkedService");var Je=!1,ur=a(()=>{Je||((0,Ke.registerTriggers)(),(0,Qe.registerTriggers)(),(0,We.createTrigger)(
146
+ "@ez4/database",{"metadata:getServices":me,"metadata:getLinkedService":Ge}),Je=!0)},
146
147
  "registerTriggers");0&&(module.exports={IncompleteEngineError,IncompleteHandlerError,IncompleteScalabilityError,
147
148
  IncompleteServiceError,IncompleteStreamError,IncompleteTableError,IncorrectIndexesTypeError,
148
149
  IncorrectRelationsTypeError,IncorrectSchemaTypeError,IncorrectStreamTypeError,Index,
package/dist/library.d.ts CHANGED
@@ -11,8 +11,8 @@ export * from './errors/relations';
11
11
  export * from './errors/indexes';
12
12
  export * from './errors/stream';
13
13
  export * from './errors/handler';
14
- export * from './services/indexes';
15
14
  export * from './services/relations';
15
+ export * from './services/indexes';
16
16
  export * from './types/service';
17
17
  export * from './types/relations';
18
18
  export * from './types/indexes';
package/dist/library.mjs CHANGED
@@ -1,144 +1,146 @@
1
- var he=Object.defineProperty;var a=(e,r)=>he(e,"name",{value:r,configurable:!0});import{registerTriggers as mr}from"@ez4/common/library";import{registerTriggers as cr}from"@ez4/schema/library";
2
- import{createTrigger as dr}from"@ez4/project/library";import{DuplicateServiceError as Zt,InvalidServicePropertyError as Lt,isExternalDeclaration as er,
3
- getLinkedServiceList as tr,getLinkedVariableList as rr,getPropertyTuple as nr,getModelMembers as ar}from"@ez4/common/library";
4
- import{isModelProperty as or}from"@ez4/reflection";var F="@ez4/database",br=a(e=>e.type===F,"isDatabaseService");import{IncompleteTypeError as ve}from"@ez4/common/library";var T=class extends ve{static{a(this,"IncompleteServiceError")}constructor(r,t){
5
- super("Incomplete database service",r,t)}};import{IncorrectTypeError as Ee,InvalidTypeError as Pe,TypeError as I}from"@ez4/common/library";var y=class extends Pe{static{a(this,"InvalidRelationsTypeError")}constructor(r){
6
- super("Invalid table relations type",void 0,"Database.Relations",r)}},f=class extends Ee{constructor(t,o){
7
- super("Incorrect table relations type",t,"Database.Relations",o);this.schemaType=
8
- t}static{a(this,"IncorrectRelationsTypeError")}},x=class extends I{constructor(t,o){
9
- super(`Target ${t} must follow the pattern 'column@alias'.`,o);this.relationSource=
10
- t}static{a(this,"InvalidRelationTargetError")}},g=class extends I{constructor(t,o){
11
- super(`Relation table ${t} don't exists.`,o);this.relationTable=t}static{a(this,
12
- "InvalidRelationTableError")}},b=class extends I{constructor(t,o){super(`Relatio\
13
- n column ${t} don't exists.`,o);this.relationColumn=t}static{a(this,"InvalidRela\
14
- tionColumnError")}},M=class extends I{constructor(t,o){super(`Relation alias ${t}\
15
- can't override table columns.`,o);this.relationAlias=t}static{a(this,"InvalidRe\
16
- lationAliasError")}};import{InvalidServicePropertyError as we,getModelMembers as je,getPropertyNumber as Ce,
17
- getObjectMembers as Ue,getReferenceType as ze}from"@ez4/common/library";import{isModelProperty as Ne,
18
- isTypeObject as He,isTypeReference as Fe}from"@ez4/reflection";import{isAnyNumber as q}from"@ez4/utils";import{IncompleteTypeError as Oe}from"@ez4/common/library";var S=class extends Oe{static{a(this,"IncompleteScalabilityError")}constructor(r,t){
19
- super("Incomplete database scalability",r,t)}};import{hasHeritageType as c,isClassDeclaration as ke,isModelDeclaration as $}from"@ez4/common/library";
20
- import{isTypeCallback as Re,isTypeFunction as Ae}from"@ez4/reflection";var D=a(e=>ke(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=>Re(e)||Ae(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,o)=>{if(!Fe(e))return W(e,r,o);let n=ze(e,t);return n?W(n,r,o):null},
26
- "getDatabaseScalability"),qe=a(e=>q(e.minCapacity)&&q(e.maxCapacity),"isValidSca\
27
- lability"),W=a((e,r,t)=>h(e)?X(e,r,je(e),t):He(e)?X(e,r,Ue(e),t):null,"getTypeSc\
28
- alability"),X=a((e,r,t,o)=>{let n={},s=new Set(["minCapacity","maxCapacity"]);for(let i of t)
29
- if(!(!Ne(i)||i.inherited))switch(i.name){default:o.push(new we(r.name,i.name,e.file));
30
- break;case"minCapacity":case"maxCapacity":let p=Ce(i);q(p)&&(n[i.name]=p,s.delete(
31
- i.name));break}return qe(n)?n:(o.push(new S([...s],e.file)),null)},"getTypeFromM\
32
- embers");import{isModelProperty as $e,isTypeObject as Ge,isTypeReference as Qe}from"@ez4/reflection";
33
- import{InvalidServicePropertyError as Be,getModelMembers as _e,getObjectMembers as Je,
34
- getPropertyString as Ke,getPropertyStringIn as d,getReferenceType as We}from"@ez4/common/library";import{IncompleteTypeError as Ve}from"@ez4/common/library";var v=class extends Ve{static{a(this,"IncompleteEngineError")}constructor(r,t){super(
35
- "Incomplete database engine",r,t)}};var ee=a((e,r,t,o)=>{if(!Qe(e))return Z(e,r,o);let n=We(e,t);return n?Z(n,r,o):null},
36
- "getDatabaseEngine"),Xe=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,_e(e),t):Ge(e)?L(e,r,Je(e),t):null,"getTypeEngine"),L=a((e,r,t,o)=>{let n={},
39
- s=new Set(["name","parametersMode","transactionMode","insensitiveMode","paginati\
40
- onMode","orderMode"]);for(let i of t)if(!(!$e(i)||i.inherited))switch(i.name){default:
41
- o.push(new Be(r.name,i.name,e.file));break;case"name":(n.name=Ke(i))&&s.delete(i.
42
- name);break;case"parametersMode":(n.parametersMode=d(i,["index","both"]))&&s.delete(
43
- i.name);break;case"transactionMode":(n.transactionMode=d(i,["static","interactiv\
44
- e"]))&&s.delete(i.name);break;case"insensitiveMode":(n.insensitiveMode=d(i,["uns\
45
- upported","enabled"]))&&s.delete(i.name);break;case"paginationMode":(n.paginationMode=
46
- d(i,["cursor","offset"]))&&s.delete(i.name);break;case"orderMode":(n.orderMode=d(
47
- i,["any","index"]))&&s.delete(i.name);break;case"lockMode":(n.lockMode=d(i,["uns\
48
- upported","supported"]))&&s.delete(i.name);break}return Xe(n)?n:(o.push(new v([...s],
49
- e.file)),null)},"getTypeFromMembers");import{InvalidServicePropertyError as $t,getModelMembers as Gt,getObjectMembers as Qt,
50
- getPropertyString as Bt,getReferenceType as _t}from"@ez4/common/library";import{
51
- isModelProperty as Jt,isTypeObject as Kt,isTypeReference as Wt}from"@ez4/reflection";import{IncompleteTypeError as Ye}from"@ez4/common/library";var E=class extends Ye{static{a(this,"IncompleteTableError")}constructor(r,t){super(
52
- "Incomplete database table",r,t)}};import{IncorrectTypeError as Ze,InvalidTypeError as Le,TypeError as te}from"@ez4/common/library";var P=class extends Le{static{a(this,"InvalidIndexesTypeError")}constructor(r){super(
53
- "Invalid table indexes type",void 0,"Database.Indexes",r)}},O=class extends Ze{constructor(t,o){
54
- super("Incorrect table indexes type",t,"Database.Indexes",o);this.schemaType=t}static{
55
- a(this,"IncorrectIndexesTypeError")}},k=class extends te{constructor(t,o){super(
56
- `Invalid index type, ${t} must follow one of the Index options.`,o);this.indexName=
57
- t}static{a(this,"InvalidIndexTypeError")}},R=class extends te{constructor(t,o){super(
58
- `Invalid index reference, ${t} must be valid column.`,o);this.indexName=t}static{
59
- a(this,"InvalidIndexReferenceError")}};import{isModelDeclaration as et,getModelMembers as tt,getObjectMembers as rt,getPropertyString as nt,
60
- getReferenceType as at}from"@ez4/common/library";import{isModelProperty as ot,isTypeObject as st,
61
- isTypeReference as it}from"@ez4/reflection";var ae=a((e,r,t,o)=>{if(!it(e))return re(e,r,o);let n=at(e,t);return n?re(n,r,o):
62
- null},"getTableRelations"),re=a((e,r,t)=>st(e)?ne(e,rt(e),t):et(e)?B(e)?ne(e,tt(
63
- e),t):(t.push(new f(e.name,e.file)),null):(t.push(new y(r.file)),null),"getTypeR\
64
- elations"),ne=a((e,r,t)=>{let o=[];for(let n of r){if(!ot(n)||n.inherited)continue;
65
- let s=nt(n),i=n.name;if(!s)return t.push(new x(i,e.file)),null;let[p,l]=i.split(
66
- "@",2),[m,u]=s.split(":",2);o.push({sourceTable:m,sourceColumn:u,targetColumn:p,
67
- targetAlias:l})}return o},"getTypeFromMembers");import{isModelDeclaration as pt,getModelMembers as lt,getObjectMembers as mt,getPropertyString as ct,
68
- getReferenceType as dt}from"@ez4/common/library";import{isModelProperty as ut,isTypeObject as bt,
69
- isTypeReference as Tt}from"@ez4/reflection";var oe=(n=>(n.Primary="primary",n.Secondary="secondary",n.Unique="unique",n.TTL=
70
- "ttl",n))(oe||{});var pe=a((e,r,t,o)=>{if(!Tt(e))return se(e,r,o);let n=dt(e,t);return n?se(n,r,o):
71
- null},"getTableIndexes"),se=a((e,r,t)=>bt(e)?ie(e,mt(e),t):pt(e)?_(e)?ie(e,lt(e),
72
- t):(t.push(new O(e.name,e.file)),null):(t.push(new P(r.file)),null),"getTypeInde\
73
- xes"),ie=a((e,r,t)=>{let o=[];for(let n of r){if(!ut(n)||n.inherited)continue;let s=n.
74
- name,i=ct(n);switch(i){case"primary":case"secondary":case"unique":case"ttl":o.push(
75
- {name:s,columns:s.split(":"),type:i});break;default:return t.push(new k(s,e.file)),
76
- null}}return o},"getTypeFromMembers");import{createSchemaContext as xt,getObjectSchema as gt,isObjectSchema as Mt}from"@ez4/schema/library";
77
- import{getReferenceType as It,isModelDeclaration as St}from"@ez4/common/library";
78
- import{isTypeObject as Dt,isTypeReference as ht}from"@ez4/reflection";import{IncorrectTypeError as yt,InvalidTypeError as ft}from"@ez4/common/library";var A=class extends ft{static{a(this,"InvalidSchemaTypeError")}constructor(r){super(
79
- "Invalid table schema type",void 0,"Database.Schema",r)}},w=class extends yt{constructor(t,o){
80
- super("Incorrect table schema type",t,"Database.Schema",o);this.schemaType=t}static{
81
- a(this,"IncorrectSchemaTypeError")}};var ce=a((e,r,t,o)=>{if(!ht(e))return le(e,r,t,o);let n=It(e,t);return n?le(n,r,
82
- t,o):null},"getTableSchema"),le=a((e,r,t,o)=>Dt(e)?me(e,t):St(e)?J(e)?me(e,t):(o.
83
- push(new w(e.name,e.file)),null):(o.push(new A(r.file)),null),"getTypeSchema"),me=a(
84
- (e,r)=>{let t=gt(e,r,xt({nullish:!0}));return t&&Mt(t)?t:null},"getSchema");import{InvalidServicePropertyError as Rt,isModelDeclaration as At,getLinkedVariableList as wt,
85
- getModelMembers as jt,getObjectMembers as Ct,getPropertyNumber as Ut,getServiceListener as zt,
86
- getReferenceType as Nt}from"@ez4/common/library";import{isModelProperty as Ht,isTypeObject as Ft,
87
- isTypeReference as qt}from"@ez4/reflection";import{IncompleteTypeError as vt,IncorrectTypeError as Et,InvalidTypeError as Pt}from"@ez4/common/library";var j=class extends vt{static{a(this,"IncompleteStreamError")}constructor(r,t){super(
88
- "Incomplete table stream",r,t)}},C=class extends Pt{static{a(this,"InvalidStream\
89
- TypeError")}constructor(r){super("Invalid table stream type",void 0,"Database.St\
90
- ream",r)}},U=class extends Et{constructor(t,o){super("Incorrect table stream typ\
91
- e",t,"Database.Stream",o);this.streamType=t}static{a(this,"IncorrectStreamTypeEr\
92
- ror")}};import{IncompleteTypeError as Ot}from"@ez4/common/library";var z=class extends Ot{static{a(this,"IncompleteHandlerError")}constructor(r,t){
93
- super("Incomplete stream handler",r,t)}};var de=a((e,r,t)=>{if(!Q(e))return null;let{description:o,module:n}=e,s={...o&&{
94
- description:o},...n&&{module:n}},i=new Set(["name","file","change"]);return(s.name=
95
- e.name)&&i.delete("name"),(s.file=e.file)&&i.delete("file"),e.parameters&&i.delete(
96
- "change"),i.size===0&&kt(s)?s:(t.push(new z([...i],e.file)),null)},"getStreamHan\
97
- dler"),kt=a(e=>!!e.name&&!!e.file,"isValidHandler");var Te=a((e,r,t,o)=>{if(!qt(e))return ue(e,r,t,o);let n=Nt(e,t);return n?ue(n,r,
98
- t,o):null},"getTableStream"),Vt=a(e=>!!e.handler,"isValidStream"),ue=a((e,r,t,o)=>Ft(
99
- e)?be(e,r,Ct(e),t,o):At(e)?K(e)?be(e,r,jt(e),t,o):(o.push(new U(e.name,e.file)),
100
- null):(o.push(new C(r.file)),null),"getTypeStream"),be=a((e,r,t,o,n)=>{let s={},
101
- i=new Set(["handler"]);for(let p of t)if(!(!Ht(p)||p.inherited))switch(p.name){default:
102
- n.push(new Rt(r.name,p.name,e.file));break;case"handler":s.handler=de(p.value,o,
103
- n);break;case"listener":s.listener=zt(p.value,n);break;case"memory":case"logRete\
104
- ntion":case"timeout":s[p.name]=Ut(p);break;case"variables":s.variables=wt(p,n);break}
105
- return Vt(s)?s:(n.push(new j([...i],e.file)),null)},"getTypeFromMembers");var xe=a((e,r,t,o)=>{if(!Wt(e))return ye(e,r,t,o);let n=_t(e,t);return n?ye(n,r,
106
- t,o):null},"getDatabaseTable"),Xt=a(e=>!!e.name&&!!e.schema&&!!e.indexes,"isVali\
107
- dTable"),ye=a((e,r,t,o)=>G(e)?fe(e,r,Gt(e),t,o):Kt(e)?fe(e,r,Qt(e),t,o):null,"ge\
108
- tTypeTable"),fe=a((e,r,t,o,n)=>{let s={},i=new Set(["name","schema","indexes"]);
109
- for(let l of t)if(!(!Jt(l)||l.inherited))switch(l.name){default:n.push(new $t(r.
110
- name,l.name,e.file));break;case"name":(s.name=Bt(l))&&i.delete(l.name);break;case"\
111
- schema":(s.schema=ce(l.value,e,o,n))&&i.delete(l.name);break;case"indexes":(s.indexes=
112
- pe(l.value,e,o,n))&&i.delete(l.name);break;case"relations":s.relations=ae(l.value,
113
- e,o,n);break;case"stream":s.stream=Te(l.value,r,o,n);break}if(!Xt(s))return n.push(
114
- new E([...i],e.file)),null;let p=Yt(e,s.indexes,s.schema);return p.length?(n.push(
115
- ...p),null):s},"getTypeFromMembers"),Yt=a((e,r,t)=>{let o=t.properties,n=[];for(let{
116
- name:s,columns:i}of r)i.some(l=>!o[l])&&n.push(new R(s,e.file));return n},"valid\
117
- ateIndexes");var Me=a(e=>{let r={},t=[];for(let o in e){let n=e[o];if(!D(n)||er(n))continue;let s={
118
- type:F,extras:{}},i=new Set(["engine","tables"]),p=n.file;s.name=n.name;for(let m of ar(
119
- n))if(!(!or(m)||m.inherited))switch(m.name){default:t.push(new Lt(s.name,m.name,
120
- p));break;case"client":break;case"scalability":(s.scalability=Y(m.value,n,e,t))&&
121
- i.delete(m.name);break;case"engine":(s.engine=ee(m.value,n,e,t))&&i.delete(m.name);
122
- break;case"tables":(s.tables=ir(m,n,e,t))&&i.delete(m.name);break;case"variables":
123
- s.variables=rr(m,t);break;case"services":s.services=tr(m,e,t);break}if(!sr(s)){t.
124
- push(new T([...i],p));continue}let l=pr(n,s.tables);if(l.length){t.push(...l);continue}
125
- if(r[n.name]){t.push(new Zt(n.name,p));continue}r[n.name]=s}return{services:r,errors:t}},
126
- "getDatabaseServices"),sr=a(e=>!!e.name&&!!e.tables&&!!e.extras,"isValidService"),
127
- ir=a((e,r,t,o)=>{let n=nr(e)??[],s=[];for(let i of n){let p=xe(i,r,t,o);p&&s.push(
128
- p)}return s},"getAllTables"),pr=a((e,r)=>{let t=lr(r),o=[];for(let{relations:n,schema:s,
129
- indexes:i}of r){if(!n)continue;let p=s.properties;for(let l of n){let{sourceTable:m,
130
- sourceColumn:u,targetColumn:N,targetAlias:V}=l;p[N]||o.push(new b(N,e.file)),p[V]&&
131
- o.push(new M(V,e.file));let H=t[m]?.schema.properties;H||o.push(new g(m,e.file)),
132
- H&&!H[u]&&o.push(new b(u,e.file));let De=t[m]?.indexes??[];l.sourceIndex=ge(De,u),
133
- l.targetIndex=ge(i,N)}}return o},"validateRelations"),ge=a((e,r)=>e.find(({name:t})=>t===
134
- r)?.type,"getIndexType"),lr=a(e=>e.reduce((r,t)=>({...r,[t.name]:t}),{}),"getTab\
135
- leMap");var Ie=a(e=>D(e)?e.name:null,"getLinkedService");var Se=!1,Ca=a(()=>{Se||(mr(),cr(),dr("@ez4/database",{"metadata:getServices":Me,
136
- "metadata:getLinkedService":Ie}),Se=!0)},"registerTriggers");export{v as IncompleteEngineError,z as IncompleteHandlerError,S as IncompleteScalabilityError,
137
- T as IncompleteServiceError,j as IncompleteStreamError,E as IncompleteTableError,
138
- O as IncorrectIndexesTypeError,f as IncorrectRelationsTypeError,w as IncorrectSchemaTypeError,
139
- U as IncorrectStreamTypeError,oe as Index,R as InvalidIndexReferenceError,k as InvalidIndexTypeError,
140
- P as InvalidIndexesTypeError,M as InvalidRelationAliasError,b as InvalidRelationColumnError,
141
- g as InvalidRelationTableError,x as InvalidRelationTargetError,y as InvalidRelationsTypeError,
142
- A as InvalidSchemaTypeError,C as InvalidStreamTypeError,F as ServiceType,Me as getDatabaseServices,
143
- xe as getDatabaseTable,ce as getTableSchema,br as isDatabaseService,Ca as registerTriggers};
1
+ var he=Object.defineProperty;var n=(e,t)=>he(e,"name",{value:t,configurable:!0});import{registerTriggers as ct}from"@ez4/common/library";import{registerTriggers as lt}from"@ez4/schema/library";
2
+ import{createTrigger as dt}from"@ez4/project/library";import{DuplicateServiceError as Zr,InvalidServicePropertyError as Lr,isExternalDeclaration as et,
3
+ getLinkedServiceList as rt,getLinkedVariableList as tt,getPropertyTuple as ot,getModelMembers as nt}from"@ez4/common/library";
4
+ import{isModelProperty as at}from"@ez4/reflection";var U="@ez4/database",ut=n(e=>e.type===U,"isDatabaseService");import{IncompleteTypeError as De}from"@ez4/common/library";var b=class extends De{static{n(this,"IncompleteServiceError")}constructor(t,r){
5
+ super("Incomplete database service",t,r)}};import{IncorrectTypeError as ve,InvalidTypeError as Ee,TypeError as S}from"@ez4/common/library";var T=class extends Ee{static{n(this,"InvalidRelationsTypeError")}constructor(t){
6
+ super("Invalid table relations type",void 0,"Database.Relations",t)}},y=class extends ve{constructor(r,a){
7
+ super("Incorrect table relations type",r,"Database.Relations",a);this.schemaType=
8
+ r}static{n(this,"IncorrectRelationsTypeError")}},x=class extends S{constructor(r,a){
9
+ super(`Target ${r} must follow the pattern 'column@alias'.`,a);this.relationSource=
10
+ r}static{n(this,"InvalidRelationTargetError")}},g=class extends S{constructor(r,a){
11
+ super(`Relation table ${r} don't exists.`,a);this.relationTable=r}static{n(this,
12
+ "InvalidRelationTableError")}},u=class extends S{constructor(r,a){super(`Relatio\
13
+ n column ${r} don't exists.`,a);this.relationColumn=r}static{n(this,"InvalidRela\
14
+ tionColumnError")}},M=class extends S{constructor(r,a){super(`Relation alias ${r}\
15
+ can't override table columns.`,a);this.relationAlias=r}static{n(this,"InvalidRe\
16
+ lationAliasError")}};import{InvalidServicePropertyError as je,getModelMembers as Ae,getPropertyNumber as Re,
17
+ getObjectMembers as ze,getReferenceType as Ce}from"@ez4/common/library";import{isModelProperty as Ne,
18
+ isTypeObject as He,isTypeReference as Fe}from"@ez4/reflection";import{isAnyNumber as V}from"@ez4/utils";import{IncompleteTypeError as Pe}from"@ez4/common/library";var I=class extends Pe{static{n(this,"IncompleteScalabilityError")}constructor(t,r){
19
+ super("Incomplete database scalability",t,r)}};import{hasHeritageType as l,isClassDeclaration as ke,isModelDeclaration as q}from"@ez4/common/library";
20
+ import{isTypeCallback as we,isTypeFunction as Oe}from"@ez4/reflection";var h=n(e=>ke(e)&&l(e,"Database.Service"),"isDatabaseService"),D=n(e=>q(e)&&l(e,
21
+ "Database.Engine"),"isDatabaseEngine"),_=n(e=>q(e)&&l(e,"Database.Table"),"isDat\
22
+ abaseTable"),B=n(e=>we(e)||Oe(e),"isStreamHandler"),G=n(e=>l(e,"Database.Relatio\
23
+ ns"),"isTableRelations"),J=n(e=>l(e,"Database.Indexes"),"isTableIndexes"),K=n(e=>l(
24
+ e,"Database.Schema"),"isTableSchema"),Q=n(e=>l(e,"Database.Stream"),"isTableStre\
25
+ am");var Y=n((e,t,r,a)=>{if(!Fe(e))return W(e,t,a);let o=Ce(e,r);if(o)return W(o,t,a)},
26
+ "getDatabaseScalability"),Ue=n(e=>V(e.minCapacity)&&V(e.maxCapacity),"isValidSca\
27
+ lability"),W=n((e,t,r)=>{if(D(e))return X(e,t,Ae(e),r);if(He(e))return X(e,t,ze(
28
+ e),r)},"getTypeScalability"),X=n((e,t,r,a)=>{let o={},s=new Set(["minCapacity","\
29
+ maxCapacity"]);for(let i of r)if(!(!Ne(i)||i.inherited))switch(i.name){default:a.
30
+ push(new je(t.name,i.name,e.file));break;case"minCapacity":case"maxCapacity":let p=Re(
31
+ i);V(p)&&(o[i.name]=p,s.delete(i.name));break}if(!Ue(o)){a.push(new I([...s],e.file));
32
+ return}return o},"getTypeFromMembers");import{isModelProperty as $e,isTypeObject as qe,isTypeReference as _e}from"@ez4/reflection";
33
+ import{InvalidServicePropertyError as Be,getModelMembers as Ge,getObjectMembers as Je,
34
+ getPropertyString as Ke,getPropertyStringIn as d,getReferenceType as Qe}from"@ez4/common/library";import{IncompleteTypeError as Ve}from"@ez4/common/library";var v=class extends Ve{static{n(this,"IncompleteEngineError")}constructor(t,r){super(
35
+ "Incomplete database engine",t,r)}};var ee=n((e,t,r,a)=>{if(!_e(e))return Z(e,t,a);let o=Qe(e,r);if(o)return Z(o,t,a)},
36
+ "getDatabaseEngine"),We=n(e=>!!e.name&&!!e.parametersMode&&!!e.transactionMode&&
37
+ !!e.insensitiveMode&&!!e.paginationMode&&!!e.orderMode,"isValidEngine"),Z=n((e,t,r)=>{
38
+ if(D(e))return L(e,t,Ge(e),r);if(qe(e))return L(e,t,Je(e),r)},"getTypeEngine"),L=n(
39
+ (e,t,r,a)=>{let o={},s=new Set(["name","parametersMode","transactionMode","insen\
40
+ sitiveMode","paginationMode","orderMode"]);for(let i of r)if(!(!$e(i)||i.inherited))
41
+ switch(i.name){default:a.push(new Be(t.name,i.name,e.file));break;case"name":(o.
42
+ name=Ke(i))&&s.delete(i.name);break;case"parametersMode":(o.parametersMode=d(i,[
43
+ "index","both"]))&&s.delete(i.name);break;case"transactionMode":(o.transactionMode=
44
+ d(i,["static","interactive"]))&&s.delete(i.name);break;case"insensitiveMode":(o.
45
+ insensitiveMode=d(i,["unsupported","enabled"]))&&s.delete(i.name);break;case"pag\
46
+ inationMode":(o.paginationMode=d(i,["cursor","offset"]))&&s.delete(i.name);break;case"\
47
+ orderMode":(o.orderMode=d(i,["any","index"]))&&s.delete(i.name);break;case"lockM\
48
+ ode":(o.lockMode=d(i,["unsupported","supported"]))&&s.delete(i.name);break}if(!We(
49
+ o)){a.push(new v([...s],e.file));return}return o},"getTypeFromMembers");import{InvalidServicePropertyError as qr,getModelMembers as _r,getObjectMembers as Br,
50
+ getPropertyString as Gr,getReferenceType as Jr}from"@ez4/common/library";import{
51
+ isModelProperty as Kr,isTypeObject as Qr,isTypeReference as Wr}from"@ez4/reflection";import{IncompleteTypeError as Xe}from"@ez4/common/library";var E=class extends Xe{static{n(this,"IncompleteTableError")}constructor(t,r){super(
52
+ "Incomplete database table",t,r)}};import{IncorrectTypeError as Ye,InvalidTypeError as Ze,TypeError as re}from"@ez4/common/library";var P=class extends Ze{static{n(this,"InvalidIndexesTypeError")}constructor(t){super(
53
+ "Invalid table indexes type",void 0,"Database.Indexes",t)}},k=class extends Ye{constructor(r,a){
54
+ super("Incorrect table indexes type",r,"Database.Indexes",a);this.schemaType=r}static{
55
+ n(this,"IncorrectIndexesTypeError")}},w=class extends re{constructor(r,a){super(
56
+ `Invalid index type, ${r} must follow one of the Index options.`,a);this.indexName=
57
+ r}static{n(this,"InvalidIndexTypeError")}},O=class extends re{constructor(r,a){super(
58
+ `Invalid index reference, ${r} must be valid column.`,a);this.indexName=r}static{
59
+ n(this,"InvalidIndexReferenceError")}};import{isModelDeclaration as Le,getModelMembers as er,getObjectMembers as rr,getPropertyString as tr,
60
+ getReferenceType as or}from"@ez4/common/library";import{isModelProperty as nr,isTypeObject as ar,
61
+ isTypeReference as sr}from"@ez4/reflection";var ne=n((e,t,r,a)=>{if(!sr(e))return te(e,t,a);let o=or(e,r);if(o)return te(o,t,
62
+ a)},"getTableRelations"),te=n((e,t,r)=>{if(ar(e))return oe(e,rr(e),r);if(!Le(e)){
63
+ r.push(new T(t.file));return}if(!G(e)){r.push(new y(e.name,e.file));return}return oe(
64
+ e,er(e),r)},"getTypeRelations"),oe=n((e,t,r)=>{let a=[];for(let o of t){if(!nr(o)||
65
+ o.inherited)continue;let s=tr(o),i=o.name;if(!s){r.push(new x(i,e.file));return}
66
+ let[p,m]=i.split("@",2),[c,f]=s.split(":",2);a.push({sourceTable:c,sourceColumn:f,
67
+ targetColumn:p,targetAlias:m})}return a},"getTypeFromMembers");import{isModelDeclaration as pr,getModelMembers as mr,getObjectMembers as cr,getPropertyString as lr,
68
+ getReferenceType as dr}from"@ez4/common/library";import{isModelProperty as fr,isTypeObject as ur,
69
+ isTypeReference as br}from"@ez4/reflection";var ir=(o=>(o.Primary="primary",o.Secondary="secondary",o.Unique="unique",o.TTL=
70
+ "ttl",o))(ir||{});var ie=n((e,t,r,a)=>{if(!br(e))return ae(e,t,a);let o=dr(e,r);if(o)return ae(o,t,
71
+ a)},"getTableIndexes"),ae=n((e,t,r)=>{if(ur(e))return se(e,cr(e),r);if(!pr(e)){r.
72
+ push(new P(t.file));return}if(!J(e)){r.push(new k(e.name,e.file));return}return se(
73
+ e,mr(e),r)},"getTypeIndexes"),se=n((e,t,r)=>{let a=[];for(let o of t){if(!fr(o)||
74
+ o.inherited)continue;let s=o.name,i=lr(o);switch(i){case"primary":case"secondary":case"\
75
+ unique":case"ttl":a.push({name:s,columns:s.split(":"),type:i});break;default:r.push(
76
+ new w(s,e.file));return}}return a},"getTypeFromMembers");import{createSchemaContext as xr,getObjectSchema as gr,isObjectSchema as Mr}from"@ez4/schema/library";
77
+ import{getReferenceType as Sr,isModelDeclaration as Ir}from"@ez4/common/library";
78
+ import{isTypeObject as hr,isTypeReference as Dr}from"@ez4/reflection";import{IncorrectTypeError as Tr,InvalidTypeError as yr}from"@ez4/common/library";var j=class extends yr{static{n(this,"InvalidSchemaTypeError")}constructor(t){super(
79
+ "Invalid table schema type",void 0,"Database.Schema",t)}},A=class extends Tr{constructor(r,a){
80
+ super("Incorrect table schema type",r,"Database.Schema",a);this.schemaType=r}static{
81
+ n(this,"IncorrectSchemaTypeError")}};var ce=n((e,t,r,a)=>{if(!Dr(e))return pe(e,t,r,a);let o=Sr(e,r);if(o)return pe(o,
82
+ t,r,a)},"getTableSchema"),pe=n((e,t,r,a)=>{if(hr(e))return me(e,r);if(!Ir(e)){a.
83
+ push(new j(t.file));return}if(!K(e)){a.push(new A(e.name,e.file));return}return me(
84
+ e,r)},"getTypeSchema"),me=n((e,t)=>{let r=gr(e,t,xr({nullish:!0}));if(r&&Mr(r))return r},
85
+ "getSchema");import{InvalidServicePropertyError as Or,isModelDeclaration as jr,getLinkedVariableList as Ar,
86
+ getModelMembers as Rr,getObjectMembers as zr,getPropertyNumber as Cr,getServiceListener as Nr,
87
+ getReferenceType as Hr}from"@ez4/common/library";import{isModelProperty as Fr,isTypeObject as Ur,
88
+ isTypeReference as Vr}from"@ez4/reflection";import{IncompleteTypeError as vr,IncorrectTypeError as Er,InvalidTypeError as Pr}from"@ez4/common/library";var R=class extends vr{static{n(this,"IncompleteStreamError")}constructor(t,r){super(
89
+ "Incomplete table stream",t,r)}},z=class extends Pr{static{n(this,"InvalidStream\
90
+ TypeError")}constructor(t){super("Invalid table stream type",void 0,"Database.St\
91
+ ream",t)}},C=class extends Er{constructor(r,a){super("Incorrect table stream typ\
92
+ e",r,"Database.Stream",a);this.streamType=r}static{n(this,"IncorrectStreamTypeEr\
93
+ ror")}};import{IncompleteTypeError as kr}from"@ez4/common/library";var N=class extends kr{static{n(this,"IncompleteHandlerError")}constructor(t,r){
94
+ super("Incomplete stream handler",t,r)}};var le=n((e,t,r)=>{if(!B(e))return;let{description:a,module:o}=e,s={...a&&{description:a},
95
+ ...o&&{module:o}},i=new Set(["name","file","change"]);if((s.name=e.name)&&i.delete(
96
+ "name"),(s.file=e.file)&&i.delete("file"),e.parameters&&i.delete("change"),i.size===
97
+ 0&&wr(s))return s;r.push(new N([...i],e.file))},"getStreamHandler"),wr=n(e=>!!e.
98
+ name&&!!e.file,"isValidHandler");var ue=n((e,t,r,a)=>{if(!Vr(e))return de(e,t,r,a);let o=Hr(e,r);if(o)return de(o,
99
+ t,r,a)},"getTableStream"),$r=n(e=>!!e.handler,"isValidStream"),de=n((e,t,r,a)=>{
100
+ if(Ur(e))return fe(e,t,zr(e),r,a);if(!jr(e)){a.push(new z(t.file));return}if(!Q(
101
+ e)){a.push(new C(e.name,e.file));return}return fe(e,t,Rr(e),r,a)},"getTypeStream"),
102
+ fe=n((e,t,r,a,o)=>{let s={},i=new Set(["handler"]);for(let p of r)if(!(!Fr(p)||p.
103
+ inherited))switch(p.name){default:o.push(new Or(t.name,p.name,e.file));break;case"\
104
+ handler":s.handler=le(p.value,a,o);break;case"listener":s.listener=Nr(p.value,o);
105
+ break;case"memory":case"logRetention":case"timeout":s[p.name]=Cr(p);break;case"v\
106
+ ariables":s.variables=Ar(p,o);break}if($r(s))return s;o.push(new R([...i],e.file))},
107
+ "getTypeFromMembers");var ye=n((e,t,r,a)=>{if(!Wr(e))return be(e,t,r,a);let o=Jr(e,r);if(o)return be(o,
108
+ t,r,a)},"getDatabaseTable"),Xr=n(e=>!!e.name&&!!e.schema&&!!e.indexes,"isValidTa\
109
+ ble"),be=n((e,t,r,a)=>{if(_(e))return Te(e,t,_r(e),r,a);if(Qr(e))return Te(e,t,Br(
110
+ e),r,a)},"getTypeTable"),Te=n((e,t,r,a,o)=>{let s={},i=new Set(["name","schema",
111
+ "indexes"]);for(let m of r)if(!(!Kr(m)||m.inherited))switch(m.name){default:o.push(
112
+ new qr(t.name,m.name,e.file));break;case"name":(s.name=Gr(m))&&i.delete(m.name);
113
+ break;case"schema":(s.schema=ce(m.value,e,a,o))&&i.delete(m.name);break;case"ind\
114
+ exes":(s.indexes=ie(m.value,e,a,o))&&i.delete(m.name);break;case"relations":s.relations=
115
+ ne(m.value,e,a,o);break;case"stream":s.stream=ue(m.value,t,a,o);break}if(!Xr(s)){
116
+ o.push(new E([...i],e.file));return}let p=Yr(e,s.indexes,s.schema);if(p.length){
117
+ o.push(...p);return}return s},"getTypeFromMembers"),Yr=n((e,t,r)=>{let a=r.properties,
118
+ o=[];for(let{name:s,columns:i}of t)i.some(m=>!a[m])&&o.push(new O(s,e.file));return o},
119
+ "validateIndexes");var ge=n(e=>{let t={},r=[];for(let a in e){let o=e[a];if(!h(o)||et(o))continue;let s={
120
+ type:U,context:{}},i=new Set(["engine","tables"]),p=o.file;s.name=o.name;for(let c of nt(
121
+ o))if(!(!at(c)||c.inherited))switch(c.name){default:r.push(new Lr(s.name,c.name,
122
+ p));break;case"client":break;case"scalability":(s.scalability=Y(c.value,o,e,r))&&
123
+ i.delete(c.name);break;case"engine":(s.engine=ee(c.value,o,e,r))&&i.delete(c.name);
124
+ break;case"tables":(s.tables=it(c,o,e,r))&&i.delete(c.name);break;case"variables":
125
+ s.variables=tt(c,r);break;case"services":s.services=rt(c,e,r);break}if(!st(s)){r.
126
+ push(new b([...i],p));continue}let m=pt(o,s.tables);if(m.length){r.push(...m);continue}
127
+ if(t[o.name]){r.push(new Zr(o.name,p));continue}t[o.name]=s}return{services:t,errors:r}},
128
+ "getDatabaseServices"),st=n(e=>!!e.name&&!!e.tables&&!!e.context,"isValidService"),
129
+ it=n((e,t,r,a)=>{let o=ot(e)??[],s=[];for(let i of o){let p=ye(i,t,r,a);p&&s.push(
130
+ p)}return s},"getAllTables"),pt=n((e,t)=>{let r=mt(t),a=[];for(let{relations:o,schema:s,
131
+ indexes:i}of t){if(!o)continue;let p=s.properties;for(let m of o){let{sourceTable:c,
132
+ sourceColumn:f,targetColumn:H,targetAlias:$}=m;p[H]||a.push(new u(H,e.file)),p[$]&&
133
+ a.push(new M($,e.file));let F=r[c]?.schema.properties;F||a.push(new g(c,e.file)),
134
+ F&&!F[f]&&a.push(new u(f,e.file));let Ie=r[c]?.indexes??[];m.sourceIndex=xe(Ie,f),
135
+ m.targetIndex=xe(i,H)}}return a},"validateRelations"),xe=n((e,t)=>e.find(({name:r})=>r===
136
+ t)?.type,"getIndexType"),mt=n(e=>e.reduce((t,r)=>({...t,[r.name]:r}),{}),"getTab\
137
+ leMap");var Me=n(e=>h(e)?e.name:null,"getLinkedService");var Se=!1,Tn=n(()=>{Se||(ct(),lt(),dt("@ez4/database",{"metadata:getServices":ge,
138
+ "metadata:getLinkedService":Me}),Se=!0)},"registerTriggers");export{v as IncompleteEngineError,N as IncompleteHandlerError,I as IncompleteScalabilityError,
139
+ b as IncompleteServiceError,R as IncompleteStreamError,E as IncompleteTableError,
140
+ k as IncorrectIndexesTypeError,y as IncorrectRelationsTypeError,A as IncorrectSchemaTypeError,
141
+ C as IncorrectStreamTypeError,ir as Index,O as InvalidIndexReferenceError,w as InvalidIndexTypeError,
142
+ P as InvalidIndexesTypeError,M as InvalidRelationAliasError,u as InvalidRelationColumnError,
143
+ g as InvalidRelationTableError,x as InvalidRelationTargetError,T as InvalidRelationsTypeError,
144
+ j as InvalidSchemaTypeError,z as InvalidStreamTypeError,U as ServiceType,ge as getDatabaseServices,
145
+ ye as getDatabaseTable,ce as getTableSchema,ut as isDatabaseService,Tn as registerTriggers};
144
146
  //# sourceMappingURL=library.mjs.map
package/dist/main.cjs CHANGED
@@ -1,8 +1,8 @@
1
- "use strict";var o=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var g=(a,n)=>{for(var e in n)o(a,e,{get:n[e],enumerable:!0})},f=(a,n,e,r)=>{if(n&&
1
+ "use strict";var o=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var g=(a,n)=>{for(var e in n)o(a,e,{get:n[e],enumerable:!0})},S=(a,n,e,r)=>{if(n&&
2
2
  typeof n=="object"||typeof n=="function")for(let t of u(n))!I.call(a,t)&&t!==e&&
3
- o(a,t,{get:()=>n[t],enumerable:!(r=b(n,t))||r.enumerable});return a};var S=a=>f(o({},"__esModule",{value:!0}),a);var D={};g(D,{Database:()=>c,Index:()=>y,InsensitiveMode:()=>p,LockMode:()=>T,Order:()=>m,
3
+ o(a,t,{get:()=>n[t],enumerable:!(r=b(n,t))||r.enumerable});return a};var f=a=>S(o({},"__esModule",{value:!0}),a);var D={};g(D,{Database:()=>c,Index:()=>y,InsensitiveMode:()=>p,LockMode:()=>T,Order:()=>m,
4
4
  OrderMode:()=>x,PaginationMode:()=>d,ParametersMode:()=>s,StreamType:()=>l,TransactionMode:()=>i});
5
- module.exports=S(D);var l=(r=>(r.Insert="insert",r.Update="update",r.Delete="delete",r))(l||{});var s=(e=>(e.NameAndIndex="both",e.OnlyIndex="index",e))(s||{});var i=(e=>(e.Interactive="interactive",e.Static="static",e))(i||{});var p=(e=>(e.Unsupported="unsupported",e.Enabled="enabled",e))(p||{});var d=(e=>(e.Cursor="cursor",e.Offset="offset",e))(d||{});var m=(e=>(e.Asc="asc",e.Desc="desc",e))(m||{}),x=(e=>(e.IndexColumns="index",e.
5
+ module.exports=f(D);var l=(r=>(r.Insert="insert",r.Update="update",r.Delete="delete",r))(l||{});var s=(e=>(e.NameAndIndex="both",e.OnlyIndex="index",e))(s||{});var i=(e=>(e.Interactive="interactive",e.Static="static",e))(i||{});var p=(e=>(e.Unsupported="unsupported",e.Enabled="enabled",e))(p||{});var d=(e=>(e.Cursor="cursor",e.Offset="offset",e))(d||{});var m=(e=>(e.Asc="asc",e.Desc="desc",e))(m||{}),x=(e=>(e.IndexColumns="index",e.
6
6
  AnyColumns="any",e))(x||{});var T=(e=>(e.Unsupported="unsupported",e.Supported="supported",e))(T||{});var c;(a=>{})(c||={});var y=(t=>(t.Primary="primary",t.Secondary="secondary",t.Unique="unique",t.TTL="\
7
7
  ttl",t))(y||{});0&&(module.exports={Database,Index,InsensitiveMode,LockMode,Order,OrderMode,PaginationMode,
8
8
  ParametersMode,StreamType,TransactionMode});
@@ -1,3 +1,3 @@
1
1
  import type { AllType, SourceMap, TypeModel } from '@ez4/reflection';
2
2
  import type { DatabaseEngine } from '../types/engine';
3
- export declare const getDatabaseEngine: (type: AllType, parent: TypeModel, reflection: SourceMap, errorList: Error[]) => DatabaseEngine | null;
3
+ export declare const getDatabaseEngine: (type: AllType, parent: TypeModel, reflection: SourceMap, errorList: Error[]) => DatabaseEngine | undefined;
@@ -1,3 +1,3 @@
1
1
  import type { AllType, SourceMap } from '@ez4/reflection';
2
2
  import type { StreamHandler } from '../types/handler';
3
- export declare const getStreamHandler: (type: AllType, _reflection: SourceMap, errorList: Error[]) => StreamHandler | null;
3
+ export declare const getStreamHandler: (type: AllType, _reflection: SourceMap, errorList: Error[]) => StreamHandler | undefined;
@@ -1,5 +1,5 @@
1
1
  import type { AllType, SourceMap, TypeModel, TypeObject } from '@ez4/reflection';
2
2
  import type { TableIndex } from '../types/indexes';
3
3
  type TypeParent = TypeModel | TypeObject;
4
- export declare const getTableIndexes: (type: AllType, parent: TypeParent, reflection: SourceMap, errorList: Error[]) => TableIndex[] | null;
4
+ export declare const getTableIndexes: (type: AllType, parent: TypeParent, reflection: SourceMap, errorList: Error[]) => TableIndex[] | undefined;
5
5
  export {};
@@ -1,5 +1,5 @@
1
1
  import type { AllType, SourceMap, TypeModel, TypeObject } from '@ez4/reflection';
2
2
  import type { TableRelation } from '../types/relations';
3
3
  type TypeParent = TypeModel | TypeObject;
4
- export declare const getTableRelations: (type: AllType, parent: TypeParent, reflection: SourceMap, errorList: Error[]) => TableRelation[] | null;
4
+ export declare const getTableRelations: (type: AllType, parent: TypeParent, reflection: SourceMap, errorList: Error[]) => TableRelation[] | undefined;
5
5
  export {};
@@ -1,3 +1,3 @@
1
1
  import type { AllType, SourceMap, TypeModel } from '@ez4/reflection';
2
2
  import type { DatabaseScalability } from '../types/scalability';
3
- export declare const getDatabaseScalability: (type: AllType, parent: TypeModel, reflection: SourceMap, errorList: Error[]) => DatabaseScalability | null;
3
+ export declare const getDatabaseScalability: (type: AllType, parent: TypeModel, reflection: SourceMap, errorList: Error[]) => DatabaseScalability | undefined;
@@ -1,4 +1,4 @@
1
1
  import type { AllType, SourceMap, TypeModel, TypeObject } from '@ez4/reflection';
2
2
  type TypeParent = TypeModel | TypeObject;
3
- export declare const getTableSchema: (type: AllType, parent: TypeParent, reflection: SourceMap, errorList: Error[]) => import("@ez4/schema").ObjectSchema | null;
3
+ export declare const getTableSchema: (type: AllType, parent: TypeParent, reflection: SourceMap, errorList: Error[]) => import("@ez4/schema").ObjectSchema | undefined;
4
4
  export {};
@@ -1,3 +1,3 @@
1
1
  import type { AllType, SourceMap, TypeModel } from '@ez4/reflection';
2
2
  import type { TableStream } from '../types/stream';
3
- export declare const getTableStream: (type: AllType, parent: TypeModel, reflection: SourceMap, errorList: Error[]) => TableStream | null;
3
+ export declare const getTableStream: (type: AllType, parent: TypeModel, reflection: SourceMap, errorList: Error[]) => TableStream | undefined;
@@ -1,3 +1,3 @@
1
1
  import type { AllType, SourceMap, TypeModel } from '@ez4/reflection';
2
2
  import type { DatabaseTable } from '../types/table';
3
- export declare const getDatabaseTable: (type: AllType, parent: TypeModel, reflection: SourceMap, errorList: Error[]) => DatabaseTable | null;
3
+ export declare const getDatabaseTable: (type: AllType, parent: TypeModel, reflection: SourceMap, errorList: Error[]) => DatabaseTable | undefined;
@@ -51,7 +51,7 @@ export declare namespace Database {
51
51
  /**
52
52
  * Service event.
53
53
  */
54
- type ServiceEvent<T extends Schema = Schema> = CommonService.BeginEvent<Request> | CommonService.ReadyEvent<Incoming<T>> | CommonService.ErrorEvent<Request | Incoming<T>> | CommonService.EndEvent<Request>;
54
+ type ServiceEvent<T extends Schema = Schema> = CommonService.BeginEvent<Request> | CommonService.ReadyEvent<Incoming<T>> | CommonService.DoneEvent<Incoming<T>> | CommonService.ErrorEvent<Request | Incoming<T>> | CommonService.EndEvent<Request>;
55
55
  /**
56
56
  * Service engine.
57
57
  */
@@ -5,7 +5,7 @@ import type { DatabaseTable } from './table';
5
5
  export declare const ServiceType = "@ez4/database";
6
6
  export type DatabaseService = ServiceMetadata & {
7
7
  type: typeof ServiceType;
8
- scalability?: DatabaseScalability | null;
8
+ scalability?: DatabaseScalability;
9
9
  engine: DatabaseEngine;
10
10
  tables: DatabaseTable[];
11
11
  name: string;
@@ -4,7 +4,7 @@ import type { StreamHandler } from './handler';
4
4
  export type TableStream = {
5
5
  listener?: ServiceListener;
6
6
  handler: StreamHandler;
7
- variables?: LinkedVariables | null;
7
+ variables?: LinkedVariables;
8
8
  logRetention?: number;
9
9
  timeout?: number;
10
10
  memory?: number;
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.29.0",
4
+ "version": "0.31.0",
5
5
  "author": "Silas B.",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -28,6 +28,10 @@
28
28
  "import": "./dist/library.mjs"
29
29
  }
30
30
  },
31
+ "sideEffects": [
32
+ "./dist/library.cjs",
33
+ "./dist/library.mjs"
34
+ ],
31
35
  "workspaces": [
32
36
  "foundation/*",
33
37
  "contracts/*"
@@ -42,10 +46,10 @@
42
46
  "live:publish": "npm run build && npm publish --access public"
43
47
  },
44
48
  "dependencies": {
45
- "@ez4/common": "^0.29.0",
46
- "@ez4/project": "^0.29.0",
47
- "@ez4/reflection": "^0.29.0",
48
- "@ez4/schema": "^0.29.0",
49
- "@ez4/utils": "^0.29.0"
49
+ "@ez4/common": "^0.31.0",
50
+ "@ez4/project": "^0.31.0",
51
+ "@ez4/reflection": "^0.31.0",
52
+ "@ez4/schema": "^0.31.0",
53
+ "@ez4/utils": "^0.31.0"
50
54
  }
51
55
  }