kafka-ts 0.0.1-beta → 0.0.1-beta.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 (195) hide show
  1. package/.github/workflows/release.yml +17 -0
  2. package/.prettierrc +3 -2
  3. package/LICENSE +1 -1
  4. package/README.md +56 -35
  5. package/docker-compose.yml +108 -102
  6. package/examples/package-lock.json +28 -27
  7. package/examples/package.json +12 -12
  8. package/examples/src/client.ts +6 -6
  9. package/examples/src/consumer.ts +9 -8
  10. package/examples/src/create-topic.ts +22 -16
  11. package/examples/src/producer.ts +7 -7
  12. package/examples/src/replicator.ts +4 -4
  13. package/examples/src/utils/delay.ts +1 -0
  14. package/examples/src/utils/json.ts +1 -1
  15. package/examples/tsconfig.json +2 -2
  16. package/package.json +22 -15
  17. package/scripts/create-scram-user.sh +5 -0
  18. package/scripts/generate-certs.sh +1 -0
  19. package/scripts/kafka-local.properties +33 -0
  20. package/src/__snapshots__/request-handler.test.ts.snap +9 -718
  21. package/src/api/api-versions.ts +2 -2
  22. package/src/api/create-topics.ts +2 -2
  23. package/src/api/delete-topics.ts +2 -2
  24. package/src/api/fetch.ts +3 -3
  25. package/src/api/find-coordinator.ts +2 -2
  26. package/src/api/heartbeat.ts +2 -2
  27. package/src/api/index.ts +18 -18
  28. package/src/api/init-producer-id.ts +2 -2
  29. package/src/api/join-group.ts +3 -3
  30. package/src/api/leave-group.ts +2 -2
  31. package/src/api/list-offsets.ts +3 -3
  32. package/src/api/metadata.ts +3 -3
  33. package/src/api/offset-commit.ts +2 -2
  34. package/src/api/offset-fetch.ts +2 -2
  35. package/src/api/produce.ts +3 -3
  36. package/src/api/sasl-authenticate.ts +2 -2
  37. package/src/api/sasl-handshake.ts +2 -2
  38. package/src/api/sync-group.ts +2 -2
  39. package/src/auth/index.ts +2 -0
  40. package/src/auth/plain.ts +10 -0
  41. package/src/auth/scram.ts +52 -0
  42. package/src/broker.ts +12 -14
  43. package/src/client.ts +7 -7
  44. package/src/{request-handler.test.ts → cluster.test.ts} +73 -69
  45. package/src/cluster.ts +8 -8
  46. package/src/connection.ts +17 -15
  47. package/src/consumer/consumer-group.ts +14 -14
  48. package/src/consumer/consumer-metadata.ts +2 -2
  49. package/src/consumer/consumer.ts +84 -82
  50. package/src/consumer/fetch-manager.ts +179 -0
  51. package/src/consumer/fetcher.ts +57 -0
  52. package/src/consumer/offset-manager.ts +6 -6
  53. package/src/consumer/processor.ts +47 -0
  54. package/src/distributors/assignments-to-replicas.test.ts +7 -7
  55. package/src/distributors/assignments-to-replicas.ts +1 -1
  56. package/src/distributors/messages-to-topic-partition-leaders.test.ts +6 -6
  57. package/src/index.ts +6 -3
  58. package/src/metadata.ts +4 -4
  59. package/src/producer/producer.ts +8 -8
  60. package/src/types.ts +2 -0
  61. package/src/utils/api.ts +4 -4
  62. package/src/utils/crypto.ts +15 -0
  63. package/src/utils/debug.ts +2 -2
  64. package/src/utils/decoder.ts +4 -4
  65. package/src/utils/encoder.ts +6 -6
  66. package/src/utils/error.ts +3 -3
  67. package/src/utils/retrier.ts +1 -1
  68. package/src/utils/tracer.ts +7 -4
  69. package/tsconfig.json +16 -16
  70. package/dist/api/api-versions.d.ts +0 -9
  71. package/dist/api/api-versions.js +0 -24
  72. package/dist/api/create-topics.d.ts +0 -38
  73. package/dist/api/create-topics.js +0 -53
  74. package/dist/api/delete-topics.d.ts +0 -18
  75. package/dist/api/delete-topics.js +0 -33
  76. package/dist/api/fetch.d.ts +0 -77
  77. package/dist/api/fetch.js +0 -106
  78. package/dist/api/find-coordinator.d.ts +0 -21
  79. package/dist/api/find-coordinator.js +0 -39
  80. package/dist/api/heartbeat.d.ts +0 -11
  81. package/dist/api/heartbeat.js +0 -27
  82. package/dist/api/index.d.ts +0 -573
  83. package/dist/api/index.js +0 -164
  84. package/dist/api/init-producer-id.d.ts +0 -13
  85. package/dist/api/init-producer-id.js +0 -29
  86. package/dist/api/join-group.d.ts +0 -34
  87. package/dist/api/join-group.js +0 -51
  88. package/dist/api/leave-group.d.ts +0 -19
  89. package/dist/api/leave-group.js +0 -39
  90. package/dist/api/list-offsets.d.ts +0 -29
  91. package/dist/api/list-offsets.js +0 -48
  92. package/dist/api/metadata.d.ts +0 -40
  93. package/dist/api/metadata.js +0 -58
  94. package/dist/api/offset-commit.d.ts +0 -28
  95. package/dist/api/offset-commit.js +0 -48
  96. package/dist/api/offset-fetch.d.ts +0 -33
  97. package/dist/api/offset-fetch.js +0 -57
  98. package/dist/api/produce.d.ts +0 -53
  99. package/dist/api/produce.js +0 -129
  100. package/dist/api/sasl-authenticate.d.ts +0 -11
  101. package/dist/api/sasl-authenticate.js +0 -23
  102. package/dist/api/sasl-handshake.d.ts +0 -6
  103. package/dist/api/sasl-handshake.js +0 -19
  104. package/dist/api/sync-group.d.ts +0 -24
  105. package/dist/api/sync-group.js +0 -36
  106. package/dist/broker.d.ts +0 -29
  107. package/dist/broker.js +0 -60
  108. package/dist/client.d.ts +0 -23
  109. package/dist/client.js +0 -36
  110. package/dist/cluster.d.ts +0 -24
  111. package/dist/cluster.js +0 -72
  112. package/dist/connection.d.ts +0 -25
  113. package/dist/connection.js +0 -155
  114. package/dist/consumer/consumer-group.d.ts +0 -36
  115. package/dist/consumer/consumer-group.js +0 -182
  116. package/dist/consumer/consumer-metadata.d.ts +0 -7
  117. package/dist/consumer/consumer-metadata.js +0 -14
  118. package/dist/consumer/consumer.d.ts +0 -37
  119. package/dist/consumer/consumer.js +0 -178
  120. package/dist/consumer/metadata.d.ts +0 -24
  121. package/dist/consumer/metadata.js +0 -64
  122. package/dist/consumer/offset-manager.d.ts +0 -22
  123. package/dist/consumer/offset-manager.js +0 -56
  124. package/dist/distributors/assignments-to-replicas.d.ts +0 -17
  125. package/dist/distributors/assignments-to-replicas.js +0 -60
  126. package/dist/distributors/assignments-to-replicas.test.d.ts +0 -1
  127. package/dist/distributors/assignments-to-replicas.test.js +0 -40
  128. package/dist/distributors/messages-to-topic-partition-leaders.d.ts +0 -17
  129. package/dist/distributors/messages-to-topic-partition-leaders.js +0 -15
  130. package/dist/distributors/messages-to-topic-partition-leaders.test.d.ts +0 -1
  131. package/dist/distributors/messages-to-topic-partition-leaders.test.js +0 -30
  132. package/dist/examples/src/replicator.js +0 -34
  133. package/dist/examples/src/utils/json.js +0 -5
  134. package/dist/index.d.ts +0 -3
  135. package/dist/index.js +0 -19
  136. package/dist/metadata.d.ts +0 -24
  137. package/dist/metadata.js +0 -89
  138. package/dist/producer/producer.d.ts +0 -19
  139. package/dist/producer/producer.js +0 -111
  140. package/dist/request-handler.d.ts +0 -16
  141. package/dist/request-handler.js +0 -67
  142. package/dist/request-handler.test.d.ts +0 -1
  143. package/dist/request-handler.test.js +0 -340
  144. package/dist/src/api/api-versions.js +0 -18
  145. package/dist/src/api/create-topics.js +0 -46
  146. package/dist/src/api/delete-topics.js +0 -26
  147. package/dist/src/api/fetch.js +0 -95
  148. package/dist/src/api/find-coordinator.js +0 -34
  149. package/dist/src/api/heartbeat.js +0 -22
  150. package/dist/src/api/index.js +0 -38
  151. package/dist/src/api/init-producer-id.js +0 -24
  152. package/dist/src/api/join-group.js +0 -48
  153. package/dist/src/api/leave-group.js +0 -30
  154. package/dist/src/api/list-offsets.js +0 -39
  155. package/dist/src/api/metadata.js +0 -47
  156. package/dist/src/api/offset-commit.js +0 -39
  157. package/dist/src/api/offset-fetch.js +0 -44
  158. package/dist/src/api/produce.js +0 -119
  159. package/dist/src/api/sync-group.js +0 -31
  160. package/dist/src/broker.js +0 -35
  161. package/dist/src/connection.js +0 -21
  162. package/dist/src/consumer/consumer-group.js +0 -131
  163. package/dist/src/consumer/consumer.js +0 -103
  164. package/dist/src/consumer/metadata.js +0 -52
  165. package/dist/src/consumer/offset-manager.js +0 -23
  166. package/dist/src/index.js +0 -19
  167. package/dist/src/producer/producer.js +0 -84
  168. package/dist/src/request-handler.js +0 -57
  169. package/dist/src/request-handler.test.js +0 -321
  170. package/dist/src/types.js +0 -2
  171. package/dist/src/utils/api.js +0 -5
  172. package/dist/src/utils/decoder.js +0 -161
  173. package/dist/src/utils/encoder.js +0 -137
  174. package/dist/src/utils/error.js +0 -10
  175. package/dist/types.d.ts +0 -9
  176. package/dist/types.js +0 -2
  177. package/dist/utils/api.d.ts +0 -9
  178. package/dist/utils/api.js +0 -5
  179. package/dist/utils/debug.d.ts +0 -2
  180. package/dist/utils/debug.js +0 -11
  181. package/dist/utils/decoder.d.ts +0 -29
  182. package/dist/utils/decoder.js +0 -147
  183. package/dist/utils/delay.d.ts +0 -1
  184. package/dist/utils/delay.js +0 -5
  185. package/dist/utils/encoder.d.ts +0 -28
  186. package/dist/utils/encoder.js +0 -122
  187. package/dist/utils/error.d.ts +0 -11
  188. package/dist/utils/error.js +0 -27
  189. package/dist/utils/memo.d.ts +0 -1
  190. package/dist/utils/memo.js +0 -16
  191. package/dist/utils/retrier.d.ts +0 -10
  192. package/dist/utils/retrier.js +0 -22
  193. package/dist/utils/tracer.d.ts +0 -1
  194. package/dist/utils/tracer.js +0 -26
  195. package/examples/node_modules/.package-lock.json +0 -22
