@aifabrix/miso-client 3.1.2 → 3.2.5

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 (87) hide show
  1. package/README.md +57 -2
  2. package/dist/express/client-token-endpoint.d.ts +76 -0
  3. package/dist/express/client-token-endpoint.d.ts.map +1 -0
  4. package/dist/express/client-token-endpoint.js +231 -0
  5. package/dist/express/client-token-endpoint.js.map +1 -0
  6. package/dist/express/index.d.ts +2 -1
  7. package/dist/express/index.d.ts.map +1 -1
  8. package/dist/express/index.js +8 -3
  9. package/dist/express/index.js.map +1 -1
  10. package/dist/express/response-middleware.d.ts.map +1 -1
  11. package/dist/express/response-middleware.js.map +1 -1
  12. package/dist/index.d.ts +19 -2
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +30 -4
  15. package/dist/index.js.map +1 -1
  16. package/dist/services/auth.service.d.ts +26 -4
  17. package/dist/services/auth.service.d.ts.map +1 -1
  18. package/dist/services/auth.service.js +137 -6
  19. package/dist/services/auth.service.js.map +1 -1
  20. package/dist/services/browser-permission.service.d.ts +60 -0
  21. package/dist/services/browser-permission.service.d.ts.map +1 -0
  22. package/dist/services/browser-permission.service.js +159 -0
  23. package/dist/services/browser-permission.service.js.map +1 -0
  24. package/dist/services/browser-role.service.d.ts +60 -0
  25. package/dist/services/browser-role.service.d.ts.map +1 -0
  26. package/dist/services/browser-role.service.js +159 -0
  27. package/dist/services/browser-role.service.js.map +1 -0
  28. package/dist/services/cache.service.d.ts.map +1 -1
  29. package/dist/services/cache.service.js +4 -0
  30. package/dist/services/cache.service.js.map +1 -1
  31. package/dist/services/logger.service.d.ts +99 -24
  32. package/dist/services/logger.service.d.ts.map +1 -1
  33. package/dist/services/logger.service.js +174 -44
  34. package/dist/services/logger.service.js.map +1 -1
  35. package/dist/services/redis.service.d.ts.map +1 -1
  36. package/dist/services/redis.service.js +3 -6
  37. package/dist/services/redis.service.js.map +1 -1
  38. package/dist/types/config.types.d.ts +22 -0
  39. package/dist/types/config.types.d.ts.map +1 -1
  40. package/dist/types/config.types.js.map +1 -1
  41. package/dist/types/data-client.types.d.ts +10 -0
  42. package/dist/types/data-client.types.d.ts.map +1 -1
  43. package/dist/types/data-client.types.js.map +1 -1
  44. package/dist/utils/audit-log-queue.d.ts +4 -0
  45. package/dist/utils/audit-log-queue.d.ts.map +1 -1
  46. package/dist/utils/audit-log-queue.js +22 -2
  47. package/dist/utils/audit-log-queue.js.map +1 -1
  48. package/dist/utils/browser-jwt-decoder.d.ts +20 -0
  49. package/dist/utils/browser-jwt-decoder.d.ts.map +1 -0
  50. package/dist/utils/browser-jwt-decoder.js +75 -0
  51. package/dist/utils/browser-jwt-decoder.js.map +1 -0
  52. package/dist/utils/controller-url-resolver.d.ts +16 -0
  53. package/dist/utils/controller-url-resolver.d.ts.map +1 -1
  54. package/dist/utils/controller-url-resolver.js +12 -0
  55. package/dist/utils/controller-url-resolver.js.map +1 -1
  56. package/dist/utils/data-client-audit.d.ts.map +1 -1
  57. package/dist/utils/data-client-audit.js +19 -8
  58. package/dist/utils/data-client-audit.js.map +1 -1
  59. package/dist/utils/data-client-auth.d.ts +19 -7
  60. package/dist/utils/data-client-auth.d.ts.map +1 -1
  61. package/dist/utils/data-client-auth.js +269 -144
  62. package/dist/utils/data-client-auth.js.map +1 -1
  63. package/dist/utils/data-client-auto-init.d.ts +66 -0
  64. package/dist/utils/data-client-auto-init.d.ts.map +1 -0
  65. package/dist/utils/data-client-auto-init.js +259 -0
  66. package/dist/utils/data-client-auto-init.js.map +1 -0
  67. package/dist/utils/data-client-redirect.d.ts +52 -0
  68. package/dist/utils/data-client-redirect.d.ts.map +1 -0
  69. package/dist/utils/data-client-redirect.js +233 -0
  70. package/dist/utils/data-client-redirect.js.map +1 -0
  71. package/dist/utils/data-client-request.d.ts +8 -1
  72. package/dist/utils/data-client-request.d.ts.map +1 -1
  73. package/dist/utils/data-client-request.js +30 -5
  74. package/dist/utils/data-client-request.js.map +1 -1
  75. package/dist/utils/data-client.d.ts +116 -0
  76. package/dist/utils/data-client.d.ts.map +1 -1
  77. package/dist/utils/data-client.js +349 -4
  78. package/dist/utils/data-client.js.map +1 -1
  79. package/dist/utils/logging-helpers.d.ts +51 -0
  80. package/dist/utils/logging-helpers.d.ts.map +1 -0
  81. package/dist/utils/logging-helpers.js +57 -0
  82. package/dist/utils/logging-helpers.js.map +1 -0
  83. package/dist/utils/request-context.d.ts +32 -0
  84. package/dist/utils/request-context.d.ts.map +1 -0
  85. package/dist/utils/request-context.js +81 -0
  86. package/dist/utils/request-context.js.map +1 -0
  87. package/package.json +9 -2
