@effect/platform 0.62.5 → 0.63.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/HttpApi/package.json +6 -0
- package/HttpApiBuilder/package.json +6 -0
- package/HttpApiClient/package.json +6 -0
- package/HttpApiEndpoint/package.json +6 -0
- package/HttpApiError/package.json +6 -0
- package/HttpApiGroup/package.json +6 -0
- package/HttpApiSchema/package.json +6 -0
- package/HttpApiSecurity/package.json +6 -0
- package/HttpApiSwagger/package.json +6 -0
- package/OpenApi/package.json +6 -0
- package/README.md +863 -302
- package/dist/cjs/HttpApi.js +168 -0
- package/dist/cjs/HttpApi.js.map +1 -0
- package/dist/cjs/HttpApiBuilder.js +471 -0
- package/dist/cjs/HttpApiBuilder.js.map +1 -0
- package/dist/cjs/HttpApiClient.js +134 -0
- package/dist/cjs/HttpApiClient.js.map +1 -0
- package/dist/cjs/HttpApiEndpoint.js +181 -0
- package/dist/cjs/HttpApiEndpoint.js.map +1 -0
- package/dist/cjs/HttpApiError.js +69 -0
- package/dist/cjs/HttpApiError.js.map +1 -0
- package/dist/cjs/HttpApiGroup.js +151 -0
- package/dist/cjs/HttpApiGroup.js.map +1 -0
- package/dist/cjs/HttpApiSchema.js +241 -0
- package/dist/cjs/HttpApiSchema.js.map +1 -0
- package/dist/cjs/HttpApiSecurity.js +83 -0
- package/dist/cjs/HttpApiSecurity.js.map +1 -0
- package/dist/cjs/HttpApiSwagger.js +50 -0
- package/dist/cjs/HttpApiSwagger.js.map +1 -0
- package/dist/cjs/HttpMethod.js +1 -1
- package/dist/cjs/HttpMethod.js.map +1 -1
- package/dist/cjs/HttpRouter.js +6 -1
- package/dist/cjs/HttpRouter.js.map +1 -1
- package/dist/cjs/OpenApi.js +317 -0
- package/dist/cjs/OpenApi.js.map +1 -0
- package/dist/cjs/index.js +21 -1
- package/dist/cjs/internal/apiSwagger.js +2 -0
- package/dist/cjs/internal/apiSwagger.js.map +1 -0
- package/dist/cjs/internal/httpRouter.js +6 -1
- package/dist/cjs/internal/httpRouter.js.map +1 -1
- package/dist/cjs/internal/multipart.js +5 -1
- package/dist/cjs/internal/multipart.js.map +1 -1
- package/dist/dts/HttpApi.d.ts +156 -0
- package/dist/dts/HttpApi.d.ts.map +1 -0
- package/dist/dts/HttpApiBuilder.d.ts +296 -0
- package/dist/dts/HttpApiBuilder.d.ts.map +1 -0
- package/dist/dts/HttpApiClient.d.ts +31 -0
- package/dist/dts/HttpApiClient.d.ts.map +1 -0
- package/dist/dts/HttpApiEndpoint.d.ts +350 -0
- package/dist/dts/HttpApiEndpoint.d.ts.map +1 -0
- package/dist/dts/HttpApiError.d.ts +70 -0
- package/dist/dts/HttpApiError.d.ts.map +1 -0
- package/dist/dts/HttpApiGroup.d.ts +196 -0
- package/dist/dts/HttpApiGroup.d.ts.map +1 -0
- package/dist/dts/HttpApiSchema.d.ts +223 -0
- package/dist/dts/HttpApiSchema.d.ts.map +1 -0
- package/dist/dts/HttpApiSecurity.d.ts +122 -0
- package/dist/dts/HttpApiSecurity.d.ts.map +1 -0
- package/dist/dts/HttpApiSwagger.d.ts +10 -0
- package/dist/dts/HttpApiSwagger.d.ts.map +1 -0
- package/dist/dts/HttpMethod.d.ts +16 -0
- package/dist/dts/HttpMethod.d.ts.map +1 -1
- package/dist/dts/HttpRouter.d.ts +8 -0
- package/dist/dts/HttpRouter.d.ts.map +1 -1
- package/dist/dts/HttpServerResponse.d.ts +3 -3
- package/dist/dts/HttpServerResponse.d.ts.map +1 -1
- package/dist/dts/OpenApi.d.ts +348 -0
- package/dist/dts/OpenApi.d.ts.map +1 -0
- package/dist/dts/index.d.ts +40 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/apiSwagger.d.ts +2 -0
- package/dist/dts/internal/apiSwagger.d.ts.map +1 -0
- package/dist/dts/internal/httpRouter.d.ts.map +1 -1
- package/dist/esm/HttpApi.js +157 -0
- package/dist/esm/HttpApi.js.map +1 -0
- package/dist/esm/HttpApiBuilder.js +447 -0
- package/dist/esm/HttpApiBuilder.js.map +1 -0
- package/dist/esm/HttpApiClient.js +124 -0
- package/dist/esm/HttpApiClient.js.map +1 -0
- package/dist/esm/HttpApiEndpoint.js +169 -0
- package/dist/esm/HttpApiEndpoint.js.map +1 -0
- package/dist/esm/HttpApiError.js +59 -0
- package/dist/esm/HttpApiError.js.map +1 -0
- package/dist/esm/HttpApiGroup.js +140 -0
- package/dist/esm/HttpApiGroup.js.map +1 -0
- package/dist/esm/HttpApiSchema.js +217 -0
- package/dist/esm/HttpApiSchema.js.map +1 -0
- package/dist/esm/HttpApiSecurity.js +73 -0
- package/dist/esm/HttpApiSecurity.js.map +1 -0
- package/dist/esm/HttpApiSwagger.js +40 -0
- package/dist/esm/HttpApiSwagger.js.map +1 -0
- package/dist/esm/HttpMethod.js +1 -1
- package/dist/esm/HttpMethod.js.map +1 -1
- package/dist/esm/HttpRouter.js +5 -0
- package/dist/esm/HttpRouter.js.map +1 -1
- package/dist/esm/OpenApi.js +299 -0
- package/dist/esm/OpenApi.js.map +1 -0
- package/dist/esm/index.js +40 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/apiSwagger.js +2 -0
- package/dist/esm/internal/apiSwagger.js.map +1 -0
- package/dist/esm/internal/httpRouter.js +5 -0
- package/dist/esm/internal/httpRouter.js.map +1 -1
- package/dist/esm/internal/multipart.js +5 -1
- package/dist/esm/internal/multipart.js.map +1 -1
- package/package.json +83 -3
- package/src/HttpApi.ts +342 -0
- package/src/HttpApiBuilder.ts +869 -0
- package/src/HttpApiClient.ts +228 -0
- package/src/HttpApiEndpoint.ts +818 -0
- package/src/HttpApiError.ts +113 -0
- package/src/HttpApiGroup.ts +365 -0
- package/src/HttpApiSchema.ts +384 -0
- package/src/HttpApiSecurity.ts +169 -0
- package/src/HttpApiSwagger.ts +46 -0
- package/src/HttpMethod.ts +19 -1
- package/src/HttpRouter.ts +9 -0
- package/src/HttpServerResponse.ts +3 -3
- package/src/OpenApi.ts +665 -0
- package/src/index.ts +50 -0
- package/src/internal/apiSwagger.ts +7 -0
- package/src/internal/httpRouter.ts +9 -0
- package/src/internal/multipart.ts +5 -1
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
import * as Chunk from "effect/Chunk";
|
|
2
|
+
import * as Context from "effect/Context";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
import { type Pipeable } from "effect/Pipeable";
|
|
6
|
+
import * as Redacted from "effect/Redacted";
|
|
7
|
+
import type { Scope } from "effect/Scope";
|
|
8
|
+
import type { Covariant, NoInfer } from "effect/Types";
|
|
9
|
+
import type { Cookie } from "./Cookies.js";
|
|
10
|
+
import * as HttpApi from "./HttpApi.js";
|
|
11
|
+
import * as HttpApiEndpoint from "./HttpApiEndpoint.js";
|
|
12
|
+
import { HttpApiDecodeError } from "./HttpApiError.js";
|
|
13
|
+
import type * as HttpApiGroup from "./HttpApiGroup.js";
|
|
14
|
+
import type * as HttpApiSecurity from "./HttpApiSecurity.js";
|
|
15
|
+
import * as HttpApp from "./HttpApp.js";
|
|
16
|
+
import * as HttpMiddleware from "./HttpMiddleware.js";
|
|
17
|
+
import * as HttpRouter from "./HttpRouter.js";
|
|
18
|
+
import * as HttpServer from "./HttpServer.js";
|
|
19
|
+
import * as HttpServerRequest from "./HttpServerRequest.js";
|
|
20
|
+
declare const Router_base: HttpRouter.HttpRouter.TagClass<Router, "@effect/platform/HttpApiBuilder/Router", unknown, HttpRouter.HttpRouter.DefaultServices>;
|
|
21
|
+
/**
|
|
22
|
+
* The router that the API endpoints are attached to.
|
|
23
|
+
*
|
|
24
|
+
* @since 1.0.0
|
|
25
|
+
* @category router
|
|
26
|
+
*/
|
|
27
|
+
export declare class Router extends Router_base {
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Build an `HttpApp` from an `HttpApi` instance, and serve it using an
|
|
31
|
+
* `HttpServer`.
|
|
32
|
+
*
|
|
33
|
+
* Optionally, you can provide a middleware function that will be applied to
|
|
34
|
+
* the `HttpApp` before serving.
|
|
35
|
+
*
|
|
36
|
+
* @since 1.0.0
|
|
37
|
+
* @category constructors
|
|
38
|
+
*/
|
|
39
|
+
export declare const serve: {
|
|
40
|
+
(): Layer.Layer<never, never, HttpServer.HttpServer | HttpApi.HttpApi.Service | HttpRouter.HttpRouter.DefaultServices>;
|
|
41
|
+
<R>(middleware: (httpApp: HttpApp.Default) => HttpApp.Default<never, R>): Layer.Layer<never, never, HttpServer.HttpServer | HttpRouter.HttpRouter.DefaultServices | Exclude<R, Scope | HttpServerRequest.HttpServerRequest> | HttpApi.HttpApi.Service>;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Construct an `HttpApp` from an `HttpApi` instance.
|
|
45
|
+
*
|
|
46
|
+
* @since 1.0.0
|
|
47
|
+
* @category constructors
|
|
48
|
+
*/
|
|
49
|
+
export declare const httpApp: Effect.Effect<HttpApp.Default, never, Router | HttpApi.HttpApi.Service | HttpRouter.HttpRouter.DefaultServices>;
|
|
50
|
+
/**
|
|
51
|
+
* Build a root level `Layer` from an `HttpApi` instance.
|
|
52
|
+
*
|
|
53
|
+
* The `Layer` will provide the `HttpApi` service, and will require the
|
|
54
|
+
* implementation for all the `HttpApiGroup`'s contained in the `HttpApi`.
|
|
55
|
+
*
|
|
56
|
+
* The resulting `Layer` can be provided to the `HttpApiBuilder.serve` layer.
|
|
57
|
+
*
|
|
58
|
+
* @since 1.0.0
|
|
59
|
+
* @category constructors
|
|
60
|
+
*/
|
|
61
|
+
export declare const api: <Groups extends HttpApiGroup.HttpApiGroup.Any, Error, ErrorR>(self: HttpApi.HttpApi<Groups, Error, ErrorR>) => Layer.Layer<HttpApi.HttpApi.Service, never, HttpApiGroup.HttpApiGroup.ToService<Groups> | ErrorR>;
|
|
62
|
+
/**
|
|
63
|
+
* @since 1.0.0
|
|
64
|
+
* @category handlers
|
|
65
|
+
*/
|
|
66
|
+
export declare const HandlersTypeId: unique symbol;
|
|
67
|
+
/**
|
|
68
|
+
* @since 1.0.0
|
|
69
|
+
* @category handlers
|
|
70
|
+
*/
|
|
71
|
+
export type HandlersTypeId = typeof HandlersTypeId;
|
|
72
|
+
/**
|
|
73
|
+
* Represents a handled, or partially handled, `HttpApiGroup`.
|
|
74
|
+
*
|
|
75
|
+
* @since 1.0.0
|
|
76
|
+
* @category handlers
|
|
77
|
+
*/
|
|
78
|
+
export interface Handlers<E, R, Endpoints extends HttpApiEndpoint.HttpApiEndpoint.All = never> extends Pipeable {
|
|
79
|
+
readonly [HandlersTypeId]: {
|
|
80
|
+
_Endpoints: Covariant<Endpoints>;
|
|
81
|
+
};
|
|
82
|
+
readonly group: HttpApiGroup.HttpApiGroup<any, HttpApiEndpoint.HttpApiEndpoint.All, any, R>;
|
|
83
|
+
readonly handlers: Chunk.Chunk<Handlers.Item<E, R>>;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* @since 1.0.0
|
|
87
|
+
* @category handlers
|
|
88
|
+
*/
|
|
89
|
+
export declare namespace Handlers {
|
|
90
|
+
/**
|
|
91
|
+
* @since 1.0.0
|
|
92
|
+
* @category handlers
|
|
93
|
+
*/
|
|
94
|
+
type Middleware<E, R, E1, R1> = (self: HttpRouter.Route.Middleware<E, R>) => HttpApp.Default<E1, R1>;
|
|
95
|
+
/**
|
|
96
|
+
* @since 1.0.0
|
|
97
|
+
* @category handlers
|
|
98
|
+
*/
|
|
99
|
+
type Item<E, R> = {
|
|
100
|
+
readonly _tag: "Handler";
|
|
101
|
+
readonly endpoint: HttpApiEndpoint.HttpApiEndpoint.Any;
|
|
102
|
+
readonly handler: HttpApiEndpoint.HttpApiEndpoint.Handler<any, E, R>;
|
|
103
|
+
readonly withFullResponse: boolean;
|
|
104
|
+
} | {
|
|
105
|
+
readonly _tag: "Middleware";
|
|
106
|
+
readonly middleware: Middleware<any, any, E, R>;
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Create a `Layer` that will implement all the endpoints in an `HttpApiGroup`.
|
|
111
|
+
*
|
|
112
|
+
* An unimplemented `Handlers` instance is passed to the `build` function, which
|
|
113
|
+
* you can use to add handlers to the group.
|
|
114
|
+
*
|
|
115
|
+
* You can implement endpoints using the `HttpApiBuilder.handle` api.
|
|
116
|
+
*
|
|
117
|
+
* @since 1.0.0
|
|
118
|
+
* @category handlers
|
|
119
|
+
*/
|
|
120
|
+
export declare const group: <Groups extends HttpApiGroup.HttpApiGroup.Any, ApiError, ApiErrorR, const Name extends Groups["identifier"], RH, EX = never, RX = never>(api: HttpApi.HttpApi<Groups, ApiError, ApiErrorR>, groupName: Name, build: (handlers: Handlers<never, never, HttpApiGroup.HttpApiGroup.EndpointsWithName<Groups, Name>>) => Handlers<NoInfer<ApiError> | HttpApiGroup.HttpApiGroup.ErrorWithName<Groups, Name>, RH> | Effect.Effect<Handlers<NoInfer<ApiError> | HttpApiGroup.HttpApiGroup.ErrorWithName<Groups, Name>, RH>, EX, RX>) => Layer.Layer<HttpApiGroup.HttpApiGroup.Service<Name>, EX, RX | RH | HttpApiGroup.HttpApiGroup.ContextWithName<Groups, Name> | ApiErrorR>;
|
|
121
|
+
/**
|
|
122
|
+
* Add the implementation for an `HttpApiEndpoint` to a `Handlers` group.
|
|
123
|
+
*
|
|
124
|
+
* @since 1.0.0
|
|
125
|
+
* @category handlers
|
|
126
|
+
*/
|
|
127
|
+
export declare const handle: {
|
|
128
|
+
<Endpoints extends HttpApiEndpoint.HttpApiEndpoint.All, const Name extends Endpoints["name"], E, R>(name: Name, handler: HttpApiEndpoint.HttpApiEndpoint.HandlerWithName<Endpoints, Name, E, R>): <EG, RG>(self: Handlers<EG, RG, Endpoints>) => Handlers<EG | Exclude<E, HttpApiEndpoint.HttpApiEndpoint.ErrorWithName<Endpoints, Name>> | HttpApiDecodeError, RG | HttpApiEndpoint.HttpApiEndpoint.ExcludeProvided<R>, HttpApiEndpoint.HttpApiEndpoint.ExcludeName<Endpoints, Name>>;
|
|
129
|
+
<Endpoints extends HttpApiEndpoint.HttpApiEndpoint.All, const Name extends Endpoints["name"], E, R>(name: Name, handler: HttpApiEndpoint.HttpApiEndpoint.HandlerResponseWithName<Endpoints, Name, E, R>, options: {
|
|
130
|
+
readonly withFullResponse: true;
|
|
131
|
+
}): <EG, RG>(self: Handlers<EG, RG, Endpoints>) => Handlers<EG | Exclude<E, HttpApiEndpoint.HttpApiEndpoint.ErrorWithName<Endpoints, Name>> | HttpApiDecodeError, RG | HttpApiEndpoint.HttpApiEndpoint.ExcludeProvided<R>, HttpApiEndpoint.HttpApiEndpoint.ExcludeName<Endpoints, Name>>;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Add `HttpMiddleware` to a `Handlers` group.
|
|
135
|
+
*
|
|
136
|
+
* Any errors are required to have a corresponding schema in the API.
|
|
137
|
+
* You can add middleware errors to an `HttpApiGroup` using the `HttpApiGroup.addError`
|
|
138
|
+
* api.
|
|
139
|
+
*
|
|
140
|
+
* @since 1.0.0
|
|
141
|
+
* @category middleware
|
|
142
|
+
*/
|
|
143
|
+
export declare const middleware: <E, R, E1, R1>(middleware: Handlers.Middleware<E, R, E1, R1>) => <Endpoints extends HttpApiEndpoint.HttpApiEndpoint.All>(self: Handlers<E, R, Endpoints>) => Handlers<E1, HttpApiEndpoint.HttpApiEndpoint.ExcludeProvided<R1>, Endpoints>;
|
|
144
|
+
declare const Middleware_base: Context.TagClass<Middleware, "@effect/platform/HttpApiBuilder/Middleware", HttpMiddleware.HttpMiddleware>;
|
|
145
|
+
/**
|
|
146
|
+
* @since 1.0.0
|
|
147
|
+
* @category middleware
|
|
148
|
+
*/
|
|
149
|
+
export declare class Middleware extends Middleware_base {
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* @since 1.0.0
|
|
153
|
+
* @category middleware
|
|
154
|
+
*/
|
|
155
|
+
export declare namespace ApiMiddleware {
|
|
156
|
+
/**
|
|
157
|
+
* @since 1.0.0
|
|
158
|
+
* @category middleware
|
|
159
|
+
*/
|
|
160
|
+
type Fn<Error, R = HttpRouter.HttpRouter.Provided> = (httpApp: HttpApp.Default) => HttpApp.Default<Error, R>;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Create an `HttpApi` level middleware `Layer`.
|
|
164
|
+
*
|
|
165
|
+
* @since 1.0.0
|
|
166
|
+
* @category middleware
|
|
167
|
+
*/
|
|
168
|
+
export declare const middlewareLayer: {
|
|
169
|
+
<EX = never, RX = never>(middleware: ApiMiddleware.Fn<never> | Effect.Effect<ApiMiddleware.Fn<never>, EX, RX>, options?: {
|
|
170
|
+
readonly withContext?: false | undefined;
|
|
171
|
+
}): Layer.Layer<never, EX, RX>;
|
|
172
|
+
<R, EX = never, RX = never>(middleware: ApiMiddleware.Fn<never, R> | Effect.Effect<ApiMiddleware.Fn<never, R>, EX, RX>, options: {
|
|
173
|
+
readonly withContext: true;
|
|
174
|
+
}): Layer.Layer<never, EX, HttpRouter.HttpRouter.ExcludeProvided<R> | RX>;
|
|
175
|
+
<Groups extends HttpApiGroup.HttpApiGroup.Any, Error, ErrorR, EX = never, RX = never>(api: HttpApi.HttpApi<Groups, Error, ErrorR>, middleware: ApiMiddleware.Fn<NoInfer<Error>> | Effect.Effect<ApiMiddleware.Fn<NoInfer<Error>>, EX, RX>, options?: {
|
|
176
|
+
readonly withContext?: false | undefined;
|
|
177
|
+
}): Layer.Layer<never, EX, RX>;
|
|
178
|
+
<Groups extends HttpApiGroup.HttpApiGroup.Any, Error, ErrorR, R, EX = never, RX = never>(api: HttpApi.HttpApi<Groups, Error, ErrorR>, middleware: ApiMiddleware.Fn<NoInfer<Error>, R> | Effect.Effect<ApiMiddleware.Fn<NoInfer<Error>, R>, EX, RX>, options: {
|
|
179
|
+
readonly withContext: true;
|
|
180
|
+
}): Layer.Layer<never, EX, HttpRouter.HttpRouter.ExcludeProvided<R> | RX>;
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* Create an `HttpApi` level middleware `Layer`, that has a `Scope` provided to
|
|
184
|
+
* the constructor.
|
|
185
|
+
*
|
|
186
|
+
* @since 1.0.0
|
|
187
|
+
* @category middleware
|
|
188
|
+
*/
|
|
189
|
+
export declare const middlewareLayerScoped: {
|
|
190
|
+
<EX, RX>(middleware: Effect.Effect<ApiMiddleware.Fn<never>, EX, RX>, options?: {
|
|
191
|
+
readonly withContext?: false | undefined;
|
|
192
|
+
}): Layer.Layer<never, EX, Exclude<RX, Scope>>;
|
|
193
|
+
<R, EX, RX>(middleware: Effect.Effect<ApiMiddleware.Fn<never, R>, EX, RX>, options: {
|
|
194
|
+
readonly withContext: true;
|
|
195
|
+
}): Layer.Layer<never, EX, HttpRouter.HttpRouter.ExcludeProvided<R> | Exclude<RX, Scope>>;
|
|
196
|
+
<Groups extends HttpApiGroup.HttpApiGroup.Any, Error, ErrorR, EX, RX>(api: HttpApi.HttpApi<Groups, Error, ErrorR>, middleware: Effect.Effect<ApiMiddleware.Fn<NoInfer<Error>>, EX, RX>, options?: {
|
|
197
|
+
readonly withContext?: false | undefined;
|
|
198
|
+
}): Layer.Layer<never, EX, Exclude<RX, Scope>>;
|
|
199
|
+
<Groups extends HttpApiGroup.HttpApiGroup.Any, Error, ErrorR, R, EX, RX>(api: HttpApi.HttpApi<Groups, Error, ErrorR>, middleware: Effect.Effect<ApiMiddleware.Fn<NoInfer<Error>, R>, EX, RX>, options: {
|
|
200
|
+
readonly withContext: true;
|
|
201
|
+
}): Layer.Layer<never, EX, HttpRouter.HttpRouter.ExcludeProvided<R> | Exclude<RX, Scope>>;
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* A CORS middleware layer that can be provided to the `HttpApiBuilder.serve` layer.
|
|
205
|
+
*
|
|
206
|
+
* @since 1.0.0
|
|
207
|
+
* @category middleware
|
|
208
|
+
*/
|
|
209
|
+
export declare const middlewareCors: (options?: {
|
|
210
|
+
readonly allowedOrigins?: ReadonlyArray<string> | undefined;
|
|
211
|
+
readonly allowedMethods?: ReadonlyArray<string> | undefined;
|
|
212
|
+
readonly allowedHeaders?: ReadonlyArray<string> | undefined;
|
|
213
|
+
readonly exposedHeaders?: ReadonlyArray<string> | undefined;
|
|
214
|
+
readonly maxAge?: number | undefined;
|
|
215
|
+
readonly credentials?: boolean | undefined;
|
|
216
|
+
} | undefined) => Layer.Layer<never>;
|
|
217
|
+
/**
|
|
218
|
+
* A middleware that adds an openapi.json endpoint to the API.
|
|
219
|
+
*
|
|
220
|
+
* @since 1.0.0
|
|
221
|
+
* @category middleware
|
|
222
|
+
*/
|
|
223
|
+
export declare const middlewareOpenApi: (options?: {
|
|
224
|
+
readonly path?: HttpRouter.PathInput | undefined;
|
|
225
|
+
} | undefined) => Layer.Layer<never, never, HttpApi.HttpApi.Service>;
|
|
226
|
+
/**
|
|
227
|
+
* @since 1.0.0
|
|
228
|
+
* @category middleware
|
|
229
|
+
*/
|
|
230
|
+
export interface SecurityMiddleware<I, EM = never, RM = never> {
|
|
231
|
+
<Endpoints extends HttpApiEndpoint.HttpApiEndpoint.All, E, R>(self: Handlers<E, R, Endpoints>): Handlers<E | EM, Exclude<R, I> | HttpApiEndpoint.HttpApiEndpoint.ExcludeProvided<RM>, Endpoints>;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* @since 1.0.0
|
|
235
|
+
* @category middleware
|
|
236
|
+
*/
|
|
237
|
+
export declare const securityDecode: <Security extends HttpApiSecurity.HttpApiSecurity>(self: Security) => Effect.Effect<HttpApiSecurity.HttpApiSecurity.Type<Security>, never, HttpServerRequest.HttpServerRequest | HttpServerRequest.ParsedSearchParams>;
|
|
238
|
+
/**
|
|
239
|
+
* Set a cookie from an `HttpApiSecurity.HttpApiKey` instance.
|
|
240
|
+
*
|
|
241
|
+
* You can use this api before returning a response from an endpoint handler.
|
|
242
|
+
*
|
|
243
|
+
* ```ts
|
|
244
|
+
* ApiBuilder.handle(
|
|
245
|
+
* "authenticate",
|
|
246
|
+
* (_) => ApiBuilder.securitySetCookie(security, "secret123")
|
|
247
|
+
* )
|
|
248
|
+
* ```
|
|
249
|
+
*
|
|
250
|
+
* @since 1.0.0
|
|
251
|
+
* @category middleware
|
|
252
|
+
*/
|
|
253
|
+
export declare const securitySetCookie: (self: HttpApiSecurity.ApiKey, value: string | Redacted.Redacted, options?: Cookie["options"]) => Effect.Effect<void>;
|
|
254
|
+
/**
|
|
255
|
+
* Make a middleware from an `HttpApiSecurity` instance, that can be used when
|
|
256
|
+
* constructing a `Handlers` group.
|
|
257
|
+
*
|
|
258
|
+
* @since 1.0.0
|
|
259
|
+
* @category middleware
|
|
260
|
+
* @example
|
|
261
|
+
* import { HttpApiBuilder, HttpApiSecurity } from "@effect/platform"
|
|
262
|
+
* import { Schema } from "@effect/schema"
|
|
263
|
+
* import { Context, Effect, Redacted } from "effect"
|
|
264
|
+
*
|
|
265
|
+
* class User extends Schema.Class<User>("User")({
|
|
266
|
+
* id: Schema.Number
|
|
267
|
+
* }) {}
|
|
268
|
+
*
|
|
269
|
+
* class CurrentUser extends Context.Tag("CurrentUser")<CurrentUser, User>() {}
|
|
270
|
+
*
|
|
271
|
+
* class Accounts extends Context.Tag("Accounts")<Accounts, {
|
|
272
|
+
* readonly findUserByAccessToken: (accessToken: string) => Effect.Effect<User>
|
|
273
|
+
* }>() {}
|
|
274
|
+
*
|
|
275
|
+
* const securityMiddleware = Effect.gen(function*() {
|
|
276
|
+
* const accounts = yield* Accounts
|
|
277
|
+
* return HttpApiBuilder.middlewareSecurity(
|
|
278
|
+
* HttpApiSecurity.bearer,
|
|
279
|
+
* CurrentUser,
|
|
280
|
+
* (token) => accounts.findUserByAccessToken(Redacted.value(token))
|
|
281
|
+
* )
|
|
282
|
+
* })
|
|
283
|
+
*/
|
|
284
|
+
export declare const middlewareSecurity: <Security extends HttpApiSecurity.HttpApiSecurity, I, S, EM, RM>(self: Security, tag: Context.Tag<I, S>, f: (credentials: HttpApiSecurity.HttpApiSecurity.Type<Security>) => Effect.Effect<S, EM, RM>) => SecurityMiddleware<I, EM, RM>;
|
|
285
|
+
/**
|
|
286
|
+
* Make a middleware from an `HttpApiSecurity` instance, that can be used when
|
|
287
|
+
* constructing a `Handlers` group.
|
|
288
|
+
*
|
|
289
|
+
* This version does not supply any context to the handlers.
|
|
290
|
+
*
|
|
291
|
+
* @since 1.0.0
|
|
292
|
+
* @category middleware
|
|
293
|
+
*/
|
|
294
|
+
export declare const middlewareSecurityVoid: <Security extends HttpApiSecurity.HttpApiSecurity, X, EM, RM>(self: Security, f: (credentials: HttpApiSecurity.HttpApiSecurity.Type<Security>) => Effect.Effect<X, EM, RM>) => SecurityMiddleware<never, EM, RM>;
|
|
295
|
+
export {};
|
|
296
|
+
//# sourceMappingURL=HttpApiBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpApiBuilder.d.ts","sourceRoot":"","sources":["../../src/HttpApiBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import type { Simplify } from "effect/Types";
|
|
3
|
+
import * as HttpApi from "./HttpApi.js";
|
|
4
|
+
import type { HttpApiEndpoint } from "./HttpApiEndpoint.js";
|
|
5
|
+
import type { HttpApiGroup } from "./HttpApiGroup.js";
|
|
6
|
+
import * as HttpClient from "./HttpClient.js";
|
|
7
|
+
import * as HttpClientError from "./HttpClientError.js";
|
|
8
|
+
/**
|
|
9
|
+
* @since 1.0.0
|
|
10
|
+
* @category models
|
|
11
|
+
*/
|
|
12
|
+
export type Client<A extends HttpApi.HttpApi.Any> = [A] extends [
|
|
13
|
+
HttpApi.HttpApi<infer _Groups, infer _ApiError, infer _ApiErrorR>
|
|
14
|
+
] ? {
|
|
15
|
+
readonly [GroupName in _Groups["identifier"]]: [HttpApiGroup.WithName<_Groups, GroupName>] extends [
|
|
16
|
+
HttpApiGroup<GroupName, infer _Endpoints, infer _GroupError, infer _GroupErrorR>
|
|
17
|
+
] ? {
|
|
18
|
+
readonly [Name in _Endpoints["name"]]: [HttpApiEndpoint.WithName<_Endpoints, Name>] extends [
|
|
19
|
+
HttpApiEndpoint<Name, infer _Method, infer _Path, infer _Payload, infer _Headers, infer _Success, infer _Error, infer _R>
|
|
20
|
+
] ? (request: Simplify<HttpApiEndpoint.ClientRequest<_Path, _Payload, _Headers>>) => Effect.Effect<_Success, _Error | _GroupError | _ApiError | HttpClientError.HttpClientError> : never;
|
|
21
|
+
} : never;
|
|
22
|
+
} : never;
|
|
23
|
+
/**
|
|
24
|
+
* @since 1.0.0
|
|
25
|
+
* @category constructors
|
|
26
|
+
*/
|
|
27
|
+
export declare const make: <A extends HttpApi.HttpApi.Any>(api: A, options?: {
|
|
28
|
+
readonly transformClient?: ((client: HttpClient.HttpClient.Default) => HttpClient.HttpClient.Default) | undefined;
|
|
29
|
+
readonly baseUrl?: string | undefined;
|
|
30
|
+
}) => Effect.Effect<Simplify<Client<A>>, never, HttpApi.HttpApi.Context<A> | HttpClient.HttpClient.Default>;
|
|
31
|
+
//# sourceMappingURL=HttpApiClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpApiClient.d.ts","sourceRoot":"","sources":["../../src/HttpApiClient.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAKvD;;;GAGG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SACrD;IAAC,OAAO,CAAC,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,SAAS,EAAE,MAAM,UAAU,CAAC;CAAC,GAAG;IACpE,QAAQ,EAAE,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,SACxF;QAAC,YAAY,CAAC,SAAS,EAAE,MAAM,UAAU,EAAE,MAAM,WAAW,EAAE,MAAM,YAAY,CAAC;KAAC,GAAG;QACnF,QAAQ,EAAE,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,SAAS;YAC1F,eAAe,CACb,IAAI,EACJ,MAAM,OAAO,EACb,MAAM,KAAK,EACX,MAAM,QAAQ,EACd,MAAM,QAAQ,EACd,MAAM,QAAQ,EACd,MAAM,MAAM,EACZ,MAAM,EAAE,CACT;SACF,GAAG,CACA,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,KACxE,MAAM,CAAC,MAAM,CAChB,QAAQ,EACR,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,eAAe,CACnE,GACD,KAAK;KACR,GACD,KAAK;CACR,GACD,KAAK,CAAA;AAEP;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,OAAO,CAAC,OAAO,CAAC,GAAG,OAC3C,CAAC,YACI;IACR,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IACjH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACtC,KACA,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CA+InG,CAAA"}
|