@scrawn/core 0.0.3 → 0.0.7

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.
Files changed (104) hide show
  1. package/dist/config.d.ts +41 -0
  2. package/dist/config.d.ts.map +1 -0
  3. package/dist/config.js +32 -0
  4. package/dist/config.js.map +1 -0
  5. package/dist/core/auth/apiKeyAuth.d.ts +58 -0
  6. package/dist/core/auth/apiKeyAuth.d.ts.map +1 -0
  7. package/dist/core/auth/apiKeyAuth.js +66 -0
  8. package/dist/core/auth/apiKeyAuth.js.map +1 -0
  9. package/dist/core/auth/baseAuth.d.ts +70 -0
  10. package/dist/core/auth/baseAuth.d.ts.map +1 -0
  11. package/dist/core/auth/baseAuth.js +22 -0
  12. package/dist/core/auth/baseAuth.js.map +1 -0
  13. package/dist/core/errors/index.d.ts +192 -0
  14. package/dist/core/errors/index.d.ts.map +1 -0
  15. package/dist/core/errors/index.js +280 -0
  16. package/dist/core/errors/index.js.map +1 -0
  17. package/dist/core/grpc/callContext.d.ts +18 -0
  18. package/dist/core/grpc/callContext.d.ts.map +1 -0
  19. package/dist/core/grpc/callContext.js +35 -0
  20. package/dist/core/grpc/callContext.js.map +1 -0
  21. package/dist/core/grpc/client.d.ts +16 -0
  22. package/dist/core/grpc/client.d.ts.map +1 -0
  23. package/dist/core/grpc/client.js +30 -0
  24. package/dist/core/grpc/client.js.map +1 -0
  25. package/dist/core/grpc/index.d.ts +14 -0
  26. package/dist/core/grpc/index.d.ts.map +1 -0
  27. package/dist/core/grpc/index.js +13 -0
  28. package/dist/core/grpc/index.js.map +1 -0
  29. package/dist/core/grpc/requestBuilder.d.ts +15 -0
  30. package/dist/core/grpc/requestBuilder.d.ts.map +1 -0
  31. package/dist/core/grpc/requestBuilder.js +56 -0
  32. package/dist/core/grpc/requestBuilder.js.map +1 -0
  33. package/dist/core/grpc/streamRequestBuilder.d.ts +13 -0
  34. package/dist/core/grpc/streamRequestBuilder.d.ts.map +1 -0
  35. package/dist/core/grpc/streamRequestBuilder.js +60 -0
  36. package/dist/core/grpc/streamRequestBuilder.js.map +1 -0
  37. package/dist/core/grpc/types.d.ts +7 -0
  38. package/dist/core/grpc/types.d.ts.map +1 -0
  39. package/dist/core/grpc/types.js +2 -0
  40. package/dist/core/grpc/types.js.map +1 -0
  41. package/dist/core/pricing/builders.d.ts +157 -0
  42. package/dist/core/pricing/builders.d.ts.map +1 -0
  43. package/dist/core/pricing/builders.js +218 -0
  44. package/dist/core/pricing/builders.js.map +1 -0
  45. package/dist/core/pricing/index.d.ts +30 -0
  46. package/dist/core/pricing/index.d.ts.map +1 -0
  47. package/dist/core/pricing/index.js +32 -0
  48. package/dist/core/pricing/index.js.map +1 -0
  49. package/dist/core/pricing/resolve.d.ts +39 -0
  50. package/dist/core/pricing/resolve.d.ts.map +1 -0
  51. package/dist/core/pricing/resolve.js +50 -0
  52. package/dist/core/pricing/resolve.js.map +1 -0
  53. package/dist/core/pricing/serialize.d.ts +55 -0
  54. package/dist/core/pricing/serialize.d.ts.map +1 -0
  55. package/dist/core/pricing/serialize.js +127 -0
  56. package/dist/core/pricing/serialize.js.map +1 -0
  57. package/dist/core/pricing/types.d.ts +122 -0
  58. package/dist/core/pricing/types.d.ts.map +1 -0
  59. package/dist/core/pricing/types.js +17 -0
  60. package/dist/core/pricing/types.js.map +1 -0
  61. package/dist/core/pricing/validate.d.ts +56 -0
  62. package/dist/core/pricing/validate.d.ts.map +1 -0
  63. package/dist/core/pricing/validate.js +162 -0
  64. package/dist/core/pricing/validate.js.map +1 -0
  65. package/dist/core/scrawn.d.ts +414 -0
  66. package/dist/core/scrawn.d.ts.map +1 -0
  67. package/dist/core/scrawn.js +822 -0
  68. package/dist/core/scrawn.js.map +1 -0
  69. package/dist/core/types/auth.d.ts +31 -0
  70. package/dist/core/types/auth.d.ts.map +1 -0
  71. package/dist/core/types/auth.js +2 -0
  72. package/dist/core/types/auth.js.map +1 -0
  73. package/dist/core/types/event.d.ts +320 -0
  74. package/dist/core/types/event.d.ts.map +1 -0
  75. package/dist/core/types/event.js +155 -0
  76. package/dist/core/types/event.js.map +1 -0
  77. package/dist/gen/auth/v1/auth_grpc_pb.d.ts +3 -0
  78. package/dist/gen/auth/v1/auth_pb.d.ts +65 -0
  79. package/dist/gen/data/v1/data_grpc_pb.d.ts +5 -0
  80. package/dist/gen/data/v1/data_pb.d.ts +254 -0
  81. package/dist/gen/event/v1/event_grpc_pb.d.ts +3 -0
  82. package/dist/gen/event/v1/event_pb.d.ts +342 -0
  83. package/dist/gen/event/v1/event_pb.js +573 -117
  84. package/dist/gen/payment/v1/payment_grpc_pb.d.ts +3 -0
  85. package/dist/gen/payment/v1/payment_pb.d.ts +45 -0
  86. package/dist/gen/query/v1/query_grpc_pb.d.ts +5 -0
  87. package/dist/gen/query/v1/query_pb.d.ts +381 -0
  88. package/dist/index.d.ts +20 -0
  89. package/dist/index.d.ts.map +1 -0
  90. package/dist/index.js +25 -0
  91. package/dist/index.js.map +1 -0
  92. package/dist/utils/forkAsyncIterable.d.ts +13 -0
  93. package/dist/utils/forkAsyncIterable.d.ts.map +1 -0
  94. package/dist/utils/forkAsyncIterable.js +78 -0
  95. package/dist/utils/forkAsyncIterable.js.map +1 -0
  96. package/dist/utils/logger.d.ts +10 -0
  97. package/dist/utils/logger.d.ts.map +1 -0
  98. package/dist/utils/logger.js +62 -0
  99. package/dist/utils/logger.js.map +1 -0
  100. package/dist/utils/pathMatcher.d.ts +25 -0
  101. package/dist/utils/pathMatcher.d.ts.map +1 -0
  102. package/dist/utils/pathMatcher.js +46 -0
  103. package/dist/utils/pathMatcher.js.map +1 -0
  104. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrawn.js","sourceRoot":"","sources":["../../src/core/scrawn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { ApiKeyAuthCreds } from "../auth/apiKeyAuth.js";
