@platformatic/kafka 1.30.0 → 1.32.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 (50) hide show
  1. package/dist/apis/callbacks.js +1 -1
  2. package/dist/clients/admin/admin.d.ts +3 -1
  3. package/dist/clients/admin/admin.js +63 -35
  4. package/dist/clients/admin/options.d.ts +22 -0
  5. package/dist/clients/admin/options.js +15 -1
  6. package/dist/clients/admin/types.d.ts +11 -1
  7. package/dist/clients/base/base.d.ts +4 -1
  8. package/dist/clients/base/base.js +17 -2
  9. package/dist/clients/base/index.d.ts +1 -1
  10. package/dist/clients/base/index.js +1 -1
  11. package/dist/clients/base/options.d.ts +1 -0
  12. package/dist/clients/base/options.js +1 -0
  13. package/dist/clients/base/types.d.ts +1 -0
  14. package/dist/clients/consumer/consumer.d.ts +4 -1
  15. package/dist/clients/consumer/consumer.js +29 -2
  16. package/dist/clients/consumer/messages-stream.d.ts +1 -0
  17. package/dist/clients/consumer/messages-stream.js +61 -15
  18. package/dist/clients/consumer/options.d.ts +3 -0
  19. package/dist/clients/consumer/options.js +3 -0
  20. package/dist/clients/consumer/types.d.ts +3 -0
  21. package/dist/clients/producer/index.d.ts +1 -0
  22. package/dist/clients/producer/index.js +1 -0
  23. package/dist/clients/producer/partitioners.d.ts +3 -0
  24. package/dist/clients/producer/partitioners.js +8 -0
  25. package/dist/clients/producer/producer.js +15 -7
  26. package/dist/clients/producer/types.d.ts +1 -1
  27. package/dist/errors.js +9 -1
  28. package/dist/network/connection-pool.d.ts +2 -0
  29. package/dist/network/connection-pool.js +11 -2
  30. package/dist/network/connection.d.ts +3 -0
  31. package/dist/network/connection.js +34 -4
  32. package/dist/protocol/sasl/scram-sha.js +9 -2
  33. package/dist/typescript-4/dist/clients/admin/admin.d.ts +3 -1
  34. package/dist/typescript-4/dist/clients/admin/options.d.ts +22 -0
  35. package/dist/typescript-4/dist/clients/admin/types.d.ts +11 -1
  36. package/dist/typescript-4/dist/clients/base/base.d.ts +4 -1
  37. package/dist/typescript-4/dist/clients/base/index.d.ts +1 -1
  38. package/dist/typescript-4/dist/clients/base/options.d.ts +1 -0
  39. package/dist/typescript-4/dist/clients/base/types.d.ts +1 -0
  40. package/dist/typescript-4/dist/clients/consumer/consumer.d.ts +4 -1
  41. package/dist/typescript-4/dist/clients/consumer/messages-stream.d.ts +1 -0
  42. package/dist/typescript-4/dist/clients/consumer/options.d.ts +3 -0
  43. package/dist/typescript-4/dist/clients/consumer/types.d.ts +3 -0
  44. package/dist/typescript-4/dist/clients/producer/index.d.ts +1 -0
  45. package/dist/typescript-4/dist/clients/producer/partitioners.d.ts +3 -0
  46. package/dist/typescript-4/dist/clients/producer/types.d.ts +1 -1
  47. package/dist/typescript-4/dist/network/connection-pool.d.ts +2 -0
  48. package/dist/typescript-4/dist/network/connection.d.ts +3 -0
  49. package/dist/version.js +1 -1
  50. package/package.json +2 -1
@@ -1,3 +1,3 @@
1
- export { Base, kCheckNotClosed, kGetApi, kGetBootstrapConnection, kGetConnection, kListApis, kMetadata, kOptions, kPerformDeduplicated, kPerformWithRetry, kValidateOptions } from "./base";
1
+ export { Base, kContext, kCheckNotClosed, kGetApi, kGetBootstrapConnection, kGetConnection, kListApis, kMetadata, kOptions, kPerformDeduplicated, kPerformWithRetry, kValidateOptions } from "./base";
2
2
  export * from "./options";
3
3
  export * from "./types";
@@ -157,6 +157,7 @@ export declare const baseOptionsSchema: {
157
157
  required: string[];
158
158
  additionalProperties: boolean;
159
159
  };
