exisjs 0.7.6 → 0.7.8

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 (211) hide show
  1. package/dist/cli/commands/build.d.ts.map +1 -1
  2. package/dist/cli/commands/build.js +12 -0
  3. package/dist/cli/commands/build.js.map +1 -1
  4. package/dist/cli/commands/clean.d.ts +5 -0
  5. package/dist/cli/commands/clean.d.ts.map +1 -0
  6. package/dist/cli/commands/clean.js +30 -0
  7. package/dist/cli/commands/clean.js.map +1 -0
  8. package/dist/cli/commands/dev.d.ts.map +1 -1
  9. package/dist/cli/commands/dev.js +15 -1
  10. package/dist/cli/commands/dev.js.map +1 -1
  11. package/dist/cli/commands/generate.d.ts +6 -1
  12. package/dist/cli/commands/generate.d.ts.map +1 -1
  13. package/dist/cli/commands/generate.js +57 -2
  14. package/dist/cli/commands/generate.js.map +1 -1
  15. package/dist/cli/index.js +16 -2
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/cli/manifest.d.ts +1 -0
  18. package/dist/cli/manifest.d.ts.map +1 -1
  19. package/dist/cli/manifest.js +161 -23
  20. package/dist/cli/manifest.js.map +1 -1
  21. package/dist/config/config.d.ts.map +1 -1
  22. package/dist/config/config.js +9 -0
  23. package/dist/config/config.js.map +1 -1
  24. package/dist/config/types.d.ts +4 -0
  25. package/dist/config/types.d.ts.map +1 -1
  26. package/dist/cron/expressions.d.ts +45 -0
  27. package/dist/cron/expressions.d.ts.map +1 -0
  28. package/dist/cron/expressions.js +87 -0
  29. package/dist/cron/expressions.js.map +1 -0
  30. package/dist/cron/index.d.ts +6 -0
  31. package/dist/cron/index.d.ts.map +1 -0
  32. package/dist/cron/index.js +22 -0
  33. package/dist/cron/index.js.map +1 -0
  34. package/dist/cron/job.d.ts +50 -0
  35. package/dist/cron/job.d.ts.map +1 -0
  36. package/dist/cron/job.js +247 -0
  37. package/dist/cron/job.js.map +1 -0
  38. package/dist/cron/manager.d.ts +105 -0
  39. package/dist/cron/manager.d.ts.map +1 -0
  40. package/dist/cron/manager.js +245 -0
  41. package/dist/cron/manager.js.map +1 -0
  42. package/dist/cron/parser.d.ts +22 -0
  43. package/dist/cron/parser.d.ts.map +1 -0
  44. package/dist/cron/parser.js +269 -0
  45. package/dist/cron/parser.js.map +1 -0
  46. package/dist/cron/types.d.ts +76 -0
  47. package/dist/cron/types.d.ts.map +1 -0
  48. package/dist/cron/types.js +3 -0
  49. package/dist/cron/types.js.map +1 -0
  50. package/dist/decorators/constants.d.ts +2 -0
  51. package/dist/decorators/constants.d.ts.map +1 -1
  52. package/dist/decorators/constants.js +3 -1
  53. package/dist/decorators/constants.js.map +1 -1
  54. package/dist/decorators/core.d.ts +29 -11
  55. package/dist/decorators/core.d.ts.map +1 -1
  56. package/dist/decorators/core.js +49 -11
  57. package/dist/decorators/core.js.map +1 -1
  58. package/dist/decorators/cron.d.ts +57 -0
  59. package/dist/decorators/cron.d.ts.map +1 -0
  60. package/dist/decorators/cron.js +143 -0
  61. package/dist/decorators/cron.js.map +1 -0
  62. package/dist/decorators/index.d.ts +2 -0
  63. package/dist/decorators/index.d.ts.map +1 -1
  64. package/dist/decorators/index.js +2 -0
  65. package/dist/decorators/index.js.map +1 -1
  66. package/dist/decorators/params.d.ts +97 -2
  67. package/dist/decorators/params.d.ts.map +1 -1
  68. package/dist/decorators/params.js +94 -2
  69. package/dist/decorators/params.js.map +1 -1
  70. package/dist/decorators/routing.d.ts +81 -16
  71. package/dist/decorators/routing.d.ts.map +1 -1
  72. package/dist/decorators/routing.js +81 -16
  73. package/dist/decorators/routing.js.map +1 -1
  74. package/dist/docs/content/cron.mdx +196 -0
  75. package/dist/docs/content/errors.mdx +58 -9
  76. package/dist/docs/content/structure.mdx +1 -1
  77. package/dist/docs/content/swagger.mdx +289 -0
  78. package/dist/docs/reference/cron.mdx +300 -0
  79. package/dist/docs/reference/decorators.mdx +8 -0
  80. package/dist/docs/reference/error.mdx +44 -0
  81. package/dist/docs/reference/swagger.mdx +226 -0
  82. package/dist/docs/reference/validator.mdx +1 -1
  83. package/dist/router/boundary.d.ts +24 -2
  84. package/dist/router/boundary.d.ts.map +1 -1
  85. package/dist/router/boundary.js +24 -2
  86. package/dist/router/boundary.js.map +1 -1
  87. package/dist/router/controller-registrar.d.ts.map +1 -1
  88. package/dist/router/controller-registrar.js +52 -3
  89. package/dist/router/controller-registrar.js.map +1 -1
  90. package/dist/router/route-builder.d.ts +196 -33
  91. package/dist/router/route-builder.d.ts.map +1 -1
  92. package/dist/router/route-builder.js +171 -11
  93. package/dist/router/route-builder.js.map +1 -1
  94. package/dist/router/route-scanner.d.ts +6 -0
  95. package/dist/router/route-scanner.d.ts.map +1 -1
  96. package/dist/router/route-scanner.js +69 -812
  97. package/dist/router/route-scanner.js.map +1 -1
  98. package/dist/router/router.d.ts.map +1 -1
  99. package/dist/router/router.js +27 -0
  100. package/dist/router/router.js.map +1 -1
  101. package/dist/router/scanner/boundary-loader.d.ts +18 -0
  102. package/dist/router/scanner/boundary-loader.d.ts.map +1 -0
  103. package/dist/router/scanner/boundary-loader.js +539 -0
  104. package/dist/router/scanner/boundary-loader.js.map +1 -0
  105. package/dist/router/scanner/cron-mounter.d.ts +15 -0
  106. package/dist/router/scanner/cron-mounter.d.ts.map +1 -0
  107. package/dist/router/scanner/cron-mounter.js +216 -0
  108. package/dist/router/scanner/cron-mounter.js.map +1 -0
  109. package/dist/router/scanner/error-mounter.d.ts +14 -0
  110. package/dist/router/scanner/error-mounter.d.ts.map +1 -0
  111. package/dist/router/scanner/error-mounter.js +200 -0
  112. package/dist/router/scanner/error-mounter.js.map +1 -0
  113. package/dist/router/scanner/fs-scanner.d.ts +25 -0
  114. package/dist/router/scanner/fs-scanner.d.ts.map +1 -0
  115. package/dist/router/scanner/fs-scanner.js +115 -0
  116. package/dist/router/scanner/fs-scanner.js.map +1 -0
  117. package/dist/router/scanner/functional-compiler.d.ts +9 -0
  118. package/dist/router/scanner/functional-compiler.d.ts.map +1 -0
  119. package/dist/router/scanner/functional-compiler.js +233 -0
  120. package/dist/router/scanner/functional-compiler.js.map +1 -0
  121. package/dist/router/scanner/index.d.ts +9 -0
  122. package/dist/router/scanner/index.d.ts.map +1 -0
  123. package/dist/router/scanner/index.js +19 -0
  124. package/dist/router/scanner/index.js.map +1 -0
  125. package/dist/router/types.d.ts +15 -0
  126. package/dist/router/types.d.ts.map +1 -1
  127. package/dist/server/app.d.ts +2 -0
  128. package/dist/server/app.d.ts.map +1 -1
  129. package/dist/server/app.js +3 -0
  130. package/dist/server/app.js.map +1 -1
  131. package/dist/server/helpers/body-parser.d.ts +18 -0
  132. package/dist/server/helpers/body-parser.d.ts.map +1 -0
  133. package/dist/server/helpers/body-parser.js +246 -0
  134. package/dist/server/helpers/body-parser.js.map +1 -0
  135. package/dist/server/helpers/cookie.d.ts +4 -0
  136. package/dist/server/helpers/cookie.d.ts.map +1 -0
  137. package/dist/server/helpers/cookie.js +61 -0
  138. package/dist/server/helpers/cookie.js.map +1 -0
  139. package/dist/server/helpers/etag.d.ts +3 -0
  140. package/dist/server/helpers/etag.d.ts.map +1 -0
  141. package/dist/server/helpers/etag.js +25 -0
  142. package/dist/server/helpers/etag.js.map +1 -0
  143. package/dist/server/helpers/index.d.ts +6 -0
  144. package/dist/server/helpers/index.d.ts.map +1 -0
  145. package/dist/server/helpers/index.js +21 -0
  146. package/dist/server/helpers/index.js.map +1 -0
  147. package/dist/server/helpers/ip.d.ts +9 -0
  148. package/dist/server/helpers/ip.d.ts.map +1 -0
  149. package/dist/server/helpers/ip.js +62 -0
  150. package/dist/server/helpers/ip.js.map +1 -0
  151. package/dist/server/helpers/stream.d.ts +4 -0
  152. package/dist/server/helpers/stream.d.ts.map +1 -0
  153. package/dist/server/helpers/stream.js +193 -0
  154. package/dist/server/helpers/stream.js.map +1 -0
  155. package/dist/server/request.d.ts +1 -139
  156. package/dist/server/request.d.ts.map +1 -1
  157. package/dist/server/request.js +19 -433
  158. package/dist/server/request.js.map +1 -1
  159. package/dist/server/response.d.ts +105 -158
  160. package/dist/server/response.d.ts.map +1 -1
  161. package/dist/server/response.js +121 -423
  162. package/dist/server/response.js.map +1 -1
  163. package/dist/swagger/decorators.d.ts +81 -0
  164. package/dist/swagger/decorators.d.ts.map +1 -0
  165. package/dist/swagger/decorators.js +172 -0
  166. package/dist/swagger/decorators.js.map +1 -0
  167. package/dist/swagger/generator.d.ts +19 -0
  168. package/dist/swagger/generator.d.ts.map +1 -0
  169. package/dist/swagger/generator.js +344 -0
  170. package/dist/swagger/generator.js.map +1 -0
  171. package/dist/swagger/index.d.ts +31 -0
  172. package/dist/swagger/index.d.ts.map +1 -0
  173. package/dist/swagger/index.js +53 -0
  174. package/dist/swagger/index.js.map +1 -0
  175. package/dist/swagger/mounter.d.ts +7 -0
  176. package/dist/swagger/mounter.d.ts.map +1 -0
  177. package/dist/swagger/mounter.js +56 -0
  178. package/dist/swagger/mounter.js.map +1 -0
  179. package/dist/swagger/types.d.ts +190 -0
  180. package/dist/swagger/types.d.ts.map +1 -0
  181. package/dist/swagger/types.js +3 -0
  182. package/dist/swagger/types.js.map +1 -0
  183. package/dist/swagger/ui.d.ts +6 -0
  184. package/dist/swagger/ui.d.ts.map +1 -0
  185. package/dist/swagger/ui.js +118 -0
  186. package/dist/swagger/ui.js.map +1 -0
  187. package/dist/validator/builder.d.ts +223 -0
  188. package/dist/validator/builder.d.ts.map +1 -0
  189. package/dist/validator/builder.js +517 -0
  190. package/dist/validator/builder.js.map +1 -0
  191. package/dist/validator/engine.d.ts +19 -0
  192. package/dist/validator/engine.d.ts.map +1 -0
  193. package/dist/validator/engine.js +568 -0
  194. package/dist/validator/engine.js.map +1 -0
  195. package/dist/validator/error.d.ts +12 -0
  196. package/dist/validator/error.d.ts.map +1 -0
  197. package/dist/validator/error.js +63 -0
  198. package/dist/validator/error.js.map +1 -0
  199. package/dist/validator/pagination.d.ts +40 -0
  200. package/dist/validator/pagination.d.ts.map +1 -0
  201. package/dist/validator/pagination.js +60 -0
  202. package/dist/validator/pagination.js.map +1 -0
  203. package/dist/validator/tex.d.ts +6 -158
  204. package/dist/validator/tex.d.ts.map +1 -1
  205. package/dist/validator/tex.js +14 -971
  206. package/dist/validator/tex.js.map +1 -1
  207. package/dist/validator/types.d.ts +83 -0
  208. package/dist/validator/types.d.ts.map +1 -0
  209. package/dist/validator/types.js +3 -0
  210. package/dist/validator/types.js.map +1 -0
  211. package/package.json +9 -1
