@forklaunch/express 1.2.31 → 1.2.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/lib/index.d.ts +48 -2062
  2. package/lib/index.d.ts.map +1 -0
  3. package/lib/index.js +9 -2
  4. package/lib/index.mjs +9 -2
  5. package/lib/src/cluster/bun.cluster.d.ts +4 -0
  6. package/lib/src/cluster/bun.cluster.d.ts.map +1 -0
  7. package/lib/src/cluster/bun.serve.shim.d.ts +55 -0
  8. package/lib/src/cluster/bun.serve.shim.d.ts.map +1 -0
  9. package/lib/src/cluster/bun.socket.shim.d.ts +81 -0
  10. package/lib/src/cluster/bun.socket.shim.d.ts.map +1 -0
  11. package/lib/src/cluster/node.cluster.d.ts +4 -0
  12. package/lib/src/cluster/node.cluster.d.ts.map +1 -0
  13. package/lib/src/expressApplication.d.ts +59 -0
  14. package/lib/src/expressApplication.d.ts.map +1 -0
  15. package/lib/src/expressRouter.d.ts +51 -0
  16. package/lib/src/expressRouter.d.ts.map +1 -0
  17. package/lib/src/handlers/checkout.d.ts +40 -0
  18. package/lib/src/handlers/checkout.d.ts.map +1 -0
  19. package/lib/src/handlers/copy.d.ts +89 -0
  20. package/lib/src/handlers/copy.d.ts.map +1 -0
  21. package/lib/src/handlers/delete.d.ts +59 -0
  22. package/lib/src/handlers/delete.d.ts.map +1 -0
  23. package/lib/src/handlers/get.d.ts +46 -0
  24. package/lib/src/handlers/get.d.ts.map +1 -0
  25. package/lib/src/handlers/head.d.ts +69 -0
  26. package/lib/src/handlers/head.d.ts.map +1 -0
  27. package/lib/src/handlers/link.d.ts +91 -0
  28. package/lib/src/handlers/link.d.ts.map +1 -0
  29. package/lib/src/handlers/lock.d.ts +90 -0
  30. package/lib/src/handlers/lock.d.ts.map +1 -0
  31. package/lib/src/handlers/m-search.d.ts +85 -0
  32. package/lib/src/handlers/m-search.d.ts.map +1 -0
  33. package/lib/src/handlers/merge.d.ts +101 -0
  34. package/lib/src/handlers/merge.d.ts.map +1 -0
  35. package/lib/src/handlers/middleware.d.ts +67 -0
  36. package/lib/src/handlers/middleware.d.ts.map +1 -0
  37. package/lib/src/handlers/mkcactivity.d.ts +76 -0
  38. package/lib/src/handlers/mkcactivity.d.ts.map +1 -0
  39. package/lib/src/handlers/mkcol.d.ts +76 -0
  40. package/lib/src/handlers/mkcol.d.ts.map +1 -0
  41. package/lib/src/handlers/move.d.ts +78 -0
  42. package/lib/src/handlers/move.d.ts.map +1 -0
  43. package/lib/src/handlers/notify.d.ts +75 -0
  44. package/lib/src/handlers/notify.d.ts.map +1 -0
  45. package/lib/src/handlers/options.d.ts +67 -0
  46. package/lib/src/handlers/options.d.ts.map +1 -0
  47. package/lib/src/handlers/patch.d.ts +86 -0
  48. package/lib/src/handlers/patch.d.ts.map +1 -0
  49. package/lib/src/handlers/post.d.ts +50 -0
  50. package/lib/src/handlers/post.d.ts.map +1 -0
  51. package/lib/src/handlers/propfind.d.ts +84 -0
  52. package/lib/src/handlers/propfind.d.ts.map +1 -0
  53. package/lib/src/handlers/proppatch.d.ts +84 -0
  54. package/lib/src/handlers/proppatch.d.ts.map +1 -0
  55. package/lib/src/handlers/purge.d.ts +63 -0
  56. package/lib/src/handlers/purge.d.ts.map +1 -0
  57. package/lib/src/handlers/put.d.ts +73 -0
  58. package/lib/src/handlers/put.d.ts.map +1 -0
  59. package/lib/src/handlers/report.d.ts +70 -0
  60. package/lib/src/handlers/report.d.ts.map +1 -0
  61. package/lib/src/handlers/search.d.ts +83 -0
  62. package/lib/src/handlers/search.d.ts.map +1 -0
  63. package/lib/src/handlers/subscribe.d.ts +75 -0
  64. package/lib/src/handlers/subscribe.d.ts.map +1 -0
  65. package/lib/src/handlers/trace.d.ts +59 -0
  66. package/lib/src/handlers/trace.d.ts.map +1 -0
  67. package/lib/src/handlers/unlink.d.ts +70 -0
  68. package/lib/src/handlers/unlink.d.ts.map +1 -0
  69. package/lib/src/handlers/unlock.d.ts +70 -0
  70. package/lib/src/handlers/unlock.d.ts.map +1 -0
  71. package/lib/src/handlers/unsubscribe.d.ts +71 -0
  72. package/lib/src/handlers/unsubscribe.d.ts.map +1 -0
  73. package/lib/src/middleware/async.middleware.d.ts +16 -0
  74. package/lib/src/middleware/async.middleware.d.ts.map +1 -0
  75. package/lib/src/middleware/content.parse.middleware.d.ts +13 -0
  76. package/lib/src/middleware/content.parse.middleware.d.ts.map +1 -0
  77. package/lib/src/middleware/enrichResponseTransmission.middleware.d.ts +27 -0
  78. package/lib/src/middleware/enrichResponseTransmission.middleware.d.ts.map +1 -0
  79. package/lib/src/types/export.types.d.ts +9 -0
  80. package/lib/src/types/export.types.d.ts.map +1 -0
  81. package/lib/src/types/express.types.d.ts +84 -0
  82. package/lib/src/types/express.types.d.ts.map +1 -0
  83. package/lib/src/types/expressOptions.types.d.ts +17 -0
  84. package/lib/src/types/expressOptions.types.d.ts.map +1 -0
  85. package/package.json +35 -34
  86. package/LICENSE +0 -21
  87. 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
