@platformatic/kafka 1.22.0-alpha.2 → 1.23.0-alpha.1

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 (156) hide show
  1. package/dist/apis/callbacks.js +2 -2
  2. package/dist/clients/base/options.d.ts +15 -0
  3. package/dist/clients/base/options.js +3 -0
  4. package/dist/network/connection.d.ts +3 -2
  5. package/dist/network/connection.js +4 -2
  6. package/dist/protocol/sasl/oauth-bearer.d.ts +2 -2
  7. package/dist/protocol/sasl/oauth-bearer.js +13 -2
  8. package/dist/protocol/sasl/utils.d.ts +2 -2
  9. package/dist/protocol/sasl/utils.js +13 -12
  10. package/dist/typescript-4/dist/apis/admin/alter-client-quotas-v1.d.ts +39 -0
  11. package/dist/typescript-4/dist/apis/admin/alter-configs-v2.d.ts +26 -0
  12. package/dist/typescript-4/dist/apis/admin/alter-partition-reassignments-v0.d.ts +30 -0
  13. package/dist/typescript-4/dist/apis/admin/alter-partition-v3.d.ts +39 -0
  14. package/dist/typescript-4/dist/apis/admin/alter-replica-log-dirs-v2.d.ts +26 -0
  15. package/dist/typescript-4/dist/apis/admin/alter-user-scram-credentials-v0.d.ts +27 -0
  16. package/dist/typescript-4/dist/apis/admin/consumer-group-describe-v0.d.ts +41 -0
  17. package/dist/typescript-4/dist/apis/admin/create-acls-v3.d.ts +24 -0
  18. package/dist/typescript-4/dist/apis/admin/create-delegation-token-v3.d.ts +24 -0
  19. package/dist/typescript-4/dist/apis/admin/create-partitions-v1.d.ts +24 -0
  20. package/dist/typescript-4/dist/apis/admin/create-partitions-v2.d.ts +24 -0
  21. package/dist/typescript-4/dist/apis/admin/create-partitions-v3.d.ts +24 -0
  22. package/dist/typescript-4/dist/apis/admin/create-topics-v7.d.ts +42 -0
  23. package/dist/typescript-4/dist/apis/admin/delete-acls-v3.d.ts +36 -0
  24. package/dist/typescript-4/dist/apis/admin/delete-groups-v2.d.ts +14 -0
  25. package/dist/typescript-4/dist/apis/admin/delete-records-v2.d.ts +27 -0
  26. package/dist/typescript-4/dist/apis/admin/delete-topics-v6.d.ts +21 -0
  27. package/dist/typescript-4/dist/apis/admin/describe-acls-v3.d.ts +25 -0
  28. package/dist/typescript-4/dist/apis/admin/describe-client-quotas-v0.d.ts +36 -0
  29. package/dist/typescript-4/dist/apis/admin/describe-cluster-v1.d.ts +23 -0
  30. package/dist/typescript-4/dist/apis/admin/describe-configs-v2.d.ts +38 -0
  31. package/dist/typescript-4/dist/apis/admin/describe-configs-v3.d.ts +38 -0
  32. package/dist/typescript-4/dist/apis/admin/describe-configs-v4.d.ts +38 -0
  33. package/dist/typescript-4/dist/apis/admin/describe-delegation-token-v3.d.ts +31 -0
  34. package/dist/typescript-4/dist/apis/admin/describe-groups-v5.d.ts +28 -0
  35. package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v4.d.ts +32 -0
  36. package/dist/typescript-4/dist/apis/admin/describe-producers-v0.d.ts +33 -0
  37. package/dist/typescript-4/dist/apis/admin/describe-quorum-v2.d.ts +50 -0
  38. package/dist/typescript-4/dist/apis/admin/describe-topic-partitions-v0.d.ts +42 -0
  39. package/dist/typescript-4/dist/apis/admin/describe-transactions-v0.d.ts +24 -0
  40. package/dist/typescript-4/dist/apis/admin/describe-user-scram-credentials-v0.d.ts +26 -0
  41. package/dist/typescript-4/dist/apis/admin/envelope-v0.d.ts +10 -0
  42. package/dist/typescript-4/dist/apis/admin/expire-delegation-token-v2.d.ts +11 -0
  43. package/dist/typescript-4/dist/apis/admin/incremental-alter-configs-v1.d.ts +27 -0
  44. package/dist/typescript-4/dist/apis/admin/index.d.ts +42 -0
  45. package/dist/typescript-4/dist/apis/admin/list-groups-v4.d.ts +17 -0
  46. package/dist/typescript-4/dist/apis/admin/list-groups-v5.d.ts +18 -0
  47. package/dist/typescript-4/dist/apis/admin/list-partition-reassignments-v0.d.ts +27 -0
  48. package/dist/typescript-4/dist/apis/admin/list-transactions-v1.d.ts +18 -0
  49. package/dist/typescript-4/dist/apis/admin/offset-delete-v0.d.ts +26 -0
  50. package/dist/typescript-4/dist/apis/admin/renew-delegation-token-v2.d.ts +11 -0
  51. package/dist/typescript-4/dist/apis/admin/unregister-broker-v0.d.ts +12 -0
  52. package/dist/typescript-4/dist/apis/admin/update-features-v1.d.ts +23 -0
  53. package/dist/typescript-4/dist/apis/callbacks.d.ts +10 -0
  54. package/dist/typescript-4/dist/apis/consumer/consumer-group-heartbeat-v0.d.ts +27 -0
  55. package/dist/typescript-4/dist/apis/consumer/fetch-v12.d.ts +46 -0
  56. package/dist/typescript-4/dist/apis/consumer/fetch-v13.d.ts +46 -0
  57. package/dist/typescript-4/dist/apis/consumer/fetch-v14.d.ts +46 -0
  58. package/dist/typescript-4/dist/apis/consumer/fetch-v15.d.ts +46 -0
  59. package/dist/typescript-4/dist/apis/consumer/fetch-v16.d.ts +46 -0
  60. package/dist/typescript-4/dist/apis/consumer/fetch-v17.d.ts +46 -0
  61. package/dist/typescript-4/dist/apis/consumer/heartbeat-v4.d.ts +11 -0
  62. package/dist/typescript-4/dist/apis/consumer/index.d.ts +18 -0
  63. package/dist/typescript-4/dist/apis/consumer/join-group-v9.d.ts +27 -0
  64. package/dist/typescript-4/dist/apis/consumer/leave-group-v5.d.ts +22 -0
  65. package/dist/typescript-4/dist/apis/consumer/list-offsets-v8.d.ts +30 -0
  66. package/dist/typescript-4/dist/apis/consumer/list-offsets-v9.d.ts +30 -0
  67. package/dist/typescript-4/dist/apis/consumer/offset-commit-v8.d.ts +29 -0
  68. package/dist/typescript-4/dist/apis/consumer/offset-commit-v9.d.ts +29 -0
  69. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v8.d.ts +37 -0
  70. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v9.d.ts +37 -0
  71. package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v4.d.ts +29 -0
  72. package/dist/typescript-4/dist/apis/consumer/sync-group-v5.d.ts +18 -0
  73. package/dist/typescript-4/dist/apis/definitions.d.ts +16 -0
  74. package/dist/typescript-4/dist/apis/enumerations.d.ts +143 -0
  75. package/dist/typescript-4/dist/apis/index.d.ts +9 -0
  76. package/dist/typescript-4/dist/apis/metadata/api-versions-v3.d.ts +17 -0
  77. package/dist/typescript-4/dist/apis/metadata/api-versions-v4.d.ts +17 -0
  78. package/dist/typescript-4/dist/apis/metadata/find-coordinator-v4.d.ts +19 -0
  79. package/dist/typescript-4/dist/apis/metadata/find-coordinator-v5.d.ts +19 -0
  80. package/dist/typescript-4/dist/apis/metadata/find-coordinator-v6.d.ts +19 -0
  81. package/dist/typescript-4/dist/apis/metadata/index.d.ts +9 -0
  82. package/dist/typescript-4/dist/apis/metadata/metadata-v10.d.ts +37 -0
  83. package/dist/typescript-4/dist/apis/metadata/metadata-v11.d.ts +37 -0
  84. package/dist/typescript-4/dist/apis/metadata/metadata-v12.d.ts +37 -0
  85. package/dist/typescript-4/dist/apis/metadata/metadata-v9.d.ts +37 -0
  86. package/dist/typescript-4/dist/apis/producer/add-offsets-to-txn-v4.d.ts +10 -0
  87. package/dist/typescript-4/dist/apis/producer/add-partitions-to-txn-v5.d.ts +34 -0
  88. package/dist/typescript-4/dist/apis/producer/end-txn-v4.d.ts +10 -0
  89. package/dist/typescript-4/dist/apis/producer/index.d.ts +11 -0
  90. package/dist/typescript-4/dist/apis/producer/init-producer-id-v4.d.ts +21 -0
  91. package/dist/typescript-4/dist/apis/producer/init-producer-id-v5.d.ts +21 -0
  92. package/dist/typescript-4/dist/apis/producer/produce-v10.d.ts +29 -0
  93. package/dist/typescript-4/dist/apis/producer/produce-v11.d.ts +29 -0
  94. package/dist/typescript-4/dist/apis/producer/produce-v7.d.ts +29 -0
  95. package/dist/typescript-4/dist/apis/producer/produce-v8.d.ts +29 -0
  96. package/dist/typescript-4/dist/apis/producer/produce-v9.d.ts +29 -0
  97. package/dist/typescript-4/dist/apis/producer/txn-offset-commit-v4.d.ts +29 -0
  98. package/dist/typescript-4/dist/apis/security/index.d.ts +2 -0
  99. package/dist/typescript-4/dist/apis/security/sasl-authenticate-v2.d.ts +15 -0
  100. package/dist/typescript-4/dist/apis/security/sasl-handshake-v1.d.ts +10 -0
  101. package/dist/typescript-4/dist/apis/telemetry/get-telemetry-subscriptions-v0.d.ts +18 -0
  102. package/dist/typescript-4/dist/apis/telemetry/index.d.ts +3 -0
  103. package/dist/typescript-4/dist/apis/telemetry/list-client-metrics-resources-v0.d.ts +14 -0
  104. package/dist/typescript-4/dist/apis/telemetry/push-telemetry-v0.d.ts +10 -0
  105. package/dist/typescript-4/dist/clients/admin/admin.d.ts +28 -0
  106. package/dist/typescript-4/dist/clients/admin/index.d.ts +3 -0
  107. package/dist/typescript-4/dist/clients/admin/options.d.ts +297 -0
  108. package/dist/typescript-4/dist/clients/admin/types.d.ts +79 -0
  109. package/dist/typescript-4/dist/clients/base/base.d.ts +75 -0
  110. package/dist/typescript-4/dist/clients/base/index.d.ts +3 -0
  111. package/dist/typescript-4/dist/clients/base/options.d.ts +198 -0
  112. package/dist/typescript-4/dist/clients/base/types.d.ts +41 -0
  113. package/dist/typescript-4/dist/clients/consumer/consumer.d.ts +44 -0
  114. package/dist/typescript-4/dist/clients/consumer/index.d.ts +5 -0
  115. package/dist/typescript-4/dist/clients/consumer/messages-stream.d.ts +81 -0
  116. package/dist/typescript-4/dist/clients/consumer/options.d.ts +748 -0
  117. package/dist/typescript-4/dist/clients/consumer/partitions-assigners.d.ts +3 -0
  118. package/dist/typescript-4/dist/clients/consumer/topics-map.d.ts +11 -0
  119. package/dist/typescript-4/dist/clients/consumer/types.d.ts +100 -0
  120. package/dist/typescript-4/dist/clients/index.d.ts +5 -0
  121. package/dist/typescript-4/dist/clients/metrics.d.ts +60 -0
  122. package/dist/typescript-4/dist/clients/producer/index.d.ts +3 -0
  123. package/dist/typescript-4/dist/clients/producer/options.d.ts +164 -0
  124. package/dist/typescript-4/dist/clients/producer/producer.d.ts +16 -0
  125. package/dist/typescript-4/dist/clients/producer/types.d.ts +29 -0
  126. package/dist/typescript-4/dist/clients/serde.d.ts +42 -0
  127. package/dist/typescript-4/dist/diagnostic.d.ts +54 -0
  128. package/dist/typescript-4/dist/errors.d.ts +82 -0
  129. package/dist/typescript-4/dist/index.d.ts +7 -0
  130. package/dist/typescript-4/dist/network/connection-pool.d.ts +16 -0
  131. package/dist/typescript-4/dist/network/connection.d.ts +71 -0
  132. package/dist/typescript-4/dist/network/index.d.ts +3 -0
  133. package/dist/typescript-4/dist/network/utils.d.ts +2 -0
  134. package/dist/typescript-4/dist/protocol/apis.d.ts +2 -0
  135. package/dist/typescript-4/dist/protocol/compression.d.ts +79 -0
  136. package/dist/typescript-4/dist/protocol/crc32c.d.ts +4 -0
  137. package/dist/typescript-4/dist/protocol/definitions.d.ts +12 -0
  138. package/dist/typescript-4/dist/protocol/dynamic-buffer.d.ts +65 -0
  139. package/dist/typescript-4/dist/protocol/errors.d.ts +8 -0
  140. package/dist/typescript-4/dist/protocol/index.d.ts +16 -0
  141. package/dist/typescript-4/dist/protocol/murmur2.d.ts +1 -0
  142. package/dist/typescript-4/dist/protocol/reader.d.ts +61 -0
  143. package/dist/typescript-4/dist/protocol/records.d.ts +111 -0
  144. package/dist/typescript-4/dist/protocol/sasl/oauth-bearer.d.ts +6 -0
  145. package/dist/typescript-4/dist/protocol/sasl/plain.d.ts +5 -0
  146. package/dist/typescript-4/dist/protocol/sasl/scram-sha.d.ts +39 -0
  147. package/dist/typescript-4/dist/protocol/sasl/utils.d.ts +4 -0
  148. package/dist/typescript-4/dist/protocol/varint.d.ts +12 -0
  149. package/dist/typescript-4/dist/protocol/writer.d.ts +48 -0
  150. package/dist/typescript-4/dist/symbols.d.ts +3 -0
  151. package/dist/typescript-4/dist/utils.d.ts +37 -0
  152. package/dist/typescript-4/dist/version.d.ts +2 -0
  153. package/dist/utils.d.ts +6 -1
  154. package/dist/utils.js +3 -4
  155. package/dist/version.js +1 -1
  156. package/package.json +15 -1
