@ez4/database 0.30.0 → 0.32.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 n=(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,a)=>{if(t&&
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
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:!(a=Ye(t,o))||a.enumerable});return e};var tr=e=>rr(X({},"__esModule",{value:!0}),e);var fr={};er(fr,{IncompleteEngineError:()=>F,IncompleteHandlerError:()=>W,IncompleteScalabilityError:()=>H,
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
4
  IncompleteServiceError:()=>j,IncompleteStreamError:()=>J,IncompleteTableError:()=>U,
5
5
  IncorrectIndexesTypeError:()=>$,IncorrectRelationsTypeError:()=>R,IncorrectSchemaTypeError:()=>G,
6
6
  IncorrectStreamTypeError:()=>Q,Index:()=>Oe,InvalidIndexReferenceError:()=>_,InvalidIndexTypeError:()=>q,
7
7
  InvalidIndexesTypeError:()=>V,InvalidRelationAliasError:()=>N,InvalidRelationColumnError:()=>S,
8
8
  InvalidRelationTableError:()=>C,InvalidRelationTargetError:()=>z,InvalidRelationsTypeError:()=>A,
9
- InvalidSchemaTypeError:()=>B,InvalidStreamTypeError:()=>K,ServiceType:()=>Y,getDatabaseServices:()=>pe,
10
- getDatabaseTable:()=>le,getTableSchema:()=>ie,isDatabaseService:()=>or,registerTriggers:()=>br});
11
- module.exports=tr(fr);var Ke=require("@ez4/common/library"),Qe=require("@ez4/schema/library"),We=require("@ez4/project/library");var u=require("@ez4/common/library"),Be=require("@ez4/reflection");var Y="@ez4/database",or=n(e=>e.type===Y,"isDatabaseService");var ce=require("@ez4/common/library");var j=class extends ce.IncompleteTypeError{static{n(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{n(this,"InvalidRelationsTypeError")}constructor(t){
13
- super("Invalid table relations type",void 0,"Database.Relations",t)}},R=class extends g.IncorrectTypeError{constructor(r,a){
14
- super("Incorrect table relations type",r,"Database.Relations",a);this.schemaType=
15
- r}static{n(this,"IncorrectRelationsTypeError")}},z=class extends g.TypeError{constructor(r,a){
16
- super(`Target ${r} must follow the pattern 'column@alias'.`,a);this.relationSource=
17
- r}static{n(this,"InvalidRelationTargetError")}},C=class extends g.TypeError{constructor(r,a){
18
- super(`Relation table ${r} don't exists.`,a);this.relationTable=r}static{n(this,
19
- "InvalidRelationTableError")}},S=class extends g.TypeError{constructor(r,a){super(
20
- `Relation column ${r} don't exists.`,a);this.relationColumn=r}static{n(this,"Inv\
21
- alidRelationColumnError")}},N=class extends g.TypeError{constructor(r,a){super(`\
22
- Relation alias ${r} can't override table columns.`,a);this.relationAlias=r}static{
23
- n(this,"InvalidRelationAliasError")}};var f=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{n(this,"IncompleteScalabilityE\
24
- rror")}constructor(t,r){super("Incomplete database scalability",t,r)}};var b=require("@ez4/common/library"),Z=require("@ez4/reflection");var L=n(e=>(0,b.isClassDeclaration)(e)&&(0,b.hasHeritageType)(e,"Database.Servic\
25
- e"),"isDatabaseService"),ee=n(e=>(0,b.isModelDeclaration)(e)&&(0,b.hasHeritageType)(
26
- e,"Database.Engine"),"isDatabaseEngine"),ue=n(e=>(0,b.isModelDeclaration)(e)&&(0,b.hasHeritageType)(
27
- e,"Database.Table"),"isDatabaseTable"),be=n(e=>(0,Z.isTypeCallback)(e)||(0,Z.isTypeFunction)(
28
- e),"isStreamHandler"),fe=n(e=>(0,b.hasHeritageType)(e,"Database.Relations"),"isT\
29
- ableRelations"),Te=n(e=>(0,b.hasHeritageType)(e,"Database.Indexes"),"isTableInde\
30
- xes"),ye=n(e=>(0,b.hasHeritageType)(e,"Database.Schema"),"isTableSchema"),xe=n(e=>(0,b.hasHeritageType)(
31
- e,"Database.Stream"),"isTableStream");var Se=n((e,t,r,a)=>{if(!(0,I.isTypeReference)(e))return ge(e,t,a);let o=(0,f.getReferenceType)(
32
- e,r);return o?ge(o,t,a):null},"getDatabaseScalability"),ar=n(e=>(0,re.isAnyNumber)(
33
- e.minCapacity)&&(0,re.isAnyNumber)(e.maxCapacity),"isValidScalability"),ge=n((e,t,r)=>ee(
34
- e)?Me(e,t,(0,f.getModelMembers)(e),r):(0,I.isTypeObject)(e)?Me(e,t,(0,f.getObjectMembers)(
35
- e),r):null,"getTypeScalability"),Me=n((e,t,r,a)=>{let o={},s=new Set(["minCapaci\
36
- ty","maxCapacity"]);for(let i of r)if(!(!(0,I.isModelProperty)(i)||i.inherited))
37
- switch(i.name){default:a.push(new f.InvalidServicePropertyError(t.name,i.name,e.
38
- file));break;case"minCapacity":case"maxCapacity":let l=(0,f.getPropertyNumber)(i);
39
- (0,re.isAnyNumber)(l)&&(o[i.name]=l,s.delete(i.name));break}return ar(o)?o:(a.push(
40
- new H([...s],e.file)),null)},"getTypeFromMembers");var h=require("@ez4/reflection"),c=require("@ez4/common/library");var Ie=require("@ez4/common/library");var F=class extends Ie.IncompleteTypeError{static{n(this,"IncompleteEngineError")}constructor(t,r){
41
- super("Incomplete database engine",t,r)}};var ve=n((e,t,r,a)=>{if(!(0,h.isTypeReference)(e))return he(e,t,a);let o=(0,c.getReferenceType)(
42
- e,r);return o?he(o,t,a):null},"getDatabaseEngine"),nr=n(e=>!!e.name&&!!e.parametersMode&&
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=n((e,t,r)=>ee(e)?De(e,t,(0,c.getModelMembers)(e),r):(0,h.isTypeObject)(
45
- e)?De(e,t,(0,c.getObjectMembers)(e),r):null,"getTypeEngine"),De=n((e,t,r,a)=>{let o={},
46
- s=new Set(["name","parametersMode","transactionMode","insensitiveMode","paginati\
47
- onMode","orderMode"]);for(let i of r)if(!(!(0,h.isModelProperty)(i)||i.inherited))
48
- switch(i.name){default:a.push(new c.InvalidServicePropertyError(t.name,i.name,e.
49
- file));break;case"name":(o.name=(0,c.getPropertyString)(i))&&s.delete(i.name);break;case"\
50
- parametersMode":(o.parametersMode=(0,c.getPropertyStringIn)(i,["index","both"]))&&
51
- s.delete(i.name);break;case"transactionMode":(o.transactionMode=(0,c.getPropertyStringIn)(
52
- i,["static","interactive"]))&&s.delete(i.name);break;case"insensitiveMode":(o.insensitiveMode=
53
- (0,c.getPropertyStringIn)(i,["unsupported","enabled"]))&&s.delete(i.name);break;case"\
54
- paginationMode":(o.paginationMode=(0,c.getPropertyStringIn)(i,["cursor","offset"]))&&
55
- s.delete(i.name);break;case"orderMode":(o.orderMode=(0,c.getPropertyStringIn)(i,
56
- ["any","index"]))&&s.delete(i.name);break;case"lockMode":(o.lockMode=(0,c.getPropertyStringIn)(
57
- i,["unsupported","supported"]))&&s.delete(i.name);break}return nr(o)?o:(a.push(new F(
58
- [...s],e.file)),null)},"getTypeFromMembers");var x=require("@ez4/common/library"),w=require("@ez4/reflection");var Ee=require("@ez4/common/library");var U=class extends Ee.IncompleteTypeError{static{n(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{n(this,"InvalidIndexesTypeError")}constructor(t){
60
- super("Invalid table indexes type",void 0,"Database.Indexes",t)}},$=class extends M.IncorrectTypeError{constructor(r,a){
61
- super("Incorrect table indexes type",r,"Database.Indexes",a);this.schemaType=r}static{
62
- n(this,"IncorrectIndexesTypeError")}},q=class extends M.TypeError{constructor(r,a){
63
- super(`Invalid index type, ${r} must follow one of the Index options.`,a);this.indexName=
64
- r}static{n(this,"InvalidIndexTypeError")}},_=class extends M.TypeError{constructor(r,a){
65
- super(`Invalid index reference, ${r} must be valid column.`,a);this.indexName=r}static{
66
- n(this,"InvalidIndexReferenceError")}};var T=require("@ez4/common/library"),D=require("@ez4/reflection");var we=n((e,t,r,a)=>{if(!(0,D.isTypeReference)(e))return Pe(e,t,a);let o=(0,T.getReferenceType)(
67
- e,r);return o?Pe(o,t,a):null},"getTableRelations"),Pe=n((e,t,r)=>(0,D.isTypeObject)(
68
- e)?ke(e,(0,T.getObjectMembers)(e),r):(0,T.isModelDeclaration)(e)?fe(e)?ke(e,(0,T.getModelMembers)(
69
- e),r):(r.push(new R(e.name,e.file)),null):(r.push(new A(t.file)),null),"getTypeR\
70
- elations"),ke=n((e,t,r)=>{let a=[];for(let o of t){if(!(0,D.isModelProperty)(o)||
71
- o.inherited)continue;let s=(0,T.getPropertyString)(o),i=o.name;if(!s)return r.push(
72
- new z(i,e.file)),null;let[l,p]=i.split("@",2),[m,O]=s.split(":",2);a.push({sourceTable:m,
73
- sourceColumn:O,targetColumn:l,targetAlias:p})}return a},"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=
74
- "ttl",o))(Oe||{});var Re=n((e,t,r,a)=>{if(!(0,v.isTypeReference)(e))return je(e,t,a);let o=(0,y.getReferenceType)(
75
- e,r);return o?je(o,t,a):null},"getTableIndexes"),je=n((e,t,r)=>(0,v.isTypeObject)(
76
- e)?Ae(e,(0,y.getObjectMembers)(e),r):(0,y.isModelDeclaration)(e)?Te(e)?Ae(e,(0,y.getModelMembers)(
77
- e),r):(r.push(new $(e.name,e.file)),null):(r.push(new V(t.file)),null),"getTypeI\
78
- ndexes"),Ae=n((e,t,r)=>{let a=[];for(let o of t){if(!(0,v.isModelProperty)(o)||o.
79
- inherited)continue;let s=o.name,i=(0,y.getPropertyString)(o);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 r.push(new q(s,e.file)),null}}return a},"getTypeFr\
82
- omMembers");var E=require("@ez4/schema/library"),oe=require("@ez4/common/library"),ae=require("@ez4/reflection");var te=require("@ez4/common/library");var B=class extends te.InvalidTypeError{static{n(this,"InvalidSchemaTypeError")}constructor(t){
83
- super("Invalid table schema type",void 0,"Database.Schema",t)}},G=class extends te.IncorrectTypeError{constructor(r,a){
84
- super("Incorrect table schema type",r,"Database.Schema",a);this.schemaType=r}static{
85
- n(this,"IncorrectSchemaTypeError")}};var ie=n((e,t,r,a)=>{if(!(0,ae.isTypeReference)(e))return ze(e,t,r,a);let o=(0,oe.getReferenceType)(
86
- e,r);return o?ze(o,t,r,a):null},"getTableSchema"),ze=n((e,t,r,a)=>(0,ae.isTypeObject)(
87
- e)?Ce(e,r):(0,oe.isModelDeclaration)(e)?ye(e)?Ce(e,r):(a.push(new G(e.name,e.file)),
88
- null):(a.push(new B(t.file)),null),"getTypeSchema"),Ce=n((e,t)=>{let r=(0,E.getObjectSchema)(
89
- e,t,(0,E.createSchemaContext)({nullish:!0}));return r&&(0,E.isObjectSchema)(r)?r:
90
- null},"getSchema");var d=require("@ez4/common/library"),k=require("@ez4/reflection");var P=require("@ez4/common/library");var J=class extends P.IncompleteTypeError{static{n(this,"IncompleteStreamError")}constructor(t,r){
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){
91
92
  super("Incomplete table stream",t,r)}},K=class extends P.InvalidTypeError{static{
92
- n(this,"InvalidStreamTypeError")}constructor(t){super("Invalid table stream type",
93
- void 0,"Database.Stream",t)}},Q=class extends P.IncorrectTypeError{constructor(r,a){
94
- super("Incorrect table stream type",r,"Database.Stream",a);this.streamType=r}static{
95
- n(this,"IncorrectStreamTypeError")}};var Ne=require("@ez4/common/library");var W=class extends Ne.IncompleteTypeError{static{n(this,"IncompleteHandlerError")}constructor(t,r){
96
- super("Incomplete stream handler",t,r)}};var He=n((e,t,r)=>{if(!be(e))return null;let{description:a,module:o}=e,s={...a&&
97
- {description:a},...o&&{module:o}},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&&sr(s)?s:(r.push(new W([...i],e.file)),null)},"getStreamHan\
100
- dler"),sr=n(e=>!!e.name&&!!e.file,"isValidHandler");var Ve=n((e,t,r,a)=>{if(!(0,k.isTypeReference)(e))return Fe(e,t,r,a);let o=(0,d.getReferenceType)(
101
- e,r);return o?Fe(o,t,r,a):null},"getTableStream"),ir=n(e=>!!e.handler,"isValidSt\
102
- ream"),Fe=n((e,t,r,a)=>(0,k.isTypeObject)(e)?Ue(e,t,(0,d.getObjectMembers)(e),r,
103
- a):(0,d.isModelDeclaration)(e)?xe(e)?Ue(e,t,(0,d.getModelMembers)(e),r,a):(a.push(
104
- new Q(e.name,e.file)),null):(a.push(new K(t.file)),null),"getTypeStream"),Ue=n((e,t,r,a,o)=>{
105
- let s={},i=new Set(["handler"]);for(let l of r)if(!(!(0,k.isModelProperty)(l)||l.
106
- inherited))switch(l.name){default:o.push(new d.InvalidServicePropertyError(t.name,
107
- l.name,e.file));break;case"handler":s.handler=He(l.value,a,o);break;case"listene\
108
- r":s.listener=(0,d.getServiceListener)(l.value,o);break;case"memory":case"logRet\
109
- ention":case"timeout":s[l.name]=(0,d.getPropertyNumber)(l);break;case"variables":
110
- s.variables=(0,d.getLinkedVariableList)(l,o);break}return ir(s)?s:(o.push(new J(
111
- [...i],e.file)),null)},"getTypeFromMembers");var le=n((e,t,r,a)=>{if(!(0,w.isTypeReference)(e))return $e(e,t,r,a);let o=(0,x.getReferenceType)(
112
- e,r);return o?$e(o,t,r,a):null},"getDatabaseTable"),lr=n(e=>!!e.name&&!!e.schema&&
113
- !!e.indexes,"isValidTable"),$e=n((e,t,r,a)=>ue(e)?qe(e,t,(0,x.getModelMembers)(e),
114
- r,a):(0,w.isTypeObject)(e)?qe(e,t,(0,x.getObjectMembers)(e),r,a):null,"getTypeTa\
115
- ble"),qe=n((e,t,r,a,o)=>{let s={},i=new Set(["name","schema","indexes"]);for(let p of r)
116
- if(!(!(0,w.isModelProperty)(p)||p.inherited))switch(p.name){default:o.push(new x.InvalidServicePropertyError(
117
- t.name,p.name,e.file));break;case"name":(s.name=(0,x.getPropertyString)(p))&&i.delete(
118
- p.name);break;case"schema":(s.schema=ie(p.value,e,a,o))&&i.delete(p.name);break;case"\
119
- indexes":(s.indexes=Re(p.value,e,a,o))&&i.delete(p.name);break;case"relations":s.
120
- relations=we(p.value,e,a,o);break;case"stream":s.stream=Ve(p.value,t,a,o);break}
121
- if(!lr(s))return o.push(new U([...i],e.file)),null;let l=pr(e,s.indexes,s.schema);
122
- return l.length?(o.push(...l),null):s},"getTypeFromMembers"),pr=n((e,t,r)=>{let a=r.
123
- properties,o=[];for(let{name:s,columns:i}of t)i.some(p=>!a[p])&&o.push(new _(s,e.
124
- file));return o},"validateIndexes");var pe=n(e=>{let t={},r=[];for(let a in e){let o=e[a];if(!L(o)||(0,u.isExternalDeclaration)(
125
- o))continue;let s={type:Y,extras:{}},i=new Set(["engine","tables"]),l=o.file;s.name=
126
- o.name;for(let m of(0,u.getModelMembers)(o))if(!(!(0,Be.isModelProperty)(m)||m.inherited))
127
- switch(m.name){default:r.push(new u.InvalidServicePropertyError(s.name,m.name,l));
128
- break;case"client":break;case"scalability":(s.scalability=Se(m.value,o,e,r))&&i.
129
- delete(m.name);break;case"engine":(s.engine=ve(m.value,o,e,r))&&i.delete(m.name);
130
- break;case"tables":(s.tables=cr(m,o,e,r))&&i.delete(m.name);break;case"variables":
131
- s.variables=(0,u.getLinkedVariableList)(m,r);break;case"services":s.services=(0,u.getLinkedServiceList)(
132
- m,e,r);break}if(!mr(s)){r.push(new j([...i],l));continue}let p=dr(o,s.tables);if(p.
133
- length){r.push(...p);continue}if(t[o.name]){r.push(new u.DuplicateServiceError(o.
134
- name,l));continue}t[o.name]=s}return{services:t,errors:r}},"getDatabaseServices"),
135
- mr=n(e=>!!e.name&&!!e.tables&&!!e.extras,"isValidService"),cr=n((e,t,r,a)=>{let o=(0,u.getPropertyTuple)(
136
- e)??[],s=[];for(let i of o){let l=le(i,t,r,a);l&&s.push(l)}return s},"getAllTabl\
137
- es"),dr=n((e,t)=>{let r=ur(t),a=[];for(let{relations:o,schema:s,indexes:i}of t){
138
- if(!o)continue;let l=s.properties;for(let p of o){let{sourceTable:m,sourceColumn:O,
139
- targetColumn:ne,targetAlias:me}=p;l[ne]||a.push(new S(ne,e.file)),l[me]&&a.push(
140
- new N(me,e.file));let se=r[m]?.schema.properties;se||a.push(new C(m,e.file)),se&&
141
- !se[O]&&a.push(new S(O,e.file));let Xe=r[m]?.indexes??[];p.sourceIndex=_e(Xe,O),
142
- p.targetIndex=_e(i,ne)}}return a},"validateRelations"),_e=n((e,t)=>e.find(({name:r})=>r===
143
- t)?.type,"getIndexType"),ur=n(e=>e.reduce((t,r)=>({...t,[r.name]:r}),{}),"getTab\
144
- leMap");var Ge=n(e=>L(e)?e.name:null,"getLinkedService");var Je=!1,br=n(()=>{Je||((0,Ke.registerTriggers)(),(0,Qe.registerTriggers)(),(0,We.createTrigger)(
145
- "@ez4/database",{"metadata:getServices":pe,"metadata:getLinkedService":Ge}),Je=!0)},
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.mjs CHANGED
@@ -1,144 +1,146 @@
1
- var he=Object.defineProperty;var a=(e,t)=>he(e,"name",{value:t,configurable:!0});import{registerTriggers as mt}from"@ez4/common/library";import{registerTriggers as ct}from"@ez4/schema/library";
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
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 at}from"@ez4/common/library";
4
- import{isModelProperty as nt}from"@ez4/reflection";var U="@ez4/database",bt=a(e=>e.type===U,"isDatabaseService");import{IncompleteTypeError as De}from"@ez4/common/library";var f=class extends De{static{a(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{a(this,"InvalidRelationsTypeError")}constructor(t){
6
- super("Invalid table relations type",void 0,"Database.Relations",t)}},y=class extends ve{constructor(r,n){
7
- super("Incorrect table relations type",r,"Database.Relations",n);this.schemaType=
8
- r}static{a(this,"IncorrectRelationsTypeError")}},x=class extends S{constructor(r,n){
9
- super(`Target ${r} must follow the pattern 'column@alias'.`,n);this.relationSource=
10
- r}static{a(this,"InvalidRelationTargetError")}},g=class extends S{constructor(r,n){
11
- super(`Relation table ${r} don't exists.`,n);this.relationTable=r}static{a(this,
12
- "InvalidRelationTableError")}},b=class extends S{constructor(r,n){super(`Relatio\
13
- n column ${r} don't exists.`,n);this.relationColumn=r}static{a(this,"InvalidRela\
14
- tionColumnError")}},M=class extends S{constructor(r,n){super(`Relation alias ${r}\
15
- can't override table columns.`,n);this.relationAlias=r}static{a(this,"InvalidRe\
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
16
  lationAliasError")}};import{InvalidServicePropertyError as je,getModelMembers as Ae,getPropertyNumber as Re,
17
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{a(this,"IncompleteScalabilityError")}constructor(t,r){
19
- super("Incomplete database scalability",t,r)}};import{hasHeritageType as c,isClassDeclaration as ke,isModelDeclaration as q}from"@ez4/common/library";
20
- import{isTypeCallback as we,isTypeFunction as Oe}from"@ez4/reflection";var h=a(e=>ke(e)&&c(e,"Database.Service"),"isDatabaseService"),D=a(e=>q(e)&&c(e,
21
- "Database.Engine"),"isDatabaseEngine"),_=a(e=>q(e)&&c(e,"Database.Table"),"isDat\
22
- abaseTable"),B=a(e=>we(e)||Oe(e),"isStreamHandler"),G=a(e=>c(e,"Database.Relatio\
23
- ns"),"isTableRelations"),J=a(e=>c(e,"Database.Indexes"),"isTableIndexes"),K=a(e=>c(
24
- e,"Database.Schema"),"isTableSchema"),Q=a(e=>c(e,"Database.Stream"),"isTableStre\
25
- am");var Y=a((e,t,r,n)=>{if(!Fe(e))return W(e,t,n);let o=Ce(e,r);return o?W(o,t,n):null},
26
- "getDatabaseScalability"),Ue=a(e=>V(e.minCapacity)&&V(e.maxCapacity),"isValidSca\
27
- lability"),W=a((e,t,r)=>D(e)?X(e,t,Ae(e),r):He(e)?X(e,t,ze(e),r):null,"getTypeSc\
28
- alability"),X=a((e,t,r,n)=>{let o={},s=new Set(["minCapacity","maxCapacity"]);for(let i of r)
29
- if(!(!Ne(i)||i.inherited))switch(i.name){default:n.push(new je(t.name,i.name,e.file));
30
- break;case"minCapacity":case"maxCapacity":let l=Re(i);V(l)&&(o[i.name]=l,s.delete(
31
- i.name));break}return Ue(o)?o:(n.push(new I([...s],e.file)),null)},"getTypeFromM\
32
- embers");import{isModelProperty as $e,isTypeObject as qe,isTypeReference as _e}from"@ez4/reflection";
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
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{a(this,"IncompleteEngineError")}constructor(t,r){super(
35
- "Incomplete database engine",t,r)}};var ee=a((e,t,r,n)=>{if(!_e(e))return Z(e,t,n);let o=Qe(e,r);return o?Z(o,t,n):null},
36
- "getDatabaseEngine"),We=a(e=>!!e.name&&!!e.parametersMode&&!!e.transactionMode&&
37
- !!e.insensitiveMode&&!!e.paginationMode&&!!e.orderMode,"isValidEngine"),Z=a((e,t,r)=>D(
38
- e)?L(e,t,Ge(e),r):qe(e)?L(e,t,Je(e),r):null,"getTypeEngine"),L=a((e,t,r,n)=>{let o={},
39
- s=new Set(["name","parametersMode","transactionMode","insensitiveMode","paginati\
40
- onMode","orderMode"]);for(let i of r)if(!(!$e(i)||i.inherited))switch(i.name){default:
41
- n.push(new Be(t.name,i.name,e.file));break;case"name":(o.name=Ke(i))&&s.delete(i.
42
- name);break;case"parametersMode":(o.parametersMode=d(i,["index","both"]))&&s.delete(
43
- i.name);break;case"transactionMode":(o.transactionMode=d(i,["static","interactiv\
44
- e"]))&&s.delete(i.name);break;case"insensitiveMode":(o.insensitiveMode=d(i,["uns\
45
- upported","enabled"]))&&s.delete(i.name);break;case"paginationMode":(o.paginationMode=
46
- d(i,["cursor","offset"]))&&s.delete(i.name);break;case"orderMode":(o.orderMode=d(
47
- i,["any","index"]))&&s.delete(i.name);break;case"lockMode":(o.lockMode=d(i,["uns\
48
- upported","supported"]))&&s.delete(i.name);break}return We(o)?o:(n.push(new v([...s],
49
- e.file)),null)},"getTypeFromMembers");import{InvalidServicePropertyError as qr,getModelMembers as _r,getObjectMembers as Br,
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
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{a(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{a(this,"InvalidIndexesTypeError")}constructor(t){super(
53
- "Invalid table indexes type",void 0,"Database.Indexes",t)}},k=class extends Ye{constructor(r,n){
54
- super("Incorrect table indexes type",r,"Database.Indexes",n);this.schemaType=r}static{
55
- a(this,"IncorrectIndexesTypeError")}},w=class extends re{constructor(r,n){super(
56
- `Invalid index type, ${r} must follow one of the Index options.`,n);this.indexName=
57
- r}static{a(this,"InvalidIndexTypeError")}},O=class extends re{constructor(r,n){super(
58
- `Invalid index reference, ${r} must be valid column.`,n);this.indexName=r}static{
59
- a(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 ar,isTypeObject as nr,
61
- isTypeReference as sr}from"@ez4/reflection";var ae=a((e,t,r,n)=>{if(!sr(e))return te(e,t,n);let o=or(e,r);return o?te(o,t,n):
62
- null},"getTableRelations"),te=a((e,t,r)=>nr(e)?oe(e,rr(e),r):Le(e)?G(e)?oe(e,er(
63
- e),r):(r.push(new y(e.name,e.file)),null):(r.push(new T(t.file)),null),"getTypeR\
64
- elations"),oe=a((e,t,r)=>{let n=[];for(let o of t){if(!ar(o)||o.inherited)continue;
65
- let s=tr(o),i=o.name;if(!s)return r.push(new x(i,e.file)),null;let[l,p]=i.split(
66
- "@",2),[m,u]=s.split(":",2);n.push({sourceTable:m,sourceColumn:u,targetColumn:l,
67
- targetAlias:p})}return n},"getTypeFromMembers");import{isModelDeclaration as lr,getModelMembers as pr,getObjectMembers as mr,getPropertyString as cr,
68
- getReferenceType as dr}from"@ez4/common/library";import{isModelProperty as ur,isTypeObject as br,
69
- isTypeReference as fr}from"@ez4/reflection";var ir=(o=>(o.Primary="primary",o.Secondary="secondary",o.Unique="unique",o.TTL=
70
- "ttl",o))(ir||{});var ie=a((e,t,r,n)=>{if(!fr(e))return ne(e,t,n);let o=dr(e,r);return o?ne(o,t,n):
71
- null},"getTableIndexes"),ne=a((e,t,r)=>br(e)?se(e,mr(e),r):lr(e)?J(e)?se(e,pr(e),
72
- r):(r.push(new k(e.name,e.file)),null):(r.push(new P(t.file)),null),"getTypeInde\
73
- xes"),se=a((e,t,r)=>{let n=[];for(let o of t){if(!ur(o)||o.inherited)continue;let s=o.
74
- name,i=cr(o);switch(i){case"primary":case"secondary":case"unique":case"ttl":n.push(
75
- {name:s,columns:s.split(":"),type:i});break;default:return r.push(new w(s,e.file)),
76
- null}}return n},"getTypeFromMembers");import{createSchemaContext as xr,getObjectSchema as gr,isObjectSchema as Mr}from"@ez4/schema/library";
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
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{a(this,"InvalidSchemaTypeError")}constructor(t){super(
79
- "Invalid table schema type",void 0,"Database.Schema",t)}},A=class extends Tr{constructor(r,n){
80
- super("Incorrect table schema type",r,"Database.Schema",n);this.schemaType=r}static{
81
- a(this,"IncorrectSchemaTypeError")}};var me=a((e,t,r,n)=>{if(!Dr(e))return le(e,t,r,n);let o=Sr(e,r);return o?le(o,t,
82
- r,n):null},"getTableSchema"),le=a((e,t,r,n)=>hr(e)?pe(e,r):Ir(e)?K(e)?pe(e,r):(n.
83
- push(new A(e.name,e.file)),null):(n.push(new j(t.file)),null),"getTypeSchema"),pe=a(
84
- (e,t)=>{let r=gr(e,t,xr({nullish:!0}));return r&&Mr(r)?r:null},"getSchema");import{InvalidServicePropertyError as Or,isModelDeclaration as jr,getLinkedVariableList as Ar,
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,
85
86
  getModelMembers as Rr,getObjectMembers as zr,getPropertyNumber as Cr,getServiceListener as Nr,
86
87
  getReferenceType as Hr}from"@ez4/common/library";import{isModelProperty as Fr,isTypeObject as Ur,
87
- 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{a(this,"IncompleteStreamError")}constructor(t,r){super(
88
- "Incomplete table stream",t,r)}},z=class extends Pr{static{a(this,"InvalidStream\
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\
89
90
  TypeError")}constructor(t){super("Invalid table stream type",void 0,"Database.St\
90
- ream",t)}},C=class extends Er{constructor(r,n){super("Incorrect table stream typ\
91
- e",r,"Database.Stream",n);this.streamType=r}static{a(this,"IncorrectStreamTypeEr\
92
- ror")}};import{IncompleteTypeError as kr}from"@ez4/common/library";var N=class extends kr{static{a(this,"IncompleteHandlerError")}constructor(t,r){
93
- super("Incomplete stream handler",t,r)}};var ce=a((e,t,r)=>{if(!B(e))return null;let{description:n,module:o}=e,s={...n&&{
94
- description:n},...o&&{module:o}},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&&wr(s)?s:(r.push(new N([...i],e.file)),null)},"getStreamHan\
97
- dler"),wr=a(e=>!!e.name&&!!e.file,"isValidHandler");var be=a((e,t,r,n)=>{if(!Vr(e))return de(e,t,r,n);let o=Hr(e,r);return o?de(o,t,
98
- r,n):null},"getTableStream"),$r=a(e=>!!e.handler,"isValidStream"),de=a((e,t,r,n)=>Ur(
99
- e)?ue(e,t,zr(e),r,n):jr(e)?Q(e)?ue(e,t,Rr(e),r,n):(n.push(new C(e.name,e.file)),
100
- null):(n.push(new z(t.file)),null),"getTypeStream"),ue=a((e,t,r,n,o)=>{let s={},
101
- i=new Set(["handler"]);for(let l of r)if(!(!Fr(l)||l.inherited))switch(l.name){default:
102
- o.push(new Or(t.name,l.name,e.file));break;case"handler":s.handler=ce(l.value,n,
103
- o);break;case"listener":s.listener=Nr(l.value,o);break;case"memory":case"logRete\
104
- ntion":case"timeout":s[l.name]=Cr(l);break;case"variables":s.variables=Ar(l,o);break}
105
- return $r(s)?s:(o.push(new R([...i],e.file)),null)},"getTypeFromMembers");var ye=a((e,t,r,n)=>{if(!Wr(e))return fe(e,t,r,n);let o=Jr(e,r);return o?fe(o,t,
106
- r,n):null},"getDatabaseTable"),Xr=a(e=>!!e.name&&!!e.schema&&!!e.indexes,"isVali\
107
- dTable"),fe=a((e,t,r,n)=>_(e)?Te(e,t,_r(e),r,n):Qr(e)?Te(e,t,Br(e),r,n):null,"ge\
108
- tTypeTable"),Te=a((e,t,r,n,o)=>{let s={},i=new Set(["name","schema","indexes"]);
109
- for(let p of r)if(!(!Kr(p)||p.inherited))switch(p.name){default:o.push(new qr(t.
110
- name,p.name,e.file));break;case"name":(s.name=Gr(p))&&i.delete(p.name);break;case"\
111
- schema":(s.schema=me(p.value,e,n,o))&&i.delete(p.name);break;case"indexes":(s.indexes=
112
- ie(p.value,e,n,o))&&i.delete(p.name);break;case"relations":s.relations=ae(p.value,
113
- e,n,o);break;case"stream":s.stream=be(p.value,t,n,o);break}if(!Xr(s))return o.push(
114
- new E([...i],e.file)),null;let l=Yr(e,s.indexes,s.schema);return l.length?(o.push(
115
- ...l),null):s},"getTypeFromMembers"),Yr=a((e,t,r)=>{let n=r.properties,o=[];for(let{
116
- name:s,columns:i}of t)i.some(p=>!n[p])&&o.push(new O(s,e.file));return o},"valid\
117
- ateIndexes");var ge=a(e=>{let t={},r=[];for(let n in e){let o=e[n];if(!h(o)||et(o))continue;let s={
118
- type:U,extras:{}},i=new Set(["engine","tables"]),l=o.file;s.name=o.name;for(let m of at(
119
- o))if(!(!nt(m)||m.inherited))switch(m.name){default:r.push(new Lr(s.name,m.name,
120
- l));break;case"client":break;case"scalability":(s.scalability=Y(m.value,o,e,r))&&
121
- i.delete(m.name);break;case"engine":(s.engine=ee(m.value,o,e,r))&&i.delete(m.name);
122
- break;case"tables":(s.tables=it(m,o,e,r))&&i.delete(m.name);break;case"variables":
123
- s.variables=tt(m,r);break;case"services":s.services=rt(m,e,r);break}if(!st(s)){r.
124
- push(new f([...i],l));continue}let p=lt(o,s.tables);if(p.length){r.push(...p);continue}
125
- if(t[o.name]){r.push(new Zr(o.name,l));continue}t[o.name]=s}return{services:t,errors:r}},
126
- "getDatabaseServices"),st=a(e=>!!e.name&&!!e.tables&&!!e.extras,"isValidService"),
127
- it=a((e,t,r,n)=>{let o=ot(e)??[],s=[];for(let i of o){let l=ye(i,t,r,n);l&&s.push(
128
- l)}return s},"getAllTables"),lt=a((e,t)=>{let r=pt(t),n=[];for(let{relations:o,schema:s,
129
- indexes:i}of t){if(!o)continue;let l=s.properties;for(let p of o){let{sourceTable:m,
130
- sourceColumn:u,targetColumn:H,targetAlias:$}=p;l[H]||n.push(new b(H,e.file)),l[$]&&
131
- n.push(new M($,e.file));let F=r[m]?.schema.properties;F||n.push(new g(m,e.file)),
132
- F&&!F[u]&&n.push(new b(u,e.file));let Ie=r[m]?.indexes??[];p.sourceIndex=xe(Ie,u),
133
- p.targetIndex=xe(i,H)}}return n},"validateRelations"),xe=a((e,t)=>e.find(({name:r})=>r===
134
- t)?.type,"getIndexType"),pt=a(e=>e.reduce((t,r)=>({...t,[r.name]:r}),{}),"getTab\
135
- leMap");var Me=a(e=>h(e)?e.name:null,"getLinkedService");var Se=!1,fa=a(()=>{Se||(mt(),ct(),dt("@ez4/database",{"metadata:getServices":ge,
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,
136
138
  "metadata:getLinkedService":Me}),Se=!0)},"registerTriggers");export{v as IncompleteEngineError,N as IncompleteHandlerError,I as IncompleteScalabilityError,
137
- f as IncompleteServiceError,R as IncompleteStreamError,E as IncompleteTableError,
139
+ b as IncompleteServiceError,R as IncompleteStreamError,E as IncompleteTableError,
138
140
  k as IncorrectIndexesTypeError,y as IncorrectRelationsTypeError,A as IncorrectSchemaTypeError,
139
141
  C as IncorrectStreamTypeError,ir as Index,O as InvalidIndexReferenceError,w as InvalidIndexTypeError,
140
- P as InvalidIndexesTypeError,M as InvalidRelationAliasError,b as InvalidRelationColumnError,
142
+ P as InvalidIndexesTypeError,M as InvalidRelationAliasError,u as InvalidRelationColumnError,
141
143
  g as InvalidRelationTableError,x as InvalidRelationTargetError,T as InvalidRelationsTypeError,
142
144
  j as InvalidSchemaTypeError,z as InvalidStreamTypeError,U as ServiceType,ge as getDatabaseServices,
143
- ye as getDatabaseTable,me as getTableSchema,bt as isDatabaseService,fa as registerTriggers};
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
  */
