@tinycloudlabs/sdk-services 1.0.0
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/base/BaseService.d.ts +151 -0
- package/dist/base/BaseService.d.ts.map +1 -0
- package/dist/base/BaseService.js +221 -0
- package/dist/base/BaseService.js.map +1 -0
- package/dist/base/index.d.ts +6 -0
- package/dist/base/index.d.ts.map +1 -0
- package/dist/base/index.js +6 -0
- package/dist/base/index.js.map +1 -0
- package/dist/base/types.d.ts +36 -0
- package/dist/base/types.d.ts.map +1 -0
- package/dist/base/types.js +7 -0
- package/dist/base/types.js.map +1 -0
- package/dist/context.d.ts +142 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +218 -0
- package/dist/context.js.map +1 -0
- package/dist/errors.d.ts +43 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +111 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/kv/IKVService.d.ts +148 -0
- package/dist/kv/IKVService.d.ts.map +1 -0
- package/dist/kv/IKVService.js +8 -0
- package/dist/kv/IKVService.js.map +1 -0
- package/dist/kv/KVService.d.ts +153 -0
- package/dist/kv/KVService.d.ts.map +1 -0
- package/dist/kv/KVService.js +337 -0
- package/dist/kv/KVService.js.map +1 -0
- package/dist/kv/PrefixedKVService.d.ts +246 -0
- package/dist/kv/PrefixedKVService.d.ts.map +1 -0
- package/dist/kv/PrefixedKVService.js +145 -0
- package/dist/kv/PrefixedKVService.js.map +1 -0
- package/dist/kv/index.d.ts +10 -0
- package/dist/kv/index.d.ts.map +1 -0
- package/dist/kv/index.js +12 -0
- package/dist/kv/index.js.map +1 -0
- package/dist/kv/types.d.ts +204 -0
- package/dist/kv/types.d.ts.map +1 -0
- package/dist/kv/types.js +16 -0
- package/dist/kv/types.js.map +1 -0
- package/dist/types.d.ts +259 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +72 -0
- package/dist/types.js.map +1 -0
- package/dist/types.schema.d.ts +652 -0
- package/dist/types.schema.d.ts.map +1 -0
- package/dist/types.schema.js +342 -0
- package/dist/types.schema.js.map +1 -0
- package/dist/types.schema.test.d.ts +5 -0
- package/dist/types.schema.test.d.ts.map +1 -0
- package/dist/types.schema.test.js +677 -0
- package/dist/types.schema.test.js.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1,652 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for SDK Services API response types.
|
|
3
|
+
*
|
|
4
|
+
* This is the source of truth for service response types. TypeScript types
|
|
5
|
+
* are derived from these schemas using z.infer<>.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
/**
|
|
11
|
+
* Validation error type for schema validation failures.
|
|
12
|
+
*/
|
|
13
|
+
export interface ValidationError {
|
|
14
|
+
code: "VALIDATION_ERROR";
|
|
15
|
+
message: string;
|
|
16
|
+
service: string;
|
|
17
|
+
meta?: {
|
|
18
|
+
issues: z.ZodIssue[];
|
|
19
|
+
path?: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Schema for service error with structured information.
|
|
24
|
+
*/
|
|
25
|
+
export declare const ServiceErrorSchema: z.ZodObject<{
|
|
26
|
+
/** Error code for programmatic handling (e.g., 'KV_NOT_FOUND', 'AUTH_EXPIRED') */
|
|
27
|
+
code: z.ZodString;
|
|
28
|
+
/** Human-readable error message */
|
|
29
|
+
message: z.ZodString;
|
|
30
|
+
/** Service that produced the error (e.g., 'kv', 'sql') */
|
|
31
|
+
service: z.ZodString;
|
|
32
|
+
/** Original error if this wraps another error - not validated since Error is a class */
|
|
33
|
+
cause: z.ZodOptional<z.ZodUnknown>;
|
|
34
|
+
/** Additional metadata about the error - passthrough allows any object properties */
|
|
35
|
+
meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
|
|
36
|
+
}, "strip", z.ZodTypeAny, {
|
|
37
|
+
code: string;
|
|
38
|
+
message: string;
|
|
39
|
+
service: string;
|
|
40
|
+
cause?: unknown;
|
|
41
|
+
meta?: z.objectOutputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
42
|
+
}, {
|
|
43
|
+
code: string;
|
|
44
|
+
message: string;
|
|
45
|
+
service: string;
|
|
46
|
+
cause?: unknown;
|
|
47
|
+
meta?: z.objectInputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
48
|
+
}>;
|
|
49
|
+
export type ServiceErrorType = z.infer<typeof ServiceErrorSchema>;
|
|
50
|
+
/**
|
|
51
|
+
* Creates a Result schema for a given data type.
|
|
52
|
+
* Result is a discriminated union: { ok: true, data: T } | { ok: false, error: E }
|
|
53
|
+
*
|
|
54
|
+
* @param dataSchema - Zod schema for the success data type
|
|
55
|
+
* @param errorSchema - Zod schema for the error type (defaults to ServiceErrorSchema)
|
|
56
|
+
* @returns A Zod schema for Result<T, E>
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* const KVGetResultSchema = createResultSchema(z.string());
|
|
61
|
+
* type KVGetResult = z.infer<typeof KVGetResultSchema>;
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export declare function createResultSchema<T extends z.ZodTypeAny, E extends z.ZodTypeAny>(dataSchema: T, errorSchema?: E): z.ZodDiscriminatedUnion<"ok", [z.ZodObject<{
|
|
65
|
+
ok: z.ZodLiteral<true>;
|
|
66
|
+
data: T;
|
|
67
|
+
}, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
|
|
68
|
+
ok: z.ZodLiteral<true>;
|
|
69
|
+
data: T;
|
|
70
|
+
}>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<{
|
|
71
|
+
ok: z.ZodLiteral<true>;
|
|
72
|
+
data: T;
|
|
73
|
+
}> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>, z.ZodObject<{
|
|
74
|
+
ok: z.ZodLiteral<false>;
|
|
75
|
+
error: E;
|
|
76
|
+
}, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
|
|
77
|
+
ok: z.ZodLiteral<false>;
|
|
78
|
+
error: E;
|
|
79
|
+
}>, any> extends infer T_3 ? { [k_2 in keyof T_3]: T_3[k_2]; } : never, z.baseObjectInputType<{
|
|
80
|
+
ok: z.ZodLiteral<false>;
|
|
81
|
+
error: E;
|
|
82
|
+
}> extends infer T_4 ? { [k_3 in keyof T_4]: T_4[k_3]; } : never>]>;
|
|
83
|
+
/**
|
|
84
|
+
* Pre-built Result schema with unknown data and ServiceError.
|
|
85
|
+
* Useful for generic validation before type narrowing.
|
|
86
|
+
*/
|
|
87
|
+
export declare const GenericResultSchema: z.ZodDiscriminatedUnion<"ok", [z.ZodObject<{
|
|
88
|
+
ok: z.ZodLiteral<true>;
|
|
89
|
+
data: z.ZodUnknown;
|
|
90
|
+
}, "strip", z.ZodTypeAny, {
|
|
91
|
+
ok: true;
|
|
92
|
+
data?: unknown;
|
|
93
|
+
}, {
|
|
94
|
+
ok: true;
|
|
95
|
+
data?: unknown;
|
|
96
|
+
}>, z.ZodObject<{
|
|
97
|
+
ok: z.ZodLiteral<false>;
|
|
98
|
+
error: z.ZodObject<{
|
|
99
|
+
/** Error code for programmatic handling (e.g., 'KV_NOT_FOUND', 'AUTH_EXPIRED') */
|
|
100
|
+
code: z.ZodString;
|
|
101
|
+
/** Human-readable error message */
|
|
102
|
+
message: z.ZodString;
|
|
103
|
+
/** Service that produced the error (e.g., 'kv', 'sql') */
|
|
104
|
+
service: z.ZodString;
|
|
105
|
+
/** Original error if this wraps another error - not validated since Error is a class */
|
|
106
|
+
cause: z.ZodOptional<z.ZodUnknown>;
|
|
107
|
+
/** Additional metadata about the error - passthrough allows any object properties */
|
|
108
|
+
meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
|
|
109
|
+
}, "strip", z.ZodTypeAny, {
|
|
110
|
+
code: string;
|
|
111
|
+
message: string;
|
|
112
|
+
service: string;
|
|
113
|
+
cause?: unknown;
|
|
114
|
+
meta?: z.objectOutputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
115
|
+
}, {
|
|
116
|
+
code: string;
|
|
117
|
+
message: string;
|
|
118
|
+
service: string;
|
|
119
|
+
cause?: unknown;
|
|
120
|
+
meta?: z.objectInputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
121
|
+
}>;
|
|
122
|
+
}, "strip", z.ZodTypeAny, {
|
|
123
|
+
error: {
|
|
124
|
+
code: string;
|
|
125
|
+
message: string;
|
|
126
|
+
service: string;
|
|
127
|
+
cause?: unknown;
|
|
128
|
+
meta?: z.objectOutputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
129
|
+
};
|
|
130
|
+
ok: false;
|
|
131
|
+
}, {
|
|
132
|
+
error: {
|
|
133
|
+
code: string;
|
|
134
|
+
message: string;
|
|
135
|
+
service: string;
|
|
136
|
+
cause?: unknown;
|
|
137
|
+
meta?: z.objectInputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
138
|
+
};
|
|
139
|
+
ok: false;
|
|
140
|
+
}>]>;
|
|
141
|
+
/**
|
|
142
|
+
* Schema for KV response headers metadata.
|
|
143
|
+
* Note: The `get` method is a function and cannot be validated with Zod.
|
|
144
|
+
* This schema validates the data properties only.
|
|
145
|
+
*/
|
|
146
|
+
export declare const KVResponseHeadersSchema: z.ZodObject<{
|
|
147
|
+
/** ETag for conditional requests */
|
|
148
|
+
etag: z.ZodOptional<z.ZodString>;
|
|
149
|
+
/** Content type of the stored value */
|
|
150
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
151
|
+
/** Last modification timestamp */
|
|
152
|
+
lastModified: z.ZodOptional<z.ZodString>;
|
|
153
|
+
/** Content length in bytes */
|
|
154
|
+
contentLength: z.ZodOptional<z.ZodNumber>;
|
|
155
|
+
}, "strip", z.ZodTypeAny, {
|
|
156
|
+
etag?: string | undefined;
|
|
157
|
+
contentType?: string | undefined;
|
|
158
|
+
lastModified?: string | undefined;
|
|
159
|
+
contentLength?: number | undefined;
|
|
160
|
+
}, {
|
|
161
|
+
etag?: string | undefined;
|
|
162
|
+
contentType?: string | undefined;
|
|
163
|
+
lastModified?: string | undefined;
|
|
164
|
+
contentLength?: number | undefined;
|
|
165
|
+
}>;
|
|
166
|
+
export type KVResponseHeadersType = z.infer<typeof KVResponseHeadersSchema>;
|
|
167
|
+
/**
|
|
168
|
+
* Creates a KVResponse schema for a given data type.
|
|
169
|
+
*
|
|
170
|
+
* @param dataSchema - Zod schema for the data payload type
|
|
171
|
+
* @returns A Zod schema for KVResponse<T>
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```typescript
|
|
175
|
+
* const UserResponseSchema = createKVResponseSchema(UserSchema);
|
|
176
|
+
* type UserResponse = z.infer<typeof UserResponseSchema>;
|
|
177
|
+
* ```
|
|
178
|
+
*/
|
|
179
|
+
export declare function createKVResponseSchema<T extends z.ZodTypeAny>(dataSchema: T): z.ZodObject<{
|
|
180
|
+
/** The data payload */
|
|
181
|
+
data: T;
|
|
182
|
+
/** Response headers with metadata */
|
|
183
|
+
headers: z.ZodObject<{
|
|
184
|
+
/** ETag for conditional requests */
|
|
185
|
+
etag: z.ZodOptional<z.ZodString>;
|
|
186
|
+
/** Content type of the stored value */
|
|
187
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
188
|
+
/** Last modification timestamp */
|
|
189
|
+
lastModified: z.ZodOptional<z.ZodString>;
|
|
190
|
+
/** Content length in bytes */
|
|
191
|
+
contentLength: z.ZodOptional<z.ZodNumber>;
|
|
192
|
+
}, "strip", z.ZodTypeAny, {
|
|
193
|
+
etag?: string | undefined;
|
|
194
|
+
contentType?: string | undefined;
|
|
195
|
+
lastModified?: string | undefined;
|
|
196
|
+
contentLength?: number | undefined;
|
|
197
|
+
}, {
|
|
198
|
+
etag?: string | undefined;
|
|
199
|
+
contentType?: string | undefined;
|
|
200
|
+
lastModified?: string | undefined;
|
|
201
|
+
contentLength?: number | undefined;
|
|
202
|
+
}>;
|
|
203
|
+
}, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
|
|
204
|
+
/** The data payload */
|
|
205
|
+
data: T;
|
|
206
|
+
/** Response headers with metadata */
|
|
207
|
+
headers: z.ZodObject<{
|
|
208
|
+
/** ETag for conditional requests */
|
|
209
|
+
etag: z.ZodOptional<z.ZodString>;
|
|
210
|
+
/** Content type of the stored value */
|
|
211
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
212
|
+
/** Last modification timestamp */
|
|
213
|
+
lastModified: z.ZodOptional<z.ZodString>;
|
|
214
|
+
/** Content length in bytes */
|
|
215
|
+
contentLength: z.ZodOptional<z.ZodNumber>;
|
|
216
|
+
}, "strip", z.ZodTypeAny, {
|
|
217
|
+
etag?: string | undefined;
|
|
218
|
+
contentType?: string | undefined;
|
|
219
|
+
lastModified?: string | undefined;
|
|
220
|
+
contentLength?: number | undefined;
|
|
221
|
+
}, {
|
|
222
|
+
etag?: string | undefined;
|
|
223
|
+
contentType?: string | undefined;
|
|
224
|
+
lastModified?: string | undefined;
|
|
225
|
+
contentLength?: number | undefined;
|
|
226
|
+
}>;
|
|
227
|
+
}>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<{
|
|
228
|
+
/** The data payload */
|
|
229
|
+
data: T;
|
|
230
|
+
/** Response headers with metadata */
|
|
231
|
+
headers: z.ZodObject<{
|
|
232
|
+
/** ETag for conditional requests */
|
|
233
|
+
etag: z.ZodOptional<z.ZodString>;
|
|
234
|
+
/** Content type of the stored value */
|
|
235
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
236
|
+
/** Last modification timestamp */
|
|
237
|
+
lastModified: z.ZodOptional<z.ZodString>;
|
|
238
|
+
/** Content length in bytes */
|
|
239
|
+
contentLength: z.ZodOptional<z.ZodNumber>;
|
|
240
|
+
}, "strip", z.ZodTypeAny, {
|
|
241
|
+
etag?: string | undefined;
|
|
242
|
+
contentType?: string | undefined;
|
|
243
|
+
lastModified?: string | undefined;
|
|
244
|
+
contentLength?: number | undefined;
|
|
245
|
+
}, {
|
|
246
|
+
etag?: string | undefined;
|
|
247
|
+
contentType?: string | undefined;
|
|
248
|
+
lastModified?: string | undefined;
|
|
249
|
+
contentLength?: number | undefined;
|
|
250
|
+
}>;
|
|
251
|
+
}> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
|
|
252
|
+
/**
|
|
253
|
+
* Generic KVResponse schema with unknown data.
|
|
254
|
+
* Useful for generic validation before type narrowing.
|
|
255
|
+
*/
|
|
256
|
+
export declare const GenericKVResponseSchema: z.ZodObject<{
|
|
257
|
+
/** The data payload */
|
|
258
|
+
data: z.ZodUnknown;
|
|
259
|
+
/** Response headers with metadata */
|
|
260
|
+
headers: z.ZodObject<{
|
|
261
|
+
/** ETag for conditional requests */
|
|
262
|
+
etag: z.ZodOptional<z.ZodString>;
|
|
263
|
+
/** Content type of the stored value */
|
|
264
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
265
|
+
/** Last modification timestamp */
|
|
266
|
+
lastModified: z.ZodOptional<z.ZodString>;
|
|
267
|
+
/** Content length in bytes */
|
|
268
|
+
contentLength: z.ZodOptional<z.ZodNumber>;
|
|
269
|
+
}, "strip", z.ZodTypeAny, {
|
|
270
|
+
etag?: string | undefined;
|
|
271
|
+
contentType?: string | undefined;
|
|
272
|
+
lastModified?: string | undefined;
|
|
273
|
+
contentLength?: number | undefined;
|
|
274
|
+
}, {
|
|
275
|
+
etag?: string | undefined;
|
|
276
|
+
contentType?: string | undefined;
|
|
277
|
+
lastModified?: string | undefined;
|
|
278
|
+
contentLength?: number | undefined;
|
|
279
|
+
}>;
|
|
280
|
+
}, "strip", z.ZodTypeAny, {
|
|
281
|
+
headers: {
|
|
282
|
+
etag?: string | undefined;
|
|
283
|
+
contentType?: string | undefined;
|
|
284
|
+
lastModified?: string | undefined;
|
|
285
|
+
contentLength?: number | undefined;
|
|
286
|
+
};
|
|
287
|
+
data?: unknown;
|
|
288
|
+
}, {
|
|
289
|
+
headers: {
|
|
290
|
+
etag?: string | undefined;
|
|
291
|
+
contentType?: string | undefined;
|
|
292
|
+
lastModified?: string | undefined;
|
|
293
|
+
contentLength?: number | undefined;
|
|
294
|
+
};
|
|
295
|
+
data?: unknown;
|
|
296
|
+
}>;
|
|
297
|
+
export type GenericKVResponseType = z.infer<typeof GenericKVResponseSchema>;
|
|
298
|
+
/**
|
|
299
|
+
* Schema for KV list response.
|
|
300
|
+
*/
|
|
301
|
+
export declare const KVListResponseSchema: z.ZodObject<{
|
|
302
|
+
/** Array of keys matching the list criteria */
|
|
303
|
+
keys: z.ZodArray<z.ZodString, "many">;
|
|
304
|
+
}, "strip", z.ZodTypeAny, {
|
|
305
|
+
keys: string[];
|
|
306
|
+
}, {
|
|
307
|
+
keys: string[];
|
|
308
|
+
}>;
|
|
309
|
+
export type KVListResponseType = z.infer<typeof KVListResponseSchema>;
|
|
310
|
+
/**
|
|
311
|
+
* Result schema for KV list operations.
|
|
312
|
+
*/
|
|
313
|
+
export declare const KVListResultSchema: z.ZodDiscriminatedUnion<"ok", [z.ZodObject<{
|
|
314
|
+
ok: z.ZodLiteral<true>;
|
|
315
|
+
data: z.ZodObject<{
|
|
316
|
+
/** Array of keys matching the list criteria */
|
|
317
|
+
keys: z.ZodArray<z.ZodString, "many">;
|
|
318
|
+
}, "strip", z.ZodTypeAny, {
|
|
319
|
+
keys: string[];
|
|
320
|
+
}, {
|
|
321
|
+
keys: string[];
|
|
322
|
+
}>;
|
|
323
|
+
}, "strip", z.ZodTypeAny, {
|
|
324
|
+
data: {
|
|
325
|
+
keys: string[];
|
|
326
|
+
};
|
|
327
|
+
ok: true;
|
|
328
|
+
}, {
|
|
329
|
+
data: {
|
|
330
|
+
keys: string[];
|
|
331
|
+
};
|
|
332
|
+
ok: true;
|
|
333
|
+
}>, z.ZodObject<{
|
|
334
|
+
ok: z.ZodLiteral<false>;
|
|
335
|
+
error: z.ZodTypeAny;
|
|
336
|
+
}, "strip", z.ZodTypeAny, {
|
|
337
|
+
ok: false;
|
|
338
|
+
error?: any;
|
|
339
|
+
}, {
|
|
340
|
+
ok: false;
|
|
341
|
+
error?: any;
|
|
342
|
+
}>]>;
|
|
343
|
+
export type KVListResultType = z.infer<typeof KVListResultSchema>;
|
|
344
|
+
/**
|
|
345
|
+
* Schema for service request event.
|
|
346
|
+
*/
|
|
347
|
+
export declare const ServiceRequestEventSchema: z.ZodObject<{
|
|
348
|
+
service: z.ZodString;
|
|
349
|
+
action: z.ZodString;
|
|
350
|
+
key: z.ZodOptional<z.ZodString>;
|
|
351
|
+
timestamp: z.ZodNumber;
|
|
352
|
+
}, "strip", z.ZodTypeAny, {
|
|
353
|
+
service: string;
|
|
354
|
+
action: string;
|
|
355
|
+
timestamp: number;
|
|
356
|
+
key?: string | undefined;
|
|
357
|
+
}, {
|
|
358
|
+
service: string;
|
|
359
|
+
action: string;
|
|
360
|
+
timestamp: number;
|
|
361
|
+
key?: string | undefined;
|
|
362
|
+
}>;
|
|
363
|
+
export type ServiceRequestEventType = z.infer<typeof ServiceRequestEventSchema>;
|
|
364
|
+
/**
|
|
365
|
+
* Schema for service response event.
|
|
366
|
+
*/
|
|
367
|
+
export declare const ServiceResponseEventSchema: z.ZodObject<{
|
|
368
|
+
service: z.ZodString;
|
|
369
|
+
action: z.ZodString;
|
|
370
|
+
ok: z.ZodBoolean;
|
|
371
|
+
duration: z.ZodNumber;
|
|
372
|
+
status: z.ZodOptional<z.ZodNumber>;
|
|
373
|
+
}, "strip", z.ZodTypeAny, {
|
|
374
|
+
service: string;
|
|
375
|
+
ok: boolean;
|
|
376
|
+
action: string;
|
|
377
|
+
duration: number;
|
|
378
|
+
status?: number | undefined;
|
|
379
|
+
}, {
|
|
380
|
+
service: string;
|
|
381
|
+
ok: boolean;
|
|
382
|
+
action: string;
|
|
383
|
+
duration: number;
|
|
384
|
+
status?: number | undefined;
|
|
385
|
+
}>;
|
|
386
|
+
export type ServiceResponseEventType = z.infer<typeof ServiceResponseEventSchema>;
|
|
387
|
+
/**
|
|
388
|
+
* Schema for service error event.
|
|
389
|
+
*/
|
|
390
|
+
export declare const ServiceErrorEventSchema: z.ZodObject<{
|
|
391
|
+
service: z.ZodString;
|
|
392
|
+
error: z.ZodObject<{
|
|
393
|
+
/** Error code for programmatic handling (e.g., 'KV_NOT_FOUND', 'AUTH_EXPIRED') */
|
|
394
|
+
code: z.ZodString;
|
|
395
|
+
/** Human-readable error message */
|
|
396
|
+
message: z.ZodString;
|
|
397
|
+
/** Service that produced the error (e.g., 'kv', 'sql') */
|
|
398
|
+
service: z.ZodString;
|
|
399
|
+
/** Original error if this wraps another error - not validated since Error is a class */
|
|
400
|
+
cause: z.ZodOptional<z.ZodUnknown>;
|
|
401
|
+
/** Additional metadata about the error - passthrough allows any object properties */
|
|
402
|
+
meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
|
|
403
|
+
}, "strip", z.ZodTypeAny, {
|
|
404
|
+
code: string;
|
|
405
|
+
message: string;
|
|
406
|
+
service: string;
|
|
407
|
+
cause?: unknown;
|
|
408
|
+
meta?: z.objectOutputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
409
|
+
}, {
|
|
410
|
+
code: string;
|
|
411
|
+
message: string;
|
|
412
|
+
service: string;
|
|
413
|
+
cause?: unknown;
|
|
414
|
+
meta?: z.objectInputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
415
|
+
}>;
|
|
416
|
+
}, "strip", z.ZodTypeAny, {
|
|
417
|
+
error: {
|
|
418
|
+
code: string;
|
|
419
|
+
message: string;
|
|
420
|
+
service: string;
|
|
421
|
+
cause?: unknown;
|
|
422
|
+
meta?: z.objectOutputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
423
|
+
};
|
|
424
|
+
service: string;
|
|
425
|
+
}, {
|
|
426
|
+
error: {
|
|
427
|
+
code: string;
|
|
428
|
+
message: string;
|
|
429
|
+
service: string;
|
|
430
|
+
cause?: unknown;
|
|
431
|
+
meta?: z.objectInputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
432
|
+
};
|
|
433
|
+
service: string;
|
|
434
|
+
}>;
|
|
435
|
+
export type ServiceErrorEventType = z.infer<typeof ServiceErrorEventSchema>;
|
|
436
|
+
/**
|
|
437
|
+
* Schema for service retry event.
|
|
438
|
+
*/
|
|
439
|
+
export declare const ServiceRetryEventSchema: z.ZodObject<{
|
|
440
|
+
service: z.ZodString;
|
|
441
|
+
attempt: z.ZodNumber;
|
|
442
|
+
maxAttempts: z.ZodNumber;
|
|
443
|
+
error: z.ZodObject<{
|
|
444
|
+
/** Error code for programmatic handling (e.g., 'KV_NOT_FOUND', 'AUTH_EXPIRED') */
|
|
445
|
+
code: z.ZodString;
|
|
446
|
+
/** Human-readable error message */
|
|
447
|
+
message: z.ZodString;
|
|
448
|
+
/** Service that produced the error (e.g., 'kv', 'sql') */
|
|
449
|
+
service: z.ZodString;
|
|
450
|
+
/** Original error if this wraps another error - not validated since Error is a class */
|
|
451
|
+
cause: z.ZodOptional<z.ZodUnknown>;
|
|
452
|
+
/** Additional metadata about the error - passthrough allows any object properties */
|
|
453
|
+
meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
|
|
454
|
+
}, "strip", z.ZodTypeAny, {
|
|
455
|
+
code: string;
|
|
456
|
+
message: string;
|
|
457
|
+
service: string;
|
|
458
|
+
cause?: unknown;
|
|
459
|
+
meta?: z.objectOutputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
460
|
+
}, {
|
|
461
|
+
code: string;
|
|
462
|
+
message: string;
|
|
463
|
+
service: string;
|
|
464
|
+
cause?: unknown;
|
|
465
|
+
meta?: z.objectInputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
466
|
+
}>;
|
|
467
|
+
}, "strip", z.ZodTypeAny, {
|
|
468
|
+
error: {
|
|
469
|
+
code: string;
|
|
470
|
+
message: string;
|
|
471
|
+
service: string;
|
|
472
|
+
cause?: unknown;
|
|
473
|
+
meta?: z.objectOutputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
474
|
+
};
|
|
475
|
+
maxAttempts: number;
|
|
476
|
+
service: string;
|
|
477
|
+
attempt: number;
|
|
478
|
+
}, {
|
|
479
|
+
error: {
|
|
480
|
+
code: string;
|
|
481
|
+
message: string;
|
|
482
|
+
service: string;
|
|
483
|
+
cause?: unknown;
|
|
484
|
+
meta?: z.objectInputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
485
|
+
};
|
|
486
|
+
maxAttempts: number;
|
|
487
|
+
service: string;
|
|
488
|
+
attempt: number;
|
|
489
|
+
}>;
|
|
490
|
+
export type ServiceRetryEventType = z.infer<typeof ServiceRetryEventSchema>;
|
|
491
|
+
/**
|
|
492
|
+
* Schema for retry policy configuration.
|
|
493
|
+
*/
|
|
494
|
+
export declare const RetryPolicySchema: z.ZodObject<{
|
|
495
|
+
/** Maximum number of attempts (including initial) */
|
|
496
|
+
maxAttempts: z.ZodNumber;
|
|
497
|
+
/** Backoff strategy between retries */
|
|
498
|
+
backoff: z.ZodEnum<["none", "linear", "exponential"]>;
|
|
499
|
+
/** Base delay in milliseconds for backoff calculation */
|
|
500
|
+
baseDelayMs: z.ZodNumber;
|
|
501
|
+
/** Maximum delay in milliseconds between retries */
|
|
502
|
+
maxDelayMs: z.ZodNumber;
|
|
503
|
+
/** Error codes that should trigger a retry */
|
|
504
|
+
retryableErrors: z.ZodArray<z.ZodString, "many">;
|
|
505
|
+
}, "strip", z.ZodTypeAny, {
|
|
506
|
+
maxAttempts: number;
|
|
507
|
+
backoff: "none" | "linear" | "exponential";
|
|
508
|
+
baseDelayMs: number;
|
|
509
|
+
maxDelayMs: number;
|
|
510
|
+
retryableErrors: string[];
|
|
511
|
+
}, {
|
|
512
|
+
maxAttempts: number;
|
|
513
|
+
backoff: "none" | "linear" | "exponential";
|
|
514
|
+
baseDelayMs: number;
|
|
515
|
+
maxDelayMs: number;
|
|
516
|
+
retryableErrors: string[];
|
|
517
|
+
}>;
|
|
518
|
+
export type RetryPolicyType = z.infer<typeof RetryPolicySchema>;
|
|
519
|
+
/**
|
|
520
|
+
* Schema for service session data required for authenticated operations.
|
|
521
|
+
*/
|
|
522
|
+
export declare const ServiceSessionSchema: z.ZodObject<{
|
|
523
|
+
/** The delegation header containing the UCAN */
|
|
524
|
+
delegationHeader: z.ZodObject<{
|
|
525
|
+
Authorization: z.ZodString;
|
|
526
|
+
}, "strip", z.ZodTypeAny, {
|
|
527
|
+
Authorization: string;
|
|
528
|
+
}, {
|
|
529
|
+
Authorization: string;
|
|
530
|
+
}>;
|
|
531
|
+
/** The delegation CID */
|
|
532
|
+
delegationCid: z.ZodString;
|
|
533
|
+
/** The space ID for this session */
|
|
534
|
+
spaceId: z.ZodString;
|
|
535
|
+
/** The verification method DID */
|
|
536
|
+
verificationMethod: z.ZodString;
|
|
537
|
+
/** The session key JWK (required for invoke) */
|
|
538
|
+
jwk: z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>;
|
|
539
|
+
}, "strip", z.ZodTypeAny, {
|
|
540
|
+
delegationHeader: {
|
|
541
|
+
Authorization: string;
|
|
542
|
+
};
|
|
543
|
+
delegationCid: string;
|
|
544
|
+
spaceId: string;
|
|
545
|
+
verificationMethod: string;
|
|
546
|
+
jwk: {} & {
|
|
547
|
+
[k: string]: unknown;
|
|
548
|
+
};
|
|
549
|
+
}, {
|
|
550
|
+
delegationHeader: {
|
|
551
|
+
Authorization: string;
|
|
552
|
+
};
|
|
553
|
+
delegationCid: string;
|
|
554
|
+
spaceId: string;
|
|
555
|
+
verificationMethod: string;
|
|
556
|
+
jwk: {} & {
|
|
557
|
+
[k: string]: unknown;
|
|
558
|
+
};
|
|
559
|
+
}>;
|
|
560
|
+
export type ServiceSessionType = z.infer<typeof ServiceSessionSchema>;
|
|
561
|
+
/**
|
|
562
|
+
* Validate service error against the schema.
|
|
563
|
+
*
|
|
564
|
+
* @param data - Unknown data to validate
|
|
565
|
+
* @returns Result with validated data or validation error
|
|
566
|
+
*/
|
|
567
|
+
export declare function validateServiceError(data: unknown): {
|
|
568
|
+
ok: true;
|
|
569
|
+
data: ServiceErrorType;
|
|
570
|
+
} | {
|
|
571
|
+
ok: false;
|
|
572
|
+
error: ValidationError;
|
|
573
|
+
};
|
|
574
|
+
/**
|
|
575
|
+
* Validate KV list response against the schema.
|
|
576
|
+
*
|
|
577
|
+
* @param data - Unknown data to validate
|
|
578
|
+
* @returns Result with validated data or validation error
|
|
579
|
+
*/
|
|
580
|
+
export declare function validateKVListResponse(data: unknown): {
|
|
581
|
+
ok: true;
|
|
582
|
+
data: KVListResponseType;
|
|
583
|
+
} | {
|
|
584
|
+
ok: false;
|
|
585
|
+
error: ValidationError;
|
|
586
|
+
};
|
|
587
|
+
/**
|
|
588
|
+
* Validate KV response headers against the schema.
|
|
589
|
+
*
|
|
590
|
+
* @param data - Unknown data to validate
|
|
591
|
+
* @returns Result with validated data or validation error
|
|
592
|
+
*/
|
|
593
|
+
export declare function validateKVResponseHeaders(data: unknown): {
|
|
594
|
+
ok: true;
|
|
595
|
+
data: KVResponseHeadersType;
|
|
596
|
+
} | {
|
|
597
|
+
ok: false;
|
|
598
|
+
error: ValidationError;
|
|
599
|
+
};
|
|
600
|
+
/**
|
|
601
|
+
* Validate service session against the schema.
|
|
602
|
+
*
|
|
603
|
+
* @param data - Unknown data to validate
|
|
604
|
+
* @returns Result with validated data or validation error
|
|
605
|
+
*/
|
|
606
|
+
export declare function validateServiceSession(data: unknown): {
|
|
607
|
+
ok: true;
|
|
608
|
+
data: ServiceSessionType;
|
|
609
|
+
} | {
|
|
610
|
+
ok: false;
|
|
611
|
+
error: ValidationError;
|
|
612
|
+
};
|
|
613
|
+
/**
|
|
614
|
+
* Validate retry policy against the schema.
|
|
615
|
+
*
|
|
616
|
+
* @param data - Unknown data to validate
|
|
617
|
+
* @returns Result with validated data or validation error
|
|
618
|
+
*/
|
|
619
|
+
export declare function validateRetryPolicy(data: unknown): {
|
|
620
|
+
ok: true;
|
|
621
|
+
data: RetryPolicyType;
|
|
622
|
+
} | {
|
|
623
|
+
ok: false;
|
|
624
|
+
error: ValidationError;
|
|
625
|
+
};
|
|
626
|
+
/**
|
|
627
|
+
* Validate service request event against the schema.
|
|
628
|
+
*
|
|
629
|
+
* @param data - Unknown data to validate
|
|
630
|
+
* @returns Result with validated data or validation error
|
|
631
|
+
*/
|
|
632
|
+
export declare function validateServiceRequestEvent(data: unknown): {
|
|
633
|
+
ok: true;
|
|
634
|
+
data: ServiceRequestEventType;
|
|
635
|
+
} | {
|
|
636
|
+
ok: false;
|
|
637
|
+
error: ValidationError;
|
|
638
|
+
};
|
|
639
|
+
/**
|
|
640
|
+
* Validate service response event against the schema.
|
|
641
|
+
*
|
|
642
|
+
* @param data - Unknown data to validate
|
|
643
|
+
* @returns Result with validated data or validation error
|
|
644
|
+
*/
|
|
645
|
+
export declare function validateServiceResponseEvent(data: unknown): {
|
|
646
|
+
ok: true;
|
|
647
|
+
data: ServiceResponseEventType;
|
|
648
|
+
} | {
|
|
649
|
+
ok: false;
|
|
650
|
+
error: ValidationError;
|
|
651
|
+
};
|
|
652
|
+
//# sourceMappingURL=types.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.schema.d.ts","sourceRoot":"","sources":["../src/types.schema.ts"],"names":[],"mappings":"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"}
|