@ez4/database 0.18.0 → 0.20.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 CHANGED
@@ -1,110 +1,114 @@
1
- "use strict";var L=Object.defineProperty;var $e=Object.getOwnPropertyDescriptor;var qe=Object.getOwnPropertyNames;var Ve=Object.prototype.hasOwnProperty;var Ue=(e,t)=>{for(var r in t)L(e,r,{get:t[r],enumerable:!0})},_e=(e,t,r,n)=>{if(t&&
2
- typeof t=="object"||typeof t=="function")for(let a of qe(t))!Ve.call(e,a)&&a!==r&&
3
- L(e,a,{get:()=>t[a],enumerable:!(n=$e(t,a))||n.enumerable});return e};var Be=e=>_e(L({},"__esModule",{value:!0}),e);var ar={};Ue(ar,{IncompleteHandlerError:()=>_,IncompleteServiceError:()=>R,IncompleteStreamError:()=>q,
4
- IncompleteTableError:()=>x,IncorrectIndexesTypeError:()=>C,IncorrectRelationsTypeError:()=>w,
5
- IncorrectSchemaTypeError:()=>$,IncorrectStreamTypeError:()=>U,InvalidIndexReferenceError:()=>H,
6
- InvalidIndexTypeError:()=>N,InvalidIndexesTypeError:()=>z,InvalidRelationAliasError:()=>A,
7
- InvalidRelationColumnError:()=>M,InvalidRelationTableError:()=>O,InvalidRelationTargetError:()=>k,
8
- InvalidRelationsTypeError:()=>j,InvalidSchemaTypeError:()=>F,InvalidStreamTypeError:()=>V,
9
- ServiceType:()=>B,getDatabaseServices:()=>te,getDatabaseTable:()=>re,getTableSchema:()=>ee,
10
- isDatabaseService:()=>Ge,registerTriggers:()=>nr});module.exports=Be(ar);var Ce=require("@ez4/common/library"),Ne=require("@ez4/schema/library"),He=require("@ez4/project/library");var c=require("@ez4/common/library"),Ae=require("@ez4/reflection");var y=require("@ez4/common/library"),j=class extends y.InvalidTypeError{constructor(t){
11
- super("Invalid table relations type",void 0,"Database.Relations",t)}},w=class extends y.IncorrectTypeError{constructor(r,n){
12
- super("Incorrect table relations type",r,"Database.Relations",n);this.schemaType=
13
- r}},k=class extends y.TypeError{constructor(r,n){super(`Target ${r} must follow \
14
- the pattern 'column@alias'.`,n);this.relationSource=r}},O=class extends y.TypeError{constructor(r,n){
15
- super(`Relation table ${r} don't exists.`,n);this.relationTable=r}},M=class extends y.TypeError{constructor(r,n){
16
- super(`Relation column ${r} don't exists.`,n);this.relationColumn=r}},A=class extends y.TypeError{constructor(r,n){
17
- super(`Relation alias ${r} can't override table columns.`,n);this.relationAlias=
18
- r}};var ae=require("@ez4/common/library"),R=class extends ae.IncompleteTypeError{constructor(t,r){
19
- super("Incomplete database service",t,r)}};var B="@ez4/database",Ge=e=>e.type===B;var u=require("@ez4/common/library"),G=require("@ez4/reflection"),J=e=>(0,u.isClassDeclaration)(
20
- e)&&(0,u.hasHeritageType)(e,"Database.Service"),oe=e=>(0,u.isModelDeclaration)(e)&&
21
- (0,u.hasHeritageType)(e,"Database.Engine"),se=e=>(0,u.isModelDeclaration)(e)&&(0,u.hasHeritageType)(
22
- e,"Database.Table"),ie=e=>(0,G.isTypeCallback)(e)||(0,G.isTypeFunction)(e),pe=e=>(0,u.hasHeritageType)(
23
- e,"Database.Relations"),le=e=>(0,u.hasHeritageType)(e,"Database.Indexes"),me=e=>(0,u.hasHeritageType)(
24
- e,"Database.Schema"),ce=e=>(0,u.hasHeritageType)(e,"Database.Stream");var T=require("@ez4/common/library"),v=require("@ez4/reflection");var ue=require("@ez4/common/library"),x=class extends ue.IncompleteTypeError{constructor(t,r){
25
- super("Incomplete database table",t,r)}};var g=require("@ez4/common/library"),z=class extends g.InvalidTypeError{constructor(t){
26
- super("Invalid table indexes type",void 0,"Database.Indexes",t)}},C=class extends g.IncorrectTypeError{constructor(r,n){
27
- super("Incorrect table indexes type",r,"Database.Indexes",n);this.schemaType=r}},
28
- N=class extends g.TypeError{constructor(r,n){super(`Invalid index type, ${r} mus\
29
- t follow one of the Index options.`,n);this.indexName=r}},H=class extends g.TypeError{constructor(r,n){
30
- super(`Invalid index reference, ${r} must be valid column.`,n);this.indexName=r}};var b=require("@ez4/common/library"),S=require("@ez4/reflection");var fe=(e,t,r,n)=>{if(!(0,S.isTypeReference)(e))return de(e,t,n);let a=(0,b.getReferenceType)(
31
- e,r);return a?de(a,t,n):null},de=(e,t,r)=>(0,S.isTypeObject)(e)?be(e,(0,b.getObjectMembers)(
32
- e),r):(0,b.isModelDeclaration)(e)?pe(e)?be(e,(0,b.getModelMembers)(e),r):(r.push(
33
- new w(e.name,e.file)),null):(r.push(new j(t.file)),null),be=(e,t,r)=>{let n=[];for(let a of t){
34
- if(!(0,S.isModelProperty)(a)||a.inherited)continue;let o=(0,b.getPropertyString)(
35
- a),s=a.name;if(!o)return r.push(new k(s,e.file)),null;let[i,p]=s.split("@",2),[l,
1
+ "use strict";var L=Object.defineProperty;var Ve=Object.getOwnPropertyDescriptor;var Fe=Object.getOwnPropertyNames;var Qe=Object.prototype.hasOwnProperty;var $e=(e,r)=>{for(var t in r)L(e,t,{get:r[t],enumerable:!0})},Ge=(e,r,t,n)=>{if(r&&
2
+ typeof r=="object"||typeof r=="function")for(let a of Fe(r))!Qe.call(e,a)&&a!==t&&
3
+ L(e,a,{get:()=>r[a],enumerable:!(n=Ve(r,a))||n.enumerable});return e};var Be=e=>Ge(L({},"__esModule",{value:!0}),e);var lt={};$e(lt,{IncompleteHandlerError:()=>$,IncompleteServiceError:()=>A,IncompleteStreamError:()=>V,
4
+ IncompleteTableError:()=>x,IncorrectIndexesTypeError:()=>U,IncorrectRelationsTypeError:()=>O,
5
+ IncorrectSchemaTypeError:()=>q,IncorrectStreamTypeError:()=>Q,InvalidIndexReferenceError:()=>N,
6
+ InvalidIndexTypeError:()=>z,InvalidIndexesTypeError:()=>w,InvalidRelationAliasError:()=>C,
7
+ InvalidRelationColumnError:()=>S,InvalidRelationTableError:()=>k,InvalidRelationTargetError:()=>R,
8
+ InvalidRelationsTypeError:()=>j,InvalidSchemaTypeError:()=>H,InvalidStreamTypeError:()=>F,
9
+ ServiceType:()=>G,getDatabaseServices:()=>re,getDatabaseTable:()=>te,getTableSchema:()=>ee,
10
+ isDatabaseService:()=>_e,registerTriggers:()=>pt});module.exports=Be(lt);var ze=require("@ez4/common/library"),Ne=require("@ez4/schema/library"),He=require("@ez4/project/library");var d=require("@ez4/common/library"),Ae=require("@ez4/reflection");var y=require("@ez4/common/library"),j=class extends y.InvalidTypeError{constructor(r){
11
+ super("Invalid table relations type",void 0,"Database.Relations",r)}},O=class extends y.IncorrectTypeError{constructor(t,n){
12
+ super("Incorrect table relations type",t,"Database.Relations",n);this.schemaType=
13
+ t}},R=class extends y.TypeError{constructor(t,n){super(`Target ${t} must follow \
14
+ the pattern 'column@alias'.`,n);this.relationSource=t}},k=class extends y.TypeError{constructor(t,n){
15
+ super(`Relation table ${t} don't exists.`,n);this.relationTable=t}},S=class extends y.TypeError{constructor(t,n){
16
+ super(`Relation column ${t} don't exists.`,n);this.relationColumn=t}},C=class extends y.TypeError{constructor(t,n){
17
+ super(`Relation alias ${t} can't override table columns.`,n);this.relationAlias=
18
+ t}};var ae=require("@ez4/common/library"),A=class extends ae.IncompleteTypeError{constructor(r,t){
19
+ super("Incomplete database service",r,t)}};var G="@ez4/database",_e=e=>e.type===G;var I=require("@ez4/reflection"),m=require("@ez4/common/library");var oe=require("@ez4/common/library"),x=class extends oe.IncompleteTypeError{constructor(r,t){
20
+ super("Incomplete database table",r,t)}};var T=require("@ez4/common/library"),B=require("@ez4/reflection"),_=e=>(0,T.isClassDeclaration)(
21
+ e)&&(0,T.hasHeritageType)(e,"Database.Service"),se=e=>(0,T.isModelDeclaration)(e)&&
22
+ (0,T.hasHeritageType)(e,"Database.Engine"),ie=e=>(0,T.isModelDeclaration)(e)&&(0,T.hasHeritageType)(
23
+ e,"Database.Table"),pe=e=>(0,B.isTypeCallback)(e)||(0,B.isTypeFunction)(e),le=e=>(0,T.hasHeritageType)(
24
+ e,"Database.Relations"),me=e=>(0,T.hasHeritageType)(e,"Database.Indexes"),ce=e=>(0,T.hasHeritageType)(
25
+ e,"Database.Schema"),de=e=>(0,T.hasHeritageType)(e,"Database.Stream");var Te;(e=>{})(Te||={});var fe=(e,r,t,n)=>{if(!(0,I.isTypeReference)(e))return ue(e,r,n);let a=(0,m.getReferenceType)(
26
+ e,t);return a?ue(a,r,n):null},Le=e=>!!e.name&&!!e.parametersMode&&!!e.transactionMode&&
27
+ !!e.orderMode,ue=(e,r,t)=>se(e)?be(e,r,(0,m.getModelMembers)(e),t):(0,I.isTypeObject)(
28
+ e)?be(e,r,(0,m.getObjectMembers)(e),t):null,be=(e,r,t,n)=>{let a={},o=new Set(["\
29
+ name","parametersMode","transactionMode","insensitiveMode","paginationMode","ord\
30
+ erMode"]);for(let s of t)if(!(!(0,I.isModelProperty)(s)||s.inherited))switch(s.name){default:
31
+ n.push(new m.InvalidServicePropertyError(r.name,s.name,e.file));break;case"name":
32
+ (a.name=(0,m.getPropertyString)(s))&&o.delete(s.name);break;case"parametersMode":
33
+ (a.parametersMode=(0,m.getPropertyStringIn)(s,["index","both"]))&&o.delete(s.name);
34
+ break;case"transactionMode":(a.transactionMode=(0,m.getPropertyStringIn)(s,["sta\
35
+ tic","interactive"]))&&o.delete(s.name);break;case"insensitiveMode":(a.insensitiveMode=
36
+ (0,m.getPropertyStringIn)(s,["unsupported","enabled"]))&&o.delete(s.name);break;case"\
37
+ paginationMode":(a.paginationMode=(0,m.getPropertyStringIn)(s,["cursor","offset"]))&&
38
+ o.delete(s.name);break;case"orderMode":(a.orderMode=(0,m.getPropertyStringIn)(s,
39
+ ["any","index"]))&&o.delete(s.name);break}return Le(a)?a:(n.push(new x([...o],e.
40
+ file)),null)};var f=require("@ez4/common/library"),E=require("@ez4/reflection");var g=require("@ez4/common/library"),w=class extends g.InvalidTypeError{constructor(r){
41
+ super("Invalid table indexes type",void 0,"Database.Indexes",r)}},U=class extends g.IncorrectTypeError{constructor(t,n){
42
+ super("Incorrect table indexes type",t,"Database.Indexes",n);this.schemaType=t}},
43
+ z=class extends g.TypeError{constructor(t,n){super(`Invalid index type, ${t} mus\
44
+ t follow one of the Index options.`,n);this.indexName=t}},N=class extends g.TypeError{constructor(t,n){
45
+ super(`Invalid index reference, ${t} must be valid column.`,n);this.indexName=t}};var u=require("@ez4/common/library"),M=require("@ez4/reflection");var ge=(e,r,t,n)=>{if(!(0,M.isTypeReference)(e))return ye(e,r,n);let a=(0,u.getReferenceType)(
46
+ e,t);return a?ye(a,r,n):null},ye=(e,r,t)=>(0,M.isTypeObject)(e)?xe(e,(0,u.getObjectMembers)(
47
+ e),t):(0,u.isModelDeclaration)(e)?le(e)?xe(e,(0,u.getModelMembers)(e),t):(t.push(
48
+ new O(e.name,e.file)),null):(t.push(new j(r.file)),null),xe=(e,r,t)=>{let n=[];for(let a of r){
49
+ if(!(0,M.isModelProperty)(a)||a.inherited)continue;let o=(0,u.getPropertyString)(
50
+ a),s=a.name;if(!o)return t.push(new R(s,e.file)),null;let[i,p]=s.split("@",2),[l,
36
51
  P]=o.split(":",2);n.push({sourceTable:l,sourceColumn:P,targetColumn:i,targetAlias:p})}
37
- return n};var f=require("@ez4/common/library"),I=require("@ez4/reflection");var xe=(e,t,r,n)=>{if(!(0,I.isTypeReference)(e))return Te(e,t,n);let a=(0,f.getReferenceType)(
38
- e,r);return a?Te(a,t,n):null},Te=(e,t,r)=>(0,I.isTypeObject)(e)?ye(e,(0,f.getObjectMembers)(
39
- e),r):(0,f.isModelDeclaration)(e)?le(e)?ye(e,(0,f.getModelMembers)(e),r):(r.push(
40
- new C(e.name,e.file)),null):(r.push(new z(t.file)),null),ye=(e,t,r)=>{let n=[];for(let a of t){
41
- if(!(0,I.isModelProperty)(a)||a.inherited)continue;let o=a.name,s=(0,f.getPropertyString)(
52
+ return n};var b=require("@ez4/common/library"),h=require("@ez4/reflection");var Me=(e,r,t,n)=>{if(!(0,h.isTypeReference)(e))return Se(e,r,n);let a=(0,b.getReferenceType)(
53
+ e,t);return a?Se(a,r,n):null},Se=(e,r,t)=>(0,h.isTypeObject)(e)?Ie(e,(0,b.getObjectMembers)(
54
+ e),t):(0,b.isModelDeclaration)(e)?me(e)?Ie(e,(0,b.getModelMembers)(e),t):(t.push(
55
+ new U(e.name,e.file)),null):(t.push(new w(r.file)),null),Ie=(e,r,t)=>{let n=[];for(let a of r){
56
+ if(!(0,h.isModelProperty)(a)||a.inherited)continue;let o=a.name,s=(0,b.getPropertyString)(
42
57
  a);switch(s){case"primary":case"secondary":case"unique":case"ttl":n.push({name:o,
43
- columns:o.split(":"),type:s});break;default:return r.push(new N(o,e.file)),null}}
44
- return n};var Q=require("@ez4/common/library"),W=require("@ez4/schema/library"),X=require("@ez4/reflection");var K=require("@ez4/common/library"),F=class extends K.InvalidTypeError{constructor(t){
45
- super("Invalid table schema type",void 0,"Database.Schema",t)}},$=class extends K.IncorrectTypeError{constructor(r,n){
46
- super("Incorrect table schema type",r,"Database.Schema",n);this.schemaType=r}};var ee=(e,t,r,n)=>{if(!(0,X.isTypeReference)(e))return ge(e,t,r,n);let a=(0,Q.getReferenceType)(
47
- e,r);return a?ge(a,t,r,n):null},ge=(e,t,r,n)=>(0,X.isTypeObject)(e)?Me(e,r):(0,Q.isModelDeclaration)(
48
- e)?me(e)?Me(e,r):(n.push(new $(e.name,e.file)),null):(n.push(new F(t.file)),null),
49
- Me=(e,t)=>{let r=(0,W.getObjectSchema)(e,t);return r&&(0,W.isObjectSchema)(r)?r:
50
- null};var m=require("@ez4/common/library"),D=require("@ez4/reflection");var h=require("@ez4/common/library"),q=class extends h.IncompleteTypeError{constructor(t,r){
51
- super("Incomplete table stream",t,r)}},V=class extends h.InvalidTypeError{constructor(t){
52
- super("Invalid table stream type",void 0,"Database.Stream",t)}},U=class extends h.IncorrectTypeError{constructor(r,n){
53
- super("Incorrect table stream type",r,"Database.Stream",n);this.streamType=r}};var Se=require("@ez4/common/library"),_=class extends Se.IncompleteTypeError{constructor(t,r){
54
- super("Incomplete stream handler",t,r)}};var Ie=(e,t,r)=>{if(!ie(e))return null;let n={},a=new Set(["name","file","change"]);
58
+ columns:o.split(":"),type:s});break;default:return t.push(new z(o,e.file)),null}}
59
+ return n};var K=require("@ez4/common/library"),W=require("@ez4/schema/library"),X=require("@ez4/reflection");var J=require("@ez4/common/library"),H=class extends J.InvalidTypeError{constructor(r){
60
+ super("Invalid table schema type",void 0,"Database.Schema",r)}},q=class extends J.IncorrectTypeError{constructor(t,n){
61
+ super("Incorrect table schema type",t,"Database.Schema",n);this.schemaType=t}};var ee=(e,r,t,n)=>{if(!(0,X.isTypeReference)(e))return he(e,r,t,n);let a=(0,K.getReferenceType)(
62
+ e,t);return a?he(a,r,t,n):null},he=(e,r,t,n)=>(0,X.isTypeObject)(e)?ve(e,t):(0,K.isModelDeclaration)(
63
+ e)?ce(e)?ve(e,t):(n.push(new q(e.name,e.file)),null):(n.push(new H(r.file)),null),
64
+ ve=(e,r)=>{let t=(0,W.getObjectSchema)(e,r);return t&&(0,W.isObjectSchema)(t)?t:
65
+ null};var c=require("@ez4/common/library"),D=require("@ez4/reflection");var v=require("@ez4/common/library"),V=class extends v.IncompleteTypeError{constructor(r,t){
66
+ super("Incomplete table stream",r,t)}},F=class extends v.InvalidTypeError{constructor(r){
67
+ super("Invalid table stream type",void 0,"Database.Stream",r)}},Q=class extends v.IncorrectTypeError{constructor(t,n){
68
+ super("Incorrect table stream type",t,"Database.Stream",n);this.streamType=t}};var De=require("@ez4/common/library"),$=class extends De.IncompleteTypeError{constructor(r,t){
69
+ super("Incomplete stream handler",r,t)}};var Ee=(e,r,t)=>{if(!pe(e))return null;let n={},a=new Set(["name","file","change"]);
55
70
  return e.description&&(n.description=e.description),(n.name=e.name)&&a.delete("n\
56
71
  ame"),(n.file=e.file)&&a.delete("file"),e.parameters&&a.delete("change"),a.size===
57
- 0&&Je(n)?n:(r.push(new _([...a],e.file)),null)},Je=e=>!!e.name&&!!e.file;var ve=(e,t,r,n)=>{if(!(0,D.isTypeReference)(e))return he(e,t,r,n);let a=(0,m.getReferenceType)(
58
- e,r);return a?he(a,t,r,n):null},Ke=e=>!!e.handler,he=(e,t,r,n)=>(0,D.isTypeObject)(
59
- e)?De(e,t,(0,m.getObjectMembers)(e),r,n):(0,m.isModelDeclaration)(e)?ce(e)?De(e,
60
- t,(0,m.getModelMembers)(e),r,n):(n.push(new U(e.name,e.file)),null):(n.push(new V(
61
- t.file)),null),De=(e,t,r,n,a)=>{let o={},s=new Set(["handler"]);for(let i of r)if(!(!(0,D.isModelProperty)(
62
- i)||i.inherited))switch(i.name){default:a.push(new m.InvalidServicePropertyError(
63
- t.name,i.name,e.file));break;case"handler":o.handler=Ie(i.value,n,a);break;case"\
64
- listener":o.listener=(0,m.getServiceListener)(i.value,a);break;case"memory":case"\
65
- timeout":case"retention":o[i.name]=(0,m.getPropertyNumber)(i);break;case"variabl\
66
- es":o.variables=(0,m.getLinkedVariableList)(i,a);break}return Ke(o)?o:(a.push(new q(
67
- [...s],e.file)),null)};var re=(e,t,r,n)=>{if(!(0,v.isTypeReference)(e))return Ee(e,t,r,n);let a=(0,T.getReferenceType)(
68
- e,r);return a?Ee(a,t,r,n):null},Qe=e=>!!e.name&&!!e.schema&&!!e.indexes,Ee=(e,t,r,n)=>se(
69
- e)?Pe(e,t,(0,T.getModelMembers)(e),r,n):(0,v.isTypeObject)(e)?Pe(e,t,(0,T.getObjectMembers)(
70
- e),r,n):null,Pe=(e,t,r,n,a)=>{let o={},s=new Set(["name","schema","indexes"]);for(let p of r)
71
- if(!(!(0,v.isModelProperty)(p)||p.inherited))switch(p.name){default:a.push(new T.InvalidServicePropertyError(
72
- t.name,p.name,e.file));break;case"name":(o.name=(0,T.getPropertyString)(p))&&s.delete(
72
+ 0&&et(n)?n:(t.push(new $([...a],e.file)),null)},et=e=>!!e.name&&!!e.file;var Oe=(e,r,t,n)=>{if(!(0,D.isTypeReference)(e))return Pe(e,r,t,n);let a=(0,c.getReferenceType)(
73
+ e,t);return a?Pe(a,r,t,n):null},tt=e=>!!e.handler,Pe=(e,r,t,n)=>(0,D.isTypeObject)(
74
+ e)?je(e,r,(0,c.getObjectMembers)(e),t,n):(0,c.isModelDeclaration)(e)?de(e)?je(e,
75
+ r,(0,c.getModelMembers)(e),t,n):(n.push(new Q(e.name,e.file)),null):(n.push(new F(
76
+ r.file)),null),je=(e,r,t,n,a)=>{let o={},s=new Set(["handler"]);for(let i of t)if(!(!(0,D.isModelProperty)(
77
+ i)||i.inherited))switch(i.name){default:a.push(new c.InvalidServicePropertyError(
78
+ r.name,i.name,e.file));break;case"handler":o.handler=Ee(i.value,n,a);break;case"\
79
+ listener":o.listener=(0,c.getServiceListener)(i.value,a);break;case"memory":case"\
80
+ logRetention":case"timeout":o[i.name]=(0,c.getPropertyNumber)(i);break;case"vari\
81
+ ables":o.variables=(0,c.getLinkedVariableList)(i,a);break}return tt(o)?o:(a.push(
82
+ new V([...s],e.file)),null)};var te=(e,r,t,n)=>{if(!(0,E.isTypeReference)(e))return Re(e,r,t,n);let a=(0,f.getReferenceType)(
83
+ e,t);return a?Re(a,r,t,n):null},rt=e=>!!e.name&&!!e.schema&&!!e.indexes,Re=(e,r,t,n)=>ie(
84
+ e)?ke(e,r,(0,f.getModelMembers)(e),t,n):(0,E.isTypeObject)(e)?ke(e,r,(0,f.getObjectMembers)(
85
+ e),t,n):null,ke=(e,r,t,n,a)=>{let o={},s=new Set(["name","schema","indexes"]);for(let p of t)
86
+ if(!(!(0,E.isModelProperty)(p)||p.inherited))switch(p.name){default:a.push(new f.InvalidServicePropertyError(
87
+ r.name,p.name,e.file));break;case"name":(o.name=(0,f.getPropertyString)(p))&&s.delete(
73
88
  p.name);break;case"schema":(o.schema=ee(p.value,e,n,a))&&s.delete(p.name);break;case"\
74
- indexes":(o.indexes=xe(p.value,e,n,a))&&s.delete(p.name);break;case"relations":o.
75
- relations=fe(p.value,e,n,a);break;case"stream":o.stream=ve(p.value,t,n,a);break}
76
- if(!Qe(o))return a.push(new x([...s],e.file)),null;let i=We(e,o.indexes,o.schema);
77
- return i.length?(a.push(...i),null):o},We=(e,t,r)=>{let n=r.properties,a=[];for(let{
78
- name:o,columns:s}of t)s.some(p=>!n[p])&&a.push(new H(o,e.file));return a};var d=require("@ez4/common/library"),E=require("@ez4/reflection");var ke=(e,t,r,n)=>{if(!(0,E.isTypeReference)(e))return je(e,t,n);let a=(0,d.getReferenceType)(
79
- e,r);return a?je(a,t,n):null},Xe=e=>!!e.name&&!!e.transaction,je=(e,t,r)=>oe(e)?
80
- we(e,t,(0,d.getModelMembers)(e),r):(0,E.isTypeObject)(e)?we(e,t,(0,d.getObjectMembers)(
81
- e),r):null,we=(e,t,r,n)=>{let a={},o=new Set(["name","transaction","parameters"]);
82
- for(let s of r)if(!(!(0,E.isModelProperty)(s)||s.inherited))switch(s.name){default:
83
- n.push(new d.InvalidServicePropertyError(t.name,s.name,e.file));break;case"name":
84
- (a.name=(0,d.getPropertyString)(s))&&o.delete(s.name);break;case"transaction":(a.
85
- transaction=Ye(s))&&o.delete(s.name);break;case"parameters":(a.parameters=Ze(s))&&
86
- o.delete(s.name);break}return Xe(a)?a:(n.push(new x([...o],e.file)),null)},Ye=e=>{
87
- let t=(0,d.getPropertyString)(e);switch(t){case"interactive":case"static":return t}
88
- return null},Ze=e=>{let t=(0,d.getPropertyString)(e);switch(t){case"both":case"i\
89
- ndex":return t}return null};var te=e=>{let t={},r=[];for(let n in e){let a=e[n];if(!J(a)||(0,c.isExternalStatement)(
90
- a))continue;let o={type:B,extras:{}},s=new Set(["engine","tables"]),i=a.file;o.name=
91
- a.name;for(let l of(0,c.getModelMembers)(a))if(!(!(0,Ae.isModelProperty)(l)||l.inherited))
92
- switch(l.name){default:r.push(new c.InvalidServicePropertyError(o.name,l.name,i));
93
- break;case"engine":(o.engine=ke(l.value,a,e,r))&&s.delete(l.name);break;case"tab\
94
- les":(o.tables=er(l,a,e,r))&&s.delete(l.name);break;case"variables":o.variables=
95
- (0,c.getLinkedVariableList)(l,r);break;case"services":o.services=(0,c.getLinkedServiceList)(
96
- l,e,r);break}if(!Le(o)){r.push(new R([...s],i));continue}let p=rr(a,o.tables);if(p.
97
- length){r.push(...p);continue}if(t[a.name]){r.push(new c.DuplicateServiceError(a.
98
- name,i));continue}t[a.name]=o}return{services:t,errors:r}},Le=e=>!!e.name&&!!e.tables&&
99
- !!e.extras,er=(e,t,r,n)=>{let a=(0,c.getPropertyTuple)(e)??[],o=[];for(let s of a){
100
- let i=re(s,t,r,n);i&&o.push(i)}return o},rr=(e,t)=>{let r=tr(t),n=[];for(let{relations:a,
101
- schema:o,indexes:s}of t){if(!a)continue;let i=o.properties;for(let p of a){let{sourceTable:l,
102
- sourceColumn:P,targetColumn:Y,targetAlias:ne}=p;i[Y]||n.push(new M(Y,e.file)),i[ne]&&
103
- n.push(new A(ne,e.file));let Z=r[l]?.schema.properties;Z||n.push(new O(l,e.file)),
104
- Z&&!Z[P]&&n.push(new M(P,e.file));let Fe=r[l]?.indexes??[];p.sourceIndex=Oe(Fe,P),
105
- p.targetIndex=Oe(s,Y)}}return n},Oe=(e,t)=>e.find(({name:r})=>r===t)?.type,tr=e=>e.
106
- reduce((t,r)=>({...t,[r.name]:r}),{});var Re=e=>J(e)?e.name:null;var ze=!1,nr=()=>{ze||((0,Ce.registerTriggers)(),(0,Ne.registerTriggers)(),(0,He.createTrigger)(
107
- "@ez4/database",{"metadata:getServices":te,"metadata:getLinkedService":Re}),ze=!0)};0&&(module.exports={IncompleteHandlerError,IncompleteServiceError,IncompleteStreamError,
89
+ indexes":(o.indexes=Me(p.value,e,n,a))&&s.delete(p.name);break;case"relations":o.
90
+ relations=ge(p.value,e,n,a);break;case"stream":o.stream=Oe(p.value,r,n,a);break}
91
+ if(!rt(o))return a.push(new x([...s],e.file)),null;let i=nt(e,o.indexes,o.schema);
92
+ return i.length?(a.push(...i),null):o},nt=(e,r,t)=>{let n=t.properties,a=[];for(let{
93
+ name:o,columns:s}of r)s.some(p=>!n[p])&&a.push(new N(o,e.file));return a};var re=e=>{let r={},t=[];for(let n in e){let a=e[n];if(!_(a)||(0,d.isExternalDeclaration)(
94
+ a))continue;let o={type:G,extras:{}},s=new Set(["engine","tables"]),i=a.file;o.name=
95
+ a.name;for(let l of(0,d.getModelMembers)(a))if(!(!(0,Ae.isModelProperty)(l)||l.inherited))
96
+ switch(l.name){default:t.push(new d.InvalidServicePropertyError(o.name,l.name,i));
97
+ break;case"client":break;case"engine":(o.engine=fe(l.value,a,e,t))&&s.delete(l.name);
98
+ break;case"tables":(o.tables=ot(l,a,e,t))&&s.delete(l.name);break;case"variables":
99
+ o.variables=(0,d.getLinkedVariableList)(l,t);break;case"services":o.services=(0,d.getLinkedServiceList)(
100
+ l,e,t);break}if(!at(o)){t.push(new A([...s],i));continue}let p=st(a,o.tables);if(p.
101
+ length){t.push(...p);continue}if(r[a.name]){t.push(new d.DuplicateServiceError(a.
102
+ name,i));continue}r[a.name]=o}return{services:r,errors:t}},at=e=>!!e.name&&!!e.tables&&
103
+ !!e.extras,ot=(e,r,t,n)=>{let a=(0,d.getPropertyTuple)(e)??[],o=[];for(let s of a){
104
+ let i=te(s,r,t,n);i&&o.push(i)}return o},st=(e,r)=>{let t=it(r),n=[];for(let{relations:a,
105
+ schema:o,indexes:s}of r){if(!a)continue;let i=o.properties;for(let p of a){let{sourceTable:l,
106
+ sourceColumn:P,targetColumn:Y,targetAlias:ne}=p;i[Y]||n.push(new S(Y,e.file)),i[ne]&&
107
+ n.push(new C(ne,e.file));let Z=t[l]?.schema.properties;Z||n.push(new k(l,e.file)),
108
+ Z&&!Z[P]&&n.push(new S(P,e.file));let qe=t[l]?.indexes??[];p.sourceIndex=Ce(qe,P),
109
+ p.targetIndex=Ce(s,Y)}}return n},Ce=(e,r)=>e.find(({name:t})=>t===r)?.type,it=e=>e.
110
+ reduce((r,t)=>({...r,[t.name]:t}),{});var we=e=>_(e)?e.name:null;var Ue=!1,pt=()=>{Ue||((0,ze.registerTriggers)(),(0,Ne.registerTriggers)(),(0,He.createTrigger)(
111
+ "@ez4/database",{"metadata:getServices":re,"metadata:getLinkedService":we}),Ue=!0)};0&&(module.exports={IncompleteHandlerError,IncompleteServiceError,IncompleteStreamError,
108
112
  IncompleteTableError,IncorrectIndexesTypeError,IncorrectRelationsTypeError,IncorrectSchemaTypeError,
109
113
  IncorrectStreamTypeError,InvalidIndexReferenceError,InvalidIndexTypeError,InvalidIndexesTypeError,
110
114
  InvalidRelationAliasError,InvalidRelationColumnError,InvalidRelationTableError,InvalidRelationTargetError,
package/dist/library.mjs CHANGED
@@ -1,109 +1,113 @@
1
- import{registerTriggers as Br}from"@ez4/common/library";import{registerTriggers as Gr}from"@ez4/schema/library";
2
- import{createTrigger as Jr}from"@ez4/project/library";import{DuplicateServiceError as Ar,InvalidServicePropertyError as Rr,isExternalStatement as zr,
3
- getLinkedServiceList as Cr,getLinkedVariableList as Nr,getPropertyTuple as Hr,getModelMembers as Fr}from"@ez4/common/library";
4
- import{isModelProperty as $r}from"@ez4/reflection";import{IncorrectTypeError as Te,InvalidTypeError as ye,TypeError as g}from"@ez4/common/library";
5
- var b=class extends ye{constructor(t){super("Invalid table relations type",void 0,
6
- "Database.Relations",t)}},f=class extends Te{constructor(r,n){super("Incorrect t\
7
- able relations type",r,"Database.Relations",n);this.schemaType=r}},T=class extends g{constructor(r,n){
8
- super(`Target ${r} must follow the pattern 'column@alias'.`,n);this.relationSource=
9
- r}},y=class extends g{constructor(r,n){super(`Relation table ${r} don't exists.`,
10
- n);this.relationTable=r}},d=class extends g{constructor(r,n){super(`Relation col\
11
- umn ${r} don't exists.`,n);this.relationColumn=r}},x=class extends g{constructor(r,n){
12
- super(`Relation alias ${r} can't override table columns.`,n);this.relationAlias=
13
- r}};import{IncompleteTypeError as xe}from"@ez4/common/library";var M=class extends xe{constructor(t,r){
14
- super("Incomplete database service",t,r)}};var z="@ez4/database",Yr=e=>e.type===z;import{hasHeritageType as m,isClassDeclaration as ge,isModelDeclaration as H}from"@ez4/common/library";
15
- import{isTypeCallback as Me,isTypeFunction as Se}from"@ez4/reflection";var S=e=>ge(
16
- e)&&m(e,"Database.Service"),F=e=>H(e)&&m(e,"Database.Engine"),$=e=>H(e)&&m(e,"Da\
17
- tabase.Table"),q=e=>Me(e)||Se(e),V=e=>m(e,"Database.Relations"),U=e=>m(e,"Databa\
18
- se.Indexes"),_=e=>m(e,"Database.Schema"),B=e=>m(e,"Database.Stream");import{InvalidServicePropertyError as ur,getModelMembers as dr,getObjectMembers as br,
19
- getPropertyString as fr,getReferenceType as Tr}from"@ez4/common/library";import{
20
- isModelProperty as yr,isTypeObject as xr,isTypeReference as gr}from"@ez4/reflection";import{IncompleteTypeError as Ie}from"@ez4/common/library";var c=class extends Ie{constructor(t,r){
21
- super("Incomplete database table",t,r)}};import{IncorrectTypeError as he,InvalidTypeError as De,TypeError as G}from"@ez4/common/library";
22
- var I=class extends De{constructor(t){super("Invalid table indexes type",void 0,
23
- "Database.Indexes",t)}},h=class extends he{constructor(r,n){super("Incorrect tab\
24
- le indexes type",r,"Database.Indexes",n);this.schemaType=r}},D=class extends G{constructor(r,n){
25
- super(`Invalid index type, ${r} must follow one of the Index options.`,n);this.indexName=
26
- r}},v=class extends G{constructor(r,n){super(`Invalid index reference, ${r} must\
27
- be valid column.`,n);this.indexName=r}};import{isModelDeclaration as ve,getModelMembers as Ee,getObjectMembers as Pe,getPropertyString as je,
28
- getReferenceType as we}from"@ez4/common/library";import{isModelProperty as ke,isTypeObject as Oe,
29
- isTypeReference as Ae}from"@ez4/reflection";var Q=(e,t,r,n)=>{if(!Ae(e))return J(e,t,n);let a=we(e,r);return a?J(a,t,n):null},
30
- J=(e,t,r)=>Oe(e)?K(e,Pe(e),r):ve(e)?V(e)?K(e,Ee(e),r):(r.push(new f(e.name,e.file)),
31
- null):(r.push(new b(t.file)),null),K=(e,t,r)=>{let n=[];for(let a of t){if(!ke(a)||
32
- a.inherited)continue;let o=je(a),s=a.name;if(!o)return r.push(new T(s,e.file)),null;
33
- let[i,p]=s.split("@",2),[l,u]=o.split(":",2);n.push({sourceTable:l,sourceColumn:u,
34
- targetColumn:i,targetAlias:p})}return n};import{isModelDeclaration as Re,getModelMembers as ze,getObjectMembers as Ce,getPropertyString as Ne,
35
- getReferenceType as He}from"@ez4/common/library";import{isModelProperty as Fe,isTypeObject as $e,
36
- isTypeReference as qe}from"@ez4/reflection";var Y=(e,t,r,n)=>{if(!qe(e))return W(e,t,n);let a=He(e,r);return a?W(a,t,n):null},
37
- W=(e,t,r)=>$e(e)?X(e,Ce(e),r):Re(e)?U(e)?X(e,ze(e),r):(r.push(new h(e.name,e.file)),
38
- null):(r.push(new I(t.file)),null),X=(e,t,r)=>{let n=[];for(let a of t){if(!Fe(a)||
39
- a.inherited)continue;let o=a.name,s=Ne(a);switch(s){case"primary":case"secondary":case"\
40
- unique":case"ttl":n.push({name:o,columns:o.split(":"),type:s});break;default:return r.
41
- push(new D(o,e.file)),null}}return n};import{getReferenceType as _e,isModelDeclaration as Be}from"@ez4/common/library";
42
- import{getObjectSchema as Ge,isObjectSchema as Je}from"@ez4/schema/library";import{
43
- isTypeObject as Ke,isTypeReference as Qe}from"@ez4/reflection";import{IncorrectTypeError as Ve,InvalidTypeError as Ue}from"@ez4/common/library";
44
- var E=class extends Ue{constructor(t){super("Invalid table schema type",void 0,"\
45
- Database.Schema",t)}},P=class extends Ve{constructor(r,n){super("Incorrect table\
46
- schema type",r,"Database.Schema",n);this.schemaType=r}};var ee=(e,t,r,n)=>{if(!Qe(e))return Z(e,t,r,n);let a=_e(e,r);return a?Z(a,t,r,n):
47
- null},Z=(e,t,r,n)=>Ke(e)?L(e,r):Be(e)?_(e)?L(e,r):(n.push(new P(e.name,e.file)),
48
- null):(n.push(new E(t.file)),null),L=(e,t)=>{let r=Ge(e,t);return r&&Je(r)?r:null};import{InvalidServicePropertyError as er,isModelDeclaration as rr,getLinkedVariableList as tr,
49
- getModelMembers as nr,getObjectMembers as ar,getPropertyNumber as or,getServiceListener as sr,
50
- getReferenceType as ir}from"@ez4/common/library";import{isModelProperty as pr,isTypeObject as lr,
51
- isTypeReference as mr}from"@ez4/reflection";import{IncompleteTypeError as We,IncorrectTypeError as Xe,InvalidTypeError as Ye}from"@ez4/common/library";
52
- var j=class extends We{constructor(t,r){super("Incomplete table stream",t,r)}},w=class extends Ye{constructor(t){
53
- super("Invalid table stream type",void 0,"Database.Stream",t)}},k=class extends Xe{constructor(r,n){
54
- super("Incorrect table stream type",r,"Database.Stream",n);this.streamType=r}};import{IncompleteTypeError as Ze}from"@ez4/common/library";var O=class extends Ze{constructor(t,r){
55
- super("Incomplete stream handler",t,r)}};var re=(e,t,r)=>{if(!q(e))return null;let n={},a=new Set(["name","file","change"]);
1
+ import{registerTriggers as Xt}from"@ez4/common/library";import{registerTriggers as Yt}from"@ez4/schema/library";
2
+ import{createTrigger as Zt}from"@ez4/project/library";import{DuplicateServiceError as Ht,InvalidServicePropertyError as qt,isExternalDeclaration as Vt,
3
+ getLinkedServiceList as Ft,getLinkedVariableList as Qt,getPropertyTuple as $t,getModelMembers as Gt}from"@ez4/common/library";
4
+ import{isModelProperty as Bt}from"@ez4/reflection";import{IncorrectTypeError as ye,InvalidTypeError as xe,TypeError as S}from"@ez4/common/library";
5
+ var b=class extends xe{constructor(r){super("Invalid table relations type",void 0,
6
+ "Database.Relations",r)}},f=class extends ye{constructor(t,n){super("Incorrect t\
7
+ able relations type",t,"Database.Relations",n);this.schemaType=t}},y=class extends S{constructor(t,n){
8
+ super(`Target ${t} must follow the pattern 'column@alias'.`,n);this.relationSource=
9
+ t}},x=class extends S{constructor(t,n){super(`Relation table ${t} don't exists.`,
10
+ n);this.relationTable=t}},T=class extends S{constructor(t,n){super(`Relation col\
11
+ umn ${t} don't exists.`,n);this.relationColumn=t}},g=class extends S{constructor(t,n){
12
+ super(`Relation alias ${t} can't override table columns.`,n);this.relationAlias=
13
+ t}};import{IncompleteTypeError as ge}from"@ez4/common/library";var I=class extends ge{constructor(r,t){
14
+ super("Incomplete database service",r,t)}};var U="@ez4/database",nr=e=>e.type===U;import{isModelProperty as Re,isTypeObject as ke,isTypeReference as Ce}from"@ez4/reflection";
15
+ import{InvalidServicePropertyError as Ae,getModelMembers as we,getObjectMembers as Ue,
16
+ getPropertyString as ze,getPropertyStringIn as u,getReferenceType as Ne}from"@ez4/common/library";import{IncompleteTypeError as Se}from"@ez4/common/library";var c=class extends Se{constructor(r,t){
17
+ super("Incomplete database table",r,t)}};import{hasHeritageType as m,isClassDeclaration as Ie,isModelDeclaration as N}from"@ez4/common/library";
18
+ import{isTypeCallback as Me,isTypeFunction as he}from"@ez4/reflection";var M=e=>Ie(
19
+ e)&&m(e,"Database.Service"),H=e=>N(e)&&m(e,"Database.Engine"),q=e=>N(e)&&m(e,"Da\
20
+ tabase.Table"),V=e=>Me(e)||he(e),F=e=>m(e,"Database.Relations"),Q=e=>m(e,"Databa\
21
+ se.Indexes"),$=e=>m(e,"Database.Schema"),G=e=>m(e,"Database.Stream");var B;(e=>{})(B||={});var K=(e,r,t,n)=>{if(!Ce(e))return _(e,r,n);let a=Ne(e,t);return a?_(a,r,n):null},
22
+ He=e=>!!e.name&&!!e.parametersMode&&!!e.transactionMode&&!!e.orderMode,_=(e,r,t)=>H(
23
+ e)?J(e,r,we(e),t):ke(e)?J(e,r,Ue(e),t):null,J=(e,r,t,n)=>{let a={},o=new Set(["n\
24
+ ame","parametersMode","transactionMode","insensitiveMode","paginationMode","orde\
25
+ rMode"]);for(let s of t)if(!(!Re(s)||s.inherited))switch(s.name){default:n.push(
26
+ new Ae(r.name,s.name,e.file));break;case"name":(a.name=ze(s))&&o.delete(s.name);
27
+ break;case"parametersMode":(a.parametersMode=u(s,["index","both"]))&&o.delete(s.
28
+ name);break;case"transactionMode":(a.transactionMode=u(s,["static","interactive"]))&&
29
+ o.delete(s.name);break;case"insensitiveMode":(a.insensitiveMode=u(s,["unsupporte\
30
+ d","enabled"]))&&o.delete(s.name);break;case"paginationMode":(a.paginationMode=u(
31
+ s,["cursor","offset"]))&&o.delete(s.name);break;case"orderMode":(a.orderMode=u(s,
32
+ ["any","index"]))&&o.delete(s.name);break}return He(a)?a:(n.push(new c([...o],e.
33
+ file)),null)};import{InvalidServicePropertyError as jt,getModelMembers as Ot,getObjectMembers as Rt,
34
+ getPropertyString as kt,getReferenceType as Ct}from"@ez4/common/library";import{
35
+ isModelProperty as At,isTypeObject as wt,isTypeReference as Ut}from"@ez4/reflection";import{IncorrectTypeError as qe,InvalidTypeError as Ve,TypeError as W}from"@ez4/common/library";
36
+ var h=class extends Ve{constructor(r){super("Invalid table indexes type",void 0,
37
+ "Database.Indexes",r)}},v=class extends qe{constructor(t,n){super("Incorrect tab\
38
+ le indexes type",t,"Database.Indexes",n);this.schemaType=t}},D=class extends W{constructor(t,n){
39
+ super(`Invalid index type, ${t} must follow one of the Index options.`,n);this.indexName=
40
+ t}},E=class extends W{constructor(t,n){super(`Invalid index reference, ${t} must\
41
+ be valid column.`,n);this.indexName=t}};import{isModelDeclaration as Fe,getModelMembers as Qe,getObjectMembers as $e,getPropertyString as Ge,
42
+ getReferenceType as Be}from"@ez4/common/library";import{isModelProperty as _e,isTypeObject as Je,
43
+ isTypeReference as Ke}from"@ez4/reflection";var Z=(e,r,t,n)=>{if(!Ke(e))return X(e,r,n);let a=Be(e,t);return a?X(a,r,n):null},
44
+ X=(e,r,t)=>Je(e)?Y(e,$e(e),t):Fe(e)?F(e)?Y(e,Qe(e),t):(t.push(new f(e.name,e.file)),
45
+ null):(t.push(new b(r.file)),null),Y=(e,r,t)=>{let n=[];for(let a of r){if(!_e(a)||
46
+ a.inherited)continue;let o=Ge(a),s=a.name;if(!o)return t.push(new y(s,e.file)),null;
47
+ let[i,p]=s.split("@",2),[l,d]=o.split(":",2);n.push({sourceTable:l,sourceColumn:d,
48
+ targetColumn:i,targetAlias:p})}return n};import{isModelDeclaration as We,getModelMembers as Xe,getObjectMembers as Ye,getPropertyString as Ze,
49
+ getReferenceType as Le}from"@ez4/common/library";import{isModelProperty as et,isTypeObject as tt,
50
+ isTypeReference as rt}from"@ez4/reflection";var te=(e,r,t,n)=>{if(!rt(e))return L(e,r,n);let a=Le(e,t);return a?L(a,r,n):null},
51
+ L=(e,r,t)=>tt(e)?ee(e,Ye(e),t):We(e)?Q(e)?ee(e,Xe(e),t):(t.push(new v(e.name,e.file)),
52
+ null):(t.push(new h(r.file)),null),ee=(e,r,t)=>{let n=[];for(let a of r){if(!et(
53
+ a)||a.inherited)continue;let o=a.name,s=Ze(a);switch(s){case"primary":case"secon\
54
+ dary":case"unique":case"ttl":n.push({name:o,columns:o.split(":"),type:s});break;default:
55
+ return t.push(new D(o,e.file)),null}}return n};import{getReferenceType as ot,isModelDeclaration as st}from"@ez4/common/library";
56
+ import{getObjectSchema as it,isObjectSchema as pt}from"@ez4/schema/library";import{
57
+ isTypeObject as lt,isTypeReference as mt}from"@ez4/reflection";import{IncorrectTypeError as nt,InvalidTypeError as at}from"@ez4/common/library";
58
+ var P=class extends at{constructor(r){super("Invalid table schema type",void 0,"\
59
+ Database.Schema",r)}},j=class extends nt{constructor(t,n){super("Incorrect table\
60
+ schema type",t,"Database.Schema",n);this.schemaType=t}};var ae=(e,r,t,n)=>{if(!mt(e))return re(e,r,t,n);let a=ot(e,t);return a?re(a,r,t,
61
+ n):null},re=(e,r,t,n)=>lt(e)?ne(e,t):st(e)?$(e)?ne(e,t):(n.push(new j(e.name,e.file)),
62
+ null):(n.push(new P(r.file)),null),ne=(e,r)=>{let t=it(e,r);return t&&pt(t)?t:null};import{InvalidServicePropertyError as ft,isModelDeclaration as yt,getLinkedVariableList as xt,
63
+ getModelMembers as gt,getObjectMembers as St,getPropertyNumber as It,getServiceListener as Mt,
64
+ getReferenceType as ht}from"@ez4/common/library";import{isModelProperty as vt,isTypeObject as Dt,
65
+ isTypeReference as Et}from"@ez4/reflection";import{IncompleteTypeError as ct,IncorrectTypeError as dt,InvalidTypeError as Tt}from"@ez4/common/library";
66
+ var O=class extends ct{constructor(r,t){super("Incomplete table stream",r,t)}},R=class extends Tt{constructor(r){
67
+ super("Invalid table stream type",void 0,"Database.Stream",r)}},k=class extends dt{constructor(t,n){
68
+ super("Incorrect table stream type",t,"Database.Stream",n);this.streamType=t}};import{IncompleteTypeError as ut}from"@ez4/common/library";var C=class extends ut{constructor(r,t){
69
+ super("Incomplete stream handler",r,t)}};var oe=(e,r,t)=>{if(!V(e))return null;let n={},a=new Set(["name","file","change"]);
56
70
  return e.description&&(n.description=e.description),(n.name=e.name)&&a.delete("n\
57
71
  ame"),(n.file=e.file)&&a.delete("file"),e.parameters&&a.delete("change"),a.size===
58
- 0&&Le(n)?n:(r.push(new O([...a],e.file)),null)},Le=e=>!!e.name&&!!e.file;var ae=(e,t,r,n)=>{if(!mr(e))return te(e,t,r,n);let a=ir(e,r);return a?te(a,t,r,
59
- n):null},cr=e=>!!e.handler,te=(e,t,r,n)=>lr(e)?ne(e,t,ar(e),r,n):rr(e)?B(e)?ne(e,
60
- t,nr(e),r,n):(n.push(new k(e.name,e.file)),null):(n.push(new w(t.file)),null),ne=(e,t,r,n,a)=>{
61
- let o={},s=new Set(["handler"]);for(let i of r)if(!(!pr(i)||i.inherited))switch(i.
62
- name){default:a.push(new er(t.name,i.name,e.file));break;case"handler":o.handler=
63
- re(i.value,n,a);break;case"listener":o.listener=sr(i.value,a);break;case"memory":case"\
64
- timeout":case"retention":o[i.name]=or(i);break;case"variables":o.variables=tr(i,
65
- a);break}return cr(o)?o:(a.push(new j([...s],e.file)),null)};var ie=(e,t,r,n)=>{if(!gr(e))return oe(e,t,r,n);let a=Tr(e,r);return a?oe(a,t,r,
66
- n):null},Mr=e=>!!e.name&&!!e.schema&&!!e.indexes,oe=(e,t,r,n)=>$(e)?se(e,t,dr(e),
67
- r,n):xr(e)?se(e,t,br(e),r,n):null,se=(e,t,r,n,a)=>{let o={},s=new Set(["name","s\
68
- chema","indexes"]);for(let p of r)if(!(!yr(p)||p.inherited))switch(p.name){default:
69
- a.push(new ur(t.name,p.name,e.file));break;case"name":(o.name=fr(p))&&s.delete(p.
70
- name);break;case"schema":(o.schema=ee(p.value,e,n,a))&&s.delete(p.name);break;case"\
71
- indexes":(o.indexes=Y(p.value,e,n,a))&&s.delete(p.name);break;case"relations":o.
72
- relations=Q(p.value,e,n,a);break;case"stream":o.stream=ae(p.value,t,n,a);break}if(!Mr(
73
- o))return a.push(new c([...s],e.file)),null;let i=Sr(e,o.indexes,o.schema);return i.
74
- length?(a.push(...i),null):o},Sr=(e,t,r)=>{let n=r.properties,a=[];for(let{name:o,
75
- columns:s}of t)s.some(p=>!n[p])&&a.push(new v(o,e.file));return a};import{InvalidServicePropertyError as Ir,getModelMembers as hr,getObjectMembers as Dr,
76
- getPropertyString as C,getReferenceType as vr}from"@ez4/common/library";import{isModelProperty as Er,
77
- isTypeObject as Pr,isTypeReference as jr}from"@ez4/reflection";var me=(e,t,r,n)=>{if(!jr(e))return pe(e,t,n);let a=vr(e,r);return a?pe(a,t,n):null},
78
- wr=e=>!!e.name&&!!e.transaction,pe=(e,t,r)=>F(e)?le(e,t,hr(e),r):Pr(e)?le(e,t,Dr(
79
- e),r):null,le=(e,t,r,n)=>{let a={},o=new Set(["name","transaction","parameters"]);
80
- for(let s of r)if(!(!Er(s)||s.inherited))switch(s.name){default:n.push(new Ir(t.
81
- name,s.name,e.file));break;case"name":(a.name=C(s))&&o.delete(s.name);break;case"\
82
- transaction":(a.transaction=kr(s))&&o.delete(s.name);break;case"parameters":(a.parameters=
83
- Or(s))&&o.delete(s.name);break}return wr(a)?a:(n.push(new c([...o],e.file)),null)},
84
- kr=e=>{let t=C(e);switch(t){case"interactive":case"static":return t}return null},
85
- Or=e=>{let t=C(e);switch(t){case"both":case"index":return t}return null};var ue=e=>{let t={},r=[];for(let n in e){let a=e[n];if(!S(a)||zr(a))continue;let o={
86
- type:z,extras:{}},s=new Set(["engine","tables"]),i=a.file;o.name=a.name;for(let l of Fr(
87
- a))if(!(!$r(l)||l.inherited))switch(l.name){default:r.push(new Rr(o.name,l.name,
88
- i));break;case"engine":(o.engine=me(l.value,a,e,r))&&s.delete(l.name);break;case"\
89
- tables":(o.tables=Vr(l,a,e,r))&&s.delete(l.name);break;case"variables":o.variables=
90
- Nr(l,r);break;case"services":o.services=Cr(l,e,r);break}if(!qr(o)){r.push(new M(
91
- [...s],i));continue}let p=Ur(a,o.tables);if(p.length){r.push(...p);continue}if(t[a.
92
- name]){r.push(new Ar(a.name,i));continue}t[a.name]=o}return{services:t,errors:r}},
93
- qr=e=>!!e.name&&!!e.tables&&!!e.extras,Vr=(e,t,r,n)=>{let a=Hr(e)??[],o=[];for(let s of a){
94
- let i=ie(s,t,r,n);i&&o.push(i)}return o},Ur=(e,t)=>{let r=_r(t),n=[];for(let{relations:a,
95
- schema:o,indexes:s}of t){if(!a)continue;let i=o.properties;for(let p of a){let{sourceTable:l,
96
- sourceColumn:u,targetColumn:A,targetAlias:N}=p;i[A]||n.push(new d(A,e.file)),i[N]&&
97
- n.push(new x(N,e.file));let R=r[l]?.schema.properties;R||n.push(new y(l,e.file)),
98
- R&&!R[u]&&n.push(new d(u,e.file));let fe=r[l]?.indexes??[];p.sourceIndex=ce(fe,u),
99
- p.targetIndex=ce(s,A)}}return n},ce=(e,t)=>e.find(({name:r})=>r===t)?.type,_r=e=>e.
100
- reduce((t,r)=>({...t,[r.name]:r}),{});var de=e=>S(e)?e.name:null;var be=!1,In=()=>{be||(Br(),Gr(),Jr("@ez4/database",{"metadata:getServices":ue,"\
101
- metadata:getLinkedService":de}),be=!0)};export{O as IncompleteHandlerError,M as IncompleteServiceError,j as IncompleteStreamError,
102
- c as IncompleteTableError,h as IncorrectIndexesTypeError,f as IncorrectRelationsTypeError,
103
- P as IncorrectSchemaTypeError,k as IncorrectStreamTypeError,v as InvalidIndexReferenceError,
104
- D as InvalidIndexTypeError,I as InvalidIndexesTypeError,x as InvalidRelationAliasError,
105
- d as InvalidRelationColumnError,y as InvalidRelationTableError,T as InvalidRelationTargetError,
106
- b as InvalidRelationsTypeError,E as InvalidSchemaTypeError,w as InvalidStreamTypeError,
107
- z as ServiceType,ue as getDatabaseServices,ie as getDatabaseTable,ee as getTableSchema,
108
- Yr as isDatabaseService,In as registerTriggers};
72
+ 0&&bt(n)?n:(t.push(new C([...a],e.file)),null)},bt=e=>!!e.name&&!!e.file;var pe=(e,r,t,n)=>{if(!Et(e))return se(e,r,t,n);let a=ht(e,t);return a?se(a,r,t,
73
+ n):null},Pt=e=>!!e.handler,se=(e,r,t,n)=>Dt(e)?ie(e,r,St(e),t,n):yt(e)?G(e)?ie(e,
74
+ r,gt(e),t,n):(n.push(new k(e.name,e.file)),null):(n.push(new R(r.file)),null),ie=(e,r,t,n,a)=>{
75
+ let o={},s=new Set(["handler"]);for(let i of t)if(!(!vt(i)||i.inherited))switch(i.
76
+ name){default:a.push(new ft(r.name,i.name,e.file));break;case"handler":o.handler=
77
+ oe(i.value,n,a);break;case"listener":o.listener=Mt(i.value,a);break;case"memory":case"\
78
+ logRetention":case"timeout":o[i.name]=It(i);break;case"variables":o.variables=xt(
79
+ i,a);break}return Pt(o)?o:(a.push(new O([...s],e.file)),null)};var ce=(e,r,t,n)=>{if(!Ut(e))return le(e,r,t,n);let a=Ct(e,t);return a?le(a,r,t,
80
+ n):null},zt=e=>!!e.name&&!!e.schema&&!!e.indexes,le=(e,r,t,n)=>q(e)?me(e,r,Ot(e),
81
+ t,n):wt(e)?me(e,r,Rt(e),t,n):null,me=(e,r,t,n,a)=>{let o={},s=new Set(["name","s\
82
+ chema","indexes"]);for(let p of t)if(!(!At(p)||p.inherited))switch(p.name){default:
83
+ a.push(new jt(r.name,p.name,e.file));break;case"name":(o.name=kt(p))&&s.delete(p.
84
+ name);break;case"schema":(o.schema=ae(p.value,e,n,a))&&s.delete(p.name);break;case"\
85
+ indexes":(o.indexes=te(p.value,e,n,a))&&s.delete(p.name);break;case"relations":o.
86
+ relations=Z(p.value,e,n,a);break;case"stream":o.stream=pe(p.value,r,n,a);break}if(!zt(
87
+ o))return a.push(new c([...s],e.file)),null;let i=Nt(e,o.indexes,o.schema);return i.
88
+ length?(a.push(...i),null):o},Nt=(e,r,t)=>{let n=t.properties,a=[];for(let{name:o,
89
+ columns:s}of r)s.some(p=>!n[p])&&a.push(new E(o,e.file));return a};var Te=e=>{let r={},t=[];for(let n in e){let a=e[n];if(!M(a)||Vt(a))continue;let o={
90
+ type:U,extras:{}},s=new Set(["engine","tables"]),i=a.file;o.name=a.name;for(let l of Gt(
91
+ a))if(!(!Bt(l)||l.inherited))switch(l.name){default:t.push(new qt(o.name,l.name,
92
+ i));break;case"client":break;case"engine":(o.engine=K(l.value,a,e,t))&&s.delete(
93
+ l.name);break;case"tables":(o.tables=Jt(l,a,e,t))&&s.delete(l.name);break;case"v\
94
+ ariables":o.variables=Qt(l,t);break;case"services":o.services=Ft(l,e,t);break}if(!_t(
95
+ o)){t.push(new I([...s],i));continue}let p=Kt(a,o.tables);if(p.length){t.push(...p);
96
+ continue}if(r[a.name]){t.push(new Ht(a.name,i));continue}r[a.name]=o}return{services:r,
97
+ errors:t}},_t=e=>!!e.name&&!!e.tables&&!!e.extras,Jt=(e,r,t,n)=>{let a=$t(e)??[],
98
+ o=[];for(let s of a){let i=ce(s,r,t,n);i&&o.push(i)}return o},Kt=(e,r)=>{let t=Wt(
99
+ r),n=[];for(let{relations:a,schema:o,indexes:s}of r){if(!a)continue;let i=o.properties;
100
+ for(let p of a){let{sourceTable:l,sourceColumn:d,targetColumn:A,targetAlias:z}=p;
101
+ i[A]||n.push(new T(A,e.file)),i[z]&&n.push(new g(z,e.file));let w=t[l]?.schema.properties;
102
+ w||n.push(new x(l,e.file)),w&&!w[d]&&n.push(new T(d,e.file));let fe=t[l]?.indexes??
103
+ [];p.sourceIndex=de(fe,d),p.targetIndex=de(s,A)}}return n},de=(e,r)=>e.find(({name:t})=>t===
104
+ r)?.type,Wt=e=>e.reduce((r,t)=>({...r,[t.name]:t}),{});var ue=e=>M(e)?e.name:null;var be=!1,Xn=()=>{be||(Xt(),Yt(),Zt("@ez4/database",{"metadata:getServices":Te,"\
105
+ metadata:getLinkedService":ue}),be=!0)};export{C as IncompleteHandlerError,I as IncompleteServiceError,O as IncompleteStreamError,
106
+ c as IncompleteTableError,v as IncorrectIndexesTypeError,f as IncorrectRelationsTypeError,
107
+ j as IncorrectSchemaTypeError,k as IncorrectStreamTypeError,E as InvalidIndexReferenceError,
108
+ D as InvalidIndexTypeError,h as InvalidIndexesTypeError,g as InvalidRelationAliasError,
109
+ T as InvalidRelationColumnError,x as InvalidRelationTableError,y as InvalidRelationTargetError,
110
+ b as InvalidRelationsTypeError,P as InvalidSchemaTypeError,R as InvalidStreamTypeError,
111
+ U as ServiceType,Te as getDatabaseServices,ce as getDatabaseTable,ae as getTableSchema,
112
+ nr as isDatabaseService,Xn as registerTriggers};
109
113
  //# sourceMappingURL=library.mjs.map
package/dist/main.cjs CHANGED
@@ -1,7 +1,9 @@
1
- "use strict";var s=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var I=(r,a)=>{for(var e in a)s(r,e,{get:a[e],enumerable:!0})},b=(r,a,e,n)=>{if(a&&
2
- typeof a=="object"||typeof a=="function")for(let t of T(a))!y.call(r,t)&&t!==e&&
3
- s(r,t,{get:()=>a[t],enumerable:!(n=c(a,t))||n.enumerable});return r};var l=r=>b(s({},"__esModule",{value:!0}),r);var S={};I(S,{Database:()=>m,Index:()=>p,Order:()=>i,ParametersType:()=>x,StreamType:()=>d,
4
- TransactionType:()=>o});module.exports=l(S);var d=(n=>(n.Insert="insert",n.Update="update",n.Delete="delete",n))(d||{});var o=(e=>(e.Interactive="interactive",e.Static="static",e))(o||{}),x=(e=>(e.NameAndIndex=
5
- "both",e.OnlyIndex="index",e))(x||{});var m;(r=>{})(m||={});var p=(t=>(t.Primary="primary",t.Secondary="secondary",t.Unique="unique",t.TTL="\
6
- ttl",t))(p||{});var i=(e=>(e.Asc="asc",e.Desc="desc",e))(i||{});0&&(module.exports={Database,Index,Order,ParametersType,StreamType,TransactionType});
1
+ "use strict";var s=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var u=(a,n)=>{for(var e in n)s(a,e,{get:n[e],enumerable:!0})},g=(a,n,e,r)=>{if(n&&
2
+ typeof n=="object"||typeof n=="function")for(let t of b(n))!I.call(a,t)&&t!==e&&
3
+ s(a,t,{get:()=>n[t],enumerable:!(r=l(n,t))||r.enumerable});return a};var f=a=>g(s({},"__esModule",{value:!0}),a);var S={};u(S,{Database:()=>T,Index:()=>y,InsensitiveMode:()=>p,Order:()=>m,OrderMode:()=>x,
4
+ PaginationMode:()=>d,ParametersMode:()=>o,StreamType:()=>c,TransactionMode:()=>i});
5
+ module.exports=f(S);var c=(r=>(r.Insert="insert",r.Update="update",r.Delete="delete",r))(c||{});var o=(e=>(e.NameAndIndex="both",e.OnlyIndex="index",e))(o||{});var i=(e=>(e.Interactive="interactive",e.Static="static",e))(i||{});var p=(e=>(e.Unsupported="unsupported",e.Enabled="enabled",e))(p||{});var d=(e=>(e.Cursor="cursor",e.Offset="offset",e))(d||{});var m=(e=>(e.Asc="asc",e.Desc="desc",e))(m||{}),x=(e=>(e.IndexColumns="index",e.
6
+ AnyColumns="any",e))(x||{});var T;(a=>{})(T||={});var y=(t=>(t.Primary="primary",t.Secondary="secondary",t.Unique="unique",t.TTL="\
7
+ ttl",t))(y||{});0&&(module.exports={Database,Index,InsensitiveMode,Order,OrderMode,PaginationMode,
8
+ ParametersMode,StreamType,TransactionMode});
7
9
  //# sourceMappingURL=main.cjs.map
package/dist/main.d.ts CHANGED
@@ -1,11 +1,13 @@
1
1
  export * from './services/streams.js';
2
2
  export { Client } from './services/client.js';
3
3
  export { RelationMetadata } from './services/relations.js';
4
- export { TransactionType, ParametersType } from './services/engine.js';
5
- export { Transaction } from './services/transaction.js';
6
- export { Parameters } from './services/parameters.js';
4
+ export { TableMetadata, Table } from './services/table.js';
5
+ export { ParametersMode, ParametersUtils } from './services/parameters.js';
6
+ export { TransactionMode, TransactionUtils } from './services/transaction.js';
7
+ export { InsensitiveMode, InsensitiveUtils } from './services/insensitive.js';
8
+ export { PaginationMode, PaginationUtils } from './services/pagination.js';
9
+ export { Order, OrderMode, OrderUtils } from './services/order.js';
10
+ export { EngineUtils } from './services/engine.js';
7
11
  export { Database } from './services/database.js';
8
12
  export { Index } from './services/indexes.js';
9
- export { Table } from './services/table.js';
10
13
  export { Query } from './services/query.js';
11
- export { Order } from './services/order.js';
package/dist/main.mjs CHANGED
@@ -1,4 +1,5 @@
1
- var m=(a=>(a.Insert="insert",a.Update="update",a.Delete="delete",a))(m||{});var r=(e=>(e.Interactive="interactive",e.Static="static",e))(r||{}),n=(e=>(e.NameAndIndex=
2
- "both",e.OnlyIndex="index",e))(n||{});var s;(p=>{})(s||={});var o=(t=>(t.Primary="primary",t.Secondary="secondary",t.Unique="unique",t.TTL="\
3
- ttl",t))(o||{});var x=(e=>(e.Asc="asc",e.Desc="desc",e))(x||{});export{s as Database,o as Index,x as Order,n as ParametersType,m as StreamType,r as TransactionType};
1
+ var x=(n=>(n.Insert="insert",n.Update="update",n.Delete="delete",n))(x||{});var a=(e=>(e.NameAndIndex="both",e.OnlyIndex="index",e))(a||{});var r=(e=>(e.Interactive="interactive",e.Static="static",e))(r||{});var s=(e=>(e.Unsupported="unsupported",e.Enabled="enabled",e))(s||{});var o=(e=>(e.Cursor="cursor",e.Offset="offset",e))(o||{});var i=(e=>(e.Asc="asc",e.Desc="desc",e))(i||{}),p=(e=>(e.IndexColumns="index",e.
2
+ AnyColumns="any",e))(p||{});var d;(T=>{})(d||={});var m=(t=>(t.Primary="primary",t.Secondary="secondary",t.Unique="unique",t.TTL="\
3
+ ttl",t))(m||{});export{d as Database,m as Index,s as InsensitiveMode,i as Order,p as OrderMode,o as PaginationMode,
4
+ a as ParametersMode,x as StreamType,r as TransactionMode};
4
5
  //# sourceMappingURL=main.mjs.map