@revenium/litellm 0.0.1
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 +21 -0
- package/README.md +630 -0
- package/dist/client.d.ts +17 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +713 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +42 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +332 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.d.ts +15 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +101 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +189 -0
- package/dist/index.js.map +1 -0
- package/dist/prompt-extraction.d.ts +11 -0
- package/dist/prompt-extraction.d.ts.map +1 -0
- package/dist/prompt-extraction.js +201 -0
- package/dist/prompt-extraction.js.map +1 -0
- package/dist/tracking.d.ts +47 -0
- package/dist/tracking.d.ts.map +1 -0
- package/dist/tracking.js +299 -0
- package/dist/tracking.js.map +1 -0
- package/dist/types.d.ts +348 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/circuit-breaker.d.ts +114 -0
- package/dist/utils/circuit-breaker.d.ts.map +1 -0
- package/dist/utils/circuit-breaker.js +216 -0
- package/dist/utils/circuit-breaker.js.map +1 -0
- package/dist/utils/error-handling.d.ts +166 -0
- package/dist/utils/error-handling.d.ts.map +1 -0
- package/dist/utils/error-handling.js +306 -0
- package/dist/utils/error-handling.js.map +1 -0
- package/dist/utils/logger-types.d.ts +171 -0
- package/dist/utils/logger-types.d.ts.map +1 -0
- package/dist/utils/logger-types.js +210 -0
- package/dist/utils/logger-types.js.map +1 -0
- package/dist/utils/provider-detection.d.ts +43 -0
- package/dist/utils/provider-detection.d.ts.map +1 -0
- package/dist/utils/provider-detection.js +103 -0
- package/dist/utils/provider-detection.js.map +1 -0
- package/dist/utils/stop-reason.d.ts +58 -0
- package/dist/utils/stop-reason.d.ts.map +1 -0
- package/dist/utils/stop-reason.js +136 -0
- package/dist/utils/stop-reason.js.map +1 -0
- package/dist/utils/summary-printer.d.ts +23 -0
- package/dist/utils/summary-printer.d.ts.map +1 -0
- package/dist/utils/summary-printer.js +234 -0
- package/dist/utils/summary-printer.js.map +1 -0
- package/dist/utils/trace-fields.d.ts +10 -0
- package/dist/utils/trace-fields.d.ts.map +1 -0
- package/dist/utils/trace-fields.js +117 -0
- package/dist/utils/trace-fields.js.map +1 -0
- package/dist/utils/validation.d.ts +121 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +451 -0
- package/dist/utils/validation.js.map +1 -0
- package/examples/README.md +321 -0
- package/examples/litellm-basic.ts +240 -0
- package/examples/litellm-streaming.ts +309 -0
- package/examples/prompt-capture.ts +128 -0
- package/package.json +85 -0
package/dist/tracking.js
ADDED
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendReveniumMetrics = sendReveniumMetrics;
|
|
4
|
+
exports.trackUsageAsync = trackUsageAsync;
|
|
5
|
+
exports.trackEmbeddingsUsageAsync = trackEmbeddingsUsageAsync;
|
|
6
|
+
exports.extractMetadataFromHeaders = extractMetadataFromHeaders;
|
|
7
|
+
exports.extractUsageFromResponse = extractUsageFromResponse;
|
|
8
|
+
const config_1 = require("./config");
|
|
9
|
+
const provider_detection_1 = require("./utils/provider-detection");
|
|
10
|
+
const stop_reason_1 = require("./utils/stop-reason");
|
|
11
|
+
const error_handling_1 = require("./utils/error-handling");
|
|
12
|
+
const circuit_breaker_1 = require("./utils/circuit-breaker");
|
|
13
|
+
const trace_fields_1 = require("./utils/trace-fields");
|
|
14
|
+
const constants_1 = require("./constants");
|
|
15
|
+
const summary_printer_1 = require("./utils/summary-printer");
|
|
16
|
+
const prompt_extraction_1 = require("./prompt-extraction");
|
|
17
|
+
const logger = (0, config_1.getLogger)();
|
|
18
|
+
async function sendReveniumMetrics(data) {
|
|
19
|
+
const config = (0, config_1.getConfig)();
|
|
20
|
+
if (!config)
|
|
21
|
+
return logger.warn("Revenium configuration not found, skipping tracking");
|
|
22
|
+
const now = new Date().toISOString();
|
|
23
|
+
const requestTime = new Date(Date.now() - data.duration).toISOString();
|
|
24
|
+
// Determine operation type and set appropriate defaults
|
|
25
|
+
const operationType = data.operationType || "CHAT";
|
|
26
|
+
const isEmbedding = operationType === "EMBED";
|
|
27
|
+
// Construct nested subscriber object if subscriber data is available
|
|
28
|
+
let subscriber;
|
|
29
|
+
if (data.usageMetadata?.subscriberId &&
|
|
30
|
+
data.usageMetadata?.subscriberEmail &&
|
|
31
|
+
data.usageMetadata?.subscriberCredentialName &&
|
|
32
|
+
data.usageMetadata?.subscriberCredential) {
|
|
33
|
+
subscriber = {
|
|
34
|
+
id: data.usageMetadata.subscriberId,
|
|
35
|
+
email: data.usageMetadata.subscriberEmail,
|
|
36
|
+
credential: {
|
|
37
|
+
name: data.usageMetadata.subscriberCredentialName,
|
|
38
|
+
value: data.usageMetadata.subscriberCredential,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const region = await (0, trace_fields_1.getRegion)();
|
|
43
|
+
const attributes = {};
|
|
44
|
+
if (data.responseFormat) {
|
|
45
|
+
if (typeof data.responseFormat === "object" &&
|
|
46
|
+
data.responseFormat !== null) {
|
|
47
|
+
const formatType = data.responseFormat.type;
|
|
48
|
+
if (formatType) {
|
|
49
|
+
attributes.response_format_type = formatType;
|
|
50
|
+
if (formatType === "json_schema") {
|
|
51
|
+
const schemaName = data.responseFormat.json_schema?.name;
|
|
52
|
+
if (schemaName) {
|
|
53
|
+
attributes.response_format_schema_name = schemaName;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
attributes.response_format = data.responseFormat;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const promptData = data.request && data.response
|
|
63
|
+
? (0, prompt_extraction_1.extractPrompts)(data.request, data.response, data.usageMetadata)
|
|
64
|
+
: null;
|
|
65
|
+
const payload = {
|
|
66
|
+
stopReason: isEmbedding ? "END" : (0, stop_reason_1.getStopReason)(data.finishReason),
|
|
67
|
+
costType: "AI",
|
|
68
|
+
isStreamed: isEmbedding ? false : data.isStreamed || false,
|
|
69
|
+
operationType: operationType,
|
|
70
|
+
inputTokenCount: data.promptTokens,
|
|
71
|
+
outputTokenCount: isEmbedding ? 0 : data.completionTokens,
|
|
72
|
+
reasoningTokenCount: data.reasoningTokens || 0,
|
|
73
|
+
cacheCreationTokenCount: data.cachedTokens || 0,
|
|
74
|
+
cacheReadTokenCount: 0,
|
|
75
|
+
totalTokenCount: data.totalTokens,
|
|
76
|
+
model: (0, provider_detection_1.extractModelName)(data.model),
|
|
77
|
+
modelSource: (0, provider_detection_1.extractModelSource)(data.model),
|
|
78
|
+
transactionId: data.requestId,
|
|
79
|
+
responseTime: now,
|
|
80
|
+
requestDuration: Math.round(data.duration),
|
|
81
|
+
provider: (0, provider_detection_1.extractProvider)(data.model),
|
|
82
|
+
requestTime: requestTime,
|
|
83
|
+
completionStartTime: isEmbedding
|
|
84
|
+
? now
|
|
85
|
+
: data.isStreamed && data.timeToFirstToken
|
|
86
|
+
? new Date(Date.now() - (data.duration - data.timeToFirstToken)).toISOString()
|
|
87
|
+
: now,
|
|
88
|
+
timeToFirstToken: isEmbedding
|
|
89
|
+
? 0
|
|
90
|
+
: data.timeToFirstToken || Math.round(data.duration),
|
|
91
|
+
middlewareSource: "nodejs",
|
|
92
|
+
traceId: data.usageMetadata?.traceId,
|
|
93
|
+
taskType: data.usageMetadata?.taskType,
|
|
94
|
+
agent: data.usageMetadata?.agent,
|
|
95
|
+
organizationId: data.usageMetadata?.organizationId || config.organizationId,
|
|
96
|
+
productId: data.usageMetadata?.productId,
|
|
97
|
+
subscriber: subscriber,
|
|
98
|
+
subscriptionId: data.usageMetadata?.subscriptionId,
|
|
99
|
+
responseQualityScore: data.usageMetadata?.responseQualityScore,
|
|
100
|
+
environment: data.usageMetadata?.environment || (0, trace_fields_1.getEnvironment)() || undefined,
|
|
101
|
+
operationSubtype: data.usageMetadata?.operationSubtype ||
|
|
102
|
+
(0, trace_fields_1.detectOperationSubtype)() ||
|
|
103
|
+
undefined,
|
|
104
|
+
retryNumber: data.usageMetadata?.retryNumber ?? (0, trace_fields_1.getRetryNumber)(),
|
|
105
|
+
parentTransactionId: data.usageMetadata?.parentTransactionId ||
|
|
106
|
+
(0, trace_fields_1.getParentTransactionId)() ||
|
|
107
|
+
undefined,
|
|
108
|
+
transactionName: data.usageMetadata?.transactionName || (0, trace_fields_1.getTransactionName)() || undefined,
|
|
109
|
+
region: data.usageMetadata?.region || region || undefined,
|
|
110
|
+
credentialAlias: data.usageMetadata?.credentialAlias || (0, trace_fields_1.getCredentialAlias)() || undefined,
|
|
111
|
+
traceType: data.usageMetadata?.traceType || (0, trace_fields_1.getTraceType)() || undefined,
|
|
112
|
+
traceName: data.usageMetadata?.traceName || (0, trace_fields_1.getTraceName)() || undefined,
|
|
113
|
+
...(Object.keys(attributes).length > 0 && { attributes }),
|
|
114
|
+
...(promptData && {
|
|
115
|
+
systemPrompt: promptData.systemPrompt,
|
|
116
|
+
inputMessages: promptData.inputMessages,
|
|
117
|
+
outputResponse: promptData.outputResponse,
|
|
118
|
+
promptsTruncated: promptData.promptsTruncated,
|
|
119
|
+
}),
|
|
120
|
+
};
|
|
121
|
+
// Remove undefined values to clean up the payload
|
|
122
|
+
Object.keys(payload).forEach((key) => {
|
|
123
|
+
const typedKey = key;
|
|
124
|
+
if (payload[typedKey] === undefined)
|
|
125
|
+
delete payload[typedKey];
|
|
126
|
+
});
|
|
127
|
+
const url = `${config.reveniumMeteringBaseUrl}/${constants_1.REVENIUM_COMPLETION_ENDPOINT}`;
|
|
128
|
+
const timeout = config.apiTimeout || 5000;
|
|
129
|
+
logger.debug("Sending Revenium API request", {
|
|
130
|
+
url,
|
|
131
|
+
requestId: data.requestId,
|
|
132
|
+
model: data.model,
|
|
133
|
+
provider: (0, provider_detection_1.extractProvider)(data.model),
|
|
134
|
+
totalTokens: data.totalTokens,
|
|
135
|
+
});
|
|
136
|
+
// Add specific debug logging for streaming fields
|
|
137
|
+
if (data.isStreamed) {
|
|
138
|
+
logger.debug("Streaming payload debug", {
|
|
139
|
+
requestId: data.requestId,
|
|
140
|
+
isStreamed: payload.isStreamed,
|
|
141
|
+
timeToFirstToken: payload.timeToFirstToken,
|
|
142
|
+
completionStartTime: payload.completionStartTime,
|
|
143
|
+
operationType: payload.operationType,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
// Check circuit breaker before making request
|
|
147
|
+
if (!(0, circuit_breaker_1.canExecuteRequest)()) {
|
|
148
|
+
const stats = (0, circuit_breaker_1.getCircuitBreakerStats)();
|
|
149
|
+
logger.warn("Circuit breaker is open, skipping Revenium API call", {
|
|
150
|
+
requestId: data.requestId,
|
|
151
|
+
circuitState: stats.state,
|
|
152
|
+
timeUntilRecovery: stats.timeUntilRecovery,
|
|
153
|
+
});
|
|
154
|
+
if (!config.failSilent) {
|
|
155
|
+
throw new error_handling_1.ReveniumApiError("Circuit breaker is open - Revenium API temporarily unavailable", 503, "Service temporarily unavailable", (0, error_handling_1.createErrorContext)().withRequestId(data.requestId).build());
|
|
156
|
+
}
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
// Create error handling strategy based on configuration
|
|
160
|
+
const errorStrategy = {
|
|
161
|
+
failSilent: config.failSilent !== false,
|
|
162
|
+
maxRetries: config.maxRetries || 3,
|
|
163
|
+
baseDelay: 1000,
|
|
164
|
+
logErrors: true,
|
|
165
|
+
};
|
|
166
|
+
const result = await (0, error_handling_1.executeWithErrorHandling)(async () => {
|
|
167
|
+
// Execute with circuit breaker protection
|
|
168
|
+
return await (0, circuit_breaker_1.executeWithCircuitBreaker)(async () => {
|
|
169
|
+
// Create abort controller for timeout
|
|
170
|
+
const controller = new AbortController();
|
|
171
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
172
|
+
const response = await fetch(url, {
|
|
173
|
+
method: "POST",
|
|
174
|
+
headers: {
|
|
175
|
+
"Content-Type": "application/json",
|
|
176
|
+
Accept: "application/json",
|
|
177
|
+
"x-api-key": config.reveniumMeteringApiKey,
|
|
178
|
+
},
|
|
179
|
+
body: JSON.stringify(payload),
|
|
180
|
+
signal: controller.signal,
|
|
181
|
+
});
|
|
182
|
+
clearTimeout(timeoutId);
|
|
183
|
+
logger.debug("Revenium API response", {
|
|
184
|
+
status: response.status,
|
|
185
|
+
statusText: response.statusText,
|
|
186
|
+
requestId: data.requestId,
|
|
187
|
+
});
|
|
188
|
+
if (!response.ok) {
|
|
189
|
+
const responseText = await response.text();
|
|
190
|
+
const errorContext = (0, error_handling_1.createErrorContext)()
|
|
191
|
+
.withRequestId(data.requestId)
|
|
192
|
+
.withModel(data.model)
|
|
193
|
+
.withStatus(response.status)
|
|
194
|
+
.with("responseBody", responseText)
|
|
195
|
+
.build();
|
|
196
|
+
logger.error("Revenium API error response", errorContext);
|
|
197
|
+
// Throw error to trigger circuit breaker
|
|
198
|
+
throw new error_handling_1.ReveniumApiError(`Revenium API error: ${response.status} ${response.statusText}`, response.status, responseText, errorContext);
|
|
199
|
+
}
|
|
200
|
+
const responseBody = await response.text();
|
|
201
|
+
logger.debug("Revenium tracking successful", {
|
|
202
|
+
requestId: data.requestId,
|
|
203
|
+
response: responseBody,
|
|
204
|
+
});
|
|
205
|
+
return response; // Return response for circuit breaker success
|
|
206
|
+
});
|
|
207
|
+
}, errorStrategy, logger, {
|
|
208
|
+
requestId: data.requestId,
|
|
209
|
+
model: data.model,
|
|
210
|
+
duration: data.duration,
|
|
211
|
+
totalTokens: data.totalTokens,
|
|
212
|
+
});
|
|
213
|
+
if (!result.success && result.error) {
|
|
214
|
+
logger.error("Revenium tracking failed after all retries", {
|
|
215
|
+
requestId: data.requestId,
|
|
216
|
+
error: result.error.message,
|
|
217
|
+
retryCount: result.retryCount,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
(0, summary_printer_1.printUsageSummary)(payload);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Fire-and-forget async tracking wrapper
|
|
224
|
+
* This ensures tracking never blocks the main application flow
|
|
225
|
+
*/
|
|
226
|
+
function trackUsageAsync(trackingData) {
|
|
227
|
+
// Run tracking in background without awaiting
|
|
228
|
+
// The sendReveniumMetrics function now handles retries and error strategies internally
|
|
229
|
+
sendReveniumMetrics(trackingData)
|
|
230
|
+
.then(() => {
|
|
231
|
+
logger.debug("Revenium tracking completed successfully", {
|
|
232
|
+
requestId: trackingData.requestId,
|
|
233
|
+
});
|
|
234
|
+
})
|
|
235
|
+
.catch((error) => {
|
|
236
|
+
// This should rarely happen since sendReveniumMetrics handles errors internally
|
|
237
|
+
// Only occurs if failSilent is false and all retries are exhausted
|
|
238
|
+
logger.warn("Revenium tracking failed completely", {
|
|
239
|
+
error: error instanceof Error ? error.message : String(error),
|
|
240
|
+
requestId: trackingData.requestId,
|
|
241
|
+
});
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Fire-and-forget async tracking wrapper specifically for embeddings
|
|
246
|
+
* This ensures embeddings tracking never blocks the main application flow
|
|
247
|
+
*/
|
|
248
|
+
function trackEmbeddingsUsageAsync(data) {
|
|
249
|
+
trackUsageAsync({
|
|
250
|
+
...data,
|
|
251
|
+
completionTokens: 0, // Embeddings don't have completion tokens
|
|
252
|
+
finishReason: "stop", // Embeddings always complete normally
|
|
253
|
+
isStreamed: false, // Embeddings don't support streaming
|
|
254
|
+
timeToFirstToken: 0, // Not applicable for embeddings
|
|
255
|
+
operationType: "EMBED",
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
function extractMetadataFromHeaders(headers) {
|
|
259
|
+
return {
|
|
260
|
+
subscriberId: headers["x-revenium-subscriber-id"],
|
|
261
|
+
productId: headers["x-revenium-product-id"],
|
|
262
|
+
organizationId: headers["x-revenium-organization-id"],
|
|
263
|
+
traceId: headers["x-revenium-trace-id"],
|
|
264
|
+
taskType: headers["x-revenium-task-type"],
|
|
265
|
+
agent: headers["x-revenium-agent"],
|
|
266
|
+
subscriberEmail: headers["x-revenium-subscriber-email"],
|
|
267
|
+
subscriptionId: headers["x-revenium-subscription-id"],
|
|
268
|
+
subscriberCredentialName: headers["x-revenium-subscriber-credential-name"],
|
|
269
|
+
subscriberCredential: headers["x-revenium-subscriber-credential"],
|
|
270
|
+
environment: headers["x-revenium-environment"],
|
|
271
|
+
operationSubtype: headers["x-revenium-operation-subtype"],
|
|
272
|
+
retryNumber: headers["x-revenium-retry-number"]
|
|
273
|
+
? parseInt(headers["x-revenium-retry-number"], 10)
|
|
274
|
+
: undefined,
|
|
275
|
+
parentTransactionId: headers["x-revenium-parent-transaction-id"],
|
|
276
|
+
transactionName: headers["x-revenium-transaction-name"],
|
|
277
|
+
region: headers["x-revenium-region"],
|
|
278
|
+
credentialAlias: headers["x-revenium-credential-alias"],
|
|
279
|
+
traceType: headers["x-revenium-trace-type"],
|
|
280
|
+
traceName: headers["x-revenium-trace-name"],
|
|
281
|
+
capturePrompts: headers["x-revenium-capture-prompts"]
|
|
282
|
+
? headers["x-revenium-capture-prompts"].toLowerCase() === "true"
|
|
283
|
+
: undefined,
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Process LiteLLM response and extract token usage
|
|
288
|
+
*/
|
|
289
|
+
function extractUsageFromResponse(response) {
|
|
290
|
+
const usage = response.usage;
|
|
291
|
+
const finishReason = response.choices?.[0]?.finish_reason || null;
|
|
292
|
+
return {
|
|
293
|
+
promptTokens: usage?.prompt_tokens || 0,
|
|
294
|
+
completionTokens: usage?.completion_tokens || 0,
|
|
295
|
+
totalTokens: usage?.total_tokens || 0,
|
|
296
|
+
finishReason,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
//# sourceMappingURL=tracking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../src/tracking.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration for Revenium LiteLLM middleware
|
|
3
|
+
*/
|
|
4
|
+
export interface ReveniumConfig {
|
|
5
|
+
/** Revenium metering API key (starts with hak_) */
|
|
6
|
+
reveniumMeteringApiKey: string;
|
|
7
|
+
/** Revenium metering base URL */
|
|
8
|
+
reveniumMeteringBaseUrl: string;
|
|
9
|
+
/** LiteLLM Proxy Server URL (can be base URL or full endpoint URL) */
|
|
10
|
+
litellmProxyUrl: string;
|
|
11
|
+
/** LiteLLM API key for proxy authentication */
|
|
12
|
+
litellmApiKey?: string;
|
|
13
|
+
/** Optional organization identifier for multi-tenant tracking */
|
|
14
|
+
organizationId?: string;
|
|
15
|
+
/** API timeout in milliseconds (default: 5000) */
|
|
16
|
+
apiTimeout?: number;
|
|
17
|
+
/** Whether to fail silently if Revenium tracking fails (default: true) */
|
|
18
|
+
failSilent?: boolean;
|
|
19
|
+
/** Maximum retries for failed Revenium API calls (default: 3) */
|
|
20
|
+
maxRetries?: number;
|
|
21
|
+
/** Print usage summary to console (default: false). Can be true, false, 'human', or 'json' */
|
|
22
|
+
printSummary?: boolean | "human" | "json";
|
|
23
|
+
/** Team ID for cost retrieval from Revenium API */
|
|
24
|
+
teamId?: string;
|
|
25
|
+
/** Whether to capture and send prompts to Revenium API (default: false) */
|
|
26
|
+
capturePrompts?: boolean;
|
|
27
|
+
/** Maximum size in characters for captured prompts before truncation (default: 50000). Note: uses JavaScript string length (UTF-16 code units), not byte count. */
|
|
28
|
+
maxPromptSize?: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Optional metadata for enhanced tracking and analytics
|
|
32
|
+
* Can be passed via headers or extracted from request context
|
|
33
|
+
*/
|
|
34
|
+
export interface UsageMetadata {
|
|
35
|
+
traceId?: string;
|
|
36
|
+
taskId?: string;
|
|
37
|
+
taskType?: string;
|
|
38
|
+
subscriberEmail?: string;
|
|
39
|
+
subscriberId?: string;
|
|
40
|
+
subscriberCredentialName?: string;
|
|
41
|
+
subscriberCredential?: string;
|
|
42
|
+
organizationId?: string;
|
|
43
|
+
subscriptionId?: string;
|
|
44
|
+
productId?: string;
|
|
45
|
+
agent?: string;
|
|
46
|
+
responseQualityScore?: number;
|
|
47
|
+
environment?: string;
|
|
48
|
+
operationSubtype?: string;
|
|
49
|
+
retryNumber?: number;
|
|
50
|
+
parentTransactionId?: string;
|
|
51
|
+
transactionName?: string;
|
|
52
|
+
region?: string;
|
|
53
|
+
credentialAlias?: string;
|
|
54
|
+
traceType?: string;
|
|
55
|
+
traceName?: string;
|
|
56
|
+
capturePrompts?: boolean;
|
|
57
|
+
/** Maximum size in characters for captured prompts before truncation. Note: uses JavaScript string length (UTF-16 code units), not byte count. */
|
|
58
|
+
maxPromptSize?: number;
|
|
59
|
+
}
|
|
60
|
+
export interface SubscriberCredential {
|
|
61
|
+
name: string;
|
|
62
|
+
value: string;
|
|
63
|
+
}
|
|
64
|
+
export interface Subscriber {
|
|
65
|
+
id: string;
|
|
66
|
+
email: string;
|
|
67
|
+
credential: SubscriberCredential;
|
|
68
|
+
}
|
|
69
|
+
export interface ReveniumPayload {
|
|
70
|
+
stopReason: string;
|
|
71
|
+
costType: "AI";
|
|
72
|
+
isStreamed: boolean;
|
|
73
|
+
taskType?: string;
|
|
74
|
+
agent?: string;
|
|
75
|
+
operationType: "CHAT" | "EMBED";
|
|
76
|
+
inputTokenCount: number;
|
|
77
|
+
outputTokenCount: number;
|
|
78
|
+
reasoningTokenCount: number;
|
|
79
|
+
cacheCreationTokenCount: number;
|
|
80
|
+
cacheReadTokenCount: number;
|
|
81
|
+
totalTokenCount: number;
|
|
82
|
+
organizationId?: string;
|
|
83
|
+
productId?: string;
|
|
84
|
+
subscriber?: Subscriber;
|
|
85
|
+
subscriptionId?: string;
|
|
86
|
+
model: string;
|
|
87
|
+
modelSource: string;
|
|
88
|
+
transactionId: string;
|
|
89
|
+
responseTime: string;
|
|
90
|
+
requestDuration: number;
|
|
91
|
+
provider: string;
|
|
92
|
+
requestTime: string;
|
|
93
|
+
middlewareSource: string;
|
|
94
|
+
completionStartTime?: string;
|
|
95
|
+
timeToFirstToken: number;
|
|
96
|
+
traceId?: string;
|
|
97
|
+
responseQualityScore?: number;
|
|
98
|
+
environment?: string;
|
|
99
|
+
operationSubtype?: string;
|
|
100
|
+
retryNumber?: number;
|
|
101
|
+
parentTransactionId?: string;
|
|
102
|
+
transactionName?: string;
|
|
103
|
+
region?: string;
|
|
104
|
+
credentialAlias?: string;
|
|
105
|
+
traceType?: string;
|
|
106
|
+
traceName?: string;
|
|
107
|
+
attributes?: Record<string, unknown>;
|
|
108
|
+
systemPrompt?: string;
|
|
109
|
+
inputMessages?: string;
|
|
110
|
+
outputResponse?: string;
|
|
111
|
+
promptsTruncated?: boolean;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Supported message roles in LiteLLM
|
|
115
|
+
*/
|
|
116
|
+
export type MessageRole = "system" | "user" | "assistant" | "function" | "tool";
|
|
117
|
+
/**
|
|
118
|
+
* Function call information for messages
|
|
119
|
+
*/
|
|
120
|
+
export interface FunctionCall {
|
|
121
|
+
name: string;
|
|
122
|
+
arguments: string;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Tool call information for messages
|
|
126
|
+
*/
|
|
127
|
+
export interface ToolCall {
|
|
128
|
+
id: string;
|
|
129
|
+
type: "function";
|
|
130
|
+
function: FunctionCall;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Chat message structure
|
|
134
|
+
*/
|
|
135
|
+
export interface ChatMessage {
|
|
136
|
+
role: MessageRole;
|
|
137
|
+
content?: string | null;
|
|
138
|
+
name?: string;
|
|
139
|
+
function_call?: FunctionCall;
|
|
140
|
+
tool_calls?: ToolCall[];
|
|
141
|
+
tool_call_id?: string;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* LiteLLM Chat Completion Request (OpenAI compatible)
|
|
145
|
+
*/
|
|
146
|
+
export interface LiteLLMChatCompletionRequest {
|
|
147
|
+
model: string;
|
|
148
|
+
messages: ChatMessage[];
|
|
149
|
+
temperature?: number;
|
|
150
|
+
max_tokens?: number;
|
|
151
|
+
top_p?: number;
|
|
152
|
+
frequency_penalty?: number;
|
|
153
|
+
presence_penalty?: number;
|
|
154
|
+
stop?: string | string[];
|
|
155
|
+
stream?: boolean;
|
|
156
|
+
functions?: Array<{
|
|
157
|
+
name: string;
|
|
158
|
+
description?: string;
|
|
159
|
+
parameters?: Record<string, unknown>;
|
|
160
|
+
}>;
|
|
161
|
+
function_call?: "none" | "auto" | {
|
|
162
|
+
name: string;
|
|
163
|
+
};
|
|
164
|
+
tools?: Array<{
|
|
165
|
+
type: "function";
|
|
166
|
+
function: {
|
|
167
|
+
name: string;
|
|
168
|
+
description?: string;
|
|
169
|
+
parameters?: Record<string, unknown>;
|
|
170
|
+
};
|
|
171
|
+
}>;
|
|
172
|
+
tool_choice?: "none" | "auto" | {
|
|
173
|
+
type: "function";
|
|
174
|
+
function: {
|
|
175
|
+
name: string;
|
|
176
|
+
};
|
|
177
|
+
};
|
|
178
|
+
response_format?: {
|
|
179
|
+
type: "text";
|
|
180
|
+
} | {
|
|
181
|
+
type: "json_object";
|
|
182
|
+
} | {
|
|
183
|
+
type: "json_schema";
|
|
184
|
+
json_schema: {
|
|
185
|
+
name: string;
|
|
186
|
+
schema?: Record<string, unknown>;
|
|
187
|
+
strict?: boolean;
|
|
188
|
+
};
|
|
189
|
+
};
|
|
190
|
+
seed?: number;
|
|
191
|
+
user?: string;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Response message from LiteLLM
|
|
195
|
+
*/
|
|
196
|
+
export interface ResponseMessage {
|
|
197
|
+
role: "assistant";
|
|
198
|
+
content: string | null;
|
|
199
|
+
function_call?: FunctionCall;
|
|
200
|
+
tool_calls?: ToolCall[];
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Choice in LiteLLM response
|
|
204
|
+
*/
|
|
205
|
+
export interface ResponseChoice {
|
|
206
|
+
index: number;
|
|
207
|
+
message: ResponseMessage;
|
|
208
|
+
finish_reason: string | null;
|
|
209
|
+
logprobs?: {
|
|
210
|
+
content?: Array<{
|
|
211
|
+
token: string;
|
|
212
|
+
logprob: number;
|
|
213
|
+
bytes?: number[];
|
|
214
|
+
top_logprobs?: Array<{
|
|
215
|
+
token: string;
|
|
216
|
+
logprob: number;
|
|
217
|
+
bytes?: number[];
|
|
218
|
+
}>;
|
|
219
|
+
}>;
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Token usage information
|
|
224
|
+
*/
|
|
225
|
+
export interface TokenUsage {
|
|
226
|
+
prompt_tokens: number;
|
|
227
|
+
completion_tokens: number;
|
|
228
|
+
total_tokens: number;
|
|
229
|
+
prompt_tokens_details?: {
|
|
230
|
+
cached_tokens?: number;
|
|
231
|
+
};
|
|
232
|
+
completion_tokens_details?: {
|
|
233
|
+
reasoning_tokens?: number;
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* LiteLLM Chat Completion Response (OpenAI compatible)
|
|
238
|
+
*/
|
|
239
|
+
export interface LiteLLMChatCompletionResponse {
|
|
240
|
+
id: string;
|
|
241
|
+
object: "chat.completion";
|
|
242
|
+
created: number;
|
|
243
|
+
model: string;
|
|
244
|
+
choices: ResponseChoice[];
|
|
245
|
+
usage?: TokenUsage;
|
|
246
|
+
system_fingerprint?: string;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* LiteLLM Embedding Request (OpenAI compatible)
|
|
250
|
+
*/
|
|
251
|
+
export interface LiteLLMEmbeddingRequest {
|
|
252
|
+
model: string;
|
|
253
|
+
input: string | string[];
|
|
254
|
+
encoding_format?: string;
|
|
255
|
+
dimensions?: number;
|
|
256
|
+
user?: string;
|
|
257
|
+
[key: string]: any;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* LiteLLM Embedding Response (OpenAI compatible)
|
|
261
|
+
*/
|
|
262
|
+
export interface LiteLLMEmbeddingResponse {
|
|
263
|
+
object: "list";
|
|
264
|
+
data: Array<{
|
|
265
|
+
object: "embedding";
|
|
266
|
+
embedding: number[];
|
|
267
|
+
index: number;
|
|
268
|
+
}>;
|
|
269
|
+
model: string;
|
|
270
|
+
usage: {
|
|
271
|
+
prompt_tokens: number;
|
|
272
|
+
total_tokens: number;
|
|
273
|
+
};
|
|
274
|
+
[key: string]: any;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* HTTP request body types
|
|
278
|
+
*/
|
|
279
|
+
export type RequestBody = string | ArrayBuffer | ArrayBufferView | Blob | FormData | URLSearchParams | ReadableStream<Uint8Array> | null;
|
|
280
|
+
/**
|
|
281
|
+
* HTTP response body types
|
|
282
|
+
*/
|
|
283
|
+
export type ResponseBody = LiteLLMChatCompletionResponse | ReadableStream<Uint8Array> | ArrayBuffer | Blob | string | null;
|
|
284
|
+
/**
|
|
285
|
+
* HTTP request context for tracking
|
|
286
|
+
*/
|
|
287
|
+
export interface RequestContext {
|
|
288
|
+
url: string;
|
|
289
|
+
method: string;
|
|
290
|
+
headers: Record<string, string>;
|
|
291
|
+
body: RequestBody;
|
|
292
|
+
startTime: number;
|
|
293
|
+
metadata?: UsageMetadata;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* HTTP response context for tracking
|
|
297
|
+
*/
|
|
298
|
+
export interface ResponseContext {
|
|
299
|
+
status: number;
|
|
300
|
+
headers: Record<string, string>;
|
|
301
|
+
body: ResponseBody;
|
|
302
|
+
endTime: number;
|
|
303
|
+
isStream: boolean;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Custom headers for Revenium metadata
|
|
307
|
+
*/
|
|
308
|
+
export interface ReveniumHeaders {
|
|
309
|
+
"x-revenium-subscriber-id"?: string;
|
|
310
|
+
"x-revenium-product-id"?: string;
|
|
311
|
+
"x-revenium-organization-id"?: string;
|
|
312
|
+
"x-revenium-trace-id"?: string;
|
|
313
|
+
"x-revenium-task-type"?: string;
|
|
314
|
+
"x-revenium-agent"?: string;
|
|
315
|
+
[key: string]: string | undefined;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Logger interface for the middleware
|
|
319
|
+
*/
|
|
320
|
+
export interface Logger {
|
|
321
|
+
debug(message: string, ...args: any[]): void;
|
|
322
|
+
info(message: string, ...args: any[]): void;
|
|
323
|
+
warn(message: string, ...args: any[]): void;
|
|
324
|
+
error(message: string, ...args: any[]): void;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Middleware status information
|
|
328
|
+
*/
|
|
329
|
+
export interface MiddlewareStatus {
|
|
330
|
+
initialized: boolean;
|
|
331
|
+
patched: boolean;
|
|
332
|
+
hasConfig: boolean;
|
|
333
|
+
proxyUrl?: string;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Provider pattern definitions for model detection
|
|
337
|
+
*/
|
|
338
|
+
export interface ProviderPattern {
|
|
339
|
+
/** Standardized provider constant for Revenium API */
|
|
340
|
+
source: string;
|
|
341
|
+
/** Human-readable provider name */
|
|
342
|
+
displayName: string;
|
|
343
|
+
/** Model name patterns to match against */
|
|
344
|
+
patterns: string[];
|
|
345
|
+
/** Provider prefix patterns (e.g., "openai/" in "openai/gpt-4") */
|
|
346
|
+
prefixes: string[];
|
|
347
|
+
}
|
|
348
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iCAAiC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,sEAAsE;IACtE,eAAe,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8FAA8F;IAC9F,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IAC1C,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mKAAmK;IACnK,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kJAAkJ;IAClJ,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,oBAAoB,CAAC;CAClC;AACD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,IAAI,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACtC,CAAC;KACH,CAAC,CAAC;IACH,WAAW,CAAC,EACR,MAAM,GACN,MAAM,GACN;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACrD,eAAe,CAAC,EACZ;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAChB;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,GACvB;QACE,IAAI,EAAE,aAAa,CAAC;QACpB,WAAW,EAAE;YACX,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACjC,MAAM,CAAC,EAAE,OAAO,CAAC;SAClB,CAAC;KACH,CAAC;IACN,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,eAAe,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,KAAK,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,MAAM,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YACjB,YAAY,CAAC,EAAE,KAAK,CAAC;gBACnB,KAAK,EAAE,MAAM,CAAC;gBACd,OAAO,EAAE,MAAM,CAAC;gBAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;aAClB,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,yBAAyB,CAAC,EAAE;QAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,CAAC;QACV,MAAM,EAAE,WAAW,CAAC;QACpB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,WAAW,GACX,eAAe,GACf,IAAI,GACJ,QAAQ,GACR,eAAe,GACf,cAAc,CAAC,UAAU,CAAC,GAC1B,IAAI,CAAC;AAET;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,6BAA6B,GAC7B,cAAc,CAAC,UAAU,CAAC,GAC1B,WAAW,GACX,IAAI,GACJ,MAAM,GACN,IAAI,CAAC;AAET;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB"}
|
package/dist/types.js
ADDED