@ez4/gateway 0.36.0 → 0.38.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.
Files changed (93) hide show
  1. package/README.md +3 -4
  2. package/dist/library.cjs +429 -417
  3. package/dist/library.d.ts +10 -10
  4. package/dist/library.mjs +431 -413
  5. package/dist/main.cjs +19 -18
  6. package/dist/main.mjs +8 -6
  7. package/dist/metadata/auth/handler.d.ts +2 -2
  8. package/dist/metadata/auth/identity.d.ts +3 -3
  9. package/dist/metadata/auth/request.d.ts +2 -2
  10. package/dist/metadata/auth/response.d.ts +2 -2
  11. package/dist/metadata/auth/types.d.ts +8 -5
  12. package/dist/metadata/body.d.ts +6 -0
  13. package/dist/metadata/headers.d.ts +5 -0
  14. package/dist/metadata/http/access.d.ts +2 -2
  15. package/dist/metadata/http/authorization.d.ts +2 -2
  16. package/dist/metadata/http/cache.d.ts +2 -2
  17. package/dist/metadata/http/cors.d.ts +2 -2
  18. package/dist/metadata/http/defaults.d.ts +3 -3
  19. package/dist/metadata/http/errors.d.ts +3 -3
  20. package/dist/metadata/http/handler.d.ts +2 -2
  21. package/dist/metadata/http/import.d.ts +2 -2
  22. package/dist/metadata/http/request.d.ts +2 -2
  23. package/dist/metadata/http/response.d.ts +2 -2
  24. package/dist/metadata/http/routes.d.ts +3 -3
  25. package/dist/metadata/http/service.d.ts +2 -2
  26. package/dist/metadata/http/types.d.ts +27 -20
  27. package/dist/metadata/parameters.d.ts +5 -0
  28. package/dist/metadata/{web/preferences.d.ts → preferences.d.ts} +2 -2
  29. package/dist/metadata/provider.d.ts +4 -0
  30. package/dist/metadata/query.d.ts +5 -0
  31. package/dist/metadata/utils/{type.d.ts → name.d.ts} +1 -0
  32. package/dist/metadata/utils/provider.d.ts +4 -0
  33. package/dist/metadata/utils/schema.d.ts +3 -3
  34. package/dist/metadata/utils/validator.d.ts +5 -0
  35. package/dist/metadata/ws/connection.d.ts +2 -2
  36. package/dist/metadata/ws/defaults.d.ts +2 -2
  37. package/dist/metadata/ws/event.d.ts +2 -2
  38. package/dist/metadata/ws/handlers.d.ts +3 -4
  39. package/dist/metadata/ws/message.d.ts +2 -2
  40. package/dist/metadata/ws/request.d.ts +2 -2
  41. package/dist/metadata/ws/response.d.ts +2 -2
  42. package/dist/metadata/ws/service.d.ts +2 -2
  43. package/dist/metadata/ws/types.d.ts +23 -22
  44. package/dist/services/auth/request.d.ts +3 -3
  45. package/dist/services/{web/defaults.d.ts → defaults.d.ts} +9 -0
  46. package/dist/services/errors.d.ts +6 -0
  47. package/dist/services/http/contract.d.ts +8 -6
  48. package/dist/services/http/defaults.d.ts +1 -1
  49. package/dist/services/http/incoming.d.ts +5 -1
  50. package/dist/services/http/request.d.ts +4 -4
  51. package/dist/services/http/response.d.ts +2 -2
  52. package/dist/services/http/route.d.ts +1 -1
  53. package/dist/services/{web/target.d.ts → target.d.ts} +9 -0
  54. package/dist/services/ws/connect.d.ts +1 -1
  55. package/dist/services/ws/contract.d.ts +6 -4
  56. package/dist/services/ws/defaults.d.ts +1 -1
  57. package/dist/services/ws/disconnect.d.ts +1 -1
  58. package/dist/services/ws/event.d.ts +2 -2
  59. package/dist/services/ws/incoming.d.ts +5 -1
  60. package/dist/services/ws/message.d.ts +1 -1
  61. package/dist/services/ws/request.d.ts +1 -1
  62. package/dist/services/ws/response.d.ts +1 -1
  63. package/dist/utils/body.d.ts +3 -2
  64. package/dist/utils/headers.d.ts +2 -1
  65. package/dist/utils/identity.d.ts +2 -1
  66. package/dist/utils/parameters.d.ts +2 -1
  67. package/dist/utils/query.d.ts +2 -1
  68. package/dist/utils/validation.d.ts +2 -0
  69. package/dist/utils.cjs +62 -55
  70. package/dist/utils.d.ts +2 -1
  71. package/dist/utils.mjs +54 -52
  72. package/package.json +8 -8
  73. package/dist/metadata/http/provider.d.ts +0 -4
  74. package/dist/metadata/web/body.d.ts +0 -6
  75. package/dist/metadata/web/headers.d.ts +0 -5
  76. package/dist/metadata/web/parameters.d.ts +0 -5
  77. package/dist/metadata/web/query.d.ts +0 -5
  78. /package/dist/errors/{web/body.d.ts → body.d.ts} +0 -0
  79. /package/dist/errors/{web/defaults.d.ts → defaults.d.ts} +0 -0
  80. /package/dist/errors/{web/handler.d.ts → handler.d.ts} +0 -0
  81. /package/dist/errors/{web/headers.d.ts → headers.d.ts} +0 -0
  82. /package/dist/errors/{web/parameters.d.ts → parameters.d.ts} +0 -0
  83. /package/dist/errors/{web/preferences.d.ts → preferences.d.ts} +0 -0
  84. /package/dist/errors/{web/query.d.ts → query.d.ts} +0 -0
  85. /package/dist/errors/{web/request.d.ts → request.d.ts} +0 -0
  86. /package/dist/errors/{web/response.d.ts → response.d.ts} +0 -0
  87. /package/dist/errors/{web/service.d.ts → service.d.ts} +0 -0
  88. /package/dist/metadata/{web/types.d.ts → types.d.ts} +0 -0
  89. /package/dist/services/{web/body.d.ts → body.d.ts} +0 -0
  90. /package/dist/services/{web/headers.d.ts → headers.d.ts} +0 -0
  91. /package/dist/services/{web/parameters.d.ts → parameters.d.ts} +0 -0
  92. /package/dist/services/{web/preferences.d.ts → preferences.d.ts} +0 -0
  93. /package/dist/services/{web/query.d.ts → query.d.ts} +0 -0
