@thirdweb-dev/service-utils 0.9.14 → 0.10.0-nightly-c5f9921dc9cf6c62d754f12ce6171d95bd87a590-20250625053652

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.
@@ -13,6 +13,7 @@ tslib_1.__exportStar(require("../core/usage.js"), exports);
13
13
  tslib_1.__exportStar(require("../core/usageV2.js"), exports);
14
14
  tslib_1.__exportStar(require("./kafka.js"), exports);
15
15
  tslib_1.__exportStar(require("./usageV2.js"), exports);
16
+ tslib_1.__exportStar(require("./webhookProducer.js"), exports);
16
17
  async function authorizeNode(authInput, serviceConfig, cacheOptions) {
17
18
  let authData;
18
19
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"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"}
@@ -4,18 +4,14 @@ exports.UsageV2Producer = void 0;
4
4
  const node_crypto_1 = require("node:crypto");
5
5
  const usageV2_js_1 = require("../core/usageV2.js");
6
6
  const kafka_js_1 = require("./kafka.js");
7
- const TEAM_ID_PREFIX = "team_";
8
- const PROJECT_ID_PREFIX = "prj_";
9
7
  /**
10
- * Creates a UsageV2Producer which opens a persistent TCP connection.
11
- * This class is thread-safe so your service should re-use one instance.
8
+ * Creates a producer for usage events.
12
9
  *
13
10
  * Example:
14
11
  * ```ts
15
- * usageV2 = new UsageV2Producer(..)
16
- * await usageV2.sendEvents(events)
17
- * // Non-blocking:
18
- * // void usageV2.sendEvents(events).catch((e) => console.error(e))
12
+ * const kafkaProducer = new KafkaProducer({...});
13
+ * const usageV2 = new UsageV2Producer({ kafkaProducer, source: "storage" });
14
+ * await usageV2.sendEvents(events);
19
15
  * ```
20
16
  */
21
17
  class UsageV2Producer {
@@ -32,12 +28,17 @@ class UsageV2Producer {
32
28
  writable: true,
33
29
  value: void 0
34
30
  });
35
- this.kafkaProducer = new kafka_js_1.KafkaProducer({
36
- kafkaServers: config.kafkaServers,
37
- password: config.password,
38
- producerName: config.producerName,
39
- username: config.username,
40
- });
31
+ if ("kafkaProducer" in config) {
32
+ this.kafkaProducer = config.kafkaProducer;
33
+ }
34
+ else {
35
+ this.kafkaProducer = new kafka_js_1.KafkaProducer({
36
+ kafkaServers: config.kafkaServers,
37
+ password: config.password,
38
+ producerName: config.producerName,
39
+ username: config.username,
40
+ });
41
+ }
41
42
  this.topic = (0, usageV2_js_1.getTopicName)(config.source);
42
43
  }
43
44
  /**
@@ -56,24 +57,17 @@ class UsageV2Producer {
56
57
  created_at: event.created_at ?? new Date(),
57
58
  // Default to a generated UUID.
58
59
  id: event.id ?? (0, node_crypto_1.randomUUID)(),
59
- // Remove the "prj_" prefix, if any.
60
- project_id: event.project_id?.startsWith(PROJECT_ID_PREFIX)
61
- ? event.project_id.slice(PROJECT_ID_PREFIX.length)
60
+ // Remove the "prj_" prefix.
61
+ project_id: event.project_id?.startsWith("prj_")
62
+ ? event.project_id.slice(4)
62
63
  : event.project_id,
63
- // Remove the "team_" prefix, if any.
64
- team_id: event.team_id.startsWith(TEAM_ID_PREFIX)
65
- ? event.team_id.slice(TEAM_ID_PREFIX.length)
64
+ // Remove the "team_" prefix.
65
+ team_id: event.team_id.startsWith("team_")
66
+ ? event.team_id.slice(5)
66
67
  : event.team_id,
67
68
  }));
68
69
  await this.kafkaProducer.send(this.topic, parsedEvents);
69
70
  }
70
- /**
71
- * Disconnects UsageV2Producer.
72
- * Useful when shutting down the service to flush in-flight events.
73
- */
74
- async disconnect() {
75
- await this.kafkaProducer.disconnect();
76
- }
77
71
  }
78
72
  exports.UsageV2Producer = UsageV2Producer;
