@ez4/database 0.41.0 → 0.43.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/README.md CHANGED
@@ -33,7 +33,7 @@ export declare class MyDb extends Database.Service {
33
33
 
34
34
  tables: [
35
35
  Database.UseTable<{
36
- name: 'my_table';
36
+ name: 'test_table';
37
37
  schema: MyTableSchema;
38
38
  indexes: {
39
39
  foo: Index.Primary;
@@ -48,14 +48,14 @@ export declare class MyDb extends Database.Service {
48
48
  ```ts
49
49
  // file: handler.ts
50
50
  import type { Service } from '@ez4/common';
51
- import type { MyDb } from './db';
51
+ import type { myDb } from './db';
52
52
 
53
53
  // Any other handler that has injected MyDb service
54
54
  export async function anyHandler(_request: any, context: Service.Context<DummyService>) {
55
- const { MyDb } = context;
55
+ const { myDb } = context;
56
56
 
57
57
  // Insert one record
58
- await MyDb.my_table.insertOne({
58
+ await myDb.test_table.insertOne({
59
59
  data: {
60
60
  foo: 'foo',
61
61
  bar: 123
@@ -63,7 +63,7 @@ export async function anyHandler(_request: any, context: Service.Context<DummySe
63
63
  });
64
64
 
65
65
  // Find one record
66
- const result = await MyDb.my_table.findOne({
66
+ const result = await myDb.test_table.findOne({
67
67
  select: {
68
68
  bar: true
69
69
  },
@@ -82,7 +82,7 @@ export async function anyHandler(_request: any, context: Service.Context<DummySe
82
82
  | ----------- | ------------------------- | ------------------------------------------------ |
83
83
  | scalability | Database.UseScalability<> | Scalability configuration. |
84
84
  | tables | Database.UseTable<> | Describe all available tables for the service. |
85
- | engine | object | Determines which database engine to use. |
85
+ | engine | Database.UseEngine<> | Determines which database engine to use. |
86
86
  | variables | object | Environment variables associated to all streams. |
87
87
  | services | object | Injected services associated to all streams. |
88
88
 
package/dist/library.cjs CHANGED
@@ -1,18 +1,17 @@
1
1
  "use strict";var ne=Object.defineProperty;var at=Object.getOwnPropertyDescriptor;var nt=Object.getOwnPropertyNames;var ot=Object.prototype.hasOwnProperty;var n=(e,r)=>ne(e,"name",{value:r,configurable:!0});var it=(e,r)=>{for(var t in r)ne(e,t,{get:r[t],enumerable:!0})},st=(e,r,t,a)=>{if(r&&
2
2
  typeof r=="object"||typeof r=="function")for(let o of nt(r))!ot.call(e,o)&&o!==t&&
3
3
  ne(e,o,{get:()=>r[o],enumerable:!(a=at(r,o))||a.enumerable});return e};var ct=e=>st(ne({},"__esModule",{value:!0}),e);var Et={};it(Et,{IncompleteEngineError:()=>U,IncompleteHandlerError:()=>ae,IncompleteScalabilityError:()=>$,
4
- IncompleteServiceError:()=>A,IncompleteStreamError:()=>ee,IncompleteTableError:()=>B,
5
- IncorrectEngineTypeError:()=>_,IncorrectIndexesTypeError:()=>Q,IncorrectRelationsTypeError:()=>z,
4
+ IncompleteServiceError:()=>A,IncompleteStreamError:()=>ee,IncompleteTableError:()=>_,
5
+ IncorrectEngineTypeError:()=>B,IncorrectIndexesTypeError:()=>Q,IncorrectRelationsTypeError:()=>z,
6
6
  IncorrectScalabilityTypeError:()=>V,IncorrectSchemaTypeError:()=>L,IncorrectStreamTypeError:()=>re,
7
7
  IncorrectTableTypeError:()=>J,InvalidEngineTypeError:()=>q,InvalidIndexReferenceError:()=>Y,
8
8
  InvalidIndexTypeError:()=>X,InvalidIndexesTypeError:()=>K,InvalidRelationAliasError:()=>N,
9
9
  InvalidRelationColumnError:()=>x,InvalidRelationTableError:()=>F,InvalidRelationTargetError:()=>H,
10
10
  InvalidRelationsTypeError:()=>C,InvalidScalabilityTypeError:()=>W,InvalidSchemaTypeError:()=>Z,
11
- InvalidStreamTypeError:()=>te,InvalidTableTypeError:()=>G,ServiceType:()=>be,createDatabaseService:()=>ue,
12
- getDatabaseServicesMetadata:()=>Te,getDatabaseTableMetadata:()=>ye,getTableSchemaMetadata:()=>fe,
13
- isDatabaseService:()=>lt,isDatabaseServiceDeclaration:()=>pe,isDatabaseTableDeclaration:()=>Ke,
14
- isTableSchemaDeclaration:()=>Fe,registerTriggers:()=>Dt});module.exports=ct(Et);var Le=require("@ez4/common/library"),et=require("@ez4/schema/library"),tt=require("@ez4/project/library");var d=require("@ez4/common/library"),Xe=require("@ez4/reflection"),Ye=require("@ez4/utils");var Me=require("@ez4/project/library");var be="@ez4/database",lt=n(e=>e.type===be,"isDatabaseService"),ue=n(e=>({...(0,Me.createServiceMetadata)(
15
- be,e),variables:{},services:{}}),"createDatabaseService");var xe=require("@ez4/common/library");var A=class extends xe.IncompleteTypeError{static{n(this,"IncompleteServiceError")}constructor(r,t){
11
+ InvalidStreamTypeError:()=>te,InvalidTableTypeError:()=>G,ServiceType:()=>fe,createDatabaseService:()=>ye,
12
+ getDatabaseServicesMetadata:()=>Te,getDatabaseTableMetadata:()=>ue,getTableSchemaMetadata:()=>be,
13
+ isDatabaseService:()=>xt,isDatabaseServiceDeclaration:()=>pe,isDatabaseTableDeclaration:()=>Je,
14
+ isTableSchemaDeclaration:()=>He,registerTriggers:()=>Dt});module.exports=ct(Et);var Le=require("@ez4/common/library"),et=require("@ez4/schema/library"),tt=require("@ez4/project/library");var d=require("@ez4/common/library"),Xe=require("@ez4/reflection"),Ye=require("@ez4/utils");var Me=require("@ez4/common/library");var A=class extends Me.IncompleteTypeError{static{n(this,"IncompleteServiceError")}constructor(r,t){
16
15
  super("Incomplete database service",r,t)}};var g=require("@ez4/common/library");var C=class extends g.InvalidTypeError{static{n(this,"InvalidRelationsTypeError")}constructor(r){
17
16
  super("Invalid table relations type",void 0,"Database.Relations",r)}},z=class extends g.IncorrectTypeError{constructor(t,a){
18
17
  super("Incorrect table relations type",t,"Database.Relations",a);this.relationType=
@@ -29,30 +28,30 @@ ror")}constructor(r,t){super("Incomplete database scalability",r,t)}},W=class ex
29
28
  n(this,"InvalidScalabilityTypeError")}constructor(r){super("Invalid database sca\
30
29
  lability type",void 0,"Database.Scalability",r)}},V=class extends h.IncorrectTypeError{constructor(t,a){
31
30
  super("Incorrect database scalability type",t,"Database.Scalability",a);this.scalabilityType=
32
- t}static{n(this,"IncorrectScalabilityTypeError")}};var pt=n(e=>(0,u.hasHeritageType)(e,"Database.Scalability"),"isDatabaseScalabili\
33
- tyDeclaration"),ve=n((e,r,t,a)=>{if(!(0,S.isTypeReference)(e))return he(e,r,a);let o=(0,u.getReferenceType)(
34
- e,t);if(o)return he(o,r,a)},"getDatabaseScalabilityMetadata"),mt=n(e=>(0,oe.isObjectWith)(
35
- e,["minCapacity","maxCapacity"]),"isCompleteScalability"),he=n((e,r,t)=>{if((0,S.isTypeObject)(
36
- e))return Se(e,r,(0,u.getObjectMembers)(e),t);if(!(0,u.isModelDeclaration)(e)){t.
37
- push(new W(r.file));return}if(!pt(e)){t.push(new V(e.name,e.file));return}return Se(
38
- e,r,(0,u.getModelMembers)(e),t)},"getTypeScalability"),Se=n((e,r,t,a)=>{let o={},
31
+ t}static{n(this,"IncorrectScalabilityTypeError")}};var lt=n(e=>(0,u.hasHeritageType)(e,"Database.Scalability"),"isDatabaseScalabili\
32
+ tyDeclaration"),Se=n((e,r,t,a)=>{if(!(0,S.isTypeReference)(e))return xe(e,r,a);let o=(0,u.getReferenceType)(
33
+ e,t);if(o)return xe(o,r,a)},"getDatabaseScalabilityMetadata"),pt=n(e=>(0,oe.isObjectWith)(
34
+ e,["minCapacity","maxCapacity"]),"isCompleteScalability"),xe=n((e,r,t)=>{if((0,S.isTypeObject)(
35
+ e))return he(e,r,(0,u.getObjectMembers)(e),t);if(!(0,u.isModelDeclaration)(e)){t.
36
+ push(new W(r.file));return}if(!lt(e)){t.push(new V(e.name,e.file));return}return he(
37
+ e,r,(0,u.getModelMembers)(e),t)},"getTypeScalability"),he=n((e,r,t,a)=>{let o={},
39
38
  i=new Set(["minCapacity","maxCapacity"]);for(let s of t)if(!(!(0,S.isModelProperty)(
40
39
  s)||s.inherited))switch(s.name){default:{a.push(new u.InvalidServicePropertyError(
41
40
  r.name,s.name,e.file));break}case"minCapacity":case"maxCapacity":{let c=(0,u.getPropertyNumber)(
42
- s);(0,oe.isAnyNumber)(c)&&(o[s.name]=c,i.delete(s.name));break}}if(!mt(o)){a.push(
43
- new $([...i],e.file));return}return o},"getTypeFromMembers");var I=require("@ez4/reflection"),Ee=require("@ez4/utils"),m=require("@ez4/common/library");var v=require("@ez4/common/library");var U=class extends v.IncompleteTypeError{static{n(this,"IncompleteEngineError")}constructor(r,t){
41
+ s);(0,oe.isAnyNumber)(c)&&(o[s.name]=c,i.delete(s.name));break}}if(!pt(o)){a.push(
42
+ new $([...i],e.file));return}return o},"getTypeFromMembers");var I=require("@ez4/reflection"),De=require("@ez4/utils"),m=require("@ez4/common/library");var v=require("@ez4/common/library");var U=class extends v.IncompleteTypeError{static{n(this,"IncompleteEngineError")}constructor(r,t){
44
43
  super("Incomplete database engine",r,t)}},q=class extends v.InvalidTypeError{static{
45
44
  n(this,"InvalidEngineTypeError")}constructor(r){super("Invalid database engine t\
46
- ype",void 0,"Database.Engine",r)}},_=class extends v.IncorrectTypeError{constructor(t,a){
45
+ ype",void 0,"Database.Engine",r)}},B=class extends v.IncorrectTypeError{constructor(t,a){
47
46
  super("Incorrect database engine type",t,"Database.Engine",a);this.engineType=t}static{
48
- n(this,"IncorrectEngineTypeError")}};var dt=n(e=>(0,m.hasHeritageType)(e,"Database.Engine"),"isDatabaseEngineDeclarat\
49
- ion"),Re=n((e,r,t,a)=>{if(!(0,I.isTypeReference)(e))return Ie(e,r,a);let o=(0,m.getReferenceType)(
50
- e,t);if(o)return Ie(o,r,a)},"getDatabaseEngineMetadata"),bt=n(e=>(0,Ee.isObjectWith)(
47
+ n(this,"IncorrectEngineTypeError")}};var mt=n(e=>(0,m.hasHeritageType)(e,"Database.Engine"),"isDatabaseEngineDeclarat\
48
+ ion"),Ee=n((e,r,t,a)=>{if(!(0,I.isTypeReference)(e))return ve(e,r,a);let o=(0,m.getReferenceType)(
49
+ e,t);if(o)return ve(o,r,a)},"getDatabaseEngineMetadata"),dt=n(e=>(0,De.isObjectWith)(
51
50
  e,["name","parametersMode","transactionMode","insensitiveMode","paginationMode",
52
- "orderMode"]),"isCompleteEngine"),Ie=n((e,r,t)=>{if((0,I.isTypeObject)(e))return De(
51
+ "orderMode"]),"isCompleteEngine"),ve=n((e,r,t)=>{if((0,I.isTypeObject)(e))return Ie(
53
52
  e,r,(0,m.getObjectMembers)(e),t);if(!(0,m.isModelDeclaration)(e)){t.push(new q(r.
54
- file));return}if(!dt(e)){t.push(new _(e.name,e.file));return}return De(e,r,(0,m.getModelMembers)(
55
- e),t)},"getTypeEngine"),De=n((e,r,t,a)=>{let o={},i=new Set(["name","parametersM\
53
+ file));return}if(!mt(e)){t.push(new B(e.name,e.file));return}return Ie(e,r,(0,m.getModelMembers)(
54
+ e),t)},"getTypeEngine"),Ie=n((e,r,t,a)=>{let o={},i=new Set(["name","parametersM\
56
55
  ode","transactionMode","insensitiveMode","paginationMode","orderMode"]);for(let s of t)
57
56
  if(!(!(0,I.isModelProperty)(s)||s.inherited))switch(s.name){default:{a.push(new m.InvalidServicePropertyError(
58
57
  r.name,s.name,e.file));break}case"name":{(o.name=(0,m.getPropertyString)(s))&&i.
@@ -63,8 +62,8 @@ insensitiveMode":{(o.insensitiveMode=(0,m.getPropertyStringIn)(s,["unsupported",
63
62
  "enabled"]))&&i.delete(s.name);break}case"paginationMode":{(o.paginationMode=(0,m.getPropertyStringIn)(
64
63
  s,["cursor","offset"]))&&i.delete(s.name);break}case"orderMode":{(o.orderMode=(0,m.getPropertyStringIn)(
65
64
  s,["any","index"]))&&i.delete(s.name);break}case"lockMode":{(o.lockMode=(0,m.getPropertyStringIn)(
66
- s,["unsupported","supported"]))&&i.delete(s.name);break}}if(!bt(o)){a.push(new U(
67
- [...i],e.file));return}return o},"getTypeFromMembers");var f=require("@ez4/common/library"),j=require("@ez4/reflection"),Je=require("@ez4/utils");var D=require("@ez4/common/library");var B=class extends D.IncompleteTypeError{static{n(this,"IncompleteTableError")}constructor(r,t){
65
+ s,["unsupported","supported"]))&&i.delete(s.name);break}}if(!dt(o)){a.push(new U(
66
+ [...i],e.file));return}return o},"getTypeFromMembers");var f=require("@ez4/common/library"),j=require("@ez4/reflection"),Ge=require("@ez4/utils");var D=require("@ez4/common/library");var _=class extends D.IncompleteTypeError{static{n(this,"IncompleteTableError")}constructor(r,t){
68
67
  super("Incomplete database table",r,t)}},G=class extends D.InvalidTypeError{static{
69
68
  n(this,"InvalidTableTypeError")}constructor(r){super("Invalid database table typ\
70
69
  e",void 0,"Database.Table",r)}},J=class extends D.IncorrectTypeError{constructor(t,a){
@@ -76,93 +75,95 @@ n(this,"IncorrectIndexesTypeError")}},X=class extends M.TypeError{constructor(t,
76
75
  super(`Invalid index type, ${t} must follow one of the Index options.`,a);this.indexName=
77
76
  t}static{n(this,"InvalidIndexTypeError")}},Y=class extends M.TypeError{constructor(t,a){
78
77
  super(`Invalid index reference, ${t} must be valid column.`,a);this.indexName=t}static{
79
- n(this,"InvalidIndexReferenceError")}};var y=require("@ez4/common/library"),E=require("@ez4/reflection");var ut=n(e=>(0,y.hasHeritageType)(e,"Database.Relations"),"isTableRelationsDecla\
80
- ration"),we=n((e,r,t,a)=>{if(!(0,E.isTypeReference)(e))return Oe(e,r,a);let o=(0,y.getReferenceType)(
81
- e,t);if(o)return Oe(o,r,a)},"getTableRelationsMetadata"),Oe=n((e,r,t)=>{if((0,E.isTypeObject)(
78
+ n(this,"InvalidIndexReferenceError")}};var y=require("@ez4/common/library"),E=require("@ez4/reflection");var bt=n(e=>(0,y.hasHeritageType)(e,"Database.Relations"),"isTableRelationsDecla\
79
+ ration"),Oe=n((e,r,t,a)=>{if(!(0,E.isTypeReference)(e))return Re(e,r,a);let o=(0,y.getReferenceType)(
80
+ e,t);if(o)return Re(o,r,a)},"getTableRelationsMetadata"),Re=n((e,r,t)=>{if((0,E.isTypeObject)(
82
81
  e))return ke(e,(0,y.getObjectMembers)(e),t);if(!(0,y.isModelDeclaration)(e)){t.push(
83
- new C(r.file));return}if(!ut(e)){t.push(new z(e.name,e.file));return}return ke(e,
82
+ new C(r.file));return}if(!bt(e)){t.push(new z(e.name,e.file));return}return ke(e,
84
83
  (0,y.getModelMembers)(e),t)},"getTypeRelations"),ke=n((e,r,t)=>{let a=[];for(let o of r){
85
84
  if(!(0,E.isModelProperty)(o)||o.inherited)continue;let i=(0,y.getPropertyString)(
86
- o),s=o.name;if(!i){t.push(new H(s,e.file));return}let[c,l]=s.split("@",2),[b,P]=i.
87
- split(":",2);a.push({sourceTable:b,sourceColumn:P,targetColumn:c,targetAlias:l})}
88
- return a},"getTypeFromMembers");var T=require("@ez4/common/library"),R=require("@ez4/reflection");var ft=n(e=>(0,T.hasHeritageType)(e,"Database.Indexes"),"isTableIndexesDeclarati\
89
- on"),Ae=n((e,r,t,a)=>{if(!(0,R.isTypeReference)(e))return je(e,r,a);let o=(0,T.getReferenceType)(
90
- e,t);if(o)return je(o,r,a)},"getTableIndexesMetadata"),je=n((e,r,t)=>{if((0,R.isTypeObject)(
91
- e))return Pe(e,(0,T.getObjectMembers)(e),t);if(!(0,T.isModelDeclaration)(e)){t.push(
92
- new K(r.file));return}if(!ft(e)){t.push(new Q(e.name,e.file));return}return Pe(e,
93
- (0,T.getModelMembers)(e),t)},"getTypeIndexes"),Pe=n((e,r,t)=>{let a=[];for(let o of r){
85
+ o),s=o.name;if(!i){t.push(new H(s,e.file));return}let[c,p]=s.split("@",2),[b,P]=i.
86
+ split(":",2);a.push({sourceTable:b,sourceColumn:P,targetColumn:c,targetAlias:p})}
87
+ return a},"getTypeFromMembers");var T=require("@ez4/common/library"),R=require("@ez4/reflection");var ut=n(e=>(0,T.hasHeritageType)(e,"Database.Indexes"),"isTableIndexesDeclarati\
88
+ on"),Pe=n((e,r,t,a)=>{if(!(0,R.isTypeReference)(e))return we(e,r,a);let o=(0,T.getReferenceType)(
89
+ e,t);if(o)return we(o,r,a)},"getTableIndexesMetadata"),we=n((e,r,t)=>{if((0,R.isTypeObject)(
90
+ e))return je(e,(0,T.getObjectMembers)(e),t);if(!(0,T.isModelDeclaration)(e)){t.push(
91
+ new K(r.file));return}if(!ut(e)){t.push(new Q(e.name,e.file));return}return je(e,
92
+ (0,T.getModelMembers)(e),t)},"getTypeIndexes"),je=n((e,r,t)=>{let a=[];for(let o of r){
94
93
  if(!(0,R.isModelProperty)(o)||o.inherited)continue;let i=o.name,s=(0,T.getPropertyString)(
95
94
  o);switch(s){case"primary":case"secondary":case"unique":case"ttl":{a.push({name:i,
96
95
  columns:i.split(":"),type:s});break}default:{t.push(new X(i,e.file));return}}}return a},
97
- "getTypeFromMembers");var se=require("@ez4/reflection"),O=require("@ez4/common/library"),ce=require("@ez4/schema"),
98
- He=require("@ez4/schema/library");var ie=require("@ez4/common/library");var Z=class extends ie.InvalidTypeError{static{n(this,"InvalidSchemaTypeError")}constructor(r){
96
+ "getTypeFromMembers");var se=require("@ez4/reflection"),k=require("@ez4/common/library"),ce=require("@ez4/schema"),
97
+ ze=require("@ez4/schema/library");var ie=require("@ez4/common/library");var Z=class extends ie.InvalidTypeError{static{n(this,"InvalidSchemaTypeError")}constructor(r){
99
98
  super("Invalid table schema type",void 0,"Database.Schema",r)}},L=class extends ie.IncorrectTypeError{constructor(t,a){
100
99
  super("Incorrect table schema type",t,"Database.Schema",a);this.schemaType=t}static{
101
- n(this,"IncorrectSchemaTypeError")}};var Fe=n(e=>(0,O.hasHeritageType)(e,"Database.Schema"),"isTableSchemaDeclaration"),
102
- fe=n((e,r,t,a)=>{if(!(0,se.isTypeReference)(e))return Ce(e,r,t,a);let o=(0,O.getReferenceType)(
103
- e,t);if(o)return Ce(o,r,t,a)},"getTableSchemaMetadata"),Ce=n((e,r,t,a)=>{if((0,se.isTypeObject)(
104
- e))return ze(e,t);if(!(0,O.isModelDeclaration)(e)){a.push(new Z(r.file));return}
105
- if(!Fe(e)){a.push(new L(e.name,e.file));return}return ze(e,t)},"getTypeSchema"),
106
- ze=n((e,r)=>{let t=(0,He.getObjectSchema)(e,r,(0,ce.createSchemaContext)({nullish:!0}));
107
- if(t&&(0,ce.isObjectSchema)(t))return t},"getSchema");var p=require("@ez4/common/library"),w=require("@ez4/reflection"),qe=require("@ez4/utils");var k=require("@ez4/common/library");var ee=class extends k.IncompleteTypeError{static{n(this,"IncompleteStreamError")}constructor(r,t){
108
- super("Incomplete table stream",r,t)}},te=class extends k.InvalidTypeError{static{
100
+ n(this,"IncorrectSchemaTypeError")}};var He=n(e=>(0,k.hasHeritageType)(e,"Database.Schema"),"isTableSchemaDeclaration"),
101
+ be=n((e,r,t,a)=>{if(!(0,se.isTypeReference)(e))return Ae(e,r,t,a);let o=(0,k.getReferenceType)(
102
+ e,t);if(o)return Ae(o,r,t,a)},"getTableSchemaMetadata"),Ae=n((e,r,t,a)=>{if((0,se.isTypeObject)(
103
+ e))return Ce(e,t);if(!(0,k.isModelDeclaration)(e)){a.push(new Z(r.file));return}
104
+ if(!He(e)){a.push(new L(e.name,e.file));return}return Ce(e,t)},"getTypeSchema"),
105
+ Ce=n((e,r)=>{let t=(0,ze.getObjectSchema)(e,r,(0,ce.createSchemaContext)({nullish:!0}));
106
+ if(t&&(0,ce.isObjectSchema)(t))return t},"getSchema");var l=require("@ez4/common/library"),w=require("@ez4/reflection"),Ue=require("@ez4/utils");var O=require("@ez4/common/library");var ee=class extends O.IncompleteTypeError{static{n(this,"IncompleteStreamError")}constructor(r,t){
107
+ super("Incomplete table stream",r,t)}},te=class extends O.InvalidTypeError{static{
109
108
  n(this,"InvalidStreamTypeError")}constructor(r){super("Invalid table stream type",
110
- void 0,"Database.Stream",r)}},re=class extends k.IncorrectTypeError{constructor(t,a){
109
+ void 0,"Database.Stream",r)}},re=class extends O.IncorrectTypeError{constructor(t,a){
111
110
  super("Incorrect table stream type",t,"Database.Stream",a);this.streamType=t}static{
112
- n(this,"IncorrectStreamTypeError")}};var le=require("@ez4/reflection"),$e=require("@ez4/common/library");var Ne=require("@ez4/common/library");var ae=class extends Ne.IncompleteTypeError{static{n(this,"IncompleteHandlerErro\
113
- r")}constructor(r,t){super("Incomplete stream handler",r,t)}};var yt=n(e=>(0,le.isTypeCallback)(e)||(0,le.isTypeFunction)(e),"isStreamHandlerD\
114
- eclaration"),We=n((e,r,t)=>{if(!yt(e))return;let a=(0,$e.getFunctionSignature)(e),
111
+ n(this,"IncorrectStreamTypeError")}};var le=require("@ez4/reflection"),Ne=require("@ez4/common/library");var Fe=require("@ez4/common/library");var ae=class extends Fe.IncompleteTypeError{static{n(this,"IncompleteHandlerErro\
112
+ r")}constructor(r,t){super("Incomplete stream handler",r,t)}};var ft=n(e=>(0,le.isTypeCallback)(e)||(0,le.isTypeFunction)(e),"isStreamHandlerD\
113
+ eclaration"),$e=n((e,r,t)=>{if(!ft(e))return;let a=(0,Ne.getFunctionSignature)(e),
115
114
  o=new Set(["change"]);if(e.parameters&&o.delete("change"),!a||o.size){t.push(new ae(
116
- [...o],e.file));return}return a},"getStreamHandlerMetadata");var Tt=n(e=>(0,p.hasHeritageType)(e,"Database.Stream"),"isTableStreamDeclaration"),
117
- _e=n((e,r,t,a)=>{if(!(0,w.isTypeReference)(e))return Ve(e,r,t,a);let o=(0,p.getReferenceType)(
118
- e,t);if(o)return Ve(o,r,t,a)},"getTableStreamMetadata"),gt=n(e=>(0,qe.isObjectWith)(
119
- e,["handler"]),"isCompleteStream"),Ve=n((e,r,t,a)=>{if((0,w.isTypeObject)(e))return Ue(
120
- e,r,(0,p.getObjectMembers)(e),t,a);if(!(0,p.isModelDeclaration)(e)){a.push(new te(
121
- r.file));return}if(!Tt(e)){a.push(new re(e.name,e.file));return}return Ue(e,r,(0,p.getModelMembers)(
122
- e),t,a)},"getTypeStream"),Ue=n((e,r,t,a,o)=>{let i={},s=new Set(["handler"]);for(let c of t)
123
- if(!(!(0,w.isModelProperty)(c)||c.inherited))switch(c.name){default:{o.push(new p.InvalidServicePropertyError(
124
- r.name,c.name,e.file));break}case"handler":{i.handler=We(c.value,a,o);break}case"\
125
- listener":{i.listener=(0,p.getServiceListener)(c.value,o);break}case"memory":case"\
126
- logRetention":case"timeout":{i[c.name]=(0,p.getPropertyNumber)(c);break}case"arc\
127
- hitecture":{i[c.name]=(0,p.getServiceArchitecture)(c);break}case"runtime":{i[c.name]=
128
- (0,p.getServiceRuntime)(c);break}case"variables":{i.variables=(0,p.getLinkedVariableList)(
129
- c,o);break}}if(!gt(i)){o.push(new ee([...s],e.file));return}return i},"getTypeFr\
130
- omMembers");var Ke=n(e=>(0,f.hasHeritageType)(e,"Database.Table"),"isDatabaseTableDeclaratio\
131
- n"),ye=n((e,r,t,a)=>{if(!(0,j.isTypeReference)(e))return Be(e,r,t,a);let o=(0,f.getReferenceType)(
132
- e,t);if(o)return Be(o,r,t,a)},"getDatabaseTableMetadata"),Mt=n(e=>(0,Je.isObjectWith)(
115
+ [...o],e.file));return}return a},"getStreamHandlerMetadata");var yt=n(e=>(0,l.hasHeritageType)(e,"Database.Stream"),"isTableStreamDeclaration"),
116
+ qe=n((e,r,t,a)=>{if(!(0,w.isTypeReference)(e))return We(e,r,t,a);let o=(0,l.getReferenceType)(
117
+ e,t);if(o)return We(o,r,t,a)},"getTableStreamMetadata"),Tt=n(e=>(0,Ue.isObjectWith)(
118
+ e,["handler"]),"isCompleteStream"),We=n((e,r,t,a)=>{if((0,w.isTypeObject)(e))return Ve(
119
+ e,r,(0,l.getObjectMembers)(e),t,a);if(!(0,l.isModelDeclaration)(e)){a.push(new te(
120
+ r.file));return}if(!yt(e)){a.push(new re(e.name,e.file));return}return Ve(e,r,(0,l.getModelMembers)(
121
+ e),t,a)},"getTypeStream"),Ve=n((e,r,t,a,o)=>{let i={},s=new Set(["handler"]);for(let c of t)
122
+ if(!(!(0,w.isModelProperty)(c)||c.inherited))switch(c.name){default:{o.push(new l.InvalidServicePropertyError(
123
+ r.name,c.name,e.file));break}case"handler":{i.handler=$e(c.value,a,o);break}case"\
124
+ memory":case"timeout":case"logRetention":{i[c.name]=(0,l.getPropertyNumber)(c);break}case"\
125
+ logLevel":{i[c.name]=(0,l.getServiceLogLevel)(c);break}case"architecture":{i[c.name]=
126
+ (0,l.getServiceArchitecture)(c);break}case"runtime":{i[c.name]=(0,l.getServiceRuntime)(
127
+ c);break}case"vpc":{i[c.name]=(0,l.getPropertyBoolean)(c);break}case"files":{i[c.
128
+ name]=(0,l.getPropertyStringList)(c);break}case"listener":{i.listener=(0,l.getServiceListener)(
129
+ c.value,o);break}case"variables":{i.variables=(0,l.getLinkedVariableList)(c,o);break}}
130
+ if(!Tt(i)){o.push(new ee([...s],e.file));return}return i},"getTypeFromMembers");var Je=n(e=>(0,f.hasHeritageType)(e,"Database.Table"),"isDatabaseTableDeclaratio\
131
+ n"),ue=n((e,r,t,a)=>{if(!(0,j.isTypeReference)(e))return Be(e,r,t,a);let o=(0,f.getReferenceType)(
132
+ e,t);if(o)return Be(o,r,t,a)},"getDatabaseTableMetadata"),gt=n(e=>(0,Ge.isObjectWith)(
133
133
  e,["name","schema","indexes"]),"isCompleteTable"),Be=n((e,r,t,a)=>{if((0,j.isTypeObject)(
134
- e))return Ge(e,r,(0,f.getObjectMembers)(e),t,a);if(!(0,f.isModelDeclaration)(e)){
135
- a.push(new G(r.file));return}if(!Ke(e)){a.push(new J(e.name,e.file));return}return Ge(
136
- e,r,(0,f.getModelMembers)(e),t,a)},"getTypeTable"),Ge=n((e,r,t,a,o)=>{let i={},s=new Set(
137
- ["name","schema","indexes"]);for(let l of t)if(!(!(0,j.isModelProperty)(l)||l.inherited))
138
- switch(l.name){default:{o.push(new f.InvalidServicePropertyError(r.name,l.name,e.
139
- file));break}case"name":{(i.name=(0,f.getPropertyString)(l))&&s.delete(l.name);break}case"\
140
- schema":{(i.schema=fe(l.value,e,a,o))&&s.delete(l.name);break}case"indexes":{(i.
141
- indexes=Ae(l.value,e,a,o))&&s.delete(l.name);break}case"relations":{i.relations=
142
- we(l.value,e,a,o);break}case"stream":{i.stream=_e(l.value,r,a,o);break}}if(!Mt(i)){
143
- o.push(new B([...s],e.file));return}let c=xt(e,i.indexes,i.schema);if(c.length){
144
- o.push(...c);return}return i},"getTypeFromMembers"),xt=n((e,r,t)=>{let a=t.properties,
145
- o=[];for(let{name:i,columns:s}of r)s.some(l=>!a[l])&&o.push(new Y(i,e.file));return o},
146
- "validateIndexes");var pe=n(e=>(0,d.isClassDeclaration)(e)&&(0,d.hasHeritageType)(e,"Database.Servi\
134
+ e))return _e(e,r,(0,f.getObjectMembers)(e),t,a);if(!(0,f.isModelDeclaration)(e)){
135
+ a.push(new G(r.file));return}if(!Je(e)){a.push(new J(e.name,e.file));return}return _e(
136
+ e,r,(0,f.getModelMembers)(e),t,a)},"getTypeTable"),_e=n((e,r,t,a,o)=>{let i={},s=new Set(
137
+ ["name","schema","indexes"]);for(let p of t)if(!(!(0,j.isModelProperty)(p)||p.inherited))
138
+ switch(p.name){default:{o.push(new f.InvalidServicePropertyError(r.name,p.name,e.
139
+ file));break}case"name":{(i.name=(0,f.getPropertyString)(p))&&s.delete(p.name);break}case"\
140
+ schema":{(i.schema=be(p.value,e,a,o))&&s.delete(p.name);break}case"indexes":{(i.
141
+ indexes=Pe(p.value,e,a,o))&&s.delete(p.name);break}case"relations":{i.relations=
142
+ Oe(p.value,e,a,o);break}case"stream":{i.stream=qe(p.value,r,a,o);break}}if(!gt(i)){
143
+ o.push(new _([...s],e.file));return}let c=Mt(e,i.indexes,i.schema);if(c.length){
144
+ o.push(...c);return}return i},"getTypeFromMembers"),Mt=n((e,r,t)=>{let a=t.properties,
145
+ o=[];for(let{name:i,columns:s}of r)s.some(p=>!a[p])&&o.push(new Y(i,e.file));return o},
146
+ "validateIndexes");var Ke=require("@ez4/project/library");var fe="@ez4/database",xt=n(e=>e.type===fe,"isDatabaseService"),ye=n(e=>({...(0,Ke.createServiceMetadata)(
147
+ fe,e),variables:{},services:{}}),"createDatabaseService");var pe=n(e=>(0,d.isClassDeclaration)(e)&&(0,d.hasHeritageType)(e,"Database.Servi\
147
148
  ce"),"isDatabaseServiceDeclaration"),Te=n(e=>{let r={},t=[];for(let a in e){let o=e[a];
148
- if(!pe(o)||(0,d.isExternalDeclaration)(o))continue;let i=ue(o.name),s=new Set(["\
149
+ if(!pe(o)||(0,d.isExternalDeclaration)(o))continue;let i=ye(o.name),s=new Set(["\
149
150
  engine","tables"]),c=o.file;for(let b of(0,d.getModelMembers)(o))if(!(!(0,Xe.isModelProperty)(
150
151
  b)||b.inherited))switch(b.name){default:{t.push(new d.InvalidServicePropertyError(
151
- i.name,b.name,c));break}case"client":break;case"scalability":{i.scalability=ve(b.
152
- value,o,e,t);break}case"engine":{(i.engine=Re(b.value,o,e,t))&&s.delete(b.name);
152
+ i.name,b.name,c));break}case"client":break;case"scalability":{i.scalability=Se(b.
153
+ value,o,e,t);break}case"engine":{(i.engine=Ee(b.value,o,e,t))&&s.delete(b.name);
153
154
  break}case"tables":{(i.tables=St(b,o,e,t))&&s.delete(b.name);break}case"variable\
154
155
  s":{i.variables=(0,d.getLinkedVariableList)(b,t);break}case"services":{i.services=
155
156
  (0,d.getLinkedServiceList)(b,e,t);break}}if(!ht(i)){t.push(new A([...s],c));continue}
156
- let l=vt(o,i.tables);if(l.length){t.push(...l);continue}if(r[o.name]){t.push(new d.DuplicateServiceError(
157
+ let p=vt(o,i.tables);if(p.length){t.push(...p);continue}if(r[o.name]){t.push(new d.DuplicateServiceError(
157
158
  o.name,c));continue}r[o.name]=i}return{services:r,errors:t}},"getDatabaseService\
158
159
  sMetadata"),ht=n(e=>(0,Ye.isObjectWith)(e,["engine","tables","variables","servic\
159
160
  es"]),"isCompleteService"),St=n((e,r,t,a)=>{let o=(0,d.getPropertyTuple)(e)??[],
160
- i=[];for(let s of o){let c=ye(s,r,t,a);c&&i.push(c)}return i},"getAllTables"),vt=n(
161
+ i=[];for(let s of o){let c=ue(s,r,t,a);c&&i.push(c)}return i},"getAllTables"),vt=n(
161
162
  (e,r)=>{let t=It(r),a=[];for(let{relations:o,schema:i,indexes:s}of r){if(!o)continue;
162
- let c=i.properties;for(let l of o){let{sourceTable:b,sourceColumn:P,targetColumn:me,
163
- targetAlias:ge}=l;c[me]||a.push(new x(me,e.file)),c[ge]&&a.push(new N(ge,e.file));
163
+ let c=i.properties;for(let p of o){let{sourceTable:b,sourceColumn:P,targetColumn:me,
164
+ targetAlias:ge}=p;c[me]||a.push(new x(me,e.file)),c[ge]&&a.push(new N(ge,e.file));
164
165
  let de=t[b]?.schema.properties;de||a.push(new F(b,e.file)),de&&!de[P]&&a.push(new x(
165
- P,e.file));let rt=t[b]?.indexes??[];l.sourceIndex=Qe(rt,P),l.targetIndex=Qe(s,me)}}
166
+ P,e.file));let rt=t[b]?.indexes??[];p.sourceIndex=Qe(rt,P),p.targetIndex=Qe(s,me)}}
166
167
  return a},"validateRelations"),Qe=n((e,r)=>e.find(({name:t})=>t===r)?.type,"getI\
167
168
  ndexType"),It=n(e=>e.reduce((r,t)=>({...r,[t.name]:t}),{}),"getTableMap");var Ze=n(e=>pe(e)?e.name:null,"getLinkedService");var Dt=n(()=>{(0,Le.registerTriggers)(),(0,et.registerTriggers)(),(0,tt.tryCreateTrigger)(
168
169
  "@ez4/database",{"metadata:getServices":Te,"metadata:getLinkedService":Ze})},"re\
package/dist/library.mjs CHANGED
@@ -1,11 +1,10 @@
1
- var Me=Object.defineProperty;var n=(e,r)=>Me(e,"name",{value:r,configurable:!0});import{registerTriggers as $r}from"@ez4/common/library";import{registerTriggers as Wr}from"@ez4/schema/library";
2
- import{tryCreateTrigger as Vr}from"@ez4/project/library";import{DuplicateServiceError as Ir,InvalidServicePropertyError as Dr,isExternalDeclaration as Er,
3
- isClassDeclaration as Rr,getLinkedServiceList as Or,getLinkedVariableList as kr,
4
- getPropertyTuple as wr,getModelMembers as jr,hasHeritageType as Pr}from"@ez4/common/library";
5
- import{isModelProperty as Ar}from"@ez4/reflection";import{isObjectWith as Cr}from"@ez4/utils";import{createServiceMetadata as xe}from"@ez4/project/library";var _="@ez4/database",_r=n(e=>e.type===_,"isDatabaseService"),B=n(e=>({...xe(_,e),
6
- variables:{},services:{}}),"createDatabaseService");import{IncompleteTypeError as he}from"@ez4/common/library";var u=class extends he{static{n(this,"IncompleteServiceError")}constructor(r,t){
7
- super("Incomplete database service",r,t)}};import{IncorrectTypeError as Se,InvalidTypeError as ve,TypeError as x}from"@ez4/common/library";var f=class extends ve{static{n(this,"InvalidRelationsTypeError")}constructor(r){
8
- super("Invalid table relations type",void 0,"Database.Relations",r)}},y=class extends Se{constructor(t,a){
1
+ var Me=Object.defineProperty;var n=(e,r)=>Me(e,"name",{value:r,configurable:!0});import{registerTriggers as Ur}from"@ez4/common/library";import{registerTriggers as qr}from"@ez4/schema/library";
2
+ import{tryCreateTrigger as Br}from"@ez4/project/library";import{DuplicateServiceError as Rr,InvalidServicePropertyError as kr,isExternalDeclaration as Or,
3
+ isClassDeclaration as wr,getLinkedServiceList as jr,getLinkedVariableList as Pr,
4
+ getPropertyTuple as Ar,getModelMembers as Cr,hasHeritageType as zr}from"@ez4/common/library";
5
+ import{isModelProperty as Hr}from"@ez4/reflection";import{isObjectWith as Fr}from"@ez4/utils";import{IncompleteTypeError as xe}from"@ez4/common/library";var u=class extends xe{static{n(this,"IncompleteServiceError")}constructor(r,t){
6
+ super("Incomplete database service",r,t)}};import{IncorrectTypeError as he,InvalidTypeError as Se,TypeError as x}from"@ez4/common/library";var f=class extends Se{static{n(this,"InvalidRelationsTypeError")}constructor(r){
7
+ super("Invalid table relations type",void 0,"Database.Relations",r)}},y=class extends he{constructor(t,a){
9
8
  super("Incorrect table relations type",t,"Database.Relations",a);this.relationType=
10
9
  t}static{n(this,"IncorrectRelationsTypeError")}},T=class extends x{constructor(t,a){
11
10
  super(`Target ${t} must follow the pattern 'column@alias'.`,a);this.relationSource=
@@ -15,157 +14,160 @@ super(`Relation table ${t} don't exists.`,a);this.relationTable=t}static{n(this,
15
14
  n column ${t} don't exists.`,a);this.relationColumn=t}static{n(this,"InvalidRela\
16
15
  tionColumnError")}},M=class extends x{constructor(t,a){super(`Relation alias ${t}\
17
16
  can't override table columns.`,a);this.relationAlias=t}static{n(this,"InvalidRe\
18
- lationAliasError")}};import{InvalidServicePropertyError as Re,isModelDeclaration as Oe,getModelMembers as ke,
19
- getPropertyNumber as we,getObjectMembers as je,getReferenceType as Pe,hasHeritageType as Ae}from"@ez4/common/library";
20
- import{isModelProperty as Ce,isTypeObject as ze,isTypeReference as He}from"@ez4/reflection";
21
- import{isAnyNumber as Fe,isObjectWith as Ne}from"@ez4/utils";import{IncompleteTypeError as Ie,IncorrectTypeError as De,InvalidTypeError as Ee}from"@ez4/common/library";var h=class extends Ie{static{n(this,"IncompleteScalabilityError")}constructor(r,t){
22
- super("Incomplete database scalability",r,t)}},S=class extends Ee{static{n(this,
17
+ lationAliasError")}};import{InvalidServicePropertyError as Ee,isModelDeclaration as Re,getModelMembers as ke,
18
+ getPropertyNumber as Oe,getObjectMembers as we,getReferenceType as je,hasHeritageType as Pe}from"@ez4/common/library";
19
+ import{isModelProperty as Ae,isTypeObject as Ce,isTypeReference as ze}from"@ez4/reflection";
20
+ import{isAnyNumber as He,isObjectWith as Fe}from"@ez4/utils";import{IncompleteTypeError as ve,IncorrectTypeError as Ie,InvalidTypeError as De}from"@ez4/common/library";var h=class extends ve{static{n(this,"IncompleteScalabilityError")}constructor(r,t){
21
+ super("Incomplete database scalability",r,t)}},S=class extends De{static{n(this,
23
22
  "InvalidScalabilityTypeError")}constructor(r){super("Invalid database scalabilit\
24
- y type",void 0,"Database.Scalability",r)}},v=class extends De{constructor(t,a){super(
23
+ y type",void 0,"Database.Scalability",r)}},v=class extends Ie{constructor(t,a){super(
25
24
  "Incorrect database scalability type",t,"Database.Scalability",a);this.scalabilityType=
26
- t}static{n(this,"IncorrectScalabilityTypeError")}};var $e=n(e=>Ae(e,"Database.Scalability"),"isDatabaseScalabilityDeclaration"),K=n(
27
- (e,r,t,a)=>{if(!He(e))return G(e,r,a);let o=Pe(e,t);if(o)return G(o,r,a)},"getDa\
28
- tabaseScalabilityMetadata"),We=n(e=>Ne(e,["minCapacity","maxCapacity"]),"isCompl\
29
- eteScalability"),G=n((e,r,t)=>{if(ze(e))return J(e,r,je(e),t);if(!Oe(e)){t.push(
30
- new S(r.file));return}if(!$e(e)){t.push(new v(e.name,e.file));return}return J(e,
31
- r,ke(e),t)},"getTypeScalability"),J=n((e,r,t,a)=>{let o={},i=new Set(["minCapaci\
32
- ty","maxCapacity"]);for(let s of t)if(!(!Ce(s)||s.inherited))switch(s.name){default:{
33
- a.push(new Re(r.name,s.name,e.file));break}case"minCapacity":case"maxCapacity":{
34
- let c=we(s);Fe(c)&&(o[s.name]=c,i.delete(s.name));break}}if(!We(o)){a.push(new h(
35
- [...i],e.file));return}return o},"getTypeFromMembers");import{isModelProperty as _e,isTypeObject as Be,isTypeReference as Ge}from"@ez4/reflection";
36
- import{isObjectWith as Je}from"@ez4/utils";import{InvalidServicePropertyError as Ke,
37
- isModelDeclaration as Qe,getModelMembers as Xe,getObjectMembers as Ye,getPropertyString as Ze,
38
- getPropertyStringIn as m,getReferenceType as Le,hasHeritageType as et}from"@ez4/common/library";import{IncompleteTypeError as Ve,IncorrectTypeError as Ue,InvalidTypeError as qe}from"@ez4/common/library";var I=class extends Ve{static{n(this,"IncompleteEngineError")}constructor(r,t){super(
39
- "Incomplete database engine",r,t)}},D=class extends qe{static{n(this,"InvalidEng\
25
+ t}static{n(this,"IncorrectScalabilityTypeError")}};var Ne=n(e=>Pe(e,"Database.Scalability"),"isDatabaseScalabilityDeclaration"),G=n(
26
+ (e,r,t,a)=>{if(!ze(e))return B(e,r,a);let o=je(e,t);if(o)return B(o,r,a)},"getDa\
27
+ tabaseScalabilityMetadata"),$e=n(e=>Fe(e,["minCapacity","maxCapacity"]),"isCompl\
28
+ eteScalability"),B=n((e,r,t)=>{if(Ce(e))return _(e,r,we(e),t);if(!Re(e)){t.push(
29
+ new S(r.file));return}if(!Ne(e)){t.push(new v(e.name,e.file));return}return _(e,
30
+ r,ke(e),t)},"getTypeScalability"),_=n((e,r,t,a)=>{let o={},i=new Set(["minCapaci\
31
+ ty","maxCapacity"]);for(let s of t)if(!(!Ae(s)||s.inherited))switch(s.name){default:{
32
+ a.push(new Ee(r.name,s.name,e.file));break}case"minCapacity":case"maxCapacity":{
33
+ let c=Oe(s);He(c)&&(o[s.name]=c,i.delete(s.name));break}}if(!$e(o)){a.push(new h(
34
+ [...i],e.file));return}return o},"getTypeFromMembers");import{isModelProperty as qe,isTypeObject as Be,isTypeReference as _e}from"@ez4/reflection";
35
+ import{isObjectWith as Ge}from"@ez4/utils";import{InvalidServicePropertyError as Je,
36
+ isModelDeclaration as Ke,getModelMembers as Qe,getObjectMembers as Xe,getPropertyString as Ye,
37
+ getPropertyStringIn as m,getReferenceType as Ze,hasHeritageType as Le}from"@ez4/common/library";import{IncompleteTypeError as We,IncorrectTypeError as Ve,InvalidTypeError as Ue}from"@ez4/common/library";var I=class extends We{static{n(this,"IncompleteEngineError")}constructor(r,t){super(
38
+ "Incomplete database engine",r,t)}},D=class extends Ue{static{n(this,"InvalidEng\
40
39
  ineTypeError")}constructor(r){super("Invalid database engine type",void 0,"Datab\
41
- ase.Engine",r)}},E=class extends Ue{constructor(t,a){super("Incorrect database e\
40
+ ase.Engine",r)}},E=class extends Ve{constructor(t,a){super("Incorrect database e\
42
41
  ngine type",t,"Database.Engine",a);this.engineType=t}static{n(this,"IncorrectEng\
43
- ineTypeError")}};var tt=n(e=>et(e,"Database.Engine"),"isDatabaseEngineDeclaration"),Y=n((e,r,t,a)=>{
44
- if(!Ge(e))return Q(e,r,a);let o=Le(e,t);if(o)return Q(o,r,a)},"getDatabaseEngine\
45
- Metadata"),rt=n(e=>Je(e,["name","parametersMode","transactionMode","insensitiveM\
46
- ode","paginationMode","orderMode"]),"isCompleteEngine"),Q=n((e,r,t)=>{if(Be(e))return X(
47
- e,r,Ye(e),t);if(!Qe(e)){t.push(new D(r.file));return}if(!tt(e)){t.push(new E(e.name,
48
- e.file));return}return X(e,r,Xe(e),t)},"getTypeEngine"),X=n((e,r,t,a)=>{let o={},
42
+ ineTypeError")}};var et=n(e=>Le(e,"Database.Engine"),"isDatabaseEngineDeclaration"),Q=n((e,r,t,a)=>{
43
+ if(!_e(e))return J(e,r,a);let o=Ze(e,t);if(o)return J(o,r,a)},"getDatabaseEngine\
44
+ Metadata"),tt=n(e=>Ge(e,["name","parametersMode","transactionMode","insensitiveM\
45
+ ode","paginationMode","orderMode"]),"isCompleteEngine"),J=n((e,r,t)=>{if(Be(e))return K(
46
+ e,r,Xe(e),t);if(!Ke(e)){t.push(new D(r.file));return}if(!et(e)){t.push(new E(e.name,
47
+ e.file));return}return K(e,r,Qe(e),t)},"getTypeEngine"),K=n((e,r,t,a)=>{let o={},
49
48
  i=new Set(["name","parametersMode","transactionMode","insensitiveMode","paginati\
50
- onMode","orderMode"]);for(let s of t)if(!(!_e(s)||s.inherited))switch(s.name){default:{
51
- a.push(new Ke(r.name,s.name,e.file));break}case"name":{(o.name=Ze(s))&&i.delete(
49
+ onMode","orderMode"]);for(let s of t)if(!(!qe(s)||s.inherited))switch(s.name){default:{
50
+ a.push(new Je(r.name,s.name,e.file));break}case"name":{(o.name=Ye(s))&&i.delete(
52
51
  s.name);break}case"parametersMode":{(o.parametersMode=m(s,["index","both"]))&&i.
53
52
  delete(s.name);break}case"transactionMode":{(o.transactionMode=m(s,["static","in\
54
53
  teractive"]))&&i.delete(s.name);break}case"insensitiveMode":{(o.insensitiveMode=
55
54
  m(s,["unsupported","enabled"]))&&i.delete(s.name);break}case"paginationMode":{(o.
56
55
  paginationMode=m(s,["cursor","offset"]))&&i.delete(s.name);break}case"orderMode":{
57
56
  (o.orderMode=m(s,["any","index"]))&&i.delete(s.name);break}case"lockMode":{(o.lockMode=
58
- m(s,["unsupported","supported"]))&&i.delete(s.name);break}}if(!rt(o)){a.push(new I(
59
- [...i],e.file));return}return o},"getTypeFromMembers");import{InvalidServicePropertyError as pr,isModelDeclaration as mr,getModelMembers as dr,
60
- getObjectMembers as br,getPropertyString as ur,getReferenceType as fr,hasHeritageType as yr}from"@ez4/common/library";
61
- import{isModelProperty as Tr,isTypeObject as gr,isTypeReference as Mr}from"@ez4/reflection";
62
- import{isObjectWith as xr}from"@ez4/utils";import{IncompleteTypeError as at,IncorrectTypeError as nt,InvalidTypeError as ot}from"@ez4/common/library";var R=class extends at{static{n(this,"IncompleteTableError")}constructor(r,t){super(
63
- "Incomplete database table",r,t)}},O=class extends ot{static{n(this,"InvalidTabl\
57
+ m(s,["unsupported","supported"]))&&i.delete(s.name);break}}if(!tt(o)){a.push(new I(
58
+ [...i],e.file));return}return o},"getTypeFromMembers");import{InvalidServicePropertyError as dr,isModelDeclaration as br,getModelMembers as ur,
59
+ getObjectMembers as fr,getPropertyString as yr,getReferenceType as Tr,hasHeritageType as gr}from"@ez4/common/library";
60
+ import{isModelProperty as Mr,isTypeObject as xr,isTypeReference as hr}from"@ez4/reflection";
61
+ import{isObjectWith as Sr}from"@ez4/utils";import{IncompleteTypeError as rt,IncorrectTypeError as at,InvalidTypeError as nt}from"@ez4/common/library";var R=class extends rt{static{n(this,"IncompleteTableError")}constructor(r,t){super(
62
+ "Incomplete database table",r,t)}},k=class extends nt{static{n(this,"InvalidTabl\
64
63
  eTypeError")}constructor(r){super("Invalid database table type",void 0,"Database\
65
- .Table",r)}},k=class extends nt{constructor(t,a){super("Incorrect database table\
64
+ .Table",r)}},O=class extends at{constructor(t,a){super("Incorrect database table\
66
65
  type",t,"Database.Table",a);this.tableType=t}static{n(this,"IncorrectTableTypeE\
67
- rror")}};import{IncorrectTypeError as it,InvalidTypeError as st,TypeError as Z}from"@ez4/common/library";var w=class extends st{static{n(this,"InvalidIndexesTypeError")}constructor(r){super(
68
- "Invalid table indexes type",void 0,"Database.Indexes",r)}},j=class extends it{constructor(t,a){
66
+ rror")}};import{IncorrectTypeError as ot,InvalidTypeError as it,TypeError as X}from"@ez4/common/library";var w=class extends it{static{n(this,"InvalidIndexesTypeError")}constructor(r){super(
67
+ "Invalid table indexes type",void 0,"Database.Indexes",r)}},j=class extends ot{constructor(t,a){
69
68
  super("Incorrect table indexes type",t,"Database.Indexes",a);this.indexType=t}static{
70
- n(this,"IncorrectIndexesTypeError")}},P=class extends Z{constructor(t,a){super(`\
69
+ n(this,"IncorrectIndexesTypeError")}},P=class extends X{constructor(t,a){super(`\
71
70
  Invalid index type, ${t} must follow one of the Index options.`,a);this.indexName=
72
- t}static{n(this,"InvalidIndexTypeError")}},A=class extends Z{constructor(t,a){super(
71
+ t}static{n(this,"InvalidIndexTypeError")}},A=class extends X{constructor(t,a){super(
73
72
  `Invalid index reference, ${t} must be valid column.`,a);this.indexName=t}static{
74
- n(this,"InvalidIndexReferenceError")}};import{isModelDeclaration as ct,getModelMembers as lt,getObjectMembers as pt,getPropertyString as mt,
75
- getReferenceType as dt,hasHeritageType as bt}from"@ez4/common/library";import{isModelProperty as ut,
76
- isTypeObject as ft,isTypeReference as yt}from"@ez4/reflection";var Tt=n(e=>bt(e,"Database.Relations"),"isTableRelationsDeclaration"),te=n((e,r,t,a)=>{
77
- if(!yt(e))return L(e,r,a);let o=dt(e,t);if(o)return L(o,r,a)},"getTableRelations\
78
- Metadata"),L=n((e,r,t)=>{if(ft(e))return ee(e,pt(e),t);if(!ct(e)){t.push(new f(r.
79
- file));return}if(!Tt(e)){t.push(new y(e.name,e.file));return}return ee(e,lt(e),t)},
80
- "getTypeRelations"),ee=n((e,r,t)=>{let a=[];for(let o of r){if(!ut(o)||o.inherited)
81
- continue;let i=mt(o),s=o.name;if(!i){t.push(new T(s,e.file));return}let[c,l]=s.split(
73
+ n(this,"InvalidIndexReferenceError")}};import{isModelDeclaration as st,getModelMembers as ct,getObjectMembers as lt,getPropertyString as pt,
74
+ getReferenceType as mt,hasHeritageType as dt}from"@ez4/common/library";import{isModelProperty as bt,
75
+ isTypeObject as ut,isTypeReference as ft}from"@ez4/reflection";var yt=n(e=>dt(e,"Database.Relations"),"isTableRelationsDeclaration"),L=n((e,r,t,a)=>{
76
+ if(!ft(e))return Y(e,r,a);let o=mt(e,t);if(o)return Y(o,r,a)},"getTableRelations\
77
+ Metadata"),Y=n((e,r,t)=>{if(ut(e))return Z(e,lt(e),t);if(!st(e)){t.push(new f(r.
78
+ file));return}if(!yt(e)){t.push(new y(e.name,e.file));return}return Z(e,ct(e),t)},
79
+ "getTypeRelations"),Z=n((e,r,t)=>{let a=[];for(let o of r){if(!bt(o)||o.inherited)
80
+ continue;let i=pt(o),s=o.name;if(!i){t.push(new T(s,e.file));return}let[c,l]=s.split(
82
81
  "@",2),[p,d]=i.split(":",2);a.push({sourceTable:p,sourceColumn:d,targetColumn:c,
83
- targetAlias:l})}return a},"getTypeFromMembers");import{isModelDeclaration as gt,getModelMembers as Mt,getObjectMembers as xt,getPropertyString as ht,
84
- getReferenceType as St,hasHeritageType as vt}from"@ez4/common/library";import{isModelProperty as It,
85
- isTypeObject as Dt,isTypeReference as Et}from"@ez4/reflection";var Rt=n(e=>vt(e,"Database.Indexes"),"isTableIndexesDeclaration"),ne=n((e,r,t,a)=>{
86
- if(!Et(e))return re(e,r,a);let o=St(e,t);if(o)return re(o,r,a)},"getTableIndexes\
87
- Metadata"),re=n((e,r,t)=>{if(Dt(e))return ae(e,xt(e),t);if(!gt(e)){t.push(new w(
88
- r.file));return}if(!Rt(e)){t.push(new j(e.name,e.file));return}return ae(e,Mt(e),
89
- t)},"getTypeIndexes"),ae=n((e,r,t)=>{let a=[];for(let o of r){if(!It(o)||o.inherited)
90
- continue;let i=o.name,s=ht(o);switch(s){case"primary":case"secondary":case"uniqu\
82
+ targetAlias:l})}return a},"getTypeFromMembers");import{isModelDeclaration as Tt,getModelMembers as gt,getObjectMembers as Mt,getPropertyString as xt,
83
+ getReferenceType as ht,hasHeritageType as St}from"@ez4/common/library";import{isModelProperty as vt,
84
+ isTypeObject as It,isTypeReference as Dt}from"@ez4/reflection";var Et=n(e=>St(e,"Database.Indexes"),"isTableIndexesDeclaration"),re=n((e,r,t,a)=>{
85
+ if(!Dt(e))return ee(e,r,a);let o=ht(e,t);if(o)return ee(o,r,a)},"getTableIndexes\
86
+ Metadata"),ee=n((e,r,t)=>{if(It(e))return te(e,Mt(e),t);if(!Tt(e)){t.push(new w(
87
+ r.file));return}if(!Et(e)){t.push(new j(e.name,e.file));return}return te(e,gt(e),
88
+ t)},"getTypeIndexes"),te=n((e,r,t)=>{let a=[];for(let o of r){if(!vt(o)||o.inherited)
89
+ continue;let i=o.name,s=xt(o);switch(s){case"primary":case"secondary":case"uniqu\
91
90
  e":case"ttl":{a.push({name:i,columns:i.split(":"),type:s});break}default:{t.push(
92
- new P(i,e.file));return}}}return a},"getTypeFromMembers");import{isTypeObject as wt,isTypeReference as jt}from"@ez4/reflection";import{getReferenceType as Pt,
93
- hasHeritageType as At,isModelDeclaration as Ct}from"@ez4/common/library";import{
94
- createSchemaContext as zt,isObjectSchema as Ht}from"@ez4/schema";import{getObjectSchema as Ft}from"@ez4/schema/library";import{IncorrectTypeError as Ot,InvalidTypeError as kt}from"@ez4/common/library";var C=class extends kt{static{n(this,"InvalidSchemaTypeError")}constructor(r){super(
95
- "Invalid table schema type",void 0,"Database.Schema",r)}},z=class extends Ot{constructor(t,a){
91
+ new P(i,e.file));return}}}return a},"getTypeFromMembers");import{isTypeObject as Ot,isTypeReference as wt}from"@ez4/reflection";import{getReferenceType as jt,
92
+ hasHeritageType as Pt,isModelDeclaration as At}from"@ez4/common/library";import{
93
+ createSchemaContext as Ct,isObjectSchema as zt}from"@ez4/schema";import{getObjectSchema as Ht}from"@ez4/schema/library";import{IncorrectTypeError as Rt,InvalidTypeError as kt}from"@ez4/common/library";var C=class extends kt{static{n(this,"InvalidSchemaTypeError")}constructor(r){super(
94
+ "Invalid table schema type",void 0,"Database.Schema",r)}},z=class extends Rt{constructor(t,a){
96
95
  super("Incorrect table schema type",t,"Database.Schema",a);this.schemaType=t}static{
97
- n(this,"IncorrectSchemaTypeError")}};var Nt=n(e=>At(e,"Database.Schema"),"isTableSchemaDeclaration"),se=n((e,r,t,a)=>{
98
- if(!jt(e))return oe(e,r,t,a);let o=Pt(e,t);if(o)return oe(o,r,t,a)},"getTableSch\
99
- emaMetadata"),oe=n((e,r,t,a)=>{if(wt(e))return ie(e,t);if(!Ct(e)){a.push(new C(r.
100
- file));return}if(!Nt(e)){a.push(new z(e.name,e.file));return}return ie(e,t)},"ge\
101
- tTypeSchema"),ie=n((e,r)=>{let t=Ft(e,r,zt({nullish:!0}));if(t&&Ht(t))return t},
102
- "getSchema");import{InvalidServicePropertyError as Jt,isModelDeclaration as Kt,getLinkedVariableList as Qt,
103
- getModelMembers as Xt,getObjectMembers as Yt,getPropertyNumber as Zt,getServiceListener as Lt,
104
- getServiceArchitecture as er,getServiceRuntime as tr,getReferenceType as rr,hasHeritageType as ar}from"@ez4/common/library";
105
- import{isModelProperty as nr,isTypeObject as or,isTypeReference as ir}from"@ez4/reflection";
106
- import{isObjectWith as sr}from"@ez4/utils";import{IncompleteTypeError as $t,IncorrectTypeError as Wt,InvalidTypeError as Vt}from"@ez4/common/library";var H=class extends $t{static{n(this,"IncompleteStreamError")}constructor(r,t){super(
107
- "Incomplete table stream",r,t)}},F=class extends Vt{static{n(this,"InvalidStream\
96
+ n(this,"IncorrectSchemaTypeError")}};var Ft=n(e=>Pt(e,"Database.Schema"),"isTableSchemaDeclaration"),oe=n((e,r,t,a)=>{
97
+ if(!wt(e))return ae(e,r,t,a);let o=jt(e,t);if(o)return ae(o,r,t,a)},"getTableSch\
98
+ emaMetadata"),ae=n((e,r,t,a)=>{if(Ot(e))return ne(e,t);if(!At(e)){a.push(new C(r.
99
+ file));return}if(!Ft(e)){a.push(new z(e.name,e.file));return}return ne(e,t)},"ge\
100
+ tTypeSchema"),ne=n((e,r)=>{let t=Ht(e,r,Ct({nullish:!0}));if(t&&zt(t))return t},
101
+ "getSchema");import{InvalidServicePropertyError as Gt,isModelDeclaration as Jt,getLinkedVariableList as Kt,
102
+ getModelMembers as Qt,getObjectMembers as Xt,getPropertyNumber as Yt,getPropertyStringList as Zt,
103
+ getPropertyBoolean as Lt,getReferenceType as er,getServiceListener as tr,getServiceArchitecture as rr,
104
+ getServiceLogLevel as ar,getServiceRuntime as nr,hasHeritageType as or}from"@ez4/common/library";
105
+ import{isModelProperty as ir,isTypeObject as sr,isTypeReference as cr}from"@ez4/reflection";
106
+ import{isObjectWith as lr}from"@ez4/utils";import{IncompleteTypeError as Nt,IncorrectTypeError as $t,InvalidTypeError as Wt}from"@ez4/common/library";var H=class extends Nt{static{n(this,"IncompleteStreamError")}constructor(r,t){super(
107
+ "Incomplete table stream",r,t)}},F=class extends Wt{static{n(this,"InvalidStream\
108
108
  TypeError")}constructor(r){super("Invalid table stream type",void 0,"Database.St\
109
- ream",r)}},N=class extends Wt{constructor(t,a){super("Incorrect table stream typ\
109
+ ream",r)}},N=class extends $t{constructor(t,a){super("Incorrect table stream typ\
110
110
  e",t,"Database.Stream",a);this.streamType=t}static{n(this,"IncorrectStreamTypeEr\
111
- ror")}};import{isTypeCallback as qt,isTypeFunction as _t}from"@ez4/reflection";import{getFunctionSignature as Bt}from"@ez4/common/library";import{IncompleteTypeError as Ut}from"@ez4/common/library";var $=class extends Ut{static{n(this,"IncompleteHandlerError")}constructor(r,t){
112
- super("Incomplete stream handler",r,t)}};var Gt=n(e=>qt(e)||_t(e),"isStreamHandlerDeclaration"),ce=n((e,r,t)=>{if(!Gt(e))
111
+ ror")}};import{isTypeCallback as Ut,isTypeFunction as qt}from"@ez4/reflection";import{getFunctionSignature as Bt}from"@ez4/common/library";import{IncompleteTypeError as Vt}from"@ez4/common/library";var $=class extends Vt{static{n(this,"IncompleteHandlerError")}constructor(r,t){
112
+ super("Incomplete stream handler",r,t)}};var _t=n(e=>Ut(e)||qt(e),"isStreamHandlerDeclaration"),ie=n((e,r,t)=>{if(!_t(e))
113
113
  return;let a=Bt(e),o=new Set(["change"]);if(e.parameters&&o.delete("change"),!a||
114
- o.size){t.push(new $([...o],e.file));return}return a},"getStreamHandlerMetadata");var cr=n(e=>ar(e,"Database.Stream"),"isTableStreamDeclaration"),me=n((e,r,t,a)=>{
115
- if(!ir(e))return le(e,r,t,a);let o=rr(e,t);if(o)return le(o,r,t,a)},"getTableStr\
116
- eamMetadata"),lr=n(e=>sr(e,["handler"]),"isCompleteStream"),le=n((e,r,t,a)=>{if(or(
117
- e))return pe(e,r,Yt(e),t,a);if(!Kt(e)){a.push(new F(r.file));return}if(!cr(e)){a.
118
- push(new N(e.name,e.file));return}return pe(e,r,Xt(e),t,a)},"getTypeStream"),pe=n(
119
- (e,r,t,a,o)=>{let i={},s=new Set(["handler"]);for(let c of t)if(!(!nr(c)||c.inherited))
120
- switch(c.name){default:{o.push(new Jt(r.name,c.name,e.file));break}case"handler":{
121
- i.handler=ce(c.value,a,o);break}case"listener":{i.listener=Lt(c.value,o);break}case"\
122
- memory":case"logRetention":case"timeout":{i[c.name]=Zt(c);break}case"architectur\
123
- e":{i[c.name]=er(c);break}case"runtime":{i[c.name]=tr(c);break}case"variables":{
124
- i.variables=Qt(c,o);break}}if(!lr(i)){o.push(new H([...s],e.file));return}return i},
125
- "getTypeFromMembers");var hr=n(e=>yr(e,"Database.Table"),"isDatabaseTableDeclaration"),ue=n((e,r,t,a)=>{
126
- if(!Mr(e))return de(e,r,t,a);let o=fr(e,t);if(o)return de(o,r,t,a)},"getDatabase\
127
- TableMetadata"),Sr=n(e=>xr(e,["name","schema","indexes"]),"isCompleteTable"),de=n(
128
- (e,r,t,a)=>{if(gr(e))return be(e,r,br(e),t,a);if(!mr(e)){a.push(new O(r.file));return}
129
- if(!hr(e)){a.push(new k(e.name,e.file));return}return be(e,r,dr(e),t,a)},"getTyp\
130
- eTable"),be=n((e,r,t,a,o)=>{let i={},s=new Set(["name","schema","indexes"]);for(let l of t)
131
- if(!(!Tr(l)||l.inherited))switch(l.name){default:{o.push(new pr(r.name,l.name,e.
132
- file));break}case"name":{(i.name=ur(l))&&s.delete(l.name);break}case"schema":{(i.
133
- schema=se(l.value,e,a,o))&&s.delete(l.name);break}case"indexes":{(i.indexes=ne(l.
134
- value,e,a,o))&&s.delete(l.name);break}case"relations":{i.relations=te(l.value,e,
135
- a,o);break}case"stream":{i.stream=me(l.value,r,a,o);break}}if(!Sr(i)){o.push(new R(
136
- [...s],e.file));return}let c=vr(e,i.indexes,i.schema);if(c.length){o.push(...c);
137
- return}return i},"getTypeFromMembers"),vr=n((e,r,t)=>{let a=t.properties,o=[];for(let{
114
+ o.size){t.push(new $([...o],e.file));return}return a},"getStreamHandlerMetadata");var pr=n(e=>or(e,"Database.Stream"),"isTableStreamDeclaration"),le=n((e,r,t,a)=>{
115
+ if(!cr(e))return se(e,r,t,a);let o=er(e,t);if(o)return se(o,r,t,a)},"getTableStr\
116
+ eamMetadata"),mr=n(e=>lr(e,["handler"]),"isCompleteStream"),se=n((e,r,t,a)=>{if(sr(
117
+ e))return ce(e,r,Xt(e),t,a);if(!Jt(e)){a.push(new F(r.file));return}if(!pr(e)){a.
118
+ push(new N(e.name,e.file));return}return ce(e,r,Qt(e),t,a)},"getTypeStream"),ce=n(
119
+ (e,r,t,a,o)=>{let i={},s=new Set(["handler"]);for(let c of t)if(!(!ir(c)||c.inherited))
120
+ switch(c.name){default:{o.push(new Gt(r.name,c.name,e.file));break}case"handler":{
121
+ i.handler=ie(c.value,a,o);break}case"memory":case"timeout":case"logRetention":{i[c.
122
+ name]=Yt(c);break}case"logLevel":{i[c.name]=ar(c);break}case"architecture":{i[c.
123
+ name]=rr(c);break}case"runtime":{i[c.name]=nr(c);break}case"vpc":{i[c.name]=Lt(c);
124
+ break}case"files":{i[c.name]=Zt(c);break}case"listener":{i.listener=tr(c.value,o);
125
+ break}case"variables":{i.variables=Kt(c,o);break}}if(!mr(i)){o.push(new H([...s],
126
+ e.file));return}return i},"getTypeFromMembers");var vr=n(e=>gr(e,"Database.Table"),"isDatabaseTableDeclaration"),de=n((e,r,t,a)=>{
127
+ if(!hr(e))return pe(e,r,t,a);let o=Tr(e,t);if(o)return pe(o,r,t,a)},"getDatabase\
128
+ TableMetadata"),Ir=n(e=>Sr(e,["name","schema","indexes"]),"isCompleteTable"),pe=n(
129
+ (e,r,t,a)=>{if(xr(e))return me(e,r,fr(e),t,a);if(!br(e)){a.push(new k(r.file));return}
130
+ if(!vr(e)){a.push(new O(e.name,e.file));return}return me(e,r,ur(e),t,a)},"getTyp\
131
+ eTable"),me=n((e,r,t,a,o)=>{let i={},s=new Set(["name","schema","indexes"]);for(let l of t)
132
+ if(!(!Mr(l)||l.inherited))switch(l.name){default:{o.push(new dr(r.name,l.name,e.
133
+ file));break}case"name":{(i.name=yr(l))&&s.delete(l.name);break}case"schema":{(i.
134
+ schema=oe(l.value,e,a,o))&&s.delete(l.name);break}case"indexes":{(i.indexes=re(l.
135
+ value,e,a,o))&&s.delete(l.name);break}case"relations":{i.relations=L(l.value,e,a,
136
+ o);break}case"stream":{i.stream=le(l.value,r,a,o);break}}if(!Ir(i)){o.push(new R(
137
+ [...s],e.file));return}let c=Dr(e,i.indexes,i.schema);if(c.length){o.push(...c);
138
+ return}return i},"getTypeFromMembers"),Dr=n((e,r,t)=>{let a=t.properties,o=[];for(let{
138
139
  name:i,columns:s}of r)s.some(l=>!a[l])&&o.push(new A(i,e.file));return o},"valid\
139
- ateIndexes");var U=n(e=>Rr(e)&&Pr(e,"Database.Service"),"isDatabaseServiceDeclaration"),ye=n(
140
- e=>{let r={},t=[];for(let a in e){let o=e[a];if(!U(o)||Er(o))continue;let i=B(o.
141
- name),s=new Set(["engine","tables"]),c=o.file;for(let p of jr(o))if(!(!Ar(p)||p.
142
- inherited))switch(p.name){default:{t.push(new Dr(i.name,p.name,c));break}case"cl\
143
- ient":break;case"scalability":{i.scalability=K(p.value,o,e,t);break}case"engine":{
144
- (i.engine=Y(p.value,o,e,t))&&s.delete(p.name);break}case"tables":{(i.tables=Hr(p,
145
- o,e,t))&&s.delete(p.name);break}case"variables":{i.variables=kr(p,t);break}case"\
146
- services":{i.services=Or(p,e,t);break}}if(!zr(i)){t.push(new u([...s],c));continue}
147
- let l=Fr(o,i.tables);if(l.length){t.push(...l);continue}if(r[o.name]){t.push(new Ir(
140
+ ateIndexes");import{createServiceMetadata as Er}from"@ez4/project/library";var be="@ez4/database",Mn=n(e=>e.type===be,"isDatabaseService"),ue=n(e=>({...Er(
141
+ be,e),variables:{},services:{}}),"createDatabaseService");var U=n(e=>wr(e)&&zr(e,"Database.Service"),"isDatabaseServiceDeclaration"),ye=n(
142
+ e=>{let r={},t=[];for(let a in e){let o=e[a];if(!U(o)||Or(o))continue;let i=ue(o.
143
+ name),s=new Set(["engine","tables"]),c=o.file;for(let p of Cr(o))if(!(!Hr(p)||p.
144
+ inherited))switch(p.name){default:{t.push(new kr(i.name,p.name,c));break}case"cl\
145
+ ient":break;case"scalability":{i.scalability=G(p.value,o,e,t);break}case"engine":{
146
+ (i.engine=Q(p.value,o,e,t))&&s.delete(p.name);break}case"tables":{(i.tables=$r(p,
147
+ o,e,t))&&s.delete(p.name);break}case"variables":{i.variables=Pr(p,t);break}case"\
148
+ services":{i.services=jr(p,e,t);break}}if(!Nr(i)){t.push(new u([...s],c));continue}
149
+ let l=Wr(o,i.tables);if(l.length){t.push(...l);continue}if(r[o.name]){t.push(new Rr(
148
150
  o.name,c));continue}r[o.name]=i}return{services:r,errors:t}},"getDatabaseService\
149
- sMetadata"),zr=n(e=>Cr(e,["engine","tables","variables","services"]),"isComplete\
150
- Service"),Hr=n((e,r,t,a)=>{let o=wr(e)??[],i=[];for(let s of o){let c=ue(s,r,t,a);
151
- c&&i.push(c)}return i},"getAllTables"),Fr=n((e,r)=>{let t=Nr(r),a=[];for(let{relations:o,
151
+ sMetadata"),Nr=n(e=>Fr(e,["engine","tables","variables","services"]),"isComplete\
152
+ Service"),$r=n((e,r,t,a)=>{let o=Ar(e)??[],i=[];for(let s of o){let c=de(s,r,t,a);
153
+ c&&i.push(c)}return i},"getAllTables"),Wr=n((e,r)=>{let t=Vr(r),a=[];for(let{relations:o,
152
154
  schema:i,indexes:s}of r){if(!o)continue;let c=i.properties;for(let l of o){let{sourceTable:p,
153
155
  sourceColumn:d,targetColumn:W,targetAlias:q}=l;c[W]||a.push(new b(W,e.file)),c[q]&&
154
156
  a.push(new M(q,e.file));let V=t[p]?.schema.properties;V||a.push(new g(p,e.file)),
155
157
  V&&!V[d]&&a.push(new b(d,e.file));let ge=t[p]?.indexes??[];l.sourceIndex=fe(ge,d),
156
158
  l.targetIndex=fe(s,W)}}return a},"validateRelations"),fe=n((e,r)=>e.find(({name:t})=>t===
157
- r)?.type,"getIndexType"),Nr=n(e=>e.reduce((r,t)=>({...r,[t.name]:t}),{}),"getTab\
158
- leMap");var Te=n(e=>U(e)?e.name:null,"getLinkedService");var Nn=n(()=>{$r(),Wr(),Vr("@ez4/database",{"metadata:getServices":ye,"metadata:\
159
+ r)?.type,"getIndexType"),Vr=n(e=>e.reduce((r,t)=>({...r,[t.name]:t}),{}),"getTab\
160
+ leMap");var Te=n(e=>U(e)?e.name:null,"getLinkedService");var Vn=n(()=>{Ur(),qr(),Br("@ez4/database",{"metadata:getServices":ye,"metadata:\
159
161
  getLinkedService":Te})},"registerTriggers");export{I as IncompleteEngineError,$ as IncompleteHandlerError,h as IncompleteScalabilityError,
160
162
  u as IncompleteServiceError,H as IncompleteStreamError,R as IncompleteTableError,
161
163
  E as IncorrectEngineTypeError,j as IncorrectIndexesTypeError,y as IncorrectRelationsTypeError,
162
164
  v as IncorrectScalabilityTypeError,z as IncorrectSchemaTypeError,N as IncorrectStreamTypeError,
163
- k as IncorrectTableTypeError,D as InvalidEngineTypeError,A as InvalidIndexReferenceError,
165
+ O as IncorrectTableTypeError,D as InvalidEngineTypeError,A as InvalidIndexReferenceError,
164
166
  P as InvalidIndexTypeError,w as InvalidIndexesTypeError,M as InvalidRelationAliasError,
165
167
  b as InvalidRelationColumnError,g as InvalidRelationTableError,T as InvalidRelationTargetError,
166
168
  f as InvalidRelationsTypeError,S as InvalidScalabilityTypeError,C as InvalidSchemaTypeError,
167
- F as InvalidStreamTypeError,O as InvalidTableTypeError,_ as ServiceType,B as createDatabaseService,
168
- ye as getDatabaseServicesMetadata,ue as getDatabaseTableMetadata,se as getTableSchemaMetadata,
169
- _r as isDatabaseService,U as isDatabaseServiceDeclaration,hr as isDatabaseTableDeclaration,
170
- Nt as isTableSchemaDeclaration,Nn as registerTriggers};
169
+ F as InvalidStreamTypeError,k as InvalidTableTypeError,be as ServiceType,ue as createDatabaseService,
170
+ ye as getDatabaseServicesMetadata,de as getDatabaseTableMetadata,oe as getTableSchemaMetadata,
171
+ Mn as isDatabaseService,U as isDatabaseServiceDeclaration,vr as isDatabaseTableDeclaration,
172
+ Ft as isTableSchemaDeclaration,Vn as registerTriggers};
171
173
  //# sourceMappingURL=library.mjs.map
package/dist/main.cjs CHANGED
@@ -1,8 +1,8 @@
1
- "use strict";var o=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var f=(a,r)=>{for(var e in r)o(a,e,{get:r[e],enumerable:!0})},h=(a,r,e,n)=>{if(r&&
1
+ "use strict";var n=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var f=(a,r)=>{for(var e in r)n(a,e,{get:r[e],enumerable:!0})},h=(a,r,e,o)=>{if(r&&
2
2
  typeof r=="object"||typeof r=="function")for(let t of S(r))!u.call(a,t)&&t!==e&&
3
- o(a,t,{get:()=>r[t],enumerable:!(n=x(r,t))||n.enumerable});return a};var g=a=>h(o({},"__esModule",{value:!0}),a);var C={};f(C,{Database:()=>p,Index:()=>l,InsensitiveMode:()=>c,LockMode:()=>b,Order:()=>i,
3
+ n(a,t,{get:()=>r[t],enumerable:!(o=x(r,t))||o.enumerable});return a};var g=a=>h(n({},"__esModule",{value:!0}),a);var C={};f(C,{Database:()=>p,Index:()=>l,InsensitiveMode:()=>c,LockMode:()=>b,Order:()=>i,
4
4
  OrderMode:()=>d,PaginationMode:()=>T,ParametersMode:()=>s,StreamChangeType:()=>m,
5
- TransactionMode:()=>y});module.exports=g(C);var m=(n=>(n.Insert="insert",n.Update="update",n.Delete="delete",n))(m||{});var p;(a=>{})(p||={});var l=(t=>(t.Primary="primary",t.Secondary="secondary",t.Unique="unique",t.TTL="\
5
+ TransactionMode:()=>y});module.exports=g(C);var m=(o=>(o.Insert="insert",o.Update="update",o.Delete="delete",o))(m||{});var p;(a=>{})(p||={});var l=(t=>(t.Primary="primary",t.Secondary="secondary",t.Unique="unique",t.TTL="\
6
6
  ttl",t))(l||{});var i=(e=>(e.Asc="asc",e.Desc="desc",e))(i||{});var s=(e=>(e.NameAndIndex="both",e.OnlyIndex="index",e))(s||{}),y=(e=>(e.Interactive=
7
7
  "interactive",e.Static="static",e))(y||{}),c=(e=>(e.Unsupported="unsupported",e.
8
8
  Enabled="enabled",e))(c||{}),T=(e=>(e.Cursor="cursor",e.Offset="offset",e))(T||{}),
package/dist/main.mjs CHANGED
@@ -1,8 +1,8 @@
1
- var a=(r=>(r.Insert="insert",r.Update="update",r.Delete="delete",r))(a||{});var n;(T=>{})(n||={});var o=(t=>(t.Primary="primary",t.Secondary="secondary",t.Unique="unique",t.TTL="\
2
- ttl",t))(o||{});var m=(e=>(e.Asc="asc",e.Desc="desc",e))(m||{});var p=(e=>(e.NameAndIndex="both",e.OnlyIndex="index",e))(p||{}),l=(e=>(e.Interactive=
1
+ var a=(r=>(r.Insert="insert",r.Update="update",r.Delete="delete",r))(a||{});var o;(T=>{})(o||={});var n=(t=>(t.Primary="primary",t.Secondary="secondary",t.Unique="unique",t.TTL="\
2
+ ttl",t))(n||{});var m=(e=>(e.Asc="asc",e.Desc="desc",e))(m||{});var p=(e=>(e.NameAndIndex="both",e.OnlyIndex="index",e))(p||{}),l=(e=>(e.Interactive=
3
3
  "interactive",e.Static="static",e))(l||{}),i=(e=>(e.Unsupported="unsupported",e.
4
4
  Enabled="enabled",e))(i||{}),s=(e=>(e.Cursor="cursor",e.Offset="offset",e))(s||{}),
5
5
  y=(e=>(e.IndexColumns="index",e.AnyColumns="any",e))(y||{}),c=(e=>(e.Unsupported=
6
- "unsupported",e.Supported="supported",e))(c||{});export{n as Database,o as Index,i as InsensitiveMode,c as LockMode,m as Order,y as OrderMode,
6
+ "unsupported",e.Supported="supported",e))(c||{});export{o as Database,n as Index,i as InsensitiveMode,c as LockMode,m as Order,y as OrderMode,
7
7
  s as PaginationMode,p as ParametersMode,a as StreamChangeType,l as TransactionMode};
8
8
  //# sourceMappingURL=main.mjs.map
@@ -1,6 +1,6 @@
1
1
  import type { FunctionSignature, ServiceListener } from '@ez4/common/library';
2
2
  import type { LinkedVariables, ServiceMetadata } from '@ez4/project/library';
3
- import type { ArchitectureType, RuntimeType } from '@ez4/project';
3
+ import type { ArchitectureType, LogLevel, RuntimeType } from '@ez4/project';
4
4
  import type { ObjectSchema } from '@ez4/schema';
5
5
  import type { ParametersMode, TransactionMode, InsensitiveMode, PaginationMode, OrderMode, LockMode } from '../types/mode';
6
6
  import type { Index } from '../types/index';
@@ -54,8 +54,11 @@ export type TableStream = {
54
54
  architecture?: ArchitectureType;
55
55
  runtime?: RuntimeType;
56
56
  logRetention?: number;
57
+ logLevel?: LogLevel;
57
58
  timeout?: number;
58
59
  memory?: number;
60
+ vpc?: boolean;
61
+ files?: string[];
59
62
  };
60
63
  export declare const isDatabaseService: (service: ServiceMetadata) => service is DatabaseService;
61
64
  export declare const createDatabaseService: (name: string) => {
@@ -7,7 +7,7 @@ import type { OrderModeUtils } from './order';
7
7
  import type { LockModeUtils } from './lock';
8
8
  import type { TableMetadata } from './table';
9
9
  import type { Database } from './contract';
10
- import type { AnyObject, PartialProperties, PartialObject, FlatObject, OptionalObject, StrictObject, IsNullable, IsUndefined, IsObjectEmpty, IsObject, Prettify } from '@ez4/utils';
10
+ import type { AnyObject, PartialProperties, PartialObject, OptionalObject, StrictObject, IsNullable, IsUndefined, IsObjectEmpty, IsObject, Prettify } from '@ez4/utils';
11
11
  /**
12
12
  * Query builder types.
13
13
  */
@@ -90,7 +90,7 @@ export declare namespace Query {
90
90
  export type SelectInput<T extends TableMetadata> = PartialProperties<SelectInputFields<T['schema'], T['relations']>>;
91
91
  export type StrictSelectInput<S extends AnyObject, T extends TableMetadata> = StrictObject<S, SelectInputFields<T['schema'], T['relations']>>;
92
92
  export type InsertDataInput<T extends TableMetadata> = IsObjectEmpty<T['relations']['inserts']> extends false ? Omit<T['schema'], T['relations']['indexes']> & T['relations']['inserts'] : T['schema'];
93
- export type UpdateDataInput<T extends TableMetadata> = IsObjectEmpty<T['relations']['updates']> extends false ? AtomicDataInput<Omit<T['schema'], T['relations']['indexes']> & FlatObject<T['relations']['updates']>> : AtomicDataInput<T['schema']>;
93
+ export type UpdateDataInput<T extends TableMetadata> = IsObjectEmpty<T['relations']['updates']> extends false ? AtomicDataInput<Omit<T['schema'], T['relations']['indexes']> & T['relations']['updates']> : AtomicDataInput<T['schema']>;
94
94
  export type OrderInput<T extends TableMetadata> = OrderModeUtils.Input<T>;
95
95
  export type StrictIncludeInput<S extends AnyObject, T extends TableMetadata> = IsObjectEmpty<T['relations']['filters']> extends true ? never : {
96
96
  [P in keyof T['relations']['filters']]?: P extends keyof S ? StrictIncludeRelation<NonNullable<T['relations']['filters'][P]>, T['engine']> : never;
@@ -224,7 +224,7 @@ export declare namespace Query {
224
224
  };
225
225
  export type AtomicOperators = keyof (AtomicIncrement & AtomicDecrement & AtomicMultiply & AtomicDivide);
226
226
  type AtomicDataInput<T extends AnyObject> = AtomicRequiredFields<T> & AtomicOptionalFields<T>;
227
- type AtomicDataField<T> = T extends number ? AtomicOperation | T : T extends AnyObject ? AtomicDataInput<T> : NonNullable<T> extends AnyObject ? null | AtomicDataInput<NonNullable<T>> : T;
227
+ type AtomicDataField<T> = T extends number ? AtomicOperation | T : IsObject<T> extends true ? null | AtomicDataInput<NonNullable<T>> : T;
228
228
  type AtomicRequiredFields<T extends AnyObject> = {
229
229
  [P in keyof T as IsUndefined<T[P]> extends true ? never : P]: AtomicDataField<T[P]>;
230
230
  };
@@ -1,8 +1,8 @@
1
- import type { AnyObject, ArrayRest, PropertyType, Exclusive, IsArrayEmpty, IsUndefined, MergeObject, Prettify } from '@ez4/utils';
2
1
  import type { TableIndexes, IndexedTables, PrimaryIndexes, UniqueIndexes } from './indexes';
3
2
  import type { DatabaseTable, DatabaseTables } from './table';
4
3
  import type { TableSchema, TableSchemas } from './schemas';
5
4
  import type { Database } from './contract';
5
+ import type { AnyObject, ArrayRest, PropertyType, Exclusive, IsArrayEmpty, IsUndefined, MergeObject, Prettify, TryArrayType } from '@ez4/utils';
6
6
  /**
7
7
  * Database table relations.
8
8
  */
@@ -114,7 +114,7 @@ type FilterableRelationSchemas<S extends Record<string, TableSchema>, R extends
114
114
  * Produce an object containing relation schemas for updates.
115
115
  */
116
116
  type UpdateRelationSchemas<N, S extends Record<string, TableSchema>, I extends Record<string, TableIndexes>, R extends AnyObject> = {
117
- [P in keyof R as RelationTargetAlias<P>]?: ChangeRelationSchema<N, R[P], P, S, I>;
117
+ [P in keyof R as RelationTargetAlias<P>]?: TryArrayType<ChangeRelationSchema<N, R[P], P, S, I>>;
118
118
  };
119
119
  /**
120
120
  * Produce an object containing relation schemas for inserts.
@@ -1,4 +1,4 @@
1
- import type { ArchitectureType, RuntimeType } from '@ez4/project';
1
+ import type { ArchitectureType, LogLevel, RuntimeType } from '@ez4/project';
2
2
  import type { LinkedVariables } from '@ez4/project/library';
3
3
  import type { TableStreamListener } from './listener';
4
4
  import type { TableStreamHandler } from './handler';
@@ -19,6 +19,14 @@ export interface TableStream<T extends TableSchema> {
19
19
  * Variables associated to the handler.
20
20
  */
21
21
  readonly variables?: LinkedVariables;
22
+ /**
23
+ * Log retention (in days) for the handler.
24
+ */
25
+ readonly logRetention?: number;
26
+ /**
27
+ * Log level for the handler.
28
+ */
29
+ readonly logLevel?: LogLevel;
22
30
  /**
23
31
  * Architecture for the stream function.
24
32
  */
@@ -27,10 +35,6 @@ export interface TableStream<T extends TableSchema> {
27
35
  * Runtime for the stream function.
28
36
  */
29
37
  readonly runtime?: RuntimeType;
30
- /**
31
- * Log retention (in days) for the handler.
32
- */
33
- readonly logRetention?: number;
34
38
  /**
35
39
  * Max execution time (in seconds) for the handler.
36
40
  */
@@ -39,6 +43,14 @@ export interface TableStream<T extends TableSchema> {
39
43
  * Amount of memory available (in megabytes) for the handler.
40
44
  */
41
45
  readonly memory?: number;
46
+ /**
47
+ * Additional resources files for the bundler.
48
+ */
49
+ readonly files?: string[];
50
+ /**
51
+ * Determines whether or not VPC is enabled for the stream.
52
+ */
53
+ readonly vpc?: boolean;
42
54
  }
43
55
  /**
44
56
  * Stream change types.
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.41.0",
4
+ "version": "0.43.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.41.0",
50
- "@ez4/project": "^0.41.0",
51
- "@ez4/reflection": "^0.41.0",
52
- "@ez4/schema": "^0.41.0",
53
- "@ez4/utils": "^0.41.0"
49
+ "@ez4/common": "^0.43.0",
50
+ "@ez4/project": "^0.43.0",
51
+ "@ez4/reflection": "^0.43.0",
52
+ "@ez4/schema": "^0.43.0",
53
+ "@ez4/utils": "^0.43.0"
54
54
  }
55
55
  }