@thirdweb-dev/service-utils 0.8.2 → 0.8.3-nightly-6ed2fd13de1638bcf1c28fd4fdbeb00c0d449994-20250130225711
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/dist/cjs/node/usageV2.js
CHANGED
@@ -4,6 +4,7 @@ exports.UsageV2Producer = void 0;
|
|
4
4
|
const node_crypto_1 = require("node:crypto");
|
5
5
|
const node_tls_1 = require("node:tls");
|
6
6
|
const kafkajs_1 = require("kafkajs");
|
7
|
+
const kafkajs_lz4_1 = require("kafkajs-lz4");
|
7
8
|
const usageV2_js_1 = require("../core/usageV2.js");
|
8
9
|
/**
|
9
10
|
* Creates a UsageV2Producer which opens a persistent TCP connection.
|
@@ -38,9 +39,16 @@ class UsageV2Producer {
|
|
38
39
|
writable: true,
|
39
40
|
value: void 0
|
40
41
|
});
|
42
|
+
Object.defineProperty(this, "compression", {
|
43
|
+
enumerable: true,
|
44
|
+
configurable: true,
|
45
|
+
writable: true,
|
46
|
+
value: void 0
|
47
|
+
});
|
48
|
+
const { producerName, environment, productName, compression = kafkajs_1.CompressionTypes.LZ4, username, password, } = config;
|
41
49
|
this.kafka = new kafkajs_1.Kafka({
|
42
|
-
clientId: `${
|
43
|
-
brokers:
|
50
|
+
clientId: `${producerName}-${environment}`,
|
51
|
+
brokers: environment === "production"
|
44
52
|
? ["warpstream.thirdweb.xyz:9092"]
|
45
53
|
: ["warpstream-dev.thirdweb.xyz:9092"],
|
46
54
|
ssl: {
|
@@ -50,19 +58,24 @@ class UsageV2Producer {
|
|
50
58
|
},
|
51
59
|
sasl: {
|
52
60
|
mechanism: "plain",
|
53
|
-
username
|
54
|
-
password
|
61
|
+
username,
|
62
|
+
password,
|
55
63
|
},
|
56
64
|
});
|
57
|
-
this.topic = (0, usageV2_js_1.getTopicName)(
|
65
|
+
this.topic = (0, usageV2_js_1.getTopicName)(productName);
|
66
|
+
this.compression = compression;
|
58
67
|
}
|
59
68
|
/**
|
60
69
|
* Connect the producer.
|
61
70
|
* This must be called before calling `sendEvents()`.
|
62
71
|
*/
|
63
|
-
async init() {
|
72
|
+
async init(configOverrides) {
|
73
|
+
if (this.compression === kafkajs_1.CompressionTypes.LZ4) {
|
74
|
+
kafkajs_1.CompressionCodecs[kafkajs_1.CompressionTypes.LZ4] = new kafkajs_lz4_1.default().codec;
|
75
|
+
}
|
64
76
|
this.producer = this.kafka.producer({
|
65
77
|
allowAutoTopicCreation: false,
|
78
|
+
...configOverrides,
|
66
79
|
});
|
67
80
|
await this.producer.connect();
|
68
81
|
}
|
@@ -76,7 +89,11 @@ class UsageV2Producer {
|
|
76
89
|
*
|
77
90
|
* @param events - The events to send.
|
78
91
|
*/
|
79
|
-
async sendEvents(events
|
92
|
+
async sendEvents(events,
|
93
|
+
/**
|
94
|
+
* Reference: https://kafka.js.org/docs/producing#producing-messages
|
95
|
+
*/
|
96
|
+
configOverrides) {
|
80
97
|
if (!this.producer) {
|
81
98
|
throw new Error("Producer not initialized. Call `init()` first.");
|
82
99
|
}
|
@@ -96,6 +113,10 @@ class UsageV2Producer {
|
|
96
113
|
messages: parsedEvents.map((event) => ({
|
97
114
|
value: JSON.stringify(event),
|
98
115
|
})),
|
116
|
+
acks: -1, // All brokers must acknowledge
|
117
|
+
timeout: 10_000, // 10 seconds
|
118
|
+
compression: this.compression,
|
119
|
+
...configOverrides,
|
99
120
|
});
|
100
121
|
}
|
101
122
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"usageV2.js","sourceRoot":"","sources":["../../../src/node/usageV2.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,uCAA+C;AAC/C,
|
1
|
+
{"version":3,"file":"usageV2.js","sourceRoot":"","sources":["../../../src/node/usageV2.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/node/usageV2.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
2
2
|
import { checkServerIdentity } from "node:tls";
|
3
|
-
import { Kafka } from "kafkajs";
|
3
|
+
import { CompressionCodecs, CompressionTypes, Kafka, } from "kafkajs";
|
4
|
+
import LZ4Codec from "kafkajs-lz4";
|
4
5
|
import { getTopicName } from "../core/usageV2.js";
|
5
6
|
/**
|
6
7
|
* Creates a UsageV2Producer which opens a persistent TCP connection.
|
@@ -35,9 +36,16 @@ export class UsageV2Producer {
|
|
35
36
|
writable: true,
|
36
37
|
value: void 0
|
37
38
|
});
|
39
|
+
Object.defineProperty(this, "compression", {
|
40
|
+
enumerable: true,
|
41
|
+
configurable: true,
|
42
|
+
writable: true,
|
43
|
+
value: void 0
|
44
|
+
});
|
45
|
+
const { producerName, environment, productName, compression = CompressionTypes.LZ4, username, password, } = config;
|
38
46
|
this.kafka = new Kafka({
|
39
|
-
clientId: `${
|
40
|
-
brokers:
|
47
|
+
clientId: `${producerName}-${environment}`,
|
48
|
+
brokers: environment === "production"
|
41
49
|
? ["warpstream.thirdweb.xyz:9092"]
|
42
50
|
: ["warpstream-dev.thirdweb.xyz:9092"],
|
43
51
|
ssl: {
|
@@ -47,19 +55,24 @@ export class UsageV2Producer {
|
|
47
55
|
},
|
48
56
|
sasl: {
|
49
57
|
mechanism: "plain",
|
50
|
-
username
|
51
|
-
password
|
58
|
+
username,
|
59
|
+
password,
|
52
60
|
},
|
53
61
|
});
|
54
|
-
this.topic = getTopicName(
|
62
|
+
this.topic = getTopicName(productName);
|
63
|
+
this.compression = compression;
|
55
64
|
}
|
56
65
|
/**
|
57
66
|
* Connect the producer.
|
58
67
|
* This must be called before calling `sendEvents()`.
|
59
68
|
*/
|
60
|
-
async init() {
|
69
|
+
async init(configOverrides) {
|
70
|
+
if (this.compression === CompressionTypes.LZ4) {
|
71
|
+
CompressionCodecs[CompressionTypes.LZ4] = new LZ4Codec().codec;
|
72
|
+
}
|
61
73
|
this.producer = this.kafka.producer({
|
62
74
|
allowAutoTopicCreation: false,
|
75
|
+
...configOverrides,
|
63
76
|
});
|
64
77
|
await this.producer.connect();
|
65
78
|
}
|
@@ -73,7 +86,11 @@ export class UsageV2Producer {
|
|
73
86
|
*
|
74
87
|
* @param events - The events to send.
|
75
88
|
*/
|
76
|
-
async sendEvents(events
|
89
|
+
async sendEvents(events,
|
90
|
+
/**
|
91
|
+
* Reference: https://kafka.js.org/docs/producing#producing-messages
|
92
|
+
*/
|
93
|
+
configOverrides) {
|
77
94
|
if (!this.producer) {
|
78
95
|
throw new Error("Producer not initialized. Call `init()` first.");
|
79
96
|
}
|
@@ -93,6 +110,10 @@ export class UsageV2Producer {
|
|
93
110
|
messages: parsedEvents.map((event) => ({
|
94
111
|
value: JSON.stringify(event),
|
95
112
|
})),
|
113
|
+
acks: -1, // All brokers must acknowledge
|
114
|
+
timeout: 10_000, // 10 seconds
|
115
|
+
compression: this.compression,
|
116
|
+
...configOverrides,
|
96
117
|
});
|
97
118
|
}
|
98
119
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"usageV2.js","sourceRoot":"","sources":["../../../src/node/usageV2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,
|
1
|
+
{"version":3,"file":"usageV2.js","sourceRoot":"","sources":["../../../src/node/usageV2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,GAGN,MAAM,SAAS,CAAC;AACjB,OAAO,QAAQ,MAAM,aAAa,CAAC;AAEnC,OAAO,EAAqB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAe;IAM1B,YAAY,MAoBX;QAzBO;;;;;WAAa;QACb;;;;mBAA4B,IAAI;WAAC;QACjC;;;;;WAAc;QACd;;;;;WAA8B;QAuBpC,MAAM,EACJ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,WAAW,GAAG,gBAAgB,CAAC,GAAG,EAClC,QAAQ,EACR,QAAQ,GACT,GAAG,MAAM,CAAC;QAEX,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC;YACrB,QAAQ,EAAE,GAAG,YAAY,IAAI,WAAW,EAAE;YAC1C,OAAO,EACL,WAAW,KAAK,YAAY;gBAC1B,CAAC,CAAC,CAAC,8BAA8B,CAAC;gBAClC,CAAC,CAAC,CAAC,kCAAkC,CAAC;YAC1C,GAAG,EAAE;gBACH,mBAAmB,CAAC,QAAQ,EAAE,IAAI;oBAChC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC3D,CAAC;aACF;YACD,IAAI,EAAE;gBACJ,SAAS,EAAE,OAAO;gBAClB,QAAQ;gBACR,QAAQ;aACT;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,eAAgC;QACzC,IAAI,IAAI,CAAC,WAAW,KAAK,gBAAgB,CAAC,GAAG,EAAE,CAAC;YAC9C,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC,KAAK,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YAClC,sBAAsB,EAAE,KAAK;YAC7B,GAAG,eAAe;SACnB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,UAAU,CACd,MAAsB;IACtB;;OAEG;IACH,eAGC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACxC,OAAO;gBACL,GAAG,KAAK;gBACR,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,UAAU,EAAE;gBAC5B,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE;gBAC1C,qCAAqC;gBACrC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;oBACxC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;oBACxB,CAAC,CAAC,KAAK,CAAC,OAAO;aAClB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACrC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;aAC7B,CAAC,CAAC;YACH,IAAI,EAAE,CAAC,CAAC,EAAE,+BAA+B;YACzC,OAAO,EAAE,MAAM,EAAE,aAAa;YAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,GAAG,eAAe;SACnB,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;CACF"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { CompressionTypes, type ProducerConfig } from "kafkajs";
|
1
2
|
import type { ServiceName } from "../core/services.js";
|
2
3
|
import { type UsageV2Event } from "../core/usageV2.js";
|
3
4
|
/**
|
@@ -17,6 +18,7 @@ export declare class UsageV2Producer {
|
|
17
18
|
private kafka;
|
18
19
|
private producer;
|
19
20
|
private topic;
|
21
|
+
private compression;
|
20
22
|
constructor(config: {
|
21
23
|
/**
|
22
24
|
* A descriptive name for your service. Example: "storage-server"
|
@@ -30,6 +32,10 @@ export declare class UsageV2Producer {
|
|
30
32
|
* The product "source" where usage is coming from.
|
31
33
|
*/
|
32
34
|
productName: ServiceName;
|
35
|
+
/**
|
36
|
+
* The compression algorithm to use.
|
37
|
+
*/
|
38
|
+
compression?: CompressionTypes;
|
33
39
|
username: string;
|
34
40
|
password: string;
|
35
41
|
});
|
@@ -37,7 +43,7 @@ export declare class UsageV2Producer {
|
|
37
43
|
* Connect the producer.
|
38
44
|
* This must be called before calling `sendEvents()`.
|
39
45
|
*/
|
40
|
-
init(): Promise<void>;
|
46
|
+
init(configOverrides?: ProducerConfig): Promise<void>;
|
41
47
|
/**
|
42
48
|
* Send usageV2 events.
|
43
49
|
* This method may throw. To call this non-blocking:
|
@@ -48,7 +54,14 @@ export declare class UsageV2Producer {
|
|
48
54
|
*
|
49
55
|
* @param events - The events to send.
|
50
56
|
*/
|
51
|
-
sendEvents(events: UsageV2Event[]
|
57
|
+
sendEvents(events: UsageV2Event[],
|
58
|
+
/**
|
59
|
+
* Reference: https://kafka.js.org/docs/producing#producing-messages
|
60
|
+
*/
|
61
|
+
configOverrides?: {
|
62
|
+
acks?: number;
|
63
|
+
timeout?: number;
|
64
|
+
}): Promise<void>;
|
52
65
|
/**
|
53
66
|
* Disconnects UsageV2Producer.
|
54
67
|
* Useful when shutting down the service to flush in-flight events.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"usageV2.d.ts","sourceRoot":"","sources":["../../../src/node/usageV2.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"usageV2.d.ts","sourceRoot":"","sources":["../../../src/node/usageV2.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,gBAAgB,EAGhB,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,oBAAoB,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAAmB;gBAE1B,MAAM,EAAE;QAClB;;WAEG;QACH,YAAY,EAAE,MAAM,CAAC;QACrB;;WAEG;QACH,WAAW,EAAE,aAAa,GAAG,YAAY,CAAC;QAC1C;;WAEG;QACH,WAAW,EAAE,WAAW,CAAC;QACzB;;WAEG;QACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;QAE/B,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB;IAgCD;;;OAGG;IACG,IAAI,CAAC,eAAe,CAAC,EAAE,cAAc;IAY3C;;;;;;;;;OASG;IACG,UAAU,CACd,MAAM,EAAE,YAAY,EAAE;IACtB;;OAEG;IACH,eAAe,CAAC,EAAE;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GACA,OAAO,CAAC,IAAI,CAAC;IA6BhB;;;OAGG;IACG,UAAU;CAMjB"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@thirdweb-dev/service-utils",
|
3
|
-
"version": "0.8.
|
3
|
+
"version": "0.8.3-nightly-6ed2fd13de1638bcf1c28fd4fdbeb00c0d449994-20250130225711",
|
4
4
|
"type": "module",
|
5
5
|
"main": "dist/cjs/index.js",
|
6
6
|
"module": "dist/esm/index.js",
|
@@ -47,6 +47,7 @@
|
|
47
47
|
"dependencies": {
|
48
48
|
"aws4fetch": "1.0.20",
|
49
49
|
"kafkajs": "2.2.4",
|
50
|
+
"kafkajs-lz4": "2.0.0-beta.0",
|
50
51
|
"zod": "3.24.1"
|
51
52
|
},
|
52
53
|
"devDependencies": {
|