@aifabrix/miso-client 3.5.0 → 3.8.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/CHANGELOG.md +240 -0
- package/dist/api/auth-cache.api.d.ts.map +1 -1
- package/dist/api/auth-cache.api.js +27 -5
- package/dist/api/auth-cache.api.js.map +1 -1
- package/dist/api/auth-login.api.d.ts.map +1 -1
- package/dist/api/auth-login.api.js +49 -6
- package/dist/api/auth-login.api.js.map +1 -1
- package/dist/api/auth-token.api.d.ts.map +1 -1
- package/dist/api/auth-token.api.js +99 -7
- package/dist/api/auth-token.api.js.map +1 -1
- package/dist/api/auth-user.api.d.ts.map +1 -1
- package/dist/api/auth-user.api.js +22 -4
- package/dist/api/auth-user.api.js.map +1 -1
- package/dist/api/auth.api.d.ts +2 -9
- package/dist/api/auth.api.d.ts.map +1 -1
- package/dist/api/auth.api.js +1 -66
- package/dist/api/auth.api.js.map +1 -1
- package/dist/api/logs-create.api.d.ts.map +1 -1
- package/dist/api/logs-create.api.js +57 -4
- package/dist/api/logs-create.api.js.map +1 -1
- package/dist/api/logs-export.api.d.ts.map +1 -1
- package/dist/api/logs-export.api.js +7 -1
- package/dist/api/logs-export.api.js.map +1 -1
- package/dist/api/logs-list.api.d.ts.map +1 -1
- package/dist/api/logs-list.api.js +32 -6
- package/dist/api/logs-list.api.js.map +1 -1
- package/dist/api/logs-stats.api.d.ts.map +1 -1
- package/dist/api/logs-stats.api.js +22 -4
- package/dist/api/logs-stats.api.js.map +1 -1
- package/dist/api/permissions.api.d.ts +2 -1
- package/dist/api/permissions.api.d.ts.map +1 -1
- package/dist/api/permissions.api.js +16 -5
- package/dist/api/permissions.api.js.map +1 -1
- package/dist/api/roles.api.d.ts +2 -1
- package/dist/api/roles.api.d.ts.map +1 -1
- package/dist/api/roles.api.js +16 -5
- package/dist/api/roles.api.js.map +1 -1
- package/dist/api/types/logs.types.d.ts +44 -7
- package/dist/api/types/logs.types.d.ts.map +1 -1
- package/dist/express/client-token-endpoint.d.ts.map +1 -1
- package/dist/express/client-token-endpoint.js +42 -5
- package/dist/express/client-token-endpoint.js.map +1 -1
- package/dist/express/error-handler.d.ts.map +1 -1
- package/dist/express/error-handler.js +32 -8
- package/dist/express/error-handler.js.map +1 -1
- package/dist/express/index.d.ts +1 -0
- package/dist/express/index.d.ts.map +1 -1
- package/dist/express/index.js +4 -1
- package/dist/express/index.js.map +1 -1
- package/dist/express/logger-context.middleware.d.ts +46 -0
- package/dist/express/logger-context.middleware.d.ts.map +1 -0
- package/dist/express/logger-context.middleware.js +99 -0
- package/dist/express/logger-context.middleware.js.map +1 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -5
- package/dist/index.js.map +1 -1
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +97 -8
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/browser-permission.service.d.ts +5 -0
- package/dist/services/browser-permission.service.d.ts.map +1 -1
- package/dist/services/browser-permission.service.js +39 -2
- package/dist/services/browser-permission.service.js.map +1 -1
- package/dist/services/browser-role.service.d.ts +5 -0
- package/dist/services/browser-role.service.d.ts.map +1 -1
- package/dist/services/browser-role.service.js +45 -2
- package/dist/services/browser-role.service.js.map +1 -1
- package/dist/services/logger/index.d.ts +10 -0
- package/dist/services/logger/index.d.ts.map +1 -0
- package/dist/services/logger/index.js +22 -0
- package/dist/services/logger/index.js.map +1 -0
- package/dist/services/logger/logger-chain.d.ts +90 -0
- package/dist/services/logger/logger-chain.d.ts.map +1 -0
- package/dist/services/logger/logger-chain.js +169 -0
- package/dist/services/logger/logger-chain.js.map +1 -0
- package/dist/services/logger/logger-context-storage.d.ts +73 -0
- package/dist/services/logger/logger-context-storage.d.ts.map +1 -0
- package/dist/services/logger/logger-context-storage.js +86 -0
- package/dist/services/logger/logger-context-storage.js.map +1 -0
- package/dist/services/logger/logger-context.d.ts +85 -0
- package/dist/services/logger/logger-context.d.ts.map +1 -0
- package/dist/services/logger/logger-context.js +192 -0
- package/dist/services/logger/logger-context.js.map +1 -0
- package/dist/services/{logger.service.d.ts → logger/logger.service.d.ts} +59 -72
- package/dist/services/logger/logger.service.d.ts.map +1 -0
- package/dist/services/logger/logger.service.js +403 -0
- package/dist/services/logger/logger.service.js.map +1 -0
- package/dist/services/logger/unified-logger.factory.d.ts +87 -0
- package/dist/services/logger/unified-logger.factory.d.ts.map +1 -0
- package/dist/services/logger/unified-logger.factory.js +120 -0
- package/dist/services/logger/unified-logger.factory.js.map +1 -0
- package/dist/services/logger/unified-logger.service.d.ts +89 -0
- package/dist/services/logger/unified-logger.service.d.ts.map +1 -0
- package/dist/services/logger/unified-logger.service.js +178 -0
- package/dist/services/logger/unified-logger.service.js.map +1 -0
- package/dist/services/permission.service.d.ts +5 -0
- package/dist/services/permission.service.d.ts.map +1 -1
- package/dist/services/permission.service.js +42 -2
- package/dist/services/permission.service.js.map +1 -1
- package/dist/services/role.service.d.ts +5 -0
- package/dist/services/role.service.d.ts.map +1 -1
- package/dist/services/role.service.js +42 -2
- package/dist/services/role.service.js.map +1 -1
- package/dist/types/filter.types.d.ts +6 -6
- package/dist/types/filter.types.d.ts.map +1 -1
- package/dist/types/filter.types.js +14 -5
- package/dist/types/filter.types.js.map +1 -1
- package/dist/utils/console-logger.d.ts +21 -0
- package/dist/utils/console-logger.d.ts.map +1 -0
- package/dist/utils/console-logger.js +58 -0
- package/dist/utils/console-logger.js.map +1 -0
- package/dist/utils/controller-url-resolver.d.ts.map +1 -1
- package/dist/utils/controller-url-resolver.js +5 -0
- package/dist/utils/controller-url-resolver.js.map +1 -1
- package/dist/utils/data-client-auth.d.ts.map +1 -1
- package/dist/utils/data-client-auth.js +34 -2
- 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 +59 -3
- package/dist/utils/data-client-auto-init.js.map +1 -1
- package/dist/utils/data-client-request.d.ts.map +1 -1
- package/dist/utils/data-client-request.js +78 -2
- package/dist/utils/data-client-request.js.map +1 -1
- package/dist/utils/data-client.d.ts.map +1 -1
- package/dist/utils/data-client.js +10 -7
- package/dist/utils/data-client.js.map +1 -1
- package/dist/utils/environment-token.d.ts.map +1 -1
- package/dist/utils/environment-token.js +37 -57
- package/dist/utils/environment-token.js.map +1 -1
- package/dist/utils/error-extractor.d.ts +52 -0
- package/dist/utils/error-extractor.d.ts.map +1 -0
- package/dist/utils/error-extractor.js +136 -0
- package/dist/utils/error-extractor.js.map +1 -0
- package/dist/utils/filter.utils.d.ts +115 -3
- package/dist/utils/filter.utils.d.ts.map +1 -1
- package/dist/utils/filter.utils.js +298 -27
- package/dist/utils/filter.utils.js.map +1 -1
- package/dist/utils/http-client-audit.d.ts +1 -1
- package/dist/utils/http-client-audit.d.ts.map +1 -1
- package/dist/utils/http-client.d.ts +1 -1
- package/dist/utils/http-client.d.ts.map +1 -1
- package/dist/utils/internal-http-client.d.ts +4 -0
- package/dist/utils/internal-http-client.d.ts.map +1 -1
- package/dist/utils/internal-http-client.js +190 -11
- package/dist/utils/internal-http-client.js.map +1 -1
- package/dist/utils/response-validator.d.ts.map +1 -1
- package/dist/utils/response-validator.js +2 -4
- package/dist/utils/response-validator.js.map +1 -1
- package/dist/utils/token-utils.d.ts.map +1 -1
- package/dist/utils/token-utils.js +75 -4
- package/dist/utils/token-utils.js.map +1 -1
- package/package.json +2 -1
- package/dist/services/logger.service.d.ts.map +0 -1
- package/dist/services/logger.service.js +0 -488
- package/dist/services/logger.service.js.map +0 -1
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.BrowserPermissionService = void 0;
|
|
8
8
|
const browser_jwt_decoder_1 = require("../utils/browser-jwt-decoder");
|
|
9
|
+
const token_utils_1 = require("../utils/token-utils");
|
|
10
|
+
const data_client_utils_1 = require("../utils/data-client-utils");
|
|
9
11
|
class BrowserPermissionService {
|
|
10
12
|
constructor(httpClient, apiClient, cache) {
|
|
11
13
|
this.config = httpClient.config;
|
|
@@ -34,6 +36,28 @@ class BrowserPermissionService {
|
|
|
34
36
|
return null;
|
|
35
37
|
}
|
|
36
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Extract environment from client token stored in localStorage
|
|
41
|
+
* Returns null if not available (browser-only)
|
|
42
|
+
*/
|
|
43
|
+
getEnvironmentFromClientToken() {
|
|
44
|
+
if (!(0, data_client_utils_1.isBrowser)()) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
const clientToken = (0, data_client_utils_1.getLocalStorage)("miso:client-token");
|
|
49
|
+
if (!clientToken) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
const tokenInfo = (0, token_utils_1.extractClientTokenInfo)(clientToken);
|
|
53
|
+
return tokenInfo.environment || null;
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
// eslint-disable-next-line no-console
|
|
57
|
+
console.warn("Failed to extract environment from client token:", error);
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
37
61
|
/**
|
|
38
62
|
* Get user permissions with caching
|
|
39
63
|
* Optimized to extract userId from token first to check cache before API call
|
|
@@ -70,7 +94,17 @@ class BrowserPermissionService {
|
|
|
70
94
|
const authStrategyWithToken = authStrategyToUse
|
|
71
95
|
? { ...authStrategyToUse, bearerToken: token }
|
|
72
96
|
: { methods: ['bearer'], bearerToken: token };
|
|
73
|
-
|
|
97
|
+
// Extract environment from client token for query parameter
|
|
98
|
+
const environment = this.getEnvironmentFromClientToken();
|
|
99
|
+
// Log warning if environment is missing (required by controller)
|
|
100
|
+
if (!environment) {
|
|
101
|
+
// eslint-disable-next-line no-console
|
|
102
|
+
console.warn("[BrowserPermissionService] Environment not found in client token. " +
|
|
103
|
+
"Permissions API requires environment parameter. " +
|
|
104
|
+
"This may cause a 400 Bad Request error.");
|
|
105
|
+
}
|
|
106
|
+
const queryParams = environment ? { environment } : undefined;
|
|
107
|
+
const permissionResult = await this.apiClient.permissions.getPermissions(queryParams, authStrategyWithToken);
|
|
74
108
|
const permissions = permissionResult.data?.permissions || [];
|
|
75
109
|
// Cache the result (use userId-based key)
|
|
76
110
|
const finalCacheKey = `permissions:${userId}`;
|
|
@@ -131,8 +165,11 @@ class BrowserPermissionService {
|
|
|
131
165
|
}
|
|
132
166
|
const userId = userInfo.data.user.id;
|
|
133
167
|
const cacheKey = `permissions:${userId}`;
|
|
168
|
+
// Extract environment from client token for query parameter
|
|
169
|
+
const environment = this.getEnvironmentFromClientToken();
|
|
170
|
+
const queryParams = environment ? { environment } : undefined;
|
|
134
171
|
// Fetch fresh permissions from controller using refresh endpoint via ApiClient
|
|
135
|
-
const permissionResult = await this.apiClient.permissions.refreshPermissions(authStrategyWithToken);
|
|
172
|
+
const permissionResult = await this.apiClient.permissions.refreshPermissions(queryParams, authStrategyWithToken);
|
|
136
173
|
const permissions = permissionResult.data?.permissions || [];
|
|
137
174
|
// Update cache with fresh data
|
|
138
175
|
await this.cache.set(cacheKey, { permissions, timestamp: Date.now() }, this.permissionTTL);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-permission.service.js","sourceRoot":"","sources":["../../src/services/browser-permission.service.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAUH,sEAAyD;
|
|
1
|
+
{"version":3,"file":"browser-permission.service.js","sourceRoot":"","sources":["../../src/services/browser-permission.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,11 @@ export declare class BrowserRoleService {
|
|
|
18
18
|
* Uses browser-compatible JWT decoder
|
|
19
19
|
*/
|
|
20
20
|
private extractUserIdFromToken;
|
|
21
|
+
/**
|
|
22
|
+
* Extract environment from client token stored in localStorage
|
|
23
|
+
* Returns null if not available (browser-only)
|
|
24
|
+
*/
|
|
25
|
+
private getEnvironmentFromClientToken;
|
|
21
26
|
/**
|
|
22
27
|
* Get user roles with caching
|
|
23
28
|
* Optimized to extract userId from token first to check cache before API call
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-role.service.d.ts","sourceRoot":"","sources":["../../src/services/browser-role.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;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,YAAY,EAEb,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-role.service.d.ts","sourceRoot":"","sources":["../../src/services/browser-role.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;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,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAU/B,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAS;gBAEZ,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY;IAQ7E;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IA4BrC;;;;;OAKG;IACG,QAAQ,CACZ,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IA4EpB;;;;;OAKG;IACG,OAAO,CACX,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;OAKG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;OAKG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;OAIG;IACG,YAAY,CAChB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IA+CpB;;;;OAIG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,IAAI,CAAC;CA2BjB"}
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.BrowserRoleService = void 0;
|
|
8
8
|
const browser_jwt_decoder_1 = require("../utils/browser-jwt-decoder");
|
|
9
|
+
const token_utils_1 = require("../utils/token-utils");
|
|
10
|
+
const data_client_utils_1 = require("../utils/data-client-utils");
|
|
9
11
|
class BrowserRoleService {
|
|
10
12
|
constructor(httpClient, apiClient, cache) {
|
|
11
13
|
this.config = httpClient.config;
|
|
@@ -34,6 +36,34 @@ class BrowserRoleService {
|
|
|
34
36
|
return null;
|
|
35
37
|
}
|
|
36
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Extract environment from client token stored in localStorage
|
|
41
|
+
* Returns null if not available (browser-only)
|
|
42
|
+
*/
|
|
43
|
+
getEnvironmentFromClientToken() {
|
|
44
|
+
if (!(0, data_client_utils_1.isBrowser)()) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
const clientToken = (0, data_client_utils_1.getLocalStorage)("miso:client-token");
|
|
49
|
+
if (!clientToken) {
|
|
50
|
+
console.warn("[BrowserRoleService] No client token found in localStorage");
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const tokenInfo = (0, token_utils_1.extractClientTokenInfo)(clientToken);
|
|
54
|
+
// Log token info for debugging
|
|
55
|
+
if (!tokenInfo.environment) {
|
|
56
|
+
console.warn("[BrowserRoleService] No environment in client token. Token info:", tokenInfo);
|
|
57
|
+
console.log("[BrowserRoleService] Available token info fields:", Object.keys(tokenInfo));
|
|
58
|
+
}
|
|
59
|
+
return tokenInfo.environment || null;
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
// eslint-disable-next-line no-console
|
|
63
|
+
console.warn("Failed to extract environment from client token:", error);
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
37
67
|
/**
|
|
38
68
|
* Get user roles with caching
|
|
39
69
|
* Optimized to extract userId from token first to check cache before API call
|
|
@@ -70,7 +100,17 @@ class BrowserRoleService {
|
|
|
70
100
|
const authStrategyWithToken = authStrategyToUse
|
|
71
101
|
? { ...authStrategyToUse, bearerToken: token }
|
|
72
102
|
: { methods: ['bearer'], bearerToken: token };
|
|
73
|
-
|
|
103
|
+
// Extract environment from client token for query parameter
|
|
104
|
+
const environment = this.getEnvironmentFromClientToken();
|
|
105
|
+
// Log warning if environment is missing (required by controller)
|
|
106
|
+
if (!environment) {
|
|
107
|
+
// eslint-disable-next-line no-console
|
|
108
|
+
console.warn("[BrowserRoleService] Environment not found in client token. " +
|
|
109
|
+
"Roles API requires environment parameter. " +
|
|
110
|
+
"This may cause a 400 Bad Request error.");
|
|
111
|
+
}
|
|
112
|
+
const queryParams = environment ? { environment } : undefined;
|
|
113
|
+
const roleResult = await this.apiClient.roles.getRoles(queryParams, authStrategyWithToken);
|
|
74
114
|
const roles = roleResult.data?.roles || [];
|
|
75
115
|
// Cache the result (use userId-based key)
|
|
76
116
|
const finalCacheKey = `roles:${userId}`;
|
|
@@ -131,8 +171,11 @@ class BrowserRoleService {
|
|
|
131
171
|
}
|
|
132
172
|
const userId = userInfo.data.user.id;
|
|
133
173
|
const cacheKey = `roles:${userId}`;
|
|
174
|
+
// Extract environment from client token for query parameter
|
|
175
|
+
const environment = this.getEnvironmentFromClientToken();
|
|
176
|
+
const queryParams = environment ? { environment } : undefined;
|
|
134
177
|
// Fetch fresh roles from controller using refresh endpoint via ApiClient
|
|
135
|
-
const roleResult = await this.apiClient.roles.refreshRoles(authStrategyWithToken);
|
|
178
|
+
const roleResult = await this.apiClient.roles.refreshRoles(queryParams, authStrategyWithToken);
|
|
136
179
|
const roles = roleResult.data?.roles || [];
|
|
137
180
|
// Update cache with fresh data
|
|
138
181
|
await this.cache.set(cacheKey, { roles, timestamp: Date.now() }, this.roleTTL);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-role.service.js","sourceRoot":"","sources":["../../src/services/browser-role.service.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAUH,sEAAyD;
|
|
1
|
+
{"version":3,"file":"browser-role.service.js","sourceRoot":"","sources":["../../src/services/browser-role.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger service module exports
|
|
3
|
+
* Provides LoggerService and LoggerChain for application logging
|
|
4
|
+
*/
|
|
5
|
+
export { LoggerService, ClientLoggingOptions } from "./logger.service";
|
|
6
|
+
export { LoggerChain } from "./logger-chain";
|
|
7
|
+
export { UnifiedLoggerService, UnifiedLogger } from "./unified-logger.service";
|
|
8
|
+
export { LoggerContextStorage, LoggerContext } from "./logger-context-storage";
|
|
9
|
+
export { getLogger, setLoggerContext, clearLoggerContext, mergeLoggerContext, registerLoggerService, } from "./unified-logger.factory";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/logger/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Logger service module exports
|
|
4
|
+
* Provides LoggerService and LoggerChain for application logging
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.registerLoggerService = exports.mergeLoggerContext = exports.clearLoggerContext = exports.setLoggerContext = exports.getLogger = exports.LoggerContextStorage = exports.UnifiedLoggerService = exports.LoggerChain = exports.LoggerService = void 0;
|
|
8
|
+
var logger_service_1 = require("./logger.service");
|
|
9
|
+
Object.defineProperty(exports, "LoggerService", { enumerable: true, get: function () { return logger_service_1.LoggerService; } });
|
|
10
|
+
var logger_chain_1 = require("./logger-chain");
|
|
11
|
+
Object.defineProperty(exports, "LoggerChain", { enumerable: true, get: function () { return logger_chain_1.LoggerChain; } });
|
|
12
|
+
var unified_logger_service_1 = require("./unified-logger.service");
|
|
13
|
+
Object.defineProperty(exports, "UnifiedLoggerService", { enumerable: true, get: function () { return unified_logger_service_1.UnifiedLoggerService; } });
|
|
14
|
+
var logger_context_storage_1 = require("./logger-context-storage");
|
|
15
|
+
Object.defineProperty(exports, "LoggerContextStorage", { enumerable: true, get: function () { return logger_context_storage_1.LoggerContextStorage; } });
|
|
16
|
+
var unified_logger_factory_1 = require("./unified-logger.factory");
|
|
17
|
+
Object.defineProperty(exports, "getLogger", { enumerable: true, get: function () { return unified_logger_factory_1.getLogger; } });
|
|
18
|
+
Object.defineProperty(exports, "setLoggerContext", { enumerable: true, get: function () { return unified_logger_factory_1.setLoggerContext; } });
|
|
19
|
+
Object.defineProperty(exports, "clearLoggerContext", { enumerable: true, get: function () { return unified_logger_factory_1.clearLoggerContext; } });
|
|
20
|
+
Object.defineProperty(exports, "mergeLoggerContext", { enumerable: true, get: function () { return unified_logger_factory_1.mergeLoggerContext; } });
|
|
21
|
+
Object.defineProperty(exports, "registerLoggerService", { enumerable: true, get: function () { return unified_logger_factory_1.registerLoggerService; } });
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/logger/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,mDAAuE;AAA9D,+GAAA,aAAa,OAAA;AACtB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,mEAA+E;AAAtE,8HAAA,oBAAoB,OAAA;AAC7B,mEAA+E;AAAtE,8HAAA,oBAAoB,OAAA;AAC7B,mEAMkC;AALhC,mHAAA,SAAS,OAAA;AACT,0HAAA,gBAAgB,OAAA;AAChB,4HAAA,kBAAkB,OAAA;AAClB,4HAAA,kBAAkB,OAAA;AAClB,+HAAA,qBAAqB,OAAA"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Method chaining class for fluent logging API
|
|
3
|
+
*/
|
|
4
|
+
import { Request } from "express";
|
|
5
|
+
import { LoggerService, ClientLoggingOptions } from "./logger.service";
|
|
6
|
+
import { IndexedLoggingContext } from "../../utils/logging-helpers";
|
|
7
|
+
/**
|
|
8
|
+
* Method chaining class for fluent logging API
|
|
9
|
+
*/
|
|
10
|
+
export declare class LoggerChain {
|
|
11
|
+
private logger;
|
|
12
|
+
private context;
|
|
13
|
+
private options;
|
|
14
|
+
constructor(logger: LoggerService, context?: Record<string, unknown>, options?: ClientLoggingOptions);
|
|
15
|
+
addContext(key: string, value: unknown): LoggerChain;
|
|
16
|
+
addUser(userId: string): LoggerChain;
|
|
17
|
+
addApplication(applicationId: string): LoggerChain;
|
|
18
|
+
addCorrelation(correlationId: string): LoggerChain;
|
|
19
|
+
withToken(token: string): LoggerChain;
|
|
20
|
+
withoutMasking(): LoggerChain;
|
|
21
|
+
/**
|
|
22
|
+
* Add indexed logging context fields for fast queries
|
|
23
|
+
*
|
|
24
|
+
* @param context - Indexed logging context with source, external system, and record fields
|
|
25
|
+
* @returns LoggerChain instance for method chaining
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* await logger
|
|
30
|
+
* .withIndexedContext({
|
|
31
|
+
* sourceKey: 'datasource-1',
|
|
32
|
+
* sourceDisplayName: 'PostgreSQL DB',
|
|
33
|
+
* externalSystemKey: 'system-1',
|
|
34
|
+
* recordKey: 'record-123'
|
|
35
|
+
* })
|
|
36
|
+
* .info('Sync completed');
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
withIndexedContext(context: IndexedLoggingContext): LoggerChain;
|
|
40
|
+
/**
|
|
41
|
+
* Add credential context for audit logging
|
|
42
|
+
*
|
|
43
|
+
* @param credentialId - Optional credential identifier
|
|
44
|
+
* @param credentialType - Optional credential type (e.g., 'oauth2', 'api-key')
|
|
45
|
+
* @returns LoggerChain instance for method chaining
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* await logger
|
|
50
|
+
* .withCredentialContext('cred-123', 'oauth2')
|
|
51
|
+
* .info('API call completed');
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
withCredentialContext(credentialId?: string, credentialType?: string): LoggerChain;
|
|
55
|
+
/**
|
|
56
|
+
* Add request/response metrics for performance logging
|
|
57
|
+
*
|
|
58
|
+
* @param requestSize - Optional request size in bytes
|
|
59
|
+
* @param responseSize - Optional response size in bytes
|
|
60
|
+
* @param durationMs - Optional request duration in milliseconds
|
|
61
|
+
* @returns LoggerChain instance for method chaining
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* await logger
|
|
66
|
+
* .withRequestMetrics(1024, 2048, 150)
|
|
67
|
+
* .info('Upstream API call completed');
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
withRequestMetrics(requestSize?: number, responseSize?: number, durationMs?: number): LoggerChain;
|
|
71
|
+
/**
|
|
72
|
+
* Auto-extract logging context from Express Request
|
|
73
|
+
* Extracts: IP, method, path, user-agent, correlation ID, user from JWT
|
|
74
|
+
*
|
|
75
|
+
* @param req - Express Request object
|
|
76
|
+
* @returns LoggerChain instance for method chaining
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* await miso.log
|
|
81
|
+
* .withRequest(req)
|
|
82
|
+
* .info("Processing request");
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
withRequest(req: Request): LoggerChain;
|
|
86
|
+
error(message: string, stackTrace?: string): Promise<void>;
|
|
87
|
+
info(message: string): Promise<void>;
|
|
88
|
+
audit(action: string, resource: string): Promise<void>;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=logger-chain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger-chain.d.ts","sourceRoot":"","sources":["../../../src/services/logger/logger-chain.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,OAAO,CAAuB;gBAGpC,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,OAAO,GAAE,oBAAyB;IAOpC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,WAAW;IAKpD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;IAKpC,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW;IAKlD,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW;IAKlD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAKrC,cAAc,IAAI,WAAW;IAK7B;;;;;;;;;;;;;;;;;OAiBG;IACH,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG,WAAW;IAU/D;;;;;;;;;;;;;OAaG;IACH,qBAAqB,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,WAAW;IAMlF;;;;;;;;;;;;;;OAcG;IACH,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW;IAOjG;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAwChC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG7D"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Method chaining class for fluent logging API
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.LoggerChain = void 0;
|
|
7
|
+
const request_context_1 = require("../../utils/request-context");
|
|
8
|
+
/**
|
|
9
|
+
* Method chaining class for fluent logging API
|
|
10
|
+
*/
|
|
11
|
+
class LoggerChain {
|
|
12
|
+
constructor(logger, context = {}, options = {}) {
|
|
13
|
+
this.logger = logger;
|
|
14
|
+
this.context = context;
|
|
15
|
+
this.options = options;
|
|
16
|
+
}
|
|
17
|
+
addContext(key, value) {
|
|
18
|
+
this.context[key] = value;
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
addUser(userId) {
|
|
22
|
+
this.options.userId = userId;
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
addApplication(applicationId) {
|
|
26
|
+
this.options.applicationId = applicationId;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
addCorrelation(correlationId) {
|
|
30
|
+
this.options.correlationId = correlationId;
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
withToken(token) {
|
|
34
|
+
this.options.token = token;
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
withoutMasking() {
|
|
38
|
+
this.options.maskSensitiveData = false;
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Add indexed logging context fields for fast queries
|
|
43
|
+
*
|
|
44
|
+
* @param context - Indexed logging context with source, external system, and record fields
|
|
45
|
+
* @returns LoggerChain instance for method chaining
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* await logger
|
|
50
|
+
* .withIndexedContext({
|
|
51
|
+
* sourceKey: 'datasource-1',
|
|
52
|
+
* sourceDisplayName: 'PostgreSQL DB',
|
|
53
|
+
* externalSystemKey: 'system-1',
|
|
54
|
+
* recordKey: 'record-123'
|
|
55
|
+
* })
|
|
56
|
+
* .info('Sync completed');
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
withIndexedContext(context) {
|
|
60
|
+
this.options.sourceKey = context.sourceKey;
|
|
61
|
+
this.options.sourceDisplayName = context.sourceDisplayName;
|
|
62
|
+
this.options.externalSystemKey = context.externalSystemKey;
|
|
63
|
+
this.options.externalSystemDisplayName = context.externalSystemDisplayName;
|
|
64
|
+
this.options.recordKey = context.recordKey;
|
|
65
|
+
this.options.recordDisplayName = context.recordDisplayName;
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Add credential context for audit logging
|
|
70
|
+
*
|
|
71
|
+
* @param credentialId - Optional credential identifier
|
|
72
|
+
* @param credentialType - Optional credential type (e.g., 'oauth2', 'api-key')
|
|
73
|
+
* @returns LoggerChain instance for method chaining
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* await logger
|
|
78
|
+
* .withCredentialContext('cred-123', 'oauth2')
|
|
79
|
+
* .info('API call completed');
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
withCredentialContext(credentialId, credentialType) {
|
|
83
|
+
this.options.credentialId = credentialId;
|
|
84
|
+
this.options.credentialType = credentialType;
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Add request/response metrics for performance logging
|
|
89
|
+
*
|
|
90
|
+
* @param requestSize - Optional request size in bytes
|
|
91
|
+
* @param responseSize - Optional response size in bytes
|
|
92
|
+
* @param durationMs - Optional request duration in milliseconds
|
|
93
|
+
* @returns LoggerChain instance for method chaining
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* await logger
|
|
98
|
+
* .withRequestMetrics(1024, 2048, 150)
|
|
99
|
+
* .info('Upstream API call completed');
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
withRequestMetrics(requestSize, responseSize, durationMs) {
|
|
103
|
+
this.options.requestSize = requestSize;
|
|
104
|
+
this.options.responseSize = responseSize;
|
|
105
|
+
this.options.durationMs = durationMs;
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Auto-extract logging context from Express Request
|
|
110
|
+
* Extracts: IP, method, path, user-agent, correlation ID, user from JWT
|
|
111
|
+
*
|
|
112
|
+
* @param req - Express Request object
|
|
113
|
+
* @returns LoggerChain instance for method chaining
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```typescript
|
|
117
|
+
* await miso.log
|
|
118
|
+
* .withRequest(req)
|
|
119
|
+
* .info("Processing request");
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
withRequest(req) {
|
|
123
|
+
const ctx = (0, request_context_1.extractRequestContext)(req);
|
|
124
|
+
// Merge into options (these become top-level LogEntry fields)
|
|
125
|
+
if (ctx.userId) {
|
|
126
|
+
this.options.userId = ctx.userId;
|
|
127
|
+
}
|
|
128
|
+
if (ctx.sessionId) {
|
|
129
|
+
this.options.sessionId = ctx.sessionId;
|
|
130
|
+
}
|
|
131
|
+
if (ctx.correlationId) {
|
|
132
|
+
this.options.correlationId = ctx.correlationId;
|
|
133
|
+
}
|
|
134
|
+
if (ctx.requestId) {
|
|
135
|
+
this.options.requestId = ctx.requestId;
|
|
136
|
+
}
|
|
137
|
+
if (ctx.ipAddress) {
|
|
138
|
+
this.options.ipAddress = ctx.ipAddress;
|
|
139
|
+
}
|
|
140
|
+
if (ctx.userAgent) {
|
|
141
|
+
this.options.userAgent = ctx.userAgent;
|
|
142
|
+
}
|
|
143
|
+
// Merge into context (additional request info, not top-level LogEntry fields)
|
|
144
|
+
if (ctx.method) {
|
|
145
|
+
this.context.method = ctx.method;
|
|
146
|
+
}
|
|
147
|
+
if (ctx.path) {
|
|
148
|
+
this.context.path = ctx.path;
|
|
149
|
+
}
|
|
150
|
+
if (ctx.referer) {
|
|
151
|
+
this.context.referer = ctx.referer;
|
|
152
|
+
}
|
|
153
|
+
if (ctx.requestSize !== undefined) {
|
|
154
|
+
this.context.requestSize = ctx.requestSize;
|
|
155
|
+
}
|
|
156
|
+
return this;
|
|
157
|
+
}
|
|
158
|
+
async error(message, stackTrace) {
|
|
159
|
+
await this.logger.error(message, this.context, stackTrace, this.options);
|
|
160
|
+
}
|
|
161
|
+
async info(message) {
|
|
162
|
+
await this.logger.info(message, this.context, this.options);
|
|
163
|
+
}
|
|
164
|
+
async audit(action, resource) {
|
|
165
|
+
await this.logger.audit(action, resource, this.context, this.options);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
exports.LoggerChain = LoggerChain;
|
|
169
|
+
//# sourceMappingURL=logger-chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger-chain.js","sourceRoot":"","sources":["../../../src/services/logger/logger-chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger context storage using AsyncLocalStorage
|
|
3
|
+
* Provides thread-safe context storage per async execution context
|
|
4
|
+
* Context is automatically isolated per async execution context
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Logger context interface
|
|
8
|
+
* Contains all fields that can be automatically extracted from requests or manually set
|
|
9
|
+
*/
|
|
10
|
+
export interface LoggerContext {
|
|
11
|
+
ipAddress?: string;
|
|
12
|
+
userAgent?: string;
|
|
13
|
+
correlationId?: string;
|
|
14
|
+
userId?: string;
|
|
15
|
+
sessionId?: string;
|
|
16
|
+
method?: string;
|
|
17
|
+
path?: string;
|
|
18
|
+
hostname?: string;
|
|
19
|
+
applicationId?: string;
|
|
20
|
+
requestId?: string;
|
|
21
|
+
token?: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Logger context storage singleton
|
|
25
|
+
* Uses AsyncLocalStorage to store context per async execution context
|
|
26
|
+
*/
|
|
27
|
+
declare class LoggerContextStorage {
|
|
28
|
+
private static instance;
|
|
29
|
+
private readonly asyncLocalStorage;
|
|
30
|
+
private constructor();
|
|
31
|
+
/**
|
|
32
|
+
* Get singleton instance
|
|
33
|
+
* @returns LoggerContextStorage instance
|
|
34
|
+
*/
|
|
35
|
+
static getInstance(): LoggerContextStorage;
|
|
36
|
+
/**
|
|
37
|
+
* Get current context from AsyncLocalStorage
|
|
38
|
+
* @returns Current context or null if not set
|
|
39
|
+
*/
|
|
40
|
+
getContext(): LoggerContext | null;
|
|
41
|
+
/**
|
|
42
|
+
* Set context for current async execution context
|
|
43
|
+
* @param context - Context to set (partial, will be merged with existing)
|
|
44
|
+
*/
|
|
45
|
+
setContext(context: Partial<LoggerContext>): void;
|
|
46
|
+
/**
|
|
47
|
+
* Clear context for current async execution context
|
|
48
|
+
*/
|
|
49
|
+
clearContext(): void;
|
|
50
|
+
/**
|
|
51
|
+
* Merge additional fields into existing context
|
|
52
|
+
* @param additional - Additional context fields to merge
|
|
53
|
+
*/
|
|
54
|
+
mergeContext(additional: Partial<LoggerContext>): void;
|
|
55
|
+
/**
|
|
56
|
+
* Run function with context set
|
|
57
|
+
* Useful for setting context at the start of an async operation
|
|
58
|
+
* @param context - Context to set
|
|
59
|
+
* @param fn - Function to run with context
|
|
60
|
+
* @returns Result of function execution
|
|
61
|
+
*/
|
|
62
|
+
runWithContext<T>(context: Partial<LoggerContext>, fn: () => T): T;
|
|
63
|
+
/**
|
|
64
|
+
* Run async function with context set
|
|
65
|
+
* Useful for setting context at the start of an async operation
|
|
66
|
+
* @param context - Context to set
|
|
67
|
+
* @param fn - Async function to run with context
|
|
68
|
+
* @returns Promise resolving to result of function execution
|
|
69
|
+
*/
|
|
70
|
+
runWithContextAsync<T>(context: Partial<LoggerContext>, fn: () => Promise<T>): Promise<T>;
|
|
71
|
+
}
|
|
72
|
+
export { LoggerContextStorage };
|
|
73
|
+
//# sourceMappingURL=logger-context-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger-context-storage.d.ts","sourceRoot":"","sources":["../../../src/services/logger/logger-context-storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,cAAM,oBAAoB;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqC;IAC5D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmC;IAErE,OAAO;IAIP;;;OAGG;IACH,MAAM,CAAC,WAAW,IAAI,oBAAoB;IAO1C;;;OAGG;IACH,UAAU,IAAI,aAAa,GAAG,IAAI;IAQlC;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAKjD;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;;OAGG;IACH,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAKtD;;;;;;OAMG;IACH,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAKlE;;;;;;OAMG;IACG,mBAAmB,CAAC,CAAC,EACzB,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC;CAId;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|