@ez4/gateway 0.34.0 → 0.35.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/utils.mjs CHANGED
@@ -1,50 +1,54 @@
1
- var C=Object.defineProperty;var s=(e,t)=>C(e,"name",{value:t,configurable:!0});import{createTransformContext as l,transform as d}from"@ez4/transform";import{isScalarSchema as b,
2
- NamingStyle as k}from"@ez4/schema";import{HttpBadRequestError as R}from"@ez4/gateway";import{createTransformContext as j,
3
- transform as E}from"@ez4/transform";import{validate as q,createValidatorContext as O,
4
- getUniqueErrorMessages as v}from"@ez4/validator";import{base64Encode as P,isNotNullish as A,
5
- isNullish as U}from"@ez4/utils";import{getSchemaProperty as z,isArraySchema as B}from"@ez4/schema";var bt=s(async(e,t,r)=>{let o=r?.namingStyle,n=j({convert:!0,inputStyle:o}),a=E(
6
- e,t,n),m=O({property:"$query",pathStyle:o}),i=await q(a,t,m);if(i.length){let c=v(
7
- i);throw new R("Malformed query strings.",c)}return a},"getQueryStrings"),y=s((e,t)=>{
8
- let r=[];for(let o in e){let n=t&&z(t,o),a=h(e[o],n);a&&r.push(`${o}=${encodeURIComponent(
9
- a)}`)}if(r.length)return r.join("&")},"serializeQueryStrings"),h=s((e,t)=>{if(!U(
10
- e))return e instanceof Date?e.toISOString():e instanceof Array&&(!t||!B(t)||!t.definitions?.
11
- encoded)?e.map(n=>h(n,t)).filter(n=>A(n)).join(","):e instanceof Object?P(JSON.stringify(
12
- e)):`${e}`},"serializeQueryStringValue");import{HttpBadRequestError as N,HttpUnauthorizedError as M,HttpForbiddenError as $,
13
- HttpNotFoundError as Q,HttpUnsupportedMediaTypeError as V,HttpUnprocessableEntityError as I,
14
- HttpError as J}from"@ez4/gateway";var Ct=s(({status:e,message:t,details:r})=>({status:e,body:{message:t,details:r}}),
15
- "getJsonError"),x=s((e,t,r)=>{switch(e){case 400:return new N(t,r);case 401:return new M(
16
- t,r);case 403:return new $(t,r);case 404:return new Q(t,r);case 415:return new V(
17
- t,r);case 422:return new I(t,r);default:return new J(e,t,r)}},"getHttpException");var Pt=s((e,t,r)=>{let{parameters:o,query:n,querySchema:a,namingStyle:m}=r,i=o?F(
18
- t,o):t,c=n&&D(n,a,m),p=[e];return i&&p.push(i),c&&p.push("?",c),p.join("")},"get\
19
- ClientRequestUrl"),At=s(async(e,t,r)=>{let{headers:o,body:n,bodySchema:a,responseSchema:m,
20
- namingStyle:i,timeout:c=20}=r,p=n?_(n,a,i):void 0,u=new AbortController,w=setTimeout(
21
- ()=>u?.abort("Request timed out"),c*1e3),f=await fetch(e,{signal:u?.signal,body:p?.
22
- body,method:t,headers:{...o,...p?.json&&{"content-type":"application/json"}}});if(clearTimeout(
23
- w),!f.ok){let g=await f.json();throw x(f.status,g.message,g.details)}let S=await f.
24
- text();return{status:f.status,...S&&{body:G(S,m,i)}}},"sendClientRequest"),F=s((e,t)=>e.
25
- replaceAll(/\{(\w+)\}/g,(r,o)=>o in t?`${t[o]}`:`{${o}}`),"getPathParameters"),D=s(
26
- (e,t,r)=>{if(!t)return y(e);let o=l({inputStyle:r,convert:!1}),n=d(e,t,o);return y(
27
- n,t)},"getQueryStrings"),_=s((e,t,r)=>{if(!t||b(t))return{body:e.toString(),json:!1};
28
- let o=l({outputStyle:r,convert:!1}),n=d(e,t,o);return{body:JSON.stringify(n),json:!0}},
29
- "getRequestBody"),G=s((e,t,r)=>{if(!t||b(t))return e;let o=JSON.parse(e),n=l({outputStyle:k.
30
- Preserve,inputStyle:r,convert:!1});return d(o,t,n)},"getResponseBody");import{createTransformContext as K,transform as L}from"@ez4/transform";import{validate as W,
31
- getUniqueErrorMessages as X,createValidatorContext as Y}from"@ez4/validator";import{
32
- HttpBadRequestError as Z}from"@ez4/gateway";var $t=s(async(e,t)=>{let r=L(e,t,K({convert:!1})),o=await W(r,t,Y({property:"$p\
33
- ath"}));if(o.length){let n=X(o);throw new Z("Malformed path parameters.",n)}return r},
34
- "getPathParameters");import{createTransformContext as tt,transform as et}from"@ez4/transform";import{
35
- validate as rt,createValidatorContext as ot,getUniqueErrorMessages as nt}from"@ez4/validator";
36
- import{HttpBadRequestError as st}from"@ez4/gateway";var Ft=s(async(e,t)=>{let r=et(e,t,tt({convert:!1})),o=await rt(r,t,ot({property:"\
37
- $header"}));if(o.length){let n=nt(o);throw new st("Malformed request headers.",n)}
38
- return r},"getHeaders");import{validate as at,createValidatorContext as it,getUniqueErrorMessages as ct}from"@ez4/validator";
39
- import{HttpBadRequestError as mt}from"@ez4/gateway";var Lt=s(async(e,t)=>{let r=await at(e,t,it({property:"$identity"}));if(r.length){
40
- let o=ct(r);throw new mt("Malformed authorizer identity.",o)}return e},"getIdent\
41
- ity");import{createTransformContext as H,transform as T}from"@ez4/transform";import{validate as pt,
42
- createValidatorContext as ft,getUniqueErrorMessages as yt}from"@ez4/validator";import{
43
- HttpBadRequestError as lt}from"@ez4/gateway";var ee=s(async(e,t,r)=>{let o=r?.namingStyle,n=ft({property:"$body",inputStyle:o}),
44
- a=await pt(e,t,n);if(a.length){let c=yt(a);throw new lt("Malformed body payload.",
45
- c)}let m=H({convert:!1,inputStyle:o});return T(e,t,m)},"getRequestBody"),re=s((e,t,r)=>{
46
- let o=r?.namingStyle,n=H({convert:!1,outputStyle:o});return T(e,t,n)},"getRespon\
47
- seBody");export{Pt as getClientRequestUrl,Ft as getHeaders,x as getHttpException,Lt as getIdentity,
48
- Ct as getJsonError,$t as getPathParameters,bt as getQueryStrings,ee as getRequestBody,
49
- re as getResponseBody,At as sendClientRequest,h as serializeQueryStringValue,y as serializeQueryStrings};
1
+ var P=Object.defineProperty;var s=(e,t)=>P(e,"name",{value:t,configurable:!0});import{HttpBadRequestError as v}from"@ez4/gateway";import{createTransformContext as x,
2
+ transform as H}from"@ez4/transform";import{validate as O,createValidatorContext as U,
3
+ getUniqueErrorMessages as z}from"@ez4/validator";import{base64Encode as A,isNotNullish as B,
4
+ isNullish as M}from"@ez4/utils";import{getSchemaProperty as N,isArraySchema as $}from"@ez4/schema";var T=s((e,t,r)=>{if(!t)return g(e);let o=x({inputStyle:r?.namingStyle,convert:!1}),
5
+ n=H(e,t,o);return g(n,t)},"prepareQueryStrings"),xt=s(async(e,t,r)=>{let o=r?.namingStyle,
6
+ n=x({convert:!0,inputStyle:o}),a=H(e,t,n),p=U({property:"$query",pathStyle:o}),c=await O(
7
+ a,t,p);if(c.length){let i=z(c);throw new v("Malformed query strings.",i)}return a},
8
+ "getQueryStrings"),g=s((e,t)=>{let r=[];for(let o in e){let n=t&&N(t,o),a=w(e[o],
9
+ n);a&&r.push(`${o}=${encodeURIComponent(a)}`)}if(r.length)return r.join("&")},"s\
10
+ erializeQueryStrings"),w=s((e,t)=>{if(!M(e))return e instanceof Date?e.toISOString():
11
+ e instanceof Array&&(!t||!$(t)||!t.definitions?.encoded)?e.map(n=>w(n,t)).filter(
12
+ n=>B(n)).join(","):e instanceof Object?A(JSON.stringify(e)):`${e}`},"serializeQu\
13
+ eryStringValue");import{createTransformContext as u,transform as f}from"@ez4/transform";import{validate as Q,
14
+ createValidatorContext as I,getUniqueErrorMessages as J}from"@ez4/validator";import{
15
+ isScalarSchema as q,NamingStyle as V}from"@ez4/schema";import{HttpBadRequestError as k}from"@ez4/gateway";var b=s((e,t,r)=>{if(!t||q(t))return{body:e.toString(),json:!1};let o=u({outputStyle:r?.
16
+ namingStyle,convert:!1}),n=f(e,t,o);return{body:JSON.stringify(n),json:!0}},"pre\
17
+ pareRequestBody"),Ct=s(async(e,t,r)=>{let o=r?.namingStyle,n=I({property:"$body",
18
+ inputStyle:o}),a=await Q(e,t,n);if(a.length){let i=J(a);throw new k("Malformed b\
19
+ ody payload.",i)}let p=u({convert:!1,inputStyle:o});return f(e,t,p)},"getRequest\
20
+ Body"),R=s((e,t,r)=>{if(!t||q(t))return e;let o=JSON.parse(e),n=u({outputStyle:V.
21
+ Preserve,inputStyle:r?.namingStyle,convert:!1});return f(o,t,n)},"prepareRespons\
22
+ eBody"),Et=s((e,t,r)=>{let o=r?.namingStyle,n=u({convert:!1,outputStyle:o});return f(
23
+ e,t,n)},"getResponseBody");import{createTransformContext as F,transform as D}from"@ez4/transform";import{validate as _,
24
+ getUniqueErrorMessages as G,createValidatorContext as K}from"@ez4/validator";import{
25
+ HttpBadRequestError as L}from"@ez4/gateway";var C=s((e,t)=>e.replaceAll(/\{(\w+)\}/g,(r,o)=>o in t?`${t[o]}`:`{${o}}`),"prep\
26
+ arePathParameters"),zt=s(async(e,t)=>{let r=D(e,t,F({convert:!1})),o=await _(r,t,
27
+ K({property:"$path"}));if(o.length){let n=G(o);throw new L("Malformed path param\
28
+ eters.",n)}return r},"getPathParameters");import{HttpBadRequestError as W,HttpUnauthorizedError as X,HttpForbiddenError as Y,
29
+ HttpNotFoundError as Z,HttpUnsupportedMediaTypeError as tt,HttpUnprocessableEntityError as et,
30
+ HttpError as rt}from"@ez4/gateway";var Nt=s(({status:e,message:t,details:r})=>({status:e,body:{message:t,details:r}}),
31
+ "getJsonError"),E=s((e,t,r)=>{switch(e){case 400:return new W(t,r);case 401:return new X(
32
+ t,r);case 403:return new Y(t,r);case 404:return new Z(t,r);case 415:return new tt(
33
+ t,r);case 422:return new et(t,r);default:return new rt(e,t,r)}},"getHttpExceptio\
34
+ n");var Ft=s((e,t,r)=>{let{parameters:o,query:n,querySchema:a,namingStyle:p}=r,c=o?C(
35
+ t,o):t,i=n&&T(n,a,{namingStyle:p}),m=[e];return c&&m.push(c),i&&m.push("?",i),m.
36
+ join("")},"getClientRequestUrl"),Dt=s(async(e,t,r)=>{let{authorization:o,headers:n,
37
+ body:a,bodySchema:p,responseSchema:c,namingStyle:i,timeout:m=20}=r,d=a?b(a,p,{namingStyle:i}):
38
+ void 0,l=new AbortController,j=setTimeout(()=>l?.abort("Request timed out"),m*1e3),
39
+ y=await fetch(e,{signal:l?.signal,body:d?.body,method:t,headers:{...n,...o&&{[o.
40
+ header]:o.value},...d?.json&&{"content-type":"application/json"}}});if(clearTimeout(
41
+ j),!y.ok){let h=await y.json();throw E(y.status,h.message,h.details)}let S=await y.
42
+ text();return{status:y.status,...S&&{body:R(S,c,{namingStyle:i})}}},"sendClientR\
43
+ equest");import{createTransformContext as ot,transform as nt}from"@ez4/transform";import{
44
+ validate as st,createValidatorContext as at,getUniqueErrorMessages as it}from"@ez4/validator";
45
+ import{HttpBadRequestError as ct}from"@ez4/gateway";var Xt=s(async(e,t)=>{let r=nt(e,t,ot({convert:!1})),o=await st(r,t,at({property:"\
46
+ $header"}));if(o.length){let n=it(o);throw new ct("Malformed request headers.",n)}
47
+ return r},"getHeaders");import{validate as pt,createValidatorContext as mt,getUniqueErrorMessages as yt}from"@ez4/validator";
48
+ import{HttpBadRequestError as ut}from"@ez4/gateway";var re=s(async(e,t)=>{let r=await pt(e,t,mt({property:"$identity"}));if(r.length){
49
+ let o=yt(r);throw new ut("Malformed authorizer identity.",o)}return e},"getIdent\
50
+ ity");export{Ft as getClientRequestUrl,Xt as getHeaders,E as getHttpException,re as getIdentity,
51
+ Nt as getJsonError,zt as getPathParameters,xt as getQueryStrings,Ct as getRequestBody,
52
+ Et as getResponseBody,C as preparePathParameters,T as prepareQueryStrings,b as prepareRequestBody,
53
+ R as prepareResponseBody,Dt as sendClientRequest};
50
54
  //# sourceMappingURL=utils.mjs.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ez4/gateway",
3
3
  "description": "EZ4: Components to build gateway services",
4
- "version": "0.34.0",
4
+ "version": "0.35.0",
5
5
  "author": "Silas B.",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -51,12 +51,12 @@
51
51
  "live:publish": "npm run build && npm publish --access public"
52
52
  },
53
53
  "dependencies": {
54
- "@ez4/common": "^0.34.0",
55
- "@ez4/project": "^0.34.0",
56
- "@ez4/reflection": "^0.34.0",
57
- "@ez4/schema": "^0.34.0",
58
- "@ez4/transform": "^0.34.0",
59
- "@ez4/utils": "^0.34.0",
60
- "@ez4/validator": "^0.34.0"
54
+ "@ez4/common": "^0.35.0",
55
+ "@ez4/project": "^0.35.0",
56
+ "@ez4/reflection": "^0.35.0",
57
+ "@ez4/schema": "^0.35.0",
58
+ "@ez4/transform": "^0.35.0",
59
+ "@ez4/utils": "^0.35.0",
60
+ "@ez4/validator": "^0.35.0"
61
61
  }
62
62
  }
@@ -1,8 +0,0 @@
1
- import { IncompleteTypeError, InvalidTypeError } from '@ez4/common/library';
2
- export declare class InvalidContextTypeError extends InvalidTypeError {
3
- baseType: string;
4
- constructor(baseType: string, fileName?: string);
5
- }
6
- export declare class IncompleteContextError extends IncompleteTypeError {
7
- constructor(properties: string[], fileName?: string);
8
- }
@@ -1,3 +0,0 @@
1
- import type { AllType, SourceMap, TypeModel } from '@ez4/reflection';
2
- import type { HttpContext } from '../types/common';
3
- export declare const getHttpContext: (type: AllType, parent: TypeModel, reflection: SourceMap, errorList: Error[]) => HttpContext | null;
@@ -1,6 +0,0 @@
1
- import type { ClientRequest } from '../services/client';
2
- export declare const prepareRequestUrl: (host: string, path: string, request: ClientRequest) => string;
3
- export declare const sendClientRequest: (url: string, method: string, request: ClientRequest) => Promise<{
4
- body?: any;
5
- status: number;
6
- }>;