@venizia/ignis 0.0.5-9 → 0.0.6-0

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 (227) hide show
  1. package/dist/base/applications/abstract.d.ts.map +1 -1
  2. package/dist/base/applications/abstract.js +1 -0
  3. package/dist/base/applications/abstract.js.map +1 -1
  4. package/dist/base/applications/base.d.ts.map +1 -1
  5. package/dist/base/applications/base.js +8 -1
  6. package/dist/base/applications/base.js.map +1 -1
  7. package/dist/base/applications/types.d.ts +10 -1
  8. package/dist/base/applications/types.d.ts.map +1 -1
  9. package/dist/base/controllers/abstract.d.ts +145 -22
  10. package/dist/base/controllers/abstract.d.ts.map +1 -1
  11. package/dist/base/controllers/abstract.js +101 -10
  12. package/dist/base/controllers/abstract.js.map +1 -1
  13. package/dist/base/controllers/base.d.ts +106 -17
  14. package/dist/base/controllers/base.d.ts.map +1 -1
  15. package/dist/base/controllers/base.js +94 -4
  16. package/dist/base/controllers/base.js.map +1 -1
  17. package/dist/base/controllers/common/constants.d.ts +34 -0
  18. package/dist/base/controllers/common/constants.d.ts.map +1 -1
  19. package/dist/base/controllers/common/constants.js +73 -1
  20. package/dist/base/controllers/common/constants.js.map +1 -1
  21. package/dist/base/controllers/common/types.d.ts +214 -57
  22. package/dist/base/controllers/common/types.d.ts.map +1 -1
  23. package/dist/base/controllers/common/types.js +9 -0
  24. package/dist/base/controllers/common/types.js.map +1 -1
  25. package/dist/base/controllers/factory/controller.d.ts +760 -40
  26. package/dist/base/controllers/factory/controller.d.ts.map +1 -1
  27. package/dist/base/controllers/factory/controller.js +370 -164
  28. package/dist/base/controllers/factory/controller.js.map +1 -1
  29. package/dist/base/controllers/factory/definition.d.ts +362 -142
  30. package/dist/base/controllers/factory/definition.d.ts.map +1 -1
  31. package/dist/base/controllers/factory/definition.js +288 -112
  32. package/dist/base/controllers/factory/definition.js.map +1 -1
  33. package/dist/base/controllers/factory/helper.d.ts +2 -0
  34. package/dist/base/controllers/factory/helper.d.ts.map +1 -0
  35. package/dist/base/controllers/factory/helper.js +3 -0
  36. package/dist/base/controllers/factory/helper.js.map +1 -0
  37. package/dist/base/datasources/base.d.ts.map +1 -1
  38. package/dist/base/datasources/base.js +10 -1
  39. package/dist/base/datasources/base.js.map +1 -1
  40. package/dist/base/metadata/index.d.ts +1 -0
  41. package/dist/base/metadata/index.d.ts.map +1 -1
  42. package/dist/base/metadata/index.js +1 -0
  43. package/dist/base/metadata/index.js.map +1 -1
  44. package/dist/base/metadata/request-context.d.ts +3 -0
  45. package/dist/base/metadata/request-context.d.ts.map +1 -0
  46. package/dist/base/metadata/request-context.js +9 -0
  47. package/dist/base/metadata/request-context.js.map +1 -0
  48. package/dist/base/metadata/routes.d.ts +31 -78
  49. package/dist/base/metadata/routes.d.ts.map +1 -1
  50. package/dist/base/metadata/routes.js +28 -34
  51. package/dist/base/metadata/routes.js.map +1 -1
  52. package/dist/base/middlewares/app-error.middleware.d.ts +11 -0
  53. package/dist/base/middlewares/app-error.middleware.d.ts.map +1 -1
  54. package/dist/base/middlewares/app-error.middleware.js +87 -16
  55. package/dist/base/middlewares/app-error.middleware.js.map +1 -1
  56. package/dist/base/middlewares/emoji-favicon.middleware.d.ts +7 -0
  57. package/dist/base/middlewares/emoji-favicon.middleware.d.ts.map +1 -1
  58. package/dist/base/middlewares/emoji-favicon.middleware.js +7 -0
  59. package/dist/base/middlewares/emoji-favicon.middleware.js.map +1 -1
  60. package/dist/base/middlewares/not-found.middleware.d.ts +8 -0
  61. package/dist/base/middlewares/not-found.middleware.d.ts.map +1 -1
  62. package/dist/base/middlewares/not-found.middleware.js +8 -0
  63. package/dist/base/middlewares/not-found.middleware.js.map +1 -1
  64. package/dist/base/middlewares/request-normalize.middleware.d.ts +7 -0
  65. package/dist/base/middlewares/request-normalize.middleware.d.ts.map +1 -1
  66. package/dist/base/middlewares/request-normalize.middleware.js +7 -0
  67. package/dist/base/middlewares/request-normalize.middleware.js.map +1 -1
  68. package/dist/base/middlewares/request-spy.middleware.d.ts +10 -0
  69. package/dist/base/middlewares/request-spy.middleware.d.ts.map +1 -1
  70. package/dist/base/middlewares/request-spy.middleware.js +22 -0
  71. package/dist/base/middlewares/request-spy.middleware.js.map +1 -1
  72. package/dist/base/mixins/component.mixin.d.ts.map +1 -1
  73. package/dist/base/mixins/controller.mixin.d.ts.map +1 -1
  74. package/dist/base/mixins/repository.mixin.d.ts.map +1 -1
  75. package/dist/base/mixins/service.mixin.d.ts.map +1 -1
  76. package/dist/base/models/common/types.d.ts +24 -3
  77. package/dist/base/models/common/types.d.ts.map +1 -1
  78. package/dist/base/models/common/types.js +7 -5
  79. package/dist/base/models/common/types.js.map +1 -1
  80. package/dist/base/models/enrichers/user-audit.enricher.d.ts +3 -2
  81. package/dist/base/models/enrichers/user-audit.enricher.d.ts.map +1 -1
  82. package/dist/base/models/enrichers/user-audit.enricher.js +47 -11
  83. package/dist/base/models/enrichers/user-audit.enricher.js.map +1 -1
  84. package/dist/base/repositories/common/constants.d.ts +59 -0
  85. package/dist/base/repositories/common/constants.d.ts.map +1 -1
  86. package/dist/base/repositories/common/constants.js +51 -2
  87. package/dist/base/repositories/common/constants.js.map +1 -1
  88. package/dist/base/repositories/common/types.d.ts +510 -42
  89. package/dist/base/repositories/common/types.d.ts.map +1 -1
  90. package/dist/base/repositories/common/types.js +159 -11
  91. package/dist/base/repositories/common/types.js.map +1 -1
  92. package/dist/base/repositories/core/abstract.d.ts +450 -0
  93. package/dist/base/repositories/core/abstract.d.ts.map +1 -0
  94. package/dist/base/repositories/core/abstract.js +287 -0
  95. package/dist/base/repositories/core/abstract.js.map +1 -0
  96. package/dist/base/repositories/core/default-crud.d.ts +2 -2
  97. package/dist/base/repositories/core/default-crud.d.ts.map +1 -1
  98. package/dist/base/repositories/core/index.d.ts +1 -1
  99. package/dist/base/repositories/core/index.d.ts.map +1 -1
  100. package/dist/base/repositories/core/index.js +1 -1
  101. package/dist/base/repositories/core/index.js.map +1 -1
  102. package/dist/base/repositories/core/persistable.d.ts +87 -39
  103. package/dist/base/repositories/core/persistable.d.ts.map +1 -1
  104. package/dist/base/repositories/core/persistable.js +120 -30
  105. package/dist/base/repositories/core/persistable.js.map +1 -1
  106. package/dist/base/repositories/core/readable.d.ts +166 -62
  107. package/dist/base/repositories/core/readable.d.ts.map +1 -1
  108. package/dist/base/repositories/core/readable.js +176 -60
  109. package/dist/base/repositories/core/readable.js.map +1 -1
  110. package/dist/base/repositories/mixins/default-filter.d.ts +65 -0
  111. package/dist/base/repositories/mixins/default-filter.d.ts.map +1 -0
  112. package/dist/base/repositories/mixins/default-filter.js +97 -0
  113. package/dist/base/repositories/mixins/default-filter.js.map +1 -0
  114. package/dist/base/repositories/mixins/fields-visibility.d.ts +74 -0
  115. package/dist/base/repositories/mixins/fields-visibility.d.ts.map +1 -0
  116. package/dist/base/repositories/mixins/fields-visibility.js +129 -0
  117. package/dist/base/repositories/mixins/fields-visibility.js.map +1 -0
  118. package/dist/base/repositories/mixins/index.d.ts +3 -0
  119. package/dist/base/repositories/mixins/index.d.ts.map +1 -0
  120. package/dist/base/repositories/mixins/index.js +19 -0
  121. package/dist/base/repositories/mixins/index.js.map +1 -0
  122. package/dist/base/repositories/operators/filter.d.ts +137 -35
  123. package/dist/base/repositories/operators/filter.d.ts.map +1 -1
  124. package/dist/base/repositories/operators/filter.js +399 -159
  125. package/dist/base/repositories/operators/filter.js.map +1 -1
  126. package/dist/base/repositories/operators/index.d.ts +2 -0
  127. package/dist/base/repositories/operators/index.d.ts.map +1 -1
  128. package/dist/base/repositories/operators/index.js +2 -0
  129. package/dist/base/repositories/operators/index.js.map +1 -1
  130. package/dist/base/repositories/operators/json-utils.d.ts +60 -0
  131. package/dist/base/repositories/operators/json-utils.d.ts.map +1 -0
  132. package/dist/base/repositories/operators/json-utils.js +84 -0
  133. package/dist/base/repositories/operators/json-utils.js.map +1 -0
  134. package/dist/base/repositories/operators/query.d.ts +67 -0
  135. package/dist/base/repositories/operators/query.d.ts.map +1 -1
  136. package/dist/base/repositories/operators/query.js +186 -2
  137. package/dist/base/repositories/operators/query.js.map +1 -1
  138. package/dist/base/repositories/operators/relation.d.ts +33 -0
  139. package/dist/base/repositories/operators/relation.d.ts.map +1 -1
  140. package/dist/base/repositories/operators/relation.js +36 -0
  141. package/dist/base/repositories/operators/relation.js.map +1 -1
  142. package/dist/base/repositories/operators/update.d.ts +100 -0
  143. package/dist/base/repositories/operators/update.d.ts.map +1 -0
  144. package/dist/base/repositories/operators/update.js +222 -0
  145. package/dist/base/repositories/operators/update.js.map +1 -0
  146. package/dist/common/bindings.d.ts +17 -0
  147. package/dist/common/bindings.d.ts.map +1 -1
  148. package/dist/common/bindings.js +14 -0
  149. package/dist/common/bindings.js.map +1 -1
  150. package/dist/common/constants.d.ts +3 -0
  151. package/dist/common/constants.d.ts.map +1 -1
  152. package/dist/common/constants.js +3 -0
  153. package/dist/common/constants.js.map +1 -1
  154. package/dist/common/environments.d.ts +4 -0
  155. package/dist/common/environments.d.ts.map +1 -1
  156. package/dist/common/environments.js +4 -0
  157. package/dist/common/environments.js.map +1 -1
  158. package/dist/common/statuses.d.ts +19 -0
  159. package/dist/common/statuses.d.ts.map +1 -1
  160. package/dist/common/statuses.js +19 -0
  161. package/dist/common/statuses.js.map +1 -1
  162. package/dist/components/auth/authenticate/common/constants.d.ts +14 -0
  163. package/dist/components/auth/authenticate/common/constants.d.ts.map +1 -1
  164. package/dist/components/auth/authenticate/common/constants.js +22 -3
  165. package/dist/components/auth/authenticate/common/constants.js.map +1 -1
  166. package/dist/components/auth/authenticate/common/keys.d.ts +3 -2
  167. package/dist/components/auth/authenticate/common/keys.d.ts.map +1 -1
  168. package/dist/components/auth/authenticate/common/keys.js +3 -2
  169. package/dist/components/auth/authenticate/common/keys.js.map +1 -1
  170. package/dist/components/auth/authenticate/common/types.d.ts +66 -29
  171. package/dist/components/auth/authenticate/common/types.d.ts.map +1 -1
  172. package/dist/components/auth/authenticate/component.d.ts +17 -1
  173. package/dist/components/auth/authenticate/component.d.ts.map +1 -1
  174. package/dist/components/auth/authenticate/component.js +107 -39
  175. package/dist/components/auth/authenticate/component.js.map +1 -1
  176. package/dist/components/auth/authenticate/controllers/factory.d.ts +24 -24
  177. package/dist/components/auth/authenticate/controllers/factory.d.ts.map +1 -1
  178. package/dist/components/auth/authenticate/controllers/factory.js +5 -3
  179. package/dist/components/auth/authenticate/controllers/factory.js.map +1 -1
  180. package/dist/components/auth/authenticate/services/basic-token.service.d.ts +60 -0
  181. package/dist/components/auth/authenticate/services/basic-token.service.d.ts.map +1 -0
  182. package/dist/components/auth/authenticate/services/basic-token.service.js +135 -0
  183. package/dist/components/auth/authenticate/services/basic-token.service.js.map +1 -0
  184. package/dist/components/auth/authenticate/services/index.d.ts +1 -0
  185. package/dist/components/auth/authenticate/services/index.d.ts.map +1 -1
  186. package/dist/components/auth/authenticate/services/index.js +1 -0
  187. package/dist/components/auth/authenticate/services/index.js.map +1 -1
  188. package/dist/components/auth/authenticate/services/jwt-token.service.d.ts +4 -3
  189. package/dist/components/auth/authenticate/services/jwt-token.service.d.ts.map +1 -1
  190. package/dist/components/auth/authenticate/services/jwt-token.service.js.map +1 -1
  191. package/dist/components/auth/authenticate/strategies/basic.strategy.d.ts +34 -0
  192. package/dist/components/auth/authenticate/strategies/basic.strategy.d.ts.map +1 -0
  193. package/dist/components/auth/authenticate/strategies/basic.strategy.js +59 -0
  194. package/dist/components/auth/authenticate/strategies/basic.strategy.js.map +1 -0
  195. package/dist/components/auth/authenticate/strategies/index.d.ts +1 -0
  196. package/dist/components/auth/authenticate/strategies/index.d.ts.map +1 -1
  197. package/dist/components/auth/authenticate/strategies/index.js +1 -0
  198. package/dist/components/auth/authenticate/strategies/index.js.map +1 -1
  199. package/dist/components/auth/authenticate/strategies/jwt.strategy.d.ts +5 -4
  200. package/dist/components/auth/authenticate/strategies/jwt.strategy.d.ts.map +1 -1
  201. package/dist/components/auth/authenticate/strategies/jwt.strategy.js.map +1 -1
  202. package/dist/components/auth/authenticate/strategies/strategy-registry.d.ts +14 -9
  203. package/dist/components/auth/authenticate/strategies/strategy-registry.d.ts.map +1 -1
  204. package/dist/components/auth/authenticate/strategies/strategy-registry.js +84 -41
  205. package/dist/components/auth/authenticate/strategies/strategy-registry.js.map +1 -1
  206. package/dist/components/health-check/controller.d.ts +1 -84
  207. package/dist/components/health-check/controller.d.ts.map +1 -1
  208. package/dist/components/health-check/controller.js +13 -15
  209. package/dist/components/health-check/controller.js.map +1 -1
  210. package/dist/components/static-asset/controller/base.definition.d.ts +109 -9
  211. package/dist/components/static-asset/controller/base.definition.d.ts.map +1 -1
  212. package/dist/components/static-asset/controller/base.definition.js +9 -9
  213. package/dist/components/static-asset/controller/base.definition.js.map +1 -1
  214. package/dist/components/static-asset/controller/factory.d.ts +24 -24
  215. package/dist/components/static-asset/controller/factory.d.ts.map +1 -1
  216. package/dist/components/static-asset/controller/factory.js.map +1 -1
  217. package/dist/helpers/inversion/common/types.d.ts +26 -3
  218. package/dist/helpers/inversion/common/types.d.ts.map +1 -1
  219. package/dist/helpers/inversion/mixins/repository.mixin.d.ts +2 -2
  220. package/dist/helpers/inversion/mixins/repository.mixin.d.ts.map +1 -1
  221. package/dist/utilities/schema.utility.d.ts +2 -0
  222. package/dist/utilities/schema.utility.d.ts.map +1 -1
  223. package/package.json +6 -5
  224. package/dist/base/repositories/core/base.d.ts +0 -298
  225. package/dist/base/repositories/core/base.d.ts.map +0 -1
  226. package/dist/base/repositories/core/base.js +0 -311
  227. package/dist/base/repositories/core/base.js.map +0 -1
