@drarzter/kafka-client 0.10.0 → 0.11.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.
Files changed (57) hide show
  1. package/README.md +70 -2
  2. package/dist/{chunk-CMO7SMVK.mjs → chunk-OR7TPAAE.mjs} +110 -164
  3. package/dist/chunk-OR7TPAAE.mjs.map +1 -0
  4. package/dist/chunk-PQVBRDNV.mjs +149 -0
  5. package/dist/chunk-PQVBRDNV.mjs.map +1 -0
  6. package/dist/cli/index.js +115 -51
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/cli/index.mjs +2 -1
  9. package/dist/cli/index.mjs.map +1 -1
  10. package/dist/client/kafka.client/consumer/features/delayed.d.ts.map +1 -1
  11. package/dist/client/kafka.client/consumer/features/dlq-replay.d.ts +1 -1
  12. package/dist/client/kafka.client/consumer/features/dlq-replay.d.ts.map +1 -1
  13. package/dist/client/kafka.client/consumer/features/snapshot.d.ts.map +1 -1
  14. package/dist/client/kafka.client/consumer/handler.d.ts +16 -2
  15. package/dist/client/kafka.client/consumer/handler.d.ts.map +1 -1
  16. package/dist/client/kafka.client/consumer/ops.d.ts +13 -0
  17. package/dist/client/kafka.client/consumer/ops.d.ts.map +1 -1
  18. package/dist/client/kafka.client/consumer/pipeline.d.ts +14 -13
  19. package/dist/client/kafka.client/consumer/pipeline.d.ts.map +1 -1
  20. package/dist/client/kafka.client/consumer/retry-topic.d.ts +4 -1
  21. package/dist/client/kafka.client/consumer/retry-topic.d.ts.map +1 -1
  22. package/dist/client/kafka.client/consumer/setup.d.ts +3 -0
  23. package/dist/client/kafka.client/consumer/setup.d.ts.map +1 -1
  24. package/dist/client/kafka.client/consumer/start.d.ts.map +1 -1
  25. package/dist/client/kafka.client/context.d.ts +3 -0
  26. package/dist/client/kafka.client/context.d.ts.map +1 -1
  27. package/dist/client/kafka.client/index.d.ts.map +1 -1
  28. package/dist/client/kafka.client/producer/ops.d.ts +12 -3
  29. package/dist/client/kafka.client/producer/ops.d.ts.map +1 -1
  30. package/dist/client/kafka.client/producer/send.d.ts +1 -1
  31. package/dist/client/message/schema-registry.d.ts +23 -4
  32. package/dist/client/message/schema-registry.d.ts.map +1 -1
  33. package/dist/client/message/serde.d.ts +68 -0
  34. package/dist/client/message/serde.d.ts.map +1 -0
  35. package/dist/client/message/topic.d.ts +25 -4
  36. package/dist/client/message/topic.d.ts.map +1 -1
  37. package/dist/client/transport/transport.interface.d.ts +6 -1
  38. package/dist/client/transport/transport.interface.d.ts.map +1 -1
  39. package/dist/client/types/config.types.d.ts +17 -0
  40. package/dist/client/types/config.types.d.ts.map +1 -1
  41. package/dist/core.d.ts +3 -0
  42. package/dist/core.d.ts.map +1 -1
  43. package/dist/core.js +146 -55
  44. package/dist/core.js.map +1 -1
  45. package/dist/core.mjs +9 -3
  46. package/dist/index.js +146 -55
  47. package/dist/index.js.map +1 -1
  48. package/dist/index.mjs +9 -3
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/serde.d.ts +157 -0
  51. package/dist/serde.d.ts.map +1 -0
  52. package/dist/serde.js +308 -0
  53. package/dist/serde.js.map +1 -0
  54. package/dist/serde.mjs +158 -0
  55. package/dist/serde.mjs.map +1 -0
  56. package/package.json +20 -1
  57. package/dist/chunk-CMO7SMVK.mjs.map +0 -1
@@ -2,7 +2,8 @@
2
2
  import {
3
3
  ConfluentTransport,
4
4
  KafkaClient
5
- } from "../chunk-CMO7SMVK.mjs";
5
+ } from "../chunk-OR7TPAAE.mjs";
6
+ import "../chunk-PQVBRDNV.mjs";
6
7
  import "../chunk-EQQGB2QZ.mjs";
7
8
 
