@aifabrix/miso-client 1.8.1 → 1.9.2

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 (40) hide show
  1. package/README.md +63 -0
  2. package/dist/index.d.ts +79 -17
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +104 -31
  5. package/dist/index.js.map +1 -1
  6. package/dist/services/auth.service.d.ts +14 -6
  7. package/dist/services/auth.service.d.ts.map +1 -1
  8. package/dist/services/auth.service.js +20 -13
  9. package/dist/services/auth.service.js.map +1 -1
  10. package/dist/services/logger.service.js +1 -1
  11. package/dist/services/logger.service.js.map +1 -1
  12. package/dist/services/permission.service.d.ts +22 -6
  13. package/dist/services/permission.service.d.ts.map +1 -1
  14. package/dist/services/permission.service.js +30 -15
  15. package/dist/services/permission.service.js.map +1 -1
  16. package/dist/services/role.service.d.ts +19 -5
  17. package/dist/services/role.service.d.ts.map +1 -1
  18. package/dist/services/role.service.js +26 -13
  19. package/dist/services/role.service.js.map +1 -1
  20. package/dist/types/config.types.d.ts +26 -0
  21. package/dist/types/config.types.d.ts.map +1 -1
  22. package/dist/types/config.types.js.map +1 -1
  23. package/dist/utils/audit-log-queue.js +1 -1
  24. package/dist/utils/audit-log-queue.js.map +1 -1
  25. package/dist/utils/auth-strategy.d.ts +38 -0
  26. package/dist/utils/auth-strategy.d.ts.map +1 -0
  27. package/dist/utils/auth-strategy.js +106 -0
  28. package/dist/utils/auth-strategy.js.map +1 -0
  29. package/dist/utils/config-loader.d.ts.map +1 -1
  30. package/dist/utils/config-loader.js +19 -0
  31. package/dist/utils/config-loader.js.map +1 -1
  32. package/dist/utils/http-client.d.ts +21 -2
  33. package/dist/utils/http-client.d.ts.map +1 -1
  34. package/dist/utils/http-client.js +29 -4
  35. package/dist/utils/http-client.js.map +1 -1
  36. package/dist/utils/internal-http-client.d.ts +13 -2
  37. package/dist/utils/internal-http-client.d.ts.map +1 -1
  38. package/dist/utils/internal-http-client.js +67 -9
  39. package/dist/utils/internal-http-client.js.map +1 -1
  40. package/package.json +1 -1
