clear-router 2.7.5 → 2.7.7

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 (107) hide show
  1. package/dist/ClearRequest.cjs +23 -0
  2. package/dist/ClearRequest.d.cts +28 -0
  3. package/dist/ClearRequest.d.mts +28 -0
  4. package/dist/ClearRequest.mjs +22 -0
  5. package/dist/Contracts.d.cts +12 -0
  6. package/dist/Contracts.d.mts +12 -0
  7. package/dist/Controller.cjs +12 -0
  8. package/dist/Controller.d.cts +14 -0
  9. package/dist/Controller.d.mts +14 -0
  10. package/dist/Controller.mjs +11 -0
  11. package/dist/{Request-DKXwa_W0.d.mts → Request-BhTJDR_5.d.mts} +5 -5
  12. package/dist/Route.cjs +58 -0
  13. package/dist/Route.d.cts +35 -0
  14. package/dist/Route.d.mts +35 -0
  15. package/dist/Route.mjs +57 -0
  16. package/dist/core/Request.cjs +35 -0
  17. package/dist/core/Request.d.cts +25 -0
  18. package/dist/core/Request.d.mts +25 -0
  19. package/dist/core/Request.mjs +35 -0
  20. package/dist/core/Response.cjs +59 -0
  21. package/dist/core/Response.d.cts +24 -0
  22. package/dist/core/Response.d.mts +24 -0
  23. package/dist/core/Response.mjs +58 -0
  24. package/dist/{bindings-CLsZjOEy.cjs → core/bindings.cjs} +10 -160
  25. package/dist/{bindings-CNL7bpz5.d.mts → core/bindings.d.cts} +1 -1
  26. package/dist/{bindings-CxvtC8XS.d.cts → core/bindings.d.mts} +1 -1
  27. package/dist/{bindings-XLDXFpHZ.mjs → core/bindings.mjs} +3 -110
  28. package/dist/core/index.cjs +4 -20
  29. package/dist/core/index.d.cts +4 -1
  30. package/dist/core/index.d.mts +4 -1
  31. package/dist/core/index.mjs +4 -14
  32. package/dist/core/plugins.cjs +14 -0
  33. package/dist/core/plugins.d.cts +109 -0
  34. package/dist/core/plugins.d.mts +109 -0
  35. package/dist/core/plugins.mjs +13 -0
  36. package/dist/{responses-Bvnk0uvc.cjs → core/responses.cjs} +5 -20
  37. package/dist/{responses-BvETUeDL.mjs → core/responses.mjs} +2 -2
  38. package/dist/{router-C6W-k6sS.cjs → core/router.cjs} +11 -69
  39. package/dist/core/router.d.cts +274 -0
  40. package/dist/core/router.d.mts +274 -0
  41. package/dist/{router-Dc9w86Wn.mjs → core/router.mjs} +5 -58
  42. package/dist/decorators/index.cjs +1 -1
  43. package/dist/decorators/index.d.cts +1 -1
  44. package/dist/decorators/index.d.mts +1 -1
  45. package/dist/decorators/index.mjs +1 -1
  46. package/dist/decorators/setup.cjs +2 -2
  47. package/dist/decorators/setup.d.cts +1 -1
  48. package/dist/decorators/setup.d.mts +1 -1
  49. package/dist/decorators/setup.mjs +2 -2
  50. package/dist/express/index.cjs +2 -265
  51. package/dist/express/index.d.cts +1 -127
  52. package/dist/express/index.d.mts +1 -127
  53. package/dist/express/index.mjs +1 -264
  54. package/dist/express/router.cjs +265 -0
  55. package/dist/express/router.d.cts +131 -0
  56. package/dist/express/router.d.mts +131 -0
  57. package/dist/express/router.mjs +265 -0
  58. package/dist/fastify/index.cjs +2 -254
  59. package/dist/fastify/index.d.cts +1 -125
  60. package/dist/fastify/index.d.mts +1 -125
  61. package/dist/fastify/index.mjs +1 -253
  62. package/dist/fastify/router.cjs +254 -0
  63. package/dist/fastify/router.d.cts +129 -0
  64. package/dist/fastify/router.d.mts +129 -0
  65. package/dist/fastify/router.mjs +254 -0
  66. package/dist/h3/index.cjs +2 -260
  67. package/dist/h3/index.d.cts +1 -128
  68. package/dist/h3/index.d.mts +1 -128
  69. package/dist/h3/index.mjs +1 -259
  70. package/dist/h3/router.cjs +260 -0
  71. package/dist/h3/router.d.cts +132 -0
  72. package/dist/h3/router.d.mts +132 -0
  73. package/dist/h3/router.mjs +260 -0
  74. package/dist/hono/index.cjs +2 -251
  75. package/dist/hono/index.d.cts +1 -130
  76. package/dist/hono/index.d.mts +1 -130
  77. package/dist/hono/index.mjs +1 -250
  78. package/dist/hono/router.cjs +251 -0
  79. package/dist/hono/router.d.cts +134 -0
  80. package/dist/hono/router.d.mts +134 -0
  81. package/dist/hono/router.mjs +251 -0
  82. package/dist/index.cjs +16 -1097
  83. package/dist/index.d.cts +9 -563
  84. package/dist/index.d.mts +9 -563
  85. package/dist/index.mjs +8 -1089
  86. package/dist/koa/index.cjs +2 -261
  87. package/dist/koa/index.d.cts +1 -131
  88. package/dist/koa/index.d.mts +1 -131
  89. package/dist/koa/index.mjs +1 -260
  90. package/dist/koa/router.cjs +261 -0
  91. package/dist/koa/router.d.cts +135 -0
  92. package/dist/koa/router.d.mts +135 -0
  93. package/dist/koa/router.mjs +261 -0
  94. package/dist/types/basic.d.cts +43 -0
  95. package/dist/types/express.d.cts +44 -0
  96. package/dist/types/express.d.mts +4 -2
  97. package/dist/types/fastify.d.cts +23 -0
  98. package/dist/types/fastify.d.mts +4 -2
  99. package/dist/types/h3.d.cts +41 -0
  100. package/dist/types/h3.d.mts +5 -6
  101. package/dist/types/hono.d.cts +21 -0
  102. package/dist/types/hono.d.mts +5 -5
  103. package/dist/types/koa.d.cts +25 -0
  104. package/dist/types/koa.d.mts +5 -5
  105. package/package.json +1 -1
  106. package/dist/router-CYBshGMl.d.mts +0 -652
  107. package/dist/router-tpnSi_Y7.d.cts +0 -652
