@forklaunch/express 1.2.32 → 1.2.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +48 -2062
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +9 -1
- package/lib/index.mjs +9 -1
- package/lib/src/cluster/bun.cluster.d.ts +4 -0
- package/lib/src/cluster/bun.cluster.d.ts.map +1 -0
- package/lib/src/cluster/bun.serve.shim.d.ts +55 -0
- package/lib/src/cluster/bun.serve.shim.d.ts.map +1 -0
- package/lib/src/cluster/bun.socket.shim.d.ts +81 -0
- package/lib/src/cluster/bun.socket.shim.d.ts.map +1 -0
- package/lib/src/cluster/node.cluster.d.ts +4 -0
- package/lib/src/cluster/node.cluster.d.ts.map +1 -0
- package/lib/src/expressApplication.d.ts +59 -0
- package/lib/src/expressApplication.d.ts.map +1 -0
- package/lib/src/expressRouter.d.ts +51 -0
- package/lib/src/expressRouter.d.ts.map +1 -0
- package/lib/src/handlers/checkout.d.ts +40 -0
- package/lib/src/handlers/checkout.d.ts.map +1 -0
- package/lib/src/handlers/copy.d.ts +89 -0
- package/lib/src/handlers/copy.d.ts.map +1 -0
- package/lib/src/handlers/delete.d.ts +59 -0
- package/lib/src/handlers/delete.d.ts.map +1 -0
- package/lib/src/handlers/get.d.ts +46 -0
- package/lib/src/handlers/get.d.ts.map +1 -0
- package/lib/src/handlers/head.d.ts +69 -0
- package/lib/src/handlers/head.d.ts.map +1 -0
- package/lib/src/handlers/link.d.ts +91 -0
- package/lib/src/handlers/link.d.ts.map +1 -0
- package/lib/src/handlers/lock.d.ts +90 -0
- package/lib/src/handlers/lock.d.ts.map +1 -0
- package/lib/src/handlers/m-search.d.ts +85 -0
- package/lib/src/handlers/m-search.d.ts.map +1 -0
- package/lib/src/handlers/merge.d.ts +101 -0
- package/lib/src/handlers/merge.d.ts.map +1 -0
- package/lib/src/handlers/middleware.d.ts +67 -0
- package/lib/src/handlers/middleware.d.ts.map +1 -0
- package/lib/src/handlers/mkcactivity.d.ts +76 -0
- package/lib/src/handlers/mkcactivity.d.ts.map +1 -0
- package/lib/src/handlers/mkcol.d.ts +76 -0
- package/lib/src/handlers/mkcol.d.ts.map +1 -0
- package/lib/src/handlers/move.d.ts +78 -0
- package/lib/src/handlers/move.d.ts.map +1 -0
- package/lib/src/handlers/notify.d.ts +75 -0
- package/lib/src/handlers/notify.d.ts.map +1 -0
- package/lib/src/handlers/options.d.ts +67 -0
- package/lib/src/handlers/options.d.ts.map +1 -0
- package/lib/src/handlers/patch.d.ts +86 -0
- package/lib/src/handlers/patch.d.ts.map +1 -0
- package/lib/src/handlers/post.d.ts +50 -0
- package/lib/src/handlers/post.d.ts.map +1 -0
- package/lib/src/handlers/propfind.d.ts +84 -0
- package/lib/src/handlers/propfind.d.ts.map +1 -0
- package/lib/src/handlers/proppatch.d.ts +84 -0
- package/lib/src/handlers/proppatch.d.ts.map +1 -0
- package/lib/src/handlers/purge.d.ts +63 -0
- package/lib/src/handlers/purge.d.ts.map +1 -0
- package/lib/src/handlers/put.d.ts +73 -0
- package/lib/src/handlers/put.d.ts.map +1 -0
- package/lib/src/handlers/report.d.ts +70 -0
- package/lib/src/handlers/report.d.ts.map +1 -0
- package/lib/src/handlers/search.d.ts +83 -0
- package/lib/src/handlers/search.d.ts.map +1 -0
- package/lib/src/handlers/subscribe.d.ts +75 -0
- package/lib/src/handlers/subscribe.d.ts.map +1 -0
- package/lib/src/handlers/trace.d.ts +59 -0
- package/lib/src/handlers/trace.d.ts.map +1 -0
- package/lib/src/handlers/unlink.d.ts +70 -0
- package/lib/src/handlers/unlink.d.ts.map +1 -0
- package/lib/src/handlers/unlock.d.ts +70 -0
- package/lib/src/handlers/unlock.d.ts.map +1 -0
- package/lib/src/handlers/unsubscribe.d.ts +71 -0
- package/lib/src/handlers/unsubscribe.d.ts.map +1 -0
- package/lib/src/middleware/async.middleware.d.ts +16 -0
- package/lib/src/middleware/async.middleware.d.ts.map +1 -0
- package/lib/src/middleware/content.parse.middleware.d.ts +13 -0
- package/lib/src/middleware/content.parse.middleware.d.ts.map +1 -0
- package/lib/src/middleware/enrichResponseTransmission.middleware.d.ts +27 -0
- package/lib/src/middleware/enrichResponseTransmission.middleware.d.ts.map +1 -0
- package/lib/src/types/export.types.d.ts +9 -0
- package/lib/src/types/export.types.d.ts.map +1 -0
- package/lib/src/types/express.types.d.ts +84 -0
- package/lib/src/types/express.types.d.ts.map +1 -0
- package/lib/src/types/expressOptions.types.d.ts +17 -0
- package/lib/src/types/expressOptions.types.d.ts.map +1 -0
- package/package.json +22 -22
- package/lib/index.d.mts +0 -2112
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -1187,6 +1187,7 @@ function serveExpress(app, openTelemetryCollector, opts = {}) {
|
|
|
1187
1187
|
});
|
|
1188
1188
|
req = Object.assign(reqEE, {
|
|
1189
1189
|
method: request.method,
|
|
1190
|
+
signal: request.signal,
|
|
1190
1191
|
url: url.pathname + url.search,
|
|
1191
1192
|
originalUrl: url.pathname + url.search,
|
|
1192
1193
|
headers,
|
|
@@ -2026,7 +2027,14 @@ var Application = class extends import_http3.ForklaunchExpressLikeApplication {
|
|
|
2026
2027
|
super(
|
|
2027
2028
|
schemaValidator,
|
|
2028
2029
|
(0, import_express2.default)(),
|
|
2029
|
-
|
|
2030
|
+
// In OpenAPI export mode the app never serves requests — `listen` just
|
|
2031
|
+
// generates the spec and exits — so request body parsers are unnecessary.
|
|
2032
|
+
// Constructing them eagerly can hard-crash the export when runtime config
|
|
2033
|
+
// is unset/empty (e.g. body-parser@2 rejects an empty `limit` string that
|
|
2034
|
+
// can materialize from empty-string env under `FORKLAUNCH_MODE=openapi`).
|
|
2035
|
+
// Skip them in openapi mode so spec generation is resilient to missing
|
|
2036
|
+
// runtime configuration.
|
|
2037
|
+
process.env.FORKLAUNCH_MODE === "openapi" ? [enrichResponseTransmission] : [
|
|
2030
2038
|
contentParse(options2),
|
|
2031
2039
|
enrichResponseTransmission
|
|
2032
2040
|
],
|
package/lib/index.mjs
CHANGED
|
@@ -1161,6 +1161,7 @@ function serveExpress(app, openTelemetryCollector, opts = {}) {
|
|
|
1161
1161
|
});
|
|
1162
1162
|
req = Object.assign(reqEE, {
|
|
1163
1163
|
method: request.method,
|
|
1164
|
+
signal: request.signal,
|
|
1164
1165
|
url: url.pathname + url.search,
|
|
1165
1166
|
originalUrl: url.pathname + url.search,
|
|
1166
1167
|
headers,
|
|
@@ -2002,7 +2003,14 @@ var Application = class extends ForklaunchExpressLikeApplication {
|
|
|
2002
2003
|
super(
|
|
2003
2004
|
schemaValidator,
|
|
2004
2005
|
express2(),
|
|
2005
|
-
|
|
2006
|
+
// In OpenAPI export mode the app never serves requests — `listen` just
|
|
2007
|
+
// generates the spec and exits — so request body parsers are unnecessary.
|
|
2008
|
+
// Constructing them eagerly can hard-crash the export when runtime config
|
|
2009
|
+
// is unset/empty (e.g. body-parser@2 rejects an empty `limit` string that
|
|
2010
|
+
// can materialize from empty-string env under `FORKLAUNCH_MODE=openapi`).
|
|
2011
|
+
// Skip them in openapi mode so spec generation is resilient to missing
|
|
2012
|
+
// runtime configuration.
|
|
2013
|
+
process.env.FORKLAUNCH_MODE === "openapi" ? [enrichResponseTransmission] : [
|
|
2006
2014
|
contentParse(options2),
|
|
2007
2015
|
enrichResponseTransmission
|
|
2008
2016
|
],
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bun.cluster.d.ts","sourceRoot":"","sources":["../../../src/cluster/bun.cluster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKlC,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,QAuI7D"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bun.serve Express Adapter - Pure Express Compatibility Layer
|
|
3
|
+
*
|
|
4
|
+
* This adapter provides a complete Express.js compatibility layer for Bun's native Bun.serve()
|
|
5
|
+
* HTTP server, enabling Express applications to run on Bun with full API compatibility.
|
|
6
|
+
*
|
|
7
|
+
* ✅ COMPLETE EXPRESS COMPATIBILITY:
|
|
8
|
+
* - Full Request object with all Express properties and methods
|
|
9
|
+
* - Full Response object with all Express properties and methods
|
|
10
|
+
* - Complete event emission and streaming support
|
|
11
|
+
* - All Express routing and middleware patterns
|
|
12
|
+
* - Cookie handling with signing support
|
|
13
|
+
* - File serving capabilities
|
|
14
|
+
* - Template rendering support
|
|
15
|
+
* - Complete content negotiation
|
|
16
|
+
* - Session and authentication middleware support
|
|
17
|
+
*
|
|
18
|
+
* This is a pure shim - no additional utilities or middleware beyond what Express provides.
|
|
19
|
+
*/
|
|
20
|
+
import { MetricsDefinition, OpenTelemetryCollector } from '@forklaunch/core/http';
|
|
21
|
+
import { Express } from 'express';
|
|
22
|
+
export type ServeOptions = {
|
|
23
|
+
port?: number;
|
|
24
|
+
host?: string;
|
|
25
|
+
reusePort?: boolean;
|
|
26
|
+
development?: boolean;
|
|
27
|
+
idleTimeout?: number;
|
|
28
|
+
tls?: {
|
|
29
|
+
keyFile?: string;
|
|
30
|
+
certFile?: string;
|
|
31
|
+
caFile?: string;
|
|
32
|
+
};
|
|
33
|
+
cookieSecret?: string;
|
|
34
|
+
};
|
|
35
|
+
export declare function serveExpress(app: Express, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, opts?: ServeOptions): {
|
|
36
|
+
port: number | undefined;
|
|
37
|
+
hostname: string | undefined;
|
|
38
|
+
url: string;
|
|
39
|
+
stop(force?: boolean): void;
|
|
40
|
+
reload(): void;
|
|
41
|
+
address(): {
|
|
42
|
+
port: number | undefined;
|
|
43
|
+
family: string;
|
|
44
|
+
address: string;
|
|
45
|
+
};
|
|
46
|
+
listening: boolean;
|
|
47
|
+
connections: number;
|
|
48
|
+
maxConnections: undefined;
|
|
49
|
+
on: (event: string, listener: (...args: unknown[]) => void) => /*elided*/ any;
|
|
50
|
+
once: (event: string, listener: (...args: unknown[]) => void) => /*elided*/ any;
|
|
51
|
+
emit: (event: string, ...args: unknown[]) => boolean;
|
|
52
|
+
close(callback?: (err?: Error) => void): Promise<void>;
|
|
53
|
+
getConnections(callback: (err: Error | null, count: number) => void): void;
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=bun.serve.shim.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bun.serve.shim.d.ts","sourceRoot":"","sources":["../../../src/cluster/bun.serve.shim.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,OAAO,EAIR,MAAM,SAAS,CAAC;AA4KjB,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE;QACJ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,YAAY,CAC1B,GAAG,EAAE,OAAO,EACZ,sBAAsB,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,EACjE,IAAI,GAAE,YAAiB;;;;;;;QAy0CjB,IAAI;QACJ,MAAM;QACN,OAAO;;;;;gBAQC,MAAM,YAAY,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI;kBAO5C,MAAM,YAAY,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI;kBAO9C,MAAM,WAAW,OAAO,EAAE;qBAIjB,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI;6BAUnB,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI;EAgBtE"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { AddressInfo, Socket, SocketConnectOpts, SocketReadyState } from 'net';
|
|
2
|
+
import { Duplex } from 'stream';
|
|
3
|
+
export declare class BunSocketShim extends Duplex implements Socket {
|
|
4
|
+
remoteAddress: string;
|
|
5
|
+
remotePort: number;
|
|
6
|
+
remoteFamily: string;
|
|
7
|
+
localAddress: string;
|
|
8
|
+
localPort: number;
|
|
9
|
+
localFamily: string;
|
|
10
|
+
bytesRead: number;
|
|
11
|
+
bytesWritten: number;
|
|
12
|
+
connecting: boolean;
|
|
13
|
+
pending: boolean;
|
|
14
|
+
timeout?: number;
|
|
15
|
+
readyState: SocketReadyState;
|
|
16
|
+
bufferSize: number;
|
|
17
|
+
autoSelectFamilyAttemptedAddresses: string[];
|
|
18
|
+
private _destroyed;
|
|
19
|
+
private _socketTimeoutId?;
|
|
20
|
+
private _abortController?;
|
|
21
|
+
private _request?;
|
|
22
|
+
private _responseWriter?;
|
|
23
|
+
constructor(options?: {
|
|
24
|
+
remoteAddress?: string;
|
|
25
|
+
remotePort?: number;
|
|
26
|
+
localAddress?: string;
|
|
27
|
+
localPort?: number;
|
|
28
|
+
abortController?: AbortController;
|
|
29
|
+
request?: Request;
|
|
30
|
+
responseWriter?: WritableStreamDefaultWriter<Uint8Array>;
|
|
31
|
+
});
|
|
32
|
+
private _setupAbortHandling;
|
|
33
|
+
private _setupRequestReading;
|
|
34
|
+
_read(_size?: number): void;
|
|
35
|
+
_write(chunk: Buffer | Uint8Array | string, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
|
|
36
|
+
_final(callback: (error?: Error | null) => void): void;
|
|
37
|
+
_destroy(error: Error | null, callback: (error?: Error | null) => void): void;
|
|
38
|
+
destroyed: boolean;
|
|
39
|
+
destroy(error?: Error): this;
|
|
40
|
+
destroySoon(): void;
|
|
41
|
+
connect(options: SocketConnectOpts, connectionListener?: () => void): this;
|
|
42
|
+
connect(port: number, host: string, connectionListener?: () => void): this;
|
|
43
|
+
connect(port: number, connectionListener?: () => void): this;
|
|
44
|
+
connect(path: string, connectionListener?: () => void): this;
|
|
45
|
+
setTimeout(timeout: number, callback?: () => void): this;
|
|
46
|
+
setNoDelay(_noDelay?: boolean): this;
|
|
47
|
+
setKeepAlive(enable?: boolean, initialDelay?: number): this;
|
|
48
|
+
getTypeOfService(): number;
|
|
49
|
+
setTypeOfService(_typeOfService: number): this;
|
|
50
|
+
address(): AddressInfo | object;
|
|
51
|
+
unref(): this;
|
|
52
|
+
ref(): this;
|
|
53
|
+
setEncoding(encoding?: BufferEncoding): this;
|
|
54
|
+
resetAndDestroy(): this;
|
|
55
|
+
end(): this;
|
|
56
|
+
end(chunk: Buffer | Uint8Array | string): this;
|
|
57
|
+
end(chunk: Buffer | Uint8Array | string, encoding: BufferEncoding): this;
|
|
58
|
+
end(cb: () => void): this;
|
|
59
|
+
end(chunk: Buffer | Uint8Array | string, cb: () => void): this;
|
|
60
|
+
end(chunk: Buffer | Uint8Array | string, encoding: BufferEncoding, cb: () => void): this;
|
|
61
|
+
write(chunk: Buffer | Uint8Array | string): boolean;
|
|
62
|
+
write(chunk: Buffer | Uint8Array | string, cb: (error: Error | null | undefined) => void): boolean;
|
|
63
|
+
write(chunk: Buffer | Uint8Array | string, encoding: BufferEncoding): boolean;
|
|
64
|
+
write(chunk: Buffer | Uint8Array | string, encoding: BufferEncoding, cb: (error: Error | null | undefined) => void): boolean;
|
|
65
|
+
}
|
|
66
|
+
export declare function createBunSocket(options?: {
|
|
67
|
+
remoteAddress?: string;
|
|
68
|
+
remotePort?: number;
|
|
69
|
+
localAddress?: string;
|
|
70
|
+
localPort?: number;
|
|
71
|
+
request?: Request;
|
|
72
|
+
responseWriter?: WritableStreamDefaultWriter<Uint8Array>;
|
|
73
|
+
abortController?: AbortController;
|
|
74
|
+
}): Socket;
|
|
75
|
+
export declare function createSocketFromBunRequest(request: Request, serverInfo: {
|
|
76
|
+
hostname: string;
|
|
77
|
+
port: number;
|
|
78
|
+
}): Socket;
|
|
79
|
+
export declare function createSocketPair(): [Socket, Socket];
|
|
80
|
+
export type { Socket } from 'net';
|
|
81
|
+
//# sourceMappingURL=bun.socket.shim.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bun.socket.shim.d.ts","sourceRoot":"","sources":["../../../src/cluster/bun.socket.shim.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ClusterConfig } from '@forklaunch/core/http';
|
|
2
|
+
import { IncomingMessage, ServerResponse } from 'node:http';
|
|
3
|
+
export declare function startNodeCluster<ExpressApp extends (req: IncomingMessage, res: ServerResponse) => void>(config: ClusterConfig<ExpressApp>): void;
|
|
4
|
+
//# sourceMappingURL=node.cluster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.cluster.d.ts","sourceRoot":"","sources":["../../../src/cluster/node.cluster.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAMlE,wBAAgB,gBAAgB,CAC9B,UAAU,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,EACtE,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,QAyNlC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ForklaunchExpressLikeApplication, MetricsDefinition, OpenTelemetryCollector, SessionObject } from '@forklaunch/core/http';
|
|
2
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
3
|
+
import { Express, NextFunction, Request, RequestHandler, Response } from 'express';
|
|
4
|
+
import { Server } from 'http';
|
|
5
|
+
import { ExpressApplicationOptions } from './types/expressOptions.types';
|
|
6
|
+
/**
|
|
7
|
+
* Application class that sets up an Express server with Forklaunch routers and middleware.
|
|
8
|
+
* This class extends ForklaunchExpressLikeApplication to provide Express-specific functionality.
|
|
9
|
+
*
|
|
10
|
+
* @template SV - A type that extends AnySchemaValidator for schema validation.
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const app = new Application(schemaValidator, openTelemetryCollector);
|
|
14
|
+
* app.listen(3000, () => console.log('Server running on port 3000'));
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare class Application<SV extends AnySchemaValidator, SessionSchema extends SessionObject<SV>> extends ForklaunchExpressLikeApplication<SV, Express, RequestHandler, Request, Response, NextFunction, SessionSchema> {
|
|
18
|
+
private docsConfiguration;
|
|
19
|
+
private mcpConfiguration;
|
|
20
|
+
private openapiConfiguration;
|
|
21
|
+
private hostingConfiguration;
|
|
22
|
+
/**
|
|
23
|
+
* Creates an instance of Application.
|
|
24
|
+
*
|
|
25
|
+
* @param {SV} schemaValidator - The schema validator for request/response validation.
|
|
26
|
+
* @param {OpenTelemetryCollector<MetricsDefinition>} openTelemetryCollector - Collector for OpenTelemetry metrics.
|
|
27
|
+
* @param {DocsConfiguration} [docsConfiguration] - Optional configuration for API documentation (Swagger/Scalar).
|
|
28
|
+
*/
|
|
29
|
+
constructor(schemaValidator: SV, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, options?: ExpressApplicationOptions<SV, SessionSchema>);
|
|
30
|
+
/**
|
|
31
|
+
* Starts the Express server and sets up API documentation (Swagger/Scalar).
|
|
32
|
+
* This method is overloaded to support various ways of starting the server.
|
|
33
|
+
*
|
|
34
|
+
* @param {number} [port] - The port number to listen on. Defaults to process.env.PORT.
|
|
35
|
+
* @param {string} [hostname] - The hostname to bind to.
|
|
36
|
+
* @param {number} [backlog] - The maximum length of the queue of pending connections.
|
|
37
|
+
* @param {() => void} [callback] - Optional callback to execute when the server starts listening.
|
|
38
|
+
* @returns {Server} - The HTTP server instance.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* // Start server on port 3000
|
|
43
|
+
* app.listen(3000);
|
|
44
|
+
*
|
|
45
|
+
* // Start server with callback
|
|
46
|
+
* app.listen(3000, () => console.log('Server started'));
|
|
47
|
+
*
|
|
48
|
+
* // Start server with hostname and port
|
|
49
|
+
* app.listen(3000, 'localhost');
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
listen(port: number, hostname: string, backlog: number, callback?: () => void): Server;
|
|
53
|
+
listen(port: number, hostname: string, callback?: () => void): Server;
|
|
54
|
+
listen(port: number, callback?: () => void): Server;
|
|
55
|
+
listen(callback?: () => void): Server;
|
|
56
|
+
listen(path: string, callback?: () => void): Server;
|
|
57
|
+
listen(handle: unknown, listeningListener?: () => void): Server;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=expressApplication.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expressApplication.d.ts","sourceRoot":"","sources":["../../src/expressApplication.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,gCAAgC,EAOhC,iBAAiB,EAEjB,sBAAsB,EACtB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAI3D,OAAgB,EAEd,OAAO,EACP,YAAY,EACZ,OAAO,EACP,cAAc,EACd,QAAQ,EACT,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAO9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAEzE;;;;;;;;;;GAUG;AACH,qBAAa,WAAW,CACtB,EAAE,SAAS,kBAAkB,EAC7B,aAAa,SAAS,aAAa,CAAC,EAAE,CAAC,CACvC,SAAQ,gCAAgC,CACxC,EAAE,EACF,OAAO,EACP,cAAc,EACd,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,aAAa,CACd;IACC,OAAO,CAAC,iBAAiB,CAAgC;IACzD,OAAO,CAAC,gBAAgB,CAC8C;IACtE,OAAO,CAAC,oBAAoB,CAC8C;IAC1E,OAAO,CAAC,oBAAoB,CAC8C;IAC1E;;;;;;OAMG;IACH,YACE,eAAe,EAAE,EAAE,EACnB,sBAAsB,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,EACjE,OAAO,CAAC,EAAE,yBAAyB,CAAC,EAAE,EAAE,aAAa,CAAC,EA0BvD;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,IAAI,GACpB,MAAM,CAAC;IACV,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACtE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACpD,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACtC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACpD,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;CAoSjE"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ForklaunchExpressLikeRouter, MetricsDefinition, OpenTelemetryCollector, SessionObject, TypedMiddlewareDefinition } from '@forklaunch/core/http';
|
|
2
|
+
import { AnySchemaValidator, IdiomaticSchema, LiteralSchema, SchemaResolve } from '@forklaunch/validator';
|
|
3
|
+
import { Router as ExpressRouter, NextFunction, Request, Response } from 'express';
|
|
4
|
+
import { RequestHandler } from 'express-serve-static-core';
|
|
5
|
+
import { ExpressRequestHandler } from './types/express.types';
|
|
6
|
+
import { ExpressRouterOptions } from './types/expressOptions.types';
|
|
7
|
+
/**
|
|
8
|
+
* Router class that sets up routes and middleware for an Express router.
|
|
9
|
+
*
|
|
10
|
+
* @template SV - A type that extends AnySchemaValidator.
|
|
11
|
+
* @implements {ForklaunchRouter<SV>}
|
|
12
|
+
*/
|
|
13
|
+
export declare class Router<SV extends AnySchemaValidator, BasePath extends `/${string}`, RouterSession extends SessionObject<SV>> extends ForklaunchExpressLikeRouter<SV, BasePath, RequestHandler, ExpressRouter, Request, Response, NextFunction, RouterSession> {
|
|
14
|
+
basePath: BasePath;
|
|
15
|
+
private configOptions;
|
|
16
|
+
/**
|
|
17
|
+
* Creates an instance of Router.
|
|
18
|
+
*
|
|
19
|
+
* @param {string} basePath - The base path for the router.
|
|
20
|
+
* @param {SV} schemaValidator - The schema validator.
|
|
21
|
+
*/
|
|
22
|
+
constructor(basePath: BasePath, schemaValidator: SV, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, options?: ExpressRouterOptions<SV, RouterSession>);
|
|
23
|
+
route(path: string): this;
|
|
24
|
+
param<ParamName extends string, Types extends {
|
|
25
|
+
req?: LiteralSchema | SV['_SchemaCatchall'];
|
|
26
|
+
res?: IdiomaticSchema<SV>;
|
|
27
|
+
} & {
|
|
28
|
+
[K in ParamName]: IdiomaticSchema<SV>;
|
|
29
|
+
}>(name: ParamName, _types: Types, handler: (req: SchemaResolve<Types['req']>, res: SchemaResolve<Types['res']>, next: NextFunction, value: SchemaResolve<Types[ParamName]>, name: ParamName) => void): this;
|
|
30
|
+
checkout: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
31
|
+
copy: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
32
|
+
lock: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
33
|
+
merge: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
34
|
+
mkcactivity: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
35
|
+
mkcol: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
36
|
+
move: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
37
|
+
'm-search': TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
38
|
+
notify: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
39
|
+
propfind: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
40
|
+
proppatch: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
41
|
+
purge: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
42
|
+
report: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
43
|
+
search: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
44
|
+
subscribe: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
45
|
+
unlock: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
46
|
+
unsubscribe: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
47
|
+
link: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
48
|
+
unlink: TypedMiddlewareDefinition<this, SV, RouterSession, Request, Response, NextFunction, ExpressRequestHandler>;
|
|
49
|
+
clone(): this;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=expressRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expressRouter.d.ts","sourceRoot":"","sources":["../../src/expressRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Body, ContractDetails, ExpressLikeSchemaHandler, HeadersObject, ParamsObject, QueryObject, ResolvedSessionObject, ResponsesObject, SchemaAuthMethods, SessionObject, VersionSchema } from '@forklaunch/core/http';
|
|
2
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
3
|
+
import { NextFunction, Request, Response } from 'express';
|
|
4
|
+
import express from 'express-serve-static-core';
|
|
5
|
+
import { ParsedQs } from 'qs';
|
|
6
|
+
/**
|
|
7
|
+
* Creates a checkout route handler with schema validation and type safety.
|
|
8
|
+
*
|
|
9
|
+
* @template SV - The schema validator type
|
|
10
|
+
* @template Name - The name of the route
|
|
11
|
+
* @template Path - The path type
|
|
12
|
+
* @template P - The path parameters type
|
|
13
|
+
* @template ResBodyMap - The response body map type
|
|
14
|
+
* @template ReqBody - The request body type
|
|
15
|
+
* @template ReqQuery - The request query type
|
|
16
|
+
* @template ReqHeaders - The request headers type
|
|
17
|
+
* @template ResHeaders - The response headers type
|
|
18
|
+
* @template LocalsObj - The locals object type
|
|
19
|
+
*
|
|
20
|
+
* @param {SV} schemaValidator - The schema validator instance
|
|
21
|
+
* @param {Path} path - The path of the route
|
|
22
|
+
* @param {ContractDetails<SV, 'middleware', Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request>} contractDetails - The contract details for the route
|
|
23
|
+
* @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]} handlers - The handlers for the route
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const checkout = checkout(
|
|
28
|
+
* schemaValidator,
|
|
29
|
+
* '/checkout',
|
|
30
|
+
* contractDetails,
|
|
31
|
+
* handler);
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare const checkout: <SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, const VersionedApi extends VersionSchema<SV, 'middleware'>, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request, Response, NextFunction>[]) => {
|
|
35
|
+
_typedHandler: true;
|
|
36
|
+
_path: Path;
|
|
37
|
+
contractDetails: import("@forklaunch/core/http").MiddlewareContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Auth>;
|
|
38
|
+
handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>[];
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=checkout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../../src/handlers/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,wBAAwB,EACxB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAI9B;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,QAAQ,GACnB,EAAE,SAAS,kBAAkB,EAC7B,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,IAAI,MAAM,EAAE,EACzB,CAAC,SAAS,YAAY,CAAC,EAAE,CAAC,EAC1B,UAAU,SAAS,eAAe,CAAC,EAAE,CAAC,EACtC,OAAO,SAAS,IAAI,CAAC,EAAE,CAAC,EACxB,QAAQ,SAAS,WAAW,CAAC,EAAE,CAAC,EAChC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC,EAC1D,KAAK,CAAC,IAAI,SAAS,iBAAiB,CAClC,EAAE,EACF,CAAC,EACD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,CACR,mBAEgB,EAAE,QACb,IAAI,mBACO,eAAe,CAC9B,EAAE,EACF,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,IAAI,CACL,eACY,wBAAwB,CACnC,EAAE,EACF,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAClD,OAAO,EACP,QAAQ,EACR,YAAY,CACb,EAAE;;;;;CAmBJ,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Body, ContractDetails, ExpressLikeSchemaHandler, HeadersObject, ParamsObject, QueryObject, ResolvedSessionObject, ResponsesObject, SchemaAuthMethods, SessionObject, VersionSchema } from '@forklaunch/core/http';
|
|
2
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
3
|
+
import { NextFunction, Request, Response } from 'express';
|
|
4
|
+
import express from 'express-serve-static-core';
|
|
5
|
+
import { ParsedQs } from 'qs';
|
|
6
|
+
/**
|
|
7
|
+
* Creates a COPY route handler with schema validation and type safety.
|
|
8
|
+
*
|
|
9
|
+
* @template SV - The schema validator type
|
|
10
|
+
* @template Name - The name of the route
|
|
11
|
+
* @template Path - The route path type
|
|
12
|
+
* @template P - The path parameters type
|
|
13
|
+
* @template ResBodyMap - The response body map type
|
|
14
|
+
* @template ReqBody - The request body type
|
|
15
|
+
* @template ReqQuery - The request query parameters type
|
|
16
|
+
* @template ReqHeaders - The request headers type
|
|
17
|
+
* @template ResHeaders - The response headers type
|
|
18
|
+
* @template LocalsObj - The locals object type
|
|
19
|
+
* @template Auth - The authentication method type
|
|
20
|
+
*
|
|
21
|
+
* @param {SV} schemaValidator - The schema validator instance
|
|
22
|
+
* @param {Path} path - The route path
|
|
23
|
+
* @param {ContractDetails<SV, 'middleware', Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request, Auth>} contractDetails - The contract details for the route
|
|
24
|
+
* @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Auth>} handlers - The route handlers
|
|
25
|
+
*
|
|
26
|
+
* @returns {void} - Returns nothing, registers the route with Express
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* copy(
|
|
31
|
+
* schemaValidator,
|
|
32
|
+
* '/files/:id',
|
|
33
|
+
* {
|
|
34
|
+
* summary: 'Copy file',
|
|
35
|
+
* description: 'Creates a copy of a file at a new location',
|
|
36
|
+
* tags: ['files'],
|
|
37
|
+
* parameters: [
|
|
38
|
+
* {
|
|
39
|
+
* name: 'id',
|
|
40
|
+
* in: 'path',
|
|
41
|
+
* required: true,
|
|
42
|
+
* schema: { type: 'string' }
|
|
43
|
+
* }
|
|
44
|
+
* ],
|
|
45
|
+
* requestBody: {
|
|
46
|
+
* content: {
|
|
47
|
+
* 'application/json': {
|
|
48
|
+
* schema: {
|
|
49
|
+
* type: 'object',
|
|
50
|
+
* properties: {
|
|
51
|
+
* destination: { type: 'string' }
|
|
52
|
+
* }
|
|
53
|
+
* }
|
|
54
|
+
* }
|
|
55
|
+
* }
|
|
56
|
+
* },
|
|
57
|
+
* responses: {
|
|
58
|
+
* 201: {
|
|
59
|
+
* description: 'File copied successfully',
|
|
60
|
+
* content: {
|
|
61
|
+
* 'application/json': {
|
|
62
|
+
* schema: {
|
|
63
|
+
* type: 'object',
|
|
64
|
+
* properties: {
|
|
65
|
+
* id: { type: 'string' },
|
|
66
|
+
* location: { type: 'string' }
|
|
67
|
+
* }
|
|
68
|
+
* }
|
|
69
|
+
* }
|
|
70
|
+
* }
|
|
71
|
+
* }
|
|
72
|
+
* }
|
|
73
|
+
* },
|
|
74
|
+
* async (req, res) => {
|
|
75
|
+
* const { id } = req.params;
|
|
76
|
+
* const { destination } = req.body;
|
|
77
|
+
* const result = await copyFile(id, destination);
|
|
78
|
+
* res.status(201).json(result);
|
|
79
|
+
* }
|
|
80
|
+
* );
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare const copy: <SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, const VersionedApi extends VersionSchema<SV, 'middleware'>, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request, Response, NextFunction>[]) => {
|
|
84
|
+
_typedHandler: true;
|
|
85
|
+
_path: Path;
|
|
86
|
+
contractDetails: import("@forklaunch/core/http").MiddlewareContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Auth>;
|
|
87
|
+
handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>[];
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=copy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../../src/handlers/copy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,wBAAwB,EACxB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAI9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,eAAO,MAAM,IAAI,GACf,EAAE,SAAS,kBAAkB,EAC7B,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,IAAI,MAAM,EAAE,EACzB,CAAC,SAAS,YAAY,CAAC,EAAE,CAAC,EAC1B,UAAU,SAAS,eAAe,CAAC,EAAE,CAAC,EACtC,OAAO,SAAS,IAAI,CAAC,EAAE,CAAC,EACxB,QAAQ,SAAS,WAAW,CAAC,EAAE,CAAC,EAChC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC,EAC1D,KAAK,CAAC,IAAI,SAAS,iBAAiB,CAClC,EAAE,EACF,CAAC,EACD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,CACR,mBAEgB,EAAE,QACb,IAAI,mBACO,eAAe,CAC9B,EAAE,EACF,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,IAAI,CACL,eACY,wBAAwB,CACnC,EAAE,EACF,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAClD,OAAO,EACP,QAAQ,EACR,YAAY,CACb,EAAE;;;;;CAmBJ,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Body, ContractDetails, ExpressLikeSchemaHandler, HeadersObject, ParamsObject, QueryObject, ResolvedSessionObject, ResponsesObject, SchemaAuthMethods, SessionObject, VersionSchema } from '@forklaunch/core/http';
|
|
2
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
3
|
+
import { NextFunction, Request, Response } from 'express';
|
|
4
|
+
import express from 'express-serve-static-core';
|
|
5
|
+
import { ParsedQs } from 'qs';
|
|
6
|
+
/**
|
|
7
|
+
* Creates a DELETE route handler with schema validation and type safety.
|
|
8
|
+
*
|
|
9
|
+
* @template SV - The schema validator type
|
|
10
|
+
* @template Name - The name of the route
|
|
11
|
+
* @template Path - The route path type
|
|
12
|
+
* @template P - The path parameters type
|
|
13
|
+
* @template ResBodyMap - The response body map type
|
|
14
|
+
* @template ReqQuery - The request query parameters type
|
|
15
|
+
* @template ReqHeaders - The request headers type
|
|
16
|
+
* @template ResHeaders - The response headers type
|
|
17
|
+
* @template LocalsObj - The locals object type
|
|
18
|
+
* @template Auth - The authentication methods type
|
|
19
|
+
*
|
|
20
|
+
* @param {SV} schemaValidator - The schema validator instance
|
|
21
|
+
* @param {Path} path - The route path
|
|
22
|
+
* @param {ContractDetails<SV, 'delete', Name, Path, P, ResBodyMap, never, ReqQuery, ReqHeaders, ResHeaders, Request, Auth>} contractDetails - The contract details for the route
|
|
23
|
+
* @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, never, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]} handlers - The route handlers
|
|
24
|
+
*
|
|
25
|
+
* @returns {void} - Returns nothing, registers the route with Express
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* del(
|
|
30
|
+
* schemaValidator,
|
|
31
|
+
* '/users/:id',
|
|
32
|
+
* {
|
|
33
|
+
* summary: 'Delete user',
|
|
34
|
+
* description: 'Deletes a user by ID',
|
|
35
|
+
* tags: ['users'],
|
|
36
|
+
* parameters: [
|
|
37
|
+
* {
|
|
38
|
+
* name: 'id',
|
|
39
|
+
* in: 'path',
|
|
40
|
+
* required: true,
|
|
41
|
+
* schema: { type: 'string' }
|
|
42
|
+
* }
|
|
43
|
+
* ],
|
|
44
|
+
* responses: {
|
|
45
|
+
* 204: {
|
|
46
|
+
* description: 'User deleted successfully'
|
|
47
|
+
* }
|
|
48
|
+
* }
|
|
49
|
+
* },
|
|
50
|
+
* async (req, res) => {
|
|
51
|
+
* const { id } = req.params;
|
|
52
|
+
* await deleteUser(id);
|
|
53
|
+
* res.status(204).send();
|
|
54
|
+
* }
|
|
55
|
+
* );
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare const delete_: <SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, const VersionedApi extends VersionSchema<SV, 'delete'>, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, 'delete', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request, Response, NextFunction>[]) => import("@forklaunch/core/http").ExpressLikeTypedHandler<SV, Name, "delete", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction, Auth>;
|
|
59
|
+
//# sourceMappingURL=delete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/handlers/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,wBAAwB,EACxB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAI9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,eAAO,MAAM,OAAO,GAClB,EAAE,SAAS,kBAAkB,EAC7B,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,IAAI,MAAM,EAAE,EACzB,CAAC,SAAS,YAAY,CAAC,EAAE,CAAC,EAC1B,UAAU,SAAS,eAAe,CAAC,EAAE,CAAC,EACtC,OAAO,SAAS,IAAI,CAAC,EAAE,CAAC,EACxB,QAAQ,SAAS,WAAW,CAAC,EAAE,CAAC,EAChC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,EACtD,KAAK,CAAC,IAAI,SAAS,iBAAiB,CAClC,EAAE,EACF,CAAC,EACD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,CACR,mBAEgB,EAAE,QACb,IAAI,mBACO,eAAe,CAC9B,EAAE,EACF,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,IAAI,CACL,eACY,wBAAwB,CACnC,EAAE,EACF,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAClD,OAAO,EACP,QAAQ,EACR,YAAY,CACb,EAAE,6SAmBJ,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Body, ContractDetails, ExpressLikeSchemaHandler, HeadersObject, ParamsObject, QueryObject, ResolvedSessionObject, ResponsesObject, SchemaAuthMethods, SessionObject, VersionSchema } from '@forklaunch/core/http';
|
|
2
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
3
|
+
import { NextFunction, Request, Response } from 'express';
|
|
4
|
+
import express from 'express-serve-static-core';
|
|
5
|
+
import { ParsedQs } from 'qs';
|
|
6
|
+
/**
|
|
7
|
+
* Creates a GET route handler with schema validation and type safety.
|
|
8
|
+
*
|
|
9
|
+
* @template SV - Schema validator type extending AnySchemaValidator
|
|
10
|
+
* @template Name - The name of the route
|
|
11
|
+
* @template Path - Route path type extending string with leading slash
|
|
12
|
+
* @template P - Parameters object type extending ParamsObject
|
|
13
|
+
* @template ResBodyMap - Response body map type extending ResponsesObject
|
|
14
|
+
* @template ReqBody - Request body type extending Body
|
|
15
|
+
* @template ReqQuery - Request query type extending QueryObject
|
|
16
|
+
* @template ReqHeaders - Request headers type extending HeadersObject
|
|
17
|
+
* @template ResHeaders - Response headers type extending HeadersObject
|
|
18
|
+
* @template LocalsObj - Local variables type extending Record<string, unknown>
|
|
19
|
+
* @template Auth - Auth methods type extending AuthMethodsBase
|
|
20
|
+
*
|
|
21
|
+
* @param {SV} schemaValidator - Schema validator instance
|
|
22
|
+
* @param {Path} path - Route path starting with '/'
|
|
23
|
+
* @param {ContractDetails<SV, 'get', Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request, Auth>} contractDetails - Contract details for route validation
|
|
24
|
+
* @param {...ExpressLikeSchemaHandler[]} handlers - Route handler middleware functions
|
|
25
|
+
* @returns {Function} Express route handler with schema validation
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const getUser = get(
|
|
30
|
+
* schemaValidator,
|
|
31
|
+
* '/users/:id',
|
|
32
|
+
* {
|
|
33
|
+
* params: { id: 'string' },
|
|
34
|
+
* responses: {
|
|
35
|
+
* 200: { type: 'object', properties: { name: { type: 'string' } } }
|
|
36
|
+
* }
|
|
37
|
+
* },
|
|
38
|
+
* async (req, res) => {
|
|
39
|
+
* const user = await getUserById(req.params.id);
|
|
40
|
+
* res.json(user);
|
|
41
|
+
* }
|
|
42
|
+
* );
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare const get: <SV extends AnySchemaValidator, Name extends string, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>, const VersionedApi extends VersionSchema<SV, 'get'>, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, 'get', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request, Response, NextFunction>[]) => import("@forklaunch/core/http").ExpressLikeTypedHandler<SV, Name, "get", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction, Auth>;
|
|
46
|
+
//# sourceMappingURL=get.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/handlers/get.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,wBAAwB,EACxB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAI9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,GAAG,GACd,EAAE,SAAS,kBAAkB,EAC7B,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,IAAI,MAAM,EAAE,EACzB,CAAC,SAAS,YAAY,CAAC,EAAE,CAAC,EAC1B,UAAU,SAAS,eAAe,CAAC,EAAE,CAAC,EACtC,OAAO,SAAS,IAAI,CAAC,EAAE,CAAC,EACxB,QAAQ,SAAS,WAAW,CAAC,EAAE,CAAC,EAChC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,EACnD,KAAK,CAAC,IAAI,SAAS,iBAAiB,CAClC,EAAE,EACF,CAAC,EACD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,CACR,mBAEgB,EAAE,QACb,IAAI,mBACO,eAAe,CAC9B,EAAE,EACF,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,IAAI,CACL,eACY,wBAAwB,CACnC,EAAE,EACF,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAClD,OAAO,EACP,QAAQ,EACR,YAAY,CACb,EAAE,0SAmBJ,CAAC"}
|