@forklaunch/hyper-express 1.2.31 → 1.2.33

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 (47) hide show
  1. package/lib/index.d.ts +28 -864
  2. package/lib/index.d.ts.map +1 -0
  3. package/lib/src/cluster/hyperExpress.cluster.d.ts +4 -0
  4. package/lib/src/cluster/hyperExpress.cluster.d.ts.map +1 -0
  5. package/lib/src/handlers/any.d.ts +64 -0
  6. package/lib/src/handlers/any.d.ts.map +1 -0
  7. package/lib/src/handlers/delete.d.ts +69 -0
  8. package/lib/src/handlers/delete.d.ts.map +1 -0
  9. package/lib/src/handlers/get.d.ts +81 -0
  10. package/lib/src/handlers/get.d.ts.map +1 -0
  11. package/lib/src/handlers/head.d.ts +73 -0
  12. package/lib/src/handlers/head.d.ts.map +1 -0
  13. package/lib/src/handlers/middleware.d.ts +72 -0
  14. package/lib/src/handlers/middleware.d.ts.map +1 -0
  15. package/lib/src/handlers/options.d.ts +60 -0
  16. package/lib/src/handlers/options.d.ts.map +1 -0
  17. package/lib/src/handlers/patch.d.ts +95 -0
  18. package/lib/src/handlers/patch.d.ts.map +1 -0
  19. package/lib/src/handlers/post.d.ts +88 -0
  20. package/lib/src/handlers/post.d.ts.map +1 -0
  21. package/lib/src/handlers/put.d.ts +69 -0
  22. package/lib/src/handlers/put.d.ts.map +1 -0
  23. package/lib/src/handlers/trace.d.ts +55 -0
  24. package/lib/src/handlers/trace.d.ts.map +1 -0
  25. package/lib/src/hyperExpressApplication.d.ts +81 -0
  26. package/lib/src/hyperExpressApplication.d.ts.map +1 -0
  27. package/lib/src/hyperExpressRouter.d.ts +18 -0
  28. package/lib/src/hyperExpressRouter.d.ts.map +1 -0
  29. package/lib/src/middleware/contentParse.middleware.d.ts +36 -0
  30. package/lib/src/middleware/contentParse.middleware.d.ts.map +1 -0
  31. package/lib/src/middleware/enrichResponseTransmission.middleware.d.ts +26 -0
  32. package/lib/src/middleware/enrichResponseTransmission.middleware.d.ts.map +1 -0
  33. package/lib/src/middleware/polyfillGetHeaders.middleware.d.ts +26 -0
  34. package/lib/src/middleware/polyfillGetHeaders.middleware.d.ts.map +1 -0
  35. package/lib/src/middleware/swagger.middleware.d.ts +53 -0
  36. package/lib/src/middleware/swagger.middleware.d.ts.map +1 -0
  37. package/lib/src/types/hyperExpress.types.d.ts +52 -0
  38. package/lib/src/types/hyperExpress.types.d.ts.map +1 -0
  39. package/lib/src/types/hyperExpressOptions.types.d.ts +14 -0
  40. package/lib/src/types/hyperExpressOptions.types.d.ts.map +1 -0
  41. package/lib/src/types/websocketMiddleware.types.d.ts +45 -0
  42. package/lib/src/types/websocketMiddleware.types.d.ts.map +1 -0
  43. package/lib/src/webSocket.d.ts +12 -0
  44. package/lib/src/webSocket.d.ts.map +1 -0
  45. package/package.json +31 -30
  46. package/LICENSE +0 -21
  47. package/lib/index.d.mts +0 -896
