@aifabrix/miso-client 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/README.md +57 -2
  2. package/dist/api/auth-cache.api.d.ts +52 -0
  3. package/dist/api/auth-cache.api.d.ts.map +1 -0
  4. package/dist/api/auth-cache.api.js +125 -0
  5. package/dist/api/auth-cache.api.js.map +1 -0
  6. package/dist/api/auth-login.api.d.ts +52 -0
  7. package/dist/api/auth-login.api.d.ts.map +1 -0
  8. package/dist/api/auth-login.api.js +102 -0
  9. package/dist/api/auth-login.api.js.map +1 -0
  10. package/dist/api/auth-token.api.d.ts +46 -0
  11. package/dist/api/auth-token.api.d.ts.map +1 -0
  12. package/dist/api/auth-token.api.js +90 -0
  13. package/dist/api/auth-token.api.js.map +1 -0
  14. package/dist/api/auth-user.api.d.ts +43 -0
  15. package/dist/api/auth-user.api.d.ts.map +1 -0
  16. package/dist/api/auth-user.api.js +87 -0
  17. package/dist/api/auth-user.api.js.map +1 -0
  18. package/dist/api/auth.api.d.ts +48 -0
  19. package/dist/api/auth.api.d.ts.map +1 -0
  20. package/dist/api/auth.api.js +152 -0
  21. package/dist/api/auth.api.js.map +1 -0
  22. package/dist/api/index.d.ts +39 -0
  23. package/dist/api/index.d.ts.map +1 -0
  24. package/dist/api/index.js +31 -0
  25. package/dist/api/index.js.map +1 -0
  26. package/dist/api/logs-create.api.d.ts +32 -0
  27. package/dist/api/logs-create.api.d.ts.map +1 -0
  28. package/dist/api/logs-create.api.js +63 -0
  29. package/dist/api/logs-create.api.js.map +1 -0
  30. package/dist/api/logs-export.api.d.ts +24 -0
  31. package/dist/api/logs-export.api.d.ts.map +1 -0
  32. package/dist/api/logs-export.api.js +43 -0
  33. package/dist/api/logs-export.api.js.map +1 -0
  34. package/dist/api/logs-list.api.d.ts +63 -0
  35. package/dist/api/logs-list.api.d.ts.map +1 -0
  36. package/dist/api/logs-list.api.js +155 -0
  37. package/dist/api/logs-list.api.js.map +1 -0
  38. package/dist/api/logs-stats.api.d.ts +48 -0
  39. package/dist/api/logs-stats.api.d.ts.map +1 -0
  40. package/dist/api/logs-stats.api.js +107 -0
  41. package/dist/api/logs-stats.api.js.map +1 -0
  42. package/dist/api/logs.api.d.ts +35 -0
  43. package/dist/api/logs.api.d.ts.map +1 -0
  44. package/dist/api/logs.api.js +71 -0
  45. package/dist/api/logs.api.js.map +1 -0
  46. package/dist/api/permissions.api.d.ts +31 -0
  47. package/dist/api/permissions.api.d.ts.map +1 -0
  48. package/dist/api/permissions.api.js +62 -0
  49. package/dist/api/permissions.api.js.map +1 -0
  50. package/dist/api/roles.api.d.ts +31 -0
  51. package/dist/api/roles.api.d.ts.map +1 -0
  52. package/dist/api/roles.api.js +62 -0
  53. package/dist/api/roles.api.js.map +1 -0
  54. package/dist/api/types/auth.types.d.ts +293 -0
  55. package/dist/api/types/auth.types.d.ts.map +1 -0
  56. package/dist/api/types/auth.types.js +7 -0
  57. package/dist/api/types/auth.types.js.map +1 -0
  58. package/dist/api/types/logs.types.d.ts +266 -0
  59. package/dist/api/types/logs.types.d.ts.map +1 -0
  60. package/dist/api/types/logs.types.js +7 -0
  61. package/dist/api/types/logs.types.js.map +1 -0
  62. package/dist/api/types/permissions.types.d.ts +32 -0
  63. package/dist/api/types/permissions.types.d.ts.map +1 -0
  64. package/dist/api/types/permissions.types.js +7 -0
  65. package/dist/api/types/permissions.types.js.map +1 -0
  66. package/dist/api/types/roles.types.d.ts +32 -0
  67. package/dist/api/types/roles.types.d.ts.map +1 -0
  68. package/dist/api/types/roles.types.js +7 -0
  69. package/dist/api/types/roles.types.js.map +1 -0
  70. package/dist/express/client-token-endpoint.d.ts.map +1 -1
  71. package/dist/express/client-token-endpoint.js +136 -13
  72. package/dist/express/client-token-endpoint.js.map +1 -1
  73. package/dist/index.d.ts +12 -0
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +24 -6
  76. package/dist/index.js.map +1 -1
  77. package/dist/services/auth.service.d.ts +28 -4
  78. package/dist/services/auth.service.d.ts.map +1 -1
  79. package/dist/services/auth.service.js +186 -16
  80. package/dist/services/auth.service.js.map +1 -1
  81. package/dist/services/browser-permission.service.d.ts +3 -1
  82. package/dist/services/browser-permission.service.d.ts.map +1 -1
  83. package/dist/services/browser-permission.service.js +32 -16
  84. package/dist/services/browser-permission.service.js.map +1 -1
  85. package/dist/services/browser-role.service.d.ts +3 -1
  86. package/dist/services/browser-role.service.d.ts.map +1 -1
  87. package/dist/services/browser-role.service.js +32 -16
  88. package/dist/services/browser-role.service.js.map +1 -1
  89. package/dist/services/logger.service.d.ts +102 -24
  90. package/dist/services/logger.service.d.ts.map +1 -1
  91. package/dist/services/logger.service.js +225 -51
  92. package/dist/services/logger.service.js.map +1 -1
  93. package/dist/services/permission.service.d.ts +3 -1
  94. package/dist/services/permission.service.d.ts.map +1 -1
  95. package/dist/services/permission.service.js +32 -16
  96. package/dist/services/permission.service.js.map +1 -1
  97. package/dist/services/redis.service.d.ts.map +1 -1
  98. package/dist/services/redis.service.js +3 -6
  99. package/dist/services/redis.service.js.map +1 -1
  100. package/dist/services/role.service.d.ts +3 -1
  101. package/dist/services/role.service.d.ts.map +1 -1
  102. package/dist/services/role.service.js +25 -13
  103. package/dist/services/role.service.js.map +1 -1
  104. package/dist/types/config.types.d.ts +22 -0
  105. package/dist/types/config.types.d.ts.map +1 -1
  106. package/dist/types/config.types.js.map +1 -1
  107. package/dist/types/data-client.types.d.ts +10 -0
  108. package/dist/types/data-client.types.d.ts.map +1 -1
  109. package/dist/types/data-client.types.js.map +1 -1
  110. package/dist/utils/audit-log-queue.d.ts +7 -0
  111. package/dist/utils/audit-log-queue.d.ts.map +1 -1
  112. package/dist/utils/audit-log-queue.js +29 -8
  113. package/dist/utils/audit-log-queue.js.map +1 -1
  114. package/dist/utils/data-client-auth.d.ts +17 -4
  115. package/dist/utils/data-client-auth.d.ts.map +1 -1
  116. package/dist/utils/data-client-auth.js +215 -131
  117. package/dist/utils/data-client-auth.js.map +1 -1
  118. package/dist/utils/data-client-auto-init.d.ts.map +1 -1
  119. package/dist/utils/data-client-auto-init.js +55 -11
  120. package/dist/utils/data-client-auto-init.js.map +1 -1
  121. package/dist/utils/data-client-redirect.d.ts +34 -4
  122. package/dist/utils/data-client-redirect.d.ts.map +1 -1
  123. package/dist/utils/data-client-redirect.js +142 -254
  124. package/dist/utils/data-client-redirect.js.map +1 -1
  125. package/dist/utils/data-client-request.d.ts +8 -1
  126. package/dist/utils/data-client-request.d.ts.map +1 -1
  127. package/dist/utils/data-client-request.js +25 -3
  128. package/dist/utils/data-client-request.js.map +1 -1
  129. package/dist/utils/data-client.d.ts +13 -0
  130. package/dist/utils/data-client.d.ts.map +1 -1
  131. package/dist/utils/data-client.js +86 -5
  132. package/dist/utils/data-client.js.map +1 -1
  133. package/dist/utils/logging-helpers.d.ts +51 -0
  134. package/dist/utils/logging-helpers.d.ts.map +1 -0
  135. package/dist/utils/logging-helpers.js +57 -0
  136. package/dist/utils/logging-helpers.js.map +1 -0
  137. package/dist/utils/request-context.d.ts +32 -0
  138. package/dist/utils/request-context.d.ts.map +1 -0
  139. package/dist/utils/request-context.js +81 -0
  140. package/dist/utils/request-context.js.map +1 -0
  141. package/package.json +1 -1
