@platformatic/kafka 1.29.0 → 1.31.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 (70) hide show
  1. package/README.md +1 -1
  2. package/dist/apis/admin/alter-partition-reassignments-v0.d.ts +2 -2
  3. package/dist/apis/admin/alter-partition-reassignments-v0.js +1 -1
  4. package/dist/apis/admin/alter-partition-reassignments-v1.d.ts +30 -0
  5. package/dist/apis/admin/alter-partition-reassignments-v1.js +71 -0
  6. package/dist/apis/admin/index.d.ts +2 -0
  7. package/dist/apis/admin/index.js +2 -0
  8. package/dist/apis/admin/list-transactions-v0.d.ts +3 -2
  9. package/dist/apis/admin/list-transactions-v0.js +1 -1
  10. package/dist/apis/admin/list-transactions-v1.d.ts +3 -2
  11. package/dist/apis/admin/list-transactions-v1.js +1 -1
  12. package/dist/apis/admin/list-transactions-v2.d.ts +20 -0
  13. package/dist/apis/admin/list-transactions-v2.js +49 -0
  14. package/dist/apis/callbacks.js +1 -1
  15. package/dist/apis/consumer/consumer-group-heartbeat-v0.d.ts +2 -2
  16. package/dist/apis/consumer/consumer-group-heartbeat-v0.js +1 -1
  17. package/dist/apis/consumer/consumer-group-heartbeat-v1.d.ts +27 -0
  18. package/dist/apis/consumer/consumer-group-heartbeat-v1.js +70 -0
  19. package/dist/apis/consumer/index.d.ts +1 -0
  20. package/dist/apis/consumer/index.js +1 -0
  21. package/dist/clients/admin/admin.d.ts +3 -1
  22. package/dist/clients/admin/admin.js +63 -35
  23. package/dist/clients/admin/options.d.ts +22 -0
  24. package/dist/clients/admin/options.js +15 -1
  25. package/dist/clients/admin/types.d.ts +11 -1
  26. package/dist/clients/base/base.d.ts +4 -1
  27. package/dist/clients/base/base.js +17 -2
  28. package/dist/clients/base/index.d.ts +1 -1
  29. package/dist/clients/base/index.js +1 -1
  30. package/dist/clients/base/options.d.ts +1 -0
  31. package/dist/clients/base/options.js +1 -0
  32. package/dist/clients/base/types.d.ts +1 -0
  33. package/dist/clients/consumer/consumer.d.ts +4 -1
  34. package/dist/clients/consumer/consumer.js +46 -5
  35. package/dist/clients/consumer/messages-stream.d.ts +1 -0
  36. package/dist/clients/consumer/messages-stream.js +65 -15
  37. package/dist/clients/consumer/options.d.ts +3 -0
  38. package/dist/clients/consumer/options.js +3 -0
  39. package/dist/clients/consumer/types.d.ts +3 -0
  40. package/dist/clients/producer/producer.js +13 -3
  41. package/dist/errors.js +9 -1
  42. package/dist/network/connection-pool.d.ts +2 -0
  43. package/dist/network/connection-pool.js +11 -2
  44. package/dist/network/connection.d.ts +3 -0
  45. package/dist/network/connection.js +34 -4
  46. package/dist/registries/abstract.js +4 -0
  47. package/dist/typescript-4/dist/apis/admin/alter-partition-reassignments-v0.d.ts +2 -2
  48. package/dist/typescript-4/dist/apis/admin/alter-partition-reassignments-v1.d.ts +30 -0
  49. package/dist/typescript-4/dist/apis/admin/index.d.ts +2 -0
  50. package/dist/typescript-4/dist/apis/admin/list-transactions-v0.d.ts +3 -2
  51. package/dist/typescript-4/dist/apis/admin/list-transactions-v1.d.ts +3 -2
  52. package/dist/typescript-4/dist/apis/admin/list-transactions-v2.d.ts +20 -0
  53. package/dist/typescript-4/dist/apis/consumer/consumer-group-heartbeat-v0.d.ts +2 -2
  54. package/dist/typescript-4/dist/apis/consumer/consumer-group-heartbeat-v1.d.ts +27 -0
  55. package/dist/typescript-4/dist/apis/consumer/index.d.ts +1 -0
  56. package/dist/typescript-4/dist/clients/admin/admin.d.ts +3 -1
  57. package/dist/typescript-4/dist/clients/admin/options.d.ts +22 -0
  58. package/dist/typescript-4/dist/clients/admin/types.d.ts +11 -1
  59. package/dist/typescript-4/dist/clients/base/base.d.ts +4 -1
  60. package/dist/typescript-4/dist/clients/base/index.d.ts +1 -1
  61. package/dist/typescript-4/dist/clients/base/options.d.ts +1 -0
  62. package/dist/typescript-4/dist/clients/base/types.d.ts +1 -0
  63. package/dist/typescript-4/dist/clients/consumer/consumer.d.ts +4 -1
  64. package/dist/typescript-4/dist/clients/consumer/messages-stream.d.ts +1 -0
  65. package/dist/typescript-4/dist/clients/consumer/options.d.ts +3 -0
  66. package/dist/typescript-4/dist/clients/consumer/types.d.ts +3 -0
  67. package/dist/typescript-4/dist/network/connection-pool.d.ts +2 -0
  68. package/dist/typescript-4/dist/network/connection.d.ts +3 -0
  69. package/dist/version.js +1 -1
  70. package/package.json +2 -1
