@ez4/database 0.36.0 → 0.37.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,154 +1,154 @@
1
- "use strict";var X=Object.defineProperty;var Xe=Object.getOwnPropertyDescriptor;var Ye=Object.getOwnPropertyNames;var Ze=Object.prototype.hasOwnProperty;var a=(e,t)=>X(e,"name",{value:t,configurable:!0});var Le=(e,t)=>{for(var r in t)X(e,r,{get:t[r],enumerable:!0})},er=(e,t,r,n)=>{if(t&&
2
- typeof t=="object"||typeof t=="function")for(let o of Ye(t))!Ze.call(e,o)&&o!==r&&
3
- X(e,o,{get:()=>t[o],enumerable:!(n=Xe(t,o))||n.enumerable});return e};var rr=e=>er(X({},"__esModule",{value:!0}),e);var br={};Le(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:()=>tr,registerTriggers:()=>fr});
11
- module.exports=rr(br);var Je=require("@ez4/common/library"),Ke=require("@ez4/schema/library"),Qe=require("@ez4/project/library");var f=require("@ez4/common/library"),Be=require("@ez4/reflection");var Y="@ez4/database",tr=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 u=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 b=require("@ez4/common/library"),Z=require("@ez4/reflection");var L=a(e=>(0,b.isClassDeclaration)(e)&&(0,b.hasHeritageType)(e,"Database.Servic\
25
- e"),"isDatabaseService"),ee=a(e=>(0,b.isModelDeclaration)(e)&&(0,b.hasHeritageType)(
26
- e,"Database.Engine"),"isDatabaseEngine"),fe=a(e=>(0,b.isModelDeclaration)(e)&&(0,b.hasHeritageType)(
27
- e,"Database.Table"),"isDatabaseTable"),be=a(e=>(0,Z.isTypeCallback)(e)||(0,Z.isTypeFunction)(
28
- e),"isStreamHandler"),ue=a(e=>(0,b.hasHeritageType)(e,"Database.Relations"),"isT\
29
- ableRelations"),Te=a(e=>(0,b.hasHeritageType)(e,"Database.Indexes"),"isTableInde\
30
- xes"),ye=a(e=>(0,b.hasHeritageType)(e,"Database.Schema"),"isTableSchema"),xe=a(e=>(0,b.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,u.getReferenceType)(
32
- e,r);if(o)return ge(o,t,n)},"getDatabaseScalability"),or=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,u.getModelMembers)(e),r);if((0,I.isTypeObject)(e))return Me(
35
- e,t,(0,u.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 u.InvalidServicePropertyError(
38
- t.name,i.name,e.file));break;case"minCapacity":case"maxCapacity":let p=(0,u.getPropertyNumber)(
39
- i);(0,re.isAnyNumber)(p)&&(o[i.name]=p,s.delete(i.name));break}if(!or(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"),nr=a(e=>!!e.name&&!!e.parametersMode&&
1
+ "use strict";var Q=Object.defineProperty;var rr=Object.getOwnPropertyDescriptor;var tr=Object.getOwnPropertyNames;var nr=Object.prototype.hasOwnProperty;var a=(e,t)=>Q(e,"name",{value:t,configurable:!0});var or=(e,t)=>{for(var r in t)Q(e,r,{get:t[r],enumerable:!0})},ar=(e,t,r,o)=>{if(t&&
2
+ typeof t=="object"||typeof t=="function")for(let n of tr(t))!nr.call(e,n)&&n!==r&&
3
+ Q(e,n,{get:()=>t[n],enumerable:!(o=rr(t,n))||o.enumerable});return e};var sr=e=>ar(Q({},"__esModule",{value:!0}),e);var xr={};or(xr,{IncompleteEngineError:()=>F,IncompleteHandlerError:()=>K,IncompleteScalabilityError:()=>N,
4
+ IncompleteServiceError:()=>O,IncompleteStreamError:()=>B,IncompleteTableError:()=>q,
5
+ IncorrectIndexesTypeError:()=>$,IncorrectRelationsTypeError:()=>j,IncorrectSchemaTypeError:()=>_,
6
+ IncorrectStreamTypeError:()=>J,Index:()=>je,InvalidIndexReferenceError:()=>H,InvalidIndexTypeError:()=>V,
7
+ InvalidIndexesTypeError:()=>U,InvalidRelationAliasError:()=>C,InvalidRelationColumnError:()=>I,
8
+ InvalidRelationTableError:()=>z,InvalidRelationTargetError:()=>A,InvalidRelationsTypeError:()=>w,
9
+ InvalidSchemaTypeError:()=>W,InvalidStreamTypeError:()=>G,ServiceType:()=>se,createDatabaseService:()=>ie,
10
+ getDatabaseServices:()=>ce,getDatabaseTable:()=>le,getTableSchema:()=>pe,isDatabaseService:()=>ir,
11
+ registerTriggers:()=>yr});module.exports=sr(xr);var Ye=require("@ez4/common/library"),Ze=require("@ez4/schema/library"),Le=require("@ez4/project/library");var f=require("@ez4/common/library"),Ke=require("@ez4/reflection"),Qe=require("@ez4/utils");var de=require("@ez4/project/library");var se="@ez4/database",ir=a(e=>e.type===se,"isDatabaseService"),ie=a(e=>({...(0,de.createServiceMetadata)(
12
+ se,e),variables:{},services:{}}),"createDatabaseService");var fe=require("@ez4/common/library");var O=class extends fe.IncompleteTypeError{static{a(this,"IncompleteServiceError")}constructor(t,r){
13
+ super("Incomplete database service",t,r)}};var g=require("@ez4/common/library");var w=class extends g.InvalidTypeError{static{a(this,"InvalidRelationsTypeError")}constructor(t){
14
+ super("Invalid table relations type",void 0,"Database.Relations",t)}},j=class extends g.IncorrectTypeError{constructor(r,o){
15
+ super("Incorrect table relations type",r,"Database.Relations",o);this.schemaType=
16
+ r}static{a(this,"IncorrectRelationsTypeError")}},A=class extends g.TypeError{constructor(r,o){
17
+ super(`Target ${r} must follow the pattern 'column@alias'.`,o);this.relationSource=
18
+ r}static{a(this,"InvalidRelationTargetError")}},z=class extends g.TypeError{constructor(r,o){
19
+ super(`Relation table ${r} don't exists.`,o);this.relationTable=r}static{a(this,
20
+ "InvalidRelationTableError")}},I=class extends g.TypeError{constructor(r,o){super(
21
+ `Relation column ${r} don't exists.`,o);this.relationColumn=r}static{a(this,"Inv\
22
+ alidRelationColumnError")}},C=class extends g.TypeError{constructor(r,o){super(`\
23
+ Relation alias ${r} can't override table columns.`,o);this.relationAlias=r}static{
24
+ a(this,"InvalidRelationAliasError")}};var T=require("@ez4/common/library"),S=require("@ez4/reflection"),L=require("@ez4/utils");var be=require("@ez4/common/library");var N=class extends be.IncompleteTypeError{static{a(this,"IncompleteScalabilityE\
25
+ rror")}constructor(t,r){super("Incomplete database scalability",t,r)}};var b=require("@ez4/common/library"),X=require("@ez4/reflection");var Y=a(e=>(0,b.isClassDeclaration)(e)&&(0,b.hasHeritageType)(e,"Database.Servic\
26
+ e"),"isDatabaseService"),Z=a(e=>(0,b.isModelDeclaration)(e)&&(0,b.hasHeritageType)(
27
+ e,"Database.Engine"),"isDatabaseEngine"),Te=a(e=>(0,b.isModelDeclaration)(e)&&(0,b.hasHeritageType)(
28
+ e,"Database.Table"),"isDatabaseTable"),ue=a(e=>(0,X.isTypeCallback)(e)||(0,X.isTypeFunction)(
29
+ e),"isStreamHandler"),ye=a(e=>(0,b.hasHeritageType)(e,"Database.Relations"),"isT\
30
+ ableRelations"),xe=a(e=>(0,b.hasHeritageType)(e,"Database.Indexes"),"isTableInde\
31
+ xes"),ge=a(e=>(0,b.hasHeritageType)(e,"Database.Schema"),"isTableSchema"),Me=a(e=>(0,b.hasHeritageType)(
32
+ e,"Database.Stream"),"isTableStream");var he=a((e,t,r,o)=>{if(!(0,S.isTypeReference)(e))return Ie(e,t,o);let n=(0,T.getReferenceType)(
33
+ e,r);if(n)return Ie(n,t,o)},"getDatabaseScalability"),pr=a(e=>(0,L.isAnyNumber)(
34
+ e.minCapacity)&&(0,L.isAnyNumber)(e.maxCapacity),"isValidScalability"),Ie=a((e,t,r)=>{
35
+ if(Z(e))return Se(e,t,(0,T.getModelMembers)(e),r);if((0,S.isTypeObject)(e))return Se(
36
+ e,t,(0,T.getObjectMembers)(e),r)},"getTypeScalability"),Se=a((e,t,r,o)=>{let n={},
37
+ s=new Set(["minCapacity","maxCapacity"]);for(let i of r)if(!(!(0,S.isModelProperty)(
38
+ i)||i.inherited))switch(i.name){default:o.push(new T.InvalidServicePropertyError(
39
+ t.name,i.name,e.file));break;case"minCapacity":case"maxCapacity":let p=(0,T.getPropertyNumber)(
40
+ i);(0,L.isAnyNumber)(p)&&(n[i.name]=p,s.delete(i.name));break}if(!pr(n)){o.push(
41
+ new N([...s],e.file));return}return n},"getTypeFromMembers");var h=require("@ez4/reflection"),m=require("@ez4/common/library");var ve=require("@ez4/common/library");var F=class extends ve.IncompleteTypeError{static{a(this,"IncompleteEngineError")}constructor(t,r){
42
+ super("Incomplete database engine",t,r)}};var Re=a((e,t,r,o)=>{if(!(0,h.isTypeReference)(e))return De(e,t,o);let n=(0,m.getReferenceType)(
43
+ e,r);if(n)return De(n,t,o)},"getDatabaseEngine"),lr=a(e=>!!e.name&&!!e.parametersMode&&
43
44
  !!e.transactionMode&&!!e.insensitiveMode&&!!e.paginationMode&&!!e.orderMode,"isV\
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",
45
+ alidEngine"),De=a((e,t,r)=>{if(Z(e))return Ee(e,t,(0,m.getModelMembers)(e),r);if((0,h.isTypeObject)(
46
+ e))return Ee(e,t,(0,m.getObjectMembers)(e),r)},"getTypeEngine"),Ee=a((e,t,r,o)=>{
47
+ let n={},s=new Set(["name","parametersMode","transactionMode","insensitiveMode",
47
48
  "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(!nr(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(!ue(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{
49
+ inherited))switch(i.name){default:o.push(new m.InvalidServicePropertyError(t.name,
50
+ i.name,e.file));break;case"name":(n.name=(0,m.getPropertyString)(i))&&s.delete(i.
51
+ name);break;case"parametersMode":(n.parametersMode=(0,m.getPropertyStringIn)(i,[
52
+ "index","both"]))&&s.delete(i.name);break;case"transactionMode":(n.transactionMode=
53
+ (0,m.getPropertyStringIn)(i,["static","interactive"]))&&s.delete(i.name);break;case"\
54
+ insensitiveMode":(n.insensitiveMode=(0,m.getPropertyStringIn)(i,["unsupported","\
55
+ enabled"]))&&s.delete(i.name);break;case"paginationMode":(n.paginationMode=(0,m.getPropertyStringIn)(
56
+ i,["cursor","offset"]))&&s.delete(i.name);break;case"orderMode":(n.orderMode=(0,m.getPropertyStringIn)(
57
+ i,["any","index"]))&&s.delete(i.name);break;case"lockMode":(n.lockMode=(0,m.getPropertyStringIn)(
58
+ i,["unsupported","supported"]))&&s.delete(i.name);break}if(!lr(n)){o.push(new F(
59
+ [...s],e.file));return}return n},"getTypeFromMembers");var x=require("@ez4/common/library"),P=require("@ez4/reflection");var Pe=require("@ez4/common/library");var q=class extends Pe.IncompleteTypeError{static{a(this,"IncompleteTableError")}constructor(t,r){
60
+ super("Incomplete database table",t,r)}};var M=require("@ez4/common/library");var U=class extends M.InvalidTypeError{static{a(this,"InvalidIndexesTypeError")}constructor(t){
61
+ super("Invalid table indexes type",void 0,"Database.Indexes",t)}},$=class extends M.IncorrectTypeError{constructor(r,o){
62
+ super("Incorrect table indexes type",r,"Database.Indexes",o);this.schemaType=r}static{
63
+ a(this,"IncorrectIndexesTypeError")}},V=class extends M.TypeError{constructor(r,o){
64
+ super(`Invalid index type, ${r} must follow one of the Index options.`,o);this.indexName=
65
+ r}static{a(this,"InvalidIndexTypeError")}},H=class extends M.TypeError{constructor(r,o){
66
+ super(`Invalid index reference, ${r} must be valid column.`,o);this.indexName=r}static{
67
+ a(this,"InvalidIndexReferenceError")}};var u=require("@ez4/common/library"),v=require("@ez4/reflection");var we=a((e,t,r,o)=>{if(!(0,v.isTypeReference)(e))return ke(e,t,o);let n=(0,u.getReferenceType)(
68
+ e,r);if(n)return ke(n,t,o)},"getTableRelations"),ke=a((e,t,r)=>{if((0,v.isTypeObject)(
69
+ e))return Oe(e,(0,u.getObjectMembers)(e),r);if(!(0,u.isModelDeclaration)(e)){r.push(
70
+ new w(t.file));return}if(!ye(e)){r.push(new j(e.name,e.file));return}return Oe(e,
71
+ (0,u.getModelMembers)(e),r)},"getTypeRelations"),Oe=a((e,t,r)=>{let o=[];for(let n of t){
72
+ if(!(0,v.isModelProperty)(n)||n.inherited)continue;let s=(0,u.getPropertyString)(
73
+ n),i=n.name;if(!s){r.push(new A(i,e.file));return}let[p,l]=i.split("@",2),[c,k]=s.
74
+ split(":",2);o.push({sourceTable:c,sourceColumn:k,targetColumn:p,targetAlias:l})}
75
+ return o},"getTypeFromMembers");var y=require("@ez4/common/library"),D=require("@ez4/reflection");var je=(n=>(n.Primary="primary",n.Secondary="secondary",n.Unique="unique",n.TTL=
76
+ "ttl",n))(je||{});var Ce=a((e,t,r,o)=>{if(!(0,D.isTypeReference)(e))return Ae(e,t,o);let n=(0,y.getReferenceType)(
77
+ e,r);if(n)return Ae(n,t,o)},"getTableIndexes"),Ae=a((e,t,r)=>{if((0,D.isTypeObject)(
78
+ e))return ze(e,(0,y.getObjectMembers)(e),r);if(!(0,y.isModelDeclaration)(e)){r.push(
79
+ new U(t.file));return}if(!xe(e)){r.push(new $(e.name,e.file));return}return ze(e,
80
+ (0,y.getModelMembers)(e),r)},"getTypeIndexes"),ze=a((e,t,r)=>{let o=[];for(let n of t){
81
+ if(!(0,D.isModelProperty)(n)||n.inherited)continue;let s=n.name,i=(0,y.getPropertyString)(
82
+ n);switch(i){case"primary":case"secondary":case"unique":case"ttl":o.push({name:s,
83
+ columns:s.split(":"),type:i});break;default:r.push(new V(s,e.file));return}}return o},
84
+ "getTypeFromMembers");var re=require("@ez4/reflection"),te=require("@ez4/common/library"),ne=require("@ez4/schema"),
85
+ qe=require("@ez4/schema/library");var ee=require("@ez4/common/library");var W=class extends ee.InvalidTypeError{static{a(this,"InvalidSchemaTypeError")}constructor(t){
86
+ super("Invalid table schema type",void 0,"Database.Schema",t)}},_=class extends ee.IncorrectTypeError{constructor(r,o){
87
+ super("Incorrect table schema type",r,"Database.Schema",o);this.schemaType=r}static{
88
+ a(this,"IncorrectSchemaTypeError")}};var pe=a((e,t,r,o)=>{if(!(0,re.isTypeReference)(e))return Ne(e,t,r,o);let n=(0,te.getReferenceType)(
89
+ e,r);if(n)return Ne(n,t,r,o)},"getTableSchema"),Ne=a((e,t,r,o)=>{if((0,re.isTypeObject)(
90
+ e))return Fe(e,r);if(!(0,te.isModelDeclaration)(e)){o.push(new W(t.file));return}
91
+ if(!ge(e)){o.push(new _(e.name,e.file));return}return Fe(e,r)},"getTypeSchema"),
92
+ Fe=a((e,t)=>{let r=(0,qe.getObjectSchema)(e,t,(0,ne.createSchemaContext)({nullish:!0}));
93
+ if(r&&(0,ne.isObjectSchema)(r))return r},"getSchema");var d=require("@ez4/common/library"),R=require("@ez4/reflection");var E=require("@ez4/common/library");var B=class extends E.IncompleteTypeError{static{a(this,"IncompleteStreamError")}constructor(t,r){
94
+ super("Incomplete table stream",t,r)}},G=class extends E.InvalidTypeError{static{
93
95
  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(!be(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&&ar(s))return s;r.push(new W([...i],e.file))},"getStreamHandler"),ar=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"),sr=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"\
96
+ void 0,"Database.Stream",t)}},J=class extends E.IncorrectTypeError{constructor(r,o){
97
+ super("Incorrect table stream type",r,"Database.Stream",o);this.streamType=r}static{
98
+ a(this,"IncorrectStreamTypeError")}};var $e=require("@ez4/common/library");var Ue=require("@ez4/common/library");var K=class extends Ue.IncompleteTypeError{static{a(this,"IncompleteHandlerError")}constructor(t,r){
99
+ super("Incomplete stream handler",t,r)}};var Ve=a((e,t,r)=>{if(!ue(e))return;let o=(0,$e.getFunctionSignature)(e),n=new Set(
100
+ ["change"]);if(e.parameters&&n.delete("change"),!o||n.size){r.push(new K([...n],
101
+ e.file));return}return o},"getStreamHandler");var _e=a((e,t,r,o)=>{if(!(0,R.isTypeReference)(e))return He(e,t,r,o);let n=(0,d.getReferenceType)(
102
+ e,r);if(n)return He(n,t,r,o)},"getTableStream"),cr=a(e=>!!e.handler,"isValidStre\
103
+ am"),He=a((e,t,r,o)=>{if((0,R.isTypeObject)(e))return We(e,t,(0,d.getObjectMembers)(
104
+ e),r,o);if(!(0,d.isModelDeclaration)(e)){o.push(new G(t.file));return}if(!Me(e)){
105
+ o.push(new J(e.name,e.file));return}return We(e,t,(0,d.getModelMembers)(e),r,o)},
106
+ "getTypeStream"),We=a((e,t,r,o,n)=>{let s={},i=new Set(["handler"]);for(let p of r)
107
+ if(!(!(0,R.isModelProperty)(p)||p.inherited))switch(p.name){default:n.push(new d.InvalidServicePropertyError(
108
+ t.name,p.name,e.file));break;case"handler":s.handler=Ve(p.value,o,n);break;case"\
109
+ listener":s.listener=(0,d.getServiceListener)(p.value,n);break;case"memory":case"\
110
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(sr(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"),ir=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(!ir(s)){o.push(new U([...i],e.file));
123
- return}let p=pr(e,s.indexes,s.schema);if(p.length){o.push(...p);return}return s},
124
- "getTypeFromMembers"),pr=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=cr(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(!mr(s)){r.push(new j([...i],p));continue}
134
- let m=lr(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"),mr=a(e=>!!e.name&&!!e.tables&&!!e.context,"isValidService"),cr=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"),lr=a((e,t)=>{let r=dr(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 We=r[c]?.indexes??[];m.sourceIndex=
143
- _e(We,O),m.targetIndex=_e(i,ae)}}return n},"validateRelations"),_e=a((e,t)=>e.find(
144
- ({name:r})=>r===t)?.type,"getIndexType"),dr=a(e=>e.reduce((t,r)=>({...t,[r.name]:r}),
145
- {}),"getTableMap");var Ge=a(e=>L(e)?e.name:null,"getLinkedService");var fr=a(()=>{(0,Je.registerTriggers)(),(0,Ke.registerTriggers)(),(0,Qe.tryCreateTrigger)(
146
- "@ez4/database",{"metadata:getServices":me,"metadata:getLinkedService":Ge})},"re\
111
+ ables":s.variables=(0,d.getLinkedVariableList)(p,n);break}if(cr(s))return s;n.push(
112
+ new B([...i],e.file))},"getTypeFromMembers");var le=a((e,t,r,o)=>{if(!(0,P.isTypeReference)(e))return Be(e,t,r,o);let n=(0,x.getReferenceType)(
113
+ e,r);if(n)return Be(n,t,r,o)},"getDatabaseTable"),mr=a(e=>!!e.name&&!!e.schema&&
114
+ !!e.indexes,"isValidTable"),Be=a((e,t,r,o)=>{if(Te(e))return Ge(e,t,(0,x.getModelMembers)(
115
+ e),r,o);if((0,P.isTypeObject)(e))return Ge(e,t,(0,x.getObjectMembers)(e),r,o)},"\
116
+ getTypeTable"),Ge=a((e,t,r,o,n)=>{let s={},i=new Set(["name","schema","indexes"]);
117
+ for(let l of r)if(!(!(0,P.isModelProperty)(l)||l.inherited))switch(l.name){default:
118
+ n.push(new x.InvalidServicePropertyError(t.name,l.name,e.file));break;case"name":
119
+ (s.name=(0,x.getPropertyString)(l))&&i.delete(l.name);break;case"schema":(s.schema=
120
+ pe(l.value,e,o,n))&&i.delete(l.name);break;case"indexes":(s.indexes=Ce(l.value,e,
121
+ o,n))&&i.delete(l.name);break;case"relations":s.relations=we(l.value,e,o,n);break;case"\
122
+ stream":s.stream=_e(l.value,t,o,n);break}if(!mr(s)){n.push(new q([...i],e.file));
123
+ return}let p=dr(e,s.indexes,s.schema);if(p.length){n.push(...p);return}return s},
124
+ "getTypeFromMembers"),dr=a((e,t,r)=>{let o=r.properties,n=[];for(let{name:s,columns:i}of t)
125
+ i.some(l=>!o[l])&&n.push(new H(s,e.file));return n},"validateIndexes");var ce=a(e=>{let t={},r=[];for(let o in e){let n=e[o];if(!Y(n)||(0,f.isExternalDeclaration)(
126
+ n))continue;let s=ie(n.name),i=new Set(["engine","tables"]),p=n.file;for(let c of(0,f.getModelMembers)(
127
+ n))if(!(!(0,Ke.isModelProperty)(c)||c.inherited))switch(c.name){default:r.push(new f.InvalidServicePropertyError(
128
+ s.name,c.name,p));break;case"client":break;case"scalability":s.scalability=he(c.
129
+ value,n,e,r);break;case"engine":(s.engine=Re(c.value,n,e,r))&&i.delete(c.name);break;case"\
130
+ tables":(s.tables=br(c,n,e,r))&&i.delete(c.name);break;case"variables":s.variables=
131
+ (0,f.getLinkedVariableList)(c,r);break;case"services":s.services=(0,f.getLinkedServiceList)(
132
+ c,e,r);break}if(!fr(s)){r.push(new O([...i],p));continue}let l=Tr(n,s.tables);if(l.
133
+ length){r.push(...l);continue}if(t[n.name]){r.push(new f.DuplicateServiceError(n.
134
+ name,p));continue}t[n.name]=s}return{services:t,errors:r}},"getDatabaseServices"),
135
+ fr=a(e=>(0,Qe.isObjectWith)(e,["engine","tables","variables","services"]),"isCom\
136
+ pleteService"),br=a((e,t,r,o)=>{let n=(0,f.getPropertyTuple)(e)??[],s=[];for(let i of n){
137
+ let p=le(i,t,r,o);p&&s.push(p)}return s},"getAllTables"),Tr=a((e,t)=>{let r=ur(t),
138
+ o=[];for(let{relations:n,schema:s,indexes:i}of t){if(!n)continue;let p=s.properties;
139
+ for(let l of n){let{sourceTable:c,sourceColumn:k,targetColumn:oe,targetAlias:me}=l;
140
+ p[oe]||o.push(new I(oe,e.file)),p[me]&&o.push(new C(me,e.file));let ae=r[c]?.schema.
141
+ properties;ae||o.push(new z(c,e.file)),ae&&!ae[k]&&o.push(new I(k,e.file));let er=r[c]?.
142
+ indexes??[];l.sourceIndex=Je(er,k),l.targetIndex=Je(i,oe)}}return o},"validateRe\
143
+ lations"),Je=a((e,t)=>e.find(({name:r})=>r===t)?.type,"getIndexType"),ur=a(e=>e.
144
+ reduce((t,r)=>({...t,[r.name]:r}),{}),"getTableMap");var Xe=a(e=>Y(e)?e.name:null,"getLinkedService");var yr=a(()=>{(0,Ye.registerTriggers)(),(0,Ze.registerTriggers)(),(0,Le.tryCreateTrigger)(
145
+ "@ez4/database",{"metadata:getServices":ce,"metadata:getLinkedService":Xe})},"re\
147
146
  gisterTriggers");0&&(module.exports={IncompleteEngineError,IncompleteHandlerError,IncompleteScalabilityError,
148
147
  IncompleteServiceError,IncompleteStreamError,IncompleteTableError,IncorrectIndexesTypeError,
149
148
  IncorrectRelationsTypeError,IncorrectSchemaTypeError,IncorrectStreamTypeError,Index,
150
149
  InvalidIndexReferenceError,InvalidIndexTypeError,InvalidIndexesTypeError,InvalidRelationAliasError,
151
150
  InvalidRelationColumnError,InvalidRelationTableError,InvalidRelationTargetError,
152
151
  InvalidRelationsTypeError,InvalidSchemaTypeError,InvalidStreamTypeError,ServiceType,
153
- getDatabaseServices,getDatabaseTable,getTableSchema,isDatabaseService,registerTriggers});
152
+ createDatabaseService,getDatabaseServices,getDatabaseTable,getTableSchema,isDatabaseService,
153
+ registerTriggers});
154
154
  //# sourceMappingURL=library.cjs.map