@@ -0,0 +1 @@
1
+ export const delay = (delayMs: number) => new Promise<void>((resolve) => setTimeout(resolve, delayMs));
@@ -1 +1 @@
1
- export const serializer = (_: string, value: unknown) => (typeof value === "bigint" ? value.toString() : value);
1
+ export const serializer = (_: string, value: unknown) => (typeof value === 'bigint' ? value.toString() : value);
@@ -3,5 +3,5 @@
3
3
  "compilerOptions": {
4
4
  "outDir": "dist",
5
5
  "inlineSourceMap": true
6
- },
7
- }
6
+ }
7
+ }
package/package.json CHANGED
@@ -1,17 +1,24 @@
1
1
  {
2
- "name": "kafka-ts",
3
- "version": "0.0.1-beta",
4
- "main": "dist/index.js",
5
- "author": "Priit Käärd",
6
- "license": "MIT",
7
- "scripts": {
8
- "build": "tsc",
9
- "test": "vitest --testTimeout 60000 --bail 1"
10
- },
11
- "devDependencies": {
12
- "@types/node": "^20.12.12",
13
- "prettier": "^3.2.5",
14
- "typescript": "^5.4.5",
15
- "vitest": "^1.6.0"
16
- }
2
+ "name": "kafka-ts",
3
+ "version": "0.0.1-beta.1",
4
+ "main": "dist/index.js",
5
+ "author": "Priit Käärd",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/priitkaard/kafka-ts.git"
10
+ },
11
+ "scripts": {
12
+ "version:bump": "npm version prerelease --preid=beta",
13
+ "format": "prettier --write .",
14
+ "build": "tsc",
15
+ "watch": "tsc -w",
16
+ "test": "vitest --testTimeout 60000 --bail 1"
17
+ },
18
+ "devDependencies": {
19
+ "@types/node": "^20.12.12",
20
+ "prettier": "^3.3.3",
21
+ "typescript": "^5.4.5",
22
+ "vitest": "^1.6.0"
23
+ }
17
24
  }