@@ -1,17 +1,108 @@
1
- import { Hook, RouteConfig } from '@hono/zod-openapi';
2
- import { TAuthStrategy, ValueOrPromise } from '@venizia/ignis-helpers';
1
+ import { Hook, OpenAPIHono } from '@hono/zod-openapi';
2
+ import { ValueOrPromise } from '@venizia/ignis-helpers';
3
3
  import { Env, Schema } from 'hono';
4
4
  import { AbstractController } from './abstract';
5
- import { TAuthRouteConfig, TLazyRouteHandler, TRouteBindingOptions, TRouteDefinition } from './common/types';
6
- export declare abstract class BaseController<RouteEnv extends Env = Env, RouteSchema extends Schema = {}, BasePath extends string = '/', ConfigurableOptions extends object = {}> extends AbstractController<RouteEnv, RouteSchema, BasePath, ConfigurableOptions> {
7
- bindRoute<RC extends TAuthRouteConfig<RouteConfig>>(opts: {
8
- configs: RC;
9
- }): TRouteBindingOptions<RC, RouteEnv, RouteSchema, BasePath>;
10
- defineRoute<RC extends TAuthRouteConfig<RouteConfig>>(opts: {
11
- configs: RC;
12
- handler: TLazyRouteHandler<RC, RouteEnv>;
5
+ import { IAuthenticateRouteConfig, IBindRouteOptions, IDefineRouteOptions, TRouteHandler } from './common/types';
6
+ /**
7
+ * Base controller class with default implementations for route binding.
8
+ *
9
+ * Extends {@link AbstractController} with concrete implementations of
10
+ * {@link bindRoute} and {@link defineRoute}. This is the recommended
11
+ * base class for creating custom controllers.
12
+ *
13
+ * @typeParam RouteEnv - Hono environment type for context variables
14
+ * @typeParam RouteSchema - Combined schema type for all routes
15
+ * @typeParam BasePath - Base path prefix for the router
16
+ * @typeParam ConfigurableOptions - Options passed during configuration
17
+ * @typeParam Definitions - Route definitions map type for strongly-typed method overrides
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * class UserController extends BaseController {
22
+ * async binding() {
23
+ * // Define routes using defineRoute
24
+ * this.defineRoute({
25
+ * configs: {
26
+ * path: '/',
27
+ * method: 'get',
28
+ * authenticate: { strategies: ['jwt'] },
29
+ * responses: { 200: jsonResponse({ schema: UserSchema }) }
30
+ * },
31
+ * handler: async (c) => {
32
+ * const users = await this.userService.findAll();
33
+ * return c.json(users);
34
+ * }
35
+ * });
36
+ *
37
+ * // Or use fluent bindRoute pattern
38
+ * this.bindRoute({
39
+ * configs: { path: '/{id}', method: 'get', ... }
40
+ * }).to({
41
+ * handler: (c) => c.json({ id: c.req.param('id') })
42
+ * });
43
+ * }
44
+ * }
45
+ * ```
46
+ */
47
+ export declare abstract class BaseController<RouteEnv extends Env = Env, RouteSchema extends Schema = {}, BasePath extends string = '/', ConfigurableOptions extends object = {}, Definitions extends Record<string, IAuthenticateRouteConfig> = Record<string, IAuthenticateRouteConfig>> extends AbstractController<RouteEnv, RouteSchema, BasePath, ConfigurableOptions, Definitions> {
48
+ /**
49
+ * Helper method to cast to Hono OpenAPI Handler
50
+ */
51
+ toHonoHandler<ResponseType = unknown>(opts: {
52
+ handler: TRouteHandler<ResponseType, RouteEnv>;
53
+ }): Parameters<OpenAPIHono<RouteEnv>["openapi"]>[1];
54
+ /**
55
+ * Creates a fluent binding for registering a route.
56
+ *
57
+ * Returns an object with a `to()` method for attaching the handler.
58
+ * Useful for conditional binding or when you need access to the binding object.
59
+ *
60
+ * @typeParam RouteConfig - The route configuration type
61
+ * @param opts - Object containing route configuration
62
+ * @returns Binding options with `to()` method
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const binding = this.bindRoute({ configs: myRouteConfig });
67
+ * binding.to({ handler: myHandler });
68
+ * ```
69
+ */
70
+ bindRoute<RouteConfig extends IAuthenticateRouteConfig>(opts: {
71
+ configs: RouteConfig;
72
+ }): IBindRouteOptions<RouteConfig, RouteEnv, RouteSchema, BasePath>;
73
+ /**
74
+ * Defines and registers a route with its handler in a single call.
75
+ *
76
+ * This is the preferred method for registering routes. It automatically:
77
+ * - Processes authentication strategies into middleware
78
+ * - Adds OpenAPI security requirements
79
+ * - Tags the route with the controller scope
80
+ *
81
+ * @typeParam RouteConfig - The route configuration type
82
+ * @param opts - Object containing route config, handler, and optional hook
83
+ * @returns The registered route definition
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * this.defineRoute({
88
+ * configs: {
89
+ * path: '/users',
90
+ * method: 'get',
91
+ * authenticate: { strategies: ['jwt'] },
92
+ * responses: { 200: jsonResponse({ schema: z.array(UserSchema) }) }
93
+ * },
94
+ * handler: async (c) => {
95
+ * const users = await db.select().from(usersTable);
96
+ * return c.json(users, 200);
97
+ * }
98
+ * });
99
+ * ```
100
+ */
101
+ defineRoute<RouteConfig extends IAuthenticateRouteConfig, ResponseType = unknown>(opts: {
102
+ configs: RouteConfig;
103
+ handler: TRouteHandler<ResponseType, RouteEnv>;
13
104
  hook?: Hook<any, RouteEnv, string, ValueOrPromise<any>>;
14
- }): TRouteDefinition<RC, RouteEnv, RouteSchema, BasePath>;
105
+ }): IDefineRouteOptions<RouteConfig, RouteEnv, RouteSchema, BasePath>;
15
106
  /**
16
107
  * Define a JSX route that renders server-side HTML
17
108
  * Scope: [BaseController][defineJSXRoute]
@@ -37,12 +128,10 @@ export declare abstract class BaseController<RouteEnv extends Env = Env, RouteSc
37
128
  * @param opts - Route configuration and handler
38
129
  * @returns Route definition
39
130
  */
40
- defineJSXRoute<RC extends RouteConfig & {
41
- authStrategies?: Array<TAuthStrategy>;
42
- }>(opts: {
43
- configs: RC;
44
- handler: TLazyRouteHandler<RC, RouteEnv>;
131
+ defineJSXRoute<RouteConfig extends IAuthenticateRouteConfig, ResponseType = unknown>(opts: {
132
+ configs: RouteConfig;
133
+ handler: TRouteHandler<ResponseType, RouteEnv>;
45
134
  hook?: Hook<any, RouteEnv, string, ValueOrPromise<any>>;
46
- }): TRouteDefinition<RC, RouteEnv, RouteSchema, BasePath>;
135
+ }): IDefineRouteOptions<RouteConfig, RouteEnv, RouteSchema, BasePath>;
47
136
  }
48
137
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/base/controllers/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAExB,8BAAsB,cAAc,CAClC,QAAQ,SAAS,GAAG,GAAG,GAAG,EAC1B,WAAW,SAAS,MAAM,GAAG,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,GAAG,EAC7B,mBAAmB,SAAS,MAAM,GAAG,EAAE,CACvC,SAAQ,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,CAAC;IAEhF,SAAS,CAAC,EAAE,SAAS,gBAAgB,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE;QACxD,OAAO,EAAE,EAAE,CAAC;KACb,GAAG,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;IAe7D,WAAW,CAAC,EAAE,SAAS,gBAAgB,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE;QAC1D,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,EAAE,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;KACzD,GAAG,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;IASzD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,cAAc,CAAC,EAAE,SAAS,WAAW,GAAG;QAAE,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;KAAE,EAAE,IAAI,EAAE;QACvF,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,EAAE,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;KACzD,GAAG,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;CAQ1D"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/base/controllers/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,8BAAsB,cAAc,CAClC,QAAQ,SAAS,GAAG,GAAG,GAAG,EAC1B,WAAW,SAAS,MAAM,GAAG,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,GAAG,EAC7B,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,MAAM,CACnE,MAAM,EACN,wBAAwB,CACzB,CACD,SAAQ,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,EAAE,WAAW,CAAC;IAC7F;;OAEG;IACH,aAAa,CAAC,YAAY,GAAG,OAAO,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;KAAE,GACrE,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAGxE;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,WAAW,SAAS,wBAAwB,EAAE,IAAI,EAAE;QAC5D,OAAO,EAAE,WAAW,CAAC;KACtB,GAAG,iBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;IAcnE;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,WAAW,CAAC,WAAW,SAAS,wBAAwB,EAAE,YAAY,GAAG,OAAO,EAAE,IAAI,EAAE;QACtF,OAAO,EAAE,WAAW,CAAC;QACrB,OAAO,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;KACzD,GAAG,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;IAarE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,cAAc,CAAC,WAAW,SAAS,wBAAwB,EAAE,YAAY,GAAG,OAAO,EAAE,IAAI,EAAE;QACzF,OAAO,EAAE,WAAW,CAAC;QACrB,OAAO,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;KACzD,GAAG,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;CAStE"}
@@ -2,8 +2,70 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseController = void 0;
4
4
  const abstract_1 = require("./abstract");