@@ -1,14 +1,15 @@
1
1
  import type { Service as CommonService } from '@ez4/common';
2
2
  import type { LinkedVariables } from '@ez4/project/library';
3
+ import type { AuthProvider as HttpAuthProvider } from '../auth/provider';
3
4
  import type { AuthResponse as HttpAuthResponse } from '../auth/response';
4
5
  import type { AuthRequest as HttpAuthRequest } from '../auth/request';
5
- import type { WebJsonBody, WebRawBody } from '../web/body';
6
- import type { WebPathParameters } from '../web/parameters';
7
- import type { WebPreferences } from '../web/preferences';
8
6
  import type { AuthIdentity } from '../auth/identity';
9
- import type { WebQueryStrings } from '../web/query';
10
- import type { WebHeaders } from '../web/headers';
11
7
  import type { AuthCache } from '../auth/cache';
8
+ import type { WebHeaders } from '../headers';
9
+ import type { WebQueryStrings } from '../query';
10
+ import type { WebPathParameters } from '../parameters';
11
+ import type { WebJsonBody, WebRawBody } from '../body';
12
+ import type { WebPreferences } from '../preferences';
12
13
  import type { HttpSuccessStatuses, HttpSuccessEmptyResponse, HttpSuccessResponse, HttpEmptyRequest } from './utils';
13
14
  import type { HttpAuthorization } from './authorization';
14
15
  import type { HttpDefaults } from './defaults';
