@ez4/database 0.40.0 → 0.42.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,94 @@ 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"logRetention":case"timeout":{i[c.name]=(0,l.getPropertyNumber)(c);break}case"\
125
+ architecture":{i[c.name]=(0,l.getServiceArchitecture)(c);break}case"runtime":{i[c.
126
+ name]=(0,l.getServiceRuntime)(c);break}case"vpc":{i[c.name]=(0,l.getPropertyBoolean)(
127
+ c);break}case"listener":{i.listener=(0,l.getServiceListener)(c.value,o);break}case"\
128
+ variables":{i.variables=(0,l.getLinkedVariableList)(c,o);break}}if(!Tt(i)){o.push(
129
+ new ee([...s],e.file));return}return i},"getTypeFromMembers");var Je=n(e=>(0,f.hasHeritageType)(e,"Database.Table"),"isDatabaseTableDeclaratio\
130
+ n"),ue=n((e,r,t,a)=>{if(!(0,j.isTypeReference)(e))return Be(e,r,t,a);let o=(0,f.getReferenceType)(
131
+ e,t);if(o)return Be(o,r,t,a)},"getDatabaseTableMetadata"),gt=n(e=>(0,Ge.isObjectWith)(
133
132
  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\
133
+ e))return _e(e,r,(0,f.getObjectMembers)(e),t,a);if(!(0,f.isModelDeclaration)(e)){
134
+ a.push(new G(r.file));return}if(!Je(e)){a.push(new J(e.name,e.file));return}return _e(
135
+ e,r,(0,f.getModelMembers)(e),t,a)},"getTypeTable"),_e=n((e,r,t,a,o)=>{let i={},s=new Set(
136
+ ["name","schema","indexes"]);for(let p of t)if(!(!(0,j.isModelProperty)(p)||p.inherited))
137
+ switch(p.name){default:{o.push(new f.InvalidServicePropertyError(r.name,p.name,e.
138
+ file));break}case"name":{(i.name=(0,f.getPropertyString)(p))&&s.delete(p.name);break}case"\
139
+ schema":{(i.schema=be(p.value,e,a,o))&&s.delete(p.name);break}case"indexes":{(i.
140
+ indexes=Pe(p.value,e,a,o))&&s.delete(p.name);break}case"relations":{i.relations=
141
+ Oe(p.value,e,a,o);break}case"stream":{i.stream=qe(p.value,r,a,o);break}}if(!gt(i)){
142
+ o.push(new _([...s],e.file));return}let c=Mt(e,i.indexes,i.schema);if(c.length){
143
+ o.push(...c);return}return i},"getTypeFromMembers"),Mt=n((e,r,t)=>{let a=t.properties,
144
+ o=[];for(let{name:i,columns:s}of r)s.some(p=>!a[p])&&o.push(new Y(i,e.file));return o},
145
+ "validateIndexes");var Ke=require("@ez4/project/library");var fe="@ez4/database",xt=n(e=>e.type===fe,"isDatabaseService"),ye=n(e=>({...(0,Ke.createServiceMetadata)(
146
+ fe,e),variables:{},services:{}}),"createDatabaseService");var pe=n(e=>(0,d.isClassDeclaration)(e)&&(0,d.hasHeritageType)(e,"Database.Servi\
147
147
  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(["\
148
+ if(!pe(o)||(0,d.isExternalDeclaration)(o))continue;let i=ye(o.name),s=new Set(["\
149
149
  engine","tables"]),c=o.file;for(let b of(0,d.getModelMembers)(o))if(!(!(0,Xe.isModelProperty)(
150
150
  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);
151
+ i.name,b.name,c));break}case"client":break;case"scalability":{i.scalability=Se(b.
152
+ value,o,e,t);break}case"engine":{(i.engine=Ee(b.value,o,e,t))&&s.delete(b.name);
153
153
  break}case"tables":{(i.tables=St(b,o,e,t))&&s.delete(b.name);break}case"variable\
154
154
  s":{i.variables=(0,d.getLinkedVariableList)(b,t);break}case"services":{i.services=
155
155
  (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(
156
+ let p=vt(o,i.tables);if(p.length){t.push(...p);continue}if(r[o.name]){t.push(new d.DuplicateServiceError(
157
157
  o.name,c));continue}r[o.name]=i}return{services:r,errors:t}},"getDatabaseService\
158
158
  sMetadata"),ht=n(e=>(0,Ye.isObjectWith)(e,["engine","tables","variables","servic\
159
159
  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(
160
+ i=[];for(let s of o){let c=ue(s,r,t,a);c&&i.push(c)}return i},"getAllTables"),vt=n(
161
161
  (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));
162
+ let c=i.properties;for(let p of o){let{sourceTable:b,sourceColumn:P,targetColumn:me,
163
+ targetAlias:ge}=p;c[me]||a.push(new x(me,e.file)),c[ge]&&a.push(new N(ge,e.file));
164
164
  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)}}
