@aifabrix/miso-client 3.1.2 → 3.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +57 -2
  2. package/dist/express/client-token-endpoint.d.ts +76 -0
  3. package/dist/express/client-token-endpoint.d.ts.map +1 -0
  4. package/dist/express/client-token-endpoint.js +231 -0
  5. package/dist/express/client-token-endpoint.js.map +1 -0
  6. package/dist/express/index.d.ts +2 -1
  7. package/dist/express/index.d.ts.map +1 -1
  8. package/dist/express/index.js +8 -3
  9. package/dist/express/index.js.map +1 -1
  10. package/dist/express/response-middleware.d.ts.map +1 -1
  11. package/dist/express/response-middleware.js.map +1 -1
  12. package/dist/index.d.ts +19 -2
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +30 -4
  15. package/dist/index.js.map +1 -1
  16. package/dist/services/auth.service.d.ts +26 -4
  17. package/dist/services/auth.service.d.ts.map +1 -1
  18. package/dist/services/auth.service.js +137 -6
  19. package/dist/services/auth.service.js.map +1 -1
  20. package/dist/services/browser-permission.service.d.ts +60 -0
  21. package/dist/services/browser-permission.service.d.ts.map +1 -0
  22. package/dist/services/browser-permission.service.js +159 -0
  23. package/dist/services/browser-permission.service.js.map +1 -0
  24. package/dist/services/browser-role.service.d.ts +60 -0
  25. package/dist/services/browser-role.service.d.ts.map +1 -0
  26. package/dist/services/browser-role.service.js +159 -0
  27. package/dist/services/browser-role.service.js.map +1 -0
  28. package/dist/services/cache.service.d.ts.map +1 -1
  29. package/dist/services/cache.service.js +4 -0
  30. package/dist/services/cache.service.js.map +1 -1
  31. package/dist/services/logger.service.d.ts +99 -24
  32. package/dist/services/logger.service.d.ts.map +1 -1
  33. package/dist/services/logger.service.js +174 -44
  34. package/dist/services/logger.service.js.map +1 -1
  35. package/dist/services/redis.service.d.ts.map +1 -1
  36. package/dist/services/redis.service.js +3 -6
  37. package/dist/services/redis.service.js.map +1 -1
  38. package/dist/types/config.types.d.ts +22 -0
  39. package/dist/types/config.types.d.ts.map +1 -1
  40. package/dist/types/config.types.js.map +1 -1
  41. package/dist/types/data-client.types.d.ts +10 -0
  42. package/dist/types/data-client.types.d.ts.map +1 -1
  43. package/dist/types/data-client.types.js.map +1 -1
  44. package/dist/utils/audit-log-queue.d.ts +4 -0
  45. package/dist/utils/audit-log-queue.d.ts.map +1 -1
  46. package/dist/utils/audit-log-queue.js +22 -2
  47. package/dist/utils/audit-log-queue.js.map +1 -1
  48. package/dist/utils/browser-jwt-decoder.d.ts +20 -0
  49. package/dist/utils/browser-jwt-decoder.d.ts.map +1 -0
  50. package/dist/utils/browser-jwt-decoder.js +75 -0
  51. package/dist/utils/browser-jwt-decoder.js.map +1 -0
  52. package/dist/utils/controller-url-resolver.d.ts +16 -0
  53. package/dist/utils/controller-url-resolver.d.ts.map +1 -1
  54. package/dist/utils/controller-url-resolver.js +12 -0
  55. package/dist/utils/controller-url-resolver.js.map +1 -1
  56. package/dist/utils/data-client-audit.d.ts.map +1 -1
  57. package/dist/utils/data-client-audit.js +19 -8
  58. package/dist/utils/data-client-audit.js.map +1 -1
  59. package/dist/utils/data-client-auth.d.ts +19 -7
  60. package/dist/utils/data-client-auth.d.ts.map +1 -1
  61. package/dist/utils/data-client-auth.js +269 -144
  62. package/dist/utils/data-client-auth.js.map +1 -1
  63. package/dist/utils/data-client-auto-init.d.ts +66 -0
  64. package/dist/utils/data-client-auto-init.d.ts.map +1 -0
  65. package/dist/utils/data-client-auto-init.js +259 -0
  66. package/dist/utils/data-client-auto-init.js.map +1 -0
  67. package/dist/utils/data-client-redirect.d.ts +52 -0
  68. package/dist/utils/data-client-redirect.d.ts.map +1 -0
  69. package/dist/utils/data-client-redirect.js +233 -0
  70. package/dist/utils/data-client-redirect.js.map +1 -0
  71. package/dist/utils/data-client-request.d.ts +8 -1
  72. package/dist/utils/data-client-request.d.ts.map +1 -1
  73. package/dist/utils/data-client-request.js +30 -5
  74. package/dist/utils/data-client-request.js.map +1 -1
  75. package/dist/utils/data-client.d.ts +116 -0
  76. package/dist/utils/data-client.d.ts.map +1 -1
  77. package/dist/utils/data-client.js +349 -4
  78. package/dist/utils/data-client.js.map +1 -1
  79. package/dist/utils/logging-helpers.d.ts +51 -0
  80. package/dist/utils/logging-helpers.d.ts.map +1 -0
  81. package/dist/utils/logging-helpers.js +57 -0
  82. package/dist/utils/logging-helpers.js.map +1 -0
  83. package/dist/utils/request-context.d.ts +32 -0
  84. package/dist/utils/request-context.d.ts.map +1 -0
  85. package/dist/utils/request-context.js +81 -0
  86. package/dist/utils/request-context.js.map +1 -0
  87. package/package.json +9 -2
@@ -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.1.2",
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",