@@ -39,10 +40,11 @@ export declare namespace Http {
39
40
  type Cache = AuthCache;
40
41
  type Request = HttpRequest;
41
42
  type Response = HttpResponse;
43
+ type Provider = HttpProvider;
42
44
  type AuthRequest = HttpAuthRequest;
43
45
  type AuthResponse = HttpAuthResponse;
46
+ type AuthProvider = HttpAuthProvider;
44
47
  type Errors = HttpErrors;
45
- type Provider = HttpProvider;
46
48
  type Cors = HttpCors;
47
49
  type Incoming<T extends Request> = HttpIncoming<T>;
48
50
  type Listener<T extends Request> = HttpListener<T>;
@@ -1,4 +1,4 @@
1
- import type { WebDefaults } from '../web/defaults';
1
+ import type { WebDefaults } from '../defaults';
2
2
  import type { HttpListener } from './listener';
3
3
  import type { HttpRequest } from './request';
4
4
  import type { HttpErrors } from './errors';
@@ -4,9 +4,13 @@ import type { HttpRequest } from './request';
4
4
  */
5
5
  export type HttpIncoming<T extends HttpRequest> = T & {
6
6
  /**
7
- * Request tracking Id.
7
+ * Unique identifier for the request.
8
8
  */
9
9
  readonly requestId: string;
10
+ /**
11
+ * Unique identifier across multiple services.
12
+ */
13
+ readonly traceId?: string;
10
14
  /**
11
15
  * Determines whether request is base64 encoded or not.
12
16
  */
@@ -1,8 +1,8 @@
1
1
  import type { AuthIdentity } from '../auth/identity';
2
- import type { WebPathParameters } from '../web/parameters';
3
- import type { WebQueryStrings } from '../web/query';
4
- import type { WebHeaders } from '../web/headers';
5
- import type { WebBody } from '../web/body';
2
+ import type { WebPathParameters } from '../parameters';
3
+ import type { WebQueryStrings } from '../query';
4
+ import type { WebHeaders } from '../headers';
5
+ import type { WebBody } from '../body';
6
6
  /**
7
7
  * HTTP request.
8
8
  */
@@ -1,5 +1,5 @@
1
- import type { WebHeaders } from '../web/headers';
2
- import type { WebBody } from '../web/body';
1
+ import type { WebHeaders } from '../headers';
2
+ import type { WebBody } from '../body';
3
3
  /**
4
4
  * HTTP response.
5
5
  */
@@ -1,6 +1,6 @@
1
1
  import type { AuthHandler } from '../auth/handler';
2
2
  import type { AuthRequest } from '../auth/request';
3
- import type { WebTarget } from '../web/target';
3
+ import type { WebTarget } from '../target';
4
4
  import type { HttpListener } from './listener';
5
5
  import type { HttpRequest } from './request';
6
6
  import type { HttpHandler } from './handler';
@@ -1,3 +1,4 @@
1
+ import type { ArchitectureType, RuntimeType } from '@ez4/project';
1
2
  import type { LinkedVariables } from '@ez4/project/library';
2
3
  import type { WebPreferences } from './preferences';
3
4
  /**
@@ -24,4 +25,12 @@ export interface WebTarget {
24
25
  * Amount of memory available (in megabytes) for the handler.
25
26
  */
26
27
  readonly memory?: number;
28
+ /**
29
+ * Architecture for the API function.
30
+ */
31
+ readonly architecture?: ArchitectureType;
32
+ /**
33
+ * Runtime for the API function.
34
+ */
35
+ readonly runtime?: RuntimeType;
27
36
  }
@@ -1,6 +1,6 @@
1
1
  import type { AuthHandler } from '../auth/handler';
2
2
  import type { AuthRequest } from '../auth/request';
3
- import type { WebTarget } from '../web/target';
3
+ import type { WebTarget } from '../target';
4
4
  import type { WsListener } from './listener';
5
5
  import type { WsHandler } from './handler';
6
6
  import type { WsEvent } from './event';
@@ -1,12 +1,13 @@
1
1
  import type { Service as CommonService } from '@ez4/common';
2
2
  import type { LinkedVariables } from '@ez4/project/library';
3
+ import type { AuthProvider as WsAuthProvider } from '../auth/provider';
3
4
  import type { AuthResponse as WsAuthResponse } from '../auth/response';
4
5
  import type { AuthRequest as WsAuthRequest } from '../auth/request';
5
- import type { WebJsonBody, WebRawBody } from '../web/body';
6
- import type { WebPreferences } from '../web/preferences';
7
6
  import type { AuthIdentity } from '../auth/identity';
8
- import type { WebQueryStrings } from '../web/query';
9
- import type { WebHeaders } from '../web/headers';
7
+ import type { WebHeaders } from '../headers';
8
+ import type { WebQueryStrings } from '../query';
9
+ import type { WebPreferences } from '../preferences';
10
+ import type { WebJsonBody, WebRawBody } from '../body';
10
11
  import type { WsEmptyEvent, WsEmptyRequest } from './utils';
11
12
  import type { WsDisconnect } from './disconnect';
12
13
  import type { WsDefaults } from './defaults';
@@ -34,6 +35,7 @@ export declare namespace Ws {
34
35
  type Event = WsEvent;
35
36
  type AuthRequest = WsAuthRequest;
36
37
  type AuthResponse = WsAuthResponse;
38
+ type AuthProvider = WsAuthProvider;
37
39
  type Incoming<T extends Request | Event> = WsIncoming<T>;
38
40
  type Listener<T extends Request | Event> = WsListener<T>;
39
41
  type Handler<T extends Request | Event> = WsHandler<T>;
@@ -1,4 +1,4 @@
1
- import type { WebDefaults } from '../web/defaults';
1
+ import type { WebDefaults } from '../defaults';
2
2
  import type { WsRequest } from './request';
3
3
  import type { WsListener } from './listener';
4
4
  import type { WsEvent } from './event';
@@ -1,4 +1,4 @@
1
- import type { WebTarget } from '../web/target';
1
+ import type { WebTarget } from '../target';
2
2
  import type { WsListener } from './listener';
3
3
  import type { WsHandler } from './handler';
4
4
  import type { WsEvent } from './event';
@@ -1,6 +1,6 @@
1
1
  import type { AuthIdentity } from '../auth/identity';
2
- import type { WebQueryStrings } from '../web/query';
3
- import type { WebHeaders } from '../web/headers';
2
+ import type { WebQueryStrings } from '../query';
3
+ import type { WebHeaders } from '../headers';
4
4
  /**
5
5
  * WS event.
6
6
  */
@@ -5,9 +5,13 @@ import type { WsEvent } from './event';
5
5
  */
6
6
  export type WsIncoming<T extends WsRequest | WsEvent> = T & {
7
7
  /**
8
- * Request tracking Id.
8
+ * Unique identifier for the request.
9
9
  */
10
10
  readonly requestId: string;
11
+ /**
12
+ * Unique identifier across multiple services.
13
+ */
14
+ readonly traceId?: string;
11
15
  /**
12
16
  * Request connection Id.
13
17
  */
@@ -1,4 +1,4 @@
1
- import type { WebTarget } from '../web/target';
1
+ import type { WebTarget } from '../target';
2
2
  import type { WsListener } from './listener';
3
3
  import type { WsHandler } from './handler';
4
4
  import type { WsEvent } from './event';
@@ -1,5 +1,5 @@
1
1
  import type { AuthIdentity } from '../auth/identity';
2
- import type { WebBody } from '../web/body';
2
+ import type { WebBody } from '../body';
3
3
  /**
4
4
  * WS request.
5
5
  */
@@ -1,4 +1,4 @@
1
- import type { WebBody } from '../web/body';
1
+ import type { WebBody } from '../body';
2
2
  /**
3
3
  * WS response.
4
4
  */
@@ -1,9 +1,10 @@
1
+ import type { ValidationCustomHandler } from '@ez4/validator';
1
2
  import type { AnySchema } from '@ez4/schema';
2
3
  import type { Http } from '../services/http/contract';
3
4
  export declare const prepareRequestBody: <T extends Http.JsonBody | Http.RawBody>(input: T, schema?: AnySchema, preferences?: Http.Preferences) => {
4
5
  body: string;
5
6
  json: boolean;
6
7
  };
7
- export declare const getRequestBody: <T extends Http.JsonBody | Http.RawBody>(input: T | undefined, schema: AnySchema, preferences?: Http.Preferences) => Promise<T>;
8
+ export declare const resolveRequestBody: <T extends Http.JsonBody | Http.RawBody>(input: T | undefined, schema: AnySchema, preferences?: Http.Preferences, onCustomValidation?: ValidationCustomHandler) => Promise<T>;
8
9
  export declare const prepareResponseBody: (body: string, schema?: AnySchema, preferences?: Http.Preferences) => unknown;
9
- export declare const getResponseBody: (body: unknown, schema: AnySchema, preferences?: Http.Preferences) => unknown;
10
+ export declare const resolveResponseBody: (body: unknown, schema: AnySchema, preferences?: Http.Preferences) => unknown;
@@ -1,3 +1,4 @@
1
+ import type { ValidationCustomHandler } from '@ez4/validator';
1
2
  import type { ObjectSchema } from '@ez4/schema';
2
3
  import type { Http } from '../services/http/contract';
3
- export declare const getHeaders: <T extends Http.Headers>(input: T, schema: ObjectSchema) => Promise<T>;
4
+ export declare const resolveHeaders: <T extends Http.Headers>(input: T, schema: ObjectSchema, onCustomValidation?: ValidationCustomHandler) => Promise<T>;
@@ -1,3 +1,4 @@
1
+ import type { ValidationCustomHandler } from '@ez4/validator';
1
2
  import type { ObjectSchema, UnionSchema } from '@ez4/schema';
2
3
  import type { Http } from '../services/http/contract';
3
- export declare const getIdentity: <T extends Http.Identity>(input: T, schema: ObjectSchema | UnionSchema) => Promise<T>;
4
+ export declare const resolveIdentity: <T extends Http.Identity>(input: T, schema: ObjectSchema | UnionSchema, onCustomValidation?: ValidationCustomHandler) => Promise<T>;
@@ -1,4 +1,5 @@
1
+ import type { ValidationCustomHandler } from '@ez4/validator';
1
2
  import type { ObjectSchema } from '@ez4/schema';
2
3
  import type { Http } from '../services/http/contract';
3
4
  export declare const preparePathParameters: (path: string, parameters: Record<string, string>) => string;
4
- export declare const getPathParameters: <T extends Http.PathParameters>(input: T, schema: ObjectSchema) => Promise<T>;
5
+ export declare const resolvePathParameters: <T extends Http.PathParameters>(input: T, schema: ObjectSchema, onCustomValidation?: ValidationCustomHandler) => Promise<T>;
@@ -1,4 +1,5 @@
1
+ import type { ValidationCustomHandler } from '@ez4/validator';
1
2
  import type { ObjectSchema } from '@ez4/schema';
2
3
  import type { Http } from '../services/http/contract';
3
4
  export declare const prepareQueryStrings: <T extends Http.QueryStrings>(input: T, schema?: ObjectSchema, preferences?: Http.Preferences) => string | undefined;
4
- export declare const getQueryStrings: <T extends Http.QueryStrings>(input: T, schema: ObjectSchema, preferences?: Http.Preferences) => Promise<T>;
5
+ export declare const resolveQueryStrings: <T extends Http.QueryStrings>(input: T, schema: ObjectSchema, preferences?: Http.Preferences, onCustomValidation?: ValidationCustomHandler) => Promise<T>;
@@ -0,0 +1,2 @@
1
+ import type { AnyObject } from '@ez4/utils';
2
+ export declare const resolveValidation: (input: unknown, validators: AnyObject, name: string) => Promise<void>;
package/dist/utils.cjs CHANGED
@@ -1,56 +1,63 @@
1
- "use strict";var w=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var s=(e,t)=>w(e,"name",{value:t,configurable:!0});var _=(e,t)=>{for(var r in t)w(e,r,{get:t[r],enumerable:!0})},G=(e,t,r,o)=>{if(t&&
2
- typeof t=="object"||typeof t=="function")for(let n of F(t))!D.call(e,n)&&n!==r&&
3
- w(e,n,{get:()=>t[n],enumerable:!(o=k(t,n))||o.enumerable});return e};var K=e=>G(w({},"__esModule",{value:!0}),e);var nt={};_(nt,{getClientRequestUrl:()=>tt,getHeaders:()=>rt,getHttpException:()=>v,
4
- getIdentity:()=>ot,getJsonError:()=>Z,getPathParameters:()=>Y,getQueryStrings:()=>L,
5
- getRequestBody:()=>W,getResponseBody:()=>X,preparePathParameters:()=>P,prepareQueryStrings:()=>C,
6
- prepareRequestBody:()=>E,prepareResponseBody:()=>j,sendClientRequest:()=>et});module.
7
- exports=K(nt);var M=require("@ez4/gateway"),u=require("@ez4/transform"),f=require("@ez4/validator"),
8
- d=require("@ez4/utils"),q=require("@ez4/schema");var C=s((e,t,r)=>{if(!t)return B(e);let o=(0,u.createTransformContext)({inputStyle:r?.
9
- namingStyle,convert:!1}),n=(0,u.transform)(e,t,o);return B(n,t)},"prepareQuerySt\
10
- rings"),L=s(async(e,t,r)=>{let o=r?.namingStyle,n=(0,u.createTransformContext)({
11
- convert:!0,inputStyle:o}),i=(0,u.transform)(e,t,n),y=(0,f.createValidatorContext)(
12
- {property:"$query",pathStyle:o}),m=await(0,f.validate)(i,t,y);if(m.length){let p=(0,f.getUniqueErrorMessages)(
13
- m);throw new M.HttpBadRequestError("Malformed query strings.",p)}return i},"getQ\
14
- ueryStrings"),B=s((e,t)=>{let r=[];for(let o in e){let n=t&&(0,q.getSchemaProperty)(
15
- t,o),i=N(e[o],n);i&&r.push(`${o}=${encodeURIComponent(i)}`)}if(r.length)return r.
16
- join("&")},"serializeQueryStrings"),N=s((e,t)=>{if(!(0,d.isNullish)(e))return e instanceof
17
- Date?e.toISOString():e instanceof Array&&(!t||!(0,q.isArraySchema)(t)||!t.definitions?.
18
- encoded)?e.map(n=>N(n,t)).filter(n=>(0,d.isNotNullish)(n)).join(","):e instanceof
19
- Object?(0,d.base64Encode)(JSON.stringify(e)):`${e}`},"serializeQueryStringValue");var c=require("@ez4/transform"),l=require("@ez4/validator"),T=require("@ez4/schema"),
20
- $=require("@ez4/gateway");var E=s((e,t,r)=>{if(!t||(0,T.isScalarSchema)(t))return{body:e.toString(),json:!1};
21
- let o=(0,c.createTransformContext)({outputStyle:r?.namingStyle,convert:!1}),n=(0,c.transform)(
22
- e,t,o);return{body:JSON.stringify(n),json:!0}},"prepareRequestBody"),W=s(async(e,t,r)=>{
23
- let o=r?.namingStyle,n=(0,l.createValidatorContext)({property:"$body",inputStyle:o}),
24
- i=await(0,l.validate)(e,t,n);if(i.length){let p=(0,l.getUniqueErrorMessages)(i);
25
- throw new $.HttpBadRequestError("Malformed body payload.",p)}let y=(0,c.createTransformContext)(
26
- {convert:!1,inputStyle:o});return(0,c.transform)(e,t,y)},"getRequestBody"),j=s((e,t,r)=>{
27
- if(!t||(0,T.isScalarSchema)(t))return e;let o=JSON.parse(e),n=(0,c.createTransformContext)(
28
- {outputStyle:T.NamingStyle.Preserve,inputStyle:r?.namingStyle,convert:!1});return(0,c.transform)(
29
- o,t,n)},"prepareResponseBody"),X=s((e,t,r)=>{let o=r?.namingStyle,n=(0,c.createTransformContext)(
30
- {convert:!1,outputStyle:o});return(0,c.transform)(e,t,n)},"getResponseBody");var b=require("@ez4/transform"),S=require("@ez4/validator"),Q=require("@ez4/gateway");var P=s((e,t)=>e.replaceAll(/\{(\w+)\}/g,(r,o)=>o in t?`${t[o]}`:`{${o}}`),"prep\
31
- arePathParameters"),Y=s(async(e,t)=>{let r=(0,b.transform)(e,t,(0,b.createTransformContext)(
32
- {convert:!1})),o=await(0,S.validate)(r,t,(0,S.createValidatorContext)({property:"\
33
- $path"}));if(o.length){let n=(0,S.getUniqueErrorMessages)(o);throw new Q.HttpBadRequestError(
34
- "Malformed path parameters.",n)}return r},"getPathParameters");var a=require("@ez4/gateway");var Z=s(({status:e,message:t,details:r})=>({status:e,body:{type:"error",message:t,
35
- details:r}}),"getJsonError"),v=s((e,t,r)=>{switch(e){case 400:return new a.HttpBadRequestError(
36
- t,r);case 401:return new a.HttpUnauthorizedError(t,r);case 403:return new a.HttpForbiddenError(
37
- t,r);case 404:return new a.HttpNotFoundError(t,r);case 415:return new a.HttpUnsupportedMediaTypeError(
38
- t,r);case 422:return new a.HttpUnprocessableEntityError(t,r);default:return new a.HttpError(
39
- e,t,r)}},"getHttpException");var tt=s((e,t,r)=>{let{parameters:o,query:n,querySchema:i,namingStyle:y}=r,m=o?P(
40
- t,o):t,p=n&&C(n,i,{namingStyle:y}),x=[e];return m&&x.push(m),p&&x.push("?",p),x.
41
- join("")},"getClientRequestUrl"),et=s(async(e,t,r)=>{let{authorization:o,headers:n,
42
- body:i,bodySchema:y,responseSchema:m,namingStyle:p,timeout:x=20}=r,O=i?E(i,y,{namingStyle:p}):
43
- void 0,U=new AbortController,V=setTimeout(()=>U?.abort("Request timed out"),x*1e3),
44
- H=await fetch(e,{signal:U?.signal,body:O?.body,method:t,headers:{...n,...o&&{[o.
45
- header]:o.value},...O?.json&&{"content-type":"application/json"}}});if(clearTimeout(
46
- V),!H.ok){let A=await H.json();throw v(H.status,A.message,A.details)}let z=await H.
47
- text();return{status:H.status,...z&&{body:j(z,m,{namingStyle:p})}}},"sendClientR\
48
- equest");var R=require("@ez4/transform"),h=require("@ez4/validator"),I=require("@ez4/gateway");var rt=s(async(e,t)=>{let r=(0,R.transform)(e,t,(0,R.createTransformContext)({convert:!1})),
49
- o=await(0,h.validate)(r,t,(0,h.createValidatorContext)({property:"$header"}));if(o.
50
- length){let n=(0,h.getUniqueErrorMessages)(o);throw new I.HttpBadRequestError("M\
51
- alformed request headers.",n)}return r},"getHeaders");var g=require("@ez4/validator"),J=require("@ez4/gateway");var ot=s(async(e,t)=>{let r=await(0,g.validate)(e,t,(0,g.createValidatorContext)(
52
- {property:"$identity"}));if(r.length){let o=(0,g.getUniqueErrorMessages)(r);throw new J.HttpBadRequestError(
53
- "Malformed authorizer identity.",o)}return e},"getIdentity");0&&(module.exports={getClientRequestUrl,getHeaders,getHttpException,getIdentity,
54
- getJsonError,getPathParameters,getQueryStrings,getRequestBody,getResponseBody,preparePathParameters,
55
- prepareQueryStrings,prepareRequestBody,prepareResponseBody,sendClientRequest});
1
+ "use strict";var T=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var G=Object.prototype.hasOwnProperty;var a=(e,t)=>T(e,"name",{value:t,configurable:!0});var K=(e,t)=>{for(var r in t)T(e,r,{get:t[r],enumerable:!0})},L=(e,t,r,o)=>{if(t&&
2
+ typeof t=="object"||typeof t=="function")for(let n of _(t))!G.call(e,n)&&n!==r&&
3
+ T(e,n,{get:()=>t[n],enumerable:!(o=D(t,n))||o.enumerable});return e};var W=e=>L(T({},"__esModule",{value:!0}),e);var it={};K(it,{getClientRequestUrl:()=>rt,getHttpException:()=>O,getJsonError:()=>et,
4
+ preparePathParameters:()=>z,prepareQueryStrings:()=>j,prepareRequestBody:()=>P,prepareResponseBody:()=>V,
5
+ resolveHeaders:()=>nt,resolveIdentity:()=>at,resolvePathParameters:()=>tt,resolveQueryStrings:()=>X,
6
+ resolveRequestBody:()=>Y,resolveResponseBody:()=>Z,resolveValidation:()=>st,sendClientRequest:()=>ot});
7
+ module.exports=W(it);var f=require("@ez4/transform"),S=require("@ez4/validator"),h=require("@ez4/utils"),
8
+ b=require("@ez4/schema"),N=require("@ez4/gateway");var j=a((e,t,r)=>{if(!t)return B(e);let o=(0,f.createTransformContext)({inputStyle:r?.
9
+ namingStyle,convert:!1}),n=(0,f.transform)(e,t,o);return B(n,t)},"prepareQuerySt\
10
+ rings"),X=a(async(e,t,r,o)=>{let n=r?.namingStyle,s=(0,f.createTransformContext)(
11
+ {convert:!0,inputStyle:n}),p=(0,f.transform)(e,t,s),d=(0,S.createValidatorContext)(
12
+ {property:"$query",pathStyle:n,onCustomValidation:o}),c=await(0,S.validate)(p,t,
13
+ d);if(c.length){let u=(0,S.getUniqueErrorMessages)(c);throw new N.HttpBadRequestError(
14
+ "Malformed query strings.",u)}return p},"resolveQueryStrings"),B=a((e,t)=>{let r=[];
15
+ for(let o in e){let n=t&&(0,b.getSchemaProperty)(t,o),s=$(e[o],n);s&&r.push(`${o}\
16
+ =${encodeURIComponent(s)}`)}if(r.length)return r.join("&")},"serializeQueryStrin\
17
+ gs"),$=a((e,t)=>{if(!(0,h.isNullish)(e))return e instanceof Date?e.toISOString():
18
+ e instanceof Array&&(!t||!(0,b.isArraySchema)(t)||!t.definitions?.encoded)?e.map(
19
+ n=>$(n,t)).filter(n=>(0,h.isNotNullish)(n)).join(","):e instanceof Object?(0,h.base64Encode)(
20
+ JSON.stringify(e)):`${e}`},"serializeQueryStringValue");var m=require("@ez4/transform"),g=require("@ez4/validator"),v=require("@ez4/schema"),
21
+ q=require("@ez4/utils"),M=require("@ez4/gateway");var P=a((e,t,r)=>{if(!t||(0,v.isScalarSchema)(t))return{body:e.toString(),json:!1};
22
+ let o=(0,m.createTransformContext)({outputStyle:r?.namingStyle,convert:!1}),n=(0,m.transform)(
23
+ e,t,o);return{body:JSON.stringify(n),json:!0}},"prepareRequestBody"),Y=a(async(e,t,r,o)=>{
24
+ let n=r?.namingStyle,s=(0,m.createTransformContext)({convert:!1,inputStyle:n}),d=(0,g.createValidatorContext)(
25
+ {onCustomValidation:a((l,y)=>(0,q.isAnyObject)(l)||(0,q.isAnyArray)(l)?o?.((0,m.transform)(
26
+ l,y.schema,s),y):o?.(l,y),"useCustomValidation"),property:"$body",inputStyle:n}),
27
+ c=await(0,g.validate)(e,t,d);if(c.length){let l=(0,g.getUniqueErrorMessages)(c);
28
+ throw new M.HttpBadRequestError("Malformed body payload.",l)}return(0,m.transform)(
29
+ e,t,s)},"resolveRequestBody"),V=a((e,t,r)=>{if(!t||(0,v.isScalarSchema)(t))return e;
30
+ let o=JSON.parse(e),n=(0,m.createTransformContext)({outputStyle:v.NamingStyle.Preserve,
31
+ inputStyle:r?.namingStyle,convert:!1});return(0,m.transform)(o,t,n)},"prepareRes\
32
+ ponseBody"),Z=a((e,t,r)=>{let o=r?.namingStyle,n=(0,m.createTransformContext)({convert:!1,
33
+ outputStyle:o});return(0,m.transform)(e,t,n)},"resolveResponseBody");var R=require("@ez4/transform"),x=require("@ez4/validator"),Q=require("@ez4/gateway");var z=a((e,t)=>e.replaceAll(/\{(\w+)\}/g,(r,o)=>o in t?`${t[o]}`:`{${o}}`),"prep\
34
+ arePathParameters"),tt=a(async(e,t,r)=>{let o=(0,R.transform)(e,t,(0,R.createTransformContext)(
35
+ {convert:!1})),n=(0,x.createValidatorContext)({property:"$path",onCustomValidation:r}),
36
+ s=await(0,x.validate)(o,t,n);if(s.length){let p=(0,x.getUniqueErrorMessages)(s);
37
+ throw new Q.HttpBadRequestError("Malformed path parameters.",p)}return o},"resol\
38
+ vePathParameters");var i=require("@ez4/gateway");var et=a(({status:e,message:t,details:r})=>({status:e,body:{type:"error",message:t,
39
+ details:r}}),"getJsonError"),O=a((e,t,r)=>{switch(e){case 400:return new i.HttpBadRequestError(
40
+ t,r);case 401:return new i.HttpUnauthorizedError(t,r);case 403:return new i.HttpForbiddenError(
41
+ t,r);case 404:return new i.HttpNotFoundError(t,r);case 409:return new i.HttpConflictError(
42
+ t,r);case 415:return new i.HttpUnsupportedMediaTypeError(t,r);case 422:return new i.HttpUnprocessableEntityError(
43
+ t,r);default:return new i.HttpError(e,t,r)}},"getHttpException");var rt=a((e,t,r)=>{let{parameters:o,query:n,querySchema:s,namingStyle:p}=r,d=o?z(
44
+ t,o):t,c=n&&j(n,s,{namingStyle:p}),u=[e];return d&&u.push(d),c&&u.push("?",c),u.
45
+ join("")},"getClientRequestUrl"),ot=a(async(e,t,r)=>{let{authorization:o,headers:n,
46
+ body:s,bodySchema:p,responseSchema:d,namingStyle:c,timeout:u=20}=r,l=s?P(s,p,{namingStyle:c}):
47
+ void 0,y=new AbortController,F=setTimeout(()=>y?.abort("Request timed out"),u*1e3),
48
+ w=await fetch(e,{signal:y?.signal,body:l?.body,method:t,headers:{...n,...o&&{[o.
49
+ header]:o.value},...l?.json&&{"content-type":"application/json"}}});if(clearTimeout(
50
+ F),!w.ok){let U=await w.json();throw O(w.status,U.message,U.details)}let A=await w.
51
+ text();return{status:w.status,...A&&{body:V(A,d,{namingStyle:c})}}},"sendClientR\
52
+ equest");var E=require("@ez4/transform"),H=require("@ez4/validator"),I=require("@ez4/gateway");var nt=a(async(e,t,r)=>{let o=(0,E.transform)(e,t,(0,E.createTransformContext)({
53
+ convert:!1})),n=(0,H.createValidatorContext)({property:"$header",onCustomValidation:r}),
54
+ s=await(0,H.validate)(o,t,n);if(s.length){let p=(0,H.getUniqueErrorMessages)(s);
55
+ throw new I.HttpBadRequestError("Malformed request headers.",p)}return o},"resol\
56
+ veHeaders");var C=require("@ez4/validator"),J=require("@ez4/gateway");var at=a(async(e,t,r)=>{let o=(0,C.createValidatorContext)({property:"$identity",
57
+ onCustomValidation:r}),n=await(0,C.validate)(e,t,o);if(n.length){let s=(0,C.getUniqueErrorMessages)(
58
+ n);throw new J.HttpBadRequestError("Malformed authorizer identity.",s)}return e},
59
+ "resolveIdentity");var k=a(e=>`@${e}`,"getValidatorName");var st=a(async(e,t,r)=>{let o=t[k(r)];o&&await o.validate(e)},"resolveValidation");0&&(module.exports={getClientRequestUrl,getHttpException,getJsonError,preparePathParameters,
60
+ prepareQueryStrings,prepareRequestBody,prepareResponseBody,resolveHeaders,resolveIdentity,
61
+ resolvePathParameters,resolveQueryStrings,resolveRequestBody,resolveResponseBody,
62
+ resolveValidation,sendClientRequest});
56
63
  //# sourceMappingURL=utils.cjs.map
