@aifabrix/miso-client 4.5.0 → 4.6.1
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 +57 -0
- package/dist/express/error-handler.d.ts.map +1 -1
- package/dist/express/error-handler.js +1 -0
- package/dist/express/error-handler.js.map +1 -1
- package/dist/express/error-response.d.ts.map +1 -1
- package/dist/express/error-response.js +3 -1
- package/dist/express/error-response.js.map +1 -1
- package/dist/services/logger/log-entry-builder.d.ts +34 -0
- package/dist/services/logger/log-entry-builder.d.ts.map +1 -0
- package/dist/services/logger/log-entry-builder.js +132 -0
- package/dist/services/logger/log-entry-builder.js.map +1 -0
- package/dist/services/logger/log-level-policy.d.ts +3 -0
- package/dist/services/logger/log-level-policy.d.ts.map +1 -0
- package/dist/services/logger/log-level-policy.js +18 -0
- package/dist/services/logger/log-level-policy.js.map +1 -0
- package/dist/services/logger/logger-context.d.ts.map +1 -1
- package/dist/services/logger/logger-context.js +37 -18
- package/dist/services/logger/logger-context.js.map +1 -1
- package/dist/services/logger/logger.service.d.ts +0 -10
- package/dist/services/logger/logger.service.d.ts.map +1 -1
- package/dist/services/logger/logger.service.js +14 -99
- package/dist/services/logger/logger.service.js.map +1 -1
- package/dist/services/logger/trace-field-utils.d.ts +13 -0
- package/dist/services/logger/trace-field-utils.d.ts.map +1 -0
- package/dist/services/logger/trace-field-utils.js +34 -0
- package/dist/services/logger/trace-field-utils.js.map +1 -0
- package/dist/services/logger/unified-logger.service.d.ts +5 -0
- package/dist/services/logger/unified-logger.service.d.ts.map +1 -1
- package/dist/services/logger/unified-logger.service.js +34 -4
- package/dist/services/logger/unified-logger.service.js.map +1 -1
- package/dist/utils/http-error-handler.d.ts.map +1 -1
- package/dist/utils/http-error-handler.js +46 -33
- package/dist/utils/http-error-handler.js.map +1 -1
- package/dist/utils/http-response-validator.d.ts.map +1 -1
- package/dist/utils/http-response-validator.js +22 -0
- package/dist/utils/http-response-validator.js.map +1 -1
- package/dist/utils/internal-http-client.d.ts +3 -0
- package/dist/utils/internal-http-client.d.ts.map +1 -1
- package/dist/utils/internal-http-client.js +16 -0
- package/dist/utils/internal-http-client.js.map +1 -1
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,63 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [4.6.1] - 2026-03-04
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Deterministic trace-field normalization utilities** - Added shared logger trace helpers and centralized log entry builder modules.
|
|
13
|
+
- New `trace-field-utils.ts` for first-non-empty resolution.
|
|
14
|
+
- New `log-entry-builder.ts` to consolidate log entry construction and enriched context serialization.
|
|
15
|
+
- **Production safety marker gate** - Added `check:forbidden-markers` script and scanner utility to prevent temporary debug/trace markers from shipping in production code paths.
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- **Logger serialization hardening** - Unified precedence and non-empty clobber protection for key trace fields across logger paths.
|
|
20
|
+
- `applicationId`, `correlationId`, `requestId`, `userId`, `application`, and `environment` now follow centralized resolution behavior.
|
|
21
|
+
- Empty or whitespace context values no longer overwrite resolved non-empty trace values.
|
|
22
|
+
- **Unified logger parity** - `UnifiedLoggerService` now forwards traceability context to underlying logger methods for consistent behavior with direct, chain, and request-bound logging flows.
|
|
23
|
+
- **Audit/logging documentation** - Added production-safety check guidance and marker-gate usage in `docs/audit-and-logging.md`.
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- **Traceability regression coverage** - Added/expanded regression tests to verify serialized payload preservation of `applicationId` and path parity in audit/general/error flows.
|
|
28
|
+
- **Context merge edge cases** - Added explicit test coverage for null/empty clobber scenarios and nested context preservation in audit payloads.
|
|
29
|
+
|
|
30
|
+
### Technical
|
|
31
|
+
|
|
32
|
+
- **Validation hardening** - Revalidated formatting/lint/tests and marker gate in release preparation pipeline.
|
|
33
|
+
- **Plan and validation artifacts** - Updated implementation/validation plans for SDK-only scope and release readiness.
|
|
34
|
+
|
|
35
|
+
## [4.6.0] - 2026-02-27
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
|
|
39
|
+
- **End-to-end trace propagation for controller calls** - Internal SDK HTTP pipeline now propagates request trace headers from async logger context.
|
|
40
|
+
- Automatically forwards `x-correlation-id` and `x-request-id` (when available) on controller-bound requests.
|
|
41
|
+
- Preserves explicitly provided headers (no overwrite behavior).
|
|
42
|
+
- **ISO-aligned log-level policy module** - Added centralized log-level threshold evaluator in `log-level-policy.ts`.
|
|
43
|
+
- Enforces threshold for `debug/info/warn/error`.
|
|
44
|
+
- Keeps `audit` events always on for compliance traceability.
|
|
45
|
+
|
|
46
|
+
### Changed
|
|
47
|
+
|
|
48
|
+
- **Centralized error contract resilience** - SDK HTTP error adapter now supports both structured SDK errors (`statusCode`) and RFC 7807 (`status` + `detail`) shapes.
|
|
49
|
+
- **Audit event normalization** - Empty audit action/resource values are normalized to `unknown_action` / `unknown_resource` to preserve complete audit records.
|
|
50
|
+
- **Validation command guidance** - Updated Cursor validation command specs to apply `< 0.5s` runtime guidance per individual unit test (not full-suite runtime).
|
|
51
|
+
- **Audit/logging documentation** - Updated `docs/audit-and-logging.md` with trace propagation, level-threshold behavior, and RFC 7807 compatibility guidance.
|
|
52
|
+
|
|
53
|
+
### Fixed
|
|
54
|
+
|
|
55
|
+
- **Rate-limit error mapping** - Added explicit mapping for rate-limit messages (`Too Many Requests` / `rate limit`) to HTTP `429` in Express error handling.
|
|
56
|
+
- **Correlation fallback handling** - RFC 7807 error response builder now falls back to `x-request-id` / `request-id` when `x-correlation-id` is not present.
|
|
57
|
+
- **Test typecheck compatibility** - Fixed strict test typing in `internal-http-client` interceptor tests for `tests:typecheck` stability.
|
|
58
|
+
|
|
59
|
+
### Technical
|
|
60
|
+
|
|
61
|
+
- **Reliability test matrix expansion** - Added regression coverage for status codes `400/401/403/404/409/422/429/500/503`.
|
|
62
|
+
- **Timeout behavior verification** - Added explicit timeout-path tests for internal HTTP client request execution.
|
|
63
|
+
- **Validation hardening** - Re-ran and passed validation pipeline (`tests:typecheck`, `lint:fix`, `lint`, `test`) with final verification loop.
|
|
64
|
+
|
|
8
65
|
## [4.5.0] - 2026-02-19
|
|
9
66
|
|
|
10
67
|
### Added
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/express/error-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAW5C;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACnE;AAKD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAE/D;
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/express/error-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAW5C;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACnE;AAKD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAE/D;AAuHD;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAerH"}
|
|
@@ -29,6 +29,7 @@ const MESSAGE_PATTERN_MAP = [
|
|
|
29
29
|
{ pattern: /validation|invalid/i, status: 400 },
|
|
30
30
|
{ pattern: /unauthorized|authentication/i, status: 401 },
|
|
31
31
|
{ pattern: /forbidden|permission/i, status: 403 },
|
|
32
|
+
{ pattern: /too many requests|rate limit/i, status: 429 },
|
|
32
33
|
];
|
|
33
34
|
/** Map error to appropriate HTTP status code */
|
|
34
35
|
function mapErrorToStatusCode(error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/express/error-handler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA4BH,wCAEC;
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/express/error-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-response.d.ts","sourceRoot":"","sources":["../../src/express/error-response.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAE3B,QAAQ,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAmBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAexD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,OAAO,EACjB,aAAa,CAAC,EAAE,MAAM,EACtB,gBAAgB,CAAC,EAAE,eAAe,EAAE,GACnC,aAAa,
|
|
1
|
+
{"version":3,"file":"error-response.d.ts","sourceRoot":"","sources":["../../src/express/error-response.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAE3B,QAAQ,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAmBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAexD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,OAAO,EACjB,aAAa,CAAC,EAAE,MAAM,EACtB,gBAAgB,CAAC,EAAE,eAAe,EAAE,GACnC,aAAa,CAuCf;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,QAAQ,EACb,aAAa,EAAE,aAAa,GAC3B,IAAI,CAGN"}
|
|
@@ -80,7 +80,9 @@ function createErrorResponse(error, statusCode, request, correlationId, validati
|
|
|
80
80
|
// requestLogger middleware sets req.correlationId
|
|
81
81
|
const finalCorrelationId = correlationId ||
|
|
82
82
|
request?.correlationId ||
|
|
83
|
-
request?.headers["x-correlation-id"]
|
|
83
|
+
request?.headers["x-correlation-id"] ||
|
|
84
|
+
request?.headers["x-request-id"] ||
|
|
85
|
+
request?.headers["request-id"];
|
|
84
86
|
const errorResponse = {
|
|
85
87
|
type: getErrorTypeUri(statusCode),
|
|
86
88
|
title: getErrorTitle(statusCode),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-response.js","sourceRoot":"","sources":["../../src/express/error-response.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA8DH,0CAEC;AAOD,sCAeC;AAWD,
|
|
1
|
+
{"version":3,"file":"error-response.js","sourceRoot":"","sources":["../../src/express/error-response.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { LogEntry } from "../../types/config.types";
|
|
2
|
+
import { ApplicationContextService } from "../application-context.service";
|
|
3
|
+
import { LoggerContextStorage } from "./logger-context-storage";
|
|
4
|
+
import { extractEnvironmentMetadata, extractJwtContext } from "./logger-context";
|
|
5
|
+
export interface BuildLogEntryParams {
|
|
6
|
+
level: LogEntry["level"];
|
|
7
|
+
message: string;
|
|
8
|
+
maskedContext: Record<string, unknown> | undefined;
|
|
9
|
+
stackTrace: string | undefined;
|
|
10
|
+
options: {
|
|
11
|
+
sourceKey?: string;
|
|
12
|
+
sourceDisplayName?: string;
|
|
13
|
+
externalSystemKey?: string;
|
|
14
|
+
externalSystemDisplayName?: string;
|
|
15
|
+
recordKey?: string;
|
|
16
|
+
recordDisplayName?: string;
|
|
17
|
+
credentialId?: string;
|
|
18
|
+
credentialType?: string;
|
|
19
|
+
responseSize?: number;
|
|
20
|
+
durationMs?: number;
|
|
21
|
+
errorCategory?: string;
|
|
22
|
+
httpStatusCategory?: string;
|
|
23
|
+
} | undefined;
|
|
24
|
+
jwtContext: ReturnType<typeof extractJwtContext>;
|
|
25
|
+
metadata: ReturnType<typeof extractEnvironmentMetadata>;
|
|
26
|
+
appContext: ReturnType<ApplicationContextService["getApplicationContext"]>;
|
|
27
|
+
loggerContext: ReturnType<LoggerContextStorage["getContext"]> | null;
|
|
28
|
+
correlationId: string;
|
|
29
|
+
clientId: string;
|
|
30
|
+
}
|
|
31
|
+
export declare function resolveCorrelationId(context: Record<string, unknown> | undefined, loggerCorrelationId: string | undefined, generateCorrelationId: () => string): string;
|
|
32
|
+
export declare function buildLogEntryFromParams(params: BuildLogEntryParams): LogEntry;
|
|
33
|
+
export declare function buildEnrichedLogContext(logEntry: LogEntry): Record<string, unknown>;
|
|
34
|
+
//# sourceMappingURL=log-entry-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-entry-builder.d.ts","sourceRoot":"","sources":["../../../src/services/logger/log-entry-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACnD,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,EACH;QACE,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,GACD,SAAS,CAAC;IACd,UAAU,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IACjD,QAAQ,EAAE,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC;IACxD,UAAU,EAAE,UAAU,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC3E,aAAa,EAAE,UAAU,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC;IACrE,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC5C,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,qBAAqB,EAAE,MAAM,MAAM,GAClC,MAAM,CAKR;AAsDD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,GAAG,QAAQ,CAkC7E;AA2FD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWnF"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveCorrelationId = resolveCorrelationId;
|
|
4
|
+
exports.buildLogEntryFromParams = buildLogEntryFromParams;
|
|
5
|
+
exports.buildEnrichedLogContext = buildEnrichedLogContext;
|
|
6
|
+
const trace_field_utils_1 = require("./trace-field-utils");
|
|
7
|
+
function resolveCorrelationId(context, loggerCorrelationId, generateCorrelationId) {
|
|
8
|
+
return ((0, trace_field_utils_1.pickFirstNonEmpty)(context?.correlationId, loggerCorrelationId) ||
|
|
9
|
+
generateCorrelationId());
|
|
10
|
+
}
|
|
11
|
+
function resolvePrimaryTraceFields(params) {
|
|
12
|
+
const environment = (0, trace_field_utils_1.pickFirstNonEmpty)(params.maskedContext?.environment, params.appContext.environment, "unknown") || "unknown";
|
|
13
|
+
const application = (0, trace_field_utils_1.pickFirstNonEmpty)(params.maskedContext?.application, params.appContext.application, params.clientId) || params.clientId;
|
|
14
|
+
const requestId = (0, trace_field_utils_1.pickFirstNonEmpty)(params.maskedContext?.requestId, params.loggerContext?.requestId);
|
|
15
|
+
const userId = (0, trace_field_utils_1.pickFirstNonEmpty)(params.maskedContext?.userId, params.loggerContext?.userId, params.jwtContext.userId);
|
|
16
|
+
const sessionId = (0, trace_field_utils_1.pickFirstNonEmpty)(params.maskedContext?.sessionId, params.loggerContext?.sessionId, params.jwtContext.sessionId);
|
|
17
|
+
const applicationId = (0, trace_field_utils_1.pickFirstNonEmpty)(params.maskedContext?.applicationId, params.loggerContext?.applicationId, params.appContext.applicationId, params.jwtContext.applicationId) || "";
|
|
18
|
+
return {
|
|
19
|
+
environment,
|
|
20
|
+
application,
|
|
21
|
+
applicationId,
|
|
22
|
+
requestId,
|
|
23
|
+
userId,
|
|
24
|
+
sessionId,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function buildLogEntryFromParams(params) {
|
|
28
|
+
const primaryTraceFields = resolvePrimaryTraceFields(params);
|
|
29
|
+
return {
|
|
30
|
+
timestamp: new Date().toISOString(),
|
|
31
|
+
level: params.level,
|
|
32
|
+
environment: primaryTraceFields.environment,
|
|
33
|
+
application: primaryTraceFields.application,
|
|
34
|
+
applicationId: primaryTraceFields.applicationId,
|
|
35
|
+
message: params.message,
|
|
36
|
+
context: params.maskedContext,
|
|
37
|
+
stackTrace: params.stackTrace,
|
|
38
|
+
correlationId: params.correlationId,
|
|
39
|
+
userId: primaryTraceFields.userId,
|
|
40
|
+
sessionId: primaryTraceFields.sessionId,
|
|
41
|
+
requestId: primaryTraceFields.requestId,
|
|
42
|
+
ipAddress: params.loggerContext?.ipAddress || params.metadata.ipAddress,
|
|
43
|
+
userAgent: params.loggerContext?.userAgent || params.metadata.userAgent,
|
|
44
|
+
referer: params.loggerContext?.referer,
|
|
45
|
+
...params.metadata,
|
|
46
|
+
sourceKey: params.options?.sourceKey,
|
|
47
|
+
sourceDisplayName: params.options?.sourceDisplayName,
|
|
48
|
+
externalSystemKey: params.options?.externalSystemKey,
|
|
49
|
+
externalSystemDisplayName: params.options?.externalSystemDisplayName,
|
|
50
|
+
recordKey: params.options?.recordKey,
|
|
51
|
+
recordDisplayName: params.options?.recordDisplayName,
|
|
52
|
+
credentialId: params.options?.credentialId,
|
|
53
|
+
credentialType: params.options?.credentialType,
|
|
54
|
+
requestSize: params.loggerContext?.requestSize,
|
|
55
|
+
responseSize: params.options?.responseSize,
|
|
56
|
+
durationMs: params.options?.durationMs,
|
|
57
|
+
errorCategory: params.options?.errorCategory,
|
|
58
|
+
httpStatusCategory: params.options?.httpStatusCategory,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function createBaseEnrichedContext(logEntry, rawContext) {
|
|
62
|
+
return {
|
|
63
|
+
...rawContext,
|
|
64
|
+
userId: logEntry.userId,
|
|
65
|
+
sessionId: logEntry.sessionId,
|
|
66
|
+
requestId: logEntry.requestId,
|
|
67
|
+
ipAddress: logEntry.ipAddress,
|
|
68
|
+
userAgent: logEntry.userAgent,
|
|
69
|
+
referer: logEntry.referer,
|
|
70
|
+
hostname: logEntry.hostname,
|
|
71
|
+
applicationId: logEntry.applicationId,
|
|
72
|
+
sourceKey: logEntry.sourceKey,
|
|
73
|
+
sourceDisplayName: logEntry.sourceDisplayName,
|
|
74
|
+
externalSystemKey: logEntry.externalSystemKey,
|
|
75
|
+
externalSystemDisplayName: logEntry.externalSystemDisplayName,
|
|
76
|
+
recordKey: logEntry.recordKey,
|
|
77
|
+
recordDisplayName: logEntry.recordDisplayName,
|
|
78
|
+
credentialId: logEntry.credentialId,
|
|
79
|
+
credentialType: logEntry.credentialType,
|
|
80
|
+
requestSize: logEntry.requestSize,
|
|
81
|
+
responseSize: logEntry.responseSize,
|
|
82
|
+
durationMs: logEntry.durationMs,
|
|
83
|
+
errorCategory: logEntry.errorCategory,
|
|
84
|
+
httpStatusCategory: logEntry.httpStatusCategory,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function applyTraceOverrides(logEntry, rawContext, enrichedContext) {
|
|
88
|
+
const contextApplicationId = (0, trace_field_utils_1.pickFirstNonEmpty)(rawContext.applicationId);
|
|
89
|
+
const resolvedApplicationId = (0, trace_field_utils_1.pickFirstNonEmpty)(logEntry.applicationId, contextApplicationId) ||
|
|
90
|
+
logEntry.applicationId;
|
|
91
|
+
if (resolvedApplicationId !== undefined) {
|
|
92
|
+
enrichedContext.applicationId = resolvedApplicationId;
|
|
93
|
+
}
|
|
94
|
+
const resolvedUserId = (0, trace_field_utils_1.pickFirstNonEmpty)(logEntry.userId, rawContext.userId);
|
|
95
|
+
if (resolvedUserId) {
|
|
96
|
+
enrichedContext.userId = resolvedUserId;
|
|
97
|
+
}
|
|
98
|
+
const resolvedRequestId = (0, trace_field_utils_1.pickFirstNonEmpty)(logEntry.requestId, rawContext.requestId);
|
|
99
|
+
if (resolvedRequestId) {
|
|
100
|
+
enrichedContext.requestId = resolvedRequestId;
|
|
101
|
+
}
|
|
102
|
+
const resolvedCorrelationId = (0, trace_field_utils_1.pickFirstNonEmpty)(logEntry.correlationId, rawContext.correlationId);
|
|
103
|
+
if (resolvedCorrelationId) {
|
|
104
|
+
enrichedContext.correlationId = resolvedCorrelationId;
|
|
105
|
+
}
|
|
106
|
+
const resolvedApplication = (0, trace_field_utils_1.pickFirstNonEmpty)(logEntry.application, rawContext.application);
|
|
107
|
+
if (resolvedApplication) {
|
|
108
|
+
enrichedContext.application = resolvedApplication;
|
|
109
|
+
}
|
|
110
|
+
const resolvedEnvironment = (0, trace_field_utils_1.pickFirstNonEmpty)(logEntry.environment, rawContext.environment);
|
|
111
|
+
if (resolvedEnvironment) {
|
|
112
|
+
enrichedContext.environment = resolvedEnvironment;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function removeUndefinedFields(context) {
|
|
116
|
+
Object.keys(context).forEach((key) => {
|
|
117
|
+
if (context[key] === undefined) {
|
|
118
|
+
delete context[key];
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
function buildEnrichedLogContext(logEntry) {
|
|
123
|
+
const rawContext = logEntry.context || {};
|
|
124
|
+
const enrichedContext = createBaseEnrichedContext(logEntry, rawContext);
|
|
125
|
+
applyTraceOverrides(logEntry, rawContext, enrichedContext);
|
|
126
|
+
removeUndefinedFields(enrichedContext);
|
|
127
|
+
if (logEntry.stackTrace) {
|
|
128
|
+
enrichedContext.stackTrace = logEntry.stackTrace;
|
|
129
|
+
}
|
|
130
|
+
return enrichedContext;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=log-entry-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-entry-builder.js","sourceRoot":"","sources":["../../../src/services/logger/log-entry-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-level-policy.d.ts","sourceRoot":"","sources":["../../../src/services/logger/log-level-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAU9D,wBAAgB,cAAc,CAC5B,eAAe,EAAE,QAAQ,GAAG,SAAS,EACrC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GACvB,OAAO,CAOT"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.shouldLogLevel = shouldLogLevel;
|
|
4
|
+
const LOG_LEVEL_PRIORITY = {
|
|
5
|
+
debug: 10,
|
|
6
|
+
info: 20,
|
|
7
|
+
warn: 30,
|
|
8
|
+
error: 40,
|
|
9
|
+
audit: 100, // Audit logs are always preserved.
|
|
10
|
+
};
|
|
11
|
+
function shouldLogLevel(configuredLevel, level) {
|
|
12
|
+
if (level === "audit") {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
const threshold = configuredLevel || "info";
|
|
16
|
+
return LOG_LEVEL_PRIORITY[level] >= LOG_LEVEL_PRIORITY[threshold];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=log-level-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-level-policy.js","sourceRoot":"","sources":["../../../src/services/logger/log-level-policy.ts"],"names":[],"mappings":";;AAUA,wCAUC;AAlBD,MAAM,kBAAkB,GAAsC;IAC5D,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,GAAG,EAAE,mCAAmC;CAChD,CAAC;AAEF,SAAgB,cAAc,CAC5B,eAAqC,EACrC,KAAwB;IAExB,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,IAAI,MAAM,CAAC;IAC5C,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger-context.d.ts","sourceRoot":"","sources":["../../../src/services/logger/logger-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"logger-context.d.ts","sourceRoot":"","sources":["../../../src/services/logger/logger-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CA0BA;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAAC,QAAQ,CAAC,CAuB9D;AAED,MAAM,WAAW,wBAAwB;IACvC,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,qBAAqB,EAAE,MAAM,MAAM,CAAC;IACpC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAyDD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAS,EACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC5C,OAAO,EAAE,wBAAwB,GAChC,QAAQ,CA4CV;AAED,MAAM,WAAW,qBAAqB;IACpC,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,qBAAqB,EAAE,MAAM,MAAM,CAAC;IACpC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAS,EACjC,OAAO,EAAE,qBAAqB,GAC7B,QAAQ,CAqCV"}
|
|
@@ -14,6 +14,7 @@ exports.getWithContext = getWithContext;
|
|
|
14
14
|
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
15
15
|
const data_masker_1 = require("../../utils/data-masker");
|
|
16
16
|
const request_context_1 = require("../../utils/request-context");
|
|
17
|
+
const trace_field_utils_1 = require("./trace-field-utils");
|
|
17
18
|
/**
|
|
18
19
|
* Extract JWT token information
|
|
19
20
|
* @param token - JWT token string
|
|
@@ -63,6 +64,21 @@ function extractEnvironmentMetadata() {
|
|
|
63
64
|
}
|
|
64
65
|
return metadata;
|
|
65
66
|
}
|
|
67
|
+
function maskLogContext(context, maskSensitiveData) {
|
|
68
|
+
if (!maskSensitiveData || !context) {
|
|
69
|
+
return context;
|
|
70
|
+
}
|
|
71
|
+
return data_masker_1.DataMasker.maskSensitiveData(context);
|
|
72
|
+
}
|
|
73
|
+
function resolveRequestTraceFields(input) {
|
|
74
|
+
return {
|
|
75
|
+
applicationId: (0, trace_field_utils_1.pickFirstNonEmpty)(input.context?.applicationId, input.appContext.applicationId, input.jwtContext.applicationId) || "",
|
|
76
|
+
application: (0, trace_field_utils_1.pickFirstNonEmpty)(input.context?.application, input.appContext.application, input.clientId) || "",
|
|
77
|
+
environment: (0, trace_field_utils_1.pickFirstNonEmpty)(input.context?.environment, input.appContext.environment, "unknown") || "unknown",
|
|
78
|
+
requestId: (0, trace_field_utils_1.pickFirstNonEmpty)(input.context?.requestId, input.requestContext.requestId),
|
|
79
|
+
userId: (0, trace_field_utils_1.pickFirstNonEmpty)(input.context?.userId, input.requestContext.userId, input.jwtContext.userId),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
66
82
|
/**
|
|
67
83
|
* Get LogEntry object with request context extracted
|
|
68
84
|
* Extracts IP, method, path, userAgent, correlationId, userId from Express Request
|
|
@@ -81,28 +97,28 @@ function getLogWithRequest(req, message, level = "info", context, options) {
|
|
|
81
97
|
const jwtContext = extractJwtContext(req.headers.authorization?.replace("Bearer ", ""));
|
|
82
98
|
const metadata = extractEnvironmentMetadata();
|
|
83
99
|
const appContext = applicationContextService.getApplicationContext();
|
|
84
|
-
const correlationId = requestContext.correlationId ||
|
|
85
|
-
|
|
86
|
-
const maskedContext = maskSensitiveData
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
100
|
+
const correlationId = (0, trace_field_utils_1.pickFirstNonEmpty)(context?.correlationId, requestContext.correlationId) ||
|
|
101
|
+
generateCorrelationId();
|
|
102
|
+
const maskedContext = maskLogContext(context, maskSensitiveData);
|
|
103
|
+
const traceFields = resolveRequestTraceFields({
|
|
104
|
+
context,
|
|
105
|
+
appContext,
|
|
106
|
+
requestContext,
|
|
107
|
+
jwtContext,
|
|
108
|
+
clientId,
|
|
109
|
+
});
|
|
94
110
|
return {
|
|
95
111
|
timestamp: new Date().toISOString(),
|
|
96
112
|
level,
|
|
97
|
-
environment:
|
|
98
|
-
application:
|
|
99
|
-
applicationId,
|
|
113
|
+
environment: traceFields.environment,
|
|
114
|
+
application: traceFields.application,
|
|
115
|
+
applicationId: traceFields.applicationId,
|
|
100
116
|
message,
|
|
101
117
|
context: maskedContext,
|
|
102
118
|
correlationId,
|
|
103
|
-
userId:
|
|
119
|
+
userId: traceFields.userId,
|
|
104
120
|
sessionId: requestContext.sessionId || jwtContext.sessionId,
|
|
105
|
-
requestId:
|
|
121
|
+
requestId: traceFields.requestId,
|
|
106
122
|
ipAddress: requestContext.ipAddress || metadata.ipAddress,
|
|
107
123
|
userAgent: requestContext.userAgent || metadata.userAgent,
|
|
108
124
|
referer: requestContext.referer,
|
|
@@ -135,12 +151,15 @@ function getWithContext(context, message, level = "info", options) {
|
|
|
135
151
|
const maskedContext = maskSensitiveData
|
|
136
152
|
? data_masker_1.DataMasker.maskSensitiveData(context)
|
|
137
153
|
: context;
|
|
154
|
+
const application = (0, trace_field_utils_1.pickFirstNonEmpty)(context.application, appContext.application, clientId) || "";
|
|
155
|
+
const environment = (0, trace_field_utils_1.pickFirstNonEmpty)(context.environment, appContext.environment, "unknown") || "unknown";
|
|
156
|
+
const applicationId = (0, trace_field_utils_1.pickFirstNonEmpty)(context.applicationId, appContext.applicationId) || "";
|
|
138
157
|
return {
|
|
139
158
|
timestamp: new Date().toISOString(),
|
|
140
159
|
level,
|
|
141
|
-
environment
|
|
142
|
-
application
|
|
143
|
-
applicationId
|
|
160
|
+
environment,
|
|
161
|
+
application,
|
|
162
|
+
applicationId,
|
|
144
163
|
message,
|
|
145
164
|
context: maskedContext,
|
|
146
165
|
correlationId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger-context.js","sourceRoot":"","sources":["../../../src/services/logger/logger-context.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;
|
|
1
|
+
{"version":3,"file":"logger-context.js","sourceRoot":"","sources":["../../../src/services/logger/logger-context.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAeH,8CAgCC;AAMD,gEAuBC;AA4ED,8CAkDC;AAyBD,wCA0CC;AA1QD,gEAA+B;AAE/B,yDAAqD;AACrD,iEAAoE;AAEpE,2DAAwD;AAExD;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,KAAc;IAO9C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEtB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,sBAAG,CAAC,MAAM,CAAC,KAAK,CAAmC,CAAC;QACpE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,OAAO;YACL,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAE5C;YACb,aAAa,EAAE,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,MAAM,CAE1C;YACb,SAAS,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAuB;YACnE,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK;gBAClB,OAAO,CAAC,YAAiD,EAAE,KAAK;gBACjE,EAAE,CAAa;YACjB,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW;gBAC9B,OAAO,CAAC,KAA4B,EAAE,KAAK,CAAC,GAAG,CAAC;gBACjD,EAAE,CAAa;SAClB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2CAA2C;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,0BAA0B;IACxC,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,kCAAkC;IAClC,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;QAChE,MAAM,GAAG,GAAG,UAAqC,CAAC;QAClD,MAAM,SAAS,GAAI,GAAG,CAAC,MAAkC,EAAE,SAE9C,CAAC;QACd,MAAM,QAAQ,GAAI,GAAG,CAAC,MAAkC,EAAE,QAE7C,CAAC;QAEd,QAAQ,CAAC,SAAS,GAAG,SAAS,EAAE,SAA+B,CAAC;QAChE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,EAAE,QAA8B,CAAC;IAC/D,CAAC;IAED,kCAAkC;IAClC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClD,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC;IAC3D,CAAC;IAED,OAAO,QAA6B,CAAC;AACvC,CAAC;AASD,SAAS,cAAc,CACrB,OAA4C,EAC5C,iBAA0B;IAE1B,IAAI,CAAC,iBAAiB,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,wBAAU,CAAC,iBAAiB,CAAC,OAAO,CAA4B,CAAC;AAC1E,CAAC;AAED,SAAS,yBAAyB,CAAC,KAMlC;IAOC,OAAO;QACL,aAAa,EACX,IAAA,qCAAiB,EACf,KAAK,CAAC,OAAO,EAAE,aAAa,EAC5B,KAAK,CAAC,UAAU,CAAC,aAAa,EAC9B,KAAK,CAAC,UAAU,CAAC,aAAa,CAC/B,IAAI,EAAE;QACT,WAAW,EACT,IAAA,qCAAiB,EACf,KAAK,CAAC,OAAO,EAAE,WAAW,EAC1B,KAAK,CAAC,UAAU,CAAC,WAAW,EAC5B,KAAK,CAAC,QAAQ,CACf,IAAI,EAAE;QACT,WAAW,EACT,IAAA,qCAAiB,EACf,KAAK,CAAC,OAAO,EAAE,WAAW,EAC1B,KAAK,CAAC,UAAU,CAAC,WAAW,EAC5B,SAAS,CACV,IAAI,SAAS;QAChB,SAAS,EAAE,IAAA,qCAAiB,EAC1B,KAAK,CAAC,OAAO,EAAE,SAAS,EACxB,KAAK,CAAC,cAAc,CAAC,SAAS,CAC/B;QACD,MAAM,EAAE,IAAA,qCAAiB,EACvB,KAAK,CAAC,OAAO,EAAE,MAAM,EACrB,KAAK,CAAC,cAAc,CAAC,MAAM,EAC3B,KAAK,CAAC,UAAU,CAAC,MAAM,CACxB;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,iBAAiB,CAC/B,GAAY,EACZ,OAAe,EACf,QAA2B,MAAM,EACjC,OAA4C,EAC5C,OAAiC;IAEjC,MAAM,EACJ,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,QAAQ,GACT,GAAG,OAAO,CAAC;IACZ,MAAM,cAAc,GAAG,IAAA,uCAAqB,EAAC,GAAG,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,iBAAiB,CAClC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAClD,CAAC;IACF,MAAM,QAAQ,GAAG,0BAA0B,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,yBAAyB,CAAC,qBAAqB,EAAE,CAAC;IAErE,MAAM,aAAa,GACjB,IAAA,qCAAiB,EAAC,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC,aAAa,CAAC;QACvE,qBAAqB,EAAE,CAAC;IAC1B,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,yBAAyB,CAAC;QAC5C,OAAO;QACP,UAAU;QACV,cAAc;QACd,UAAU;QACV,QAAQ;KACT,CAAC,CAAC;IAEH,OAAO;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK;QACL,WAAW,EAAE,WAAW,CAAC,WAAW;QACpC,WAAW,EAAE,WAAW,CAAC,WAAW;QACpC,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,OAAO;QACP,OAAO,EAAE,aAAa;QACtB,aAAa;QACb,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,SAAS,EAAE,cAAc,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS;QAC3D,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,SAAS,EAAE,cAAc,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS;QACzD,SAAS,EAAE,cAAc,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS;QACzD,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,WAAW,EAAE,cAAc,CAAC,WAAW;QACvC,GAAG,QAAQ;KACZ,CAAC;AACJ,CAAC;AASD;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,cAAc,CAC5B,OAAgC,EAChC,OAAe,EACf,QAA2B,MAAM,EACjC,OAA8B;IAE9B,MAAM,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAClG,MAAM,QAAQ,GAAG,0BAA0B,EAAE,CAAC;IAC9C,MAAM,aAAa,GAAG,qBAAqB,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,yBAAyB,CAAC,qBAAqB,EAAE,CAAC;IAErE,4CAA4C;IAC5C,MAAM,aAAa,GAAG,iBAAiB;QACrC,CAAC,CAAE,wBAAU,CAAC,iBAAiB,CAAC,OAAO,CAA6B;QACpE,CAAC,CAAC,OAAO,CAAC;IAEZ,MAAM,WAAW,GACf,IAAA,qCAAiB,EACf,OAAO,CAAC,WAAW,EACnB,UAAU,CAAC,WAAW,EACtB,QAAQ,CACT,IAAI,EAAE,CAAC;IACV,MAAM,WAAW,GACf,IAAA,qCAAiB,EACf,OAAO,CAAC,WAAW,EACnB,UAAU,CAAC,WAAW,EACtB,SAAS,CACV,IAAI,SAAS,CAAC;IACjB,MAAM,aAAa,GACjB,IAAA,qCAAiB,EAAC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAE3E,OAAO;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK;QACL,WAAW;QACX,WAAW;QACX,aAAa;QACb,OAAO;QACP,OAAO,EAAE,aAAa;QACtB,aAAa;QACb,GAAG,QAAQ;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -89,23 +89,13 @@ export declare class LoggerService extends EventEmitter {
|
|
|
89
89
|
* Mask sensitive data in log context if enabled.
|
|
90
90
|
*/
|
|
91
91
|
private maskContext;
|
|
92
|
-
/**
|
|
93
|
-
* Build LogEntry from inputs and context.
|
|
94
|
-
*/
|
|
95
|
-
private buildLogEntry;
|
|
96
|
-
/**
|
|
97
|
-
* Resolve applicationId from options, app context, or JWT context.
|
|
98
|
-
*/
|
|
99
|
-
private resolveApplicationId;
|
|
100
92
|
private sendToRedis;
|
|
101
93
|
private isCircuitOpen;
|
|
102
94
|
private mapLogType;
|
|
103
95
|
private assertNever;
|
|
104
|
-
private buildEnrichedContext;
|
|
105
96
|
private sendToHttp;
|
|
106
97
|
/** Method chaining with context */
|
|
107
98
|
withContext(context: Record<string, unknown>): LoggerChain;
|
|
108
|
-
/** Method chaining without sensitive data masking */
|
|
109
99
|
withoutMasking(): LoggerChain;
|
|
110
100
|
/** Get LogEntry with request context extracted */
|
|
111
101
|
getLogWithRequest(req: Request, message: string, level?: LogEntry["level"], context?: Record<string, unknown>): LogEntry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../../src/services/logger/logger.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../../src/services/logger/logger.service.ts"],"names":[],"mappings":"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"}
|