@platformatic/kafka 0.1.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 (223) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +270 -0
  3. package/dist/apis/admin/alter-client-quotas.d.ts +33 -0
  4. package/dist/apis/admin/alter-client-quotas.js +64 -0
  5. package/dist/apis/admin/alter-configs.d.ts +26 -0
  6. package/dist/apis/admin/alter-configs.js +57 -0
  7. package/dist/apis/admin/alter-partition-reassignments.d.ts +30 -0
  8. package/dist/apis/admin/alter-partition-reassignments.js +68 -0
  9. package/dist/apis/admin/alter-partition.d.ts +39 -0
  10. package/dist/apis/admin/alter-partition.js +87 -0
  11. package/dist/apis/admin/alter-replica-log-dirs.d.ts +26 -0
  12. package/dist/apis/admin/alter-replica-log-dirs.js +55 -0
  13. package/dist/apis/admin/alter-user-scram-credentials.d.ts +27 -0
  14. package/dist/apis/admin/alter-user-scram-credentials.js +60 -0
  15. package/dist/apis/admin/consumer-group-describe.d.ts +41 -0
  16. package/dist/apis/admin/consumer-group-describe.js +103 -0
  17. package/dist/apis/admin/create-acls.d.ts +24 -0
  18. package/dist/apis/admin/create-acls.js +55 -0
  19. package/dist/apis/admin/create-delegation-token.d.ts +24 -0
  20. package/dist/apis/admin/create-delegation-token.js +54 -0
  21. package/dist/apis/admin/create-partitions.d.ts +24 -0
  22. package/dist/apis/admin/create-partitions.js +54 -0
  23. package/dist/apis/admin/create-topics.d.ts +42 -0
  24. package/dist/apis/admin/create-topics.js +86 -0
  25. package/dist/apis/admin/delete-acls.d.ts +36 -0
  26. package/dist/apis/admin/delete-acls.js +82 -0
  27. package/dist/apis/admin/delete-groups.d.ts +14 -0
  28. package/dist/apis/admin/delete-groups.js +40 -0
  29. package/dist/apis/admin/delete-records.d.ts +27 -0
  30. package/dist/apis/admin/delete-records.js +59 -0
  31. package/dist/apis/admin/delete-topics.d.ts +21 -0
  32. package/dist/apis/admin/delete-topics.js +50 -0
  33. package/dist/apis/admin/describe-acls.d.ts +25 -0
  34. package/dist/apis/admin/describe-acls.js +66 -0
  35. package/dist/apis/admin/describe-client-quotas.d.ts +30 -0
  36. package/dist/apis/admin/describe-client-quotas.js +57 -0
  37. package/dist/apis/admin/describe-cluster.d.ts +23 -0
  38. package/dist/apis/admin/describe-cluster.js +50 -0
  39. package/dist/apis/admin/describe-configs.d.ts +38 -0
  40. package/dist/apis/admin/describe-configs.js +85 -0
  41. package/dist/apis/admin/describe-delegation-token.d.ts +31 -0
  42. package/dist/apis/admin/describe-delegation-token.js +62 -0
  43. package/dist/apis/admin/describe-groups.d.ts +28 -0
  44. package/dist/apis/admin/describe-groups.js +67 -0
  45. package/dist/apis/admin/describe-log-dirs.d.ts +32 -0
  46. package/dist/apis/admin/describe-log-dirs.js +75 -0
  47. package/dist/apis/admin/describe-producers.d.ts +33 -0
  48. package/dist/apis/admin/describe-producers.js +70 -0
  49. package/dist/apis/admin/describe-quorum.d.ts +50 -0
  50. package/dist/apis/admin/describe-quorum.js +116 -0
  51. package/dist/apis/admin/describe-topic-partitions.d.ts +42 -0
  52. package/dist/apis/admin/describe-topic-partitions.js +94 -0
  53. package/dist/apis/admin/describe-transactions.d.ts +24 -0
  54. package/dist/apis/admin/describe-transactions.js +59 -0
  55. package/dist/apis/admin/describe-user-scram-credentials.d.ts +26 -0
  56. package/dist/apis/admin/describe-user-scram-credentials.js +62 -0
  57. package/dist/apis/admin/envelope.d.ts +10 -0
  58. package/dist/apis/admin/envelope.js +32 -0
  59. package/dist/apis/admin/expire-delegation-token.d.ts +11 -0
  60. package/dist/apis/admin/expire-delegation-token.js +29 -0
  61. package/dist/apis/admin/incremental-alter-configs.d.ts +27 -0
  62. package/dist/apis/admin/incremental-alter-configs.js +58 -0
  63. package/dist/apis/admin/index.d.ts +37 -0
  64. package/dist/apis/admin/index.js +37 -0
  65. package/dist/apis/admin/list-groups.d.ts +18 -0
  66. package/dist/apis/admin/list-groups.js +43 -0
  67. package/dist/apis/admin/list-partition-reassignments.d.ts +27 -0
  68. package/dist/apis/admin/list-partition-reassignments.js +56 -0
  69. package/dist/apis/admin/list-transactions.d.ts +18 -0
  70. package/dist/apis/admin/list-transactions.js +45 -0
  71. package/dist/apis/admin/offset-delete.d.ts +26 -0
  72. package/dist/apis/admin/offset-delete.js +59 -0
  73. package/dist/apis/admin/renew-delegation-token.d.ts +11 -0
  74. package/dist/apis/admin/renew-delegation-token.js +29 -0
  75. package/dist/apis/admin/unregister-broker.d.ts +12 -0
  76. package/dist/apis/admin/unregister-broker.js +28 -0
  77. package/dist/apis/admin/update-features.d.ts +23 -0
  78. package/dist/apis/admin/update-features.js +60 -0
  79. package/dist/apis/consumer/consumer-group-heartbeat.d.ts +27 -0
  80. package/dist/apis/consumer/consumer-group-heartbeat.js +70 -0
  81. package/dist/apis/consumer/fetch.d.ts +46 -0
  82. package/dist/apis/consumer/fetch.js +121 -0
  83. package/dist/apis/consumer/heartbeat.d.ts +11 -0
  84. package/dist/apis/consumer/heartbeat.js +34 -0
  85. package/dist/apis/consumer/index.d.ts +9 -0
  86. package/dist/apis/consumer/index.js +9 -0
  87. package/dist/apis/consumer/join-group.d.ts +27 -0
  88. package/dist/apis/consumer/join-group.js +71 -0
  89. package/dist/apis/consumer/leave-group.d.ts +22 -0
  90. package/dist/apis/consumer/leave-group.js +57 -0
  91. package/dist/apis/consumer/list-offsets.d.ts +30 -0
  92. package/dist/apis/consumer/list-offsets.js +68 -0
  93. package/dist/apis/consumer/offset-commit.d.ts +29 -0
  94. package/dist/apis/consumer/offset-commit.js +68 -0
  95. package/dist/apis/consumer/offset-fetch.d.ts +37 -0
  96. package/dist/apis/consumer/offset-fetch.js +81 -0
  97. package/dist/apis/consumer/sync-group.d.ts +18 -0
  98. package/dist/apis/consumer/sync-group.js +49 -0
  99. package/dist/apis/definitions.d.ts +16 -0
  100. package/dist/apis/definitions.js +12 -0
  101. package/dist/apis/enumerations.d.ts +114 -0
  102. package/dist/apis/enumerations.js +78 -0
  103. package/dist/apis/index.d.ts +8 -0
  104. package/dist/apis/index.js +10 -0
  105. package/dist/apis/metadata/api-versions.d.ts +17 -0
  106. package/dist/apis/metadata/api-versions.js +41 -0
  107. package/dist/apis/metadata/find-coordinator.d.ts +19 -0
  108. package/dist/apis/metadata/find-coordinator.js +50 -0
  109. package/dist/apis/metadata/index.d.ts +3 -0
  110. package/dist/apis/metadata/index.js +3 -0
  111. package/dist/apis/metadata/metadata.d.ts +37 -0
  112. package/dist/apis/metadata/metadata.js +92 -0
  113. package/dist/apis/producer/add-offsets-to-txn.d.ts +10 -0
  114. package/dist/apis/producer/add-offsets-to-txn.js +34 -0
  115. package/dist/apis/producer/add-partitions-to-txn.d.ts +34 -0
  116. package/dist/apis/producer/add-partitions-to-txn.js +79 -0
  117. package/dist/apis/producer/end-txn.d.ts +10 -0
  118. package/dist/apis/producer/end-txn.js +34 -0
  119. package/dist/apis/producer/index.d.ts +6 -0
  120. package/dist/apis/producer/index.js +6 -0
  121. package/dist/apis/producer/init-producer-id.d.ts +21 -0
  122. package/dist/apis/producer/init-producer-id.js +38 -0
  123. package/dist/apis/producer/produce.d.ts +29 -0
  124. package/dist/apis/producer/produce.js +104 -0
  125. package/dist/apis/producer/txn-offset-commit.d.ts +29 -0
  126. package/dist/apis/producer/txn-offset-commit.js +77 -0
  127. package/dist/apis/security/index.d.ts +2 -0
  128. package/dist/apis/security/index.js +2 -0
  129. package/dist/apis/security/sasl-authenticate.d.ts +15 -0
  130. package/dist/apis/security/sasl-authenticate.js +30 -0
  131. package/dist/apis/security/sasl-handshake.d.ts +10 -0
  132. package/dist/apis/security/sasl-handshake.js +28 -0
  133. package/dist/apis/telemetry/get-telemetry-subscriptions.d.ts +18 -0
  134. package/dist/apis/telemetry/get-telemetry-subscriptions.js +46 -0
  135. package/dist/apis/telemetry/index.d.ts +3 -0
  136. package/dist/apis/telemetry/index.js +3 -0
  137. package/dist/apis/telemetry/list-client-metrics-resources.d.ts +14 -0
  138. package/dist/apis/telemetry/list-client-metrics-resources.js +32 -0
  139. package/dist/apis/telemetry/push-telemetry.d.ts +10 -0
  140. package/dist/apis/telemetry/push-telemetry.js +36 -0
  141. package/dist/clients/admin/admin.d.ts +18 -0
  142. package/dist/clients/admin/admin.js +322 -0
  143. package/dist/clients/admin/index.d.ts +3 -0
  144. package/dist/clients/admin/index.js +3 -0
  145. package/dist/clients/admin/options.d.ts +135 -0
  146. package/dist/clients/admin/options.js +81 -0
  147. package/dist/clients/admin/types.d.ts +56 -0
  148. package/dist/clients/admin/types.js +1 -0
  149. package/dist/clients/base/base.d.ts +48 -0
  150. package/dist/clients/base/base.js +242 -0
  151. package/dist/clients/base/index.d.ts +3 -0
  152. package/dist/clients/base/index.js +3 -0
  153. package/dist/clients/base/options.d.ts +115 -0
  154. package/dist/clients/base/options.js +59 -0
  155. package/dist/clients/base/types.d.ts +38 -0
  156. package/dist/clients/base/types.js +1 -0
  157. package/dist/clients/callbacks.d.ts +8 -0
  158. package/dist/clients/callbacks.js +42 -0
  159. package/dist/clients/consumer/consumer.d.ts +33 -0
  160. package/dist/clients/consumer/consumer.js +767 -0
  161. package/dist/clients/consumer/index.d.ts +5 -0
  162. package/dist/clients/consumer/index.js +5 -0
  163. package/dist/clients/consumer/messages-stream.d.ts +56 -0
  164. package/dist/clients/consumer/messages-stream.js +404 -0
  165. package/dist/clients/consumer/options.d.ts +521 -0
  166. package/dist/clients/consumer/options.js +177 -0
  167. package/dist/clients/consumer/topics-map.d.ts +8 -0
  168. package/dist/clients/consumer/topics-map.js +48 -0
  169. package/dist/clients/consumer/types.d.ts +74 -0
  170. package/dist/clients/consumer/types.js +11 -0
  171. package/dist/clients/index.d.ts +6 -0
  172. package/dist/clients/index.js +6 -0
  173. package/dist/clients/producer/index.d.ts +3 -0
  174. package/dist/clients/producer/index.js +3 -0
  175. package/dist/clients/producer/options.d.ts +122 -0
  176. package/dist/clients/producer/options.js +47 -0
  177. package/dist/clients/producer/producer.d.ts +13 -0
  178. package/dist/clients/producer/producer.js +272 -0
  179. package/dist/clients/producer/types.d.ts +29 -0
  180. package/dist/clients/producer/types.js +1 -0
  181. package/dist/clients/serde.d.ts +40 -0
  182. package/dist/clients/serde.js +49 -0
  183. package/dist/errors.d.ts +67 -0
  184. package/dist/errors.js +160 -0
  185. package/dist/index.d.ts +6 -0
  186. package/dist/index.js +10 -0
  187. package/dist/network/connection-pool.d.ts +11 -0
  188. package/dist/network/connection-pool.js +101 -0
  189. package/dist/network/connection.d.ts +49 -0
  190. package/dist/network/connection.js +319 -0
  191. package/dist/network/index.d.ts +2 -0
  192. package/dist/network/index.js +2 -0
  193. package/dist/protocol/apis.d.ts +2 -0
  194. package/dist/protocol/apis.js +191 -0
  195. package/dist/protocol/compression.d.ts +70 -0
  196. package/dist/protocol/compression.js +114 -0
  197. package/dist/protocol/crc32c.d.ts +2 -0
  198. package/dist/protocol/crc32c.js +83 -0
  199. package/dist/protocol/definitions.d.ts +12 -0
  200. package/dist/protocol/definitions.js +11 -0
  201. package/dist/protocol/dynamic-buffer.d.ts +65 -0
  202. package/dist/protocol/dynamic-buffer.js +557 -0
  203. package/dist/protocol/errors.d.ts +8 -0
  204. package/dist/protocol/errors.js +908 -0
  205. package/dist/protocol/index.d.ts +14 -0
  206. package/dist/protocol/index.js +14 -0
  207. package/dist/protocol/murmur2.d.ts +1 -0
  208. package/dist/protocol/murmur2.js +55 -0
  209. package/dist/protocol/reader.d.ts +58 -0
  210. package/dist/protocol/reader.js +296 -0
  211. package/dist/protocol/records.d.ts +110 -0
  212. package/dist/protocol/records.js +149 -0
  213. package/dist/protocol/sasl/plain.d.ts +3 -0
  214. package/dist/protocol/sasl/plain.js +3 -0
  215. package/dist/protocol/sasl/scram-sha.d.ts +28 -0
  216. package/dist/protocol/sasl/scram-sha.js +104 -0
  217. package/dist/protocol/varint.d.ts +12 -0
  218. package/dist/protocol/varint.js +36 -0
  219. package/dist/protocol/writer.d.ts +48 -0
  220. package/dist/protocol/writer.js +223 -0
  221. package/dist/utils.d.ts +20 -0
  222. package/dist/utils.js +127 -0
  223. package/package.json +75 -0