@@ -363,7 +363,6 @@ function createBunSocket(options2 = {}) {
363
363
  return new BunSocketShim(options2);
364
364
  }
365
365
  function createSocketFromBunRequest(request, serverInfo) {
366
- const url = new URL(request.url);
367
366
  const forwardedFor = request.headers.get("x-forwarded-for");
368
367
  const realIP = request.headers.get("x-real-ip");
369
368
  const cfConnectingIP = request.headers.get("cf-connecting-ip");
@@ -1188,6 +1187,7 @@ function serveExpress(app, openTelemetryCollector, opts = {}) {
1188
1187
  });
1189
1188
  req = Object.assign(reqEE, {
1190
1189
  method: request.method,
1190
+ signal: request.signal,
1191
1191
  url: url.pathname + url.search,
1192
1192
  originalUrl: url.pathname + url.search,
1193
1193
  headers,
@@ -2027,7 +2027,14 @@ var Application = class extends import_http3.ForklaunchExpressLikeApplication {
2027
2027
  super(
2028
2028
  schemaValidator,
2029
2029
  (0, import_express2.default)(),
2030
- [
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] : [
2031
2038
  contentParse(options2),
2032
2039
  enrichResponseTransmission
2033
2040
  ],
package/lib/index.mjs CHANGED
@@ -337,7 +337,6 @@ function createBunSocket(options2 = {}) {
337
337
  return new BunSocketShim(options2);
338
338
  }
339
339
  function createSocketFromBunRequest(request, serverInfo) {
340
- const url = new URL(request.url);
341
340
  const forwardedFor = request.headers.get("x-forwarded-for");
342
341
  const realIP = request.headers.get("x-real-ip");
343
342
  const cfConnectingIP = request.headers.get("cf-connecting-ip");
@@ -1162,6 +1161,7 @@ function serveExpress(app, openTelemetryCollector, opts = {}) {
1162
1161
  });
1163
1162
  req = Object.assign(reqEE, {
1164
1163
  method: request.method,
1164
+ signal: request.signal,
1165
1165
  url: url.pathname + url.search,
1166
1166
  originalUrl: url.pathname + url.search,
1167
1167
  headers,
@@ -2003,7 +2003,14 @@ var Application = class extends ForklaunchExpressLikeApplication {
2003
2003
  super(
2004
2004
  schemaValidator,
2005
2005
  express2(),
2006
- [
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] : [
2007
2014
  contentParse(options2),
2008
2015
  enrichResponseTransmission
2009
2016
  ],
@@ -0,0 +1,4 @@
1
+ import { ClusterConfig } from '@forklaunch/core/http';
2
+ import { Express } from 'express';
3
+ export declare function startBunCluster(config: ClusterConfig<Express>): void;
4
+ //# sourceMappingURL=bun.cluster.d.ts.map
@@ -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