stratal 0.0.12 → 0.0.13

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 (82) hide show
  1. package/README.md +1 -1
  2. package/dist/application.js +1 -1
  3. package/dist/application.js.map +1 -1
  4. package/dist/errors/application-error.d.ts +4 -3
  5. package/dist/errors/application-error.d.ts.map +1 -1
  6. package/dist/errors/application-error.js +12 -7
  7. package/dist/errors/application-error.js.map +1 -1
  8. package/dist/errors/error-codes.d.ts +4 -0
  9. package/dist/errors/error-codes.d.ts.map +1 -1
  10. package/dist/errors/error-codes.js +4 -0
  11. package/dist/errors/error-codes.js.map +1 -1
  12. package/dist/i18n/messages/en/errors.d.ts +2 -0
  13. package/dist/i18n/messages/en/errors.d.ts.map +1 -1
  14. package/dist/i18n/messages/en/errors.js +3 -0
  15. package/dist/i18n/messages/en/errors.js.map +1 -1
  16. package/dist/openapi/index.d.ts +1 -1
  17. package/dist/openapi/index.d.ts.map +1 -1
  18. package/dist/openapi/index.js.map +1 -1
  19. package/dist/openapi/openapi.module.d.ts.map +1 -1
  20. package/dist/openapi/openapi.module.js +0 -1
  21. package/dist/openapi/openapi.module.js.map +1 -1
  22. package/dist/openapi/services/openapi-config.service.js +1 -1
  23. package/dist/openapi/services/openapi-config.service.js.map +1 -1
  24. package/dist/openapi/services/openapi.service.d.ts.map +1 -1
  25. package/dist/openapi/services/openapi.service.js +16 -13
  26. package/dist/openapi/services/openapi.service.js.map +1 -1
  27. package/dist/openapi/types.d.ts +26 -3
  28. package/dist/openapi/types.d.ts.map +1 -1
  29. package/dist/router/constants.d.ts +8 -0
  30. package/dist/router/constants.d.ts.map +1 -1
  31. package/dist/router/constants.js +9 -1
  32. package/dist/router/constants.js.map +1 -1
  33. package/dist/router/hono-app.d.ts +1 -1
  34. package/dist/router/hono-app.d.ts.map +1 -1
  35. package/dist/router/hono-app.js +2 -2
  36. package/dist/router/hono-app.js.map +1 -1
  37. package/dist/router/index.d.ts +3 -1
  38. package/dist/router/index.d.ts.map +1 -1
  39. package/dist/router/index.js.map +1 -1
  40. package/dist/router/router-context.d.ts +29 -3
  41. package/dist/router/router-context.d.ts.map +1 -1
  42. package/dist/router/router-context.js +34 -0
  43. package/dist/router/router-context.js.map +1 -1
  44. package/dist/router/services/route-registration.service.d.ts +14 -1
  45. package/dist/router/services/route-registration.service.d.ts.map +1 -1
  46. package/dist/router/services/route-registration.service.js +116 -9
  47. package/dist/router/services/route-registration.service.js.map +1 -1
  48. package/dist/router/types.d.ts +25 -7
  49. package/dist/router/types.d.ts.map +1 -1
  50. package/dist/websocket/decorators/gateway.decorator.d.ts +39 -0
  51. package/dist/websocket/decorators/gateway.decorator.d.ts.map +1 -0
  52. package/dist/websocket/decorators/gateway.decorator.js +55 -0
  53. package/dist/websocket/decorators/gateway.decorator.js.map +1 -0
  54. package/dist/websocket/decorators/index.d.ts +3 -0
  55. package/dist/websocket/decorators/index.d.ts.map +1 -0
  56. package/dist/websocket/decorators/index.js +3 -0
  57. package/dist/websocket/decorators/index.js.map +1 -0
  58. package/dist/websocket/decorators/ws-event.decorator.d.ts +59 -0
  59. package/dist/websocket/decorators/ws-event.decorator.d.ts.map +1 -0
  60. package/dist/websocket/decorators/ws-event.decorator.js +94 -0
  61. package/dist/websocket/decorators/ws-event.decorator.js.map +1 -0
  62. package/dist/websocket/errors/websocket-body-not-available.error.d.ts +5 -0
  63. package/dist/websocket/errors/websocket-body-not-available.error.d.ts.map +1 -0
  64. package/dist/websocket/errors/websocket-body-not-available.error.js +7 -0
  65. package/dist/websocket/errors/websocket-body-not-available.error.js.map +1 -0
  66. package/dist/websocket/errors/websocket-duplicate-event-handler.error.d.ts +5 -0
  67. package/dist/websocket/errors/websocket-duplicate-event-handler.error.d.ts.map +1 -0
  68. package/dist/websocket/errors/websocket-duplicate-event-handler.error.js +7 -0
  69. package/dist/websocket/errors/websocket-duplicate-event-handler.error.js.map +1 -0
  70. package/dist/websocket/gateway-context.d.ts +51 -0
  71. package/dist/websocket/gateway-context.d.ts.map +1 -0
  72. package/dist/websocket/gateway-context.js +66 -0
  73. package/dist/websocket/gateway-context.js.map +1 -0
  74. package/dist/websocket/index.d.ts +7 -0
  75. package/dist/websocket/index.d.ts.map +1 -0
  76. package/dist/websocket/index.js +5 -0
  77. package/dist/websocket/index.js.map +1 -0
  78. package/dist/websocket/types.d.ts +7 -0
  79. package/dist/websocket/types.d.ts.map +1 -0
  80. package/dist/websocket/types.js +2 -0
  81. package/dist/websocket/types.js.map +1 -0
  82. package/package.json +6 -2