@@ -0,0 +1,114 @@
1
+ import { createRequire } from 'node:module';
2
+ import zlib from 'node:zlib';
3
+ import { UnsupportedCompressionError } from "../errors.js";
4
+ import { DynamicBuffer } from "./dynamic-buffer.js";
5
+ const require = createRequire(import.meta.url);
6
+ // @ts-ignore
7
+ const { zstdCompressSync, zstdDecompressSync, gzipSync, gunzipSync } = zlib;
8
+ function ensureBuffer(data) {
9
+ return DynamicBuffer.isDynamicBuffer(data) ? data.slice() : data;
10
+ }
11
+ let snappyCompressSync;
12
+ let snappyDecompressSync;
13
+ let lz4CompressSync;
14
+ let lz4DecompressSync;
15
+ function loadSnappy() {
16
+ try {
17
+ const snappy = require('snappy');
18
+ snappyCompressSync = snappy.compressSync;
19
+ snappyDecompressSync = snappy.uncompressSync;
20
+ /* c8 ignore next 5 */
21
+ }
22
+ catch (e) {
23
+ throw new UnsupportedCompressionError('Cannot load snappy module, which is an optionalDependency. Please check your local installation.');
24
+ }
25
+ }
26
+ function loadLZ4() {
27
+ try {
28
+ const lz4 = require('lz4-napi');
29
+ lz4CompressSync = lz4.compressSync;
30
+ lz4DecompressSync = lz4.uncompressSync;
31
+ /* c8 ignore next 5 */
32
+ }
33
+ catch (e) {
34
+ throw new UnsupportedCompressionError('Cannot load lz4-napi module, which is an optionalDependency. Please check your local installation.');
35
+ }
36
+ }
37
+ export const compressionsAlgorithms = {
38
+ /* c8 ignore next 8 - 'none' is actually never used but this is to please Typescript */
39
+ none: {
40
+ compressSync(data) {
41
+ return ensureBuffer(data);
42
+ },
43
+ decompressSync(data) {
44
+ return ensureBuffer(data);
45
+ },
46
+ bitmask: 0,
47
+ available: true
48
+ },
49
+ gzip: {
50
+ compressSync(data) {
51
+ return gzipSync(ensureBuffer(data));
52
+ },
53
+ decompressSync(data) {
54
+ return gunzipSync(ensureBuffer(data));
55
+ },
56
+ bitmask: 1,
57
+ available: true
58
+ },
59
+ snappy: {
60
+ compressSync(data) {
61
+ /* c8 ignore next 4 */
62
+ if (!snappyCompressSync) {
63
+ loadSnappy();
64
+ }
65
+ return snappyCompressSync(ensureBuffer(data));
66
+ },
67
+ decompressSync(data) {
68
+ /* c8 ignore next 4 */
69
+ if (!snappyDecompressSync) {
70
+ loadSnappy();
71
+ }
72
+ return snappyDecompressSync(ensureBuffer(data));
73
+ },
74
+ bitmask: 2,
75
+ available: true
76
+ },
77
+ lz4: {
78
+ compressSync(data) {
79
+ /* c8 ignore next 4 */
80
+ if (!lz4CompressSync) {
81
+ loadLZ4();
82
+ }
83
+ return lz4CompressSync(ensureBuffer(data));
84
+ },
85
+ decompressSync(data) {
86
+ /* c8 ignore next 4 */
87
+ if (!lz4DecompressSync) {
88
+ loadLZ4();
89
+ }
90
+ return lz4DecompressSync(ensureBuffer(data));
91
+ },
92
+ bitmask: 3,
93
+ available: true
94
+ },
95
+ zstd: {
96
+ /* c8 ignore next 7 */
97
+ compressSync(data) {
98
+ if (!zstdCompressSync) {
99
+ throw new UnsupportedCompressionError('zstd is not supported in the current Node.js version');
100
+ }
101
+ return zstdCompressSync(ensureBuffer(data));
102
+ },
103
+ /* c8 ignore next 7 */
104
+ decompressSync(data) {
105
+ if (!zstdCompressSync) {
106
+ throw new UnsupportedCompressionError('zstd is not supported in the current Node.js version');
107
+ }
108
+ return zstdDecompressSync(ensureBuffer(data));
109
+ },
110
+ bitmask: 4,
111
+ available: typeof zstdCompressSync === 'function'
112
+ }
113
+ };
114
+ export const compressionsAlgorithmsByBitmask = Object.fromEntries(Object.values(compressionsAlgorithms).map(a => [a.bitmask, a]));
@@ -0,0 +1,2 @@
1
+ import { DynamicBuffer } from './dynamic-buffer.ts';
2
+ export declare function crc32c(data: Buffer | DynamicBuffer): number;
@@ -0,0 +1,83 @@
1
+ // Based on the work from: https://github.com/tulios/kafkajs/blob/master/src/protocol/recordBatch/crc32C/crc32C.js
2
+ import { DynamicBuffer } from "./dynamic-buffer.js";
3
+ /* prettier-ignore */
4
+ const CRC = [
5
+ 0x00000000, 0xf26b8303, 0xe13b70f7, 0x1350f3f4,
6
+ 0xc79a971f, 0x35f1141c, 0x26a1e7e8, 0xd4ca64eb,
7
+ 0x8ad958cf, 0x78b2dbcc, 0x6be22838, 0x9989ab3b,
8
+ 0x4d43cfd0, 0xbf284cd3, 0xac78bf27, 0x5e133c24,
9
+ 0x105ec76f, 0xe235446c, 0xf165b798, 0x030e349b,
10
+ 0xd7c45070, 0x25afd373, 0x36ff2087, 0xc494a384,
11
+ 0x9a879fa0, 0x68ec1ca3, 0x7bbcef57, 0x89d76c54,
12
+ 0x5d1d08bf, 0xaf768bbc, 0xbc267848, 0x4e4dfb4b,
13
+ 0x20bd8ede, 0xd2d60ddd, 0xc186fe29, 0x33ed7d2a,
14
+ 0xe72719c1, 0x154c9ac2, 0x061c6936, 0xf477ea35,
15
+ 0xaa64d611, 0x580f5512, 0x4b5fa6e6, 0xb93425e5,
16
+ 0x6dfe410e, 0x9f95c20d, 0x8cc531f9, 0x7eaeb2fa,
17
+ 0x30e349b1, 0xc288cab2, 0xd1d83946, 0x23b3ba45,
18
+ 0xf779deae, 0x05125dad, 0x1642ae59, 0xe4292d5a,
19
+ 0xba3a117e, 0x4851927d, 0x5b016189, 0xa96ae28a,
20
+ 0x7da08661, 0x8fcb0562, 0x9c9bf696, 0x6ef07595,
21
+ 0x417b1dbc, 0xb3109ebf, 0xa0406d4b, 0x522bee48,
22
+ 0x86e18aa3, 0x748a09a0, 0x67dafa54, 0x95b17957,
23
+ 0xcba24573, 0x39c9c670, 0x2a993584, 0xd8f2b687,
24
+ 0x0c38d26c, 0xfe53516f, 0xed03a29b, 0x1f682198,
25
+ 0x5125dad3, 0xa34e59d0, 0xb01eaa24, 0x42752927,
26
+ 0x96bf4dcc, 0x64d4cecf, 0x77843d3b, 0x85efbe38,
27
+ 0xdbfc821c, 0x2997011f, 0x3ac7f2eb, 0xc8ac71e8,
28
+ 0x1c661503, 0xee0d9600, 0xfd5d65f4, 0x0f36e6f7,
29
+ 0x61c69362, 0x93ad1061, 0x80fde395, 0x72966096,
30
+ 0xa65c047d, 0x5437877e, 0x4767748a, 0xb50cf789,
31
+ 0xeb1fcbad, 0x197448ae, 0x0a24bb5a, 0xf84f3859,
32
+ 0x2c855cb2, 0xdeeedfb1, 0xcdbe2c45, 0x3fd5af46,
33
+ 0x7198540d, 0x83f3d70e, 0x90a324fa, 0x62c8a7f9,
34
+ 0xb602c312, 0x44694011, 0x5739b3e5, 0xa55230e6,
35
+ 0xfb410cc2, 0x092a8fc1, 0x1a7a7c35, 0xe811ff36,
36
+ 0x3cdb9bdd, 0xceb018de, 0xdde0eb2a, 0x2f8b6829,
37
+ 0x82f63b78, 0x709db87b, 0x63cd4b8f, 0x91a6c88c,
38
+ 0x456cac67, 0xb7072f64, 0xa457dc90, 0x563c5f93,
39
+ 0x082f63b7, 0xfa44e0b4, 0xe9141340, 0x1b7f9043,
40
+ 0xcfb5f4a8, 0x3dde77ab, 0x2e8e845f, 0xdce5075c,
41
+ 0x92a8fc17, 0x60c37f14, 0x73938ce0, 0x81f80fe3,
42
+ 0x55326b08, 0xa759e80b, 0xb4091bff, 0x466298fc,
43
+ 0x1871a4d8, 0xea1a27db, 0xf94ad42f, 0x0b21572c,
44
+ 0xdfeb33c7, 0x2d80b0c4, 0x3ed04330, 0xccbbc033,
45
+ 0xa24bb5a6, 0x502036a5, 0x4370c551, 0xb11b4652,
46
+ 0x65d122b9, 0x97baa1ba, 0x84ea524e, 0x7681d14d,
47
+ 0x2892ed69, 0xdaf96e6a, 0xc9a99d9e, 0x3bc21e9d,
48
+ 0xef087a76, 0x1d63f975, 0x0e330a81, 0xfc588982,
49
+ 0xb21572c9, 0x407ef1ca, 0x532e023e, 0xa145813d,
50
+ 0x758fe5d6, 0x87e466d5, 0x94b49521, 0x66df1622,
51
+ 0x38cc2a06, 0xcaa7a905, 0xd9f75af1, 0x2b9cd9f2,
52
+ 0xff56bd19, 0x0d3d3e1a, 0x1e6dcdee, 0xec064eed,
53
+ 0xc38d26c4, 0x31e6a5c7, 0x22b65633, 0xd0ddd530,
54
+ 0x0417b1db, 0xf67c32d8, 0xe52cc12c, 0x1747422f,
55
+ 0x49547e0b, 0xbb3ffd08, 0xa86f0efc, 0x5a048dff,
56
+ 0x8ecee914, 0x7ca56a17, 0x6ff599e3, 0x9d9e1ae0,
57
+ 0xd3d3e1ab, 0x21b862a8, 0x32e8915c, 0xc083125f,
58
+ 0x144976b4, 0xe622f5b7, 0xf5720643, 0x07198540,
59
+ 0x590ab964, 0xab613a67, 0xb831c993, 0x4a5a4a90,
60
+ 0x9e902e7b, 0x6cfbad78, 0x7fab5e8c, 0x8dc0dd8f,
61
+ 0xe330a81a, 0x115b2b19, 0x020bd8ed, 0xf0605bee,
62
+ 0x24aa3f05, 0xd6c1bc06, 0xc5914ff2, 0x37faccf1,
63
+ 0x69e9f0d5, 0x9b8273d6, 0x88d28022, 0x7ab90321,
64
+ 0xae7367ca, 0x5c18e4c9, 0x4f48173d, 0xbd23943e,
65
+ 0xf36e6f75, 0x0105ec76, 0x12551f82, 0xe03e9c81,
66
+ 0x34f4f86a, 0xc69f7b69, 0xd5cf889d, 0x27a40b9e,
67
+ 0x79b737ba, 0x8bdcb4b9, 0x988c474d, 0x6ae7c44e,
68
+ 0xbe2da0a5, 0x4c4623a6, 0x5f16d052, 0xad7d5351
69
+ ];
70
+ export function crc32c(data) {
71
+ let crc = 0 ^ -1;
72
+ if (DynamicBuffer.isDynamicBuffer(data)) {
73
+ for (let i = 0; i < data.length; i++) {
74
+ crc = CRC[(crc ^ data.get(i)) & 0xff] ^ (crc >>> 8);
75
+ }
76
+ }
77
+ else {
78
+ for (let i = 0; i < data.length; i++) {
79
+ crc = CRC[(crc ^ data[i]) & 0xff] ^ (crc >>> 8);
80
+ }
81
+ }
82
+ return Uint32Array.from([(crc ^ -1) >>> 0])[0];
83
+ }
@@ -0,0 +1,12 @@
1
+ import { type DynamicBuffer } from './dynamic-buffer.ts';
2
+ export declare const INT8_SIZE = 1;
3
+ export declare const INT16_SIZE = 2;
4
+ export declare const INT32_SIZE = 4;
5
+ export declare const INT64_SIZE = 8;
6
+ export declare const UUID_SIZE = 16;
7
+ export declare const EMPTY_BUFFER: Buffer<ArrayBuffer>;
8
+ export declare const EMPTY_UUID: Buffer<ArrayBuffer>;
9
+ export declare const EMPTY_OR_SINGLE_COMPACT_LENGTH_SIZE = 1;
10
+ export declare const EMPTY_TAGGED_FIELDS_BUFFER: Buffer<ArrayBuffer>;
11
+ export type Collection = string | Buffer | DynamicBuffer | Array<unknown> | Map<unknown, unknown> | Set<unknown>;
12
+ export type NullableString = string | undefined | null;
@@ -0,0 +1,11 @@
1
+ export const INT8_SIZE = 1;
2
+ export const INT16_SIZE = 2;
3
+ export const INT32_SIZE = 4;
4
+ export const INT64_SIZE = 8;
5
+ export const UUID_SIZE = 16;
6
+ export const EMPTY_BUFFER = Buffer.alloc(0);
7
+ export const EMPTY_UUID = Buffer.alloc(UUID_SIZE);
8
+ // Since it is serialized at either 0 (for nullable) or 1 (since length is stored as length + 1), it always uses a single byte
9
+ export const EMPTY_OR_SINGLE_COMPACT_LENGTH_SIZE = INT8_SIZE;
10
+ // TODO(ShogunPanda): Tagged fields are not supported yet
11
+ export const EMPTY_TAGGED_FIELDS_BUFFER = Buffer.from([0]);
@@ -0,0 +1,65 @@
1
+ declare const instanceIdentifier: unique symbol;
2
+ export declare class DynamicBuffer {
3
+ #private;
4
+ buffers: Buffer[];
5
+ length: number;
6
+ [instanceIdentifier]: boolean;
7
+ static isDynamicBuffer(target: any): boolean;
8
+ constructor(buffers?: Buffer | Buffer[]);
9
+ get buffer(): Buffer;
10
+ append(buffer: Buffer): this;
11
+ prepend(buffer: Buffer): this;
12
+ appendFrom(DynamicBuffer: DynamicBuffer): this;
13
+ prependFrom(DynamicBuffer: DynamicBuffer): this;
14
+ subarray(start?: number, end?: number): DynamicBuffer;
15
+ slice(start?: number, end?: number): Buffer;
16
+ clone(deep?: boolean): DynamicBuffer;
17
+ consume(offset: number): this;
18
+ toString(encoding?: BufferEncoding, start?: number, end?: number): string;
19
+ get(offset: number): number;
20
+ readUInt8(offset?: number): number;
21
+ readUInt16BE(offset?: number): number;
22
+ readUInt16LE(offset?: number): number;
23
+ readUInt32BE(offset?: number): number;
24
+ readUInt32LE(offset?: number): number;
25
+ readBigUInt64BE(offset?: number): bigint;
26
+ readBigUInt64LE(offset?: number): bigint;
27
+ readUnsignedVarInt(offset: number): [number, number];
28
+ readUnsignedVarInt64(offset: number): [bigint, number];
29
+ readInt8(offset?: number): number;
30
+ readInt16BE(offset?: number): number;
31
+ readInt16LE(offset?: number): number;
32
+ readInt32BE(offset?: number): number;
33
+ readInt32LE(offset?: number): number;
34
+ readBigInt64BE(offset?: number): bigint;
35
+ readBigInt64LE(offset?: number): bigint;
36
+ readVarInt(offset: number): [number, number];
37
+ readVarInt64(offset: number): [bigint, number];
38
+ readFloatBE(offset?: number): number;
39
+ readFloatLE(offset?: number): number;
40
+ readDoubleBE(offset?: number): number;
41
+ readDoubleLE(offset?: number): number;
42
+ writeUInt8(value: number, append?: boolean): this;
43
+ writeUInt16BE(value: number, append?: boolean): this;
44
+ writeUInt16LE(value: number, append?: boolean): this;
45
+ writeUInt32BE(value: number, append?: boolean): this;
46
+ writeUInt32LE(value: number, append?: boolean): this;
47
+ writeBigUInt64BE(value: bigint, append?: boolean): this;
48
+ writeBigUInt64LE(value: bigint, append?: boolean): this;
49
+ writeUnsignedVarInt(value: number, append?: boolean): void;
50
+ writeUnsignedVarInt64(value: bigint, append?: boolean): void;
51
+ writeInt8(value: number, append?: boolean): this;
52
+ writeInt16BE(value: number, append?: boolean): this;
53
+ writeInt16LE(value: number, append?: boolean): this;
54
+ writeInt32BE(value: number, append?: boolean): this;
55
+ writeInt32LE(value: number, append?: boolean): this;
56
+ writeBigInt64BE(value: bigint, append?: boolean): this;
57
+ writeBigInt64LE(value: bigint, append?: boolean): this;
58
+ writeVarInt(value: number, append?: boolean): void;
59
+ writeVarInt64(value: bigint, append?: boolean): void;
60
+ writeFloatBE(value: number, append?: boolean): this;
61
+ writeFloatLE(value: number, append?: boolean): this;
62
+ writeDoubleBE(value: number, append?: boolean): this;
63
+ writeDoubleLE(value: number, append?: boolean): this;
64
+ }
65
+ export {};