package/lib/index.d.ts CHANGED
@@ -1,860 +1,20 @@
1
- import * as _forklaunch_core_http from '@forklaunch/core/http';
2
- import { ParamsObject, ResponsesObject, Body, QueryObject, HeadersObject, VersionSchema, SchemaAuthMethods, ContractDetails, ExpressLikeSchemaHandler, ResolvedSessionObject, SessionObject, ExpressLikeApplicationOptions, ExpressLikeRouterOptions, ForklaunchExpressLikeApplication, OpenTelemetryCollector, MetricsDefinition, ParsedQs, StringOnlyObject, MiddlewareContractDetails, PathMatch, TypedHandler, ForklaunchExpressLikeRouter, ForklaunchRouter, TypedMiddlewareDefinition, Method, ContractDetailsOrMiddlewareOrTypedHandler, MiddlewareOrMiddlewareWithTypedHandler } from '@forklaunch/core/http';
3
- import { Request, Response, MiddlewareNext, ServerConstructorOptions, Server, MiddlewareHandler, Router as Router$1, WSRouteOptions, WSRouteHandler } from '@forklaunch/hyper-express-fork';
4
- export { MiddlewareNext as NextFunction, Request, Response, ServerConstructorOptions } from '@forklaunch/hyper-express-fork';
5
- import { AnySchemaValidator, Schema } from '@forklaunch/validator';
6
- import * as uWebsockets from 'uWebSockets.js';
7
- import { BusboyConfig } from 'busboy';
8
- export { BusboyConfig } from 'busboy';
9
- import { CorsOptions } from 'cors';
10
- export { CorsOptions } from 'cors';
11
- import { EventSchema } from '@forklaunch/core/ws';
12
-
13
- /**
14
- * Creates a route handler that matches any HTTP method with schema validation and type safety.
15
- *
16
- * @template SV - The schema validator type
17
- * @template Path - The route path type (must start with '/')
18
- * @template P - The path parameters type
19
- * @template ResBodyMap - The response body map type
20
- * @template ReqBody - The request body type
21
- * @template ReqQuery - The request query parameters type
22
- * @template ReqHeaders - The request headers type
23
- * @template ResHeaders - The response headers type
24
- * @template LocalsObj - The locals object type
25
- *
26
- * @param {SV} schemaValidator - The schema validator instance
27
- * @param {Path} path - The route path
28
- * @param {ContractDetails<SV, 'any', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request<LocalsObj>>} contractDetails - The contract details for the route
29
- * @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]} handlers - The route handlers
30
- *
31
- * @returns {void} - Returns nothing, registers the route with Hyper-Express
32
- *
33
- * @example
34
- * ```typescript
35
- * any(
36
- * schemaValidator,
37
- * '/webhooks',
38
- * {
39
- * summary: 'Webhook endpoint',
40
- * description: 'Handles webhook requests from any HTTP method',
41
- * tags: ['webhooks'],
42
- * responses: {
43
- * 200: {
44
- * description: 'Webhook processed successfully',
45
- * content: {
46
- * 'application/json': {
47
- * schema: {
48
- * type: 'object',
49
- * properties: {
50
- * status: { type: 'string' }
51
- * }
52
- * }
53
- * }
54
- * }
55
- * }
56
- * }
57
- * },
58
- * async (req, res) => {
59
- * const method = req.method;
60
- * const body = await req.json();
61
- * await processWebhook(method, body);
62
- * res.status(200).json({ status: 'processed' });
63
- * }
64
- * );
65
- * ```
66
- */
67
- declare const any: <SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, const VersionedApi extends VersionSchema<SV, "middleware">, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request<LocalsObj>>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<LocalsObj>, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]) => {
68
- _typedHandler: true;
69
- _path: Path;
70
- contractDetails: _forklaunch_core_http.MiddlewareContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<LocalsObj>, Auth>;
71
- handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[];
72
- };
73
-
74
- /**
75
- * Creates a DELETE route handler with schema validation and type safety.
76
- *
77
- * @template SV - The schema validator type
78
- * @template Path - The route path type (must start with '/')
79
- * @template P - The path parameters type
80
- * @template ResBodyMap - The response body map type
81
- * @template ReqBody - The request body type
82
- * @template ReqQuery - The request query parameters type
83
- * @template ReqHeaders - The request headers type
84
- * @template ResHeaders - The response headers type
85
- * @template LocalsObj - The locals object type
86
- *
87
- * @param {SV} schemaValidator - The schema validator instance
88
- * @param {Path} path - The route path
89
- * @param {ContractDetails<SV, 'delete', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request<LocalsObj>>} contractDetails - The contract details for the route
90
- * @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]} handlers - The route handlers
91
- *
92
- * @returns {void} - Returns nothing, registers the route with Hyper-Express
93
- *
94
- * @example
95
- * ```typescript
96
- * delete_(
97
- * schemaValidator,
98
- * '/users/:id',
99
- * {
100
- * summary: 'Delete user',
101
- * description: 'Deletes a user by ID',
102
- * tags: ['users'],
103
- * parameters: [
104
- * {
105
- * name: 'id',
106
- * in: 'path',
107
- * required: true,
108
- * schema: { type: 'string' }
109
- * }
110
- * ],
111
- * responses: {
112
- * 204: {
113
- * description: 'User deleted successfully'
114
- * },
115
- * 404: {
116
- * description: 'User not found',
117
- * content: {
118
- * 'application/json': {
119
- * schema: {
120
- * type: 'object',
121
- * properties: {
122
- * error: { type: 'string' }
123
- * }
124
- * }
125
- * }
126
- * }
127
- * }
128
- * }
129
- * },
130
- * async (req, res) => {
131
- * const { id } = req.params;
132
- * await deleteUser(id);
133
- * res.status(204).end();
134
- * }
135
- * );
136
- * ```
137
- */
138
- declare const delete_: <SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, const VersionedApi extends VersionSchema<SV, "delete">, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request<LocalsObj>>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, "delete", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<LocalsObj>, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, Name, "delete", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext, Auth>;
139
-
140
- /**
141
- * Creates a GET route handler with schema validation and type safety.
142
- *
143
- * @template SV - The schema validator type
144
- * @template Path - The route path type (must start with '/')
145
- * @template P - The path parameters type
146
- * @template ResBodyMap - The response body map type
147
- * @template ReqBody - The request body type
148
- * @template ReqQuery - The request query parameters type
149
- * @template ReqHeaders - The request headers type
150
- * @template ResHeaders - The response headers type
151
- * @template LocalsObj - The locals object type
152
- *
153
- * @param {SV} schemaValidator - The schema validator instance
154
- * @param {Path} path - The route path
155
- * @param {ContractDetails<SV, 'get', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request<LocalsObj>>} contractDetails - The contract details for the route
156
- * @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]} handlers - The route handlers
157
- *
158
- * @returns {void} - Returns nothing, registers the route with Hyper-Express
159
- *
160
- * @example
161
- * ```typescript
162
- * get(
163
- * schemaValidator,
164
- * '/users/:id',
165
- * {
166
- * summary: 'Get user',
167
- * description: 'Retrieves a user by ID',
168
- * tags: ['users'],
169
- * parameters: [
170
- * {
171
- * name: 'id',
172
- * in: 'path',
173
- * required: true,
174
- * schema: { type: 'string' }
175
- * }
176
- * ],
177
- * responses: {
178
- * 200: {
179
- * description: 'User retrieved successfully',
180
- * content: {
181
- * 'application/json': {
182
- * schema: {
183
- * type: 'object',
184
- * properties: {
185
- * id: { type: 'string' },
186
- * name: { type: 'string' },
187
- * email: { type: 'string' }
188
- * }
189
- * }
190
- * }
191
- * }
192
- * },
193
- * 404: {
194
- * description: 'User not found',
195
- * content: {
196
- * 'application/json': {
197
- * schema: {
198
- * type: 'object',
199
- * properties: {
200
- * error: { type: 'string' }
201
- * }
202
- * }
203
- * }
204
- * }
205
- * }
206
- * }
207
- * },
208
- * async (req, res) => {
209
- * const { id } = req.params;
210
- * const user = await getUser(id);
211
- * res.status(200).json(user);
212
- * }
213
- * );
214
- * ```
215
- */
216
- declare const get: <SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, const VersionedApi extends VersionSchema<SV, "get">, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request<LocalsObj>>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, "get", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<LocalsObj>, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, Name, "get", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext, Auth>;
217
-
218
- /**
219
- * Creates a HEAD route handler with schema validation and type safety.
220
- *
221
- * @template SV - The schema validator type
222
- * @template Path - The route path type (must start with '/')
223
- * @template P - The path parameters type
224
- * @template ResBodyMap - The response body map type
225
- * @template ReqBody - The request body type
226
- * @template ReqQuery - The request query parameters type
227
- * @template ReqHeaders - The request headers type
228
- * @template ResHeaders - The response headers type
229
- * @template LocalsObj - The locals object type
230
- *
231
- * @param {SV} schemaValidator - The schema validator instance
232
- * @param {Path} path - The route path
233
- * @param {ContractDetails<SV, 'head', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request<LocalsObj>>} contractDetails - The contract details for the route
234
- * @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]} handlers - The route handlers
235
- *
236
- * @returns {void} - Returns nothing, registers the route with Hyper-Express
237
- *
238
- * @example
239
- * ```typescript
240
- * head(
241
- * schemaValidator,
242
- * '/files/:id',
243
- * {
244
- * summary: 'Get file metadata',
245
- * description: 'Retrieves metadata for a file without downloading its contents',
246
- * tags: ['files'],
247
- * parameters: [
248
- * {
249
- * name: 'id',
250
- * in: 'path',
251
- * required: true,
252
- * schema: { type: 'string' }
253
- * }
254
- * ],
255
- * responses: {
256
- * 200: {
257
- * description: 'File metadata retrieved successfully',
258
- * headers: {
259
- * 'content-length': {
260
- * schema: { type: 'string' }
261
- * },
262
- * 'content-type': {
263
- * schema: { type: 'string' }
264
- * },
265
- * 'last-modified': {
266
- * schema: { type: 'string' }
267
- * }
268
- * }
269
- * },
270
- * 404: {
271
- * description: 'File not found'
272
- * }
273
- * }
274
- * },
275
- * async (req, res) => {
276
- * const { id } = req.params;
277
- * const metadata = await getFileMetadata(id);
278
- * res.setHeader('content-length', metadata.size);
279
- * res.setHeader('content-type', metadata.type);
280
- * res.setHeader('last-modified', metadata.lastModified);
281
- * res.status(200).end();
282
- * }
283
- * );
284
- * ```
285
- */
286
- declare const head: <SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, const VersionedApi extends VersionSchema<SV, "head">, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request<LocalsObj>>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, "head", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<LocalsObj>, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, Name, "head", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext, Auth>;
287
-
288
- /**
289
- * Creates a middleware handler with schema validation and type safety.
290
- *
291
- * @template SV - The schema validator type
292
- * @template Path - The route path type (must start with '/')
293
- * @template P - The path parameters type
294
- * @template ResBodyMap - The response body map type
295
- * @template ReqBody - The request body type
296
- * @template ReqQuery - The request query parameters type
297
- * @template ReqHeaders - The request headers type
298
- * @template ResHeaders - The response headers type
299
- * @template LocalsObj - The locals object type
300
- *
301
- * @param {SV} schemaValidator - The schema validator instance
302
- * @param {Path} path - The route path
303
- * @param {ContractDetails<SV, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request<LocalsObj>>} contractDetails - The contract details for the route
304
- * @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]} handlers - The route handlers
305
- *
306
- * @returns {void} - Returns nothing, registers the middleware with Hyper-Express
307
- *
308
- * @example
309
- * ```typescript
310
- * middleware(
311
- * schemaValidator,
312
- * '/api/*',
313
- * {
314
- * summary: 'Authentication middleware',
315
- * description: 'Validates JWT tokens for API routes',
316
- * tags: ['auth'],
317
- * responses: {
318
- * 401: {
319
- * description: 'Unauthorized',
320
- * content: {
321
- * 'application/json': {
322
- * schema: {
323
- * type: 'object',
324
- * properties: {
325
- * error: { type: 'string' }
326
- * }
327
- * }
328
- * }
329
- * }
330
- * }
331
- * }
332
- * },
333
- * async (req, res, next) => {
334
- * const token = req.headers.authorization?.split(' ')[1];
335
- * if (!token) {
336
- * res.status(401).json({ error: 'No token provided' });
337
- * return;
338
- * }
339
- * try {
340
- * const decoded = await verifyToken(token);
341
- * req.user = decoded;
342
- * next();
343
- * } catch (err) {
344
- * res.status(401).json({ error: 'Invalid token' });
345
- * }
346
- * }
347
- * );
348
- * ```
349
- */
350
- declare const middleware: <SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, const VersionedApi extends VersionSchema<SV, "middleware">, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request<LocalsObj>>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<LocalsObj>, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]) => {
351
- _typedHandler: true;
352
- _path: Path;
353
- contractDetails: _forklaunch_core_http.MiddlewareContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<LocalsObj>, Auth>;
354
- handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[];
355
- };
356
-
357
- /**
358
- * Creates an OPTIONS route handler with schema validation and type safety.
359
- *
360
- * @template SV - The schema validator type
361
- * @template Path - The route path type (must start with '/')
362
- * @template P - The path parameters type
363
- * @template ResBodyMap - The response body map type
364
- * @template ReqBody - The request body type
365
- * @template ReqQuery - The request query parameters type
366
- * @template ReqHeaders - The request headers type
367
- * @template ResHeaders - The response headers type
368
- * @template LocalsObj - The locals object type
369
- *
370
- * @param {SV} schemaValidator - The schema validator instance
371
- * @param {Path} path - The route path
372
- * @param {ContractDetails<SV, 'options', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request<LocalsObj>>} contractDetails - The contract details for the route
373
- * @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]} handlers - The route handlers
374
- *
375
- * @returns {void} - Returns nothing, registers the route with Hyper-Express
376
- *
377
- * @example
378
- * ```typescript
379
- * options(
380
- * schemaValidator,
381
- * '/users/:id',
382
- * {
383
- * summary: 'Get user options',
384
- * description: 'Returns the allowed HTTP methods for the user resource',
385
- * tags: ['users'],
386
- * parameters: [
387
- * {
388
- * name: 'id',
389
- * in: 'path',
390
- * required: true,
391
- * schema: { type: 'string' }
392
- * }
393
- * ],
394
- * responses: {
395
- * 200: {
396
- * description: 'Allowed methods retrieved successfully',
397
- * headers: {
398
- * 'allow': {
399
- * schema: { type: 'string' }
400
- * }
401
- * }
402
- * }
403
- * }
404
- * },
405
- * async (req, res) => {
406
- * res.setHeader('allow', 'GET, PUT, PATCH, DELETE');
407
- * res.status(200).end();
408
- * }
409
- * );
410
- * ```
411
- */
412
- declare const options: <SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, const VersionedApi extends VersionSchema<SV, "options">, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request<LocalsObj>>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, "options", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<LocalsObj>, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, Name, "options", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext, Auth>;
413
-
414
- /**
415
- * Creates a PATCH route handler with schema validation and type safety.
416
- *
417
- * @template SV - The schema validator type
418
- * @template Path - The route path type (must start with '/')
419
- * @template P - The path parameters type
420
- * @template ResBodyMap - The response body map type
421
- * @template ReqBody - The request body type
422
- * @template ReqQuery - The request query parameters type
423
- * @template ReqHeaders - The request headers type
424
- * @template ResHeaders - The response headers type
425
- * @template LocalsObj - The locals object type
426
- *
427
- * @param {SV} schemaValidator - The schema validator instance
428
- * @param {Path} path - The route path
429
- * @param {ContractDetails<SV, 'patch', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request<LocalsObj>>} contractDetails - The contract details for the route
430
- * @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]} handlers - The route handlers
431
- *
432
- * @returns {void} - Returns nothing, registers the route with Hyper-Express
433
- *
434
- * @example
435
- * ```typescript
436
- * patch(
437
- * schemaValidator,
438
- * '/users/:id',
439
- * {
440
- * summary: 'Update user partially',
441
- * description: 'Updates specific fields of a user by ID',
442
- * tags: ['users'],
443
- * parameters: [
444
- * {
445
- * name: 'id',
446
- * in: 'path',
447
- * required: true,
448
- * schema: { type: 'string' }
449
- * }
450
- * ],
451
- * requestBody: {
452
- * content: {
453
- * 'application/json': {
454
- * schema: {
455
- * type: 'object',
456
- * properties: {
457
- * name: { type: 'string' },
458
- * email: { type: 'string' }
459
- * }
460
- * }
461
- * }
462
- * }
463
- * },
464
- * responses: {
465
- * 200: {
466
- * description: 'User updated successfully',
467
- * content: {
468
- * 'application/json': {
469
- * schema: {
470
- * type: 'object',
471
- * properties: {
472
- * id: { type: 'string' },
473
- * name: { type: 'string' },
474
- * email: { type: 'string' }
475
- * }
476
- * }
477
- * }
478
- * }
479
- * },
480
- * 404: {
481
- * description: 'User not found',
482
- * content: {
483
- * 'application/json': {
484
- * schema: {
485
- * type: 'object',
486
- * properties: {
487
- * error: { type: 'string' }
488
- * }
489
- * }
490
- * }
491
- * }
492
- * }
493
- * }
494
- * },
495
- * async (req, res) => {
496
- * const { id } = req.params;
497
- * const updates = await req.json();
498
- * const user = await updateUser(id, updates);
499
- * res.status(200).json(user);
500
- * }
501
- * );
502
- * ```
503
- */
504
- declare const patch: <SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, const VersionedApi extends VersionSchema<SV, "patch">, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request<LocalsObj>>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, "patch", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<LocalsObj>, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, Name, "patch", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext, Auth>;
505
-
506
- /**
507
- * Creates a POST route handler with schema validation and type safety.
508
- *
509
- * @template SV - The schema validator type
510
- * @template Path - The route path type (must start with '/')
511
- * @template P - The path parameters type
512
- * @template ResBodyMap - The response body map type
513
- * @template ReqBody - The request body type
514
- * @template ReqQuery - The request query parameters type
515
- * @template ReqHeaders - The request headers type
516
- * @template ResHeaders - The response headers type
517
- * @template LocalsObj - The locals object type
518
- *
519
- * @param {SV} schemaValidator - The schema validator instance
520
- * @param {Path} path - The route path
521
- * @param {ContractDetails<SV, 'post', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request<LocalsObj>>} contractDetails - The contract details for the route
522
- * @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]} handlers - The route handlers
523
- *
524
- * @returns {void} - Returns nothing, registers the route with Hyper-Express
525
- *
526
- * @example
527
- * ```typescript
528
- * post(
529
- * schemaValidator,
530
- * '/users',
531
- * {
532
- * summary: 'Create user',
533
- * description: 'Creates a new user',
534
- * tags: ['users'],
535
- * requestBody: {
536
- * content: {
537
- * 'application/json': {
538
- * schema: {
539
- * type: 'object',
540
- * properties: {
541
- * name: { type: 'string' },
542
- * email: { type: 'string' },
543
- * password: { type: 'string' }
544
- * },
545
- * required: ['name', 'email', 'password']
546
- * }
547
- * }
548
- * }
549
- * },
550
- * responses: {
551
- * 201: {
552
- * description: 'User created successfully',
553
- * content: {
554
- * 'application/json': {
555
- * schema: {
556
- * type: 'object',
557
- * properties: {
558
- * id: { type: 'string' },
559
- * name: { type: 'string' },
560
- * email: { type: 'string' }
561
- * }
562
- * }
563
- * }
564
- * }
565
- * },
566
- * 400: {
567
- * description: 'Invalid input',
568
- * content: {
569
- * 'application/json': {
570
- * schema: {
571
- * type: 'object',
572
- * properties: {
573
- * error: { type: 'string' }
574
- * }
575
- * }
576
- * }
577
- * }
578
- * }
579
- * }
580
- * },
581
- * async (req, res) => {
582
- * const userData = await req.json();
583
- * const user = await createUser(userData);
584
- * res.status(201).json(user);
585
- * }
586
- * );
587
- * ```
588
- */
589
- declare const post: <SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, const VersionedApi extends VersionSchema<SV, "post">, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request<LocalsObj>>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, "post", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<LocalsObj>, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, Name, "post", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext, Auth>;
590
-
591
- /**
592
- * Creates a PUT route handler with schema validation and type safety for Hyper-Express.
593
- *
594
- * @template SV - The schema validator type
595
- * @template Path - The route path type (must start with '/')
596
- * @template P - The path parameters type
597
- * @template ResBodyMap - The response body map type
598
- * @template ReqBody - The request body type
599
- * @template ReqQuery - The request query parameters type
600
- * @template ReqHeaders - The request headers type
601
- * @template ResHeaders - The response headers type
602
- * @template LocalsObj - The locals object type
603
- *
604
- * @param {SV} schemaValidator - The schema validator instance
605
- * @param {Path} path - The route path
606
- * @param {ContractDetails<SV, 'put', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request<LocalsObj>>} contractDetails - The contract details for the route
607
- * @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]} handlers - The route handlers
608
- *
609
- * @returns {void} - Returns nothing, registers the route with Hyper-Express
610
- *
611
- * @example
612
- * ```typescript
613
- * put(
614
- * schemaValidator,
615
- * '/users/:id',
616
- * {
617
- * summary: 'Update user',
618
- * description: 'Updates a user by ID',
619
- * tags: ['users'],
620
- * pathParams: {
621
- * id: { type: 'string' }
622
- * },
623
- * body: {
624
- * type: 'object',
625
- * properties: {
626
- * name: { type: 'string' }
627
- * }
628
- * },
629
- * responses: {
630
- * 200: {
631
- * description: 'User updated successfully',
632
- * content: {
633
- * 'application/json': {
634
- * schema: {
635
- * type: 'object',
636
- * properties: {
637
- * id: { type: 'string' },
638
- * name: { type: 'string' }
639
- * }
640
- * }
641
- * }
642
- * }
643
- * }
644
- * }
645
- * },
646
- * async (req, res) => {
647
- * const { id } = req.params;
648
- * const { name } = req.body;
649
- * // Update user logic
650
- * res.json({ id, name });
651
- * }
652
- * );
653
- * ```
654
- */
655
- declare const put: <SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, const VersionedApi extends VersionSchema<SV, "put">, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request<LocalsObj>>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, "put", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<LocalsObj>, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, Name, "put", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext, Auth>;
656
-
657
- /**
658
- * Creates a TRACE route handler with schema validation and type safety.
659
- *
660
- * @template SV - The schema validator type
661
- * @template Path - The route path type (must start with '/')
662
- * @template P - The path parameters type
663
- * @template ResBodyMap - The response body map type
664
- * @template ReqBody - The request body type
665
- * @template ReqQuery - The request query parameters type
666
- * @template ReqHeaders - The request headers type
667
- * @template ResHeaders - The response headers type
668
- * @template LocalsObj - The locals object type
669
- *
670
- * @param {SV} schemaValidator - The schema validator instance
671
- * @param {Path} path - The route path
672
- * @param {ContractDetails<SV, 'trace', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request<LocalsObj>>} contractDetails - The contract details for the route
673
- * @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]} handlers - The route handlers
674
- *
675
- * @returns {void} - Returns nothing, registers the route with Hyper-Express
676
- *
677
- * @example
678
- * ```typescript
679
- * trace(
680
- * schemaValidator,
681
- * '/debug',
682
- * {
683
- * summary: 'Debug endpoint',
684
- * description: 'Returns the request message for debugging purposes',
685
- * tags: ['debug'],
686
- * responses: {
687
- * 200: {
688
- * description: 'Request message returned successfully',
689
- * content: {
690
- * 'message/http': {
691
- * schema: {
692
- * type: 'string'
693
- * }
694
- * }
695
- * }
696
- * }
697
- * }
698
- * },
699
- * async (req, res) => {
700
- * const message = await req.text();
701
- * res.setHeader('content-type', 'message/http');
702
- * res.status(200).send(message);
703
- * }
704
- * );
705
- * ```
706
- */
707
- declare const trace: <SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, const VersionedApi extends VersionSchema<SV, "trace">, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request<LocalsObj>>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, "trace", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<LocalsObj>, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, Name, "trace", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext, Auth>;
708
-
709
- type ExpressApplicationOptions<SV extends AnySchemaValidator, SessionSchema extends SessionObject<SV>> = ExpressLikeApplicationOptions<SV, SessionSchema> & {
710
- busboy?: BusboyConfig;
711
- server?: ServerConstructorOptions;
712
- cors?: CorsOptions;
713
- };
714
- type ExpressRouterOptions<SV extends AnySchemaValidator, SessionSchema extends SessionObject<SV>> = ExpressLikeRouterOptions<SV, SessionSchema> & {
715
- busboy?: BusboyConfig;
716
- };
717
-
718
- /**
719
- * Represents an application built on top of Hyper-Express and Forklaunch.
720
- * This class provides a high-performance web server implementation using uWebSockets.js
721
- * with Forklaunch's schema validation and API documentation capabilities.
722
- *
723
- * @template SV - Schema validator type extending AnySchemaValidator
724
- *
725
- * @example
726
- * ```typescript
727
- * const app = new Application(schemaValidator, openTelemetryCollector);
728
- *
729
- * app.get('/users', {
730
- * responses: {
731
- * 200: { type: 'array', items: { type: 'object' } }
732
- * }
733
- * }, async (req, res) => {
734
- * res.json(await getUsers());
735
- * });
736
- *
737
- * await app.listen(3000);
738
- * ```
739
- */
740
- declare class Application<SV extends AnySchemaValidator, SessionSchema extends SessionObject<SV>> extends ForklaunchExpressLikeApplication<SV, Server, MiddlewareHandler, Request<Record<string, unknown>>, Response<Record<string, unknown>>, MiddlewareNext, SessionSchema> {
741
- private docsConfiguration;
742
- private mcpConfiguration;
743
- private openapiConfiguration;
744
- private hostingConfiguration;
745
- /**
746
- * Creates an instance of the Application class.
747
- *
748
- * @param {SV} schemaValidator - Schema validator for request/response validation
749
- * @param {OpenTelemetryCollector<MetricsDefinition>} openTelemetryCollector - Collector for OpenTelemetry metrics
750
- * @param {DocsConfiguration} [docsConfiguration] - Optional configuration for API documentation (Swagger/Scalar)
751
- *
752
- * @example
753
- * ```typescript
754
- * const app = new Application(
755
- * new SchemaValidator(),
756
- * new OpenTelemetryCollector(),
757
- * { type: 'swagger' }
758
- * );
759
- * ```
760
- */
761
- constructor(schemaValidator: SV, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, configurationOptions?: ExpressApplicationOptions<SV, SessionSchema>);
762
- /**
763
- * Starts the server and sets up API documentation.
764
- * Supports multiple listening configurations including port, host, and UNIX socket path.
765
- * Automatically sets up Swagger or Scalar documentation based on configuration.
766
- *
767
- * @param {number | string} arg0 - Port number or UNIX socket path
768
- * @param {string | Function} [arg1] - Host name or callback function
769
- * @param {Function} [arg2] - Callback function when host is specified
770
- * @returns {Promise<uWebsockets.us_listen_socket>} Promise resolving to the listening socket
771
- *
772
- * @example
773
- * ```typescript
774
- * // Listen on port 3000
775
- * await app.listen(3000);
776
- *
777
- * // Listen on specific host and port
778
- * await app.listen(3000, 'localhost');
779
- *
780
- * // Listen on UNIX socket
781
- * await app.listen('/tmp/app.sock');
782
- *
783
- * // With callback
784
- * await app.listen(3000, (socket) => {
785
- * console.log('Server started');
786
- * });
787
- * ```
788
- */
789
- listen(port: number, callback?: (listen_socket: uWebsockets.us_listen_socket) => void): Promise<uWebsockets.us_listen_socket>;
790
- listen(port: number, host?: string, callback?: (listen_socket: uWebsockets.us_listen_socket) => void): Promise<uWebsockets.us_listen_socket>;
791
- listen(unix_path: string, callback?: (listen_socket: uWebsockets.us_listen_socket) => void): Promise<uWebsockets.us_listen_socket>;
792
- }
793
-
794
- /**
795
- * A request handler function compatible with Hyper-Express, used for processing HTTP requests.
796
- *
797
- * @param req - The incoming request object, with `query` and `headers` properties normalized to either `ParsedQs` or a generic record.
798
- * @param res - The response object for sending data back to the client.
799
- * @param next - The middleware next function to pass control to the next handler.
800
- */
801
- type ExpressRequestHandler = (req: Omit<Request<Record<string, unknown>>, 'query' | 'headers'> & {
802
- query: ParsedQs | Record<string, unknown>;
803
- headers: Record<string, unknown>;
804
- }, res: Response<Record<string, unknown>>, next: MiddlewareNext) => void;
805
-
806
- type WebSocketUpgradeContext<SV extends AnySchemaValidator, BaseResponse, Upgrade extends StringOnlyObject<SV>> = Omit<BaseResponse, 'upgrade'> & {
807
- upgrade: (context: Upgrade extends infer U ? U extends StringOnlyObject<SV> ? Schema<U, SV> : U : never) => void;
808
- };
809
- type WebSocketContractDetails<SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, VersionedApi extends VersionSchema<SV, 'middleware'>, BaseRequest, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>> = MiddlewareContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, BaseRequest, Auth> & {
810
- upgrade?: Upgrade;
811
- };
812
- type WebSocketTypedHandler<SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, BaseRequest, BaseResponse, NextFunction, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>> = Omit<TypedHandler<SV, Name, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction, Auth>, 'contractDetails' | 'handlers'> & {
813
- contractDetails: WebSocketContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, BaseRequest, Auth, Upgrade>;
814
- handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>[];
815
- };
816
- interface TypedWebSocketMiddlewareDefinition<ChainableRouter, SV extends AnySchemaValidator, Session extends SessionObject<SV>, BaseRequest, BaseResponse, NextFunction, RouterHandler> {
817
- <Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, SessionSchema extends SessionObject<SV>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(path: Path, contractDetails: WebSocketContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, BaseRequest, Auth, Upgrade>, middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>, ...middlewares: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, SessionSchema, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>[]): ChainableRouter;
818
- <Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(contractDetails: WebSocketContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, BaseRequest, Auth, Upgrade>, middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>, ...middlewares: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>[]): ChainableRouter;
819
- (middleware: RouterHandler, ...otherMiddleware: RouterHandler[]): ChainableRouter;
820
- <Name extends string, Path extends `/${string}`, SuppliedPath extends Path, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(path: PathMatch<SuppliedPath, Path>, middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>, ...middlewareAndTypedHandler: [
821
- ...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
822
- upgrade: (context: Schema<Upgrade, SV>) => void;
823
- }, NextFunction>[],
824
- WebSocketTypedHandler<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
825
- upgrade: (context: Schema<Upgrade, SV>) => void;
826
- }, NextFunction, Auth, Upgrade>
827
- ]): ChainableRouter;
828
- <Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
829
- upgrade: (context: Schema<Upgrade, SV>) => void;
830
- }, NextFunction>, ...middlewareAndTypedHandler: [
831
- ...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
832
- upgrade: (context: Schema<Upgrade, SV>) => void;
833
- }, NextFunction>[],
834
- WebSocketTypedHandler<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
835
- upgrade: (context: Schema<Upgrade, SV>) => void;
836
- }, NextFunction, Auth, Upgrade>
837
- ]): ChainableRouter;
838
- <Name extends string, Path extends `/${string}`, SuppliedPath extends Path, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(path: PathMatch<SuppliedPath, Path>, typedHandler: WebSocketTypedHandler<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
839
- upgrade: (context: Schema<Upgrade, SV>) => void;
840
- }, NextFunction, Auth, Upgrade>): ChainableRouter;
841
- <Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(typedHandler: WebSocketTypedHandler<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
842
- upgrade: (context: Schema<Upgrade, SV>) => void;
843
- }, NextFunction, Auth, Upgrade>): ChainableRouter;
844
- }
845
-
846
- declare class Router<SV extends AnySchemaValidator, BasePath extends `/${string}`, RouterSession extends SessionObject<SV>> extends ForklaunchExpressLikeRouter<SV, BasePath, MiddlewareHandler, Router$1, Request<Record<string, unknown>>, Response<Record<string, unknown>>, MiddlewareNext, RouterSession> implements ForklaunchRouter<SV> {
847
- basePath: BasePath;
848
- private configOptions;
849
- constructor(basePath: BasePath, schemaValidator: SV, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, options?: ExpressRouterOptions<SV, RouterSession>);
850
- route(path: string): this;
851
- any: TypedMiddlewareDefinition<this, SV, RouterSession, Request<Record<string, unknown>>, Response<Record<string, unknown>>, MiddlewareNext, ExpressRequestHandler>;
852
- upgrade: TypedWebSocketMiddlewareDefinition<this, SV, RouterSession, Request<Record<string, unknown>>, Response<Record<string, unknown>>, MiddlewareNext, ExpressRequestHandler>;
853
- ws(pattern: string, eventSchemas: EventSchema<SV>, options?: WSRouteOptions, handler?: WSRouteHandler<(typeof eventSchemas)['userData']>): void;
854
- clone(): this;
855
- }
856
-
857
- type App<SV extends AnySchemaValidator, SessionSchema extends SessionObject<SV>> = Application<SV, SessionSchema>;
1
+ import { ContractDetailsOrMiddlewareOrTypedHandler, HeadersObject, Body as HttpBody, Method, MetricsDefinition, MiddlewareOrMiddlewareWithTypedHandler, OpenTelemetryCollector, ParamsObject, QueryObject, ResponsesObject, SchemaAuthMethods, SessionObject, VersionSchema } from '@forklaunch/core/http';
2
+ import { MiddlewareHandler } from '@forklaunch/hyper-express-fork';
3
+ import { AnySchemaValidator } from '@forklaunch/validator';
4
+ import { any } from './src/handlers/any';
5
+ import { delete_ } from './src/handlers/delete';
6
+ import { get } from './src/handlers/get';
7
+ import { head } from './src/handlers/head';
8
+ import { middleware } from './src/handlers/middleware';
9
+ import { options } from './src/handlers/options';
10
+ import { patch } from './src/handlers/patch';
11
+ import { post } from './src/handlers/post';
12
+ import { put } from './src/handlers/put';
13
+ import { trace } from './src/handlers/trace';
14
+ import { Application } from './src/hyperExpressApplication';
15
+ import { Router } from './src/hyperExpressRouter';
16
+ import { ExpressApplicationOptions, ExpressRouterOptions } from './src/types/hyperExpressOptions.types';
17
+ export type App<SV extends AnySchemaValidator, SessionSchema extends SessionObject<SV>> = Application<SV, SessionSchema>;
858
18
  /**
859
19
  * Creates a new instance of Application with the given schema validator.
860
20
  *
@@ -862,7 +22,7 @@ type App<SV extends AnySchemaValidator, SessionSchema extends SessionObject<SV>>
862
22
  * @param {SV} schemaValidator - The schema validator.
863
23
  * @returns {Application<SV>} - The new application instance.
864
24
  */
