@vercube/auth 0.0.1-alpha.19 → 0.0.1-beta.1

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.
@@ -1,7 +1,7 @@
1
- import { AuthenticationTypes } from "../Types/AuthenticationTypes.js";
1
+ import type { AuthTypes } from "../Types/AuthTypes.js";
2
2
  /**
3
3
  * Authentication decorator that adds middleware to protect routes or controllers
4
4
  * @param options Optional options for the authentication middleware
5
5
  * @returns A decorator function that adds authentication middleware to the target
6
6
  */
7
- export declare function Authenticate(options?: AuthenticationTypes.MiddlewareOptions): Function;
7
+ export declare function Auth(options?: AuthTypes.MiddlewareOptions): Function;
@@ -0,0 +1,32 @@
1
+ import { AuthProvider } from "../Services/AuthProvider.js";
2
+ /**
3
+ * Options for the User decorator
4
+ * @interface UserDecoratorOptions
5
+ */
6
+ interface UserDecoratorOptions {
7
+ /**
8
+ * Optional custom auth provider to use for retrieving the current user
9
+ * If not provided, the default AuthProvider will be used
10
+ */
11
+ provider?: typeof AuthProvider;
12
+ }
13
+ /**
14
+ * Creates a decorator that injects the current user into controller methods
15
+ *
16
+ * @param {UserDecoratorOptions} [params] - Optional configuration for the decorator
17
+ * @returns {Function} A decorator function that can be applied to controller method parameters
18
+ *
19
+ * @example
20
+ * // Basic usage
21
+ * async someMethod(@User() user: User) {
22
+ * // user is automatically injected
23
+ * }
24
+ *
25
+ * @example
26
+ * // With custom provider
27
+ * async someMethod(@User() user: User) {
28
+ * // user is retrieved using CustomAuthProvider
29
+ * }
30
+ */
31
+ export declare function User(params?: UserDecoratorOptions): Function;
32
+ export {};
@@ -1,18 +1,17 @@
1
1
  import { type BaseMiddleware, type MiddlewareOptions } from "@vercube/core";
2
- import { AuthenticationTypes } from "../Types/AuthenticationTypes.js";
2
+ import type { AuthTypes } from "../Types/AuthTypes.js";
3
3
  /**
4
- * Middleware for authentication
5
- * @class AuthenticationMiddleware
4
+ * Middleware for auth
6
5
  * @implements {BaseMiddleware}
7
- * @description Authenticates incoming request
6
+ * @description authorizes incoming request
8
7
  * @example
9
- * const middleware = new AuthenticationMiddleware();
8
+ * const middleware = new AuthMiddleware();
10
9
  * await middleware.use(event);
11
10
  */
