@forklaunch/hyper-express 1.2.32 → 1.2.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/lib/index.d.ts +28 -864
  2. package/lib/index.d.ts.map +1 -0
  3. package/lib/src/cluster/hyperExpress.cluster.d.ts +4 -0
  4. package/lib/src/cluster/hyperExpress.cluster.d.ts.map +1 -0
  5. package/lib/src/handlers/any.d.ts +64 -0
  6. package/lib/src/handlers/any.d.ts.map +1 -0
  7. package/lib/src/handlers/delete.d.ts +69 -0
  8. package/lib/src/handlers/delete.d.ts.map +1 -0
  9. package/lib/src/handlers/get.d.ts +81 -0
  10. package/lib/src/handlers/get.d.ts.map +1 -0
  11. package/lib/src/handlers/head.d.ts +73 -0
  12. package/lib/src/handlers/head.d.ts.map +1 -0
  13. package/lib/src/handlers/middleware.d.ts +72 -0
  14. package/lib/src/handlers/middleware.d.ts.map +1 -0
  15. package/lib/src/handlers/options.d.ts +60 -0
  16. package/lib/src/handlers/options.d.ts.map +1 -0
  17. package/lib/src/handlers/patch.d.ts +95 -0
  18. package/lib/src/handlers/patch.d.ts.map +1 -0
  19. package/lib/src/handlers/post.d.ts +88 -0
  20. package/lib/src/handlers/post.d.ts.map +1 -0
  21. package/lib/src/handlers/put.d.ts +69 -0
  22. package/lib/src/handlers/put.d.ts.map +1 -0
  23. package/lib/src/handlers/trace.d.ts +55 -0
  24. package/lib/src/handlers/trace.d.ts.map +1 -0
  25. package/lib/src/hyperExpressApplication.d.ts +81 -0
  26. package/lib/src/hyperExpressApplication.d.ts.map +1 -0
  27. package/lib/src/hyperExpressRouter.d.ts +18 -0
  28. package/lib/src/hyperExpressRouter.d.ts.map +1 -0
  29. package/lib/src/middleware/contentParse.middleware.d.ts +36 -0
  30. package/lib/src/middleware/contentParse.middleware.d.ts.map +1 -0
  31. package/lib/src/middleware/enrichResponseTransmission.middleware.d.ts +26 -0
  32. package/lib/src/middleware/enrichResponseTransmission.middleware.d.ts.map +1 -0
  33. package/lib/src/middleware/polyfillGetHeaders.middleware.d.ts +26 -0
  34. package/lib/src/middleware/polyfillGetHeaders.middleware.d.ts.map +1 -0
  35. package/lib/src/middleware/swagger.middleware.d.ts +53 -0
  36. package/lib/src/middleware/swagger.middleware.d.ts.map +1 -0
  37. package/lib/src/types/hyperExpress.types.d.ts +52 -0
  38. package/lib/src/types/hyperExpress.types.d.ts.map +1 -0
  39. package/lib/src/types/hyperExpressOptions.types.d.ts +14 -0
  40. package/lib/src/types/hyperExpressOptions.types.d.ts.map +1 -0
  41. package/lib/src/types/websocketMiddleware.types.d.ts +45 -0
  42. package/lib/src/types/websocketMiddleware.types.d.ts.map +1 -0
  43. package/lib/src/webSocket.d.ts +12 -0
  44. package/lib/src/webSocket.d.ts.map +1 -0
  45. package/package.json +29 -28
  46. package/LICENSE +0 -21
  47. 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"}