@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
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Body, ContractDetails, ExpressLikeSchemaHandler, HeadersObject, ParamsObject, QueryObject, ResolvedSessionObject, ResponsesObject, SchemaAuthMethods, SessionObject, VersionSchema } from '@forklaunch/core/http';
|
|
2
|
+
import { MiddlewareNext, Request, Response } from '@forklaunch/hyper-express-fork';
|
|
3
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
4
|
+
/**
|
|
5
|
+
* Creates a POST route handler with schema validation and type safety.
|
|
6
|
+
*
|
|
7
|
+
* @template SV - The schema validator type
|
|
8
|
+
* @template Path - The route path type (must start with '/')
|
|
9
|
+
* @template P - The path parameters type
|
|
10
|
+
* @template ResBodyMap - The response body map type
|
|
11
|
+
* @template ReqBody - The request body type
|
|
12
|
+
* @template ReqQuery - The request query parameters type
|
|
13
|
+
* @template ReqHeaders - The request headers type
|
|
14
|
+
* @template ResHeaders - The response headers type
|
|
15
|
+
* @template LocalsObj - The locals object type
|
|
16
|
+
*
|
|
17
|
+
* @param {SV} schemaValidator - The schema validator instance
|
|
18
|
+
* @param {Path} path - The route path
|
|
19
|
+
* @param {ContractDetails<SV, 'post', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request<LocalsObj>>} contractDetails - The contract details for the route
|
|
20
|
+
* @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]} handlers - The route handlers
|
|
21
|
+
*
|
|
22
|
+
* @returns {void} - Returns nothing, registers the route with Hyper-Express
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* post(
|
|
27
|
+
* schemaValidator,
|
|
28
|
+
* '/users',
|
|
29
|
+
* {
|
|
30
|
+
* summary: 'Create user',
|
|
31
|
+
* description: 'Creates a new user',
|
|
32
|
+
* tags: ['users'],
|
|
33
|
+
* requestBody: {
|
|
34
|
+
* content: {
|
|
35
|
+
* 'application/json': {
|
|
36
|
+
* schema: {
|
|
37
|
+
* type: 'object',
|
|
38
|
+
* properties: {
|
|
39
|
+
* name: { type: 'string' },
|
|
40
|
+
* email: { type: 'string' },
|
|
41
|
+
* password: { type: 'string' }
|
|
42
|
+
* },
|
|
43
|
+
* required: ['name', 'email', 'password']
|
|
44
|
+
* }
|
|
45
|
+
* }
|
|
46
|
+
* }
|
|
47
|
+
* },
|
|
48
|
+
* responses: {
|
|
49
|
+
* 201: {
|
|
50
|
+
* description: 'User created successfully',
|
|
51
|
+
* content: {
|
|
52
|
+
* 'application/json': {
|
|
53
|
+
* schema: {
|
|
54
|
+
* type: 'object',
|
|
55
|
+
* properties: {
|
|
56
|
+
* id: { type: 'string' },
|
|
57
|
+
* name: { type: 'string' },
|
|
58
|
+
* email: { type: 'string' }
|
|
59
|
+
* }
|
|
60
|
+
* }
|
|
61
|
+
* }
|
|
62
|
+
* }
|
|
63
|
+
* },
|
|
64
|
+
* 400: {
|
|
65
|
+
* description: 'Invalid input',
|
|
66
|
+
* content: {
|
|
67
|
+
* 'application/json': {
|
|
68
|
+
* schema: {
|
|
69
|
+
* type: 'object',
|
|
70
|
+
* properties: {
|
|
71
|
+
* error: { type: 'string' }
|
|
72
|
+
* }
|
|
73
|
+
* }
|
|
74
|
+
* }
|
|
75
|
+
* }
|
|
76
|
+
* }
|
|
77
|
+
* }
|
|
78
|
+
* },
|
|
79
|
+
* async (req, res) => {
|
|
80
|
+
* const userData = await req.json();
|
|
81
|
+
* const user = await createUser(userData);
|
|
82
|
+
* res.status(201).json(user);
|
|
83
|
+
* }
|
|
84
|
+
* );
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export 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>[]) => import("@forklaunch/core/http").ExpressLikeTypedHandler<SV, Name, "post", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext, Auth>;
|
|
88
|
+
//# sourceMappingURL=post.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../src/handlers/post.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,wBAAwB,EACxB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,OAAO,EACP,QAAQ,EACT,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AACH,eAAO,MAAM,IAAI,GACf,EAAE,SAAS,kBAAkB,EAC7B,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,IAAI,MAAM,EAAE,EACzB,CAAC,SAAS,YAAY,CAAC,EAAE,CAAC,EAC1B,UAAU,SAAS,eAAe,CAAC,EAAE,CAAC,EACtC,OAAO,SAAS,IAAI,CAAC,EAAE,CAAC,EACxB,QAAQ,SAAS,WAAW,CAAC,EAAE,CAAC,EAChC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,EACpD,KAAK,CAAC,IAAI,SAAS,iBAAiB,CAClC,EAAE,EACF,CAAC,EACD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,CAAC,SAAS,CAAC,CACnB,mBAEgB,EAAE,QACb,IAAI,mBACO,eAAe,CAC9B,EAAE,EACF,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,CAAC,SAAS,CAAC,EAClB,IAAI,CACL,eACY,wBAAwB,CACnC,EAAE,EACF,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAClD,OAAO,CAAC,SAAS,CAAC,EAClB,QAAQ,CAAC,SAAS,CAAC,EACnB,cAAc,CACf,EAAE,sOAmBJ,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Body, ContractDetails, ExpressLikeSchemaHandler, HeadersObject, ParamsObject, QueryObject, ResolvedSessionObject, ResponsesObject, SchemaAuthMethods, SessionObject, VersionSchema } from '@forklaunch/core/http';
|
|
2
|
+
import { MiddlewareNext, Request, Response } from '@forklaunch/hyper-express-fork';
|
|
3
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
4
|
+
/**
|
|
5
|
+
* Creates a PUT route handler with schema validation and type safety for Hyper-Express.
|
|
6
|
+
*
|
|
7
|
+
* @template SV - The schema validator type
|
|
8
|
+
* @template Path - The route path type (must start with '/')
|
|
9
|
+
* @template P - The path parameters type
|
|
10
|
+
* @template ResBodyMap - The response body map type
|
|
11
|
+
* @template ReqBody - The request body type
|
|
12
|
+
* @template ReqQuery - The request query parameters type
|
|
13
|
+
* @template ReqHeaders - The request headers type
|
|
14
|
+
* @template ResHeaders - The response headers type
|
|
15
|
+
* @template LocalsObj - The locals object type
|
|
16
|
+
*
|
|
17
|
+
* @param {SV} schemaValidator - The schema validator instance
|
|
18
|
+
* @param {Path} path - The route path
|
|
19
|
+
* @param {ContractDetails<SV, 'put', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request<LocalsObj>>} contractDetails - The contract details for the route
|
|
20
|
+
* @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]} handlers - The route handlers
|
|
21
|
+
*
|
|
22
|
+
* @returns {void} - Returns nothing, registers the route with Hyper-Express
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* put(
|
|
27
|
+
* schemaValidator,
|
|
28
|
+
* '/users/:id',
|
|
29
|
+
* {
|
|
30
|
+
* summary: 'Update user',
|
|
31
|
+
* description: 'Updates a user by ID',
|
|
32
|
+
* tags: ['users'],
|
|
33
|
+
* pathParams: {
|
|
34
|
+
* id: { type: 'string' }
|
|
35
|
+
* },
|
|
36
|
+
* body: {
|
|
37
|
+
* type: 'object',
|
|
38
|
+
* properties: {
|
|
39
|
+
* name: { type: 'string' }
|
|
40
|
+
* }
|
|
41
|
+
* },
|
|
42
|
+
* responses: {
|
|
43
|
+
* 200: {
|
|
44
|
+
* description: 'User updated successfully',
|
|
45
|
+
* content: {
|
|
46
|
+
* 'application/json': {
|
|
47
|
+
* schema: {
|
|
48
|
+
* type: 'object',
|
|
49
|
+
* properties: {
|
|
50
|
+
* id: { type: 'string' },
|
|
51
|
+
* name: { type: 'string' }
|
|
52
|
+
* }
|
|
53
|
+
* }
|
|
54
|
+
* }
|
|
55
|
+
* }
|
|
56
|
+
* }
|
|
57
|
+
* }
|
|
58
|
+
* },
|
|
59
|
+
* async (req, res) => {
|
|
60
|
+
* const { id } = req.params;
|
|
61
|
+
* const { name } = req.body;
|
|
62
|
+
* // Update user logic
|
|
63
|
+
* res.json({ id, name });
|
|
64
|
+
* }
|
|
65
|
+
* );
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export 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>[]) => import("@forklaunch/core/http").ExpressLikeTypedHandler<SV, Name, "put", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext, Auth>;
|
|
69
|
+
//# sourceMappingURL=put.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"put.d.ts","sourceRoot":"","sources":["../../../src/handlers/put.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,wBAAwB,EACxB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,OAAO,EACP,QAAQ,EACT,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,eAAO,MAAM,GAAG,GACd,EAAE,SAAS,kBAAkB,EAC7B,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,IAAI,MAAM,EAAE,EACzB,CAAC,SAAS,YAAY,CAAC,EAAE,CAAC,EAC1B,UAAU,SAAS,eAAe,CAAC,EAAE,CAAC,EACtC,OAAO,SAAS,IAAI,CAAC,EAAE,CAAC,EACxB,QAAQ,SAAS,WAAW,CAAC,EAAE,CAAC,EAChC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,EACnD,KAAK,CAAC,IAAI,SAAS,iBAAiB,CAClC,EAAE,EACF,CAAC,EACD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,CAAC,SAAS,CAAC,CACnB,mBAEgB,EAAE,QACb,IAAI,mBACO,eAAe,CAC9B,EAAE,EACF,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,CAAC,SAAS,CAAC,EAClB,IAAI,CACL,eACY,wBAAwB,CACnC,EAAE,EACF,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAClD,OAAO,CAAC,SAAS,CAAC,EAClB,QAAQ,CAAC,SAAS,CAAC,EACnB,cAAc,CACf,EAAE,qOAmBJ,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Body, ContractDetails, ExpressLikeSchemaHandler, HeadersObject, ParamsObject, QueryObject, ResolvedSessionObject, ResponsesObject, SchemaAuthMethods, SessionObject, VersionSchema } from '@forklaunch/core/http';
|
|
2
|
+
import { MiddlewareNext, Request, Response } from '@forklaunch/hyper-express-fork';
|
|
3
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
4
|
+
/**
|
|
5
|
+
* Creates a TRACE route handler with schema validation and type safety.
|
|
6
|
+
*
|
|
7
|
+
* @template SV - The schema validator type
|
|
8
|
+
* @template Path - The route path type (must start with '/')
|
|
9
|
+
* @template P - The path parameters type
|
|
10
|
+
* @template ResBodyMap - The response body map type
|
|
11
|
+
* @template ReqBody - The request body type
|
|
12
|
+
* @template ReqQuery - The request query parameters type
|
|
13
|
+
* @template ReqHeaders - The request headers type
|
|
14
|
+
* @template ResHeaders - The response headers type
|
|
15
|
+
* @template LocalsObj - The locals object type
|
|
16
|
+
*
|
|
17
|
+
* @param {SV} schemaValidator - The schema validator instance
|
|
18
|
+
* @param {Path} path - The route path
|
|
19
|
+
* @param {ContractDetails<SV, 'trace', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request<LocalsObj>>} contractDetails - The contract details for the route
|
|
20
|
+
* @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext>[]} handlers - The route handlers
|
|
21
|
+
*
|
|
22
|
+
* @returns {void} - Returns nothing, registers the route with Hyper-Express
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* trace(
|
|
27
|
+
* schemaValidator,
|
|
28
|
+
* '/debug',
|
|
29
|
+
* {
|
|
30
|
+
* summary: 'Debug endpoint',
|
|
31
|
+
* description: 'Returns the request message for debugging purposes',
|
|
32
|
+
* tags: ['debug'],
|
|
33
|
+
* responses: {
|
|
34
|
+
* 200: {
|
|
35
|
+
* description: 'Request message returned successfully',
|
|
36
|
+
* content: {
|
|
37
|
+
* 'message/http': {
|
|
38
|
+
* schema: {
|
|
39
|
+
* type: 'string'
|
|
40
|
+
* }
|
|
41
|
+
* }
|
|
42
|
+
* }
|
|
43
|
+
* }
|
|
44
|
+
* }
|
|
45
|
+
* },
|
|
46
|
+
* async (req, res) => {
|
|
47
|
+
* const message = await req.text();
|
|
48
|
+
* res.setHeader('content-type', 'message/http');
|
|
49
|
+
* res.status(200).send(message);
|
|
50
|
+
* }
|
|
51
|
+
* );
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export 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>[]) => import("@forklaunch/core/http").ExpressLikeTypedHandler<SV, Name, "trace", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, Request<LocalsObj>, Response<LocalsObj>, MiddlewareNext, Auth>;
|
|
55
|
+
//# sourceMappingURL=trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../../src/handlers/trace.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,wBAAwB,EACxB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,OAAO,EACP,QAAQ,EACT,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,eAAO,MAAM,KAAK,GAChB,EAAE,SAAS,kBAAkB,EAC7B,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,IAAI,MAAM,EAAE,EACzB,CAAC,SAAS,YAAY,CAAC,EAAE,CAAC,EAC1B,UAAU,SAAS,eAAe,CAAC,EAAE,CAAC,EACtC,OAAO,SAAS,IAAI,CAAC,EAAE,CAAC,EACxB,QAAQ,SAAS,WAAW,CAAC,EAAE,CAAC,EAChC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,EACrD,KAAK,CAAC,IAAI,SAAS,iBAAiB,CAClC,EAAE,EACF,CAAC,EACD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,CAAC,SAAS,CAAC,CACnB,mBAEgB,EAAE,QACb,IAAI,mBACO,eAAe,CAC9B,EAAE,EACF,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,CAAC,SAAS,CAAC,EAClB,IAAI,CACL,eACY,wBAAwB,CACnC,EAAE,EACF,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAClD,OAAO,CAAC,SAAS,CAAC,EAClB,QAAQ,CAAC,SAAS,CAAC,EACnB,cAAc,CACf,EAAE,uOAmBJ,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { ForklaunchExpressLikeApplication, MetricsDefinition, OpenTelemetryCollector, SessionObject } from '@forklaunch/core/http';
|
|
2
|
+
import { MiddlewareHandler, MiddlewareNext, Request, Response, Server } from '@forklaunch/hyper-express-fork';
|
|
3
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
4
|
+
import * as uWebsockets from 'uWebSockets.js';
|
|
5
|
+
import { ExpressApplicationOptions } from './types/hyperExpressOptions.types';
|
|
6
|
+
/**
|
|
7
|
+
* Represents an application built on top of Hyper-Express and Forklaunch.
|
|
8
|
+
* This class provides a high-performance web server implementation using uWebSockets.js
|
|
9
|
+
* with Forklaunch's schema validation and API documentation capabilities.
|
|
10
|
+
*
|
|
11
|
+
* @template SV - Schema validator type extending AnySchemaValidator
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const app = new Application(schemaValidator, openTelemetryCollector);
|
|
16
|
+
*
|
|
17
|
+
* app.get('/users', {
|
|
18
|
+
* responses: {
|
|
19
|
+
* 200: { type: 'array', items: { type: 'object' } }
|
|
20
|
+
* }
|
|
21
|
+
* }, async (req, res) => {
|
|
22
|
+
* res.json(await getUsers());
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* await app.listen(3000);
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export 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> {
|
|
29
|
+
private docsConfiguration;
|
|
30
|
+
private mcpConfiguration;
|
|
31
|
+
private openapiConfiguration;
|
|
32
|
+
private hostingConfiguration;
|
|
33
|
+
/**
|
|
34
|
+
* Creates an instance of the Application class.
|
|
35
|
+
*
|
|
36
|
+
* @param {SV} schemaValidator - Schema validator for request/response validation
|
|
37
|
+
* @param {OpenTelemetryCollector<MetricsDefinition>} openTelemetryCollector - Collector for OpenTelemetry metrics
|
|
38
|
+
* @param {DocsConfiguration} [docsConfiguration] - Optional configuration for API documentation (Swagger/Scalar)
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const app = new Application(
|
|
43
|
+
* new SchemaValidator(),
|
|
44
|
+
* new OpenTelemetryCollector(),
|
|
45
|
+
* { type: 'swagger' }
|
|
46
|
+
* );
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
constructor(schemaValidator: SV, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, configurationOptions?: ExpressApplicationOptions<SV, SessionSchema>);
|
|
50
|
+
/**
|
|
51
|
+
* Starts the server and sets up API documentation.
|
|
52
|
+
* Supports multiple listening configurations including port, host, and UNIX socket path.
|
|
53
|
+
* Automatically sets up Swagger or Scalar documentation based on configuration.
|
|
54
|
+
*
|
|
55
|
+
* @param {number | string} arg0 - Port number or UNIX socket path
|
|
56
|
+
* @param {string | Function} [arg1] - Host name or callback function
|
|
57
|
+
* @param {Function} [arg2] - Callback function when host is specified
|
|
58
|
+
* @returns {Promise<uWebsockets.us_listen_socket>} Promise resolving to the listening socket
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* // Listen on port 3000
|
|
63
|
+
* await app.listen(3000);
|
|
64
|
+
*
|
|
65
|
+
* // Listen on specific host and port
|
|
66
|
+
* await app.listen(3000, 'localhost');
|
|
67
|
+
*
|
|
68
|
+
* // Listen on UNIX socket
|
|
69
|
+
* await app.listen('/tmp/app.sock');
|
|
70
|
+
*
|
|
71
|
+
* // With callback
|
|
72
|
+
* await app.listen(3000, (socket) => {
|
|
73
|
+
* console.log('Server started');
|
|
74
|
+
* });
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
listen(port: number, callback?: (listen_socket: uWebsockets.us_listen_socket) => void): Promise<uWebsockets.us_listen_socket>;
|
|
78
|
+
listen(port: number, host?: string, callback?: (listen_socket: uWebsockets.us_listen_socket) => void): Promise<uWebsockets.us_listen_socket>;
|
|
79
|
+
listen(unix_path: string, callback?: (listen_socket: uWebsockets.us_listen_socket) => void): Promise<uWebsockets.us_listen_socket>;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=hyperExpressApplication.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hyperExpressApplication.d.ts","sourceRoot":"","sources":["../../src/hyperExpressApplication.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,gCAAgC,EAMhC,iBAAiB,EAEjB,sBAAsB,EACtB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,QAAQ,EACR,MAAM,EACP,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAM3D,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAK9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,WAAW,CACtB,EAAE,SAAS,kBAAkB,EAC7B,aAAa,SAAS,aAAa,CAAC,EAAE,CAAC,CACvC,SAAQ,gCAAgC,CACxC,EAAE,EACF,MAAM,EACN,iBAAiB,EACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACjC,cAAc,EACd,aAAa,CACd;IACC,OAAO,CAAC,iBAAiB,CAAgC;IACzD,OAAO,CAAC,gBAAgB,CAC0C;IAClE,OAAO,CAAC,oBAAoB,CAC0C;IACtE,OAAO,CAAC,oBAAoB,CAC0C;IACtE;;;;;;;;;;;;;;;OAeG;IACH,YACE,eAAe,EAAE,EAAE,EACnB,sBAAsB,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,EACjE,oBAAoB,CAAC,EAAE,yBAAyB,CAAC,EAAE,EAAE,aAAa,CAAC,EAqBpE;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,gBAAgB,KAAK,IAAI,GAC/D,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACnC,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,gBAAgB,KAAK,IAAI,GAC/D,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACnC,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,gBAAgB,KAAK,IAAI,GAC/D,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;CA2R1C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ForklaunchExpressLikeRouter, ForklaunchRouter, MetricsDefinition, OpenTelemetryCollector, SessionObject, TypedMiddlewareDefinition } from '@forklaunch/core/http';
|
|
2
|
+
import { Router as ExpressRouter, MiddlewareHandler, MiddlewareNext, Request, Response, WSRouteHandler, WSRouteOptions } from '@forklaunch/hyper-express-fork';
|
|
3
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
4
|
+
import { EventSchema } from '@forklaunch/core/ws';
|
|
5
|
+
import { ExpressRequestHandler } from './types/hyperExpress.types';
|
|
6
|
+
import { ExpressRouterOptions } from './types/hyperExpressOptions.types';
|
|
7
|
+
import { TypedWebSocketMiddlewareDefinition } from './types/websocketMiddleware.types';
|
|
8
|
+
export declare class Router<SV extends AnySchemaValidator, BasePath extends `/${string}`, RouterSession extends SessionObject<SV>> extends ForklaunchExpressLikeRouter<SV, BasePath, MiddlewareHandler, ExpressRouter, Request<Record<string, unknown>>, Response<Record<string, unknown>>, MiddlewareNext, RouterSession> implements ForklaunchRouter<SV> {
|
|
9
|
+
basePath: BasePath;
|
|
10
|
+
private configOptions;
|
|
11
|
+
constructor(basePath: BasePath, schemaValidator: SV, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, options?: ExpressRouterOptions<SV, RouterSession>);
|
|
12
|
+
route(path: string): this;
|
|
13
|
+
any: TypedMiddlewareDefinition<this, SV, RouterSession, Request<Record<string, unknown>>, Response<Record<string, unknown>>, MiddlewareNext, ExpressRequestHandler>;
|
|
14
|
+
upgrade: TypedWebSocketMiddlewareDefinition<this, SV, RouterSession, Request<Record<string, unknown>>, Response<Record<string, unknown>>, MiddlewareNext, ExpressRequestHandler>;
|
|
15
|
+
ws(pattern: string, eventSchemas: EventSchema<SV>, options?: WSRouteOptions, handler?: WSRouteHandler<(typeof eventSchemas)['userData']>): void;
|
|
16
|
+
clone(): this;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=hyperExpressRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hyperExpressRouter.d.ts","sourceRoot":"","sources":["../../src/hyperExpressRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,2BAA2B,EAC3B,gBAAgB,EAEhB,iBAAiB,EAEjB,sBAAsB,EAMtB,aAAa,EAEb,yBAAyB,EAE1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,MAAM,IAAI,aAAa,EACvB,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,QAAQ,EACR,cAAc,EACd,cAAc,EACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EACL,kCAAkC,EAGnC,MAAM,mCAAmC,CAAC;AAE3C,qBAAa,MAAM,CACjB,EAAE,SAAS,kBAAkB,EAC7B,QAAQ,SAAS,IAAI,MAAM,EAAE,EAC7B,aAAa,SAAS,aAAa,CAAC,EAAE,CAAC,CAEvC,SAAQ,2BAA2B,CACjC,EAAE,EACF,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACjC,cAAc,EACd,aAAa,CAEf,YAAW,gBAAgB,CAAC,EAAE,CAAC;IAKtB,QAAQ,EAAE,QAAQ;IAH3B,OAAO,CAAC,aAAa,CAAC;IAEtB,YACS,QAAQ,EAAE,QAAQ,EACzB,eAAe,EAAE,EAAE,EACnB,sBAAsB,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,EACjE,OAAO,CAAC,EAAE,oBAAoB,CAAC,EAAE,EAAE,aAAa,CAAC,EAiBlD;IAED,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAGxB;IAED,GAAG,EAAE,yBAAyB,CAC5B,IAAI,EACJ,EAAE,EACF,aAAa,EACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACjC,cAAc,EACd,qBAAqB,CACtB,CAmGC;IAEF,OAAO,EAAE,kCAAkC,CACzC,IAAI,EACJ,EAAE,EACF,aAAa,EACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACjC,cAAc,EACd,qBAAqB,CACtB,CAoKC;IAEF,EAAE,CACA,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC,EAC7B,OAAO,CAAC,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,QAG5D;IAED,KAAK,IAAI,IAAI,CAWZ;CACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { MiddlewareHandler } from '@forklaunch/hyper-express-fork';
|
|
2
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
3
|
+
import { BusboyConfig } from 'busboy';
|
|
4
|
+
/**
|
|
5
|
+
* Middleware function to parse the request body based on the content type.
|
|
6
|
+
* Supports multiple content types including JSON, form data, text, binary, and multipart.
|
|
7
|
+
*
|
|
8
|
+
* Supported content types:
|
|
9
|
+
* - application/json: Parses body as JSON
|
|
10
|
+
* - application/x-www-form-urlencoded: Parses body as URL-encoded form data
|
|
11
|
+
* - text/plain: Parses body as plain text
|
|
12
|
+
* - application/octet-stream: Parses body as binary buffer
|
|
13
|
+
* - multipart/form-data: Parses body as multipart form data, handling both files and fields
|
|
14
|
+
*
|
|
15
|
+
* @param {Request} req - The Hyper-Express request object
|
|
16
|
+
* @returns {Promise<void>} - Promise that resolves when parsing is complete
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* // Use as middleware
|
|
21
|
+
* app.use(contentParse);
|
|
22
|
+
*
|
|
23
|
+
* // Access parsed body in route handler
|
|
24
|
+
* app.post('/upload', async (req, res) => {
|
|
25
|
+
* if (req.headers['content-type'] === 'multipart/form-data') {
|
|
26
|
+
* // Access uploaded file
|
|
27
|
+
* const file = req.body.fileField;
|
|
28
|
+
* console.log(file.name, file.type, file.buffer);
|
|
29
|
+
* }
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function contentParse<SV extends AnySchemaValidator>(options?: {
|
|
34
|
+
busboy?: BusboyConfig;
|
|
35
|
+
}): MiddlewareHandler;
|
|
36
|
+
//# sourceMappingURL=contentParse.middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contentParse.middleware.d.ts","sourceRoot":"","sources":["../../../src/middleware/contentParse.middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAW,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,OAAO,CAAC,EAAE;IACpE,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,GAAG,iBAAiB,CA+DpB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ForklaunchNextFunction, ParamsDictionary } from '@forklaunch/core/http';
|
|
2
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
3
|
+
import { ParsedQs } from 'qs';
|
|
4
|
+
import { InternalRequest, InternalResponse } from '../types/hyperExpress.types';
|
|
5
|
+
/**
|
|
6
|
+
* Middleware to enrich the response transmission by intercepting and parsing responses before they are sent.
|
|
7
|
+
* This middleware enhances Hyper-Express's response handling by adding additional functionality to the send, json,
|
|
8
|
+
* and setHeader methods. It also handles CORS and response status codes.
|
|
9
|
+
*
|
|
10
|
+
* @template SV - Schema validator type extending AnySchemaValidator
|
|
11
|
+
* @param {InternalRequest} req - The Hyper-Express request object with additional type information
|
|
12
|
+
* @param {InternalResponse} res - The Hyper-Express response object with additional type information
|
|
13
|
+
* @param {ForklaunchNextFunction} next - The next middleware function in the chain
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* app.use(enrichResponseTransmission);
|
|
18
|
+
*
|
|
19
|
+
* app.get('/users', (req, res) => {
|
|
20
|
+
* // Response will be automatically enriched
|
|
21
|
+
* res.json({ users: [] });
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function enrichResponseTransmission<SV extends AnySchemaValidator>(req: InternalRequest<SV, ParamsDictionary, Record<string, unknown>, ParsedQs, Record<string, string>, Record<string, unknown>, string, Record<string, unknown>>, res: InternalResponse<Record<number, unknown>, Record<string, string>, Record<string, unknown>, string>, next: ForklaunchNextFunction): void;
|
|
26
|
+
//# sourceMappingURL=enrichResponseTransmission.middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enrichResponseTransmission.middleware.d.ts","sourceRoot":"","sources":["../../../src/middleware/enrichResponseTransmission.middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,sBAAsB,EAEtB,gBAAgB,EAEjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,SAAS,kBAAkB,EACtE,GAAG,EAAE,eAAe,CAClB,EAAE,EACF,gBAAgB,EAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvB,QAAQ,EACR,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvB,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACxB,EACD,GAAG,EAAE,gBAAgB,CACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvB,MAAM,CACP,EACD,IAAI,EAAE,sBAAsB,QA4I7B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { MiddlewareNext, Request, Response } from '@forklaunch/hyper-express-fork';
|
|
2
|
+
/**
|
|
3
|
+
* Polyfills the getHeaders method on the Response object.
|
|
4
|
+
* This middleware adds Express-like getHeaders functionality to Hyper-Express responses.
|
|
5
|
+
*
|
|
6
|
+
* @param {Request} _req - The request object (unused)
|
|
7
|
+
* @param {Response} res - The response object to polyfill
|
|
8
|
+
* @param {MiddlewareNext} [next] - The next middleware function
|
|
9
|
+
* @returns {void}
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // Use as middleware
|
|
14
|
+
* app.use(polyfillGetHeaders);
|
|
15
|
+
*
|
|
16
|
+
* // Now you can use getHeaders in your routes
|
|
17
|
+
* app.get('/headers', (req, res) => {
|
|
18
|
+
* const headers = res.getHeaders();
|
|
19
|
+
* res.json({ headers });
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @todo Move into fork, and create gh issue
|
|
24
|
+
*/
|
|
25
|
+
export declare function polyfillGetHeaders(_req: Request, res: Response, next?: MiddlewareNext): void;
|
|
26
|
+
//# sourceMappingURL=polyfillGetHeaders.middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polyfillGetHeaders.middleware.d.ts","sourceRoot":"","sources":["../../../src/middleware/polyfillGetHeaders.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,OAAO,EACP,QAAQ,EACT,MAAM,gCAAgC,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,QAAQ,EACb,IAAI,CAAC,EAAE,cAAc,QAMtB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { MiddlewareHandler } from '@forklaunch/hyper-express-fork';
|
|
2
|
+
import { OpenAPIObject } from 'openapi3-ts/oas31';
|
|
3
|
+
import swaggerUi from 'swagger-ui-express';
|
|
4
|
+
/**
|
|
5
|
+
* Middleware to redirect requests to the Swagger UI base path.
|
|
6
|
+
* Ensures that requests to the base path are redirected to include a trailing slash,
|
|
7
|
+
* which is required for proper Swagger UI functionality.
|
|
8
|
+
*
|
|
9
|
+
* @param {string} path - The base path for the Swagger UI (e.g., '/api/v1/docs')
|
|
10
|
+
* @returns {MiddlewareHandler} The middleware handler for redirecting requests
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const swaggerPath = '/api/v1/docs';
|
|
15
|
+
* app.use(swaggerPath, swaggerRedirect(swaggerPath));
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function swaggerRedirect(path: string): MiddlewareHandler;
|
|
19
|
+
/**
|
|
20
|
+
* Sets up the Swagger UI middleware for serving API documentation.
|
|
21
|
+
* This function configures and returns middleware handlers that serve the Swagger UI
|
|
22
|
+
* interface and its associated assets. It uses live-directory for efficient asset
|
|
23
|
+
* serving and caching.
|
|
24
|
+
*
|
|
25
|
+
* @param {string} path - The base path for the Swagger UI (e.g., '/api/v1/docs')
|
|
26
|
+
* @param {OpenAPIObject} document - The OpenAPI specification document to display
|
|
27
|
+
* @param {swaggerUi.SwaggerUiOptions} [opts] - Optional Swagger UI configuration options
|
|
28
|
+
* @param {swaggerUi.SwaggerOptions} [options] - Optional Swagger specification display options
|
|
29
|
+
* @param {string} [customCss] - Custom CSS to apply to the Swagger UI interface
|
|
30
|
+
* @param {string} [customfavIcon] - Custom favicon URL for the Swagger UI
|
|
31
|
+
* @param {string} [swaggerUrl] - Custom URL for loading the Swagger specification
|
|
32
|
+
* @param {string} [customSiteTitle] - Custom title for the Swagger UI page
|
|
33
|
+
* @returns {MiddlewareHandler[]} Array of middleware handlers: [serve, staticAssets, ui]
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const swaggerPath = '/api/v1/docs';
|
|
38
|
+
* const swaggerSpec = generateOpenApiSpecs(schemaValidator, 3000, routers);
|
|
39
|
+
*
|
|
40
|
+
* app.get(
|
|
41
|
+
* `${swaggerPath}/*`,
|
|
42
|
+
* swagger(
|
|
43
|
+
* swaggerPath,
|
|
44
|
+
* swaggerSpec,
|
|
45
|
+
* { explorer: true },
|
|
46
|
+
* undefined,
|
|
47
|
+
* '.swagger-ui .topbar { background-color: #24292e; }'
|
|
48
|
+
* )
|
|
49
|
+
* );
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare function swagger(path: string, document: OpenAPIObject, opts?: swaggerUi.SwaggerUiOptions, options?: swaggerUi.SwaggerOptions, customCss?: string, customfavIcon?: string, swaggerUrl?: string, customSiteTitle?: string): MiddlewareHandler[];
|
|
53
|
+
//# sourceMappingURL=swagger.middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swagger.middleware.d.ts","sourceRoot":"","sources":["../../../src/middleware/swagger.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAIlB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAE3C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAW/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,EACvB,IAAI,CAAC,EAAE,SAAS,CAAC,gBAAgB,EACjC,OAAO,CAAC,EAAE,SAAS,CAAC,cAAc,EAClC,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,MAAM,GACvB,iBAAiB,EAAE,CA6DrB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ForklaunchRequest, ForklaunchResponse, ForklaunchSendableData, ForklaunchStatusResponse, ParamsDictionary, ParsedQs, SessionObject } from '@forklaunch/core/http';
|
|
2
|
+
import { Request as ExpressRequest, Response as ExpressResponse, MiddlewareNext } from '@forklaunch/hyper-express-fork';
|
|
3
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
4
|
+
/**
|
|
5
|
+
* Extends the Forklaunch request interface with properties from Hyper-Express's request interface.
|
|
6
|
+
*
|
|
7
|
+
* @template SV - A type that extends AnySchemaValidator.
|
|
8
|
+
* @template P - A type for request parameters, defaulting to ParamsDictionary.
|
|
9
|
+
* @template _ResBody - A type for the response body, defaulting to unknown.
|
|
10
|
+
* @template ReqBody - A type for the request body, defaulting to unknown.
|
|
11
|
+
* @template ReqQuery - A type for the request query, defaulting to ParsedQs.
|
|
12
|
+
* @template LocalsObj - A type for local variables, defaulting to an empty object.
|
|
13
|
+
*/
|
|
14
|
+
export interface InternalRequest<SV extends AnySchemaValidator, P extends ParamsDictionary, ReqBody extends Record<string, unknown>, ReqQuery extends Record<string, unknown>, ReqHeaders extends Record<string, unknown>, LocalsObj extends Record<string, unknown>, Version extends string, SessionSchema extends SessionObject<SV>> extends ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders, Version, SessionSchema>, Omit<ExpressRequest<LocalsObj>, 'method' | 'params' | 'query' | 'headers' | 'path'> {
|
|
15
|
+
/** The request body */
|
|
16
|
+
body: ReqBody;
|
|
17
|
+
/** The request query parameters */
|
|
18
|
+
query: ReqQuery;
|
|
19
|
+
/** The request parameters */
|
|
20
|
+
params: P;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Extends the Forklaunch response interface with properties from Hyper-Express's response interface.
|
|
24
|
+
*
|
|
25
|
+
* @template ResBody - A type for the response body, defaulting to unknown.
|
|
26
|
+
* @template LocalsObj - A type for local variables, defaulting to an empty object.
|
|
27
|
+
* @template StatusCode - A type for the status code, defaulting to number.
|
|
28
|
+
*/
|
|
29
|
+
export interface InternalResponse<ResBodyMap extends Record<number, unknown>, ResHeaders extends Record<string, string>, LocalsObj extends Record<string, unknown>, Version extends string> extends ForklaunchResponse<ExpressResponse, ResBodyMap, ResHeaders, LocalsObj, Version>, Omit<ExpressResponse<LocalsObj>, 'getHeader' | 'getHeaders' | 'setHeader' | 'headersSent' | 'send' | 'status' | 'statusCode' | 'json' | 'jsonp' | 'end' | 'type' | 'on'>, ForklaunchStatusResponse<ForklaunchSendableData> {
|
|
30
|
+
/** The body data of the response */
|
|
31
|
+
bodyData: unknown;
|
|
32
|
+
/** If cors are applied to the response */
|
|
33
|
+
cors: boolean;
|
|
34
|
+
/** The status code of the response */
|
|
35
|
+
_status_code: number;
|
|
36
|
+
/** Whether the response is corked */
|
|
37
|
+
_cork: boolean;
|
|
38
|
+
/** Whether the response is currently corked */
|
|
39
|
+
_corked: boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A request handler function compatible with Hyper-Express, used for processing HTTP requests.
|
|
43
|
+
*
|
|
44
|
+
* @param req - The incoming request object, with `query` and `headers` properties normalized to either `ParsedQs` or a generic record.
|
|
45
|
+
* @param res - The response object for sending data back to the client.
|
|
46
|
+
* @param next - The middleware next function to pass control to the next handler.
|
|
47
|
+
*/
|
|
48
|
+
export type ExpressRequestHandler = (req: Omit<ExpressRequest<Record<string, unknown>>, 'query' | 'headers'> & {
|
|
49
|
+
query: ParsedQs | Record<string, unknown>;
|
|
50
|
+
headers: Record<string, unknown>;
|
|
51
|
+
}, res: ExpressResponse<Record<string, unknown>>, next: MiddlewareNext) => void;
|
|
52
|
+
//# sourceMappingURL=hyperExpress.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hyperExpress.types.d.ts","sourceRoot":"","sources":["../../../src/types/hyperExpress.types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,OAAO,IAAI,cAAc,EACzB,QAAQ,IAAI,eAAe,EAC3B,cAAc,EACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe,CAC9B,EAAE,SAAS,kBAAkB,EAC7B,CAAC,SAAS,gBAAgB,EAC1B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,OAAO,SAAS,MAAM,EACtB,aAAa,SAAS,aAAa,CAAC,EAAE,CAAC,CAEvC,SACE,iBAAiB,CACf,EAAE,EACF,CAAC,EACD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,OAAO,EACP,aAAa,CACd,EACD,IAAI,CACF,cAAc,CAAC,SAAS,CAAC,EACzB,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CACnD;IACH,uBAAuB;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,mCAAmC;IACnC,KAAK,EAAE,QAAQ,CAAC;IAChB,6BAA6B;IAC7B,MAAM,EAAE,CAAC,CAAC;CACX;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB,CAC/B,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACzC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,OAAO,SAAS,MAAM,CAEtB,SACE,kBAAkB,CAChB,eAAe,EACf,UAAU,EACV,UAAU,EACV,SAAS,EACT,OAAO,CACR,EACD,IAAI,CACF,eAAe,CAAC,SAAS,CAAC,EACxB,WAAW,GACX,YAAY,GACZ,WAAW,GACX,aAAa,GACb,MAAM,GACN,QAAQ,GACR,YAAY,GACZ,MAAM,GACN,OAAO,GACP,KAAK,GACL,MAAM,GACN,IAAI,CACP,EACD,wBAAwB,CAAC,sBAAsB,CAAC;IAClD,oCAAoC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,IAAI,EAAE,OAAO,CAAC;IACd,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC,GAAG;IACxE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,EACD,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC7C,IAAI,EAAE,cAAc,KACjB,IAAI,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ExpressLikeApplicationOptions, ExpressLikeRouterOptions, SessionObject } from '@forklaunch/core/http';
|
|
2
|
+
import { ServerConstructorOptions } from '@forklaunch/hyper-express-fork';
|
|
3
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
4
|
+
import { BusboyConfig } from 'busboy';
|
|
5
|
+
import { CorsOptions } from 'cors';
|
|
6
|
+
export type ExpressApplicationOptions<SV extends AnySchemaValidator, SessionSchema extends SessionObject<SV>> = ExpressLikeApplicationOptions<SV, SessionSchema> & {
|
|
7
|
+
busboy?: BusboyConfig;
|
|
8
|
+
server?: ServerConstructorOptions;
|
|
9
|
+
cors?: CorsOptions;
|
|
10
|
+
};
|
|
11
|
+
export type ExpressRouterOptions<SV extends AnySchemaValidator, SessionSchema extends SessionObject<SV>> = ExpressLikeRouterOptions<SV, SessionSchema> & {
|
|
12
|
+
busboy?: BusboyConfig;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=hyperExpressOptions.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hyperExpressOptions.types.d.ts","sourceRoot":"","sources":["../../../src/types/hyperExpressOptions.types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,MAAM,MAAM,yBAAyB,CACnC,EAAE,SAAS,kBAAkB,EAC7B,aAAa,SAAS,aAAa,CAAC,EAAE,CAAC,IACrC,6BAA6B,CAAC,EAAE,EAAE,aAAa,CAAC,GAAG;IACrD,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC9B,EAAE,SAAS,kBAAkB,EAC7B,aAAa,SAAS,aAAa,CAAC,EAAE,CAAC,IACrC,wBAAwB,CAAC,EAAE,EAAE,aAAa,CAAC,GAAG;IAChD,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC"}
|