160
+ context: boolean;
160
161
  metadataMaxAge: {
161
162
  type: string;
162
163
  minimum: number;
@@ -33,6 +33,7 @@ export type RetryDelayGetter<Owner = object> = (client: Owner, operationId: stri
33
33
  export interface BaseOptions extends ConnectionOptions {
34
34
  clientId: string;
35
35
  bootstrapBrokers: Broker[] | string[];
36
+ context?: unknown;
36
37
  timeout?: number;
37
38
  retries?: number | boolean;
38
39
  retryDelay?: number | RetryDelayGetter;
@@ -1,6 +1,7 @@
1
1
  import { type CallbackWithPromise } from "../../apis/callbacks";
2
2
  import { type FetchResponse } from "../../apis/consumer/fetch-v17";
3
- import { Base, type BaseEvents } from "../base/base";
3
+ import { type ConnectionPool } from "../../network/connection-pool";
4
+ import { Base, type BaseEvents, kCreateConnectionPool } from "../base/base";
4
5
  import { MessagesStream } from "./messages-stream";
5
6
  import { TopicsMap } from "./topics-map";
6
7
  import { type CommitOptions, type ConsumeOptions, type ConsumerGroupJoinPayload, type ConsumerGroupLeavePayload, type ConsumerGroupRebalancePayload, type ConsumerHeartbeatErrorPayload, type ConsumerHeartbeatPayload, type ConsumerOptions, type FetchOptions, type GetLagOptions, type GroupAssignment, type GroupOptions, type ListCommitsOptions, type ListOffsetsOptions, type Offsets, type OffsetsWithTimestamps } from "./types";
@@ -28,6 +29,7 @@ export declare class Consumer<Key = Buffer, Value = Buffer, HeaderKey = Buffer,
28
29
  get streamsCount(): number;
29
30
  get lastHeartbeat(): Date | null;
30
31
  get coordinatorId(): number | null;
32
+ get streamContext(): unknown;
31
33
  close(force: boolean | CallbackWithPromise<void>, callback?: CallbackWithPromise<void>): void;
32
34
  close(force?: boolean): Promise<void>;
33
35
  isActive(): boolean;
@@ -49,6 +51,7 @@ export declare class Consumer<Key = Buffer, Value = Buffer, HeaderKey = Buffer,
49
51
  stopLagMonitoring(): void;
50
52
  findGroupCoordinator(callback: CallbackWithPromise<number>): void;
51
53
  findGroupCoordinator(): Promise<number>;
54
+ [kCreateConnectionPool](context?: unknown): ConnectionPool;
52
55
  joinGroup(options: GroupOptions, callback: CallbackWithPromise<string>): void;
53
56
  joinGroup(options?: GroupOptions): Promise<string>;
54
57
  leaveGroup(force?: boolean | CallbackWithPromise<void>, callback?: CallbackWithPromise<void>): void;
@@ -15,6 +15,7 @@ export declare class MessagesStream<Key, Value, HeaderKey, HeaderValue> extends
15
15
  constructor(consumer: Consumer<Key, Value, HeaderKey, HeaderValue>, options: ConsumeOptions<Key, Value, HeaderKey, HeaderValue>);
16
16
  get consumer(): Consumer<Key, Value, HeaderKey, HeaderValue>;
17
17
  get offsetsToFetch(): Map<string, bigint>;
18
+ get context(): unknown;
18
19
  get offsetsToCommit(): Map<string, CommitOptionsPartition>;
19
20
  get offsetsCommitted(): Map<string, bigint>;
20
21
  get committedOffsets(): Map<string, bigint>;
@@ -317,6 +317,7 @@ export declare const consumeOptionsSchema: {
317
317
  pattern: string;
318
318
  };
319
319
  };
320
+ context: boolean;
320
321
  mode: {
321
322
  type: string;
322
323
  enum: import("./types").MessagesStreamModeValue[];
@@ -475,6 +476,8 @@ export declare const consumerOptionsSchema: {
475
476
  type: string;
476
477
  pattern: string;
477
478
  };
479
+ context: boolean;
480
+ streamContext: boolean;
478
481
  };
479
482
  required: string[];
480
483
  additionalProperties: boolean;
@@ -74,6 +74,7 @@ export interface ConsumeBaseOptions<Key, Value, HeaderKey, HeaderValue> {
74
74
  }
75
75
  export interface StreamOptions {
76
76
  topics: string[];
77
+ context?: unknown;
77
78
  mode?: MessagesStreamModeValue;
78
79
  fallbackMode?: MessagesStreamFallbackModeValue;
79
80
  maxFetches?: number;
@@ -83,6 +84,8 @@ export interface StreamOptions {
83
84
  export type ConsumeOptions<Key, Value, HeaderKey, HeaderValue> = StreamOptions & ConsumeBaseOptions<Key, Value, HeaderKey, HeaderValue> & GroupOptions;
84
85
  export type ConsumerOptions<Key, Value, HeaderKey, HeaderValue> = BaseOptions & {
85
86
  groupId: string;
87
+ context?: unknown;
88
+ streamContext?: unknown;
86
89
  } & (GroupOptions | ConsumerGroupOptions) & ConsumeBaseOptions<Key, Value, HeaderKey, HeaderValue>;
87
90
  export type FetchOptions<Key, Value, HeaderKey, HeaderValue> = Pick<ConsumeBaseOptions<Key, Value, HeaderKey, HeaderValue>, 'minBytes' | 'maxBytes' | 'maxWaitTime' | 'isolationLevel'> & {
88
91
  node: number;
@@ -1,4 +1,5 @@
1
1
  export * from "./options";
2
+ export * from "./partitioners";
2
3
  export * from "./producer-stream";
3
4
  export * from "./producer";
4
5
  export * from "./types";
@@ -0,0 +1,3 @@
1
+ import { type MessageToProduce } from "../../protocol/records";
2
+ export declare function defaultPartitioner<Key = Buffer, Value = Buffer, HeaderKey = Buffer, HeaderValue = Buffer>(_: MessageToProduce<Key, Value, HeaderKey, HeaderValue>, key?: Buffer | undefined): number;
3
+ export declare function compatibilityPartitioner<Key = Buffer, Value = Buffer, HeaderKey = Buffer, HeaderValue = Buffer>(_: MessageToProduce<Key, Value, HeaderKey, HeaderValue>, key?: Buffer | undefined): number;
@@ -12,7 +12,7 @@ export interface ProduceResult {
12
12
  offsets?: TopicWithPartitionAndOffset[];
13
13
  unwritableNodes?: number[];
14
14
  }
15
- export type Partitioner<Key, Value, HeaderKey, HeaderValue> = (message: MessageToProduce<Key, Value, HeaderKey, HeaderValue>) => number;
15
+ export type Partitioner<Key, Value, HeaderKey, HeaderValue> = (message: MessageToProduce<Key, Value, HeaderKey, HeaderValue>, key?: Buffer | undefined) => number;
16
16
  export interface ProducerStreamReport {
17
17
  batchId: number;
18
18
  count: number;
@@ -25,6 +25,8 @@ export declare class ConnectionPool extends TypedEventEmitter<ConnectionPoolEven
25
25
  #private;
26
26
  constructor(clientId: string, connectionOptions?: ConnectionOptions);
27
27
  get instanceId(): number;
28
+ get ownerId(): number | undefined;
29
+ get context(): unknown;
28
30
  get(broker: Broker, callback: CallbackWithPromise<Connection>): void;
29
31
  get(broker: Broker): Promise<Connection>;
30
32
  getFirstAvailable(brokers: Broker[], callback: CallbackWithPromise<Connection>): void;
@@ -46,6 +46,7 @@ export interface ConnectionOptions {
46
46
  sasl?: SASLOptions;
47
47
  ownerId?: number;
48
48
  handleBackPressure?: boolean;
49
+ context?: unknown;
49
50
  }
50
51
  export interface Request {
51
52
  correlationId: number;
@@ -83,7 +84,9 @@ export declare class Connection extends TypedEventEmitter<ConnectionEvents> {
83
84
  get host(): string | undefined;
84
85
  get port(): number | undefined;
85
86
  get instanceId(): number;
87
+ get ownerId(): number | undefined;
86
88
  get status(): ConnectionStatusValue;
89
+ get context(): unknown;
87
90
  get socket(): Socket;
88
91
  isConnected(): boolean;
89
92
  connect(host: string, port: number, callback?: CallbackWithPromise<void>): void | Promise<void>;
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export const name = "@platformatic/kafka";
2
- export const version = "1.30.0";
2
+ export const version = "1.32.0";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platformatic/kafka",
3
- "version": "1.30.0",
3
+ "version": "1.32.0",
4
4
  "description": "Modern and performant client for Apache Kafka",
5
5
  "homepage": "https://github.com/platformatic/kafka",
6
6
  "author": "Platformatic Inc. <oss@platformatic.dev> (https://platformatic.dev)",
@@ -93,6 +93,7 @@
93
93
  "format": "prettier -w benchmarks playground src test",
94
94
  "test": "c8 -c test/config/c8-local.json ./scripts/node --test --test-reporter=cleaner-spec-reporter 'test/*.test.ts' 'test/*/*.test.ts' 'test/*/*/*.test.ts'",
95
95
  "test:ci": "c8 -c test/config/c8-ci.json ./scripts/node --test --test-reporter=cleaner-spec-reporter 'test/*.test.ts' 'test/*/*.test.ts' 'test/*/*/*.test.ts'",
96
+ "test:memory": "NODE_OPTIONS='--expose-gc' ./scripts/node --test --test-reporter=cleaner-spec-reporter 'test/**/*.memory-test.ts'",
96
97
  "test:docker:up": "docker-compose up -d --wait",
97
98
  "test:docker:down": "docker-compose down",
98
99
  "ci": "npm run build && npm run lint && npm run test:ci",