5
+ /**
6
+ * Base controller class with default implementations for route binding.
7
+ *
8
+ * Extends {@link AbstractController} with concrete implementations of
9
+ * {@link bindRoute} and {@link defineRoute}. This is the recommended
10
+ * base class for creating custom controllers.
11
+ *
12
+ * @typeParam RouteEnv - Hono environment type for context variables
13
+ * @typeParam RouteSchema - Combined schema type for all routes
14
+ * @typeParam BasePath - Base path prefix for the router
15
+ * @typeParam ConfigurableOptions - Options passed during configuration
16
+ * @typeParam Definitions - Route definitions map type for strongly-typed method overrides
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * class UserController extends BaseController {
21
+ * async binding() {
22
+ * // Define routes using defineRoute
23
+ * this.defineRoute({
24
+ * configs: {
25
+ * path: '/',
26
+ * method: 'get',
27
+ * authenticate: { strategies: ['jwt'] },
28
+ * responses: { 200: jsonResponse({ schema: UserSchema }) }
29
+ * },
30
+ * handler: async (c) => {
31
+ * const users = await this.userService.findAll();
32
+ * return c.json(users);
33
+ * }
34
+ * });
35
+ *
36
+ * // Or use fluent bindRoute pattern
37
+ * this.bindRoute({
38
+ * configs: { path: '/{id}', method: 'get', ... }
39
+ * }).to({
40
+ * handler: (c) => c.json({ id: c.req.param('id') })
41
+ * });
42
+ * }
43
+ * }
44
+ * ```
45
+ */
5
46
  class BaseController extends abstract_1.AbstractController {
6
- // ------------------------------------------------------------------------------
47
+ /**
48
+ * Helper method to cast to Hono OpenAPI Handler
49
+ */
50
+ toHonoHandler(opts) {
51
+ return opts.handler;
52
+ }
53
+ /**
54
+ * Creates a fluent binding for registering a route.
55
+ *
56
+ * Returns an object with a `to()` method for attaching the handler.
57
+ * Useful for conditional binding or when you need access to the binding object.
58
+ *
59
+ * @typeParam RouteConfig - The route configuration type
60
+ * @param opts - Object containing route configuration
61
+ * @returns Binding options with `to()` method
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * const binding = this.bindRoute({ configs: myRouteConfig });
66
+ * binding.to({ handler: myHandler });
67
+ * ```
68
+ */
7
69
  bindRoute(opts) {
8
70
  const routeConfigs = this.getRouteConfigs({ configs: opts.configs });
9
71
  return {
@@ -11,17 +73,44 @@ class BaseController extends abstract_1.AbstractController {
11
73
  to: ({ handler }) => {
12
74
  return {
13
75
  configs: routeConfigs,
14
- route: this.router.openapi(routeConfigs, handler),
76
+ route: this.router.openapi(routeConfigs, this.toHonoHandler({ handler })),
15
77
  };
16
78
  },
17
79
  };
18
80
  }
19
- // ------------------------------------------------------------------------------
81
+ /**
82
+ * Defines and registers a route with its handler in a single call.
83
+ *
84
+ * This is the preferred method for registering routes. It automatically:
85
+ * - Processes authentication strategies into middleware
86
+ * - Adds OpenAPI security requirements
87
+ * - Tags the route with the controller scope
88
+ *
89
+ * @typeParam RouteConfig - The route configuration type
90
+ * @param opts - Object containing route config, handler, and optional hook
91
+ * @returns The registered route definition
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * this.defineRoute({
96
+ * configs: {
97
+ * path: '/users',
98
+ * method: 'get',
99
+ * authenticate: { strategies: ['jwt'] },
100
+ * responses: { 200: jsonResponse({ schema: z.array(UserSchema) }) }
101
+ * },
102
+ * handler: async (c) => {
103
+ * const users = await db.select().from(usersTable);
104
+ * return c.json(users, 200);
105
+ * }
106
+ * });
107
+ * ```
108
+ */
20
109
  defineRoute(opts) {
21
110
  const routeConfigs = this.getRouteConfigs({ configs: opts.configs });
22
111
  return {
23
112
  configs: routeConfigs,
24
- route: this.router.openapi(routeConfigs, opts.handler, opts.hook),
113
+ route: this.router.openapi(routeConfigs, this.toHonoHandler({ handler: opts.handler }), opts.hook),
25
114
  };
26
115
  }
27
116
  /**
@@ -53,6 +142,7 @@ class BaseController extends abstract_1.AbstractController {
53
142
  const routeConfigs = this.getJSXRouteConfigs({ configs: opts.configs });
54
143
  return {
55
144
  configs: routeConfigs,
145
+ // Cast handler: TTypedContext is a type overlay compatible at runtime
56
146
  route: this.router.openapi(routeConfigs, opts.handler, opts.hook),
57
147
  };
58
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/base/controllers/base.ts"],"names":[],"mappings":";;;AAGA,yCAAgD;AAQhD,MAAsB,cAKpB,SAAQ,6BAAwE;IAChF,iFAAiF;IACjF,SAAS,CAA2C,IAEnD;QACC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEzE,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;gBAClB,OAAO;oBACL,OAAO,EAAE,YAAY;oBACrB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC;iBAClD,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;IAED,iFAAiF;IACjF,WAAW,CAA2C,IAIrD;QACC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEzE,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;SAClE,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,cAAc,CAAqE,IAIlF;QACC,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAE5E,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;SAClE,CAAC;IACJ,CAAC;CACF;AA1ED,wCA0EC"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/base/controllers/base.ts"],"names":[],"mappings":";;;AAGA,yCAAgD;AAQhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAsB,cASpB,SAAQ,6BAAqF;IAC7F;;OAEG;IACH,aAAa,CAAyB,IAAwD;QAC5F,OAAO,IAAI,CAAC,OAA0D,CAAC;IACzE,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAA+C,IAEvD;QACC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAc,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAElF,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;gBAClB,OAAO;oBACL,OAAO,EAAE,YAAY;oBACrB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;iBAC1E,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,WAAW,CAAuE,IAIjF;QACC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAc,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAElF,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,YAAY,EACZ,IAAI,CAAC,aAAa,CAAe,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAC3D,IAAI,CAAC,IAAI,CACV;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,cAAc,CAAuE,IAIpF;QACC,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAc,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAErF,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,sEAAsE;YACtE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,OAAc,EAAE,IAAI,CAAC,IAAI,CAAC;SACzE,CAAC;IACJ,CAAC;CACF;AApID,wCAoIC"}
@@ -1,6 +1,40 @@
1
+ import { z } from '@hono/zod-openapi';
2
+ import { TResponseHeaders } from './types';
3
+ /**
4
+ * Standard REST API path constants for CRUD controllers.
5
+ *
6
+ * These paths are used by {@link ControllerFactory} to define consistent
7
+ * endpoint patterns across all generated controllers.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // Combined with controller basePath:
12
+ * // basePath: '/users'
13
+ * // GET /users → find all (RestPaths.ROOT)
14
+ * // GET /users/count → count (RestPaths.COUNT)
15
+ * // GET /users/find-one → find one (RestPaths.FIND_ONE)
16
+ * // GET /users/:id → find by id
17
+ * ```
18
+ */
1
19
  export declare class RestPaths {
2
20
  static readonly ROOT = "/";
3
21
  static readonly COUNT = "/count";
4
22
  static readonly FIND_ONE = "/find-one";
5
23
  }
24
+ export declare const trackableHeaders: z.ZodObject<{
25
+ "x-request-id": z.ZodOptional<z.ZodString>;
26
+ "x-request-channel": z.ZodOptional<z.ZodString>;
27
+ "x-device-info": z.ZodOptional<z.ZodString>;
28
+ }, z.core.$strip>;
29
+ export declare const countableHeaders: z.ZodObject<{
30
+ "x-request-count": z.ZodOptional<z.ZodString>;
31
+ }, z.core.$strip>;
32
+ export declare const defaultRequestHeaders: z.ZodObject<{
33
+ "x-request-id": z.ZodOptional<z.ZodString>;
34
+ "x-request-channel": z.ZodOptional<z.ZodString>;
35
+ "x-device-info": z.ZodOptional<z.ZodString>;
36
+ "x-request-count": z.ZodOptional<z.ZodString>;
37
+ }, z.core.$strip>;
38
+ export declare const commonResponseHeaders: TResponseHeaders;
39
+ export declare const findResponseHeaders: TResponseHeaders;
6
40
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/base/controllers/common/constants.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAS;IACpB,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO;IAC3B,MAAM,CAAC,QAAQ,CAAC,KAAK,YAAY;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,eAAe;CACxC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/base/controllers/common/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,SAAS;IACpB,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO;IAC3B,MAAM,CAAC,QAAQ,CAAC,KAAK,YAAY;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,eAAe;CACxC;AAKD,eAAO,MAAM,gBAAgB;;;;iBAkB3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;iBAS3B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;iBAAkD,CAAC;AAGrF,eAAO,MAAM,qBAAqB,EAAE,gBAanC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,gBAMjC,CAAC"}
@@ -1,10 +1,82 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RestPaths = void 0;
3
+ exports.findResponseHeaders = exports.commonResponseHeaders = exports.defaultRequestHeaders = exports.countableHeaders = exports.trackableHeaders = exports.RestPaths = void 0;
4
+ const helpers_1 = require("../../../helpers");
5
+ const zod_openapi_1 = require("@hono/zod-openapi");
6
+ /**
7
+ * Standard REST API path constants for CRUD controllers.
8
+ *
9
+ * These paths are used by {@link ControllerFactory} to define consistent
10
+ * endpoint patterns across all generated controllers.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * // Combined with controller basePath:
15
+ * // basePath: '/users'
16
+ * // GET /users → find all (RestPaths.ROOT)
17
+ * // GET /users/count → count (RestPaths.COUNT)
18
+ * // GET /users/find-one → find one (RestPaths.FIND_ONE)
19
+ * // GET /users/:id → find by id
20
+ * ```
21
+ */
4
22
  class RestPaths {
5
23
  static { this.ROOT = '/'; }
6
24
  static { this.COUNT = '/count'; }
7
25
  static { this.FIND_ONE = '/find-one'; }
8
26
  }
9
27
  exports.RestPaths = RestPaths;
28
+ // -----------------------------------------------------------------------------
29
+ // Default Headers
30
+ // -----------------------------------------------------------------------------
31
+ exports.trackableHeaders = zod_openapi_1.z.object({
32
+ [helpers_1.HTTP.Headers.REQUEST_TRACING_ID]: zod_openapi_1.z.string().optional().openapi({
33
+ description: 'Optional request ID',
34
+ }),
35
+ [helpers_1.HTTP.Headers.REQUEST_CHANNEL]: zod_openapi_1.z
36
+ .string()
37
+ .optional()
38
+ .openapi({
39
+ description: 'Optional request channel',
40
+ examples: ['channel-1', 'web', 'spos'],
41
+ }),
42
+ [helpers_1.HTTP.Headers.REQUEST_DEVICE_INFO]: zod_openapi_1.z
43
+ .string()
44
+ .optional()
45
+ .openapi({
46
+ description: 'Optional request device info',
47
+ examples: ['dev-1', 'device-abc', 'd-unique-id'],
48
+ }),
49
+ });
50
+ exports.countableHeaders = zod_openapi_1.z.object({
51
+ [helpers_1.HTTP.Headers.REQUEST_COUNT_DATA]: zod_openapi_1.z
52
+ .string()
53
+ .optional()
54
+ .openapi({
55
+ description: 'Controls response format. When "true" (default): returns {count, data}. When "false": returns data only.',
56
+ examples: ['true', '1', 'false', '0'],
57
+ }),
58
+ });
59
+ exports.defaultRequestHeaders = exports.trackableHeaders.extend(exports.countableHeaders.shape);
60
+ // Default response headers (OpenAPI Header Object format)
61
+ exports.commonResponseHeaders = {
62
+ [helpers_1.HTTP.Headers.REQUEST_TRACING_ID]: {
63
+ description: 'Echo of the request tracing ID',
64
+ schema: { type: 'string' },
65
+ },
66
+ [helpers_1.HTTP.Headers.RESPONSE_COUNT_DATA]: {
67
+ description: 'Number of records in response',
68
+ schema: { type: 'string', examples: ['1', '10', '100'] },
69
+ },
70
+ [helpers_1.HTTP.Headers.RESPONSE_FORMAT]: {
71
+ description: 'Response format indicator',
72
+ schema: { type: 'string', examples: ['array', 'object'] },
73
+ },
74
+ };
75
+ exports.findResponseHeaders = {
76
+ ...exports.commonResponseHeaders,
77
+ [helpers_1.HTTP.Headers.CONTENT_RANGE]: {
78
+ description: 'Content range for pagination (e.g., "records 0-24/100")',
79
+ schema: { type: 'string', examples: ['records 0-24/100', 'records 25-49/100'] },
80
+ },
81
+ };
10
82
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/base/controllers/common/constants.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;aACJ,SAAI,GAAG,GAAG,CAAC;aACX,UAAK,GAAG,QAAQ,CAAC;aACjB,aAAQ,GAAG,WAAW,CAAC;;AAHzC,8BAIC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/base/controllers/common/constants.ts"],"names":[],"mappings":";;;AAAA,uCAAiC;AACjC,mDAAsC;AAGtC;;;;;;;;;;;;;;;GAeG;AACH,MAAa,SAAS;aACJ,SAAI,GAAG,GAAG,CAAC;aACX,UAAK,GAAG,QAAQ,CAAC;aACjB,aAAQ,GAAG,WAAW,CAAC;;AAHzC,8BAIC;AAED,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AACnE,QAAA,gBAAgB,GAAG,eAAC,CAAC,MAAM,CAAC;IACvC,CAAC,cAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,eAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;QAC/D,WAAW,EAAE,qBAAqB;KACnC,CAAC;IACF,CAAC,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,eAAC;SAC9B,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC;QACP,WAAW,EAAE,0BAA0B;QACvC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC;KACvC,CAAC;IACJ,CAAC,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,eAAC;SAClC,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC;QACP,WAAW,EAAE,8BAA8B;QAC3C,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC;KACjD,CAAC;CACL,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,eAAC,CAAC,MAAM,CAAC;IACvC,CAAC,cAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,eAAC;SACjC,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC;QACP,WAAW,EACT,0GAA0G;QAC5G,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC;KACtC,CAAC;CACL,CAAC,CAAC;AAEU,QAAA,qBAAqB,GAAG,wBAAgB,CAAC,MAAM,CAAC,wBAAgB,CAAC,KAAK,CAAC,CAAC;AAErF,0DAA0D;AAC7C,QAAA,qBAAqB,GAAqB;IACrD,CAAC,cAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;QACjC,WAAW,EAAE,gCAAgC;QAC7C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC3B;IACD,CAAC,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;QAClC,WAAW,EAAE,+BAA+B;QAC5C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE;KACzD;IACD,CAAC,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;QAC9B,WAAW,EAAE,2BAA2B;QACxC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;KAC1D;CACF,CAAC;AAEW,QAAA,mBAAmB,GAAqB;IACnD,GAAG,6BAAqB;IACxB,CAAC,cAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QAC5B,WAAW,EAAE,yDAAyD;QACtE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,EAAE;KAChF;CACF,CAAC"}