logixia 1.12.6 → 1.13.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.
@@ -76,6 +76,13 @@ interface CorrelationMiddlewareOptions {
76
76
  * @default () => crypto.randomUUID()
77
77
  */
78
78
  generate?: () => string;
79
+ /**
80
+ * When `false`, the incoming correlation header is ignored and a new ID is
81
+ * always generated. Use this at the edge when client-supplied IDs should not
82
+ * be trusted.
83
+ * @default true
84
+ */
85
+ trustIncoming?: boolean;
79
86
  /**
80
87
  * When `true`, the response will include the correlation ID header so
81
88
  * clients can log it client-side.
@@ -1 +1 @@
1
- {"version":3,"file":"correlation.d.mts","names":[],"sources":["../src/correlation.ts"],"sourcesContent":[],"mappings":";;AA4DA;AASA;AAoCA;AA2BA;AAkBA;AAoBA;;;;;AA+CA;;;;;AAsDA;;;;;;;AA4CA;AA4CA;;;;;;;AAmDA;AA4CA;;;;;;;;;;;;;;;;;;;;;UA1YiB,kBAAA;;;;;;;;UASA,4BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoCD,qBAAA,CAAA;;;;;iBA2BA,uBAAA,CAAA;;;;;;;;;;;;;;iBAkBA,wEAAwE,IAAI;;;;;;;;;;;;;;iBAoB5E,qBAAA,WAA+B,qCAStC,8BACA;;;;;;;;;;;iBAqCO,sBAAA,WAAgC,yCASnC,gCACF;;;;;;;;;;;;;;;;;;iBA4CW,gBAAA,iBACJ,MAAM,gBAChB;;IAEL,QAAQ;;;;;;;;;;;;;iBAwCK,iCAAA;;aAEJ,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;iBA0CxB;aAA8C,0BAA0B;QACjF,iCACG;;IAEP;;;;;;;;;;;;;;;;;;;iBA+Ca,2BAAA,UAAqC;;;;;;;;;;;;;;iBA4CrC,4BAAA,CAAA,GAAgC"}
1
+ {"version":3,"file":"correlation.d.mts","names":[],"sources":["../src/correlation.ts"],"sourcesContent":[],"mappings":";;AA4DA;AASA;AA2CA;AA2BA;AAkBA;AAoBA;;;;;AAiDA;;;;;AAwDA;;;;;;;AA4CA;AA4CA;;;;;;;AAmDA;AA4CA;;;;;;;;;;;;;;;;;;;;;UArZiB,kBAAA;;;;;;;;UASA,4BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2CD,qBAAA,CAAA;;;;;iBA2BA,uBAAA,CAAA;;;;;;;;;;;;;;iBAkBA,wEAAwE,IAAI;;;;;;;;;;;;;;iBAoB5E,qBAAA,WAA+B,qCAUtC,8BACA;;;;;;;;;;;iBAsCO,sBAAA,WAAgC,yCAUnC,gCACF;;;;;;;;;;;;;;;;;;iBA6CW,gBAAA,iBACJ,MAAM,gBAChB;;IAEL,QAAQ;;;;;;;;;;;;;iBAwCK,iCAAA;;aAEJ,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;iBA0CxB;aAA8C,0BAA0B;QACjF,iCACG;;IAEP;;;;;;;;;;;;;;;;;;;iBA+Ca,2BAAA,UAAqC;;;;;;;;;;;;;;iBA4CrC,4BAAA,CAAA,GAAgC"}
@@ -76,6 +76,13 @@ interface CorrelationMiddlewareOptions {
76
76
  * @default () => crypto.randomUUID()
77
77
  */
78
78
  generate?: () => string;
79
+ /**
80
+ * When `false`, the incoming correlation header is ignored and a new ID is
81
+ * always generated. Use this at the edge when client-supplied IDs should not
82
+ * be trusted.
83
+ * @default true
84
+ */
85
+ trustIncoming?: boolean;
79
86
  /**
80
87
  * When `true`, the response will include the correlation ID header so
81
88
  * clients can log it client-side.
@@ -1 +1 @@
1
- {"version":3,"file":"correlation.d.ts","names":[],"sources":["../src/correlation.ts"],"sourcesContent":[],"mappings":";;AA4DA;AASA;AAoCA;AA2BA;AAkBA;AAoBA;;;;;AA+CA;;;;;AAsDA;;;;;;;AA4CA;AA4CA;;;;;;;AAmDA;AA4CA;;;;;;;;;;;;;;;;;;;;;UA1YiB,kBAAA;;;;;;;;UASA,4BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoCD,qBAAA,CAAA;;;;;iBA2BA,uBAAA,CAAA;;;;;;;;;;;;;;iBAkBA,wEAAwE,IAAI;;;;;;;;;;;;;;iBAoB5E,qBAAA,WAA+B,qCAStC,8BACA;;;;;;;;;;;iBAqCO,sBAAA,WAAgC,yCASnC,gCACF;;;;;;;;;;;;;;;;;;iBA4CW,gBAAA,iBACJ,MAAM,gBAChB;;IAEL,QAAQ;;;;;;;;;;;;;iBAwCK,iCAAA;;aAEJ,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;iBA0CxB;aAA8C,0BAA0B;QACjF,iCACG;;IAEP;;;;;;;;;;;;;;;;;;;iBA+Ca,2BAAA,UAAqC;;;;;;;;;;;;;;iBA4CrC,4BAAA,CAAA,GAAgC"}
1
+ {"version":3,"file":"correlation.d.ts","names":[],"sources":["../src/correlation.ts"],"sourcesContent":[],"mappings":";;AA4DA;AASA;AA2CA;AA2BA;AAkBA;AAoBA;;;;;AAiDA;;;;;AAwDA;;;;;;;AA4CA;AA4CA;;;;;;;AAmDA;AA4CA;;;;;;;;;;;;;;;;;;;;;UArZiB,kBAAA;;;;;;;;UASA,4BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2CD,qBAAA,CAAA;;;;;iBA2BA,uBAAA,CAAA;;;;;;;;;;;;;;iBAkBA,wEAAwE,IAAI;;;;;;;;;;;;;;iBAoB5E,qBAAA,WAA+B,qCAUtC,8BACA;;;;;;;;;;;iBAsCO,sBAAA,WAAgC,yCAUnC,gCACF;;;;;;;;;;;;;;;;;;iBA6CW,gBAAA,iBACJ,MAAM,gBAChB;;IAEL,QAAQ;;;;;;;;;;;;;iBAwCK,iCAAA;;aAEJ,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;iBA0CxB;aAA8C,0BAA0B;QACjF,iCACG;;IAEP;;;;;;;;;;;;;;;;;;;iBA+Ca,2BAAA,UAAqC;;;;;;;;;;;;;;iBA4CrC,4BAAA,CAAA,GAAgC"}
@@ -69,10 +69,10 @@ function withCorrelationId(correlationId, callback) {
69
69
  * ```
70
70
  */
71
71
  function correlationMiddleware(options = {}) {
72
- const { header = "x-correlation-id", originServiceHeader = "x-origin-service", generate = generateCorrelationId, setResponseHeader = true } = options;
72
+ const { header = "x-correlation-id", originServiceHeader = "x-origin-service", generate = generateCorrelationId, trustIncoming = true, setResponseHeader = true } = options;
73
73
  return function logixiaCorrelationMiddleware(req, res, next) {
74
74
  const headers = req["headers"] ?? {};
75
- const correlationId = validIncomingId(headers[header.toLowerCase()]) ?? generate();
75
+ const correlationId = (trustIncoming ? validIncomingId(headers[header.toLowerCase()]) : void 0) ?? generate();
76
76
  const originService = headers[originServiceHeader.toLowerCase()];
77
77
  if (setResponseHeader) {
78
78
  const setHeader = res["setHeader"];
@@ -96,10 +96,10 @@ function correlationMiddleware(options = {}) {
96
96
  * ```
97
97
  */
98
98
  function correlationFastifyHook(options = {}) {
99
- const { header = "x-correlation-id", originServiceHeader = "x-origin-service", generate = generateCorrelationId, setResponseHeader = true } = options;
99
+ const { header = "x-correlation-id", originServiceHeader = "x-origin-service", generate = generateCorrelationId, trustIncoming = true, setResponseHeader = true } = options;
100
100
  return function logixiaCorrelationFastifyHook(request, reply, done) {
101
101
  const headers = request["headers"] ?? {};
102
- const correlationId = validIncomingId(headers[header.toLowerCase()]) ?? generate();
102
+ const correlationId = (trustIncoming ? validIncomingId(headers[header.toLowerCase()]) : void 0) ?? generate();
103
103
  const originService = headers[originServiceHeader.toLowerCase()];
104
104
  if (setResponseHeader) {
105
105
  const replyHeader = reply["header"];
@@ -1 +1 @@
1
- {"version":3,"file":"correlation.js","names":["LogixiaContext","ctx: CorrelationContext","headers: Record<string, string>"],"sources":["../src/correlation.ts"],"sourcesContent":["/**\n * logixia — Microservices Correlation ID Propagation\n *\n * Provides zero-boilerplate correlation ID generation and propagation for\n * distributed systems. A single correlation ID travels through every service\n * in a request fan-out, making it trivial to join logs across services.\n *\n * Features:\n * - UUID v4 correlation ID generation (via `crypto.randomUUID()`)\n * - Express / Fastify / NestJS incoming-request middleware\n * - `correlationFetch()` — wraps global `fetch`, auto-injects `X-Correlation-ID`\n * - `createCorrelationAxiosInterceptor()` — axios request interceptor\n * - `childFromRequest(req, logger)` — child logger with all request identifiers\n * - Kafka / SQS / RabbitMQ message context helpers\n * - Integration with `LogixiaContext` (AsyncLocalStorage) so every `logger.info()`\n * call automatically includes the correlationId without per-call passing.\n *\n * @example Express middleware\n * ```ts\n * import { correlationMiddleware } from 'logixia/correlation';\n * import { logger } from 'logixia';\n *\n * app.use(correlationMiddleware());\n *\n * app.get('/orders', (req, res) => {\n * // correlationId is automatically in every log inside this request\n * logger.info('Listing orders');\n * res.json({ ok: true });\n * });\n * ```\n *\n * @example Outbound fetch with correlation\n * ```ts\n * import { correlationFetch } from 'logixia/correlation';\n *\n * // Reads correlationId from current LogixiaContext and injects it as header\n * const data = await correlationFetch('https://payments.internal/charge', {\n * method: 'POST',\n * body: JSON.stringify({ amount: 100 }),\n * });\n * ```\n *\n * @example Manual correlation context\n * ```ts\n * import { withCorrelationId } from 'logixia/correlation';\n *\n * await withCorrelationId('trace-abc-123', async () => {\n * // All logs and outbound fetch calls in here carry 'trace-abc-123'\n * await processOrder();\n * });\n * ```\n */\n\nimport { randomUUID } from 'node:crypto';\n\nimport { LogixiaContext } from './context/async-context';\n\n// ── Types ─────────────────────────────────────────────────────────────────────\n\n/** Fields injected into the log context by the correlation middleware. */\nexport interface CorrelationContext {\n correlationId: string;\n traceId?: string;\n /** Service that originated the request (from `X-Origin-Service` header). */\n originService?: string;\n /** Index signature so CorrelationContext is assignable to LogContext. */\n [key: string]: unknown;\n}\n\nexport interface CorrelationMiddlewareOptions {\n /**\n * HTTP header to read/write the correlation ID from/to.\n * @default 'x-correlation-id'\n */\n header?: string;\n /**\n * HTTP header for the originating service name.\n * @default 'x-origin-service'\n */\n originServiceHeader?: string;\n /**\n * Function to generate a new correlation ID when none is present in the request.\n * @default () => crypto.randomUUID()\n */\n generate?: () => string;\n /**\n * When `true`, the response will include the correlation ID header so\n * clients can log it client-side.\n * @default true\n */\n setResponseHeader?: boolean;\n}\n\n// ── ID generation ─────────────────────────────────────────────────────────────\n\n/**\n * Generate a new correlation ID using `crypto.randomUUID()` (available in\n * Node.js 14.17+, all modern browsers, and Edge runtimes).\n *\n * When the Web Crypto global is unavailable (e.g. Node 18 without\n * `--experimental-global-webcrypto`), fall back to `node:crypto`'s\n * `randomUUID`, which returns a proper UUID v4 — matching the shape this\n * function's JSDoc and README promise. `logixia/correlation` is Node-only\n * (it builds on `AsyncLocalStorage`), so importing `node:crypto` is safe here.\n */\nexport function generateCorrelationId(): string {\n if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {\n return crypto.randomUUID();\n }\n return randomUUID();\n}\n\nconst MAX_INCOMING_ID_LENGTH = 128;\nconst VALID_INCOMING_ID = /^[A-Za-z0-9._:-]+$/;\n\n/**\n * Return an incoming correlation ID only if it is short and made of safe\n * characters. Anything else (over-long, empty, or containing newlines or other\n * control characters) is dropped so the caller generates a fresh ID instead of\n * writing client-supplied text into every log line.\n */\nfunction validIncomingId(value: string | undefined): string | undefined {\n if (value === undefined || value.length > MAX_INCOMING_ID_LENGTH) return undefined;\n return VALID_INCOMING_ID.test(value) ? value : undefined;\n}\n\n// ── Context helpers ───────────────────────────────────────────────────────────\n\n/**\n * Return the correlation ID from the current `LogixiaContext`, or `undefined`\n * when called outside any context scope.\n */\nexport function getCurrentCorrelationId(): string | undefined {\n const ctx = LogixiaContext.get();\n return ctx?.correlationId as string | undefined;\n}\n\n/**\n * Run `callback` inside a correlation context scope.\n *\n * If a correlation ID is not provided, a new UUID is generated.\n *\n * @example\n * ```ts\n * await withCorrelationId('cid-abc', async () => {\n * logger.info('Processing message'); // → { correlationId: 'cid-abc', ... }\n * await callDownstream(); // correlationFetch() picks up cid-abc\n * });\n * ```\n */\nexport function withCorrelationId<T>(correlationId: string | undefined, callback: () => T): T {\n const id = correlationId ?? generateCorrelationId();\n return LogixiaContext.run({ correlationId: id }, callback);\n}\n\n// ── Express / Connect middleware ──────────────────────────────────────────────\n\n/**\n * Express-compatible middleware that:\n * 1. Reads `X-Correlation-ID` from the incoming request (or generates a new one)\n * 2. Wraps the request in a `LogixiaContext` so all loggers in the handler\n * automatically include `correlationId`\n * 3. Writes the correlation ID back to the response header (opt-out via options)\n *\n * @example\n * ```ts\n * import { correlationMiddleware } from 'logixia/correlation';\n * app.use(correlationMiddleware());\n * ```\n */\nexport function correlationMiddleware(options: CorrelationMiddlewareOptions = {}) {\n const {\n header = 'x-correlation-id',\n originServiceHeader = 'x-origin-service',\n generate = generateCorrelationId,\n setResponseHeader = true,\n } = options;\n\n return function logixiaCorrelationMiddleware(\n req: Record<string, unknown>,\n res: Record<string, unknown>,\n next: () => void\n ): void {\n const headers = (req['headers'] ?? {}) as Record<string, string | undefined>;\n\n // Node lower-cases incoming header names, so look up with lower-cased keys.\n const correlationId = validIncomingId(headers[header.toLowerCase()]) ?? generate();\n const originService = headers[originServiceHeader.toLowerCase()];\n\n if (setResponseHeader) {\n const setHeader = res['setHeader'] as ((name: string, value: string) => void) | undefined;\n if (typeof setHeader === 'function') {\n setHeader.call(res, header, correlationId);\n }\n }\n\n const ctx: CorrelationContext = {\n correlationId,\n ...(originService !== undefined ? { originService } : {}),\n };\n\n LogixiaContext.run(ctx, next);\n };\n}\n\n// ── Fastify hook ──────────────────────────────────────────────────────────────\n\n/**\n * Fastify `onRequest` lifecycle hook — same functionality as `correlationMiddleware`\n * but adapted to Fastify's hook API.\n *\n * @example\n * ```ts\n * import { correlationFastifyHook } from 'logixia/correlation';\n * fastify.addHook('onRequest', correlationFastifyHook());\n * ```\n */\nexport function correlationFastifyHook(options: CorrelationMiddlewareOptions = {}) {\n const {\n header = 'x-correlation-id',\n originServiceHeader = 'x-origin-service',\n generate = generateCorrelationId,\n setResponseHeader = true,\n } = options;\n\n return function logixiaCorrelationFastifyHook(\n request: Record<string, unknown>,\n reply: Record<string, unknown>,\n done: () => void\n ): void {\n const headers = (request['headers'] ?? {}) as Record<string, string | undefined>;\n\n // Node lower-cases incoming header names, so look up with lower-cased keys.\n const correlationId = validIncomingId(headers[header.toLowerCase()]) ?? generate();\n const originService = headers[originServiceHeader.toLowerCase()];\n\n if (setResponseHeader) {\n const replyHeader = reply['header'] as ((name: string, value: string) => void) | undefined;\n if (typeof replyHeader === 'function') {\n replyHeader.call(reply, header, correlationId);\n }\n }\n\n const ctx: CorrelationContext = {\n correlationId,\n ...(originService !== undefined ? { originService } : {}),\n };\n\n LogixiaContext.run(ctx, done);\n };\n}\n\n// ── Outbound fetch wrapper ────────────────────────────────────────────────────\n\n/**\n * A drop-in replacement for `fetch` that automatically injects the current\n * `correlationId` from `LogixiaContext` as an `X-Correlation-ID` request header.\n *\n * Falls back to the global `fetch` when no correlation context is active.\n *\n * @example\n * ```ts\n * import { correlationFetch } from 'logixia/correlation';\n *\n * // Inside a request handler with correlationMiddleware active:\n * const response = await correlationFetch('https://payments.internal/v1/charge', {\n * method: 'POST',\n * body: JSON.stringify({ amount: 100 }),\n * });\n * ```\n */\nexport async function correlationFetch(\n input: string | URL | Request,\n init: RequestInit = {},\n options: { header?: string } = {}\n): Promise<Response> {\n const header = options.header ?? 'x-correlation-id';\n const correlationId = getCurrentCorrelationId();\n\n // `init.headers` can be a plain object, a `Headers` instance, or an array of\n // `[name, value]` tuples. Spreading it into a plain object loses everything\n // but the object form: a `Headers` instance has no own enumerable properties,\n // and an array spread yields numeric indices. `Headers` accepts all three, is\n // case-insensitive, and is the shape `fetch` expects back.\n //\n // A `Request` carries headers of its own, and `fetch(request, { headers })`\n // replaces them rather than merging them, so they are seeded first and the\n // caller's `init.headers` is applied on top. Without this, accepting a\n // `Request` here would drop its headers, which is the same defect one input\n // shape over.\n const headers = new Headers(input instanceof Request ? input.headers : undefined);\n for (const [name, value] of new Headers(init.headers)) {\n headers.set(name, value);\n }\n if (correlationId && !headers.has(header)) {\n headers.set(header, correlationId);\n }\n\n return globalThis.fetch(input, { ...init, headers });\n}\n\n// ── Axios interceptor factory ─────────────────────────────────────────────────\n\n/**\n * Returns an axios request interceptor that automatically injects the current\n * correlation ID into outgoing axios requests.\n *\n * @example\n * ```ts\n * import axios from 'axios';\n * import { createCorrelationAxiosInterceptor } from 'logixia/correlation';\n *\n * axios.interceptors.request.use(createCorrelationAxiosInterceptor());\n * ```\n */\nexport function createCorrelationAxiosInterceptor(\n options: { header?: string } = {}\n): (config: Record<string, unknown>) => Record<string, unknown> {\n const header = options.header ?? 'x-correlation-id';\n\n return function correlationAxiosInterceptor(\n config: Record<string, unknown>\n ): Record<string, unknown> {\n const correlationId = getCurrentCorrelationId();\n if (!correlationId) return config;\n\n const headers = (config['headers'] ?? {}) as Record<string, unknown>;\n if (!headers[header]) {\n headers[header] = correlationId;\n }\n\n return { ...config, headers };\n };\n}\n\n// ── Child logger from request ─────────────────────────────────────────────────\n\n/**\n * Create a child logger enriched with all correlation-relevant identifiers\n * extracted from the incoming HTTP request.\n *\n * The child logger's every call automatically includes:\n * `correlationId`, `requestId`, `method`, `url`, `userAgent`, `ip`\n *\n * @example\n * ```ts\n * import { childFromRequest } from 'logixia/correlation';\n * import { logger } from 'logixia';\n *\n * app.use((req, res, next) => {\n * req.logger = childFromRequest(req, logger);\n * next();\n * });\n *\n * app.get('/orders', (req, res) => {\n * req.logger.info('Listing orders'); // → correlationId, requestId, method, url ...\n * });\n * ```\n */\nexport function childFromRequest<TLogger extends { child(ctx: Record<string, unknown>): TLogger }>(\n req: Record<string, unknown>,\n logger: TLogger,\n options: { correlationHeader?: string } = {}\n): TLogger {\n const correlationHeader = options.correlationHeader ?? 'x-correlation-id';\n\n const headers = (req['headers'] ?? {}) as Record<string, string | undefined>;\n // Node lower-cases incoming header names, so look up with a lower-cased key.\n const correlationId =\n validIncomingId(headers[correlationHeader.toLowerCase()]) ??\n getCurrentCorrelationId() ??\n generateCorrelationId();\n\n const method = req['method'] as string | undefined;\n const url = (req['url'] as string | undefined) ?? (req['originalUrl'] as string | undefined);\n const userAgent = headers['user-agent'];\n const ip =\n (headers['x-forwarded-for'] as string | undefined)?.split(',')[0]?.trim() ??\n ((req['socket'] as Record<string, unknown> | undefined)?.['remoteAddress'] as\n string | undefined);\n\n return logger.child({\n correlationId,\n ...(method !== undefined ? { method } : {}),\n ...(url !== undefined ? { url } : {}),\n ...(userAgent !== undefined ? { userAgent } : {}),\n ...(ip !== undefined ? { ip } : {}),\n });\n}\n\n// ── Message queue helpers ─────────────────────────────────────────────────────\n\n/**\n * Extract a correlation context from a Kafka / RabbitMQ / SQS message object.\n *\n * Looks for `correlationId`, `correlation_id`, or `x-correlation-id` in\n * `message.headers` (Kafka) or `message.MessageAttributes` (SQS).\n *\n * @example Kafka consumer\n * ```ts\n * import { extractMessageCorrelationId, withCorrelationId } from 'logixia/correlation';\n *\n * consumer.run({\n * eachMessage: async ({ message }) => {\n * const correlationId = extractMessageCorrelationId(message);\n * await withCorrelationId(correlationId, () => processMessage(message));\n * },\n * });\n * ```\n */\nexport function extractMessageCorrelationId(message: Record<string, unknown>): string | undefined {\n // Kafka: message.headers is Record<string, Buffer | string>\n const kafkaHeaders = message['headers'] as Record<string, Buffer | string> | undefined;\n if (kafkaHeaders) {\n const raw =\n kafkaHeaders['x-correlation-id'] ??\n kafkaHeaders['correlationId'] ??\n kafkaHeaders['correlation_id'];\n if (raw !== undefined) {\n return Buffer.isBuffer(raw) ? raw.toString('utf8') : String(raw);\n }\n }\n\n // SQS: message.MessageAttributes\n const sqsAttrs = message['MessageAttributes'] as\n Record<string, { StringValue?: string }> | undefined;\n if (sqsAttrs) {\n return (\n sqsAttrs['x-correlation-id']?.StringValue ??\n sqsAttrs['correlationId']?.StringValue ??\n sqsAttrs['correlation_id']?.StringValue\n );\n }\n\n // AMQP / generic envelope\n return (\n (message['correlationId'] as string | undefined) ??\n (message['correlation_id'] as string | undefined)\n );\n}\n\n/**\n * Build Kafka message headers containing the current correlation context.\n *\n * @example\n * ```ts\n * import { buildKafkaCorrelationHeaders } from 'logixia/correlation';\n *\n * await producer.send({\n * topic: 'orders',\n * messages: [{ value: JSON.stringify(order), headers: buildKafkaCorrelationHeaders() }],\n * });\n * ```\n */\nexport function buildKafkaCorrelationHeaders(): Record<string, string> {\n const ctx = LogixiaContext.get();\n const headers: Record<string, string> = {};\n\n const correlationId = ctx?.correlationId as string | undefined;\n if (correlationId) headers['x-correlation-id'] = correlationId;\n\n const traceId = ctx?.traceId as string | undefined;\n if (traceId) headers['x-trace-id'] = traceId;\n\n return headers;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"correlation.js","names":["LogixiaContext","ctx: CorrelationContext","headers: Record<string, string>"],"sources":["../src/correlation.ts"],"sourcesContent":["/**\n * logixia — Microservices Correlation ID Propagation\n *\n * Provides zero-boilerplate correlation ID generation and propagation for\n * distributed systems. A single correlation ID travels through every service\n * in a request fan-out, making it trivial to join logs across services.\n *\n * Features:\n * - UUID v4 correlation ID generation (via `crypto.randomUUID()`)\n * - Express / Fastify / NestJS incoming-request middleware\n * - `correlationFetch()` — wraps global `fetch`, auto-injects `X-Correlation-ID`\n * - `createCorrelationAxiosInterceptor()` — axios request interceptor\n * - `childFromRequest(req, logger)` — child logger with all request identifiers\n * - Kafka / SQS / RabbitMQ message context helpers\n * - Integration with `LogixiaContext` (AsyncLocalStorage) so every `logger.info()`\n * call automatically includes the correlationId without per-call passing.\n *\n * @example Express middleware\n * ```ts\n * import { correlationMiddleware } from 'logixia/correlation';\n * import { logger } from 'logixia';\n *\n * app.use(correlationMiddleware());\n *\n * app.get('/orders', (req, res) => {\n * // correlationId is automatically in every log inside this request\n * logger.info('Listing orders');\n * res.json({ ok: true });\n * });\n * ```\n *\n * @example Outbound fetch with correlation\n * ```ts\n * import { correlationFetch } from 'logixia/correlation';\n *\n * // Reads correlationId from current LogixiaContext and injects it as header\n * const data = await correlationFetch('https://payments.internal/charge', {\n * method: 'POST',\n * body: JSON.stringify({ amount: 100 }),\n * });\n * ```\n *\n * @example Manual correlation context\n * ```ts\n * import { withCorrelationId } from 'logixia/correlation';\n *\n * await withCorrelationId('trace-abc-123', async () => {\n * // All logs and outbound fetch calls in here carry 'trace-abc-123'\n * await processOrder();\n * });\n * ```\n */\n\nimport { randomUUID } from 'node:crypto';\n\nimport { LogixiaContext } from './context/async-context';\n\n// ── Types ─────────────────────────────────────────────────────────────────────\n\n/** Fields injected into the log context by the correlation middleware. */\nexport interface CorrelationContext {\n correlationId: string;\n traceId?: string;\n /** Service that originated the request (from `X-Origin-Service` header). */\n originService?: string;\n /** Index signature so CorrelationContext is assignable to LogContext. */\n [key: string]: unknown;\n}\n\nexport interface CorrelationMiddlewareOptions {\n /**\n * HTTP header to read/write the correlation ID from/to.\n * @default 'x-correlation-id'\n */\n header?: string;\n /**\n * HTTP header for the originating service name.\n * @default 'x-origin-service'\n */\n originServiceHeader?: string;\n /**\n * Function to generate a new correlation ID when none is present in the request.\n * @default () => crypto.randomUUID()\n */\n generate?: () => string;\n /**\n * When `false`, the incoming correlation header is ignored and a new ID is\n * always generated. Use this at the edge when client-supplied IDs should not\n * be trusted.\n * @default true\n */\n trustIncoming?: boolean;\n /**\n * When `true`, the response will include the correlation ID header so\n * clients can log it client-side.\n * @default true\n */\n setResponseHeader?: boolean;\n}\n\n// ── ID generation ─────────────────────────────────────────────────────────────\n\n/**\n * Generate a new correlation ID using `crypto.randomUUID()` (available in\n * Node.js 14.17+, all modern browsers, and Edge runtimes).\n *\n * When the Web Crypto global is unavailable (e.g. Node 18 without\n * `--experimental-global-webcrypto`), fall back to `node:crypto`'s\n * `randomUUID`, which returns a proper UUID v4 — matching the shape this\n * function's JSDoc and README promise. `logixia/correlation` is Node-only\n * (it builds on `AsyncLocalStorage`), so importing `node:crypto` is safe here.\n */\nexport function generateCorrelationId(): string {\n if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {\n return crypto.randomUUID();\n }\n return randomUUID();\n}\n\nconst MAX_INCOMING_ID_LENGTH = 128;\nconst VALID_INCOMING_ID = /^[A-Za-z0-9._:-]+$/;\n\n/**\n * Return an incoming correlation ID only if it is short and made of safe\n * characters. Anything else (over-long, empty, or containing newlines or other\n * control characters) is dropped so the caller generates a fresh ID instead of\n * writing client-supplied text into every log line.\n */\nfunction validIncomingId(value: string | undefined): string | undefined {\n if (value === undefined || value.length > MAX_INCOMING_ID_LENGTH) return undefined;\n return VALID_INCOMING_ID.test(value) ? value : undefined;\n}\n\n// ── Context helpers ───────────────────────────────────────────────────────────\n\n/**\n * Return the correlation ID from the current `LogixiaContext`, or `undefined`\n * when called outside any context scope.\n */\nexport function getCurrentCorrelationId(): string | undefined {\n const ctx = LogixiaContext.get();\n return ctx?.correlationId as string | undefined;\n}\n\n/**\n * Run `callback` inside a correlation context scope.\n *\n * If a correlation ID is not provided, a new UUID is generated.\n *\n * @example\n * ```ts\n * await withCorrelationId('cid-abc', async () => {\n * logger.info('Processing message'); // → { correlationId: 'cid-abc', ... }\n * await callDownstream(); // correlationFetch() picks up cid-abc\n * });\n * ```\n */\nexport function withCorrelationId<T>(correlationId: string | undefined, callback: () => T): T {\n const id = correlationId ?? generateCorrelationId();\n return LogixiaContext.run({ correlationId: id }, callback);\n}\n\n// ── Express / Connect middleware ──────────────────────────────────────────────\n\n/**\n * Express-compatible middleware that:\n * 1. Reads `X-Correlation-ID` from the incoming request (or generates a new one)\n * 2. Wraps the request in a `LogixiaContext` so all loggers in the handler\n * automatically include `correlationId`\n * 3. Writes the correlation ID back to the response header (opt-out via options)\n *\n * @example\n * ```ts\n * import { correlationMiddleware } from 'logixia/correlation';\n * app.use(correlationMiddleware());\n * ```\n */\nexport function correlationMiddleware(options: CorrelationMiddlewareOptions = {}) {\n const {\n header = 'x-correlation-id',\n originServiceHeader = 'x-origin-service',\n generate = generateCorrelationId,\n trustIncoming = true,\n setResponseHeader = true,\n } = options;\n\n return function logixiaCorrelationMiddleware(\n req: Record<string, unknown>,\n res: Record<string, unknown>,\n next: () => void\n ): void {\n const headers = (req['headers'] ?? {}) as Record<string, string | undefined>;\n\n // Node lower-cases incoming header names, so look up with lower-cased keys.\n const incomingId = trustIncoming ? validIncomingId(headers[header.toLowerCase()]) : undefined;\n const correlationId = incomingId ?? generate();\n const originService = headers[originServiceHeader.toLowerCase()];\n\n if (setResponseHeader) {\n const setHeader = res['setHeader'] as ((name: string, value: string) => void) | undefined;\n if (typeof setHeader === 'function') {\n setHeader.call(res, header, correlationId);\n }\n }\n\n const ctx: CorrelationContext = {\n correlationId,\n ...(originService !== undefined ? { originService } : {}),\n };\n\n LogixiaContext.run(ctx, next);\n };\n}\n\n// ── Fastify hook ──────────────────────────────────────────────────────────────\n\n/**\n * Fastify `onRequest` lifecycle hook — same functionality as `correlationMiddleware`\n * but adapted to Fastify's hook API.\n *\n * @example\n * ```ts\n * import { correlationFastifyHook } from 'logixia/correlation';\n * fastify.addHook('onRequest', correlationFastifyHook());\n * ```\n */\nexport function correlationFastifyHook(options: CorrelationMiddlewareOptions = {}) {\n const {\n header = 'x-correlation-id',\n originServiceHeader = 'x-origin-service',\n generate = generateCorrelationId,\n trustIncoming = true,\n setResponseHeader = true,\n } = options;\n\n return function logixiaCorrelationFastifyHook(\n request: Record<string, unknown>,\n reply: Record<string, unknown>,\n done: () => void\n ): void {\n const headers = (request['headers'] ?? {}) as Record<string, string | undefined>;\n\n // Node lower-cases incoming header names, so look up with lower-cased keys.\n const incomingId = trustIncoming ? validIncomingId(headers[header.toLowerCase()]) : undefined;\n const correlationId = incomingId ?? generate();\n const originService = headers[originServiceHeader.toLowerCase()];\n\n if (setResponseHeader) {\n const replyHeader = reply['header'] as ((name: string, value: string) => void) | undefined;\n if (typeof replyHeader === 'function') {\n replyHeader.call(reply, header, correlationId);\n }\n }\n\n const ctx: CorrelationContext = {\n correlationId,\n ...(originService !== undefined ? { originService } : {}),\n };\n\n LogixiaContext.run(ctx, done);\n };\n}\n\n// ── Outbound fetch wrapper ────────────────────────────────────────────────────\n\n/**\n * A drop-in replacement for `fetch` that automatically injects the current\n * `correlationId` from `LogixiaContext` as an `X-Correlation-ID` request header.\n *\n * Falls back to the global `fetch` when no correlation context is active.\n *\n * @example\n * ```ts\n * import { correlationFetch } from 'logixia/correlation';\n *\n * // Inside a request handler with correlationMiddleware active:\n * const response = await correlationFetch('https://payments.internal/v1/charge', {\n * method: 'POST',\n * body: JSON.stringify({ amount: 100 }),\n * });\n * ```\n */\nexport async function correlationFetch(\n input: string | URL | Request,\n init: RequestInit = {},\n options: { header?: string } = {}\n): Promise<Response> {\n const header = options.header ?? 'x-correlation-id';\n const correlationId = getCurrentCorrelationId();\n\n // `init.headers` can be a plain object, a `Headers` instance, or an array of\n // `[name, value]` tuples. Spreading it into a plain object loses everything\n // but the object form: a `Headers` instance has no own enumerable properties,\n // and an array spread yields numeric indices. `Headers` accepts all three, is\n // case-insensitive, and is the shape `fetch` expects back.\n //\n // A `Request` carries headers of its own, and `fetch(request, { headers })`\n // replaces them rather than merging them, so they are seeded first and the\n // caller's `init.headers` is applied on top. Without this, accepting a\n // `Request` here would drop its headers, which is the same defect one input\n // shape over.\n const headers = new Headers(input instanceof Request ? input.headers : undefined);\n for (const [name, value] of new Headers(init.headers)) {\n headers.set(name, value);\n }\n if (correlationId && !headers.has(header)) {\n headers.set(header, correlationId);\n }\n\n return globalThis.fetch(input, { ...init, headers });\n}\n\n// ── Axios interceptor factory ─────────────────────────────────────────────────\n\n/**\n * Returns an axios request interceptor that automatically injects the current\n * correlation ID into outgoing axios requests.\n *\n * @example\n * ```ts\n * import axios from 'axios';\n * import { createCorrelationAxiosInterceptor } from 'logixia/correlation';\n *\n * axios.interceptors.request.use(createCorrelationAxiosInterceptor());\n * ```\n */\nexport function createCorrelationAxiosInterceptor(\n options: { header?: string } = {}\n): (config: Record<string, unknown>) => Record<string, unknown> {\n const header = options.header ?? 'x-correlation-id';\n\n return function correlationAxiosInterceptor(\n config: Record<string, unknown>\n ): Record<string, unknown> {\n const correlationId = getCurrentCorrelationId();\n if (!correlationId) return config;\n\n const headers = (config['headers'] ?? {}) as Record<string, unknown>;\n if (!headers[header]) {\n headers[header] = correlationId;\n }\n\n return { ...config, headers };\n };\n}\n\n// ── Child logger from request ─────────────────────────────────────────────────\n\n/**\n * Create a child logger enriched with all correlation-relevant identifiers\n * extracted from the incoming HTTP request.\n *\n * The child logger's every call automatically includes:\n * `correlationId`, `requestId`, `method`, `url`, `userAgent`, `ip`\n *\n * @example\n * ```ts\n * import { childFromRequest } from 'logixia/correlation';\n * import { logger } from 'logixia';\n *\n * app.use((req, res, next) => {\n * req.logger = childFromRequest(req, logger);\n * next();\n * });\n *\n * app.get('/orders', (req, res) => {\n * req.logger.info('Listing orders'); // → correlationId, requestId, method, url ...\n * });\n * ```\n */\nexport function childFromRequest<TLogger extends { child(ctx: Record<string, unknown>): TLogger }>(\n req: Record<string, unknown>,\n logger: TLogger,\n options: { correlationHeader?: string } = {}\n): TLogger {\n const correlationHeader = options.correlationHeader ?? 'x-correlation-id';\n\n const headers = (req['headers'] ?? {}) as Record<string, string | undefined>;\n // Node lower-cases incoming header names, so look up with a lower-cased key.\n const correlationId =\n validIncomingId(headers[correlationHeader.toLowerCase()]) ??\n getCurrentCorrelationId() ??\n generateCorrelationId();\n\n const method = req['method'] as string | undefined;\n const url = (req['url'] as string | undefined) ?? (req['originalUrl'] as string | undefined);\n const userAgent = headers['user-agent'];\n const ip =\n (headers['x-forwarded-for'] as string | undefined)?.split(',')[0]?.trim() ??\n ((req['socket'] as Record<string, unknown> | undefined)?.['remoteAddress'] as\n string | undefined);\n\n return logger.child({\n correlationId,\n ...(method !== undefined ? { method } : {}),\n ...(url !== undefined ? { url } : {}),\n ...(userAgent !== undefined ? { userAgent } : {}),\n ...(ip !== undefined ? { ip } : {}),\n });\n}\n\n// ── Message queue helpers ─────────────────────────────────────────────────────\n\n/**\n * Extract a correlation context from a Kafka / RabbitMQ / SQS message object.\n *\n * Looks for `correlationId`, `correlation_id`, or `x-correlation-id` in\n * `message.headers` (Kafka) or `message.MessageAttributes` (SQS).\n *\n * @example Kafka consumer\n * ```ts\n * import { extractMessageCorrelationId, withCorrelationId } from 'logixia/correlation';\n *\n * consumer.run({\n * eachMessage: async ({ message }) => {\n * const correlationId = extractMessageCorrelationId(message);\n * await withCorrelationId(correlationId, () => processMessage(message));\n * },\n * });\n * ```\n */\nexport function extractMessageCorrelationId(message: Record<string, unknown>): string | undefined {\n // Kafka: message.headers is Record<string, Buffer | string>\n const kafkaHeaders = message['headers'] as Record<string, Buffer | string> | undefined;\n if (kafkaHeaders) {\n const raw =\n kafkaHeaders['x-correlation-id'] ??\n kafkaHeaders['correlationId'] ??\n kafkaHeaders['correlation_id'];\n if (raw !== undefined) {\n return Buffer.isBuffer(raw) ? raw.toString('utf8') : String(raw);\n }\n }\n\n // SQS: message.MessageAttributes\n const sqsAttrs = message['MessageAttributes'] as\n Record<string, { StringValue?: string }> | undefined;\n if (sqsAttrs) {\n return (\n sqsAttrs['x-correlation-id']?.StringValue ??\n sqsAttrs['correlationId']?.StringValue ??\n sqsAttrs['correlation_id']?.StringValue\n );\n }\n\n // AMQP / generic envelope\n return (\n (message['correlationId'] as string | undefined) ??\n (message['correlation_id'] as string | undefined)\n );\n}\n\n/**\n * Build Kafka message headers containing the current correlation context.\n *\n * @example\n * ```ts\n * import { buildKafkaCorrelationHeaders } from 'logixia/correlation';\n *\n * await producer.send({\n * topic: 'orders',\n * messages: [{ value: JSON.stringify(order), headers: buildKafkaCorrelationHeaders() }],\n * });\n * ```\n */\nexport function buildKafkaCorrelationHeaders(): Record<string, string> {\n const ctx = LogixiaContext.get();\n const headers: Record<string, string> = {};\n\n const correlationId = ctx?.correlationId as string | undefined;\n if (correlationId) headers['x-correlation-id'] = correlationId;\n\n const traceId = ctx?.traceId as string | undefined;\n if (traceId) headers['x-trace-id'] = traceId;\n\n return headers;\n}\n"],"mappings":"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"}
@@ -67,10 +67,10 @@ function withCorrelationId(correlationId, callback) {
67
67
  * ```
68
68
  */
69
69
  function correlationMiddleware(options = {}) {
70
- const { header = "x-correlation-id", originServiceHeader = "x-origin-service", generate = generateCorrelationId, setResponseHeader = true } = options;
70
+ const { header = "x-correlation-id", originServiceHeader = "x-origin-service", generate = generateCorrelationId, trustIncoming = true, setResponseHeader = true } = options;
71
71
  return function logixiaCorrelationMiddleware(req, res, next) {
72
72
  const headers = req["headers"] ?? {};
73
- const correlationId = validIncomingId(headers[header.toLowerCase()]) ?? generate();
73
+ const correlationId = (trustIncoming ? validIncomingId(headers[header.toLowerCase()]) : void 0) ?? generate();
74
74
  const originService = headers[originServiceHeader.toLowerCase()];
75
75
  if (setResponseHeader) {
76
76
  const setHeader = res["setHeader"];
@@ -94,10 +94,10 @@ function correlationMiddleware(options = {}) {
94
94
  * ```
95
95
  */
96
96
  function correlationFastifyHook(options = {}) {
97
- const { header = "x-correlation-id", originServiceHeader = "x-origin-service", generate = generateCorrelationId, setResponseHeader = true } = options;
97
+ const { header = "x-correlation-id", originServiceHeader = "x-origin-service", generate = generateCorrelationId, trustIncoming = true, setResponseHeader = true } = options;
98
98
  return function logixiaCorrelationFastifyHook(request, reply, done) {
99
99
  const headers = request["headers"] ?? {};
100
- const correlationId = validIncomingId(headers[header.toLowerCase()]) ?? generate();
100
+ const correlationId = (trustIncoming ? validIncomingId(headers[header.toLowerCase()]) : void 0) ?? generate();
101
101
  const originService = headers[originServiceHeader.toLowerCase()];
102
102
  if (setResponseHeader) {
103
103
  const replyHeader = reply["header"];
@@ -1 +1 @@
1
- {"version":3,"file":"correlation.mjs","names":["ctx: CorrelationContext","headers: Record<string, string>"],"sources":["../src/correlation.ts"],"sourcesContent":["/**\n * logixia — Microservices Correlation ID Propagation\n *\n * Provides zero-boilerplate correlation ID generation and propagation for\n * distributed systems. A single correlation ID travels through every service\n * in a request fan-out, making it trivial to join logs across services.\n *\n * Features:\n * - UUID v4 correlation ID generation (via `crypto.randomUUID()`)\n * - Express / Fastify / NestJS incoming-request middleware\n * - `correlationFetch()` — wraps global `fetch`, auto-injects `X-Correlation-ID`\n * - `createCorrelationAxiosInterceptor()` — axios request interceptor\n * - `childFromRequest(req, logger)` — child logger with all request identifiers\n * - Kafka / SQS / RabbitMQ message context helpers\n * - Integration with `LogixiaContext` (AsyncLocalStorage) so every `logger.info()`\n * call automatically includes the correlationId without per-call passing.\n *\n * @example Express middleware\n * ```ts\n * import { correlationMiddleware } from 'logixia/correlation';\n * import { logger } from 'logixia';\n *\n * app.use(correlationMiddleware());\n *\n * app.get('/orders', (req, res) => {\n * // correlationId is automatically in every log inside this request\n * logger.info('Listing orders');\n * res.json({ ok: true });\n * });\n * ```\n *\n * @example Outbound fetch with correlation\n * ```ts\n * import { correlationFetch } from 'logixia/correlation';\n *\n * // Reads correlationId from current LogixiaContext and injects it as header\n * const data = await correlationFetch('https://payments.internal/charge', {\n * method: 'POST',\n * body: JSON.stringify({ amount: 100 }),\n * });\n * ```\n *\n * @example Manual correlation context\n * ```ts\n * import { withCorrelationId } from 'logixia/correlation';\n *\n * await withCorrelationId('trace-abc-123', async () => {\n * // All logs and outbound fetch calls in here carry 'trace-abc-123'\n * await processOrder();\n * });\n * ```\n */\n\nimport { randomUUID } from 'node:crypto';\n\nimport { LogixiaContext } from './context/async-context';\n\n// ── Types ─────────────────────────────────────────────────────────────────────\n\n/** Fields injected into the log context by the correlation middleware. */\nexport interface CorrelationContext {\n correlationId: string;\n traceId?: string;\n /** Service that originated the request (from `X-Origin-Service` header). */\n originService?: string;\n /** Index signature so CorrelationContext is assignable to LogContext. */\n [key: string]: unknown;\n}\n\nexport interface CorrelationMiddlewareOptions {\n /**\n * HTTP header to read/write the correlation ID from/to.\n * @default 'x-correlation-id'\n */\n header?: string;\n /**\n * HTTP header for the originating service name.\n * @default 'x-origin-service'\n */\n originServiceHeader?: string;\n /**\n * Function to generate a new correlation ID when none is present in the request.\n * @default () => crypto.randomUUID()\n */\n generate?: () => string;\n /**\n * When `true`, the response will include the correlation ID header so\n * clients can log it client-side.\n * @default true\n */\n setResponseHeader?: boolean;\n}\n\n// ── ID generation ─────────────────────────────────────────────────────────────\n\n/**\n * Generate a new correlation ID using `crypto.randomUUID()` (available in\n * Node.js 14.17+, all modern browsers, and Edge runtimes).\n *\n * When the Web Crypto global is unavailable (e.g. Node 18 without\n * `--experimental-global-webcrypto`), fall back to `node:crypto`'s\n * `randomUUID`, which returns a proper UUID v4 — matching the shape this\n * function's JSDoc and README promise. `logixia/correlation` is Node-only\n * (it builds on `AsyncLocalStorage`), so importing `node:crypto` is safe here.\n */\nexport function generateCorrelationId(): string {\n if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {\n return crypto.randomUUID();\n }\n return randomUUID();\n}\n\nconst MAX_INCOMING_ID_LENGTH = 128;\nconst VALID_INCOMING_ID = /^[A-Za-z0-9._:-]+$/;\n\n/**\n * Return an incoming correlation ID only if it is short and made of safe\n * characters. Anything else (over-long, empty, or containing newlines or other\n * control characters) is dropped so the caller generates a fresh ID instead of\n * writing client-supplied text into every log line.\n */\nfunction validIncomingId(value: string | undefined): string | undefined {\n if (value === undefined || value.length > MAX_INCOMING_ID_LENGTH) return undefined;\n return VALID_INCOMING_ID.test(value) ? value : undefined;\n}\n\n// ── Context helpers ───────────────────────────────────────────────────────────\n\n/**\n * Return the correlation ID from the current `LogixiaContext`, or `undefined`\n * when called outside any context scope.\n */\nexport function getCurrentCorrelationId(): string | undefined {\n const ctx = LogixiaContext.get();\n return ctx?.correlationId as string | undefined;\n}\n\n/**\n * Run `callback` inside a correlation context scope.\n *\n * If a correlation ID is not provided, a new UUID is generated.\n *\n * @example\n * ```ts\n * await withCorrelationId('cid-abc', async () => {\n * logger.info('Processing message'); // → { correlationId: 'cid-abc', ... }\n * await callDownstream(); // correlationFetch() picks up cid-abc\n * });\n * ```\n */\nexport function withCorrelationId<T>(correlationId: string | undefined, callback: () => T): T {\n const id = correlationId ?? generateCorrelationId();\n return LogixiaContext.run({ correlationId: id }, callback);\n}\n\n// ── Express / Connect middleware ──────────────────────────────────────────────\n\n/**\n * Express-compatible middleware that:\n * 1. Reads `X-Correlation-ID` from the incoming request (or generates a new one)\n * 2. Wraps the request in a `LogixiaContext` so all loggers in the handler\n * automatically include `correlationId`\n * 3. Writes the correlation ID back to the response header (opt-out via options)\n *\n * @example\n * ```ts\n * import { correlationMiddleware } from 'logixia/correlation';\n * app.use(correlationMiddleware());\n * ```\n */\nexport function correlationMiddleware(options: CorrelationMiddlewareOptions = {}) {\n const {\n header = 'x-correlation-id',\n originServiceHeader = 'x-origin-service',\n generate = generateCorrelationId,\n setResponseHeader = true,\n } = options;\n\n return function logixiaCorrelationMiddleware(\n req: Record<string, unknown>,\n res: Record<string, unknown>,\n next: () => void\n ): void {\n const headers = (req['headers'] ?? {}) as Record<string, string | undefined>;\n\n // Node lower-cases incoming header names, so look up with lower-cased keys.\n const correlationId = validIncomingId(headers[header.toLowerCase()]) ?? generate();\n const originService = headers[originServiceHeader.toLowerCase()];\n\n if (setResponseHeader) {\n const setHeader = res['setHeader'] as ((name: string, value: string) => void) | undefined;\n if (typeof setHeader === 'function') {\n setHeader.call(res, header, correlationId);\n }\n }\n\n const ctx: CorrelationContext = {\n correlationId,\n ...(originService !== undefined ? { originService } : {}),\n };\n\n LogixiaContext.run(ctx, next);\n };\n}\n\n// ── Fastify hook ──────────────────────────────────────────────────────────────\n\n/**\n * Fastify `onRequest` lifecycle hook — same functionality as `correlationMiddleware`\n * but adapted to Fastify's hook API.\n *\n * @example\n * ```ts\n * import { correlationFastifyHook } from 'logixia/correlation';\n * fastify.addHook('onRequest', correlationFastifyHook());\n * ```\n */\nexport function correlationFastifyHook(options: CorrelationMiddlewareOptions = {}) {\n const {\n header = 'x-correlation-id',\n originServiceHeader = 'x-origin-service',\n generate = generateCorrelationId,\n setResponseHeader = true,\n } = options;\n\n return function logixiaCorrelationFastifyHook(\n request: Record<string, unknown>,\n reply: Record<string, unknown>,\n done: () => void\n ): void {\n const headers = (request['headers'] ?? {}) as Record<string, string | undefined>;\n\n // Node lower-cases incoming header names, so look up with lower-cased keys.\n const correlationId = validIncomingId(headers[header.toLowerCase()]) ?? generate();\n const originService = headers[originServiceHeader.toLowerCase()];\n\n if (setResponseHeader) {\n const replyHeader = reply['header'] as ((name: string, value: string) => void) | undefined;\n if (typeof replyHeader === 'function') {\n replyHeader.call(reply, header, correlationId);\n }\n }\n\n const ctx: CorrelationContext = {\n correlationId,\n ...(originService !== undefined ? { originService } : {}),\n };\n\n LogixiaContext.run(ctx, done);\n };\n}\n\n// ── Outbound fetch wrapper ────────────────────────────────────────────────────\n\n/**\n * A drop-in replacement for `fetch` that automatically injects the current\n * `correlationId` from `LogixiaContext` as an `X-Correlation-ID` request header.\n *\n * Falls back to the global `fetch` when no correlation context is active.\n *\n * @example\n * ```ts\n * import { correlationFetch } from 'logixia/correlation';\n *\n * // Inside a request handler with correlationMiddleware active:\n * const response = await correlationFetch('https://payments.internal/v1/charge', {\n * method: 'POST',\n * body: JSON.stringify({ amount: 100 }),\n * });\n * ```\n */\nexport async function correlationFetch(\n input: string | URL | Request,\n init: RequestInit = {},\n options: { header?: string } = {}\n): Promise<Response> {\n const header = options.header ?? 'x-correlation-id';\n const correlationId = getCurrentCorrelationId();\n\n // `init.headers` can be a plain object, a `Headers` instance, or an array of\n // `[name, value]` tuples. Spreading it into a plain object loses everything\n // but the object form: a `Headers` instance has no own enumerable properties,\n // and an array spread yields numeric indices. `Headers` accepts all three, is\n // case-insensitive, and is the shape `fetch` expects back.\n //\n // A `Request` carries headers of its own, and `fetch(request, { headers })`\n // replaces them rather than merging them, so they are seeded first and the\n // caller's `init.headers` is applied on top. Without this, accepting a\n // `Request` here would drop its headers, which is the same defect one input\n // shape over.\n const headers = new Headers(input instanceof Request ? input.headers : undefined);\n for (const [name, value] of new Headers(init.headers)) {\n headers.set(name, value);\n }\n if (correlationId && !headers.has(header)) {\n headers.set(header, correlationId);\n }\n\n return globalThis.fetch(input, { ...init, headers });\n}\n\n// ── Axios interceptor factory ─────────────────────────────────────────────────\n\n/**\n * Returns an axios request interceptor that automatically injects the current\n * correlation ID into outgoing axios requests.\n *\n * @example\n * ```ts\n * import axios from 'axios';\n * import { createCorrelationAxiosInterceptor } from 'logixia/correlation';\n *\n * axios.interceptors.request.use(createCorrelationAxiosInterceptor());\n * ```\n */\nexport function createCorrelationAxiosInterceptor(\n options: { header?: string } = {}\n): (config: Record<string, unknown>) => Record<string, unknown> {\n const header = options.header ?? 'x-correlation-id';\n\n return function correlationAxiosInterceptor(\n config: Record<string, unknown>\n ): Record<string, unknown> {\n const correlationId = getCurrentCorrelationId();\n if (!correlationId) return config;\n\n const headers = (config['headers'] ?? {}) as Record<string, unknown>;\n if (!headers[header]) {\n headers[header] = correlationId;\n }\n\n return { ...config, headers };\n };\n}\n\n// ── Child logger from request ─────────────────────────────────────────────────\n\n/**\n * Create a child logger enriched with all correlation-relevant identifiers\n * extracted from the incoming HTTP request.\n *\n * The child logger's every call automatically includes:\n * `correlationId`, `requestId`, `method`, `url`, `userAgent`, `ip`\n *\n * @example\n * ```ts\n * import { childFromRequest } from 'logixia/correlation';\n * import { logger } from 'logixia';\n *\n * app.use((req, res, next) => {\n * req.logger = childFromRequest(req, logger);\n * next();\n * });\n *\n * app.get('/orders', (req, res) => {\n * req.logger.info('Listing orders'); // → correlationId, requestId, method, url ...\n * });\n * ```\n */\nexport function childFromRequest<TLogger extends { child(ctx: Record<string, unknown>): TLogger }>(\n req: Record<string, unknown>,\n logger: TLogger,\n options: { correlationHeader?: string } = {}\n): TLogger {\n const correlationHeader = options.correlationHeader ?? 'x-correlation-id';\n\n const headers = (req['headers'] ?? {}) as Record<string, string | undefined>;\n // Node lower-cases incoming header names, so look up with a lower-cased key.\n const correlationId =\n validIncomingId(headers[correlationHeader.toLowerCase()]) ??\n getCurrentCorrelationId() ??\n generateCorrelationId();\n\n const method = req['method'] as string | undefined;\n const url = (req['url'] as string | undefined) ?? (req['originalUrl'] as string | undefined);\n const userAgent = headers['user-agent'];\n const ip =\n (headers['x-forwarded-for'] as string | undefined)?.split(',')[0]?.trim() ??\n ((req['socket'] as Record<string, unknown> | undefined)?.['remoteAddress'] as\n string | undefined);\n\n return logger.child({\n correlationId,\n ...(method !== undefined ? { method } : {}),\n ...(url !== undefined ? { url } : {}),\n ...(userAgent !== undefined ? { userAgent } : {}),\n ...(ip !== undefined ? { ip } : {}),\n });\n}\n\n// ── Message queue helpers ─────────────────────────────────────────────────────\n\n/**\n * Extract a correlation context from a Kafka / RabbitMQ / SQS message object.\n *\n * Looks for `correlationId`, `correlation_id`, or `x-correlation-id` in\n * `message.headers` (Kafka) or `message.MessageAttributes` (SQS).\n *\n * @example Kafka consumer\n * ```ts\n * import { extractMessageCorrelationId, withCorrelationId } from 'logixia/correlation';\n *\n * consumer.run({\n * eachMessage: async ({ message }) => {\n * const correlationId = extractMessageCorrelationId(message);\n * await withCorrelationId(correlationId, () => processMessage(message));\n * },\n * });\n * ```\n */\nexport function extractMessageCorrelationId(message: Record<string, unknown>): string | undefined {\n // Kafka: message.headers is Record<string, Buffer | string>\n const kafkaHeaders = message['headers'] as Record<string, Buffer | string> | undefined;\n if (kafkaHeaders) {\n const raw =\n kafkaHeaders['x-correlation-id'] ??\n kafkaHeaders['correlationId'] ??\n kafkaHeaders['correlation_id'];\n if (raw !== undefined) {\n return Buffer.isBuffer(raw) ? raw.toString('utf8') : String(raw);\n }\n }\n\n // SQS: message.MessageAttributes\n const sqsAttrs = message['MessageAttributes'] as\n Record<string, { StringValue?: string }> | undefined;\n if (sqsAttrs) {\n return (\n sqsAttrs['x-correlation-id']?.StringValue ??\n sqsAttrs['correlationId']?.StringValue ??\n sqsAttrs['correlation_id']?.StringValue\n );\n }\n\n // AMQP / generic envelope\n return (\n (message['correlationId'] as string | undefined) ??\n (message['correlation_id'] as string | undefined)\n );\n}\n\n/**\n * Build Kafka message headers containing the current correlation context.\n *\n * @example\n * ```ts\n * import { buildKafkaCorrelationHeaders } from 'logixia/correlation';\n *\n * await producer.send({\n * topic: 'orders',\n * messages: [{ value: JSON.stringify(order), headers: buildKafkaCorrelationHeaders() }],\n * });\n * ```\n */\nexport function buildKafkaCorrelationHeaders(): Record<string, string> {\n const ctx = LogixiaContext.get();\n const headers: Record<string, string> = {};\n\n const correlationId = ctx?.correlationId as string | undefined;\n if (correlationId) headers['x-correlation-id'] = correlationId;\n\n const traceId = ctx?.traceId as string | undefined;\n if (traceId) headers['x-trace-id'] = traceId;\n\n return headers;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"correlation.mjs","names":["ctx: CorrelationContext","headers: Record<string, string>"],"sources":["../src/correlation.ts"],"sourcesContent":["/**\n * logixia — Microservices Correlation ID Propagation\n *\n * Provides zero-boilerplate correlation ID generation and propagation for\n * distributed systems. A single correlation ID travels through every service\n * in a request fan-out, making it trivial to join logs across services.\n *\n * Features:\n * - UUID v4 correlation ID generation (via `crypto.randomUUID()`)\n * - Express / Fastify / NestJS incoming-request middleware\n * - `correlationFetch()` — wraps global `fetch`, auto-injects `X-Correlation-ID`\n * - `createCorrelationAxiosInterceptor()` — axios request interceptor\n * - `childFromRequest(req, logger)` — child logger with all request identifiers\n * - Kafka / SQS / RabbitMQ message context helpers\n * - Integration with `LogixiaContext` (AsyncLocalStorage) so every `logger.info()`\n * call automatically includes the correlationId without per-call passing.\n *\n * @example Express middleware\n * ```ts\n * import { correlationMiddleware } from 'logixia/correlation';\n * import { logger } from 'logixia';\n *\n * app.use(correlationMiddleware());\n *\n * app.get('/orders', (req, res) => {\n * // correlationId is automatically in every log inside this request\n * logger.info('Listing orders');\n * res.json({ ok: true });\n * });\n * ```\n *\n * @example Outbound fetch with correlation\n * ```ts\n * import { correlationFetch } from 'logixia/correlation';\n *\n * // Reads correlationId from current LogixiaContext and injects it as header\n * const data = await correlationFetch('https://payments.internal/charge', {\n * method: 'POST',\n * body: JSON.stringify({ amount: 100 }),\n * });\n * ```\n *\n * @example Manual correlation context\n * ```ts\n * import { withCorrelationId } from 'logixia/correlation';\n *\n * await withCorrelationId('trace-abc-123', async () => {\n * // All logs and outbound fetch calls in here carry 'trace-abc-123'\n * await processOrder();\n * });\n * ```\n */\n\nimport { randomUUID } from 'node:crypto';\n\nimport { LogixiaContext } from './context/async-context';\n\n// ── Types ─────────────────────────────────────────────────────────────────────\n\n/** Fields injected into the log context by the correlation middleware. */\nexport interface CorrelationContext {\n correlationId: string;\n traceId?: string;\n /** Service that originated the request (from `X-Origin-Service` header). */\n originService?: string;\n /** Index signature so CorrelationContext is assignable to LogContext. */\n [key: string]: unknown;\n}\n\nexport interface CorrelationMiddlewareOptions {\n /**\n * HTTP header to read/write the correlation ID from/to.\n * @default 'x-correlation-id'\n */\n header?: string;\n /**\n * HTTP header for the originating service name.\n * @default 'x-origin-service'\n */\n originServiceHeader?: string;\n /**\n * Function to generate a new correlation ID when none is present in the request.\n * @default () => crypto.randomUUID()\n */\n generate?: () => string;\n /**\n * When `false`, the incoming correlation header is ignored and a new ID is\n * always generated. Use this at the edge when client-supplied IDs should not\n * be trusted.\n * @default true\n */\n trustIncoming?: boolean;\n /**\n * When `true`, the response will include the correlation ID header so\n * clients can log it client-side.\n * @default true\n */\n setResponseHeader?: boolean;\n}\n\n// ── ID generation ─────────────────────────────────────────────────────────────\n\n/**\n * Generate a new correlation ID using `crypto.randomUUID()` (available in\n * Node.js 14.17+, all modern browsers, and Edge runtimes).\n *\n * When the Web Crypto global is unavailable (e.g. Node 18 without\n * `--experimental-global-webcrypto`), fall back to `node:crypto`'s\n * `randomUUID`, which returns a proper UUID v4 — matching the shape this\n * function's JSDoc and README promise. `logixia/correlation` is Node-only\n * (it builds on `AsyncLocalStorage`), so importing `node:crypto` is safe here.\n */\nexport function generateCorrelationId(): string {\n if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {\n return crypto.randomUUID();\n }\n return randomUUID();\n}\n\nconst MAX_INCOMING_ID_LENGTH = 128;\nconst VALID_INCOMING_ID = /^[A-Za-z0-9._:-]+$/;\n\n/**\n * Return an incoming correlation ID only if it is short and made of safe\n * characters. Anything else (over-long, empty, or containing newlines or other\n * control characters) is dropped so the caller generates a fresh ID instead of\n * writing client-supplied text into every log line.\n */\nfunction validIncomingId(value: string | undefined): string | undefined {\n if (value === undefined || value.length > MAX_INCOMING_ID_LENGTH) return undefined;\n return VALID_INCOMING_ID.test(value) ? value : undefined;\n}\n\n// ── Context helpers ───────────────────────────────────────────────────────────\n\n/**\n * Return the correlation ID from the current `LogixiaContext`, or `undefined`\n * when called outside any context scope.\n */\nexport function getCurrentCorrelationId(): string | undefined {\n const ctx = LogixiaContext.get();\n return ctx?.correlationId as string | undefined;\n}\n\n/**\n * Run `callback` inside a correlation context scope.\n *\n * If a correlation ID is not provided, a new UUID is generated.\n *\n * @example\n * ```ts\n * await withCorrelationId('cid-abc', async () => {\n * logger.info('Processing message'); // → { correlationId: 'cid-abc', ... }\n * await callDownstream(); // correlationFetch() picks up cid-abc\n * });\n * ```\n */\nexport function withCorrelationId<T>(correlationId: string | undefined, callback: () => T): T {\n const id = correlationId ?? generateCorrelationId();\n return LogixiaContext.run({ correlationId: id }, callback);\n}\n\n// ── Express / Connect middleware ──────────────────────────────────────────────\n\n/**\n * Express-compatible middleware that:\n * 1. Reads `X-Correlation-ID` from the incoming request (or generates a new one)\n * 2. Wraps the request in a `LogixiaContext` so all loggers in the handler\n * automatically include `correlationId`\n * 3. Writes the correlation ID back to the response header (opt-out via options)\n *\n * @example\n * ```ts\n * import { correlationMiddleware } from 'logixia/correlation';\n * app.use(correlationMiddleware());\n * ```\n */\nexport function correlationMiddleware(options: CorrelationMiddlewareOptions = {}) {\n const {\n header = 'x-correlation-id',\n originServiceHeader = 'x-origin-service',\n generate = generateCorrelationId,\n trustIncoming = true,\n setResponseHeader = true,\n } = options;\n\n return function logixiaCorrelationMiddleware(\n req: Record<string, unknown>,\n res: Record<string, unknown>,\n next: () => void\n ): void {\n const headers = (req['headers'] ?? {}) as Record<string, string | undefined>;\n\n // Node lower-cases incoming header names, so look up with lower-cased keys.\n const incomingId = trustIncoming ? validIncomingId(headers[header.toLowerCase()]) : undefined;\n const correlationId = incomingId ?? generate();\n const originService = headers[originServiceHeader.toLowerCase()];\n\n if (setResponseHeader) {\n const setHeader = res['setHeader'] as ((name: string, value: string) => void) | undefined;\n if (typeof setHeader === 'function') {\n setHeader.call(res, header, correlationId);\n }\n }\n\n const ctx: CorrelationContext = {\n correlationId,\n ...(originService !== undefined ? { originService } : {}),\n };\n\n LogixiaContext.run(ctx, next);\n };\n}\n\n// ── Fastify hook ──────────────────────────────────────────────────────────────\n\n/**\n * Fastify `onRequest` lifecycle hook — same functionality as `correlationMiddleware`\n * but adapted to Fastify's hook API.\n *\n * @example\n * ```ts\n * import { correlationFastifyHook } from 'logixia/correlation';\n * fastify.addHook('onRequest', correlationFastifyHook());\n * ```\n */\nexport function correlationFastifyHook(options: CorrelationMiddlewareOptions = {}) {\n const {\n header = 'x-correlation-id',\n originServiceHeader = 'x-origin-service',\n generate = generateCorrelationId,\n trustIncoming = true,\n setResponseHeader = true,\n } = options;\n\n return function logixiaCorrelationFastifyHook(\n request: Record<string, unknown>,\n reply: Record<string, unknown>,\n done: () => void\n ): void {\n const headers = (request['headers'] ?? {}) as Record<string, string | undefined>;\n\n // Node lower-cases incoming header names, so look up with lower-cased keys.\n const incomingId = trustIncoming ? validIncomingId(headers[header.toLowerCase()]) : undefined;\n const correlationId = incomingId ?? generate();\n const originService = headers[originServiceHeader.toLowerCase()];\n\n if (setResponseHeader) {\n const replyHeader = reply['header'] as ((name: string, value: string) => void) | undefined;\n if (typeof replyHeader === 'function') {\n replyHeader.call(reply, header, correlationId);\n }\n }\n\n const ctx: CorrelationContext = {\n correlationId,\n ...(originService !== undefined ? { originService } : {}),\n };\n\n LogixiaContext.run(ctx, done);\n };\n}\n\n// ── Outbound fetch wrapper ────────────────────────────────────────────────────\n\n/**\n * A drop-in replacement for `fetch` that automatically injects the current\n * `correlationId` from `LogixiaContext` as an `X-Correlation-ID` request header.\n *\n * Falls back to the global `fetch` when no correlation context is active.\n *\n * @example\n * ```ts\n * import { correlationFetch } from 'logixia/correlation';\n *\n * // Inside a request handler with correlationMiddleware active:\n * const response = await correlationFetch('https://payments.internal/v1/charge', {\n * method: 'POST',\n * body: JSON.stringify({ amount: 100 }),\n * });\n * ```\n */\nexport async function correlationFetch(\n input: string | URL | Request,\n init: RequestInit = {},\n options: { header?: string } = {}\n): Promise<Response> {\n const header = options.header ?? 'x-correlation-id';\n const correlationId = getCurrentCorrelationId();\n\n // `init.headers` can be a plain object, a `Headers` instance, or an array of\n // `[name, value]` tuples. Spreading it into a plain object loses everything\n // but the object form: a `Headers` instance has no own enumerable properties,\n // and an array spread yields numeric indices. `Headers` accepts all three, is\n // case-insensitive, and is the shape `fetch` expects back.\n //\n // A `Request` carries headers of its own, and `fetch(request, { headers })`\n // replaces them rather than merging them, so they are seeded first and the\n // caller's `init.headers` is applied on top. Without this, accepting a\n // `Request` here would drop its headers, which is the same defect one input\n // shape over.\n const headers = new Headers(input instanceof Request ? input.headers : undefined);\n for (const [name, value] of new Headers(init.headers)) {\n headers.set(name, value);\n }\n if (correlationId && !headers.has(header)) {\n headers.set(header, correlationId);\n }\n\n return globalThis.fetch(input, { ...init, headers });\n}\n\n// ── Axios interceptor factory ─────────────────────────────────────────────────\n\n/**\n * Returns an axios request interceptor that automatically injects the current\n * correlation ID into outgoing axios requests.\n *\n * @example\n * ```ts\n * import axios from 'axios';\n * import { createCorrelationAxiosInterceptor } from 'logixia/correlation';\n *\n * axios.interceptors.request.use(createCorrelationAxiosInterceptor());\n * ```\n */\nexport function createCorrelationAxiosInterceptor(\n options: { header?: string } = {}\n): (config: Record<string, unknown>) => Record<string, unknown> {\n const header = options.header ?? 'x-correlation-id';\n\n return function correlationAxiosInterceptor(\n config: Record<string, unknown>\n ): Record<string, unknown> {\n const correlationId = getCurrentCorrelationId();\n if (!correlationId) return config;\n\n const headers = (config['headers'] ?? {}) as Record<string, unknown>;\n if (!headers[header]) {\n headers[header] = correlationId;\n }\n\n return { ...config, headers };\n };\n}\n\n// ── Child logger from request ─────────────────────────────────────────────────\n\n/**\n * Create a child logger enriched with all correlation-relevant identifiers\n * extracted from the incoming HTTP request.\n *\n * The child logger's every call automatically includes:\n * `correlationId`, `requestId`, `method`, `url`, `userAgent`, `ip`\n *\n * @example\n * ```ts\n * import { childFromRequest } from 'logixia/correlation';\n * import { logger } from 'logixia';\n *\n * app.use((req, res, next) => {\n * req.logger = childFromRequest(req, logger);\n * next();\n * });\n *\n * app.get('/orders', (req, res) => {\n * req.logger.info('Listing orders'); // → correlationId, requestId, method, url ...\n * });\n * ```\n */\nexport function childFromRequest<TLogger extends { child(ctx: Record<string, unknown>): TLogger }>(\n req: Record<string, unknown>,\n logger: TLogger,\n options: { correlationHeader?: string } = {}\n): TLogger {\n const correlationHeader = options.correlationHeader ?? 'x-correlation-id';\n\n const headers = (req['headers'] ?? {}) as Record<string, string | undefined>;\n // Node lower-cases incoming header names, so look up with a lower-cased key.\n const correlationId =\n validIncomingId(headers[correlationHeader.toLowerCase()]) ??\n getCurrentCorrelationId() ??\n generateCorrelationId();\n\n const method = req['method'] as string | undefined;\n const url = (req['url'] as string | undefined) ?? (req['originalUrl'] as string | undefined);\n const userAgent = headers['user-agent'];\n const ip =\n (headers['x-forwarded-for'] as string | undefined)?.split(',')[0]?.trim() ??\n ((req['socket'] as Record<string, unknown> | undefined)?.['remoteAddress'] as\n string | undefined);\n\n return logger.child({\n correlationId,\n ...(method !== undefined ? { method } : {}),\n ...(url !== undefined ? { url } : {}),\n ...(userAgent !== undefined ? { userAgent } : {}),\n ...(ip !== undefined ? { ip } : {}),\n });\n}\n\n// ── Message queue helpers ─────────────────────────────────────────────────────\n\n/**\n * Extract a correlation context from a Kafka / RabbitMQ / SQS message object.\n *\n * Looks for `correlationId`, `correlation_id`, or `x-correlation-id` in\n * `message.headers` (Kafka) or `message.MessageAttributes` (SQS).\n *\n * @example Kafka consumer\n * ```ts\n * import { extractMessageCorrelationId, withCorrelationId } from 'logixia/correlation';\n *\n * consumer.run({\n * eachMessage: async ({ message }) => {\n * const correlationId = extractMessageCorrelationId(message);\n * await withCorrelationId(correlationId, () => processMessage(message));\n * },\n * });\n * ```\n */\nexport function extractMessageCorrelationId(message: Record<string, unknown>): string | undefined {\n // Kafka: message.headers is Record<string, Buffer | string>\n const kafkaHeaders = message['headers'] as Record<string, Buffer | string> | undefined;\n if (kafkaHeaders) {\n const raw =\n kafkaHeaders['x-correlation-id'] ??\n kafkaHeaders['correlationId'] ??\n kafkaHeaders['correlation_id'];\n if (raw !== undefined) {\n return Buffer.isBuffer(raw) ? raw.toString('utf8') : String(raw);\n }\n }\n\n // SQS: message.MessageAttributes\n const sqsAttrs = message['MessageAttributes'] as\n Record<string, { StringValue?: string }> | undefined;\n if (sqsAttrs) {\n return (\n sqsAttrs['x-correlation-id']?.StringValue ??\n sqsAttrs['correlationId']?.StringValue ??\n sqsAttrs['correlation_id']?.StringValue\n );\n }\n\n // AMQP / generic envelope\n return (\n (message['correlationId'] as string | undefined) ??\n (message['correlation_id'] as string | undefined)\n );\n}\n\n/**\n * Build Kafka message headers containing the current correlation context.\n *\n * @example\n * ```ts\n * import { buildKafkaCorrelationHeaders } from 'logixia/correlation';\n *\n * await producer.send({\n * topic: 'orders',\n * messages: [{ value: JSON.stringify(order), headers: buildKafkaCorrelationHeaders() }],\n * });\n * ```\n */\nexport function buildKafkaCorrelationHeaders(): Record<string, string> {\n const ctx = LogixiaContext.get();\n const headers: Record<string, string> = {};\n\n const correlationId = ctx?.correlationId as string | undefined;\n if (correlationId) headers['x-correlation-id'] = correlationId;\n\n const traceId = ctx?.traceId as string | undefined;\n if (traceId) headers['x-trace-id'] = traceId;\n\n return headers;\n}\n"],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { p as TransportLogEntry, s as IAsyncTransport } from "./transport.types-B5vcyv2k.mjs";
2
2
  import { A as HttpResponse, C as RequestContext, D as TraceIdExtractorConfig, E as TraceIdConfig, M as RequestTiming, O as HttpError, S as RedactConfig, T as TimingEntry, _ as LogLevel, a as DEFAULT_LOG_LEVELS, b as LoggerWithLevels, c as ExtractLevels, d as ILogFormatter, f as ILogger, g as LogFieldKey, h as LogEntry, i as DEFAULT_LOG_COLORS, j as RequestMetrics, k as HttpRequest, l as GracefulShutdownConfig, m as LogColor, n as ContextData, o as Environment, p as ILoggerDefault, r as CustomLevelMethods, s as ErrorSerializationOptions, t as AdaptiveSamplingConfig, u as IBaseLogger, v as LogLevelString, w as SamplingConfig, x as NamespaceLevels, y as LoggerConfig } from "./index-BPKwwERo.mjs";
3
- import { _ as usePlugin, a as LogixiaLoggerModule, c as KafkaTraceInterceptor, d as LogixiaServiceWithLevels, f as LogixiaLogger, g as globalPluginRegistry, h as PluginRegistry, i as LogixiaAsyncOptions, l as LogixiaLoggerService, m as LogixiaPlugin, n as LOGIXIA_LOGGER_PREFIX, o as LogixiaOptionsFactory, p as createLogger$1, r as LOGIXIA_TRACE_CONFIG, s as WebSocketTraceInterceptor, t as LOGIXIA_LOGGER_CONFIG, u as LogixiaServiceWith } from "./logitron-logger.module-zDKVd_o0.mjs";
3
+ import { _ as usePlugin, a as LogixiaLoggerModule, c as KafkaTraceInterceptor, d as LogixiaServiceWithLevels, f as LogixiaLogger, g as globalPluginRegistry, h as PluginRegistry, i as LogixiaAsyncOptions, l as LogixiaLoggerService, m as LogixiaPlugin, n as LOGIXIA_LOGGER_PREFIX, o as LogixiaOptionsFactory, p as createLogger$1, r as LOGIXIA_TRACE_CONFIG, s as WebSocketTraceInterceptor, t as LOGIXIA_LOGGER_CONFIG, u as LogixiaServiceWith } from "./logitron-logger.module-BdG1Jnpk.mjs";
4
4
  import { A as SearchStats, C as SearchFilters, D as SearchPreset, E as SearchOptions, F as SuggestionType, I as TimeRange, L as TimelineEvent, M as SemanticIndex, N as SimilarLog, O as SearchQuery, P as SortField, S as RelativeTime, T as SearchMatch, _ as ParsedNLQuery, a as ILogSearchEngine, b as RelatedLog, c as SearchManager, d as CorrelatedLogs, f as EntityType, g as LogPattern, h as LogCorrelationSummary, i as BasicSearchEngine, j as SearchSuggestion, k as SearchResult, l as SearchManagerConfig, m as LogCluster, n as NLPSearchEngine, o as BasicLogIndexer, p as ExportOptions, r as CorrelationEngine, s as ILogIndexer, t as PatternRecognitionEngine, u as AnomalyDetection, v as QueryEntity, w as SearchHighlight, x as RelationshipType, y as QueryIntent } from "./search-CQOo-Iq6.mjs";
5
5
  import { IncomingMessage, ServerResponse } from "node:http";
6
6
  import { AsyncLocalStorage } from "node:async_hooks";
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { p as TransportLogEntry, s as IAsyncTransport } from "./transport.types-BuY84TwO.js";
2
2
  import { A as HttpResponse, C as RequestContext, D as TraceIdExtractorConfig, E as TraceIdConfig, M as RequestTiming, O as HttpError, S as RedactConfig, T as TimingEntry, _ as LogLevel, a as DEFAULT_LOG_LEVELS, b as LoggerWithLevels, c as ExtractLevels, d as ILogFormatter, f as ILogger, g as LogFieldKey, h as LogEntry, i as DEFAULT_LOG_COLORS, j as RequestMetrics, k as HttpRequest, l as GracefulShutdownConfig, m as LogColor, n as ContextData, o as Environment, p as ILoggerDefault, r as CustomLevelMethods, s as ErrorSerializationOptions, t as AdaptiveSamplingConfig, u as IBaseLogger, v as LogLevelString, w as SamplingConfig, x as NamespaceLevels, y as LoggerConfig } from "./index-C1X-TE5I.js";
3
- import { _ as usePlugin, a as LogixiaLoggerModule, c as KafkaTraceInterceptor, d as LogixiaServiceWithLevels, f as LogixiaLogger, g as globalPluginRegistry, h as PluginRegistry, i as LogixiaAsyncOptions, l as LogixiaLoggerService, m as LogixiaPlugin, n as LOGIXIA_LOGGER_PREFIX, o as LogixiaOptionsFactory, p as createLogger$1, r as LOGIXIA_TRACE_CONFIG, s as WebSocketTraceInterceptor, t as LOGIXIA_LOGGER_CONFIG, u as LogixiaServiceWith } from "./logitron-logger.module-CxT1F6Cm.js";
3
+ import { _ as usePlugin, a as LogixiaLoggerModule, c as KafkaTraceInterceptor, d as LogixiaServiceWithLevels, f as LogixiaLogger, g as globalPluginRegistry, h as PluginRegistry, i as LogixiaAsyncOptions, l as LogixiaLoggerService, m as LogixiaPlugin, n as LOGIXIA_LOGGER_PREFIX, o as LogixiaOptionsFactory, p as createLogger$1, r as LOGIXIA_TRACE_CONFIG, s as WebSocketTraceInterceptor, t as LOGIXIA_LOGGER_CONFIG, u as LogixiaServiceWith } from "./logitron-logger.module-CbXy2gfW.js";
4
4
  import { A as SearchStats, C as SearchFilters, D as SearchPreset, E as SearchOptions, F as SuggestionType, I as TimeRange, L as TimelineEvent, M as SemanticIndex, N as SimilarLog, O as SearchQuery, P as SortField, S as RelativeTime, T as SearchMatch, _ as ParsedNLQuery, a as ILogSearchEngine, b as RelatedLog, c as SearchManager, d as CorrelatedLogs, f as EntityType, g as LogPattern, h as LogCorrelationSummary, i as BasicSearchEngine, j as SearchSuggestion, k as SearchResult, l as SearchManagerConfig, m as LogCluster, n as NLPSearchEngine, o as BasicLogIndexer, p as ExportOptions, r as CorrelationEngine, s as ILogIndexer, t as PatternRecognitionEngine, u as AnomalyDetection, v as QueryEntity, w as SearchHighlight, x as RelationshipType, y as QueryIntent } from "./search-DujhR94O.js";
5
5
  import { ArgumentsHost, ExceptionFilter } from "@nestjs/common";
6
6
  import { AsyncLocalStorage } from "node:async_hooks";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/core/nestjs-extras.ts","../src/formatters/json.formatter.ts","../src/formatters/text.formatter.ts","../src/utils/error.utils.ts","../src/utils/otel.ts","../src/utils/redact.utils.ts","../src/utils/runtime-control.ts","../src/utils/safe-stringify.ts","../src/utils/shutdown.utils.ts","../src/utils/trace.utils.ts","../src/utils/typed-logger.ts","../src/wide-events.ts","../src/transports/otlp.transport.ts","../src/context/async-context.ts","../src/utils/sampling.utils.ts","../src/exceptions/types.ts","../src/exceptions/builder.ts","../src/exceptions/exception.ts","../src/metrics.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/core/nestjs-extras.ts","../src/formatters/json.formatter.ts","../src/formatters/text.formatter.ts","../src/utils/error.utils.ts","../src/utils/otel.ts","../src/utils/redact.utils.ts","../src/utils/runtime-control.ts","../src/utils/safe-stringify.ts","../src/utils/shutdown.utils.ts","../src/utils/trace.utils.ts","../src/utils/typed-logger.ts","../src/wide-events.ts","../src/transports/otlp.transport.ts","../src/context/async-context.ts","../src/utils/sampling.utils.ts","../src/exceptions/types.ts","../src/exceptions/builder.ts","../src/exceptions/exception.ts","../src/metrics.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
@@ -558,7 +558,7 @@ declare class LogixiaLoggerModule implements NestModule {
558
558
  inject: string[];
559
559
  useValue?: never;
560
560
  })[];
561
- exports: (string | typeof WebSocketTraceInterceptor | typeof KafkaTraceInterceptor | typeof LogixiaLoggerService)[];
561
+ exports: (string | typeof WebSocketTraceInterceptor | typeof LogixiaLoggerService | typeof KafkaTraceInterceptor)[];
562
562
  global: boolean;
563
563
  };
564
564
  /**
@@ -595,7 +595,7 @@ declare class LogixiaLoggerModule implements NestModule {
595
595
  useFactory: (traceConfig: TraceIdConfig | undefined) => WebSocketTraceInterceptor;
596
596
  inject: string[];
597
597
  })[];
598
- exports: (string | typeof WebSocketTraceInterceptor | typeof KafkaTraceInterceptor | typeof LogixiaLoggerService)[];
598
+ exports: (string | typeof WebSocketTraceInterceptor | typeof LogixiaLoggerService | typeof KafkaTraceInterceptor)[];
599
599
  global: boolean;
600
600
  };
601
601
  /**
@@ -615,4 +615,4 @@ declare class LogixiaLoggerModule implements NestModule {
615
615
  }
616
616
  //#endregion
617
617
  export { usePlugin as _, LogixiaLoggerModule as a, KafkaTraceInterceptor as c, LogixiaServiceWithLevels as d, LogixiaLogger as f, globalPluginRegistry as g, PluginRegistry as h, LogixiaAsyncOptions as i, LogixiaLoggerService as l, LogixiaPlugin as m, LOGIXIA_LOGGER_PREFIX as n, LogixiaOptionsFactory as o, createLogger as p, LOGIXIA_TRACE_CONFIG as r, WebSocketTraceInterceptor as s, LOGIXIA_LOGGER_CONFIG as t, LogixiaServiceWith as u };
618
- //# sourceMappingURL=logitron-logger.module-zDKVd_o0.d.mts.map
618
+ //# sourceMappingURL=logitron-logger.module-BdG1Jnpk.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logitron-logger.module-zDKVd_o0.d.mts","names":[],"sources":["../src/plugin.ts","../src/core/logitron-logger.ts","../src/core/logitron-nestjs.service.ts","../src/core/kafka-trace.interceptor.ts","../src/core/websocket-trace.interceptor.ts","../src/core/logitron-logger.module.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"logitron-logger.module-BdG1Jnpk.d.mts","names":[],"sources":["../src/plugin.ts","../src/core/logitron-logger.ts","../src/core/logitron-nestjs.service.ts","../src/core/kafka-trace.interceptor.ts","../src/core/websocket-trace.interceptor.ts","../src/core/logitron-logger.module.ts"],"sourcesContent":[],"mappings":"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"}
@@ -558,7 +558,7 @@ declare class LogixiaLoggerModule implements NestModule {
558
558
  inject: string[];
559
559
  useValue?: never;
560
560
  })[];
561
- exports: (string | typeof WebSocketTraceInterceptor | typeof KafkaTraceInterceptor | typeof LogixiaLoggerService)[];
561
+ exports: (string | typeof WebSocketTraceInterceptor | typeof LogixiaLoggerService | typeof KafkaTraceInterceptor)[];
562
562
  global: boolean;
563
563
  };
564
564
  /**
@@ -595,7 +595,7 @@ declare class LogixiaLoggerModule implements NestModule {
595
595
  useFactory: (traceConfig: TraceIdConfig | undefined) => WebSocketTraceInterceptor;
596
596
  inject: string[];
597
597
  })[];
598
- exports: (string | typeof WebSocketTraceInterceptor | typeof KafkaTraceInterceptor | typeof LogixiaLoggerService)[];
598
+ exports: (string | typeof WebSocketTraceInterceptor | typeof LogixiaLoggerService | typeof KafkaTraceInterceptor)[];
599
599
  global: boolean;
600
600
  };
601
601
  /**
@@ -615,4 +615,4 @@ declare class LogixiaLoggerModule implements NestModule {
615
615
  }
616
616
  //#endregion
617
617
  export { usePlugin as _, LogixiaLoggerModule as a, KafkaTraceInterceptor as c, LogixiaServiceWithLevels as d, LogixiaLogger as f, globalPluginRegistry as g, PluginRegistry as h, LogixiaAsyncOptions as i, LogixiaLoggerService as l, LogixiaPlugin as m, LOGIXIA_LOGGER_PREFIX as n, LogixiaOptionsFactory as o, createLogger as p, LOGIXIA_TRACE_CONFIG as r, WebSocketTraceInterceptor as s, LOGIXIA_LOGGER_CONFIG as t, LogixiaServiceWith as u };
618
- //# sourceMappingURL=logitron-logger.module-CxT1F6Cm.d.ts.map
618
+ //# sourceMappingURL=logitron-logger.module-CbXy2gfW.d.ts.map