8
9
  // src/cli/dlq.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/dlq.ts","../../src/cli/index.ts"],"sourcesContent":["import type { EventEnvelope } from \"../core\";\nimport type { DlqReplayOptions } from \"../core\";\n\n// ── Parsed command shapes ─────────────────────────────────────────────────────\n\n/** DLQ topic suffix — the CLI operates on `<topic>.dlq`. */\nexport const DLQ_SUFFIX = \".dlq\";\n\n/** `ls` — list DLQ topics with message counts. */\nexport interface LsCommand {\n command: \"ls\";\n brokers: string[];\n /** Optional topic-name prefix filter (matched against the base topic). */\n prefix?: string;\n}\n\n/** `peek` — print the first N messages of `<topic>.dlq`. */\nexport interface PeekCommand {\n command: \"peek\";\n brokers: string[];\n /** Base topic name — the CLI reads from `<topic>.dlq`. */\n topic: string;\n /** Maximum number of messages to print. Default: 10. */\n limit: number;\n}\n\n/** `replay` — re-publish `<topic>.dlq` messages via `KafkaClient.replayDlq`. */\nexport interface ReplayCommand {\n command: \"replay\";\n brokers: string[];\n /** Base topic name — the CLI replays `<topic>.dlq`. */\n topic: string;\n /** Override destination topic (default: read from `x-dlq-original-topic`). */\n target?: string;\n /** Log what would be replayed without publishing. */\n dryRun: boolean;\n /**\n * `true` → full replay of all DLQ messages on every call (ephemeral group).\n * `false` → incremental — only messages since the previous replay (stable group).\n */\n fromBeginning: boolean;\n}\n\n/** `help` — print usage. */\nexport interface HelpCommand {\n command: \"help\";\n}\n\n/** Discriminated union of every parsed CLI invocation. */\nexport type ParsedCommand = LsCommand | PeekCommand | ReplayCommand | HelpCommand;\n\n/** Thrown by `parseArgs` when the argv is invalid. Carries the usage text. */\nexport class DlqUsageError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"DlqUsageError\";\n }\n}\n\n// ── Usage text ────────────────────────────────────────────────────────────────\n\nexport const USAGE = `kafka-client-dlq — dead-letter queue operations\n\nUsage:\n kafka-client-dlq ls --brokers <b1,b2> [--prefix <name>]\n kafka-client-dlq peek --brokers <b1,b2> --topic <name> [--limit <n>]\n kafka-client-dlq replay --brokers <b1,b2> --topic <name> [--target <t>] [--dry-run] [--from-beginning | --incremental]\n\nCommands:\n ls List DLQ topics (ending in .dlq) with per-topic message counts.\n peek Print up to N messages from <topic>.dlq (offset, x-dlq-* headers, value).\n replay Re-publish <topic>.dlq messages to their original topic (or --target).\n\nOptions:\n --brokers <list> Comma-separated broker addresses (required). e.g. localhost:9092\n --prefix <name> ls: only show DLQ topics whose base name starts with <name>.\n --topic <name> peek/replay: base topic name (the CLI uses <name>.dlq).\n --limit <n> peek: max messages to print (default 10).\n --target <t> replay: override destination topic.\n --dry-run replay: log without publishing.\n --from-beginning replay: full replay every call (default).\n --incremental replay: only messages added since the previous replay.\n -h, --help Show this help.\n\nExamples:\n kafka-client-dlq ls --brokers localhost:9092\n kafka-client-dlq ls --brokers localhost:9092 --prefix orders\n kafka-client-dlq peek --brokers localhost:9092 --topic orders.created --limit 5\n kafka-client-dlq replay --brokers localhost:9092 --topic orders.created --dry-run\n kafka-client-dlq replay --brokers localhost:9092 --topic orders.created --target orders.manual --incremental\n`;\n\n// ── Argument parsing ────────────────────────────────────────────────────────────\n\n/** Flags that take a value (`--flag value`). */\nconst VALUE_FLAGS = new Set([\n \"--brokers\",\n \"--prefix\",\n \"--topic\",\n \"--limit\",\n \"--target\",\n]);\n/** Boolean flags (no value). */\nconst BOOL_FLAGS = new Set([\"--dry-run\", \"--from-beginning\", \"--incremental\"]);\n\ninterface RawFlags {\n values: Record<string, string>;\n bools: Set<string>;\n}\n\n/** Split the flag portion of argv into value flags and boolean flags. */\nfunction parseFlags(args: string[]): RawFlags {\n const values: Record<string, string> = {};\n const bools = new Set<string>();\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (!arg.startsWith(\"--\")) {\n throw new DlqUsageError(`Unexpected argument: \"${arg}\"`);\n }\n if (VALUE_FLAGS.has(arg)) {\n const value = args[i + 1];\n if (value === undefined || value.startsWith(\"--\")) {\n throw new DlqUsageError(`Flag \"${arg}\" requires a value.`);\n }\n values[arg] = value;\n i++; // consume the value\n } else if (BOOL_FLAGS.has(arg)) {\n bools.add(arg);\n } else {\n throw new DlqUsageError(`Unknown flag: \"${arg}\"`);\n }\n }\n\n return { values, bools };\n}\n\n/** Parse comma-separated brokers, requiring at least one non-empty entry. */\nfunction requireBrokers(flags: RawFlags): string[] {\n const raw = flags.values[\"--brokers\"];\n if (raw === undefined) {\n throw new DlqUsageError(\"Missing required flag: --brokers\");\n }\n const brokers = raw\n .split(\",\")\n .map((b) => b.trim())\n .filter((b) => b.length > 0);\n if (brokers.length === 0) {\n throw new DlqUsageError(\"--brokers must list at least one broker address.\");\n }\n return brokers;\n}\n\nfunction requireTopic(flags: RawFlags): string {\n const topic = flags.values[\"--topic\"];\n if (topic === undefined || topic.length === 0) {\n throw new DlqUsageError(\"Missing required flag: --topic\");\n }\n return topic;\n}\n\n/**\n * Parse the process argv (already sliced past `node <script>`) into a\n * `ParsedCommand`. Pure and synchronous — no I/O — so it is fully unit-testable.\n *\n * @throws {DlqUsageError} on unknown commands, missing/invalid flags.\n */\nexport function parseArgs(argv: string[]): ParsedCommand {\n const [command, ...rest] = argv;\n\n if (\n command === undefined ||\n command === \"-h\" ||\n command === \"--help\" ||\n command === \"help\"\n ) {\n return { command: \"help\" };\n }\n\n switch (command) {\n case \"ls\": {\n const flags = parseFlags(rest);\n const brokers = requireBrokers(flags);\n const prefix = flags.values[\"--prefix\"];\n return { command: \"ls\", brokers, prefix };\n }\n case \"peek\": {\n const flags = parseFlags(rest);\n const brokers = requireBrokers(flags);\n const topic = requireTopic(flags);\n const limit = parseLimit(flags.values[\"--limit\"]);\n return { command: \"peek\", brokers, topic, limit };\n }\n case \"replay\": {\n const flags = parseFlags(rest);\n const brokers = requireBrokers(flags);\n const topic = requireTopic(flags);\n const target = flags.values[\"--target\"];\n const dryRun = flags.bools.has(\"--dry-run\");\n if (\n flags.bools.has(\"--from-beginning\") &&\n flags.bools.has(\"--incremental\")\n ) {\n throw new DlqUsageError(\n \"--from-beginning and --incremental are mutually exclusive.\",\n );\n }\n // Default is full replay (fromBeginning: true); --incremental opts out.\n const fromBeginning = !flags.bools.has(\"--incremental\");\n return { command: \"replay\", brokers, topic, target, dryRun, fromBeginning };\n }\n default:\n throw new DlqUsageError(`Unknown command: \"${command}\"`);\n }\n}\n\nfunction parseLimit(raw: string | undefined): number {\n if (raw === undefined) return 10;\n const n = Number(raw);\n if (!Number.isInteger(n) || n <= 0) {\n throw new DlqUsageError(`--limit must be a positive integer, got \"${raw}\".`);\n }\n return n;\n}\n\n// ── Runtime deps (injected — tests pass a fake) ──────────────────────────────────\n\n/** Per-partition low/high watermarks for a topic. */\nexport interface PartitionWatermarks {\n partition: number;\n low: string;\n high: string;\n}\n\n/**\n * Minimal client surface the CLI needs. The production factory backs this with\n * a real `KafkaClient` plus its transport admin; tests inject a fake.\n */\nexport interface DlqCliClient {\n /** List all topics visible to the broker (via `checkStatus`). */\n listTopics(): Promise<string[]>;\n /** Per-partition low/high watermarks for a single topic. */\n fetchTopicOffsets(topic: string): Promise<PartitionWatermarks[]>;\n /** Read up to `limit` messages from `dlqTopic`, from the earliest offset. */\n peekMessages(\n dlqTopic: string,\n limit: number,\n ): Promise<Array<EventEnvelope<unknown>>>;\n /** Delegate to `KafkaClient.replayDlq`. */\n replayDlq(\n topic: string,\n options: DlqReplayOptions,\n ): Promise<{ replayed: number; skipped: number }>;\n /** Release all connections. */\n close(): Promise<void>;\n}\n\n/** Injected dependencies for `runDlqCommand`. */\nexport interface RunDeps {\n /** Build a connected client for the given brokers. */\n createClient(brokers: string[]): DlqCliClient | Promise<DlqCliClient>;\n /** Sink for human-readable output. Defaults are wired by the bin entrypoint. */\n out: (line: string) => void;\n}\n\n// ── Result shapes (returned so the entrypoint / tests can assert) ────────────────\n\nexport interface DlqTopicCount {\n /** The `<name>.dlq` topic. */\n dlqTopic: string;\n /** The base topic (`dlqTopic` without the `.dlq` suffix). */\n baseTopic: string;\n /** Sum over partitions of (high − low). */\n count: number;\n}\n\nexport type RunResult =\n | { command: \"ls\"; topics: DlqTopicCount[] }\n | { command: \"peek\"; printed: number }\n | { command: \"replay\"; replayed: number; skipped: number; dryRun: boolean }\n | { command: \"help\" };\n\n// ── Command runner ───────────────────────────────────────────────────────────\n\n/** Sum (high − low) across a topic's partitions. Negative widths clamp to 0. */\nexport function countFromWatermarks(watermarks: PartitionWatermarks[]): number {\n let total = 0;\n for (const { low, high } of watermarks) {\n const width = Number(high) - Number(low);\n total += width > 0 ? width : 0;\n }\n return total;\n}\n\n/** Truncate a value for display, appending an ellipsis marker when cut. */\nexport function truncate(value: string, max = 200): string {\n if (value.length <= max) return value;\n return `${value.slice(0, max)}… (${value.length} chars)`;\n}\n\n/**\n * Execute a parsed command against injected deps.\n * Returns a structured result; all human-readable output goes through `deps.out`.\n * The client is always closed in a `finally` block.\n */\nexport async function runDlqCommand(\n cmd: ParsedCommand,\n deps: RunDeps,\n): Promise<RunResult> {\n if (cmd.command === \"help\") {\n deps.out(USAGE);\n return { command: \"help\" };\n }\n\n const client = await deps.createClient(cmd.brokers);\n try {\n switch (cmd.command) {\n case \"ls\":\n return await runLs(cmd, client, deps);\n case \"peek\":\n return await runPeek(cmd, client, deps);\n case \"replay\":\n return await runReplay(cmd, client, deps);\n }\n } finally {\n await client.close();\n }\n}\n\nasync function runLs(\n cmd: LsCommand,\n client: DlqCliClient,\n deps: RunDeps,\n): Promise<RunResult> {\n const allTopics = await client.listTopics();\n let dlqTopics = allTopics.filter((t) => t.endsWith(DLQ_SUFFIX));\n if (cmd.prefix) {\n const prefix = cmd.prefix;\n dlqTopics = dlqTopics.filter((t) =>\n t.slice(0, -DLQ_SUFFIX.length).startsWith(prefix),\n );\n }\n dlqTopics.sort();\n\n const counts: DlqTopicCount[] = [];\n for (const dlqTopic of dlqTopics) {\n const watermarks = await client.fetchTopicOffsets(dlqTopic);\n counts.push({\n dlqTopic,\n baseTopic: dlqTopic.slice(0, -DLQ_SUFFIX.length),\n count: countFromWatermarks(watermarks),\n });\n }\n\n if (counts.length === 0) {\n deps.out(\n cmd.prefix\n ? `No DLQ topics found matching prefix \"${cmd.prefix}\".`\n : \"No DLQ topics found.\",\n );\n } else {\n const width = Math.max(...counts.map((c) => c.dlqTopic.length));\n deps.out(`${\"TOPIC\".padEnd(width)} MESSAGES`);\n for (const c of counts) {\n deps.out(`${c.dlqTopic.padEnd(width)} ${c.count}`);\n }\n const total = counts.reduce((s, c) => s + c.count, 0);\n deps.out(`${counts.length} DLQ topic(s), ${total} message(s) total.`);\n }\n\n return { command: \"ls\", topics: counts };\n}\n\nasync function runPeek(\n cmd: PeekCommand,\n client: DlqCliClient,\n deps: RunDeps,\n): Promise<RunResult> {\n const dlqTopic = `${cmd.topic}${DLQ_SUFFIX}`;\n const messages = await client.peekMessages(dlqTopic, cmd.limit);\n\n if (messages.length === 0) {\n deps.out(`No messages in ${dlqTopic}.`);\n return { command: \"peek\", printed: 0 };\n }\n\n deps.out(`Peeking up to ${cmd.limit} message(s) from ${dlqTopic}:`);\n let printed = 0;\n for (const env of messages) {\n if (printed >= cmd.limit) break;\n deps.out(\"\");\n deps.out(\n `─ offset ${env.offset} · partition ${env.partition} · ${env.timestamp}`,\n );\n const dlqHeaders = Object.entries(env.headers)\n .filter(([k]) => k.startsWith(\"x-dlq-\"))\n .sort(([a], [b]) => a.localeCompare(b));\n for (const [k, v] of dlqHeaders) {\n deps.out(` ${k}: ${truncate(String(v), 500)}`);\n }\n deps.out(` value: ${truncate(JSON.stringify(env.payload))}`);\n printed++;\n }\n\n deps.out(\"\");\n deps.out(`Printed ${printed} message(s).`);\n return { command: \"peek\", printed };\n}\n\nasync function runReplay(\n cmd: ReplayCommand,\n client: DlqCliClient,\n deps: RunDeps,\n): Promise<RunResult> {\n const options: DlqReplayOptions = {\n dryRun: cmd.dryRun,\n fromBeginning: cmd.fromBeginning,\n };\n if (cmd.target !== undefined) options.targetTopic = cmd.target;\n\n const mode = cmd.fromBeginning ? \"full\" : \"incremental\";\n const targetDesc = cmd.target ? ` → ${cmd.target}` : \" → original topic\";\n deps.out(\n `Replaying ${cmd.topic}${DLQ_SUFFIX}${targetDesc} (${mode}${\n cmd.dryRun ? \", dry-run\" : \"\"\n })…`,\n );\n\n const { replayed, skipped } = await client.replayDlq(cmd.topic, options);\n\n deps.out(\n cmd.dryRun\n ? `Dry-run: ${replayed} message(s) would be replayed, ${skipped} skipped.`\n : `Replayed ${replayed} message(s), ${skipped} skipped.`,\n );\n return { command: \"replay\", replayed, skipped, dryRun: cmd.dryRun };\n}\n","#!/usr/bin/env node\nimport { KafkaClient } from \"../core\";\nimport type { EventEnvelope } from \"../core\";\nimport { ConfluentTransport } from \"../client/transport/confluent.transport\";\nimport type { KafkaTransport } from \"../client/transport/transport.interface\";\nimport {\n DlqUsageError,\n USAGE,\n parseArgs,\n runDlqCommand,\n type DlqCliClient,\n type PartitionWatermarks,\n} from \"./dlq\";\n\n/** Unique-per-process client id so concurrent invocations don't collide. */\nconst CLIENT_ID = `dlq-cli-${process.pid}`;\nconst GROUP_ID = `${CLIENT_ID}-peek`;\n\n/**\n * Production `DlqCliClient` factory. Shares a single `ConfluentTransport`\n * between the `KafkaClient` (for `replayDlq` / `consume`) and a standalone\n * admin (for topic listing and per-partition watermarks used by `ls`).\n */\nfunction createRealClient(brokers: string[]): DlqCliClient {\n const transport: KafkaTransport = new ConfluentTransport(CLIENT_ID, brokers);\n const kafka = new KafkaClient<Record<string, Record<string, unknown>>>(\n CLIENT_ID,\n GROUP_ID,\n brokers,\n { transport, autoCreateTopics: false, strictSchemas: false },\n );\n const admin = transport.admin();\n let adminConnected = false;\n\n async function ensureAdmin() {\n if (!adminConnected) {\n await admin.connect();\n adminConnected = true;\n }\n }\n\n return {\n async listTopics(): Promise<string[]> {\n const status = await kafka.checkStatus();\n if (status.status === \"down\") {\n throw new Error(`Broker unreachable: ${status.error}`);\n }\n return status.topics;\n },\n\n async fetchTopicOffsets(topic: string): Promise<PartitionWatermarks[]> {\n await ensureAdmin();\n return admin.fetchTopicOffsets(topic);\n },\n\n async peekMessages(\n dlqTopic: string,\n limit: number,\n ): Promise<Array<EventEnvelope<unknown>>> {\n const collected: Array<EventEnvelope<unknown>> = [];\n // Ephemeral group so peeking never disturbs a real consumer's offsets.\n const iterator = kafka.consume(dlqTopic as never, {\n groupId: `${dlqTopic}.dlq-peek-${Date.now()}`,\n fromBeginning: true,\n });\n // Guard against an empty topic hanging the iterator forever: if the topic\n // has no messages, stop once the high watermark says there's nothing to read.\n await ensureAdmin();\n const watermarks = await admin.fetchTopicOffsets(dlqTopic);\n const available = watermarks.reduce(\n (sum, w) => sum + Math.max(0, Number(w.high) - Number(w.low)),\n 0,\n );\n const target = Math.min(limit, available);\n if (target === 0) {\n await iterator.return?.();\n return collected;\n }\n try {\n for await (const env of iterator) {\n collected.push(env as EventEnvelope<unknown>);\n if (collected.length >= target) break;\n }\n } finally {\n await iterator.return?.();\n }\n return collected;\n },\n\n replayDlq(topic, options) {\n return kafka.replayDlq(topic, options);\n },\n\n async close(): Promise<void> {\n if (adminConnected) {\n await admin.disconnect().catch(() => {});\n }\n await kafka.disconnect().catch(() => {});\n },\n };\n}\n\nasync function main(): Promise<number> {\n let cmd;\n try {\n cmd = parseArgs(process.argv.slice(2));\n } catch (err) {\n if (err instanceof DlqUsageError) {\n process.stderr.write(`Error: ${err.message}\\n\\n`);\n process.stderr.write(USAGE);\n return 2;\n }\n throw err;\n }\n\n try {\n await runDlqCommand(cmd, {\n createClient: createRealClient,\n out: (line) => process.stdout.write(`${line}\\n`),\n });\n return 0;\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n process.stderr.write(`Error: ${message}\\n`);\n return 1;\n }\n}\n\nmain()\n .then((code) => {\n process.exitCode = code;\n })\n .catch((err) => {\n process.stderr.write(`Fatal: ${err?.stack ?? err}\\n`);\n process.exitCode = 1;\n });\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/cli/dlq.ts","../../src/cli/index.ts"],"sourcesContent":["import type { EventEnvelope } from \"../core\";\nimport type { DlqReplayOptions } from \"../core\";\n\n// ── Parsed command shapes ─────────────────────────────────────────────────────\n\n/** DLQ topic suffix — the CLI operates on `<topic>.dlq`. */\nexport const DLQ_SUFFIX = \".dlq\";\n\n/** `ls` — list DLQ topics with message counts. */\nexport interface LsCommand {\n command: \"ls\";\n brokers: string[];\n /** Optional topic-name prefix filter (matched against the base topic). */\n prefix?: string;\n}\n\n/** `peek` — print the first N messages of `<topic>.dlq`. */\nexport interface PeekCommand {\n command: \"peek\";\n brokers: string[];\n /** Base topic name — the CLI reads from `<topic>.dlq`. */\n topic: string;\n /** Maximum number of messages to print. Default: 10. */\n limit: number;\n}\n\n/** `replay` — re-publish `<topic>.dlq` messages via `KafkaClient.replayDlq`. */\nexport interface ReplayCommand {\n command: \"replay\";\n brokers: string[];\n /** Base topic name — the CLI replays `<topic>.dlq`. */\n topic: string;\n /** Override destination topic (default: read from `x-dlq-original-topic`). */\n target?: string;\n /** Log what would be replayed without publishing. */\n dryRun: boolean;\n /**\n * `true` → full replay of all DLQ messages on every call (ephemeral group).\n * `false` → incremental — only messages since the previous replay (stable group).\n */\n fromBeginning: boolean;\n}\n\n/** `help` — print usage. */\nexport interface HelpCommand {\n command: \"help\";\n}\n\n/** Discriminated union of every parsed CLI invocation. */\nexport type ParsedCommand = LsCommand | PeekCommand | ReplayCommand | HelpCommand;\n\n/** Thrown by `parseArgs` when the argv is invalid. Carries the usage text. */\nexport class DlqUsageError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"DlqUsageError\";\n }\n}\n\n// ── Usage text ────────────────────────────────────────────────────────────────\n\nexport const USAGE = `kafka-client-dlq — dead-letter queue operations\n\nUsage:\n kafka-client-dlq ls --brokers <b1,b2> [--prefix <name>]\n kafka-client-dlq peek --brokers <b1,b2> --topic <name> [--limit <n>]\n kafka-client-dlq replay --brokers <b1,b2> --topic <name> [--target <t>] [--dry-run] [--from-beginning | --incremental]\n\nCommands:\n ls List DLQ topics (ending in .dlq) with per-topic message counts.\n peek Print up to N messages from <topic>.dlq (offset, x-dlq-* headers, value).\n replay Re-publish <topic>.dlq messages to their original topic (or --target).\n\nOptions:\n --brokers <list> Comma-separated broker addresses (required). e.g. localhost:9092\n --prefix <name> ls: only show DLQ topics whose base name starts with <name>.\n --topic <name> peek/replay: base topic name (the CLI uses <name>.dlq).\n --limit <n> peek: max messages to print (default 10).\n --target <t> replay: override destination topic.\n --dry-run replay: log without publishing.\n --from-beginning replay: full replay every call (default).\n --incremental replay: only messages added since the previous replay.\n -h, --help Show this help.\n\nExamples:\n kafka-client-dlq ls --brokers localhost:9092\n kafka-client-dlq ls --brokers localhost:9092 --prefix orders\n kafka-client-dlq peek --brokers localhost:9092 --topic orders.created --limit 5\n kafka-client-dlq replay --brokers localhost:9092 --topic orders.created --dry-run\n kafka-client-dlq replay --brokers localhost:9092 --topic orders.created --target orders.manual --incremental\n`;\n\n// ── Argument parsing ────────────────────────────────────────────────────────────\n\n/** Flags that take a value (`--flag value`). */\nconst VALUE_FLAGS = new Set([\n \"--brokers\",\n \"--prefix\",\n \"--topic\",\n \"--limit\",\n \"--target\",\n]);\n/** Boolean flags (no value). */\nconst BOOL_FLAGS = new Set([\"--dry-run\", \"--from-beginning\", \"--incremental\"]);\n\ninterface RawFlags {\n values: Record<string, string>;\n bools: Set<string>;\n}\n\n/** Split the flag portion of argv into value flags and boolean flags. */\nfunction parseFlags(args: string[]): RawFlags {\n const values: Record<string, string> = {};\n const bools = new Set<string>();\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (!arg.startsWith(\"--\")) {\n throw new DlqUsageError(`Unexpected argument: \"${arg}\"`);\n }\n if (VALUE_FLAGS.has(arg)) {\n const value = args[i + 1];\n if (value === undefined || value.startsWith(\"--\")) {\n throw new DlqUsageError(`Flag \"${arg}\" requires a value.`);\n }\n values[arg] = value;\n i++; // consume the value\n } else if (BOOL_FLAGS.has(arg)) {\n bools.add(arg);\n } else {\n throw new DlqUsageError(`Unknown flag: \"${arg}\"`);\n }\n }\n\n return { values, bools };\n}\n\n/** Parse comma-separated brokers, requiring at least one non-empty entry. */\nfunction requireBrokers(flags: RawFlags): string[] {\n const raw = flags.values[\"--brokers\"];\n if (raw === undefined) {\n throw new DlqUsageError(\"Missing required flag: --brokers\");\n }\n const brokers = raw\n .split(\",\")\n .map((b) => b.trim())\n .filter((b) => b.length > 0);\n if (brokers.length === 0) {\n throw new DlqUsageError(\"--brokers must list at least one broker address.\");\n }\n return brokers;\n}\n\nfunction requireTopic(flags: RawFlags): string {\n const topic = flags.values[\"--topic\"];\n if (topic === undefined || topic.length === 0) {\n throw new DlqUsageError(\"Missing required flag: --topic\");\n }\n return topic;\n}\n\n/**\n * Parse the process argv (already sliced past `node <script>`) into a\n * `ParsedCommand`. Pure and synchronous — no I/O — so it is fully unit-testable.\n *\n * @throws {DlqUsageError} on unknown commands, missing/invalid flags.\n */\nexport function parseArgs(argv: string[]): ParsedCommand {\n const [command, ...rest] = argv;\n\n if (\n command === undefined ||\n command === \"-h\" ||\n command === \"--help\" ||\n command === \"help\"\n ) {\n return { command: \"help\" };\n }\n\n switch (command) {\n case \"ls\": {\n const flags = parseFlags(rest);\n const brokers = requireBrokers(flags);\n const prefix = flags.values[\"--prefix\"];\n return { command: \"ls\", brokers, prefix };\n }\n case \"peek\": {\n const flags = parseFlags(rest);\n const brokers = requireBrokers(flags);\n const topic = requireTopic(flags);\n const limit = parseLimit(flags.values[\"--limit\"]);\n return { command: \"peek\", brokers, topic, limit };\n }\n case \"replay\": {\n const flags = parseFlags(rest);\n const brokers = requireBrokers(flags);\n const topic = requireTopic(flags);\n const target = flags.values[\"--target\"];\n const dryRun = flags.bools.has(\"--dry-run\");\n if (\n flags.bools.has(\"--from-beginning\") &&\n flags.bools.has(\"--incremental\")\n ) {\n throw new DlqUsageError(\n \"--from-beginning and --incremental are mutually exclusive.\",\n );\n }\n // Default is full replay (fromBeginning: true); --incremental opts out.\n const fromBeginning = !flags.bools.has(\"--incremental\");\n return { command: \"replay\", brokers, topic, target, dryRun, fromBeginning };\n }\n default:\n throw new DlqUsageError(`Unknown command: \"${command}\"`);\n }\n}\n\nfunction parseLimit(raw: string | undefined): number {\n if (raw === undefined) return 10;\n const n = Number(raw);\n if (!Number.isInteger(n) || n <= 0) {\n throw new DlqUsageError(`--limit must be a positive integer, got \"${raw}\".`);\n }\n return n;\n}\n\n// ── Runtime deps (injected — tests pass a fake) ──────────────────────────────────\n\n/** Per-partition low/high watermarks for a topic. */\nexport interface PartitionWatermarks {\n partition: number;\n low: string;\n high: string;\n}\n\n/**\n * Minimal client surface the CLI needs. The production factory backs this with\n * a real `KafkaClient` plus its transport admin; tests inject a fake.\n */\nexport interface DlqCliClient {\n /** List all topics visible to the broker (via `checkStatus`). */\n listTopics(): Promise<string[]>;\n /** Per-partition low/high watermarks for a single topic. */\n fetchTopicOffsets(topic: string): Promise<PartitionWatermarks[]>;\n /** Read up to `limit` messages from `dlqTopic`, from the earliest offset. */\n peekMessages(\n dlqTopic: string,\n limit: number,\n ): Promise<Array<EventEnvelope<unknown>>>;\n /** Delegate to `KafkaClient.replayDlq`. */\n replayDlq(\n topic: string,\n options: DlqReplayOptions,\n ): Promise<{ replayed: number; skipped: number }>;\n /** Release all connections. */\n close(): Promise<void>;\n}\n\n/** Injected dependencies for `runDlqCommand`. */\nexport interface RunDeps {\n /** Build a connected client for the given brokers. */\n createClient(brokers: string[]): DlqCliClient | Promise<DlqCliClient>;\n /** Sink for human-readable output. Defaults are wired by the bin entrypoint. */\n out: (line: string) => void;\n}\n\n// ── Result shapes (returned so the entrypoint / tests can assert) ────────────────\n\nexport interface DlqTopicCount {\n /** The `<name>.dlq` topic. */\n dlqTopic: string;\n /** The base topic (`dlqTopic` without the `.dlq` suffix). */\n baseTopic: string;\n /** Sum over partitions of (high − low). */\n count: number;\n}\n\nexport type RunResult =\n | { command: \"ls\"; topics: DlqTopicCount[] }\n | { command: \"peek\"; printed: number }\n | { command: \"replay\"; replayed: number; skipped: number; dryRun: boolean }\n | { command: \"help\" };\n\n// ── Command runner ───────────────────────────────────────────────────────────\n\n/** Sum (high − low) across a topic's partitions. Negative widths clamp to 0. */\nexport function countFromWatermarks(watermarks: PartitionWatermarks[]): number {\n let total = 0;\n for (const { low, high } of watermarks) {\n const width = Number(high) - Number(low);\n total += width > 0 ? width : 0;\n }\n return total;\n}\n\n/** Truncate a value for display, appending an ellipsis marker when cut. */\nexport function truncate(value: string, max = 200): string {\n if (value.length <= max) return value;\n return `${value.slice(0, max)}… (${value.length} chars)`;\n}\n\n/**\n * Execute a parsed command against injected deps.\n * Returns a structured result; all human-readable output goes through `deps.out`.\n * The client is always closed in a `finally` block.\n */\nexport async function runDlqCommand(\n cmd: ParsedCommand,\n deps: RunDeps,\n): Promise<RunResult> {\n if (cmd.command === \"help\") {\n deps.out(USAGE);\n return { command: \"help\" };\n }\n\n const client = await deps.createClient(cmd.brokers);\n try {\n switch (cmd.command) {\n case \"ls\":\n return await runLs(cmd, client, deps);\n case \"peek\":\n return await runPeek(cmd, client, deps);\n case \"replay\":\n return await runReplay(cmd, client, deps);\n }\n } finally {\n await client.close();\n }\n}\n\nasync function runLs(\n cmd: LsCommand,\n client: DlqCliClient,\n deps: RunDeps,\n): Promise<RunResult> {\n const allTopics = await client.listTopics();\n let dlqTopics = allTopics.filter((t) => t.endsWith(DLQ_SUFFIX));\n if (cmd.prefix) {\n const prefix = cmd.prefix;\n dlqTopics = dlqTopics.filter((t) =>\n t.slice(0, -DLQ_SUFFIX.length).startsWith(prefix),\n );\n }\n dlqTopics.sort();\n\n const counts: DlqTopicCount[] = [];\n for (const dlqTopic of dlqTopics) {\n const watermarks = await client.fetchTopicOffsets(dlqTopic);\n counts.push({\n dlqTopic,\n baseTopic: dlqTopic.slice(0, -DLQ_SUFFIX.length),\n count: countFromWatermarks(watermarks),\n });\n }\n\n if (counts.length === 0) {\n deps.out(\n cmd.prefix\n ? `No DLQ topics found matching prefix \"${cmd.prefix}\".`\n : \"No DLQ topics found.\",\n );\n } else {\n const width = Math.max(...counts.map((c) => c.dlqTopic.length));\n deps.out(`${\"TOPIC\".padEnd(width)} MESSAGES`);\n for (const c of counts) {\n deps.out(`${c.dlqTopic.padEnd(width)} ${c.count}`);\n }\n const total = counts.reduce((s, c) => s + c.count, 0);\n deps.out(`${counts.length} DLQ topic(s), ${total} message(s) total.`);\n }\n\n return { command: \"ls\", topics: counts };\n}\n\nasync function runPeek(\n cmd: PeekCommand,\n client: DlqCliClient,\n deps: RunDeps,\n): Promise<RunResult> {\n const dlqTopic = `${cmd.topic}${DLQ_SUFFIX}`;\n const messages = await client.peekMessages(dlqTopic, cmd.limit);\n\n if (messages.length === 0) {\n deps.out(`No messages in ${dlqTopic}.`);\n return { command: \"peek\", printed: 0 };\n }\n\n deps.out(`Peeking up to ${cmd.limit} message(s) from ${dlqTopic}:`);\n let printed = 0;\n for (const env of messages) {\n if (printed >= cmd.limit) break;\n deps.out(\"\");\n deps.out(\n `─ offset ${env.offset} · partition ${env.partition} · ${env.timestamp}`,\n );\n const dlqHeaders = Object.entries(env.headers)\n .filter(([k]) => k.startsWith(\"x-dlq-\"))\n .sort(([a], [b]) => a.localeCompare(b));\n for (const [k, v] of dlqHeaders) {\n deps.out(` ${k}: ${truncate(String(v), 500)}`);\n }\n deps.out(` value: ${truncate(JSON.stringify(env.payload))}`);\n printed++;\n }\n\n deps.out(\"\");\n deps.out(`Printed ${printed} message(s).`);\n return { command: \"peek\", printed };\n}\n\nasync function runReplay(\n cmd: ReplayCommand,\n client: DlqCliClient,\n deps: RunDeps,\n): Promise<RunResult> {\n const options: DlqReplayOptions = {\n dryRun: cmd.dryRun,\n fromBeginning: cmd.fromBeginning,\n };\n if (cmd.target !== undefined) options.targetTopic = cmd.target;\n\n const mode = cmd.fromBeginning ? \"full\" : \"incremental\";\n const targetDesc = cmd.target ? ` → ${cmd.target}` : \" → original topic\";\n deps.out(\n `Replaying ${cmd.topic}${DLQ_SUFFIX}${targetDesc} (${mode}${\n cmd.dryRun ? \", dry-run\" : \"\"\n })…`,\n );\n\n const { replayed, skipped } = await client.replayDlq(cmd.topic, options);\n\n deps.out(\n cmd.dryRun\n ? `Dry-run: ${replayed} message(s) would be replayed, ${skipped} skipped.`\n : `Replayed ${replayed} message(s), ${skipped} skipped.`,\n );\n return { command: \"replay\", replayed, skipped, dryRun: cmd.dryRun };\n}\n","#!/usr/bin/env node\nimport { KafkaClient } from \"../core\";\nimport type { EventEnvelope } from \"../core\";\nimport { ConfluentTransport } from \"../client/transport/confluent.transport\";\nimport type { KafkaTransport } from \"../client/transport/transport.interface\";\nimport {\n DlqUsageError,\n USAGE,\n parseArgs,\n runDlqCommand,\n type DlqCliClient,\n type PartitionWatermarks,\n} from \"./dlq\";\n\n/** Unique-per-process client id so concurrent invocations don't collide. */\nconst CLIENT_ID = `dlq-cli-${process.pid}`;\nconst GROUP_ID = `${CLIENT_ID}-peek`;\n\n/**\n * Production `DlqCliClient` factory. Shares a single `ConfluentTransport`\n * between the `KafkaClient` (for `replayDlq` / `consume`) and a standalone\n * admin (for topic listing and per-partition watermarks used by `ls`).\n */\nfunction createRealClient(brokers: string[]): DlqCliClient {\n const transport: KafkaTransport = new ConfluentTransport(CLIENT_ID, brokers);\n const kafka = new KafkaClient<Record<string, Record<string, unknown>>>(\n CLIENT_ID,\n GROUP_ID,\n brokers,\n { transport, autoCreateTopics: false, strictSchemas: false },\n );\n const admin = transport.admin();\n let adminConnected = false;\n\n async function ensureAdmin() {\n if (!adminConnected) {\n await admin.connect();\n adminConnected = true;\n }\n }\n\n return {\n async listTopics(): Promise<string[]> {\n const status = await kafka.checkStatus();\n if (status.status === \"down\") {\n throw new Error(`Broker unreachable: ${status.error}`);\n }\n return status.topics;\n },\n\n async fetchTopicOffsets(topic: string): Promise<PartitionWatermarks[]> {\n await ensureAdmin();\n return admin.fetchTopicOffsets(topic);\n },\n\n async peekMessages(\n dlqTopic: string,\n limit: number,\n ): Promise<Array<EventEnvelope<unknown>>> {\n const collected: Array<EventEnvelope<unknown>> = [];\n // Ephemeral group so peeking never disturbs a real consumer's offsets.\n const iterator = kafka.consume(dlqTopic as never, {\n groupId: `${dlqTopic}.dlq-peek-${Date.now()}`,\n fromBeginning: true,\n });\n // Guard against an empty topic hanging the iterator forever: if the topic\n // has no messages, stop once the high watermark says there's nothing to read.\n await ensureAdmin();\n const watermarks = await admin.fetchTopicOffsets(dlqTopic);\n const available = watermarks.reduce(\n (sum, w) => sum + Math.max(0, Number(w.high) - Number(w.low)),\n 0,\n );\n const target = Math.min(limit, available);\n if (target === 0) {\n await iterator.return?.();\n return collected;\n }\n try {\n for await (const env of iterator) {\n collected.push(env as EventEnvelope<unknown>);\n if (collected.length >= target) break;\n }\n } finally {\n await iterator.return?.();\n }\n return collected;\n },\n\n replayDlq(topic, options) {\n return kafka.replayDlq(topic, options);\n },\n\n async close(): Promise<void> {\n if (adminConnected) {\n await admin.disconnect().catch(() => {});\n }\n await kafka.disconnect().catch(() => {});\n },\n };\n}\n\nasync function main(): Promise<number> {\n let cmd;\n try {\n cmd = parseArgs(process.argv.slice(2));\n } catch (err) {\n if (err instanceof DlqUsageError) {\n process.stderr.write(`Error: ${err.message}\\n\\n`);\n process.stderr.write(USAGE);\n return 2;\n }\n throw err;\n }\n\n try {\n await runDlqCommand(cmd, {\n createClient: createRealClient,\n out: (line) => process.stdout.write(`${line}\\n`),\n });\n return 0;\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n process.stderr.write(`Error: ${message}\\n`);\n return 1;\n }\n}\n\nmain()\n .then((code) => {\n process.exitCode = code;\n })\n .catch((err) => {\n process.stderr.write(`Fatal: ${err?.stack ?? err}\\n`);\n process.exitCode = 1;\n });\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"delayed.d.ts","sourceRoot":"","sources":["../../../../../src/client/kafka.client/consumer/features/delayed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAYzF,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACzE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,OAAO,CAAC,cAAc,CAAC,CA6HzB"}
