@514labs/moose-lib 0.6.276-ci-8-gc5dc0ced → 0.6.276-ci-1-gfe86cd2c

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.
@@ -34,6 +34,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
34
34
  var commons_exports = {};
35
35
  __export(commons_exports, {
36
36
  ACKs: () => ACKs,
37
+ CODES: () => import_kafka_javascript.CODES,
38
+ KafkaConsumer: () => import_kafka_javascript.KafkaConsumer,
37
39
  MAX_RETRIES: () => MAX_RETRIES,
38
40
  MAX_RETRIES_PRODUCER: () => MAX_RETRIES_PRODUCER,
39
41
  MAX_RETRY_TIME_MS: () => MAX_RETRY_TIME_MS,
@@ -42,6 +44,7 @@ __export(commons_exports, {
42
44
  antiCachePath: () => antiCachePath,
43
45
  cliLog: () => cliLog,
44
46
  compilerLog: () => compilerLog,
47
+ createNativeKafkaConsumer: () => createNativeKafkaConsumer,
45
48
  createProducerConfig: () => createProducerConfig,
46
49
  getClickhouseClient: () => getClickhouseClient,
47
50
  getFileName: () => getFileName,
@@ -87,7 +90,7 @@ async function getKafkaProducer(cfg, logger, maxMessageBytes) {
87
90
  await producer.connect();
88
91
  return producer;
89
92
  }
90
- var import_http, import_client, import_kafka_javascript, Kafka, compilerLog, antiCachePath, getFileName, getClickhouseClient, cliLog, MAX_RETRIES, MAX_RETRY_TIME_MS, RETRY_INITIAL_TIME_MS, MAX_RETRIES_PRODUCER, RETRY_FACTOR_PRODUCER, ACKs, parseBrokerString, logError, buildSaslConfig, getKafkaClient;
93
+ var import_http, import_client, import_kafka_javascript, Kafka, compilerLog, antiCachePath, getFileName, getClickhouseClient, cliLog, MAX_RETRIES, MAX_RETRY_TIME_MS, RETRY_INITIAL_TIME_MS, MAX_RETRIES_PRODUCER, RETRY_FACTOR_PRODUCER, ACKs, parseBrokerString, logError, buildSaslConfig, getKafkaClient, buildNativeSaslConfig, createNativeKafkaConsumer;
91
94
  var init_commons = __esm({
92
95
  "src/commons.ts"() {
93
96
  "use strict";
@@ -194,6 +197,59 @@ var init_commons = __esm({
194
197
  }
195
198
  });
196
199
  };
200
+ buildNativeSaslConfig = (logger, cfg) => {
201
+ if (!cfg.saslMechanism || !cfg.saslUsername || !cfg.saslPassword) {
202
+ return {};
203
+ }
204
+ const mechanism = cfg.saslMechanism.toUpperCase();
205
+ const validMechanisms = ["PLAIN", "SCRAM-SHA-256", "SCRAM-SHA-512"];
206
+ if (!validMechanisms.includes(mechanism)) {
207
+ logger.warn(`Unsupported SASL mechanism: ${cfg.saslMechanism}`);
208
+ return {};
209
+ }
210
+ return {
211
+ "sasl.mechanisms": mechanism,
212
+ "sasl.username": cfg.saslUsername,
213
+ "sasl.password": cfg.saslPassword
214
+ };
215
+ };
216
+ createNativeKafkaConsumer = (cfg, logger, rebalanceCb) => {
217
+ const brokers = parseBrokerString(cfg.broker || "");
218
+ if (brokers.length === 0) {
219
+ throw new Error(`No valid broker addresses found in: "${cfg.broker}"`);
220
+ }
221
+ logger.log(
222
+ `Creating native KafkaConsumer with brokers: ${brokers.join(", ")}`
223
+ );
224
+ logger.log(`Security protocol: ${cfg.securityProtocol || "plaintext"}`);
225
+ logger.log(`Client ID: ${cfg.clientId}`);
226
+ logger.log(`Group ID: ${cfg.groupId}`);
227
+ const saslConfig = buildNativeSaslConfig(logger, cfg);
228
+ const consumerConfig = {
229
+ // Connection
230
+ "bootstrap.servers": brokers.join(","),
231
+ "client.id": cfg.clientId,
232
+ // Group management
233
+ "group.id": cfg.groupId,
234
+ "session.timeout.ms": cfg.sessionTimeoutMs ?? 3e4,
235
+ "heartbeat.interval.ms": cfg.heartbeatIntervalMs ?? 3e3,
236
+ "max.poll.interval.ms": cfg.maxPollIntervalMs ?? 3e5,
237
+ // Offset management
238
+ "enable.auto.commit": cfg.autoCommit ?? true,
239
+ "auto.commit.interval.ms": cfg.autoCommitIntervalMs ?? 5e3,
240
+ // Security
241
+ ...cfg.securityProtocol === "SASL_SSL" && {
242
+ "security.protocol": "sasl_ssl"
243
+ },
244
+ ...saslConfig,
245
+ // Rebalance callback
246
+ ...rebalanceCb && { rebalance_cb: rebalanceCb }
247
+ };
248
+ const topicConfig = {
249
+ "auto.offset.reset": cfg.autoOffsetReset ?? "earliest"
250
+ };
251
+ return new import_kafka_javascript.KafkaConsumer(consumerConfig, topicConfig);
252
+ };
197
253
  }
198
254
  });
199
255