865
- declare function forklaunchExpress<SV extends AnySchemaValidator, SessionSchema extends SessionObject<SV>>(schemaValidator: SV, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, options?: ExpressApplicationOptions<SV, SessionSchema>): Application<SV, SessionSchema>;
25
+ export declare function forklaunchExpress<SV extends AnySchemaValidator, SessionSchema extends SessionObject<SV>>(schemaValidator: SV, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, options?: ExpressApplicationOptions<SV, SessionSchema>): Application<SV, SessionSchema>;
866
26
  /**
867
27
  * Creates a new instance of Router with the given base path and schema validator.
868
28
  *
@@ -871,9 +31,14 @@ declare function forklaunchExpress<SV extends AnySchemaValidator, SessionSchema
871
31
  * @param {SV} schemaValidator - The schema validator.
872
32
  * @returns {Router<SV>} - The new router instance.
873
33
  */
874
- declare function forklaunchRouter<SV extends AnySchemaValidator, BasePath extends `/${string}`, SessionSchema extends SessionObject<SV>>(basePath: BasePath, schemaValidator: SV, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, options?: ExpressRouterOptions<SV, SessionSchema>): Router<SV, BasePath, SessionSchema>;
875
-
876
- declare const handlers: {
34
+ export declare function forklaunchRouter<SV extends AnySchemaValidator, BasePath extends `/${string}`, SessionSchema extends SessionObject<SV>>(basePath: BasePath, schemaValidator: SV, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, options?: ExpressRouterOptions<SV, SessionSchema>): Router<SV, BasePath, SessionSchema>;
35
+ export type { MiddlewareNext as NextFunction, Request, Response, ServerConstructorOptions } from '@forklaunch/hyper-express-fork';
36
+ export type { BusboyConfig } from 'busboy';
37
+ export type { CorsOptions } from 'cors';
38
+ export type { Application } from './src/hyperExpressApplication';
39
+ export type { Router } from './src/hyperExpressRouter';
40
+ export type { ExpressApplicationOptions, ExpressRouterOptions } from './src/types/hyperExpressOptions.types';
41
+ export declare const handlers: {
877
42
  any: typeof any;
878
43
  delete: typeof delete_;
879
44
  get: typeof get;
@@ -885,12 +50,11 @@ declare const handlers: {
885
50
  put: typeof put;
886
51
  trace: typeof trace;
887
52
  };
888
- declare const port: <SV extends AnySchemaValidator, Name extends string, ContractMethod extends Method, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, ContractMethod>, RouterSession extends SessionObject<SV>, BaseRequest, BaseResponse, NextFunction, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, RouterHandler>(options: {
53
+ export declare const port: <SV extends AnySchemaValidator, Name extends string, ContractMethod extends Method, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends HttpBody<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, ContractMethod>, RouterSession extends SessionObject<SV>, BaseRequest, BaseResponse, NextFunction, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, RouterHandler>(options: {
889
54
  method: ContractMethod;
890
55
  path: Path;
891
56
  basePath: string;
892
57
  schemaValidator: SV;
893
58
  openTelemetryCollector?: OpenTelemetryCollector<MetricsDefinition>;
894
59
  }, contractDetailsOrMiddlewareOrTypedHandler: ContractDetailsOrMiddlewareOrTypedHandler<SV, Name, ContractMethod, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, BaseResponse, NextFunction, RouterSession, Auth>, ...middlewareOrMiddlewareAndTypedHandler: MiddlewareOrMiddlewareWithTypedHandler<SV, Name, ContractMethod, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, BaseResponse, NextFunction, RouterSession, Auth>[]) => MiddlewareHandler[];
895
-
896
- export { type App, Application, type ExpressApplicationOptions, type ExpressRouterOptions, Router, forklaunchExpress, forklaunchRouter, handlers, port };
60
+ //# sourceMappingURL=index.d.ts.map