@@ -1,5 +1,5 @@
1
1
  import { MultipleErrors, TimeoutError } from "../errors.js";
2
- import { PromiseWithResolvers } from "../utils.js";
2
+ import { promiseWithResolvers } from "../utils.js";
3
3
  export const kCallbackPromise = Symbol('plt.kafka.callbackPromise');
4
4
  // This is only meaningful for testing
5
5
  export const kNoopCallbackReturnValue = Symbol('plt.kafka.noopCallbackReturnValue');
@@ -7,7 +7,7 @@ export const noopCallback = () => {
7
7
  return Promise.resolve(kNoopCallbackReturnValue);
8
8
  };
9
9
  export function createPromisifiedCallback() {
10
- const { promise, resolve, reject } = PromiseWithResolvers();
10
+ const { promise, resolve, reject } = promiseWithResolvers();
11
11
  function callback(error, payload) {
12
12
  if (error) {
13
13
  reject(error);
@@ -121,6 +121,21 @@ export declare const baseOptionsSchema: {
121
121
  type?: undefined;
122
122
  })[];
123
123
  };
124
+ oauthBearerExtensions: {
125
+ oneOf: ({
126
+ type: string;
127
+ patternProperties: {
128
+ '.+': {
129
+ type: string;
130
+ };
131
+ };
132
+ function?: undefined;
133
+ } | {
134
+ function: boolean;
135
+ type?: undefined;
136
+ patternProperties?: undefined;
137
+ })[];
138
+ };
124
139
  authBytesValidator: {
125
140
  function: boolean;
126
141
  };
@@ -41,6 +41,9 @@ export const baseOptionsSchema = {
41
41
  username: { oneOf: [{ type: 'string' }, { function: true }] },
42
42
  password: { oneOf: [{ type: 'string' }, { function: true }] },
43
43
  token: { oneOf: [{ type: 'string' }, { function: true }] },
44
+ oauthBearerExtensions: {
45
+ oneOf: [{ type: 'object', patternProperties: { '.+': { type: 'string' } } }, { function: true }]
46
+ },
44
47
  authBytesValidator: { function: true },
45
48
  authenticate: { function: true }
46
49
  },
@@ -6,7 +6,7 @@ import { type Callback, type ResponseParser } from '../apis/definitions.ts';
6
6
  import { type SASLMechanismValue } from '../apis/enumerations.ts';
7
7
  import { type SaslAuthenticateResponse, type SASLAuthenticationAPI } from '../apis/security/sasl-authenticate-v2.ts';
8
8
  import { Writer } from '../protocol/writer.ts';
9
- export type SASLCredentialProvider = () => string | Promise<string>;
9
+ export type SASLCredentialProvider<T = string> = () => T | Promise<T>;
10
10
  export interface Broker {
11
11
  host: string;
12
12
  port: number;
@@ -17,8 +17,9 @@ export interface SASLOptions {
17
17
  username?: string | SASLCredentialProvider;
18
18
  password?: string | SASLCredentialProvider;
19
19
  token?: string | SASLCredentialProvider;
20
- authBytesValidator?: (authBytes: Buffer, callback: CallbackWithPromise<Buffer>) => void;
20
+ oauthBearerExtensions?: Record<string, string> | SASLCredentialProvider<Record<string, string>>;
21
21
  authenticate?: SASLCustomAuthenticator;
22
+ authBytesValidator?: (authBytes: Buffer, callback: CallbackWithPromise<Buffer>) => void;
22
23
  }
23
24
  export interface ConnectionOptions {
24
25
  connectTimeout?: number;
@@ -68,9 +68,11 @@ export class Connection extends EventEmitter {
68
68
  this.#socketMustBeDrained = false;
69
69
  notifyCreation('connection', this);
70
70
  }
71
+ /* c8 ignore next 3 - Simple getter */
71
72
  get host() {
72
73
  return this.#status === ConnectionStatuses.CONNECTING || ConnectionStatuses.CONNECTED ? this.#host : undefined;
73
74
  }
75
+ /* c8 ignore next 3 - Simple getter */
74
76
  get port() {
75
77
  return this.#status === ConnectionStatuses.CONNECTING || ConnectionStatuses.CONNECTED ? this.#port : undefined;
76
78
  }
@@ -257,7 +259,7 @@ export class Connection extends EventEmitter {
257
259
  if (this.#status === ConnectionStatuses.CONNECTING) {
258
260
  this.#status = ConnectionStatuses.AUTHENTICATING;
259
261
  }
260
- const { mechanism, username, password, token, authenticate } = this.#options.sasl;
262
+ const { mechanism, username, password, token, oauthBearerExtensions, authenticate } = this.#options.sasl;
261
263
  if (!allowedSASLMechanisms.includes(mechanism)) {
262
264
  this.#onConnectionError(host, port, diagnosticContext, new UserError(`SASL mechanism ${mechanism} not supported.`));
263
265
  return;
@@ -276,7 +278,7 @@ export class Connection extends EventEmitter {
276
278
  saslPlain.authenticate(saslAuthenticateV2.api, this, username, password, callback);
277
279
  }
278
280
  else if (mechanism === SASLMechanisms.OAUTHBEARER) {
279
- saslOAuthBearer.authenticate(saslAuthenticateV2.api, this, token, callback);
281
+ saslOAuthBearer.authenticate(saslAuthenticateV2.api, this, token, oauthBearerExtensions, callback);
280
282
  }
281
283
  else if (mechanism === SASLMechanisms.GSSAPI) {
282
284
  callback(new UserError('No custom SASL/GSSAPI authenticator provided.'), undefined);
@@ -2,5 +2,5 @@ import { type CallbackWithPromise } from '../../apis/callbacks.ts';
2
2
  import { type SASLAuthenticationAPI, type SaslAuthenticateResponse } from '../../apis/security/sasl-authenticate-v2.ts';
3
3
  import { type Connection, type SASLCredentialProvider } from '../../network/connection.ts';
4
4
  export declare function jwtValidateAuthenticationBytes(authBytes: Buffer, callback: CallbackWithPromise<Buffer>): void;
5
- export declare function authenticate(authenticateAPI: SASLAuthenticationAPI, connection: Connection, tokenOrProvider: string | SASLCredentialProvider, callback: CallbackWithPromise<SaslAuthenticateResponse>): void;
6
- export declare function authenticate(authenticateAPI: SASLAuthenticationAPI, connection: Connection, tokenOrProvider: string | SASLCredentialProvider): Promise<SaslAuthenticateResponse>;
5
+ export declare function authenticate(authenticateAPI: SASLAuthenticationAPI, connection: Connection, tokenOrProvider: string | SASLCredentialProvider, extensions: Record<string, string> | SASLCredentialProvider<Record<string, string>>, callback: CallbackWithPromise<SaslAuthenticateResponse>): void;
6
+ export declare function authenticate(authenticateAPI: SASLAuthenticationAPI, connection: Connection, tokenOrProvider: string | SASLCredentialProvider, extensions: Record<string, string> | SASLCredentialProvider<Record<string, string>>): Promise<SaslAuthenticateResponse>;
@@ -18,7 +18,7 @@ export function jwtValidateAuthenticationBytes(authBytes, callback) {
18
18
  }
19
19
  callback(null, authBytes);
20
20
  }
21
- export function authenticate(authenticateAPI, connection, tokenOrProvider, callback) {
21
+ export function authenticate(authenticateAPI, connection, tokenOrProvider, extensionsOrProvider, callback) {
22
22
  if (!callback) {
23
23
  callback = createPromisifiedCallback();
24
24
  }
@@ -27,7 +27,18 @@ export function authenticate(authenticateAPI, connection, tokenOrProvider, callb
27
27
  callback(error, undefined);
28
28
  return;
29
29
  }
30
- authenticateAPI(connection, Buffer.from(`n,,\x01auth=Bearer ${token}\x01\x01`), callback);
30
+ getCredential('SASL/OAUTHBEARER extensions', extensionsOrProvider ?? {}, (error, extensionsMap) => {
31
+ if (error) {
32
+ return callback(error, undefined);
33
+ }
34
+ let extensions = '';
35
+ if (extensionsMap) {
36
+ for (const [key, value] of Object.entries(extensionsMap)) {
37
+ extensions += `\x01${key}=${value}`;
38
+ }
39
+ }
40
+ authenticateAPI(connection, Buffer.from(`n,,\x01auth=Bearer ${token}${extensions}\x01\x01`), callback);
41
+ });
31
42
  });
32
43
  return callback[kCallbackPromise];
33
44
  }
@@ -1,4 +1,4 @@
1
1
  import { type CallbackWithPromise } from '../../apis/index.ts';
2
2
  import { type SASLCredentialProvider } from '../../network/connection.ts';
3
- export declare function getCredential(label: string, credentialOrProvider: string | SASLCredentialProvider, callback: CallbackWithPromise<string>): void;
4
- export declare function getCredential(label: string, credentialOrProvider: string | SASLCredentialProvider): Promise<string>;
3
+ export declare function getCredential<T>(label: string, credentialOrProvider: T | SASLCredentialProvider<T>, callback: CallbackWithPromise<T>): void;
4
+ export declare function getCredential<T>(label: string, credentialOrProvider: T | SASLCredentialProvider<T>): Promise<T>;
@@ -4,33 +4,34 @@ export function getCredential(label, credentialOrProvider, callback) {
4
4
  if (!callback) {
5
5
  callback = createPromisifiedCallback();
6
6
  }
7
- if (typeof credentialOrProvider === 'string') {
8
- callback(null, credentialOrProvider);
7
+ if (typeof credentialOrProvider === 'undefined') {
8
+ callback(new AuthenticationError(`The ${label} should be a value or a function.`), undefined);
9
9
  return callback[kCallbackPromise];
10
10
  }
11
11
  else if (typeof credentialOrProvider !== 'function') {
12
- callback(new AuthenticationError(`The ${label} should be a string or a function.`), undefined);
12
+ callback(null, credentialOrProvider);
13
13
  return callback[kCallbackPromise];
14
14
  }
15
15
  try {
16
16
  const credential = credentialOrProvider();
17
- if (typeof credential === 'string') {
18
- callback(null, credential);
17
+ if (credential == null) {
18
+ callback(new AuthenticationError(`The ${label} provider should return a string or a promise that resolves to a value.`), undefined);
19
19
  return callback[kCallbackPromise];
20
20
  }
21
21
  else if (typeof credential?.then !== 'function') {
22
- callback(new AuthenticationError(`The ${label} provider should return a string or a promise that resolves to a string.`), undefined);
22
+ callback(null, credential);
23
23
  return callback[kCallbackPromise];
24
24
  }
25
+ ;
25
26
  credential
26
- .then(token => {
27
- if (typeof token !== 'string') {
28
- process.nextTick(callback, new AuthenticationError(`The ${label} provider should resolve to a string.`), undefined);
29
- return callback[kCallbackPromise];
27
+ .then((result) => {
28
+ if (result == null) {
29
+ process.nextTick(callback, new AuthenticationError(`The ${label} provider should resolve to a value.`), undefined);
30
+ return;
30
31
  }
31
- process.nextTick(callback, null, token);
32
+ process.nextTick(callback, null, result);
32
33
  })
33
- .catch(error => {
34
+ .catch((error) => {
34
35
  process.nextTick(callback, new AuthenticationError(`The ${label} provider threw an error.`, { cause: error }));
35
36
  });
36
37
  }
@@ -0,0 +1,39 @@
1
+ import { type NullableString } from "../../protocol/definitions";
2
+ import { type Reader } from "../../protocol/reader";
3
+ import { Writer } from "../../protocol/writer";
4
+ import { type ClientQuotaEntityType, type ClientQuotaKey } from "../enumerations";
5
+ export interface AlterClientQuotasRequestEntity {
6
+ entityType: ClientQuotaEntityType;
7
+ entityName?: NullableString;
8
+ }
9
+ export interface AlterClientQuotaRequestOpAddition {
10
+ key: ClientQuotaKey;
11
+ value: number;
12
+ remove: false;
13
+ }
14
+ export interface AlterClientQuotaRequestOpRemoval {
15
+ key: ClientQuotaKey;
16
+ remove: true;
17
+ }
18
+ export type AlterClientQuotasRequestOp = AlterClientQuotaRequestOpAddition | AlterClientQuotaRequestOpRemoval;
19
+ export interface AlterClientQuotasRequestEntry {
20
+ entities: AlterClientQuotasRequestEntity[];
21
+ ops: AlterClientQuotasRequestOp[];
22
+ }
23
+ export type AlterClientQuotasRequest = Parameters<typeof createRequest>;
24
+ export interface AlterClientQuotasResponseEntity {
25
+ entityType: string;
26
+ entityName: NullableString;
27
+ }
28
+ export interface AlterClientQuotasResponseEntries {
29
+ errorCode: number;
30
+ errorMessage: NullableString;
31
+ entity: AlterClientQuotasResponseEntity[];
32
+ }
33
+ export interface AlterClientQuotasResponse {
34
+ throttleTimeMs: number;
35
+ entries: AlterClientQuotasResponseEntries[];
36
+ }
37
+ export declare function createRequest(entries: AlterClientQuotasRequestEntry[], validateOnly: boolean): Writer;
38
+ export declare function parseResponse(_correlationId: number, apiKey: number, apiVersion: number, reader: Reader): AlterClientQuotasResponse;
39
+ export declare const api: import("../definitions").API<[entries: AlterClientQuotasRequestEntry[], validateOnly: boolean], AlterClientQuotasResponse>;
@@ -0,0 +1,26 @@
1
+ import { type NullableString } from "../../protocol/definitions";
2
+ import { type Reader } from "../../protocol/reader";
3
+ import { Writer } from "../../protocol/writer";
4
+ export interface AlterConfigsRequestConfig {
5
+ name: string;
6
+ value?: NullableString;
7
+ }
8
+ export interface AlterConfigsRequestResource {
9
+ resourceType: number;
10
+ resourceName: string;
11
+ configs: AlterConfigsRequestConfig[];
12
+ }
13
+ export type AlterConfigsRequest = Parameters<typeof createRequest>;
14
+ export interface AlterConfigsResponseResult {
15
+ errorCode: number;
16
+ errorMessage: NullableString;
17
+ resourceType: number;
18
+ resourceName: string;
19
+ }
20
+ export interface AlterConfigsResponse {
21
+ throttleTimeMs: number;
22
+ responses: AlterConfigsResponseResult[];
23
+ }
24
+ export declare function createRequest(resources: AlterConfigsRequestResource[], validateOnly: boolean): Writer;
25
+ export declare function parseResponse(_correlationId: number, apiKey: number, apiVersion: number, reader: Reader): AlterConfigsResponse;
26
+ export declare const api: import("../definitions").API<[resources: AlterConfigsRequestResource[], validateOnly: boolean], AlterConfigsResponse>;
@@ -0,0 +1,30 @@
1
+ import { type NullableString } from "../../protocol/definitions";
2
+ import { type Reader } from "../../protocol/reader";
3
+ import { Writer } from "../../protocol/writer";
4
+ export interface AlterPartitionReassignmentsRequestPartition {
5
+ partitionIndex: number;
6
+ replicas: number[];
7
+ }
8
+ export interface AlterPartitionReassignmentsRequestTopic {
9
+ name: string;
10
+ partitions: AlterPartitionReassignmentsRequestPartition[];
11
+ }
12
+ export type AlterPartitionReassignmentsRequest = Parameters<typeof createRequest>;
13
+ export interface AlterPartitionReassignmentsResponsePartition {
14
+ partitionIndex: number;
15
+ errorCode: number;
16
+ errorMessage: NullableString;
17
+ }
18
+ export interface AlterPartitionReassignmentsResponseResponse {
19
+ name: string;
20
+ partitions: AlterPartitionReassignmentsResponsePartition[];
21
+ }
22
+ export interface AlterPartitionReassignmentsResponse {
23
+ throttleTimeMs: number;
24
+ errorCode: number;
25
+ errorMessage: NullableString;
26
+ responses: AlterPartitionReassignmentsResponseResponse[];
27
+ }
28
+ export declare function createRequest(timeoutMs: number, topics: AlterPartitionReassignmentsRequestTopic[]): Writer;
29
+ export declare function parseResponse(_correlationId: number, apiKey: number, apiVersion: number, reader: Reader): AlterPartitionReassignmentsResponse;
30
+ export declare const api: import("../definitions").API<[timeoutMs: number, topics: AlterPartitionReassignmentsRequestTopic[]], AlterPartitionReassignmentsResponse>;
@@ -0,0 +1,39 @@
1
+ import { type Reader } from "../../protocol/reader";
2
+ import { Writer } from "../../protocol/writer";
3
+ export interface AlterPartitionRequestISR {
4
+ brokerId: number;
5
+ brokerEpoch: bigint;
6
+ }
7
+ export interface AlterPartitionRequestPartition {
8
+ partitionIndex: number;
9
+ leaderEpoch: number;
10
+ newIsrWithEpochs: AlterPartitionRequestISR[];
11
+ leaderRecoveryState: number;
12
+ partitionEpoch: number;
13
+ }
14
+ export interface AlterPartitionRequestTopic {
15
+ topicId: string;
16
+ partitions: AlterPartitionRequestPartition[];
17
+ }
18
+ export type AlterPartitionRequest = Parameters<typeof createRequest>;
19
+ export interface AlterPartitionResponsePartition {
20
+ partitionIndex: number;
21
+ errorCode: number;
22
+ leaderId: number;
23
+ leaderEpoch: number;
24
+ isr: number;
25
+ leaderRecoveryState: number;
26
+ partitionEpoch: number;
27
+ }
28
+ export interface AlterPartitionResponseTopic {
29
+ topicId: string;
30
+ partitions: AlterPartitionResponsePartition[];
31
+ }
32
+ export interface AlterPartitionResponse {
33
+ throttleTimeMs: number;
34
+ errorCode: number;
35
+ topics: AlterPartitionResponseTopic[];
36
+ }
37
+ export declare function createRequest(brokerId: number, brokerEpoch: bigint, topic: AlterPartitionRequestTopic[]): Writer;
38
+ export declare function parseResponse(_correlationId: number, apiKey: number, apiVersion: number, reader: Reader): AlterPartitionResponse;
39
+ export declare const api: import("../definitions").API<[brokerId: number, brokerEpoch: bigint, topic: AlterPartitionRequestTopic[]], AlterPartitionResponse>;
@@ -0,0 +1,26 @@
1
+ import { type Reader } from "../../protocol/reader";
2
+ import { Writer } from "../../protocol/writer";
3
+ export interface AlterReplicaLogDirsRequestTopic {
4
+ name: string;
5
+ partitions: number[];
6
+ }
7
+ export interface AlterReplicaLogDirsRequestDir {
8
+ path: string;
9
+ topics: AlterReplicaLogDirsRequestTopic[];
10
+ }
11
+ export type AlterReplicaLogDirsRequest = Parameters<typeof createRequest>;
12
+ export interface AlterReplicaLogDirsResponsePartition {
13
+ partitionIndex: number;
14
+ errorCode: number;
15
+ }
16
+ export interface AlterReplicaLogDirsResponseResult {
17
+ topicName: string;
18
+ partitions: AlterReplicaLogDirsResponsePartition[];
19
+ }
20
+ export interface AlterReplicaLogDirsResponse {
21
+ throttleTimeMs?: number;
22
+ results: AlterReplicaLogDirsResponseResult[];
23
+ }
24
+ export declare function createRequest(dirs: AlterReplicaLogDirsRequestDir[]): Writer;
25
+ export declare function parseResponse(_correlationId: number, apiKey: number, apiVersion: number, reader: Reader): AlterReplicaLogDirsResponse;
26
+ export declare const api: import("../definitions").API<[dirs: AlterReplicaLogDirsRequestDir[]], AlterReplicaLogDirsResponse>;
@@ -0,0 +1,27 @@
1
+ import { type NullableString } from "../../protocol/definitions";
2
+ import { type Reader } from "../../protocol/reader";
3
+ import { Writer } from "../../protocol/writer";
4
+ export interface AlterUserScramCredentialsRequestDeletions {
5
+ name: string;
6
+ mechanism: number;
7
+ }
8
+ export interface AlterUserScramCredentialsRequestUpsertions {
9
+ name: string;
10
+ mechanism: number;
11
+ iterations: number;
12
+ salt: Buffer;
13
+ saltedPassword: Buffer;
14
+ }
15
+ export type AlterUserScramCredentialsRequest = Parameters<typeof createRequest>;
16
+ export interface AlterUserScramCredentialsResponseResult {
17
+ user: string;
18
+ errorCode: number;
19
+ errorMessage: NullableString;
20
+ }
21
+ export interface AlterUserScramCredentialsResponse {
22
+ throttleTimeMs: number;
23
+ results: AlterUserScramCredentialsResponseResult[];
24
+ }
25
+ export declare function createRequest(deletions: AlterUserScramCredentialsRequestDeletions[], upsertions: AlterUserScramCredentialsRequestUpsertions[]): Writer;
26
+ export declare function parseResponse(_correlationId: number, apiKey: number, apiVersion: number, reader: Reader): AlterUserScramCredentialsResponse;
27
+ export declare const api: import("../definitions").API<[deletions: AlterUserScramCredentialsRequestDeletions[], upsertions: AlterUserScramCredentialsRequestUpsertions[]], AlterUserScramCredentialsResponse>;
@@ -0,0 +1,41 @@
1
+ import { type NullableString } from "../../protocol/definitions";
2
+ import { type Reader } from "../../protocol/reader";
3
+ import { Writer } from "../../protocol/writer";
4
+ export type ConsumerGroupDescribeRequest = Parameters<typeof createRequest>;
5
+ export interface ConsumerGroupDescribeResponseMemberTopic {
6
+ topicId: string;
7
+ topicName: string;
8
+ partitions: number[];
9
+ }
10
+ export interface ConsumerGroupDescribeResponseMemberAssignment {
11
+ topicPartitions: ConsumerGroupDescribeResponseMemberTopic[];
12
+ }
13
+ export interface ConsumerGroupDescribeResponseMember {
14
+ memberId: string;
15
+ instanceId: NullableString;
16
+ rackId: NullableString;
17
+ memberEpoch: number;
18
+ clientId: string;
19
+ clientHost: string;
20
+ subscribedTopicNames: string;
21
+ subscribedTopicRegex: NullableString;
22
+ assignment: ConsumerGroupDescribeResponseMemberAssignment;
23
+ targetAssignment: ConsumerGroupDescribeResponseMemberAssignment;
24
+ }
25
+ export interface ConsumerGroupDescribeResponseGroup {
26
+ errorCode: number;
27
+ errorMessage: NullableString;
28
+ groupId: string;
29
+ groupState: string;
30
+ groupEpoch: number;
31
+ assignmentEpoch: number;
32
+ assignorName: string;
33
+ members: ConsumerGroupDescribeResponseMember[];
34
+ }
35
+ export interface ConsumerGroupDescribeResponse {
36
+ throttleTimeMs: number;
37
+ groups: ConsumerGroupDescribeResponseGroup[];
38
+ }
39
+ export declare function createRequest(groupIds: string[], includeAuthorizedOperations: boolean): Writer;
40
+ export declare function parseResponse(_correlationId: number, apiKey: number, apiVersion: number, reader: Reader): ConsumerGroupDescribeResponse;
41
+ export declare const api: import("../definitions").API<[groupIds: string[], includeAuthorizedOperations: boolean], ConsumerGroupDescribeResponse>;
@@ -0,0 +1,24 @@
1
+ import { type NullableString } from "../../protocol/definitions";
2
+ import { type Reader } from "../../protocol/reader";
3
+ import { Writer } from "../../protocol/writer";
4
+ export interface CreateAclsRequestCreation {
5
+ resourceType: number;
6
+ resourceName: string;
7
+ resourcePatternType: number;
8
+ principal: string;
9
+ host: string;
10
+ operation: number;
11
+ permissionType: number;
12
+ }
13
+ export type CreateAclsRequest = Parameters<typeof createRequest>;
14
+ export interface CreateAclsResponseResult {
15
+ errorCode: number;
16
+ errorMessage: NullableString;
17
+ }
18
+ export interface CreateAclsResponse {
19
+ throttleTimeMs: number;
20
+ results: CreateAclsResponseResult[];
21
+ }
22
+ export declare function createRequest(creations: CreateAclsRequestCreation[]): Writer;
23
+ export declare function parseResponse(_correlationId: number, apiKey: number, apiVersion: number, reader: Reader): CreateAclsResponse;
24
+ export declare const api: import("../definitions").API<[creations: CreateAclsRequestCreation[]], CreateAclsResponse>;
@@ -0,0 +1,24 @@
1
+ import { type NullableString } from "../../protocol/definitions";
2
+ import { type Reader } from "../../protocol/reader";
3
+ import { Writer } from "../../protocol/writer";
4
+ export interface CreateDelegationTokenRequestRenewer {
5
+ principalType: string;
6
+ principalName: string;
7
+ }
8
+ export type CreateDelegationTokenRequest = Parameters<typeof createRequest>;
9
+ export interface CreateDelegationTokenResponse {
10
+ errorCode: number;
11
+ principalType: string;
12
+ principalName: string;
13
+ tokenRequesterPrincipalType: string;
14
+ tokenRequesterPrincipalName: string;
15
+ issueTimestampMs: bigint;
16
+ expiryTimestampMs: bigint;
17
+ maxTimestampMs: bigint;
18
+ tokenId: string;
19
+ hmac: Buffer;
20
+ throttleTimeMs: number;
21
+ }
22
+ export declare function createRequest(ownerPrincipalType: NullableString, ownerPrincipalName: NullableString, renewers: CreateDelegationTokenRequestRenewer[], maxLifetimeMs: bigint): Writer;
23
+ export declare function parseResponse(_correlationId: number, apiKey: number, apiVersion: number, reader: Reader): CreateDelegationTokenResponse;
24
+ export declare const api: import("../definitions").API<[ownerPrincipalType: NullableString, ownerPrincipalName: NullableString, renewers: CreateDelegationTokenRequestRenewer[], maxLifetimeMs: bigint], CreateDelegationTokenResponse>;
@@ -0,0 +1,24 @@
1
+ import { type NullableString } from "../../protocol/definitions";
2
+ import { type Reader } from "../../protocol/reader";
3
+ import { Writer } from "../../protocol/writer";
4
+ export interface CreatePartitionsRequestAssignment {
5
+ brokerIds: number[];
6
+ }
7
+ export interface CreatePartitionsRequestTopic {
8
+ name: string;
9
+ count: number;
10
+ assignments: CreatePartitionsRequestAssignment[];
11
+ }
12
+ export type CreatePartitionsRequest = Parameters<typeof createRequest>;
13
+ export interface CreatePartitionsResponseResult {
14
+ name: string;
15
+ errorCode: number;
16
+ errorMessage: NullableString;
17
+ }
18
+ export interface CreatePartitionsResponse {
19
+ throttleTimeMs: number;
20
+ results: CreatePartitionsResponseResult[];
21
+ }
22
+ export declare function createRequest(topics: CreatePartitionsRequestTopic[], timeoutMs: number, validateOnly: boolean): Writer;
23
+ export declare function parseResponse(_correlationId: number, apiKey: number, apiVersion: number, reader: Reader): CreatePartitionsResponse;
24
+ export declare const api: import("../definitions").API<[topics: CreatePartitionsRequestTopic[], timeoutMs: number, validateOnly: boolean], CreatePartitionsResponse>;
@@ -0,0 +1,24 @@
1
+ import { type NullableString } from "../../protocol/definitions";
2
+ import { type Reader } from "../../protocol/reader";
3
+ import { Writer } from "../../protocol/writer";
4
+ export interface CreatePartitionsRequestAssignment {
5
+ brokerIds: number[];
6
+ }
7
+ export interface CreatePartitionsRequestTopic {
8
+ name: string;
9
+ count: number;
10
+ assignments: CreatePartitionsRequestAssignment[];
11
+ }
12
+ export type CreatePartitionsRequest = Parameters<typeof createRequest>;
13
+ export interface CreatePartitionsResponseResult {
14
+ name: string;
15
+ errorCode: number;
16
+ errorMessage: NullableString;
17
+ }
18
+ export interface CreatePartitionsResponse {
19
+ throttleTimeMs: number;
20
+ results: CreatePartitionsResponseResult[];
21
+ }
22
+ export declare function createRequest(topics: CreatePartitionsRequestTopic[], timeoutMs: number, validateOnly: boolean): Writer;
23
+ export declare function parseResponse(_correlationId: number, apiKey: number, apiVersion: number, reader: Reader): CreatePartitionsResponse;
24
+ export declare const api: import("../definitions").API<[topics: CreatePartitionsRequestTopic[], timeoutMs: number, validateOnly: boolean], CreatePartitionsResponse>;
@@ -0,0 +1,24 @@
1
+ import { type NullableString } from "../../protocol/definitions";
2
+ import { type Reader } from "../../protocol/reader";
3
+ import { Writer } from "../../protocol/writer";
4
+ export interface CreatePartitionsRequestAssignment {
5
+ brokerIds: number[];
6
+ }
7
+ export interface CreatePartitionsRequestTopic {
8
+ name: string;
9
+ count: number;
10
+ assignments: CreatePartitionsRequestAssignment[];
11
+ }
12
+ export type CreatePartitionsRequest = Parameters<typeof createRequest>;
13
+ export interface CreatePartitionsResponseResult {
14
+ name: string;
15
+ errorCode: number;
16
+ errorMessage: NullableString;
17
+ }
18
+ export interface CreatePartitionsResponse {
19
+ throttleTimeMs: number;
20
+ results: CreatePartitionsResponseResult[];
21
+ }
22
+ export declare function createRequest(topics: CreatePartitionsRequestTopic[], timeoutMs: number, validateOnly: boolean): Writer;
23
+ export declare function parseResponse(_correlationId: number, apiKey: number, apiVersion: number, reader: Reader): CreatePartitionsResponse;
24
+ export declare const api: import("../definitions").API<[topics: CreatePartitionsRequestTopic[], timeoutMs: number, validateOnly: boolean], CreatePartitionsResponse>;
@@ -0,0 +1,42 @@
1
+ import { type NullableString } from "../../protocol/definitions";
2
+ import { type Reader } from "../../protocol/reader";
3
+ import { Writer } from "../../protocol/writer";
4
+ export interface CreateTopicsRequestTopicAssignment {
5
+ partitionIndex: number;
6
+ brokerIds: number[];
7
+ }
8
+ export interface CreateTopicsRequestTopicConfig {
9
+ name: string;
10
+ value?: NullableString;
11
+ }
12
+ export interface CreateTopicsRequestTopic {
13
+ name: string;
14
+ numPartitions: number;
15
+ replicationFactor: number;
16
+ assignments: CreateTopicsRequestTopicAssignment[];
17
+ configs: CreateTopicsRequestTopicConfig[];
18
+ }
19
+ export type CreateTopicsRequest = Parameters<typeof createRequest>;
20
+ export interface CreateTopicsResponseTopicConfig {
21
+ name: string;
22
+ value: NullableString;
23
+ readOnly: boolean;
24
+ configSource: number;
25
+ isSensitive: boolean;
26
+ }
27
+ export interface CreateTopicsResponseTopic {
28
+ name: string;
29
+ topicId: string;
30
+ errorCode: number;
31
+ errorMessage: NullableString;
32
+ numPartitions: number;
33
+ replicationFactor: number;
34
+ configs: CreateTopicsResponseTopicConfig[];
35
+ }
36
+ export interface CreateTopicsResponse {
37
+ throttleTimeMs: number;
38
+ topics: CreateTopicsResponseTopic[];
39
+ }
40
+ export declare function createRequest(topics: CreateTopicsRequestTopic[], timeoutMs: number, validateOnly: boolean): Writer;
41
+ export declare function parseResponse(_correlationId: number, apiKey: number, apiVersion: number, reader: Reader): CreateTopicsResponse;
42
+ export declare const api: import("../definitions").API<[topics: CreateTopicsRequestTopic[], timeoutMs: number, validateOnly: boolean], CreateTopicsResponse>;
@@ -0,0 +1,36 @@
1
+ import { type NullableString } from "../../protocol/definitions";
2
+ import { type Reader } from "../../protocol/reader";
3
+ import { Writer } from "../../protocol/writer";
4
+ export interface DeleteAclsRequestFilter {
5
+ resourceTypeFilter: number;
6
+ resourceNameFilter?: NullableString;
7
+ patternTypeFilter: number;
8
+ principalFilter?: NullableString;
9
+ hostFilter?: NullableString;
10
+ operation: number;
11
+ permissionType: number;
12
+ }
13
+ export type DeleteAclsRequest = Parameters<typeof createRequest>;
14
+ export interface DeleteAclsResponseMatchingAcl {
15
+ errorCode: number;
16
+ errorMessage: NullableString;
17
+ resourceType: number;
18
+ resourceName: string;
19
+ patternType: number;
20
+ principal: string;
21
+ host: string;
22
+ operation: number;
23
+ permissionType: number;
24
+ }
25
+ export interface DeleteAclsResponseFilterResults {
26
+ errorCode: number;
27
+ errorMessage: NullableString;
28
+ matchingAcls: DeleteAclsResponseMatchingAcl[];
29
+ }
30
+ export interface DeleteAclsResponse {
31
+ throttleTimeMs: number;
32
+ filterResults: DeleteAclsResponseFilterResults[];
33
+ }
34
+ export declare function createRequest(filters: DeleteAclsRequestFilter[]): Writer;
35
+ export declare function parseResponse(_correlationId: number, apiKey: number, apiVersion: number, reader: Reader): DeleteAclsResponse;
36
+ export declare const api: import("../definitions").API<[filters: DeleteAclsRequestFilter[]], DeleteAclsResponse>;