@thirdweb-dev/service-utils 0.9.14-nightly-6be945936195e6ba41dbdd3a90a28f097e81dbee-20250620000408 → 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.
- package/dist/cjs/cf-worker/index.js +25 -25
- package/dist/cjs/cf-worker/index.js.map +1 -1
- package/dist/cjs/cf-worker/usage.js +7 -7
- package/dist/cjs/cf-worker/usage.js.map +1 -1
- package/dist/cjs/cf-worker/usageV2.js +2 -2
- package/dist/cjs/cf-worker/usageV2.js.map +1 -1
- package/dist/cjs/core/api.js +1 -1
- package/dist/cjs/core/api.js.map +1 -1
- package/dist/cjs/core/authorize/client.js +6 -6
- package/dist/cjs/core/authorize/client.js.map +1 -1
- package/dist/cjs/core/authorize/index.js +12 -12
- package/dist/cjs/core/authorize/index.js.map +1 -1
- package/dist/cjs/core/authorize/service.js +7 -7
- package/dist/cjs/core/authorize/service.js.map +1 -1
- package/dist/cjs/core/rateLimit/index.js +7 -7
- package/dist/cjs/core/rateLimit/index.js.map +1 -1
- package/dist/cjs/core/rateLimit/strategies/sliding-window.js +3 -3
- package/dist/cjs/core/rateLimit/strategies/sliding-window.js.map +1 -1
- package/dist/cjs/core/services.js +51 -51
- package/dist/cjs/core/services.js.map +1 -1
- package/dist/cjs/core/usage.js +53 -52
- package/dist/cjs/core/usage.js.map +1 -1
- package/dist/cjs/index.js +5 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/mocks.js +60 -60
- package/dist/cjs/mocks.js.map +1 -1
- package/dist/cjs/node/index.js +26 -25
- package/dist/cjs/node/index.js.map +1 -1
- package/dist/cjs/node/kafka.js +6 -6
- package/dist/cjs/node/kafka.js.map +1 -1
- package/dist/cjs/node/usageV2.js +24 -30
- package/dist/cjs/node/usageV2.js.map +1 -1
- package/dist/cjs/node/webhookProducer.js +49 -0
- package/dist/cjs/node/webhookProducer.js.map +1 -0
- package/dist/esm/cf-worker/index.js +25 -25
- package/dist/esm/cf-worker/index.js.map +1 -1
- package/dist/esm/cf-worker/usage.js +7 -7
- package/dist/esm/cf-worker/usage.js.map +1 -1
- package/dist/esm/cf-worker/usageV2.js +2 -2
- package/dist/esm/cf-worker/usageV2.js.map +1 -1
- package/dist/esm/core/api.js +1 -1
- package/dist/esm/core/api.js.map +1 -1
- package/dist/esm/core/authorize/client.js +6 -6
- package/dist/esm/core/authorize/client.js.map +1 -1
- package/dist/esm/core/authorize/index.js +12 -12
- package/dist/esm/core/authorize/index.js.map +1 -1
- package/dist/esm/core/authorize/service.js +7 -7
- package/dist/esm/core/authorize/service.js.map +1 -1
- package/dist/esm/core/rateLimit/index.js +7 -7
- package/dist/esm/core/rateLimit/index.js.map +1 -1
- package/dist/esm/core/rateLimit/strategies/sliding-window.js +3 -3
- package/dist/esm/core/rateLimit/strategies/sliding-window.js.map +1 -1
- package/dist/esm/core/services.js +51 -51
- package/dist/esm/core/services.js.map +1 -1
- package/dist/esm/core/usage.js +53 -52
- package/dist/esm/core/usage.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/mocks.js +60 -60
- package/dist/esm/mocks.js.map +1 -1
- package/dist/esm/node/index.js +26 -25
- package/dist/esm/node/index.js.map +1 -1
- package/dist/esm/node/kafka.js +6 -6
- package/dist/esm/node/kafka.js.map +1 -1
- package/dist/esm/node/usageV2.js +24 -30
- package/dist/esm/node/usageV2.js.map +1 -1
- package/dist/esm/node/webhookProducer.js +45 -0
- package/dist/esm/node/webhookProducer.js.map +1 -0
- package/dist/types/cf-worker/index.d.ts +3 -3
- package/dist/types/cf-worker/index.d.ts.map +1 -1
- package/dist/types/cf-worker/usage.d.ts.map +1 -1
- package/dist/types/core/authorize/client.d.ts.map +1 -1
- package/dist/types/core/authorize/index.d.ts.map +1 -1
- package/dist/types/core/services.d.ts +122 -122
- package/dist/types/core/services.d.ts.map +1 -1
- package/dist/types/core/usage.d.ts +143 -141
- package/dist/types/core/usage.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/node/index.d.ts +5 -4
- package/dist/types/node/index.d.ts.map +1 -1
- package/dist/types/node/usageV2.d.ts +15 -11
- package/dist/types/node/usageV2.d.ts.map +1 -1
- package/dist/types/node/webhookProducer.d.ts +37 -0
- package/dist/types/node/webhookProducer.d.ts.map +1 -0
- package/package.json +45 -43
package/dist/esm/mocks.js
CHANGED
@@ -1,88 +1,55 @@
|
|
1
1
|
export const validProjectResponse = {
|
2
|
+
bundleIds: [],
|
3
|
+
createdAt: new Date("2024-06-01").toISOString(),
|
4
|
+
domains: ["example.com", "*.example.com"],
|
2
5
|
id: "1",
|
6
|
+
image: "https://example.com/image.png",
|
7
|
+
lastAccessedAt: new Date("2024-06-01").toISOString(),
|
8
|
+
name: "test-project",
|
3
9
|
publishableKey: "your-api-key",
|
4
|
-
|
5
|
-
|
6
|
-
|
10
|
+
secretKeys: [
|
11
|
+
{
|
12
|
+
createdAt: new Date("2024-06-01").toISOString(),
|
13
|
+
hash: "1234567890123456789012345678901234567890123456789012345678901234",
|
14
|
+
masked: "foo...lorem",
|
15
|
+
updatedAt: new Date("2024-06-01").toISOString(),
|
16
|
+
},
|
17
|
+
],
|
7
18
|
services: [
|
8
19
|
{
|
9
|
-
name: "storage",
|
10
20
|
actions: ["read", "write"],
|
21
|
+
name: "storage",
|
11
22
|
},
|
12
23
|
{
|
13
|
-
name: "rpc",
|
14
24
|
actions: [],
|
25
|
+
name: "rpc",
|
15
26
|
},
|
16
27
|
{
|
17
|
-
name: "bundler",
|
18
28
|
actions: [],
|
19
29
|
allowedChainIds: [1, 2, 3],
|
30
|
+
name: "bundler",
|
20
31
|
},
|
21
32
|
],
|
33
|
+
slug: "test-project",
|
22
34
|
teamId: "1",
|
23
|
-
createdAt: new Date("2024-06-01").toISOString(),
|
24
35
|
updatedAt: new Date("2024-06-01").toISOString(),
|
25
|
-
|
26
|
-
name: "test-project",
|
27
|
-
slug: "test-project",
|
28
|
-
image: "https://example.com/image.png",
|
29
|
-
secretKeys: [
|
30
|
-
{
|
31
|
-
hash: "1234567890123456789012345678901234567890123456789012345678901234",
|
32
|
-
masked: "foo...lorem",
|
33
|
-
createdAt: new Date("2024-06-01").toISOString(),
|
34
|
-
updatedAt: new Date("2024-06-01").toISOString(),
|
35
|
-
},
|
36
|
-
],
|
36
|
+
walletAddresses: ["creator-address"],
|
37
37
|
};
|
38
38
|
export const validTeamResponse = {
|
39
|
-
id: "1",
|
40
|
-
name: "test-team",
|
41
|
-
slug: "test-team",
|
42
|
-
image: "https://example.com/image.png",
|
43
|
-
createdAt: new Date("2024-06-01").toISOString(),
|
44
|
-
updatedAt: new Date("2024-06-01").toISOString(),
|
45
|
-
billingPlan: "free",
|
46
|
-
supportPlan: "free",
|
47
39
|
billingEmail: "test@example.com",
|
40
|
+
billingPlan: "free",
|
48
41
|
billingStatus: "noPayment",
|
49
42
|
canCreatePublicChains: false,
|
50
|
-
enabledScopes: ["storage", "rpc", "bundler"],
|
51
|
-
isOnboarded: true,
|
52
|
-
verifiedDomain: null,
|
53
43
|
capabilities: {
|
54
|
-
rpc: {
|
55
|
-
enabled: true,
|
56
|
-
rateLimit: 1000,
|
57
|
-
},
|
58
|
-
insight: {
|
59
|
-
enabled: true,
|
60
|
-
rateLimit: 1000,
|
61
|
-
webhooks: true,
|
62
|
-
},
|
63
|
-
storage: {
|
64
|
-
enabled: true,
|
65
|
-
download: {
|
66
|
-
rateLimit: 1000,
|
67
|
-
},
|
68
|
-
upload: {
|
69
|
-
totalFileSizeBytesLimit: 1_000_000_000,
|
70
|
-
rateLimit: 1000,
|
71
|
-
},
|
72
|
-
},
|
73
|
-
nebula: {
|
74
|
-
enabled: true,
|
75
|
-
rateLimit: 1000,
|
76
|
-
},
|
77
44
|
bundler: {
|
78
45
|
enabled: true,
|
79
46
|
mainnetEnabled: true,
|
80
47
|
rateLimit: 1000,
|
81
48
|
},
|
82
49
|
embeddedWallets: {
|
83
|
-
enabled: true,
|
84
50
|
customAuth: true,
|
85
51
|
customBranding: true,
|
52
|
+
enabled: true,
|
86
53
|
sms: {
|
87
54
|
domestic: true,
|
88
55
|
international: true,
|
@@ -93,6 +60,15 @@ export const validTeamResponse = {
|
|
93
60
|
mainnetEnabled: true,
|
94
61
|
rateLimit: 100,
|
95
62
|
},
|
63
|
+
insight: {
|
64
|
+
enabled: true,
|
65
|
+
rateLimit: 1000,
|
66
|
+
webhooks: true,
|
67
|
+
},
|
68
|
+
nebula: {
|
69
|
+
enabled: true,
|
70
|
+
rateLimit: 1000,
|
71
|
+
},
|
96
72
|
pay: {
|
97
73
|
enabled: true,
|
98
74
|
rateLimit: 1000,
|
@@ -102,25 +78,49 @@ export const validTeamResponse = {
|
|
102
78
|
ecosystemWallets: true,
|
103
79
|
seats: true,
|
104
80
|
},
|
81
|
+
rpc: {
|
82
|
+
enabled: true,
|
83
|
+
rateLimit: 1000,
|
84
|
+
},
|
85
|
+
storage: {
|
86
|
+
download: {
|
87
|
+
rateLimit: 1000,
|
88
|
+
},
|
89
|
+
enabled: true,
|
90
|
+
upload: {
|
91
|
+
rateLimit: 1000,
|
92
|
+
totalFileSizeBytesLimit: 1_000_000_000,
|
93
|
+
},
|
94
|
+
},
|
105
95
|
},
|
96
|
+
createdAt: new Date("2024-06-01").toISOString(),
|
97
|
+
dedicatedSupportChannel: null,
|
98
|
+
enabledScopes: ["storage", "rpc", "bundler"],
|
99
|
+
id: "1",
|
100
|
+
image: "https://example.com/image.png",
|
101
|
+
isOnboarded: true,
|
102
|
+
name: "test-team",
|
106
103
|
planCancellationDate: null,
|
104
|
+
slug: "test-team",
|
105
|
+
supportPlan: "free",
|
107
106
|
unthreadCustomerId: null,
|
108
|
-
|
107
|
+
updatedAt: new Date("2024-06-01").toISOString(),
|
108
|
+
verifiedDomain: null,
|
109
109
|
};
|
110
110
|
export const validTeamAndProjectResponse = {
|
111
|
-
team: validTeamResponse,
|
112
|
-
project: validProjectResponse,
|
113
111
|
authMethod: "publishableKey",
|
112
|
+
project: validProjectResponse,
|
113
|
+
team: validTeamResponse,
|
114
114
|
};
|
115
115
|
export const validServiceConfig = {
|
116
116
|
apiUrl: "https://api.example.com",
|
117
|
-
serviceScope: "storage",
|
118
|
-
serviceApiKey: "service-api-key",
|
119
117
|
serviceAction: "read",
|
118
|
+
serviceApiKey: "service-api-key",
|
119
|
+
serviceScope: "storage",
|
120
120
|
};
|
121
121
|
export const validBundlerServiceConfig = {
|
122
122
|
apiUrl: "https://api.example.com",
|
123
|
-
serviceScope: "bundler",
|
124
123
|
serviceApiKey: "service-api-key",
|
124
|
+
serviceScope: "bundler",
|
125
125
|
};
|
126
126
|
//# sourceMappingURL=mocks.js.map
|
package/dist/esm/mocks.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../src/mocks.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,oBAAoB,GAAoB;IACnD,EAAE,EAAE
|
1
|
+
{"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../src/mocks.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/node/index.js
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
import { createHash } from "node:crypto";
|
2
2
|
import { authorize } from "../core/authorize/index.js";
|
3
|
-
export * from "./kafka.js";
|
4
|
-
export * from "./usageV2.js";
|
5
|
-
export * from "../core/usage.js";
|
6
|
-
export * from "../core/usageV2.js";
|
7
3
|
export * from "../core/rateLimit/index.js";
|
8
4
|
export * from "../core/services.js";
|
5
|
+
export * from "../core/usage.js";
|
6
|
+
export * from "../core/usageV2.js";
|
7
|
+
export * from "./kafka.js";
|
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 {
|
@@ -15,16 +16,16 @@ export async function authorizeNode(authInput, serviceConfig, cacheOptions) {
|
|
15
16
|
if (e instanceof Error && e.message === "KEY_CONFLICT") {
|
16
17
|
return {
|
17
18
|
authorized: false,
|
18
|
-
status: 400,
|
19
|
-
errorMessage: "Please pass either a client id or a secret key.",
|
20
19
|
errorCode: "KEY_CONFLICT",
|
20
|
+
errorMessage: "Please pass either a client id or a secret key.",
|
21
|
+
status: 400,
|
21
22
|
};
|
22
23
|
}
|
23
24
|
return {
|
24
25
|
authorized: false,
|
25
|
-
status: 500,
|
26
|
-
errorMessage: "Internal Server Error",
|
27
26
|
errorCode: "INTERNAL_SERVER_ERROR",
|
27
|
+
errorMessage: "Internal Server Error",
|
28
|
+
status: 500,
|
28
29
|
};
|
29
30
|
}
|
30
31
|
return await authorize(authData, serviceConfig, cacheOptions);
|
@@ -116,17 +117,17 @@ export function extractAuthorizationData(authInput) {
|
|
116
117
|
teamId = getHeader(headers, "x-team-id");
|
117
118
|
}
|
118
119
|
return {
|
119
|
-
|
120
|
-
incomingServiceApiKeyHash,
|
121
|
-
jwt,
|
122
|
-
hashedJWT: jwt ? hashSecretKey(jwt) : null,
|
123
|
-
secretKeyHash,
|
124
|
-
secretKey,
|
120
|
+
bundleId,
|
125
121
|
clientId,
|
126
122
|
ecosystemId,
|
127
123
|
ecosystemPartnerId,
|
124
|
+
hashedJWT: jwt ? hashSecretKey(jwt) : null,
|
125
|
+
incomingServiceApiKey,
|
126
|
+
incomingServiceApiKeyHash,
|
127
|
+
jwt,
|
128
128
|
origin,
|
129
|
-
|
129
|
+
secretKey,
|
130
|
+
secretKeyHash,
|
130
131
|
targetAddress: authInput.targetAddress,
|
131
132
|
teamId: authInput.teamId ?? teamId ?? undefined,
|
132
133
|
useWalletAuth,
|
@@ -137,23 +138,23 @@ export function hashSecretKey(secretKey) {
|
|
137
138
|
}
|
138
139
|
export function logHttpRequest({ clientId, req, res, isAuthed, statusMessage, latencyMs, }) {
|
139
140
|
try {
|
140
|
-
const authorizationData = extractAuthorizationData({
|
141
|
+
const authorizationData = extractAuthorizationData({ clientId, req });
|
141
142
|
const headers = req.headers;
|
142
143
|
console.log(JSON.stringify({
|
143
|
-
|
144
|
-
pathname: req.url,
|
145
|
-
hasSecretKey: !!authorizationData.secretKey,
|
144
|
+
clientId: authorizationData.clientId,
|
146
145
|
hasClientId: !!authorizationData.clientId,
|
147
146
|
hasJwt: !!authorizationData.jwt,
|
148
|
-
|
147
|
+
hasSecretKey: !!authorizationData.secretKey,
|
149
148
|
isAuthed,
|
150
|
-
|
151
|
-
|
149
|
+
latencyMs,
|
150
|
+
method: req.method,
|
151
|
+
os: getHeader(headers, "x-sdk-os"),
|
152
|
+
pathname: req.url,
|
153
|
+
platform: getHeader(headers, "x-sdk-platform"),
|
152
154
|
sdkName: getHeader(headers, "x-sdk-name"),
|
153
155
|
sdkVersion: getHeader(headers, "x-sdk-version"),
|
154
|
-
|
155
|
-
|
156
|
-
latencyMs,
|
156
|
+
status: res.statusCode,
|
157
|
+
statusMessage,
|
157
158
|
}));
|
158
159
|
}
|
159
160
|
catch { }
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/node/kafka.js
CHANGED
@@ -28,14 +28,14 @@ export class KafkaProducer {
|
|
28
28
|
});
|
29
29
|
const { producerName, kafkaServers, username, password, config } = options;
|
30
30
|
this.producer = new KafkaJS.Kafka({}).producer({
|
31
|
-
"
|
31
|
+
"allow.auto.create.topics": true,
|
32
32
|
"bootstrap.servers": kafkaServers,
|
33
|
-
"
|
33
|
+
"client.id": producerName,
|
34
|
+
"compression.codec": "lz4",
|
34
35
|
"sasl.mechanisms": "PLAIN",
|
35
|
-
"sasl.username": username,
|
36
36
|
"sasl.password": password,
|
37
|
-
"
|
38
|
-
"
|
37
|
+
"sasl.username": username,
|
38
|
+
"security.protocol": "sasl_ssl",
|
39
39
|
// All configuration can be overridden.
|
40
40
|
...config,
|
41
41
|
});
|
@@ -67,10 +67,10 @@ export class KafkaProducer {
|
|
67
67
|
async send(topic, messages) {
|
68
68
|
await this.connect();
|
69
69
|
await this.producer.send({
|
70
|
-
topic,
|
71
70
|
messages: messages.map((m) => ({
|
72
71
|
value: JSON.stringify(m),
|
73
72
|
})),
|
73
|
+
topic,
|
74
74
|
});
|
75
75
|
}
|
76
76
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"kafka.js","sourceRoot":"","sources":["../../../src/node/kafka.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,GAER,MAAM,gCAAgC,CAAC;AAgBxC;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,aAAa;IAKxB,YAAY,OAgBX;QApBO;;;;;WAA2B;QACnC,8DAA8D;QACtD;;;;;WAA+B;QAmBrC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAE3E,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;YAC7C,
|
1
|
+
{"version":3,"file":"kafka.js","sourceRoot":"","sources":["../../../src/node/kafka.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,GAER,MAAM,gCAAgC,CAAC;AAgBxC;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,aAAa;IAKxB,YAAY,OAgBX;QApBO;;;;;WAA2B;QACnC,8DAA8D;QACtD;;;;;WAA+B;QAmBrC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAE3E,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;YAC7C,0BAA0B,EAAE,IAAI;YAChC,mBAAmB,EAAE,YAAY;YACjC,WAAW,EAAE,YAAY;YACzB,mBAAmB,EAAE,KAAK;YAC1B,iBAAiB,EAAE,OAAO;YAC1B,eAAe,EAAE,QAAQ;YACzB,eAAe,EAAE,QAAQ;YACzB,mBAAmB,EAAE,UAAU;YAC/B,uCAAuC;YACvC,GAAG,MAAM;SACV,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC1D,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;gBAChC,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI,CACR,KAAa,EACb,QAAmC;QAEnC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;aACzB,CAAC,CAAC;YACH,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;CACF"}
|
package/dist/esm/node/usageV2.js
CHANGED
@@ -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
|
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
|
-
*
|
13
|
-
*
|
14
|
-
*
|
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
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
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
|
/**
|
@@ -49,27 +50,20 @@ export class UsageV2Producer {
|
|
49
50
|
async sendEvents(events) {
|
50
51
|
const parsedEvents = events.map((event) => ({
|
51
52
|
...event,
|
52
|
-
// Default to a generated UUID.
|
53
|
-
id: event.id ?? randomUUID(),
|
54
53
|
// Default to now.
|
55
54
|
created_at: event.created_at ?? new Date(),
|
56
|
-
//
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
project_id: event.project_id?.startsWith(PROJECT_ID_PREFIX)
|
62
|
-
? event.project_id.slice(PROJECT_ID_PREFIX.length)
|
55
|
+
// Default to a generated UUID.
|
56
|
+
id: event.id ?? randomUUID(),
|
57
|
+
// Remove the "prj_" prefix.
|
58
|
+
project_id: event.project_id?.startsWith("prj_")
|
59
|
+
? event.project_id.slice(4)
|
63
60
|
: event.project_id,
|
61
|
+
// Remove the "team_" prefix.
|
62
|
+
team_id: event.team_id.startsWith("team_")
|
63
|
+
? event.team_id.slice(5)
|
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,
|
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"}
|
@@ -3,11 +3,11 @@ import type { CoreServiceConfig } from "../core/api.js";
|
|
3
3
|
import type { AuthorizationInput } from "../core/authorize/index.js";
|
4
4
|
import type { AuthorizationResult } from "../core/authorize/types.js";
|
5
5
|
import type { CoreAuthInput } from "../core/types.js";
|
6
|
+
export * from "../core/rateLimit/index.js";
|
7
|
+
export * from "../core/services.js";
|
8
|
+
export * from "../core/usageV2.js";
|
6
9
|
export * from "./usage.js";
|
7
10
|
export * from "./usageV2.js";
|
8
|
-
export * from "../core/usageV2.js";
|
9
|
-
export * from "../core/services.js";
|
10
|
-
export * from "../core/rateLimit/index.js";
|
11
11
|
export type WorkerServiceConfig = CoreServiceConfig & {
|
12
12
|
kvStore: KVNamespace;
|
13
13
|
ctx: ExecutionContext;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cf-worker/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,QAAQ,EACT,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,iBAAiB,EAA0B,MAAM,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cf-worker/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,QAAQ,EACT,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,iBAAiB,EAA0B,MAAM,gBAAgB,CAAC;AAChF,OAAO,KAAK,EACV,kBAAkB,EAEnB,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,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAE7B,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG;IACpD,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,gBAAgB,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAIF,KAAK,SAAS,GAAG,aAAa,GAAG;IAC/B,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,wBAAsB,eAAe,CACnC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CA0C9B;AAED,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAgG7B;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,mBAIpD;AAQD,wBAAsB,cAAc,CAAC,EACnC,QAAQ,EACR,GAAG,EACH,GAAG,EACH,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE,SAAS,GAAG;IAEb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,QAAQ,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,iBA0BA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../src/cf-worker/usage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,kBAAkB,CAAC;
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../src/cf-worker/usage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AAErE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAWnD;;;;;;;;;;;;;GAaG;AACH,iBAAe,kBAAkB,CAC/B,WAAW,EAAE,UAAU,EAAE,EACzB,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,IAAI,CAAC,CAiCf;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,wBAAgB,eAAe,CAC7B,WAAW,EAAE,0BAA0B,EACvC,sBAAsB,EAAE,sBAAsB,GAC7C,mBAAmB,CAkFrB;AAGD,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,MAAM,GACP,EAAE;
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,wBAAgB,eAAe,CAC7B,WAAW,EAAE,0BAA0B,EACvC,sBAAsB,EAAE,sBAAsB,GAC7C,mBAAmB,CAkFrB;AAGD,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,MAAM,GACP,EAAE;IACD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAgCV;AAED,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,QAAQ,GACT,EAAE;IACD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CASV"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,sBAAsB,EAE5B,MAAM,WAAW,CAAC;AAGnB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9E,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAC1C;IACE,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,SAAS,EAAE,MAAM,CAAC;CACnB,GACD,sBAAsB,CAAC;AAE3B,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,kBAAkB,EAC5B,aAAa,EAAE,iBAAiB,EAChC,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CA6I9B"}
|