stratal 0.0.11 → 0.0.12

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/dist/application.d.ts +6 -0
  2. package/dist/application.d.ts.map +1 -1
  3. package/dist/application.js +1 -1
  4. package/dist/application.js.map +1 -1
  5. package/dist/middleware/middleware-configuration.service.d.ts +8 -2
  6. package/dist/middleware/middleware-configuration.service.d.ts.map +1 -1
  7. package/dist/middleware/middleware-configuration.service.js +32 -3
  8. package/dist/middleware/middleware-configuration.service.js.map +1 -1
  9. package/dist/middleware/types.d.ts +2 -0
  10. package/dist/middleware/types.d.ts.map +1 -1
  11. package/dist/router/constants.d.ts +7 -0
  12. package/dist/router/constants.d.ts.map +1 -1
  13. package/dist/router/constants.js +7 -0
  14. package/dist/router/constants.js.map +1 -1
  15. package/dist/router/decorators/controller.decorator.d.ts +8 -1
  16. package/dist/router/decorators/controller.decorator.d.ts.map +1 -1
  17. package/dist/router/decorators/controller.decorator.js +10 -0
  18. package/dist/router/decorators/controller.decorator.js.map +1 -1
  19. package/dist/router/decorators/http-method.decorator.d.ts +83 -0
  20. package/dist/router/decorators/http-method.decorator.d.ts.map +1 -0
  21. package/dist/router/decorators/http-method.decorator.js +113 -0
  22. package/dist/router/decorators/http-method.decorator.js.map +1 -0
  23. package/dist/router/decorators/index.d.ts +1 -0
  24. package/dist/router/decorators/index.d.ts.map +1 -1
  25. package/dist/router/decorators/index.js +1 -0
  26. package/dist/router/decorators/index.js.map +1 -1
  27. package/dist/router/decorators/route.decorator.d.ts +5 -2
  28. package/dist/router/decorators/route.decorator.d.ts.map +1 -1
  29. package/dist/router/decorators/route.decorator.js +4 -1
  30. package/dist/router/decorators/route.decorator.js.map +1 -1
  31. package/dist/router/hono-app.d.ts +2 -2
  32. package/dist/router/hono-app.d.ts.map +1 -1
  33. package/dist/router/hono-app.js +3 -3
  34. package/dist/router/hono-app.js.map +1 -1
  35. package/dist/router/index.d.ts +4 -3
  36. package/dist/router/index.d.ts.map +1 -1
  37. package/dist/router/index.js +3 -2
  38. package/dist/router/index.js.map +1 -1
  39. package/dist/router/services/route-registration.service.d.ts +24 -2
  40. package/dist/router/services/route-registration.service.d.ts.map +1 -1
  41. package/dist/router/services/route-registration.service.js +155 -13
  42. package/dist/router/services/route-registration.service.js.map +1 -1
  43. package/dist/router/types.d.ts +41 -2
  44. package/dist/router/types.d.ts.map +1 -1
  45. package/package.json +17 -15
@@ -4,7 +4,7 @@ import type { LoggerService } from '../logger';
4
4
  import { type MiddlewareConfigEntry } from '../middleware';
5
5
  import type { Constructor } from '../types';
6
6
  import type { IController } from './controller';
7
- import type { RouterEnv } from './types';
7
+ import type { RouterEnv, VersioningOptions } from './types';
8
8
  /**
9
9
  * HonoApp — extends OpenAPIHono with Stratal-specific setup
10
10
  *
@@ -30,7 +30,7 @@ export declare class HonoApp extends OpenAPIHono<RouterEnv> {
30
30
  * Configure module middleware, OpenAPI endpoints, controller routes, and 404 handler.
31
31
  * Called once by Application.initialize().
32
32
  */
33
- configure(middlewareConfigs: MiddlewareConfigEntry[], controllers: Constructor<IController>[]): void;
33
+ configure(middlewareConfigs: MiddlewareConfigEntry[], controllers: Constructor<IController>[], versioningOptions?: VersioningOptions | null): void;
34
34
  private setupRequestScope;
35
35
  private setupGlobalMiddleware;