79
73
  //# sourceMappingURL=usageV2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usageV2.js","sourceRoot":"","sources":["../../../src/node/usageV2.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,mDAI4B;AAC5B,yCAA2C;AAE3C,MAAM,cAAc,GAAG,OAAO,CAAC;AAC/B,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEjC;;;;;;;;;;;GAWG;AACH,MAAa,eAAe;IAI1B,YAAY,MAgBX;QAnBO;;;;;WAA6B;QAC7B;;;;;WAAc;QAmBpB,IAAI,CAAC,aAAa,GAAG,IAAI,wBAAa,CAAC;YACrC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,IAAA,yBAAY,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CAAC,MAAsB;QACrC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1C,GAAG,KAAK;YACR,kBAAkB;YAClB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE;YAC1C,+BAA+B;YAC/B,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAA,wBAAU,GAAE;YAC5B,oCAAoC;YACpC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,iBAAiB,CAAC;gBACzD,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAClD,CAAC,CAAC,KAAK,CAAC,UAAU;YACpB,qCAAqC;YACrC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;gBAC/C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;gBAC5C,CAAC,CAAC,KAAK,CAAC,OAAO;SAClB,CAAC,CAAC,CAAC;QACJ,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC;CACF;AAjED,0CAiEC"}
1
+ {"version":3,"file":"usageV2.js","sourceRoot":"","sources":["../../../src/node/usageV2.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,mDAI4B;AAC5B,yCAA2C;AAE3C;;;;;;;;;GASG;AACH,MAAa,eAAe;IAI1B,YACE,MA2BK;QA/BC;;;;;WAA6B;QAC7B;;;;;WAAc;QAgCpB,IAAI,eAAe,IAAI,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,GAAG,IAAI,wBAAa,CAAC;gBACrC,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAA,yBAAY,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CAAC,MAAsB;QACrC,MAAM,YAAY,GAAmB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1D,GAAG,KAAK;YACR,kBAAkB;YAClB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE;YAC1C,+BAA+B;YAC/B,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAA,wBAAU,GAAE;YAC5B,4BAA4B;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC;gBAC9C,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,CAAC,CAAC,KAAK,CAAC,UAAU;YACpB,6BAA6B;YAC7B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBACxC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxB,CAAC,CAAC,KAAK,CAAC,OAAO;SAClB,CAAC,CAAC,CAAC;QACJ,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;CACF;AA1ED,0CA0EC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebhookEventProducer = void 0;
4
+ const node_assert_1 = require("node:assert");
5
+ const cuid2_1 = require("@paralleldrive/cuid2");
6
+ /**
7
+ * Creates a producer for webhook events.
8
+ *
9
+ * Example:
10
+ * ```ts
11
+ * const kafkaProducer = new KafkaProducer({...});
12
+ * const webhookProducer = new WebhookEventProducer({ kafkaProducer });
13
+ * await webhookProducer.sendEvents("your.topic.name", events);
14
+ * ```
15
+ */
16
+ class WebhookEventProducer {
17
+ constructor(config) {
18
+ Object.defineProperty(this, "kafkaProducer", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: void 0
23
+ });
24
+ this.kafkaProducer = config.kafkaProducer;
25
+ }
26
+ /**
27
+ * Emit a webhook event.
28
+ * This method may throw. To call this non-blocking:
29
+ * ```ts
30
+ * void webhookProducer.sendEvents(events).catch((e) => console.error(e))
31
+ * ```
32
+ */
33
+ async sendEvents(topic, events) {
34
+ const parsedEvents = events.map((event) => {
35
+ (0, node_assert_1.default)(event.teamId.startsWith("team_"), "teamId must start with 'team_'");
36
+ (0, node_assert_1.default)(!event.projectId || event.projectId.startsWith("prj_"), "projectId must start with 'prj_'");
37
+ return {
38
+ ...event,
39
+ // Default to now.
40
+ created_at: event.createdAt ?? new Date(),
41
+ // Default to a generated UUID.
42
+ id: event.id ?? `evt_${(0, cuid2_1.createId)()}`,
43
+ };
44
+ });
45
+ await this.kafkaProducer.send(topic, parsedEvents);
46
+ }
47
+ }
48
+ exports.WebhookEventProducer = WebhookEventProducer;
49
+ //# sourceMappingURL=webhookProducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhookProducer.js","sourceRoot":"","sources":["../../../src/node/webhookProducer.ts"],"names":[],"mappings":";;;AAAA,6CAAiC;AACjC,gDAAgD;AAchD;;;;;;;;;GASG;AACH,MAAa,oBAAoB;IAG/B,YAAY,MAAwC;QAF5C;;;;;WAA6B;QAGnC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC5C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,MAAsB;QACpD,MAAM,YAAY,GAAmB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACxD,IAAA,qBAAM,EACJ,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAChC,gCAAgC,CACjC,CAAC;YACF,IAAA,qBAAM,EACJ,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EACtD,kCAAkC,CACnC,CAAC;YAEF,OAAO;gBACL,GAAG,KAAK;gBACR,kBAAkB;gBAClB,UAAU,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE;gBACzC,+BAA+B;gBAC/B,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,OAAO,IAAA,gBAAQ,GAAE,EAAE;aACpC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACrD,CAAC;CACF;AAnCD,oDAmCC"}
@@ -6,6 +6,7 @@ export * from "../core/usage.js";
6
6
  export * from "../core/usageV2.js";
7
7
  export * from "./kafka.js";
8
8
  export * from "./usageV2.js";
9
+ export * from "./webhookProducer.js";
9
10
  export async function authorizeNode(authInput, serviceConfig, cacheOptions) {
10
11
  let authData;
11
12
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,14 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { getTopicName, } from "../core/usageV2.js";
3
3
  import { KafkaProducer } from "./kafka.js";
4
- const TEAM_ID_PREFIX = "team_";
5
- const PROJECT_ID_PREFIX = "prj_";
6
4
  /**
7
- * Creates a UsageV2Producer which opens a persistent TCP connection.
8
- * This class is thread-safe so your service should re-use one instance.
5
+ * Creates a producer for usage events.
9
6
  *
10
7
  * Example:
11
8
  * ```ts
12
- * usageV2 = new UsageV2Producer(..)
13
- * await usageV2.sendEvents(events)
14
- * // Non-blocking:
15
- * // void usageV2.sendEvents(events).catch((e) => console.error(e))
9
+ * const kafkaProducer = new KafkaProducer({...});
10
+ * const usageV2 = new UsageV2Producer({ kafkaProducer, source: "storage" });
11
+ * await usageV2.sendEvents(events);
16
12
  * ```
17
13
  */
18
14
  export class UsageV2Producer {
@@ -29,12 +25,17 @@ export class UsageV2Producer {
29
25
  writable: true,
30
26
  value: void 0
31
27
  });
32
- this.kafkaProducer = new KafkaProducer({
33
- kafkaServers: config.kafkaServers,
34
- password: config.password,
35
- producerName: config.producerName,
36
- username: config.username,
37
- });
28
+ if ("kafkaProducer" in config) {
29
+ this.kafkaProducer = config.kafkaProducer;
30
+ }
31
+ else {
32
+ this.kafkaProducer = new KafkaProducer({
33
+ kafkaServers: config.kafkaServers,
34
+ password: config.password,
35
+ producerName: config.producerName,
36
+ username: config.username,
37
+ });
38
+ }
38
39
  this.topic = getTopicName(config.source);
39
40
  }
40
41
  /**
@@ -53,23 +54,16 @@ export class UsageV2Producer {
53
54
  created_at: event.created_at ?? new Date(),
54
55
  // Default to a generated UUID.
55
56
  id: event.id ?? randomUUID(),
56
- // Remove the "prj_" prefix, if any.
57
- project_id: event.project_id?.startsWith(PROJECT_ID_PREFIX)
58
- ? event.project_id.slice(PROJECT_ID_PREFIX.length)
57
+ // Remove the "prj_" prefix.
58
+ project_id: event.project_id?.startsWith("prj_")
59
+ ? event.project_id.slice(4)
59
60
  : event.project_id,
60
- // Remove the "team_" prefix, if any.
61
- team_id: event.team_id.startsWith(TEAM_ID_PREFIX)
62
- ? event.team_id.slice(TEAM_ID_PREFIX.length)
61
+ // Remove the "team_" prefix.
62
+ team_id: event.team_id.startsWith("team_")
63
+ ? event.team_id.slice(5)
63
64
  : event.team_id,
64
65
  }));
65
66
  await this.kafkaProducer.send(this.topic, parsedEvents);
66
67
  }
67
- /**
68
- * Disconnects UsageV2Producer.
69
- * Useful when shutting down the service to flush in-flight events.
70
- */
71
- async disconnect() {
72
- await this.kafkaProducer.disconnect();
73
- }
74
68
  }
