@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.
- package/LICENSE +201 -0
- package/README.md +270 -0
- package/dist/apis/admin/alter-client-quotas.d.ts +33 -0
- package/dist/apis/admin/alter-client-quotas.js +64 -0
- package/dist/apis/admin/alter-configs.d.ts +26 -0
- package/dist/apis/admin/alter-configs.js +57 -0
- package/dist/apis/admin/alter-partition-reassignments.d.ts +30 -0
- package/dist/apis/admin/alter-partition-reassignments.js +68 -0
- package/dist/apis/admin/alter-partition.d.ts +39 -0
- package/dist/apis/admin/alter-partition.js +87 -0
- package/dist/apis/admin/alter-replica-log-dirs.d.ts +26 -0
- package/dist/apis/admin/alter-replica-log-dirs.js +55 -0
- package/dist/apis/admin/alter-user-scram-credentials.d.ts +27 -0
- package/dist/apis/admin/alter-user-scram-credentials.js +60 -0
- package/dist/apis/admin/consumer-group-describe.d.ts +41 -0
- package/dist/apis/admin/consumer-group-describe.js +103 -0
- package/dist/apis/admin/create-acls.d.ts +24 -0
- package/dist/apis/admin/create-acls.js +55 -0
- package/dist/apis/admin/create-delegation-token.d.ts +24 -0
- package/dist/apis/admin/create-delegation-token.js +54 -0
- package/dist/apis/admin/create-partitions.d.ts +24 -0
- package/dist/apis/admin/create-partitions.js +54 -0
- package/dist/apis/admin/create-topics.d.ts +42 -0
- package/dist/apis/admin/create-topics.js +86 -0
- package/dist/apis/admin/delete-acls.d.ts +36 -0
- package/dist/apis/admin/delete-acls.js +82 -0
- package/dist/apis/admin/delete-groups.d.ts +14 -0
- package/dist/apis/admin/delete-groups.js +40 -0
- package/dist/apis/admin/delete-records.d.ts +27 -0
- package/dist/apis/admin/delete-records.js +59 -0
- package/dist/apis/admin/delete-topics.d.ts +21 -0
- package/dist/apis/admin/delete-topics.js +50 -0
- package/dist/apis/admin/describe-acls.d.ts +25 -0
- package/dist/apis/admin/describe-acls.js +66 -0
- package/dist/apis/admin/describe-client-quotas.d.ts +30 -0
- package/dist/apis/admin/describe-client-quotas.js +57 -0
- package/dist/apis/admin/describe-cluster.d.ts +23 -0
- package/dist/apis/admin/describe-cluster.js +50 -0
- package/dist/apis/admin/describe-configs.d.ts +38 -0
- package/dist/apis/admin/describe-configs.js +85 -0
- package/dist/apis/admin/describe-delegation-token.d.ts +31 -0
- package/dist/apis/admin/describe-delegation-token.js +62 -0
- package/dist/apis/admin/describe-groups.d.ts +28 -0
- package/dist/apis/admin/describe-groups.js +67 -0
- package/dist/apis/admin/describe-log-dirs.d.ts +32 -0
- package/dist/apis/admin/describe-log-dirs.js +75 -0
- package/dist/apis/admin/describe-producers.d.ts +33 -0
- package/dist/apis/admin/describe-producers.js +70 -0
- package/dist/apis/admin/describe-quorum.d.ts +50 -0
- package/dist/apis/admin/describe-quorum.js +116 -0
- package/dist/apis/admin/describe-topic-partitions.d.ts +42 -0
- package/dist/apis/admin/describe-topic-partitions.js +94 -0
- package/dist/apis/admin/describe-transactions.d.ts +24 -0
- package/dist/apis/admin/describe-transactions.js +59 -0
- package/dist/apis/admin/describe-user-scram-credentials.d.ts +26 -0
- package/dist/apis/admin/describe-user-scram-credentials.js +62 -0
- package/dist/apis/admin/envelope.d.ts +10 -0
- package/dist/apis/admin/envelope.js +32 -0
- package/dist/apis/admin/expire-delegation-token.d.ts +11 -0
- package/dist/apis/admin/expire-delegation-token.js +29 -0
- package/dist/apis/admin/incremental-alter-configs.d.ts +27 -0
- package/dist/apis/admin/incremental-alter-configs.js +58 -0
- package/dist/apis/admin/index.d.ts +37 -0
- package/dist/apis/admin/index.js +37 -0
- package/dist/apis/admin/list-groups.d.ts +18 -0
- package/dist/apis/admin/list-groups.js +43 -0
- package/dist/apis/admin/list-partition-reassignments.d.ts +27 -0
- package/dist/apis/admin/list-partition-reassignments.js +56 -0
- package/dist/apis/admin/list-transactions.d.ts +18 -0
- package/dist/apis/admin/list-transactions.js +45 -0
- package/dist/apis/admin/offset-delete.d.ts +26 -0
- package/dist/apis/admin/offset-delete.js +59 -0
- package/dist/apis/admin/renew-delegation-token.d.ts +11 -0
- package/dist/apis/admin/renew-delegation-token.js +29 -0
- package/dist/apis/admin/unregister-broker.d.ts +12 -0
- package/dist/apis/admin/unregister-broker.js +28 -0
- package/dist/apis/admin/update-features.d.ts +23 -0
- package/dist/apis/admin/update-features.js +60 -0
- package/dist/apis/consumer/consumer-group-heartbeat.d.ts +27 -0
- package/dist/apis/consumer/consumer-group-heartbeat.js +70 -0
- package/dist/apis/consumer/fetch.d.ts +46 -0
- package/dist/apis/consumer/fetch.js +121 -0
- package/dist/apis/consumer/heartbeat.d.ts +11 -0
- package/dist/apis/consumer/heartbeat.js +34 -0
- package/dist/apis/consumer/index.d.ts +9 -0
- package/dist/apis/consumer/index.js +9 -0
- package/dist/apis/consumer/join-group.d.ts +27 -0
- package/dist/apis/consumer/join-group.js +71 -0
- package/dist/apis/consumer/leave-group.d.ts +22 -0
- package/dist/apis/consumer/leave-group.js +57 -0
- package/dist/apis/consumer/list-offsets.d.ts +30 -0
- package/dist/apis/consumer/list-offsets.js +68 -0
- package/dist/apis/consumer/offset-commit.d.ts +29 -0
- package/dist/apis/consumer/offset-commit.js +68 -0
- package/dist/apis/consumer/offset-fetch.d.ts +37 -0
- package/dist/apis/consumer/offset-fetch.js +81 -0
- package/dist/apis/consumer/sync-group.d.ts +18 -0
- package/dist/apis/consumer/sync-group.js +49 -0
- package/dist/apis/definitions.d.ts +16 -0
- package/dist/apis/definitions.js +12 -0
- package/dist/apis/enumerations.d.ts +114 -0
- package/dist/apis/enumerations.js +78 -0
- package/dist/apis/index.d.ts +8 -0
- package/dist/apis/index.js +10 -0
- package/dist/apis/metadata/api-versions.d.ts +17 -0
- package/dist/apis/metadata/api-versions.js +41 -0
- package/dist/apis/metadata/find-coordinator.d.ts +19 -0
- package/dist/apis/metadata/find-coordinator.js +50 -0
- package/dist/apis/metadata/index.d.ts +3 -0
- package/dist/apis/metadata/index.js +3 -0
- package/dist/apis/metadata/metadata.d.ts +37 -0
- package/dist/apis/metadata/metadata.js +92 -0
- package/dist/apis/producer/add-offsets-to-txn.d.ts +10 -0
- package/dist/apis/producer/add-offsets-to-txn.js +34 -0
- package/dist/apis/producer/add-partitions-to-txn.d.ts +34 -0
- package/dist/apis/producer/add-partitions-to-txn.js +79 -0
- package/dist/apis/producer/end-txn.d.ts +10 -0
- package/dist/apis/producer/end-txn.js +34 -0
- package/dist/apis/producer/index.d.ts +6 -0
- package/dist/apis/producer/index.js +6 -0
- package/dist/apis/producer/init-producer-id.d.ts +21 -0
- package/dist/apis/producer/init-producer-id.js +38 -0
- package/dist/apis/producer/produce.d.ts +29 -0
- package/dist/apis/producer/produce.js +104 -0
- package/dist/apis/producer/txn-offset-commit.d.ts +29 -0
- package/dist/apis/producer/txn-offset-commit.js +77 -0
- package/dist/apis/security/index.d.ts +2 -0
- package/dist/apis/security/index.js +2 -0
- package/dist/apis/security/sasl-authenticate.d.ts +15 -0
- package/dist/apis/security/sasl-authenticate.js +30 -0
- package/dist/apis/security/sasl-handshake.d.ts +10 -0
- package/dist/apis/security/sasl-handshake.js +28 -0
- package/dist/apis/telemetry/get-telemetry-subscriptions.d.ts +18 -0
- package/dist/apis/telemetry/get-telemetry-subscriptions.js +46 -0
- package/dist/apis/telemetry/index.d.ts +3 -0
- package/dist/apis/telemetry/index.js +3 -0
- package/dist/apis/telemetry/list-client-metrics-resources.d.ts +14 -0
- package/dist/apis/telemetry/list-client-metrics-resources.js +32 -0
- package/dist/apis/telemetry/push-telemetry.d.ts +10 -0
- package/dist/apis/telemetry/push-telemetry.js +36 -0
- package/dist/clients/admin/admin.d.ts +18 -0
- package/dist/clients/admin/admin.js +322 -0
- package/dist/clients/admin/index.d.ts +3 -0
- package/dist/clients/admin/index.js +3 -0
- package/dist/clients/admin/options.d.ts +135 -0
- package/dist/clients/admin/options.js +81 -0
- package/dist/clients/admin/types.d.ts +56 -0
- package/dist/clients/admin/types.js +1 -0
- package/dist/clients/base/base.d.ts +48 -0
- package/dist/clients/base/base.js +242 -0
- package/dist/clients/base/index.d.ts +3 -0
- package/dist/clients/base/index.js +3 -0
- package/dist/clients/base/options.d.ts +115 -0
- package/dist/clients/base/options.js +59 -0
- package/dist/clients/base/types.d.ts +38 -0
- package/dist/clients/base/types.js +1 -0
- package/dist/clients/callbacks.d.ts +8 -0
- package/dist/clients/callbacks.js +42 -0
- package/dist/clients/consumer/consumer.d.ts +33 -0
- package/dist/clients/consumer/consumer.js +767 -0
- package/dist/clients/consumer/index.d.ts +5 -0
- package/dist/clients/consumer/index.js +5 -0
- package/dist/clients/consumer/messages-stream.d.ts +56 -0
- package/dist/clients/consumer/messages-stream.js +404 -0
- package/dist/clients/consumer/options.d.ts +521 -0
- package/dist/clients/consumer/options.js +177 -0
- package/dist/clients/consumer/topics-map.d.ts +8 -0
- package/dist/clients/consumer/topics-map.js +48 -0
- package/dist/clients/consumer/types.d.ts +74 -0
- package/dist/clients/consumer/types.js +11 -0
- package/dist/clients/index.d.ts +6 -0
- package/dist/clients/index.js +6 -0
- package/dist/clients/producer/index.d.ts +3 -0
- package/dist/clients/producer/index.js +3 -0
- package/dist/clients/producer/options.d.ts +122 -0
- package/dist/clients/producer/options.js +47 -0
- package/dist/clients/producer/producer.d.ts +13 -0
- package/dist/clients/producer/producer.js +272 -0
- package/dist/clients/producer/types.d.ts +29 -0
- package/dist/clients/producer/types.js +1 -0
- package/dist/clients/serde.d.ts +40 -0
- package/dist/clients/serde.js +49 -0
- package/dist/errors.d.ts +67 -0
- package/dist/errors.js +160 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +10 -0
- package/dist/network/connection-pool.d.ts +11 -0
- package/dist/network/connection-pool.js +101 -0
- package/dist/network/connection.d.ts +49 -0
- package/dist/network/connection.js +319 -0
- package/dist/network/index.d.ts +2 -0
- package/dist/network/index.js +2 -0
- package/dist/protocol/apis.d.ts +2 -0
- package/dist/protocol/apis.js +191 -0
- package/dist/protocol/compression.d.ts +70 -0
- package/dist/protocol/compression.js +114 -0
- package/dist/protocol/crc32c.d.ts +2 -0
- package/dist/protocol/crc32c.js +83 -0
- package/dist/protocol/definitions.d.ts +12 -0
- package/dist/protocol/definitions.js +11 -0
- package/dist/protocol/dynamic-buffer.d.ts +65 -0
- package/dist/protocol/dynamic-buffer.js +557 -0
- package/dist/protocol/errors.d.ts +8 -0
- package/dist/protocol/errors.js +908 -0
- package/dist/protocol/index.d.ts +14 -0
- package/dist/protocol/index.js +14 -0
- package/dist/protocol/murmur2.d.ts +1 -0
- package/dist/protocol/murmur2.js +55 -0
- package/dist/protocol/reader.d.ts +58 -0
- package/dist/protocol/reader.js +296 -0
- package/dist/protocol/records.d.ts +110 -0
- package/dist/protocol/records.js +149 -0
- package/dist/protocol/sasl/plain.d.ts +3 -0
- package/dist/protocol/sasl/plain.js +3 -0
- package/dist/protocol/sasl/scram-sha.d.ts +28 -0
- package/dist/protocol/sasl/scram-sha.js +104 -0
- package/dist/protocol/varint.d.ts +12 -0
- package/dist/protocol/varint.js +36 -0
- package/dist/protocol/writer.d.ts +48 -0
- package/dist/protocol/writer.js +223 -0
- package/dist/utils.d.ts +20 -0
- package/dist/utils.js +127 -0
- 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,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 {};
|