package/dist/utils.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  export * from './utils/client';
2
+ export * from './utils/headers';
2
3
  export * from './utils/parameters';
3
4
  export * from './utils/query';
4
- export * from './utils/headers';
5
5
  export * from './utils/identity';
6
6
  export * from './utils/body';
7
+ export * from './utils/validation';
7
8
  export * from './utils/errors';
package/dist/utils.mjs CHANGED
@@ -1,54 +1,56 @@
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,
1
+ var P=Object.defineProperty;var a=(e,t)=>P(e,"name",{value:t,configurable:!0});import{createTransformContext as x,transform as H}from"@ez4/transform";import{validate as V,
2
+ createValidatorContext as z,getUniqueErrorMessages as O}from"@ez4/validator";import{
3
+ base64Encode as A,isNotNullish as U,isNullish as B}from"@ez4/utils";import{getSchemaProperty as N,
4
+ isArraySchema as $}from"@ez4/schema";import{HttpBadRequestError as M}from"@ez4/gateway";var C=a((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"),vt=a(async(e,t,r,o)=>{let n=r?.
6
+ namingStyle,s=x({convert:!0,inputStyle:n}),i=H(e,t,s),m=z({property:"$query",pathStyle:n,
7
+ onCustomValidation:o}),p=await V(i,t,m);if(p.length){let l=O(p);throw new M("Mal\
8
+ formed query strings.",l)}return i},"resolveQueryStrings"),g=a((e,t)=>{let r=[];
9
+ for(let o in e){let n=t&&N(t,o),s=w(e[o],n);s&&r.push(`${o}=${encodeURIComponent(
10
+ s)}`)}if(r.length)return r.join("&")},"serializeQueryStrings"),w=a((e,t)=>{if(!B(
11
+ e))return e instanceof Date?e.toISOString():e instanceof Array&&(!t||!$(t)||!t.definitions?.
12
+ encoded)?e.map(n=>w(n,t)).filter(n=>U(n)).join(","):e instanceof Object?A(JSON.stringify(
13
+ e)):`${e}`},"serializeQueryStringValue");import{createTransformContext as f,transform as y}from"@ez4/transform";import{validate as Q,
14
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:{type:"error",message:t,
31
- details:r}}),"getJsonError"),E=s((e,t,r)=>{switch(e){case 400:return new W(t,r);case 401:
32
- return new X(t,r);case 403:return new Y(t,r);case 404:return new Z(t,r);case 415:
33
- return new tt(t,r);case 422:return new et(t,r);default:return new rt(e,t,r)}},"g\
34
- etHttpException");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};
15
+ isScalarSchema as v,NamingStyle as k}from"@ez4/schema";import{isAnyArray as F,isAnyObject as D}from"@ez4/utils";
16
+ import{HttpBadRequestError as _}from"@ez4/gateway";var T=a((e,t,r)=>{if(!t||v(t))return{body:e.toString(),json:!1};let o=f({outputStyle:r?.
17
+ namingStyle,convert:!1}),n=y(e,t,o);return{body:JSON.stringify(n),json:!0}},"pre\
18
+ pareRequestBody"),Vt=a(async(e,t,r,o)=>{let n=r?.namingStyle,s=f({convert:!1,inputStyle:n}),
19
+ m=I({onCustomValidation:a((c,d)=>D(c)||F(c)?o?.(y(c,d.schema,s),d):o?.(c,d),"use\
20
+ CustomValidation"),property:"$body",inputStyle:n}),p=await Q(e,t,m);if(p.length){
21
+ let c=J(p);throw new _("Malformed body payload.",c)}return y(e,t,s)},"resolveReq\
22
+ uestBody"),b=a((e,t,r)=>{if(!t||v(t))return e;let o=JSON.parse(e),n=f({outputStyle:k.
23
+ Preserve,inputStyle:r?.namingStyle,convert:!1});return y(o,t,n)},"prepareRespons\
24
+ eBody"),zt=a((e,t,r)=>{let o=r?.namingStyle,n=f({convert:!1,outputStyle:o});return y(
25
+ e,t,n)},"resolveResponseBody");import{createTransformContext as G,transform as K}from"@ez4/transform";import{validate as L,
26
+ getUniqueErrorMessages as W,createValidatorContext as X}from"@ez4/validator";import{
27
+ HttpBadRequestError as Y}from"@ez4/gateway";var q=a((e,t)=>e.replaceAll(/\{(\w+)\}/g,(r,o)=>o in t?`${t[o]}`:`{${o}}`),"prep\
28
+ arePathParameters"),$t=a(async(e,t,r)=>{let o=K(e,t,G({convert:!1})),n=X({property:"\
29
+ $path",onCustomValidation:r}),s=await L(o,t,n);if(s.length){let i=W(s);throw new Y(
30
+ "Malformed path parameters.",i)}return o},"resolvePathParameters");import{HttpBadRequestError as Z,HttpUnauthorizedError as tt,HttpForbiddenError as et,
31
+ HttpNotFoundError as rt,HttpConflictError as ot,HttpUnsupportedMediaTypeError as nt,
32
+ HttpUnprocessableEntityError as at,HttpError as st}from"@ez4/gateway";var Jt=a(({status:e,message:t,details:r})=>({status:e,body:{type:"error",message:t,
33
+ details:r}}),"getJsonError"),R=a((e,t,r)=>{switch(e){case 400:return new Z(t,r);case 401:
34
+ return new tt(t,r);case 403:return new et(t,r);case 404:return new rt(t,r);case 409:
35
+ return new ot(t,r);case 415:return new nt(t,r);case 422:return new at(t,r);default:
36
+ return new st(e,t,r)}},"getHttpException");var Lt=a((e,t,r)=>{let{parameters:o,query:n,querySchema:s,namingStyle:i}=r,m=o?q(
37
+ t,o):t,p=n&&C(n,s,{namingStyle:i}),l=[e];return m&&l.push(m),p&&l.push("?",p),l.
38
+ join("")},"getClientRequestUrl"),Wt=a(async(e,t,r)=>{let{authorization:o,headers:n,
39
+ body:s,bodySchema:i,responseSchema:m,namingStyle:p,timeout:l=20}=r,c=s?T(s,i,{namingStyle:p}):
40
+ void 0,d=new AbortController,j=setTimeout(()=>d?.abort("Request timed out"),l*1e3),
41
+ u=await fetch(e,{signal:d?.signal,body:c?.body,method:t,headers:{...n,...o&&{[o.
42
+ header]:o.value},...c?.json&&{"content-type":"application/json"}}});if(clearTimeout(
43
+ j),!u.ok){let h=await u.json();throw R(u.status,h.message,h.details)}let S=await u.
44
+ text();return{status:u.status,...S&&{body:b(S,m,{namingStyle:p})}}},"sendClientR\
45
+ equest");import{createTransformContext as it,transform as pt}from"@ez4/transform";import{
46
+ validate as ct,createValidatorContext as mt,getUniqueErrorMessages as lt}from"@ez4/validator";
47
+ import{HttpBadRequestError as dt}from"@ez4/gateway";var re=a(async(e,t,r)=>{let o=pt(e,t,it({convert:!1})),n=mt({property:"$header",
48
+ onCustomValidation:r}),s=await ct(o,t,n);if(s.length){let i=lt(s);throw new dt("\
49
+ Malformed request headers.",i)}return o},"resolveHeaders");import{validate as ut,createValidatorContext as yt,getUniqueErrorMessages as ft}from"@ez4/validator";
50
+ import{HttpBadRequestError as St}from"@ez4/gateway";var ie=a(async(e,t,r)=>{let o=yt({property:"$identity",onCustomValidation:r}),n=await ut(
51
+ e,t,o);if(n.length){let s=ft(n);throw new St("Malformed authorizer identity.",s)}
52
+ return e},"resolveIdentity");var E=a(e=>`@${e}`,"getValidatorName");var ue=a(async(e,t,r)=>{let o=t[E(r)];o&&await o.validate(e)},"resolveValidation");export{Lt as getClientRequestUrl,R as getHttpException,Jt as getJsonError,q as preparePathParameters,
53
+ C as prepareQueryStrings,T as prepareRequestBody,b as prepareResponseBody,re as resolveHeaders,
54
+ ie as resolveIdentity,$t as resolvePathParameters,vt as resolveQueryStrings,Vt as resolveRequestBody,
55
+ zt as resolveResponseBody,ue as resolveValidation,Wt as sendClientRequest};
54
56
  //# 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.36.0",
4
+ "version": "0.38.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.36.0",
55
- "@ez4/project": "^0.36.0",
56
- "@ez4/reflection": "^0.36.0",
57
- "@ez4/schema": "^0.36.0",
58
- "@ez4/transform": "^0.36.0",
59
- "@ez4/utils": "^0.36.0",
60
- "@ez4/validator": "^0.36.0"
54
+ "@ez4/common": "^0.38.0",
55
+ "@ez4/project": "^0.38.0",
56
+ "@ez4/reflection": "^0.38.0",
57
+ "@ez4/schema": "^0.38.0",
58
+ "@ez4/transform": "^0.38.0",
59
+ "@ez4/utils": "^0.38.0",
60
+ "@ez4/validator": "^0.38.0"
61
61
  }
62
62
  }
@@ -1,4 +0,0 @@
1
- import type { AllType, SourceMap, TypeModel } from '@ez4/reflection';
2
- import type { HttpProvider } from './types';
3
- export declare const isHttpProviderDeclaration: (type: AllType) => type is TypeModel;
4
- export declare const getHttpProviderMetadata: (type: AllType, parent: TypeModel, reflection: SourceMap, errorList: Error[]) => HttpProvider | undefined;
@@ -1,6 +0,0 @@
1
- import type { AllType, SourceMap, TypeIntersection, TypeModel, TypeObject } from '@ez4/reflection';
2
- import type { ArraySchema, ObjectSchema, UnionSchema } from '@ez4/schema/library';
3
- type TypeParent = TypeObject | TypeModel | TypeIntersection;
4
- export declare const isWebBodyDeclaration: (type: TypeModel, namespace: string) => boolean;
5
- export declare const getWebBodyMetadata: (type: AllType, parent: TypeParent, reflection: SourceMap, errorList: Error[], namespace: string) => import("@ez4/schema").BooleanSchema | import("@ez4/schema").NumberSchema | import("@ez4/schema").StringSchema | ObjectSchema | UnionSchema | ArraySchema | undefined;
6
- export {};
@@ -1,5 +0,0 @@
1
- import type { AllType, SourceMap, TypeIntersection, TypeModel, TypeObject } from '@ez4/reflection';
2
- type TypeParent = TypeObject | TypeModel | TypeIntersection;
3
- export declare const isWebHeadersDeclaration: (type: TypeModel, namespace: string) => boolean;
4
- export declare const getWebHeadersMetadata: (type: AllType, parent: TypeParent, reflection: SourceMap, errorList: Error[], namespace: string) => import("@ez4/schema").ObjectSchema | undefined;
5
- export {};