165
+ P,e.file));let rt=t[b]?.indexes??[];p.sourceIndex=Qe(rt,P),p.targetIndex=Qe(s,me)}}
166
166
  return a},"validateRelations"),Qe=n((e,r)=>e.find(({name:t})=>t===r)?.type,"getI\
167
167
  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
168
  "@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 Wr}from"@ez4/common/library";import{registerTriggers as Vr}from"@ez4/schema/library";
2
+ import{tryCreateTrigger as Ur}from"@ez4/project/library";import{DuplicateServiceError as Dr,InvalidServicePropertyError as Er,isExternalDeclaration as Rr,
3
+ isClassDeclaration as kr,getLinkedServiceList as Or,getLinkedVariableList as wr,
4
+ getPropertyTuple as jr,getModelMembers as Pr,hasHeritageType as Ar}from"@ez4/common/library";
5
+ import{isModelProperty as Cr}from"@ez4/reflection";import{isObjectWith as zr}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,158 @@ 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(
57
+ m(s,["unsupported","supported"]))&&i.delete(s.name);break}}if(!tt(o)){a.push(new I(
59
58
  [...i],e.file));return}return o},"getTypeFromMembers");import{InvalidServicePropertyError as pr,isModelDeclaration as mr,getModelMembers as dr,
60
59
  getObjectMembers as br,getPropertyString as ur,getReferenceType as fr,hasHeritageType as yr}from"@ez4/common/library";
61
60
  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\
