@forklaunch/express 0.3.0 → 0.3.2

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.mts CHANGED
@@ -1,15 +1,19 @@
1
1
  import { AnySchemaValidator, LiteralSchema, IdiomaticSchema, SchemaResolve } from '@forklaunch/validator';
2
- import { ForklaunchExpressLikeApplication, ForklaunchExpressLikeRouter, TypedMiddlewareDefinition, ParamsDictionary, ForklaunchRequest, ForklaunchResponse, ForklaunchStatusResponse, ForklaunchSendableData } from '@forklaunch/core/http';
3
- import { Express, RequestHandler, Router as Router$1, NextFunction, Request as Request$1, Response as Response$1 } from 'express';
2
+ import * as _forklaunch_core_http from '@forklaunch/core/http';
3
+ import { ForklaunchExpressLikeApplication, ForklaunchExpressLikeRouter, TypedMiddlewareDefinition, ParamsObject, ResponsesObject, Body, QueryObject, HeadersObject, ContractDetails, ExpressLikeSchemaHandler } from '@forklaunch/core/http';
4
+ import { Express, RequestHandler, Request, Response, NextFunction, Router as Router$1 } from 'express';
5
+ export { NextFunction, Request, Response } from 'express';
4
6
  import { Server } from 'http';
5
- import { ParsedQs } from 'qs';
7
+ import * as qs from 'qs';
8
+ export { ParsedQs } from 'qs';
9
+ import * as express_serve_static_core from 'express-serve-static-core';
6
10
 
7
11
  /**
8
12
  * Application class that sets up an Express server with Forklaunch routers and middleware.
9
13
  *
10
14
  * @template SV - A type that extends AnySchemaValidator.
11
15
  */