36
36
  private applyMiddlewareClasses;
@@ -1 +1 @@
1
- {"version":3,"file":"hono-app.d.ts","sourceRoot":"","sources":["../../src/router/hono-app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,eAAe,CAAA;AAEtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAQ/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAOxC;;;;;;;;;GASG;AACH,qBAAa,OAAQ,SAAQ,WAAW,CAAC,SAAS,CAAC;IACjD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAAkB;gBAGjC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,aAAa;IAwCvB;;;OAGG;IACH,SAAS,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI;IAqBpG,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,sBAAsB;CAiB/B"}
1
+ {"version":3,"file":"hono-app.d.ts","sourceRoot":"","sources":["../../src/router/hono-app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,eAAe,CAAA;AAEtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAQ/C,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAO3D;;;;;;;;;GASG;AACH,qBAAa,OAAQ,SAAQ,WAAW,CAAC,SAAS,CAAC;IACjD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAAkB;gBAGjC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,aAAa;IAwCvB;;;OAGG;IACH,SAAS,CACP,iBAAiB,EAAE,qBAAqB,EAAE,EAC1C,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,EACvC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAC3C,IAAI;IAqBP,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,sBAAsB;CAiB/B"}
@@ -69,17 +69,17 @@ export class HonoApp extends OpenAPIHono {
69
69
  * Configure module middleware, OpenAPI endpoints, controller routes, and 404 handler.
70
70
  * Called once by Application.initialize().
71
71
  */
72
- configure(middlewareConfigs, controllers) {
72
+ configure(middlewareConfigs, controllers, versioningOptions) {
73
73
  if (this.configured)
74
74
  throw new HonoAppAlreadyConfiguredError();
75
75
  // Module middleware
76
- const middlewareConfigService = new MiddlewareConfigurationService(this._logger);
76
+ const middlewareConfigService = new MiddlewareConfigurationService(this._logger, versioningOptions ?? null);
77
77
  middlewareConfigService.applyMiddlewares(this, middlewareConfigs, controllers, this._container);
78
78
  // OpenAPI endpoints
79
79
  const openAPIService = this._container.resolve(OPENAPI_TOKENS.OpenAPIService);
80
80
  openAPIService.setupEndpoints(this, controllers);
81
81
  // Controller routes
82
- const routeRegistrationService = new RouteRegistrationService(this._logger);
82
+ const routeRegistrationService = new RouteRegistrationService(this._logger, versioningOptions ?? null);
83
83
  routeRegistrationService.configure(this, controllers);
84
84
  // 404 handler (must be last)
85
85
  this.notFound((c) => { throw new RouteNotFoundError(c.req.path, c.req.method); });
@@ -1 +1 @@
1
- {"version":3,"file":"hono-app.js","sourceRoot":"","sources":["../../src/router/hono-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hono-app.js","sourceRoot":"","sources":["../../src/router/hono-app.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  export type { IController } from './controller';
2
2
  export type { Middleware } from './middleware.interface';
3
- export type { ControllerOptions, RouteConfig, RouterEnv, RouteResponse, RouterVariables, SecurityScheme } from './types';
4
- export { HTTP_METHODS, ROUTE_METADATA_KEYS, ROUTER_CONTEXT_KEYS, SECURITY_SCHEMES } from './constants';
3
+ export type { ControllerOptions, HttpRouteMetadata, RouteConfig, RouterEnv, RouteResponse, RouterVariables, SecurityScheme, VersioningOptions } from './types';
4
+ export { HTTP_METHODS, ROUTE_METADATA_KEYS, ROUTER_CONTEXT_KEYS, SECURITY_SCHEMES, VERSION_NEUTRAL } from './constants';
5
5
  export { RouterContext } from './router-context';
6
6
  export { HonoApp } from './hono-app';
7
7
  export { RouteRegistrationService } from './services';
8
8
  export { ROUTER_TOKENS } from './router.tokens';
9
- export { Controller, getControllerOptions, getControllerRoute } from './decorators/controller.decorator';
9
+ export { Controller, getControllerOptions, getControllerRoute, getControllerVersion } from './decorators/controller.decorator';
10
+ export { All, Delete, Get, getHttpDecoratedMethods, getHttpRouteMetadata, Patch, Post, Put } from './decorators/http-method.decorator';
10
11
  export { getDecoratedMethods, getRouteConfig, Route } from './decorators/route.decorator';
11
12
  export * from './schemas';
12
13
  export { ControllerRegistrationError, HonoAppAlreadyConfiguredError, OpenAPIRouteRegistrationError, OpenAPIValidationError, RouteNotFoundError } from './errors';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGxH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGtG,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGhD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAGpC,OAAO,EACL,wBAAwB,EACzB,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAG/C,OAAO,EACL,UAAU,EAAE,oBAAoB,EAAE,kBAAkB,EACrD,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAGzF,cAAc,WAAW,CAAA;AAGzB,OAAO,EACL,2BAA2B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,kBAAkB,EACtI,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAG9J,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAGvH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGhD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAGpC,OAAO,EACL,wBAAwB,EACzB,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAG/C,OAAO,EACL,UAAU,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,oBAAoB,EAC3E,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,oCAAoC,CAAA;AACtI,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAGzF,cAAc,WAAW,CAAA;AAGzB,OAAO,EACL,2BAA2B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,kBAAkB,EACtI,MAAM,UAAU,CAAA"}
@@ -1,7 +1,7 @@
1
1
  // eslint-disable-next-line @typescript-eslint/triple-slash-reference
2
2
  /// <reference path="./hono-middleware-augment.d.ts" />
3
3
  // Router constants
4
- export { HTTP_METHODS, ROUTE_METADATA_KEYS, ROUTER_CONTEXT_KEYS, SECURITY_SCHEMES } from './constants';
4
+ export { HTTP_METHODS, ROUTE_METADATA_KEYS, ROUTER_CONTEXT_KEYS, SECURITY_SCHEMES, VERSION_NEUTRAL } from './constants';
5
5
  // Router context
6
6
  export { RouterContext } from './router-context';
7
7
  // HonoApp
@@ -11,7 +11,8 @@ export { RouteRegistrationService } from './services';
11
11
  // Router tokens
12
12
  export { ROUTER_TOKENS } from './router.tokens';
13
13
  // Decorators
14
- export { Controller, getControllerOptions, getControllerRoute } from './decorators/controller.decorator';
14
+ export { Controller, getControllerOptions, getControllerRoute, getControllerVersion } from './decorators/controller.decorator';
15
+ export { All, Delete, Get, getHttpDecoratedMethods, getHttpRouteMetadata, Patch, Post, Put } from './decorators/http-method.decorator';
15
16
  export { getDecoratedMethods, getRouteConfig, Route } from './decorators/route.decorator';
16
17
  // Schemas
17
18
  export * from './schemas';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,uDAAuD;AAOvD,mBAAmB;AACnB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEtG,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,kBAAkB;AAClB,OAAO,EACL,wBAAwB,EACzB,MAAM,YAAY,CAAA;AAEnB,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,aAAa;AACb,OAAO,EACL,UAAU,EAAE,oBAAoB,EAAE,kBAAkB,EACrD,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAEzF,UAAU;AACV,cAAc,WAAW,CAAA;AAEzB,SAAS;AACT,OAAO,EACL,2BAA2B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,kBAAkB,EACtI,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,uDAAuD;AAOvD,mBAAmB;AACnB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAEvH,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,kBAAkB;AAClB,OAAO,EACL,wBAAwB,EACzB,MAAM,YAAY,CAAA;AAEnB,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,aAAa;AACb,OAAO,EACL,UAAU,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,oBAAoB,EAC3E,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,oCAAoC,CAAA;AACtI,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAEzF,UAAU;AACV,cAAc,WAAW,CAAA;AAEzB,SAAS;AACT,OAAO,EACL,2BAA2B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,kBAAkB,EACtI,MAAM,UAAU,CAAA"}
@@ -2,7 +2,7 @@ import type { OpenAPIHono } from '../../i18n/validation';
2
2
  import { type LoggerService } from '../../logger';
3
3
  import type { Constructor } from '../../types';
4
4
  import type { IController } from '../controller';
5
- import type { RouterEnv } from '../types';
5
+ import type { RouterEnv, VersioningOptions } from '../types';
6
6
  /**
7
7
  * Route registration service
8
8
  * Manages controller and route registration with OpenAPI support
@@ -16,8 +16,9 @@ import type { RouterEnv } from '../types';
16
16
  */
17
17
  export declare class RouteRegistrationService {
18
18
  private logger;
19
+ private versioningOptions;
19
20
  private controllerClasses;
20
- constructor(logger: LoggerService);
21
+ constructor(logger: LoggerService, versioningOptions?: VersioningOptions | null);
21
22
  /**
22
23
  * Configure router with controllers
23
24
  *
@@ -30,6 +31,18 @@ export declare class RouteRegistrationService {
30
31
  * Validates that controller has access decorator (strict mode)
31
32
  */
32
33
  private registerController;
34
+ /**
35
+ * Dispatch route registration based on decorator type
36
+ */
37
+ private dispatchRoutes;
38
+ /**
39
+ * Resolve versioned paths for a controller based on versioning configuration.
40
+ *
41
+ * @param basePath - The base path from @Controller decorator
42
+ * @param controllerOpts - Controller options (may contain version)
43
+ * @returns Array of resolved paths (with version prefix if applicable)
44
+ */
45
+ private resolveVersionedPaths;
33
46
  /**
34
47
  * Create a guard execution middleware
35
48
  *
@@ -48,6 +61,15 @@ export declare class RouteRegistrationService {
48
61
  * Register OpenAPI routes with metadata
49
62
  */
50
63
  private registerOpenAPIRoutes;
64
+ /**
65
+ * Register routes using HTTP method decorators (@Get, @Post, etc.)
66
+ * These use explicit method + path instead of convention-based derivation
67
+ */
68
+ private registerHttpRoutes;
69
+ /**
70
+ * Join a base path and a route path, normalizing slashes
71
+ */
72
+ private joinPaths;
51
73
  /**
52
74
  * Register route without OpenAPI metadata (for hidden routes)
53
75
  * Route is functional but won't appear in documentation
@@ -1 +1 @@
1
- {"version":3,"file":"route-registration.service.d.ts","sourceRoot":"","sources":["../../../src/router/services/route-registration.service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAchD,OAAO,KAAK,EAKV,SAAS,EAEV,MAAM,UAAU,CAAA;AAEjB;;;;;;;;;;GAUG;AACH,qBAAa,wBAAwB;IAIjC,OAAO,CAAC,MAAM;IAHhB,OAAO,CAAC,iBAAiB,CAA8C;gBAG7D,MAAM,EAAE,aAAa;IAG/B;;;;;OAKG;IACH,SAAS,CACP,GAAG,EAAE,WAAW,CAAC,SAAS,CAAC,EAC3B,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,GACtC,IAAI;IAwBP;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAkC1B;;;;;;;;OAQG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA6F7B;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IA+CnC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAU/B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAuCrB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAiHzB;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;CAsChC"}
1
+ {"version":3,"file":"route-registration.service.d.ts","sourceRoot":"","sources":["../../../src/router/services/route-registration.service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAgBhD,OAAO,KAAK,EAKV,SAAS,EAET,iBAAiB,EAClB,MAAM,UAAU,CAAA;AAGjB;;;;;;;;;;GAUG;AACH,qBAAa,wBAAwB;IAIjC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,iBAAiB;IAJ3B,OAAO,CAAC,iBAAiB,CAA8C;gBAG7D,MAAM,EAAE,aAAa,EACrB,iBAAiB,GAAE,iBAAiB,GAAG,IAAW;IAG5D;;;;;OAKG;IACH,SAAS,CACP,GAAG,EAAE,WAAW,CAAC,SAAS,CAAC,EAC3B,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,GACtC,IAAI;IAwBP;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAoD1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAiC7B;;;;;;;;OAQG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA6F7B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAsF1B;;OAEG;IACH,OAAO,CAAC,SAAS;IAKjB;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAkDnC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAU/B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAuCrB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAmHzB;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;CAsChC"}
@@ -2,10 +2,11 @@ import { getMethodInjections } from '../../di';
2
2
  import { getControllerGuards, getMethodGuards, GuardExecutionService, } from '../../guards';
3
3
  import { createRoute } from '../../i18n/validation';
4
4
  import { HTTP_METHODS, METHOD_STATUS_CODES, SECURITY_SCHEMES } from '../constants';
5
- import { getControllerOptions, getControllerRoute, getDecoratedMethods, getRouteConfig } from '../decorators';
5
+ import { getControllerOptions, getControllerRoute, getDecoratedMethods, getHttpDecoratedMethods, getHttpRouteMetadata, getRouteConfig } from '../decorators';
6
6
  import { ControllerMethodNotFoundError, ControllerRegistrationError, OpenAPIRouteRegistrationError, } from '../errors';
7
7
  import { RouterContext } from '../router-context';
8
8
  import { commonErrorSchemas } from '../schemas/common.schemas';
9
+ import { VERSION_NEUTRAL } from '../constants';
9
10
  /**
10
11
  * Route registration service
11
12
  * Manages controller and route registration with OpenAPI support
@@ -19,9 +20,11 @@ import { commonErrorSchemas } from '../schemas/common.schemas';
19
20
  */
20
21
  export class RouteRegistrationService {
21
22
  logger;
23
+ versioningOptions;
22
24
  controllerClasses = new Map();
23
- constructor(logger) {
25
+ constructor(logger, versioningOptions = null) {
24
26
  this.logger = logger;
27
+ this.versioningOptions = versioningOptions;
25
28
  }
26
29
  /**
27
30
  * Configure router with controllers
@@ -64,21 +67,81 @@ export class RouteRegistrationService {
64
67
  this.controllerClasses.set(className, ControllerClass);
65
68
  const prototype = ControllerClass.prototype;
66
69
  const controllerOpts = getControllerOptions(ControllerClass);
67
- // Handle wildcard routes (non-RESTful controllers)
70
+ // Handle wildcard routes (non-RESTful controllers) — check once, not per version
68
71
  if (prototype.handle) {
69
- this.registerWildcardRoute(app, ControllerClass, route);
72
+ if (!this.versioningOptions) {
73
+ this.registerWildcardRoute(app, ControllerClass, route);
74
+ }
75
+ else {
76
+ for (const versionedRoute of this.resolveVersionedPaths(route, controllerOpts)) {
77
+ this.registerWildcardRoute(app, ControllerClass, versionedRoute);
78
+ }
79
+ }
70
80
  return;
71
81
  }
72
- // Check for OpenAPI decorated methods
82
+ // Compute decorated methods once (loop-invariant)
73
83
  const decoratedMethods = getDecoratedMethods(ControllerClass);
74
- if (decoratedMethods.length > 0) {
75
- // Register OpenAPI routes
76
- this.registerOpenAPIRoutes(app, ControllerClass, route, decoratedMethods, controllerOpts);
84
+ const httpDecoratedMethods = getHttpDecoratedMethods(ControllerClass);
85
+ // Enforce mutual exclusivity once
86
+ if (decoratedMethods.length > 0 && httpDecoratedMethods.length > 0) {
87
+ throw new ControllerRegistrationError(ControllerClass.name, 'Cannot mix @Route() with HTTP method decorators (@Get, @Post, etc.) in the same controller. Use one pattern or the other.');
88
+ }
89
+ // Fast path: no versioning — inline dispatch, no array allocation, no loop
90
+ if (!this.versioningOptions) {
91
+ this.dispatchRoutes(app, ControllerClass, route, decoratedMethods, httpDecoratedMethods, controllerOpts, prototype);
92
+ return;
93
+ }
94
+ // Versioning path: resolve versioned paths and register each
95
+ for (const versionedRoute of this.resolveVersionedPaths(route, controllerOpts)) {
96
+ this.dispatchRoutes(app, ControllerClass, versionedRoute, decoratedMethods, httpDecoratedMethods, controllerOpts, prototype);
97
+ }
98
+ }
99
+ /**
100
+ * Dispatch route registration based on decorator type
101
+ */
102
+ dispatchRoutes(app, ControllerClass, path, decoratedMethods, httpDecoratedMethods, controllerOpts, prototype) {
103
+ if (httpDecoratedMethods.length > 0) {
104
+ this.registerHttpRoutes(app, ControllerClass, path, httpDecoratedMethods, controllerOpts);
105
+ }
106
+ else if (decoratedMethods.length > 0) {
107
+ this.registerOpenAPIRoutes(app, ControllerClass, path, decoratedMethods, controllerOpts);
77
108
  }
78
109
  else {
79
- // Fallback to traditional RESTful method registration (no OpenAPI)
80
- this.registerRESTfulRoutes(app, ControllerClass, route, prototype);
110
+ this.registerRESTfulRoutes(app, ControllerClass, path, prototype);
111
+ }
112
+ }
113
+ /**
114
+ * Resolve versioned paths for a controller based on versioning configuration.
115
+ *
116
+ * @param basePath - The base path from @Controller decorator
117
+ * @param controllerOpts - Controller options (may contain version)
118
+ * @returns Array of resolved paths (with version prefix if applicable)
119
+ */
120
+ resolveVersionedPaths(basePath, controllerOpts) {
121
+ // Versioning disabled — always return base path
122
+ if (!this.versioningOptions) {
123
+ return [basePath];
124
+ }
125
+ const version = controllerOpts?.version;
126
+ // VERSION_NEUTRAL — explicitly opt out of versioning
127
+ if (version === VERSION_NEUTRAL) {
128
+ return [basePath];
81
129
  }
130
+ const prefix = this.versioningOptions.prefix ?? 'v';
131
+ // Explicit version(s) on the controller
132
+ if (version !== undefined) {
133
+ const versions = Array.isArray(version) ? version : [version];
134
+ return versions.map(v => `/${prefix}${v}${basePath}`);
135
+ }
136
+ // No explicit version — apply defaultVersion if set
137
+ if (this.versioningOptions.defaultVersion !== undefined) {
138
+ const defaults = Array.isArray(this.versioningOptions.defaultVersion)
139
+ ? this.versioningOptions.defaultVersion
140
+ : [this.versioningOptions.defaultVersion];
141
+ return defaults.map(v => `/${prefix}${v}${basePath}`);
142
+ }
143
+ // Versioning enabled but no version and no default — no prefix
144
+ return [basePath];
82
145
  }
83
146
  /**
84
147
  * Create a guard execution middleware
@@ -185,6 +248,80 @@ export class RouteRegistrationService {
185
248
  });
186
249
  }
187
250
  }
251
+ /**
252
+ * Register routes using HTTP method decorators (@Get, @Post, etc.)
253
+ * These use explicit method + path instead of convention-based derivation
254
+ */
255
+ registerHttpRoutes(app, ControllerClass, basePath, httpDecoratedMethods, controllerOpts) {
256
+ const className = ControllerClass.name;
257
+ const prototype = ControllerClass.prototype;
258
+ const controllerHidden = controllerOpts?.hideFromDocs ?? false;
259
+ const controllerGuards = getControllerGuards(ControllerClass)?.guards ?? [];
260
+ for (const methodName of httpDecoratedMethods) {
261
+ const httpMeta = getHttpRouteMetadata(prototype, methodName);
262
+ if (!httpMeta)
263
+ continue;
264
+ const fullPath = this.joinPaths(basePath, httpMeta.path);
265
+ const routeConfig = httpMeta.config;
266
+ const hideFromDocs = routeConfig.hideFromDocs ?? controllerHidden;
267
+ // @All routes or hidden routes are registered without OpenAPI
268
+ if (httpMeta.method === 'all' || hideFromDocs) {
269
+ this.logger.info(`Registering route (no OpenAPI)`, {
270
+ controller: className,
271
+ method: httpMeta.method.toUpperCase(),
272
+ path: fullPath,
273
+ methodName,
274
+ });
275
+ this.registerRouteWithoutOpenAPI(app, ControllerClass, methodName, {
276
+ method: httpMeta.method,
277
+ path: fullPath,
278
+ });
279
+ continue;
280
+ }
281
+ // Collect method-level guards
282
+ const methodGuards = getMethodGuards(prototype, methodName)?.guards ?? [];
283
+ const allGuards = [...controllerGuards, ...methodGuards];
284
+ if (allGuards.length > 0) {
285
+ this.logger.info(`Route guards`, {
286
+ controller: className,
287
+ method: httpMeta.method.toUpperCase(),
288
+ path: fullPath,
289
+ methodName,
290
+ guardCount: allGuards.length,
291
+ });
292
+ }
293
+ // Build and register OpenAPI route
294
+ const metadata = this.mergeMetadata(controllerOpts, routeConfig, ControllerClass, methodName);
295
+ const statusCode = routeConfig.statusCode ?? 200;
296
+ const openApiRoute = this.buildOpenAPIRoute(httpMeta.method, fullPath, routeConfig, metadata, allGuards, undefined, statusCode);
297
+ this.logger.info(`Registering OpenAPI route`, {
298
+ controller: className,
299
+ method: httpMeta.method.toUpperCase(),
300
+ path: fullPath,
301
+ methodName,
302
+ tags: metadata.tags,
303
+ });
304
+ app.openapi(openApiRoute, async (c) => {
305
+ const ctx = new RouterContext(c);
306
+ const requestContainer = ctx.getContainer();
307
+ const controller = requestContainer.resolve(ControllerClass);
308
+ const method = controller[methodName];
309
+ if (typeof method === 'function') {
310
+ const injectedArgs = this.resolveMethodInjections(prototype, methodName, requestContainer);
311
+ return await method.call(controller, ctx, ...injectedArgs);
312
+ }
313
+ throw new ControllerMethodNotFoundError(methodName, className);
314
+ });
315
+ }
316
+ }
317
+ /**
318
+ * Join a base path and a route path, normalizing slashes
319
+ */
320
+ joinPaths(basePath, routePath) {
321
+ if (routePath === '/')
322
+ return basePath;
323
+ return basePath + routePath;
324
+ }
188
325
  /**
189
326
  * Register route without OpenAPI metadata (for hidden routes)
190
327
  * Route is functional but won't appear in documentation
@@ -222,6 +359,9 @@ export class RouteRegistrationService {
222
359
  case 'delete':
223
360
  app.delete(derived.path, handler);
224
361
  break;
362
+ case 'all':
363
+ app.all(derived.path, handler);
364
+ break;
225
365
  default:
226
366
  // For head, options, trace, or any other method, use all()
227
367
  app.all(derived.path, handler);
@@ -304,7 +444,7 @@ export class RouteRegistrationService {
304
444
  *
305
445
  * Execution order: Global middlewares → Guards → Handler
306
446
  */
307
- buildOpenAPIRoute(method, path, routeConfig, metadata, guards, methodName) {
447
+ buildOpenAPIRoute(method, path, routeConfig, metadata, guards, methodName, statusCodeOverride) {
308
448
  try {
309
449
  const route = {
310
450
  method,
@@ -343,8 +483,10 @@ export class RouteRegistrationService {
343
483
  params: routeConfig.params,
344
484
  };
345
485
  }
346
- // Derive success status code from method name
347
- const successStatus = (methodName && METHOD_STATUS_CODES[methodName]) ?? 200;
486
+ // Derive success status code from method name or use override
487
+ const successStatus = statusCodeOverride
488
+ ?? (methodName && METHOD_STATUS_CODES[methodName])
489
+ ?? 200;
348
490
  // Build responses object with auto-derived status
349
491
  const responses = {};
350
492
  // Add success response with derived status code
@@ -1 +1 @@
1
- {"version":3,"file":"route-registration.service.js","sourceRoot":"","sources":["../../../src/router/services/route-registration.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-registration.service.js","sourceRoot":"","sources":["../../../src/router/services/route-registration.service.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { ZodObject, ZodPipe, ZodType, RouteConfig as OpenAPIRouteConfig } from '../i18n/validation';
2
2
  import { type StratalEnv } from '../env';
3
3
  import type { Container } from '../di';
4
- import { type HTTP_METHODS, type ROUTER_CONTEXT_KEYS, type SECURITY_SCHEMES } from './constants';
4
+ import { type HTTP_METHODS, type ROUTER_CONTEXT_KEYS, type SECURITY_SCHEMES, type VERSION_NEUTRAL } from './constants';
5
5
  /**
6
6
  * Route parameter type for OpenAPI
7
7
  * ZodObject or ZodPipe (piped validation)
@@ -35,7 +35,7 @@ export type MethodName = keyof typeof HTTP_METHODS;
35
35
  /**
36
36
  * HTTP method type from OpenAPI spec
37
37
  */
38
- export type HttpMethod = 'get' | 'post' | 'put' | 'delete' | 'patch' | 'head' | 'options' | 'trace';
38
+ export type HttpMethod = 'get' | 'post' | 'put' | 'delete' | 'patch' | 'head' | 'options' | 'trace' | 'all';
39
39
  /**
40
40
  * Security scheme record for OpenAPI security array format
41
41
  * Maps scheme names to scopes (empty array for no scopes)
@@ -103,6 +103,21 @@ export interface RouteConfig {
103
103
  * Useful for internal-only endpoints, debug routes, or work-in-progress features
104
104
  */
105
105
  hideFromDocs?: boolean;
106
+ /**
107
+ * HTTP success status code for the response
108
+ * Used by HTTP method decorators (@Get, @Post, etc.) to set the success status
109
+ * For @Route() decorator, status code is auto-derived from method name
110
+ */
111
+ statusCode?: number;
112
+ }
113
+ /**
114
+ * Metadata stored by HTTP method decorators (@Get, @Post, etc.)
115
+ * Contains the explicit HTTP method, path, and route configuration
116
+ */
117
+ export interface HttpRouteMetadata {
118
+ method: HttpMethod;
119
+ path: string;
120
+ config: RouteConfig;
106
121
  }
107
122
  /**
108
123
  * Controller options for @Controller() decorator
@@ -126,5 +141,29 @@ export interface ControllerOptions {
126
141
  * Useful for internal-only controllers, debug endpoints, or utilities
127
142
  */
128
143
  hideFromDocs?: boolean;
144
+ /**
145
+ * API version(s) for this controller.
146
+ * When versioning is enabled, routes are prefixed with the version (e.g., /v1/users).
147
+ * Use VERSION_NEUTRAL to opt out of versioning (no prefix applied).
148
+ * Can be a single version string, array of versions, or VERSION_NEUTRAL symbol.
149
+ */
150
+ version?: string | string[] | typeof VERSION_NEUTRAL;
151
+ }
152
+ /**
153
+ * Versioning configuration for the application.
154
+ * Enables URI-based API versioning when provided to Stratal config.
155
+ */
156
+ export interface VersioningOptions {
157
+ /**
158
+ * Prefix for version segments in the URL.
159
+ * @default 'v'
160
+ * @example 'v' produces /v1, /v2; 'api/v' produces /api/v1, /api/v2
161
+ */
162
+ prefix?: string;
163
+ /**
164
+ * Default version applied to controllers without explicit version.
165
+ * Controllers with VERSION_NEUTRAL are not affected.
166
+ */
167
+ defaultVersion?: string | string[];
129
168
  }
130
169
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACxG,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEhG;;;GAGG;AAEH,KAAK,mBAAmB,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAC7D,KAAK,cAAc,GAAG,mBAAmB,GAAG,SAAS,CAAA;AAErD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAA;IAClD,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAA;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,UAAU,CAAA;IACpB,SAAS,EAAE,eAAe,CAAA;CAC3B;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAA;AAEnF;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,YAAY,CAAA;AAElD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;AAEnG;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,CAAA;AAEnE;;GAEG;AACH,YAAY,EAAE,kBAAkB,EAAE,CAAA;AAElC;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/E;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,cAAc,CAAA;IAEvB;;;OAGG;IACH,KAAK,CAAC,EAAE,cAAc,CAAA;IAEtB;;;;OAIG;IACH,QAAQ,EAAE,aAAa,CAAA;IAEvB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IAEf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;IAE3B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IAEf;;;OAGG;IACH,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;IAE3B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"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"}