package/README.md CHANGED
@@ -481,6 +481,59 @@ const response = createPaginatedListResponse(
481
481
  → [Complete sort example](docs/examples.md#sorting)
482
482
  → [API Reference](docs/api-reference.md#pagination-utilities)
483
483
 
484
+ ---
485
+
486
+ ### Step 9: Multi-Authentication Strategy
487
+
488
+ **What happens:** Configure flexible authentication methods with priority-based fallback for advanced authentication scenarios.
489
+
490
+ ```typescript
491
+ import { MisoClient, loadConfig } from '@aifabrix/miso-client';
492
+
493
+ const client = new MisoClient(loadConfig());
494
+ await client.initialize();
495
+
496
+ // Global strategy configuration
497
+ const client = new MisoClient({
498
+ ...loadConfig(),
499
+ authStrategy: {
500
+ methods: ['bearer', 'client-token', 'client-credentials']
501
+ }
502
+ });
503
+
504
+ // Per-request strategy override
505
+ const strategy = client.createAuthStrategy(['bearer', 'api-key'], 'token-123', 'api-key-456');
506
+ await client.getRoles(token, strategy);
507
+
508
+ // Using requestWithAuthStrategy for custom requests
509
+ await client.requestWithAuthStrategy('GET', '/api/data', {
510
+ methods: ['client-token']
511
+ });
512
+
513
+ // Get default strategy
514
+ const defaultStrategy = client.getDefaultAuthStrategy(token);
515
+ // Returns: { methods: ['bearer', 'client-token'], bearerToken: token }
516
+ ```
517
+
518
+ **Supported Authentication Methods:**
519
+ - `bearer` - Bearer token authentication (Authorization: Bearer <token>)
520
+ - `client-token` - Client token authentication (x-client-token header)
521
+ - `client-credentials` - Client credentials authentication (X-Client-Id and X-Client-Secret headers)
522
+ - `api-key` - API key authentication (Authorization: Bearer <api-key>)
523
+
524
+ **Priority-Based Fallback:** Methods are tried in the order specified in the strategy array until one succeeds.
525
+
526
+ **Environment Variable Configuration:**
527
+ ```bash
528
+ MISO_AUTH_STRATEGY=bearer,client-token,api-key
529
+ MISO_BEARER_TOKEN=optional-bearer-token
530
+ MISO_API_KEY=optional-api-key
531
+ ```
532
+
533
+ **Backward Compatibility:** All existing code continues to work without changes. If no strategy is specified, defaults to `['bearer', 'client-token']` (existing behavior).
534
+
535
+ → [Complete authentication strategy example](docs/examples.md#authentication-strategy)
536
+ → [API Reference](docs/api-reference.md#authentication-strategy)
484
537
 
485
538
  ---
486
539
 
@@ -496,12 +549,19 @@ interface MisoClientConfig {
496
549
  encryptionKey?: string; // Optional: Encryption key (or use ENCRYPTION_KEY env var)
497
550
  sensitiveFieldsConfig?: string; // Optional: Path to ISO 27001 sensitive fields config JSON
498
551
  emitEvents?: boolean; // Optional: Emit log events instead of HTTP/Redis (for direct SDK embedding)
552
+ authStrategy?: AuthStrategy; // Optional: Default authentication strategy
499
553
  cache?: {
500
554
  roleTTL?: number; // Role cache TTL (default: 900s)
501
555
  permissionTTL?: number; // Permission cache TTL (default: 900s)
502
556
  };
503
557
  audit?: AuditConfig; // Optional: Audit logging configuration
504
558
  }
559
+
560
+ interface AuthStrategy {
561
+ methods: ('bearer' | 'client-token' | 'client-credentials' | 'api-key')[];
562
+ bearerToken?: string; // Optional: Bearer token for bearer authentication
563
+ apiKey?: string; // Optional: API key for api-key authentication
564
+ }
505
565
  ```
506
566
 
507
567
  **Recommended:** Use `loadConfig()` to load from `.env` file automatically.
@@ -607,6 +667,9 @@ REDIS_PORT=6379
607
667
  MISO_LOG_LEVEL=info
608
668
  MISO_SENSITIVE_FIELDS_CONFIG=/path/to/sensitive-fields.config.json # Optional: ISO 27001 config
609
669
  MISO_EMIT_EVENTS=true # Optional: Enable event emission mode (for direct SDK embedding)
670
+ MISO_AUTH_STRATEGY=bearer,client-token,api-key # Optional: Authentication strategy (comma-separated)
671
+ MISO_BEARER_TOKEN=optional-bearer-token # Optional: Default bearer token
672
+ MISO_API_KEY=optional-api-key # Optional: Default API key
610
673
  ```
611
674
 
612
675
  ---
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  import { LoggerService } from './services/logger.service';
5
5
  import { EncryptionService } from './services/encryption.service';
6
6
  import { CacheService } from './services/cache.service';
7
- import { MisoClientConfig, UserInfo } from './types/config.types';
7
+ import { MisoClientConfig, UserInfo, AuthStrategy } from './types/config.types';
8
8
  export declare class MisoClient {
9
9
  private config;
10
10
  private httpClient;
@@ -50,68 +50,104 @@ export declare class MisoClient {
50
50
  login(redirectUri: string): string;
51
51
  /**
52
52
  * Validate token with controller
53
+ * @param token - User authentication token
54
+ * @param authStrategy - Optional authentication strategy override
53
55
  */
54
- validateToken(token: string): Promise<boolean>;
56
+ validateToken(token: string, authStrategy?: AuthStrategy): Promise<boolean>;
55
57
  /**
56
58
  * Get user information from token
59
+ * @param token - User authentication token
60
+ * @param authStrategy - Optional authentication strategy override
57
61
  */
58
- getUser(token: string): Promise<UserInfo | null>;
62
+ getUser(token: string, authStrategy?: AuthStrategy): Promise<UserInfo | null>;
59
63
  /**
60
- * Get user information from GET /api/auth/user endpoint
64
+ * Get user information from GET /api/v1/auth/user endpoint
65
+ * @param token - User authentication token
66
+ * @param authStrategy - Optional authentication strategy override
61
67
  */
62
- getUserInfo(token: string): Promise<UserInfo | null>;
68
+ getUserInfo(token: string, authStrategy?: AuthStrategy): Promise<UserInfo | null>;
63
69
  /**
64
70
  * Check if user is authenticated
71
+ * @param token - User authentication token
72
+ * @param authStrategy - Optional authentication strategy override
65
73
  */
66
- isAuthenticated(token: string): Promise<boolean>;
74
+ isAuthenticated(token: string, authStrategy?: AuthStrategy): Promise<boolean>;
67
75
  /**
68
76
  * Logout user
69
77
  */
70
78
  logout(): Promise<void>;
71
79
  /**
72
80
  * Get user roles (cached in Redis if available)
81
+ * @param token - User authentication token
82
+ * @param authStrategy - Optional authentication strategy override
73
83
  */
74
- getRoles(token: string): Promise<string[]>;
84
+ getRoles(token: string, authStrategy?: AuthStrategy): Promise<string[]>;
75
85
  /**
76
86
  * Check if user has specific role
87
+ * @param token - User authentication token
88
+ * @param role - Role to check
89
+ * @param authStrategy - Optional authentication strategy override
77
90
  */
78
- hasRole(token: string, role: string): Promise<boolean>;
91
+ hasRole(token: string, role: string, authStrategy?: AuthStrategy): Promise<boolean>;
79
92
  /**
80
93
  * Check if user has any of the specified roles
94
+ * @param token - User authentication token
95
+ * @param roles - Roles to check
96
+ * @param authStrategy - Optional authentication strategy override
81
97
  */
82
- hasAnyRole(token: string, roles: string[]): Promise<boolean>;
98
+ hasAnyRole(token: string, roles: string[], authStrategy?: AuthStrategy): Promise<boolean>;
83
99
  /**
84
100
  * Check if user has all of the specified roles
101
+ * @param token - User authentication token
102
+ * @param roles - Roles to check
103
+ * @param authStrategy - Optional authentication strategy override
85
104
  */
86
- hasAllRoles(token: string, roles: string[]): Promise<boolean>;
105
+ hasAllRoles(token: string, roles: string[], authStrategy?: AuthStrategy): Promise<boolean>;
87
106
  /**
88
107
  * Force refresh roles from controller (bypass cache)
108
+ * @param token - User authentication token
109
+ * @param authStrategy - Optional authentication strategy override
89
110
  */
90
- refreshRoles(token: string): Promise<string[]>;
111
+ refreshRoles(token: string, authStrategy?: AuthStrategy): Promise<string[]>;
91
112
  /**
92
113
  * Get user permissions (cached in Redis if available)
114
+ * @param token - User authentication token
115
+ * @param authStrategy - Optional authentication strategy override
93
116
  */
94
- getPermissions(token: string): Promise<string[]>;
117
+ getPermissions(token: string, authStrategy?: AuthStrategy): Promise<string[]>;
95
118
  /**
96
119
  * Check if user has specific permission
120
+ * @param token - User authentication token
121
+ * @param permission - Permission to check
122
+ * @param authStrategy - Optional authentication strategy override
97
123
  */
98
- hasPermission(token: string, permission: string): Promise<boolean>;
124
+ hasPermission(token: string, permission: string, authStrategy?: AuthStrategy): Promise<boolean>;
99
125
  /**
100
126
  * Check if user has any of the specified permissions
127
+ * @param token - User authentication token
128
+ * @param permissions - Permissions to check
129
+ * @param authStrategy - Optional authentication strategy override
101
130
  */
102
- hasAnyPermission(token: string, permissions: string[]): Promise<boolean>;
131
+ hasAnyPermission(token: string, permissions: string[], authStrategy?: AuthStrategy): Promise<boolean>;
103
132
  /**
104
133
  * Check if user has all of the specified permissions
134
+ * @param token - User authentication token
135
+ * @param permissions - Permissions to check
136
+ * @param authStrategy - Optional authentication strategy override
105
137
  */
106
- hasAllPermissions(token: string, permissions: string[]): Promise<boolean>;
138
+ hasAllPermissions(token: string, permissions: string[], authStrategy?: AuthStrategy): Promise<boolean>;
107
139
  /**
108
140
  * Force refresh permissions from controller (bypass cache)
141
+ * @param token - User authentication token
142
+ * @param authStrategy - Optional authentication strategy override
109
143
  */
110
- refreshPermissions(token: string): Promise<string[]>;
144
+ refreshPermissions(token: string, authStrategy?: AuthStrategy): Promise<string[]>;
111
145
  /**
112
146
  * Clear cached permissions for a user
147
+ * @param token - User authentication token
148
+ * @param authStrategy - Optional authentication strategy override
113
149
  */
114
- clearPermissionsCache(token: string): Promise<void>;
150
+ clearPermissionsCache(token: string, authStrategy?: AuthStrategy): Promise<void>;
115
151
  /**
116
152
  * Get logger service for application logging
117
153
  */
@@ -133,6 +169,32 @@ export declare class MisoClient {
133
169
  * Check if Redis is connected
134
170
  */
135
171
  isRedisConnected(): boolean;
172
+ /**
173
+ * Make request with authentication strategy
174
+ * Tries authentication methods in priority order based on strategy
175
+ * @param method - HTTP method
176
+ * @param url - Request URL
177
+ * @param authStrategy - Authentication strategy configuration
178
+ * @param data - Optional request data
179
+ * @param config - Optional Axios request config
180
+ * @returns Response data
181
+ */
182
+ requestWithAuthStrategy<T>(method: 'GET' | 'POST' | 'PUT' | 'DELETE', url: string, authStrategy: AuthStrategy, data?: unknown, config?: import('axios').AxiosRequestConfig): Promise<T>;
183
+ /**
184
+ * Create authentication strategy helper
185
+ * @param methods - Array of authentication methods in priority order
186
+ * @param bearerToken - Optional bearer token
187
+ * @param apiKey - Optional API key
188
+ * @returns Authentication strategy
189
+ */
190
+ createAuthStrategy(methods: ('bearer' | 'client-token' | 'client-credentials' | 'api-key')[], bearerToken?: string, apiKey?: string): AuthStrategy;
191
+ /**
192
+ * Get default authentication strategy
193
+ * Uses bearer token and client token in that order
194
+ * @param bearerToken - Optional bearer token
195
+ * @returns Default authentication strategy
196
+ */
197
+ getDefaultAuthStrategy(bearerToken?: string): AuthStrategy;
136
198
  }
137
199
  export * from './types/config.types';
138
200
  export * from './types/pagination.types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -28,6 +28,7 @@ const cache_service_1 = require("./services/cache.service");
28
28
  const http_client_1 = require("./utils/http-client");
29
29
  const internal_http_client_1 = require("./utils/internal-http-client");
30
30
  const data_masker_1 = require("./utils/data-masker");
31
+ const auth_strategy_1 = require("./utils/auth-strategy");
31
32
  class MisoClient {
32
33
  constructor(config) {
33
34
  this.initialized = false;
@@ -130,27 +131,35 @@ class MisoClient {
130
131
  }
131
132
  /**
132
133
  * Validate token with controller
134
+ * @param token - User authentication token
135
+ * @param authStrategy - Optional authentication strategy override
133
136
  */
134
- async validateToken(token) {
135
- return this.auth.validateToken(token);
137
+ async validateToken(token, authStrategy) {
138
+ return this.auth.validateToken(token, authStrategy);
136
139
  }
137
140
  /**
138
141
  * Get user information from token
142
+ * @param token - User authentication token
143
+ * @param authStrategy - Optional authentication strategy override
139
144
  */
140
- async getUser(token) {
141
- return this.auth.getUser(token);
145
+ async getUser(token, authStrategy) {
146
+ return this.auth.getUser(token, authStrategy);
142
147
  }
143
148
  /**
144
- * Get user information from GET /api/auth/user endpoint
149
+ * Get user information from GET /api/v1/auth/user endpoint
150
+ * @param token - User authentication token
151
+ * @param authStrategy - Optional authentication strategy override
145
152
  */
146
- async getUserInfo(token) {
147
- return this.auth.getUserInfo(token);
153
+ async getUserInfo(token, authStrategy) {
154
+ return this.auth.getUserInfo(token, authStrategy);
148
155
  }
149
156
  /**
150
157
  * Check if user is authenticated
158
+ * @param token - User authentication token
159
+ * @param authStrategy - Optional authentication strategy override
151
160
  */
152
- async isAuthenticated(token) {
153
- return this.auth.isAuthenticated(token);
161
+ async isAuthenticated(token, authStrategy) {
162
+ return this.auth.isAuthenticated(token, authStrategy);
154
163
  }
155
164
  /**
156
165
  * Logout user
@@ -161,69 +170,97 @@ class MisoClient {
161
170
  // ==================== AUTHORIZATION METHODS ====================
162
171
  /**
163
172
  * Get user roles (cached in Redis if available)
173
+ * @param token - User authentication token
174
+ * @param authStrategy - Optional authentication strategy override
164
175
  */
165
- async getRoles(token) {
166
- return this.roles.getRoles(token);
176
+ async getRoles(token, authStrategy) {
177
+ return this.roles.getRoles(token, authStrategy);
167
178
  }
168
179
  /**
169
180
  * Check if user has specific role
181
+ * @param token - User authentication token
182
+ * @param role - Role to check
183
+ * @param authStrategy - Optional authentication strategy override
170
184
  */
171
- async hasRole(token, role) {
172
- return this.roles.hasRole(token, role);
185
+ async hasRole(token, role, authStrategy) {
186
+ return this.roles.hasRole(token, role, authStrategy);
173
187
  }
174
188
  /**
175
189
  * Check if user has any of the specified roles
190
+ * @param token - User authentication token
191
+ * @param roles - Roles to check
192
+ * @param authStrategy - Optional authentication strategy override
176
193
  */
177
- async hasAnyRole(token, roles) {
178
- return this.roles.hasAnyRole(token, roles);
194
+ async hasAnyRole(token, roles, authStrategy) {
195
+ return this.roles.hasAnyRole(token, roles, authStrategy);
179
196
  }
180
197
  /**
181
198
  * Check if user has all of the specified roles
199
+ * @param token - User authentication token
200
+ * @param roles - Roles to check
201
+ * @param authStrategy - Optional authentication strategy override
182
202
  */
183
- async hasAllRoles(token, roles) {
184
- return this.roles.hasAllRoles(token, roles);
203
+ async hasAllRoles(token, roles, authStrategy) {
204
+ return this.roles.hasAllRoles(token, roles, authStrategy);
185
205
  }
186
206
  /**
187
207
  * Force refresh roles from controller (bypass cache)
208
+ * @param token - User authentication token
209
+ * @param authStrategy - Optional authentication strategy override
188
210
  */
189
- async refreshRoles(token) {
190
- return this.roles.refreshRoles(token);
211
+ async refreshRoles(token, authStrategy) {
212
+ return this.roles.refreshRoles(token, authStrategy);
191
213
  }
192
214
  /**
193
215
  * Get user permissions (cached in Redis if available)
216
+ * @param token - User authentication token
217
+ * @param authStrategy - Optional authentication strategy override
194
218
  */
195
- async getPermissions(token) {
196
- return this.permissions.getPermissions(token);
219
+ async getPermissions(token, authStrategy) {
220
+ return this.permissions.getPermissions(token, authStrategy);
197
221
  }
198
222
  /**
199
223
  * Check if user has specific permission
224
+ * @param token - User authentication token
225
+ * @param permission - Permission to check
226
+ * @param authStrategy - Optional authentication strategy override
200
227
  */
201
- async hasPermission(token, permission) {
202
- return this.permissions.hasPermission(token, permission);
228
+ async hasPermission(token, permission, authStrategy) {
229
+ return this.permissions.hasPermission(token, permission, authStrategy);
203
230
  }
204
231
  /**
205
232
  * Check if user has any of the specified permissions
233
+ * @param token - User authentication token
234
+ * @param permissions - Permissions to check
235
+ * @param authStrategy - Optional authentication strategy override
206
236
  */
207
- async hasAnyPermission(token, permissions) {
208
- return this.permissions.hasAnyPermission(token, permissions);
237
+ async hasAnyPermission(token, permissions, authStrategy) {
238
+ return this.permissions.hasAnyPermission(token, permissions, authStrategy);
209
239
  }
210
240
  /**
211
241
  * Check if user has all of the specified permissions
242
+ * @param token - User authentication token
243
+ * @param permissions - Permissions to check
244
+ * @param authStrategy - Optional authentication strategy override
212
245
  */
213
- async hasAllPermissions(token, permissions) {
214
- return this.permissions.hasAllPermissions(token, permissions);
246
+ async hasAllPermissions(token, permissions, authStrategy) {
247
+ return this.permissions.hasAllPermissions(token, permissions, authStrategy);
215
248
  }
216
249
  /**
217
250
  * Force refresh permissions from controller (bypass cache)
251
+ * @param token - User authentication token
252
+ * @param authStrategy - Optional authentication strategy override
218
253
  */
219
- async refreshPermissions(token) {
220
- return this.permissions.refreshPermissions(token);
254
+ async refreshPermissions(token, authStrategy) {
255
+ return this.permissions.refreshPermissions(token, authStrategy);
221
256
  }
222
257
  /**
223
258
  * Clear cached permissions for a user
259
+ * @param token - User authentication token
260
+ * @param authStrategy - Optional authentication strategy override
224
261
  */
225
- async clearPermissionsCache(token) {
226
- return this.permissions.clearPermissionsCache(token);
262
+ async clearPermissionsCache(token, authStrategy) {
263
+ return this.permissions.clearPermissionsCache(token, authStrategy);
227
264
  }
228
265
  // ==================== LOGGING METHODS ====================
229
266
  /**
@@ -260,6 +297,42 @@ class MisoClient {
260
297
  isRedisConnected() {
261
298
  return this.redis.isConnected();
262
299
  }
300
+ /**
301
+ * Make request with authentication strategy
302
+ * Tries authentication methods in priority order based on strategy
303
+ * @param method - HTTP method
304
+ * @param url - Request URL
305
+ * @param authStrategy - Authentication strategy configuration
306
+ * @param data - Optional request data
307
+ * @param config - Optional Axios request config
308
+ * @returns Response data
309
+ */
310
+ async requestWithAuthStrategy(method, url, authStrategy, data, config) {
311
+ return this.httpClient.requestWithAuthStrategy(method, url, authStrategy, data, config);
312
+ }
313
+ /**
314
+ * Create authentication strategy helper
315
+ * @param methods - Array of authentication methods in priority order
316
+ * @param bearerToken - Optional bearer token
317
+ * @param apiKey - Optional API key
318
+ * @returns Authentication strategy
319
+ */
320
+ createAuthStrategy(methods, bearerToken, apiKey) {
321
+ return {
322
+ methods,
323
+ bearerToken,
324
+ apiKey
325
+ };
326
+ }
327
+ /**
328
+ * Get default authentication strategy
329
+ * Uses bearer token and client token in that order
330
+ * @param bearerToken - Optional bearer token
331
+ * @returns Default authentication strategy
332
+ */
333
+ getDefaultAuthStrategy(bearerToken) {
334
+ return auth_strategy_1.AuthStrategyHandler.getDefaultStrategy(bearerToken);
335
+ }
263
336
  }
264
337
  exports.MisoClient = MisoClient;
265
338
  // Export types
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { HttpClient } from '../utils/http-client';
5
5
  import { RedisService } from './redis.service';
6
- import { UserInfo } from '../types/config.types';
6
+ import { UserInfo, AuthStrategy } from '../types/config.types';
7
7
  export declare class AuthService {
8
8
  private httpClient;
9
9
  private redis;
@@ -27,25 +27,33 @@ export declare class AuthService {
27
27
  /**
28
28
  * Validate token with controller
29
29
  * If API_KEY is configured and token matches, returns true without calling controller
30
+ * @param token - User authentication token
31
+ * @param authStrategy - Optional authentication strategy override
30
32
  */
31
- validateToken(token: string): Promise<boolean>;
33
+ validateToken(token: string, authStrategy?: AuthStrategy): Promise<boolean>;
32
34
  /**
33
35
  * Get user information from token
34
36
  * If API_KEY is configured and token matches, returns null (by design for testing)
37
+ * @param token - User authentication token
38
+ * @param authStrategy - Optional authentication strategy override
35
39
  */
36
- getUser(token: string): Promise<UserInfo | null>;
40
+ getUser(token: string, authStrategy?: AuthStrategy): Promise<UserInfo | null>;
37
41
  /**
38
- * Get user information from GET /api/auth/user endpoint
42
+ * Get user information from GET /api/v1/auth/user endpoint
39
43
  * If API_KEY is configured and token matches, returns null (by design for testing)
44
+ * @param token - User authentication token
45
+ * @param authStrategy - Optional authentication strategy override
40
46
  */
41
- getUserInfo(token: string): Promise<UserInfo | null>;
47
+ getUserInfo(token: string, authStrategy?: AuthStrategy): Promise<UserInfo | null>;
42
48
  /**
43
49
  * Logout user
44
50
  */
45
51
  logout(): Promise<void>;
46
52
  /**
47
53
  * Check if user is authenticated (has valid token)
54
+ * @param token - User authentication token
55
+ * @param authStrategy - Optional authentication strategy override
48
56
  */
49
- isAuthenticated(token: string): Promise<boolean>;
57
+ isAuthenticated(token: string, authStrategy?: AuthStrategy): Promise<boolean>;
50
58
  }
51
59
  //# sourceMappingURL=auth.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAoB,QAAQ,EAAc,MAAM,uBAAuB,CAAC;AAE/E,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAmB;gBAErB,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY;IAMvD;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IA+B5C;;;OAGG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAKlC;;;OAGG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBpD;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAwBtD;;;OAGG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAoB1D;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAY7B;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAGvD"}
1
+ {"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAoB,QAAQ,EAAc,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE7F,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAmB;gBAErB,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY;IAMvD;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IA+B5C;;;OAGG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAKlC;;;;;OAKG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAejF;;;;;OAKG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAoBnF;;;;;OAKG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAuBvF;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAY7B;;;;OAIG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;CAGpF"}