@@ -5,7 +5,7 @@ import { type CallbackWithPromise } from "../../apis/callbacks";
5
5
  import { type Callback } from "../../apis/definitions";
6
6
  import { type Acl } from "../../apis/types";
7
7
  import { Base } from "../base/base";
8
- import { type AdminListOffsetsOptions, type AdminOptions, type AlterClientQuotasOptions, type AlterConfigsOptions, type AlterConsumerGroupOffsetsOptions, type BrokerLogDirDescription, type ConfigDescription, type CreateAclsOptions, type CreatedTopic, type CreatePartitionsOptions, type CreateTopicsOptions, type DeleteAclsOptions, type DeleteConsumerGroupOffsetsOptions, type DeleteRecordsOptions, type DeleteGroupsOptions, type DeleteTopicsOptions, type DeletedRecordsTopic, type DescribeAclsOptions, type DescribeClientQuotasOptions, type DescribeConfigsOptions, type DescribeGroupsOptions, type DescribeLogDirsOptions, type Group, type GroupBase, type IncrementalAlterConfigsOptions, type ListConsumerGroupOffsetsGroup, type ListConsumerGroupOffsetsOptions, type ListedOffsetsTopic, type ListGroupsOptions, type ListTopicsOptions, type RemoveMembersFromConsumerGroupOptions } from "./types";
8
+ import { type AdminListOffsetsOptions, type AdminOptions, type AlterClientQuotasOptions, type AlterConfigsOptions, type AlterConsumerGroupOffsetsOptions, type BrokerLogDirDescription, type ConfigDescription, type CreateAclsOptions, type CreatedTopic, type CreatePartitionsOptions, type CreateTopicsOptions, type DeleteAclsOptions, type DeleteConsumerGroupOffsetsOptions, type DeleteRecordsOptions, type DeleteGroupsOptions, type DeleteTopicsOptions, type DeletedRecordsTopic, type DescribeAclsOptions, type DescribeClientQuotasOptions, type DescribeConfigsOptions, type DescribeGroupsOptions, type DescribeLogDirsOptions, type FindCoordinatorOptions, type FindCoordinatorResult, type Group, type GroupBase, type IncrementalAlterConfigsOptions, type ListConsumerGroupOffsetsGroup, type ListConsumerGroupOffsetsOptions, type ListedOffsetsTopic, type ListGroupsOptions, type ListTopicsOptions, type RemoveMembersFromConsumerGroupOptions } from "./types";
9
9
  export declare class Admin extends Base<AdminOptions> {
10
10
  #private;
11
11
  constructor(options: AdminOptions);
@@ -21,6 +21,8 @@ export declare class Admin extends Base<AdminOptions> {
21
21
  listGroups(options?: ListGroupsOptions): Promise<Map<string, GroupBase>>;
22
22
  describeGroups(options: DescribeGroupsOptions, callback: CallbackWithPromise<Map<string, Group>>): void;
23
23
  describeGroups(options: DescribeGroupsOptions): Promise<Map<string, Group>>;
24
+ findCoordinator(options: FindCoordinatorOptions, callback: CallbackWithPromise<FindCoordinatorResult[]>): void;
25
+ findCoordinator(options: FindCoordinatorOptions): Promise<FindCoordinatorResult[]>;
24
26
  deleteGroups(options: DeleteGroupsOptions, callback: CallbackWithPromise<void>): void;
25
27
  deleteGroups(options: DeleteGroupsOptions): Promise<void>;
26
28
  removeMembersFromConsumerGroup(options: RemoveMembersFromConsumerGroupOptions, callback: CallbackWithPromise<void>): void;
@@ -886,6 +886,25 @@ export declare const adminListOffsetsOptionsSchema: {
886
886
  required: string[];
887
887
  additionalProperties: boolean;
888
888
  };
889
+ export declare const findCoordinatorOptionsSchema: {
890
+ type: string;
891
+ properties: {
892
+ keyType: {
893
+ type: string;
894
+ enum: (0 | 1 | 2)[];
895
+ };
896
+ keys: {
897
+ type: string;
898
+ items: {
899
+ type: string;
900
+ pattern: string;
901
+ };
902
+ minItems: number;
903
+ };
904
+ };
905
+ required: string[];
906
+ additionalProperties: boolean;
907
+ };
889
908
  export declare const createTopicsOptionsValidator: import("ajv").ValidateFunction<{
890
909
  [x: string]: {};
891
910
  }>;
@@ -947,4 +966,7 @@ export declare const deleteAclsOptionsValidator: import("ajv").ValidateFunction<
947
966
  }>;
948
967
  export declare const adminListOffsetsOptionsValidator: import("ajv").ValidateFunction<{
949
968
  [x: string]: {};
969
+ }>;
970
+ export declare const findCoordinatorOptionsValidator: import("ajv").ValidateFunction<{
971
+ [x: string]: {};
950
972
  }>;
@@ -6,7 +6,7 @@ import { type DescribeClientQuotasRequestComponent } from "../../apis/admin/desc
6
6
  import { type DescribeConfigsRequestResource, type DescribeConfigsResponseConfig } from "../../apis/admin/describe-configs-v4";
7
7
  import { type DescribeLogDirsRequestTopic, type DescribeLogDirsResponse, type DescribeLogDirsResponseResult } from "../../apis/admin/describe-log-dirs-v4";
8
8
  import { type IncrementalAlterConfigsRequestResource } from "../../apis/admin/incremental-alter-configs-v1";
9
- import { type ConfigResourceTypeValue, type ConsumerGroupStateValue, type FetchIsolationLevelValue } from "../../apis/enumerations";
9
+ import { type ConfigResourceTypeValue, type ConsumerGroupStateValue, type FetchIsolationLevelValue, type FindCoordinatorKeyTypeValue } from "../../apis/enumerations";
10
10
  import { type Acl, type AclFilter } from "../../apis/types";
11
11
  import { type Nullable, type NullableString } from "../../protocol/definitions";
12
12
  import { type BaseOptions } from "../base/types";
@@ -67,6 +67,16 @@ export interface DescribeGroupsOptions {
67
67
  groups: string[];
68
68
  includeAuthorizedOperations?: boolean;
69
69
  }
70
+ export interface FindCoordinatorOptions {
71
+ keyType: FindCoordinatorKeyTypeValue;
72
+ keys: string[];
73
+ }
74
+ export interface FindCoordinatorResult {
75
+ key: string;
76
+ nodeId: number;
77
+ host: string;
78
+ port: number;
79
+ }
70
80
  export interface DeleteGroupsOptions {
71
81
  groups: string[];
72
82
  }
@@ -30,6 +30,7 @@ export declare const kFormatValidationErrors: unique symbol;
30
30
  export declare const kPrometheus: unique symbol;
31
31
  export declare const kClientType: unique symbol;
32
32
  export declare const kAfterCreate: unique symbol;
33
+ export declare const kContext: unique symbol;
33
34
  export interface BaseEvents extends TypedEvents {
34
35
  'client:broker:connect': (payload: ConnectionPoolEventPayload) => void;
35
36
  'client:broker:disconnect': (payload: ConnectionPoolEventPayload) => void;
@@ -52,6 +53,7 @@ export declare class Base<OptionsType extends BaseOptions = BaseOptions, EventsT
52
53
  [kInstance]: number;
53
54
  [kClientId]: string;
54
55
  [kClientType]: ClientType;
56
+ [kContext]: unknown;
55
57
  [kBootstrapBrokers]: Broker[];
56
58
  [kApis]: ApiVersionsResponseApi[];
57
59
  [kOptions]: OptionsType;
@@ -63,6 +65,7 @@ export declare class Base<OptionsType extends BaseOptions = BaseOptions, EventsT
63
65
  get clientId(): string;
64
66
  get closed(): boolean;
65
67
  get type(): ClientType;
68
+ get context(): unknown;
66
69
  emitWithDebug(section: string | null, name: string, ...args: any[]): boolean;
67
70
  close(callback: CallbackWithPromise<void>): void;
68
71
  close(): Promise<void>;
@@ -74,7 +77,7 @@ export declare class Base<OptionsType extends BaseOptions = BaseOptions, EventsT
74
77
  connectToBrokers(nodeIds?: number[] | null): Promise<Map<number, Connection>>;
75
78
  isActive(): boolean;
76
79
  isConnected(): boolean;
77
- [kCreateConnectionPool](): ConnectionPool;
80
+ [kCreateConnectionPool](context?: unknown): ConnectionPool;
78
81
  [kListApis](callback: CallbackWithPromise<ApiVersionsResponseApi[]>): void;
79
82
  [kMetadata](options: MetadataOptions, callback: CallbackWithPromise<ClusterMetadata>): void;
80
83
  [kCheckNotClosed](callback: CallbackWithPromise<any>): boolean;
@@ -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;
@@ -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.29.0";
2
+ export const version = "1.31.0";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platformatic/kafka",
3
- "version": "1.29.0",
3
+ "version": "1.31.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",