@forklaunch/hyper-express 0.9.31 → 0.10.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 +46 -3
- package/lib/index.d.ts +46 -3
- package/lib/index.js +12 -3
- package/lib/index.mjs +12 -3
- package/package.json +11 -10
package/lib/index.d.mts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import * as _forklaunch_core_http from '@forklaunch/core/http';
|
|
2
|
-
import { ParamsObject, ResponsesObject, Body, QueryObject, HeadersObject, VersionSchema, SchemaAuthMethods, ContractDetails, ExpressLikeSchemaHandler, ResolvedSessionObject, SessionObject, ExpressLikeApplicationOptions, ExpressLikeRouterOptions, ForklaunchExpressLikeApplication, OpenTelemetryCollector, MetricsDefinition, ParsedQs, ForklaunchExpressLikeRouter, ForklaunchRouter, TypedMiddlewareDefinition } from '@forklaunch/core/http';
|
|
3
|
-
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
4
|
-
import { Request, Response, MiddlewareNext, ServerConstructorOptions, Server, MiddlewareHandler, Router as Router$1 } from '@forklaunch/hyper-express-fork';
|
|
2
|
+
import { ParamsObject, ResponsesObject, Body, QueryObject, HeadersObject, VersionSchema, SchemaAuthMethods, ContractDetails, ExpressLikeSchemaHandler, ResolvedSessionObject, SessionObject, ExpressLikeApplicationOptions, ExpressLikeRouterOptions, ForklaunchExpressLikeApplication, OpenTelemetryCollector, MetricsDefinition, ParsedQs, StringOnlyObject, MiddlewareContractDetails, PathMatch, TypedHandler, ForklaunchExpressLikeRouter, ForklaunchRouter, TypedMiddlewareDefinition } from '@forklaunch/core/http';
|
|
3
|
+
import { AnySchemaValidator, Schema } from '@forklaunch/validator';
|
|
4
|
+
import { Request, Response, MiddlewareNext, ServerConstructorOptions, Server, MiddlewareHandler, Router as Router$1, WSRouteOptions, WSRouteHandler } from '@forklaunch/hyper-express-fork';
|
|
5
5
|
export { MiddlewareNext as NextFunction, Request, Response, ServerConstructorOptions } from '@forklaunch/hyper-express-fork';
|
|
6
6
|
import * as uWebsockets from 'uWebSockets.js';
|
|
7
7
|
import { BusboyConfig } from 'busboy';
|
|
8
8
|
export { BusboyConfig } from 'busboy';
|
|
9
9
|
import { CorsOptions } from 'cors';
|
|
10
10
|
export { CorsOptions } from 'cors';
|
|
11
|
+
import { EventSchema } from '@forklaunch/core/ws';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Creates a route handler that matches any HTTP method with schema validation and type safety.
|
|
@@ -802,12 +803,54 @@ type ExpressRequestHandler = (req: Omit<Request<Record<string, unknown>>, 'query
|
|
|
802
803
|
headers: Record<string, unknown>;
|
|
803
804
|
}, res: Response<Record<string, unknown>>, next: MiddlewareNext) => void;
|
|
804
805
|
|
|
806
|
+
type WebSocketUpgradeContext<SV extends AnySchemaValidator, BaseResponse, Upgrade extends StringOnlyObject<SV>> = Omit<BaseResponse, 'upgrade'> & {
|
|
807
|
+
upgrade: (context: Upgrade extends infer U ? U extends StringOnlyObject<SV> ? Schema<U, SV> : U : never) => void;
|
|
808
|
+
};
|
|
809
|
+
type WebSocketContractDetails<SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, VersionedApi extends VersionSchema<SV, 'middleware'>, BaseRequest, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>> = MiddlewareContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, BaseRequest, Auth> & {
|
|
810
|
+
upgrade?: Upgrade;
|
|
811
|
+
};
|
|
812
|
+
type WebSocketTypedHandler<SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, BaseRequest, BaseResponse, NextFunction, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>> = Omit<TypedHandler<SV, Name, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction, Auth>, 'contractDetails' | 'handlers'> & {
|
|
813
|
+
contractDetails: WebSocketContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, BaseRequest, Auth, Upgrade>;
|
|
814
|
+
handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>[];
|
|
815
|
+
};
|
|
816
|
+
interface TypedWebSocketMiddlewareDefinition<ChainableRouter, SV extends AnySchemaValidator, Session extends SessionObject<SV>, BaseRequest, BaseResponse, NextFunction, RouterHandler> {
|
|
817
|
+
<Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, SessionSchema extends SessionObject<SV>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(path: Path, contractDetails: WebSocketContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, BaseRequest, Auth, Upgrade>, middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>, ...middlewares: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, SessionSchema, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>[]): ChainableRouter;
|
|
818
|
+
<Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(contractDetails: WebSocketContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, BaseRequest, Auth, Upgrade>, middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>, ...middlewares: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>[]): ChainableRouter;
|
|
819
|
+
(middleware: RouterHandler, ...otherMiddleware: RouterHandler[]): ChainableRouter;
|
|
820
|
+
<Name extends string, Path extends `/${string}`, SuppliedPath extends Path, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(path: PathMatch<SuppliedPath, Path>, middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>, ...middlewareAndTypedHandler: [
|
|
821
|
+
...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
|
|
822
|
+
upgrade: (context: Schema<Upgrade, SV>) => void;
|
|
823
|
+
}, NextFunction>[],
|
|
824
|
+
WebSocketTypedHandler<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
|
|
825
|
+
upgrade: (context: Schema<Upgrade, SV>) => void;
|
|
826
|
+
}, NextFunction, Auth, Upgrade>
|
|
827
|
+
]): ChainableRouter;
|
|
828
|
+
<Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
|
|
829
|
+
upgrade: (context: Schema<Upgrade, SV>) => void;
|
|
830
|
+
}, NextFunction>, ...middlewareAndTypedHandler: [
|
|
831
|
+
...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
|
|
832
|
+
upgrade: (context: Schema<Upgrade, SV>) => void;
|
|
833
|
+
}, NextFunction>[],
|
|
834
|
+
WebSocketTypedHandler<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
|
|
835
|
+
upgrade: (context: Schema<Upgrade, SV>) => void;
|
|
836
|
+
}, NextFunction, Auth, Upgrade>
|
|
837
|
+
]): ChainableRouter;
|
|
838
|
+
<Name extends string, Path extends `/${string}`, SuppliedPath extends Path, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(path: PathMatch<SuppliedPath, Path>, typedHandler: WebSocketTypedHandler<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
|
|
839
|
+
upgrade: (context: Schema<Upgrade, SV>) => void;
|
|
840
|
+
}, NextFunction, Auth, Upgrade>): ChainableRouter;
|
|
841
|
+
<Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(typedHandler: WebSocketTypedHandler<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
|
|
842
|
+
upgrade: (context: Schema<Upgrade, SV>) => void;
|
|
843
|
+
}, NextFunction, Auth, Upgrade>): ChainableRouter;
|
|
844
|
+
}
|
|
845
|
+
|
|
805
846
|
declare class Router<SV extends AnySchemaValidator, BasePath extends `/${string}`, RouterSession extends SessionObject<SV>> extends ForklaunchExpressLikeRouter<SV, BasePath, MiddlewareHandler, Router$1, Request<Record<string, unknown>>, Response<Record<string, unknown>>, MiddlewareNext, RouterSession> implements ForklaunchRouter<SV> {
|
|
806
847
|
basePath: BasePath;
|
|
807
848
|
private configOptions;
|
|
808
849
|
constructor(basePath: BasePath, schemaValidator: SV, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, options?: ExpressRouterOptions<SV, RouterSession>);
|
|
809
850
|
route(path: string): this;
|
|
810
851
|
any: TypedMiddlewareDefinition<this, SV, RouterSession, Request<Record<string, unknown>>, Response<Record<string, unknown>>, MiddlewareNext, ExpressRequestHandler>;
|
|
852
|
+
upgrade: TypedWebSocketMiddlewareDefinition<this, SV, RouterSession, Request<Record<string, unknown>>, Response<Record<string, unknown>>, MiddlewareNext, ExpressRequestHandler>;
|
|
853
|
+
ws(pattern: string, eventSchemas: EventSchema<SV>, options?: WSRouteOptions, handler?: WSRouteHandler<(typeof eventSchemas)['userData']>): void;
|
|
811
854
|
clone(): this;
|
|
812
855
|
}
|
|
813
856
|
|
package/lib/index.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import * as _forklaunch_core_http from '@forklaunch/core/http';
|
|
2
|
-
import { ParamsObject, ResponsesObject, Body, QueryObject, HeadersObject, VersionSchema, SchemaAuthMethods, ContractDetails, ExpressLikeSchemaHandler, ResolvedSessionObject, SessionObject, ExpressLikeApplicationOptions, ExpressLikeRouterOptions, ForklaunchExpressLikeApplication, OpenTelemetryCollector, MetricsDefinition, ParsedQs, ForklaunchExpressLikeRouter, ForklaunchRouter, TypedMiddlewareDefinition } from '@forklaunch/core/http';
|
|
3
|
-
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
4
|
-
import { Request, Response, MiddlewareNext, ServerConstructorOptions, Server, MiddlewareHandler, Router as Router$1 } from '@forklaunch/hyper-express-fork';
|
|
2
|
+
import { ParamsObject, ResponsesObject, Body, QueryObject, HeadersObject, VersionSchema, SchemaAuthMethods, ContractDetails, ExpressLikeSchemaHandler, ResolvedSessionObject, SessionObject, ExpressLikeApplicationOptions, ExpressLikeRouterOptions, ForklaunchExpressLikeApplication, OpenTelemetryCollector, MetricsDefinition, ParsedQs, StringOnlyObject, MiddlewareContractDetails, PathMatch, TypedHandler, ForklaunchExpressLikeRouter, ForklaunchRouter, TypedMiddlewareDefinition } from '@forklaunch/core/http';
|
|
3
|
+
import { AnySchemaValidator, Schema } from '@forklaunch/validator';
|
|
4
|
+
import { Request, Response, MiddlewareNext, ServerConstructorOptions, Server, MiddlewareHandler, Router as Router$1, WSRouteOptions, WSRouteHandler } from '@forklaunch/hyper-express-fork';
|
|
5
5
|
export { MiddlewareNext as NextFunction, Request, Response, ServerConstructorOptions } from '@forklaunch/hyper-express-fork';
|
|
6
6
|
import * as uWebsockets from 'uWebSockets.js';
|
|
7
7
|
import { BusboyConfig } from 'busboy';
|
|
8
8
|
export { BusboyConfig } from 'busboy';
|
|
9
9
|
import { CorsOptions } from 'cors';
|
|
10
10
|
export { CorsOptions } from 'cors';
|
|
11
|
+
import { EventSchema } from '@forklaunch/core/ws';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Creates a route handler that matches any HTTP method with schema validation and type safety.
|
|
@@ -802,12 +803,54 @@ type ExpressRequestHandler = (req: Omit<Request<Record<string, unknown>>, 'query
|
|
|
802
803
|
headers: Record<string, unknown>;
|
|
803
804
|
}, res: Response<Record<string, unknown>>, next: MiddlewareNext) => void;
|
|
804
805
|
|
|
806
|
+
type WebSocketUpgradeContext<SV extends AnySchemaValidator, BaseResponse, Upgrade extends StringOnlyObject<SV>> = Omit<BaseResponse, 'upgrade'> & {
|
|
807
|
+
upgrade: (context: Upgrade extends infer U ? U extends StringOnlyObject<SV> ? Schema<U, SV> : U : never) => void;
|
|
808
|
+
};
|
|
809
|
+
type WebSocketContractDetails<SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, VersionedApi extends VersionSchema<SV, 'middleware'>, BaseRequest, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>> = MiddlewareContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, BaseRequest, Auth> & {
|
|
810
|
+
upgrade?: Upgrade;
|
|
811
|
+
};
|
|
812
|
+
type WebSocketTypedHandler<SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, BaseRequest, BaseResponse, NextFunction, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>> = Omit<TypedHandler<SV, Name, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction, Auth>, 'contractDetails' | 'handlers'> & {
|
|
813
|
+
contractDetails: WebSocketContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, BaseRequest, Auth, Upgrade>;
|
|
814
|
+
handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>[];
|
|
815
|
+
};
|
|
816
|
+
interface TypedWebSocketMiddlewareDefinition<ChainableRouter, SV extends AnySchemaValidator, Session extends SessionObject<SV>, BaseRequest, BaseResponse, NextFunction, RouterHandler> {
|
|
817
|
+
<Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, SessionSchema extends SessionObject<SV>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(path: Path, contractDetails: WebSocketContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, BaseRequest, Auth, Upgrade>, middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>, ...middlewares: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, SessionSchema, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>[]): ChainableRouter;
|
|
818
|
+
<Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(contractDetails: WebSocketContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, BaseRequest, Auth, Upgrade>, middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>, ...middlewares: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>[]): ChainableRouter;
|
|
819
|
+
(middleware: RouterHandler, ...otherMiddleware: RouterHandler[]): ChainableRouter;
|
|
820
|
+
<Name extends string, Path extends `/${string}`, SuppliedPath extends Path, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(path: PathMatch<SuppliedPath, Path>, middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, WebSocketUpgradeContext<SV, BaseResponse, Upgrade>, NextFunction>, ...middlewareAndTypedHandler: [
|
|
821
|
+
...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
|
|
822
|
+
upgrade: (context: Schema<Upgrade, SV>) => void;
|
|
823
|
+
}, NextFunction>[],
|
|
824
|
+
WebSocketTypedHandler<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
|
|
825
|
+
upgrade: (context: Schema<Upgrade, SV>) => void;
|
|
826
|
+
}, NextFunction, Auth, Upgrade>
|
|
827
|
+
]): ChainableRouter;
|
|
828
|
+
<Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
|
|
829
|
+
upgrade: (context: Schema<Upgrade, SV>) => void;
|
|
830
|
+
}, NextFunction>, ...middlewareAndTypedHandler: [
|
|
831
|
+
...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, Session>, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
|
|
832
|
+
upgrade: (context: Schema<Upgrade, SV>) => void;
|
|
833
|
+
}, NextFunction>[],
|
|
834
|
+
WebSocketTypedHandler<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
|
|
835
|
+
upgrade: (context: Schema<Upgrade, SV>) => void;
|
|
836
|
+
}, NextFunction, Auth, Upgrade>
|
|
837
|
+
]): ChainableRouter;
|
|
838
|
+
<Name extends string, Path extends `/${string}`, SuppliedPath extends Path, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(path: PathMatch<SuppliedPath, Path>, typedHandler: WebSocketTypedHandler<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
|
|
839
|
+
upgrade: (context: Schema<Upgrade, SV>) => void;
|
|
840
|
+
}, NextFunction, Auth, Upgrade>): ChainableRouter;
|
|
841
|
+
<Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, VersionedApi extends VersionSchema<SV, 'middleware'>, Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, BaseRequest>, Upgrade extends StringOnlyObject<SV>>(typedHandler: WebSocketTypedHandler<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, BaseRequest, Omit<BaseResponse, 'upgrade'> & {
|
|
842
|
+
upgrade: (context: Schema<Upgrade, SV>) => void;
|
|
843
|
+
}, NextFunction, Auth, Upgrade>): ChainableRouter;
|
|
844
|
+
}
|
|
845
|
+
|
|
805
846
|
declare class Router<SV extends AnySchemaValidator, BasePath extends `/${string}`, RouterSession extends SessionObject<SV>> extends ForklaunchExpressLikeRouter<SV, BasePath, MiddlewareHandler, Router$1, Request<Record<string, unknown>>, Response<Record<string, unknown>>, MiddlewareNext, RouterSession> implements ForklaunchRouter<SV> {
|
|
806
847
|
basePath: BasePath;
|
|
807
848
|
private configOptions;
|
|
808
849
|
constructor(basePath: BasePath, schemaValidator: SV, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, options?: ExpressRouterOptions<SV, RouterSession>);
|
|
809
850
|
route(path: string): this;
|
|
810
851
|
any: TypedMiddlewareDefinition<this, SV, RouterSession, Request<Record<string, unknown>>, Response<Record<string, unknown>>, MiddlewareNext, ExpressRequestHandler>;
|
|
852
|
+
upgrade: TypedWebSocketMiddlewareDefinition<this, SV, RouterSession, Request<Record<string, unknown>>, Response<Record<string, unknown>>, MiddlewareNext, ExpressRequestHandler>;
|
|
853
|
+
ws(pattern: string, eventSchemas: EventSchema<SV>, options?: WSRouteOptions, handler?: WSRouteHandler<(typeof eventSchemas)['userData']>): void;
|
|
811
854
|
clone(): this;
|
|
812
855
|
}
|
|
813
856
|
|
package/lib/index.js
CHANGED
|
@@ -718,9 +718,18 @@ var Router = class _Router extends import_http14.ForklaunchExpressLikeRouter {
|
|
|
718
718
|
...middlewareOrMiddlewareWithTypedHandler
|
|
719
719
|
);
|
|
720
720
|
};
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
721
|
+
upgrade = ((pathOrContractDetailsOrMiddlewareOrTypedHandler, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler) => {
|
|
722
|
+
return this.registerMiddlewareHandler(
|
|
723
|
+
this.internal.upgrade,
|
|
724
|
+
pathOrContractDetailsOrMiddlewareOrTypedHandler,
|
|
725
|
+
contractDetailsOrMiddlewareOrTypedHandler,
|
|
726
|
+
...middlewareOrMiddlewareWithTypedHandler
|
|
727
|
+
);
|
|
728
|
+
});
|
|
729
|
+
ws(pattern, eventSchemas, options2, handler) {
|
|
730
|
+
this.internal.ws(pattern, options2 ?? {}, handler ?? (() => {
|
|
731
|
+
}));
|
|
732
|
+
}
|
|
724
733
|
clone() {
|
|
725
734
|
const clone = new _Router(
|
|
726
735
|
this.basePath,
|
package/lib/index.mjs
CHANGED
|
@@ -716,9 +716,18 @@ var Router = class _Router extends ForklaunchExpressLikeRouter {
|
|
|
716
716
|
...middlewareOrMiddlewareWithTypedHandler
|
|
717
717
|
);
|
|
718
718
|
};
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
719
|
+
upgrade = ((pathOrContractDetailsOrMiddlewareOrTypedHandler, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler) => {
|
|
720
|
+
return this.registerMiddlewareHandler(
|
|
721
|
+
this.internal.upgrade,
|
|
722
|
+
pathOrContractDetailsOrMiddlewareOrTypedHandler,
|
|
723
|
+
contractDetailsOrMiddlewareOrTypedHandler,
|
|
724
|
+
...middlewareOrMiddlewareWithTypedHandler
|
|
725
|
+
);
|
|
726
|
+
});
|
|
727
|
+
ws(pattern, eventSchemas, options2, handler) {
|
|
728
|
+
this.internal.ws(pattern, options2 ?? {}, handler ?? (() => {
|
|
729
|
+
}));
|
|
730
|
+
}
|
|
722
731
|
clone() {
|
|
723
732
|
const clone = new _Router(
|
|
724
733
|
this.basePath,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forklaunch/hyper-express",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.2",
|
|
4
4
|
"description": "Forklaunch framework for hyper-express.",
|
|
5
5
|
"homepage": "https://github.com/forklaunch/forklaunch-js#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -26,37 +26,38 @@
|
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@forklaunch/hyper-express-fork": "^6.17.35",
|
|
29
|
-
"@scalar/express-api-reference": "^0.8.
|
|
29
|
+
"@scalar/express-api-reference": "^0.8.24",
|
|
30
30
|
"cors": "^2.8.5",
|
|
31
31
|
"live-directory": "^3.0.3",
|
|
32
32
|
"openapi3-ts": "^4.5.0",
|
|
33
33
|
"qs": "^6.14.0",
|
|
34
|
-
"swagger-ui-dist": "^5.30.
|
|
34
|
+
"swagger-ui-dist": "^5.30.2",
|
|
35
35
|
"swagger-ui-express": "^5.0.1",
|
|
36
36
|
"uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.52.0",
|
|
37
|
-
"@forklaunch/
|
|
38
|
-
"@forklaunch/validator": "0.10.
|
|
39
|
-
"@forklaunch/
|
|
37
|
+
"@forklaunch/common": "0.6.23",
|
|
38
|
+
"@forklaunch/validator": "0.10.23",
|
|
39
|
+
"@forklaunch/core": "0.16.1",
|
|
40
|
+
"@forklaunch/ws": "0.1.2"
|
|
40
41
|
},
|
|
41
42
|
"devDependencies": {
|
|
42
|
-
"@eslint/js": "^9.
|
|
43
|
+
"@eslint/js": "^9.39.1",
|
|
43
44
|
"@types/busboy": "^1.5.4",
|
|
44
45
|
"@types/cors": "^2.8.19",
|
|
45
46
|
"@types/jest": "^30.0.0",
|
|
46
47
|
"@types/qs": "^6.14.0",
|
|
47
48
|
"@types/swagger-ui-dist": "^3.30.6",
|
|
48
49
|
"@types/swagger-ui-express": "^4.1.8",
|
|
49
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
50
|
+
"@typescript/native-preview": "7.0.0-dev.20251117.1",
|
|
50
51
|
"jest": "^30.2.0",
|
|
51
52
|
"kill-port-process": "^3.2.1",
|
|
52
53
|
"prettier": "^3.6.2",
|
|
53
54
|
"ts-jest": "^29.4.5",
|
|
54
55
|
"ts-node": "^10.9.2",
|
|
55
|
-
"tsup": "^8.5.
|
|
56
|
+
"tsup": "^8.5.1",
|
|
56
57
|
"tsx": "^4.20.6",
|
|
57
58
|
"typedoc": "^0.28.14",
|
|
58
59
|
"typescript": "^5.9.3",
|
|
59
|
-
"typescript-eslint": "^8.46.
|
|
60
|
+
"typescript-eslint": "^8.46.4"
|
|
60
61
|
},
|
|
61
62
|
"scripts": {
|
|
62
63
|
"build": "tsgo --noEmit && tsup index.ts --format cjs,esm --no-splitting --dts --tsconfig tsconfig.json --out-dir lib --clean",
|