12
- export declare class AuthenticationMiddleware implements BaseMiddleware<AuthenticationTypes.MiddlewareOptions> {
11
+ export declare class AuthMiddleware implements BaseMiddleware<AuthTypes.MiddlewareOptions> {
13
12
  private gContainer;
14
- private gAuthenticationProvider;
15
13
  private gLogger;
14
+ private gAuthProvider;
16
15
  /**
17
16
  * Middleware function that processes the HTTP event.
18
17
  *
@@ -21,5 +20,5 @@ export declare class AuthenticationMiddleware implements BaseMiddleware<Authenti
21
20
  * @param {MiddlewareOptions} args - Additional arguments for the middleware
22
21
  * @returns {Promise<void>} - A promise that resolves when the processing is complete.
23
22
  */
24
- onRequest(request: Request, response: Response, args: MiddlewareOptions<AuthenticationTypes.MiddlewareOptions>): Promise<void>;
23
+ onRequest(request: Request, response: Response, args: MiddlewareOptions<AuthTypes.MiddlewareOptions>): Promise<void>;
25
24
  }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Abstract class representing an authorization provider
3
+ * Provides a common interface for different authorization implementations
4
+ *
5
+ * @abstract
6
+ * @class AuthorizationProvider
7
+ */
8
+ import { AuthTypes } from "../Types/AuthTypes.js";
9
+ export declare abstract class AuthProvider<U = unknown> {
10
+ /**
11
+ * Validate authentication
12
+ * @param {Request} request - The request object
13
+ * @param {AuthTypes.MiddlewareOptions} params - Additional parameters
14
+ * @returns An error string or Promise of error string, null or Promise of null if authentication is successful
15
+ */
16
+ abstract validate(request: Request, params?: AuthTypes.MiddlewareOptions): Promise<string | null> | string | null;
17
+ /**
18
+ * Get current user
19
+ * @param {Request} request - The request object
20
+ * @returns A promise of the current user or null if no user is authenticated
21
+ */
22
+ abstract getCurrentUser(request: Request): Promise<U | null> | U | null;
23
+ }
@@ -0,0 +1,15 @@
1
+ import { AuthProvider } from "../Services/AuthProvider.js";
2
+ export declare namespace AuthTypes {
3
+ interface MiddlewareOptions {
4
+ /**
5
+ * Roles to authorize
6
+ * @default []
7
+ */
8
+ roles?: string[];
9
+ /**
10
+ * Override provider to use for authorization
11
+ * Default one is set inside of the IOC container
12
+ */
13
+ provider?: typeof AuthProvider;
14
+ }
15
+ }
package/dist/index.cjs CHANGED
@@ -28,8 +28,8 @@ const __vercube_core = __toESM(require("@vercube/core"));
28
28
  const __vercube_di = __toESM(require("@vercube/di"));
29
29
  const __vercube_logger = __toESM(require("@vercube/logger"));
30
30
 
31
- //#region packages/auth/src/Services/AuthenticationProvider.ts
32
- var AuthenticationProvider = class {};
31
+ //#region packages/auth/src/Services/AuthProvider.ts
32
+ var AuthProvider = class {};
33
33
 
34
34
  //#endregion
35
35
  //#region node_modules/.pnpm/@oxc-project+runtime@0.63.0/node_modules/@oxc-project/runtime/src/helpers/decorate.js
@@ -45,11 +45,11 @@ var require_decorate = __commonJS({ "node_modules/.pnpm/@oxc-project+runtime@0.6
45
45
  var import_decorate = __toESM(require_decorate(), 1);
46
46
 
47
47
  //#endregion
48
- //#region packages/auth/src/Middleware/AuthenticationMiddleware.ts
49
- var AuthenticationMiddleware = class {
48
+ //#region packages/auth/src/Middleware/AuthMiddleware.ts
49
+ var AuthMiddleware = class {
50
50
  gContainer;
51
- gAuthenticationProvider;
52
51
  gLogger;
52
+ gAuthProvider;
53
53
  /**
54
54
  * Middleware function that processes the HTTP event.
55
55
  *
@@ -59,90 +59,65 @@ var AuthenticationMiddleware = class {
59
59
  * @returns {Promise<void>} - A promise that resolves when the processing is complete.
60
60
  */
61
61
  async onRequest(request, response, args) {
62
- let provider = this.gAuthenticationProvider;
62
+ let provider = this.gAuthProvider;
63
63
  if (args?.middlewareArgs?.provider) provider = this.gContainer.getOptional(args.middlewareArgs.provider);
64
64
  if (!provider) {
65
- this.gLogger?.warn("AuthenticationMiddleware::AuthenticationProvider is not registered");
65
+ this.gLogger?.warn("AuthMiddleware::AuthProvider is not registered");
66
66
  return;
67
67
  }
68
- const authenticationError = await provider.authenticate(request);
68
+ const authenticationError = await provider.validate(request, args.middlewareArgs);
69
69
  if (authenticationError) throw new __vercube_core.UnauthorizedError(authenticationError);
70
70
  }
71
71
  };
72
- (0, import_decorate.default)([(0, __vercube_di.Inject)(__vercube_di.Container)], AuthenticationMiddleware.prototype, "gContainer", void 0);
73
- (0, import_decorate.default)([(0, __vercube_di.InjectOptional)(AuthenticationProvider)], AuthenticationMiddleware.prototype, "gAuthenticationProvider", void 0);
74
- (0, import_decorate.default)([(0, __vercube_di.InjectOptional)(__vercube_logger.Logger)], AuthenticationMiddleware.prototype, "gLogger", void 0);
72
+ (0, import_decorate.default)([(0, __vercube_di.Inject)(__vercube_di.Container)], AuthMiddleware.prototype, "gContainer", void 0);
73
+ (0, import_decorate.default)([(0, __vercube_di.InjectOptional)(__vercube_logger.Logger)], AuthMiddleware.prototype, "gLogger", void 0);
74
+ (0, import_decorate.default)([(0, __vercube_di.InjectOptional)(AuthProvider)], AuthMiddleware.prototype, "gAuthProvider", void 0);
75
75
 
76
76
  //#endregion
77
- //#region packages/auth/src/Decorators/Authenticate.ts
78
- function Authenticate(options) {
77
+ //#region packages/auth/src/Decorators/Auth.ts
78
+ function Auth(options) {
79
79
  return function internalDecorator(target, propertyName) {
80
80
  const meta = (0, __vercube_core.initializeMetadata)(propertyName ? target : target.prototype);
81
81
  if (propertyName) (0, __vercube_core.initializeMetadataMethod)(target, propertyName);
82
82
  meta.__middlewares.push({
83
83
  target: propertyName ?? "__global__",
84
84
  priority: -999,
85
- middleware: AuthenticationMiddleware,
85
+ middleware: AuthMiddleware,
86
86
  args: { ...options }
87
87
  });
88
88
  };
89
89
  }
90
90
 
91
91
  //#endregion
92
- //#region packages/auth/src/Services/AuthorizationProvider.ts
93
- var AuthorizationProvider = class {};
94
-
95
- //#endregion
96
- //#region packages/auth/src/Middleware/AuthorizationMiddleware.ts
97
- var AuthorizationMiddleware = class {
92
+ //#region packages/auth/src/Decorators/User.ts
93
+ var UserDecorator = class extends __vercube_di.BaseDecorator {
98
94
  gContainer;
99
- gAuthorizationProvider;
100
- gLogger;
101
95
  /**
102
- * Middleware function that processes the HTTP event.
103
- *
104
- * @param {Request} request - The HTTP request event.
105
- * @param {Response} response - The HTTP response event.
106
- * @param {MiddlewareOptions} args - Additional arguments for the middleware
107
- * @returns {Promise<void>} - A promise that resolves when the processing is complete.
96
+ * Called when the decorator is created.
97
+ * Initializes metadata for the property and adds parameter information
98
+ * to handle user injection in controller methods.
108
99
  */
109
- async onRequest(request, response, args) {
110
- let provider = this.gAuthorizationProvider;
111
- if (args.middlewareArgs?.options?.provider) provider = this.gContainer.getOptional(args.middlewareArgs.options.provider);
112
- if (!provider) {
113
- this.gLogger?.warn("AuthorizationMiddleware::AuthorizationProvider is not registered");
114
- return;
115
- }
116
- const authorizationError = await provider.authorize(request, args.middlewareArgs.params);
117
- if (authorizationError) throw new __vercube_core.ForbiddenError(authorizationError);
118
- }
119
- };
120
- (0, import_decorate.default)([(0, __vercube_di.Inject)(__vercube_di.Container)], AuthorizationMiddleware.prototype, "gContainer", void 0);
121
- (0, import_decorate.default)([(0, __vercube_di.InjectOptional)(AuthorizationProvider)], AuthorizationMiddleware.prototype, "gAuthorizationProvider", void 0);
122
- (0, import_decorate.default)([(0, __vercube_di.InjectOptional)(__vercube_logger.Logger)], AuthorizationMiddleware.prototype, "gLogger", void 0);
123
-
124
- //#endregion
125
- //#region packages/auth/src/Decorators/Authorize.ts
126
- function Authorize(params, options) {
127
- return function internalDecorator(target, propertyName) {
128
- const meta = (0, __vercube_core.initializeMetadata)(propertyName ? target : target.prototype);
129
- if (propertyName) (0, __vercube_core.initializeMetadataMethod)(target, propertyName);
130
- meta.__middlewares.push({
131
- target: propertyName ?? "__global__",
132
- priority: -998,
133
- middleware: AuthorizationMiddleware,
134
- args: {
135
- params,
136
- options
100
+ created() {
101
+ (0, __vercube_core.initializeMetadata)(this.prototype);
102
+ const method = (0, __vercube_core.initializeMetadataMethod)(this.prototype, this.propertyName);
103
+ method.args.push({
104
+ idx: this.propertyIndex,
105
+ type: "custom",
106
+ resolver: async (event) => {
107
+ const provider = this.options?.provider ? this.gContainer.getOptional(this.options.provider) : this.gContainer.getOptional(AuthProvider);
108
+ if (!provider) return null;
109
+ return provider.getCurrentUser(event.request);
137
110
  }
138
111
  });
139
- };
112
+ }
113
+ };
114
+ (0, import_decorate.default)([(0, __vercube_di.Inject)(__vercube_di.Container)], UserDecorator.prototype, "gContainer", void 0);
115
+ function User(params) {
116
+ return (0, __vercube_di.createDecorator)(UserDecorator, params);
140
117
  }
141
118
 
142
119
  //#endregion
143
- exports.Authenticate = Authenticate
144
- exports.AuthenticationMiddleware = AuthenticationMiddleware
145
- exports.AuthenticationProvider = AuthenticationProvider
146
- exports.AuthorizationMiddleware = AuthorizationMiddleware
147
- exports.AuthorizationProvider = AuthorizationProvider
148
- exports.Authorize = Authorize
120
+ exports.Auth = Auth
121
+ exports.AuthMiddleware = AuthMiddleware
122
+ exports.AuthProvider = AuthProvider
123
+ exports.User = User
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- export * from "./Decorators/Authenticate.js";
2
- export * from "./Decorators/Authorize.js";
3
- export * from "./Middleware/AuthenticationMiddleware.js";
4
- export * from "./Middleware/AuthorizationMiddleware.js";
5
- export * from "./Services/AuthenticationProvider.js";
6
- export * from "./Services/AuthorizationProvider.js";
1
+ export * from "./Decorators/Auth.js";
2
+ export * from "./Decorators/User.js";
3
+ export * from "./Middleware/AuthMiddleware.js";
4
+ export * from "./Services/AuthProvider.js";
5
+ export * from "./Types/AuthTypes.js";
package/dist/index.mjs CHANGED
@@ -1,9 +1,9 @@
1
- import { ForbiddenError, UnauthorizedError, initializeMetadata, initializeMetadataMethod } from "@vercube/core";
2
- import { Container, Inject, InjectOptional } from "@vercube/di";
1
+ import { UnauthorizedError, initializeMetadata, initializeMetadataMethod } from "@vercube/core";
2
+ import { BaseDecorator, Container, Inject, InjectOptional, createDecorator } from "@vercube/di";
3
3
  import { Logger } from "@vercube/logger";
4
4
 
5
- //#region packages/auth/src/Services/AuthenticationProvider.ts
6
- var AuthenticationProvider = class {};
5
+ //#region packages/auth/src/Services/AuthProvider.ts
6
+ var AuthProvider = class {};
7
7
 
8
8
  //#endregion
9
9
  //#region node_modules/.pnpm/@oxc-project+runtime@0.63.0/node_modules/@oxc-project/runtime/src/helpers/esm/decorate.js
@@ -15,11 +15,11 @@ function __decorate(decorators, target, key, desc) {
15
15
  }
16
16
 
17
17
  //#endregion
18
- //#region packages/auth/src/Middleware/AuthenticationMiddleware.ts
19
- var AuthenticationMiddleware = class {
18
+ //#region packages/auth/src/Middleware/AuthMiddleware.ts
19
+ var AuthMiddleware = class {
20
20
  gContainer;
21
- gAuthenticationProvider;
22
21
  gLogger;
22
+ gAuthProvider;
23
23
  /**
24
24
  * Middleware function that processes the HTTP event.
25
25
  *
@@ -29,85 +29,62 @@ var AuthenticationMiddleware = class {
29
29
  * @returns {Promise<void>} - A promise that resolves when the processing is complete.
30
30
  */
31
31
  async onRequest(request, response, args) {
32
- let provider = this.gAuthenticationProvider;
32
+ let provider = this.gAuthProvider;
33
33
  if (args?.middlewareArgs?.provider) provider = this.gContainer.getOptional(args.middlewareArgs.provider);
34
34
  if (!provider) {
35
- this.gLogger?.warn("AuthenticationMiddleware::AuthenticationProvider is not registered");
35
+ this.gLogger?.warn("AuthMiddleware::AuthProvider is not registered");
36
36
  return;
37
37
  }
38
- const authenticationError = await provider.authenticate(request);
38
+ const authenticationError = await provider.validate(request, args.middlewareArgs);
39
39
  if (authenticationError) throw new UnauthorizedError(authenticationError);
40
40
  }
41
41
  };
42
- __decorate([Inject(Container)], AuthenticationMiddleware.prototype, "gContainer", void 0);
43
- __decorate([InjectOptional(AuthenticationProvider)], AuthenticationMiddleware.prototype, "gAuthenticationProvider", void 0);
44
- __decorate([InjectOptional(Logger)], AuthenticationMiddleware.prototype, "gLogger", void 0);
42
+ __decorate([Inject(Container)], AuthMiddleware.prototype, "gContainer", void 0);
43
+ __decorate([InjectOptional(Logger)], AuthMiddleware.prototype, "gLogger", void 0);
44
+ __decorate([InjectOptional(AuthProvider)], AuthMiddleware.prototype, "gAuthProvider", void 0);
45
45
 
46
46
  //#endregion
47
- //#region packages/auth/src/Decorators/Authenticate.ts
48
- function Authenticate(options) {
47
+ //#region packages/auth/src/Decorators/Auth.ts
48
+ function Auth(options) {
49
49
  return function internalDecorator(target, propertyName) {
50
50
  const meta = initializeMetadata(propertyName ? target : target.prototype);
51
51
  if (propertyName) initializeMetadataMethod(target, propertyName);
52
52
  meta.__middlewares.push({
53
53
  target: propertyName ?? "__global__",
54
54
  priority: -999,
55
- middleware: AuthenticationMiddleware,
55
+ middleware: AuthMiddleware,
56
56
  args: { ...options }
57
57
  });
58
58
  };
59
59
  }
60
60
 
61
61
  //#endregion
62
- //#region packages/auth/src/Services/AuthorizationProvider.ts
63
- var AuthorizationProvider = class {};
64
-
65
- //#endregion
66
- //#region packages/auth/src/Middleware/AuthorizationMiddleware.ts
67
- var AuthorizationMiddleware = class {
62
+ //#region packages/auth/src/Decorators/User.ts
63
+ var UserDecorator = class extends BaseDecorator {
68
64
  gContainer;
69
- gAuthorizationProvider;
70
- gLogger;
71
65
  /**
72
- * Middleware function that processes the HTTP event.
73
- *
74
- * @param {Request} request - The HTTP request event.
75
- * @param {Response} response - The HTTP response event.
76
- * @param {MiddlewareOptions} args - Additional arguments for the middleware
77
- * @returns {Promise<void>} - A promise that resolves when the processing is complete.
66
+ * Called when the decorator is created.
67
+ * Initializes metadata for the property and adds parameter information
68
+ * to handle user injection in controller methods.
78
69
  */
79
- async onRequest(request, response, args) {
80
- let provider = this.gAuthorizationProvider;
81
- if (args.middlewareArgs?.options?.provider) provider = this.gContainer.getOptional(args.middlewareArgs.options.provider);
82
- if (!provider) {
83
- this.gLogger?.warn("AuthorizationMiddleware::AuthorizationProvider is not registered");
84
- return;
85
- }
86
- const authorizationError = await provider.authorize(request, args.middlewareArgs.params);
87
- if (authorizationError) throw new ForbiddenError(authorizationError);
88
- }
89
- };
90
- __decorate([Inject(Container)], AuthorizationMiddleware.prototype, "gContainer", void 0);
91
- __decorate([InjectOptional(AuthorizationProvider)], AuthorizationMiddleware.prototype, "gAuthorizationProvider", void 0);
92
- __decorate([InjectOptional(Logger)], AuthorizationMiddleware.prototype, "gLogger", void 0);
93
-
94
- //#endregion
95
- //#region packages/auth/src/Decorators/Authorize.ts
96
- function Authorize(params, options) {
97
- return function internalDecorator(target, propertyName) {
98
- const meta = initializeMetadata(propertyName ? target : target.prototype);
99
- if (propertyName) initializeMetadataMethod(target, propertyName);
100
- meta.__middlewares.push({
101
- target: propertyName ?? "__global__",
102
- priority: -998,
103
- middleware: AuthorizationMiddleware,
104
- args: {
105
- params,
106
- options
70
+ created() {
71
+ initializeMetadata(this.prototype);
72
+ const method = initializeMetadataMethod(this.prototype, this.propertyName);
73
+ method.args.push({
74
+ idx: this.propertyIndex,
75
+ type: "custom",
76
+ resolver: async (event) => {
77
+ const provider = this.options?.provider ? this.gContainer.getOptional(this.options.provider) : this.gContainer.getOptional(AuthProvider);
78
+ if (!provider) return null;
79
+ return provider.getCurrentUser(event.request);
107
80
  }
108
81
  });
109
- };
82
+ }
83
+ };
84
+ __decorate([Inject(Container)], UserDecorator.prototype, "gContainer", void 0);
85
+ function User(params) {
86
+ return createDecorator(UserDecorator, params);
110
87
  }
111
88
 
112
89
  //#endregion
113
- export { Authenticate, AuthenticationMiddleware, AuthenticationProvider, AuthorizationMiddleware, AuthorizationProvider, Authorize };
90
+ export { Auth, AuthMiddleware, AuthProvider, User };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vercube/auth",
3
- "version": "0.0.1-alpha.19",
3
+ "version": "0.0.1-beta.1",
4
4
  "description": "Auth module for Vercube framework",
5
5
  "repository": "@vercube/auth",
6
6
  "license": "MIT",
@@ -20,9 +20,9 @@
20
20
  "dist"
21
21
  ],
22
22
  "dependencies": {
23
- "@vercube/core": "0.0.1-alpha.19",
24
- "@vercube/di": "0.0.1-alpha.19",
25
- "@vercube/logger": "0.0.1-alpha.19"
23
+ "@vercube/core": "0.0.1-beta.1",
24
+ "@vercube/di": "0.0.1-beta.1",
25
+ "@vercube/logger": "0.0.1-beta.1"
26
26
  },
27
27
  "publishConfig": {
28
28
  "access": "public"
@@ -1,8 +0,0 @@
1
- import { AuthorizationTypes } from "../Types/AuthorizationTypes.js";
2
- /**
3
- * Authorization decorator that adds middleware to protect routes or controllers
4
- * @param params Parameters for the authorization middleware
5
- * @param options Optional options for the authorization middleware
6
- * @returns A decorator function that adds authorization middleware to the target
7
- */
8
- export declare function Authorize<T>(params: T, options?: AuthorizationTypes.MiddlewareOptions<T>): Function;
@@ -1,28 +0,0 @@
1
- import { type BaseMiddleware, type MiddlewareOptions } from "@vercube/core";
2
- import { AuthorizationTypes } from "../Types/AuthorizationTypes.js";
3
- /**
4
- * Middleware for authorization
5
- * @class AuthorizationMiddleware
6
- * @implements {BaseMiddleware}
7
- * @description Authorizes incoming request
8
- * @example
9
- * const middleware = new AuthorizationMiddleware<UserType>();
10
- * await middleware.use(event, args);
11
- */
12
- export declare class AuthorizationMiddleware<T> implements BaseMiddleware {
13
- private gContainer;
14
- private gAuthorizationProvider;
15
- private gLogger;
16
- /**
17
- * Middleware function that processes the HTTP event.
18
- *
19
- * @param {Request} request - The HTTP request event.
20
- * @param {Response} response - The HTTP response event.
21
- * @param {MiddlewareOptions} args - Additional arguments for the middleware
22
- * @returns {Promise<void>} - A promise that resolves when the processing is complete.
23
- */
24
- onRequest(request: Request, response: Response, args: MiddlewareOptions<{
25
- options: AuthorizationTypes.MiddlewareOptions
26
- params: T
27
- }>): Promise<void>;
28
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * Abstract class representing an authentication provider
3
- * Provides a common interface for different authentication implementations
4
- *
5
- * @abstract
6
- * @class AuthenticationProvider
7
- */
8
- export declare abstract class AuthenticationProvider {
9
- /**
10
- * Authenticates based on the HTTP event
11
- * @param request - The HTTP event containing the request
12
- * @returns An error string or Promise of error string, null or Promise of null if authentication is successful
13
- */
14
- abstract authenticate(request: Request): Promise<string | null> | string | null;
15
- }
@@ -1,16 +0,0 @@
1
- /**
2
- * Abstract class representing an authorization provider
3
- * Provides a common interface for different authorization implementations
4
- *
5
- * @abstract
6
- * @class AuthorizationProvider
7
- */
8
- export declare abstract class AuthorizationProvider<T> {
9
- /**
10
- * Authorizes based on given params
11
- * @param {Request} request - The request object
12
- * @param {T} params - Additional parameters
13
- * @returns An error string or Promise of error string, null or Promise of null if authentication is successful
14
- */
15
- abstract authorize(request: Request, params: T): Promise<string | null> | string | null;
16
- }