@@ -0,0 +1,5 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ kafka-configs --bootstrap-server localhost:9092 --command-config kafka-local.properties --alter --add-config 'SCRAM-SHA-256=[password=admin]' --entity-type users --entity-name admin
5
+ kafka-configs --bootstrap-server localhost:9092 --command-config kafka-local.properties --alter --add-config 'SCRAM-SHA-512=[password=admin]' --entity-type users --entity-name admin
@@ -1,4 +1,5 @@
1
1
  #!/bin/bash
2
+ set -e
2
3
 
3
4
  # 1. Generating a x509 (CA) cert from a private key:
4
5
  openssl genrsa -out certs/ca.key 4096
@@ -0,0 +1,33 @@
1
+ security.protocol = SASL_SSL
2
+ sasl.mechanism = PLAIN
3
+ sasl.jaas.config = org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin";
4
+ ssl.truststore.type = PEM
5
+ ssl.truststore.certificates = -----BEGIN CERTIFICATE----- \
6
+ MIIFCTCCAvGgAwIBAgIUYSj+2uS05/+RbdvXYi+NnYZrzIEwDQYJKoZIhvcNAQEL \
7
+ BQAwEzERMA8GA1UEAwwIa2Fma2EtY2EwIBcNMjQxMDE4MTMwNDQ4WhgPMjI2NDEw \
8
+ MjAxMzA0NDhaMBMxETAPBgNVBAMMCGthZmthLWNhMIICIjANBgkqhkiG9w0BAQEF \
9
+ AAOCAg8AMIICCgKCAgEAiuEnn0ZAaWsteEMsgrCgvhGmBBZh6NMbWrWRq/9cvESQ \
10
+ OjU7LUIXEjzHAeIc/NfMHeOl6D2BfXS+BAcmJBHZ5DAZoCOATKvy0Ry5KEdlNbat \
11
+ o/B9i5jWKbK1Q0sF+2hSfRWB5OGrdsusN9XxH2JYuW93fY9htf5Au+h5BjLMTL8z \
12
+ wRJHX4EuC63VyF3U0xl20TePuYpATpvEXQZQyaHWGMM8+EJVJiv6pQY2GoKKHsD7 \
13
+ xFB31mKgvLQDWkSyeRXeZE0wgoni4MM4Q9hKH+U+ccn7Xxj2grrjK96u6/B6LIkc \
14
+ z30Lh+yWuO57VM/cqrnK1DCMR3+hG6ser5lLemkJmptbrvsm2uZEI2vCglsoz352 \
15
+ ZmrU5LX8Taj5SPmWssRxQHtx20L5kDDs0QNtvPprhaPdFmPVr39EVTS4p1As5meZ \
16
+ QLnOti7Vj0RtALQ1BBRc1nl8OUh8N4krBEgs+BLGwcW8T9vw7EfqaQI7G9q/b/+L \
17
+ soEHRzdRxEs5TPjVGQNcd2REQf/Dn1ovHOlgmkhRKWPLhHVRza2FjypdO0yUF0io \
18
+ W2vxzHvdLsUhpmAVu//dOOopzfukJfOELsyxSkQucyFpaDmu4y9WjPq2cJ1K1F1L \
19
+ DuM9BVHIZTcI7CxlqujYroYnH4QMH/dUu5MAfqnHE926XC3YIWvfuv4NLs0vcKcC \
20
+ AwEAAaNTMFEwHQYDVR0OBBYEFI/M/wYP4G8TGt2AR5X8H6YAwfUQMB8GA1UdIwQY \
21
+ MBaAFI/M/wYP4G8TGt2AR5X8H6YAwfUQMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI \
22
+ hvcNAQELBQADggIBAHLIwasKnvI5Cim8app5V1C4keCrjInLRXQuY9r7wFQ6jFFC \
23
+ KraOcEM2LCjwDvjWv30Rdjrv0sMm3NNL+GC2SWpj5tDmsUYxMJcDRVFLbKWBdjrx \
24
+ m/8zFfr4gL2pUSJZxucey0KCP4yCljetSpXbN+upvq97i2/O7JFcyeFKu4Z3KeKJ \
25
+ Pn+gI9Dn5WteTzPNLR4TX948YvmOSURKMAc2LHXDgz4xL+UqNAf18cbJYd47YBLi \
26
+ JAlPISVBUFZcOXAp2Y48m2AjN2ZfL8Sb7see6Ia87/19Dls9FFmCDF/bN9G2R1Tv \
27
+ gEnby25or7xfH5cJpkEBHPN9Tg/D/XA7fe6rEvssMBuMsjr5DNKzUeQ5NgkKA9PU \
28
+ JFTd75xmGq71ydOaO7ICwcrBtzYYJ9HyEOg9Boz7ikALvi1LqK/y2L9pAQ6RUqNn \
29
+ 5IQs/FeJFC48ZvvM5vhQLQQJM+Bz991JA6i/KiQvyNHi4PhrPtSbwENhxFSZWWdG \
30
+ 0E8XYAWs1X6y+9MiWea9HvA9+0mkM0XTZK/ps4jgTaPsY7xyhHMnMVsXZu6LLxNd \
31
+ puxokDyDxYo63OY6AZLpwpsjpfDH1jPakR/lU0/jvudV6GC+kQr7hZseTUQI21f2 \
32
+ njVbHOlihJIV+6o6lrS+xLwU7zWwvx/cObmplwffsyI5sPwnXIIMJPR6ToSV \
33
+ -----END CERTIFICATE-----