package/dist/library.mjs CHANGED
@@ -1,146 +1,146 @@
1
- var Ie=Object.defineProperty;var n=(e,t)=>Ie(e,"name",{value:t,configurable:!0});import{registerTriggers as mt}from"@ez4/common/library";import{registerTriggers as ct}from"@ez4/schema/library";
2
- import{tryCreateTrigger as lt}from"@ez4/project/library";import{DuplicateServiceError as Yr,InvalidServicePropertyError as Zr,isExternalDeclaration as Lr,
3
- getLinkedServiceList as et,getLinkedVariableList as rt,getPropertyTuple as tt,getModelMembers as ot}from"@ez4/common/library";
4
- import{isModelProperty as nt}from"@ez4/reflection";var U="@ez4/database",ft=n(e=>e.type===U,"isDatabaseService");import{IncompleteTypeError as he}from"@ez4/common/library";var u=class extends he{static{n(this,"IncompleteServiceError")}constructor(t,r){
5
- super("Incomplete database service",t,r)}};import{IncorrectTypeError as De,InvalidTypeError as ve,TypeError as S}from"@ez4/common/library";var T=class extends ve{static{n(this,"InvalidRelationsTypeError")}constructor(t){
6
- super("Invalid table relations type",void 0,"Database.Relations",t)}},y=class extends De{constructor(r,a){
1
+ var he=Object.defineProperty;var o=(e,t)=>he(e,"name",{value:t,configurable:!0});import{registerTriggers as dt}from"@ez4/common/library";import{registerTriggers as ft}from"@ez4/schema/library";
2
+ import{tryCreateTrigger as bt}from"@ez4/project/library";import{DuplicateServiceError as Lr,InvalidServicePropertyError as et,isExternalDeclaration as rt,
3
+ getLinkedServiceList as tt,getLinkedVariableList as nt,getPropertyTuple as ot,getModelMembers as at}from"@ez4/common/library";
4
+ import{isModelProperty as st}from"@ez4/reflection";import{isObjectWith as it}from"@ez4/utils";import{createServiceMetadata as ve}from"@ez4/project/library";var V="@ez4/database",yt=o(e=>e.type===V,"isDatabaseService"),H=o(e=>({...ve(V,e),
5
+ variables:{},services:{}}),"createDatabaseService");import{IncompleteTypeError as De}from"@ez4/common/library";var T=class extends De{static{o(this,"IncompleteServiceError")}constructor(t,r){
6
+ super("Incomplete database service",t,r)}};import{IncorrectTypeError as Ee,InvalidTypeError as Re,TypeError as I}from"@ez4/common/library";var u=class extends Re{static{o(this,"InvalidRelationsTypeError")}constructor(t){
7
+ super("Invalid table relations type",void 0,"Database.Relations",t)}},y=class extends Ee{constructor(r,a){
7
8
  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
+ r}static{o(this,"IncorrectRelationsTypeError")}},x=class extends I{constructor(r,a){
9
10
  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")}},b=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 Oe,getModelMembers as je,getPropertyNumber as Ae,
17
- getObjectMembers as Re,getReferenceType as ze}from"@ez4/common/library";import{isModelProperty as Ce,
18
- isTypeObject as Ne,isTypeReference as He}from"@ez4/reflection";import{isAnyNumber as V}from"@ez4/utils";import{IncompleteTypeError as Ee}from"@ez4/common/library";var I=class extends Ee{static{n(this,"IncompleteScalabilityError")}constructor(t,r){
19
- super("Incomplete database scalability",t,r)}};import{hasHeritageType as l,isClassDeclaration as Pe,isModelDeclaration as q}from"@ez4/common/library";
20
- import{isTypeCallback as ke,isTypeFunction as we}from"@ez4/reflection";var h=n(e=>Pe(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=>ke(e)||we(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(!He(e))return W(e,t,a);let o=ze(e,r);if(o)return W(o,t,a)},
26
- "getDatabaseScalability"),Fe=n(e=>V(e.minCapacity)&&V(e.maxCapacity),"isValidSca\
27
- lability"),W=n((e,t,r)=>{if(D(e))return X(e,t,je(e),r);if(Ne(e))return X(e,t,Re(
28
- e),r)},"getTypeScalability"),X=n((e,t,r,a)=>{let o={},s=new Set(["minCapacity","\
29
- maxCapacity"]);for(let i of r)if(!(!Ce(i)||i.inherited))switch(i.name){default:a.
30
- push(new Oe(t.name,i.name,e.file));break;case"minCapacity":case"maxCapacity":let p=Ae(
31
- i);V(p)&&(o[i.name]=p,s.delete(i.name));break}if(!Fe(o)){a.push(new I([...s],e.file));
32
- return}return o},"getTypeFromMembers");import{isModelProperty as Ve,isTypeObject as $e,isTypeReference as qe}from"@ez4/reflection";
33
- import{InvalidServicePropertyError as _e,getModelMembers as Be,getObjectMembers as Ge,
34
- getPropertyString as Je,getPropertyStringIn as d,getReferenceType as Ke}from"@ez4/common/library";import{IncompleteTypeError as Ue}from"@ez4/common/library";var v=class extends Ue{static{n(this,"IncompleteEngineError")}constructor(t,r){super(
35
- "Incomplete database engine",t,r)}};var ee=n((e,t,r,a)=>{if(!qe(e))return Z(e,t,a);let o=Ke(e,r);if(o)return Z(o,t,a)},
36
- "getDatabaseEngine"),Qe=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,Be(e),r);if($e(e))return L(e,t,Ge(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(!(!Ve(i)||i.inherited))
41
- switch(i.name){default:a.push(new _e(t.name,i.name,e.file));break;case"name":(o.
42
- name=Je(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.
11
+ r}static{o(this,"InvalidRelationTargetError")}},g=class extends I{constructor(r,a){
12
+ super(`Relation table ${r} don't exists.`,a);this.relationTable=r}static{o(this,
13
+ "InvalidRelationTableError")}},b=class extends I{constructor(r,a){super(`Relatio\
14
+ n column ${r} don't exists.`,a);this.relationColumn=r}static{o(this,"InvalidRela\
15
+ tionColumnError")}},M=class extends I{constructor(r,a){super(`Relation alias ${r}\
16
+ can't override table columns.`,a);this.relationAlias=r}static{o(this,"InvalidRe\
17
+ lationAliasError")}};import{InvalidServicePropertyError as je,getModelMembers as Ae,getPropertyNumber as ze,
18
+ getObjectMembers as Ce,getReferenceType as Ne}from"@ez4/common/library";import{isModelProperty as Fe,
19
+ isTypeObject as qe,isTypeReference as Ue}from"@ez4/reflection";import{isAnyNumber as U}from"@ez4/utils";import{IncompleteTypeError as Pe}from"@ez4/common/library";var S=class extends Pe{static{o(this,"IncompleteScalabilityError")}constructor(t,r){
20
+ super("Incomplete database scalability",t,r)}};import{hasHeritageType as m,isClassDeclaration as ke,isModelDeclaration as W}from"@ez4/common/library";
21
+ import{isTypeCallback as Oe,isTypeFunction as we}from"@ez4/reflection";var h=o(e=>ke(e)&&m(e,"Database.Service"),"isDatabaseService"),v=o(e=>W(e)&&m(e,
22
+ "Database.Engine"),"isDatabaseEngine"),_=o(e=>W(e)&&m(e,"Database.Table"),"isDat\
23
+ abaseTable"),B=o(e=>Oe(e)||we(e),"isStreamHandler"),G=o(e=>m(e,"Database.Relatio\
24
+ ns"),"isTableRelations"),J=o(e=>m(e,"Database.Indexes"),"isTableIndexes"),K=o(e=>m(
25
+ e,"Database.Schema"),"isTableSchema"),Q=o(e=>m(e,"Database.Stream"),"isTableStre\
26
+ am");var Z=o((e,t,r,a)=>{if(!Ue(e))return X(e,t,a);let n=Ne(e,r);if(n)return X(n,t,a)},
27
+ "getDatabaseScalability"),$e=o(e=>U(e.minCapacity)&&U(e.maxCapacity),"isValidSca\
28
+ lability"),X=o((e,t,r)=>{if(v(e))return Y(e,t,Ae(e),r);if(qe(e))return Y(e,t,Ce(
29
+ e),r)},"getTypeScalability"),Y=o((e,t,r,a)=>{let n={},s=new Set(["minCapacity","\
30
+ maxCapacity"]);for(let i of r)if(!(!Fe(i)||i.inherited))switch(i.name){default:a.
31
+ push(new je(t.name,i.name,e.file));break;case"minCapacity":case"maxCapacity":let p=ze(
32
+ i);U(p)&&(n[i.name]=p,s.delete(i.name));break}if(!$e(n)){a.push(new S([...s],e.file));
33
+ return}return n},"getTypeFromMembers");import{isModelProperty as He,isTypeObject as We,isTypeReference as _e}from"@ez4/reflection";
34
+ import{InvalidServicePropertyError as Be,getModelMembers as Ge,getObjectMembers as Je,
35
+ getPropertyString as Ke,getPropertyStringIn as d,getReferenceType as Qe}from"@ez4/common/library";import{IncompleteTypeError as Ve}from"@ez4/common/library";var D=class extends Ve{static{o(this,"IncompleteEngineError")}constructor(t,r){super(
36
+ "Incomplete database engine",t,r)}};var re=o((e,t,r,a)=>{if(!_e(e))return L(e,t,a);let n=Qe(e,r);if(n)return L(n,t,a)},
37
+ "getDatabaseEngine"),Xe=o(e=>!!e.name&&!!e.parametersMode&&!!e.transactionMode&&
38
+ !!e.insensitiveMode&&!!e.paginationMode&&!!e.orderMode,"isValidEngine"),L=o((e,t,r)=>{
39
+ if(v(e))return ee(e,t,Ge(e),r);if(We(e))return ee(e,t,Je(e),r)},"getTypeEngine"),
40
+ ee=o((e,t,r,a)=>{let n={},s=new Set(["name","parametersMode","transactionMode","\
41
+ insensitiveMode","paginationMode","orderMode"]);for(let i of r)if(!(!He(i)||i.inherited))
42
+ switch(i.name){default:a.push(new Be(t.name,i.name,e.file));break;case"name":(n.
43
+ name=Ke(i))&&s.delete(i.name);break;case"parametersMode":(n.parametersMode=d(i,[
44
+ "index","both"]))&&s.delete(i.name);break;case"transactionMode":(n.transactionMode=
45
+ d(i,["static","interactive"]))&&s.delete(i.name);break;case"insensitiveMode":(n.
45
46
  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(!Qe(
49
- o)){a.push(new v([...s],e.file));return}return o},"getTypeFromMembers");import{InvalidServicePropertyError as $r,getModelMembers as qr,getObjectMembers as _r,
50
- getPropertyString as Br,getReferenceType as Gr}from"@ez4/common/library";import{
51
- isModelProperty as Jr,isTypeObject as Kr,isTypeReference as Qr}from"@ez4/reflection";import{IncompleteTypeError as We}from"@ez4/common/library";var E=class extends We{static{n(this,"IncompleteTableError")}constructor(t,r){super(
52
- "Incomplete database table",t,r)}};import{IncorrectTypeError as Xe,InvalidTypeError as Ye,TypeError as re}from"@ez4/common/library";var P=class extends Ye{static{n(this,"InvalidIndexesTypeError")}constructor(t){super(
53
- "Invalid table indexes type",void 0,"Database.Indexes",t)}},k=class extends Xe{constructor(r,a){
47
+ inationMode":(n.paginationMode=d(i,["cursor","offset"]))&&s.delete(i.name);break;case"\
48
+ orderMode":(n.orderMode=d(i,["any","index"]))&&s.delete(i.name);break;case"lockM\
49
+ ode":(n.lockMode=d(i,["unsupported","supported"]))&&s.delete(i.name);break}if(!Xe(
50
+ n)){a.push(new D([...s],e.file));return}return n},"getTypeFromMembers");import{InvalidServicePropertyError as Wr,getModelMembers as _r,getObjectMembers as Br,
51
+ getPropertyString as Gr,getReferenceType as Jr}from"@ez4/common/library";import{
52
+ isModelProperty as Kr,isTypeObject as Qr,isTypeReference as Xr}from"@ez4/reflection";import{IncompleteTypeError as Ye}from"@ez4/common/library";var E=class extends Ye{static{o(this,"IncompleteTableError")}constructor(t,r){super(
53
+ "Incomplete database table",t,r)}};import{IncorrectTypeError as Ze,InvalidTypeError as Le,TypeError as te}from"@ez4/common/library";var R=class extends Le{static{o(this,"InvalidIndexesTypeError")}constructor(t){super(
54
+ "Invalid table indexes type",void 0,"Database.Indexes",t)}},P=class extends Ze{constructor(r,a){
54
55
  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
+ o(this,"IncorrectIndexesTypeError")}},k=class extends te{constructor(r,a){super(
56
57
  `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
+ r}static{o(this,"InvalidIndexTypeError")}},O=class extends te{constructor(r,a){super(
58
59
  `Invalid index reference, ${r} must be valid column.`,a);this.indexName=r}static{
59
- n(this,"InvalidIndexReferenceError")}};import{isModelDeclaration as Ze,getModelMembers as Le,getObjectMembers as er,getPropertyString as rr,
60
- getReferenceType as tr}from"@ez4/common/library";import{isModelProperty as or,isTypeObject as nr,
61
- isTypeReference as ar}from"@ez4/reflection";var ne=n((e,t,r,a)=>{if(!ar(e))return te(e,t,a);let o=tr(e,r);if(o)return te(o,t,
62
- a)},"getTableRelations"),te=n((e,t,r)=>{if(nr(e))return oe(e,er(e),r);if(!Ze(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,Le(e),r)},"getTypeRelations"),oe=n((e,t,r)=>{let a=[];for(let o of t){if(!or(o)||
65
- o.inherited)continue;let s=rr(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 ir,getModelMembers as pr,getObjectMembers as mr,getPropertyString as cr,
68
- getReferenceType as lr}from"@ez4/common/library";import{isModelProperty as dr,isTypeObject as fr,
69
- isTypeReference as br}from"@ez4/reflection";var sr=(o=>(o.Primary="primary",o.Secondary="secondary",o.Unique="unique",o.TTL=
70
- "ttl",o))(sr||{});var ie=n((e,t,r,a)=>{if(!br(e))return ae(e,t,a);let o=lr(e,r);if(o)return ae(o,t,
71
- a)},"getTableIndexes"),ae=n((e,t,r)=>{if(fr(e))return se(e,mr(e),r);if(!ir(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,pr(e),r)},"getTypeIndexes"),se=n((e,t,r)=>{let a=[];for(let o of t){if(!dr(o)||
74
- o.inherited)continue;let s=o.name,i=cr(o);switch(i){case"primary":case"secondary":case"\
60
+ o(this,"InvalidIndexReferenceError")}};import{isModelDeclaration as er,getModelMembers as rr,getObjectMembers as tr,getPropertyString as nr,
61
+ getReferenceType as or}from"@ez4/common/library";import{isModelProperty as ar,isTypeObject as sr,
62
+ isTypeReference as ir}from"@ez4/reflection";var ae=o((e,t,r,a)=>{if(!ir(e))return ne(e,t,a);let n=or(e,r);if(n)return ne(n,t,
63
+ a)},"getTableRelations"),ne=o((e,t,r)=>{if(sr(e))return oe(e,tr(e),r);if(!er(e)){
64
+ r.push(new u(t.file));return}if(!G(e)){r.push(new y(e.name,e.file));return}return oe(
65
+ e,rr(e),r)},"getTypeRelations"),oe=o((e,t,r)=>{let a=[];for(let n of t){if(!ar(n)||
66
+ n.inherited)continue;let s=nr(n),i=n.name;if(!s){r.push(new x(i,e.file));return}
67
+ let[p,l]=i.split("@",2),[c,f]=s.split(":",2);a.push({sourceTable:c,sourceColumn:f,
68
+ targetColumn:p,targetAlias:l})}return a},"getTypeFromMembers");import{isModelDeclaration as lr,getModelMembers as cr,getObjectMembers as mr,getPropertyString as dr,
69
+ getReferenceType as fr}from"@ez4/common/library";import{isModelProperty as br,isTypeObject as Tr,
70
+ isTypeReference as ur}from"@ez4/reflection";var pr=(n=>(n.Primary="primary",n.Secondary="secondary",n.Unique="unique",n.TTL=
71
+ "ttl",n))(pr||{});var pe=o((e,t,r,a)=>{if(!ur(e))return se(e,t,a);let n=fr(e,r);if(n)return se(n,t,
72
+ a)},"getTableIndexes"),se=o((e,t,r)=>{if(Tr(e))return ie(e,mr(e),r);if(!lr(e)){r.
73
+ push(new R(t.file));return}if(!J(e)){r.push(new P(e.name,e.file));return}return ie(
74
+ e,cr(e),r)},"getTypeIndexes"),ie=o((e,t,r)=>{let a=[];for(let n of t){if(!br(n)||
75
+ n.inherited)continue;let s=n.name,i=dr(n);switch(i){case"primary":case"secondary":case"\
75
76
  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 yr,getObjectSchema as xr,isObjectSchema as gr}from"@ez4/schema/library";
77
- import{getReferenceType as Mr,isModelDeclaration as Sr}from"@ez4/common/library";
78
- import{isTypeObject as Ir,isTypeReference as hr}from"@ez4/reflection";import{IncorrectTypeError as ur,InvalidTypeError as Tr}from"@ez4/common/library";var j=class extends Tr{static{n(this,"InvalidSchemaTypeError")}constructor(t){super(
79
- "Invalid table schema type",void 0,"Database.Schema",t)}},A=class extends ur{constructor(r,a){
77
+ new k(s,e.file));return}}return a},"getTypeFromMembers");import{isTypeObject as gr,isTypeReference as Mr}from"@ez4/reflection";import{getReferenceType as Ir,
78
+ isModelDeclaration as Sr}from"@ez4/common/library";import{createSchemaContext as hr,
79
+ isObjectSchema as vr}from"@ez4/schema";import{getObjectSchema as Dr}from"@ez4/schema/library";import{IncorrectTypeError as yr,InvalidTypeError as xr}from"@ez4/common/library";var w=class extends xr{static{o(this,"InvalidSchemaTypeError")}constructor(t){super(
80
+ "Invalid table schema type",void 0,"Database.Schema",t)}},j=class extends yr{constructor(r,a){
80
81
  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(!hr(e))return pe(e,t,r,a);let o=Mr(e,r);if(o)return pe(o,
82
- t,r,a)},"getTableSchema"),pe=n((e,t,r,a)=>{if(Ir(e))return me(e,r);if(!Sr(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=xr(e,t,yr({nullish:!0}));if(r&&gr(r))return r},
85
- "getSchema");import{InvalidServicePropertyError as wr,isModelDeclaration as Or,getLinkedVariableList as jr,
86
- getModelMembers as Ar,getObjectMembers as Rr,getPropertyNumber as zr,getServiceListener as Cr,
87
- getReferenceType as Nr}from"@ez4/common/library";import{isModelProperty as Hr,isTypeObject as Fr,
88
- isTypeReference as Ur}from"@ez4/reflection";import{IncompleteTypeError as Dr,IncorrectTypeError as vr,InvalidTypeError as Er}from"@ez4/common/library";var R=class extends Dr{static{n(this,"IncompleteStreamError")}constructor(t,r){super(
89
- "Incomplete table stream",t,r)}},z=class extends Er{static{n(this,"InvalidStream\
82
+ o(this,"IncorrectSchemaTypeError")}};var me=o((e,t,r,a)=>{if(!Mr(e))return le(e,t,r,a);let n=Ir(e,r);if(n)return le(n,
83
+ t,r,a)},"getTableSchema"),le=o((e,t,r,a)=>{if(gr(e))return ce(e,r);if(!Sr(e)){a.
84
+ push(new w(t.file));return}if(!K(e)){a.push(new j(e.name,e.file));return}return ce(
85
+ e,r)},"getTypeSchema"),ce=o((e,t)=>{let r=Dr(e,t,hr({nullish:!0}));if(r&&vr(r))return r},
86
+ "getSchema");import{InvalidServicePropertyError as wr,isModelDeclaration as jr,getLinkedVariableList as Ar,
87
+ getModelMembers as zr,getObjectMembers as Cr,getPropertyNumber as Nr,getServiceListener as Fr,
88
+ getReferenceType as qr}from"@ez4/common/library";import{isModelProperty as Ur,isTypeObject as $r,
89
+ isTypeReference as Vr}from"@ez4/reflection";import{IncompleteTypeError as Er,IncorrectTypeError as Rr,InvalidTypeError as Pr}from"@ez4/common/library";var A=class extends Er{static{o(this,"IncompleteStreamError")}constructor(t,r){super(
90
+ "Incomplete table stream",t,r)}},z=class extends Pr{static{o(this,"InvalidStream\
90
91
  TypeError")}constructor(t){super("Invalid table stream type",void 0,"Database.St\
91
- ream",t)}},C=class extends vr{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 Pr}from"@ez4/common/library";var N=class extends Pr{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&&kr(s))return s;r.push(new N([...i],e.file))},"getStreamHandler"),kr=n(e=>!!e.
98
- name&&!!e.file,"isValidHandler");var be=n((e,t,r,a)=>{if(!Ur(e))return de(e,t,r,a);let o=Nr(e,r);if(o)return de(o,
99
- t,r,a)},"getTableStream"),Vr=n(e=>!!e.handler,"isValidStream"),de=n((e,t,r,a)=>{
100
- if(Fr(e))return fe(e,t,Rr(e),r,a);if(!Or(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,Ar(e),r,a)},"getTypeStream"),
102
- fe=n((e,t,r,a,o)=>{let s={},i=new Set(["handler"]);for(let p of r)if(!(!Hr(p)||p.
103
- inherited))switch(p.name){default:o.push(new wr(t.name,p.name,e.file));break;case"\
104
- handler":s.handler=le(p.value,a,o);break;case"listener":s.listener=Cr(p.value,o);
105
- break;case"memory":case"logRetention":case"timeout":s[p.name]=zr(p);break;case"v\
106
- ariables":s.variables=jr(p,o);break}if(Vr(s))return s;o.push(new R([...i],e.file))},
107
- "getTypeFromMembers");var ye=n((e,t,r,a)=>{if(!Qr(e))return ue(e,t,r,a);let o=Gr(e,r);if(o)return ue(o,
108
- t,r,a)},"getDatabaseTable"),Wr=n(e=>!!e.name&&!!e.schema&&!!e.indexes,"isValidTa\
109
- ble"),ue=n((e,t,r,a)=>{if(_(e))return Te(e,t,qr(e),r,a);if(Kr(e))return Te(e,t,_r(
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(!(!Jr(m)||m.inherited))switch(m.name){default:o.push(
112
- new $r(t.name,m.name,e.file));break;case"name":(s.name=Br(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=be(m.value,t,a,o);break}if(!Wr(s)){
116
- o.push(new E([...i],e.file));return}let p=Xr(e,s.indexes,s.schema);if(p.length){
117
- o.push(...p);return}return s},"getTypeFromMembers"),Xr=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)||Lr(o))continue;let s={
120
- type:U,context:{}},i=new Set(["engine","tables"]),p=o.file;s.name=o.name;for(let c of ot(
121
- o))if(!(!nt(c)||c.inherited))switch(c.name){default:r.push(new Zr(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=st(c,o,e,r))&&i.delete(c.name);break;case"variables":
125
- s.variables=rt(c,r);break;case"services":s.services=et(c,e,r);break}if(!at(s)){r.
126
- push(new u([...i],p));continue}let m=it(o,s.tables);if(m.length){r.push(...m);continue}
127
- if(t[o.name]){r.push(new Yr(o.name,p));continue}t[o.name]=s}return{services:t,errors:r}},
128
- "getDatabaseServices"),at=n(e=>!!e.name&&!!e.tables&&!!e.context,"isValidService"),
129
- st=n((e,t,r,a)=>{let o=tt(e)??[],s=[];for(let i of o){let p=ye(i,t,r,a);p&&s.push(
130
- p)}return s},"getAllTables"),it=n((e,t)=>{let r=pt(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 b(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 b(f,e.file));let Se=r[c]?.indexes??[];m.sourceIndex=xe(Se,f),
135
- m.targetIndex=xe(i,H)}}return a},"validateRelations"),xe=n((e,t)=>e.find(({name:r})=>r===
136
- t)?.type,"getIndexType"),pt=n(e=>e.reduce((t,r)=>({...t,[r.name]:r}),{}),"getTab\
137
- leMap");var Me=n(e=>h(e)?e.name:null,"getLinkedService");var un=n(()=>{mt(),ct(),lt("@ez4/database",{"metadata:getServices":ge,"metadata:\
138
- getLinkedService":Me})},"registerTriggers");export{v as IncompleteEngineError,N as IncompleteHandlerError,I as IncompleteScalabilityError,
139
- u as IncompleteServiceError,R as IncompleteStreamError,E as IncompleteTableError,
140
- k as IncorrectIndexesTypeError,y as IncorrectRelationsTypeError,A as IncorrectSchemaTypeError,
141
- C as IncorrectStreamTypeError,sr as Index,O as InvalidIndexReferenceError,w as InvalidIndexTypeError,
142
- P as InvalidIndexesTypeError,M as InvalidRelationAliasError,b 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,ft as isDatabaseService,un as registerTriggers};
92
+ ream",t)}},C=class extends Rr{constructor(r,a){super("Incorrect table stream typ\
93
+ e",r,"Database.Stream",a);this.streamType=r}static{o(this,"IncorrectStreamTypeEr\
94
+ ror")}};import{getFunctionSignature as Or}from"@ez4/common/library";import{IncompleteTypeError as kr}from"@ez4/common/library";var N=class extends kr{static{o(this,"IncompleteHandlerError")}constructor(t,r){
95
+ super("Incomplete stream handler",t,r)}};var de=o((e,t,r)=>{if(!B(e))return;let a=Or(e),n=new Set(["change"]);if(e.parameters&&
96
+ n.delete("change"),!a||n.size){r.push(new N([...n],e.file));return}return a},"ge\
97
+ tStreamHandler");var Te=o((e,t,r,a)=>{if(!Vr(e))return fe(e,t,r,a);let n=qr(e,r);if(n)return fe(n,
98
+ t,r,a)},"getTableStream"),Hr=o(e=>!!e.handler,"isValidStream"),fe=o((e,t,r,a)=>{
99
+ if($r(e))return be(e,t,Cr(e),r,a);if(!jr(e)){a.push(new z(t.file));return}if(!Q(
100
+ e)){a.push(new C(e.name,e.file));return}return be(e,t,zr(e),r,a)},"getTypeStream"),
101
+ be=o((e,t,r,a,n)=>{let s={},i=new Set(["handler"]);for(let p of r)if(!(!Ur(p)||p.
102
+ inherited))switch(p.name){default:n.push(new wr(t.name,p.name,e.file));break;case"\
103
+ handler":s.handler=de(p.value,a,n);break;case"listener":s.listener=Fr(p.value,n);
104
+ break;case"memory":case"logRetention":case"timeout":s[p.name]=Nr(p);break;case"v\
105
+ ariables":s.variables=Ar(p,n);break}if(Hr(s))return s;n.push(new A([...i],e.file))},
106
+ "getTypeFromMembers");var xe=o((e,t,r,a)=>{if(!Xr(e))return ue(e,t,r,a);let n=Jr(e,r);if(n)return ue(n,
107
+ t,r,a)},"getDatabaseTable"),Yr=o(e=>!!e.name&&!!e.schema&&!!e.indexes,"isValidTa\
108
+ ble"),ue=o((e,t,r,a)=>{if(_(e))return ye(e,t,_r(e),r,a);if(Qr(e))return ye(e,t,Br(
109
+ e),r,a)},"getTypeTable"),ye=o((e,t,r,a,n)=>{let s={},i=new Set(["name","schema",
110
+ "indexes"]);for(let l of r)if(!(!Kr(l)||l.inherited))switch(l.name){default:n.push(
111
+ new Wr(t.name,l.name,e.file));break;case"name":(s.name=Gr(l))&&i.delete(l.name);
112
+ break;case"schema":(s.schema=me(l.value,e,a,n))&&i.delete(l.name);break;case"ind\
113
+ exes":(s.indexes=pe(l.value,e,a,n))&&i.delete(l.name);break;case"relations":s.relations=
114
+ ae(l.value,e,a,n);break;case"stream":s.stream=Te(l.value,t,a,n);break}if(!Yr(s)){
115
+ n.push(new E([...i],e.file));return}let p=Zr(e,s.indexes,s.schema);if(p.length){
116
+ n.push(...p);return}return s},"getTypeFromMembers"),Zr=o((e,t,r)=>{let a=r.properties,
117
+ n=[];for(let{name:s,columns:i}of t)i.some(l=>!a[l])&&n.push(new O(s,e.file));return n},
118
+ "validateIndexes");var Me=o(e=>{let t={},r=[];for(let a in e){let n=e[a];if(!h(n)||rt(n))continue;let s=H(
119
+ n.name),i=new Set(["engine","tables"]),p=n.file;for(let c of at(n))if(!(!st(c)||
120
+ c.inherited))switch(c.name){default:r.push(new et(s.name,c.name,p));break;case"c\
121
+ lient":break;case"scalability":s.scalability=Z(c.value,n,e,r);break;case"engine":
122
+ (s.engine=re(c.value,n,e,r))&&i.delete(c.name);break;case"tables":(s.tables=lt(c,
123
+ n,e,r))&&i.delete(c.name);break;case"variables":s.variables=nt(c,r);break;case"s\
124
+ ervices":s.services=tt(c,e,r);break}if(!pt(s)){r.push(new T([...i],p));continue}
125
+ let l=ct(n,s.tables);if(l.length){r.push(...l);continue}if(t[n.name]){r.push(new Lr(
126
+ n.name,p));continue}t[n.name]=s}return{services:t,errors:r}},"getDatabaseService\
127
+ s"),pt=o(e=>it(e,["engine","tables","variables","services"]),"isCompleteService"),
128
+ lt=o((e,t,r,a)=>{let n=ot(e)??[],s=[];for(let i of n){let p=xe(i,t,r,a);p&&s.push(
129
+ p)}return s},"getAllTables"),ct=o((e,t)=>{let r=mt(t),a=[];for(let{relations:n,schema:s,
130
+ indexes:i}of t){if(!n)continue;let p=s.properties;for(let l of n){let{sourceTable:c,
131
+ sourceColumn:f,targetColumn:F,targetAlias:$}=l;p[F]||a.push(new b(F,e.file)),p[$]&&
132
+ a.push(new M($,e.file));let q=r[c]?.schema.properties;q||a.push(new g(c,e.file)),
133
+ q&&!q[f]&&a.push(new b(f,e.file));let Se=r[c]?.indexes??[];l.sourceIndex=ge(Se,f),
134
+ l.targetIndex=ge(i,F)}}return a},"validateRelations"),ge=o((e,t)=>e.find(({name:r})=>r===
135
+ t)?.type,"getIndexType"),mt=o(e=>e.reduce((t,r)=>({...t,[r.name]:r}),{}),"getTab\
136
+ leMap");var Ie=o(e=>h(e)?e.name:null,"getLinkedService");var So=o(()=>{dt(),ft(),bt("@ez4/database",{"metadata:getServices":Me,"metadata:\
137
+ getLinkedService":Ie})},"registerTriggers");export{D as IncompleteEngineError,N as IncompleteHandlerError,S as IncompleteScalabilityError,
138
+ T as IncompleteServiceError,A as IncompleteStreamError,E as IncompleteTableError,
139
+ P as IncorrectIndexesTypeError,y as IncorrectRelationsTypeError,j as IncorrectSchemaTypeError,
140
+ C as IncorrectStreamTypeError,pr as Index,O as InvalidIndexReferenceError,k as InvalidIndexTypeError,
141
+ R as InvalidIndexesTypeError,M as InvalidRelationAliasError,b as InvalidRelationColumnError,
142
+ g as InvalidRelationTableError,x as InvalidRelationTargetError,u as InvalidRelationsTypeError,
143
+ w as InvalidSchemaTypeError,z as InvalidStreamTypeError,V as ServiceType,H as createDatabaseService,
144
+ Me as getDatabaseServices,xe as getDatabaseTable,me as getTableSchema,yt as isDatabaseService,
145
+ So as registerTriggers};
146
146
  //# sourceMappingURL=library.mjs.map
@@ -1,3 +1,3 @@
1
- import type { AllType, SourceMap, TypeModel } from '@ez4/reflection';
1
+ import type { AllType, ReflectionTypes, 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 | undefined;
3
+ export declare const getDatabaseEngine: (type: AllType, parent: TypeModel, reflection: ReflectionTypes, errorList: Error[]) => DatabaseEngine | undefined;
@@ -1,3 +1,2 @@
1
- import type { AllType, SourceMap } from '@ez4/reflection';
2
- import type { StreamHandler } from '../types/handler';
3
- export declare const getStreamHandler: (type: AllType, _reflection: SourceMap, errorList: Error[]) => StreamHandler | undefined;
1
+ import type { AllType, ReflectionTypes } from '@ez4/reflection';
2
+ export declare const getStreamHandler: (type: AllType, _reflection: ReflectionTypes, errorList: Error[]) => import("@ez4/common/library").FunctionSignature | undefined;
@@ -1,5 +1,5 @@
1
- import type { AllType, SourceMap, TypeModel, TypeObject } from '@ez4/reflection';
1
+ import type { AllType, ReflectionTypes, 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[] | undefined;
4
+ export declare const getTableIndexes: (type: AllType, parent: TypeParent, reflection: ReflectionTypes, errorList: Error[]) => TableIndex[] | undefined;
5
5
  export {};
@@ -1,5 +1,5 @@
1
- import type { AllType, SourceMap, TypeModel, TypeObject } from '@ez4/reflection';
1
+ import type { AllType, ReflectionTypes, 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[] | undefined;
4
+ export declare const getTableRelations: (type: AllType, parent: TypeParent, reflection: ReflectionTypes, errorList: Error[]) => TableRelation[] | undefined;
5
5
  export {};
@@ -1,3 +1,3 @@
1
- import type { AllType, SourceMap, TypeModel } from '@ez4/reflection';
1
+ import type { AllType, ReflectionTypes, 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 | undefined;
3
+ export declare const getDatabaseScalability: (type: AllType, parent: TypeModel, reflection: ReflectionTypes, errorList: Error[]) => DatabaseScalability | undefined;
@@ -1,4 +1,4 @@
1
- import type { AllType, SourceMap, TypeModel, TypeObject } from '@ez4/reflection';
1
+ import type { AllType, ReflectionTypes, 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 | undefined;
3
+ export declare const getTableSchema: (type: AllType, parent: TypeParent, reflection: ReflectionTypes, errorList: Error[]) => import("@ez4/schema").ObjectSchema | undefined;
4
4
  export {};
@@ -1,6 +1,6 @@
1
- import type { SourceMap } from '@ez4/reflection';
1
+ import type { ReflectionTypes } from '@ez4/reflection';
2
2
  import type { DatabaseService } from '../types/service';
3
- export declare const getDatabaseServices: (reflection: SourceMap) => {
3
+ export declare const getDatabaseServices: (reflection: ReflectionTypes) => {
4
4
  services: Record<string, DatabaseService>;
5
5
  errors: Error[];
6
6
  };
@@ -1,3 +1,3 @@
1
- import type { AllType, SourceMap, TypeModel } from '@ez4/reflection';
1
+ import type { AllType, ReflectionTypes, 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 | undefined;
3
+ export declare const getTableStream: (type: AllType, parent: TypeModel, reflection: ReflectionTypes, errorList: Error[]) => TableStream | undefined;
@@ -1,3 +1,3 @@
1
- import type { AllType, SourceMap, TypeModel } from '@ez4/reflection';
1
+ import type { AllType, ReflectionTypes, 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 | undefined;
3
+ export declare const getDatabaseTable: (type: AllType, parent: TypeModel, reflection: ReflectionTypes, errorList: Error[]) => DatabaseTable | undefined;
@@ -1,6 +1,2 @@
1
- export type StreamHandler = {
2
- name: string;
3
- module?: string;
4
- file: string;
5
- description?: string;
6
- };
1
+ import type { FunctionSignature } from '@ez4/common/library';
2
+ export type StreamHandler = FunctionSignature;
@@ -3,7 +3,7 @@ import type { DatabaseScalability } from './scalability';
3
3
  import type { DatabaseEngine } from './engine';
4
4
  import type { DatabaseTable } from './table';
5
5
  export declare const ServiceType = "@ez4/database";
6
- export type DatabaseService = ServiceMetadata & {
6
+ export type DatabaseService = Omit<ServiceMetadata, 'variables' | 'services'> & Required<Pick<ServiceMetadata, 'variables' | 'services'>> & {
7
7
  type: typeof ServiceType;
8
8
  scalability?: DatabaseScalability;
9
9
  engine: DatabaseEngine;
@@ -11,3 +11,13 @@ export type DatabaseService = ServiceMetadata & {
11
11
  name: string;
12
12
  };
13
13
  export declare const isDatabaseService: (service: ServiceMetadata) => service is DatabaseService;
14
+ export declare const createDatabaseService: (name: string) => {
15
+ variables: {};
16
+ services: {};
17
+ type: "@ez4/database";
18
+ name: string;
19
+ context: Record<string, import("@ez4/project/library").LinkedContext>;
20
+ scalability?: DatabaseScalability | null | undefined;
21
+ engine?: DatabaseEngine | null | undefined;
22
+ tables?: DatabaseTable[] | null | undefined;
23
+ };
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.36.0",
4
+ "version": "0.37.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.36.0",
50
- "@ez4/project": "^0.36.0",
51
- "@ez4/reflection": "^0.36.0",
52
- "@ez4/schema": "^0.36.0",
53
- "@ez4/utils": "^0.36.0"
49
+ "@ez4/common": "^0.37.0",
50
+ "@ez4/project": "^0.37.0",
51
+ "@ez4/reflection": "^0.37.0",
52
+ "@ez4/schema": "^0.37.0",
53
+ "@ez4/utils": "^0.37.0"
54
54
  }
55
55
  }