75
69
  //# sourceMappingURL=usageV2.js.map
@@ -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,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,cAAc,GAAG,OAAO,CAAC;AAC/B,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEjC;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,eAAe;IAI1B,YAAY,MAgBX;QAnBO;;;;;WAA6B;QAC7B;;;;;WAAc;QAmBpB,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CAAC,MAAsB;QACrC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1C,GAAG,KAAK;YACR,kBAAkB;YAClB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE;YAC1C,+BAA+B;YAC/B,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,UAAU,EAAE;YAC5B,oCAAoC;YACpC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,iBAAiB,CAAC;gBACzD,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAClD,CAAC,CAAC,KAAK,CAAC,UAAU;YACpB,qCAAqC;YACrC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;gBAC/C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;gBAC5C,CAAC,CAAC,KAAK,CAAC,OAAO;SAClB,CAAC,CAAC,CAAC;QACJ,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"usageV2.js","sourceRoot":"","sources":["../../../src/node/usageV2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;GASG;AACH,MAAM,OAAO,eAAe;IAI1B,YACE,MA2BK;QA/BC;;;;;WAA6B;QAC7B;;;;;WAAc;QAgCpB,IAAI,eAAe,IAAI,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;gBACrC,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CAAC,MAAsB;QACrC,MAAM,YAAY,GAAmB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1D,GAAG,KAAK;YACR,kBAAkB;YAClB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE;YAC1C,+BAA+B;YAC/B,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,UAAU,EAAE;YAC5B,4BAA4B;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC;gBAC9C,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,CAAC,CAAC,KAAK,CAAC,UAAU;YACpB,6BAA6B;YAC7B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBACxC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxB,CAAC,CAAC,KAAK,CAAC,OAAO;SAClB,CAAC,CAAC,CAAC;QACJ,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;CACF"}
@@ -0,0 +1,45 @@
1
+ import assert from "node:assert";
2
+ import { createId } from "@paralleldrive/cuid2";
3
+ /**
4
+ * Creates a producer for webhook events.
5
+ *
6
+ * Example:
7
+ * ```ts
8
+ * const kafkaProducer = new KafkaProducer({...});
9
+ * const webhookProducer = new WebhookEventProducer({ kafkaProducer });
10
+ * await webhookProducer.sendEvents("your.topic.name", events);
11
+ * ```
12
+ */
13
+ export class WebhookEventProducer {
14
+ constructor(config) {
15
+ Object.defineProperty(this, "kafkaProducer", {
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true,
19
+ value: void 0
20
+ });
21
+ this.kafkaProducer = config.kafkaProducer;
22
+ }
23
+ /**
24
+ * Emit a webhook event.
25
+ * This method may throw. To call this non-blocking:
26
+ * ```ts
27
+ * void webhookProducer.sendEvents(events).catch((e) => console.error(e))
28
+ * ```
29
+ */
30
+ async sendEvents(topic, events) {
31
+ const parsedEvents = events.map((event) => {
32
+ assert(event.teamId.startsWith("team_"), "teamId must start with 'team_'");
33
+ assert(!event.projectId || event.projectId.startsWith("prj_"), "projectId must start with 'prj_'");
34
+ return {
35
+ ...event,
36
+ // Default to now.
37
+ created_at: event.createdAt ?? new Date(),
38
+ // Default to a generated UUID.
39
+ id: event.id ?? `evt_${createId()}`,
40
+ };
41
+ });
42
+ await this.kafkaProducer.send(topic, parsedEvents);
43
+ }
44
+ }
45
+ //# sourceMappingURL=webhookProducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhookProducer.js","sourceRoot":"","sources":["../../../src/node/webhookProducer.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAchD;;;;;;;;;GASG;AACH,MAAM,OAAO,oBAAoB;IAG/B,YAAY,MAAwC;QAF5C;;;;;WAA6B;QAGnC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC5C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,MAAsB;QACpD,MAAM,YAAY,GAAmB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACxD,MAAM,CACJ,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAChC,gCAAgC,CACjC,CAAC;YACF,MAAM,CACJ,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EACtD,kCAAkC,CACnC,CAAC;YAEF,OAAO;gBACL,GAAG,KAAK;gBACR,kBAAkB;gBAClB,UAAU,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE;gBACzC,+BAA+B;gBAC/B,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,OAAO,QAAQ,EAAE,EAAE;aACpC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACrD,CAAC;CACF"}
@@ -9,6 +9,7 @@ export * from "../core/usage.js";
9
9
  export * from "../core/usageV2.js";