@@ -43,8 +43,9 @@ type MergeRelations<T extends Database.Table[], C extends Database.Table[], S ex
43
43
  */
44
44
  type TableRelation<T extends Database.Table[], C extends Database.Table, S extends Record<string, Database.Schema>, I extends Record<string, Database.Indexes>> = C extends {
45
45
  name: infer N;
46
+ } ? N extends string ? C extends {
46
47
  relations: infer R;
47
- } ? N extends string ? R extends AnyObject ? {
48
+ } ? R extends AnyObject ? {
48
49
  [P in N]: {
49
50
  indexes: RelationIndexes<N, I, R>;
50
51
  filters: FilterableRelationSchemas<S, R>;
@@ -53,7 +54,16 @@ type TableRelation<T extends Database.Table[], C extends Database.Table, S exten
53
54
  selects: SelectRelationSchemas<S, I, R> & NestedSelectRelationSchemas<T, S, I, R>;
54
55
  records: MergeObject<RecordsRelationSchemas<PropertyType<N, S>, S, I, R>, NestedRecordsRelationSchemas<T, S, I, R>>;
55
56
  };
56
- } : {} : {} : {};
57
+ } : {} : {
58
+ [P in N]: {
59
+ indexes: never;
60
+ filters: {};
61
+ updates: {};
62
+ inserts: {};
63
+ selects: {};
64
+ records: {};
65
+ };
66
+ } : {} : {};
57
67
  /**
58
68
  * Check whether the given column is a primary index.
59
69
  */
@@ -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.30.0",
4
+ "version": "0.32.0",
5
5
  "author": "Silas B.",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -46,10 +46,10 @@
46
46
  "live:publish": "npm run build && npm publish --access public"
47
47
  },
48
48
  "dependencies": {
49
- "@ez4/common": "^0.30.0",
50
- "@ez4/project": "^0.30.0",
51
- "@ez4/reflection": "^0.30.0",
52
- "@ez4/schema": "^0.30.0",
53
- "@ez4/utils": "^0.30.0"
49
+ "@ez4/common": "^0.32.0",
50
+ "@ez4/project": "^0.32.0",
51
+ "@ez4/reflection": "^0.32.0",
52
+ "@ez4/schema": "^0.32.0",
53
+ "@ez4/utils": "^0.32.0"
54
54
  }
55
55
  }