clear-router 2.5.12 → 2.5.14

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 (45) hide show
  1. package/README.md +2 -0
  2. package/dist/{bindings-CDGLuAq4.cjs → bindings-CLsZjOEy.cjs} +8 -1
  3. package/dist/{bindings-B6x2HfzP.mjs → bindings-XLDXFpHZ.mjs} +8 -1
  4. package/dist/core/index.cjs +2 -2
  5. package/dist/core/index.d.cts +1 -1
  6. package/dist/core/index.d.mts +1 -1
  7. package/dist/core/index.mjs +2 -2
  8. package/dist/decorators/index.cjs +1 -1
  9. package/dist/decorators/index.mjs +1 -1
  10. package/dist/decorators/setup.cjs +2 -2
  11. package/dist/decorators/setup.d.mts +0 -1
  12. package/dist/decorators/setup.mjs +2 -2
  13. package/dist/express/index.cjs +16 -13
  14. package/dist/express/index.d.cts +11 -9
  15. package/dist/express/index.d.mts +11 -9
  16. package/dist/express/index.mjs +16 -13
  17. package/dist/fastify/index.cjs +18 -15
  18. package/dist/fastify/index.d.cts +11 -9
  19. package/dist/fastify/index.d.mts +11 -9
  20. package/dist/fastify/index.mjs +18 -15
  21. package/dist/h3/index.cjs +16 -13
  22. package/dist/h3/index.d.cts +11 -9
  23. package/dist/h3/index.d.mts +11 -9
  24. package/dist/h3/index.mjs +16 -13
  25. package/dist/hono/index.cjs +16 -13
  26. package/dist/hono/index.d.cts +11 -9
  27. package/dist/hono/index.d.mts +11 -9
  28. package/dist/hono/index.mjs +16 -13
  29. package/dist/index.cjs +114 -13
  30. package/dist/index.d.cts +54 -25
  31. package/dist/index.d.mts +54 -25
  32. package/dist/index.mjs +114 -13
  33. package/dist/koa/index.cjs +16 -13
  34. package/dist/koa/index.d.cts +11 -9
  35. package/dist/koa/index.d.mts +11 -9
  36. package/dist/koa/index.mjs +16 -13
  37. package/dist/{responses-DuZeRyGE.mjs → responses-BvETUeDL.mjs} +1 -1
  38. package/dist/{responses-CBP3RYjJ.cjs → responses-Bvnk0uvc.cjs} +1 -1
  39. package/dist/{router-91xVPlV0.d.mts → router-Bk8mXRu1.d.mts} +53 -24
  40. package/dist/{router-DPJfzvy5.cjs → router-CAnd539U.cjs} +107 -13
  41. package/dist/{router-BkJMl4xv.mjs → router-DSq9dtuQ.mjs} +107 -13
  42. package/dist/{router-35iBbCaF.d.cts → router-jwZwD8ZT.d.cts} +53 -24
  43. package/dist/types/Route.d.mts +16 -1
  44. package/dist/types/core/Response.d.mts +3 -1
  45. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -40,21 +40,49 @@ var Route = class {
40
40
  clearRequest;
41
41
  methods;
42
42
  path;
43
+ registrationPaths;
44
+ parameters;
45
+ routeName;
43
46
  handler;
44
47
  middlewares;
45
48
  controllerName;
46
49
  actionName;
47
50
  handlerType;
48
51
  middlewareCount;
49
- constructor(methods, path, handler, middlewares = []) {
52
+ constructor(methods, path, handler, middlewares = [], options = {}) {
50
53
  this.methods = methods;
51
54
  this.path = path;
55
+ this.registrationPaths = options.registrationPaths || [path];
56
+ this.parameters = options.parameters || [];
52
57
  this.handler = handler;
53
58
  this.middlewares = middlewares;
54
59
  this.handlerType = Array.isArray(handler) ? "controller" : "function";
55
60
  this.middlewareCount = middlewares.length;
56
61
  this.controllerName = Array.isArray(handler) ? handler[0]?.name : void 0;
57
62
  this.actionName = Array.isArray(handler) ? handler[1] : typeof handler === "function" ? handler.constructor.name ?? handler.name : void 0;
63
+ this.onName = options.onName;
64
+ }
65
+ onName;
66
+ name(name) {
67
+ const previousName = this.routeName;
68
+ this.routeName = name;
69
+ this.onName?.(name, this, previousName);
70
+ return this;
71
+ }
72
+ toPath(params = {}) {
73
+ return this.path.replace(/\/?\{([^{}]+)\}/g, (segment, raw) => {
74
+ const optional = raw.endsWith("?");
75
+ const [rawName, rawField] = (optional ? raw.slice(0, -1) : raw).split(":", 2);
76
+ const name = rawName.trim();
77
+ const field = rawField?.trim();
78
+ const value = params[name];
79
+ const resolved = field && value && typeof value === "object" ? value[field] : value;
80
+ if (typeof resolved === "undefined" || resolved === null || resolved === "") {
81
+ if (optional) return "";
82
+ throw new Error(`Missing required route parameter: ${name}`);
83
+ }
84
+ return `${segment.startsWith("/") ? "/" : ""}${encodeURIComponent(String(resolved))}`;
85
+ }) || "/";
58
86
  }
59
87
  };
60
88
 
@@ -97,14 +125,21 @@ var Response = class {
97
125
  headers = new Headers();
98
126
  sent = false;
99
127
  statusCode = 200;
128
+ statusText = "OK";
100
129
  constructor(init) {
101
- Object.assign(this, init);
130
+ const { status: _, ...rest } = init ?? {};
131
+ Object.assign(this, rest);
102
132
  if (init?.headers && !(init.headers instanceof Headers)) this.headers = new Headers(init.headers);
133
+ if (init?.status && typeof init.status === "number") this.statusCode = init?.status;
103
134
  }
104
135
  status(code) {
105
136
  this.statusCode = code;
106
137
  return this;
107
138
  }
139
+ setStatusText(text) {
140
+ this.statusText = text;
141
+ return this;
142
+ }
108
143
  code(code) {
109
144
  return this.status(code);
110
145
  }
@@ -326,6 +361,7 @@ var CoreRouter = class {
326
361
  routes: [],
327
362
  routesByPathMethod: {},
328
363
  routesByMethod: {},
364
+ routesByName: {},
329
365
  prefix: "",
330
366
  groupMiddlewares: [],
331
367
  globalMiddlewares: []
@@ -342,6 +378,7 @@ var CoreRouter = class {
342
378
  "routes",
343
379
  "routesByPathMethod",
344
380
  "routesByMethod",
381
+ "routesByName",
345
382
  "prefix",
346
383
  "groupMiddlewares",
347
384
  "globalMiddlewares"
@@ -474,6 +511,7 @@ var CoreRouter = class {
474
511
  static routes = [];
475
512
  static routesByPathMethod = {};
476
513
  static routesByMethod = {};
514
+ static routesByName = {};
477
515
  static prefix = "";
478
516
  static groupMiddlewares = [];
479
517
  static globalMiddlewares = [];
@@ -525,6 +563,7 @@ var CoreRouter = class {
525
563
  if (!Array.isArray(this.routes)) this.routes = [];
526
564
  if (!this.routesByPathMethod || typeof this.routesByPathMethod !== "object") this.routesByPathMethod = {};
527
565
  if (!this.routesByMethod || typeof this.routesByMethod !== "object") this.routesByMethod = {};
566
+ if (!this.routesByName || typeof this.routesByName !== "object") this.routesByName = {};
528
567
  if (typeof this.prefix !== "string") this.prefix = "";
529
568
  if (!Array.isArray(this.groupMiddlewares)) this.groupMiddlewares = [];
530
569
  if (!Array.isArray(this.globalMiddlewares)) this.globalMiddlewares = [];
@@ -539,6 +578,47 @@ var CoreRouter = class {
539
578
  static normalizePath(path) {
540
579
  return "/" + path.split("/").filter(Boolean).join("/");
541
580
  }
581
+ static parseRouteParameters(path) {
582
+ const parameters = [];
583
+ const seen = /* @__PURE__ */ new Set();
584
+ const pattern = /\{([^{}]+)\}/g;
585
+ let match;
586
+ while ((match = pattern.exec(path)) !== null) {
587
+ const raw = match[1].trim();
588
+ const optional = raw.endsWith("?");
589
+ const [name, field] = (optional ? raw.slice(0, -1) : raw).split(":", 2).map((part) => part.trim());
590
+ if (!name || seen.has(name)) continue;
591
+ seen.add(name);
592
+ parameters.push({
593
+ name,
594
+ field: field || void 0,
595
+ optional
596
+ });
597
+ }
598
+ return parameters;
599
+ }
600
+ static expandRoutePath(path) {
601
+ let paths = [""];
602
+ const segments = this.normalizePath(path).split("/").filter(Boolean);
603
+ for (const segment of segments) {
604
+ const match = segment.match(/^\{([^{}]+)\}$/);
605
+ if (!match) {
606
+ paths = paths.map((current) => `${current}/${segment}`);
607
+ continue;
608
+ }
609
+ const raw = match[1].trim();
610
+ const optional = raw.endsWith("?");
611
+ const [rawName] = (optional ? raw.slice(0, -1) : raw).split(":", 2);
612
+ const name = rawName.trim();
613
+ if (!name) continue;
614
+ const parameterSegment = `/:${name}`;
615
+ paths = optional ? paths.flatMap((current) => [current, `${current}${parameterSegment}`]) : paths.map((current) => `${current}${parameterSegment}`);
616
+ }
617
+ return paths.map((path) => path || "/");
618
+ }
619
+ static routeRegistrationPaths(path) {
620
+ return this.expandRoutePath(path);
621
+ }
542
622
  /**
543
623
  * Configures the router with the given options, such as method override settings.
544
624
  *
@@ -612,11 +692,20 @@ var CoreRouter = class {
612
692
  methods = Array.isArray(methods) ? methods : [methods];
613
693
  middlewares = middlewares ? Array.isArray(middlewares) ? middlewares : [middlewares] : void 0;
614
694
  const fullPath = this.normalizePath(`${activePrefix}/${path}`);
695
+ const registrationPaths = this.routeRegistrationPaths(fullPath);
696
+ const parameters = this.parseRouteParameters(fullPath);
615
697
  const route = new Route(methods.includes("options") ? methods : methods.concat("options"), fullPath, handler, [
616
698
  ...this.globalMiddlewares,
617
699
  ...activeGroupMiddlewares,
618
700
  ...middlewares || []
619
- ]);
701
+ ], {
702
+ registrationPaths,
703
+ parameters,
704
+ onName: (name, route, previousName) => {
705
+ if (previousName && this.routesByName[previousName] === route) delete this.routesByName[previousName];
706
+ this.routesByName[name] = route;
707
+ }
708
+ });
620
709
  if (!methods.includes("options") && !this.routesByPathMethod[`OPTIONS ${fullPath}`]) this.options(path, this.createDefaultOptionsHandler());
621
710
  this.routes.push(route);
622
711
  for (const method of methods.map((m) => m.toUpperCase())) {
@@ -624,6 +713,7 @@ var CoreRouter = class {
624
713
  if (!this.routesByMethod[method]) this.routesByMethod[method] = [];
625
714
  this.routesByMethod[method].push(route);
626
715
  }
716
+ return route;
627
717
  }
628
718
  /**
629
719
  * Define a resourceful API controller with standard CRUD routes.
@@ -677,7 +767,7 @@ var CoreRouter = class {
677
767
  * @param middlewares Optional middlewares to apply to the GET route.
678
768
  */
679
769
  static get(path, handler, middlewares) {
680
- this.add("get", path, handler, middlewares);
770
+ return this.add("get", path, handler, middlewares);
681
771
  }
682
772
  /**
683
773
  * Adds a new POST route to the router.
@@ -688,7 +778,7 @@ var CoreRouter = class {
688
778
  * @param middlewares
689
779
  */
690
780
  static post(path, handler, middlewares) {
691
- this.add("post", path, handler, middlewares);
781
+ return this.add("post", path, handler, middlewares);
692
782
  }
693
783
  /**
694
784
  * Adds a new PUT route to the router.
@@ -699,7 +789,7 @@ var CoreRouter = class {
699
789
  * @param middlewares
700
790
  */
701
791
  static put(path, handler, middlewares) {
702
- this.add("put", path, handler, middlewares);
792
+ return this.add("put", path, handler, middlewares);
703
793
  }
704
794
  /**
705
795
  * Adds a new DELETE route to the router.
@@ -710,7 +800,7 @@ var CoreRouter = class {
710
800
  * @param middlewares
711
801
  */
712
802
  static delete(path, handler, middlewares) {
713
- this.add("delete", path, handler, middlewares);
803
+ return this.add("delete", path, handler, middlewares);
714
804
  }
715
805
  /**
716
806
  * Adds a new PATCH route to the router.
@@ -721,7 +811,7 @@ var CoreRouter = class {
721
811
  * @param middlewares
722
812
  */
723
813
  static patch(path, handler, middlewares) {
724
- this.add("patch", path, handler, middlewares);
814
+ return this.add("patch", path, handler, middlewares);
725
815
  }
726
816
  /**
727
817
  * Adds a new OPTIONS route to the router.
@@ -732,7 +822,7 @@ var CoreRouter = class {
732
822
  * @param middlewares
733
823
  */
734
824
  static options(path, handler, middlewares) {
735
- this.add("options", path, handler, middlewares);
825
+ return this.add("options", path, handler, middlewares);
736
826
  }
737
827
  /**
738
828
  * Adds a new HEAD route to the router.
@@ -743,7 +833,7 @@ var CoreRouter = class {
743
833
  * @param middlewares
744
834
  */
745
835
  static head(path, handler, middlewares) {
746
- this.add("head", path, handler, middlewares);
836
+ return this.add("head", path, handler, middlewares);
747
837
  }
748
838
  /**
749
839
  * Defines a group of routes with a common prefix.
@@ -785,8 +875,16 @@ var CoreRouter = class {
785
875
  this.ensureState();
786
876
  if (type === "method") return this.routesByMethod;
787
877
  if (type === "path") return this.routesByPathMethod;
878
+ if (type === "name") return this.routesByName;
788
879
  return this.routes.filter((e) => e.methods.length > 1 || e.methods[0] !== "options");
789
880
  }
881
+ static route(name) {
882
+ this.ensureState();
883
+ return this.routesByName[name];
884
+ }
885
+ static url(name, params) {
886
+ return this.route(name)?.toPath(params);
887
+ }
790
888
  static resolveHandler(route) {
791
889
  let handlerFunction;
792
890
  let instance = null;
@@ -853,8 +951,7 @@ var CoreRouter = class {
853
951
  designTokens
854
952
  });
855
953
  if (pluginArgs) return handlerFunction(...pluginArgs);
856
- if (!metadata) return handlerFunction(ctx, ctx.clearRequest);
857
- if (!tokens.length) return handlerFunction(ctx, ctx.clearRequest);
954
+ if (!metadata || !tokens.length) return handlerFunction(ctx, ctx.clearRequest);
858
955
  const args = [];
859
956
  for (const token of tokens) {
860
957
  const resolved = await Container.resolve(token, ctx, Boolean(this.config.container?.autoDiscover));
@@ -883,7 +980,11 @@ var CoreRouter = class {
883
980
  clearRequest.query = payload.query;
884
981
  clearRequest.params = payload.params;
885
982
  ctx.clearRequest = clearRequest;
886
- if (!(ctx.clearResponse instanceof Response)) ctx.clearResponse = new Response();
983
+ Container.bind(Request, ctx.clearRequest);
984
+ if (!(ctx.clearResponse instanceof Response)) {
985
+ ctx.clearResponse = new Response(ctx.response ?? ctx.reply ?? ctx.res);
986
+ Container.bind(Response, ctx.clearResponse);
987
+ }
887
988
  if (!instance) return;
888
989
  instance.ctx = ctx;
889
990
  instance.body = payload.body;
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- require('../bindings-CDGLuAq4.cjs');
3
- const require_router = require('../router-DPJfzvy5.cjs');
4
- const require_responses = require('../responses-CBP3RYjJ.cjs');
2
+ require('../bindings-CLsZjOEy.cjs');
3
+ const require_router = require('../router-CAnd539U.cjs');
4
+ const require_responses = require('../responses-Bvnk0uvc.cjs');
5
5
 
6
6
  //#region src/koa/router.ts
7
7
  /**
@@ -69,7 +69,7 @@ var Router = class Router extends require_router.CoreRouter {
69
69
  * @param middlewares
70
70
  */
71
71
  static add(methods, path, handler, middlewares) {
72
- super.add(methods, path, handler, middlewares);
72
+ return super.add(methods, path, handler, middlewares);
73
73
  }
74
74
  /**
75
75
  * Define a resourceful API controller with standard CRUD routes
@@ -89,7 +89,7 @@ var Router = class Router extends require_router.CoreRouter {
89
89
  * @param middlewares
90
90
  */
91
91
  static get(path, handler, middlewares) {
92
- super.get(path, handler, middlewares);
92
+ return super.get(path, handler, middlewares);
93
93
  }
94
94
  /**
95
95
  * Define a POST route
@@ -99,7 +99,7 @@ var Router = class Router extends require_router.CoreRouter {
99
99
  * @param middlewares
100
100
  */
101
101
  static post(path, handler, middlewares) {
102
- super.post(path, handler, middlewares);
102
+ return super.post(path, handler, middlewares);
103
103
  }
104
104
  /**
105
105
  * Define a PUT route
@@ -109,7 +109,7 @@ var Router = class Router extends require_router.CoreRouter {
109
109
  * @param middlewares
110
110
  */
111
111
  static put(path, handler, middlewares) {
112
- super.put(path, handler, middlewares);
112
+ return super.put(path, handler, middlewares);
113
113
  }
114
114
  /**
115
115
  * Define a DELETE route
@@ -119,7 +119,7 @@ var Router = class Router extends require_router.CoreRouter {
119
119
  * @param middlewares
120
120
  */
121
121
  static delete(path, handler, middlewares) {
122
- super.delete(path, handler, middlewares);
122
+ return super.delete(path, handler, middlewares);
123
123
  }
124
124
  /**
125
125
  * Define a PATCH route
@@ -129,7 +129,7 @@ var Router = class Router extends require_router.CoreRouter {
129
129
  * @param middlewares
130
130
  */
131
131
  static patch(path, handler, middlewares) {
132
- super.patch(path, handler, middlewares);
132
+ return super.patch(path, handler, middlewares);
133
133
  }
134
134
  /**
135
135
  * Define an OPTIONS route
@@ -139,7 +139,7 @@ var Router = class Router extends require_router.CoreRouter {
139
139
  * @param middlewares
140
140
  */
141
141
  static options(path, handler, middlewares) {
142
- super.options(path, handler, middlewares);
142
+ return super.options(path, handler, middlewares);
143
143
  }
144
144
  /**
145
145
  * Adds a new HEAD route to the router.
@@ -150,7 +150,7 @@ var Router = class Router extends require_router.CoreRouter {
150
150
  * @param middlewares
151
151
  */
152
152
  static head(path, handler, middlewares) {
153
- super.head(path, handler, middlewares);
153
+ return super.head(path, handler, middlewares);
154
154
  }
155
155
  /**
156
156
  * Defines a group of routes with a common prefix.
@@ -174,6 +174,9 @@ var Router = class Router extends require_router.CoreRouter {
174
174
  static allRoutes(type) {
175
175
  return super.allRoutes(type);
176
176
  }
177
+ static route(name) {
178
+ return super.route(name);
179
+ }
177
180
  /**
178
181
  * Apply the defined routes to a @koa/router instance
179
182
  *
@@ -213,7 +216,7 @@ var Router = class Router extends require_router.CoreRouter {
213
216
  ];
214
217
  if (method === "options" && route.methods.length > 1) continue;
215
218
  if (!allowedMethods.includes(method)) throw new Error(`Invalid HTTP method: ${method} for route: ${route.path}`);
216
- router[method](route.path, ...route.middlewares || [], async (context, next) => {
219
+ for (const registrationPath of route.registrationPaths) router[method](registrationPath, ...route.middlewares || [], async (context, next) => {
217
220
  const ctx = context;
218
221
  const reqBody = await Router.readBodyCached(ctx);
219
222
  const override = Router.resolveMethodOverride(ctx.method, ctx.headers, reqBody);
@@ -234,7 +237,7 @@ var Router = class Router extends require_router.CoreRouter {
234
237
  "put",
235
238
  "patch",
236
239
  "delete"
237
- ].includes(method)) router.post(route.path, ...route.middlewares || [], async (context, next) => {
240
+ ].includes(method)) for (const registrationPath of route.registrationPaths) router.post(registrationPath, ...route.middlewares || [], async (context, next) => {
238
241
  const ctx = context;
239
242
  const reqBody = await Router.readBodyCached(ctx);
240
243
  if (Router.resolveMethodOverride(ctx.method, ctx.headers, reqBody) !== method) return next();
@@ -1,4 +1,4 @@
1
- import { C as ControllerAction, E as Response, S as ApiResourceMiddleware, T as HttpMethod, m as Route, p as Request, t as CoreRouter, w as ControllerHandler } from "../router-35iBbCaF.cjs";
1
+ import { C as ControllerAction, E as Response, S as ApiResourceMiddleware, T as HttpMethod, m as Route, p as Request, t as CoreRouter, w as ControllerHandler } from "../router-jwZwD8ZT.cjs";
2
2
  import Koa from "koa";
3
3
  import Router$1 from "@koa/router";
4
4
 
@@ -40,7 +40,7 @@ declare class Router extends CoreRouter {
40
40
  * @param handler
41
41
  * @param middlewares
42
42
  */
43
- static add(methods: HttpMethod | HttpMethod[], path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
43
+ static add(methods: HttpMethod | HttpMethod[], path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
44
44
  /**
45
45
  * Define a resourceful API controller with standard CRUD routes
46
46
  *
@@ -60,7 +60,7 @@ declare class Router extends CoreRouter {
60
60
  * @param handler
61
61
  * @param middlewares
62
62
  */
63
- static get(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
63
+ static get(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
64
64
  /**
65
65
  * Define a POST route
66
66
  *
@@ -68,7 +68,7 @@ declare class Router extends CoreRouter {
68
68
  * @param handler
69
69
  * @param middlewares
70
70
  */
71
- static post(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
71
+ static post(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
72
72
  /**
73
73
  * Define a PUT route
74
74
  *
@@ -76,7 +76,7 @@ declare class Router extends CoreRouter {
76
76
  * @param handler
77
77
  * @param middlewares
78
78
  */
79
- static put(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
79
+ static put(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
80
80
  /**
81
81
  * Define a DELETE route
82
82
  *
@@ -84,7 +84,7 @@ declare class Router extends CoreRouter {
84
84
  * @param handler
85
85
  * @param middlewares
86
86
  */
87
- static delete(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
87
+ static delete(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
88
88
  /**
89
89
  * Define a PATCH route
90
90
  *
@@ -92,7 +92,7 @@ declare class Router extends CoreRouter {
92
92
  * @param handler
93
93
  * @param middlewares
94
94
  */
95
- static patch(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
95
+ static patch(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
96
96
  /**
97
97
  * Define an OPTIONS route
98
98
  *
@@ -100,7 +100,7 @@ declare class Router extends CoreRouter {
100
100
  * @param handler
101
101
  * @param middlewares
102
102
  */
103
- static options(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
103
+ static options(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
104
104
  /**
105
105
  * Adds a new HEAD route to the router.
106
106
  *
@@ -109,7 +109,7 @@ declare class Router extends CoreRouter {
109
109
  * @param handler
110
110
  * @param middlewares
111
111
  */
112
- static head(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
112
+ static head(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
113
113
  /**
114
114
  * Defines a group of routes with a common prefix.
115
115
  *
@@ -137,6 +137,8 @@ declare class Router extends CoreRouter {
137
137
  * @param type - 'method' to get routes organized by method
138
138
  */
139
139
  static allRoutes(type: 'method'): { [method in Uppercase<HttpMethod>]?: Array<Route<HttpContext, Middleware, Handler>> };
140
+ static allRoutes(type: 'name'): Record<string, Route<HttpContext, Middleware, Handler>>;
141
+ static route(name: string): Route<HttpContext, Middleware, Handler> | undefined;
140
142
  /**
141
143
  * Apply the defined routes to a @koa/router instance
142
144
  *
@@ -1,4 +1,4 @@
1
- import { C as ControllerAction, E as Response, S as ApiResourceMiddleware, T as HttpMethod, m as Route, p as Request, t as CoreRouter, w as ControllerHandler } from "../router-91xVPlV0.mjs";
1
+ import { C as ControllerAction, E as Response, S as ApiResourceMiddleware, T as HttpMethod, m as Route, p as Request, t as CoreRouter, w as ControllerHandler } from "../router-Bk8mXRu1.mjs";
2
2
  import Koa from "koa";
3
3
  import Router$1 from "@koa/router";
4
4
 
@@ -40,7 +40,7 @@ declare class Router extends CoreRouter {
40
40
  * @param handler
41
41
  * @param middlewares
42
42
  */
43
- static add(methods: HttpMethod | HttpMethod[], path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
43
+ static add(methods: HttpMethod | HttpMethod[], path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
44
44
  /**
45
45
  * Define a resourceful API controller with standard CRUD routes
46
46
  *
@@ -60,7 +60,7 @@ declare class Router extends CoreRouter {
60
60
  * @param handler
61
61
  * @param middlewares
62
62
  */
63
- static get(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
63
+ static get(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
64
64
  /**
65
65
  * Define a POST route
66
66
  *
@@ -68,7 +68,7 @@ declare class Router extends CoreRouter {
68
68
  * @param handler
69
69
  * @param middlewares
70
70
  */
71
- static post(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
71
+ static post(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
72
72
  /**
73
73
  * Define a PUT route
74
74
  *
@@ -76,7 +76,7 @@ declare class Router extends CoreRouter {
76
76
  * @param handler
77
77
  * @param middlewares
78
78
  */
79
- static put(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
79
+ static put(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
80
80
  /**
81
81
  * Define a DELETE route
82
82
  *
@@ -84,7 +84,7 @@ declare class Router extends CoreRouter {
84
84
  * @param handler
85
85
  * @param middlewares
86
86
  */
87
- static delete(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
87
+ static delete(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
88
88
  /**
89
89
  * Define a PATCH route
90
90
  *
@@ -92,7 +92,7 @@ declare class Router extends CoreRouter {
92
92
  * @param handler
93
93
  * @param middlewares
94
94
  */
95
- static patch(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
95
+ static patch(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
96
96
  /**
97
97
  * Define an OPTIONS route
98
98
  *
@@ -100,7 +100,7 @@ declare class Router extends CoreRouter {
100
100
  * @param handler
101
101
  * @param middlewares
102
102
  */
103
- static options(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
103
+ static options(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
104
104
  /**
105
105
  * Adds a new HEAD route to the router.
106
106
  *
@@ -109,7 +109,7 @@ declare class Router extends CoreRouter {
109
109
  * @param handler
110
110
  * @param middlewares
111
111
  */
112
- static head(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): void;
112
+ static head(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
113
113
  /**
114
114
  * Defines a group of routes with a common prefix.
115
115
  *
@@ -137,6 +137,8 @@ declare class Router extends CoreRouter {
137
137
  * @param type - 'method' to get routes organized by method
138
138
  */
139
139
  static allRoutes(type: 'method'): { [method in Uppercase<HttpMethod>]?: Array<Route<HttpContext, Middleware, Handler>> };
140
+ static allRoutes(type: 'name'): Record<string, Route<HttpContext, Middleware, Handler>>;
141
+ static route(name: string): Route<HttpContext, Middleware, Handler> | undefined;
140
142
  /**
141
143
  * Apply the defined routes to a @koa/router instance
142
144
  *
@@ -1,6 +1,6 @@
1
- import "../bindings-B6x2HfzP.mjs";
2
- import { t as CoreRouter } from "../router-BkJMl4xv.mjs";
3
- import { n as resolveResponseMeta, t as isFetchResponse } from "../responses-DuZeRyGE.mjs";
1
+ import "../bindings-XLDXFpHZ.mjs";
2
+ import { t as CoreRouter } from "../router-DSq9dtuQ.mjs";
3
+ import { n as resolveResponseMeta, t as isFetchResponse } from "../responses-BvETUeDL.mjs";
4
4
 
5
5
  //#region src/koa/router.ts
6
6
  /**
@@ -68,7 +68,7 @@ var Router = class Router extends CoreRouter {
68
68
  * @param middlewares
69
69
  */
70
70
  static add(methods, path, handler, middlewares) {
71
- super.add(methods, path, handler, middlewares);
71
+ return super.add(methods, path, handler, middlewares);
72
72
  }
73
73
  /**
74
74
  * Define a resourceful API controller with standard CRUD routes
@@ -88,7 +88,7 @@ var Router = class Router extends CoreRouter {
88
88
  * @param middlewares
89
89
  */
90
90
  static get(path, handler, middlewares) {
91
- super.get(path, handler, middlewares);
91
+ return super.get(path, handler, middlewares);
92
92
  }
93
93
  /**
94
94
  * Define a POST route
@@ -98,7 +98,7 @@ var Router = class Router extends CoreRouter {
98
98
  * @param middlewares
99
99
  */
100
100
  static post(path, handler, middlewares) {
101
- super.post(path, handler, middlewares);
101
+ return super.post(path, handler, middlewares);
102
102
  }
103
103
  /**
104
104
  * Define a PUT route
@@ -108,7 +108,7 @@ var Router = class Router extends CoreRouter {
108
108
  * @param middlewares
109
109
  */
110
110
  static put(path, handler, middlewares) {
111
- super.put(path, handler, middlewares);
111
+ return super.put(path, handler, middlewares);
112
112
  }
113
113
  /**
114
114
  * Define a DELETE route
@@ -118,7 +118,7 @@ var Router = class Router extends CoreRouter {
118
118
  * @param middlewares
119
119
  */
120
120
  static delete(path, handler, middlewares) {
121
- super.delete(path, handler, middlewares);
121
+ return super.delete(path, handler, middlewares);
122
122
  }
123
123
  /**
124
124
  * Define a PATCH route
@@ -128,7 +128,7 @@ var Router = class Router extends CoreRouter {
128
128
  * @param middlewares
129
129
  */
130
130
  static patch(path, handler, middlewares) {
131
- super.patch(path, handler, middlewares);
131
+ return super.patch(path, handler, middlewares);
132
132
  }
133
133
  /**
134
134
  * Define an OPTIONS route
@@ -138,7 +138,7 @@ var Router = class Router extends CoreRouter {
138
138
  * @param middlewares
139
139
  */
140
140
  static options(path, handler, middlewares) {
141
- super.options(path, handler, middlewares);
141
+ return super.options(path, handler, middlewares);
142
142
  }
143
143
  /**
144
144
  * Adds a new HEAD route to the router.
@@ -149,7 +149,7 @@ var Router = class Router extends CoreRouter {
149
149
  * @param middlewares
150
150
  */
151
151
  static head(path, handler, middlewares) {
152
- super.head(path, handler, middlewares);
152
+ return super.head(path, handler, middlewares);
153
153
  }
154
154
  /**
155
155
  * Defines a group of routes with a common prefix.
@@ -173,6 +173,9 @@ var Router = class Router extends CoreRouter {
173
173
  static allRoutes(type) {
174
174
  return super.allRoutes(type);
175
175
  }
176
+ static route(name) {
177
+ return super.route(name);
178
+ }
176
179
  /**
177
180
  * Apply the defined routes to a @koa/router instance
178
181
  *
@@ -212,7 +215,7 @@ var Router = class Router extends CoreRouter {
212
215
  ];
213
216
  if (method === "options" && route.methods.length > 1) continue;
214
217
  if (!allowedMethods.includes(method)) throw new Error(`Invalid HTTP method: ${method} for route: ${route.path}`);
215
- router[method](route.path, ...route.middlewares || [], async (context, next) => {
218
+ for (const registrationPath of route.registrationPaths) router[method](registrationPath, ...route.middlewares || [], async (context, next) => {
216
219
  const ctx = context;
217
220
  const reqBody = await Router.readBodyCached(ctx);
218
221
  const override = Router.resolveMethodOverride(ctx.method, ctx.headers, reqBody);
@@ -233,7 +236,7 @@ var Router = class Router extends CoreRouter {
233
236
  "put",
234
237
  "patch",
235
238
  "delete"
236
- ].includes(method)) router.post(route.path, ...route.middlewares || [], async (context, next) => {
239
+ ].includes(method)) for (const registrationPath of route.registrationPaths) router.post(registrationPath, ...route.middlewares || [], async (context, next) => {
237
240
  const ctx = context;
238
241
  const reqBody = await Router.readBodyCached(ctx);
239
242
  if (Router.resolveMethodOverride(ctx.method, ctx.headers, reqBody) !== method) return next();
@@ -1,4 +1,4 @@
1
- import { s as Response } from "./bindings-B6x2HfzP.mjs";
1
+ import { s as Response } from "./bindings-XLDXFpHZ.mjs";
2
2
 
3
3
  //#region src/core/responses.ts
4
4
  function isFetchResponse(value) {
@@ -1,4 +1,4 @@
1
- const require_bindings = require('./bindings-CDGLuAq4.cjs');
1
+ const require_bindings = require('./bindings-CLsZjOEy.cjs');
2
2
 
3
3
  //#region src/core/responses.ts
4
4
  function isFetchResponse(value) {