2
+ /**
3
+ * Registry of all authentication methods and their credential types.
4
+ *
5
+ * When you add a new auth method, add it here:
6
+ * - Key: The auth method name (literal string)
7
+ * - Value: The credential type for that auth method
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // Adding OAuth
12
+ * export type AuthRegistry = {
13
+ * api: ApiKeyAuthCreds;
14
+ * oauth: OAuthAuthCreds; // Add new auth types here
15
+ * };
16
+ * ```
17
+ */
18
+ export type AuthRegistry = {
19
+ api: ApiKeyAuthCreds;
20
+ };
21
+ /**
22
+ * Union of all auth method names.
23
+ * Automatically derived from AuthRegistry keys.
24
+ */
25
+ export type AuthMethodName = keyof AuthRegistry;
26
+ /**
27
+ * Union of all credential types.
28
+ * Automatically derived from AuthRegistry values.
29
+ */
30
+ export type AllCredentials = AuthRegistry[keyof AuthRegistry];
31
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/core/types/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,eAAe,CAAC;CAEtB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC;AAEhD;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,YAAY,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/core/types/auth.ts"],"names":[],"mappings":""}
@@ -0,0 +1,320 @@
1
+ import { z } from "zod";
2
+ import type { PriceExpr, ScrawnExpr } from "../pricing/types.js";
3
+ import type { ScrawnError } from "../errors/index.js";
4
+ /**
5
+ * Zod schema for event payload validation.
6
+ *
7
+ * Used by all event consumer methods to ensure consistent validation.
8
+ *
9
+ * Validates:
10
+ * - userId: non-empty string
11
+ * - Exactly one of: debitAmount (number), debitTag (string), or debitExpr (PriceExpr)
12
+ */
13
+ export declare const EventPayloadSchema: z.ZodObject<{
14
+ userId: z.ZodString;
15
+ debitAmount: z.ZodOptional<z.ZodNumber>;
16
+ debitTag: z.ZodOptional<z.ZodString>;
17
+ debitExpr: z.ZodOptional<z.ZodCustom<PriceExpr<string>, PriceExpr<string>>>;
18
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
19
+ }, z.core.$strip>;
20
+ /**
21
+ * Debit field for pricing — exactly one of amount, tag, or expr.
22
+ *
23
+ * @typeParam TTag - The specific tag name literal type (defaults to `string`)
24
+ */
25
+ export type DebitField<TTag extends string = string> = {
26
+ amount: number;
27
+ tag?: never;
28
+ expr?: never;
29
+ } | {
30
+ amount?: never;
31
+ tag: TTag;
32
+ expr?: never;
33
+ } | {
34
+ amount?: never;
35
+ tag?: never;
36
+ expr: ScrawnExpr<TTag>;
37
+ };
38
+ /**
39
+ * Payload structure for event tracking.
40
+ *
41
+ * Used by both basicUsageEventConsumer and middlewareEventConsumer.
42
+ *
43
+ * @typeParam TTag - The valid tag name union (defaults to `string` for untyped usage)
44
+ *
45
+ * @property userId - The user ID associated with this event
46
+ * @property debitAmount - (Optional) Direct amount to debit in cents
47
+ * @property debitTag - (Optional) Named price tag to look up amount from backend
48
+ * @property debitExpr - (Optional) Pricing expression for complex calculations
49
+ *
50
+ * Note: Exactly one of debitAmount, debitTag, or debitExpr must be provided.
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * import { add, mul } from '@scrawn/core';
55
+ * import { biller } from './scrawn/biller';
56
+ *
57
+ * // Using direct amount
58
+ * const payload1: EventPayload = {
59
+ * userId: 'u123',
60
+ * debitAmount: 500 // 500 cents = $5.00
61
+ * };
62
+ *
63
+ * // Using price tag (compile-time checked)
64
+ * const payload2: EventPayload = {
65
+ * userId: 'u123',
66
+ * debitTag: 'PREMIUM_FEATURE'
67
+ * };
68
+ *
69
+ * // Using pricing expression
70
+ * const payload3: EventPayload = {
71
+ * userId: 'u123',
72
+ * debitExpr: add(mul(biller.tag('PREMIUM_CALL'), 3), biller.tag('EXTRA_FEE'), 250)
73
+ * };
74
+ * ```
75
+ */
76
+ export type EventPayload<TTag extends string = string> = {
77
+ userId: string;
78
+ debitAmount?: number;
79
+ debitTag?: TTag;
80
+ debitExpr?: ScrawnExpr<TTag>;
81
+ metadata?: Record<string, unknown>;
82
+ };
83
+ /**
84
+ * Generic request object type for middleware compatibility.
85
+ * Supports Express, Fastify, and other Node.js frameworks.
86
+ */
87
+ export interface MiddlewareRequest {
88
+ /** HTTP method (GET, POST, etc.) */
89
+ method?: string;
90
+ /** Request URL path */
91
+ url?: string;
92
+ /** Request path (alternative to url) */
93
+ path?: string;
94
+ /** Request body */
95
+ body?: any;
96
+ /** Request headers */
97
+ headers?: Record<string, string | string[] | undefined>;
98
+ /** Request query parameters */
99
+ query?: Record<string, any>;
100
+ /** Request params (route parameters) */
101
+ params?: Record<string, any>;
102
+ /** Any additional custom properties */
103
+ [key: string]: any;
104
+ }
105
+ /**
106
+ * Generic response object type for middleware compatibility.
107
+ */
108
+ export interface MiddlewareResponse {
109
+ /** Status code setter */
110
+ status?: (code: number) => MiddlewareResponse;
111
+ /** JSON response sender */
112
+ json?: (data: any) => void;
113
+ /** Send response */
114
+ send?: (data: any) => void;
115
+ /** Any additional custom properties */
116
+ [key: string]: any;
117
+ }
118
+ /**
119
+ * Generic next function type for middleware compatibility.
120
+ */
121
+ export type MiddlewareNext = (error?: any) => void;
122
+ /**
123
+ * Extractor function that derives userId and debit info from a request.
124
+ *
125
+ * @param req - The incoming request object
126
+ * @returns An object containing userId and either debitAmount or debitTag, a Promise resolving to it, or null to skip tracking
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * // Using direct amount
131
+ * const extractor: PayloadExtractor = (req) => ({
132
+ * userId: req.headers['x-user-id'] as string,
133
+ * debitAmount: 1
134
+ * });
135
+ *
136
+ * // Using price tag
137
+ * const extractor: PayloadExtractor = (req) => ({
138
+ * userId: req.user.id,
139
+ * debitTag: 'STANDARD_API_CALL'
140
+ * });
141
+ *
142
+ * // Dynamic tag based on route
143
+ * const extractor: PayloadExtractor = (req) => {
144
+ * if (req.path === '/health') return null;
145
+ * return {
146
+ * userId: req.user.id,
147
+ * debitTag: req.path.startsWith('/premium') ? 'PREMIUM_API' : 'STANDARD_API'
148
+ * };
149
+ * };
150
+ * ```
151
+ */
152
+ export type PayloadExtractor<TTag extends string = string> = (req: MiddlewareRequest) => EventPayload<TTag> | Promise<EventPayload<TTag>> | null | Promise<null>;
153
+ /**
154
+ * Context for manual retry in error callbacks.
155
+ * Only provided when the method supports manual retry (basicUsageEventConsumer).
156
+ */
157
+ export interface RetryContext {
158
+ /** Re-attempt the failed operation using the same eventId and idempotencyKey. */
159
+ retry: () => Promise<void>;
160
+ }
161
+ /**
162
+ * Callback invoked when an event consumer encounters an error.
163
+ *
164
+ * For basicUsageEventConsumer, a {@link RetryContext} with a `.retry()` method
165
+ * is provided as the second argument, allowing manual re-attempt.
166
+ *
167
+ * For middlewareEventConsumer and aiTokenStreamConsumer, no context is provided.
168
+ */
169
+ export type EventConsumerErrorCallback = (error: ScrawnError, context?: RetryContext) => void | Promise<void>;
170
+ /**
171
+ * Configuration options for the Express middleware event consumer.
172
+ *
173
+ * @property extractor - Function to extract userId and debit info from request. Return null to skip tracking.
174
+ * @property whitelist - Optional array of endpoint patterns to track. Supports wildcards (* for single segment, ** for multiple segments). Takes precedence over blacklist.
175
+ * @property blacklist - Optional array of endpoint patterns to exclude from tracking. Same wildcard support as whitelist. Only applies to endpoints not in whitelist.
176
+ *
177
+ * @example
178
+ * ```typescript
179
+ * // Using direct amounts
180
+ * const config1: MiddlewareEventConfig = {
181
+ * extractor: (req) => ({
182
+ * userId: req.user?.id,
183
+ * debitAmount: calculateCost(req)
184
+ * }),
185
+ * whitelist: ['/api/expensive-operation', '/api/premium-feature'],
186
+ * blacklist: ['/api/health']
187
+ * };
188
+ *
189
+ * // Using price tags
190
+ * const config2: MiddlewareEventConfig = {
191
+ * extractor: (req) => ({
192
+ * userId: req.user?.id,
193
+ * debitTag: req.path.startsWith('/premium') ? 'PREMIUM_API' : 'STANDARD_API'
194
+ * }),
195
+ * whitelist: ['/api/**'],
196
+ * blacklist: ['**.tmp']
197
+ * };
198
+ * ```
199
+ */
200
+ export interface MiddlewareEventConfig<TTag extends string = string> {
201
+ /** Function to extract event payload from request. Return null to skip tracking. */
202
+ extractor: PayloadExtractor<TTag>;
203
+ /** Optional patterns to track (exact match or wildcards: * for single segment, ** for multi-segment). Takes precedence over blacklist. */
204
+ whitelist?: string[];
205
+ /** Optional patterns to exclude (exact match or wildcards: * for single segment, ** for multi-segment). Only applies to endpoints not in whitelist. */
206
+ blacklist?: string[];
207
+ /** Optional callback for handling event consumer errors. */
208
+ onError?: EventConsumerErrorCallback;
209
+ }
210
+ /**
211
+ * Zod schema for AI token usage payload validation.
212
+ *
213
+ * Used by aiTokenStreamConsumer to validate each token usage event.
214
+ *
215
+ * Validates:
216
+ * - userId: non-empty string
217
+ * - model: non-empty string (e.g., 'gpt-4', 'claude-3')
218
+ * - inputTokens: non-negative integer
219
+ * - outputTokens: non-negative integer
220
+ * - inputDebit: exactly one of amount (number), tag (string), or expr (PriceExpr)
221
+ * - outputDebit: exactly one of amount (number), tag (string), or expr (PriceExpr)
222
+ * - provider: optional non-empty string
223
+ * - inputCacheTokens: optional non-negative integer
224
+ * - inputCacheDebit: optional one of amount, tag, or expr
225
+ */
226
+ export declare const AITokenUsagePayloadSchema: z.ZodObject<{
227
+ userId: z.ZodString;
228
+ model: z.ZodString;
229
+ inputTokens: z.ZodNumber;
230
+ outputTokens: z.ZodNumber;
231
+ inputDebit: z.ZodObject<{
232
+ amount: z.ZodOptional<z.ZodNumber>;
233
+ tag: z.ZodOptional<z.ZodString>;
234
+ expr: z.ZodOptional<z.ZodCustom<PriceExpr<string>, PriceExpr<string>>>;
235
+ }, z.core.$strip>;
236
+ outputDebit: z.ZodObject<{
237
+ amount: z.ZodOptional<z.ZodNumber>;
238
+ tag: z.ZodOptional<z.ZodString>;
239
+ expr: z.ZodOptional<z.ZodCustom<PriceExpr<string>, PriceExpr<string>>>;
240
+ }, z.core.$strip>;
241
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
242
+ provider: z.ZodOptional<z.ZodString>;
243
+ inputCacheTokens: z.ZodOptional<z.ZodNumber>;
244
+ inputCacheDebit: z.ZodOptional<z.ZodObject<{
245
+ amount: z.ZodOptional<z.ZodNumber>;
246
+ tag: z.ZodOptional<z.ZodString>;
247
+ expr: z.ZodOptional<z.ZodCustom<PriceExpr<string>, PriceExpr<string>>>;
248
+ }, z.core.$strip>>;
249
+ }, z.core.$strip>;
250
+ /**
251
+ * Payload structure for AI token usage tracking.
252
+ *
253
+ * Used by aiTokenStreamConsumer to track AI model token consumption.
254
+ * Each payload represents a single usage event (e.g., one chunk or one request).
255
+ *
256
+ * @typeParam TTag - The valid tag name union (defaults to `string` for untyped usage)
257
+ *
258
+ * @property userId - The user ID associated with this token usage
259
+ * @property model - The AI model identifier (e.g., 'gpt-4', 'claude-3-opus')
260
+ * @property inputTokens - Number of input/prompt tokens consumed
261
+ * @property outputTokens - Number of output/completion tokens consumed
262
+ * @property inputDebit - Billing info for input tokens (amount, tag, or expr)
263
+ * @property outputDebit - Billing info for output tokens (amount, tag, or expr)
264
+ * @property metadata - (Optional) Arbitrary metadata to associate with the event
265
+ * @property provider - (Optional) LLM provider identifier (e.g. 'openai', 'anthropic')
266
+ * @property inputCacheTokens - (Optional) Cached input tokens count (typically cheaper)
267
+ * @property inputCacheDebit - (Optional) Debit pricing for cached input tokens
268
+ *
269
+ * @example
270
+ * ```typescript
271
+ * import { mul, inputTokens, outputTokens } from '@scrawn/core';
272
+ * import { biller } from './scrawn/biller';
273
+ *
274
+ * // Using direct amounts
275
+ * const payload1: AITokenUsagePayload = {
276
+ * userId: 'u123',
277
+ * model: 'gpt-4',
278
+ * inputTokens: 100,
279
+ * outputTokens: 50,
280
+ * inputDebit: { amount: 3 }, // 3 cents
281
+ * outputDebit: { amount: 6 } // 6 cents
282
+ * };
283
+ *
284
+ * // Using price tags (compile-time checked)
285
+ * const payload2: AITokenUsagePayload = {
286
+ * userId: 'u123',
287
+ * model: 'claude-3-opus',
288
+ * inputTokens: 200,
289
+ * outputTokens: 100,
290
+ * inputDebit: { tag: 'CLAUDE_INPUT' },
291
+ * outputDebit: { tag: 'CLAUDE_OUTPUT' }
292
+ * };
293
+ *
294
+ * // Using pricing expressions (e.g., per-token pricing)
295
+ * const payload3: AITokenUsagePayload = {
296
+ * userId: 'u123',
297
+ * model: 'gpt-4',
298
+ * inputTokens: 100,
299
+ * outputTokens: 50,
300
+ * inputDebit: { expr: mul(biller.tag('GPT_INPUT_RATE'), inputTokens()) },
301
+ * outputDebit: { expr: mul(biller.tag('GPT_OUTPUT_RATE'), outputTokens()) }
302
+ * };
303
+ * ```
304
+ */
305
+ export type AITokenUsagePayload<TTag extends string = string> = {
306
+ userId: string;
307
+ model: string;
308
+ inputTokens: number;
309
+ outputTokens: number;
310
+ inputDebit: DebitField<TTag>;
311
+ outputDebit: DebitField<TTag>;
312
+ metadata?: Record<string, unknown>;
313
+ /** Optional LLM provider identifier (e.g. 'openai', 'anthropic'). */
314
+ provider?: string;
315
+ /** Number of cached input tokens used (typically cheaper). */
316
+ inputCacheTokens?: number;
317
+ /** Debit pricing for cached input tokens (oneof amount, tag, or expr). */
318
+ inputCacheDebit?: DebitField<TTag>;
319
+ };
320
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/core/types/event.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ import { z } from "zod";
2
+ import { isValidExpr, containsTokenExpr } from "../pricing/validate.js";
3
+ /**
4
+ * Valid expression kinds including token placeholders.
5
+ * Used for AI token usage payloads where token placeholders are allowed.
6
+ */
7
+ const ALL_EXPR_KINDS = ["amount", "tag", "op", "inputTokens", "outputTokens", "exprRef"];
8
+ /**
9
+ * Custom zod schema for PriceExpr validation (allows token placeholders).
10
+ * Used in AI token usage payloads where inputTokens()/outputTokens() are valid.
11
+ */
12
+ const PriceExprSchema = z.custom((val) => {
13
+ if (val === null || val === undefined || typeof val !== "object") {
14
+ return false;
15
+ }
16
+ const expr = val;
17
+ // Check that it has a valid kind (including token placeholders)
18
+ if (!ALL_EXPR_KINDS.includes(expr.kind)) {
19
+ return false;
20
+ }
21
+ // Use the validation function
22
+ return isValidExpr(expr);
23
+ }, {
24
+ message: "Must be a valid pricing expression (use tag(), add(), sub(), mul(), div(), amount(), inputTokens(), or outputTokens())",
25
+ });
26
+ /**
27
+ * Custom zod schema for PriceExpr validation (rejects token placeholders).
28
+ * Used in SDK call / middleware event payloads where inputTokens()/outputTokens()
29
+ * are NOT valid — they only make sense in AI token streaming context.
30
+ */
31
+ const PriceExprNoTokensSchema = z.custom((val) => {
32
+ if (val === null || val === undefined || typeof val !== "object") {
33
+ return false;
34
+ }
35
+ const expr = val;
36
+ // Check that it has a valid kind
37
+ if (!ALL_EXPR_KINDS.includes(expr.kind)) {
38
+ return false;
39
+ }
40
+ // Use the validation function
41
+ if (!isValidExpr(expr)) {
42
+ return false;
43
+ }
44
+ // Reject token placeholders in SDK call context
45
+ if (containsTokenExpr(expr)) {
46
+ return false;
47
+ }
48
+ return true;
49
+ }, {
50
+ message: "Must be a valid pricing expression (use tag(), add(), sub(), mul(), div(), or amount()). " +
51
+ "inputTokens() and outputTokens() are only valid in AI token usage expressions.",
52
+ });
53
+ /**
54
+ * Regex for validating tag names: ALL CAPS with underscores only.
55
+ * No lowercase, digits, or hyphens allowed.
56
+ */
57
+ const TAG_NAME_REGEX = /^[A-Z_]+$/;
58
+ /**
59
+ * Zod schema for event payload validation.
60
+ *
61
+ * Used by all event consumer methods to ensure consistent validation.
62
+ *
63
+ * Validates:
64
+ * - userId: non-empty string
65
+ * - Exactly one of: debitAmount (number), debitTag (string), or debitExpr (PriceExpr)
66
+ */
67
+ export const EventPayloadSchema = z
68
+ .object({
69
+ userId: z.string().min(1, "userId must be a non-empty string"),
70
+ debitAmount: z
71
+ .number()
72
+ .positive("debitAmount must be a positive number")
73
+ .optional(),
74
+ debitTag: z
75
+ .string()
76
+ .min(1, "debitTag must be a non-empty string")
77
+ .regex(TAG_NAME_REGEX, "debitTag must be ALL CAPS with underscores only (e.g., PREMIUM_CALL, FEE). No lowercase, digits, or hyphens allowed.")
78
+ .optional(),
79
+ debitExpr: PriceExprNoTokensSchema.optional(),
80
+ metadata: z.record(z.string(), z.unknown()).optional(),
81
+ })
82
+ .refine((data) => {
83
+ const defined = [
84
+ data.debitAmount !== undefined,
85
+ data.debitTag !== undefined,
86
+ data.debitExpr !== undefined,
87
+ ].filter(Boolean).length;
88
+ return defined === 1;
89
+ }, {
90
+ message: "Exactly one of debitAmount, debitTag, or debitExpr must be provided",
91
+ });
92
+ /**
93
+ * Debit field schema for AI token usage.
94
+ *
95
+ * Represents a direct amount, a named price tag, or a pricing expression for billing.
96
+ * Exactly one of amount, tag, or expr must be provided.
97
+ * Tag names must be ALL CAPS with underscores only (e.g., CLAUDE_INPUT, GPT4_OUTPUT_RATE).
98
+ */
99
+ const DebitFieldSchema = z
100
+ .object({
101
+ amount: z.number().nonnegative("amount must be non-negative").optional(),
102
+ tag: z
103
+ .string()
104
+ .min(1, "tag must be a non-empty string")
105
+ .regex(TAG_NAME_REGEX, "tag must be ALL CAPS with underscores only (e.g., CLAUDE_INPUT, FEE). No lowercase, digits, or hyphens allowed.")
106
+ .optional(),
107
+ expr: PriceExprSchema.optional(),
108
+ })
109
+ .refine((data) => {
110
+ const defined = [
111
+ data.amount !== undefined,
112
+ data.tag !== undefined,
113
+ data.expr !== undefined,
114
+ ].filter(Boolean).length;
115
+ return defined === 1;
116
+ }, { message: "Exactly one of amount, tag, or expr must be provided" });
117
+ /**
118
+ * Zod schema for AI token usage payload validation.
119
+ *
120
+ * Used by aiTokenStreamConsumer to validate each token usage event.
121
+ *
122
+ * Validates:
123
+ * - userId: non-empty string
124
+ * - model: non-empty string (e.g., 'gpt-4', 'claude-3')
125
+ * - inputTokens: non-negative integer
126
+ * - outputTokens: non-negative integer
127
+ * - inputDebit: exactly one of amount (number), tag (string), or expr (PriceExpr)
128
+ * - outputDebit: exactly one of amount (number), tag (string), or expr (PriceExpr)
129
+ * - provider: optional non-empty string
130
+ * - inputCacheTokens: optional non-negative integer
131
+ * - inputCacheDebit: optional one of amount, tag, or expr
132
+ */
133
+ export const AITokenUsagePayloadSchema = z.object({
134
+ userId: z.string().min(1, "userId must be a non-empty string"),
135
+ model: z.string().min(1, "model must be a non-empty string"),
136
+ inputTokens: z
137
+ .number()
138
+ .int("inputTokens must be an integer")
139
+ .nonnegative("inputTokens must be non-negative"),
140
+ outputTokens: z
141
+ .number()
142
+ .int("outputTokens must be an integer")
143
+ .nonnegative("outputTokens must be non-negative"),
144
+ inputDebit: DebitFieldSchema,
145
+ outputDebit: DebitFieldSchema,
146
+ metadata: z.record(z.string(), z.unknown()).optional(),
147
+ provider: z.string().min(1, "provider must be a non-empty string").optional(),
148
+ inputCacheTokens: z
149
+ .number()
150
+ .int("inputCacheTokens must be an integer")
151
+ .nonnegative("inputCacheTokens must be non-negative")
152
+ .optional(),
153
+ inputCacheDebit: DebitFieldSchema.optional(),
154
+ });
155
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/core/types/event.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ServiceClientConstructor } from "@grpc/grpc-js";
2
+
3
+ export const AuthServiceClient: ServiceClientConstructor;
@@ -0,0 +1,65 @@
1
+ // package: auth.v1
2
+ // file: auth/v1/auth.proto
3
+
4
+ import * as jspb from "google-protobuf";
5
+
6
+ export class CreateAPIKeyRequest extends jspb.Message {
7
+ getName(): string;
8
+ setName(value: string): void;
9
+
10
+ getExpiresin(): number;
11
+ setExpiresin(value: number): void;
12
+
13
+ serializeBinary(): Uint8Array;
14
+ toObject(includeInstance?: boolean): CreateAPIKeyRequest.AsObject;
15
+ static toObject(includeInstance: boolean, msg: CreateAPIKeyRequest): CreateAPIKeyRequest.AsObject;
16
+ static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
17
+ static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
18
+ static serializeBinaryToWriter(message: CreateAPIKeyRequest, writer: jspb.BinaryWriter): void;
19
+ static deserializeBinary(bytes: Uint8Array): CreateAPIKeyRequest;
20
+ static deserializeBinaryFromReader(message: CreateAPIKeyRequest, reader: jspb.BinaryReader): CreateAPIKeyRequest;
21
+ }
22
+
23
+ export namespace CreateAPIKeyRequest {
24
+ export type AsObject = {
25
+ name: string,
26
+ expiresin: number,
27
+ }
28
+ }
29
+
30
+ export class CreateAPIKeyResponse extends jspb.Message {
31
+ getApikeyid(): string;
32
+ setApikeyid(value: string): void;
33
+
34
+ getApikey(): string;
35
+ setApikey(value: string): void;
36
+
37
+ getName(): string;
38
+ setName(value: string): void;
39
+
40
+ getCreatedat(): string;
41
+ setCreatedat(value: string): void;
42
+
43
+ getExpiresat(): string;
44
+ setExpiresat(value: string): void;
45
+
46
+ serializeBinary(): Uint8Array;
47
+ toObject(includeInstance?: boolean): CreateAPIKeyResponse.AsObject;
48
+ static toObject(includeInstance: boolean, msg: CreateAPIKeyResponse): CreateAPIKeyResponse.AsObject;
49
+ static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
50
+ static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
51
+ static serializeBinaryToWriter(message: CreateAPIKeyResponse, writer: jspb.BinaryWriter): void;
52
+ static deserializeBinary(bytes: Uint8Array): CreateAPIKeyResponse;
53
+ static deserializeBinaryFromReader(message: CreateAPIKeyResponse, reader: jspb.BinaryReader): CreateAPIKeyResponse;
54
+ }
55
+
56
+ export namespace CreateAPIKeyResponse {
57
+ export type AsObject = {
58
+ apikeyid: string,
59
+ apikey: string,
60
+ name: string,
61
+ createdat: string,
62
+ expiresat: string,
63
+ }
64
+ }
65
+
@@ -0,0 +1,5 @@
1
+ import type { ServiceClientConstructor } from "@grpc/grpc-js";
2
+ export const DataQueryServiceClient: ServiceClientConstructor;
3
+
4
+
5
+