@forklaunch/hyper-express 1.2.32 → 1.2.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +28 -864
- package/lib/index.d.ts.map +1 -0
- package/lib/src/cluster/hyperExpress.cluster.d.ts +4 -0
- package/lib/src/cluster/hyperExpress.cluster.d.ts.map +1 -0
- package/lib/src/handlers/any.d.ts +64 -0
- package/lib/src/handlers/any.d.ts.map +1 -0
- package/lib/src/handlers/delete.d.ts +69 -0
- package/lib/src/handlers/delete.d.ts.map +1 -0
- package/lib/src/handlers/get.d.ts +81 -0
- package/lib/src/handlers/get.d.ts.map +1 -0
- package/lib/src/handlers/head.d.ts +73 -0
- package/lib/src/handlers/head.d.ts.map +1 -0
- package/lib/src/handlers/middleware.d.ts +72 -0
- package/lib/src/handlers/middleware.d.ts.map +1 -0
- package/lib/src/handlers/options.d.ts +60 -0
- package/lib/src/handlers/options.d.ts.map +1 -0
- package/lib/src/handlers/patch.d.ts +95 -0
- package/lib/src/handlers/patch.d.ts.map +1 -0
- package/lib/src/handlers/post.d.ts +88 -0
- package/lib/src/handlers/post.d.ts.map +1 -0
- package/lib/src/handlers/put.d.ts +69 -0
- package/lib/src/handlers/put.d.ts.map +1 -0
- package/lib/src/handlers/trace.d.ts +55 -0
- package/lib/src/handlers/trace.d.ts.map +1 -0
- package/lib/src/hyperExpressApplication.d.ts +81 -0
- package/lib/src/hyperExpressApplication.d.ts.map +1 -0
- package/lib/src/hyperExpressRouter.d.ts +18 -0
- package/lib/src/hyperExpressRouter.d.ts.map +1 -0
- package/lib/src/middleware/contentParse.middleware.d.ts +36 -0
- package/lib/src/middleware/contentParse.middleware.d.ts.map +1 -0
- package/lib/src/middleware/enrichResponseTransmission.middleware.d.ts +26 -0
- package/lib/src/middleware/enrichResponseTransmission.middleware.d.ts.map +1 -0
- package/lib/src/middleware/polyfillGetHeaders.middleware.d.ts +26 -0
- package/lib/src/middleware/polyfillGetHeaders.middleware.d.ts.map +1 -0
- package/lib/src/middleware/swagger.middleware.d.ts +53 -0
- package/lib/src/middleware/swagger.middleware.d.ts.map +1 -0
- package/lib/src/types/hyperExpress.types.d.ts +52 -0
- package/lib/src/types/hyperExpress.types.d.ts.map +1 -0
- package/lib/src/types/hyperExpressOptions.types.d.ts +14 -0
- package/lib/src/types/hyperExpressOptions.types.d.ts.map +1 -0
- package/lib/src/types/websocketMiddleware.types.d.ts +45 -0
- package/lib/src/types/websocketMiddleware.types.d.ts.map +1 -0
- package/lib/src/webSocket.d.ts +12 -0
- package/lib/src/webSocket.d.ts.map +1 -0
- package/package.json +17 -17
- package/lib/index.d.mts +0 -896
package/lib/index.d.mts
DELETED
|
@@ -1,896 +0,0 @@
|
|
|
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>;
|
|
858
|
-
/**
|
|
859
|
-
* Creates a new instance of Application with the given schema validator.
|
|
860
|
-
*
|
|
861
|
-
* @template SV - A type that extends AnySchemaValidator.
|
|
862
|
-
* @param {SV} schemaValidator - The schema validator.
|
|
863
|
-
* @returns {Application<SV>} - The new application instance.
|
|
864
|
-
*/
|
|
865
|
-
declare function forklaunchExpress<SV extends AnySchemaValidator, SessionSchema extends SessionObject<SV>>(schemaValidator: SV, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, options?: ExpressApplicationOptions<SV, SessionSchema>): Application<SV, SessionSchema>;
|
|
866
|
-
/**
|
|
867
|
-
* Creates a new instance of Router with the given base path and schema validator.
|
|
868
|
-
*
|
|
869
|
-
* @template SV - A type that extends AnySchemaValidator.
|
|
870
|
-
* @param {string} basePath - The base path for the router.
|
|
871
|
-
* @param {SV} schemaValidator - The schema validator.
|
|
872
|
-
* @returns {Router<SV>} - The new router instance.
|
|
873
|
-
*/
|
|
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: {
|
|
877
|
-
any: typeof any;
|
|
878
|
-
delete: typeof delete_;
|
|
879
|
-
get: typeof get;
|
|
880
|
-
head: typeof head;
|
|
881
|
-
middleware: typeof middleware;
|
|
882
|
-
options: typeof options;
|
|
883
|
-
patch: typeof patch;
|
|
884
|
-
post: typeof post;
|
|
885
|
-
put: typeof put;
|
|
886
|
-
trace: typeof trace;
|
|
887
|
-
};
|
|
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: {
|
|
889
|
-
method: ContractMethod;
|
|
890
|
-
path: Path;
|
|
891
|
-
basePath: string;
|
|
892
|
-
schemaValidator: SV;
|
|
893
|
-
openTelemetryCollector?: OpenTelemetryCollector<MetricsDefinition>;
|
|
894
|
-
}, 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 };
|