@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,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Request context extraction utility for Express Request objects
|
|
4
|
+
* Automatically extracts logging context (IP, method, path, user-agent, correlation ID, user from JWT)
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.extractRequestContext = extractRequestContext;
|
|
11
|
+
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
12
|
+
/**
|
|
13
|
+
* Extract user information from Authorization header JWT token
|
|
14
|
+
* @param req - Express Request object
|
|
15
|
+
* @returns Object with userId and sessionId if available
|
|
16
|
+
*/
|
|
17
|
+
function extractUserFromAuthHeader(req) {
|
|
18
|
+
const headers = req.headers || {};
|
|
19
|
+
const authHeader = headers["authorization"];
|
|
20
|
+
if (!authHeader?.startsWith("Bearer ")) {
|
|
21
|
+
return {};
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
const token = authHeader.substring(7);
|
|
25
|
+
const decoded = jsonwebtoken_1.default.decode(token);
|
|
26
|
+
if (!decoded) {
|
|
27
|
+
return {};
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
userId: (decoded.sub ||
|
|
31
|
+
decoded.userId ||
|
|
32
|
+
decoded.user_id ||
|
|
33
|
+
decoded.id),
|
|
34
|
+
sessionId: (decoded.sessionId || decoded.sid),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return {};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Extract logging context from Express Request object
|
|
43
|
+
* Automatically extracts: IP, method, path, user-agent, correlation ID, user from JWT
|
|
44
|
+
*
|
|
45
|
+
* @param req - Express Request object
|
|
46
|
+
* @returns RequestContext with extracted fields
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const ctx = extractRequestContext(req);
|
|
51
|
+
* // ctx contains: ipAddress, method, path, userAgent, correlationId, userId, etc.
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
function extractRequestContext(req) {
|
|
55
|
+
const headers = req.headers || {};
|
|
56
|
+
// Extract IP (handle proxies)
|
|
57
|
+
const ipAddress = req.ip ||
|
|
58
|
+
headers["x-forwarded-for"]?.split(",")[0]?.trim() ||
|
|
59
|
+
req.socket?.remoteAddress;
|
|
60
|
+
// Extract correlation ID from common headers
|
|
61
|
+
const correlationId = headers["x-correlation-id"] ||
|
|
62
|
+
headers["x-request-id"] ||
|
|
63
|
+
headers["request-id"];
|
|
64
|
+
// Extract user from JWT if available
|
|
65
|
+
const { userId, sessionId } = extractUserFromAuthHeader(req);
|
|
66
|
+
return {
|
|
67
|
+
ipAddress,
|
|
68
|
+
method: req.method,
|
|
69
|
+
path: req.originalUrl || req.path,
|
|
70
|
+
userAgent: headers["user-agent"],
|
|
71
|
+
correlationId,
|
|
72
|
+
referer: headers["referer"],
|
|
73
|
+
userId,
|
|
74
|
+
sessionId,
|
|
75
|
+
requestId: headers["x-request-id"],
|
|
76
|
+
requestSize: headers["content-length"]
|
|
77
|
+
? parseInt(headers["content-length"], 10)
|
|
78
|
+
: undefined,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=request-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../src/utils/request-context.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAiEH,sDAgCC;AA9FD,gEAA+B;AAe/B;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,GAAY;IAI7C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,sBAAG,CAAC,MAAM,CAAC,KAAK,CAAmC,CAAC;QACpE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO;YACL,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG;gBAClB,OAAO,CAAC,MAAM;gBACd,OAAO,CAAC,OAAO;gBACf,OAAO,CAAC,EAAE,CAAuB;YACnC,SAAS,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAuB;SACpE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,qBAAqB,CAAC,GAAY;IAChD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IAElC,8BAA8B;IAC9B,MAAM,SAAS,GACb,GAAG,CAAC,EAAE;QACL,OAAO,CAAC,iBAAiB,CAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;QAC7D,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;IAE5B,6CAA6C;IAC7C,MAAM,aAAa,GAChB,OAAO,CAAC,kBAAkB,CAAY;QACtC,OAAO,CAAC,cAAc,CAAY;QAClC,OAAO,CAAC,YAAY,CAAY,CAAC;IAEpC,qCAAqC;IACrC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;IAE7D,OAAO;QACL,SAAS;QACT,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI;QACjC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAW;QAC1C,aAAa;QACb,OAAO,EAAE,OAAO,CAAC,SAAS,CAAW;QACrC,MAAM;QACN,SAAS;QACT,SAAS,EAAE,OAAO,CAAC,cAAc,CAAW;QAC5C,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC;YACpC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAW,EAAE,EAAE,CAAC;YACnD,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aifabrix/miso-client",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.5",
|
|
4
4
|
"description": "AI Fabrix Client SDK - Authentication, authorization, logging, and Express.js utilities",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"require": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
7
14
|
"scripts": {
|
|
8
15
|
"build": "tsc && node -e \"require('fs').copyFileSync('src/express/express.d.ts', 'dist/express/express.d.ts')\"",
|
|
9
|
-
"test": "node --unhandled-rejections=warn -r ./tests/setup-rejection-handler.js node_modules/jest/bin/jest.js",
|
|
16
|
+
"test": "node --unhandled-rejections=warn -r ./tests/setup-rejection-handler.js node_modules/jest/bin/jest.js --maxWorkers=100% --no-coverage",
|
|
10
17
|
"test:watch": "node --unhandled-rejections=warn -r ./tests/setup-rejection-handler.js node_modules/jest/bin/jest.js --watch",
|
|
11
18
|
"test:coverage": "node --unhandled-rejections=warn -r ./tests/setup-rejection-handler.js node_modules/jest/bin/jest.js --coverage",
|
|
12
19
|
"test:no-coverage": "node --unhandled-rejections=warn -r ./tests/setup-rejection-handler.js node_modules/jest/bin/jest.js --no-coverage",
|