@effect/platform 0.62.5 → 0.63.1

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 (123) hide show
  1. package/HttpApi/package.json +6 -0
  2. package/HttpApiBuilder/package.json +6 -0
  3. package/HttpApiClient/package.json +6 -0
  4. package/HttpApiEndpoint/package.json +6 -0
  5. package/HttpApiError/package.json +6 -0
  6. package/HttpApiGroup/package.json +6 -0
  7. package/HttpApiSchema/package.json +6 -0
  8. package/HttpApiSecurity/package.json +6 -0
  9. package/HttpApiSwagger/package.json +6 -0
  10. package/OpenApi/package.json +6 -0
  11. package/README.md +863 -302
  12. package/dist/cjs/HttpApi.js +168 -0
  13. package/dist/cjs/HttpApi.js.map +1 -0
  14. package/dist/cjs/HttpApiBuilder.js +471 -0
  15. package/dist/cjs/HttpApiBuilder.js.map +1 -0
  16. package/dist/cjs/HttpApiClient.js +134 -0
  17. package/dist/cjs/HttpApiClient.js.map +1 -0
  18. package/dist/cjs/HttpApiEndpoint.js +181 -0
  19. package/dist/cjs/HttpApiEndpoint.js.map +1 -0
  20. package/dist/cjs/HttpApiError.js +69 -0
  21. package/dist/cjs/HttpApiError.js.map +1 -0
  22. package/dist/cjs/HttpApiGroup.js +151 -0
  23. package/dist/cjs/HttpApiGroup.js.map +1 -0
  24. package/dist/cjs/HttpApiSchema.js +241 -0
  25. package/dist/cjs/HttpApiSchema.js.map +1 -0
  26. package/dist/cjs/HttpApiSecurity.js +83 -0
  27. package/dist/cjs/HttpApiSecurity.js.map +1 -0
  28. package/dist/cjs/HttpApiSwagger.js +50 -0
  29. package/dist/cjs/HttpApiSwagger.js.map +1 -0
  30. package/dist/cjs/HttpMethod.js +1 -1
  31. package/dist/cjs/HttpMethod.js.map +1 -1
  32. package/dist/cjs/HttpRouter.js +6 -1
  33. package/dist/cjs/HttpRouter.js.map +1 -1
  34. package/dist/cjs/OpenApi.js +317 -0
  35. package/dist/cjs/OpenApi.js.map +1 -0
  36. package/dist/cjs/index.js +21 -1
  37. package/dist/cjs/internal/apiSwagger.js +2 -0
  38. package/dist/cjs/internal/apiSwagger.js.map +1 -0
  39. package/dist/cjs/internal/httpRouter.js +6 -1
  40. package/dist/cjs/internal/httpRouter.js.map +1 -1
  41. package/dist/cjs/internal/multipart.js +5 -1
  42. package/dist/cjs/internal/multipart.js.map +1 -1
  43. package/dist/dts/HttpApi.d.ts +156 -0
  44. package/dist/dts/HttpApi.d.ts.map +1 -0
  45. package/dist/dts/HttpApiBuilder.d.ts +296 -0
  46. package/dist/dts/HttpApiBuilder.d.ts.map +1 -0
  47. package/dist/dts/HttpApiClient.d.ts +31 -0
  48. package/dist/dts/HttpApiClient.d.ts.map +1 -0
  49. package/dist/dts/HttpApiEndpoint.d.ts +350 -0
  50. package/dist/dts/HttpApiEndpoint.d.ts.map +1 -0
  51. package/dist/dts/HttpApiError.d.ts +70 -0
  52. package/dist/dts/HttpApiError.d.ts.map +1 -0
  53. package/dist/dts/HttpApiGroup.d.ts +196 -0
  54. package/dist/dts/HttpApiGroup.d.ts.map +1 -0
  55. package/dist/dts/HttpApiSchema.d.ts +223 -0
  56. package/dist/dts/HttpApiSchema.d.ts.map +1 -0
  57. package/dist/dts/HttpApiSecurity.d.ts +122 -0
  58. package/dist/dts/HttpApiSecurity.d.ts.map +1 -0
  59. package/dist/dts/HttpApiSwagger.d.ts +10 -0
  60. package/dist/dts/HttpApiSwagger.d.ts.map +1 -0
  61. package/dist/dts/HttpMethod.d.ts +16 -0
  62. package/dist/dts/HttpMethod.d.ts.map +1 -1
  63. package/dist/dts/HttpRouter.d.ts +8 -0
  64. package/dist/dts/HttpRouter.d.ts.map +1 -1
  65. package/dist/dts/HttpServerResponse.d.ts +3 -3
  66. package/dist/dts/HttpServerResponse.d.ts.map +1 -1
  67. package/dist/dts/OpenApi.d.ts +348 -0
  68. package/dist/dts/OpenApi.d.ts.map +1 -0
  69. package/dist/dts/index.d.ts +40 -0
  70. package/dist/dts/index.d.ts.map +1 -1
  71. package/dist/dts/internal/apiSwagger.d.ts +2 -0
  72. package/dist/dts/internal/apiSwagger.d.ts.map +1 -0
  73. package/dist/dts/internal/httpRouter.d.ts.map +1 -1
  74. package/dist/esm/HttpApi.js +157 -0
  75. package/dist/esm/HttpApi.js.map +1 -0
  76. package/dist/esm/HttpApiBuilder.js +447 -0
  77. package/dist/esm/HttpApiBuilder.js.map +1 -0
  78. package/dist/esm/HttpApiClient.js +124 -0
  79. package/dist/esm/HttpApiClient.js.map +1 -0
  80. package/dist/esm/HttpApiEndpoint.js +169 -0
  81. package/dist/esm/HttpApiEndpoint.js.map +1 -0
  82. package/dist/esm/HttpApiError.js +59 -0
  83. package/dist/esm/HttpApiError.js.map +1 -0
  84. package/dist/esm/HttpApiGroup.js +140 -0
  85. package/dist/esm/HttpApiGroup.js.map +1 -0
  86. package/dist/esm/HttpApiSchema.js +217 -0
  87. package/dist/esm/HttpApiSchema.js.map +1 -0
  88. package/dist/esm/HttpApiSecurity.js +73 -0
  89. package/dist/esm/HttpApiSecurity.js.map +1 -0
  90. package/dist/esm/HttpApiSwagger.js +40 -0
  91. package/dist/esm/HttpApiSwagger.js.map +1 -0
  92. package/dist/esm/HttpMethod.js +1 -1
  93. package/dist/esm/HttpMethod.js.map +1 -1
  94. package/dist/esm/HttpRouter.js +5 -0
  95. package/dist/esm/HttpRouter.js.map +1 -1
  96. package/dist/esm/OpenApi.js +299 -0
  97. package/dist/esm/OpenApi.js.map +1 -0
  98. package/dist/esm/index.js +40 -0
  99. package/dist/esm/index.js.map +1 -1
  100. package/dist/esm/internal/apiSwagger.js +2 -0
  101. package/dist/esm/internal/apiSwagger.js.map +1 -0
  102. package/dist/esm/internal/httpRouter.js +5 -0
  103. package/dist/esm/internal/httpRouter.js.map +1 -1
  104. package/dist/esm/internal/multipart.js +5 -1
  105. package/dist/esm/internal/multipart.js.map +1 -1
  106. package/package.json +83 -3
  107. package/src/HttpApi.ts +342 -0
  108. package/src/HttpApiBuilder.ts +869 -0
  109. package/src/HttpApiClient.ts +228 -0
  110. package/src/HttpApiEndpoint.ts +818 -0
  111. package/src/HttpApiError.ts +113 -0
  112. package/src/HttpApiGroup.ts +365 -0
  113. package/src/HttpApiSchema.ts +384 -0
  114. package/src/HttpApiSecurity.ts +169 -0
  115. package/src/HttpApiSwagger.ts +46 -0
  116. package/src/HttpMethod.ts +19 -1
  117. package/src/HttpRouter.ts +9 -0
  118. package/src/HttpServerResponse.ts +3 -3
  119. package/src/OpenApi.ts +665 -0
  120. package/src/index.ts +50 -0
  121. package/src/internal/apiSwagger.ts +7 -0
  122. package/src/internal/httpRouter.ts +9 -0
  123. package/src/internal/multipart.ts +5 -1