@@ -35,15 +35,21 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  return result;
36
36
  };
37
37
  })();
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
38
41
  Object.defineProperty(exports, "__esModule", { value: true });
39
42
  exports.AuthService = void 0;
40
43
  const errors_1 = require("../utils/errors");
41
44
  const controller_url_resolver_1 = require("../utils/controller-url-resolver");
45
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
42
46
  class AuthService {
43
- constructor(httpClient, redis) {
47
+ constructor(httpClient, apiClient, cache) {
44
48
  this.config = httpClient.config;
45
- this.redis = redis;
49
+ this.cache = cache;
46
50
  this.httpClient = httpClient;
51
+ this.apiClient = apiClient;
52
+ this.tokenValidationTTL = this.config.cache?.tokenValidationTTL || 900; // 15 minutes default
47
53
  }
48
54
  /**
49
55
  * Check if token matches configured API key for testing
@@ -52,6 +58,25 @@ class AuthService {
52
58
  isApiKeyToken(token) {
53
59
  return this.config.apiKey !== undefined && token === this.config.apiKey;
54
60
  }
61
+ /**
62
+ * Extract userId from JWT token without making API call
63
+ * @private
64
+ */
65
+ extractUserIdFromToken(token) {
66
+ try {
67
+ const decoded = jsonwebtoken_1.default.decode(token);
68
+ if (!decoded)
69
+ return null;
70
+ // Try common JWT claim fields for user ID
71
+ return (decoded.sub ||
72
+ decoded.userId ||
73
+ decoded.user_id ||
74
+ decoded.id);
75
+ }
76
+ catch (error) {
77
+ return null;
78
+ }
79
+ }
55
80
  /**
56
81
  * Generate unique correlation ID for request tracking
57
82
  */
@@ -153,11 +178,18 @@ class AuthService {
153
178
  if (params.state) {
154
179
  queryParams.state = params.state;
155
180
  }
156
- // Make GET request with query parameters
157
- const response = await this.httpClient.request("GET", "/api/v1/auth/login", undefined, {
158
- params: queryParams,
159
- });
160
- return response;
181
+ // Use ApiClient for typed API call
182
+ const authStrategy = this.config.authStrategy;
183
+ const response = await this.apiClient.auth.login({ redirect: params.redirect, state: params.state }, authStrategy);
184
+ // Convert ApiClient response format to service response format
185
+ return {
186
+ success: response.success,
187
+ data: {
188
+ loginUrl: response.data.loginUrl,
189
+ state: response.data.state || '',
190
+ },
191
+ timestamp: response.timestamp,
192
+ };
161
193
  }
162
194
  catch (error) {
163
195
  // Check if it's a MisoClientError (converted from AxiosError by HttpClient)
@@ -203,9 +235,11 @@ class AuthService {
203
235
  }
204
236
  /**
205
237
  * Validate token with controller
238
+ * Caches validation results by userId with configurable TTL (default 15 minutes)
206
239
  * If API_KEY is configured and token matches, returns true without calling controller
207
240
  * @param token - User authentication token
208
241
  * @param authStrategy - Optional authentication strategy override
242
+ * @returns true if token is valid, false otherwise
209
243
  */
210
244
  async validateToken(token, authStrategy) {
211
245
  // Check API_KEY bypass for testing
@@ -213,8 +247,28 @@ class AuthService {
213
247
  return true;
214
248
  }
215
249
  try {
216
- const result = await this.httpClient.validateTokenRequest(token, authStrategy);
217
- return result.authenticated;
250
+ // Extract userId from token to check cache first (avoids API call on cache hit)
251
+ const userId = this.extractUserIdFromToken(token);
252
+ const cacheKey = userId ? `token:${userId}` : null;
253
+ // Check cache first if we have userId
254
+ if (cacheKey) {
255
+ const cached = await this.cache.get(cacheKey);
256
+ if (cached) {
257
+ return cached.authenticated;
258
+ }
259
+ }
260
+ // Cache miss or no userId in token - fetch from controller using ApiClient
261
+ const authStrategyToUse = authStrategy || this.config.authStrategy;
262
+ const authStrategyWithToken = authStrategyToUse
263
+ ? { ...authStrategyToUse, bearerToken: token }
264
+ : { methods: ['bearer'], bearerToken: token };
265
+ const result = await this.apiClient.auth.validateToken({ token }, authStrategyWithToken);
266
+ const authenticated = result.data?.authenticated || false;
267
+ // Cache the result if we have userId
268
+ if (userId && cacheKey) {
269
+ await this.cache.set(cacheKey, { authenticated, timestamp: Date.now() }, this.tokenValidationTTL);
270
+ }
271
+ return authenticated;
218
272
  }
219
273
  catch (error) {
220
274
  // Token validation failed, return false
@@ -233,9 +287,17 @@ class AuthService {
233
287
  return null;
234
288
  }
235
289
  try {
236
- const result = await this.httpClient.validateTokenRequest(token, authStrategy);
237
- if (result.authenticated && result.user) {
238
- return result.user;
290
+ const authStrategyToUse = authStrategy || this.config.authStrategy;
291
+ const authStrategyWithToken = authStrategyToUse
292
+ ? { ...authStrategyToUse, bearerToken: token }
293
+ : { methods: ['bearer'], bearerToken: token };
294
+ const result = await this.apiClient.auth.validateToken({ token }, authStrategyWithToken);
295
+ if (result.data?.authenticated && result.data.user) {
296
+ return {
297
+ id: result.data.user.id,
298
+ username: result.data.user.username,
299
+ email: result.data.user.email,
300
+ };
239
301
  }
240
302
  return null;
241
303
  }
@@ -256,18 +318,49 @@ class AuthService {
256
318
  return null;
257
319
  }
258
320
  try {
259
- const user = await this.httpClient.authenticatedRequest("GET", "/api/v1/auth/user", token, undefined, undefined, authStrategy);
260
- return user;
321
+ const authStrategyToUse = authStrategy || this.config.authStrategy;
322
+ const authStrategyWithToken = authStrategyToUse
323
+ ? { ...authStrategyToUse, bearerToken: token }
324
+ : { methods: ['bearer'], bearerToken: token };
325
+ const result = await this.apiClient.auth.getUser(authStrategyWithToken);
326
+ if (result.data?.authenticated && result.data.user) {
327
+ return {
328
+ id: result.data.user.id,
329
+ username: result.data.user.username,
330
+ email: result.data.user.email,
331
+ };
332
+ }
333
+ return null;
261
334
  }
262
335
  catch (error) {
263
336
  // Failed to get user info, return null
264
337
  return null;
265
338
  }
266
339
  }
340
+ /**
341
+ * Clear cached token validation result for a user
342
+ * Extracts userId from JWT token directly (no API call)
343
+ * @param token - User authentication token
344
+ */
345
+ clearTokenCache(token) {
346
+ try {
347
+ const userId = this.extractUserIdFromToken(token);
348
+ if (userId) {
349
+ const cacheKey = `token:${userId}`;
350
+ // Use void to ignore promise result - cache clearing should not block
351
+ void this.cache.delete(cacheKey);
352
+ }
353
+ }
354
+ catch (error) {
355
+ // Log but don't throw - cache clearing failures should not break flow
356
+ console.warn("Failed to clear token cache:", error);
357
+ }
358
+ }
267
359
  /**
268
360
  * Logout user
269
361
  * Gracefully handles cases where there's no active session (400 Bad Request)
270
362
  * Only throws errors for unexpected failures (network errors, 5xx errors, etc.)
363
+ * Automatically clears token validation cache on logout
271
364
  * @param params - Logout parameters
272
365
  * @param params.token - Access token to invalidate
273
366
  * @returns Logout response with success message
@@ -276,8 +369,10 @@ class AuthService {
276
369
  const correlationId = this.generateCorrelationId();
277
370
  const clientId = this.config.clientId;
278
371
  try {
279
- // Backend extracts app/env from client token
280
- const response = await this.httpClient.request("POST", "/api/v1/auth/logout", { token: params.token });
372
+ // Use ApiClient for typed API call
373
+ const response = await this.apiClient.auth.logoutWithToken(params.token);
374
+ // Clear token cache after successful logout
375
+ this.clearTokenCache(params.token);
281
376
  return response;
282
377
  }
283
378
  catch (error) {
@@ -294,6 +389,8 @@ class AuthService {
294
389
  };
295
390
  console.warn(`Logout: No active session or invalid request (400). ` +
296
391
  `Response: ${JSON.stringify(errorDetails)} [correlationId: ${correlationId}, clientId: ${clientId}]`);
392
+ // Clear token cache even if logout returns 400 (idempotent behavior)
393
+ this.clearTokenCache(params.token);
297
394
  // Return a success response - logout is idempotent
298
395
  return {
299
396
  success: true,
@@ -324,6 +421,8 @@ class AuthService {
324
421
  : "No response data";
325
422
  console.warn(`Logout: No active session or invalid request (400). ` +
326
423
  `Response: ${responseData} [correlationId: ${correlationId}, clientId: ${clientId}]`);
424
+ // Clear token cache even if logout returns 400 (idempotent behavior)
425
+ this.clearTokenCache(params.token);
327
426
  // Return a success response - logout is idempotent
328
427
  return {
329
428
  success: true,
@@ -356,6 +455,77 @@ class AuthService {
356
455
  throw new Error(`Logout failed: ${errorMessage} [correlationId: ${correlationId}, clientId: ${clientId}]`);
357
456
  }
358
457
  }
458
+ /**
459
+ * Refresh user access token using refresh token
460
+ * @param refreshToken - Refresh token to exchange for new access token
461
+ * @param authStrategy - Optional authentication strategy override
462
+ * @returns New access token, refresh token, and expiration info, or null on error
463
+ */
464
+ async refreshToken(refreshToken, authStrategy) {
465
+ const correlationId = this.generateCorrelationId();
466
+ const clientId = this.config.clientId;
467
+ try {
468
+ // Use ApiClient for typed API call
469
+ const authStrategyToUse = authStrategy || this.config.authStrategy;
470
+ const response = await this.apiClient.auth.refreshToken({ refreshToken }, authStrategyToUse);
471
+ // Convert ApiClient response format to service response format
472
+ if (response.data) {
473
+ return {
474
+ success: response.success,
475
+ accessToken: response.data.accessToken,
476
+ refreshToken: response.data.refreshToken || refreshToken,
477
+ expiresIn: response.data.expiresIn,
478
+ expiresAt: response.timestamp,
479
+ timestamp: response.timestamp,
480
+ };
481
+ }
482
+ return null;
483
+ }
484
+ catch (error) {
485
+ // Check if it's a MisoClientError (converted from AxiosError by HttpClient)
486
+ if (error instanceof errors_1.MisoClientError) {
487
+ const errorDetails = {
488
+ statusCode: error.statusCode,
489
+ message: error.message,
490
+ errorResponse: error.errorResponse,
491
+ errorBody: error.errorBody,
492
+ };
493
+ console.error(`Refresh token failed: ${error.message}. ` +
494
+ `Full response: ${JSON.stringify(errorDetails)} [correlationId: ${correlationId}, clientId: ${clientId}]`);
495
+ return null;
496
+ }
497
+ // Check if it's an AxiosError (shouldn't happen after HttpClient, but handle just in case)
498
+ if (error &&
499
+ typeof error === "object" &&
500
+ "isAxiosError" in error &&
501
+ error.isAxiosError) {
502
+ const axiosError = error;
503
+ const responseDetails = [];
504
+ if (axiosError.response) {
505
+ responseDetails.push(`status: ${axiosError.response.status}`);
506
+ responseDetails.push(`statusText: ${axiosError.response.statusText}`);
507
+ responseDetails.push(`data: ${JSON.stringify(axiosError.response.data)}`);
508
+ if (axiosError.response.headers) {
509
+ responseDetails.push(`headers: ${JSON.stringify(axiosError.response.headers)}`);
510
+ }
511
+ }
512
+ else if (axiosError.request) {
513
+ responseDetails.push(`request: [Request object - not serializable]`);
514
+ responseDetails.push(`message: ${axiosError.message}`);
515
+ }
516
+ else {
517
+ responseDetails.push(`message: ${axiosError.message}`);
518
+ }
519
+ console.error(`Refresh token failed: ${axiosError.message}. ` +
520
+ `Full response: {${responseDetails.join(", ")}} [correlationId: ${correlationId}, clientId: ${clientId}]`);
521
+ return null;
522
+ }
523
+ // Non-Axios/MisoClientError (network errors, timeouts, etc.)
524
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
525
+ console.error(`Refresh token failed: ${errorMessage} [correlationId: ${correlationId}, clientId: ${clientId}]`);
526
+ return null;
527
+ }
528
+ }
359
529
  /**
360
530
  * Check if user is authenticated (has valid token)
361
531
  * @param token - User authentication token
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,16 @@
3
3
  * Uses in-memory cache only (no Redis) and browser-compatible JWT decoder
4
4
  */
5
5
  import { HttpClient } from "../utils/http-client";
6
+ import { ApiClient } from "../api";
6
7
  import { CacheService } from "./cache.service";
7
8
  import { AuthStrategy } from "../types/config.types";
8
9
  export declare class BrowserPermissionService {
9
10
  private httpClient;
11
+ private apiClient;
10
12
  private cache;
11
13
  private config;
12
14
  private permissionTTL;
13
- constructor(httpClient: HttpClient, cache: CacheService);
15
+ constructor(httpClient: HttpClient, apiClient: ApiClient, cache: CacheService);
14
16
  /**
15
17
  * Extract userId from JWT token without making API call
16
18
  * Uses browser-compatible JWT decoder
@@ -1 +1 @@
1
- {"version":3,"file":"browser-permission.service.d.ts","sourceRoot":"","sources":["../../src/services/browser-permission.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAGL,YAAY,EACb,MAAM,uBAAuB,CAAC;AAQ/B,qBAAa,wBAAwB;IACnC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,aAAa,CAAS;gBAElB,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY;IAOvD;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;;;;OAKG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IAuDpB;;;;;OAKG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;OAKG;IACG,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAOnB;;;;;OAKG;IACG,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAOnB;;;;OAIG;IACG,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IA0CpB;;;;OAIG;IACG,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,IAAI,CAAC;CAqBjB"}
1
+ {"version":3,"file":"browser-permission.service.d.ts","sourceRoot":"","sources":["../../src/services/browser-permission.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAEL,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAQ/B,qBAAa,wBAAwB;IACnC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,aAAa,CAAS;gBAElB,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY;IAQ7E;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;;;;OAKG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IA6DpB;;;;;OAKG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;OAKG;IACG,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAOnB;;;;;OAKG;IACG,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAOnB;;;;OAIG;IACG,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IA0CpB;;;;OAIG;IACG,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,IAAI,CAAC;CA2BjB"}
@@ -7,10 +7,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.BrowserPermissionService = void 0;
8
8
  const browser_jwt_decoder_1 = require("../utils/browser-jwt-decoder");
9
9
  class BrowserPermissionService {
10
- constructor(httpClient, cache) {
10
+ constructor(httpClient, apiClient, cache) {
11
11
  this.config = httpClient.config;
12
12
  this.cache = cache;
13
13
  this.httpClient = httpClient;
14
+ this.apiClient = apiClient;
14
15
  this.permissionTTL = this.config.cache?.permissionTTL || 900; // 15 minutes default
15
16
  }
16
17
  /**
@@ -54,16 +55,23 @@ class BrowserPermissionService {
54
55
  // Cache miss or no userId in token - fetch from controller
55
56
  // If we don't have userId, get it from validate endpoint
56
57
  if (!userId) {
57
- const userInfo = await this.httpClient.validateTokenRequest(token, authStrategy);
58
- userId = userInfo.user?.id || null;
58
+ const authStrategyToUse = authStrategy || this.config.authStrategy;
59
+ const authStrategyWithToken = authStrategyToUse
60
+ ? { ...authStrategyToUse, bearerToken: token }
61
+ : { methods: ['bearer'], bearerToken: token };
62
+ const userInfo = await this.apiClient.auth.validateToken({ token }, authStrategyWithToken);
63
+ userId = userInfo.data?.user?.id || null;
59
64
  if (!userId) {
60
65
  return [];
61
66
  }
62
67
  }
63
- // Cache miss - fetch from controller
64
- const permissionResult = await this.httpClient.authenticatedRequest("GET", "/api/v1/auth/permissions", // Backend knows app/env from client token
65
- token, undefined, undefined, authStrategy);
66
- const permissions = permissionResult.permissions || [];
68
+ // Cache miss - fetch from controller using ApiClient
69
+ const authStrategyToUse = authStrategy || this.config.authStrategy;
70
+ const authStrategyWithToken = authStrategyToUse
71
+ ? { ...authStrategyToUse, bearerToken: token }
72
+ : { methods: ['bearer'], bearerToken: token };
73
+ const permissionResult = await this.apiClient.permissions.getPermissions(undefined, authStrategyWithToken);
74
+ const permissions = permissionResult.data?.permissions || [];
67
75
  // Cache the result (use userId-based key)
68
76
  const finalCacheKey = `permissions:${userId}`;
69
77
  await this.cache.set(finalCacheKey, { permissions, timestamp: Date.now() }, this.permissionTTL);
@@ -113,15 +121,19 @@ class BrowserPermissionService {
113
121
  async refreshPermissions(token, authStrategy) {
114
122
  try {
115
123
  // Get user info to extract userId
116
- const userInfo = await this.httpClient.validateTokenRequest(token, authStrategy);
117
- if (!userInfo.user?.id) {
124
+ const authStrategyToUse = authStrategy || this.config.authStrategy;
125
+ const authStrategyWithToken = authStrategyToUse
126
+ ? { ...authStrategyToUse, bearerToken: token }
127
+ : { methods: ['bearer'], bearerToken: token };
128
+ const userInfo = await this.apiClient.auth.validateToken({ token }, authStrategyWithToken);
129
+ if (!userInfo.data?.user?.id) {
118
130
  return [];
119
131
  }
120
- const userId = userInfo.user.id;
132
+ const userId = userInfo.data.user.id;
121
133
  const cacheKey = `permissions:${userId}`;
122
- // Fetch fresh permissions from controller using refresh endpoint
123
- const permissionResult = await this.httpClient.authenticatedRequest("GET", "/api/v1/auth/permissions/refresh", token, undefined, undefined, authStrategy);
124
- const permissions = permissionResult.permissions || [];
134
+ // Fetch fresh permissions from controller using refresh endpoint via ApiClient
135
+ const permissionResult = await this.apiClient.permissions.refreshPermissions(authStrategyWithToken);
136
+ const permissions = permissionResult.data?.permissions || [];
125
137
  // Update cache with fresh data
126
138
  await this.cache.set(cacheKey, { permissions, timestamp: Date.now() }, this.permissionTTL);
127
139
  return permissions;
@@ -140,11 +152,15 @@ class BrowserPermissionService {
140
152
  async clearPermissionsCache(token, authStrategy) {
141
153
  try {
142
154
  // Get user info to extract userId
143
- const userInfo = await this.httpClient.validateTokenRequest(token, authStrategy);
144
- if (!userInfo.user?.id) {
155
+ const authStrategyToUse = authStrategy || this.config.authStrategy;
156
+ const authStrategyWithToken = authStrategyToUse
157
+ ? { ...authStrategyToUse, bearerToken: token }
158
+ : { methods: ['bearer'], bearerToken: token };
159
+ const userInfo = await this.apiClient.auth.validateToken({ token }, authStrategyWithToken);
160
+ if (!userInfo.data?.user?.id) {
145
161
  return;
146
162
  }
147
- const userId = userInfo.user.id;
163
+ const userId = userInfo.data.user.id;
148
164
  const cacheKey = `permissions:${userId}`;
149
165
  // Clear from cache
150
166
  await this.cache.delete(cacheKey);
@@ -1 +1 @@
1
- {"version":3,"file":"browser-permission.service.js","sourceRoot":"","sources":["../../src/services/browser-permission.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-permission.service.js","sourceRoot":"","sources":["../../src/services/browser-permission.service.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,16 @@
3
3
  * Uses in-memory cache only (no Redis) and browser-compatible JWT decoder
4
4
  */
5
5
  import { HttpClient } from "../utils/http-client";
6
+ import { ApiClient } from "../api";
6
7
  import { CacheService } from "./cache.service";
7
8
  import { AuthStrategy } from "../types/config.types";
8
9
  export declare class BrowserRoleService {
9
10
  private httpClient;
11
+ private apiClient;
10
12
  private cache;
11
13
  private config;
12
14
  private roleTTL;
13
- constructor(httpClient: HttpClient, cache: CacheService);
15
+ constructor(httpClient: HttpClient, apiClient: ApiClient, cache: CacheService);
14
16
  /**
15
17
  * Extract userId from JWT token without making API call
16
18
  * Uses browser-compatible JWT decoder
@@ -1 +1 @@
1
- {"version":3,"file":"browser-role.service.d.ts","sourceRoot":"","sources":["../../src/services/browser-role.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAGL,YAAY,EACb,MAAM,uBAAuB,CAAC;AAQ/B,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAS;gBAEZ,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY;IAOvD;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;;;;OAKG;IACG,QAAQ,CACZ,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IAsDpB;;;;;OAKG;IACG,OAAO,CACX,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;OAKG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;OAKG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;OAIG;IACG,YAAY,CAChB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IAyCpB;;;;OAIG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,IAAI,CAAC;CAqBjB"}
1
+ {"version":3,"file":"browser-role.service.d.ts","sourceRoot":"","sources":["../../src/services/browser-role.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAEL,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAQ/B,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAS;gBAEZ,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY;IAQ7E;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;;;;OAKG;IACG,QAAQ,CACZ,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IA6DpB;;;;;OAKG;IACG,OAAO,CACX,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;OAKG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;OAKG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;OAIG;IACG,YAAY,CAChB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IA0CpB;;;;OAIG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,IAAI,CAAC;CA2BjB"}
@@ -7,10 +7,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.BrowserRoleService = void 0;
8
8
  const browser_jwt_decoder_1 = require("../utils/browser-jwt-decoder");
9
9
  class BrowserRoleService {
10
- constructor(httpClient, cache) {
10
+ constructor(httpClient, apiClient, cache) {
11
11
  this.config = httpClient.config;
12
12
  this.cache = cache;
13
13
  this.httpClient = httpClient;
14
+ this.apiClient = apiClient;
14
15
  this.roleTTL = this.config.cache?.roleTTL || 900; // 15 minutes default
15
16
  }
16
17
  /**
@@ -54,16 +55,23 @@ class BrowserRoleService {
54
55
  // Cache miss or no userId in token - fetch from controller
55
56
  // If we don't have userId, get it from validate endpoint
56
57
  if (!userId) {
57
- const userInfo = await this.httpClient.validateTokenRequest(token, authStrategy);
58
- userId = userInfo.user?.id || null;
58
+ const authStrategyToUse = authStrategy || this.config.authStrategy;
59
+ const authStrategyWithToken = authStrategyToUse
60
+ ? { ...authStrategyToUse, bearerToken: token }
61
+ : { methods: ['bearer'], bearerToken: token };
62
+ const userInfo = await this.apiClient.auth.validateToken({ token }, authStrategyWithToken);
63
+ userId = userInfo.data?.user?.id || null;
59
64
  if (!userId) {
60
65
  return [];
61
66
  }
62
67
  }
63
- // Cache miss - fetch from controller
64
- const roleResult = await this.httpClient.authenticatedRequest("GET", "/api/v1/auth/roles", // Backend knows app/env from client token
65
- token, undefined, undefined, authStrategy);
66
- const roles = roleResult.roles || [];
68
+ // Cache miss - fetch from controller using ApiClient
69
+ const authStrategyToUse = authStrategy || this.config.authStrategy;
70
+ const authStrategyWithToken = authStrategyToUse
71
+ ? { ...authStrategyToUse, bearerToken: token }
72
+ : { methods: ['bearer'], bearerToken: token };
73
+ const roleResult = await this.apiClient.roles.getRoles(undefined, authStrategyWithToken);
74
+ const roles = roleResult.data?.roles || [];
67
75
  // Cache the result (use userId-based key)
68
76
  const finalCacheKey = `roles:${userId}`;
69
77
  await this.cache.set(finalCacheKey, { roles, timestamp: Date.now() }, this.roleTTL);
@@ -113,15 +121,19 @@ class BrowserRoleService {
113
121
  async refreshRoles(token, authStrategy) {
114
122
  try {
115
123
  // Get user info to extract userId
116
- const userInfo = await this.httpClient.validateTokenRequest(token, authStrategy);
117
- if (!userInfo.user?.id) {
124
+ const authStrategyToUse = authStrategy || this.config.authStrategy;
125
+ const authStrategyWithToken = authStrategyToUse
126
+ ? { ...authStrategyToUse, bearerToken: token }
127
+ : { methods: ['bearer'], bearerToken: token };
128
+ const userInfo = await this.apiClient.auth.validateToken({ token }, authStrategyWithToken);
129
+ if (!userInfo.data?.user?.id) {
118
130
  return [];
119
131
  }
120
- const userId = userInfo.user.id;
132
+ const userId = userInfo.data.user.id;
121
133
  const cacheKey = `roles:${userId}`;
122
- // Fetch fresh roles from controller using refresh endpoint
123
- const roleResult = await this.httpClient.authenticatedRequest("GET", "/api/v1/auth/roles/refresh", token, undefined, undefined, authStrategy);
124
- const roles = roleResult.roles || [];
134
+ // Fetch fresh roles from controller using refresh endpoint via ApiClient
135
+ const roleResult = await this.apiClient.roles.refreshRoles(authStrategyWithToken);
136
+ const roles = roleResult.data?.roles || [];
125
137
  // Update cache with fresh data
126
138
  await this.cache.set(cacheKey, { roles, timestamp: Date.now() }, this.roleTTL);
127
139
  return roles;
@@ -140,11 +152,15 @@ class BrowserRoleService {
140
152
  async clearRolesCache(token, authStrategy) {
141
153
  try {
142
154
  // Get user info to extract userId
143
- const userInfo = await this.httpClient.validateTokenRequest(token, authStrategy);
144
- if (!userInfo.user?.id) {
155
+ const authStrategyToUse = authStrategy || this.config.authStrategy;
156
+ const authStrategyWithToken = authStrategyToUse
157
+ ? { ...authStrategyToUse, bearerToken: token }
158
+ : { methods: ['bearer'], bearerToken: token };
159
+ const userInfo = await this.apiClient.auth.validateToken({ token }, authStrategyWithToken);
160
+ if (!userInfo.data?.user?.id) {
145
161
  return;
146
162
  }
147
- const userId = userInfo.user.id;
163
+ const userId = userInfo.data.user.id;
148
164
  const cacheKey = `roles:${userId}`;
149
165
  // Clear from cache
150
166
  await this.cache.delete(cacheKey);