61
+ import{isObjectWith as xr}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,getServiceListener as Zt,
103
+ getServiceArchitecture as Lt,getServiceRuntime as er,getPropertyBoolean as tr,getReferenceType as rr,
104
+ hasHeritageType as ar}from"@ez4/common/library";import{isModelProperty as nr,isTypeObject as or,
105
+ isTypeReference as ir}from"@ez4/reflection";import{isObjectWith as sr}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(
106
+ "Incomplete table stream",r,t)}},F=class extends Wt{static{n(this,"InvalidStream\
108
107
  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\
108
+ ream",r)}},N=class extends $t{constructor(t,a){super("Incorrect table stream typ\
110
109
  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))
110
+ 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){
111
+ super("Incomplete stream handler",r,t)}};var _t=n(e=>Ut(e)||qt(e),"isStreamHandlerDeclaration"),ie=n((e,r,t)=>{if(!_t(e))
113
112
  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(
113
+ o.size){t.push(new $([...o],e.file));return}return a},"getStreamHandlerMetadata");var cr=n(e=>ar(e,"Database.Stream"),"isTableStreamDeclaration"),le=n((e,r,t,a)=>{
114
+ if(!ir(e))return se(e,r,t,a);let o=rr(e,t);if(o)return se(o,r,t,a)},"getTableStr\
115
+ eamMetadata"),lr=n(e=>sr(e,["handler"]),"isCompleteStream"),se=n((e,r,t,a)=>{if(or(
116
+ e))return ce(e,r,Xt(e),t,a);if(!Jt(e)){a.push(new F(r.file));return}if(!cr(e)){a.
117
+ push(new N(e.name,e.file));return}return ce(e,r,Qt(e),t,a)},"getTypeStream"),ce=n(
119
118
  (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)
119
+ switch(c.name){default:{o.push(new Gt(r.name,c.name,e.file));break}case"handler":{
120
+ i.handler=ie(c.value,a,o);break}case"memory":case"logRetention":case"timeout":{i[c.
121
+ name]=Yt(c);break}case"architecture":{i[c.name]=Lt(c);break}case"runtime":{i[c.name]=
122
+ er(c);break}case"vpc":{i[c.name]=tr(c);break}case"listener":{i.listener=Zt(c.value,
123
+ o);break}case"variables":{i.variables=Kt(c,o);break}}if(!lr(i)){o.push(new H([...s],
124
+ e.file));return}return i},"getTypeFromMembers");var hr=n(e=>yr(e,"Database.Table"),"isDatabaseTableDeclaration"),de=n((e,r,t,a)=>{
125
+ if(!Mr(e))return pe(e,r,t,a);let o=fr(e,t);if(o)return pe(o,r,t,a)},"getDatabase\
126
+ TableMetadata"),Sr=n(e=>xr(e,["name","schema","indexes"]),"isCompleteTable"),pe=n(
127
+ (e,r,t,a)=>{if(gr(e))return me(e,r,br(e),t,a);if(!mr(e)){a.push(new k(r.file));return}
128
+ if(!hr(e)){a.push(new O(e.name,e.file));return}return me(e,r,dr(e),t,a)},"getTyp\
129
+ eTable"),me=n((e,r,t,a,o)=>{let i={},s=new Set(["name","schema","indexes"]);for(let l of t)
131
130
  if(!(!Tr(l)||l.inherited))switch(l.name){default:{o.push(new pr(r.name,l.name,e.
132
131
  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(
132
+ schema=oe(l.value,e,a,o))&&s.delete(l.name);break}case"indexes":{(i.indexes=re(l.
133
+ value,e,a,o))&&s.delete(l.name);break}case"relations":{i.relations=L(l.value,e,a,
134
+ o);break}case"stream":{i.stream=le(l.value,r,a,o);break}}if(!Sr(i)){o.push(new R(
136
135
  [...s],e.file));return}let c=vr(e,i.indexes,i.schema);if(c.length){o.push(...c);
137
136
  return}return i},"getTypeFromMembers"),vr=n((e,r,t)=>{let a=t.properties,o=[];for(let{
138
137
  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(
138
+ ateIndexes");import{createServiceMetadata as Ir}from"@ez4/project/library";var be="@ez4/database",Tn=n(e=>e.type===be,"isDatabaseService"),ue=n(e=>({...Ir(
139
+ be,e),variables:{},services:{}}),"createDatabaseService");var U=n(e=>kr(e)&&Ar(e,"Database.Service"),"isDatabaseServiceDeclaration"),ye=n(
140
+ e=>{let r={},t=[];for(let a in e){let o=e[a];if(!U(o)||Rr(o))continue;let i=ue(o.
141
+ name),s=new Set(["engine","tables"]),c=o.file;for(let p of Pr(o))if(!(!Cr(p)||p.
142
+ inherited))switch(p.name){default:{t.push(new Er(i.name,p.name,c));break}case"cl\
143
+ ient":break;case"scalability":{i.scalability=G(p.value,o,e,t);break}case"engine":{
144
+ (i.engine=Q(p.value,o,e,t))&&s.delete(p.name);break}case"tables":{(i.tables=Fr(p,
145
+ o,e,t))&&s.delete(p.name);break}case"variables":{i.variables=wr(p,t);break}case"\
146
+ services":{i.services=Or(p,e,t);break}}if(!Hr(i)){t.push(new u([...s],c));continue}
147
+ let l=Nr(o,i.tables);if(l.length){t.push(...l);continue}if(r[o.name]){t.push(new Dr(
148
148
  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,
149
+ sMetadata"),Hr=n(e=>zr(e,["engine","tables","variables","services"]),"isComplete\
150
+ Service"),Fr=n((e,r,t,a)=>{let o=jr(e)??[],i=[];for(let s of o){let c=de(s,r,t,a);
151
+ c&&i.push(c)}return i},"getAllTables"),Nr=n((e,r)=>{let t=$r(r),a=[];for(let{relations:o,
152
152
  schema:i,indexes:s}of r){if(!o)continue;let c=i.properties;for(let l of o){let{sourceTable:p,
153
153
  sourceColumn:d,targetColumn:W,targetAlias:q}=l;c[W]||a.push(new b(W,e.file)),c[q]&&
154
154
  a.push(new M(q,e.file));let V=t[p]?.schema.properties;V||a.push(new g(p,e.file)),
155
155
  V&&!V[d]&&a.push(new b(d,e.file));let ge=t[p]?.indexes??[];l.sourceIndex=fe(ge,d),
156
156
  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:\
157
+ r)?.type,"getIndexType"),$r=n(e=>e.reduce((r,t)=>({...r,[t.name]:t}),{}),"getTab\
158
+ leMap");var Te=n(e=>U(e)?e.name:null,"getLinkedService");var $n=n(()=>{Wr(),Vr(),Ur("@ez4/database",{"metadata:getServices":ye,"metadata:\
159
159
  getLinkedService":Te})},"registerTriggers");export{I as IncompleteEngineError,$ as IncompleteHandlerError,h as IncompleteScalabilityError,
160
160
  u as IncompleteServiceError,H as IncompleteStreamError,R as IncompleteTableError,
161
161
  E as IncorrectEngineTypeError,j as IncorrectIndexesTypeError,y as IncorrectRelationsTypeError,
162
162
  v as IncorrectScalabilityTypeError,z as IncorrectSchemaTypeError,N as IncorrectStreamTypeError,
163
- k as IncorrectTableTypeError,D as InvalidEngineTypeError,A as InvalidIndexReferenceError,
163
+ O as IncorrectTableTypeError,D as InvalidEngineTypeError,A as InvalidIndexReferenceError,
164
164
  P as InvalidIndexTypeError,w as InvalidIndexesTypeError,M as InvalidRelationAliasError,
165
165
  b as InvalidRelationColumnError,g as InvalidRelationTableError,T as InvalidRelationTargetError,
166
166
  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};
167
+ F as InvalidStreamTypeError,k as InvalidTableTypeError,be as ServiceType,ue as createDatabaseService,
168
+ ye as getDatabaseServicesMetadata,de as getDatabaseTableMetadata,oe as getTableSchemaMetadata,
169
+ Tn as isDatabaseService,U as isDatabaseServiceDeclaration,hr as isDatabaseTableDeclaration,
170
+ Ft as isTableSchemaDeclaration,$n as registerTriggers};
171
171
  //# sourceMappingURL=library.mjs.map
@@ -56,6 +56,7 @@ export type TableStream = {
56
56
  logRetention?: number;
57
57
  timeout?: number;
58
58
  memory?: number;
59
+ vpc?: boolean;
59
60
  };
60
61
  export declare const isDatabaseService: (service: ServiceMetadata) => service is DatabaseService;
61
62
  export declare const createDatabaseService: (name: string) => {
@@ -71,7 +71,12 @@ export declare namespace Query {
71
71
  export type InsertOneResult<S extends AnyObject, T extends TableMetadata> = SelectInput<T> extends S ? void : Record<S, T>;
72
72
  export type UpdateOneResult<S extends AnyObject, T extends TableMetadata> = SelectInput<T> extends S ? void : Record<S, T> | undefined;
73
73
  export type FindOneResult<S extends AnyObject, T extends TableMetadata> = SelectInput<T> extends S ? void : Record<S, T> | undefined;
74
- export type UpsertOneResult<S extends AnyObject, T extends TableMetadata> = SelectInput<T> extends S ? void : Record<S, T>;
74
+ export type UpsertOneResult<S extends AnyObject, T extends TableMetadata> = SelectInput<T> extends S ? {
75
+ inserted: boolean;
76
+ } : {
77
+ inserted: boolean;
78
+ record: Record<S, T>;
79
+ };
75
80
  export type DeleteOneResult<S extends AnyObject, T extends TableMetadata> = SelectInput<T> extends S ? void : Record<S, T> | undefined;
76
81
  export type UpdateManyResult<S extends AnyObject, T extends TableMetadata> = SelectInput<T> extends S ? void : Record<S, T>[];
77
82
  export type InsertManyResult = void;
@@ -219,7 +224,7 @@ export declare namespace Query {
219
224
  };
220
225
  export type AtomicOperators = keyof (AtomicIncrement & AtomicDecrement & AtomicMultiply & AtomicDivide);
221
226
  type AtomicDataInput<T extends AnyObject> = AtomicRequiredFields<T> & AtomicOptionalFields<T>;
222
- 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;
223
228
  type AtomicRequiredFields<T extends AnyObject> = {
224
229
  [P in keyof T as IsUndefined<T[P]> extends true ? never : P]: AtomicDataField<T[P]>;
225
230
  };
@@ -39,6 +39,10 @@ export interface TableStream<T extends TableSchema> {
39
39
  * Amount of memory available (in megabytes) for the handler.
40
40
  */
41
41
  readonly memory?: number;
42
+ /**
43
+ * Determines whether or not VPC is enabled for the stream.
44
+ */
45
+ readonly vpc?: boolean;
42
46
  }
43
47
  /**
44
48
  * 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.40.0",
4
+ "version": "0.42.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.40.0",
50
- "@ez4/project": "^0.40.0",
51
- "@ez4/reflection": "^0.40.0",
52
- "@ez4/schema": "^0.40.0",
53
- "@ez4/utils": "^0.40.0"
49
+ "@ez4/common": "^0.42.0",
50
+ "@ez4/project": "^0.42.0",
51
+ "@ez4/reflection": "^0.42.0",
52
+ "@ez4/schema": "^0.42.0",
53
+ "@ez4/utils": "^0.42.0"
54
54
  }
55
55
  }