1
+ {"version":3,"file":"delayed.d.ts","sourceRoot":"","sources":["../../../../../src/client/kafka.client/consumer/features/delayed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAYzF,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACzE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,OAAO,CAAC,cAAc,CAAC,CA+HzB"}
@@ -14,7 +14,7 @@ export type DlqReplayDeps = {
14
14
  high: string;
15
15
  }>>;
16
16
  send: (topic: string, messages: Array<{
17
- value: string;
17
+ value: Buffer | string;
18
18
  headers: Record<string, string>;
19
19
  }>) => Promise<void>;
20
20
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dlq-replay.d.ts","sourceRoot":"","sources":["../../../../../src/client/kafka.client/consumer/features/dlq-replay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACxE,KAAK,QAAQ,GAAG,SAAS,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIpE;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACvG,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5G;;;;OAIG;IACH,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,KAAK,QAAQ,CAAC;IACtE;;;OAGG;IACH,eAAe,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IACrF,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,aAAa,EACnB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAwFhD"}
1
+ {"version":3,"file":"dlq-replay.d.ts","sourceRoot":"","sources":["../../../../../src/client/kafka.client/consumer/features/dlq-replay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACxE,KAAK,QAAQ,GAAG,SAAS,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIpE;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACvG,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrH;;;;OAIG;IACH,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,KAAK,QAAQ,CAAC;IACtE;;;OAGG;IACH,eAAe,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IACrF,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,aAAa,EACnB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA4FhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../../../src/client/kafka.client/consumer/features/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EAEzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI/D,uDAAuD;AACvD,KAAK,WAAW,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,IAAI,IAAI,CACtD,kBAAkB,CAAC,CAAC,CAAC,EACnB,UAAU,GACV,UAAU,GACV,gBAAgB,GAChB,WAAW,GACX,QAAQ,GACR,UAAU,GACV,kBAAkB,CACrB,CAAC;AAIF,wBAAsB,gBAAgB,CACpC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAC/B,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAE1B,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,KAAK,EAAE,CAAC,EACR,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CA4E3C;AAkDD,wBAAsB,qBAAqB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACzE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAmC3B;AAID,wBAAsB,yBAAyB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAC7E,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,uBAAuB,CAAC,CAmJlC"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../../../src/client/kafka.client/consumer/features/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EAEzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI/D,uDAAuD;AACvD,KAAK,WAAW,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,IAAI,IAAI,CACtD,kBAAkB,CAAC,CAAC,CAAC,EACnB,UAAU,GACV,UAAU,GACV,gBAAgB,GAChB,WAAW,GACX,QAAQ,GACR,UAAU,GACV,kBAAkB,CACrB,CAAC;AAIF,wBAAsB,gBAAgB,CACpC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAC/B,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAE1B,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,KAAK,EAAE,CAAC,EACR,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CA4E3C;AAqDD,wBAAsB,qBAAqB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACzE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAmC3B;AAID,wBAAsB,yBAAyB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAC7E,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,uBAAuB,CAAC,CAmJlC"}
@@ -3,6 +3,7 @@ type Producer = IProducer;
3
3
  type Consumer = IConsumer;
4
4
  import type { EventEnvelope } from "../../message/envelope";
5
5
  import type { SchemaLike } from "../../message/topic";
6
+ import type { MessageSerde } from "../../message/serde";
6
7
  import type { BatchMeta, ConsumerInterceptor, DedupStore, DeduplicationOptions, DlqReason, KafkaClientOptions, KafkaInstrumentation, KafkaLogger, RetryOptions } from "../../types";
7
8
  /**
8
9
  * Runtime dependencies injected into message handler functions by `KafkaClient`.
@@ -12,6 +13,8 @@ import type { BatchMeta, ConsumerInterceptor, DedupStore, DeduplicationOptions,
12
13
  export type MessageHandlerDeps = {
13
14
  logger: KafkaLogger;
14
15
  producer: Producer;
16
+ /** Client-wide serde used to deserialize consumed values; per-topic override wins. */
17
+ serde: MessageSerde;
15
18
  instrumentation: KafkaInstrumentation[];
16
19
  onMessageLost: KafkaClientOptions["onMessageLost"];
17
20
  onTtlExpired?: KafkaClientOptions["onTtlExpired"];
@@ -37,6 +40,8 @@ export type DeduplicationContext = {
37
40
  */
38
41
  export type EachMessageOpts = {
39
42
  schemaMap: Map<string, SchemaLike>;
43
+ /** Per-topic serde overrides (from `TopicDescriptor.__serde`); falls back to `deps.serde`. */
44
+ serdeMap?: Map<string, MessageSerde>;
40
45
  handleMessage: (envelope: EventEnvelope<any>) => Promise<void>;
41
46
  interceptors: ConsumerInterceptor<any>[];
42
47
  dlq: boolean;
@@ -65,12 +70,19 @@ export type EachMessageOpts = {
65
70
  consumer: Consumer;
66
71
  };
67
72
  };
68
- /** Parse, validate and extract an envelope from a single raw Kafka message. Returns null to skip. */
73
+ /**
74
+ * Parse, validate and extract an envelope from a single raw Kafka message. Returns null to skip.
75
+ *
76
+ * Deserializes the value via the resolved serde (per-topic override from
77
+ * `serdeMap` if present, otherwise `deps.serde`), passing the raw `Buffer` — NOT
78
+ * a `.toString()` — so binary serdes (Avro/Protobuf) receive the exact wire
79
+ * bytes. Schema validation then runs on the deserialized object, unchanged.
80
+ */
69
81
  export declare function parseSingleMessage(message: {
70
82
  value: Buffer | null;
71
83
  headers?: Record<string, any>;
72
84
  offset: string;
73
- }, topic: string, partition: number, schemaMap: Map<string, SchemaLike>, interceptors: ConsumerInterceptor<any>[], dlq: boolean, deps: MessageHandlerDeps): Promise<EventEnvelope<any> | null>;
85
+ }, topic: string, partition: number, schemaMap: Map<string, SchemaLike>, interceptors: ConsumerInterceptor<any>[], dlq: boolean, deps: MessageHandlerDeps, serdeMap?: Map<string, MessageSerde>): Promise<EventEnvelope<any> | null>;
74
86
  /**
75
87
  * Core single-message processing pipeline invoked by the kafkajs `eachMessage` callback.
76
88
  * Parses, validates, deduplicates, checks TTL, runs the handler with retry/DLQ support,
@@ -94,6 +106,8 @@ export declare function handleEachMessage(payload: {
94
106
  */
95
107
  export type EachBatchOpts = {
96
108
  schemaMap: Map<string, SchemaLike>;
109
+ /** Per-topic serde overrides (from `TopicDescriptor.__serde`); falls back to `deps.serde`. */
110
+ serdeMap?: Map<string, MessageSerde>;
97
111
  handleBatch: (envelopes: EventEnvelope<any>[], meta: BatchMeta) => Promise<void>;
98
112
  interceptors: ConsumerInterceptor<any>[];
99
113
  dlq: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/client/kafka.client/consumer/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/client/kafka.client/consumer/handler.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { IConsumer, KafkaTransport } from "../../transport/transport.interface";
2
2
  import type { SchemaLike } from "../../message/topic";
3
+ import type { MessageSerde } from "../../message/serde";
3
4
  import type { KafkaClientOptions, KafkaLogger } from "../../types";
4
5
  export type ConsumerOpsDeps = {
5
6
  consumers: Map<string, IConsumer>;
@@ -48,4 +49,16 @@ export declare function getOrCreateConsumer(groupId: string, fromBeginning: bool
48
49
  * @returns A topic → schema map scoped to the current subscription.
49
50
  */
50
51
  export declare function buildSchemaMap(topics: any[], schemaRegistry: Map<string, SchemaLike>, optionSchemas?: Map<string, SchemaLike>, logger?: KafkaLogger): Map<string, SchemaLike>;
52
+ /**
53
+ * Build a topic → serde map from per-topic `TopicDescriptor.__serde` overrides.
54
+ *
55
+ * Only descriptors carrying an explicit `.serde()` contribute an entry; plain
56
+ * string topics (and descriptors without an override) fall back to the
57
+ * client-wide serde at deserialize time. Returns `undefined` when no topic has
58
+ * an override, so the common JSON-default path allocates nothing.
59
+ *
60
+ * @param topics Array of topic names or `TopicDescriptor` objects.
61
+ * @returns A topic → serde map, or `undefined` when there are no overrides.
62
+ */
63
+ export declare function buildSerdeMap(topics: any[]): Map<string, MessageSerde> | undefined;
51
64
  //# sourceMappingURL=ops.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../../../src/client/kafka.client/consumer/ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGnE,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClC,uBAAuB,EAAE,GAAG,CAC1B,MAAM,EACN;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAChD,CAAC;IACF,SAAS,EAAE,cAAc,CAAC;IAC1B,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,OAAO,EACnB,IAAI,EAAE,eAAe,EACrB,iBAAiB,CAAC,EAAE,YAAY,GAAG,OAAO,GAAG,oBAAoB,EACjE,iBAAiB,CAAC,EAAE,MAAM,IAAI,EAC9B,eAAe,CAAC,EAAE,MAAM,GACvB,SAAS,CAyFX;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,GAAG,EAAE,EACb,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EACvC,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EACvC,MAAM,CAAC,EAAE,WAAW,GACnB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CA0BzB"}
1
+ {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../../../src/client/kafka.client/consumer/ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGnE,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClC,uBAAuB,EAAE,GAAG,CAC1B,MAAM,EACN;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAChD,CAAC;IACF,SAAS,EAAE,cAAc,CAAC;IAC1B,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,OAAO,EACnB,IAAI,EAAE,eAAe,EACrB,iBAAiB,CAAC,EAAE,YAAY,GAAG,OAAO,GAAG,oBAAoB,EACjE,iBAAiB,CAAC,EAAE,MAAM,IAAI,EAC9B,eAAe,CAAC,EAAE,MAAM,GACvB,SAAS,CAyFX;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,GAAG,EAAE,EACb,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EACvC,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EACvC,MAAM,CAAC,EAAE,WAAW,GACnB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CA0BzB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,GAAG,EAAE,GACZ,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS,CAQvC"}
@@ -18,7 +18,7 @@ export declare function parseJsonMessage(raw: string, topic: string, logger: Kaf
18
18
  * On failure: logs error, sends to DLQ if enabled, calls interceptor.onError.
19
19
  * Returns validated message or null.
20
20
  */
21
- export declare function validateWithSchema<T extends TopicMapConstraint<T>>(message: any, raw: string, topic: string, schemaMap: Map<string, SchemaLike>, interceptors: ConsumerInterceptor<T>[], dlq: boolean, deps: {
21
+ export declare function validateWithSchema<T extends TopicMapConstraint<T>>(message: any, raw: Buffer | string, topic: string, schemaMap: Map<string, SchemaLike>, interceptors: ConsumerInterceptor<T>[], dlq: boolean, deps: {
22
22
  logger: KafkaLogger;
23
23
  producer: Producer;
24
24
  onMessageLost?: (ctx: MessageLostContext) => void | Promise<void>;
@@ -32,10 +32,10 @@ export interface DlqMetadata {
32
32
  originalHeaders?: MessageHeaders;
33
33
  }
34
34
  /** Build the DLQ send payload without sending it. Used by sendToDlq and EOS routing. */
35
- export declare function buildDlqPayload(topic: string, rawMessage: string, meta?: DlqMetadata): {
35
+ export declare function buildDlqPayload(topic: string, rawMessage: Buffer | string, meta?: DlqMetadata): {
36
36
  topic: string;
37
37
  messages: Array<{
38
- value: string;
38
+ value: Buffer | string;
39
39
  headers: MessageHeaders;
40
40
  }>;
41
41
  };
@@ -43,11 +43,11 @@ export declare function buildDlqPayload(topic: string, rawMessage: string, meta?
43
43
  * Produce a message to `<topic>.dlq`, stamping standard DLQ headers.
44
44
  * Falls back to `onMessageLost` when the DLQ produce itself fails.
45
45
  * @param topic Original topic the message was consumed from.
46
- * @param rawMessage Raw JSON string of the original message.
46
+ * @param rawMessage Original message wire bytes (`Buffer`, or `string` for JSON) forwarded losslessly.
47
47
  * @param deps Logger, producer, and optional `onMessageLost` callback.
48
48
  * @param meta Error, attempt count, and original headers to attach as DLQ metadata headers.
49
49
  */
50
- export declare function sendToDlq(topic: string, rawMessage: string, deps: {
50
+ export declare function sendToDlq(topic: string, rawMessage: Buffer | string, deps: {
51
51
  logger: KafkaLogger;
52
52
  producer: Producer;
53
53
  onMessageLost?: (ctx: MessageLostContext) => void | Promise<void>;
@@ -58,12 +58,12 @@ export declare const RETRY_HEADER_AFTER = "x-retry-after";
58
58
  export declare const RETRY_HEADER_MAX_RETRIES = "x-retry-max-retries";
59
59
  export declare const RETRY_HEADER_ORIGINAL_TOPIC = "x-retry-original-topic";
60
60
  /** Build the retry topic send payload without sending it. Used by sendToRetryTopic and EOS routing. */
61
- export declare function buildRetryTopicPayload(originalTopic: string, rawMessages: string[], attempt: number, maxRetries: number, delayMs: number,
61
+ export declare function buildRetryTopicPayload(originalTopic: string, rawMessages: Array<Buffer | string>, attempt: number, maxRetries: number, delayMs: number,
62
62
  /** Per-message headers (array) or a single object applied to all messages. */
63
63
  originalHeaders: MessageHeaders | MessageHeaders[]): {
64
64
  topic: string;
65
65
  messages: Array<{
66
- value: string;
66
+ value: Buffer | string;
67
67
  headers: MessageHeaders;
68
68
  }>;
69
69
  };
@@ -71,7 +71,7 @@ originalHeaders: MessageHeaders | MessageHeaders[]): {
71
71
  * Send raw messages to the retry topic `<originalTopic>.retry`.
72
72
  * Stamps scheduling headers so the retry consumer knows when and how many times to retry.
73
73
  */
74
- export declare function sendToRetryTopic(originalTopic: string, rawMessages: string[], attempt: number, maxRetries: number, delayMs: number,
74
+ export declare function sendToRetryTopic(originalTopic: string, rawMessages: Array<Buffer | string>, attempt: number, maxRetries: number, delayMs: number,
75
75
  /** Per-message headers (array) or a single object applied to all messages. */
76
76
  originalHeaders: MessageHeaders | MessageHeaders[], deps: {
77
77
  logger: KafkaLogger;
@@ -87,10 +87,10 @@ export interface DuplicateMetadata {
87
87
  originalHeaders?: MessageHeaders;
88
88
  }
89
89
  /** Build the payload for a duplicate message forwarded to a custom topic. */
90
- export declare function buildDuplicateTopicPayload(sourceTopic: string, rawMessage: string, destinationTopic: string, meta?: DuplicateMetadata): {
90
+ export declare function buildDuplicateTopicPayload(sourceTopic: string, rawMessage: Buffer | string, destinationTopic: string, meta?: DuplicateMetadata): {
91
91
  topic: string;
92
92
  messages: Array<{
93
- value: string;
93
+ value: Buffer | string;
94
94
  headers: MessageHeaders;
95
95
  }>;
96
96
  };
@@ -98,7 +98,7 @@ export declare function buildDuplicateTopicPayload(sourceTopic: string, rawMessa
98
98
  * Forward a duplicate message to a dedicated topic (e.g. `<topic>.duplicates`).
99
99
  * Stamps reason metadata headers so consumers of that topic know why it landed there.
100
100
  */
101
- export declare function sendToDuplicatesTopic(sourceTopic: string, rawMessage: string, destinationTopic: string, deps: {
101
+ export declare function sendToDuplicatesTopic(sourceTopic: string, rawMessage: Buffer | string, destinationTopic: string, deps: {
102
102
  logger: KafkaLogger;
103
103
  producer: Producer;
104
104
  }, meta?: DuplicateMetadata): Promise<void>;
@@ -126,7 +126,8 @@ export declare function notifyInterceptorsOnError<T extends TopicMapConstraint<T
126
126
  */
127
127
  export interface ExecuteWithRetryContext<T extends TopicMapConstraint<T>> {
128
128
  envelope: EventEnvelope<any> | EventEnvelope<any>[];
129
- rawMessages: string[];
129
+ /** Original message wire bytes (`Buffer`, or `string` for JSON) — forwarded losslessly to DLQ/retry. */
130
+ rawMessages: Array<Buffer | string>;
130
131
  interceptors: ConsumerInterceptor<T>[];
131
132
  dlq: boolean;
132
133
  retry?: RetryOptions;
@@ -157,7 +158,7 @@ export declare function executeWithRetry<T extends TopicMapConstraint<T>>(fn: ()
157
158
  * When present, replaces `sendToRetryTopic` with a Kafka transaction that
158
159
  * sends to the retry topic AND commits the source offset atomically.
159
160
  */
160
- eosRouteToRetry?: (rawMessages: string[], envelopes: EventEnvelope<any>[], delay: number) => Promise<void>;
161
+ eosRouteToRetry?: (rawMessages: Array<Buffer | string>, envelopes: EventEnvelope<any>[], delay: number) => Promise<void>;
161
162
  /**
162
163
  * Manual offset commit for the success path when the main consumer runs
163
164
  * with `autoCommit: false` (required when `eosRouteToRetry` is active).
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../../src/client/kafka.client/consumer/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACrE,KAAK,QAAQ,GAAG,SAAS,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAEV,mBAAmB,EACnB,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAMrB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAID,uEAAuE;AACvE,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,GAClB,GAAG,GAAG,IAAI,CAUZ;AAID;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACtE,OAAO,EAAE,GAAG,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAClC,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,EACtC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE;IACJ,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,eAAe,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAC1C,GACA,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAmDrB;AAID,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,qGAAqG;IACrG,eAAe,CAAC,EAAE,cAAc,CAAC;CAClC;AAED,wFAAwF;AACxF,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,WAAW,GACjB;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC;CAC7D,CAWA;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE;IACJ,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE,EACD,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,IAAI,CAAC,CAkBf;AAID,mEAAmE;AACnE,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AACtD,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAClD,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AAEpE,uGAAuG;AACvG,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM;AACf,8EAA8E;AAC9E,eAAe,EAAE,cAAc,GAAG,cAAc,EAAE,GACjD;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC;CAC7D,CAgCA;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM;AACf,8EAA8E;AAC9E,eAAe,EAAE,cAAc,GAAG,cAAc,EAAE,EAClD,IAAI,EAAE;IACJ,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE,GACA,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAID,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,8FAA8F;IAC9F,eAAe,CAAC,EAAE,cAAc,CAAC;CAClC;AAED,6EAA6E;AAC7E,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,iBAAiB,GACvB;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC;CAC7D,CAaA;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,EACjD,IAAI,CAAC,EAAE,iBAAiB,GACvB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAmBD;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAC1E,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACvB,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,EAC/B,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,EACtC,eAAe,EAAE,oBAAoB,EAAE,GACtC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAiDvB;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAE/B,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,EAC/B,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,EACtC,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,IAAI,CAAC,CAIf;AAID;;;;GAIG;AACH,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC;IACtE,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;IACpD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACpE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACvB,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAC/B,IAAI,EAAE;IACJ,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACxC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,OAAO,CAAC,EAAE,CACR,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,EAC5B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,KACf,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IAClE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACnD,0EAA0E;IAC1E,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACnD;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAChB,WAAW,EAAE,MAAM,EAAE,EACrB,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,EAC/B,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C,GACA,OAAO,CAAC,IAAI,CAAC,CAmIf"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../../src/client/kafka.client/consumer/pipeline.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ type Consumer = IConsumer;
3
3
  type Producer = IProducer;
4
4
  import type { EventEnvelope } from "../../message/envelope";
5
5
  import type { SchemaLike } from "../../message/topic";
6
+ import type { MessageSerde } from "../../message/serde";
6
7
  import type { ConsumerInterceptor, DlqReason, KafkaClientOptions, KafkaInstrumentation, KafkaLogger } from "../../types";
7
8
  /**
8
9
  * Dependencies injected into retry topic consumers by `KafkaClient`.
@@ -12,6 +13,8 @@ import type { ConsumerInterceptor, DlqReason, KafkaClientOptions, KafkaInstrumen
12
13
  export type RetryTopicDeps = {
13
14
  logger: KafkaLogger;
14
15
  producer: Producer;
16
+ /** Client-wide serde used to deserialize retry-topic values; per-topic override wins. */
17
+ serde: MessageSerde;
15
18
  instrumentation: KafkaInstrumentation[];
16
19
  onMessageLost: KafkaClientOptions["onMessageLost"];
17
20
  onRetry?: (envelope: EventEnvelope<any>, attempt: number, maxRetries: number) => void;
@@ -60,6 +63,6 @@ export declare function startRetryTopicConsumers(originalTopics: string[], origi
60
63
  maxRetries: number;
61
64
  backoffMs?: number;
62
65
  maxBackoffMs?: number;
63
- }, dlq: boolean, interceptors: ConsumerInterceptor<any>[], schemaMap: Map<string, SchemaLike>, deps: RetryTopicDeps, assignmentTimeoutMs?: number): Promise<string[]>;
66
+ }, dlq: boolean, interceptors: ConsumerInterceptor<any>[], schemaMap: Map<string, SchemaLike>, deps: RetryTopicDeps, assignmentTimeoutMs?: number, serdeMap?: Map<string, MessageSerde>): Promise<string[]>;
64
67
  export {};
65
68
  //# sourceMappingURL=retry-topic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry-topic.d.ts","sourceRoot":"","sources":["../../../../src/client/kafka.client/consumer/retry-topic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChF,KAAK,QAAQ,GAAG,SAAS,CAAC;AAC1B,KAAK,QAAQ,GAAG,SAAS,CAAC;AAM1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAgB5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACxC,aAAa,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,CACR,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,EAC5B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,KACf,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IAClE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACnD,iGAAiG;IACjG,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACnD,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,mBAAmB,EAAE,CACnB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,OAAO,KAChB,QAAQ,CAAC;IACd,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,CAAC,CAAC;IAC3D,kFAAkF;IAClF,qBAAqB,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtE;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,WAAW,EACnB,SAAS,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC,CAgBf;AA4SD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,MAAM,EAAE,EACxB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EAC9D,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,EACxE,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,EACxC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAClC,IAAI,EAAE,cAAc,EACpB,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC,CAgCnB"}
1
+ {"version":3,"file":"retry-topic.d.ts","sourceRoot":"","sources":["../../../../src/client/kafka.client/consumer/retry-topic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChF,KAAK,QAAQ,GAAG,SAAS,CAAC;AAC1B,KAAK,QAAQ,GAAG,SAAS,CAAC;AAM1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAe5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,yFAAyF;IACzF,KAAK,EAAE,YAAY,CAAC;IACpB,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACxC,aAAa,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,CACR,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,EAC5B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,KACf,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IAClE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACnD,iGAAiG;IACjG,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACnD,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,mBAAmB,EAAE,CACnB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,OAAO,KAChB,QAAQ,CAAC;IACd,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,CAAC,CAAC;IAC3D,kFAAkF;IAClF,qBAAqB,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtE;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,WAAW,EACnB,SAAS,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAiUD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,MAAM,EAAE,EACxB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EAC9D,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,EACxE,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,EACxC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAClC,IAAI,EAAE,cAAc,EACpB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACnC,OAAO,CAAC,MAAM,EAAE,CAAC,CAiCnB"}
@@ -15,6 +15,7 @@ export declare function ensureConsumerTopics<T extends TopicMapConstraint<T>>(ct
15
15
  export declare function setupConsumer<T extends TopicMapConstraint<T>>(ctx: KafkaClientContext<T>, topics: any[], mode: "eachMessage" | "eachBatch", options: ConsumerOptions<T>): Promise<{
16
16
  consumer: IConsumer;
17
17
  schemaMap: Map<string, SchemaLike<any>>;
18
+ serdeMap: Map<string, import("../../message/serde").MessageSerde> | undefined;
18
19
  topicNames: string[];
19
20
  gid: string;
20
21
  dlq: boolean;
@@ -37,6 +38,7 @@ export declare function messageDepsFor<T extends TopicMapConstraint<T>>(ctx: Kaf
37
38
  export declare function buildRetryTopicDeps<T extends TopicMapConstraint<T>>(ctx: KafkaClientContext<T>): {
38
39
  logger: import("../../types").KafkaLogger;
39
40
  producer: IProducer;
41
+ serde: import("../../message/serde").MessageSerde;
40
42
  instrumentation: import("../../types").KafkaInstrumentation[];
41
43
  onMessageLost: ((ctx: import("../../types").MessageLostContext) => void | Promise<void>) | undefined;
42
44
  onRetry: (envelope: EventEnvelope<any>, attempt: number, maxRetries: number) => void;
@@ -58,6 +60,7 @@ export declare function launchRetryChain<T extends TopicMapConstraint<T>>(ctx: K
58
60
  dlq: boolean;
59
61
  interceptors: ConsumerInterceptor<T>[];
60
62
  schemaMap: Map<string, SchemaLike>;
63
+ serdeMap?: Map<string, import("../../message/serde").MessageSerde>;
61
64
  assignmentTimeoutMs?: number;
62
65
  }): Promise<void>;
63
66
  //# sourceMappingURL=setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../../src/client/kafka.client/consumer/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAU1E,mEAAmE;AACnE,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACvE,MAAM,EAAE,GAAG,EAAE,EACb,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAC1B,IAAI,CAWN;AAED,oFAAoF;AACpF,wBAAsB,oBAAoB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACxE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC1B,UAAU,EAAE,MAAM,EAAE,EACpB,GAAG,EAAE,OAAO,EACZ,aAAa,EAAE,OAAO,aAAa,EAAE,oBAAoB,GAAG,SAAS,GACpE,OAAO,CAAC,IAAI,CAAC,CAiBf;AAID;;;GAGG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACjE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC1B,MAAM,EAAE,GAAG,EAAE,EACb,IAAI,EAAE,aAAa,GAAG,WAAW,EACjC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;;;;;;;;;;GAgF5B;AAID;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACzE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,aAAa,EAAE,oBAAoB,GAAG,SAAS,GAC9D,oBAAoB,GAAG,SAAS,CAIlC;AAID,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAC5D,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC1B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC,GACpF,kBAAkB,CAmBpB;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACjE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC;;;;;;;;qBAUP,MAAM;+BACI,MAAM,MAAM,OAAO,MAAM,OAAO;;kCAG7B,MAAM;EAEvC;AAID,mFAAmF;AACnF,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACtE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC1B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC;IAAE,UAAU,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,SAAS,CAAC,CAIrE;AAID,sFAAsF;AACtF,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACpE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC1B,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAAE,EACpB,aAAa,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EACzD,IAAI,EAAE;IACJ,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,OAAO,CAAC;IACb,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,GACA,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../../src/client/kafka.client/consumer/setup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../src/client/kafka.client/consumer/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,SAAS,EAGT,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAiB5D,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACrE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC1B,MAAM,EAAE,GAAG,EAAE,EACb,aAAa,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EAC9D,OAAO,GAAE,eAAe,CAAC,CAAC,CAAM,GAC/B,OAAO,CAAC,cAAc,CAAC,CAqDzB;AAID,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAC1E,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC1B,MAAM,EAAE,GAAG,EAAE,EACb,WAAW,EAAE,CACX,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,EAC/B,IAAI,EAAE,SAAS,KACZ,OAAO,CAAC,IAAI,CAAC,EAClB,OAAO,GAAE,eAAe,CAAC,CAAC,CAAM,GAC/B,OAAO,CAAC,cAAc,CAAC,CAmEzB;AAID,wBAAsB,8BAA8B,CAClD,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAE/B,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC1B,MAAM,EAAE,GAAG,EAAE,EACb,OAAO,EAAE,CACP,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,EAC5B,EAAE,EAAE,2BAA2B,CAAC,CAAC,CAAC,KAC/B,OAAO,CAAC,IAAI,CAAC,EAClB,OAAO,GAAE,eAAe,CAAC,CAAC,CAAM,GAC/B,OAAO,CAAC,cAAc,CAAC,CAmGzB"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../src/client/kafka.client/consumer/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,SAAS,EAGT,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAiB5D,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACrE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC1B,MAAM,EAAE,GAAG,EAAE,EACb,aAAa,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EAC9D,OAAO,GAAE,eAAe,CAAC,CAAC,CAAM,GAC/B,OAAO,CAAC,cAAc,CAAC,CAuDzB;AAID,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAC1E,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC1B,MAAM,EAAE,GAAG,EAAE,EACb,WAAW,EAAE,CACX,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,EAC/B,IAAI,EAAE,SAAS,KACZ,OAAO,CAAC,IAAI,CAAC,EAClB,OAAO,GAAE,eAAe,CAAC,CAAC,CAAM,GAC/B,OAAO,CAAC,cAAc,CAAC,CAqEzB;AAID,wBAAsB,8BAA8B,CAClD,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAE/B,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC1B,MAAM,EAAE,GAAG,EAAE,EACb,OAAO,EAAE,CACP,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,EAC5B,EAAE,EAAE,2BAA2B,CAAC,CAAC,CAAC,KAC/B,OAAO,CAAC,IAAI,CAAC,EAClB,OAAO,GAAE,eAAe,CAAC,CAAC,CAAM,GAC/B,OAAO,CAAC,cAAc,CAAC,CAoGzB"}
@@ -1,5 +1,6 @@
1
1
  import type { KafkaTransport, IProducer, IConsumer } from "../transport/transport.interface";
2
2
  import type { SchemaLike } from "../message/topic";
3
+ import type { MessageSerde } from "../message/serde";
3
4
  import type { ClientId, KafkaClientOptions, KafkaInstrumentation, KafkaLogger } from "../types";
4
5
  import type { CircuitBreakerManager } from "./infra/circuit-breaker.manager";
5
6
  import type { AdminOps } from "./admin/ops";
@@ -22,6 +23,8 @@ export type KafkaClientContext<T> = {
22
23
  readonly autoCreateTopicsEnabled: boolean;
23
24
  readonly strictSchemasEnabled: boolean;
24
25
  readonly numPartitions: number;
26
+ /** Client-wide serde; per-topic `TopicDescriptor.__serde` overrides it. Default `JsonSerde`. */
27
+ readonly serde: MessageSerde;
25
28
  readonly txId: string;
26
29
  readonly clockRecoveryTopics: string[];
27
30
  /** Max time to wait for clock recovery before proceeding with a partial result. */
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/client/kafka.client/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/client/kafka.client/context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/kafka.client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/kafka.client/index.ts"],"names":[],"mappings":"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"}