@@ -0,0 +1,226 @@
1
+ ---
2
+ title: "Swagger (exisjs/swagger)"
3
+ description: "API Reference for ExisJS Swagger & OpenAPI 3.1 Documentation Subsystem"
4
+ ---
5
+
6
+ # Swagger Reference (`exisjs/swagger`)
7
+
8
+ The `exisjs/swagger` module provides tools and decorators for auto-generating OpenAPI 3.1 specifications and serving interactive documentation UIs.
9
+
10
+ ```typescript
11
+ import {
12
+ swagger,
13
+ defineSwagger,
14
+ generateOpenApiSpec,
15
+ renderDocumentationHtml,
16
+ mountDocumentation,
17
+ ApiTags,
18
+ ApiOperation,
19
+ ApiResponse,
20
+ ApiBearerAuth,
21
+ ApiSecurity,
22
+ ApiExclude,
23
+ ApiProperty,
24
+ } from 'exisjs/swagger'
25
+ ```
26
+
27
+ ---
28
+
29
+ ## Configuration (`SwaggerConfig`)
30
+
31
+ | Property | Type | Default | Description |
32
+ |---|---|---|---|
33
+ | `enabled` | `boolean` | `false` | Whether to enable documentation routes |
34
+ | `path` | `string` | `'/docs'` | URL path for the interactive HTML UI |
35
+ | `specPath` | `string` | `'/docs/json'` | URL path for OpenAPI 3.1 JSON specification |
36
+ | `title` | `string` | `'ExisJS API Documentation'` | API Title displayed in documentation |
37
+ | `version` | `string` | `'1.0.0'` | API Version string |
38
+ | `description` | `string` | `undefined` | Overview markdown or description |
39
+ | `ui` | `'swagger-ui' \| 'scalar'` | `'swagger-ui'` | Documentation UI renderer |
40
+ | `servers` | `OpenApiServer[]` | `[{ url: '/' }]` | Target server list |
41
+ | `tags` | `OpenApiTag[]` | `[]` | Group tags with descriptions |
42
+ | `security` | `Record<string, string[]>[]` | `[]` | Global security requirements |
43
+ | `securitySchemes` | `Record<string, SecurityScheme>` | `{}` | Reusable security scheme definitions |
44
+ | `customCss` | `string` | `undefined` | Custom CSS injected into the UI |
45
+ | `customFavicon` | `string` | `undefined` | Custom favicon image URL |
46
+ | `transformSpec` | `(spec: OpenApiSpec) => OpenApiSpec` | `undefined` | Hook to mutate OpenAPI spec before serving |
47
+
48
+ ---
49
+
50
+ ## Decorators
51
+
52
+ ### `@ApiTags(...tags: string[])`
53
+ Assigns one or more tags to a controller class or method handler.
54
+ *(Alias: `@Tags()`)*
55
+
56
+ ```typescript filename="src/http/users/route.ts"
57
+ import { Controller, Get } from 'exisjs/decorators'
58
+ import { ApiTags } from 'exisjs/swagger'
59
+
60
+ @ApiTags('Users', 'Authentication')
61
+ @Controller()
62
+ export default class UserController {
63
+ @Get('/')
64
+ findAll() {
65
+ return []
66
+ }
67
+ }
68
+ ```
69
+
70
+ ### `@ApiOperation(options)`
71
+ Attaches summary, description, operationId, and deprecated status to a route method.
72
+ *(Alias: `@Operation()`)*
73
+
74
+ ```typescript filename="src/http/users/route.ts"
75
+ import { Controller, Get, Param } from 'exisjs/decorators'
76
+ import { ApiOperation } from 'exisjs/swagger'
77
+
78
+ @Controller()
79
+ export default class UserController {
80
+ @Get('/:id')
81
+ @ApiOperation({
82
+ summary: 'Get user by UUID',
83
+ description: 'Fetches user details from database',
84
+ deprecated: false,
85
+ })
86
+ getUser(@Param('id') id: string) {
87
+ return { id, name: 'Alice' }
88
+ }
89
+ }
90
+ ```
91
+
92
+ ### `@ApiResponse(options)`
93
+ Defines an expected HTTP response status code and optional schema.
94
+
95
+ ```typescript filename="src/http/users/route.ts"
96
+ import { Controller, Get, Param } from 'exisjs/decorators'
97
+ import { ApiOperation, ApiResponse } from 'exisjs/swagger'
98
+ import { tex } from 'exisjs/validator'
99
+
100
+ const UserSchema = tex.object({
101
+ id: tex.uuid(),
102
+ name: tex.string(),
103
+ })
104
+
105
+ @Controller()
106
+ export default class UserController {
107
+ @Get('/:id')
108
+ @ApiResponse({
109
+ status: 200,
110
+ description: 'User details found',
111
+ schema: UserSchema,
112
+ })
113
+ @ApiResponse({ status: 404, description: 'User not found' })
114
+ getUser(@Param('id') id: string) {
115
+ return { id, name: 'Alice' }
116
+ }
117
+ }
118
+ ```
119
+
120
+ ### `@ApiBearerAuth(name?: string)`
121
+ Requires Bearer JWT authentication for this endpoint or controller.
122
+ *(Alias: `@BearerAuth()`)*
123
+
124
+ ```typescript filename="src/http/users/route.ts"
125
+ import { Controller, Get } from 'exisjs/decorators'
126
+ import { ApiBearerAuth } from 'exisjs/swagger'
127
+
128
+ @ApiBearerAuth()
129
+ @Controller()
130
+ export default class UserController {
131
+ @Get('/me')
132
+ getMe() {
133
+ return { id: 'user-123', role: 'admin' }
134
+ }
135
+ }
136
+ ```
137
+
138
+ ### `@ApiSecurity(name: string, scopes?: string[])`
139
+ Requires custom security scheme authentication for this endpoint or controller.
140
+
141
+ ```typescript filename="src/http/metrics/route.ts"
142
+ import { Controller, Get } from 'exisjs/decorators'
143
+ import { ApiSecurity } from 'exisjs/swagger'
144
+
145
+ @Controller()
146
+ export default class MetricsController {
147
+ @Get('/')
148
+ @ApiSecurity('apiKeyAuth')
149
+ getMetrics() {
150
+ return { uptime: process.uptime() }
151
+ }
152
+ }
153
+ ```
154
+
155
+ ### `@ApiExclude()`
156
+ Excludes an endpoint or controller class from OpenAPI and Swagger generation.
157
+
158
+ ```typescript filename="src/http/internal/route.ts"
159
+ import { Controller, Get } from 'exisjs/decorators'
160
+ import { ApiExclude } from 'exisjs/swagger'
161
+
162
+ @Controller()
163
+ export default class InternalController {
164
+ @Get('/health')
165
+ @ApiExclude()
166
+ getHealth() {
167
+ return { status: 'healthy' }
168
+ }
169
+ }
170
+ ```
171
+
172
+ ### `@ApiProperty(options?: { description?: string; example?: any; required?: boolean })`
173
+ Annotates a class property with metadata for OpenAPI schema models.
174
+
175
+ ```typescript filename="src/http/users/dto.ts"
176
+ import { ApiProperty } from 'exisjs/swagger'
177
+
178
+ export class CreateUserDto {
179
+ @ApiProperty({ description: 'Full name of the user', example: 'Alice Johnson', required: true })
180
+ name!: string
181
+
182
+ @ApiProperty({ description: 'Work email address', example: 'alice@example.com', required: true })
183
+ email!: string
184
+ }
185
+ ```
186
+
187
+ ---
188
+
189
+ ## Functions
190
+
191
+ ### `swagger(config?: SwaggerConfig)`
192
+ Convenience helper to mount Swagger/OpenAPI documentation on an ExisJS App instance (typically inside `onStart` or custom server setups).
193
+
194
+ ```typescript filename="src/http/server.ts"
195
+ import { exis } from 'exisjs'
196
+ import { swagger } from 'exisjs/swagger'
197
+
198
+ export default exis({
199
+ onStart(app) {
200
+ swagger({ title: 'My API', path: '/docs' })(app)
201
+ },
202
+ })
203
+ ```
204
+
205
+ ### `generateOpenApiSpec(routesOrApp, config)`
206
+ Pure generator function that introspects routes, parameters, and `TexEngine`/Zod schemas and returns a complete `OpenApiSpec` object.
207
+
208
+ ```typescript
209
+ import { generateOpenApiSpec } from 'exisjs/swagger'
210
+
211
+ const spec = generateOpenApiSpec(app, { title: 'My API', version: '1.0.0' })
212
+ ```
213
+
214
+ ### `renderDocumentationHtml(config)`
215
+ Renders standalone HTML markup for Swagger UI or Scalar API reference.
216
+
217
+ ```typescript
218
+ import { renderDocumentationHtml } from 'exisjs/swagger'
219
+
220
+ const html = renderDocumentationHtml({
221
+ title: 'My API',
222
+ specPath: '/docs/json',
223
+ ui: 'scalar',
224
+ })
225
+ ```
226
+
@@ -234,7 +234,7 @@ type Profile = ResolveSchema<typeof ProfileSchema>
234
234
 