@@ -0,0 +1,265 @@
1
+ const require_router = require('../core/router.cjs');
2
+ const require_responses = require('../core/responses.cjs');
3
+
4
+ //#region src/express/router.ts
5
+ /**
6
+ * @class clear-router Express Router
7
+ * @description Laravel-style routing system for Express.js and H3 with support for CommonJS, ESM, and TypeScript
8
+ * @author Refkinscallv
9
+ * @author 3m1n3nc3
10
+ * @repository https://github.com/arkstack-tmp/clear-router
11
+ */
12
+ var Router = class Router extends require_router.CoreRouter {
13
+ static routerStateNamespace = "clear-router:express";
14
+ static ensureRequestBodyAccessor(req) {
15
+ if (typeof req.getBody !== "function") req.getBody = () => req.body ?? {};
16
+ }
17
+ static async sendReturnValue(ctx, value, method, path) {
18
+ const { req, res } = ctx;
19
+ if (require_responses.responseWasSent(res) || value === res || require_responses.responseWasSent(value)) return;
20
+ const meta = require_responses.resolveResponseMeta(value, {
21
+ headers: req.headers,
22
+ method,
23
+ path
24
+ });
25
+ if (!meta) return;
26
+ res.status(meta.status);
27
+ meta.headers?.forEach((headerValue, key) => {
28
+ res.setHeader(key, headerValue);
29
+ });
30
+ if (require_responses.isFetchResponse(meta.body)) {
31
+ meta.body.headers.forEach((headerValue, key) => {
32
+ res.setHeader(key, headerValue);
33
+ });
34
+ res.status(meta.body.status);
35
+ const body = Buffer.from(await meta.body.arrayBuffer());
36
+ res.send(body);
37
+ return;
38
+ }
39
+ if (meta.contentType && !res.getHeader("Content-Type")) res.setHeader("Content-Type", meta.contentType);
40
+ if (meta.isEmpty) {
41
+ res.sendStatus(meta.status);
42
+ return;
43
+ }
44
+ res.send(meta.body);
45
+ }
46
+ /**
47
+ * Adds a new route to the router.
48
+ *
49
+ * @param methods
50
+ * @param path
51
+ * @param handler
52
+ * @param middlewares
53
+ */
54
+ static add(methods, path, handler, middlewares) {
55
+ return super.add(methods, path, handler, middlewares);
56
+ }
57
+ /**
58
+ * Define a resourceful API controller with standard CRUD routes
59
+ *
60
+ * @param basePath
61
+ * @param controller
62
+ * @param options
63
+ */
64
+ static apiResource(basePath, controller, options) {
65
+ super.apiResource(basePath, controller, options);
66
+ }
67
+ /**
68
+ * Adds a new GET route to the router.
69
+ *
70
+ * @param path
71
+ * @param handler
72
+ * @param middlewares
73
+ */
74
+ static get(path, handler, middlewares) {
75
+ return super.get(path, handler, middlewares);
76
+ }
77
+ /**
78
+ * Adds a new POST route to the router.
79
+ *
80
+ * @param path
81
+ * @param handler
82
+ * @param middlewares
83
+ */
84
+ static post(path, handler, middlewares) {
85
+ return super.post(path, handler, middlewares);
86
+ }
87
+ /**
88
+ * Adds a new PUT route to the router.
89
+ *
90
+ * @param path
91
+ * @param handler
92
+ * @param middlewares
93
+ */
94
+ static put(path, handler, middlewares) {
95
+ return super.put(path, handler, middlewares);
96
+ }
97
+ /**
98
+ * Adds a new DELETE route to the router.
99
+ *
100
+ * @param path
101
+ * @param handler
102
+ * @param middlewares
103
+ */
104
+ static delete(path, handler, middlewares) {
105
+ return super.delete(path, handler, middlewares);
106
+ }
107
+ /**
108
+ * Adds a new PATCH route to the router.
109
+ *
110
+ * @param path
111
+ * @param handler
112
+ * @param middlewares
113
+ */
114
+ static patch(path, handler, middlewares) {
115
+ return super.patch(path, handler, middlewares);
116
+ }
117
+ /**
118
+ * Adds a new OPTIONS route to the router.
119
+ *
120
+ * @param path
121
+ * @param handler
122
+ * @param middlewares
123
+ */
124
+ static options(path, handler, middlewares) {
125
+ return super.options(path, handler, middlewares);
126
+ }
127
+ /**
128
+ * Adds a new HEAD route to the router.
129
+ *
130
+ * @param path
131
+ * @param handler
132
+ * @param middlewares
133
+ */
134
+ static head(path, handler, middlewares) {
135
+ return super.head(path, handler, middlewares);
136
+ }
137
+ /**
138
+ * Defines a group of routes with a common prefix.
139
+ *
140
+ * @param prefix
141
+ * @param callback
142
+ * @param middlewares
143
+ */
144
+ static async group(prefix, callback, middlewares) {
145
+ await super.group(prefix, callback, middlewares);
146
+ }
147
+ /**
148
+ * Adds global middlewares to the router, which will be applied to all routes.
149
+ *
150
+ * @param middlewares
151
+ * @param callback
152
+ */
153
+ static middleware(middlewares, callback) {
154
+ super.middleware(middlewares, callback);
155
+ }
156
+ static allRoutes(type) {
157
+ return super.allRoutes(type);
158
+ }
159
+ static route(name) {
160
+ return super.route(name);
161
+ }
162
+ static async apply(router) {
163
+ for (const route of Array.from(this.routes)) {
164
+ let handlerFunction = null;
165
+ let instance = null;
166
+ let bindingTarget;
167
+ let bindingMethod;
168
+ let bindingHandler;
169
+ let bindingMetadata;
170
+ try {
171
+ const resolved = this.resolveHandler(route);
172
+ handlerFunction = resolved.handlerFunction;
173
+ instance = resolved.instance;
174
+ bindingTarget = resolved.bindingTarget;
175
+ bindingMethod = resolved.bindingMethod;
176
+ bindingHandler = resolved.bindingHandler;
177
+ bindingMetadata = resolved.bindingMetadata;
178
+ } catch (error) {
179
+ console.error(`[ROUTES] Error setting up route ${route.path}:`, error.message);
180
+ throw error;
181
+ }
182
+ if (!handlerFunction) continue;
183
+ for (const method of route.methods) {
184
+ const allowedMethods = [
185
+ "get",
186
+ "post",
187
+ "put",
188
+ "delete",
189
+ "patch",
190
+ "options",
191
+ "head"
192
+ ];
193
+ if (method === "options" && route.methods.length > 1) continue;
194
+ if (!allowedMethods.includes(method)) {
195
+ const error = /* @__PURE__ */ new Error(`Invalid HTTP method: ${method} for route: ${route.path}`);
196
+ console.error("[ROUTES]", error.message);
197
+ throw error;
198
+ }
199
+ for (const registrationPath of route.registrationPaths) router[method](registrationPath, (req, _res, next) => {
200
+ Router.ensureRequestBodyAccessor(req);
201
+ const override = Router.resolveMethodOverride(req.method, req.headers, req.body);
202
+ if (method === "post" && override && override !== "post") return next("route");
203
+ return next();
204
+ }, ...route.middlewares || [], async (req, res, next) => {
205
+ try {
206
+ Router.ensureRequestBodyAccessor(req);
207
+ const ctx = {
208
+ req,
209
+ res,
210
+ next
211
+ };
212
+ const inst = instance ?? route;
213
+ Router.bindRequestToInstance(ctx, inst, route, {
214
+ body: ctx.req.getBody(),
215
+ query: ctx.req.query,
216
+ params: ctx.req.params,
217
+ method
218
+ });
219
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
220
+ const resolved = await Promise.resolve(result);
221
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
222
+ await Router.sendReturnValue(ctx, outgoing, method, route.path);
223
+ } catch (error) {
224
+ next(error);
225
+ }
226
+ });
227
+ if ([
228
+ "put",
229
+ "patch",
230
+ "delete"
231
+ ].includes(method)) for (const registrationPath of route.registrationPaths) router.post(registrationPath, (req, _res, next) => {
232
+ Router.ensureRequestBodyAccessor(req);
233
+ if (Router.resolveMethodOverride(req.method, req.headers, req.body) !== method) return next("route");
234
+ req.method = method.toUpperCase();
235
+ return next();
236
+ }, ...route.middlewares || [], async (req, res, next) => {
237
+ try {
238
+ Router.ensureRequestBodyAccessor(req);
239
+ const ctx = {
240
+ req,
241
+ res,
242
+ next
243
+ };
244
+ const inst = instance ?? route;
245
+ Router.bindRequestToInstance(ctx, inst, route, {
246
+ body: ctx.req.getBody(),
247
+ query: ctx.req.query,
248
+ params: ctx.req.params,
249
+ method
250
+ });
251
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
252
+ const resolved = await Promise.resolve(result);
253
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
254
+ await Router.sendReturnValue(ctx, outgoing, method, route.path);
255
+ } catch (error) {
256
+ next(error);
257
+ }
258
+ });
259
+ }
260
+ }
261
+ }
262
+ };
263
+
264
+ //#endregion
265
+ exports.default = Router;
@@ -0,0 +1,131 @@
1
+ import { ApiResourceMiddleware, ControllerAction, HttpMethod } from "../types/basic.cjs";
2
+ import { Handler, HttpContext, Middleware } from "../types/express.cjs";
3
+ import { Route } from "../Route.cjs";
4
+ import { CoreRouter } from "../core/router.cjs";
5
+ import { Router } from "express";
6
+
7
+ //#region src/express/router.d.ts
8
+ /**
9
+ * @class clear-router Express Router
10
+ * @description Laravel-style routing system for Express.js and H3 with support for CommonJS, ESM, and TypeScript
11
+ * @author Refkinscallv
12
+ * @author 3m1n3nc3
13
+ * @repository https://github.com/arkstack-tmp/clear-router
14
+ */
15
+ declare class Router$1 extends CoreRouter {
16
+ protected static routerStateNamespace: string;
17
+ private static ensureRequestBodyAccessor;
18
+ private static sendReturnValue;
19
+ /**
20
+ * Adds a new route to the router.
21
+ *
22
+ * @param methods
23
+ * @param path
24
+ * @param handler
25
+ * @param middlewares
26
+ */
27
+ static add(methods: HttpMethod | HttpMethod[], path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
28
+ /**
29
+ * Define a resourceful API controller with standard CRUD routes
30
+ *
31
+ * @param basePath
32
+ * @param controller
33
+ * @param options
34
+ */
35
+ static apiResource(basePath: string, controller: any, options?: {
36
+ only?: ControllerAction[];
37
+ except?: ControllerAction[];
38
+ middlewares?: ApiResourceMiddleware<Middleware>;
39
+ }): void;
40
+ /**
41
+ * Adds a new GET route to the router.
42
+ *
43
+ * @param path
44
+ * @param handler
45
+ * @param middlewares
46
+ */
47
+ static get(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
48
+ /**
49
+ * Adds a new POST route to the router.
50
+ *
51
+ * @param path
52
+ * @param handler
53
+ * @param middlewares
54
+ */
55
+ static post(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
56
+ /**
57
+ * Adds a new PUT route to the router.
58
+ *
59
+ * @param path
60
+ * @param handler
61
+ * @param middlewares
62
+ */
63
+ static put(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
64
+ /**
65
+ * Adds a new DELETE route to the router.
66
+ *
67
+ * @param path
68
+ * @param handler
69
+ * @param middlewares
70
+ */
71
+ static delete(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
72
+ /**
73
+ * Adds a new PATCH route to the router.
74
+ *
75
+ * @param path
76
+ * @param handler
77
+ * @param middlewares
78
+ */
79
+ static patch(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
80
+ /**
81
+ * Adds a new OPTIONS route to the router.
82
+ *
83
+ * @param path
84
+ * @param handler
85
+ * @param middlewares
86
+ */
87
+ static options(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
88
+ /**
89
+ * Adds a new HEAD route to the router.
90
+ *
91
+ * @param path
92
+ * @param handler
93
+ * @param middlewares
94
+ */
95
+ static head(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
96
+ /**
97
+ * Defines a group of routes with a common prefix.
98
+ *
99
+ * @param prefix
100
+ * @param callback
101
+ * @param middlewares
102
+ */
103
+ static group(prefix: string, callback: () => void | Promise<void>, middlewares?: Middleware[]): Promise<void>;
104
+ /**
105
+ * Adds global middlewares to the router, which will be applied to all routes.
106
+ *
107
+ * @param middlewares
108
+ * @param callback
109
+ */
110
+ static middleware(middlewares: Middleware[], callback: () => void): void;
111
+ /**
112
+ * Retrieves all registered routes in the router, optionally organized by path or method.
113
+ *
114
+ * @param type
115
+ */
116
+ static allRoutes(): Array<Route<HttpContext, Middleware, Handler>>;
117
+ static allRoutes(type: 'path'): Record<string, Route<HttpContext, Middleware, Handler>>;
118
+ static allRoutes(type: 'method'): { [method in Uppercase<HttpMethod>]?: Array<Route<HttpContext, Middleware, Handler>> };
119
+ static allRoutes(type: 'name'): Record<string, Route<HttpContext, Middleware, Handler>>;
120
+ static route(name: string): Route<HttpContext, Middleware, Handler> | undefined;
121
+ /**
122
+ * Applies the registered routes to the given Express router instance, setting up the necessary
123
+ * handlers and middlewares for each route.
124
+ *
125
+ * @param router
126
+ */
127
+ static apply(router: Router): void;
128
+ static apply(router: Router): Promise<void>;
129
+ }
130
+ //#endregion
131
+ export { Router$1 as Router };
@@ -0,0 +1,131 @@
1
+ import { ApiResourceMiddleware, ControllerAction, HttpMethod } from "../types/basic.mjs";
2
+ import { Handler, HttpContext, Middleware } from "../types/express.mjs";
3
+ import { Route } from "../Route.mjs";
4
+ import { CoreRouter } from "../core/router.mjs";
5
+ import { Router } from "express";
6
+
7
+ //#region src/express/router.d.ts
8
+ /**
9
+ * @class clear-router Express Router
10
+ * @description Laravel-style routing system for Express.js and H3 with support for CommonJS, ESM, and TypeScript
11
+ * @author Refkinscallv
12
+ * @author 3m1n3nc3
13
+ * @repository https://github.com/arkstack-tmp/clear-router
14
+ */
15
+ declare class Router$1 extends CoreRouter {
16
+ protected static routerStateNamespace: string;
17
+ private static ensureRequestBodyAccessor;
18
+ private static sendReturnValue;
19
+ /**
20
+ * Adds a new route to the router.
21
+ *
22
+ * @param methods
23
+ * @param path
24
+ * @param handler
25
+ * @param middlewares
26
+ */
27
+ static add(methods: HttpMethod | HttpMethod[], path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
28
+ /**
29
+ * Define a resourceful API controller with standard CRUD routes
30
+ *
31
+ * @param basePath
32
+ * @param controller
33
+ * @param options
34
+ */
35
+ static apiResource(basePath: string, controller: any, options?: {
36
+ only?: ControllerAction[];
37
+ except?: ControllerAction[];
38
+ middlewares?: ApiResourceMiddleware<Middleware>;
39
+ }): void;
40
+ /**
41
+ * Adds a new GET route to the router.
42
+ *
43
+ * @param path
44
+ * @param handler
45
+ * @param middlewares
46
+ */
47
+ static get(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
48
+ /**
49
+ * Adds a new POST route to the router.
50
+ *
51
+ * @param path
52
+ * @param handler
53
+ * @param middlewares
54
+ */
55
+ static post(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
56
+ /**
57
+ * Adds a new PUT route to the router.
58
+ *
59
+ * @param path
60
+ * @param handler
61
+ * @param middlewares
62
+ */
63
+ static put(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
64
+ /**
65
+ * Adds a new DELETE route to the router.
66
+ *
67
+ * @param path
68
+ * @param handler
69
+ * @param middlewares
70
+ */
71
+ static delete(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
72
+ /**
73
+ * Adds a new PATCH route to the router.
74
+ *
75
+ * @param path
76
+ * @param handler
77
+ * @param middlewares
78
+ */
79
+ static patch(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
80
+ /**
81
+ * Adds a new OPTIONS route to the router.
82
+ *
83
+ * @param path
84
+ * @param handler
85
+ * @param middlewares
86
+ */
87
+ static options(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
88
+ /**
89
+ * Adds a new HEAD route to the router.
90
+ *
91
+ * @param path
92
+ * @param handler
93
+ * @param middlewares
94
+ */
95
+ static head(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
96
+ /**
97
+ * Defines a group of routes with a common prefix.
98
+ *
99
+ * @param prefix
100
+ * @param callback
101
+ * @param middlewares
102
+ */
103
+ static group(prefix: string, callback: () => void | Promise<void>, middlewares?: Middleware[]): Promise<void>;
104
+ /**
105
+ * Adds global middlewares to the router, which will be applied to all routes.
106
+ *
107
+ * @param middlewares
108
+ * @param callback
109
+ */
110
+ static middleware(middlewares: Middleware[], callback: () => void): void;
111
+ /**
112
+ * Retrieves all registered routes in the router, optionally organized by path or method.
113
+ *
114
+ * @param type
115
+ */
116
+ static allRoutes(): Array<Route<HttpContext, Middleware, Handler>>;
117
+ static allRoutes(type: 'path'): Record<string, Route<HttpContext, Middleware, Handler>>;
118
+ static allRoutes(type: 'method'): { [method in Uppercase<HttpMethod>]?: Array<Route<HttpContext, Middleware, Handler>> };
119
+ static allRoutes(type: 'name'): Record<string, Route<HttpContext, Middleware, Handler>>;
120
+ static route(name: string): Route<HttpContext, Middleware, Handler> | undefined;
121
+ /**
122
+ * Applies the registered routes to the given Express router instance, setting up the necessary
123
+ * handlers and middlewares for each route.
124
+ *
125
+ * @param router
126
+ */
127
+ static apply(router: Router): void;
128
+ static apply(router: Router): Promise<void>;
129
+ }
130
+ //#endregion
131
+ export { Router$1 as Router };