@@ -1,8 +1,10 @@
1
1
  export type { IController } from './controller';
2
2
  export type { Middleware } from './middleware.interface';
3
- export type { ControllerOptions, HttpRouteMetadata, RouteConfig, RouterEnv, RouteResponse, RouterVariables, SecurityScheme, VersioningOptions } from './types';
3
+ export type { ControllerOptions, HttpRouteMetadata, RouteBody, RouteBodyObject, RouteConfig, RouterEnv, RouteResponse, RouteResponseObject, RouterVariables, SecurityScheme, VersioningOptions } from './types';
4
4
  export { HTTP_METHODS, ROUTE_METADATA_KEYS, ROUTER_CONTEXT_KEYS, SECURITY_SCHEMES, VERSION_NEUTRAL } from './constants';
5
5
  export { RouterContext } from './router-context';
6
+ export type { SSEMessage, SSEStreamingApi } from 'hono/streaming';
7
+ export type { StreamingApi } from 'hono/utils/stream';
6
8
  export { HonoApp } from './hono-app';
7
9
  export { RouteRegistrationService } from './services';
8
10
  export { ROUTER_TOKENS } from './router.tokens';
@@ -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,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
+ {"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,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAG/M,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAGvH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGhD,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,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 +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,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"}
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;AAMhD,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"}
@@ -1,8 +1,10 @@
1
1
  import type { Context } from 'hono';
2
- import { type ContentfulStatusCode, type RedirectStatusCode } from 'hono/utils/http-status';
2
+ import type { SSEStreamingApi } from 'hono/streaming';
3
+ import type { ContentfulStatusCode, RedirectStatusCode } from 'hono/utils/http-status';
4
+ import type { StreamingApi } from 'hono/utils/stream';
3
5
  import type { Container } from '../di/container';
4
6
  import type { RouterEnv } from './types';
5
- type ContextQueryResult<R extends Record<string, unknown> | undefined, K extends string | undefined> = K extends string ? string : R;
7
+ export type ContextQueryResult<R extends Record<string, unknown> | undefined, K extends string | undefined> = K extends string ? string : R extends undefined ? Record<string, unknown> : R;
6
8
  /**
7
9
  * Router context wrapper with helper methods
8
10
  *
@@ -112,6 +114,30 @@ export declare class RouterContext<T extends RouterEnv = RouterEnv> {
112
114
  * @param status - HTTP status code (default: 302)
113
115
  */
114
116
  redirect(url: string, status?: RedirectStatusCode): Response;
