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