10
10
  export * from "./kafka.js";
11
11
  export * from "./usageV2.js";
12
+ export * from "./webhookProducer.js";
12
13
  type NodeServiceConfig = CoreServiceConfig;
13
14
  export type AuthInput = CoreAuthInput & {
14
15
  req: IncomingMessage | Request;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EACf,cAAc,EACf,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACb,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAE7B,KAAK,iBAAiB,GAAG,iBAAiB,CAAC;AAE3C,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG;IACtC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC;CAChC,CAAC;AAEF,wBAAsB,aAAa,CACjC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,iBAAiB,EAChC,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAsB9B;AAmBD,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,GACnB,kBAAkB,CA4GpB;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,UAE9C;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,GAAG,EACH,GAAG,EACH,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE,SAAS,GAAG;IAEb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,QAwBA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EACf,cAAc,EACf,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACb,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AAErC,KAAK,iBAAiB,GAAG,iBAAiB,CAAC;AAE3C,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG;IACtC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC;CAChC,CAAC;AAEF,wBAAsB,aAAa,CACjC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,iBAAiB,EAChC,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAsB9B;AAmBD,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,GACnB,kBAAkB,CA4GpB;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,UAE9C;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,GAAG,EACH,GAAG,EACH,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE,SAAS,GAAG;IAEb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,QAwBA"}
@@ -1,26 +1,35 @@
1
1
  import { type UsageV2Event, type UsageV2Source } from "../core/usageV2.js";
2
+ import { KafkaProducer } from "./kafka.js";
2
3
  /**
3
- * Creates a UsageV2Producer which opens a persistent TCP connection.
4
- * This class is thread-safe so your service should re-use one instance.
4
+ * Creates a producer for usage events.
5
5
  *
6
6
  * Example:
7
7
  * ```ts
8
- * usageV2 = new UsageV2Producer(..)
9
- * await usageV2.sendEvents(events)
10
- * // Non-blocking:
11
- * // void usageV2.sendEvents(events).catch((e) => console.error(e))
8
+ * const kafkaProducer = new KafkaProducer({...});
9
+ * const usageV2 = new UsageV2Producer({ kafkaProducer, source: "storage" });
10
+ * await usageV2.sendEvents(events);
12
11
  * ```
13
12
  */
14
13
  export declare class UsageV2Producer {
15
14
  private kafkaProducer;
16
15
  private topic;
17
16
  constructor(config: {
17
+ /**
18
+ * Shared KafkaProducer instance.
19
+ */
20
+ kafkaProducer: KafkaProducer;
21
+ /**
22
+ * The product where usage is coming from.
23
+ */
24
+ source: UsageV2Source;
25
+ } | {
18
26
  /**
19
27
  * A descriptive name for your service. Example: "storage-server"
20
28
  */
21
29
  producerName: string;
22
30
  /**
23
31
  * A comma-separated list of `host[:port]` Kafka servers.
32
+ * @deprecated: Instantiate and pass in `kafkaProducer` instead.
24
33
  */
25
34
  kafkaServers: string;
26
35
  /**
@@ -40,10 +49,5 @@ export declare class UsageV2Producer {
40
49
  * @param events
41
50
  */
42
51
  sendEvents(events: UsageV2Event[]): Promise<void>;
43
- /**
44
- * Disconnects UsageV2Producer.
45
- * Useful when shutting down the service to flush in-flight events.
46
- */
47
- disconnect(): Promise<void>;
48
52
  }
49
53
  //# sourceMappingURL=usageV2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usageV2.d.ts","sourceRoot":"","sources":["../../../src/node/usageV2.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAM5B;;;;;;;;;;;GAWG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE;QAClB;;WAEG;QACH,YAAY,EAAE,MAAM,CAAC;QACrB;;WAEG;QACH,YAAY,EAAE,MAAM,CAAC;QACrB;;WAEG;QACH,MAAM,EAAE,aAAa,CAAC;QAEtB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB;IAUD;;;;;;;;OAQG;IACG,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvD;;;OAGG;IACG,UAAU;CAGjB"}
1
+ {"version":3,"file":"usageV2.d.ts","sourceRoot":"","sources":["../../../src/node/usageV2.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;GASG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,KAAK,CAAS;gBAGpB,MAAM,EACF;QACE;;WAEG;QACH,aAAa,EAAE,aAAa,CAAC;QAC7B;;WAEG;QACH,MAAM,EAAE,aAAa,CAAC;KACvB,GACD;QACE;;WAEG;QACH,YAAY,EAAE,MAAM,CAAC;QACrB;;;WAGG;QACH,YAAY,EAAE,MAAM,CAAC;QACrB;;WAEG;QACH,MAAM,EAAE,aAAa,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB;IAeP;;;;;;;;OAQG;IACG,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBxD"}
@@ -0,0 +1,37 @@
1
+ import type { KafkaProducer } from "./kafka.js";
2
+ interface WebhookEvent extends Record<string, unknown> {
3
+ id?: `evt_${string}`;
4
+ teamId: string;
5
+ projectId?: string;
6
+ createdAt?: Date;
7
+ /**
8
+ * This should match your model defined in api-server.
9
+ */
10
+ payload: Record<string, unknown>;
11
+ }
12
+ /**
13
+ * Creates a producer for webhook events.
14
+ *
15
+ * Example:
16
+ * ```ts
17
+ * const kafkaProducer = new KafkaProducer({...});
18
+ * const webhookProducer = new WebhookEventProducer({ kafkaProducer });
19
+ * await webhookProducer.sendEvents("your.topic.name", events);
20
+ * ```
21
+ */
22
+ export declare class WebhookEventProducer {
23
+ private kafkaProducer;
24
+ constructor(config: {
25
+ kafkaProducer: KafkaProducer;
26
+ });
27
+ /**
28
+ * Emit a webhook event.
29
+ * This method may throw. To call this non-blocking:
30
+ * ```ts
31
+ * void webhookProducer.sendEvents(events).catch((e) => console.error(e))
32
+ * ```
33
+ */
34
+ sendEvents(topic: string, events: WebhookEvent[]): Promise<void>;
35
+ }
36
+ export {};
37
+ //# sourceMappingURL=webhookProducer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhookProducer.d.ts","sourceRoot":"","sources":["../../../src/node/webhookProducer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,UAAU,YAAa,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpD,EAAE,CAAC,EAAE,OAAO,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;;;;;GASG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,aAAa,CAAgB;gBAEzB,MAAM,EAAE;QAAE,aAAa,EAAE,aAAa,CAAA;KAAE;IAIpD;;;;;;OAMG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBvE"}
package/package.json CHANGED
@@ -5,11 +5,12 @@
5
5
  },
6
6
  "dependencies": {
7
7
  "@confluentinc/kafka-javascript": "1.3.2",
8
+ "@paralleldrive/cuid2": "^2.2.2",
8
9
  "aws4fetch": "1.0.20",
9
10
  "zod": "3.25.62"
10
11
  },
11
12
  "devDependencies": {
12
- "@biomejs/biome": "2.0.0",
13
+ "@biomejs/biome": "2.0.4",
13
14
  "@cloudflare/workers-types": "4.20250612.0",
14
15
  "@types/node": "22.14.1",
15
16
  "@vitest/coverage-v8": "3.2.3",
@@ -56,7 +57,7 @@
56
57
  }
57
58
  },
58
59
  "typings": "dist/types/index.d.ts",
59
- "version": "0.9.14",
60
+ "version": "0.10.0-nightly-c5f9921dc9cf6c62d754f12ce6171d95bd87a590-20250625053652",
60
61
  "scripts": {
61
62
  "build": "pnpm clean && pnpm build:types && pnpm build:cjs && pnpm build:esm",
62
63
  "build:cjs": "tsc --noCheck --project ./tsconfig.build.json --module commonjs --outDir ./dist/cjs --verbatimModuleSyntax false && printf '{\"type\":\"commonjs\"}' > ./dist/cjs/package.json",