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.
- package/dist/application.d.ts +6 -0
- package/dist/application.d.ts.map +1 -1
- package/dist/application.js +1 -1
- package/dist/application.js.map +1 -1
- package/dist/middleware/middleware-configuration.service.d.ts +8 -2
- package/dist/middleware/middleware-configuration.service.d.ts.map +1 -1
- package/dist/middleware/middleware-configuration.service.js +32 -3
- package/dist/middleware/middleware-configuration.service.js.map +1 -1
- package/dist/middleware/types.d.ts +2 -0
- package/dist/middleware/types.d.ts.map +1 -1
- package/dist/router/constants.d.ts +7 -0
- package/dist/router/constants.d.ts.map +1 -1
- package/dist/router/constants.js +7 -0
- package/dist/router/constants.js.map +1 -1
- package/dist/router/decorators/controller.decorator.d.ts +8 -1
- package/dist/router/decorators/controller.decorator.d.ts.map +1 -1
- package/dist/router/decorators/controller.decorator.js +10 -0
- package/dist/router/decorators/controller.decorator.js.map +1 -1
- package/dist/router/decorators/http-method.decorator.d.ts +83 -0
- package/dist/router/decorators/http-method.decorator.d.ts.map +1 -0
- package/dist/router/decorators/http-method.decorator.js +113 -0
- package/dist/router/decorators/http-method.decorator.js.map +1 -0
- package/dist/router/decorators/index.d.ts +1 -0
- package/dist/router/decorators/index.d.ts.map +1 -1
- package/dist/router/decorators/index.js +1 -0
- package/dist/router/decorators/index.js.map +1 -1
- package/dist/router/decorators/route.decorator.d.ts +5 -2
- package/dist/router/decorators/route.decorator.d.ts.map +1 -1
- package/dist/router/decorators/route.decorator.js +4 -1
- package/dist/router/decorators/route.decorator.js.map +1 -1
- package/dist/router/hono-app.d.ts +2 -2
- package/dist/router/hono-app.d.ts.map +1 -1
- package/dist/router/hono-app.js +3 -3
- package/dist/router/hono-app.js.map +1 -1
- package/dist/router/index.d.ts +4 -3
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +3 -2
- package/dist/router/index.js.map +1 -1
- package/dist/router/services/route-registration.service.d.ts +24 -2
- package/dist/router/services/route-registration.service.d.ts.map +1 -1
- package/dist/router/services/route-registration.service.js +155 -13
- package/dist/router/services/route-registration.service.js.map +1 -1
- package/dist/router/types.d.ts +41 -2
- package/dist/router/types.d.ts.map +1 -1
- package/package.json +17 -15
package/dist/application.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { LogLevel } from './logger';
|
|
|
5
5
|
import type { DynamicModule, ModuleClass } from './module/types';
|
|
6
6
|
import { type RouterContext } from './router';
|
|
7
7
|
import { HonoApp } from './router/hono-app';
|
|
8
|
+
import type { VersioningOptions } from './router/types';
|
|
8
9
|
export interface ApplicationConfig {
|
|
9
10
|
/** Root application module */
|
|
10
11
|
module: ModuleClass | DynamicModule;
|
|
@@ -13,6 +14,11 @@ export interface ApplicationConfig {
|
|
|
13
14
|
level?: LogLevel;
|
|
14
15
|
formatter?: 'json' | 'pretty';
|
|
15
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* API versioning configuration.
|
|
19
|
+
* When provided, enables URI-based versioning for controllers.
|
|
20
|
+
*/
|
|
21
|
+
versioning?: VersioningOptions;
|
|
16
22
|
}
|
|
17
23
|
export interface ApplicationOptions extends ApplicationConfig {
|
|
18
24
|
env: StratalEnv;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAA;AAIvC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAElE,OAAO,EAAiE,QAAQ,EAAmB,MAAM,UAAU,CAAA;AAEnH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAMhE,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAA;AAIvC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAElE,OAAO,EAAiE,QAAQ,EAAmB,MAAM,UAAU,CAAA;AAEnH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAMhE,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAGvD,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,MAAM,EAAE,WAAW,GAAG,aAAa,CAAA;IACnC,oEAAoE;IACpE,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,QAAQ,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;KAC9B,CAAA;IACD;;;OAGG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAC/B;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,GAAG,EAAE,UAAU,CAAA;IACf,GAAG,EAAE,uBAAuB,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,WAAW;IACtB;;OAEG;IACH,OAAO,CAAC,UAAU,CAAW;IAE7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAQ;IAE3B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;gBAEjC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,EAAE,kBAAkB;IA4BvD;;OAEG;IACH,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,OAAO,CAElB;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCjC;;OAEG;IACH,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAU5B;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBxE;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrE;;OAEG;IACH,uBAAuB,CAAC,MAAM,SAAO,GAAG,aAAa;IAQ/C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAY/B,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkB9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAK7B"}
|
package/dist/application.js
CHANGED
|
@@ -99,7 +99,7 @@ export class Application {
|
|
|
99
99
|
this.honoApp = new HonoApp(this._container, logger);
|
|
100
100
|
const middlewareConfigs = this.moduleRegistry.getAllMiddlewareConfigs();
|
|
101
101
|
const controllers = this.moduleRegistry.getAllControllers();
|
|
102
|
-
this.honoApp.configure(middlewareConfigs, controllers);
|
|
102
|
+
this.honoApp.configure(middlewareConfigs, controllers, this.appConfig.versioning);
|
|
103
103
|
// Phase 6: Configure queues, cron, events
|
|
104
104
|
this.registerQueueConsumers();
|
|
105
105
|
this.registerCronJobs();
|
package/dist/application.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAE/D,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AACnH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAIzC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { OpenAPIHono } from '../i18n/validation';
|
|
|
2
2
|
import type { Container } from '../di';
|
|
3
3
|
import type { LoggerService } from '../logger';
|
|
4
4
|
import type { IController } from '../router/controller';
|
|
5
|
-
import type { RouterEnv } from '../router/types';
|
|
5
|
+
import type { RouterEnv, VersioningOptions } from '../router/types';
|
|
6
6
|
import type { Constructor } from '../types';
|
|
7
7
|
import type { MiddlewareConfigEntry } from './types';
|
|
8
8
|
/**
|
|
@@ -13,7 +13,8 @@ import type { MiddlewareConfigEntry } from './types';
|
|
|
13
13
|
*/
|
|
14
14
|
export declare class MiddlewareConfigurationService {
|
|
15
15
|
private readonly logger;
|
|
16
|
-
|
|
16
|
+
private readonly versioningOptions;
|
|
17
|
+
constructor(logger: LoggerService, versioningOptions?: VersioningOptions | null);
|
|
17
18
|
/**
|
|
18
19
|
* Apply middleware configurations to the Hono app
|
|
19
20
|
*
|
|
@@ -31,6 +32,11 @@ export declare class MiddlewareConfigurationService {
|
|
|
31
32
|
* Resolve route targets into concrete route patterns
|
|
32
33
|
*/
|
|
33
34
|
private resolveRoutePatterns;
|
|
35
|
+
/**
|
|
36
|
+
* Resolve a RouteInfo with version into versioned path(s).
|
|
37
|
+
* If versioning is disabled or no version is specified, returns the RouteInfo as-is.
|
|
38
|
+
*/
|
|
39
|
+
private resolveVersionedRouteInfo;
|
|
34
40
|
/**
|
|
35
41
|
* Register middleware handlers for a specific route pattern
|
|
36
42
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-configuration.service.d.ts","sourceRoot":"","sources":["../../src/middleware/middleware-configuration.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIvD,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"middleware-configuration.service.d.ts","sourceRoot":"","sources":["../../src/middleware/middleware-configuration.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIvD,OAAO,KAAK,EAAc,SAAS,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAa,MAAM,SAAS,CAAA;AAE/D;;;;;GAKG;AACH,qBAAa,8BAA8B;IAEvC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBADjB,MAAM,EAAE,aAAa,EACrB,iBAAiB,GAAE,iBAAiB,GAAG,IAAW;IAGrE;;;;;;;OAOG;IACH,gBAAgB,CACd,GAAG,EAAE,WAAW,CAAC,SAAS,CAAC,EAC3B,OAAO,EAAE,qBAAqB,EAAE,EAChC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,EACvC,SAAS,EAAE,SAAS,GACnB,IAAI;IAMP;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwB7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoC5B;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAoBjC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IA2BpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuB/B;;OAEG;IACH,OAAO,CAAC,UAAU;IAalB;;OAEG;IACH,OAAO,CAAC,YAAY;IAiBpB;;;OAGG;IACH,OAAO,CAAC,WAAW;IA0BnB;;OAEG;YACW,sBAAsB;CAwBrC"}
|
|
@@ -8,8 +8,10 @@ import { RouterContext } from '../router/router-context';
|
|
|
8
8
|
*/
|
|
9
9
|
export class MiddlewareConfigurationService {
|
|
10
10
|
logger;
|
|
11
|
-
|
|
11
|
+
versioningOptions;
|
|
12
|
+
constructor(logger, versioningOptions = null) {
|
|
12
13
|
this.logger = logger;
|
|
14
|
+
this.versioningOptions = versioningOptions;
|
|
13
15
|
}
|
|
14
16
|
/**
|
|
15
17
|
* Apply middleware configurations to the Hono app
|
|
@@ -66,12 +68,39 @@ export class MiddlewareConfigurationService {
|
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
70
|
else {
|
|
69
|
-
// RouteInfo object -
|
|
70
|
-
|
|
71
|
+
// RouteInfo object - resolve version if present
|
|
72
|
+
if (!this.versioningOptions || !target.version) {
|
|
73
|
+
// Fast path: no versioning or no version on target — push directly
|
|
74
|
+
patterns.push(target);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
const resolved = this.resolveVersionedRouteInfo(target);
|
|
78
|
+
patterns.push(...resolved);
|
|
79
|
+
}
|
|
71
80
|
}
|
|
72
81
|
}
|
|
73
82
|
return patterns;
|
|
74
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Resolve a RouteInfo with version into versioned path(s).
|
|
86
|
+
* If versioning is disabled or no version is specified, returns the RouteInfo as-is.
|
|
87
|
+
*/
|
|
88
|
+
resolveVersionedRouteInfo(routeInfo) {
|
|
89
|
+
if (!this.versioningOptions || !routeInfo.version) {
|
|
90
|
+
return [routeInfo];
|
|
91
|
+
}
|
|
92
|
+
const prefix = this.versioningOptions.prefix ?? 'v';
|
|
93
|
+
const versions = Array.isArray(routeInfo.version) ? routeInfo.version : [routeInfo.version];
|
|
94
|
+
const results = [];
|
|
95
|
+
for (const v of versions) {
|
|
96
|
+
const versionedPath = `/${prefix}${v}${routeInfo.path}`;
|
|
97
|
+
// Add exact path match
|
|
98
|
+
results.push({ path: versionedPath, method: routeInfo.method });
|
|
99
|
+
// Add wildcard match for sub-paths
|
|
100
|
+
results.push({ path: `${versionedPath}/*`, method: routeInfo.method });
|
|
101
|
+
}
|
|
102
|
+
return results;
|
|
103
|
+
}
|
|
75
104
|
/**
|
|
76
105
|
* Register middleware handlers for a specific route pattern
|
|
77
106
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-configuration.service.js","sourceRoot":"","sources":["../../src/middleware/middleware-configuration.service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAA;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAKxD;;;;;GAKG;AACH,MAAM,OAAO,8BAA8B;
|
|
1
|
+
{"version":3,"file":"middleware-configuration.service.js","sourceRoot":"","sources":["../../src/middleware/middleware-configuration.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ export interface RouteInfo {
|
|
|
10
10
|
path: string;
|
|
11
11
|
/** HTTP method(s) to match. If omitted, matches all methods */
|
|
12
12
|
method?: HttpMethod | HttpMethod[];
|
|
13
|
+
/** API version(s) to target. When versioning is enabled, resolves to versioned path. */
|
|
14
|
+
version?: string | string[];
|
|
13
15
|
}
|
|
14
16
|
/**
|
|
15
17
|
* Internal configuration entry for middleware registration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/middleware/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAA;IACZ,+DAA+D;IAC/D,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/middleware/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAA;IACZ,+DAA+D;IAC/D,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAA;IAClC,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,kCAAkC;IAClC,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,CAAA;IACtC,wCAAwC;IACxC,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,mCAAmC;IACnC,MAAM,EAAE,qBAAqB,EAAE,CAAA;CAChC;AAED;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,SAAS,GAAG,GAAG,CAAA;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAA;CAC9C;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,KAAK,CAAC,GAAG,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,iBAAiB,CAAA;IACnE;;OAEG;IACH,UAAU,IAAI,qBAAqB,EAAE,CAAA;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAA;IAChD;;;OAGG;IACH,SAAS,CAAC,GAAG,OAAO,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAA;CACrD"}
|
|
@@ -16,6 +16,8 @@ export declare const ROUTE_METADATA_KEYS: {
|
|
|
16
16
|
readonly CONTROLLER_MIDDLEWARES: symbol;
|
|
17
17
|
readonly ROUTE_CONFIG: symbol;
|
|
18
18
|
readonly DECORATED_METHODS: symbol;
|
|
19
|
+
readonly HTTP_ROUTE_CONFIG: symbol;
|
|
20
|
+
readonly HTTP_DECORATED_METHODS: symbol;
|
|
19
21
|
readonly AUTH_GUARD: symbol;
|
|
20
22
|
};
|
|
21
23
|
/**
|
|
@@ -69,4 +71,9 @@ export declare const METHOD_STATUS_CODES: {
|
|
|
69
71
|
readonly patch: 200;
|
|
70
72
|
readonly destroy: 200;
|
|
71
73
|
};
|
|
74
|
+
/**
|
|
75
|
+
* Sentinel symbol to opt a controller out of versioning.
|
|
76
|
+
* When used as the version, no prefix is applied even when defaultVersion is set.
|
|
77
|
+
*/
|
|
78
|
+
export declare const VERSION_NEUTRAL: unique symbol;
|
|
72
79
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/router/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;CAGW,CAAA;AAE3C;;;GAGG;AACH,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/router/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;CAGW,CAAA;AAE3C;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;CAStB,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;CAInB,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;CAOf,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;CAOtB,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,eAAe,eAAwC,CAAA"}
|
package/dist/router/constants.js
CHANGED
|
@@ -16,6 +16,8 @@ export const ROUTE_METADATA_KEYS = {
|
|
|
16
16
|
CONTROLLER_MIDDLEWARES: Symbol.for('stratal:controller:middlewares'),
|
|
17
17
|
ROUTE_CONFIG: Symbol.for('stratal:route:config'),
|
|
18
18
|
DECORATED_METHODS: Symbol.for('stratal:decorated:methods'),
|
|
19
|
+
HTTP_ROUTE_CONFIG: Symbol.for('stratal:http-route:config'),
|
|
20
|
+
HTTP_DECORATED_METHODS: Symbol.for('stratal:http-decorated:methods'),
|
|
19
21
|
AUTH_GUARD: Symbol.for('stratal:auth:guard')
|
|
20
22
|
};
|
|
21
23
|
/**
|
|
@@ -51,4 +53,9 @@ export const METHOD_STATUS_CODES = {
|
|
|
51
53
|
patch: 200,
|
|
52
54
|
destroy: 200
|
|
53
55
|
};
|
|
56
|
+
/**
|
|
57
|
+
* Sentinel symbol to opt a controller out of versioning.
|
|
58
|
+
* When used as the version, no prefix is applied even when defaultVersion is set.
|
|
59
|
+
*/
|
|
60
|
+
export const VERSION_NEUTRAL = Symbol.for('stratal:version:neutral');
|
|
54
61
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/router/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,iBAAiB,EAAE,kBAAkB;IACrC,MAAM,EAAE,QAAQ;CACyB,CAAA;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACxD,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC;IAC5D,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC;IACpE,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAChD,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAC1D,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;CACpC,CAAA;AAEV;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW,EAAE,YAAY;IACzB,OAAO,EAAE,QAAQ;IACjB,cAAc,EAAE,eAAe;CACvB,CAAA;AAEV;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAW;IAC3C,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAW;IAC9C,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAW;IAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAW;IAChD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAW;IACjD,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAW;CAC5C,CAAA;AAEV;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG;CACJ,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/router/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,iBAAiB,EAAE,kBAAkB;IACrC,MAAM,EAAE,QAAQ;CACyB,CAAA;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACxD,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC;IAC5D,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC;IACpE,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAChD,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAC1D,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAC1D,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC;IACpE,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;CACpC,CAAA;AAEV;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW,EAAE,YAAY;IACzB,OAAO,EAAE,QAAQ;IACjB,cAAc,EAAE,eAAe;CACvB,CAAA;AAEV;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAW;IAC3C,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAW;IAC9C,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAW;IAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAW;IAChD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAW;IACjD,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAW;CAC5C,CAAA;AAEV;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG;CACJ,CAAA;AAEV;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Constructor } from '../../types';
|
|
2
|
-
import type
|
|
2
|
+
import { type ControllerOptions } from '../types';
|
|
3
3
|
/**
|
|
4
4
|
* Base controller decorator for route registration
|
|
5
5
|
*
|
|
@@ -36,4 +36,11 @@ export declare function getControllerRoute(target: object): string | undefined;
|
|
|
36
36
|
* @returns Controller options or undefined if not set
|
|
37
37
|
*/
|
|
38
38
|
export declare function getControllerOptions(target: object): ControllerOptions | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Get the version from controller class metadata
|
|
41
|
+
*
|
|
42
|
+
* @param target - Controller class or instance
|
|
43
|
+
* @returns Version string, array, VERSION_NEUTRAL symbol, or undefined if not set
|
|
44
|
+
*/
|
|
45
|
+
export declare function getControllerVersion(target: object): ControllerOptions['version'];
|
|
39
46
|
//# sourceMappingURL=controller.decorator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.decorator.d.ts","sourceRoot":"","sources":["../../../src/router/decorators/controller.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"controller.decorator.d.ts","sourceRoot":"","sources":["../../../src/router/decorators/controller.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAIjD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,IAClD,CAAC,SAAS,WAAW,EAAE,QAAQ,CAAC,OAclD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKrE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAGlF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAGjF"}
|
|
@@ -57,4 +57,14 @@ export function getControllerOptions(target) {
|
|
|
57
57
|
const metadataTarget = typeof target === 'function' ? target : target.constructor;
|
|
58
58
|
return Reflect.getMetadata(ROUTE_METADATA_KEYS.CONTROLLER_OPTIONS, metadataTarget);
|
|
59
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Get the version from controller class metadata
|
|
62
|
+
*
|
|
63
|
+
* @param target - Controller class or instance
|
|
64
|
+
* @returns Version string, array, VERSION_NEUTRAL symbol, or undefined if not set
|
|
65
|
+
*/
|
|
66
|
+
export function getControllerVersion(target) {
|
|
67
|
+
const options = getControllerOptions(target);
|
|
68
|
+
return options?.version;
|
|
69
|
+
}
|
|
60
70
|
//# sourceMappingURL=controller.decorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.decorator.js","sourceRoot":"","sources":["../../../src/router/decorators/controller.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGlD,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,gBAAgB,CAAA;AAEjE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,OAA2B;IACnE,OAAO,UAAiC,MAAS;QAC/C,2DAA2D;QAC3D,SAAS,EAAE,CAAC,MAAM,CAAC,CAAA;QAEnB,oCAAoC;QACpC,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QAE3D,qCAAqC;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACjF,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,mEAAmE;IACnE,6EAA6E;IAC7E,MAAM,cAAc,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,MAAkC,CAAC,WAAW,CAAA;IAC9G,OAAO,OAAO,CAAC,WAAW,CAAC,oBAAoB,EAAE,cAAc,CAAuB,CAAA;AACxF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,MAAM,cAAc,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,MAAkC,CAAC,WAAW,CAAA;IAC9G,OAAO,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,cAAc,CAAkC,CAAA;AACrH,CAAC"}
|
|
1
|
+
{"version":3,"file":"controller.decorator.js","sourceRoot":"","sources":["../../../src/router/decorators/controller.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGlD,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,gBAAgB,CAAA;AAEjE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,OAA2B;IACnE,OAAO,UAAiC,MAAS;QAC/C,2DAA2D;QAC3D,SAAS,EAAE,CAAC,MAAM,CAAC,CAAA;QAEnB,oCAAoC;QACpC,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QAE3D,qCAAqC;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACjF,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,mEAAmE;IACnE,6EAA6E;IAC7E,MAAM,cAAc,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,MAAkC,CAAC,WAAW,CAAA;IAC9G,OAAO,OAAO,CAAC,WAAW,CAAC,oBAAoB,EAAE,cAAc,CAAuB,CAAA;AACxF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,MAAM,cAAc,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,MAAkC,CAAC,WAAW,CAAA;IAC9G,OAAO,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,cAAc,CAAkC,CAAA;AACrH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC5C,OAAO,OAAO,EAAE,OAAO,CAAA;AACzB,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { HttpRouteMetadata, RouteConfig } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Registers a GET route on the controller method.
|
|
4
|
+
*
|
|
5
|
+
* @param path - Route path relative to the controller base path
|
|
6
|
+
* @param config - Optional route configuration (response schema, body, params, etc.)
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* @Controller('/api/v1/users')
|
|
11
|
+
* class UsersController {
|
|
12
|
+
* @Get('/', { response: z.array(userSchema), summary: 'List users' })
|
|
13
|
+
* async list(ctx: RouterContext) { ... }
|
|
14
|
+
*
|
|
15
|
+
* @Get('/:id', { params: z.object({ id: z.string().uuid() }), response: userSchema })
|
|
16
|
+
* async getUser(ctx: RouterContext) { ... }
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare const Get: (path: string, config?: RouteConfig) => (target: object, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
21
|
+
/**
|
|
22
|
+
* Registers a POST route on the controller method.
|
|
23
|
+
*
|
|
24
|
+
* @param path - Route path relative to the controller base path
|
|
25
|
+
* @param config - Optional route configuration (response schema, body, params, etc.)
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* @Controller('/api/v1/users')
|
|
30
|
+
* class UsersController {
|
|
31
|
+
* @Post('/', { body: createUserSchema, response: userSchema, statusCode: 201 })
|
|
32
|
+
* async createUser(ctx: RouterContext) { ... }
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare const Post: (path: string, config?: RouteConfig) => (target: object, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
37
|
+
/**
|
|
38
|
+
* Registers a PUT route on the controller method.
|
|
39
|
+
*
|
|
40
|
+
* @param path - Route path relative to the controller base path
|
|
41
|
+
* @param config - Optional route configuration
|
|
42
|
+
*/
|
|
43
|
+
export declare const Put: (path: string, config?: RouteConfig) => (target: object, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
44
|
+
/**
|
|
45
|
+
* Registers a PATCH route on the controller method.
|
|
46
|
+
*
|
|
47
|
+
* @param path - Route path relative to the controller base path
|
|
48
|
+
* @param config - Optional route configuration
|
|
49
|
+
*/
|
|
50
|
+
export declare const Patch: (path: string, config?: RouteConfig) => (target: object, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
51
|
+
/**
|
|
52
|
+
* Registers a DELETE route on the controller method.
|
|
53
|
+
*
|
|
54
|
+
* @param path - Route path relative to the controller base path
|
|
55
|
+
* @param config - Optional route configuration
|
|
56
|
+
*/
|
|
57
|
+
export declare const Delete: (path: string, config?: RouteConfig) => (target: object, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
58
|
+
/**
|
|
59
|
+
* Registers an ALL (any HTTP method) route on the controller method.
|
|
60
|
+
* Routes using @All are automatically hidden from OpenAPI documentation
|
|
61
|
+
* since OpenAPI does not support a catch-all HTTP method.
|
|
62
|
+
*
|
|
63
|
+
* @param path - Route path relative to the controller base path
|
|
64
|
+
* @param config - Optional route configuration
|
|
65
|
+
*/
|
|
66
|
+
export declare const All: (path: string, config?: RouteConfig) => (target: object, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
67
|
+
/**
|
|
68
|
+
* Get the HTTP route metadata from a controller method decorated with
|
|
69
|
+
* @Get, @Post, @Put, @Patch, @Delete, or @All.
|
|
70
|
+
*
|
|
71
|
+
* @param target - Controller prototype
|
|
72
|
+
* @param methodName - Name of the method
|
|
73
|
+
* @returns HTTP route metadata or undefined if not decorated
|
|
74
|
+
*/
|
|
75
|
+
export declare function getHttpRouteMetadata(target: object, methodName: string): HttpRouteMetadata | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* Get all methods decorated with HTTP method decorators from a controller class.
|
|
78
|
+
*
|
|
79
|
+
* @param ControllerClass - Controller class
|
|
80
|
+
* @returns Array of method names that have HTTP route metadata
|
|
81
|
+
*/
|
|
82
|
+
export declare function getHttpDecoratedMethods(ControllerClass: new (...args: unknown[]) => object): string[];
|
|
83
|
+
//# sourceMappingURL=http-method.decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-method.decorator.d.ts","sourceRoot":"","sources":["../../../src/router/decorators/http-method.decorator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,iBAAiB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAwC1E;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,GAAG,SAhDS,MAAM,WAAW,WAAW,MAE/C,QAAQ,MAAM,EACd,aAAa,MAAM,EACnB,YAAY,kBAAkB,uBA4Ce,CAAA;AAEnD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,IAAI,SAjEQ,MAAM,WAAW,WAAW,MAE/C,QAAQ,MAAM,EACd,aAAa,MAAM,EACnB,YAAY,kBAAkB,uBA6DiB,CAAA;AAErD;;;;;GAKG;AACH,eAAO,MAAM,GAAG,SAzES,MAAM,WAAW,WAAW,MAE/C,QAAQ,MAAM,EACd,aAAa,MAAM,EACnB,YAAY,kBAAkB,uBAqEe,CAAA;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,SAjFO,MAAM,WAAW,WAAW,MAE/C,QAAQ,MAAM,EACd,aAAa,MAAM,EACnB,YAAY,kBAAkB,uBA6EmB,CAAA;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,MAAM,SAzFM,MAAM,WAAW,WAAW,MAE/C,QAAQ,MAAM,EACd,aAAa,MAAM,EACnB,YAAY,kBAAkB,uBAqFqB,CAAA;AAEzD;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG,SAnGS,MAAM,WAAW,WAAW,MAE/C,QAAQ,MAAM,EACd,aAAa,MAAM,EACnB,YAAY,kBAAkB,uBA+Fe,CAAA;AAEnD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEtG;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,MAAM,GAAG,MAAM,EAAE,CAGrG"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { z } from '../../i18n/validation';
|
|
2
|
+
import { ROUTE_METADATA_KEYS } from '../constants';
|
|
3
|
+
/**
|
|
4
|
+
* Creates an HTTP method decorator factory for the given HTTP method.
|
|
5
|
+
*
|
|
6
|
+
* The returned decorator stores {@link HttpRouteMetadata} on the method and
|
|
7
|
+
* tracks the method name under {@link ROUTE_METADATA_KEYS.HTTP_DECORATED_METHODS}
|
|
8
|
+
* on the controller prototype so they can be discovered at registration time.
|
|
9
|
+
*/
|
|
10
|
+
function createHttpMethodDecorator(method) {
|
|
11
|
+
return function (path, config) {
|
|
12
|
+
return function (target, propertyKey, descriptor) {
|
|
13
|
+
const metadata = {
|
|
14
|
+
method,
|
|
15
|
+
path,
|
|
16
|
+
config: config ?? { response: z.any() },
|
|
17
|
+
};
|
|
18
|
+
Reflect.defineMetadata(ROUTE_METADATA_KEYS.HTTP_ROUTE_CONFIG, metadata, target, propertyKey);
|
|
19
|
+
// Track this method as HTTP-decorated on the prototype
|
|
20
|
+
const existing = Reflect.getOwnMetadata(ROUTE_METADATA_KEYS.HTTP_DECORATED_METHODS, target) ?? [];
|
|
21
|
+
existing.push(propertyKey);
|
|
22
|
+
Reflect.defineMetadata(ROUTE_METADATA_KEYS.HTTP_DECORATED_METHODS, existing, target);
|
|
23
|
+
return descriptor;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Registers a GET route on the controller method.
|
|
29
|
+
*
|
|
30
|
+
* @param path - Route path relative to the controller base path
|
|
31
|
+
* @param config - Optional route configuration (response schema, body, params, etc.)
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* @Controller('/api/v1/users')
|
|
36
|
+
* class UsersController {
|
|
37
|
+
* @Get('/', { response: z.array(userSchema), summary: 'List users' })
|
|
38
|
+
* async list(ctx: RouterContext) { ... }
|
|
39
|
+
*
|
|
40
|
+
* @Get('/:id', { params: z.object({ id: z.string().uuid() }), response: userSchema })
|
|
41
|
+
* async getUser(ctx: RouterContext) { ... }
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export const Get = createHttpMethodDecorator('get');
|
|
46
|
+
/**
|
|
47
|
+
* Registers a POST route on the controller method.
|
|
48
|
+
*
|
|
49
|
+
* @param path - Route path relative to the controller base path
|
|
50
|
+
* @param config - Optional route configuration (response schema, body, params, etc.)
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* @Controller('/api/v1/users')
|
|
55
|
+
* class UsersController {
|
|
56
|
+
* @Post('/', { body: createUserSchema, response: userSchema, statusCode: 201 })
|
|
57
|
+
* async createUser(ctx: RouterContext) { ... }
|
|
58
|
+
* }
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export const Post = createHttpMethodDecorator('post');
|
|
62
|
+
/**
|
|
63
|
+
* Registers a PUT route on the controller method.
|
|
64
|
+
*
|
|
65
|
+
* @param path - Route path relative to the controller base path
|
|
66
|
+
* @param config - Optional route configuration
|
|
67
|
+
*/
|
|
68
|
+
export const Put = createHttpMethodDecorator('put');
|
|
69
|
+
/**
|
|
70
|
+
* Registers a PATCH route on the controller method.
|
|
71
|
+
*
|
|
72
|
+
* @param path - Route path relative to the controller base path
|
|
73
|
+
* @param config - Optional route configuration
|
|
74
|
+
*/
|
|
75
|
+
export const Patch = createHttpMethodDecorator('patch');
|
|
76
|
+
/**
|
|
77
|
+
* Registers a DELETE route on the controller method.
|
|
78
|
+
*
|
|
79
|
+
* @param path - Route path relative to the controller base path
|
|
80
|
+
* @param config - Optional route configuration
|
|
81
|
+
*/
|
|
82
|
+
export const Delete = createHttpMethodDecorator('delete');
|
|
83
|
+
/**
|
|
84
|
+
* Registers an ALL (any HTTP method) route on the controller method.
|
|
85
|
+
* Routes using @All are automatically hidden from OpenAPI documentation
|
|
86
|
+
* since OpenAPI does not support a catch-all HTTP method.
|
|
87
|
+
*
|
|
88
|
+
* @param path - Route path relative to the controller base path
|
|
89
|
+
* @param config - Optional route configuration
|
|
90
|
+
*/
|
|
91
|
+
export const All = createHttpMethodDecorator('all');
|
|
92
|
+
/**
|
|
93
|
+
* Get the HTTP route metadata from a controller method decorated with
|
|
94
|
+
* @Get, @Post, @Put, @Patch, @Delete, or @All.
|
|
95
|
+
*
|
|
96
|
+
* @param target - Controller prototype
|
|
97
|
+
* @param methodName - Name of the method
|
|
98
|
+
* @returns HTTP route metadata or undefined if not decorated
|
|
99
|
+
*/
|
|
100
|
+
export function getHttpRouteMetadata(target, methodName) {
|
|
101
|
+
return Reflect.getMetadata(ROUTE_METADATA_KEYS.HTTP_ROUTE_CONFIG, target, methodName);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get all methods decorated with HTTP method decorators from a controller class.
|
|
105
|
+
*
|
|
106
|
+
* @param ControllerClass - Controller class
|
|
107
|
+
* @returns Array of method names that have HTTP route metadata
|
|
108
|
+
*/
|
|
109
|
+
export function getHttpDecoratedMethods(ControllerClass) {
|
|
110
|
+
const prototype = ControllerClass.prototype;
|
|
111
|
+
return Reflect.getOwnMetadata(ROUTE_METADATA_KEYS.HTTP_DECORATED_METHODS, prototype) ?? [];
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=http-method.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-method.decorator.js","sourceRoot":"","sources":["../../../src/router/decorators/http-method.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,uBAAuB,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGlD;;;;;;GAMG;AACH,SAAS,yBAAyB,CAAC,MAAkB;IACnD,OAAO,UAAU,IAAY,EAAE,MAAoB;QACjD,OAAO,UACL,MAAc,EACd,WAAmB,EACnB,UAA8B;YAE9B,MAAM,QAAQ,GAAsB;gBAClC,MAAM;gBACN,IAAI;gBACJ,MAAM,EAAE,MAAM,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE;aACxC,CAAA;YAED,OAAO,CAAC,cAAc,CACpB,mBAAmB,CAAC,iBAAiB,EACrC,QAAQ,EACR,MAAM,EACN,WAAW,CACZ,CAAA;YAED,uDAAuD;YACvD,MAAM,QAAQ,GACX,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,MAAM,CAA0B,IAAI,EAAE,CAAA;YAC5G,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAC1B,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;YAEpF,OAAO,UAAU,CAAA;QACnB,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAA;AAEnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAA;AAErD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAA;AAEnD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAA;AAEvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAA;AAEzD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAA;AAEnD;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,UAAkB;IACrE,OAAO,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,EAAE,UAAU,CAAkC,CAAA;AACxH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,eAAmD;IACzF,MAAM,SAAS,GAAG,eAAe,CAAC,SAAmB,CAAA;IACrD,OAAQ,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,SAAS,CAA0B,IAAI,EAAE,CAAA;AACtH,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { Controller, getControllerOptions, getControllerRoute } from './controller.decorator';
|
|
2
|
+
export { All, Delete, Get, getHttpDecoratedMethods, getHttpRouteMetadata, Patch, Post, Put } from './http-method.decorator';
|
|
2
3
|
export { getDecoratedMethods, getRouteConfig, Route } from './route.decorator';
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/router/decorators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAAE,oBAAoB,EAAE,kBAAkB,EACrD,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/router/decorators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAAE,oBAAoB,EAAE,kBAAkB,EACrD,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAC3H,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { Controller, getControllerOptions, getControllerRoute } from './controller.decorator';
|
|
2
|
+
export { All, Delete, Get, getHttpDecoratedMethods, getHttpRouteMetadata, Patch, Post, Put } from './http-method.decorator';
|
|
2
3
|
export { getDecoratedMethods, getRouteConfig, Route } from './route.decorator';
|
|
3
4
|
// Guards are now exported from core/guards module
|
|
4
5
|
// Use: import { UseGuards, AuthGuard } from 'stratal/guards'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/router/decorators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAAE,oBAAoB,EAAE,kBAAkB,EACrD,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE9E,kDAAkD;AAClD,6DAA6D"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/router/decorators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAAE,oBAAoB,EAAE,kBAAkB,EACrD,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAC3H,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE9E,kDAAkD;AAClD,6DAA6D"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { RouteConfig } from '../types';
|
|
2
2
|
/**
|
|
3
|
-
* Decorator to add OpenAPI metadata to a controller method
|
|
3
|
+
* Decorator to add OpenAPI metadata to a controller method using convention-based routing.
|
|
4
|
+
*
|
|
5
|
+
* **Cannot be mixed with HTTP method decorators** (`@Get`, `@Post`, `@Put`, `@Patch`,
|
|
6
|
+
* `@Delete`, `@All`) in the same controller. Use one pattern or the other.
|
|
4
7
|
*
|
|
5
8
|
* Stores route configuration (schemas, response, tags, security) in metadata.
|
|
6
9
|
* HTTP method, path, and success status code are auto-derived from the method name:
|
|
@@ -68,7 +71,7 @@ import type { RouteConfig } from '../types';
|
|
|
68
71
|
* }
|
|
69
72
|
* ```
|
|
70
73
|
*/
|
|
71
|
-
export declare function Route(config: RouteConfig): (target: object, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
74
|
+
export declare function Route(config: Omit<RouteConfig, 'statusCode'>): (target: object, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
72
75
|
/**
|
|
73
76
|
* Get the route configuration from a controller method
|
|
74
77
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.decorator.d.ts","sourceRoot":"","sources":["../../../src/router/decorators/route.decorator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C
|
|
1
|
+
{"version":3,"file":"route.decorator.d.ts","sourceRoot":"","sources":["../../../src/router/decorators/route.decorator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,IAEzD,QAAQ,MAAM,EACd,aAAa,MAAM,EACnB,YAAY,kBAAkB,wBAYjC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE1F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,MAAM,GAAG,MAAM,EAAE,CASjG"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { ROUTE_METADATA_KEYS } from '../constants';
|
|
2
2
|
/**
|
|
3
|
-
* Decorator to add OpenAPI metadata to a controller method
|
|
3
|
+
* Decorator to add OpenAPI metadata to a controller method using convention-based routing.
|
|
4
|
+
*
|
|
5
|
+
* **Cannot be mixed with HTTP method decorators** (`@Get`, `@Post`, `@Put`, `@Patch`,
|
|
6
|
+
* `@Delete`, `@All`) in the same controller. Use one pattern or the other.
|
|
4
7
|
*
|
|
5
8
|
* Stores route configuration (schemas, response, tags, security) in metadata.
|
|
6
9
|
* HTTP method, path, and success status code are auto-derived from the method name:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.decorator.js","sourceRoot":"","sources":["../../../src/router/decorators/route.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGlD
|
|
1
|
+
{"version":3,"file":"route.decorator.js","sourceRoot":"","sources":["../../../src/router/decorators/route.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,MAAM,UAAU,KAAK,CAAC,MAAuC;IAC3D,OAAO,UACL,MAAc,EACd,WAAmB,EACnB,UAA8B;QAE9B,4CAA4C;QAC5C,OAAO,CAAC,cAAc,CACpB,mBAAmB,CAAC,YAAY,EAChC,MAAM,EACN,MAAM,EACN,WAAW,CACZ,CAAA;QAED,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,UAAkB;IAC/D,OAAO,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,CAA4B,CAAA;AAC7G,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,eAAmD;IACrF,MAAM,SAAS,GAAG,eAAe,CAAC,SAAoC,CAAA;IACtE,MAAM,WAAW,GAAG,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,MAAM,CAC9D,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,aAAa,IAAI,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,UAAU,CACxE,CAAA;IAED,OAAO,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CACrC,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC,CAC7E,CAAA;AACH,CAAC"}
|