235
235
  ## OpenAPI Generation
236
236
 
237
- The `TexEngine` automatically converts validation schemas into strictly compliant OpenAPI/Swagger JSON schemas when attached to routes. This powers zero-config Swagger documentation once `@exisjs/swagger` is added.
237
+ The `TexEngine` automatically converts validation schemas into strictly compliant OpenAPI/Swagger JSON schemas when attached to routes. This powers zero-config Swagger documentation in `exisjs/swagger`.
238
238
 
239
239
  ---
240
240
 
@@ -89,8 +89,30 @@ export type { BlockProbesOptions } from '../middleware/security';
89
89
  export type BoundaryBeforeHandleHook<TContext = Record<string, any>> = (req: import('../types').Request<any, any, any, TContext>, res: import('../types').Response) => void | boolean | Promise<void | boolean>;
90
90
  export type BoundaryAfterHandleHook<T = any, TContext = Record<string, any>> = (req: import('../types').Request<any, any, any, TContext>, res: import('../types').Response, data?: T) => void | any | Promise<void | any>;
91
91
  /**
92
- * Defines a boundary that acts as folder-scoped config + request pipeline for
93
- * everything in this directory and subdirectories.
92
+ * Defines a boundary configuration that acts as a folder-scoped request pipeline
93
+ * for all routes in its directory and subdirectories.
94
+ *
95
+ * @param config Boundary options (middleware, guards, interceptors, CORS, hooks, exclusions)
96
+ * @returns Strongly typed `BoundaryConfig`
97
+ *
98
+ * @example
99
+ * ```ts
100
+ * // src/http/api/admin/boundary.ts
101
+ * export default defineBoundary({
102
+ * guards: [AdminGuard],
103
+ * cors: { origin: 'https://admin.example.com' },
104
+ * beforeHandle(req, res) {
105
+ * if (!req.user) {
106
+ * res.status(401).json({ error: 'Unauthorized' })
107
+ * return false // halts execution
108
+ * }
109
+ * },
110
+ * afterHandle(req, res, data) {
111
+ * // Audit logging / payload wrapping
112
+ * return { data, timestamp: Date.now() }
113
+ * }
114
+ * })
115
+ * ```
94
116
  */