117
+ /**
118
+ * Return a streaming response (binary/generic)
119
+ *
120
+ * @param callback - Async function that writes to the stream
121
+ * @param onError - Optional error handler called if an error occurs during streaming
122
+ */
123
+ stream(callback: (stream: StreamingApi) => Promise<void>, onError?: (err: Error, stream: StreamingApi) => Promise<void>): Response;
124
+ /**
125
+ * Return a streaming text response
126
+ *
127
+ * Automatically sets `Content-Encoding: Identity` for Cloudflare Workers compatibility.
128
+ *
129
+ * @param callback - Async function that writes text to the stream
130
+ * @param onError - Optional error handler called if an error occurs during streaming
131
+ */
132
+ streamText(callback: (stream: StreamingApi) => Promise<void>, onError?: (err: Error, stream: StreamingApi) => Promise<void>): Response;
133
+ /**
134
+ * Return a Server-Sent Events (SSE) streaming response
135
+ *
136
+ * Automatically sets `Content-Encoding: Identity` for Cloudflare Workers compatibility.
137
+ *
138
+ * @param callback - Async function that writes SSE events to the stream
139
+ * @param onError - Optional error handler called if an error occurs during streaming
140
+ */
141
+ streamSSE(callback: (stream: SSEStreamingApi) => Promise<void>, onError?: (err: Error, stream: SSEStreamingApi) => Promise<void>): Response;
115
142
  }
116
- export {};
117
143
  //# sourceMappingURL=router-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"router-context.d.ts","sourceRoot":"","sources":["../../src/router/router-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,CAAC,SAAS,MAAM,GAAG,SAAS,IAAI,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,CAAC,CAAA;AAEpI;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;aAMtC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAL/B;;;OAGG;gBAEe,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAG/B;;;;;OAKG;IACH,YAAY,IAAI,SAAS;IAQzB;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B;;;;OAIG;IACH,SAAS,IAAI,MAAM;IAKnB;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,oBAAoB,GAAG,QAAQ;IAI3D;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAI1B;;;;OAIG;IACH,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IAK7I;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxC;;;;;OAKG;IACH,IAAI,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;IAMrB;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,oBAAoB,GAAG,QAAQ;IAI3D;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,oBAAoB,GAAG,QAAQ;IAI3D;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,QAAQ;CAG7D"}
