@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 +6 -6
- package/dist/library.cjs +89 -89
- package/dist/library.mjs +117 -117
- package/dist/metadata/types.d.ts +1 -0
- package/dist/services/query.d.ts +7 -2
- package/dist/services/streams.d.ts +4 -0
- 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,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
|
|
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
|
-
c,o);break}}if(!
|
|
130
|
-
|
|
131
|
-
n"),
|
|
132
|
-
e,t);if(o)return Be(o,r,t,a)},"getDatabaseTableMetadata"),
|
|
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
|
|
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
|
|
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=
|
|
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=
|
|
152
|
-
value,o,e,t);break}case"engine":{(i.engine=
|
|
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
|
|
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=
|
|
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
|
|
163
|
-
targetAlias:ge}=
|
|
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??[];
|
|
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
|
|
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 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
|
|
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(!
|
|
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
|
|
63
|
-
"Incomplete database table",r,t)}},
|
|
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)}},
|
|
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
|
-
getServiceArchitecture as
|
|
105
|
-
import{isModelProperty as nr,isTypeObject as or,
|
|
106
|
-
import{isObjectWith as sr}from"@ez4/utils";import{IncompleteTypeError as
|
|
107
|
-
"Incomplete table stream",r,t)}},F=class extends
|
|
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
|
|
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
|
|
112
|
-
super("Incomplete stream handler",r,t)}};var
|
|
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"),
|
|
115
|
-
if(!ir(e))return
|
|
116
|
-
eamMetadata"),lr=n(e=>sr(e,["handler"]),"isCompleteStream"),
|
|
117
|
-
e))return
|
|
118
|
-
push(new N(e.name,e.file));return}return
|
|
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
|
|
121
|
-
i.handler=
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
i.variables=
|
|
125
|
-
"getTypeFromMembers");var hr=n(e=>yr(e,"Database.Table"),"isDatabaseTableDeclaration"),
|
|
126
|
-
if(!Mr(e))return
|
|
127
|
-
TableMetadata"),Sr=n(e=>xr(e,["name","schema","indexes"]),"isCompleteTable"),
|
|
128
|
-
(e,r,t,a)=>{if(gr(e))return
|
|
129
|
-
if(!hr(e)){a.push(new
|
|
130
|
-
eTable"),
|
|
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=
|
|
134
|
-
value,e,a,o))&&s.delete(l.name);break}case"relations":{i.relations=
|
|
135
|
-
|
|
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
|
|
140
|
-
e
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
o,e,t))&&s.delete(p.name);break}case"
|
|
146
|
-
|
|
147
|
-
|
|
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"),
|
|
150
|
-
Service"),
|
|
151
|
-
c&&i.push(c)}return i},"getAllTables"),
|
|
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")
|
|
158
|
-
leMap");var Te=n(e=>U(e)?e.name:null,"getLinkedService");var
|
|
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
|
-
|
|
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,
|
|
168
|
-
ye as getDatabaseServicesMetadata,
|
|
169
|
-
|
|
170
|
-
|
|
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
|
package/dist/metadata/types.d.ts
CHANGED
|
@@ -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) => {
|
package/dist/services/query.d.ts
CHANGED
|
@@ -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 ?
|
|
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 :
|
|
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.
|
|
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.
|
|
50
|
-
"@ez4/project": "^0.
|
|
51
|
-
"@ez4/reflection": "^0.
|
|
52
|
-
"@ez4/schema": "^0.
|
|
53
|
-
"@ez4/utils": "^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
|
}
|