@ez4/gateway 0.15.0 → 0.17.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,152 +1,154 @@
1
- "use strict";var de=Object.defineProperty;var Rt=Object.getOwnPropertyDescriptor;var Ot=Object.getOwnPropertyNames;var Et=Object.prototype.hasOwnProperty;var Pt=(e,r)=>{for(var t in r)de(e,t,{get:r[t],enumerable:!0})},zt=(e,r,t,n)=>{if(r&&
2
- typeof r=="object"||typeof r=="function")for(let o of Ot(r))!Et.call(e,o)&&o!==t&&
3
- de(e,o,{get:()=>r[o],enumerable:!(n=Rt(r,o))||n.enumerable});return e};var wt=e=>zt(de({},"__esModule",{value:!0}),e);var Wt={};Pt(Wt,{IncompleteAuthorizerError:()=>P,IncompleteCorsError:()=>W,IncompleteHandlerError:()=>K,
4
- IncompleteRouteError:()=>E,IncompleteServiceError:()=>j,IncorrectBodyTypeError:()=>B,
5
- IncorrectCorsTypeError:()=>Z,IncorrectDefaultsTypeError:()=>O,IncorrectHeadersTypeError:()=>q,
6
- IncorrectIdentityTypeError:()=>U,IncorrectParameterTypeError:()=>J,IncorrectQueryTypeError:()=>Y,
7
- IncorrectRequestTypeError:()=>V,IncorrectResponseTypeError:()=>w,InvalidBodyTypeError:()=>D,
8
- InvalidCorsTypeError:()=>X,InvalidDefaultsTypeError:()=>R,InvalidHeadersTypeError:()=>k,
9
- InvalidIdentityTypeError:()=>F,InvalidParameterTypeError:()=>Q,InvalidQueryTypeError:()=>G,
10
- InvalidRequestTypeError:()=>N,InvalidResponseTypeError:()=>z,ServiceType:()=>_,getHttpAuthRequest:()=>Ae,
11
- getHttpAuthResponse:()=>he,getHttpAuthorizer:()=>Ie,getHttpCors:()=>Oe,getHttpHandler:()=>je,
12
- getHttpHandlerRequest:()=>ve,getHttpHandlerResponse:()=>Me,getHttpHeaders:()=>C,
13
- getHttpIdentity:()=>M,getHttpParameters:()=>Se,getHttpQuery:()=>xe,getHttpRequestBody:()=>ye,
14
- getHttpResponseBody:()=>Te,getHttpRoute:()=>Re,getHttpServices:()=>Ee,isHttpService:()=>kt,
15
- registerTriggers:()=>Kt});module.exports=wt(Wt);var vt=require("@ez4/common/library"),It=require("@ez4/schema/library"),jt=require("@ez4/project/library");var u=require("@ez4/common/library"),xt=require("@ez4/reflection");var _="@ez4/http",kt=e=>e.type===_;var ze=require("@ez4/common/library"),j=class extends ze.IncompleteTypeError{constructor(r,t){
16
- super("Incomplete service",r,t)}};var a=require("@ez4/common/library"),b=require("@ez4/reflection"),Ke=require("@ez4/utils");var c=require("@ez4/common/library"),H=require("@ez4/reflection"),qt=new Set(["A\
17
- NY","GET","POST","PUT","PATCH","DELETE","OPTIONS"]),we=e=>{let[r]=e.split(" ",2);
18
- return qt.has(r)},ke=e=>(0,c.isClassDeclaration)(e)&&(0,c.hasHeritageType)(e,"Ht\
19
- tp.Service"),qe=e=>(0,c.isModelDeclaration)(e)&&(0,c.hasHeritageType)(e,"Http.Ro\
20
- ute");var Ce=e=>(0,c.hasHeritageType)(e,"Http.Defaults"),De=e=>(0,c.hasHeritageType)(e,
21
- "Http.Headers"),Be=e=>(0,c.hasHeritageType)(e,"Http.Identity"),Fe=e=>(0,c.hasHeritageType)(
22
- e,"Http.QueryStrings"),Ue=e=>(0,c.hasHeritageType)(e,"Http.PathParameters"),Ne=e=>(0,c.hasHeritageType)(
23
- e,"Http.JsonBody"),Ve=e=>(0,c.isModelDeclaration)(e)&&(0,c.hasHeritageType)(e,"H\
24
- ttp.Cors"),Qe=e=>(0,H.isTypeCallback)(e)||(0,H.isTypeFunction)(e),Je=e=>(0,H.isTypeCallback)(
25
- e)||(0,H.isTypeFunction)(e);var We=(e,r,t,n)=>{if(!(0,b.isTypeReference)(e))return Ge(e,r,n);let o=t[e.path];
26
- return o?Ge(o,r,n):null},Ge=(e,r,t)=>(0,b.isTypeObject)(e)?Ye((0,a.getObjectMembers)(
27
- e),t):(0,a.isModelDeclaration)(e)?Ce(e)?Ye((0,a.getModelMembers)(e),t):(t.push(new O(
28
- e.name,r.file)),null):(t.push(new R(r.file)),null),Ye=(e,r)=>{let t={};for(let n of e)
29
- if(!(!(0,b.isModelProperty)(n)||n.inherited))switch(n.name){case"timeout":case"m\
30
- emory":{let o=(0,a.getPropertyNumber)(n);(0,Ke.isAnyNumber)(o)&&(t[n.name]=o);break}case"\
31
- listener":{let o=(0,a.getServiceListener)(n.value,r);o&&(t.listener=o);break}}return t};var A=require("@ez4/reflection"),ue=require("@ez4/utils"),l=require("@ez4/common/library");var Xe=require("@ez4/common/library"),E=class extends Xe.IncompleteTypeError{constructor(r,t){
32
- super("Incomplete service route",r,t)}};var Ze=require("@ez4/common/library"),P=class extends Ze.IncompleteTypeError{constructor(r,t){
33
- super("Incomplete route authorizer",r,t)}};var d=require("@ez4/common/library"),S=require("@ez4/reflection"),be=require("@ez4/utils");var $=require("@ez4/common/library"),z=class extends $.InvalidTypeError{constructor(t,n){
34
- super("Invalid route response",void 0,t,n);this.baseType=t}},w=class extends $.IncorrectTypeError{constructor(t,n,o){
35
- super("Incorrect route response",t,n,o);this.responseType=t;this.baseType=n}};var ee=require("@ez4/reflection"),te=require("@ez4/schema/library"),Le=require("@ez4/common/library");var L=require("@ez4/common/library"),k=class extends L.InvalidTypeError{constructor(r){
36
- super("Invalid headers",void 0,"Http.Headers",r)}},q=class extends L.IncorrectTypeError{constructor(t,n){
37
- super("Incorrect headers",t,"Http.Headers",n);this.headersType=t}};var C=(e,r,t,n)=>{if(!(0,ee.isTypeReference)(e))return _e(e,r,t,n);let o=t[e.path];
38
- return o?_e(o,r,t,n):null},_e=(e,r,t,n)=>(0,ee.isTypeObject)(e)?$e(e,t):(0,Le.isModelDeclaration)(
39
- e)?De(e)?$e(e,t):(n.push(new q(e.name,r.file)),null):(n.push(new k(r.file)),null),
40
- $e=(e,r)=>{let t=(0,te.getObjectSchema)(e,r);return t&&(0,te.isObjectSchema)(t)?
41
- t:null};var tt=require("@ez4/common/library"),y=require("@ez4/schema/library"),f=require("@ez4/reflection");var re=require("@ez4/common/library"),D=class extends re.InvalidTypeError{constructor(r){
42
- super("Invalid body",void 0,"Http.JsonBody",r)}},B=class extends re.IncorrectTypeError{constructor(t,n){
43
- super("Incorrect body",t,"Http.JsonBody",n);this.bodyType=t}};var ye=(e,r,t,n)=>ge(e,r,t,(o,p)=>He(o,p,t,n)),Te=(e,r,t,n)=>ge(e,r,t,(o,p)=>rt(
44
- o)??He(o,p,t,n)),ge=(e,r,t,n)=>{if((0,f.isTypeUndefined)(e))return null;if(!(0,f.isTypeReference)(
45
- e))return n(e,r);let o=t[e.path];return o?n(o,r):null},rt=e=>(0,f.isTypeScalar)(
46
- e)?(0,y.getScalarSchema)(e):null,He=(e,r,t,n)=>(0,f.isTypeUnion)(e)?Ct(e.elements,
47
- r,t,(o,p)=>rt(o)??He(o,p,t,n)):(0,f.isTypeObject)(e)?et(e,t):(0,tt.isModelDeclaration)(
48
- e)?Ne(e)?et(e,t):(n.push(new B(e.name,e.file)),null):(n.push(new D(r.file)),null),
49
- Ct=(e,r,t,n)=>{let o=[];for(let p of e){let s=ge(p,r,t,n);s&&o.push(s)}return o.
50
- length?(0,y.createUnionSchema)({elements:o}):null},et=(e,r)=>{let t=(0,y.getObjectSchema)(
51
- e,r);return t&&(0,y.isObjectSchema)(t)?t:null};var T=require("@ez4/reflection"),h=require("@ez4/schema/library"),pt=require("@ez4/common/library");var oe=require("@ez4/common/library"),F=class extends oe.InvalidTypeError{constructor(r){
52
- super("Invalid identity",void 0,"Http.Identity",r)}},U=class extends oe.IncorrectTypeError{constructor(t,n){
53
- super("Incorrect identity",t,"Http.Identity",n);this.identityType=t}};var M=(e,r,t,n)=>{if((0,T.isTypeUndefined)(e))return null;if(!(0,T.isTypeReference)(
54
- e))return ot(e,r,t,n);let o=t[e.path];return o?ot(o,r,t,n):null},ot=(e,r,t,n)=>{
55
- if((0,T.isTypeUnion)(e))return Dt(e.elements,r,t,n);if((0,T.isTypeObject)(e))return nt(
56
- e,t);if(!(0,pt.isModelDeclaration)(e))return n.push(new F(r.file)),null;if(!Be(e))
57
- return n.push(new U(e.name,r.file)),null;let o=nt(e,t);return o&&(o.definitions=
58
- {...o.definitions,extensible:!0}),o},Dt=(e,r,t,n)=>{let o=[];for(let p of e){let s=M(
59
- p,r,t,n);s&&o.push(s)}return o.length>1?(0,h.createUnionSchema)({elements:o}):o[0]},
60
- nt=(e,r)=>{let t=(0,h.getObjectSchema)(e,r);return t&&(0,h.isObjectSchema)(t)?t:
61
- null};var he=(e,r,t,n)=>{let o=ct(e,r,t,n,"Http.AuthResponse");return o&&Bt(o)?o:null},
62
- Me=(e,r,t,n)=>{let o=ct(e,r,t,n,"Http.Response");return o&&Ft(o)?o:null},ct=(e,r,t,n,o)=>{
63
- if(!(0,S.isTypeReference)(e))return st(e,r,t,n,o);let p=t[e.path];return p?st(p,
64
- r,t,n,o):null},Bt=e=>!!e.identity,Ft=e=>(0,be.isAnyNumber)(e.status),st=(e,r,t,n,o)=>(0,S.isTypeObject)(
65
- e)?it(e,(0,d.getObjectMembers)(e),t,n):(0,d.isModelDeclaration)(e)?(0,d.hasHeritageType)(
66
- e,o)?it(e,(0,d.getModelMembers)(e),t,n):(n.push(new w(e.name,o,e.file)),null):(n.
67
- push(new z(o,r.file)),null),it=(e,r,t,n)=>{let o={};for(let p of r)if(!(!(0,S.isModelProperty)(
68
- p)||p.inherited))switch(p.name){case"status":{let s=(0,d.getPropertyNumber)(p);(0,be.isAnyNumber)(
69
- s)&&(o[p.name]=s);break}case"headers":{o.headers=C(p.value,e,t,n),o.headers&&p.description&&
70
- (o.headers.description=p.description);break}case"identity":{o.identity=M(p.value,
71
- e,t,n),o.identity&&p.description&&(o.identity.description=p.description);break}case"\
72
- body":{o.body=Te(p.value,e,t,n),o.body&&p.description&&(o.body.description=p.description);
73
- break}}return o};var g=require("@ez4/common/library"),x=require("@ez4/reflection");var ne=require("@ez4/common/library"),N=class extends ne.InvalidTypeError{constructor(t,n){
74
- super("Invalid route request",void 0,t,n);this.baseType=t}},V=class extends ne.IncorrectTypeError{constructor(t,n,o){
75
- super("Incorrect route request",t,n,o);this.requestType=t;this.baseType=n}};var se=require("@ez4/reflection"),ie=require("@ez4/schema/library"),ut=require("@ez4/common/library");var pe=require("@ez4/common/library"),Q=class extends pe.InvalidTypeError{constructor(r){
76
- super("Invalid request parameters",void 0,"Http.PathParameters",r)}},J=class extends pe.IncorrectTypeError{constructor(t,n){
77
- super("Incorrect request parameters",t,"Http.PathParameters",n);this.parametersType=
78
- t}};var Se=(e,r,t,n)=>{if(!(0,se.isTypeReference)(e))return lt(e,r,t,n);let o=t[e.path];
79
- return o?lt(o,r,t,n):null},lt=(e,r,t,n)=>(0,se.isTypeObject)(e)?mt(e,t):(0,ut.isModelDeclaration)(
80
- e)?Ue(e)?mt(e,t):(n.push(new J(e.name,e.file)),null):(n.push(new Q(r.file)),null),
81
- mt=(e,r)=>{let t=(0,ie.getObjectSchema)(e,r);return t&&(0,ie.isObjectSchema)(t)?
82
- t:null};var le=require("@ez4/reflection"),me=require("@ez4/schema/library"),dt=require("@ez4/common/library");var ce=require("@ez4/common/library"),G=class extends ce.InvalidTypeError{constructor(r){
83
- super("Invalid request query strings",void 0,"Http.QueryStrings",r)}},Y=class extends ce.IncorrectTypeError{constructor(t,n){
84
- super("Incorrect request query strings",t,"Http.QueryStrings",n);this.queryType=
85
- t}};var xe=(e,r,t,n)=>{if(!(0,le.isTypeReference)(e))return at(e,r,t,n);let o=t[e.path];
86
- return o?at(o,r,t,n):null},at=(e,r,t,n)=>(0,le.isTypeObject)(e)?ft(e,t):(0,dt.isModelDeclaration)(
87
- e)?Fe(e)?ft(e,t):(n.push(new Y(e.name,r.file)),null):(n.push(new G(r.file)),null),
88
- ft=(e,r)=>{let t=(0,me.getObjectSchema)(e,r);return t&&(0,me.isObjectSchema)(t)?
89
- t:null};var Ae=(e,r,t,n)=>gt(e,r,t,n,"Http.AuthRequest"),ve=(e,r,t,n)=>gt(e,r,t,n,"Http.\
90
- Request"),gt=(e,r,t,n,o)=>{if(!(0,x.isTypeReference)(e))return yt(e,r,t,n,o);let p=t[e.
91
- path];return p?yt(p,r,t,n,o):null},yt=(e,r,t,n,o)=>(0,x.isTypeObject)(e)?Tt(e,(0,g.getObjectMembers)(
92
- e),t,n):(0,g.isModelDeclaration)(e)?(0,g.hasHeritageType)(e,o)?Tt(e,(0,g.getModelMembers)(
93
- e),t,n):(n.push(new V(e.name,o,e.file)),null):(n.push(new N(o,r.file)),null),Tt=(e,r,t,n)=>{
94
- let o={};for(let p of r)if(!(!(0,x.isModelProperty)(p)||p.inherited))switch(p.name){case"\
95
- headers":{o.headers=C(p.value,e,t,n),o.headers&&p.description&&(o.headers.description=
96
- p.description);break}case"identity":{o.identity=M(p.value,e,t,n),o.identity&&p.description&&
97
- (o.identity.description=p.description);break}case"query":{o.query=xe(p.value,e,t,
98
- n),o.query&&p.description&&(o.query.description=p.description);break}case"parame\
99
- ters":{o.parameters=Se(p.value,e,t,n),o.parameters&&p.description&&(o.parameters.
100
- description=p.description);break}case"body":{o.body=ye(p.value,e,t,n),o.body&&p.
101
- description&&(o.body.description=p.description);break}}return o};var Ie=(e,r,t)=>{if(!Qe(e))return null;let n={},o=new Set(["name","file"]);if(e.
102
- description&&(n.description=e.description),(n.name=e.name)&&o.delete("name"),(n.
103
- file=e.file)&&o.delete("file"),e.parameters){let[{value:p}]=e.parameters;n.request=
104
- Ae(p,e,r,t)}return e.return&&(n.response=he(e.return,e,r,t)),Ut(n)?n:(t.push(new P(
105
- [...o],e.file)),null)},Ut=e=>!!e.name&&!!e.file;var Ht=require("@ez4/common/library"),K=class extends Ht.IncompleteTypeError{constructor(r,t){
106
- super("Incomplete route handler",r,t)}};var je=(e,r,t)=>{if(!Je(e))return null;let n={},o=new Set(["name","file","respon\
107
- se"]);if(e.description&&(n.description=e.description),(n.name=e.name)&&o.delete(
108
- "name"),(n.file=e.file)&&o.delete("file"),e.parameters){let[{value:p}]=e.parameters;
109
- n.request=ve(p,e,r,t)}if(e.return){let p=Me(e.return,e,r,t);p&&(n.response=p,o.delete(
110
- "response"))}return Nt(n)?n:(t.push(new K([...o],e.file)),null)},Nt=e=>!!e.name&&
111
- !!e.file&&!!e.response;var Re=(e,r,t)=>{if(!(0,A.isTypeReference)(e))return bt(e,r,t);let n=r[e.path];return n?
112
- bt(n,r,t):null},Vt=e=>!!e.path&&!!e.handler,bt=(e,r,t)=>qe(e)?ht(e,(0,l.getModelMembers)(
113
- e),r,t):(0,A.isTypeObject)(e)?ht(e,(0,l.getObjectMembers)(e),r,t):null,ht=(e,r,t,n)=>{
114
- let o={},p=new Set(["path","handler"]);for(let s of r)if(!(!(0,A.isModelProperty)(
115
- s)||s.inherited))switch(s.name){case"path":{let i=(0,l.getPropertyString)(s);i&&
116
- we(i)&&(p.delete(s.name),o.path=i);break}case"timeout":case"memory":{let i=(0,l.getPropertyNumber)(
117
- s);(0,ue.isAnyNumber)(i)&&(o[s.name]=i);break}case"cors":{let i=(0,l.getPropertyBoolean)(
118
- s);(0,ue.isAnyBoolean)(i)&&(o[s.name]=i);break}case"authorizer":{let i=Ie(s.value,
119
- t,n);i&&(o.authorizer=i);break}case"listener":{let i=(0,l.getServiceListener)(s.
120
- value,n);i&&(o.listener=i);break}case"handler":(o.handler=je(s.value,t,n))&&p.delete(
121
- s.name);break;case"variables":o.variables=(0,l.getLinkedVariableList)(s,n);break}
122
- return Vt(o)?o:(n.push(new E([...p],e.file)),null)};var m=require("@ez4/common/library"),I=require("@ez4/reflection"),ae=require("@ez4/utils");var v=require("@ez4/common/library"),W=class extends v.IncompleteTypeError{constructor(r,t){
123
- super("Incomplete HTTP CORS",r,t)}},X=class extends v.InvalidTypeError{constructor(r){
124
- super("Invalid HTTP CORS type",void 0,"Http.Cors",r)}},Z=class extends v.IncorrectTypeError{constructor(t,n){
125
- super("Incorrect HTTP CORS type",t,"Http.Cors",n);this.fallbackType=t}};var Oe=(e,r,t,n)=>{if(!(0,I.isTypeReference)(e))return Mt(e,r,n);let o=t[e.path];
126
- return o?Mt(o,r,n):null},Qt=e=>!!e.allowOrigins?.length,Mt=(e,r,t)=>(0,I.isTypeObject)(
127
- e)?St(e,(0,m.getObjectMembers)(e),t):(0,m.isModelDeclaration)(e)?Ve(e)?St(e,(0,m.getModelMembers)(
128
- e),t):(t.push(new Z(e.name,e.file)),null):(t.push(new X(r.file)),null),St=(e,r,t)=>{
129
- let n={},o=new Set(["allowOrigins"]);for(let p of r)if(!(!(0,I.isModelProperty)(
130
- p)||p.inherited))switch(p.name){case"allowOrigins":case"allowMethods":case"allow\
131
- Headers":case"exposeHeaders":{let s=Jt(p);s.length&&(n[p.name]=s);break}case"all\
132
- owCredentials":{let s=(0,m.getPropertyBoolean)(p);(0,ae.isAnyBoolean)(s)&&(n[p.name]=
133
- s);break}case"maxAge":{let s=(0,m.getPropertyNumber)(p);(0,ae.isAnyNumber)(s)&&(n[p.
134
- name]=s);break}}return Qt(n)?n:(t.push(new W([...o],e.file)),null)},Jt=e=>{let r=(0,m.getPropertyTuple)(
135
- e)??[],t=[];for(let n of r){let o=(0,m.getLiteralString)(n);o&&t.push(o)}return t};var Ee=e=>{let r={},t=[];for(let n in e){let o=e[n];if(!ke(o)||(0,u.isExternalStatement)(
136
- o))continue;let p={type:_},s=new Set(["routes"]);p.name=o.name,o.description&&(p.
137
- description=o.description);for(let i of(0,u.getModelMembers)(o))if(!(!(0,xt.isModelProperty)(
138
- i)||i.inherited))switch(i.name){case"name":{let Pe=(0,u.getPropertyString)(i);if(Pe){
139
- p.displayName=Pe;break}}case"defaults":p.defaults=We(i.value,o,e,t);break;case"r\
140
- outes":(p.routes=Yt(i,e,t))&&s.delete(i.name);break;case"cors":p.cors=Oe(i.value,
141
- o,e,t);break;case"variables":p.variables=(0,u.getLinkedVariableList)(i,t);break;case"\
142
- services":p.services=(0,u.getLinkedServiceList)(i,e,t);break}if(!Gt(p)){t.push(new j(
143
- [...s],o.file));continue}if(r[o.name]){t.push(new u.DuplicateServiceError(o.name,
144
- o.file));continue}r[o.name]=p}return{services:r,errors:t}},Gt=e=>!!e.name&&!!e.routes,
145
- Yt=(e,r,t)=>{let n=(0,u.getPropertyTuple)(e)??[],o=[];for(let p of n){let s=Re(p,
146
- r,t);s&&o.push(s)}return o};var At=!1,Kt=()=>{At||((0,vt.registerTriggers)(),(0,It.registerTriggers)(),(0,jt.createTrigger)(
147
- "@ez4/gateway",{"metadata:getServices":Ee}),At=!1)};var fe=require("@ez4/common/library"),R=class extends fe.InvalidTypeError{constructor(r){
148
- super("Invalid defaults",void 0,"Http.Defaults",r)}},O=class extends fe.IncorrectTypeError{constructor(t,n){
149
- super("Incorrect defaults",t,"Http.Defaults",n);this.defaultsType=t}};0&&(module.exports={IncompleteAuthorizerError,IncompleteCorsError,IncompleteHandlerError,
1
+ "use strict";var He=Object.defineProperty;var Ir=Object.getOwnPropertyDescriptor;var vr=Object.getOwnPropertyNames;var Rr=Object.prototype.hasOwnProperty;var Er=(e,t)=>{for(var r in t)He(e,r,{get:t[r],enumerable:!0})},jr=(e,t,r,n)=>{if(t&&
2
+ typeof t=="object"||typeof t=="function")for(let o of vr(t))!Rr.call(e,o)&&o!==r&&
3
+ He(e,o,{get:()=>t[o],enumerable:!(n=Ir(t,o))||n.enumerable});return e};var Or=e=>jr(He({},"__esModule",{value:!0}),e);var Gr={};Er(Gr,{IncompleteAuthorizerError:()=>w,IncompleteCorsError:()=>X,IncompleteHandlerError:()=>W,
4
+ IncompleteRouteError:()=>P,IncompleteServiceError:()=>E,IncorrectBodyTypeError:()=>C,
5
+ IncorrectCorsTypeError:()=>_,IncorrectDefaultsTypeError:()=>O,IncorrectHeadersTypeError:()=>V,
6
+ IncorrectIdentityTypeError:()=>B,IncorrectParameterTypeError:()=>G,IncorrectQueryTypeError:()=>K,
7
+ IncorrectRequestTypeError:()=>Q,IncorrectResponseTypeError:()=>k,InvalidBodyTypeError:()=>q,
8
+ InvalidCorsTypeError:()=>Z,InvalidDefaultsTypeError:()=>j,InvalidHeadersTypeError:()=>U,
9
+ InvalidIdentityTypeError:()=>D,InvalidParameterTypeError:()=>J,InvalidQueryTypeError:()=>Y,
10
+ InvalidRequestTypeError:()=>N,InvalidResponseTypeError:()=>z,ServiceType:()=>$,getHttpAuthRequest:()=>Re,
11
+ getHttpAuthResponse:()=>xe,getHttpAuthorizer:()=>je,getHttpCors:()=>we,getHttpHandler:()=>Oe,
12
+ getHttpHandlerRequest:()=>Ee,getHttpHandlerResponse:()=>Ae,getHttpHeaders:()=>F,
13
+ getHttpIdentity:()=>S,getHttpParameters:()=>Ie,getHttpQuery:()=>ve,getHttpRequestBody:()=>Me,
14
+ getHttpResponseBody:()=>be,getHttpRoute:()=>Pe,getHttpServices:()=>ze,isHttpService:()=>Pr,
15
+ registerTriggers:()=>Jr});module.exports=Or(Gr);var Sr=require("@ez4/common/library"),xr=require("@ez4/schema/library"),Ar=require("@ez4/project/library");var m=require("@ez4/common/library"),br=require("@ez4/reflection");var $="@ez4/http",Pr=e=>e.type===$;var ke=require("@ez4/common/library"),E=class extends ke.IncompleteTypeError{constructor(t,r){
16
+ super("Incomplete service",t,r)}};var f=require("@ez4/common/library"),b=require("@ez4/reflection");var a=require("@ez4/common/library"),M=require("@ez4/reflection"),wr=new Set(["A\
17
+ NY","GET","POST","PUT","PATCH","DELETE","OPTIONS"]),qe=e=>{let[t]=e.split(" ",2);
18
+ return wr.has(t)},Ce=e=>(0,a.isClassDeclaration)(e)&&(0,a.hasHeritageType)(e,"Ht\
19
+ tp.Service"),De=e=>(0,a.isModelDeclaration)(e)&&(0,a.hasHeritageType)(e,"Http.Ro\
20
+ ute");var Be=e=>(0,a.hasHeritageType)(e,"Http.Defaults"),Ue=e=>(0,a.hasHeritageType)(e,
21
+ "Http.Headers"),Ve=e=>(0,a.hasHeritageType)(e,"Http.Identity"),Fe=e=>(0,a.hasHeritageType)(
22
+ e,"Http.QueryStrings"),Ne=e=>(0,a.hasHeritageType)(e,"Http.PathParameters"),Qe=e=>(0,a.hasHeritageType)(
23
+ e,"Http.JsonBody"),Je=e=>(0,a.isModelDeclaration)(e)&&(0,a.hasHeritageType)(e,"H\
24
+ ttp.Cors"),Ge=e=>(0,M.isTypeCallback)(e)||(0,M.isTypeFunction)(e),Ye=e=>(0,M.isTypeCallback)(
25
+ e)||(0,M.isTypeFunction)(e);var Xe=(e,t,r,n)=>{if(!(0,b.isTypeReference)(e))return Ke(e,t,n);let o=(0,f.getReferenceType)(
26
+ e,r);return o?Ke(o,t,n):null},Ke=(e,t,r)=>(0,b.isTypeObject)(e)?We(t,(0,f.getObjectMembers)(
27
+ e),r):(0,f.isModelDeclaration)(e)?Be(e)?We(t,(0,f.getModelMembers)(e),r):(r.push(
28
+ new O(e.name,t.file)),null):(r.push(new j(t.file)),null),We=(e,t,r)=>{let n={};for(let o of t)
29
+ if(!(!(0,b.isModelProperty)(o)||o.inherited))switch(o.name){default:r.push(new f.InvalidServicePropertyError(
30
+ e.name,o.name,e.file));break;case"memory":case"timeout":n[o.name]=(0,f.getPropertyNumber)(
31
+ o);break;case"listener":n.listener=(0,f.getServiceListener)(o.value,r);break}return n};var I=require("@ez4/reflection"),c=require("@ez4/common/library");var Ze=require("@ez4/common/library"),P=class extends Ze.IncompleteTypeError{constructor(t,r){
32
+ super("Incomplete service route",t,r)}};var _e=require("@ez4/common/library"),w=class extends _e.IncompleteTypeError{constructor(t,r){
33
+ super("Incomplete route authorizer",t,r)}};var d=require("@ez4/common/library"),x=require("@ez4/reflection"),pr=require("@ez4/utils");var L=require("@ez4/common/library"),z=class extends L.InvalidTypeError{constructor(r,n){
34
+ super("Invalid route response",void 0,r,n);this.baseType=r}},k=class extends L.IncorrectTypeError{constructor(r,n,o){
35
+ super("Incorrect route response",r,n,o);this.responseType=r;this.baseType=n}};var re=require("@ez4/common/library"),g=require("@ez4/schema/library"),T=require("@ez4/reflection");var ee=require("@ez4/common/library"),q=class extends ee.InvalidTypeError{constructor(t){
36
+ super("Invalid body",void 0,"Http.JsonBody",t)}},C=class extends ee.IncorrectTypeError{constructor(r,n){
37
+ super("Incorrect body",r,"Http.JsonBody",n);this.bodyType=r}};var Me=(e,t,r,n)=>he(e,t,r,(o,s)=>Se(o,s,r,n)),be=(e,t,r,n)=>he(e,t,r,(o,s)=>Le(
38
+ o)??Se(o,s,r,n)),he=(e,t,r,n)=>{if((0,T.isTypeUndefined)(e))return null;if(!(0,T.isTypeReference)(
39
+ e))return n(e,t);let o=(0,re.getReferenceType)(e,r);return o?n(o,t):null},Le=e=>(0,T.isTypeScalar)(
40
+ e)?(0,g.getScalarSchema)(e):null,Se=(e,t,r,n)=>(0,T.isTypeUnion)(e)?zr(e.elements,
41
+ t,r,(o,s)=>Le(o)??Se(o,s,r,n)):(0,T.isTypeObject)(e)?$e(e,r):(0,re.isModelDeclaration)(
42
+ e)?Qe(e)?$e(e,r):(n.push(new C(e.name,e.file)),null):(n.push(new q(t.file)),null),
43
+ zr=(e,t,r,n)=>{let o=[];for(let s of e){let p=he(s,t,r,n);p&&o.push(p)}return o.
44
+ length?(0,g.createUnionSchema)({elements:o}):null},$e=(e,t)=>{let r=(0,g.getObjectSchema)(
45
+ e,t);return r&&(0,g.isObjectSchema)(r)?r:null};var H=require("@ez4/reflection"),h=require("@ez4/schema/library"),oe=require("@ez4/common/library");var te=require("@ez4/common/library"),D=class extends te.InvalidTypeError{constructor(t){
46
+ super("Invalid identity",void 0,"Http.Identity",t)}},B=class extends te.IncorrectTypeError{constructor(r,n){
47
+ super("Incorrect identity",r,"Http.Identity",n);this.identityType=r}};var S=(e,t,r,n)=>{if((0,H.isTypeUndefined)(e))return null;if(!(0,H.isTypeReference)(
48
+ e))return er(e,t,r,n);let o=(0,oe.getReferenceType)(e,r);return o?er(o,t,r,n):null},
49
+ er=(e,t,r,n)=>{if((0,H.isTypeUnion)(e))return kr(e.elements,t,r,n);if((0,H.isTypeObject)(
50
+ e))return rr(e,r);if(!(0,oe.isModelDeclaration)(e))return n.push(new D(t.file)),
51
+ null;if(!Ve(e))return n.push(new B(e.name,t.file)),null;let o=rr(e,r);return o&&
52
+ (o.definitions={...o.definitions,extensible:!0}),o},kr=(e,t,r,n)=>{let o=[];for(let s of e){
53
+ let p=S(s,t,r,n);p&&o.push(p)}return o.length>1?(0,h.createUnionSchema)({elements:o}):
54
+ o[0]},rr=(e,t)=>{let r=(0,h.getObjectSchema)(e,t);return r&&(0,h.isObjectSchema)(
55
+ r)?r:null};var se=require("@ez4/common/library"),pe=require("@ez4/schema/library"),ie=require("@ez4/reflection");var ne=require("@ez4/common/library"),U=class extends ne.InvalidTypeError{constructor(t){
56
+ super("Invalid headers",void 0,"Http.Headers",t)}},V=class extends ne.IncorrectTypeError{constructor(r,n){
57
+ super("Incorrect headers",r,"Http.Headers",n);this.headersType=r}};var F=(e,t,r,n)=>{if(!(0,ie.isTypeReference)(e))return tr(e,t,r,n);let o=(0,se.getReferenceType)(
58
+ e,r);return o?tr(o,t,r,n):null},tr=(e,t,r,n)=>(0,ie.isTypeObject)(e)?or(e,r):(0,se.isModelDeclaration)(
59
+ e)?Ue(e)?or(e,r):(n.push(new V(e.name,t.file)),null):(n.push(new U(t.file)),null),
60
+ or=(e,t)=>{let r=(0,pe.getObjectSchema)(e,t);return r&&(0,pe.isObjectSchema)(r)?
61
+ r:null};var xe=(e,t,r,n)=>{let o=ir(e,t,r,n,"Http.AuthResponse");return o&&qr(o)?o:null},
62
+ Ae=(e,t,r,n)=>{let o=ir(e,t,r,n,"Http.Response");return o&&Cr(o)?o:null},ir=(e,t,r,n,o)=>{
63
+ if(!(0,x.isTypeReference)(e))return nr(e,t,r,n,o);let s=(0,d.getReferenceType)(e,
64
+ r);return s?nr(s,t,r,n,o):null},qr=e=>!!e.identity,Cr=e=>(0,pr.isAnyNumber)(e.status),
65
+ nr=(e,t,r,n,o)=>(0,x.isTypeObject)(e)?sr(e,t,(0,d.getObjectMembers)(e),r,n):(0,d.isModelDeclaration)(
66
+ e)?(0,d.hasHeritageType)(e,o)?sr(e,t,(0,d.getModelMembers)(e),r,n):(n.push(new k(
67
+ e.name,o,e.file)),null):(n.push(new z(o,t.file)),null),sr=(e,t,r,n,o)=>{let s={};
68
+ for(let p of r)if(!(!(0,x.isModelProperty)(p)||p.inherited))switch(p.name){default:
69
+ o.push(new d.InvalidServicePropertyError(t.name,p.name,e.file));break;case"statu\
70
+ s":s.status=(0,d.getPropertyNumber)(p);break;case"headers":{s.headers=F(p.value,
71
+ e,n,o),s.headers&&p.description&&(s.headers.description=p.description);break}case"\
72
+ identity":{s.identity=S(p.value,e,n,o),s.identity&&p.description&&(s.identity.description=
73
+ p.description);break}case"body":{s.body=be(p.value,e,n,o),s.body&&p.description&&
74
+ (s.body.description=p.description);break}}return s};var y=require("@ez4/common/library"),A=require("@ez4/reflection");var ce=require("@ez4/common/library"),N=class extends ce.InvalidTypeError{constructor(r,n){
75
+ super("Invalid route request",void 0,r,n);this.baseType=r}},Q=class extends ce.IncorrectTypeError{constructor(r,n,o){
76
+ super("Incorrect route request",r,n,o);this.requestType=r;this.baseType=n}};var me=require("@ez4/common/library"),ue=require("@ez4/schema/library"),ae=require("@ez4/reflection");var le=require("@ez4/common/library"),J=class extends le.InvalidTypeError{constructor(t){
77
+ super("Invalid request parameters",void 0,"Http.PathParameters",t)}},G=class extends le.IncorrectTypeError{constructor(r,n){
78
+ super("Incorrect request parameters",r,"Http.PathParameters",n);this.parametersType=
79
+ r}};var Ie=(e,t,r,n)=>{if(!(0,ae.isTypeReference)(e))return cr(e,t,r,n);let o=(0,me.getReferenceType)(
80
+ e,r);return o?cr(o,t,r,n):null},cr=(e,t,r,n)=>(0,ae.isTypeObject)(e)?lr(e,r):(0,me.isModelDeclaration)(
81
+ e)?Ne(e)?lr(e,r):(n.push(new G(e.name,e.file)),null):(n.push(new J(t.file)),null),
82
+ lr=(e,t)=>{let r=(0,ue.getObjectSchema)(e,t);return r&&(0,ue.isObjectSchema)(r)?
83
+ r:null};var de=require("@ez4/common/library"),ye=require("@ez4/schema/library"),Te=require("@ez4/reflection");var fe=require("@ez4/common/library"),Y=class extends fe.InvalidTypeError{constructor(t){
84
+ super("Invalid request query strings",void 0,"Http.QueryStrings",t)}},K=class extends fe.IncorrectTypeError{constructor(r,n){
85
+ super("Incorrect request query strings",r,"Http.QueryStrings",n);this.queryType=
86
+ r}};var ve=(e,t,r,n)=>{if(!(0,Te.isTypeReference)(e))return mr(e,t,r,n);let o=(0,de.getReferenceType)(
87
+ e,r);return o?mr(o,t,r,n):null},mr=(e,t,r,n)=>(0,Te.isTypeObject)(e)?ur(e,r):(0,de.isModelDeclaration)(
88
+ e)?Fe(e)?ur(e,r):(n.push(new K(e.name,t.file)),null):(n.push(new Y(t.file)),null),
89
+ ur=(e,t)=>{let r=(0,ye.getObjectSchema)(e,t);return r&&(0,ye.isObjectSchema)(r)?
90
+ r:null};var Re=(e,t,r,n)=>dr(e,t,r,n,"Http.AuthRequest"),Ee=(e,t,r,n)=>dr(e,t,r,n,"Http.\
91
+ Request"),dr=(e,t,r,n,o)=>{if(!(0,A.isTypeReference)(e))return ar(e,t,r,n,o);let s=(0,y.getReferenceType)(
92
+ e,r);return s?ar(s,t,r,n,o):null},ar=(e,t,r,n,o)=>(0,A.isTypeObject)(e)?fr(e,t,(0,y.getObjectMembers)(
93
+ e),r,n):(0,y.isModelDeclaration)(e)?(0,y.hasHeritageType)(e,o)?fr(e,t,(0,y.getModelMembers)(
94
+ e),r,n):(n.push(new Q(e.name,o,e.file)),null):(n.push(new N(o,t.file)),null),fr=(e,t,r,n,o)=>{
95
+ let s={};for(let p of r)if(!(!(0,A.isModelProperty)(p)||p.inherited))switch(p.name){default:
96
+ o.push(new y.InvalidServicePropertyError(t.name,p.name,e.file));break;case"heade\
97
+ rs":{s.headers=F(p.value,e,n,o),s.headers&&p.description&&(s.headers.description=
98
+ p.description);break}case"identity":{s.identity=S(p.value,e,n,o),s.identity&&p.description&&
99
+ (s.identity.description=p.description);break}case"query":{s.query=ve(p.value,e,n,
100
+ o),s.query&&p.description&&(s.query.description=p.description);break}case"parame\
101
+ ters":{s.parameters=Ie(p.value,e,n,o),s.parameters&&p.description&&(s.parameters.
102
+ description=p.description);break}case"body":{s.body=Me(p.value,e,n,o),s.body&&p.
103
+ description&&(s.body.description=p.description);break}}return s};var je=(e,t,r,n)=>{if(!Ge(e))return null;let o={},s=new Set(["name","file"]);if(e.
104
+ description&&(o.description=e.description),(o.name=e.name)&&s.delete("name"),(o.
105
+ file=e.file)&&s.delete("file"),e.parameters){let[{value:p}]=e.parameters;o.request=
106
+ Re(p,t,r,n)}return e.return&&(o.response=xe(e.return,t,r,n)),Dr(o)?o:(n.push(new w(
107
+ [...s],e.file)),null)},Dr=e=>!!e.name&&!!e.file;var yr=require("@ez4/common/library"),W=class extends yr.IncompleteTypeError{constructor(t,r){
108
+ super("Incomplete route handler",t,r)}};var Oe=(e,t,r,n)=>{if(!Ye(e))return null;let o={},s=new Set(["name","file","resp\
109
+ onse"]);if(e.description&&(o.description=e.description),(o.name=e.name)&&s.delete(
110
+ "name"),(o.file=e.file)&&s.delete("file"),e.parameters){let[{value:p}]=e.parameters;
111
+ o.request=Ee(p,t,r,n)}if(e.return){let p=Ae(e.return,t,r,n);p&&(o.response=p,s.delete(
112
+ "response"))}return Br(o)?o:(n.push(new W([...s],e.file)),null)},Br=e=>!!e.name&&
113
+ !!e.file&&!!e.response;var Pe=(e,t,r,n)=>{if(!(0,I.isTypeReference)(e))return Tr(e,t,r,n);let o=(0,c.getReferenceType)(
114
+ e,r);return o?Tr(o,t,r,n):null},Ur=e=>!!e.path&&!!e.handler,Tr=(e,t,r,n)=>De(e)?
115
+ gr(e,t,(0,c.getModelMembers)(e),r,n):(0,I.isTypeObject)(e)?gr(e,t,(0,c.getObjectMembers)(
116
+ e),r,n):null,gr=(e,t,r,n,o)=>{let s={},p=new Set(["path","handler"]);for(let i of r)
117
+ if(!(!(0,I.isModelProperty)(i)||i.inherited))switch(i.name){default:o.push(new c.InvalidServicePropertyError(
118
+ t.name,i.name,e.file));break;case"path":{let u=(0,c.getPropertyString)(i);u&&qe(
119
+ u)&&(p.delete(i.name),s.path=u);break}case"handler":(s.handler=Oe(i.value,t,n,o))&&
120
+ p.delete(i.name);break;case"timeout":case"memory":s[i.name]=(0,c.getPropertyNumber)(
121
+ i);break;case"cors":s.cors=(0,c.getPropertyBoolean)(i);break;case"authorizer":s.
122
+ authorizer=je(i.value,t,n,o);break;case"listener":s.listener=(0,c.getServiceListener)(
123
+ i.value,o);break;case"variables":s.variables=(0,c.getLinkedVariableList)(i,o);break}
124
+ return Ur(s)?s:(o.push(new P([...p],e.file)),null)};var l=require("@ez4/common/library"),R=require("@ez4/reflection");var v=require("@ez4/common/library"),X=class extends v.IncompleteTypeError{constructor(t,r){
125
+ super("Incomplete HTTP CORS",t,r)}},Z=class extends v.InvalidTypeError{constructor(t){
126
+ super("Invalid HTTP CORS type",void 0,"Http.Cors",t)}},_=class extends v.IncorrectTypeError{constructor(r,n){
127
+ super("Incorrect HTTP CORS type",r,"Http.Cors",n);this.fallbackType=r}};var we=(e,t,r,n)=>{if(!(0,R.isTypeReference)(e))return Hr(e,t,n);let o=(0,l.getReferenceType)(
128
+ e,r);return o?Hr(o,t,n):null},Vr=e=>!!e.allowOrigins?.length,Hr=(e,t,r)=>(0,R.isTypeObject)(
129
+ e)?Mr(e,t,(0,l.getObjectMembers)(e),r):(0,l.isModelDeclaration)(e)?Je(e)?Mr(e,t,
130
+ (0,l.getModelMembers)(e),r):(r.push(new _(e.name,e.file)),null):(r.push(new Z(t.
131
+ file)),null),Mr=(e,t,r,n)=>{let o={},s=new Set(["allowOrigins"]);for(let p of r)
132
+ if(!(!(0,R.isModelProperty)(p)||p.inherited))switch(p.name){default:n.push(new l.InvalidServicePropertyError(
133
+ t.name,p.name,e.file));break;case"allowOrigins":case"allowMethods":case"allowHea\
134
+ ders":case"exposeHeaders":o[p.name]=Fr(p);break;case"allowCredentials":o.allowCredentials=
135
+ (0,l.getPropertyBoolean)(p);break;case"maxAge":o.maxAge=(0,l.getPropertyNumber)(
136
+ p);break}return Vr(o)?o:(n.push(new X([...s],e.file)),null)},Fr=e=>{let t=(0,l.getPropertyTuple)(
137
+ e)??[],r=[];for(let n of t){let o=(0,l.getLiteralString)(n);o&&r.push(o)}return r};var ze=e=>{let t={},r=[];for(let n in e){let o=e[n];if(!Ce(o)||(0,m.isExternalStatement)(
138
+ o))continue;let s={type:$,extras:{}},p=new Set(["routes"]),i=o.file;s.name=o.name,
139
+ o.description&&(s.description=o.description);for(let u of(0,m.getModelMembers)(o))
140
+ if(!(!(0,br.isModelProperty)(u)||u.inherited))switch(u.name){default:r.push(new m.InvalidServicePropertyError(
141
+ s.name,u.name,i));break;case"routes":(s.routes=Qr(o,u,e,r))&&p.delete(u.name);break;case"\
142
+ name":s.displayName=(0,m.getPropertyString)(u);break;case"defaults":s.defaults=Xe(
143
+ u.value,o,e,r);break;case"cors":s.cors=we(u.value,o,e,r);break;case"variables":s.
144
+ variables=(0,m.getLinkedVariableList)(u,r);break;case"services":s.services=(0,m.getLinkedServiceList)(
145
+ u,e,r);break}if(!Nr(s)){r.push(new E([...p],i));continue}if(t[o.name]){r.push(new m.DuplicateServiceError(
146
+ o.name,i));continue}t[o.name]=s}return{services:t,errors:r}},Nr=e=>!!e.name&&!!e.
147
+ routes&&!!e.extras,Qr=(e,t,r,n)=>{let o=(0,m.getPropertyTuple)(t)??[],s=[];for(let p of o){
148
+ let i=Pe(p,e,r,n);i&&s.push(i)}return s};var hr=!1,Jr=()=>{hr||((0,Sr.registerTriggers)(),(0,xr.registerTriggers)(),(0,Ar.createTrigger)(
149
+ "@ez4/gateway",{"metadata:getServices":ze}),hr=!1)};var ge=require("@ez4/common/library"),j=class extends ge.InvalidTypeError{constructor(t){
150
+ super("Invalid defaults",void 0,"Http.Defaults",t)}},O=class extends ge.IncorrectTypeError{constructor(r,n){
151
+ super("Incorrect defaults",r,"Http.Defaults",n);this.defaultsType=r}};0&&(module.exports={IncompleteAuthorizerError,IncompleteCorsError,IncompleteHandlerError,
150
152
  IncompleteRouteError,IncompleteServiceError,IncorrectBodyTypeError,IncorrectCorsTypeError,
151
153
  IncorrectDefaultsTypeError,IncorrectHeadersTypeError,IncorrectIdentityTypeError,
152
154
  IncorrectParameterTypeError,IncorrectQueryTypeError,IncorrectRequestTypeError,IncorrectResponseTypeError,
@@ -156,3 +158,4 @@ InvalidResponseTypeError,ServiceType,getHttpAuthRequest,getHttpAuthResponse,getH
156
158
  getHttpCors,getHttpHandler,getHttpHandlerRequest,getHttpHandlerResponse,getHttpHeaders,
157
159
  getHttpIdentity,getHttpParameters,getHttpQuery,getHttpRequestBody,getHttpResponseBody,
158
160
  getHttpRoute,getHttpServices,isHttpService,registerTriggers});
161
+ //# sourceMappingURL=library.cjs.map