95
117
  export declare function defineBoundary<TContext = Record<string, any>>(config: BoundaryConfig<TContext>): BoundaryConfig<TContext>;
96
118
  //# sourceMappingURL=boundary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../../src/router/boundary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../../src/router/boundary.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defineBoundary = defineBoundary;
4
4
  /**
5
- * Defines a boundary that acts as folder-scoped config + request pipeline for
6
- * everything in this directory and subdirectories.
5
+ * Defines a boundary configuration that acts as a folder-scoped request pipeline
6
+ * for all routes in its directory and subdirectories.
7
+ *
8
+ * @param config Boundary options (middleware, guards, interceptors, CORS, hooks, exclusions)
9
+ * @returns Strongly typed `BoundaryConfig`
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * // src/http/api/admin/boundary.ts
14
+ * export default defineBoundary({
15
+ * guards: [AdminGuard],
16
+ * cors: { origin: 'https://admin.example.com' },
17
+ * beforeHandle(req, res) {
18
+ * if (!req.user) {
19
+ * res.status(401).json({ error: 'Unauthorized' })
20
+ * return false // halts execution
21
+ * }
22
+ * },
23
+ * afterHandle(req, res, data) {
24
+ * // Audit logging / payload wrapping
25
+ * return { data, timestamp: Date.now() }
26
+ * }
27
+ * })
28
+ * ```
7
29
  */