1
+ {"version":3,"file":"router-context.d.ts","sourceRoot":"","sources":["../../src/router/router-context.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { stream as honoStream, streamSSE as honoStreamSSE, streamText as honoStreamText } from 'hono/streaming';
1
2
  import { RequestContainerNotInitializedError } from '../errors';
2
3
  import { ROUTER_CONTEXT_KEYS } from './constants';
3
4
  /**
@@ -141,5 +142,38 @@ export class RouterContext {
141
142
  redirect(url, status) {
142
143
  return this.c.redirect(url, status);
143
144
  }
145
+ /**
146
+ * Return a streaming response (binary/generic)
147
+ *
148
+ * @param callback - Async function that writes to the stream
149
+ * @param onError - Optional error handler called if an error occurs during streaming
150
+ */
151
+ stream(callback, onError) {
152
+ return honoStream(this.c, callback, onError);
153
+ }
154
+ /**
155
+ * Return a streaming text response
156
+ *
157
+ * Automatically sets `Content-Encoding: Identity` for Cloudflare Workers compatibility.
158
+ *
159
+ * @param callback - Async function that writes text to the stream
160
+ * @param onError - Optional error handler called if an error occurs during streaming
161
+ */
162
+ streamText(callback, onError) {
163
+ this.c.header('Content-Encoding', 'Identity');
164
+ return honoStreamText(this.c, callback, onError);
165
+ }
166
+ /**
167
+ * Return a Server-Sent Events (SSE) streaming response
168
+ *
169
+ * Automatically sets `Content-Encoding: Identity` for Cloudflare Workers compatibility.
170
+ *
171
+ * @param callback - Async function that writes SSE events to the stream
172
+ * @param onError - Optional error handler called if an error occurs during streaming
173
+ */
174
+ streamSSE(callback, onError) {
175
+ this.c.header('Content-Encoding', 'Identity');
176
+ return honoStreamSSE(this.c, callback, onError);
177
+ }
144
178
  }
145
179
  //# sourceMappingURL=router-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router-context.js","sourceRoot":"","sources":["../../src/router/router-context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mCAAmC,EAAE,MAAM,WAAW,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAKjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,aAAa;IAMN;IALlB;;;OAGG;IACH,YACkB,CAAa;QAAb,MAAC,GAAD,CAAC,CAAY;IAC3B,CAAC;IAEL;;;;;OAKG;IACH,YAAY;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAA;QACnE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,mCAAmC,EAAE,CAAA;QACjD,CAAC;QACD,OAAO,SAAsB,CAAA;IAC/B,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;QACrD,OAAQ,MAAiB,IAAI,IAAI,CAAA;IACnC,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,IAAY,EAAE,MAA6B;QAC9C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAW;QACf,OAAQ,IAAI,CAAC,CAAC,CAAC,GAAqE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;IAC1G,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAsG,GAAO;QAChH,MAAM,SAAS,GAAI,IAAI,CAAC,CAAC,CAAC,GAAsE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC/G,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAA6B,CAAC,CAAC,CAAC,SAAqC,CAAA;IACjG,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACH,IAAI;QACF,mEAAmE;QACnE,mEAAmE;QACnE,OAAQ,IAAI,CAAC,CAAC,CAAC,GAAwD,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACvF,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,IAAY,EAAE,MAA6B;QAC9C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClC,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,IAAY,EAAE,MAA6B;QAC9C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClC,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,GAAW,EAAE,MAA2B;QAC/C,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACrC,CAAC;CACF"}
1
+ {"version":3,"file":"router-context.js","sourceRoot":"","sources":["../../src/router/router-context.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,16 @@ export declare class RouteRegistrationService {
25
25
  * @param app - OpenAPIHono application instance
26
26
  * @param controllers - Array of controller classes from modules
27
27
  */
28
- configure(app: OpenAPIHono<RouterEnv>, controllers: Constructor<IController>[]): void;
28
+ configure(app: OpenAPIHono<RouterEnv>, controllers: Constructor<IController>[]): Promise<void>;
29
+ /**
30
+ * Register a WebSocket gateway
31
+ * Applies versioning and guards, then registers an upgradeWebSocket handler
32
+ */
33
+ private registerGateway;
34
+ /**
35
+ * Register a single WebSocket gateway route
36
+ */
37
+ private registerGatewayRoute;
29
38
  /**
30
39
  * Register a single controller with all its routes
31
40
  * Validates that controller has access decorator (strict mode)
@@ -98,6 +107,10 @@ export declare class RouteRegistrationService {
98
107
  * Execution order: Global middlewares → Guards → Handler
99
108
  */
100
109
  private buildOpenAPIRoute;
110
+ /**
111
+ * Check if a body definition is a RouteBodyObject (has schema key) vs bare ZodType
112
+ */
113
+ private isRouteBodyObject;
101
114
  /**
102
115
  * Resolve method parameter injections from the container
103
116
  *
@@ -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;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"}
1
+ {"version":3,"file":"route-registration.service.d.ts","sourceRoot":"","sources":["../../../src/router/services/route-registration.service.ts"],"names":[],"mappings":"AASA,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;AAI9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAgBhD,OAAO,KAAK,EAMV,SAAS,EAET,iBAAiB,EAClB,MAAM,UAAU,CAAA;AAUjB;;;;;;;;;;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;IACG,SAAS,CACb,GAAG,EAAE,WAAW,CAAC,SAAS,CAAC,EAC3B,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,GACtC,OAAO,CAAC,IAAI,CAAC;IAyChB;;;OAGG;YACW,eAAe;IAoB7B;;OAEG;YACW,oBAAoB;IA4ElC;;;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;IAuHzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;CAsChC"}
@@ -1,12 +1,21 @@
1
1
  import { getMethodInjections } from '../../di';
2
2
  import { getControllerGuards, getMethodGuards, GuardExecutionService, } from '../../guards';
3
3
  import { createRoute } from '../../i18n/validation';
4
- import { HTTP_METHODS, METHOD_STATUS_CODES, SECURITY_SCHEMES } from '../constants';
5
- import { getControllerOptions, getControllerRoute, getDecoratedMethods, getHttpDecoratedMethods, getHttpRouteMetadata, getRouteConfig } from '../decorators';
4
+ import { getWsOnCloseMethod, getWsOnErrorMethod, getWsOnMessageMethod, isGateway } from '../../websocket/decorators';
5
+ import { GatewayContext } from '../../websocket/gateway-context';
6
+ import { DEFAULT_CONTENT_TYPE, HTTP_METHODS, METHOD_STATUS_CODES, SECURITY_SCHEMES, VERSION_NEUTRAL } from '../constants';
7
+ import { getControllerOptions, getControllerRoute, getDecoratedMethods, getHttpDecoratedMethods, getHttpRouteMetadata, getRouteConfig, } from '../decorators';
6
8
  import { ControllerMethodNotFoundError, ControllerRegistrationError, OpenAPIRouteRegistrationError, } from '../errors';
7
9
  import { RouterContext } from '../router-context';
8
10
  import { commonErrorSchemas } from '../schemas/common.schemas';
9
- import { VERSION_NEUTRAL } from '../constants';
11
+ const invokeHandler = (instance, method, ...args) => {
12
+ try {
13
+ return Promise.resolve(instance[method](...args));
14
+ }
15
+ catch (err) {
16
+ return Promise.reject(err);
17
+ }
18
+ };
10
19
  /**
11
20
  * Route registration service
12
21
  * Manages controller and route registration with OpenAPI support
@@ -32,7 +41,7 @@ export class RouteRegistrationService {
32
41
  * @param app - OpenAPIHono application instance
33
42
  * @param controllers - Array of controller classes from modules
34
43
  */
35
- configure(app, controllers) {
44
+ async configure(app, controllers) {
36
45
  this.logger.info('Registering controllers', {
37
46
  controllerCount: controllers.length,
38
47
  });
@@ -48,12 +57,101 @@ export class RouteRegistrationService {
48
57
  return -1; // a goes before b
49
58
  return 0; // maintain relative order
50
59
  });
60
+ // Single-pass partition: gateways vs regular controllers
61
+ const gateways = [];
62
+ const regulars = [];
63
+ for (const c of sortedControllers) {
64
+ if (isGateway(c)) {
65
+ gateways.push(c);
66
+ }
67
+ else {
68
+ regulars.push(c);
69
+ }
70
+ }
71
+ // Register WebSocket gateways
72
+ for (const GatewayClass of gateways) {
73
+ await this.registerGateway(app, GatewayClass);
74
+ }
51
75
  // Register controllers
52
- for (const ControllerClass of sortedControllers) {
76
+ for (const ControllerClass of regulars) {
53
77
  this.registerController(app, ControllerClass);
54
78
  }
55
79
  this.logger.info('Controller registration complete');
56
80
  }
81
+ /**
82
+ * Register a WebSocket gateway
83
+ * Applies versioning and guards, then registers an upgradeWebSocket handler
84
+ */
85
+ async registerGateway(app, GatewayClass) {
86
+ const route = getControllerRoute(GatewayClass);
87
+ if (!route) {
88
+ throw new ControllerRegistrationError(GatewayClass.name, 'Missing @Gateway decorator or route metadata');
89
+ }
90
+ const controllerOpts = getControllerOptions(GatewayClass);
91
+ const paths = this.versioningOptions
92
+ ? this.resolveVersionedPaths(route, controllerOpts)
93
+ : [route];
94
+ for (const fullPath of paths) {
95
+ await this.registerGatewayRoute(app, GatewayClass, fullPath);
96
+ }
97
+ }
98
+ /**
99
+ * Register a single WebSocket gateway route
100
+ */
101
+ async registerGatewayRoute(app, GatewayClass, fullPath) {
102
+ // Collect class-level guards
103
+ const controllerGuards = getControllerGuards(GatewayClass)?.guards ?? [];
104
+ // Dynamic import: only load hono/cloudflare-workers when gateways exist
105
+ const { upgradeWebSocket } = await import('hono/cloudflare-workers');
106
+ // Cache WS metadata once at registration time (not per-connection)
107
+ const onMsgMethod = getWsOnMessageMethod(GatewayClass);
108
+ const onCloseMethod = getWsOnCloseMethod(GatewayClass);
109
+ const onErrMethod = getWsOnErrorMethod(GatewayClass);
110
+ const wsHandler = upgradeWebSocket((c) => {
111
+ const routerCtx = new RouterContext(c);
112
+ const container = routerCtx.getContainer();
113
+ const gateway = container.resolve(GatewayClass);
114
+ // Cloudflare Workers doesn't support the `onOpen` WebSocket event;
115
+ // the upgrade callback itself serves as the open context.
116
+ const events = {};
117
+ const bindWsHandler = (method, onCatch) => {
118
+ return (evt, ws) => {
119
+ const ctx = new GatewayContext(c, ws);
120
+ c.executionCtx.waitUntil(invokeHandler(gateway, method, evt, ctx).catch((err) => {
121
+ this.logger.error(`WebSocket ${method} handler error`, { gateway: GatewayClass.name, error: err instanceof Error ? err.message : String(err) });
122
+ onCatch?.(err, ws);
123
+ }));
124
+ };
125
+ };
126
+ if (onMsgMethod) {
127
+ events.onMessage = bindWsHandler(onMsgMethod, (_err, ws) => ws.close(1011, 'Internal Error'));
128
+ }
129
+ if (onCloseMethod) {
130
+ events.onClose = bindWsHandler(onCloseMethod);
131
+ }
132
+ if (onErrMethod) {
133
+ events.onError = bindWsHandler(onErrMethod);
134
+ }
135
+ return events;
136
+ });
137
+ this.logger.info('Registering WebSocket gateway', {
138
+ gateway: GatewayClass.name,
139
+ path: fullPath,
140
+ });
141
+ const handlers = [];
142
+ if (controllerGuards.length > 0) {
143
+ this.logger.info('Gateway guards', {
144
+ gateway: GatewayClass.name,
145
+ path: fullPath,
146
+ guardCount: controllerGuards.length,
147
+ });
148
+ handlers.push(this.createGuardMiddleware(controllerGuards));
149
+ }
150
+ handlers.push(wsHandler);
151
+ // Type assertion needed because Hono's overloaded .get() signatures
152
+ // don't accept a spread of MiddlewareHandler[] alongside upgradeWebSocket's output type
153
+ app.get(fullPath, ...handlers);
154
+ }
57
155
  /**
58
156
  * Register a single controller with all its routes
59
157
  * Validates that controller has access decorator (strict mode)
@@ -458,12 +556,14 @@ export class RouteRegistrationService {
458
556
  }
459
557
  // Add request body if defined
460
558
  if (routeConfig.body) {
559
+ const bodySchema = this.isRouteBodyObject(routeConfig.body) ? routeConfig.body.schema : routeConfig.body;
560
+ const bodyContentType = this.isRouteBodyObject(routeConfig.body) ? routeConfig.body.contentType ?? DEFAULT_CONTENT_TYPE : DEFAULT_CONTENT_TYPE;
461
561
  route.request = {
462
562
  ...route.request,
463
563
  body: {
464
564
  content: {
465
- 'application/json': {
466
- schema: routeConfig.body,
565
+ [bodyContentType]: {
566
+ schema: bodySchema,
467
567
  },
468
568
  },
469
569
  },
@@ -494,9 +594,10 @@ export class RouteRegistrationService {
494
594
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- response may be undefined at runtime
495
595
  if (responseDef) {
496
596
  if (typeof responseDef === 'object' && 'schema' in responseDef) {
597
+ const responseContentType = responseDef.contentType ?? DEFAULT_CONTENT_TYPE;
497
598
  responses[successStatus] = {
498
599
  content: {
499
- 'application/json': { schema: responseDef.schema },
600
+ [responseContentType]: { schema: responseDef.schema },
500
601
  },
501
602
  description: responseDef.description ?? `Response ${successStatus}`,
502
603
  };
@@ -504,7 +605,7 @@ export class RouteRegistrationService {
504
605
  else {
505
606
  responses[successStatus] = {
506
607
  content: {
507
- 'application/json': { schema: responseDef },
608
+ [DEFAULT_CONTENT_TYPE]: { schema: responseDef },
508
609
  },
509
610
  description: `Response ${successStatus}`,
510
611
  };
@@ -539,6 +640,12 @@ export class RouteRegistrationService {
539
640
  throw new OpenAPIRouteRegistrationError(path, error instanceof Error ? error.message : String(error));
540
641
  }
541
642
  }
643
+ /**
644
+ * Check if a body definition is a RouteBodyObject (has schema key) vs bare ZodType
645
+ */
646
+ isRouteBodyObject(body) {
647
+ return typeof body === 'object' && 'schema' in body;
648
+ }
542
649
  /**
543
650
  * Resolve method parameter injections from the container
544
651
  *
@@ -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,6 +1,6 @@
1
- import type { ZodObject, ZodPipe, ZodType, RouteConfig as OpenAPIRouteConfig } from '../i18n/validation';
2
- import { type StratalEnv } from '../env';
3
1
  import type { Container } from '../di';
2
+ import { type StratalEnv } from '../env';
3
+ import type { RouteConfig as OpenAPIRouteConfig, ZodObject, ZodPipe, ZodType } from '../i18n/validation';
4
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
@@ -46,13 +46,30 @@ export type SecuritySchemeRecord = Record<SecurityScheme, string[]>;
46
46
  */
47
47
  export type { OpenAPIRouteConfig };
48
48
  /**
49
- * Single response definition for @Route() decorator
50
- * Status code is auto-derived from method name (create->201, others->200)
49
+ * Object form for request body with optional content type
51
50
  */
52
- export type RouteResponse = ZodType | {
51
+ export interface RouteBodyObject {
52
+ schema: ZodType;
53
+ contentType?: string;
54
+ }
55
+ /**
56
+ * Request body definition for @Route() decorator
57
+ * Bare ZodType defaults to application/json
58
+ */
59
+ export type RouteBody = ZodType | RouteBodyObject;
60
+ /**
61
+ * Object form for response with optional description and content type
62
+ */
63
+ export interface RouteResponseObject {
53
64
  schema: ZodType;
54
65
  description?: string;
55
- };
66
+ contentType?: string;
67
+ }
68
+ /**
69
+ * Single response definition for @Route() decorator
70
+ * Status code is auto-derived from method name (create->201, others->200)
71
+ */
72
+ export type RouteResponse = ZodType | RouteResponseObject;
56
73
  /**
57
74
  * Route configuration for @Route() decorator
58
75
  * Defines OpenAPI metadata for a controller method
@@ -60,8 +77,9 @@ export type RouteResponse = ZodType | {
60
77
  export interface RouteConfig {
61
78
  /**
62
79
  * Request body schema (for POST, PUT, PATCH)
80
+ * @example z.object({}) or { schema: z.object({}), contentType: 'multipart/form-data' }
63
81
  */
64
- body?: ZodType;
82
+ body?: RouteBody;
65
83
  /**
66
84
  * URL parameters schema (e.g., { id: z.string().uuid() })
67
85
  * Must be ZodObject or ZodPipe for OpenAPI compatibility
@@ -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,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAEtH;;;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,GAAG,KAAK,CAAA;AAE3G;;;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;IAEtB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,WAAW,CAAA;CACpB;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;IAEtB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,eAAe,CAAA;CACrD;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACnC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { type Constructor } from '../../types';
2
+ import type { GatewayOptions } from '../../websocket/types';
3
+ /**
4
+ * Gateway decorator for WebSocket route registration
5
+ *
6
+ * Marks a class as a WebSocket gateway and stores route metadata.
7
+ * Reuses the same metadata key as @Controller for middleware compatibility —
8
+ * `getControllerRoute()`, `forRoutes()`, and the entire middleware system work
9
+ * with zero changes.
10
+ *
11
+ * @param route - WebSocket route path (e.g., '/ws/chat')
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { type GatewayContext, Gateway, OnMessage, OnClose } from 'stratal/websocket'
16
+ *
17
+ * @Gateway('/ws/chat')
18
+ * class ChatGateway {
19
+ * @OnMessage()
20
+ * handleMessage(evt: MessageEvent, ctx: GatewayContext) {
21
+ * ctx.send('ack')
22
+ * }
23
+ *
24
+ * @OnClose()
25
+ * handleClose(evt: CloseEvent, ctx: GatewayContext) {
26
+ * console.log('closed')
27
+ * }
28
+ * }
29
+ * ```
30
+ */
31
+ export declare function Gateway(route: string, options?: GatewayOptions): <T extends Constructor>(target: T) => T;
32
+ /**
33
+ * Check if a class is a WebSocket gateway
34
+ *
35
+ * @param target - Class constructor or instance
36
+ * @returns true if the class is decorated with @Gateway
37
+ */
38
+ export declare function isGateway(target: object): boolean;
39
+ //# sourceMappingURL=gateway.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.decorator.d.ts","sourceRoot":"","sources":["../../../src/websocket/decorators/gateway.decorator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAM3D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,IAC5C,CAAC,SAAS,WAAW,EAAE,QAAQ,CAAC,OASlD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGjD"}
@@ -0,0 +1,55 @@
1
+ import { Transient } from '../../di/decorators';
2
+ import { ROUTE_METADATA_KEYS } from '../../router/constants';
3
+ const CONTROLLER_ROUTE_KEY = ROUTE_METADATA_KEYS.CONTROLLER_ROUTE;
4
+ const CONTROLLER_OPTIONS_KEY = ROUTE_METADATA_KEYS.CONTROLLER_OPTIONS;
5
+ const GATEWAY_MARKER_KEY = ROUTE_METADATA_KEYS.GATEWAY_MARKER;
6
+ /**
7
+ * Gateway decorator for WebSocket route registration
8
+ *
9
+ * Marks a class as a WebSocket gateway and stores route metadata.
10
+ * Reuses the same metadata key as @Controller for middleware compatibility —
11
+ * `getControllerRoute()`, `forRoutes()`, and the entire middleware system work
12
+ * with zero changes.
13
+ *
14
+ * @param route - WebSocket route path (e.g., '/ws/chat')
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { type GatewayContext, Gateway, OnMessage, OnClose } from 'stratal/websocket'
19
+ *
20
+ * @Gateway('/ws/chat')
21
+ * class ChatGateway {
22
+ * @OnMessage()
23
+ * handleMessage(evt: MessageEvent, ctx: GatewayContext) {
24
+ * ctx.send('ack')
25
+ * }
26
+ *
27
+ * @OnClose()
28
+ * handleClose(evt: CloseEvent, ctx: GatewayContext) {
29
+ * console.log('closed')
30
+ * }
31
+ * }
32
+ * ```
33
+ */
34
+ export function Gateway(route, options) {
35
+ return function (target) {
36
+ Transient()(target);
37
+ Reflect.defineMetadata(CONTROLLER_ROUTE_KEY, route, target);
38
+ Reflect.defineMetadata(GATEWAY_MARKER_KEY, true, target);
39
+ if (options) {
40
+ Reflect.defineMetadata(CONTROLLER_OPTIONS_KEY, options, target);
41
+ }
42
+ return target;
43
+ };
44
+ }
45
+ /**
46
+ * Check if a class is a WebSocket gateway
47
+ *
48
+ * @param target - Class constructor or instance
49
+ * @returns true if the class is decorated with @Gateway
50
+ */
51
+ export function isGateway(target) {
52
+ const metadataTarget = typeof target === 'function' ? target : target.constructor;
53
+ return Reflect.getMetadata(GATEWAY_MARKER_KEY, metadataTarget) === true;
54
+ }
55
+ //# sourceMappingURL=gateway.decorator.js.map