package/README.md CHANGED
@@ -190,6 +190,23 @@ const dataClient = new DataClient({
190
190
  // Make authenticated requests with automatic audit logging
191
191
  const users = await dataClient.get('/api/users');
192
192
  const newUser = await dataClient.post('/api/users', { name: 'John' });
193
+
194
+ // OAuth callback is automatically handled on initialization
195
+ // Token is extracted from URL hash fragment (#token=...) and stored securely
196
+ // Hash fragment is immediately removed from URL (< 100ms) for security
197
+
198
+ // Token refresh callback (automatic refresh on 401 errors)
199
+ const dataClientWithRefresh = new DataClient({
200
+ baseUrl: 'https://api.example.com',
201
+ misoConfig: { /* ... */ },
202
+ onTokenRefresh: async () => {
203
+ // Call your backend endpoint that handles refresh token securely
204
+ const response = await fetch('/api/refresh-token', {
205
+ credentials: 'include', // Include cookies for auth
206
+ });
207
+ return await response.json(); // { token: string, expiresIn: number }
208
+ },
209
+ });
193
210
  ```
194
211
 
195
212
  → [DataClient Documentation](docs/data-client.md) - Includes security guide and Client Token Pattern
@@ -256,7 +273,7 @@ if (token) {
256
273
 
257
274
  ### Step 4: Activate RBAC (Roles)
258
275
 
259
- **What happens:** Check user roles to control access. Roles are cached in Redis for performance.
276
+ **What happens:** Check user roles to control access. Roles are cached in Redis for performance. Token validation is also cached (15-minute TTL) to reduce API calls.
260
277
 
261
278
  ```typescript
262
279
  import { MisoClient, loadConfig } from '@aifabrix/miso-client';
@@ -288,6 +305,8 @@ if (isAdmin) {
288
305
 
289
306
  **What happens:** Application logs are sent to the Miso Controller with client token authentication.
290
307
 
308
+ **Basic Logging:**
309
+
291
310
  ```typescript
292
311
  import { MisoClient, loadConfig } from '@aifabrix/miso-client';
293
312
 
@@ -304,7 +323,42 @@ await client.log.error('Operation failed', { error: err.message });
304
323
  await client.log.warn('Unusual activity', { details: '...' });
305
324
  ```
306
325
 
307
- **What happens to logs?** They're sent to the Miso Controller for centralized monitoring and analysis. Client token is automatically included.
326
+ **Fluent API with Request Context (Express):**
327
+
328
+ ```typescript
329
+ import { Request } from 'express';
330
+
331
+ // Auto-extract context from Express Request
332
+ app.get('/api/users', async (req: Request, res) => {
333
+ await client.log
334
+ .withRequest(req)
335
+ .info('Users list accessed');
336
+ // Automatically includes: IP, method, path, userAgent, correlationId, userId
337
+ });
338
+ ```
339
+
340
+ **Indexed Context for Fast Queries:**
341
+
342
+ ```typescript
343
+ import { extractLoggingContext } from '@aifabrix/miso-client';
344
+
345
+ const logContext = extractLoggingContext({
346
+ source: {
347
+ key: 'datasource-1',
348
+ displayName: 'PostgreSQL DB',
349
+ externalSystem: { key: 'system-1', displayName: 'External API' }
350
+ },
351
+ record: { key: 'record-123', displayName: 'User Profile' }
352
+ });
353
+
354
+ await client.log
355
+ .withIndexedContext(logContext)
356
+ .addCorrelation(correlationId)
357
+ .addUser(userId)
358
+ .error('Sync failed');
359
+ ```
360
+
361
+ **What happens to logs?** They're sent to the Miso Controller for centralized monitoring and analysis. Client token is automatically included. Indexed context fields enable fast database queries for observability and compliance.
308
362
 
309
363
  **Event Emission Mode:** When embedding the SDK directly in your own application, enable `emitEvents = true` to receive logs as Node.js events instead of HTTP calls:
310
364
 
@@ -820,6 +874,7 @@ interface MisoClientConfig {
820
874
  cache?: {
821
875
  roleTTL?: number; // Role cache TTL (default: 900s)
822
876
  permissionTTL?: number; // Permission cache TTL (default: 900s)
877
+ tokenValidationTTL?: number; // Token validation cache TTL (default: 900s)
823
878
  };
824
879
  audit?: AuditConfig; // Optional: Audit logging configuration
825
880
  }
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Client Token Endpoint Helper
3
+ * Express route handler that automatically enriches client-token response with DataClient configuration
4
+ *
5
+ * Provides zero-config server-side setup for DataClient initialization
6
+ */
7
+ import { Request, Response } from "express";
8
+ import { MisoClient } from "../index";
9
+ /**
10
+ * DataClient configuration returned by client-token endpoint
11
+ * Contains all necessary configuration for browser-side DataClient initialization
12
+ */
13
+ export interface DataClientConfigResponse {
14
+ /** API base URL (derived from request) */
15
+ baseUrl: string;
16
+ /** MISO Controller URL (from misoClient config) */
17
+ controllerUrl: string;
18
+ /** Public controller URL for browser environments (if set) */
19
+ controllerPublicUrl?: string;
20
+ /** Client ID (from misoClient config) */
21
+ clientId: string;
22
+ /** Client token endpoint URI */
23
+ clientTokenUri: string;
24
+ }
25
+ /**
26
+ * Client token endpoint response
27
+ * Includes token, expiration, and DataClient configuration
28
+ */
29
+ export interface ClientTokenResponse {
30
+ /** Client token string */
31
+ token: string;
32
+ /** Token expiration time in seconds */
33
+ expiresIn: number;
34
+ /** DataClient configuration (included when includeConfig is true) */
35
+ config?: DataClientConfigResponse;
36
+ }
37
+ /**
38
+ * Options for createClientTokenEndpoint
39
+ */
40
+ export interface ClientTokenEndpointOptions {
41
+ /** Client token endpoint URI (default: '/api/v1/auth/client-token') */
42
+ clientTokenUri?: string;
43
+ /** Token expiration time in seconds (default: 1800) */
44
+ expiresIn?: number;
45
+ /** Whether to include DataClient config in response (default: true) */
46
+ includeConfig?: boolean;
47
+ }
48
+ /**
49
+ * Type guard to check if response includes config
50
+ *
51
+ * @param response - Client token response
52
+ * @returns True if response includes config
53
+ */
54
+ export declare function hasConfig(response: ClientTokenResponse): response is ClientTokenResponse & {
55
+ config: DataClientConfigResponse;
56
+ };
57
+ /**
58
+ * Create Express route handler for client-token endpoint
59
+ * Automatically enriches response with DataClient configuration
60
+ *
61
+ * @param misoClient - MisoClient instance (must be initialized)
62
+ * @param options - Optional configuration
63
+ * @returns Express route handler function
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * import { MisoClient, createClientTokenEndpoint } from '@aifabrix/miso-client';
68
+ *
69
+ * const misoClient = new MisoClient(loadConfig());
70
+ * await misoClient.initialize();
71
+ *
72
+ * app.post('/api/v1/auth/client-token', createClientTokenEndpoint(misoClient));
73
+ * ```
74
+ */
75
+ export declare function createClientTokenEndpoint(misoClient: MisoClient, options?: ClientTokenEndpointOptions): (req: Request, res: Response) => Promise<void>;
76
+ //# sourceMappingURL=client-token-endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-token-endpoint.d.ts","sourceRoot":"","sources":["../../src/express/client-token-endpoint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAEhB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IAEtB,8DAA8D;IAC9D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IAEjB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IAEd,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAElB,qEAAqE;IACrE,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,QAAQ,IAAI,mBAAmB,GAAG;IAAE,MAAM,EAAE,wBAAwB,CAAA;CAAE,CAE/H;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,0BAA0B,GACnC,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAuNhD"}
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ /**
3
+ * Client Token Endpoint Helper
4
+ * Express route handler that automatically enriches client-token response with DataClient configuration
5
+ *
6
+ * Provides zero-config server-side setup for DataClient initialization
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.hasConfig = hasConfig;
10
+ exports.createClientTokenEndpoint = createClientTokenEndpoint;
11
+ const environment_token_1 = require("../utils/environment-token");
12
+ /**
13
+ * Type guard to check if response includes config
14
+ *
15
+ * @param response - Client token response
16
+ * @returns True if response includes config
17
+ */
18
+ function hasConfig(response) {
19
+ return response.config !== undefined;
20
+ }
21
+ /**
22
+ * Create Express route handler for client-token endpoint
23
+ * Automatically enriches response with DataClient configuration
24
+ *
25
+ * @param misoClient - MisoClient instance (must be initialized)
26
+ * @param options - Optional configuration
27
+ * @returns Express route handler function
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * import { MisoClient, createClientTokenEndpoint } from '@aifabrix/miso-client';
32
+ *
33
+ * const misoClient = new MisoClient(loadConfig());
34
+ * await misoClient.initialize();
35
+ *
36
+ * app.post('/api/v1/auth/client-token', createClientTokenEndpoint(misoClient));
37
+ * ```
38
+ */
39
+ function createClientTokenEndpoint(misoClient, options) {
40
+ const opts = {
41
+ clientTokenUri: "/api/v1/auth/client-token",
42
+ expiresIn: 1800,
43
+ includeConfig: true,
44
+ ...options,
45
+ };
46
+ return async (req, res) => {
47
+ // Helper to check if response was already sent
48
+ const isResponseSent = () => res.headersSent || res.writableEnded;
49
+ try {
50
+ // Check if misoClient is initialized
51
+ if (!misoClient.isInitialized()) {
52
+ if (!isResponseSent()) {
53
+ res.status(503).json({
54
+ error: "Service Unavailable",
55
+ message: "MisoClient is not initialized",
56
+ });
57
+ }
58
+ return;
59
+ }
60
+ // Get token with origin validation (throws if validation fails)
61
+ // Wrap in Promise.race with timeout to ensure we don't hang
62
+ // Fail fast after 5 seconds if controller is unreachable
63
+ const timeoutMs = 5000; // 5 seconds - fail fast if controller is unreachable
64
+ const tokenPromise = (0, environment_token_1.getEnvironmentToken)(misoClient, req);
65
+ const timeoutPromise = new Promise((_, reject) => {
66
+ setTimeout(() => {
67
+ reject(new Error("Request timeout: Failed to get environment token within 5 seconds"));
68
+ }, timeoutMs);
69
+ });
70
+ let token;
71
+ try {
72
+ token = await Promise.race([tokenPromise, timeoutPromise]);
73
+ }
74
+ catch (tokenError) {
75
+ // If response already sent, don't try to send again
76
+ if (isResponseSent()) {
77
+ return;
78
+ }
79
+ const errorMessage = tokenError instanceof Error ? tokenError.message : "Unknown error";
80
+ // Check if it's an origin validation error (403)
81
+ if (errorMessage.includes("Origin validation failed")) {
82
+ res.status(403).json({
83
+ error: "Forbidden",
84
+ message: errorMessage,
85
+ });
86
+ return;
87
+ }
88
+ // Check if it's our timeout wrapper error (specific message from timeout promise)
89
+ const isTimeoutWrapperError = errorMessage.includes("Request timeout: Failed to get environment token within 5 seconds");
90
+ // Check if error message contains HTTP status codes (indicates HTTP error, not timeout)
91
+ // AuthService wraps axios errors with status info like "status: 401"
92
+ const httpStatusMatch = errorMessage.match(/status:\s*(\d+)/i);
93
+ const httpStatus = httpStatusMatch ? parseInt(httpStatusMatch[1], 10) : undefined;
94
+ const isHttpError = httpStatus !== undefined;
95
+ // Also try to extract axios error details from the error chain
96
+ let extractedHttpStatus = httpStatus;
97
+ let httpStatusText;
98
+ // Try to extract axios error details from the error chain
99
+ let currentError = tokenError;
100
+ for (let i = 0; i < 5 && currentError; i++) {
101
+ if (currentError &&
102
+ typeof currentError === "object" &&
103
+ "isAxiosError" in currentError &&
104
+ currentError.isAxiosError) {
105
+ const axiosError = currentError;
106
+ if (axiosError.response) {
107
+ // Has response = HTTP error (not timeout)
108
+ extractedHttpStatus = axiosError.response.status;
109
+ httpStatusText = axiosError.response.statusText;
110
+ break;
111
+ }
112
+ // No response but has request = network/timeout error
113
+ if (axiosError.request && !axiosError.response) {
114
+ // This is a network/timeout error
115
+ break;
116
+ }
117
+ }
118
+ // Check if error has a cause (for chained errors)
119
+ if (currentError && typeof currentError === "object" && "cause" in currentError) {
120
+ currentError = currentError.cause;
121
+ }
122
+ else {
123
+ break;
124
+ }
125
+ }
126
+ // Use extracted status if available, otherwise use parsed status
127
+ const finalHttpStatus = extractedHttpStatus || httpStatus;
128
+ // If it's an HTTP error (like 401), return appropriate status code
129
+ if (isHttpError && finalHttpStatus) {
130
+ // Map common HTTP errors to appropriate status codes
131
+ if (finalHttpStatus === 401) {
132
+ res.status(401).json({
133
+ error: "Unauthorized",
134
+ message: "Failed to get environment token: Invalid client credentials or application not found",
135
+ });
136
+ return;
137
+ }
138
+ if (finalHttpStatus === 403) {
139
+ res.status(403).json({
140
+ error: "Forbidden",
141
+ message: "Failed to get environment token: Access denied",
142
+ });
143
+ return;
144
+ }
145
+ // Other HTTP errors
146
+ res.status(finalHttpStatus).json({
147
+ error: httpStatusText || "Error",
148
+ message: errorMessage,
149
+ });
150
+ return;
151
+ }
152
+ // Check if it's a timeout error (from our wrapper or axios timeout)
153
+ if (isTimeoutWrapperError || errorMessage.includes("timeout") || errorMessage.includes("Timeout")) {
154
+ res.status(504).json({
155
+ error: "Gateway Timeout",
156
+ message: "Failed to get environment token: Controller request timed out",
157
+ });
158
+ return;
159
+ }
160
+ // Other errors (500)
161
+ res.status(500).json({
162
+ error: "Internal Server Error",
163
+ message: errorMessage,
164
+ });
165
+ return;
166
+ }
167
+ // Build response
168
+ const response = {
169
+ token,
170
+ expiresIn: opts.expiresIn,
171
+ };
172
+ // Include config if requested
173
+ if (opts.includeConfig) {
174
+ const config = misoClient.getConfig();
175
+ // Derive baseUrl from request
176
+ const baseUrl = `${req.protocol}://${req.get("host") || "localhost"}`;
177
+ // Get controller URL (prefer controllerPublicUrl for browser, fallback to controllerUrl)
178
+ const controllerUrl = config.controllerPublicUrl || config.controllerUrl;
179
+ if (!controllerUrl) {
180
+ if (!isResponseSent()) {
181
+ res.status(500).json({
182
+ error: "Internal Server Error",
183
+ message: "Controller URL not configured",
184
+ });
185
+ }
186
+ return;
187
+ }
188
+ response.config = {
189
+ baseUrl,
190
+ controllerUrl,
191
+ controllerPublicUrl: config.controllerPublicUrl,
192
+ clientId: config.clientId,
193
+ clientTokenUri: opts.clientTokenUri,
194
+ };
195
+ }
196
+ // Send response if not already sent
197
+ if (!isResponseSent()) {
198
+ res.json(response);
199
+ }
200
+ }
201
+ catch (error) {
202
+ // Final catch-all error handler
203
+ if (isResponseSent()) {
204
+ return;
205
+ }
206
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
207
+ // Check if it's an origin validation error (403)
208
+ if (errorMessage.includes("Origin validation failed")) {
209
+ res.status(403).json({
210
+ error: "Forbidden",
211
+ message: errorMessage,
212
+ });
213
+ return;
214
+ }
215
+ // Check if it's a timeout error
216
+ if (errorMessage.includes("timeout") || errorMessage.includes("Timeout")) {
217
+ res.status(504).json({
218
+ error: "Gateway Timeout",
219
+ message: "Failed to get environment token: Request timed out",
220
+ });
221
+ return;
222
+ }
223
+ // Other errors (500)
224
+ res.status(500).json({
225
+ error: "Internal Server Error",
226
+ message: errorMessage,
227
+ });
228
+ }
229
+ };
230
+ }
231
+ //# sourceMappingURL=client-token-endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-token-endpoint.js","sourceRoot":"","sources":["../../src/express/client-token-endpoint.ts"],"names":[],"mappings":"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"}
@@ -15,5 +15,6 @@ export { getEnvironmentToken } from "../utils/environment-token";
15
15
  export { extractClientTokenInfo } from "../utils/token-utils";
16
16
  export type { ClientTokenInfo } from "../utils/token-utils";
17
17
  export type { OriginValidationResult } from "../utils/origin-validator";
18
- import "./express.d.ts";
18
+ export { createClientTokenEndpoint, hasConfig, } from "./client-token-endpoint";
19
+ export type { ClientTokenEndpointOptions, ClientTokenResponse, DataClientConfigResponse, } from "./client-token-endpoint";
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/express/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGlE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGhF,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGxE,OAAO,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/express/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGlE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGhF,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGxE,OAAO,EACL,yBAAyB,EACzB,SAAS,GACV,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Generic helpers for building Express.js REST APIs
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.extractClientTokenInfo = exports.getEnvironmentToken = exports.validateOrigin = exports.EncryptionUtil = exports.sendErrorResponse = exports.getErrorTitle = exports.getErrorTypeUri = exports.handleRouteError = exports.setErrorLogger = exports.createErrorResponse = exports.createSuccessResponse = exports.AppError = exports.ValidationHelper = exports.asyncHandlerNamed = exports.asyncHandler = exports.injectResponseHelpers = exports.ResponseHelper = void 0;
7
+ exports.hasConfig = exports.createClientTokenEndpoint = exports.extractClientTokenInfo = exports.getEnvironmentToken = exports.validateOrigin = exports.EncryptionUtil = exports.sendErrorResponse = exports.getErrorTitle = exports.getErrorTypeUri = exports.handleRouteError = exports.setErrorLogger = exports.createErrorResponse = exports.createSuccessResponse = exports.AppError = exports.ValidationHelper = exports.asyncHandlerNamed = exports.asyncHandler = exports.injectResponseHelpers = exports.ResponseHelper = void 0;
8
8
  // Response helpers
9
9
  var response_helper_1 = require("./response-helper");
10
10
  Object.defineProperty(exports, "ResponseHelper", { enumerable: true, get: function () { return response_helper_1.ResponseHelper; } });
@@ -41,6 +41,11 @@ var environment_token_1 = require("../utils/environment-token");
41
41
  Object.defineProperty(exports, "getEnvironmentToken", { enumerable: true, get: function () { return environment_token_1.getEnvironmentToken; } });
42
42
  var token_utils_1 = require("../utils/token-utils");
43
43
  Object.defineProperty(exports, "extractClientTokenInfo", { enumerable: true, get: function () { return token_utils_1.extractClientTokenInfo; } });
44
- // Type augmentation (imported for side effects)
45
- require("./express.d.ts");
44
+ // Client token endpoint helper
45
+ var client_token_endpoint_1 = require("./client-token-endpoint");
46
+ Object.defineProperty(exports, "createClientTokenEndpoint", { enumerable: true, get: function () { return client_token_endpoint_1.createClientTokenEndpoint; } });
47
+ Object.defineProperty(exports, "hasConfig", { enumerable: true, get: function () { return client_token_endpoint_1.hasConfig; } });
48
+ // Note: express.d.ts provides type augmentation for Express Response types.
49
+ // It doesn't need to be imported - TypeScript automatically picks up .d.ts files
50
+ // in the same directory. The build script copies it to dist/express/express.d.ts.
46
51
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/express/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,mBAAmB;AACnB,qDAAmE;AAA1D,iHAAA,cAAc,OAAA;AACvB,6DAA8D;AAArD,4HAAA,qBAAqB,OAAA;AAE9B,gBAAgB;AAChB,iDAAkE;AAAzD,6GAAA,YAAY,OAAA;AAAE,kHAAA,iBAAiB,OAAA;AAExC,aAAa;AACb,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AAEzB,yBAAyB;AACzB,6CAOuB;AANrB,uGAAA,QAAQ,OAAA;AAIR,oHAAA,qBAAqB,OAAA;AACrB,kHAAA,mBAAmB,OAAA;AAGrB,6BAA6B;AAC7B,iDAAgF;AAA1D,+GAAA,cAAc,OAAA;AAAE,iHAAA,gBAAgB,OAAA;AAEtD,4BAA4B;AAC5B,mDAM0B;AAHxB,iHAAA,eAAe,OAAA;AACf,+GAAA,aAAa,OAAA;AACb,mHAAA,iBAAiB,OAAA;AAGnB,aAAa;AACb,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AAEvB,oDAAoD;AACpD,8DAA2D;AAAlD,kHAAA,cAAc,OAAA;AACvB,gEAAiE;AAAxD,wHAAA,mBAAmB,OAAA;AAC5B,oDAA8D;AAArD,qHAAA,sBAAsB,OAAA;AAI/B,gDAAgD;AAChD,0BAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/express/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,mBAAmB;AACnB,qDAAmE;AAA1D,iHAAA,cAAc,OAAA;AACvB,6DAA8D;AAArD,4HAAA,qBAAqB,OAAA;AAE9B,gBAAgB;AAChB,iDAAkE;AAAzD,6GAAA,YAAY,OAAA;AAAE,kHAAA,iBAAiB,OAAA;AAExC,aAAa;AACb,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AAEzB,yBAAyB;AACzB,6CAOuB;AANrB,uGAAA,QAAQ,OAAA;AAIR,oHAAA,qBAAqB,OAAA;AACrB,kHAAA,mBAAmB,OAAA;AAGrB,6BAA6B;AAC7B,iDAAgF;AAA1D,+GAAA,cAAc,OAAA;AAAE,iHAAA,gBAAgB,OAAA;AAEtD,4BAA4B;AAC5B,mDAM0B;AAHxB,iHAAA,eAAe,OAAA;AACf,+GAAA,aAAa,OAAA;AACb,mHAAA,iBAAiB,OAAA;AAGnB,aAAa;AACb,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AAEvB,oDAAoD;AACpD,8DAA2D;AAAlD,kHAAA,cAAc,OAAA;AACvB,gEAAiE;AAAxD,wHAAA,mBAAmB,OAAA;AAC5B,oDAA8D;AAArD,qHAAA,sBAAsB,OAAA;AAI/B,+BAA+B;AAC/B,iEAGiC;AAF/B,kIAAA,yBAAyB,OAAA;AACzB,kHAAA,SAAS,OAAA;AAQX,4EAA4E;AAC5E,iFAAiF;AACjF,kFAAkF"}
@@ -1 +1 @@
1
- {"version":3,"file":"response-middleware.d.ts","sourceRoot":"","sources":["../../src/express/response-middleware.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG1D;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,IAAI,CAiBN"}
1
+ {"version":3,"file":"response-middleware.d.ts","sourceRoot":"","sources":["../../src/express/response-middleware.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG1D;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,IAAI,CAiBN"}
@@ -1 +1 @@
1
- {"version":3,"file":"response-middleware.js","sourceRoot":"","sources":["../../src/express/response-middleware.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAgBH,sDAqBC;AAlCD,uDAAmE;AAEnE;;;;;;;;;;GAUG;AACH,SAAgB,qBAAqB,CACnC,GAAY,EACZ,GAAa,EACb,IAAkB;IAElB,wBAAwB;IACxB,GAAG,CAAC,OAAO,GAAG,CAAI,IAAO,EAAE,OAAgB,EAAE,EAAE,CAC7C,gCAAc,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAE7C,GAAG,CAAC,OAAO,GAAG,CAAI,IAAO,EAAE,OAAgB,EAAE,EAAE,CAC7C,gCAAc,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAE7C,GAAG,CAAC,SAAS,GAAG,CAAI,KAAU,EAAE,IAAoB,EAAE,EAAE,CACtD,gCAAc,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAE7C,GAAG,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,gCAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAEpD,GAAG,CAAC,QAAQ,GAAG,CAAI,IAAQ,EAAE,OAAgB,EAAE,EAAE,CAC/C,gCAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAE9C,IAAI,EAAE,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"response-middleware.js","sourceRoot":"","sources":["../../src/express/response-middleware.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAkBH,sDAqBC;AAlCD,uDAAmE;AAEnE;;;;;;;;;;GAUG;AACH,SAAgB,qBAAqB,CACnC,GAAY,EACZ,GAAa,EACb,IAAkB;IAElB,wBAAwB;IACxB,GAAG,CAAC,OAAO,GAAG,CAAI,IAAO,EAAE,OAAgB,EAAE,EAAE,CAC7C,gCAAc,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAE7C,GAAG,CAAC,OAAO,GAAG,CAAI,IAAO,EAAE,OAAgB,EAAE,EAAE,CAC7C,gCAAc,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAE7C,GAAG,CAAC,SAAS,GAAG,CAAI,KAAU,EAAE,IAAoB,EAAE,EAAE,CACtD,gCAAc,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAE7C,GAAG,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,gCAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAEpD,GAAG,CAAC,QAAQ,GAAG,CAAI,IAAQ,EAAE,OAAgB,EAAE,EAAE,CAC/C,gCAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAE9C,IAAI,EAAE,CAAC;AACT,CAAC"}
package/dist/index.d.ts CHANGED
@@ -102,6 +102,13 @@ export declare class MisoClient {
102
102
  logout(params: {
103
103
  token: string;
104
104
  }): Promise<import("./types/config.types").LogoutResponse>;
105
+ /**
106
+ * Refresh user access token using refresh token
107
+ * @param refreshToken - Refresh token to exchange for new access token
108
+ * @param authStrategy - Optional authentication strategy override
109
+ * @returns New access token, refresh token, and expiration info, or null on error
110
+ */
111
+ refreshToken(refreshToken: string, authStrategy?: AuthStrategy): Promise<import("./types/config.types").RefreshTokenResponse | null>;
105
112
  /**
106
113
  * Get user roles (cached in Redis if available)
107
114
  * @param token - User authentication token
@@ -224,6 +231,9 @@ export * from "./types/sort.types";
224
231
  export type { ErrorResponse as ErrorResponseFromErrors, ErrorEnvelope, } from "./types/errors.types";
225
232
  export { AuthService } from "./services/auth.service";
226
233
  export { RoleService } from "./services/role.service";
234
+ export { PermissionService } from "./services/permission.service";
235
+ export { BrowserPermissionService } from "./services/browser-permission.service";
236
+ export { BrowserRoleService } from "./services/browser-role.service";
227
237
  export { LoggerService } from "./services/logger.service";
228
238
  export { RedisService } from "./services/redis.service";
229
239
  export { CacheService } from "./services/cache.service";
@@ -234,13 +244,20 @@ export { getEnvironmentToken } from "./utils/environment-token";
234
244
  export { extractClientTokenInfo } from "./utils/token-utils";
235
245
  export type { ClientTokenInfo } from "./utils/token-utils";
236
246
  export type { OriginValidationResult } from "./utils/origin-validator";
237
- export { resolveControllerUrl, isBrowser } from "./utils/controller-url-resolver";
247
+ export { resolveControllerUrl, isBrowser, validateUrl } from "./utils/controller-url-resolver";
248
+ export { extractLoggingContext } from "./utils/logging-helpers";
249
+ export type { IndexedLoggingContext, HasKey, HasExternalSystem } from "./utils/logging-helpers";
250
+ export { extractRequestContext } from "./utils/request-context";
251
+ export type { RequestContext } from "./utils/request-context";
238
252
  export * from "./utils/pagination.utils";
239
253
  export * from "./utils/filter.utils";
240
254
  export * from "./utils/sort.utils";
241
255
  export { MisoClientError, ApiErrorException, transformError, handleApiError, } from "./utils/errors";
242
- export { ResponseHelper, PaginationMeta, injectResponseHelpers, asyncHandler, asyncHandlerNamed, ValidationHelper, AppError, ApiError, ValidationError, ApiResponse, createSuccessResponse, createErrorResponse, ErrorLogger, setErrorLogger, handleRouteError, RBACErrorExtensions, getErrorTypeUri, getErrorTitle, sendErrorResponse, EncryptionUtil, } from "./express";
256
+ export { ResponseHelper, PaginationMeta, injectResponseHelpers, asyncHandler, asyncHandlerNamed, ValidationHelper, AppError, ApiError, ValidationError, ApiResponse, createSuccessResponse, createErrorResponse, ErrorLogger, setErrorLogger, handleRouteError, RBACErrorExtensions, getErrorTypeUri, getErrorTitle, sendErrorResponse, EncryptionUtil, createClientTokenEndpoint, hasConfig, } from "./express";
257
+ export type { ClientTokenEndpointOptions, ClientTokenResponse, DataClientConfigResponse, } from "./express";
243
258
  export { ErrorResponse as ExpressErrorResponse } from "./express/error-response";
244
259
  export { DataClient, dataClient } from "./utils/data-client";
245
260
  export type { DataClientConfig, ApiRequestOptions, InterceptorConfig, RequestMetrics, AuditConfig as DataClientAuditConfig, CacheEntry, NetworkError, TimeoutError, AuthenticationError, ApiError as DataClientApiError, } from "./types/data-client.types";
261
+ export { autoInitializeDataClient, getCachedDataClientConfig } from "./utils/data-client-auto-init";
262
+ export type { AutoInitOptions } from "./utils/data-client-auto-init";
246
263
  //# sourceMappingURL=index.d.ts.map
@@ -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
@@ -17,7 +17,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
17
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.dataClient = exports.DataClient = exports.EncryptionUtil = exports.sendErrorResponse = exports.getErrorTitle = exports.getErrorTypeUri = exports.handleRouteError = exports.setErrorLogger = exports.createErrorResponse = exports.createSuccessResponse = exports.AppError = exports.ValidationHelper = exports.asyncHandlerNamed = exports.asyncHandler = exports.injectResponseHelpers = exports.ResponseHelper = exports.handleApiError = exports.transformError = exports.ApiErrorException = exports.MisoClientError = exports.isBrowser = exports.resolveControllerUrl = exports.extractClientTokenInfo = exports.getEnvironmentToken = exports.validateOrigin = exports.loadConfig = exports.HttpClient = exports.CacheService = exports.RedisService = exports.LoggerService = exports.RoleService = exports.AuthService = exports.MisoClient = void 0;
20
+ exports.getCachedDataClientConfig = exports.autoInitializeDataClient = exports.dataClient = exports.DataClient = exports.hasConfig = exports.createClientTokenEndpoint = exports.EncryptionUtil = exports.sendErrorResponse = exports.getErrorTitle = exports.getErrorTypeUri = exports.handleRouteError = exports.setErrorLogger = exports.createErrorResponse = exports.createSuccessResponse = exports.AppError = exports.ValidationHelper = exports.asyncHandlerNamed = exports.asyncHandler = exports.injectResponseHelpers = exports.ResponseHelper = exports.handleApiError = exports.transformError = exports.ApiErrorException = exports.MisoClientError = exports.extractRequestContext = exports.extractLoggingContext = exports.validateUrl = exports.isBrowser = exports.resolveControllerUrl = exports.extractClientTokenInfo = exports.getEnvironmentToken = exports.validateOrigin = exports.loadConfig = exports.HttpClient = exports.CacheService = exports.RedisService = exports.LoggerService = exports.BrowserRoleService = exports.BrowserPermissionService = exports.PermissionService = exports.RoleService = exports.AuthService = exports.MisoClient = void 0;
21
21
  const auth_service_1 = require("./services/auth.service");
22
22
  const role_service_1 = require("./services/role.service");
23
23
  const permission_service_1 = require("./services/permission.service");
@@ -51,10 +51,10 @@ class MisoClient {
51
51
  // Type assertion needed because httpClient property is private in LoggerService but needs to be updated
52
52
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
53
  this.logger.httpClient = this.httpClient;
54
- // Create services
55
- this.auth = new auth_service_1.AuthService(this.httpClient, this.redis);
56
- // Initialize cache service with Redis support (used by roles and permissions)
54
+ // Initialize cache service with Redis support (used by auth, roles and permissions)
57
55
  this.cacheService = new cache_service_1.CacheService(this.redis);
56
+ // Create services
57
+ this.auth = new auth_service_1.AuthService(this.httpClient, this.cacheService);
58
58
  // Initialize services that use cache
59
59
  this.roles = new role_service_1.RoleService(this.httpClient, this.cacheService);
60
60
  this.permissions = new permission_service_1.PermissionService(this.httpClient, this.cacheService);
@@ -181,6 +181,15 @@ class MisoClient {
181
181
  async logout(params) {
182
182
  return this.auth.logout(params);
183
183
  }
184
+ /**
185
+ * Refresh user access token using refresh token
186
+ * @param refreshToken - Refresh token to exchange for new access token
187
+ * @param authStrategy - Optional authentication strategy override
188
+ * @returns New access token, refresh token, and expiration info, or null on error
189
+ */
190
+ async refreshToken(refreshToken, authStrategy) {
191
+ return this.auth.refreshToken(refreshToken, authStrategy);
192
+ }
184
193
  // ==================== AUTHORIZATION METHODS ====================
185
194
  /**
186
195
  * Get user roles (cached in Redis if available)
@@ -355,6 +364,12 @@ var auth_service_2 = require("./services/auth.service");
355
364
  Object.defineProperty(exports, "AuthService", { enumerable: true, get: function () { return auth_service_2.AuthService; } });
356
365
  var role_service_2 = require("./services/role.service");
357
366
  Object.defineProperty(exports, "RoleService", { enumerable: true, get: function () { return role_service_2.RoleService; } });
367
+ var permission_service_2 = require("./services/permission.service");
368
+ Object.defineProperty(exports, "PermissionService", { enumerable: true, get: function () { return permission_service_2.PermissionService; } });
369
+ var browser_permission_service_1 = require("./services/browser-permission.service");
370
+ Object.defineProperty(exports, "BrowserPermissionService", { enumerable: true, get: function () { return browser_permission_service_1.BrowserPermissionService; } });
371
+ var browser_role_service_1 = require("./services/browser-role.service");
372
+ Object.defineProperty(exports, "BrowserRoleService", { enumerable: true, get: function () { return browser_role_service_1.BrowserRoleService; } });
358
373
  var logger_service_2 = require("./services/logger.service");
359
374
  Object.defineProperty(exports, "LoggerService", { enumerable: true, get: function () { return logger_service_2.LoggerService; } });
360
375
  var redis_service_2 = require("./services/redis.service");
@@ -375,6 +390,11 @@ Object.defineProperty(exports, "extractClientTokenInfo", { enumerable: true, get
375
390
  var controller_url_resolver_1 = require("./utils/controller-url-resolver");
376
391
  Object.defineProperty(exports, "resolveControllerUrl", { enumerable: true, get: function () { return controller_url_resolver_1.resolveControllerUrl; } });
377
392
  Object.defineProperty(exports, "isBrowser", { enumerable: true, get: function () { return controller_url_resolver_1.isBrowser; } });
393
+ Object.defineProperty(exports, "validateUrl", { enumerable: true, get: function () { return controller_url_resolver_1.validateUrl; } });
394
+ var logging_helpers_1 = require("./utils/logging-helpers");
395
+ Object.defineProperty(exports, "extractLoggingContext", { enumerable: true, get: function () { return logging_helpers_1.extractLoggingContext; } });
396
+ var request_context_1 = require("./utils/request-context");
397
+ Object.defineProperty(exports, "extractRequestContext", { enumerable: true, get: function () { return request_context_1.extractRequestContext; } });
378
398
  // Export pagination, filter, sort utilities
379
399
  __exportStar(require("./utils/pagination.utils"), exports);
380
400
  __exportStar(require("./utils/filter.utils"), exports);
@@ -402,8 +422,14 @@ Object.defineProperty(exports, "getErrorTypeUri", { enumerable: true, get: funct
402
422
  Object.defineProperty(exports, "getErrorTitle", { enumerable: true, get: function () { return express_1.getErrorTitle; } });
403
423
  Object.defineProperty(exports, "sendErrorResponse", { enumerable: true, get: function () { return express_1.sendErrorResponse; } });
404
424
  Object.defineProperty(exports, "EncryptionUtil", { enumerable: true, get: function () { return express_1.EncryptionUtil; } });
425
+ Object.defineProperty(exports, "createClientTokenEndpoint", { enumerable: true, get: function () { return express_1.createClientTokenEndpoint; } });
426
+ Object.defineProperty(exports, "hasConfig", { enumerable: true, get: function () { return express_1.hasConfig; } });
405
427
  // Export DataClient browser wrapper
406
428
  var data_client_1 = require("./utils/data-client");
407
429
  Object.defineProperty(exports, "DataClient", { enumerable: true, get: function () { return data_client_1.DataClient; } });
408
430
  Object.defineProperty(exports, "dataClient", { enumerable: true, get: function () { return data_client_1.dataClient; } });
431
+ // Export DataClient auto-initialization helper
432
+ var data_client_auto_init_1 = require("./utils/data-client-auto-init");
433
+ Object.defineProperty(exports, "autoInitializeDataClient", { enumerable: true, get: function () { return data_client_auto_init_1.autoInitializeDataClient; } });
434
+ Object.defineProperty(exports, "getCachedDataClientConfig", { enumerable: true, get: function () { return data_client_auto_init_1.getCachedDataClientConfig; } });
409
435
  //# sourceMappingURL=index.js.map