@@ -0,0 +1,350 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Schema from "@effect/schema/Schema";
5
+ import type { Brand } from "effect/Brand";
6
+ import * as Context from "effect/Context";
7
+ import type { Effect } from "effect/Effect";
8
+ import * as Option from "effect/Option";
9
+ import { type Pipeable } from "effect/Pipeable";
10
+ import type { Redacted } from "effect/Redacted";
11
+ import type * as Types from "effect/Types";
12
+ import * as HttpApiSchema from "./HttpApiSchema.js";
13
+ import type { HttpMethod } from "./HttpMethod.js";
14
+ import * as HttpRouter from "./HttpRouter.js";
15
+ import type { HttpServerResponse } from "./HttpServerResponse.js";
16
+ /**
17
+ * @since 1.0.0
18
+ * @category type ids
19
+ */
20
+ export declare const TypeId: unique symbol;
21
+ /**
22
+ * @since 1.0.0
23
+ * @category type ids
24
+ */
25
+ export type TypeId = typeof TypeId;
26
+ /**
27
+ * @since 1.0.0
28
+ * @category guards
29
+ */
30
+ export declare const isHttpApiEndpoint: (u: unknown) => u is HttpApiEndpoint<any, any, any>;
31
+ /**
32
+ * Represents an API endpoint. An API endpoint is mapped to a single route on
33
+ * the underlying `HttpRouter`.
34
+ *
35
+ * @since 1.0.0
36
+ * @category models
37
+ */
38
+ export interface HttpApiEndpoint<out Name extends string, out Method extends HttpMethod, in out Path = never, in out Payload = never, in out Headers = never, in out Success = void, in out Error = never, out R = never> extends Pipeable {
39
+ readonly [TypeId]: TypeId;
40
+ readonly name: Name;
41
+ readonly path: HttpRouter.PathInput;
42
+ readonly method: Method;
43
+ readonly pathSchema: Option.Option<Schema.Schema<Path, unknown, R>>;
44
+ readonly payloadSchema: Option.Option<Schema.Schema<Payload, unknown, R>>;
45
+ readonly headersSchema: Option.Option<Schema.Schema<Headers, unknown, R>>;
46
+ readonly successSchema: Schema.Schema<Success, unknown, R>;
47
+ readonly errorSchema: Schema.Schema<Error, unknown, R>;
48
+ readonly annotations: Context.Context<never>;
49
+ }
50
+ /**
51
+ * @since 1.0.0
52
+ * @category models
53
+ */
54
+ export declare namespace HttpApiEndpoint {
55
+ /**
56
+ * @since 1.0.0
57
+ * @category models
58
+ */
59
+ interface Any extends Pipeable {
60
+ readonly [TypeId]: TypeId;
61
+ readonly name: string;
62
+ readonly path: HttpRouter.PathInput;
63
+ readonly method: HttpMethod;
64
+ readonly pathSchema: Option.Option<Schema.Schema.Any>;
65
+ readonly payloadSchema: Option.Option<Schema.Schema.Any>;
66
+ readonly headersSchema: Option.Option<Schema.Schema.Any>;
67
+ readonly successSchema: Schema.Schema.Any;
68
+ readonly errorSchema: Schema.Schema.Any;
69
+ readonly annotations: Context.Context<never>;
70
+ }
71
+ /**
72
+ * @since 1.0.0
73
+ * @category models
74
+ */
75
+ interface All extends Pipeable {
76
+ readonly [TypeId]: TypeId;
77
+ readonly name: string;
78
+ readonly path: HttpRouter.PathInput;
79
+ readonly method: HttpMethod;
80
+ readonly pathSchema: Option.Option<Schema.Schema.All>;
81
+ readonly payloadSchema: Option.Option<Schema.Schema.All>;
82
+ readonly headersSchema: Option.Option<Schema.Schema.All>;
83
+ readonly successSchema: Schema.Schema.Any;
84
+ readonly errorSchema: Schema.Schema.All;
85
+ readonly annotations: Context.Context<never>;
86
+ }
87
+ /**
88
+ * @since 1.0.0
89
+ * @category models
90
+ */
91
+ type Success<Endpoint extends All> = Endpoint extends HttpApiEndpoint<infer _Name, infer _Method, infer _Path, infer _Payload, infer _Headers, infer _Success, infer _Error, infer _R> ? _Success : never;
92
+ /**
93
+ * @since 1.0.0
94
+ * @category models
95
+ */
96
+ type Error<Endpoint extends All> = Endpoint extends HttpApiEndpoint<infer _Name, infer _Method, infer _Path, infer _Payload, infer _Headers, infer _Success, infer _Error, infer _R> ? _Error : never;
97
+ /**
98
+ * @since 1.0.0
99
+ * @category models
100
+ */
101
+ type PathParsed<Endpoint extends All> = Endpoint extends HttpApiEndpoint<infer _Name, infer _Method, infer _Path, infer _Payload, infer _Headers, infer _Success, infer _Error, infer _R> ? _Path : never;
102
+ /**
103
+ * @since 1.0.0
104
+ * @category models
105
+ */
106
+ type Payload<Endpoint extends All> = Endpoint extends HttpApiEndpoint<infer _Name, infer _Method, infer _Path, infer _Payload, infer _Headers, infer _Success, infer _Error, infer _R> ? _Payload : never;
107
+ /**
108
+ * @since 1.0.0
109
+ * @category models
110
+ */
111
+ type Headers<Endpoint extends All> = Endpoint extends HttpApiEndpoint<infer _Name, infer _Method, infer _Path, infer _Payload, infer _Headers, infer _Success, infer _Error, infer _R> ? _Headers : never;
112
+ /**
113
+ * @since 1.0.0
114
+ * @category models
115
+ */
116
+ type Request<Endpoint extends All> = {
117
+ readonly path: PathParsed<Endpoint>;
118
+ } & ([Payload<Endpoint>] extends [infer P] ? [P] extends [never] ? {} : {
119
+ readonly payload: P;
120
+ } : {}) & ([Headers<Endpoint>] extends [infer H] ? [H] extends [never] ? {} : {
121
+ readonly headers: H;
122
+ } : {});
123
+ /**
124
+ * @since 1.0.0
125
+ * @category models
126
+ */
127
+ type ClientRequest<Path, Payload, Headers> = (([Path] extends [void] ? {} : {
128
+ readonly path: Path;
129
+ }) & ([Headers] extends [never] ? {} : {
130
+ readonly headers: Headers;
131
+ }) & ([Payload] extends [never] ? {} : [Payload] extends [Brand<HttpApiSchema.MultipartTypeId>] ? {
132
+ readonly payload: FormData;
133
+ } : {
134
+ readonly payload: Payload;
135
+ })) extends infer Req ? keyof Req extends never ? void : Req : void;
136
+ /**
137
+ * @since 1.0.0
138
+ * @category models
139
+ */
140
+ type Context<Endpoint> = Endpoint extends HttpApiEndpoint<infer _Name, infer _Method, infer _Path, infer _Payload, infer _Headers, infer _Success, infer _Error, infer _R> ? _R : never;
141
+ /**
142
+ * @since 1.0.0
143
+ * @category models
144
+ */
145
+ type Handler<Endpoint extends All, E, R> = (request: Types.Simplify<Request<Endpoint>>) => Effect<Success<Endpoint>, E, R>;
146
+ /**
147
+ * @since 1.0.0
148
+ * @category models
149
+ */
150
+ type HandlerRedacted<Endpoint extends All, E, R> = (request: Types.Simplify<Request<Endpoint>>) => Effect<readonly [Success<Endpoint>, Redacted], E, R>;
151
+ /**
152
+ * @since 1.0.0
153
+ * @category models
154
+ */
155
+ type HandlerResponse<Endpoint extends All, E, R> = (request: Types.Simplify<Request<Endpoint>>) => Effect<HttpServerResponse, E, R>;
156
+ /**
157
+ * @since 1.0.0
158
+ * @category models
159
+ */
160
+ type WithName<Endpoints extends All, Name extends string> = Endpoints extends infer Endpoint ? Endpoint extends {
161
+ readonly name: Name;
162
+ } ? Endpoint : never : never;
163
+ /**
164
+ * @since 1.0.0
165
+ * @category models
166
+ */
167
+ type ExcludeName<Endpoints extends All, Name extends string> = Exclude<Endpoints, {
168
+ readonly name: Name;
169
+ }>;
170
+ /**
171
+ * @since 1.0.0
172
+ * @category models
173
+ */
174
+ type HandlerWithName<Endpoints extends All, Name extends string, E, R> = Handler<WithName<Endpoints, Name>, E, R>;
175
+ /**
176
+ * @since 1.0.0
177
+ * @category models
178
+ */
179
+ type HandlerResponseWithName<Endpoints extends All, Name extends string, E, R> = HandlerResponse<WithName<Endpoints, Name>, E, R>;
180
+ /**
181
+ * @since 1.0.0
182
+ * @category models
183
+ */
184
+ type HandlerRedactedWithName<Endpoints extends All, Name extends string, E, R> = HandlerRedacted<WithName<Endpoints, Name>, E, R>;
185
+ /**
186
+ * @since 1.0.0
187
+ * @category models
188
+ */
189
+ type SuccessWithName<Endpoints extends All, Name extends string> = Success<WithName<Endpoints, Name>>;
190
+ /**
191
+ * @since 1.0.0
192
+ * @category models
193
+ */
194
+ type ErrorWithName<Endpoints extends All, Name extends string> = Error<WithName<Endpoints, Name>>;
195
+ /**
196
+ * @since 1.0.0
197
+ * @category models
198
+ */
199
+ type ExcludeProvided<R> = Exclude<R, HttpRouter.HttpRouter.DefaultServices | HttpRouter.HttpRouter.Provided>;
200
+ /**
201
+ * @since 1.0.0
202
+ * @category models
203
+ */
204
+ type ValidatePath<S extends Schema.Schema.Any> = S extends Schema.Schema<infer _A, infer _I, infer _R> ? [_I] extends [Readonly<Record<string, string | undefined>>] ? {} : `Path schema must be encodeable to strings` : {};
205
+ /**
206
+ * @since 1.0.0
207
+ * @category models
208
+ */
209
+ type ValidateHeaders<S extends Schema.Schema.Any> = S extends Schema.Schema<infer _A, infer _I, infer _R> ? [_I] extends [Readonly<Record<string, string | undefined>>] ? {} : `Headers schema must be encodeable to strings` : {};
210
+ /**
211
+ * @since 1.0.0
212
+ * @category models
213
+ */
214
+ type ValidatePayload<Method extends HttpMethod, P extends Schema.Schema.All> = Method extends HttpMethod.NoBody ? P extends Schema.Schema<infer _A, infer _I, infer _R> ? [_I] extends [Readonly<Record<string, string | ReadonlyArray<string> | undefined>>] ? {} : `'${Method}' payload must be encodeable to strings` : {} : {};
215
+ }
216
+ /**
217
+ * @since 1.0.0
218
+ * @category constructors
219
+ */
220
+ export declare const make: <Method extends HttpMethod>(method: Method) => <const Name extends string>(name: Name, path: HttpRouter.PathInput) => HttpApiEndpoint<Name, Method>;
221
+ /**
222
+ * @since 1.0.0
223
+ * @category constructors
224
+ */
225
+ export declare const get: <const Name extends string>(name: Name, path: HttpRouter.PathInput) => HttpApiEndpoint<Name, "GET">;
226
+ /**
227
+ * @since 1.0.0
228
+ * @category constructors
229
+ */
230
+ export declare const post: <const Name extends string>(name: Name, path: HttpRouter.PathInput) => HttpApiEndpoint<Name, "POST">;
231
+ /**
232
+ * @since 1.0.0
233
+ * @category constructors
234
+ */
235
+ export declare const put: <const Name extends string>(name: Name, path: HttpRouter.PathInput) => HttpApiEndpoint<Name, "PUT">;
236
+ /**
237
+ * @since 1.0.0
238
+ * @category constructors
239
+ */
240
+ export declare const patch: <const Name extends string>(name: Name, path: HttpRouter.PathInput) => HttpApiEndpoint<Name, "PATCH">;
241
+ /**
242
+ * @since 1.0.0
243
+ * @category constructors
244
+ */
245
+ export declare const del: <const Name extends string>(name: Name, path: HttpRouter.PathInput) => HttpApiEndpoint<Name, "DELETE">;
246
+ /**
247
+ * Set the schema for the success response of the endpoint. The status code
248
+ * will be inferred from the schema, otherwise it will default to 200.
249
+ *
250
+ * @since 1.0.0
251
+ * @category result
252
+ */
253
+ export declare const setSuccess: {
254
+ <S extends Schema.Schema.Any>(schema: S, annotations?: {
255
+ readonly status?: number | undefined;
256
+ }): <Name extends string, Method extends HttpMethod, _Path, _P, _H, _S, _E, _R>(self: HttpApiEndpoint<Name, Method, _Path, _P, _H, _S, _E, _R>) => HttpApiEndpoint<Name, Method, _Path, _P, _H, Schema.Schema.Type<S>, _E, _R | Schema.Schema.Context<S>>;
257
+ <Name extends string, Method extends HttpMethod, _Path, _P, _H, _S, _E, _R, S extends Schema.Schema.Any>(self: HttpApiEndpoint<Name, Method, _Path, _P, _H, _S, _E, _R>, schema: S, annotations?: {
258
+ readonly status?: number | undefined;
259
+ }): HttpApiEndpoint<Name, Method, _Path, _P, _H, Schema.Schema.Type<S>, _E, _R | Schema.Schema.Context<S>>;
260
+ };
261
+ /**
262
+ * Add an error response schema to the endpoint. The status code
263
+ * will be inferred from the schema, otherwise it will default to 500.
264
+ *
265
+ * @since 1.0.0
266
+ * @category result
267
+ */
268
+ export declare const addError: {
269
+ <E extends Schema.Schema.All>(schema: E, annotations?: {
270
+ readonly status?: number | undefined;
271
+ }): <Name extends string, Method extends HttpMethod, _Path, _P, _H, _S, _E, _R>(self: HttpApiEndpoint<Name, Method, _Path, _P, _H, _S, _E, _R>) => HttpApiEndpoint<Name, Method, _Path, _P, _H, _S, _E | Schema.Schema.Type<E>, _R | Schema.Schema.Context<E>>;
272
+ <Name extends string, Method extends HttpMethod, _Path, _P, _H, _S, _E, _R, E extends Schema.Schema.All>(self: HttpApiEndpoint<Name, Method, _Path, _P, _H, _S, _E, _R>, schema: E, annotations?: {
273
+ readonly status?: number | undefined;
274
+ }): HttpApiEndpoint<Name, Method, _Path, _P, _H, _S, _E | Schema.Schema.Type<E>, _R | Schema.Schema.Context<E>>;
275
+ };
276
+ /**
277
+ * Set the schema for the request body of the endpoint. The schema will be
278
+ * used to validate the request body before the handler is called.
279
+ *
280
+ * For endpoints with no request body, the payload will use the url search
281
+ * parameters.
282
+ *
283
+ * You can set a multipart schema to handle file uploads by using the
284
+ * `HttpApiSchema.Multipart` combinator.
285
+ *
286
+ * @since 1.0.0
287
+ * @category request
288
+ */
289
+ export declare const setPayload: {
290
+ <Method extends HttpMethod, P extends Schema.Schema.All>(schema: P & HttpApiEndpoint.ValidatePayload<Method, P>): <Name extends string, _Path, _P, _H, _S, _E, _R>(self: HttpApiEndpoint<Name, Method, _Path, _P, _H, _S, _E, _R>) => HttpApiEndpoint<Name, Method, _Path, Schema.Schema.Type<P>, _H, _S, _E, _R | Schema.Schema.Context<P>>;
291
+ <Name extends string, Method extends HttpMethod, _Path, _P, _H, _S, _E, _R, P extends Schema.Schema.All>(self: HttpApiEndpoint<Name, Method, _Path, _P, _H, _S, _E, _R>, schema: P & HttpApiEndpoint.ValidatePayload<Method, P>): HttpApiEndpoint<Name, Method, _Path, Schema.Schema.Type<P>, _H, _S, _E, _R | Schema.Schema.Context<P>>;
292
+ };
293
+ /**
294
+ * Set the schema for the path parameters of the endpoint. The schema will be
295
+ * used to validate the path parameters before the handler is called.
296
+ *
297
+ * @since 1.0.0
298
+ * @category request
299
+ */
300
+ export declare const setPath: {
301
+ <Path extends Schema.Schema.Any>(schema: Path & HttpApiEndpoint.ValidatePath<Path>): <Name extends string, Method extends HttpMethod, _Path, _P, _H, _S, _E, _R>(self: HttpApiEndpoint<Name, Method, _Path, _P, _H, _S, _E, _R>) => HttpApiEndpoint<Name, Method, Schema.Schema.Type<Path>, _P, _H, _S, _E, _R | Schema.Schema.Context<Path>>;
302
+ <Name extends string, Method extends HttpMethod, _Path, _P, _H, _S, _E, _R, Path extends Schema.Schema.Any>(self: HttpApiEndpoint<Name, Method, _Path, _P, _H, _S, _E, _R>, schema: Path & HttpApiEndpoint.ValidatePath<Path>): HttpApiEndpoint<Name, Method, Schema.Schema.Type<Path>, _P, _H, _S, _E, _R | Schema.Schema.Context<Path>>;
303
+ };
304
+ /**
305
+ * Set the schema for the headers of the endpoint. The schema will be
306
+ * used to validate the headers before the handler is called.
307
+ *
308
+ * @since 1.0.0
309
+ * @category request
310
+ */
311
+ export declare const setHeaders: {
312
+ <Method extends HttpMethod, H extends Schema.Schema.Any>(schema: H & HttpApiEndpoint.ValidateHeaders<H>): <Name extends string, _Path, _P, _H, _S, _E, _R>(self: HttpApiEndpoint<Name, Method, _Path, _P, _H, _S, _E, _R>) => HttpApiEndpoint<Name, Method, _Path, _P, Schema.Schema.Type<H>, _S, _E, _R | Schema.Schema.Context<H>>;
313
+ <Name extends string, Method extends HttpMethod, _Path, _P, _H, _S, _E, _R, H extends Schema.Schema.Any>(self: HttpApiEndpoint<Name, Method, _Path, _P, _H, _S, _E, _R>, schema: H & HttpApiEndpoint.ValidateHeaders<H>): HttpApiEndpoint<Name, Method, _Path, _P, Schema.Schema.Type<H>, _S, _E, _R | Schema.Schema.Context<H>>;
314
+ };
315
+ /**
316
+ * Add a prefix to the path of the endpoint.
317
+ *
318
+ * @since 1.0.0
319
+ * @category request
320
+ */
321
+ export declare const prefix: {
322
+ (prefix: HttpRouter.PathInput): <A extends HttpApiEndpoint.All>(self: A) => A;
323
+ <A extends HttpApiEndpoint.All>(self: A, prefix: HttpRouter.PathInput): A;
324
+ };
325
+ /**
326
+ * @since 1.0.0
327
+ * @category reflection
328
+ */
329
+ export declare const schemaSuccess: <A extends HttpApiEndpoint.All>(self: A) => Option.Option<Schema.Schema<HttpApiEndpoint.Success<A>, unknown, HttpApiEndpoint.Context<A>>>;
330
+ /**
331
+ * Merge the annotations of the endpoint with the provided context.
332
+ *
333
+ * @since 1.0.0
334
+ * @category annotations
335
+ */
336
+ export declare const annotateMerge: {
337
+ <I>(context: Context.Context<I>): <A extends HttpApiEndpoint.All>(self: A) => A;
338
+ <A extends HttpApiEndpoint.All, I>(self: A, context: Context.Context<I>): A;
339
+ };
340
+ /**
341
+ * Add an annotation to the endpoint.
342
+ *
343
+ * @since 1.0.0
344
+ * @category annotations
345
+ */
346
+ export declare const annotate: {
347
+ <I, S>(tag: Context.Tag<I, S>, value: S): <A extends HttpApiEndpoint.All>(self: A) => A;
348
+ <A extends HttpApiEndpoint.All, I, S>(self: A, tag: Context.Tag<I, S>, value: S): A;
349
+ };
350
+ //# sourceMappingURL=HttpApiEndpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpApiEndpoint.d.ts","sourceRoot":"","sources":["../../src/HttpApiEndpoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import type * as ParseResult from "@effect/schema/ParseResult";
2
+ import * as Schema from "@effect/schema/Schema";
3
+ import * as Effect from "effect/Effect";
4
+ /**
5
+ * @since 1.0.0
6
+ * @category type ids
7
+ */
8
+ export declare const TypeId: unique symbol;
9
+ /**
10
+ * @since 1.0.0
11
+ * @category type ids
12
+ */
13
+ export type TypeId = typeof TypeId;
14
+ /**
15
+ * @since 1.0.0
16
+ * @category schemas
17
+ */
18
+ export interface Issue extends Schema.Struct<{
19
+ _tag: Schema.Literal<[
20
+ "Pointer",
21
+ "Unexpected",
22
+ "Missing",
23
+ "Composite",
24
+ "Refinement",
25
+ "Transformation",
26
+ "Type",
27
+ "Forbidden"
28
+ ]>;
29
+ path: PropertyKeysNoSymbol;
30
+ message: typeof Schema.String;
31
+ }> {
32
+ }
33
+ /**
34
+ * @since 1.0.0
35
+ * @category schemas
36
+ */
37
+ export interface PropertyKeysNoSymbol extends Schema.transform<Schema.Array$<Schema.Union<[typeof Schema.String, typeof Schema.Number]>>, Schema.Array$<Schema.Union<[typeof Schema.SymbolFromSelf, typeof Schema.String, typeof Schema.Number]>>> {
38
+ }
39
+ /**
40
+ * @since 1.0.0
41
+ * @category schemas
42
+ */
43
+ export declare const PropertyKeysNoSymbol: PropertyKeysNoSymbol;
44
+ /**
45
+ * @since 1.0.0
46
+ * @category schemas
47
+ */
48
+ export declare const Issue: Issue;
49
+ declare const HttpApiDecodeError_base: Schema.TaggedErrorClass<HttpApiDecodeError, "HttpApiDecodeError", {
50
+ readonly _tag: Schema.tag<"HttpApiDecodeError">;
51
+ } & {
52
+ issues: Schema.Array$<Issue>;
53
+ message: typeof Schema.String;
54
+ }>;
55
+ /**
56
+ * @since 1.0.0
57
+ * @category errors
58
+ */
59
+ export declare class HttpApiDecodeError extends HttpApiDecodeError_base {
60
+ /**
61
+ * @since 1.0.0
62
+ */
63
+ static fromParseError(error: ParseResult.ParseError): Effect.Effect<HttpApiDecodeError>;
64
+ /**
65
+ * @since 1.0.0
66
+ */
67
+ static refailParseError(error: ParseResult.ParseError): Effect.Effect<never, HttpApiDecodeError>;
68
+ }
69
+ export {};
70
+ //# sourceMappingURL=HttpApiError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpApiError.d.ts","sourceRoot":"","sources":["../../src/HttpApiError.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,WAAW,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAE/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAoD,CAAA;AAEhF;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,MAAM,WAAW,KAAM,SACrB,MAAM,CAAC,MAAM,CACX;IACE,IAAI,EAAE,MAAM,CAAC,OAAO,CAClB;QAAC,SAAS;QAAE,YAAY;QAAE,SAAS;QAAE,WAAW;QAAE,YAAY;QAAE,gBAAgB;QAAE,MAAM;QAAE,WAAW;KAAC,CACvG,CAAA;IACD,IAAI,EAAE,oBAAoB,CAAA;IAC1B,OAAO,EAAE,OAAO,MAAM,CAAC,MAAM,CAAA;CAC9B,CACF;CACD;AAEF;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SACpC,MAAM,CAAC,SAAS,CACd,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EACzE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC,cAAc,EAAE,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CACxG;CACD;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,oBAOlC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAalB,CAAA;;;;;;;AAEF;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,uBAUvC;IACC;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;IAMvF;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC;CAGjG"}
@@ -0,0 +1,196 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Schema from "@effect/schema/Schema";
5
+ import * as Chunk from "effect/Chunk";
6
+ import * as Context from "effect/Context";
7
+ import { type Pipeable } from "effect/Pipeable";
8
+ import * as HttpApiEndpoint from "./HttpApiEndpoint.js";
9
+ import type { HttpApiDecodeError } from "./HttpApiError.js";
10
+ import type { PathInput } from "./HttpRouter.js";
11
+ /**
12
+ * @since 1.0.0
13
+ * @category type ids
14
+ */
15
+ export declare const TypeId: unique symbol;
16
+ /**
17
+ * @since 1.0.0
18
+ * @category type ids
19
+ */
20
+ export type TypeId = typeof TypeId;
21
+ /**
22
+ * @since 1.0.0
23
+ * @category guards
24
+ */
25
+ export declare const isHttpApiGroup: (u: unknown) => u is HttpApiGroup.Any;
26
+ /**
27
+ * An `HttpApiGroup` is a collection of `HttpApiEndpoint`s. You can use an `HttpApiGroup` to
28
+ * represent a portion of your domain.
29
+ *
30
+ * The endpoints can be implemented later using the `HttpApiBuilder.group` api.
31
+ *
32
+ * @since 1.0.0
33
+ * @category models
34
+ */
35
+ export interface HttpApiGroup<out Name extends string, out Endpoints extends HttpApiEndpoint.HttpApiEndpoint.All = never, in out Error = HttpApiDecodeError, out ErrorR = never> extends Pipeable {
36
+ new (_: never): {};
37
+ readonly [TypeId]: TypeId;
38
+ readonly identifier: Name;
39
+ readonly endpoints: Chunk.Chunk<Endpoints>;
40
+ readonly errorSchema: Schema.Schema<Error, unknown, ErrorR>;
41
+ readonly annotations: Context.Context<never>;
42
+ }
43
+ /**
44
+ * @since 1.0.0
45
+ * @category models
46
+ */
47
+ export declare namespace HttpApiGroup {
48
+ /**
49
+ * @since 1.0.0
50
+ * @category models
51
+ */
52
+ type Any = HttpApiGroup<any, any, any, any> | HttpApiGroup<any, any, any, never> | HttpApiGroup<any, any, never, never>;
53
+ /**
54
+ * @since 1.0.0
55
+ * @category models
56
+ */
57
+ interface Service<Name extends string> {
58
+ readonly _: unique symbol;
59
+ readonly name: Name;
60
+ }
61
+ /**
62
+ * @since 1.0.0
63
+ * @category models
64
+ */
65
+ type ToService<Group> = Group extends HttpApiGroup<infer Name, infer _Endpoints, infer _Error, infer _ErrorR> ? Service<Name> : never;
66
+ /**
67
+ * @since 1.0.0
68
+ * @category models
69
+ */
70
+ type WithName<Group, Name extends string> = Extract<Group, {
71
+ readonly identifier: Name;
72
+ }>;
73
+ /**
74
+ * @since 1.0.0
75
+ * @category models
76
+ */
77
+ type Endpoints<Group> = Group extends HttpApiGroup<infer _Name, infer _Endpoints, infer _Error, infer _ErrorR> ? _Endpoints : never;
78
+ /**
79
+ * @since 1.0.0
80
+ * @category models
81
+ */
82
+ type EndpointsWithName<Group extends Any, Name extends string> = Endpoints<WithName<Group, Name>>;
83
+ /**
84
+ * @since 1.0.0
85
+ * @category models
86
+ */
87
+ type Error<Group> = Group extends HttpApiGroup<infer _Name, infer _Endpoints, infer _Error, infer _ErrorR> ? _Error : never;
88
+ /**
89
+ * @since 1.0.0
90
+ * @category models
91
+ */
92
+ type ErrorWithName<Group extends Any, Name extends string> = Error<WithName<Group, Name>>;
93
+ /**
94
+ * @since 1.0.0
95
+ * @category models
96
+ */
97
+ type Context<Group> = Group extends HttpApiGroup<infer _Name, infer _Endpoints, infer _Error, infer _ErrorR> ? _ErrorR | HttpApiEndpoint.HttpApiEndpoint.Context<_Endpoints> : never;
98
+ /**
99
+ * @since 1.0.0
100
+ * @category models
101
+ */
102
+ type ContextWithName<Group extends Any, Name extends string> = Context<WithName<Group, Name>>;
103
+ }
104
+ /**
105
+ * An `HttpApiGroup` is a collection of `HttpApiEndpoint`s. You can use an `HttpApiGroup` to
106
+ * represent a portion of your domain.
107
+ *
108
+ * The endpoints can be implemented later using the `HttpApiBuilder.group` api.
109
+ *
110
+ * @since 1.0.0
111
+ * @category constructors
112
+ */
113
+ export declare const make: <Name extends string>(identifier: Name) => HttpApiGroup<Name>;
114
+ /**
115
+ * Add an `HttpApiEndpoint` to an `HttpApiGroup`.
116
+ *
117
+ * @since 1.0.0
118
+ * @category endpoints
119
+ */
120
+ export declare const add: {
121
+ <A extends HttpApiEndpoint.HttpApiEndpoint.All>(endpoint: A): <Name extends string, Endpoints extends HttpApiEndpoint.HttpApiEndpoint.All, Error, ErrorR>(self: HttpApiGroup<Name, Endpoints, Error, ErrorR>) => HttpApiGroup<Name, Endpoints | A, Error, ErrorR>;
122
+ <Name extends string, Endpoints extends HttpApiEndpoint.HttpApiEndpoint.All, Error, ErrorR, A extends HttpApiEndpoint.HttpApiEndpoint.All>(self: HttpApiGroup<Name, Endpoints, Error, ErrorR>, endpoint: A): HttpApiGroup<Name, Endpoints | A, Error, ErrorR>;
123
+ };
124
+ /**
125
+ * Add an error schema to an `HttpApiGroup`, which is shared by all endpoints in the
126
+ * group.
127
+ *
128
+ * @since 1.0.0
129
+ * @category errors
130
+ */
131
+ export declare const addError: {
132
+ <A, I, R>(schema: Schema.Schema<A, I, R>, annotations?: {
133
+ readonly status?: number | undefined;
134
+ }): <Name extends string, Endpoints extends HttpApiEndpoint.HttpApiEndpoint.All, Error, ErrorR>(self: HttpApiGroup<Name, Endpoints, Error, ErrorR>) => HttpApiGroup<Name, Endpoints, Error | A, ErrorR | R>;
135
+ <Name extends string, Endpoints extends HttpApiEndpoint.HttpApiEndpoint.All, Error, ErrorR, A, I, R>(self: HttpApiGroup<Name, Endpoints, Error, ErrorR>, schema: Schema.Schema<A, I, R>, annotations?: {
136
+ readonly status?: number | undefined;
137
+ }): HttpApiGroup<Name, Endpoints, Error | A, ErrorR | R>;
138
+ };
139
+ /**
140
+ * Add a path prefix to all endpoints in an `HttpApiGroup`. Note that this will only
141
+ * add the prefix to the endpoints before this api is called.
142
+ *
143
+ * @since 1.0.0
144
+ * @category endpoints
145
+ */
146
+ export declare const prefix: {
147
+ (prefix: PathInput): <Name extends string, Endpoints extends HttpApiEndpoint.HttpApiEndpoint.All, Error, ErrorR>(self: HttpApiGroup<Name, Endpoints, Error, ErrorR>) => HttpApiGroup<Name, Endpoints, Error, ErrorR>;
148
+ <Name extends string, Endpoints extends HttpApiEndpoint.HttpApiEndpoint.All, Error, ErrorR>(self: HttpApiGroup<Name, Endpoints, Error, ErrorR>, prefix: PathInput): HttpApiGroup<Name, Endpoints, Error, ErrorR>;
149
+ };
150
+ /**
151
+ * Merge the annotations of an `HttpApiGroup` with a new context.
152
+ *
153
+ * @since 1.0.0
154
+ * @category annotations
155
+ */
156
+ export declare const annotateMerge: {
157
+ <I>(context: Context.Context<I>): <A extends HttpApiGroup.Any>(self: A) => A;
158
+ <A extends HttpApiGroup.Any, I>(self: A, context: Context.Context<I>): A;
159
+ };
160
+ /**
161
+ * Add an annotation to an `HttpApiGroup`.
162
+ *
163
+ * @since 1.0.0
164
+ * @category annotations
165
+ */
166
+ export declare const annotate: {
167
+ <I, S>(tag: Context.Tag<I, S>, value: S): <A extends HttpApiGroup.Any>(self: A) => A;
168
+ <A extends HttpApiGroup.Any, I, S>(self: A, tag: Context.Tag<I, S>, value: S): A;
169
+ };
170
+ /**
171
+ * For each endpoint in an `HttpApiGroup`, update the annotations with a new
172
+ * context.
173
+ *
174
+ * Note that this will only update the annotations before this api is called.
175
+ *
176
+ * @since 1.0.0
177
+ * @category annotations
178
+ */
179
+ export declare const annotateEndpointsMerge: {
180
+ <I>(context: Context.Context<I>): <A extends HttpApiGroup.Any>(self: A) => A;
181
+ <A extends HttpApiGroup.Any, I>(self: A, context: Context.Context<I>): A;
182
+ };
183
+ /**
184
+ * For each endpoint in an `HttpApiGroup`, add an annotation.
185
+ *
186
+ * Note that this will only add the annotation to the endpoints before this api
187
+ * is called.
188
+ *
189
+ * @since 1.0.0
190
+ * @category annotations
191
+ */
192
+ export declare const annotateEndpoints: {
193
+ <I, S>(tag: Context.Tag<I, S>, value: S): <A extends HttpApiGroup.Any>(self: A) => A;
194
+ <A extends HttpApiGroup.Any, I, S>(self: A, tag: Context.Tag<I, S>, value: S): A;
195
+ };
196
+ //# sourceMappingURL=HttpApiGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpApiGroup.d.ts","sourceRoot":"","sources":["../../src/HttpApiGroup.ts"],"names":[],"mappings":"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"}