8
30
  function defineBoundary(config) {
9
31
  return config;
@@ -1 +1 @@
1
- {"version":3,"file":"boundary.js","sourceRoot":"","sources":["../../src/router/boundary.ts"],"names":[],"mappings":";;AA0IA,wCAIC;AARD;;;GAGG;AACH,SAAgB,cAAc,CAC5B,MAAgC;IAEhC,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"boundary.js","sourceRoot":"","sources":["../../src/router/boundary.ts"],"names":[],"mappings":";;AAgKA,wCAIC;AA9BD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,cAAc,CAC5B,MAAgC;IAEhC,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"controller-registrar.d.ts","sourceRoot":"","sources":["../../src/router/controller-registrar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGxC,qBAAa,mBAAmB;IAClB,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;IAI1B,mBAAmB,CACxB,WAAW,EAAE,GAAG,EAAE,EAClB,QAAQ,SAAK,EACb,iBAAiB,GAAE,GAAG,EAAO,GAC5B,GAAG,CAAC,GAAG,CAAC;IAIX,OAAO,CAAC,oBAAoB;CAof7B"}
1
+ {"version":3,"file":"controller-registrar.d.ts","sourceRoot":"","sources":["../../src/router/controller-registrar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGxC,qBAAa,mBAAmB;IAClB,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;IAI1B,mBAAmB,CACxB,WAAW,EAAE,GAAG,EAAE,EAClB,QAAQ,SAAK,EACb,iBAAiB,GAAE,GAAG,EAAO,GAC5B,GAAG,CAAC,GAAG,CAAC;IAIX,OAAO,CAAC,oBAAoB;CAoiB7B"}
@@ -337,13 +337,26 @@ class ControllerRegistrar {
337
337
  let filterInstance = this.app.container.resolve(filter);
338
338
  if (!filterInstance)
339
339
  filterInstance = new filter();
340
- await filterInstance.catch(err, { req, res });
340
+ await filterInstance.catch(err, { req, res, next });
341
341
  handled = true;
342
342
  break;
343
343
  }
344
344
  else if (typeof filter === 'object' &&
345
345
  typeof filter.catch === 'function') {
346
- await filter.catch(err, { req, res });
346
+ await filter.catch(err, { req, res, next });
347
+ handled = true;
348
+ break;
349
+ }
350
+ else if (typeof filter === 'function') {
351
+ if (filter.length >= 3) {
352
+ await filter(err, req, res, next);
353
+ }
354
+ else if (filter.length === 2) {
355
+ await filter(err, { req, res, next });
356
+ }
357
+ else {
358
+ await filter(err);
359
+ }
347
360
  handled = true;
348
361
  break;
349
362
  }
@@ -407,13 +420,32 @@ class ControllerRegistrar {
407
420
  }
408
421
  }
409
422
  const extractedResponseSchema = routeMeta.responseSchema;
423
+ const classOpenApi = ControllerClass[Symbol.for('exisjs:openapi_class_meta')] ||
424
+ {};
425
+ const mergedTags = [
426
+ ...(classOpenApi.tags || []),
427
+ ...(routeMeta.tags || []),
428
+ ];
429
+ const mergedSecurity = [
430
+ ...(classOpenApi.security || []),
431
+ ...(routeMeta.security || []),
432
+ ];
410
433
  if (schema ||
411
434
  finalHost ||
412
435
  extractedBodySchema ||
413
436
  extractedQuerySchema ||
414
437
  extractedParamsSchema ||
415
438
  extractedHeadersSchema ||
416
- extractedResponseSchema) {
439
+ extractedResponseSchema ||
440
+ mergedTags.length > 0 ||
441
+ mergedSecurity.length > 0 ||
442
+ routeMeta.summary ||
443
+ routeMeta.description ||
444
+ routeMeta.operationId ||
445
+ routeMeta.deprecated !== undefined ||
446
+ routeMeta.responses ||
447
+ routeMeta.excludeFromDocs ||
448
+ classOpenApi.excludeFromDocs) {
417
449
  schema = schema || {};
418
450
  if (finalHost)
419
451
  schema.host = finalHost;
@@ -427,6 +459,23 @@ class ControllerRegistrar {
427
459
  schema.headers = extractedHeadersSchema;
428
460
  if (extractedResponseSchema && !schema.response)
429
461
  schema.response = extractedResponseSchema;
462
+ if (mergedTags.length > 0 && !schema.tags)
463
+ schema.tags = mergedTags;
464
+ if (mergedSecurity.length > 0 && !schema.security)
465
+ schema.security = mergedSecurity;
466
+ if (routeMeta.summary && !schema.summary)
467
+ schema.summary = routeMeta.summary;
468
+ if (routeMeta.description && !schema.description)
469
+ schema.description = routeMeta.description;
470
+ if (routeMeta.operationId && !schema.operationId)
471
+ schema.operationId = routeMeta.operationId;
472
+ if (routeMeta.deprecated !== undefined &&
473
+ schema.deprecated === undefined)
474
+ schema.deprecated = routeMeta.deprecated;
475
+ if (routeMeta.responses && !schema.responses)
476
+ schema.responses = routeMeta.responses;
477
+ if (routeMeta.excludeFromDocs || classOpenApi.excludeFromDocs)
478
+ schema.excludeFromDocs = true;
430
479
  this.app.router[method](fullPath, ...allMiddlewares, schema, finalHandler);
431
480
  }
432
481
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"controller-registrar.js","sourceRoot":"","sources":["../../src/router/controller-registrar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller-registrar.js","sourceRoot":"","sources":["../../src/router/controller-registrar.ts"],"names":[],"mappings":"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"}