12
- declare class Application<SV extends AnySchemaValidator> extends ForklaunchExpressLikeApplication<SV, Express, RequestHandler> {
16
+ declare class Application<SV extends AnySchemaValidator> extends ForklaunchExpressLikeApplication<SV, Express, RequestHandler, Request, Response, NextFunction> {
13
17
  /**
14
18
  * Creates an instance of Application.
15
19
  *
@@ -36,7 +40,7 @@ declare class Application<SV extends AnySchemaValidator> extends ForklaunchExpre
36
40
  * @template SV - A type that extends AnySchemaValidator.
37
41
  * @implements {ForklaunchRouter<SV>}
38
42
  */
39
- declare class Router<SV extends AnySchemaValidator, BasePath extends `/${string}`> extends ForklaunchExpressLikeRouter<SV, BasePath, RequestHandler, Router$1> {
43
+ declare class Router<SV extends AnySchemaValidator, BasePath extends `/${string}`> extends ForklaunchExpressLikeRouter<SV, BasePath, RequestHandler, Router$1, Request, Response, NextFunction> {
40
44
  basePath: BasePath;
41
45
  /**
42
46
  * Creates an instance of Router.
@@ -51,51 +55,83 @@ declare class Router<SV extends AnySchemaValidator, BasePath extends `/${string}
51
55
  res?: IdiomaticSchema<SV>;
52
56
  } & {
53
57
  [K in ParamName]: IdiomaticSchema<SV>;
54
- }>(name: ParamName, types: Types, handler: (req: SchemaResolve<Types['req']>, res: SchemaResolve<Types['res']>, next: NextFunction, value: SchemaResolve<Types[ParamName]>, name: ParamName) => void): this;
55
- checkout: TypedMiddlewareDefinition<this, SV>;
56
- copy: TypedMiddlewareDefinition<this, SV>;
57
- lock: TypedMiddlewareDefinition<this, SV>;
58
- merge: TypedMiddlewareDefinition<this, SV>;
59
- mkcactivity: TypedMiddlewareDefinition<this, SV>;
60
- mkcol: TypedMiddlewareDefinition<this, SV>;
61
- move: TypedMiddlewareDefinition<this, SV>;
62
- 'm-search': TypedMiddlewareDefinition<this, SV>;
63
- notify: TypedMiddlewareDefinition<this, SV>;
64
- propfind: TypedMiddlewareDefinition<this, SV>;
65
- proppatch: TypedMiddlewareDefinition<this, SV>;
66
- purge: TypedMiddlewareDefinition<this, SV>;
67
- report: TypedMiddlewareDefinition<this, SV>;
68
- search: TypedMiddlewareDefinition<this, SV>;
69
- subscribe: TypedMiddlewareDefinition<this, SV>;
70
- unlock: TypedMiddlewareDefinition<this, SV>;
71
- unsubscribe: TypedMiddlewareDefinition<this, SV>;
72
- link: TypedMiddlewareDefinition<this, SV>;
73
- unlink: TypedMiddlewareDefinition<this, SV>;
58
+ }>(name: ParamName, _types: Types, handler: (req: SchemaResolve<Types['req']>, res: SchemaResolve<Types['res']>, next: NextFunction, value: SchemaResolve<Types[ParamName]>, name: ParamName) => void): this;
59
+ checkout: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
60
+ copy: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
61
+ lock: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
62
+ merge: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
63
+ mkcactivity: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
64
+ mkcol: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
65
+ move: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
66
+ 'm-search': TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
67
+ notify: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
68
+ propfind: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
69
+ proppatch: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
70
+ purge: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
71
+ report: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
72
+ search: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
73
+ subscribe: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
74
+ unlock: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
75
+ unsubscribe: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
76
+ link: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
77
+ unlink: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
74
78
  }
75
79
 
76
- /**
77
- * Extends the Forklaunch request interface with properties from Express's request interface.
78
- *
79
- * @template SV - A type that extends AnySchemaValidator.
80
- * @template P - A type for request parameters, defaulting to ParamsDictionary.
81
- * @template ResBodyMap - A type for the response body, defaulting to unknown.
82
- * @template ReqBody - A type for the request body, defaulting to unknown.
83
- * @template ReqQuery - A type for the request query, defaulting to ParsedQs.
84
- * @template LocalsObj - A type for local variables, defaulting to an empty object.
85
- */
86
- interface Request<SV extends AnySchemaValidator, P extends ParamsDictionary, ResBodyMap extends Record<number, unknown>, ReqBody extends Record<string, unknown>, ReqQuery extends ParsedQs, ReqHeaders extends Record<string, string>, LocalsObj extends Record<string, unknown>> extends ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders>, Omit<Request$1<P, ResBodyMap, ReqBody, ReqQuery, LocalsObj>, 'method' | 'body' | 'params' | 'query' | 'headers' | 'path'> {
87
- }
88
- /**
89
- * Extends the Forklaunch response interface with properties from Express's response interface.
90
- *
91
- * @template ResBodyMap - A type for the response body, defaulting to unknown.
92
- * @template LocalsObj - A type for local variables, defaulting to an empty object.
93
- * @template StatusCode - A type for the status code, defaulting to number.
94
- */
95
- interface Response<ResBodyMap extends Record<number, unknown>, ResHeaders extends Record<string, string>, LocalsObj extends Record<string, unknown> = Record<string, unknown>> extends ForklaunchResponse<ResBodyMap, ResHeaders, LocalsObj>, Omit<Response$1<ResBodyMap, LocalsObj>, 'status' | 'statusCode' | 'sendStatus' | 'getHeaders' | 'setHeader' | 'send' | 'json' | 'jsonp' | 'end' | 'locals'>, ForklaunchStatusResponse<ForklaunchSendableData> {
96
- /** If cors are applied to the response */
97
- cors: boolean;
98
- }
80
+ declare const checkout: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
81
+
82
+ declare const copy: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
83
+
84
+ declare const delete_: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "delete", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "delete", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
85
+
86
+ declare const get: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "get", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "get", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
87
+
88
+ declare const head: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "head", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "head", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
89
+
90
+ declare const link: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
91
+
92
+ declare const lock: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
93
+
94
+ declare const mSearch: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
95
+
96
+ declare const merge: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
97
+
98
+ declare const middleware: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
99
+
100
+ declare const mkcActivity: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
101
+
102
+ declare const mkcol: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
103
+
104
+ declare const move: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
105
+
106
+ declare const notify: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
107
+
108
+ declare const options: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "options", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "options", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
109
+
110
+ declare const patch: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "patch", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "patch", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
111
+
112
+ declare const post: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "post", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "post", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
113
+
114
+ declare const propfind: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
115
+
116
+ declare const proppatch: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
117
+
118
+ declare const purge: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
119
+
120
+ declare const put: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "put", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "put", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
121
+
122
+ declare const report: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
123
+
124
+ declare const search: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
125
+
126
+ declare const subscribe: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
127
+
128
+ declare const trace: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "trace", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "trace", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
129
+
130
+ declare const unlink: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
131
+
132
+ declare const unlock: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
133
+
134
+ declare const unsubscribe: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
99
135
 
100
136
  /**
101
137
  * Creates a new instance of Application with the given schema validator.
@@ -115,4 +151,35 @@ declare function forklaunchExpress<SV extends AnySchemaValidator>(schemaValidato
115
151
  */
116
152
  declare function forklaunchRouter<SV extends AnySchemaValidator, BasePath extends `/${string}`>(basePath: BasePath, schemaValidator: SV): Router<SV, BasePath>;
117
153
 
118
- export { Application, type Request, type Response, Router, forklaunchExpress, forklaunchRouter };
154
+ declare const handlers: {
155
+ checkout: typeof checkout;
156
+ copy: typeof copy;
157
+ delete: typeof delete_;
158
+ get: typeof get;
159
+ head: typeof head;
160
+ link: typeof link;
161
+ lock: typeof lock;
162
+ mSearch: typeof mSearch;
163
+ merge: typeof merge;
164
+ middleware: typeof middleware;
165
+ mkcActivity: typeof mkcActivity;
166
+ mkcol: typeof mkcol;
167
+ move: typeof move;
168
+ notify: typeof notify;
169
+ options: typeof options;
170
+ patch: typeof patch;
171
+ post: typeof post;
172
+ propfind: typeof propfind;
173
+ proppatch: typeof proppatch;
174
+ purge: typeof purge;
175
+ put: typeof put;
176
+ report: typeof report;
177
+ search: typeof search;
178
+ subscribe: typeof subscribe;
179
+ trace: typeof trace;
180
+ unlink: typeof unlink;
181
+ unlock: typeof unlock;
182
+ unsubscribe: typeof unsubscribe;
183
+ };
184
+
185
+ export { Application, Router, forklaunchExpress, forklaunchRouter, handlers };
package/lib/index.d.ts CHANGED
@@ -1,15 +1,19 @@
1
1
  import { AnySchemaValidator, LiteralSchema, IdiomaticSchema, SchemaResolve } from '@forklaunch/validator';
2
- import { ForklaunchExpressLikeApplication, ForklaunchExpressLikeRouter, TypedMiddlewareDefinition, ParamsDictionary, ForklaunchRequest, ForklaunchResponse, ForklaunchStatusResponse, ForklaunchSendableData } from '@forklaunch/core/http';
3
- import { Express, RequestHandler, Router as Router$1, NextFunction, Request as Request$1, Response as Response$1 } from 'express';
2
+ import * as _forklaunch_core_http from '@forklaunch/core/http';
3
+ import { ForklaunchExpressLikeApplication, ForklaunchExpressLikeRouter, TypedMiddlewareDefinition, ParamsObject, ResponsesObject, Body, QueryObject, HeadersObject, ContractDetails, ExpressLikeSchemaHandler } from '@forklaunch/core/http';
4
+ import { Express, RequestHandler, Request, Response, NextFunction, Router as Router$1 } from 'express';
5
+ export { NextFunction, Request, Response } from 'express';
4
6
  import { Server } from 'http';
5
- import { ParsedQs } from 'qs';
7
+ import * as qs from 'qs';
8
+ export { ParsedQs } from 'qs';
9
+ import * as express_serve_static_core from 'express-serve-static-core';
6
10
 
7
11
  /**
8
12
  * Application class that sets up an Express server with Forklaunch routers and middleware.
9
13
  *
10
14
  * @template SV - A type that extends AnySchemaValidator.
11
15
  */
12
- declare class Application<SV extends AnySchemaValidator> extends ForklaunchExpressLikeApplication<SV, Express, RequestHandler> {
16
+ declare class Application<SV extends AnySchemaValidator> extends ForklaunchExpressLikeApplication<SV, Express, RequestHandler, Request, Response, NextFunction> {
13
17
  /**
14
18
  * Creates an instance of Application.
15
19
  *
@@ -36,7 +40,7 @@ declare class Application<SV extends AnySchemaValidator> extends ForklaunchExpre
36
40
  * @template SV - A type that extends AnySchemaValidator.
37
41
  * @implements {ForklaunchRouter<SV>}
38
42
  */
39
- declare class Router<SV extends AnySchemaValidator, BasePath extends `/${string}`> extends ForklaunchExpressLikeRouter<SV, BasePath, RequestHandler, Router$1> {
43
+ declare class Router<SV extends AnySchemaValidator, BasePath extends `/${string}`> extends ForklaunchExpressLikeRouter<SV, BasePath, RequestHandler, Router$1, Request, Response, NextFunction> {
40
44
  basePath: BasePath;
41
45
  /**
42
46
  * Creates an instance of Router.
@@ -51,51 +55,83 @@ declare class Router<SV extends AnySchemaValidator, BasePath extends `/${string}
51
55
  res?: IdiomaticSchema<SV>;
52
56
  } & {
53
57
  [K in ParamName]: IdiomaticSchema<SV>;
54
- }>(name: ParamName, types: Types, handler: (req: SchemaResolve<Types['req']>, res: SchemaResolve<Types['res']>, next: NextFunction, value: SchemaResolve<Types[ParamName]>, name: ParamName) => void): this;
55
- checkout: TypedMiddlewareDefinition<this, SV>;
56
- copy: TypedMiddlewareDefinition<this, SV>;
57
- lock: TypedMiddlewareDefinition<this, SV>;
58
- merge: TypedMiddlewareDefinition<this, SV>;
59
- mkcactivity: TypedMiddlewareDefinition<this, SV>;
60
- mkcol: TypedMiddlewareDefinition<this, SV>;
61
- move: TypedMiddlewareDefinition<this, SV>;
62
- 'm-search': TypedMiddlewareDefinition<this, SV>;
63
- notify: TypedMiddlewareDefinition<this, SV>;
64
- propfind: TypedMiddlewareDefinition<this, SV>;
65
- proppatch: TypedMiddlewareDefinition<this, SV>;
66
- purge: TypedMiddlewareDefinition<this, SV>;
67
- report: TypedMiddlewareDefinition<this, SV>;
68
- search: TypedMiddlewareDefinition<this, SV>;
69
- subscribe: TypedMiddlewareDefinition<this, SV>;
70
- unlock: TypedMiddlewareDefinition<this, SV>;
71
- unsubscribe: TypedMiddlewareDefinition<this, SV>;
72
- link: TypedMiddlewareDefinition<this, SV>;
73
- unlink: TypedMiddlewareDefinition<this, SV>;
58
+ }>(name: ParamName, _types: Types, handler: (req: SchemaResolve<Types['req']>, res: SchemaResolve<Types['res']>, next: NextFunction, value: SchemaResolve<Types[ParamName]>, name: ParamName) => void): this;
59
+ checkout: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
60
+ copy: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
61
+ lock: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
62
+ merge: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
63
+ mkcactivity: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
64
+ mkcol: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
65
+ move: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
66
+ 'm-search': TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
67
+ notify: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
68
+ propfind: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
69
+ proppatch: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
70
+ purge: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
71
+ report: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
72
+ search: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
73
+ subscribe: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
74
+ unlock: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
75
+ unsubscribe: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
76
+ link: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
77
+ unlink: TypedMiddlewareDefinition<this, SV, Request, Response, NextFunction>;
74
78
  }
75
79
 
76
- /**
77
- * Extends the Forklaunch request interface with properties from Express's request interface.
78
- *
79
- * @template SV - A type that extends AnySchemaValidator.
80
- * @template P - A type for request parameters, defaulting to ParamsDictionary.
81
- * @template ResBodyMap - A type for the response body, defaulting to unknown.
82
- * @template ReqBody - A type for the request body, defaulting to unknown.
83
- * @template ReqQuery - A type for the request query, defaulting to ParsedQs.
84
- * @template LocalsObj - A type for local variables, defaulting to an empty object.
85
- */
86
- interface Request<SV extends AnySchemaValidator, P extends ParamsDictionary, ResBodyMap extends Record<number, unknown>, ReqBody extends Record<string, unknown>, ReqQuery extends ParsedQs, ReqHeaders extends Record<string, string>, LocalsObj extends Record<string, unknown>> extends ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders>, Omit<Request$1<P, ResBodyMap, ReqBody, ReqQuery, LocalsObj>, 'method' | 'body' | 'params' | 'query' | 'headers' | 'path'> {
87
- }
88
- /**
89
- * Extends the Forklaunch response interface with properties from Express's response interface.
90
- *
91
- * @template ResBodyMap - A type for the response body, defaulting to unknown.
92
- * @template LocalsObj - A type for local variables, defaulting to an empty object.
93
- * @template StatusCode - A type for the status code, defaulting to number.
94
- */
95
- interface Response<ResBodyMap extends Record<number, unknown>, ResHeaders extends Record<string, string>, LocalsObj extends Record<string, unknown> = Record<string, unknown>> extends ForklaunchResponse<ResBodyMap, ResHeaders, LocalsObj>, Omit<Response$1<ResBodyMap, LocalsObj>, 'status' | 'statusCode' | 'sendStatus' | 'getHeaders' | 'setHeader' | 'send' | 'json' | 'jsonp' | 'end' | 'locals'>, ForklaunchStatusResponse<ForklaunchSendableData> {
96
- /** If cors are applied to the response */
97
- cors: boolean;
98
- }
80
+ declare const checkout: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
81
+
82
+ declare const copy: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
83
+
84
+ declare const delete_: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "delete", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "delete", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
85
+
86
+ declare const get: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "get", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "get", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
87
+
88
+ declare const head: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "head", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "head", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
89
+
90
+ declare const link: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
91
+
92
+ declare const lock: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
93
+
94
+ declare const mSearch: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
95
+
96
+ declare const merge: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
97
+
98
+ declare const middleware: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
99
+
100
+ declare const mkcActivity: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
101
+
102
+ declare const mkcol: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
103
+
104
+ declare const move: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
105
+
106
+ declare const notify: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
107
+
108
+ declare const options: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "options", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "options", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
109
+
110
+ declare const patch: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "patch", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "patch", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
111
+
112
+ declare const post: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "post", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "post", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
113
+
114
+ declare const propfind: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
115
+
116
+ declare const proppatch: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
117
+
118
+ declare const purge: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
119
+
120
+ declare const put: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "put", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "put", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
121
+
122
+ declare const report: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
123
+
124
+ declare const search: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
125
+
126
+ declare const subscribe: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
127
+
128
+ declare const trace: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "trace", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "trace", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
129
+
130
+ declare const unlink: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
131
+
132
+ declare const unlock: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
133
+
134
+ declare const unsubscribe: <SV extends AnySchemaValidator, 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>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]) => _forklaunch_core_http.ExpressLikeTypedHandler<SV, "middleware", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>;
99
135
 
100
136
  /**
101
137
  * Creates a new instance of Application with the given schema validator.
@@ -115,4 +151,35 @@ declare function forklaunchExpress<SV extends AnySchemaValidator>(schemaValidato
115
151
  */
116
152
  declare function forklaunchRouter<SV extends AnySchemaValidator, BasePath extends `/${string}`>(basePath: BasePath, schemaValidator: SV): Router<SV, BasePath>;
117
153
 
118
- export { Application, type Request, type Response, Router, forklaunchExpress, forklaunchRouter };
154
+ declare const handlers: {
155
+ checkout: typeof checkout;
156
+ copy: typeof copy;
157
+ delete: typeof delete_;
158
+ get: typeof get;
159
+ head: typeof head;
160
+ link: typeof link;
161
+ lock: typeof lock;
162
+ mSearch: typeof mSearch;
163
+ merge: typeof merge;
164
+ middleware: typeof middleware;
165
+ mkcActivity: typeof mkcActivity;
166
+ mkcol: typeof mkcol;
167
+ move: typeof move;
168
+ notify: typeof notify;
169
+ options: typeof options;
170
+ patch: typeof patch;
171
+ post: typeof post;
172
+ propfind: typeof propfind;
173
+ proppatch: typeof proppatch;
174
+ purge: typeof purge;
175
+ put: typeof put;
176
+ report: typeof report;
177
+ search: typeof search;
178
+ subscribe: typeof subscribe;
179
+ trace: typeof trace;
180
+ unlink: typeof unlink;
181
+ unlock: typeof unlock;
182
+ unsubscribe: typeof unsubscribe;
183
+ };
184
+
185
+ export { Application, Router, forklaunchExpress, forklaunchRouter, handlers };
package/lib/index.js CHANGED
@@ -31,12 +31,14 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
31
31
  var index_exports = {};
32
32
  __export(index_exports, {
33
33
  forklaunchExpress: () => forklaunchExpress,
34
- forklaunchRouter: () => forklaunchRouter
34
+ forklaunchRouter: () => forklaunchRouter,
35
+ handlers: () => handlers
35
36
  });
36
37
  module.exports = __toCommonJS(index_exports);
37
38
 
38
39
  // src/expressApplication.ts
39
40
  var import_http = require("@forklaunch/core/http");
41
+ var import_express_api_reference = require("@scalar/express-api-reference");
40
42
  var import_express = __toESM(require("express"));
41
43
  var import_swagger_ui_express = __toESM(require("swagger-ui-express"));
42
44
  var Application = class extends import_http.ForklaunchExpressLikeApplication {
@@ -57,36 +59,28 @@ var Application = class extends import_http.ForklaunchExpressLikeApplication {
57
59
  (0, import_http.generateSwaggerDocument)(this.schemaValidator, port, this.routers)
58
60
  )
59
61
  );
60
- import("@scalar/express-api-reference").then(({ apiReference }) => {
61
- this.internal.use(
62
- `/api/${process.env.VERSION ?? "v1"}${process.env.DOCS_PATH ?? "/docs"}`,
63
- apiReference({
64
- spec: {
65
- content: (0, import_http.generateSwaggerDocument)(
66
- this.schemaValidator,
67
- port,
68
- this.routers
69
- )
70
- }
71
- })
72
- );
73
- }).catch((error) => {
74
- console.warn("Failed to load Scalar API reference:", error);
75
- });
62
+ this.internal.use(
63
+ `/api/${process.env.VERSION ?? "v1"}${process.env.DOCS_PATH ?? "/docs"}`,
64
+ (0, import_express_api_reference.apiReference)({
65
+ spec: {
66
+ content: (0, import_http.generateSwaggerDocument)(
67
+ this.schemaValidator,
68
+ port,
69
+ this.routers
70
+ )
71
+ }
72
+ })
73
+ );
76
74
  const errorHandler = (err, req, res, _next) => {
77
75
  res.locals.errorMessage = err.message;
78
- res.status(res.statusCode && res.statusCode >= 400 ? res.statusCode : 500).send(`Internal server error:
79
-
80
- ${err.message}`);
81
- (0, import_http.emitLoggerError)(
82
- {
83
- contractDetails: { name: "unknown" },
84
- originalPath: req.route?.path,
85
- ...req
86
- },
87
- res,
88
- err.stack ?? err.message
76
+ res.status(res.statusCode && res.statusCode >= 400 ? res.statusCode : 500).send(
77
+ `Internal server error:
78
+
79
+ ${(0, import_http.isForklaunchRequest)(req) ? req.context.correlationId : "No correlation ID"}`
89
80
  );
81
+ (0, import_http.logger)("error").error(err.stack ?? err.message, {
82
+ [import_http.ATTR_HTTP_RESPONSE_STATUS_CODE]: res.statusCode ?? 500
83
+ });
90
84
  };
91
85
  this.internal.use(errorHandler);
92
86
  return this.internal.listen(...args);
@@ -106,14 +100,12 @@ function enrichResponseTransmission(req, res, next) {
106
100
  res.json = function(data) {
107
101
  res.bodyData = data;
108
102
  (0, import_http2.enrichExpressLikeSend)(this, req, res, originalJson, data, !res.cors);
109
- (0, import_http2.recordMetric)(req, res);
110
103
  return data;
111
104
  };
112
105
  res.send = function(data) {
113
106
  if (!res.bodyData) {
114
107
  res.bodyData = data;
115
108
  }
116
- (0, import_http2.recordMetric)(req, res);
117
109
  return (0, import_http2.enrichExpressLikeSend)(this, req, res, originalSend, data, !res.cors);
118
110
  };
119
111
  res.setHeader = function(name, value) {
@@ -149,7 +141,7 @@ var Router = class extends import_http3.ForklaunchExpressLikeRouter {
149
141
  this.internal.route(path);
150
142
  return this;
151
143
  }
152
- param(name, types, handler) {
144
+ param(name, _types, handler) {
153
145
  this.internal.param(name, (req, res, next, value, name2) => {
154
146
  handler(
155
147
  req,
@@ -315,6 +307,174 @@ var Router = class extends import_http3.ForklaunchExpressLikeRouter {
315
307
  };
316
308
  };
317
309
 
310
+ // src/handlers/checkout.ts
311
+ var import_http4 = require("@forklaunch/core/http");
312
+ var checkout = (schemaValidator, path, contractDetails, ...handlers2) => {
313
+ return (0, import_http4.middleware)(schemaValidator, path, contractDetails, ...handlers2);
314
+ };
315
+
316
+ // src/handlers/copy.ts
317
+ var import_http5 = require("@forklaunch/core/http");
318
+ var copy = (schemaValidator, path, contractDetails, ...handlers2) => {
319
+ return (0, import_http5.middleware)(schemaValidator, path, contractDetails, ...handlers2);
320
+ };
321
+
322
+ // src/handlers/delete.ts
323
+ var import_http6 = require("@forklaunch/core/http");
324
+ var delete_ = (schemaValidator, path, contractDetails, ...handlers2) => {
325
+ return (0, import_http6.delete_)(schemaValidator, path, contractDetails, ...handlers2);
326
+ };
327
+
328
+ // src/handlers/get.ts
329
+ var import_http7 = require("@forklaunch/core/http");
330
+ var get = (schemaValidator, path, contractDetails, ...handlers2) => {
331
+ return (0, import_http7.get)(schemaValidator, path, contractDetails, ...handlers2);
332
+ };
333
+
334
+ // src/handlers/head.ts
335
+ var import_http8 = require("@forklaunch/core/http");
336
+ var head = (schemaValidator, path, contractDetails, ...handlers2) => {
337
+ return (0, import_http8.head)(schemaValidator, path, contractDetails, ...handlers2);
338
+ };
339
+
340
+ // src/handlers/link.ts
341
+ var import_http9 = require("@forklaunch/core/http");
342
+ var link = (schemaValidator, path, contractDetails, ...handlers2) => {
343
+ return (0, import_http9.middleware)(schemaValidator, path, contractDetails, ...handlers2);
344
+ };
345
+
346
+ // src/handlers/lock.ts
347
+ var import_http10 = require("@forklaunch/core/http");
348
+ var lock = (schemaValidator, path, contractDetails, ...handlers2) => {
349
+ return (0, import_http10.middleware)(schemaValidator, path, contractDetails, ...handlers2);
350
+ };
351
+
352
+ // src/handlers/m-search.ts
353
+ var import_http11 = require("@forklaunch/core/http");
354
+ var mSearch = (schemaValidator, path, contractDetails, ...handlers2) => {
355
+ return (0, import_http11.middleware)(schemaValidator, path, contractDetails, ...handlers2);
356
+ };
357
+
358
+ // src/handlers/merge.ts
359
+ var import_http12 = require("@forklaunch/core/http");
360
+ var merge = (schemaValidator, path, contractDetails, ...handlers2) => {
361
+ return (0, import_http12.middleware)(schemaValidator, path, contractDetails, ...handlers2);
362
+ };
363
+
364
+ // src/handlers/middleware.ts
365
+ var import_http13 = require("@forklaunch/core/http");
366
+ var middleware7 = (schemaValidator, path, contractDetails, ...handlers2) => {
367
+ return (0, import_http13.middleware)(schemaValidator, path, contractDetails, ...handlers2);
368
+ };
369
+
370
+ // src/handlers/mkcactivity.ts
371
+ var import_http14 = require("@forklaunch/core/http");
372
+ var mkcActivity = (schemaValidator, path, contractDetails, ...handlers2) => {
373
+ return (0, import_http14.middleware)(schemaValidator, path, contractDetails, ...handlers2);
374
+ };
375
+
376
+ // src/handlers/mkcol.ts
377
+ var import_http15 = require("@forklaunch/core/http");
378
+ var mkcol = (schemaValidator, path, contractDetails, ...handlers2) => {
379
+ return (0, import_http15.middleware)(schemaValidator, path, contractDetails, ...handlers2);
380
+ };
381
+
382
+ // src/handlers/move.ts
383
+ var import_http16 = require("@forklaunch/core/http");
384
+ var move = (schemaValidator, path, contractDetails, ...handlers2) => {
385
+ return (0, import_http16.middleware)(schemaValidator, path, contractDetails, ...handlers2);
386
+ };
387
+
388
+ // src/handlers/notify.ts
389
+ var import_http17 = require("@forklaunch/core/http");
390
+ var notify = (schemaValidator, path, contractDetails, ...handlers2) => {
391
+ return (0, import_http17.middleware)(schemaValidator, path, contractDetails, ...handlers2);
392
+ };
393
+
394
+ // src/handlers/options.ts
395
+ var import_http18 = require("@forklaunch/core/http");
396
+ var options = (schemaValidator, path, contractDetails, ...handlers2) => {
397
+ return (0, import_http18.options)(schemaValidator, path, contractDetails, ...handlers2);
398
+ };
399
+
400
+ // src/handlers/patch.ts
401
+ var import_http19 = require("@forklaunch/core/http");
402
+ var patch = (schemaValidator, path, contractDetails, ...handlers2) => {
403
+ return (0, import_http19.patch)(schemaValidator, path, contractDetails, ...handlers2);
404
+ };
405
+
406
+ // src/handlers/post.ts
407
+ var import_http20 = require("@forklaunch/core/http");
408
+ var post = (schemaValidator, path, contractDetails, ...handlers2) => {
409
+ return (0, import_http20.post)(schemaValidator, path, contractDetails, ...handlers2);
410
+ };
411
+
412
+ // src/handlers/propfind.ts
413
+ var import_http21 = require("@forklaunch/core/http");
414
+ var propfind = (schemaValidator, path, contractDetails, ...handlers2) => {
415
+ return (0, import_http21.middleware)(schemaValidator, path, contractDetails, ...handlers2);
416
+ };
417
+
418
+ // src/handlers/proppatch.ts
419
+ var import_http22 = require("@forklaunch/core/http");
420
+ var proppatch = (schemaValidator, path, contractDetails, ...handlers2) => {
421
+ return (0, import_http22.middleware)(schemaValidator, path, contractDetails, ...handlers2);
422
+ };
423
+
424
+ // src/handlers/purge.ts
425
+ var import_http23 = require("@forklaunch/core/http");
426
+ var purge = (schemaValidator, path, contractDetails, ...handlers2) => {
427
+ return (0, import_http23.middleware)(schemaValidator, path, contractDetails, ...handlers2);
428
+ };
429
+
430
+ // src/handlers/put.ts
431
+ var import_http24 = require("@forklaunch/core/http");
432
+ var put = (schemaValidator, path, contractDetails, ...handlers2) => {
433
+ return (0, import_http24.put)(schemaValidator, path, contractDetails, ...handlers2);
434
+ };
435
+
436
+ // src/handlers/report.ts
437
+ var import_http25 = require("@forklaunch/core/http");
438
+ var report = (schemaValidator, path, contractDetails, ...handlers2) => {
439
+ return (0, import_http25.middleware)(schemaValidator, path, contractDetails, ...handlers2);
440
+ };
441
+
442
+ // src/handlers/search.ts
443
+ var import_http26 = require("@forklaunch/core/http");
444
+ var search = (schemaValidator, path, contractDetails, ...handlers2) => {
445
+ return (0, import_http26.middleware)(schemaValidator, path, contractDetails, ...handlers2);
446
+ };
447
+
448
+ // src/handlers/subscribe.ts
449
+ var import_http27 = require("@forklaunch/core/http");
450
+ var subscribe = (schemaValidator, path, contractDetails, ...handlers2) => {
451
+ return (0, import_http27.middleware)(schemaValidator, path, contractDetails, ...handlers2);
452
+ };
453
+
454
+ // src/handlers/trace.ts
455
+ var import_http28 = require("@forklaunch/core/http");
456
+ var trace = (schemaValidator, path, contractDetails, ...handlers2) => {
457
+ return (0, import_http28.trace)(schemaValidator, path, contractDetails, ...handlers2);
458
+ };
459
+
460
+ // src/handlers/unlink.ts
461
+ var import_http29 = require("@forklaunch/core/http");
462
+ var unlink = (schemaValidator, path, contractDetails, ...handlers2) => {
463
+ return (0, import_http29.middleware)(schemaValidator, path, contractDetails, ...handlers2);
464
+ };
465
+
466
+ // src/handlers/unlock.ts
467
+ var import_http30 = require("@forklaunch/core/http");
468
+ var unlock = (schemaValidator, path, contractDetails, ...handlers2) => {
469
+ return (0, import_http30.middleware)(schemaValidator, path, contractDetails, ...handlers2);
470
+ };
471
+
472
+ // src/handlers/unsubscribe.ts
473
+ var import_http31 = require("@forklaunch/core/http");
474
+ var unsubscribe = (schemaValidator, path, contractDetails, ...handlers2) => {
475
+ return (0, import_http31.middleware)(schemaValidator, path, contractDetails, ...handlers2);
476
+ };
477
+
318
478
  // index.ts
319
479
  function forklaunchExpress(schemaValidator) {
320
480
  return new Application(schemaValidator);
@@ -323,8 +483,39 @@ function forklaunchRouter(basePath, schemaValidator) {
323
483
  const router = new Router(basePath, schemaValidator);
324
484
  return router;
325
485
  }
486
+ var handlers = {
487
+ checkout,
488
+ copy,
489
+ delete: delete_,
490
+ get,
491
+ head,
492
+ link,
493
+ lock,
494
+ mSearch,
495
+ merge,
496
+ middleware: middleware7,
497
+ mkcActivity,
498
+ mkcol,
499
+ move,
500
+ notify,
501
+ options,
502
+ patch,
503
+ post,
504
+ propfind,
505
+ proppatch,
506
+ purge,
507
+ put,
508
+ report,
509
+ search,
510
+ subscribe,
511
+ trace,
512
+ unlink,
513
+ unlock,
514
+ unsubscribe
515
+ };
326
516
  // Annotate the CommonJS export names for ESM import in node:
327
517
  0 && (module.exports = {
328
518
  forklaunchExpress,
329
- forklaunchRouter
519
+ forklaunchRouter,
520
+ handlers
330
521
  });
package/lib/index.mjs CHANGED
@@ -1,9 +1,12 @@
1
1
  // src/expressApplication.ts
2
2
  import {
3
- emitLoggerError,
3
+ ATTR_HTTP_RESPONSE_STATUS_CODE,
4
4
  ForklaunchExpressLikeApplication,
5
- generateSwaggerDocument
5
+ generateSwaggerDocument,
6
+ isForklaunchRequest,
7
+ logger
6
8
  } from "@forklaunch/core/http";
9
+ import { apiReference } from "@scalar/express-api-reference";
7
10
  import express from "express";
8
11
  import swaggerUi from "swagger-ui-express";
9
12
  var Application = class extends ForklaunchExpressLikeApplication {
@@ -24,36 +27,28 @@ var Application = class extends ForklaunchExpressLikeApplication {
24
27
  generateSwaggerDocument(this.schemaValidator, port, this.routers)
25
28
  )
26
29
  );
27
- import("@scalar/express-api-reference").then(({ apiReference }) => {
28
- this.internal.use(
29
- `/api/${process.env.VERSION ?? "v1"}${process.env.DOCS_PATH ?? "/docs"}`,
30
- apiReference({
31
- spec: {
32
- content: generateSwaggerDocument(
33
- this.schemaValidator,
34
- port,
35
- this.routers
36
- )
37
- }
38
- })
39
- );
40
- }).catch((error) => {
41
- console.warn("Failed to load Scalar API reference:", error);
42
- });
30
+ this.internal.use(
31
+ `/api/${process.env.VERSION ?? "v1"}${process.env.DOCS_PATH ?? "/docs"}`,
32
+ apiReference({
33
+ spec: {
34
+ content: generateSwaggerDocument(
35
+ this.schemaValidator,
36
+ port,
37
+ this.routers
38
+ )
39
+ }
40
+ })
41
+ );
43
42
  const errorHandler = (err, req, res, _next) => {
44
43
  res.locals.errorMessage = err.message;
45
- res.status(res.statusCode && res.statusCode >= 400 ? res.statusCode : 500).send(`Internal server error:
46
-
47
- ${err.message}`);
48
- emitLoggerError(
49
- {
50
- contractDetails: { name: "unknown" },
51
- originalPath: req.route?.path,
52
- ...req
53
- },
54
- res,
55
- err.stack ?? err.message
44
+ res.status(res.statusCode && res.statusCode >= 400 ? res.statusCode : 500).send(
45
+ `Internal server error:
46
+
47
+ ${isForklaunchRequest(req) ? req.context.correlationId : "No correlation ID"}`
56
48
  );
49
+ logger("error").error(err.stack ?? err.message, {
50
+ [ATTR_HTTP_RESPONSE_STATUS_CODE]: res.statusCode ?? 500
51
+ });
57
52
  };
58
53
  this.internal.use(errorHandler);
59
54
  return this.internal.listen(...args);
@@ -67,10 +62,7 @@ import {
67
62
  import express2 from "express";
68
63
 
69
64
  // src/middleware/response.middleware.ts
70
- import {
71
- enrichExpressLikeSend,
72
- recordMetric
73
- } from "@forklaunch/core/http";
65
+ import { enrichExpressLikeSend } from "@forklaunch/core/http";
74
66
  function enrichResponseTransmission(req, res, next) {
75
67
  const originalSend = res.send;
76
68
  const originalJson = res.json;
@@ -78,14 +70,12 @@ function enrichResponseTransmission(req, res, next) {
78
70
  res.json = function(data) {
79
71
  res.bodyData = data;
80
72
  enrichExpressLikeSend(this, req, res, originalJson, data, !res.cors);
81
- recordMetric(req, res);
82
73
  return data;
83
74
  };
84
75
  res.send = function(data) {
85
76
  if (!res.bodyData) {
86
77
  res.bodyData = data;
87
78
  }
88
- recordMetric(req, res);
89
79
  return enrichExpressLikeSend(this, req, res, originalSend, data, !res.cors);
90
80
  };
91
81
  res.setHeader = function(name, value) {
@@ -121,7 +111,7 @@ var Router = class extends ForklaunchExpressLikeRouter {
121
111
  this.internal.route(path);
122
112
  return this;
123
113
  }
124
- param(name, types, handler) {
114
+ param(name, _types, handler) {
125
115
  this.internal.param(name, (req, res, next, value, name2) => {
126
116
  handler(
127
117
  req,
@@ -287,6 +277,230 @@ var Router = class extends ForklaunchExpressLikeRouter {
287
277
  };
288
278
  };
289
279
 
280
+ // src/handlers/checkout.ts
281
+ import {
282
+ middleware
283
+ } from "@forklaunch/core/http";
284
+ var checkout = (schemaValidator, path, contractDetails, ...handlers2) => {
285
+ return middleware(schemaValidator, path, contractDetails, ...handlers2);
286
+ };
287
+
288
+ // src/handlers/copy.ts
289
+ import {
290
+ middleware as middleware2
291
+ } from "@forklaunch/core/http";
292
+ var copy = (schemaValidator, path, contractDetails, ...handlers2) => {
293
+ return middleware2(schemaValidator, path, contractDetails, ...handlers2);
294
+ };
295
+
296
+ // src/handlers/delete.ts
297
+ import {
298
+ delete_ as innerDelete
299
+ } from "@forklaunch/core/http";
300
+ var delete_ = (schemaValidator, path, contractDetails, ...handlers2) => {
301
+ return innerDelete(schemaValidator, path, contractDetails, ...handlers2);
302
+ };
303
+
304
+ // src/handlers/get.ts
305
+ import {
306
+ get as innerGet
307
+ } from "@forklaunch/core/http";
308
+ var get = (schemaValidator, path, contractDetails, ...handlers2) => {
309
+ return innerGet(schemaValidator, path, contractDetails, ...handlers2);
310
+ };
311
+
312
+ // src/handlers/head.ts
313
+ import {
314
+ head as innerHead
315
+ } from "@forklaunch/core/http";
316
+ var head = (schemaValidator, path, contractDetails, ...handlers2) => {
317
+ return innerHead(schemaValidator, path, contractDetails, ...handlers2);
318
+ };
319
+
320
+ // src/handlers/link.ts
321
+ import {
322
+ middleware as middleware3
323
+ } from "@forklaunch/core/http";
324
+ var link = (schemaValidator, path, contractDetails, ...handlers2) => {
325
+ return middleware3(schemaValidator, path, contractDetails, ...handlers2);
326
+ };
327
+
328
+ // src/handlers/lock.ts
329
+ import {
330
+ middleware as middleware4
331
+ } from "@forklaunch/core/http";
332
+ var lock = (schemaValidator, path, contractDetails, ...handlers2) => {
333
+ return middleware4(schemaValidator, path, contractDetails, ...handlers2);
334
+ };
335
+
336
+ // src/handlers/m-search.ts
337
+ import {
338
+ middleware as middleware5
339
+ } from "@forklaunch/core/http";
340
+ var mSearch = (schemaValidator, path, contractDetails, ...handlers2) => {
341
+ return middleware5(schemaValidator, path, contractDetails, ...handlers2);
342
+ };
343
+
344
+ // src/handlers/merge.ts
345
+ import {
346
+ middleware as middleware6
347
+ } from "@forklaunch/core/http";
348
+ var merge = (schemaValidator, path, contractDetails, ...handlers2) => {
349
+ return middleware6(schemaValidator, path, contractDetails, ...handlers2);
350
+ };
351
+
352
+ // src/handlers/middleware.ts
353
+ import {
354
+ middleware as innerMiddleware
355
+ } from "@forklaunch/core/http";
356
+ var middleware7 = (schemaValidator, path, contractDetails, ...handlers2) => {
357
+ return innerMiddleware(schemaValidator, path, contractDetails, ...handlers2);
358
+ };
359
+
360
+ // src/handlers/mkcactivity.ts
361
+ import {
362
+ middleware as middleware8
363
+ } from "@forklaunch/core/http";
364
+ var mkcActivity = (schemaValidator, path, contractDetails, ...handlers2) => {
365
+ return middleware8(schemaValidator, path, contractDetails, ...handlers2);
366
+ };
367
+
368
+ // src/handlers/mkcol.ts
369
+ import {
370
+ middleware as middleware9
371
+ } from "@forklaunch/core/http";
372
+ var mkcol = (schemaValidator, path, contractDetails, ...handlers2) => {
373
+ return middleware9(schemaValidator, path, contractDetails, ...handlers2);
374
+ };
375
+
376
+ // src/handlers/move.ts
377
+ import {
378
+ middleware as middleware10
379
+ } from "@forklaunch/core/http";
380
+ var move = (schemaValidator, path, contractDetails, ...handlers2) => {
381
+ return middleware10(schemaValidator, path, contractDetails, ...handlers2);
382
+ };
383
+
384
+ // src/handlers/notify.ts
385
+ import {
386
+ middleware as middleware11
387
+ } from "@forklaunch/core/http";
388
+ var notify = (schemaValidator, path, contractDetails, ...handlers2) => {
389
+ return middleware11(schemaValidator, path, contractDetails, ...handlers2);
390
+ };
391
+
392
+ // src/handlers/options.ts
393
+ import {
394
+ options as innerOptions
395
+ } from "@forklaunch/core/http";
396
+ var options = (schemaValidator, path, contractDetails, ...handlers2) => {
397
+ return innerOptions(schemaValidator, path, contractDetails, ...handlers2);
398
+ };
399
+
400
+ // src/handlers/patch.ts
401
+ import {
402
+ patch as innerPatch
403
+ } from "@forklaunch/core/http";
404
+ var patch = (schemaValidator, path, contractDetails, ...handlers2) => {
405
+ return innerPatch(schemaValidator, path, contractDetails, ...handlers2);
406
+ };
407
+
408
+ // src/handlers/post.ts
409
+ import {
410
+ post as innerPost
411
+ } from "@forklaunch/core/http";
412
+ var post = (schemaValidator, path, contractDetails, ...handlers2) => {
413
+ return innerPost(schemaValidator, path, contractDetails, ...handlers2);
414
+ };
415
+
416
+ // src/handlers/propfind.ts
417
+ import {
418
+ middleware as middleware12
419
+ } from "@forklaunch/core/http";
420
+ var propfind = (schemaValidator, path, contractDetails, ...handlers2) => {
421
+ return middleware12(schemaValidator, path, contractDetails, ...handlers2);
422
+ };
423
+
424
+ // src/handlers/proppatch.ts
425
+ import {
426
+ middleware as middleware13
427
+ } from "@forklaunch/core/http";
428
+ var proppatch = (schemaValidator, path, contractDetails, ...handlers2) => {
429
+ return middleware13(schemaValidator, path, contractDetails, ...handlers2);
430
+ };
431
+
432
+ // src/handlers/purge.ts
433
+ import {
434
+ middleware as middleware14
435
+ } from "@forklaunch/core/http";
436
+ var purge = (schemaValidator, path, contractDetails, ...handlers2) => {
437
+ return middleware14(schemaValidator, path, contractDetails, ...handlers2);
438
+ };
439
+
440
+ // src/handlers/put.ts
441
+ import {
442
+ put as innerPut
443
+ } from "@forklaunch/core/http";
444
+ var put = (schemaValidator, path, contractDetails, ...handlers2) => {
445
+ return innerPut(schemaValidator, path, contractDetails, ...handlers2);
446
+ };
447
+
448
+ // src/handlers/report.ts
449
+ import {
450
+ middleware as middleware15
451
+ } from "@forklaunch/core/http";
452
+ var report = (schemaValidator, path, contractDetails, ...handlers2) => {
453
+ return middleware15(schemaValidator, path, contractDetails, ...handlers2);
454
+ };
455
+
456
+ // src/handlers/search.ts
457
+ import {
458
+ middleware as middleware16
459
+ } from "@forklaunch/core/http";
460
+ var search = (schemaValidator, path, contractDetails, ...handlers2) => {
461
+ return middleware16(schemaValidator, path, contractDetails, ...handlers2);
462
+ };
463
+
464
+ // src/handlers/subscribe.ts
465
+ import {
466
+ middleware as middleware17
467
+ } from "@forklaunch/core/http";
468
+ var subscribe = (schemaValidator, path, contractDetails, ...handlers2) => {
469
+ return middleware17(schemaValidator, path, contractDetails, ...handlers2);
470
+ };
471
+
472
+ // src/handlers/trace.ts
473
+ import {
474
+ trace as innerTrace
475
+ } from "@forklaunch/core/http";
476
+ var trace = (schemaValidator, path, contractDetails, ...handlers2) => {
477
+ return innerTrace(schemaValidator, path, contractDetails, ...handlers2);
478
+ };
479
+
480
+ // src/handlers/unlink.ts
481
+ import {
482
+ middleware as middleware18
483
+ } from "@forklaunch/core/http";
484
+ var unlink = (schemaValidator, path, contractDetails, ...handlers2) => {
485
+ return middleware18(schemaValidator, path, contractDetails, ...handlers2);
486
+ };
487
+
488
+ // src/handlers/unlock.ts
489
+ import {
490
+ middleware as middleware19
491
+ } from "@forklaunch/core/http";
492
+ var unlock = (schemaValidator, path, contractDetails, ...handlers2) => {
493
+ return middleware19(schemaValidator, path, contractDetails, ...handlers2);
494
+ };
495
+
496
+ // src/handlers/unsubscribe.ts
497
+ import {
498
+ middleware as middleware20
499
+ } from "@forklaunch/core/http";
500
+ var unsubscribe = (schemaValidator, path, contractDetails, ...handlers2) => {
501
+ return middleware20(schemaValidator, path, contractDetails, ...handlers2);
502
+ };
503
+
290
504
  // index.ts
291
505
  function forklaunchExpress(schemaValidator) {
292
506
  return new Application(schemaValidator);
@@ -295,7 +509,38 @@ function forklaunchRouter(basePath, schemaValidator) {
295
509
  const router = new Router(basePath, schemaValidator);
296
510
  return router;
297
511
  }
512
+ var handlers = {
513
+ checkout,
514
+ copy,
515
+ delete: delete_,
516
+ get,
517
+ head,
518
+ link,
519
+ lock,
520
+ mSearch,
521
+ merge,
522
+ middleware: middleware7,
523
+ mkcActivity,
524
+ mkcol,
525
+ move,
526
+ notify,
527
+ options,
528
+ patch,
529
+ post,
530
+ propfind,
531
+ proppatch,
532
+ purge,
533
+ put,
534
+ report,
535
+ search,
536
+ subscribe,
537
+ trace,
538
+ unlink,
539
+ unlock,
540
+ unsubscribe
541
+ };
298
542
  export {
299
543
  forklaunchExpress,
300
- forklaunchRouter
544
+ forklaunchRouter,
545
+ handlers
301
546
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forklaunch/express",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "Forklaunch framework for express.",
5
5
  "homepage": "https://github.com/forklaunch/forklaunch-js#readme",
6
6
  "bugs": {
@@ -25,30 +25,31 @@
25
25
  "lib/**"
26
26
  ],
27
27
  "dependencies": {
28
- "@scalar/express-api-reference": "^0.4.186",
29
- "@types/express": "^5.0.0",
28
+ "@scalar/express-api-reference": "^0.4.192",
30
29
  "cors": "^2.8.5",
31
30
  "express": "^4.21.2",
32
31
  "qs": "^6.14.0",
33
32
  "swagger-ui-express": "^5.0.1",
34
- "@forklaunch/common": "0.2.1",
35
- "@forklaunch/validator": "0.4.4",
36
- "@forklaunch/core": "0.4.0"
33
+ "@forklaunch/common": "0.2.2",
34
+ "@forklaunch/core": "0.5.1",
35
+ "@forklaunch/validator": "0.4.5"
37
36
  },
38
37
  "devDependencies": {
39
- "@eslint/js": "^9.21.0",
38
+ "@eslint/js": "^9.22.0",
40
39
  "@types/cors": "^2.8.17",
40
+ "@types/express": "^5.0.0",
41
+ "@types/express-serve-static-core": "^5.0.6",
41
42
  "@types/jest": "^29.5.14",
42
43
  "@types/qs": "^6.9.18",
43
44
  "@types/swagger-ui-express": "^4.1.8",
44
45
  "jest": "^29.7.0",
45
46
  "kill-port-process": "^3.2.1",
46
- "prettier": "^3.5.2",
47
+ "prettier": "^3.5.3",
47
48
  "ts-jest": "^29.2.6",
48
49
  "ts-node": "^10.9.2",
49
50
  "tsup": "^8.4.0",
50
51
  "typescript": "^5.8.2",
51
- "typescript-eslint": "^8.25.0"
52
+ "typescript-eslint": "^8.26.0"
52
53
  },
53
54
  "scripts": {
54
55
  "build": "tsc --noEmit && tsup index.ts --format cjs,esm --no-splitting --tsconfig tsconfig.json --outDir lib --dts --clean",