@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 +6 -6
- package/dist/library.cjs +90 -89
- package/dist/library.mjs +127 -125
- package/dist/main.cjs +3 -3
- package/dist/main.mjs +3 -3
- package/dist/metadata/types.d.ts +4 -1
- package/dist/services/query.d.ts +3 -3
- package/dist/services/relations.d.ts +2 -2
- package/dist/services/streams.d.ts +17 -5
- package/package.json +6 -6
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: '
|
|
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 {
|
|
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 {
|
|
55
|
+
const { myDb } = context;
|
|
56
56
|
|
|
57
57
|
// Insert one record
|
|
58
|
-
await
|
|
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
|
|
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 |
|
|
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:()=>
|
|
5
|
-
IncorrectEngineTypeError:()=>
|
|
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:()=>
|
|
12
|
-
getDatabaseServicesMetadata:()=>Te,getDatabaseTableMetadata:()=>
|
|
13
|
-
isDatabaseService:()=>
|
|
14
|
-
isTableSchemaDeclaration:()=>
|
|
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
|
|
33
|
-
tyDeclaration"),
|
|
34
|
-
e,t);if(o)return
|
|
35
|
-
e,["minCapacity","maxCapacity"]),"isCompleteScalability"),
|
|
36
|
-
e))return
|
|
37
|
-
push(new W(r.file));return}if(!
|
|
38
|
-
e,r,(0,u.getModelMembers)(e),t)},"getTypeScalability"),
|
|
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(!
|
|
43
|
-
new $([...i],e.file));return}return o},"getTypeFromMembers");var I=require("@ez4/reflection"),
|
|
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)}},
|
|
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
|
|
49
|
-
ion"),
|
|
50
|
-
e,t);if(o)return
|
|
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"),
|
|
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(!
|
|
55
|
-
e),t)},"getTypeEngine"),
|
|
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(!
|
|
67
|
-
[...i],e.file));return}return o},"getTypeFromMembers");var f=require("@ez4/common/library"),j=require("@ez4/reflection"),
|
|
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
|
|
80
|
-
ration"),
|
|
81
|
-
e,t);if(o)return
|
|
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(!
|
|
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,
|
|
87
|
-
split(":",2);a.push({sourceTable:b,sourceColumn:P,targetColumn:c,targetAlias:
|
|
88
|
-
return a},"getTypeFromMembers");var T=require("@ez4/common/library"),R=require("@ez4/reflection");var
|
|
89
|
-
on"),
|
|
90
|
-
e,t);if(o)return
|
|
91
|
-
e))return
|
|
92
|
-
new K(r.file));return}if(!
|
|
93
|
-
(0,T.getModelMembers)(e),t)},"getTypeIndexes"),
|
|
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"),
|
|
98
|
-
|
|
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
|
|
102
|
-
|
|
103
|
-
e,t);if(o)return
|
|
104
|
-
e))return
|
|
105
|
-
if(!
|
|
106
|
-
|
|
107
|
-
if(t&&(0,ce.isObjectSchema)(t))return t},"getSchema");var
|
|
108
|
-
super("Incomplete table stream",r,t)}},te=class extends
|
|
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
|
|
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")
|
|
113
|
-
r")}constructor(r,t){super("Incomplete stream handler",r,t)}};var
|
|
114
|
-
eclaration")
|
|
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
|
|
117
|
-
|
|
118
|
-
e,t);if(o)return
|
|
119
|
-
e,["handler"]),"isCompleteStream"),
|
|
120
|
-
e,r,(0,
|
|
121
|
-
r.file));return}if(!
|
|
122
|
-
e),t,a)},"getTypeStream"),
|
|
123
|
-
if(!(!(0,w.isModelProperty)(c)||c.inherited))switch(c.name){default:{o.push(new
|
|
124
|
-
r.name,c.name,e.file));break}case"handler":{i.handler
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
e,t)
|
|
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
|
|
135
|
-
a.push(new G(r.file));return}if(!
|
|
136
|
-
e,r,(0,f.getModelMembers)(e),t,a)},"getTypeTable"),
|
|
137
|
-
["name","schema","indexes"]);for(let
|
|
138
|
-
switch(
|
|
139
|
-
file));break}case"name":{(i.name=(0,f.getPropertyString)(
|
|
140
|
-
schema":{(i.schema=
|
|
141
|
-
indexes=
|
|
142
|
-
|
|
143
|
-
o.push(new
|
|
144
|
-
o.push(...c);return}return i},"getTypeFromMembers"),
|
|
145
|
-
o=[];for(let{name:i,columns:s}of r)s.some(
|
|
146
|
-
"validateIndexes");var
|
|
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=
|
|
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=
|
|
152
|
-
value,o,e,t);break}case"engine":{(i.engine=
|
|
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
|
|
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=
|
|
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
|
|
163
|
-
targetAlias:ge}=
|
|
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??[];
|
|
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
|
|
2
|
-
import{tryCreateTrigger as
|
|
3
|
-
isClassDeclaration as
|
|
4
|
-
getPropertyTuple as
|
|
5
|
-
import{isModelProperty as
|
|
6
|
-
|
|
7
|
-
super("
|
|
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
|
|
19
|
-
getPropertyNumber as
|
|
20
|
-
import{isModelProperty as
|
|
21
|
-
import{isAnyNumber as
|
|
22
|
-
super("Incomplete database scalability",r,t)}},S=class extends
|
|
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
|
|
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
|
|
27
|
-
(e,r,t,a)=>{if(!
|
|
28
|
-
tabaseScalabilityMetadata")
|
|
29
|
-
eteScalability"),
|
|
30
|
-
new S(r.file));return}if(
|
|
31
|
-
r,ke(e),t)},"getTypeScalability"),
|
|
32
|
-
ty","maxCapacity"]);for(let s of t)if(!(!
|
|
33
|
-
a.push(new
|
|
34
|
-
let c=
|
|
35
|
-
[...i],e.file));return}return o},"getTypeFromMembers");import{isModelProperty as
|
|
36
|
-
import{isObjectWith as
|
|
37
|
-
isModelDeclaration as
|
|
38
|
-
getPropertyStringIn as m,getReferenceType as
|
|
39
|
-
"Incomplete database engine",r,t)}},D=class extends
|
|
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
|
|
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
|
|
44
|
-
if(!
|
|
45
|
-
Metadata"),
|
|
46
|
-
ode","paginationMode","orderMode"]),"isCompleteEngine"),
|
|
47
|
-
e,r,
|
|
48
|
-
e.file));return}return
|
|
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(!(!
|
|
51
|
-
a.push(new
|
|
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(!
|
|
59
|
-
[...i],e.file));return}return o},"getTypeFromMembers");import{InvalidServicePropertyError as
|
|
60
|
-
getObjectMembers as
|
|
61
|
-
import{isModelProperty as
|
|
62
|
-
import{isObjectWith as
|
|
63
|
-
"Incomplete database table",r,t)}},
|
|
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)}},
|
|
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
|
|
68
|
-
"Invalid table indexes type",void 0,"Database.Indexes",r)}},j=class extends
|
|
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
|
|
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
|
|
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
|
|
75
|
-
getReferenceType as
|
|
76
|
-
isTypeObject as
|
|
77
|
-
if(!
|
|
78
|
-
Metadata"),
|
|
79
|
-
file));return}if(!
|
|
80
|
-
"getTypeRelations"),
|
|
81
|
-
continue;let i=
|
|
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
|
|
84
|
-
getReferenceType as
|
|
85
|
-
isTypeObject as
|
|
86
|
-
if(!
|
|
87
|
-
Metadata"),
|
|
88
|
-
r.file));return}if(!
|
|
89
|
-
t)},"getTypeIndexes"),
|
|
90
|
-
continue;let i=o.name,s=
|
|
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
|
|
93
|
-
hasHeritageType as
|
|
94
|
-
createSchemaContext as
|
|
95
|
-
"Invalid table schema type",void 0,"Database.Schema",r)}},z=class extends
|
|
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
|
|
98
|
-
if(!
|
|
99
|
-
emaMetadata"),
|
|
100
|
-
file));return}if(!
|
|
101
|
-
tTypeSchema"),
|
|
102
|
-
"getSchema");import{InvalidServicePropertyError as
|
|
103
|
-
getModelMembers as
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
import{
|
|
107
|
-
"
|
|
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
|
|
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
|
|
112
|
-
super("Incomplete stream handler",r,t)}};var
|
|
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
|
|
115
|
-
if(!
|
|
116
|
-
eamMetadata"),
|
|
117
|
-
e))return
|
|
118
|
-
push(new N(e.name,e.file));return}return
|
|
119
|
-
(e,r,t,a,o)=>{let i={},s=new Set(["handler"]);for(let c of t)if(!(!
|
|
120
|
-
switch(c.name){default:{o.push(new
|
|
121
|
-
i.handler=
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
i.
|
|
125
|
-
"
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
(e
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
value,e,a,o))&&s.delete(l.name);break}case"
|
|
135
|
-
a,o);break}case"
|
|
136
|
-
|
|
137
|
-
return}
|
|
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
|
|
140
|
-
e
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
o,e,t))&&s.delete(p.name);break}case"
|
|
146
|
-
|
|
147
|
-
|
|
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"),
|
|
150
|
-
Service")
|
|
151
|
-
c&&i.push(c)}return i},"getAllTables"),
|
|
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"),
|
|
158
|
-
leMap");var Te=n(e=>U(e)?e.name:null,"getLinkedService");var
|
|
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
|
-
|
|
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,
|
|
168
|
-
ye as getDatabaseServicesMetadata,
|
|
169
|
-
|
|
170
|
-
|
|
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
|
|
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
|
-
|
|
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=(
|
|
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
|
|
2
|
-
ttl",t))(
|
|
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{
|
|
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
|
package/dist/metadata/types.d.ts
CHANGED
|
@@ -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) => {
|
package/dist/services/query.d.ts
CHANGED
|
@@ -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,
|
|
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']> &
|
|
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 :
|
|
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.
|
|
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.
|
|
50
|
-
"@ez4/project": "^0.
|
|
51
|
-
"@ez4/reflection": "^0.
|
|
52
|
-
"@ez4/schema": "^0.
|
|
53
|
-
"@ez4/utils": "^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
|
}
|