@aifabrix/miso-client 3.1.1 → 3.2.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.
- package/README.md +1 -1
- package/dist/express/client-token-endpoint.d.ts +76 -0
- package/dist/express/client-token-endpoint.d.ts.map +1 -0
- package/dist/express/client-token-endpoint.js +108 -0
- package/dist/express/client-token-endpoint.js.map +1 -0
- package/dist/express/index.d.ts +2 -1
- package/dist/express/index.d.ts.map +1 -1
- package/dist/express/index.js +8 -3
- package/dist/express/index.js.map +1 -1
- package/dist/express/response-middleware.d.ts.map +1 -1
- package/dist/express/response-middleware.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/dist/services/auth.service.js +5 -5
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/browser-permission.service.d.ts +60 -0
- package/dist/services/browser-permission.service.d.ts.map +1 -0
- package/dist/services/browser-permission.service.js +159 -0
- package/dist/services/browser-permission.service.js.map +1 -0
- package/dist/services/browser-role.service.d.ts +60 -0
- package/dist/services/browser-role.service.d.ts.map +1 -0
- package/dist/services/browser-role.service.js +159 -0
- package/dist/services/browser-role.service.js.map +1 -0
- package/dist/services/cache.service.d.ts.map +1 -1
- package/dist/services/cache.service.js +4 -0
- package/dist/services/cache.service.js.map +1 -1
- package/dist/services/logger.service.d.ts +4 -0
- package/dist/services/logger.service.d.ts.map +1 -1
- package/dist/services/logger.service.js +21 -0
- package/dist/services/logger.service.js.map +1 -1
- package/dist/types/data-client.types.d.ts +1 -0
- package/dist/types/data-client.types.d.ts.map +1 -1
- package/dist/types/data-client.types.js.map +1 -1
- package/dist/utils/audit-log-queue.d.ts +4 -0
- package/dist/utils/audit-log-queue.d.ts.map +1 -1
- package/dist/utils/audit-log-queue.js +22 -2
- package/dist/utils/audit-log-queue.js.map +1 -1
- package/dist/utils/auth-strategy.js +2 -2
- package/dist/utils/browser-jwt-decoder.d.ts +20 -0
- package/dist/utils/browser-jwt-decoder.d.ts.map +1 -0
- package/dist/utils/browser-jwt-decoder.js +75 -0
- package/dist/utils/browser-jwt-decoder.js.map +1 -0
- package/dist/utils/controller-url-resolver.d.ts +16 -0
- package/dist/utils/controller-url-resolver.d.ts.map +1 -1
- package/dist/utils/controller-url-resolver.js +12 -0
- package/dist/utils/controller-url-resolver.js.map +1 -1
- package/dist/utils/data-client-audit.d.ts +24 -0
- package/dist/utils/data-client-audit.d.ts.map +1 -0
- package/dist/utils/data-client-audit.js +138 -0
- package/dist/utils/data-client-audit.js.map +1 -0
- package/dist/utils/data-client-auth.d.ts +59 -0
- package/dist/utils/data-client-auth.d.ts.map +1 -0
- package/dist/utils/data-client-auth.js +427 -0
- package/dist/utils/data-client-auth.js.map +1 -0
- package/dist/utils/data-client-auto-init.d.ts +66 -0
- package/dist/utils/data-client-auto-init.d.ts.map +1 -0
- package/dist/utils/data-client-auto-init.js +215 -0
- package/dist/utils/data-client-auto-init.js.map +1 -0
- package/dist/utils/data-client-cache.d.ts +36 -0
- package/dist/utils/data-client-cache.d.ts.map +1 -0
- package/dist/utils/data-client-cache.js +55 -0
- package/dist/utils/data-client-cache.js.map +1 -0
- package/dist/utils/data-client-redirect.d.ts +22 -0
- package/dist/utils/data-client-redirect.d.ts.map +1 -0
- package/dist/utils/data-client-redirect.js +345 -0
- package/dist/utils/data-client-redirect.js.map +1 -0
- package/dist/utils/data-client-request.d.ts +32 -0
- package/dist/utils/data-client-request.d.ts.map +1 -0
- package/dist/utils/data-client-request.js +309 -0
- package/dist/utils/data-client-request.js.map +1 -0
- package/dist/utils/data-client-utils.d.ts +49 -0
- package/dist/utils/data-client-utils.d.ts.map +1 -0
- package/dist/utils/data-client-utils.js +139 -0
- package/dist/utils/data-client-utils.js.map +1 -0
- package/dist/utils/data-client.d.ts +103 -29
- package/dist/utils/data-client.d.ts.map +1 -1
- package/dist/utils/data-client.js +321 -774
- package/dist/utils/data-client.js.map +1 -1
- package/dist/utils/internal-http-client.d.ts.map +1 -1
- package/dist/utils/internal-http-client.js +7 -3
- package/dist/utils/internal-http-client.js.map +1 -1
- package/package.json +9 -2
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* DataClient redirect to login utilities
|
|
4
|
+
* Handles redirect to login flow with proper error handling
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.getValidatedRedirectUrl = getValidatedRedirectUrl;
|
|
8
|
+
exports.redirectToLogin = redirectToLogin;
|
|
9
|
+
const data_client_auth_1 = require("./data-client-auth");
|
|
10
|
+
const data_client_utils_1 = require("./data-client-utils");
|
|
11
|
+
/**
|
|
12
|
+
* Build login request headers with client token
|
|
13
|
+
*/
|
|
14
|
+
function buildLoginHeaders(clientToken) {
|
|
15
|
+
const headers = {
|
|
16
|
+
"Content-Type": "application/json",
|
|
17
|
+
};
|
|
18
|
+
if (clientToken) {
|
|
19
|
+
headers["x-client-token"] = clientToken;
|
|
20
|
+
}
|
|
21
|
+
return headers;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Build login endpoint URL with redirect parameter
|
|
25
|
+
*/
|
|
26
|
+
function buildLoginEndpointUrl(controllerUrl, redirectUrl) {
|
|
27
|
+
const loginEndpoint = `${controllerUrl}/api/v1/auth/login`;
|
|
28
|
+
const url = new URL(loginEndpoint);
|
|
29
|
+
url.searchParams.set("redirect", redirectUrl);
|
|
30
|
+
return url.toString();
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Handle non-OK response from controller login endpoint
|
|
34
|
+
*/
|
|
35
|
+
function handleLoginErrorResponse(response, controllerUrl, clientToken) {
|
|
36
|
+
const errorTextPromise = response.text().catch(() => 'Unable to read error response');
|
|
37
|
+
// Create user-friendly error message based on status code
|
|
38
|
+
let userFriendlyMessage = `Login request failed: ${response.status} ${response.statusText}`;
|
|
39
|
+
if (response.status === 401 || response.status === 403) {
|
|
40
|
+
userFriendlyMessage = "Authentication failed: Invalid client credentials. Please check your configuration.";
|
|
41
|
+
}
|
|
42
|
+
else if (response.status === 404) {
|
|
43
|
+
userFriendlyMessage = `Authentication endpoint not found at ${controllerUrl}/api/v1/auth/login. Please verify your controller URL configuration.`;
|
|
44
|
+
}
|
|
45
|
+
else if (response.status >= 500) {
|
|
46
|
+
userFriendlyMessage = "Authentication server error. Please try again later or contact support.";
|
|
47
|
+
}
|
|
48
|
+
return errorTextPromise.then((errorText) => {
|
|
49
|
+
const error = new Error(userFriendlyMessage);
|
|
50
|
+
error.details = {
|
|
51
|
+
status: response.status,
|
|
52
|
+
statusText: response.statusText,
|
|
53
|
+
errorText,
|
|
54
|
+
controllerUrl,
|
|
55
|
+
hasClientToken: !!clientToken,
|
|
56
|
+
};
|
|
57
|
+
throw error;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Extract login URL from controller response
|
|
62
|
+
*/
|
|
63
|
+
function extractLoginUrl(data) {
|
|
64
|
+
return data.data?.loginUrl || data.loginUrl || null;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Create user-friendly error message for network errors
|
|
68
|
+
*/
|
|
69
|
+
function createNetworkErrorMessage(errorMessage, controllerUrl, clientToken) {
|
|
70
|
+
if (errorMessage.includes("Failed to fetch") || errorMessage.includes("NetworkError") || errorMessage.includes("ERR_CONNECTION_REFUSED")) {
|
|
71
|
+
return `Cannot connect to authentication server at ${controllerUrl || 'unknown'}. Please check your network connection and server configuration.`;
|
|
72
|
+
}
|
|
73
|
+
if (!clientToken) {
|
|
74
|
+
return "Client token is missing. Please initialize DataClient with proper credentials.";
|
|
75
|
+
}
|
|
76
|
+
return `Login failed: ${errorMessage}`;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Validate controller URL configuration
|
|
80
|
+
*/
|
|
81
|
+
function validateControllerUrl(config) {
|
|
82
|
+
const controllerUrl = (0, data_client_auth_1.getControllerUrl)(config.misoConfig);
|
|
83
|
+
if (!controllerUrl) {
|
|
84
|
+
const error = new Error("Controller URL is not configured. Please configure controllerUrl or controllerPublicUrl in your DataClient configuration.");
|
|
85
|
+
error.details = {
|
|
86
|
+
hasMisoConfig: !!config.misoConfig,
|
|
87
|
+
controllerUrl: config.misoConfig?.controllerUrl,
|
|
88
|
+
controllerPublicUrl: config.misoConfig?.controllerPublicUrl,
|
|
89
|
+
loginUrl: config.loginUrl,
|
|
90
|
+
};
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
93
|
+
return controllerUrl;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Call controller login endpoint
|
|
97
|
+
*/
|
|
98
|
+
async function callControllerLoginEndpoint(endpointUrl, headers, controllerUrl, clientToken) {
|
|
99
|
+
let response;
|
|
100
|
+
// Add timeout to prevent hanging (30 seconds)
|
|
101
|
+
const timeout = 30000;
|
|
102
|
+
const controller = new AbortController();
|
|
103
|
+
const timeoutId = setTimeout(() => {
|
|
104
|
+
controller.abort();
|
|
105
|
+
}, timeout);
|
|
106
|
+
try {
|
|
107
|
+
response = await fetch(endpointUrl, {
|
|
108
|
+
method: "GET",
|
|
109
|
+
headers,
|
|
110
|
+
credentials: "include",
|
|
111
|
+
signal: controller.signal,
|
|
112
|
+
redirect: "manual", // Don't follow redirects automatically - we'll handle them explicitly
|
|
113
|
+
});
|
|
114
|
+
clearTimeout(timeoutId);
|
|
115
|
+
}
|
|
116
|
+
catch (fetchError) {
|
|
117
|
+
clearTimeout(timeoutId);
|
|
118
|
+
const errorMessage = fetchError instanceof Error ? fetchError.message : String(fetchError);
|
|
119
|
+
const errorName = fetchError instanceof Error ? fetchError.name : "Unknown";
|
|
120
|
+
const isAbortError = errorName === "AbortError" || errorMessage.includes("aborted");
|
|
121
|
+
const isNetworkError = errorName === "TypeError" || errorMessage.includes("Failed to fetch");
|
|
122
|
+
// Create user-friendly error message
|
|
123
|
+
let userFriendlyMessage = `Failed to fetch login endpoint: ${errorMessage}`;
|
|
124
|
+
if (isAbortError) {
|
|
125
|
+
userFriendlyMessage = `Request timeout: The login endpoint did not respond within ${timeout}ms. Please check your network connection and server status.`;
|
|
126
|
+
}
|
|
127
|
+
else if (isNetworkError) {
|
|
128
|
+
if (errorMessage.includes("CORS") || errorMessage.includes("cross-origin")) {
|
|
129
|
+
userFriendlyMessage = `CORS error: Cannot connect to ${controllerUrl}. The server may not allow cross-origin requests. Please check CORS configuration.`;
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
userFriendlyMessage = `Network error: Cannot connect to ${controllerUrl}. Please check your network connection and ensure the server is running.`;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Re-throw with more context
|
|
136
|
+
const networkError = new Error(userFriendlyMessage);
|
|
137
|
+
networkError.details = {
|
|
138
|
+
endpointUrl,
|
|
139
|
+
hasClientToken: !!clientToken,
|
|
140
|
+
originalError: errorMessage,
|
|
141
|
+
errorName,
|
|
142
|
+
isTimeout: isAbortError,
|
|
143
|
+
isCorsError: isNetworkError && (errorMessage.includes("CORS") || errorMessage.includes("cross-origin")),
|
|
144
|
+
};
|
|
145
|
+
throw networkError;
|
|
146
|
+
}
|
|
147
|
+
// Handle case where response is undefined (shouldn't happen, but be safe)
|
|
148
|
+
if (!response) {
|
|
149
|
+
throw new Error("Failed to fetch login endpoint: response is undefined");
|
|
150
|
+
}
|
|
151
|
+
// Check for redirect status codes - these should be handled, not followed automatically
|
|
152
|
+
if (response.status >= 300 && response.status < 400) {
|
|
153
|
+
// Don't follow redirect automatically - treat as error
|
|
154
|
+
throw new Error(`Server returned redirect status ${response.status}. This should not happen for login endpoint.`);
|
|
155
|
+
}
|
|
156
|
+
if (!response.ok) {
|
|
157
|
+
throw await handleLoginErrorResponse(response, controllerUrl, clientToken);
|
|
158
|
+
}
|
|
159
|
+
let data;
|
|
160
|
+
try {
|
|
161
|
+
data = (await response.json());
|
|
162
|
+
}
|
|
163
|
+
catch (jsonError) {
|
|
164
|
+
const errorMessage = jsonError instanceof Error ? jsonError.message : String(jsonError);
|
|
165
|
+
throw new Error(`Failed to parse login response: ${errorMessage}. Status: ${response.status} ${response.statusText}`);
|
|
166
|
+
}
|
|
167
|
+
return data;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Validate redirect URL for safety and format
|
|
171
|
+
* Checks for valid URL format and safe protocols (http, https)
|
|
172
|
+
* @param url - URL to validate
|
|
173
|
+
* @returns Validated URL string or null if invalid
|
|
174
|
+
*/
|
|
175
|
+
function validateRedirectUrl(url) {
|
|
176
|
+
if (!url || typeof url !== 'string' || url.trim() === '') {
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
const trimmedUrl = url.trim();
|
|
180
|
+
// Check for dangerous protocols (javascript:, data:, etc.)
|
|
181
|
+
const dangerousProtocols = ['javascript:', 'data:', 'vbscript:', 'file:', 'about:'];
|
|
182
|
+
const lowerUrl = trimmedUrl.toLowerCase();
|
|
183
|
+
for (const protocol of dangerousProtocols) {
|
|
184
|
+
if (lowerUrl.startsWith(protocol)) {
|
|
185
|
+
return null;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// Try to parse as URL
|
|
189
|
+
let parsedUrl;
|
|
190
|
+
try {
|
|
191
|
+
// If it's a relative URL, create a full URL using current origin
|
|
192
|
+
if (trimmedUrl.startsWith('/') || !trimmedUrl.includes('://')) {
|
|
193
|
+
const origin = globalThis.window.location.origin;
|
|
194
|
+
parsedUrl = new URL(trimmedUrl, origin);
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
parsedUrl = new URL(trimmedUrl);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
return null;
|
|
202
|
+
}
|
|
203
|
+
// Only allow http and https protocols
|
|
204
|
+
if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') {
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
// Return the validated URL (use href to get full URL)
|
|
208
|
+
const validatedUrl = parsedUrl.href;
|
|
209
|
+
return validatedUrl;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Synchronously get and validate redirect URL
|
|
213
|
+
* Validates the URL before returning it
|
|
214
|
+
* @param url - URL to validate and return
|
|
215
|
+
* @param fallbackUrl - Optional fallback URL if primary is invalid
|
|
216
|
+
* @returns Validated URL string or null if both are invalid
|
|
217
|
+
*/
|
|
218
|
+
function getValidatedRedirectUrl(url, fallbackUrl) {
|
|
219
|
+
// Try primary URL first
|
|
220
|
+
const validatedUrl = validateRedirectUrl(url);
|
|
221
|
+
if (validatedUrl) {
|
|
222
|
+
return validatedUrl;
|
|
223
|
+
}
|
|
224
|
+
// Try fallback URL if provided
|
|
225
|
+
if (fallbackUrl) {
|
|
226
|
+
const validatedFallback = validateRedirectUrl(fallbackUrl);
|
|
227
|
+
if (validatedFallback) {
|
|
228
|
+
return validatedFallback;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
// Both URLs invalid
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Handle successful login response
|
|
236
|
+
* IMPORTANT: Only redirects if controller returns valid loginUrl - NO fallback redirects
|
|
237
|
+
*/
|
|
238
|
+
function handleSuccessfulLoginResponse(loginUrl, controllerUrl, data, clientToken, _config) {
|
|
239
|
+
// CRITICAL: Only use loginUrl from controller - do NOT use fallback URL
|
|
240
|
+
// If controller doesn't return a valid URL, throw error instead of redirecting
|
|
241
|
+
const validatedUrl = getValidatedRedirectUrl(loginUrl);
|
|
242
|
+
if (validatedUrl) {
|
|
243
|
+
try {
|
|
244
|
+
globalThis.window.location.href = validatedUrl;
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
catch (redirectError) {
|
|
248
|
+
const error = new Error("Failed to redirect to login URL. The URL may be blocked by browser security policies.");
|
|
249
|
+
error.details = {
|
|
250
|
+
validatedUrl,
|
|
251
|
+
originalLoginUrl: loginUrl,
|
|
252
|
+
redirectError: redirectError instanceof Error ? redirectError.message : String(redirectError),
|
|
253
|
+
};
|
|
254
|
+
throw error;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
// Controller did not return a valid login URL - throw error (do NOT use fallback)
|
|
258
|
+
const error = new Error("Controller did not return a valid login URL. Please check your controller configuration and ensure the login endpoint is working correctly.");
|
|
259
|
+
error.details = {
|
|
260
|
+
controllerUrl,
|
|
261
|
+
responseData: data,
|
|
262
|
+
hasClientToken: !!clientToken,
|
|
263
|
+
originalLoginUrl: loginUrl,
|
|
264
|
+
validationFailed: true,
|
|
265
|
+
};
|
|
266
|
+
throw error;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Handle login errors
|
|
270
|
+
* IMPORTANT: Does NOT redirect on error - throws error instead
|
|
271
|
+
* Redirects should only happen on successful responses
|
|
272
|
+
* @param error - The error that occurred
|
|
273
|
+
* @param controllerUrl - Controller URL
|
|
274
|
+
* @param clientToken - Client token if available
|
|
275
|
+
* @param config - DataClient configuration
|
|
276
|
+
* @param skipLogging - If true, skip logging (error already logged)
|
|
277
|
+
*/
|
|
278
|
+
function handleLoginError(error, controllerUrl, clientToken, config, skipLogging = false) {
|
|
279
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
280
|
+
const errorName = error instanceof Error ? error.name : "Unknown";
|
|
281
|
+
const _errorStack = error instanceof Error ? error.stack : undefined;
|
|
282
|
+
const errorDetails = error?.details;
|
|
283
|
+
// Log error - test expects Error object as second parameter
|
|
284
|
+
if (!skipLogging) {
|
|
285
|
+
const logError = error instanceof Error ? error : new Error(String(error));
|
|
286
|
+
console.error("[redirectToLogin] Failed to get login URL from controller:", logError);
|
|
287
|
+
}
|
|
288
|
+
// DO NOT redirect on error - throw error instead
|
|
289
|
+
// Redirects should only happen when fetch succeeds and returns valid URL
|
|
290
|
+
// For non-network errors, throw immediately
|
|
291
|
+
if (error instanceof Error && error.message && !error.message.includes("Failed to fetch")) {
|
|
292
|
+
throw error;
|
|
293
|
+
}
|
|
294
|
+
const fullErrorDetails = {
|
|
295
|
+
message: errorMessage,
|
|
296
|
+
name: errorName,
|
|
297
|
+
originalDetails: errorDetails,
|
|
298
|
+
controllerUrl,
|
|
299
|
+
hasClientToken: !!clientToken,
|
|
300
|
+
config: {
|
|
301
|
+
loginUrl: config.loginUrl,
|
|
302
|
+
hasMisoConfig: !!config.misoConfig,
|
|
303
|
+
controllerUrl: config.misoConfig?.controllerUrl,
|
|
304
|
+
controllerPublicUrl: config.misoConfig?.controllerPublicUrl,
|
|
305
|
+
},
|
|
306
|
+
};
|
|
307
|
+
const userFriendlyMessage = createNetworkErrorMessage(errorMessage, controllerUrl, clientToken);
|
|
308
|
+
const loginError = new Error(userFriendlyMessage);
|
|
309
|
+
loginError.details = fullErrorDetails;
|
|
310
|
+
throw loginError;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Redirect to login page via controller
|
|
314
|
+
* Calls the controller login endpoint with redirect parameter and x-client-token header
|
|
315
|
+
* @param config - DataClient configuration
|
|
316
|
+
* @param getClientTokenFn - Function to get client token
|
|
317
|
+
* @param redirectUrl - Optional redirect URL to return to after login (defaults to current page URL)
|
|
318
|
+
*/
|
|
319
|
+
async function redirectToLogin(config, getClientTokenFn, redirectUrl) {
|
|
320
|
+
if (!(0, data_client_utils_1.isBrowser)()) {
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
const currentUrl = globalThis.window.location.href;
|
|
324
|
+
const finalRedirectUrl = redirectUrl || currentUrl;
|
|
325
|
+
const controllerUrl = validateControllerUrl(config);
|
|
326
|
+
let clientToken = null;
|
|
327
|
+
try {
|
|
328
|
+
clientToken = await getClientTokenFn();
|
|
329
|
+
const endpointUrl = buildLoginEndpointUrl(controllerUrl, finalRedirectUrl);
|
|
330
|
+
const headers = buildLoginHeaders(clientToken);
|
|
331
|
+
// Fetch login URL from controller - this MUST succeed for redirect to happen
|
|
332
|
+
const data = await callControllerLoginEndpoint(endpointUrl, headers, controllerUrl, clientToken);
|
|
333
|
+
const loginUrl = extractLoginUrl(data);
|
|
334
|
+
// Only redirect if we got a valid response - handleSuccessfulLoginResponse will validate URL
|
|
335
|
+
handleSuccessfulLoginResponse(loginUrl, controllerUrl, data, clientToken, config);
|
|
336
|
+
}
|
|
337
|
+
catch (error) {
|
|
338
|
+
// CRITICAL: Do NOT redirect on error - throw error instead
|
|
339
|
+
// Redirects should ONLY happen when fetch succeeds and returns valid URL
|
|
340
|
+
handleLoginError(error, controllerUrl, clientToken, config);
|
|
341
|
+
// This line should never be reached since handleLoginError always throws
|
|
342
|
+
throw error;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
//# sourceMappingURL=data-client-redirect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-client-redirect.js","sourceRoot":"","sources":["../../src/utils/data-client-redirect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DataClient request execution utilities
|
|
3
|
+
* Handles HTTP request execution, retry logic, fetch handling, and response parsing
|
|
4
|
+
*/
|
|
5
|
+
import { ApiRequestOptions, DataClientConfig, InterceptorConfig, CacheEntry } from "../types/data-client.types";
|
|
6
|
+
import { HasAnyTokenFn, GetTokenFn } from "./data-client-audit";
|
|
7
|
+
import { MisoClient } from "../index";
|
|
8
|
+
/**
|
|
9
|
+
* Extract headers from Headers object or Record
|
|
10
|
+
*/
|
|
11
|
+
export declare function extractHeaders(headers?: Headers | Record<string, string> | string[][] | Record<string, string | readonly string[]>): Record<string, string> | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* Parse response based on content type
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseResponse<T>(response: Response): Promise<T>;
|
|
16
|
+
/**
|
|
17
|
+
* Merge AbortSignals
|
|
18
|
+
*/
|
|
19
|
+
export declare function mergeSignals(signal1: AbortSignal, signal2: AbortSignal): AbortSignal;
|
|
20
|
+
/**
|
|
21
|
+
* Make fetch request with timeout and authentication
|
|
22
|
+
*/
|
|
23
|
+
export declare function makeFetchRequest(method: string, url: string, config: DataClientConfig, getToken: GetTokenFn, options?: ApiRequestOptions): Promise<Response>;
|
|
24
|
+
/**
|
|
25
|
+
* Execute HTTP request with retry logic
|
|
26
|
+
*/
|
|
27
|
+
export declare function executeHttpRequest<T>(method: string, fullUrl: string, endpoint: string, config: DataClientConfig, cache: Map<string, CacheEntry>, cacheKey: string, cacheEnabled: boolean, startTime: number, misoClient: MisoClient | null, hasAnyToken: HasAnyTokenFn, getToken: GetTokenFn, handleAuthError: () => void, interceptors: InterceptorConfig, metrics: {
|
|
28
|
+
totalRequests: number;
|
|
29
|
+
totalFailures: number;
|
|
30
|
+
responseTimes: number[];
|
|
31
|
+
}, options?: ApiRequestOptions): Promise<T>;
|
|
32
|
+
//# sourceMappingURL=data-client-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-client-request.d.ts","sourceRoot":"","sources":["../../src/utils/data-client-request.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAKhB,iBAAiB,EACjB,UAAU,EACX,MAAM,4BAA4B,CAAC;AAOpC,OAAO,EAAsB,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,GACnG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAsBpC;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CASrE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,GACnB,WAAW,CAkBb;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,UAAU,EACpB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,QAAQ,CAAC,CAgEnB;AA0LD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC9B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,OAAO,EACrB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,GAAG,IAAI,EAC7B,WAAW,EAAE,aAAa,EAC1B,QAAQ,EAAE,UAAU,EACpB,eAAe,EAAE,MAAM,IAAI,EAC3B,YAAY,EAAE,iBAAiB,EAC/B,OAAO,EAAE;IACP,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,EACD,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,CAAC,CAAC,CA+KZ"}
|