@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.
- package/README.md +57 -2
- package/dist/api/auth-cache.api.d.ts +52 -0
- package/dist/api/auth-cache.api.d.ts.map +1 -0
- package/dist/api/auth-cache.api.js +125 -0
- package/dist/api/auth-cache.api.js.map +1 -0
- package/dist/api/auth-login.api.d.ts +52 -0
- package/dist/api/auth-login.api.d.ts.map +1 -0
- package/dist/api/auth-login.api.js +102 -0
- package/dist/api/auth-login.api.js.map +1 -0
- package/dist/api/auth-token.api.d.ts +46 -0
- package/dist/api/auth-token.api.d.ts.map +1 -0
- package/dist/api/auth-token.api.js +90 -0
- package/dist/api/auth-token.api.js.map +1 -0
- package/dist/api/auth-user.api.d.ts +43 -0
- package/dist/api/auth-user.api.d.ts.map +1 -0
- package/dist/api/auth-user.api.js +87 -0
- package/dist/api/auth-user.api.js.map +1 -0
- package/dist/api/auth.api.d.ts +48 -0
- package/dist/api/auth.api.d.ts.map +1 -0
- package/dist/api/auth.api.js +152 -0
- package/dist/api/auth.api.js.map +1 -0
- package/dist/api/index.d.ts +39 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +31 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/logs-create.api.d.ts +32 -0
- package/dist/api/logs-create.api.d.ts.map +1 -0
- package/dist/api/logs-create.api.js +63 -0
- package/dist/api/logs-create.api.js.map +1 -0
- package/dist/api/logs-export.api.d.ts +24 -0
- package/dist/api/logs-export.api.d.ts.map +1 -0
- package/dist/api/logs-export.api.js +43 -0
- package/dist/api/logs-export.api.js.map +1 -0
- package/dist/api/logs-list.api.d.ts +63 -0
- package/dist/api/logs-list.api.d.ts.map +1 -0
- package/dist/api/logs-list.api.js +155 -0
- package/dist/api/logs-list.api.js.map +1 -0
- package/dist/api/logs-stats.api.d.ts +48 -0
- package/dist/api/logs-stats.api.d.ts.map +1 -0
- package/dist/api/logs-stats.api.js +107 -0
- package/dist/api/logs-stats.api.js.map +1 -0
- package/dist/api/logs.api.d.ts +35 -0
- package/dist/api/logs.api.d.ts.map +1 -0
- package/dist/api/logs.api.js +71 -0
- package/dist/api/logs.api.js.map +1 -0
- package/dist/api/permissions.api.d.ts +31 -0
- package/dist/api/permissions.api.d.ts.map +1 -0
- package/dist/api/permissions.api.js +62 -0
- package/dist/api/permissions.api.js.map +1 -0
- package/dist/api/roles.api.d.ts +31 -0
- package/dist/api/roles.api.d.ts.map +1 -0
- package/dist/api/roles.api.js +62 -0
- package/dist/api/roles.api.js.map +1 -0
- package/dist/api/types/auth.types.d.ts +293 -0
- package/dist/api/types/auth.types.d.ts.map +1 -0
- package/dist/api/types/auth.types.js +7 -0
- package/dist/api/types/auth.types.js.map +1 -0
- package/dist/api/types/logs.types.d.ts +266 -0
- package/dist/api/types/logs.types.d.ts.map +1 -0
- package/dist/api/types/logs.types.js +7 -0
- package/dist/api/types/logs.types.js.map +1 -0
- package/dist/api/types/permissions.types.d.ts +32 -0
- package/dist/api/types/permissions.types.d.ts.map +1 -0
- package/dist/api/types/permissions.types.js +7 -0
- package/dist/api/types/permissions.types.js.map +1 -0
- package/dist/api/types/roles.types.d.ts +32 -0
- package/dist/api/types/roles.types.d.ts.map +1 -0
- package/dist/api/types/roles.types.js +7 -0
- package/dist/api/types/roles.types.js.map +1 -0
- package/dist/express/client-token-endpoint.d.ts.map +1 -1
- package/dist/express/client-token-endpoint.js +136 -13
- package/dist/express/client-token-endpoint.js.map +1 -1
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -6
- package/dist/index.js.map +1 -1
- package/dist/services/auth.service.d.ts +28 -4
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +186 -16
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/browser-permission.service.d.ts +3 -1
- package/dist/services/browser-permission.service.d.ts.map +1 -1
- package/dist/services/browser-permission.service.js +32 -16
- package/dist/services/browser-permission.service.js.map +1 -1
- package/dist/services/browser-role.service.d.ts +3 -1
- package/dist/services/browser-role.service.d.ts.map +1 -1
- package/dist/services/browser-role.service.js +32 -16
- package/dist/services/browser-role.service.js.map +1 -1
- package/dist/services/logger.service.d.ts +102 -24
- package/dist/services/logger.service.d.ts.map +1 -1
- package/dist/services/logger.service.js +225 -51
- package/dist/services/logger.service.js.map +1 -1
- package/dist/services/permission.service.d.ts +3 -1
- package/dist/services/permission.service.d.ts.map +1 -1
- package/dist/services/permission.service.js +32 -16
- package/dist/services/permission.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/services/role.service.d.ts +3 -1
- package/dist/services/role.service.d.ts.map +1 -1
- package/dist/services/role.service.js +25 -13
- package/dist/services/role.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 +7 -0
- package/dist/utils/audit-log-queue.d.ts.map +1 -1
- package/dist/utils/audit-log-queue.js +29 -8
- package/dist/utils/audit-log-queue.js.map +1 -1
- package/dist/utils/data-client-auth.d.ts +17 -4
- package/dist/utils/data-client-auth.d.ts.map +1 -1
- package/dist/utils/data-client-auth.js +215 -131
- package/dist/utils/data-client-auth.js.map +1 -1
- package/dist/utils/data-client-auto-init.d.ts.map +1 -1
- package/dist/utils/data-client-auto-init.js +55 -11
- package/dist/utils/data-client-auto-init.js.map +1 -1
- package/dist/utils/data-client-redirect.d.ts +34 -4
- package/dist/utils/data-client-redirect.d.ts.map +1 -1
- package/dist/utils/data-client-redirect.js +142 -254
- package/dist/utils/data-client-redirect.js.map +1 -1
- 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 +25 -3
- package/dist/utils/data-client-request.js.map +1 -1
- package/dist/utils/data-client.d.ts +13 -0
- package/dist/utils/data-client.d.ts.map +1 -1
- package/dist/utils/data-client.js +86 -5
- 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 +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.types.d.ts","sourceRoot":"","sources":["../../../src/api/types/permissions.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.types.js","sourceRoot":"","sources":["../../../src/api/types/permissions.types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Roles API request and response type definitions
|
|
3
|
+
* All types use camelCase naming convention for public API outputs
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Get roles query parameters
|
|
7
|
+
*/
|
|
8
|
+
export interface GetRolesQueryParams {
|
|
9
|
+
environment?: string;
|
|
10
|
+
application?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get roles response
|
|
14
|
+
*/
|
|
15
|
+
export interface GetRolesResponse {
|
|
16
|
+
success: boolean;
|
|
17
|
+
data: {
|
|
18
|
+
roles: string[];
|
|
19
|
+
};
|
|
20
|
+
timestamp: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Refresh roles response
|
|
24
|
+
*/
|
|
25
|
+
export interface RefreshRolesResponse {
|
|
26
|
+
success: boolean;
|
|
27
|
+
data: {
|
|
28
|
+
roles: string[];
|
|
29
|
+
};
|
|
30
|
+
timestamp: string;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=roles.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roles.types.d.ts","sourceRoot":"","sources":["../../../src/api/types/roles.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roles.types.js","sourceRoot":"","sources":["../../../src/api/types/roles.types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -1 +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,
|
|
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"}
|
|
@@ -44,17 +44,126 @@ function createClientTokenEndpoint(misoClient, options) {
|
|
|
44
44
|
...options,
|
|
45
45
|
};
|
|
46
46
|
return async (req, res) => {
|
|
47
|
+
// Helper to check if response was already sent
|
|
48
|
+
const isResponseSent = () => res.headersSent || res.writableEnded;
|
|
47
49
|
try {
|
|
48
50
|
// Check if misoClient is initialized
|
|
49
51
|
if (!misoClient.isInitialized()) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
if (!isResponseSent()) {
|
|
53
|
+
res.status(503).json({
|
|
54
|
+
error: "Service Unavailable",
|
|
55
|
+
message: "MisoClient is not initialized",
|
|
56
|
+
});
|
|
57
|
+
}
|
|
54
58
|
return;
|
|
55
59
|
}
|
|
56
60
|
// Get token with origin validation (throws if validation fails)
|
|
57
|
-
|
|
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
|
+
}
|
|
58
167
|
// Build response
|
|
59
168
|
const response = {
|
|
60
169
|
token,
|
|
@@ -68,10 +177,12 @@ function createClientTokenEndpoint(misoClient, options) {
|
|
|
68
177
|
// Get controller URL (prefer controllerPublicUrl for browser, fallback to controllerUrl)
|
|
69
178
|
const controllerUrl = config.controllerPublicUrl || config.controllerUrl;
|
|
70
179
|
if (!controllerUrl) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
180
|
+
if (!isResponseSent()) {
|
|
181
|
+
res.status(500).json({
|
|
182
|
+
error: "Internal Server Error",
|
|
183
|
+
message: "Controller URL not configured",
|
|
184
|
+
});
|
|
185
|
+
}
|
|
75
186
|
return;
|
|
76
187
|
}
|
|
77
188
|
response.config = {
|
|
@@ -82,12 +193,16 @@ function createClientTokenEndpoint(misoClient, options) {
|
|
|
82
193
|
clientTokenUri: opts.clientTokenUri,
|
|
83
194
|
};
|
|
84
195
|
}
|
|
85
|
-
|
|
196
|
+
// Send response if not already sent
|
|
197
|
+
if (!isResponseSent()) {
|
|
198
|
+
res.json(response);
|
|
199
|
+
}
|
|
86
200
|
}
|
|
87
201
|
catch (error) {
|
|
88
|
-
//
|
|
89
|
-
|
|
90
|
-
|
|
202
|
+
// Final catch-all error handler
|
|
203
|
+
if (isResponseSent()) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
91
206
|
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
92
207
|
// Check if it's an origin validation error (403)
|
|
93
208
|
if (errorMessage.includes("Origin validation failed")) {
|
|
@@ -97,6 +212,14 @@ function createClientTokenEndpoint(misoClient, options) {
|
|
|
97
212
|
});
|
|
98
213
|
return;
|
|
99
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
|
+
}
|
|
100
223
|
// Other errors (500)
|
|
101
224
|
res.status(500).json({
|
|
102
225
|
error: "Internal Server Error",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-token-endpoint.js","sourceRoot":"","sources":["../../src/express/client-token-endpoint.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA8DH,8BAEC;AAoBD,
|
|
1
|
+
{"version":3,"file":"client-token-endpoint.js","sourceRoot":"","sources":["../../src/express/client-token-endpoint.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA8DH,8BAEC;AAoBD,8DA0NC;AA1SD,kEAAiE;AAoDjE;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,QAA6B;IACrD,OAAO,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,yBAAyB,CACvC,UAAsB,EACtB,OAAoC;IAEpC,MAAM,IAAI,GAAG;QACX,cAAc,EAAE,2BAA2B;QAC3C,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,IAAI;QACnB,GAAG,OAAO;KACX,CAAC;IAEF,OAAO,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;QAC1D,+CAA+C;QAC/C,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,aAAa,CAAC;QAElE,IAAI,CAAC;YACH,qCAAqC;YACrC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC;gBAChC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;oBACtB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACnB,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EAAE,+BAA+B;qBACzC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;YACT,CAAC;YAED,gEAAgE;YAChE,4DAA4D;YAC5D,yDAAyD;YACzD,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,qDAAqD;YAC7E,MAAM,YAAY,GAAG,IAAA,uCAAmB,EAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC1D,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBACtD,UAAU,CAAC,GAAG,EAAE;oBACd,MAAM,CAAC,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC,CAAC;gBACzF,CAAC,EAAE,SAAS,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,IAAI,KAAa,CAAC;YAClB,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,oDAAoD;gBACpD,IAAI,cAAc,EAAE,EAAE,CAAC;oBACrB,OAAO;gBACT,CAAC;gBAED,MAAM,YAAY,GAAG,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;gBAExF,iDAAiD;gBACjD,IAAI,YAAY,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;oBACtD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACnB,KAAK,EAAE,WAAW;wBAClB,OAAO,EAAE,YAAY;qBACtB,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,kFAAkF;gBAClF,MAAM,qBAAqB,GAAG,YAAY,CAAC,QAAQ,CAAC,mEAAmE,CAAC,CAAC;gBAEzH,wFAAwF;gBACxF,qEAAqE;gBACrE,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBAC/D,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAClF,MAAM,WAAW,GAAG,UAAU,KAAK,SAAS,CAAC;gBAE7C,+DAA+D;gBAC/D,IAAI,mBAAmB,GAAuB,UAAU,CAAC;gBACzD,IAAI,cAAkC,CAAC;gBAEvC,0DAA0D;gBAC1D,IAAI,YAAY,GAAY,UAAU,CAAC;gBACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3C,IACE,YAAY;wBACZ,OAAO,YAAY,KAAK,QAAQ;wBAChC,cAAc,IAAI,YAAY;wBAC9B,YAAY,CAAC,YAAY,EACzB,CAAC;wBACD,MAAM,UAAU,GAAG,YAA0C,CAAC;wBAC9D,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;4BACxB,0CAA0C;4BAC1C,mBAAmB,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;4BACjD,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;4BAChD,MAAM;wBACR,CAAC;wBACD,sDAAsD;wBACtD,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;4BAC/C,kCAAkC;4BAClC,MAAM;wBACR,CAAC;oBACH,CAAC;oBACD,kDAAkD;oBAClD,IAAI,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;wBAChF,YAAY,GAAI,YAAoC,CAAC,KAAK,CAAC;oBAC7D,CAAC;yBAAM,CAAC;wBACN,MAAM;oBACR,CAAC;gBACH,CAAC;gBAED,iEAAiE;gBACjE,MAAM,eAAe,GAAG,mBAAmB,IAAI,UAAU,CAAC;gBAE1D,mEAAmE;gBACnE,IAAI,WAAW,IAAI,eAAe,EAAE,CAAC;oBACnC,qDAAqD;oBACrD,IAAI,eAAe,KAAK,GAAG,EAAE,CAAC;wBAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;4BACnB,KAAK,EAAE,cAAc;4BACrB,OAAO,EAAE,sFAAsF;yBAChG,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBACD,IAAI,eAAe,KAAK,GAAG,EAAE,CAAC;wBAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;4BACnB,KAAK,EAAE,WAAW;4BAClB,OAAO,EAAE,gDAAgD;yBAC1D,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBACD,oBAAoB;oBACpB,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;wBAC/B,KAAK,EAAE,cAAc,IAAI,OAAO;wBAChC,OAAO,EAAE,YAAY;qBACtB,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,oEAAoE;gBACpE,IAAI,qBAAqB,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAClG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACnB,KAAK,EAAE,iBAAiB;wBACxB,OAAO,EAAE,+DAA+D;qBACzE,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,qBAAqB;gBACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,uBAAuB;oBAC9B,OAAO,EAAE,YAAY;iBACtB,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,iBAAiB;YACjB,MAAM,QAAQ,GAAwB;gBACpC,KAAK;gBACL,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC;YAEF,8BAA8B;YAC9B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;gBAEtC,8BAA8B;gBAC9B,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,QAAQ,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAEtE,yFAAyF;gBACzF,MAAM,aAAa,GAAG,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,aAAa,CAAC;gBAEzE,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;wBACtB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;4BACnB,KAAK,EAAE,uBAAuB;4BAC9B,OAAO,EAAE,+BAA+B;yBACzC,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,QAAQ,CAAC,MAAM,GAAG;oBAChB,OAAO;oBACP,aAAa;oBACb,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;oBAC/C,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,cAAc,EAAE,IAAI,CAAC,cAAc;iBACpC,CAAC;YACJ,CAAC;YAED,oCAAoC;YACpC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBACtB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gCAAgC;YAChC,IAAI,cAAc,EAAE,EAAE,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAE9E,iDAAiD;YACjD,IAAI,YAAY,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;gBACtD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,YAAY;iBACtB,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,gCAAgC;YAChC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,iBAAiB;oBACxB,OAAO,EAAE,oDAAoD;iBAC9D,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,qBAAqB;YACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,YAAY;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import { Request } from "express";
|
|
|
9
9
|
export declare class MisoClient {
|
|
10
10
|
private config;
|
|
11
11
|
private httpClient;
|
|
12
|
+
private apiClient;
|
|
12
13
|
private redis;
|
|
13
14
|
private auth;
|
|
14
15
|
private roles;
|
|
@@ -102,6 +103,13 @@ export declare class MisoClient {
|
|
|
102
103
|
logout(params: {
|
|
103
104
|
token: string;
|
|
104
105
|
}): Promise<import("./types/config.types").LogoutResponse>;
|
|
106
|
+
/**
|
|
107
|
+
* Refresh user access token using refresh token
|
|
108
|
+
* @param refreshToken - Refresh token to exchange for new access token
|
|
109
|
+
* @param authStrategy - Optional authentication strategy override
|
|
110
|
+
* @returns New access token, refresh token, and expiration info, or null on error
|
|
111
|
+
*/
|
|
112
|
+
refreshToken(refreshToken: string, authStrategy?: AuthStrategy): Promise<import("./types/config.types").RefreshTokenResponse | null>;
|
|
105
113
|
/**
|
|
106
114
|
* Get user roles (cached in Redis if available)
|
|
107
115
|
* @param token - User authentication token
|
|
@@ -238,6 +246,10 @@ export { extractClientTokenInfo } from "./utils/token-utils";
|
|
|
238
246
|
export type { ClientTokenInfo } from "./utils/token-utils";
|
|
239
247
|
export type { OriginValidationResult } from "./utils/origin-validator";
|
|
240
248
|
export { resolveControllerUrl, isBrowser, validateUrl } from "./utils/controller-url-resolver";
|
|
249
|
+
export { extractLoggingContext } from "./utils/logging-helpers";
|
|
250
|
+
export type { IndexedLoggingContext, HasKey, HasExternalSystem } from "./utils/logging-helpers";
|
|
251
|
+
export { extractRequestContext } from "./utils/request-context";
|
|
252
|
+
export type { RequestContext } from "./utils/request-context";
|
|
241
253
|
export * from "./utils/pagination.utils";
|
|
242
254
|
export * from "./utils/filter.utils";
|
|
243
255
|
export * from "./utils/sort.utils";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
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.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.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;
|
|
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");
|
|
@@ -26,6 +26,7 @@ const redis_service_1 = require("./services/redis.service");
|
|
|
26
26
|
const cache_service_1 = require("./services/cache.service");
|
|
27
27
|
const http_client_1 = require("./utils/http-client");
|
|
28
28
|
const internal_http_client_1 = require("./utils/internal-http-client");
|
|
29
|
+
const api_1 = require("./api");
|
|
29
30
|
const data_masker_1 = require("./utils/data-masker");
|
|
30
31
|
const auth_strategy_1 = require("./utils/auth-strategy");
|
|
31
32
|
const origin_validator_1 = require("./utils/origin-validator");
|
|
@@ -51,13 +52,17 @@ class MisoClient {
|
|
|
51
52
|
// Type assertion needed because httpClient property is private in LoggerService but needs to be updated
|
|
52
53
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
53
54
|
this.logger.httpClient = this.httpClient;
|
|
54
|
-
// Create
|
|
55
|
-
this.
|
|
56
|
-
//
|
|
55
|
+
// Create ApiClient that wraps HttpClient (provides typed API interfaces)
|
|
56
|
+
this.apiClient = new api_1.ApiClient(this.httpClient);
|
|
57
|
+
// Set ApiClient in LoggerService (resolves circular dependency)
|
|
58
|
+
this.logger.setApiClient(this.apiClient);
|
|
59
|
+
// Initialize cache service with Redis support (used by auth, roles and permissions)
|
|
57
60
|
this.cacheService = new cache_service_1.CacheService(this.redis);
|
|
61
|
+
// Create services (pass both httpClient and apiClient for gradual migration)
|
|
62
|
+
this.auth = new auth_service_1.AuthService(this.httpClient, this.apiClient, this.cacheService);
|
|
58
63
|
// Initialize services that use cache
|
|
59
|
-
this.roles = new role_service_1.RoleService(this.httpClient, this.cacheService);
|
|
60
|
-
this.permissions = new permission_service_1.PermissionService(this.httpClient, this.cacheService);
|
|
64
|
+
this.roles = new role_service_1.RoleService(this.httpClient, this.apiClient, this.cacheService);
|
|
65
|
+
this.permissions = new permission_service_1.PermissionService(this.httpClient, this.apiClient, this.cacheService);
|
|
61
66
|
}
|
|
62
67
|
/**
|
|
63
68
|
* Initialize the client (connect to Redis if configured)
|
|
@@ -181,6 +186,15 @@ class MisoClient {
|
|
|
181
186
|
async logout(params) {
|
|
182
187
|
return this.auth.logout(params);
|
|
183
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Refresh user access token using refresh token
|
|
191
|
+
* @param refreshToken - Refresh token to exchange for new access token
|
|
192
|
+
* @param authStrategy - Optional authentication strategy override
|
|
193
|
+
* @returns New access token, refresh token, and expiration info, or null on error
|
|
194
|
+
*/
|
|
195
|
+
async refreshToken(refreshToken, authStrategy) {
|
|
196
|
+
return this.auth.refreshToken(refreshToken, authStrategy);
|
|
197
|
+
}
|
|
184
198
|
// ==================== AUTHORIZATION METHODS ====================
|
|
185
199
|
/**
|
|
186
200
|
* Get user roles (cached in Redis if available)
|
|
@@ -382,6 +396,10 @@ var controller_url_resolver_1 = require("./utils/controller-url-resolver");
|
|
|
382
396
|
Object.defineProperty(exports, "resolveControllerUrl", { enumerable: true, get: function () { return controller_url_resolver_1.resolveControllerUrl; } });
|
|
383
397
|
Object.defineProperty(exports, "isBrowser", { enumerable: true, get: function () { return controller_url_resolver_1.isBrowser; } });
|
|
384
398
|
Object.defineProperty(exports, "validateUrl", { enumerable: true, get: function () { return controller_url_resolver_1.validateUrl; } });
|
|
399
|
+
var logging_helpers_1 = require("./utils/logging-helpers");
|
|
400
|
+
Object.defineProperty(exports, "extractLoggingContext", { enumerable: true, get: function () { return logging_helpers_1.extractLoggingContext; } });
|
|
401
|
+
var request_context_1 = require("./utils/request-context");
|
|
402
|
+
Object.defineProperty(exports, "extractRequestContext", { enumerable: true, get: function () { return request_context_1.extractRequestContext; } });
|
|
385
403
|
// Export pagination, filter, sort utilities
|
|
386
404
|
__exportStar(require("./utils/pagination.utils"), exports);
|
|
387
405
|
__exportStar(require("./utils/filter.utils"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAEH,0DAAsD;AACtD,0DAAsD;AACtD,sEAAkE;AAClE,8DAA0D;AAC1D,4DAAwD;AACxD,4DAAwD;AACxD,qDAAiD;AACjD,uEAAkE;AAClE,qDAAiD;AACjD,yDAA4D;AAE5D,+DAAwG;AAGxG,MAAa,UAAU;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,18 +2,26 @@
|
|
|
2
2
|
* Authentication service for token validation and user management
|
|
3
3
|
*/
|
|
4
4
|
import { HttpClient } from "../utils/http-client";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { ApiClient } from "../api";
|
|
6
|
+
import { CacheService } from "./cache.service";
|
|
7
|
+
import { UserInfo, AuthStrategy, LoginResponse, LogoutResponse, RefreshTokenResponse } from "../types/config.types";
|
|
7
8
|
export declare class AuthService {
|
|
8
9
|
private httpClient;
|
|
9
|
-
private
|
|
10
|
+
private apiClient;
|
|
11
|
+
private cache;
|
|
10
12
|
private config;
|
|
11
|
-
|
|
13
|
+
private tokenValidationTTL;
|
|
14
|
+
constructor(httpClient: HttpClient, apiClient: ApiClient, cache: CacheService);
|
|
12
15
|
/**
|
|
13
16
|
* Check if token matches configured API key for testing
|
|
14
17
|
* @private
|
|
15
18
|
*/
|
|
16
19
|
private isApiKeyToken;
|
|
20
|
+
/**
|
|
21
|
+
* Extract userId from JWT token without making API call
|
|
22
|
+
* @private
|
|
23
|
+
*/
|
|
24
|
+
private extractUserIdFromToken;
|
|
17
25
|
/**
|
|
18
26
|
* Generate unique correlation ID for request tracking
|
|
19
27
|
*/
|
|
@@ -42,9 +50,11 @@ export declare class AuthService {
|
|
|
42
50
|
}): Promise<LoginResponse>;
|
|
43
51
|
/**
|
|
44
52
|
* Validate token with controller
|
|
53
|
+
* Caches validation results by userId with configurable TTL (default 15 minutes)
|
|
45
54
|
* If API_KEY is configured and token matches, returns true without calling controller
|
|
46
55
|
* @param token - User authentication token
|
|
47
56
|
* @param authStrategy - Optional authentication strategy override
|
|
57
|
+
* @returns true if token is valid, false otherwise
|
|
48
58
|
*/
|
|
49
59
|
validateToken(token: string, authStrategy?: AuthStrategy): Promise<boolean>;
|
|
50
60
|
/**
|
|
@@ -61,10 +71,17 @@ export declare class AuthService {
|
|
|
61
71
|
* @param authStrategy - Optional authentication strategy override
|
|
62
72
|
*/
|
|
63
73
|
getUserInfo(token: string, authStrategy?: AuthStrategy): Promise<UserInfo | null>;
|
|
74
|
+
/**
|
|
75
|
+
* Clear cached token validation result for a user
|
|
76
|
+
* Extracts userId from JWT token directly (no API call)
|
|
77
|
+
* @param token - User authentication token
|
|
78
|
+
*/
|
|
79
|
+
clearTokenCache(token: string): void;
|
|
64
80
|
/**
|
|
65
81
|
* Logout user
|
|
66
82
|
* Gracefully handles cases where there's no active session (400 Bad Request)
|
|
67
83
|
* Only throws errors for unexpected failures (network errors, 5xx errors, etc.)
|
|
84
|
+
* Automatically clears token validation cache on logout
|
|
68
85
|
* @param params - Logout parameters
|
|
69
86
|
* @param params.token - Access token to invalidate
|
|
70
87
|
* @returns Logout response with success message
|
|
@@ -72,6 +89,13 @@ export declare class AuthService {
|
|
|
72
89
|
logout(params: {
|
|
73
90
|
token: string;
|
|
74
91
|
}): Promise<LogoutResponse>;
|
|
92
|
+
/**
|
|
93
|
+
* Refresh user access token using refresh token
|
|
94
|
+
* @param refreshToken - Refresh token to exchange for new access token
|
|
95
|
+
* @param authStrategy - Optional authentication strategy override
|
|
96
|
+
* @returns New access token, refresh token, and expiration info, or null on error
|
|
97
|
+
*/
|
|
98
|
+
refreshToken(refreshToken: string, authStrategy?: AuthStrategy): Promise<RefreshTokenResponse | null>;
|
|
75
99
|
/**
|
|
76
100
|
* Check if user is authenticated (has valid token)
|
|
77
101
|
* @param token - User authentication token
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAEL,QAAQ,
|
|
1
|
+
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAEL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,cAAc,EACd,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAU/B,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY;IAQ7E;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAsF5C;;;;;;;;;;;;OAYG;IACG,KAAK,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,aAAa,CAAC;IA2F1B;;;;;;;OAOG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAgDnB;;;;;OAKG;IACG,OAAO,CACX,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgC3B;;;;;OAKG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IA6B3B;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAcpC;;;;;;;;OAQG;IACG,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAoHhE;;;;;OAKG;IACG,YAAY,CAChB,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAwFvC;;;;OAIG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;CAGpB"}
|