@venizia/ignis 0.0.7-7 → 0.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.
- package/dist/base/controllers/abstract.d.ts +7 -7
- package/dist/base/controllers/abstract.d.ts.map +1 -1
- package/dist/base/controllers/abstract.js +57 -31
- package/dist/base/controllers/abstract.js.map +1 -1
- package/dist/base/controllers/base.d.ts +5 -5
- package/dist/base/controllers/base.d.ts.map +1 -1
- package/dist/base/controllers/base.js.map +1 -1
- package/dist/base/controllers/common/constants.js +9 -9
- package/dist/base/controllers/common/constants.js.map +1 -1
- package/dist/base/controllers/common/types.d.ts +56 -23
- package/dist/base/controllers/common/types.d.ts.map +1 -1
- package/dist/base/controllers/common/types.js.map +1 -1
- package/dist/base/controllers/factory/controller.d.ts +35 -16
- package/dist/base/controllers/factory/controller.d.ts.map +1 -1
- package/dist/base/controllers/factory/controller.js +10 -8
- package/dist/base/controllers/factory/controller.js.map +1 -1
- package/dist/base/controllers/factory/definition.d.ts +13 -2
- package/dist/base/controllers/factory/definition.d.ts.map +1 -1
- package/dist/base/controllers/factory/definition.js +65 -35
- package/dist/base/controllers/factory/definition.js.map +1 -1
- package/dist/base/metadata/routes.d.ts +7 -7
- package/dist/base/metadata/routes.d.ts.map +1 -1
- package/dist/base/metadata/routes.js.map +1 -1
- package/dist/components/auth/authenticate/common/constants.d.ts +3 -1
- package/dist/components/auth/authenticate/common/constants.d.ts.map +1 -1
- package/dist/components/auth/authenticate/common/constants.js +4 -0
- package/dist/components/auth/authenticate/common/constants.js.map +1 -1
- package/dist/components/auth/authenticate/common/types.d.ts +8 -4
- package/dist/components/auth/authenticate/common/types.d.ts.map +1 -1
- package/dist/components/auth/authenticate/component.d.ts +2 -2
- package/dist/components/auth/authenticate/component.d.ts.map +1 -1
- package/dist/components/auth/authenticate/component.js +9 -9
- package/dist/components/auth/authenticate/component.js.map +1 -1
- package/dist/components/auth/authenticate/controllers/factory.d.ts +12 -12
- package/dist/components/auth/authenticate/controllers/factory.d.ts.map +1 -1
- package/dist/components/auth/authenticate/controllers/factory.js +22 -21
- package/dist/components/auth/authenticate/controllers/factory.js.map +1 -1
- package/dist/components/auth/authenticate/index.d.ts +2 -0
- package/dist/components/auth/authenticate/index.d.ts.map +1 -1
- package/dist/components/auth/authenticate/index.js +2 -0
- package/dist/components/auth/authenticate/index.js.map +1 -1
- package/dist/components/auth/authenticate/middlewares/authenticate.middleware.d.ts +6 -0
- package/dist/components/auth/authenticate/middlewares/authenticate.middleware.d.ts.map +1 -0
- package/dist/components/auth/authenticate/middlewares/authenticate.middleware.js +14 -0
- package/dist/components/auth/authenticate/middlewares/authenticate.middleware.js.map +1 -0
- package/dist/components/auth/authenticate/middlewares/index.d.ts +2 -0
- package/dist/components/auth/authenticate/middlewares/index.d.ts.map +1 -0
- package/dist/components/auth/authenticate/middlewares/index.js +18 -0
- package/dist/components/auth/authenticate/middlewares/index.js.map +1 -0
- package/dist/components/auth/authenticate/providers/authentication.provider.d.ts +12 -0
- package/dist/components/auth/authenticate/providers/authentication.provider.d.ts.map +1 -0
- package/dist/components/auth/authenticate/providers/authentication.provider.js +124 -0
- package/dist/components/auth/authenticate/providers/authentication.provider.js.map +1 -0
- package/dist/components/auth/authenticate/providers/index.d.ts +2 -0
- package/dist/components/auth/authenticate/providers/index.d.ts.map +1 -0
- package/dist/components/auth/authenticate/providers/index.js +18 -0
- package/dist/components/auth/authenticate/providers/index.js.map +1 -0
- package/dist/components/auth/authenticate/services/basic-token.service.d.ts +2 -2
- package/dist/components/auth/authenticate/services/basic-token.service.d.ts.map +1 -1
- package/dist/components/auth/authenticate/services/basic-token.service.js +5 -6
- package/dist/components/auth/authenticate/services/basic-token.service.js.map +1 -1
- package/dist/components/auth/authenticate/services/jwt-token.service.d.ts +3 -3
- package/dist/components/auth/authenticate/services/jwt-token.service.d.ts.map +1 -1
- package/dist/components/auth/authenticate/services/jwt-token.service.js +6 -7
- package/dist/components/auth/authenticate/services/jwt-token.service.js.map +1 -1
- package/dist/components/auth/authenticate/strategies/basic.strategy.d.ts +1 -1
- package/dist/components/auth/authenticate/strategies/basic.strategy.d.ts.map +1 -1
- package/dist/components/auth/authenticate/strategies/basic.strategy.js +4 -4
- package/dist/components/auth/authenticate/strategies/basic.strategy.js.map +1 -1
- package/dist/components/auth/authenticate/strategies/jwt.strategy.d.ts +1 -1
- package/dist/components/auth/authenticate/strategies/jwt.strategy.d.ts.map +1 -1
- package/dist/components/auth/authenticate/strategies/jwt.strategy.js +4 -4
- package/dist/components/auth/authenticate/strategies/jwt.strategy.js.map +1 -1
- package/dist/components/auth/authenticate/strategies/strategy-registry.d.ts +11 -24
- package/dist/components/auth/authenticate/strategies/strategy-registry.d.ts.map +1 -1
- package/dist/components/auth/authenticate/strategies/strategy-registry.js +14 -132
- package/dist/components/auth/authenticate/strategies/strategy-registry.js.map +1 -1
- package/dist/components/auth/authorize/common/constants.d.ts +37 -0
- package/dist/components/auth/authorize/common/constants.d.ts.map +1 -0
- package/dist/components/auth/authorize/common/constants.js +78 -0
- package/dist/components/auth/authorize/common/constants.js.map +1 -0
- package/dist/components/auth/authorize/common/index.d.ts +4 -0
- package/dist/components/auth/authorize/common/index.d.ts.map +1 -0
- package/dist/components/auth/authorize/common/index.js +20 -0
- package/dist/components/auth/authorize/common/index.js.map +1 -0
- package/dist/components/auth/authorize/common/keys.d.ts +7 -0
- package/dist/components/auth/authorize/common/keys.d.ts.map +1 -0
- package/dist/components/auth/authorize/common/keys.js +11 -0
- package/dist/components/auth/authorize/common/keys.js.map +1 -0
- package/dist/components/auth/authorize/common/types.d.ts +127 -0
- package/dist/components/auth/authorize/common/types.d.ts.map +1 -0
- package/dist/components/auth/authorize/{middleware.js → common/types.js} +1 -1
- package/dist/components/auth/authorize/common/types.js.map +1 -0
- package/dist/components/auth/authorize/component.d.ts +9 -0
- package/dist/components/auth/authorize/component.d.ts.map +1 -0
- package/dist/components/auth/authorize/component.js +80 -0
- package/dist/components/auth/authorize/component.js.map +1 -0
- package/dist/components/auth/authorize/enforcers/casbin.enforcer.d.ts +22 -0
- package/dist/components/auth/authorize/enforcers/casbin.enforcer.d.ts.map +1 -0
- package/dist/components/auth/authorize/enforcers/casbin.enforcer.js +95 -0
- package/dist/components/auth/authorize/enforcers/casbin.enforcer.js.map +1 -0
- package/dist/components/auth/authorize/enforcers/default.enforcer.d.ts +37 -0
- package/dist/components/auth/authorize/enforcers/default.enforcer.d.ts.map +1 -0
- package/dist/components/auth/authorize/enforcers/default.enforcer.js +125 -0
- package/dist/components/auth/authorize/enforcers/default.enforcer.js.map +1 -0
- package/dist/components/auth/authorize/enforcers/enforcer-registry.d.ts +27 -0
- package/dist/components/auth/authorize/enforcers/enforcer-registry.d.ts.map +1 -0
- package/dist/components/auth/authorize/enforcers/enforcer-registry.js +63 -0
- package/dist/components/auth/authorize/enforcers/enforcer-registry.js.map +1 -0
- package/dist/components/auth/authorize/enforcers/index.d.ts +4 -0
- package/dist/components/auth/authorize/enforcers/index.d.ts.map +1 -0
- package/dist/components/auth/authorize/enforcers/index.js +20 -0
- package/dist/components/auth/authorize/enforcers/index.js.map +1 -0
- package/dist/components/auth/authorize/index.d.ts +6 -1
- package/dist/components/auth/authorize/index.d.ts.map +1 -1
- package/dist/components/auth/authorize/index.js +20 -0
- package/dist/components/auth/authorize/index.js.map +1 -1
- package/dist/components/auth/authorize/middlewares/authorize.middleware.d.ts +6 -0
- package/dist/components/auth/authorize/middlewares/authorize.middleware.d.ts.map +1 -0
- package/dist/components/auth/authorize/middlewares/authorize.middleware.js +14 -0
- package/dist/components/auth/authorize/middlewares/authorize.middleware.js.map +1 -0
- package/dist/components/auth/authorize/middlewares/index.d.ts +2 -0
- package/dist/components/auth/authorize/middlewares/index.d.ts.map +1 -0
- package/dist/components/auth/authorize/middlewares/index.js +18 -0
- package/dist/components/auth/authorize/middlewares/index.js.map +1 -0
- package/dist/components/auth/authorize/models/authorization-role.model.d.ts +30 -0
- package/dist/components/auth/authorize/models/authorization-role.model.d.ts.map +1 -0
- package/dist/components/auth/authorize/models/authorization-role.model.js +31 -0
- package/dist/components/auth/authorize/models/authorization-role.model.js.map +1 -0
- package/dist/components/auth/authorize/models/index.d.ts +2 -0
- package/dist/components/auth/authorize/models/index.d.ts.map +1 -0
- package/dist/components/auth/authorize/models/index.js +18 -0
- package/dist/components/auth/authorize/models/index.js.map +1 -0
- package/dist/components/auth/authorize/providers/authorization.provider.d.ts +10 -0
- package/dist/components/auth/authorize/providers/authorization.provider.d.ts.map +1 -0
- package/dist/components/auth/authorize/providers/authorization.provider.js +130 -0
- package/dist/components/auth/authorize/providers/authorization.provider.js.map +1 -0
- package/dist/components/auth/authorize/providers/index.d.ts +2 -0
- package/dist/components/auth/authorize/providers/index.d.ts.map +1 -0
- package/dist/components/auth/authorize/providers/index.js +18 -0
- package/dist/components/auth/authorize/providers/index.js.map +1 -0
- package/dist/components/auth/base/abstract-auth-registry.d.ts +26 -0
- package/dist/components/auth/base/abstract-auth-registry.d.ts.map +1 -0
- package/dist/components/auth/base/abstract-auth-registry.js +62 -0
- package/dist/components/auth/base/abstract-auth-registry.js.map +1 -0
- package/dist/components/auth/base/index.d.ts +2 -0
- package/dist/components/auth/base/index.d.ts.map +1 -0
- package/dist/components/auth/base/index.js +18 -0
- package/dist/components/auth/base/index.js.map +1 -0
- package/dist/components/auth/index.d.ts +1 -0
- package/dist/components/auth/index.d.ts.map +1 -1
- package/dist/components/auth/index.js +1 -0
- package/dist/components/auth/index.js.map +1 -1
- package/dist/components/auth/models/entities/role.model.js +2 -2
- package/dist/components/auth/models/entities/role.model.js.map +1 -1
- package/dist/components/auth/models/entities/user-role.model.d.ts +1 -1
- package/dist/components/auth/models/entities/user-role.model.d.ts.map +1 -1
- package/dist/components/auth/models/entities/user-role.model.js +2 -2
- package/dist/components/auth/models/entities/user-role.model.js.map +1 -1
- package/dist/components/auth/models/entities/user.model.js +3 -3
- package/dist/components/auth/models/entities/user.model.js.map +1 -1
- package/dist/components/auth/models/requests/change-password.schema.js +3 -3
- package/dist/components/auth/models/requests/change-password.schema.js.map +1 -1
- package/dist/components/auth/models/requests/sign-in.schema.js +5 -5
- package/dist/components/auth/models/requests/sign-in.schema.js.map +1 -1
- package/dist/components/static-asset/controller/factory.d.ts +6 -6
- package/dist/components/websocket/component.d.ts.map +1 -1
- package/dist/components/websocket/component.js.map +1 -1
- package/package.json +5 -2
- package/dist/components/auth/authorize/middleware.d.ts +0 -2
- package/dist/components/auth/authorize/middleware.d.ts.map +0 -1
- package/dist/components/auth/authorize/middleware.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Hook, OpenAPIHono } from '@hono/zod-openapi';
|
|
2
2
|
import { BaseHelper, ValueOrPromise } from '@venizia/ignis-helpers';
|
|
3
3
|
import { Env, Schema } from 'hono';
|
|
4
|
-
import { IController, IControllerOptions,
|
|
4
|
+
import { IController, IControllerOptions, IAuthRouteConfig, IBindRouteOptions, IDefineRouteOptions, TRouteHandler } from './common/types';
|
|
5
5
|
/**
|
|
6
6
|
* Abstract base class for all controllers in the Ignis framework.
|
|
7
7
|
*
|
|
@@ -34,7 +34,7 @@ import { IController, IControllerOptions, IAuthenticateRouteConfig, IBindRouteOp
|
|
|
34
34
|
* }
|
|
35
35
|
* ```
|
|
36
36
|
*/
|
|
37
|
-
export declare abstract class AbstractController<RouteEnv extends Env = Env, RouteSchema extends Schema = {}, BasePath extends string = '/', ConfigurableOptions extends object = {}, Definitions extends Record<string,
|
|
37
|
+
export declare abstract class AbstractController<RouteEnv extends Env = Env, RouteSchema extends Schema = {}, BasePath extends string = '/', ConfigurableOptions extends object = {}, Definitions extends Record<string, IAuthRouteConfig> = Record<string, IAuthRouteConfig>> extends BaseHelper implements IController<RouteEnv, RouteSchema, BasePath, ConfigurableOptions> {
|
|
38
38
|
/** The OpenAPIHono router instance managing all routes for this controller */
|
|
39
39
|
router: OpenAPIHono<RouteEnv, RouteSchema, BasePath>;
|
|
40
40
|
/**
|
|
@@ -87,7 +87,7 @@ export declare abstract class AbstractController<RouteEnv extends Env = Env, Rou
|
|
|
87
87
|
* Processes route configuration, adding authentication middleware and OpenAPI metadata.
|
|
88
88
|
*
|
|
89
89
|
* Transforms a route config by:
|
|
90
|
-
* - Converting `authenticate.strategies` to OpenAPI security
|
|
90
|
+
* - Converting `authenticate.strategies` to OpenAPI security specs
|
|
91
91
|
* - Creating authentication middleware based on strategies and mode
|
|
92
92
|
* - Adding the controller scope to route tags
|
|
93
93
|
* - Merging any existing middleware
|
|
@@ -96,7 +96,7 @@ export declare abstract class AbstractController<RouteEnv extends Env = Env, Rou
|
|
|
96
96
|
* @param opts - Object containing the route configuration
|
|
97
97
|
* @returns Processed route configuration ready for registration
|
|
98
98
|
*/
|
|
99
|
-
getRouteConfigs<RouteConfig extends
|
|
99
|
+
getRouteConfigs<RouteConfig extends IAuthRouteConfig>(opts: {
|
|
100
100
|
configs: RouteConfig;
|
|
101
101
|
}): RouteConfig & {
|
|
102
102
|
getRoutingPath(): RouteConfig["path"] extends infer T ? T extends RouteConfig["path"] ? T extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${/*elided*/ any}` : Tail}` : Tail}` : Tail}` : Tail}` : Tail}` : Tail}` : Tail}` : Tail}` : Tail}` : Tail}` : T : never : never;
|
|
@@ -111,7 +111,7 @@ export declare abstract class AbstractController<RouteEnv extends Env = Env, Rou
|
|
|
111
111
|
* @param opts - Object containing the route configuration
|
|
112
112
|
* @returns Processed route configuration with HTML response schema
|
|
113
113
|
*/
|
|
114
|
-
getJSXRouteConfigs<RouteConfig extends
|
|
114
|
+
getJSXRouteConfigs<RouteConfig extends IAuthRouteConfig>(opts: {
|
|
115
115
|
configs: RouteConfig;
|
|
116
116
|
}): RouteConfig & {
|
|
117
117
|
getRoutingPath(): RouteConfig["path"] extends infer T ? T extends RouteConfig["path"] ? T extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${Tail extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${/*elided*/ any}` : Tail}` : Tail}` : Tail}` : Tail}` : Tail}` : Tail}` : Tail}` : Tail}` : Tail}` : Tail}` : T : never : never;
|
|
@@ -139,7 +139,7 @@ export declare abstract class AbstractController<RouteEnv extends Env = Env, Rou
|
|
|
139
139
|
* @param opts - Object containing route configuration
|
|
140
140
|
* @returns Binding options with `to()` method for attaching the handler
|
|
141
141
|
*/
|
|
142
|
-
abstract bindRoute<RouteConfig extends
|
|
142
|
+
abstract bindRoute<RouteConfig extends IAuthRouteConfig>(opts: {
|
|
143
143
|
configs: RouteConfig;
|
|
144
144
|
}): IBindRouteOptions<RouteConfig, RouteEnv, RouteSchema, BasePath>;
|
|
145
145
|
/**
|
|
@@ -148,7 +148,7 @@ export declare abstract class AbstractController<RouteEnv extends Env = Env, Rou
|
|
|
148
148
|
* @param opts - Object containing route config, handler, and optional hook
|
|
149
149
|
* @returns The registered route definition
|
|
150
150
|
*/
|
|
151
|
-
abstract defineRoute<RouteConfig extends
|
|
151
|
+
abstract defineRoute<RouteConfig extends IAuthRouteConfig, ResponseType = unknown>(opts: {
|
|
152
152
|
configs: RouteConfig;
|
|
153
153
|
handler: TRouteHandler<ResponseType, RouteEnv>;
|
|
154
154
|
hook?: Hook<any, RouteEnv, string, ValueOrPromise<any>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../src/base/controllers/abstract.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../src/base/controllers/abstract.ts"],"names":[],"mappings":"AAMA,OAAO,EAAe,IAAI,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAY,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAIxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,8BAAsB,kBAAkB,CACtC,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,gBAAgB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAEvF,SAAQ,UACR,YAAW,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,CAAC;IAE5E,8EAA8E;IAC9E,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAErD;;;;;;;;;;;;OAYG;IACH,WAAW,EAAE,WAAW,CAAC;IAEzB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;OAKG;gBACS,IAAI,EAAE,kBAAkB;IA4BpC;;;;OAIG;IACH,SAAS;IAIT;;;;;OAKG;IACH,0BAA0B,IAAI,IAAI;IAiBlC;;;;;;;;OAQG;IACG,SAAS,CACb,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAcxD;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,WAAW,SAAS,gBAAgB,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE;;;IA8CpF;;;;;;;;;OASG;IACH,kBAAkB,CAAC,WAAW,SAAS,gBAAgB,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE;;;IAkDvF;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC;IAExC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,WAAW,SAAS,gBAAgB,EAAE,IAAI,EAAE;QAC7D,OAAO,EAAE,WAAW,CAAC;KACtB,GAAG,iBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;IAEnE;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,WAAW,SAAS,gBAAgB,EAAE,YAAY,GAAG,OAAO,EAAE,IAAI,EAAE;QACvF,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;CACtE"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AbstractController = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const constants_1 = require("../../components/auth/authenticate/common/constants");
|
|
5
|
+
const authenticate_middleware_1 = require("../../components/auth/authenticate/middlewares/authenticate.middleware");
|
|
6
|
+
const authorize_middleware_1 = require("../../components/auth/authorize/middlewares/authorize.middleware");
|
|
7
|
+
const registry_1 = require("../../helpers/inversion/registry");
|
|
6
8
|
const jsx_utility_1 = require("../../utilities/jsx.utility");
|
|
7
9
|
const zod_openapi_1 = require("@hono/zod-openapi");
|
|
8
10
|
const ignis_helpers_1 = require("@venizia/ignis-helpers");
|
|
@@ -50,7 +52,7 @@ class AbstractController extends ignis_helpers_1.BaseHelper {
|
|
|
50
52
|
super(opts);
|
|
51
53
|
const { isStrict = true } = opts;
|
|
52
54
|
// Resolve path: decorator metadata takes priority, then constructor option
|
|
53
|
-
const decoratorMetadata =
|
|
55
|
+
const decoratorMetadata = registry_1.MetadataRegistry.getInstance().getControllerMetadata({
|
|
54
56
|
target: new.target,
|
|
55
57
|
});
|
|
56
58
|
const resolvedPath = decoratorMetadata?.path ?? opts.path;
|
|
@@ -84,7 +86,7 @@ class AbstractController extends ignis_helpers_1.BaseHelper {
|
|
|
84
86
|
* routes and binds them to their handler methods.
|
|
85
87
|
*/
|
|
86
88
|
registerRoutesFromRegistry() {
|
|
87
|
-
const routes =
|
|
89
|
+
const routes = registry_1.MetadataRegistry.getInstance().getRoutes({
|
|
88
90
|
target: Object.getPrototypeOf(this),
|
|
89
91
|
});
|
|
90
92
|
if (!routes?.size) {
|
|
@@ -108,22 +110,19 @@ class AbstractController extends ignis_helpers_1.BaseHelper {
|
|
|
108
110
|
*/
|
|
109
111
|
async configure(opts) {
|
|
110
112
|
const t = performance.now();
|
|
113
|
+
const logger = this.logger.for(this.configure.name);
|
|
111
114
|
const configureOptions = opts ?? {};
|
|
112
|
-
|
|
113
|
-
.for(this.configure.name)
|
|
114
|
-
.info('START | Binding controller | Options: %j', configureOptions);
|
|
115
|
+
logger.info('START | Binding controller | Options: %j', configureOptions);
|
|
115
116
|
await this.binding();
|
|
116
117
|
this.registerRoutesFromRegistry();
|
|
117
|
-
|
|
118
|
-
.for(this.configure.name)
|
|
119
|
-
.info('DONE | Binding controller | Took: %s (ms)', performance.now() - t);
|
|
118
|
+
logger.info('DONE | Binding controller | Took: %s (ms)', performance.now() - t);
|
|
120
119
|
return this.router;
|
|
121
120
|
}
|
|
122
121
|
/**
|
|
123
122
|
* Processes route configuration, adding authentication middleware and OpenAPI metadata.
|
|
124
123
|
*
|
|
125
124
|
* Transforms a route config by:
|
|
126
|
-
* - Converting `authenticate.strategies` to OpenAPI security
|
|
125
|
+
* - Converting `authenticate.strategies` to OpenAPI security specs
|
|
127
126
|
* - Creating authentication middleware based on strategies and mode
|
|
128
127
|
* - Adding the controller scope to route tags
|
|
129
128
|
* - Merging any existing middleware
|
|
@@ -134,23 +133,34 @@ class AbstractController extends ignis_helpers_1.BaseHelper {
|
|
|
134
133
|
*/
|
|
135
134
|
getRouteConfigs(opts) {
|
|
136
135
|
const { configs } = opts;
|
|
137
|
-
const { authenticate = {}, ...restConfig } = configs;
|
|
138
|
-
const { strategies = [], mode =
|
|
139
|
-
const security = strategies.map(strategy => ({ [strategy]: [] }));
|
|
140
|
-
const mws =
|
|
136
|
+
const { authenticate = {}, authorize, ...restConfig } = configs;
|
|
137
|
+
const { strategies = [], mode = constants_1.AuthenticationModes.ANY } = authenticate;
|
|
138
|
+
const security = strategies.map((strategy) => ({ [strategy]: [] }));
|
|
139
|
+
const mws = [];
|
|
140
|
+
// Inject authenticate middleware
|
|
141
|
+
if (strategies.length > 0) {
|
|
142
|
+
mws.push((0, authenticate_middleware_1.authenticate)({ strategies, mode }));
|
|
143
|
+
}
|
|
144
|
+
// Inject authorize middleware AFTER authenticate
|
|
145
|
+
if (authorize) {
|
|
146
|
+
const specs = Array.isArray(authorize) ? authorize : [authorize];
|
|
147
|
+
for (const spec of specs) {
|
|
148
|
+
mws.push((0, authorize_middleware_1.authorize)({ spec }));
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
// Inject custom middleware
|
|
141
152
|
if (restConfig.middleware) {
|
|
142
153
|
const extraMws = Array.isArray(restConfig.middleware)
|
|
143
154
|
? restConfig.middleware
|
|
144
155
|
: [restConfig.middleware];
|
|
145
156
|
for (const mw of extraMws) {
|
|
146
|
-
if (
|
|
147
|
-
|
|
157
|
+
if (mw) {
|
|
158
|
+
mws.push(mw);
|
|
148
159
|
}
|
|
149
|
-
mws.push(mw);
|
|
150
160
|
}
|
|
151
161
|
}
|
|
152
|
-
const { tags = [] } =
|
|
153
|
-
return (0, zod_openapi_1.createRoute)(Object.assign({},
|
|
162
|
+
const { tags = [] } = restConfig;
|
|
163
|
+
return (0, zod_openapi_1.createRoute)(Object.assign({}, restConfig, {
|
|
154
164
|
middleware: mws,
|
|
155
165
|
tags: [...tags, this.scope],
|
|
156
166
|
security,
|
|
@@ -168,18 +178,34 @@ class AbstractController extends ignis_helpers_1.BaseHelper {
|
|
|
168
178
|
*/
|
|
169
179
|
getJSXRouteConfigs(opts) {
|
|
170
180
|
const { configs } = opts;
|
|
171
|
-
const { authenticate = {}, ...restConfig } = configs;
|
|
172
|
-
const { strategies = [], mode =
|
|
173
|
-
const security = strategies.map(strategy => ({ [strategy]: [] }));
|
|
174
|
-
const mws =
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
181
|
+
const { authenticate = {}, authorize, ...restConfig } = configs;
|
|
182
|
+
const { strategies = [], mode = constants_1.AuthenticationModes.ANY } = authenticate;
|
|
183
|
+
const security = strategies.map((strategy) => ({ [strategy]: [] }));
|
|
184
|
+
const mws = [];
|
|
185
|
+
// Inject authenticate middleware
|
|
186
|
+
if (strategies.length > 0) {
|
|
187
|
+
mws.push((0, authenticate_middleware_1.authenticate)({ strategies, mode }));
|
|
188
|
+
}
|
|
189
|
+
// Inject authorize middleware AFTER authenticate
|
|
190
|
+
if (authorize) {
|
|
191
|
+
const specs = Array.isArray(authorize) ? authorize : [authorize];
|
|
192
|
+
for (const spec of specs) {
|
|
193
|
+
mws.push((0, authorize_middleware_1.authorize)({ spec }));
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
// Inject custom middleware
|
|
197
|
+
if (restConfig.middleware) {
|
|
198
|
+
const extraMws = Array.isArray(restConfig.middleware)
|
|
199
|
+
? restConfig.middleware
|
|
200
|
+
: [restConfig.middleware];
|
|
201
|
+
for (const mw of extraMws) {
|
|
202
|
+
if (mw) {
|
|
203
|
+
mws.push(mw);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
180
206
|
}
|
|
181
|
-
const { responses, tags = [] } =
|
|
182
|
-
return (0, zod_openapi_1.createRoute)(Object.assign({},
|
|
207
|
+
const { responses, tags = [] } = restConfig;
|
|
208
|
+
return (0, zod_openapi_1.createRoute)(Object.assign({}, restConfig, {
|
|
183
209
|
responses: Object.assign({}, (0, jsx_utility_1.htmlResponse)({ description: 'HTML page' }), responses),
|
|
184
210
|
tags: [...tags, this.scope],
|
|
185
211
|
security,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../src/base/controllers/abstract.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../src/base/controllers/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { Hook, OpenAPIHono } from '@hono/zod-openapi';
|
|
|
2
2
|
import { ValueOrPromise } from '@venizia/ignis-helpers';
|
|
3
3
|
import { Env, Schema } from 'hono';
|
|
4
4
|
import { AbstractController } from './abstract';
|
|
5
|
-
import {
|
|
5
|
+
import { IAuthRouteConfig, IBindRouteOptions, IDefineRouteOptions, TRouteHandler } from './common/types';
|
|
6
6
|
/**
|
|
7
7
|
* Base controller class with default implementations for route binding.
|
|
8
8
|
*
|
|
@@ -44,7 +44,7 @@ import { IAuthenticateRouteConfig, IBindRouteOptions, IDefineRouteOptions, TRout
|
|
|
44
44
|
* }
|
|
45
45
|
* ```
|
|
46
46
|
*/
|
|
47
|
-
export declare abstract class BaseController<RouteEnv extends Env = Env, RouteSchema extends Schema = {}, BasePath extends string = '/', ConfigurableOptions extends object = {}, Definitions extends Record<string,
|
|
47
|
+
export declare abstract class BaseController<RouteEnv extends Env = Env, RouteSchema extends Schema = {}, BasePath extends string = '/', ConfigurableOptions extends object = {}, Definitions extends Record<string, IAuthRouteConfig> = Record<string, IAuthRouteConfig>> extends AbstractController<RouteEnv, RouteSchema, BasePath, ConfigurableOptions, Definitions> {
|
|
48
48
|
/**
|
|
49
49
|
* Helper method to cast to Hono OpenAPI Handler
|
|
50
50
|
*/
|
|
@@ -67,7 +67,7 @@ export declare abstract class BaseController<RouteEnv extends Env = Env, RouteSc
|
|
|
67
67
|
* binding.to({ handler: myHandler });
|
|
68
68
|
* ```
|
|
69
69
|
*/
|
|
70
|
-
bindRoute<RouteConfig extends
|
|
70
|
+
bindRoute<RouteConfig extends IAuthRouteConfig>(opts: {
|
|
71
71
|
configs: RouteConfig;
|
|
72
72
|
}): IBindRouteOptions<RouteConfig, RouteEnv, RouteSchema, BasePath>;
|
|
73
73
|
/**
|
|
@@ -98,7 +98,7 @@ export declare abstract class BaseController<RouteEnv extends Env = Env, RouteSc
|
|
|
98
98
|
* });
|
|
99
99
|
* ```
|
|
100
100
|
*/
|
|
101
|
-
defineRoute<RouteConfig extends
|
|
101
|
+
defineRoute<RouteConfig extends IAuthRouteConfig, ResponseType = unknown>(opts: {
|
|
102
102
|
configs: RouteConfig;
|
|
103
103
|
handler: TRouteHandler<ResponseType, RouteEnv>;
|
|
104
104
|
hook?: Hook<any, RouteEnv, string, ValueOrPromise<any>>;
|
|
@@ -128,7 +128,7 @@ export declare abstract class BaseController<RouteEnv extends Env = Env, RouteSc
|
|
|
128
128
|
* @param opts - Route configuration and handler
|
|
129
129
|
* @returns Route definition
|
|
130
130
|
*/
|
|
131
|
-
defineJSXRoute<RouteConfig extends
|
|
131
|
+
defineJSXRoute<RouteConfig extends IAuthRouteConfig, ResponseType = unknown>(opts: {
|
|
132
132
|
configs: RouteConfig;
|
|
133
133
|
handler: TRouteHandler<ResponseType, RouteEnv>;
|
|
134
134
|
hook?: Hook<any, RouteEnv, string, ValueOrPromise<any>>;
|
|
@@ -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,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,
|
|
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,gBAAgB,EAChB,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,gBAAgB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CACvF,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,gBAAgB,EAAE,IAAI,EAAE;QACpD,OAAO,EAAE,WAAW,CAAC;KACtB,GAAG,iBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;IAcnE;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,WAAW,CAAC,WAAW,SAAS,gBAAgB,EAAE,YAAY,GAAG,OAAO,EAAE,IAAI,EAAE;QAC9E,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,gBAAgB,EAAE,YAAY,GAAG,OAAO,EAAE,IAAI,EAAE;QACjF,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/base/controllers/base.ts"],"names":[],"mappings":";;;AAGA,yCAAgD;AAQhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAsB,
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/base/controllers/base.ts"],"names":[],"mappings":";;;AAGA,yCAAgD;AAQhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAsB,cAMpB,SAAQ,6BAAqF;IAC7F;;OAEG;IACH,aAAa,CAAyB,IAAwD;QAC5F,OAAO,IAAI,CAAC,OAA0D,CAAC;IACzE,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAuC,IAE/C;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,CAA+D,IAIzE;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,CAA+D,IAI5E;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;AAjID,wCAiIC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.findResponseHeaders = exports.commonResponseHeaders = exports.defaultRequestHeaders = exports.countableHeaders = exports.trackableHeaders = exports.RestPaths = void 0;
|
|
4
|
-
const
|
|
4
|
+
const ignis_helpers_1 = require("@venizia/ignis-helpers");
|
|
5
5
|
const zod_openapi_1 = require("@hono/zod-openapi");
|
|
6
6
|
/**
|
|
7
7
|
* Standard REST API path constants for CRUD controllers.
|
|
@@ -29,17 +29,17 @@ exports.RestPaths = RestPaths;
|
|
|
29
29
|
// Default Headers
|
|
30
30
|
// -----------------------------------------------------------------------------
|
|
31
31
|
exports.trackableHeaders = zod_openapi_1.z.object({
|
|
32
|
-
[
|
|
32
|
+
[ignis_helpers_1.HTTP.Headers.REQUEST_TRACING_ID]: zod_openapi_1.z.string().optional().openapi({
|
|
33
33
|
description: 'Optional request ID',
|
|
34
34
|
}),
|
|
35
|
-
[
|
|
35
|
+
[ignis_helpers_1.HTTP.Headers.REQUEST_CHANNEL]: zod_openapi_1.z
|
|
36
36
|
.string()
|
|
37
37
|
.optional()
|
|
38
38
|
.openapi({
|
|
39
39
|
description: 'Optional request channel',
|
|
40
40
|
examples: ['channel-1', 'web', 'spos'],
|
|
41
41
|
}),
|
|
42
|
-
[
|
|
42
|
+
[ignis_helpers_1.HTTP.Headers.REQUEST_DEVICE_INFO]: zod_openapi_1.z
|
|
43
43
|
.string()
|
|
44
44
|
.optional()
|
|
45
45
|
.openapi({
|
|
@@ -48,7 +48,7 @@ exports.trackableHeaders = zod_openapi_1.z.object({
|
|
|
48
48
|
}),
|
|
49
49
|
});
|
|
50
50
|
exports.countableHeaders = zod_openapi_1.z.object({
|
|
51
|
-
[
|
|
51
|
+
[ignis_helpers_1.HTTP.Headers.REQUEST_COUNT_DATA]: zod_openapi_1.z
|
|
52
52
|
.string()
|
|
53
53
|
.optional()
|
|
54
54
|
.openapi({
|
|
@@ -59,22 +59,22 @@ exports.countableHeaders = zod_openapi_1.z.object({
|
|
|
59
59
|
exports.defaultRequestHeaders = exports.trackableHeaders.extend(exports.countableHeaders.shape);
|
|
60
60
|
// Default response headers (OpenAPI Header Object format)
|
|
61
61
|
exports.commonResponseHeaders = {
|
|
62
|
-
[
|
|
62
|
+
[ignis_helpers_1.HTTP.Headers.REQUEST_TRACING_ID]: {
|
|
63
63
|
description: 'Echo of the request tracing ID',
|
|
64
64
|
schema: { type: 'string' },
|
|
65
65
|
},
|
|
66
|
-
[
|
|
66
|
+
[ignis_helpers_1.HTTP.Headers.RESPONSE_COUNT_DATA]: {
|
|
67
67
|
description: 'Number of records in response',
|
|
68
68
|
schema: { type: 'string', examples: ['1', '10', '100'] },
|
|
69
69
|
},
|
|
70
|
-
[
|
|
70
|
+
[ignis_helpers_1.HTTP.Headers.RESPONSE_FORMAT]: {
|
|
71
71
|
description: 'Response format indicator',
|
|
72
72
|
schema: { type: 'string', examples: ['array', 'object'] },
|
|
73
73
|
},
|
|
74
74
|
};
|
|
75
75
|
exports.findResponseHeaders = {
|
|
76
76
|
...exports.commonResponseHeaders,
|
|
77
|
-
[
|
|
77
|
+
[ignis_helpers_1.HTTP.Headers.CONTENT_RANGE]: {
|
|
78
78
|
description: 'Content range for pagination (e.g., "records 0-24/100")',
|
|
79
79
|
schema: { type: 'string', examples: ['records 0-24/100', 'records 25-49/100'] },
|
|
80
80
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/base/controllers/common/constants.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/base/controllers/common/constants.ts"],"names":[],"mappings":";;;AAAA,0DAA8C;AAC9C,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,oBAAI,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,oBAAI,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,oBAAI,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,oBAAI,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,oBAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;QACjC,WAAW,EAAE,gCAAgC;QAC7C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC3B;IACD,CAAC,oBAAI,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,oBAAI,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,oBAAI,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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { TAuthMode, TAuthStrategy } from '../../../components/auth/authenticate/common';
|
|
1
|
+
import { TAuthMode, TAuthStrategy } from '../../../components/auth/authenticate/common/constants';
|
|
2
|
+
import type { IAuthorizationSpec } from '../../../components/auth/authorize/common/types';
|
|
2
3
|
import { TAnyObjectSchema } from '../../../utilities/schema.utility';
|
|
3
4
|
import type { RouteConfig as HonoRouteConfig } from '@hono/zod-openapi';
|
|
4
5
|
import { createRoute, Hook, OpenAPIHono, z } from '@hono/zod-openapi';
|
|
@@ -83,17 +84,17 @@ export interface IBindRouteOptions<RouteConfig extends HonoRouteConfig, RouteEnv
|
|
|
83
84
|
}) => IDefineRouteOptions<RouteConfig, RouteEnv, RouteSchema, BasePath>;
|
|
84
85
|
}
|
|
85
86
|
/**
|
|
86
|
-
* Route configuration extended with authentication
|
|
87
|
+
* Route configuration extended with authentication and authorization.
|
|
87
88
|
*
|
|
88
|
-
* Adds optional `authenticate`
|
|
89
|
-
* declarative
|
|
90
|
-
* ```
|
|
89
|
+
* Adds optional `authenticate` and `authorize` fields to standard route config
|
|
90
|
+
* for declarative auth configuration on individual routes.
|
|
91
91
|
*/
|
|
92
|
-
export interface
|
|
92
|
+
export interface IAuthRouteConfig extends HonoRouteConfig {
|
|
93
93
|
authenticate?: {
|
|
94
94
|
strategies?: TAuthStrategy[];
|
|
95
95
|
mode?: TAuthMode;
|
|
96
96
|
};
|
|
97
|
+
authorize?: IAuthorizationSpec | IAuthorizationSpec[];
|
|
97
98
|
}
|
|
98
99
|
/**
|
|
99
100
|
* Base controller interface defining the contract for all controllers.
|
|
@@ -133,19 +134,19 @@ export interface IController<RouteEnv extends Env = Env, RouteSchema extends Sch
|
|
|
133
134
|
* @param opts - Object containing route configuration
|
|
134
135
|
* @returns Binding options with a `to()` method for attaching the handler
|
|
135
136
|
*/
|
|
136
|
-
bindRoute<RouteConfig extends
|
|
137
|
+
bindRoute<RouteConfig extends IAuthRouteConfig>(opts: {
|
|
137
138
|
configs: RouteConfig;
|
|
138
139
|
}): IBindRouteOptions<RouteConfig, RouteEnv, RouteSchema, BasePath>;
|
|
139
140
|
/**
|
|
140
141
|
* Defines and registers a route with its handler in a single call.
|
|
141
142
|
*
|
|
142
|
-
* Preferred method for most use cases. Applies authentication
|
|
143
|
-
* automatically based on
|
|
143
|
+
* Preferred method for most use cases. Applies authentication and authorization
|
|
144
|
+
* middleware automatically based on config.
|
|
144
145
|
*
|
|
145
146
|
* @param opts - Object containing route config, handler, and optional hook
|
|
146
147
|
* @returns The registered route definition
|
|
147
148
|
*/
|
|
148
|
-
defineRoute<RouteConfig extends
|
|
149
|
+
defineRoute<RouteConfig extends IAuthRouteConfig, ResponseType = unknown>(opts: {
|
|
149
150
|
configs: RouteConfig;
|
|
150
151
|
handler: TRouteHandler<ResponseType, RouteEnv>;
|
|
151
152
|
hook?: Hook<any, RouteEnv, string, ValueOrPromise<any>>;
|
|
@@ -177,22 +178,54 @@ export interface IControllerOptions {
|
|
|
177
178
|
isStrict?: boolean;
|
|
178
179
|
}
|
|
179
180
|
/**
|
|
180
|
-
* Per-route authentication configuration.
|
|
181
|
+
* Per-route authentication configuration (scoped under `authenticate`).
|
|
182
|
+
*
|
|
183
|
+
* - `{ skip: true }` — skip authentication for this route
|
|
184
|
+
* - `{ strategies, mode }` — override controller-level authentication
|
|
185
|
+
*/
|
|
186
|
+
export type TRouteAuthenticateConfig = {
|
|
187
|
+
skip: true;
|
|
188
|
+
} | {
|
|
189
|
+
skip?: false;
|
|
190
|
+
strategies?: TAuthStrategy[];
|
|
191
|
+
mode?: TAuthMode;
|
|
192
|
+
};
|
|
193
|
+
/**
|
|
194
|
+
* Per-route authorization configuration (scoped under `authorize`).
|
|
195
|
+
*
|
|
196
|
+
* - `{ skip: true }` — skip authorization for this route
|
|
197
|
+
* - `IAuthorizationSpec` — single requirement
|
|
198
|
+
* - `IAuthorizationSpec[]` — multiple requirements (all must pass)
|
|
199
|
+
*/
|
|
200
|
+
export type TRouteAuthorizeConfig = {
|
|
201
|
+
skip: true;
|
|
202
|
+
} | IAuthorizationSpec | IAuthorizationSpec[];
|
|
203
|
+
/**
|
|
204
|
+
* Per-route auth configuration for CRUD factory routes.
|
|
181
205
|
*
|
|
182
206
|
* Priority (endpoint config takes precedence over controller):
|
|
183
|
-
* 1. If endpoint has `
|
|
184
|
-
* 2. If endpoint has `authenticate
|
|
185
|
-
* 3. Otherwise -> use controller-level authenticate
|
|
207
|
+
* 1. If endpoint has `authenticate: { skip: true }` -> no auth (also skips authorize)
|
|
208
|
+
* 2. If endpoint has `authenticate: { strategies, mode }` -> use these (overrides controller)
|
|
209
|
+
* 3. Otherwise -> use controller-level authenticate
|
|
210
|
+
*
|
|
211
|
+
* @example
|
|
212
|
+
* ```typescript
|
|
213
|
+
* // Skip auth for public read endpoints
|
|
214
|
+
* find: { authenticate: { skip: true } }
|
|
215
|
+
*
|
|
216
|
+
* // Override auth strategy for a specific route
|
|
217
|
+
* create: { authenticate: { strategies: ['jwt'], mode: 'required' } }
|
|
218
|
+
*
|
|
219
|
+
* // Skip only authorization (keep authentication)
|
|
220
|
+
* updateById: { authorize: { skip: true } }
|
|
221
|
+
*
|
|
222
|
+
* // Override authorization for a specific route
|
|
223
|
+
* deleteById: { authorize: { action: 'delete', resource: 'User' } }
|
|
224
|
+
* ```
|
|
186
225
|
*/
|
|
187
226
|
export type TRouteAuthConfig = {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
} | {
|
|
191
|
-
skipAuth?: false;
|
|
192
|
-
authenticate?: {
|
|
193
|
-
strategies?: TAuthStrategy[];
|
|
194
|
-
mode?: TAuthMode;
|
|
195
|
-
};
|
|
227
|
+
authenticate?: TRouteAuthenticateConfig;
|
|
228
|
+
authorize?: TRouteAuthorizeConfig;
|
|
196
229
|
};
|
|
197
230
|
/** OpenAPI response header object */
|
|
198
231
|
export type TResponseHeaderObject = {
|
|
@@ -220,7 +253,7 @@ export type TCustomizableRouteConfig = TRouteAuthConfig & {
|
|
|
220
253
|
* Per-route configuration for CRUD controller endpoints.
|
|
221
254
|
*
|
|
222
255
|
* Each route supports full customization of:
|
|
223
|
-
* - Authentication (
|
|
256
|
+
* - Authentication (authenticate: { skip } or { strategies, mode })
|
|
224
257
|
* - Request (query, params, body, headers)
|
|
225
258
|
* - Response (schema, headers)
|
|
226
259
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/base/controllers/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/base/controllers/common/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/base/controllers/common/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/base/controllers/common/types.ts"],"names":[],"mappings":";;;AA+DA;;;GAGG;AACI,MAAM,cAAc,GAAG,CAAgB,OAAgB,EAAuB,EAAE;IACrF,OAAO,OAA8B,CAAC;AACxC,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB"}
|