@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.
- package/README.md +57 -2
- 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 +231 -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 +19 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -4
- package/dist/index.js.map +1 -1
- package/dist/services/auth.service.d.ts +26 -4
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +137 -6
- 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 +99 -24
- package/dist/services/logger.service.d.ts.map +1 -1
- package/dist/services/logger.service.js +174 -44
- package/dist/services/logger.service.js.map +1 -1
- package/dist/services/redis.service.d.ts.map +1 -1
- package/dist/services/redis.service.js +3 -6
- package/dist/services/redis.service.js.map +1 -1
- package/dist/types/config.types.d.ts +22 -0
- package/dist/types/config.types.d.ts.map +1 -1
- package/dist/types/config.types.js.map +1 -1
- package/dist/types/data-client.types.d.ts +10 -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/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.map +1 -1
- package/dist/utils/data-client-audit.js +19 -8
- package/dist/utils/data-client-audit.js.map +1 -1
- package/dist/utils/data-client-auth.d.ts +19 -7
- package/dist/utils/data-client-auth.d.ts.map +1 -1
- package/dist/utils/data-client-auth.js +269 -144
- package/dist/utils/data-client-auth.js.map +1 -1
- 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 +259 -0
- package/dist/utils/data-client-auto-init.js.map +1 -0
- package/dist/utils/data-client-redirect.d.ts +52 -0
- package/dist/utils/data-client-redirect.d.ts.map +1 -0
- package/dist/utils/data-client-redirect.js +233 -0
- package/dist/utils/data-client-redirect.js.map +1 -0
- package/dist/utils/data-client-request.d.ts +8 -1
- package/dist/utils/data-client-request.d.ts.map +1 -1
- package/dist/utils/data-client-request.js +30 -5
- package/dist/utils/data-client-request.js.map +1 -1
- package/dist/utils/data-client.d.ts +116 -0
- package/dist/utils/data-client.d.ts.map +1 -1
- package/dist/utils/data-client.js +349 -4
- package/dist/utils/data-client.js.map +1 -1
- package/dist/utils/logging-helpers.d.ts +51 -0
- package/dist/utils/logging-helpers.d.ts.map +1 -0
- package/dist/utils/logging-helpers.js +57 -0
- package/dist/utils/logging-helpers.js.map +1 -0
- package/dist/utils/request-context.d.ts +32 -0
- package/dist/utils/request-context.d.ts.map +1 -0
- package/dist/utils/request-context.js +81 -0
- package/dist/utils/request-context.js.map +1 -0
- package/package.json +9 -2
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Browser-compatible JWT decoder utility
|
|
4
|
+
* Pure JavaScript implementation using base64url decoding
|
|
5
|
+
* Only decodes (doesn't verify signatures) - used for extracting userId from tokens
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.decodeJWT = decodeJWT;
|
|
9
|
+
exports.extractUserIdFromToken = extractUserIdFromToken;
|
|
10
|
+
/**
|
|
11
|
+
* Decode base64url string to regular base64
|
|
12
|
+
* @param str - Base64url encoded string
|
|
13
|
+
* @returns Base64 encoded string
|
|
14
|
+
*/
|
|
15
|
+
function base64UrlDecode(str) {
|
|
16
|
+
// Replace URL-safe characters with standard base64 characters
|
|
17
|
+
let base64 = str.replace(/-/g, "+").replace(/_/g, "/");
|
|
18
|
+
// Add padding if needed
|
|
19
|
+
while (base64.length % 4) {
|
|
20
|
+
base64 += "=";
|
|
21
|
+
}
|
|
22
|
+
return base64;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Decode JWT token and extract payload
|
|
26
|
+
* Only decodes (doesn't verify signatures) - used for extracting userId
|
|
27
|
+
* @param token - JWT token string
|
|
28
|
+
* @returns Decoded payload as object or null if decoding fails
|
|
29
|
+
*/
|
|
30
|
+
function decodeJWT(token) {
|
|
31
|
+
try {
|
|
32
|
+
// JWT format: header.payload.signature
|
|
33
|
+
const parts = token.split(".");
|
|
34
|
+
if (parts.length !== 3) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
// Extract payload (second part)
|
|
38
|
+
const payload = parts[1];
|
|
39
|
+
// Decode base64url to base64
|
|
40
|
+
const base64Payload = base64UrlDecode(payload);
|
|
41
|
+
// Decode base64 to string
|
|
42
|
+
const decodedString = atob(base64Payload);
|
|
43
|
+
// Parse JSON payload
|
|
44
|
+
const parsed = JSON.parse(decodedString);
|
|
45
|
+
return parsed;
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
// Silently handle errors (invalid token format, invalid JSON, etc.)
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Extract userId from JWT token
|
|
54
|
+
* Tries common JWT claim fields: sub, userId, user_id, id
|
|
55
|
+
* @param token - JWT token string
|
|
56
|
+
* @returns User ID string or null if not found
|
|
57
|
+
*/
|
|
58
|
+
function extractUserIdFromToken(token) {
|
|
59
|
+
try {
|
|
60
|
+
const decoded = decodeJWT(token);
|
|
61
|
+
if (!decoded) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
// Try common JWT claim fields for user ID
|
|
65
|
+
const userId = decoded.sub ||
|
|
66
|
+
decoded.userId ||
|
|
67
|
+
decoded.user_id ||
|
|
68
|
+
decoded.id;
|
|
69
|
+
return userId ? userId : null;
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=browser-jwt-decoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-jwt-decoder.js","sourceRoot":"","sources":["../../src/utils/browser-jwt-decoder.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAyBH,8BAyBC;AAQD,wDAiBC;AAzED;;;;GAIG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,8DAA8D;IAC9D,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEvD,wBAAwB;IACxB,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,KAAa;IACrC,IAAI,CAAC;QACH,uCAAuC;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,gCAAgC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEzB,6BAA6B;QAC7B,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAE/C,0BAA0B;QAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAE1C,qBAAqB;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAA4B,CAAC;QAEpE,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oEAAoE;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,KAAa;IAClD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,0CAA0C;QAC1C,MAAM,MAAM,GACV,OAAO,CAAC,GAAG;YACX,OAAO,CAAC,MAAM;YACd,OAAO,CAAC,OAAO;YACf,OAAO,CAAC,EAAE,CAAC;QACb,OAAO,MAAM,CAAC,CAAC,CAAE,MAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -9,6 +9,22 @@ import { MisoClientConfig } from "../types/config.types";
|
|
|
9
9
|
* Detects browser by checking for window, localStorage, and fetch globals
|
|
10
10
|
*/
|
|
11
11
|
export declare function isBrowser(): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Validate URL format
|
|
14
|
+
* Ensures URL is a valid HTTP or HTTPS URL
|
|
15
|
+
*
|
|
16
|
+
* @param url - URL string to validate
|
|
17
|
+
* @returns true if URL is valid HTTP or HTTPS, false otherwise
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* validateUrl('https://example.com'); // true
|
|
22
|
+
* validateUrl('http://localhost:3000'); // true
|
|
23
|
+
* validateUrl('ftp://example.com'); // false
|
|
24
|
+
* validateUrl('invalid'); // false
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function validateUrl(url: string): boolean;
|
|
12
28
|
/**
|
|
13
29
|
* Resolve controller URL based on environment and configuration
|
|
14
30
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller-url-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/controller-url-resolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAOnC;
|
|
1
|
+
{"version":3,"file":"controller-url-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/controller-url-resolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAOnC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOhD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAmCrE"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.isBrowser = isBrowser;
|
|
9
|
+
exports.validateUrl = validateUrl;
|
|
9
10
|
exports.resolveControllerUrl = resolveControllerUrl;
|
|
10
11
|
/**
|
|
11
12
|
* Check if running in browser environment
|
|
@@ -20,6 +21,17 @@ function isBrowser() {
|
|
|
20
21
|
/**
|
|
21
22
|
* Validate URL format
|
|
22
23
|
* Ensures URL is a valid HTTP or HTTPS URL
|
|
24
|
+
*
|
|
25
|
+
* @param url - URL string to validate
|
|
26
|
+
* @returns true if URL is valid HTTP or HTTPS, false otherwise
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* validateUrl('https://example.com'); // true
|
|
31
|
+
* validateUrl('http://localhost:3000'); // true
|
|
32
|
+
* validateUrl('ftp://example.com'); // false
|
|
33
|
+
* validateUrl('invalid'); // false
|
|
34
|
+
* ```
|
|
23
35
|
*/
|
|
24
36
|
function validateUrl(url) {
|
|
25
37
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller-url-resolver.js","sourceRoot":"","sources":["../../src/utils/controller-url-resolver.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAQH,8BAOC;
|
|
1
|
+
{"version":3,"file":"controller-url-resolver.js","sourceRoot":"","sources":["../../src/utils/controller-url-resolver.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAQH,8BAOC;AAiBD,kCAOC;AAcD,oDAmCC;AApFD;;;GAGG;AACH,SAAgB,SAAS;IACvB,OAAO,CACL,OAAQ,UAAmC,CAAC,MAAM,KAAK,WAAW;QAClE,OAAQ,UAAyC,CAAC,YAAY;YAC5D,WAAW;QACb,OAAQ,UAAkC,CAAC,KAAK,KAAK,WAAW,CACjE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,oBAAoB,CAAC,MAAwB;IAC3D,MAAM,YAAY,GAAG,SAAS,EAAE,CAAC;IACjC,IAAI,WAA+B,CAAC;IAEpC,uCAAuC;IACvC,IAAI,YAAY,EAAE,CAAC;QACjB,sCAAsC;QACtC,WAAW,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,sCAAsC;QACtC,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC;IAC5C,CAAC;IAED,6EAA6E;IAC7E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC;IACrC,CAAC;IAED,+CAA+C;IAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,gDACE,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,sBACzC,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,mCAAmC,WAAW,2CAA2C,CAC1F,CAAC;IACJ,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-client-audit.d.ts","sourceRoot":"","sources":["../../src/utils/data-client-audit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAIzD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,OAAO,CAIT;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,MAAM,GAAG,IAAI,CAAC;AAE7C;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,GAAG,IAAI,EAC7B,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,WAAW,EAAE,aAAa,EAC1B,QAAQ,EAAE,UAAU,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,KAAK,EACb,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACxC,WAAW,CAAC,EAAE,OAAO,EACrB,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"data-client-audit.d.ts","sourceRoot":"","sources":["../../src/utils/data-client-audit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAIzD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,OAAO,CAIT;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,MAAM,GAAG,IAAI,CAAC;AAE7C;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,GAAG,IAAI,EAC7B,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,WAAW,EAAE,aAAa,EAC1B,QAAQ,EAAE,UAAU,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,KAAK,EACb,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACxC,WAAW,CAAC,EAAE,OAAO,EACrB,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,IAAI,CAAC,CA6If"}
|
|
@@ -113,15 +113,26 @@ async function logDataClientAudit(method, url, statusCode, duration, misoClient,
|
|
|
113
113
|
// Don't fail main request if audit logging fails
|
|
114
114
|
const error = auditError;
|
|
115
115
|
const statusCode = error.statusCode || error.response?.status;
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
116
|
+
const errorMessage = error.message || String(auditError);
|
|
117
|
+
const errorCode = error.code;
|
|
118
|
+
// Silently skip for expected error conditions:
|
|
119
|
+
// - 401: User not authenticated (expected for unauthenticated requests)
|
|
120
|
+
// - Network errors: Connection refused, ECONNREFUSED, ERR_CONNECTION_REFUSED
|
|
121
|
+
// - These are expected when server is unavailable or misconfigured
|
|
122
|
+
const isNetworkError = errorCode === 'ECONNREFUSED' ||
|
|
123
|
+
errorCode === 'ENOTFOUND' ||
|
|
124
|
+
errorMessage.includes('ERR_CONNECTION_REFUSED') ||
|
|
125
|
+
errorMessage.includes('Failed to fetch') ||
|
|
126
|
+
errorMessage.includes('NetworkError') ||
|
|
127
|
+
errorMessage.includes('network error');
|
|
128
|
+
if (statusCode === 401 || isNetworkError) {
|
|
129
|
+
// Silently skip to avoid noise - these are expected conditions
|
|
130
|
+
// 401: User not authenticated (we already check hasAnyToken() before attempting)
|
|
131
|
+
// Network errors: Server unavailable or misconfigured (expected in demo/dev environments)
|
|
132
|
+
return;
|
|
124
133
|
}
|
|
134
|
+
// Other unexpected errors - log warning but don't fail request
|
|
135
|
+
console.warn("Failed to log audit event:", auditError);
|
|
125
136
|
}
|
|
126
137
|
}
|
|
127
138
|
//# sourceMappingURL=data-client-audit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-client-audit.js","sourceRoot":"","sources":["../../src/utils/data-client-audit.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAUH,0CAOC;AAgBD,
|
|
1
|
+
{"version":3,"file":"data-client-audit.js","sourceRoot":"","sources":["../../src/utils/data-client-audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,20 @@ import { ClientTokenInfo } from "./token-utils";
|
|
|
9
9
|
* Get authentication token from localStorage
|
|
10
10
|
*/
|
|
11
11
|
export declare function getToken(tokenKeys?: string[]): string | null;
|
|
12
|
+
/**
|
|
13
|
+
* Handle OAuth callback with ISO 27001 compliant security
|
|
14
|
+
* Extracts token from URL hash fragment and stores securely
|
|
15
|
+
*
|
|
16
|
+
* Security features:
|
|
17
|
+
* - Immediate hash cleanup (< 100ms)
|
|
18
|
+
* - Token format validation
|
|
19
|
+
* - HTTPS enforcement check
|
|
20
|
+
* - Secure error handling
|
|
21
|
+
*
|
|
22
|
+
* @param config - DataClient configuration
|
|
23
|
+
* @returns Extracted token or null if not found/invalid
|
|
24
|
+
*/
|
|
25
|
+
export declare function handleOAuthCallback(config: DataClientConfig): string | null;
|
|
12
26
|
/**
|
|
13
27
|
* Check if client token is available (from localStorage cache or config)
|
|
14
28
|
*/
|
|
@@ -31,16 +45,14 @@ export declare function getClientToken(misoConfig: MisoClientConfig | undefined,
|
|
|
31
45
|
export declare function getControllerUrl(misoConfig: MisoClientConfig | undefined): string | null;
|
|
32
46
|
/**
|
|
33
47
|
* Redirect to login page via controller
|
|
34
|
-
*
|
|
35
|
-
* @param redirectUrl - Optional redirect URL to return to after login (defaults to current page URL)
|
|
48
|
+
* Re-exported from data-client-redirect for backward compatibility
|
|
36
49
|
*/
|
|
37
|
-
export
|
|
50
|
+
export { redirectToLogin } from "./data-client-redirect";
|
|
38
51
|
/**
|
|
39
|
-
* Logout user and redirect
|
|
40
|
-
*
|
|
41
|
-
* @param redirectUrl - Optional redirect URL after logout (defaults to logoutUrl or loginUrl)
|
|
52
|
+
* Logout user and redirect to controller logout page
|
|
53
|
+
* Re-exported from data-client-redirect for backward compatibility
|
|
42
54
|
*/
|
|
43
|
-
export
|
|
55
|
+
export { logout } from "./data-client-redirect";
|
|
44
56
|
/**
|
|
45
57
|
* Get environment token (browser-side)
|
|
46
58
|
* Checks localStorage cache first, then calls backend endpoint if needed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-client-auth.d.ts","sourceRoot":"","sources":["../../src/utils/data-client-auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAOhF,OAAO,EAA0B,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"data-client-auth.d.ts","sourceRoot":"","sources":["../../src/utils/data-client-auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAOhF,OAAO,EAA0B,eAAe,EAAE,MAAM,eAAe,CAAC;AAIxE;;GAEG;AACH,wBAAgB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAQ5D;AAsDD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAoI3E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,UAAU,GAAG,IAAI,EAC7B,UAAU,EAAE,gBAAgB,GAAG,SAAS,GACvC,OAAO,CAqCT;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,SAAS,CAAC,EAAE,MAAM,EAAE,EACpB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,EAC9B,UAAU,CAAC,EAAE,gBAAgB,GAC5B,OAAO,CAET;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,gBAAgB,GAAG,SAAS,EACxC,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC1C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoHxB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAgBxF;AAED;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,UAAU,GAAG,IAAI,GAC5B,OAAO,CAAC,MAAM,CAAC,CA+HjB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,gBAAgB,GAAG,SAAS,GACvC,eAAe,GAAG,IAAI,CAmBxB"}
|