@syncular/core 0.0.1-60
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/blobs.d.ts +137 -0
- package/dist/blobs.d.ts.map +1 -0
- package/dist/blobs.js +47 -0
- package/dist/blobs.js.map +1 -0
- package/dist/conflict.d.ts +22 -0
- package/dist/conflict.d.ts.map +1 -0
- package/dist/conflict.js +81 -0
- package/dist/conflict.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/kysely-serialize.d.ts +22 -0
- package/dist/kysely-serialize.d.ts.map +1 -0
- package/dist/kysely-serialize.js +147 -0
- package/dist/kysely-serialize.js.map +1 -0
- package/dist/logger.d.ts +46 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +48 -0
- package/dist/logger.js.map +1 -0
- package/dist/proxy/index.d.ts +5 -0
- package/dist/proxy/index.d.ts.map +1 -0
- package/dist/proxy/index.js +5 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/types.d.ts +54 -0
- package/dist/proxy/types.d.ts.map +1 -0
- package/dist/proxy/types.js +7 -0
- package/dist/proxy/types.js.map +1 -0
- package/dist/schemas/blobs.d.ts +76 -0
- package/dist/schemas/blobs.d.ts.map +1 -0
- package/dist/schemas/blobs.js +63 -0
- package/dist/schemas/blobs.js.map +1 -0
- package/dist/schemas/common.d.ts +28 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +26 -0
- package/dist/schemas/common.js.map +1 -0
- package/dist/schemas/index.d.ts +7 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +7 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/sync.d.ts +391 -0
- package/dist/schemas/sync.d.ts.map +1 -0
- package/dist/schemas/sync.js +156 -0
- package/dist/schemas/sync.js.map +1 -0
- package/dist/scopes/index.d.ts +65 -0
- package/dist/scopes/index.d.ts.map +1 -0
- package/dist/scopes/index.js +67 -0
- package/dist/scopes/index.js.map +1 -0
- package/dist/transforms.d.ts +146 -0
- package/dist/transforms.d.ts.map +1 -0
- package/dist/transforms.js +155 -0
- package/dist/transforms.js.map +1 -0
- package/dist/types.d.ts +129 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +20 -0
- package/dist/types.js.map +1 -0
- package/package.json +56 -0
- package/src/__tests__/conflict.test.ts +325 -0
- package/src/blobs.ts +187 -0
- package/src/conflict.ts +92 -0
- package/src/index.ts +30 -0
- package/src/kysely-serialize.ts +214 -0
- package/src/logger.ts +80 -0
- package/src/proxy/index.ts +10 -0
- package/src/proxy/types.ts +57 -0
- package/src/schemas/blobs.ts +101 -0
- package/src/schemas/common.ts +45 -0
- package/src/schemas/index.ts +7 -0
- package/src/schemas/sync.ts +222 -0
- package/src/scopes/index.ts +122 -0
- package/src/transforms.ts +256 -0
- package/src/types.ts +158 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proxy/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proxy/index.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @syncular/core - Proxy Protocol Types
|
|
3
|
+
*
|
|
4
|
+
* Shared protocol types between proxy client (Kysely dialect) and server (WebSocket handler).
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Message sent from proxy client to server.
|
|
8
|
+
*/
|
|
9
|
+
export interface ProxyMessage {
|
|
10
|
+
/** Correlation ID for matching request/response */
|
|
11
|
+
id: string;
|
|
12
|
+
/** Message type */
|
|
13
|
+
type: 'query' | 'begin' | 'commit' | 'rollback';
|
|
14
|
+
/** SQL query (for 'query' type) */
|
|
15
|
+
sql?: string;
|
|
16
|
+
/** Query parameters (for 'query' type) */
|
|
17
|
+
parameters?: readonly unknown[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Response sent from server to proxy client.
|
|
21
|
+
*/
|
|
22
|
+
export interface ProxyResponse {
|
|
23
|
+
/** Correlation ID matching the request */
|
|
24
|
+
id: string;
|
|
25
|
+
/** Response type */
|
|
26
|
+
type: 'result' | 'error';
|
|
27
|
+
/** Query result rows (for SELECT queries) */
|
|
28
|
+
rows?: unknown[];
|
|
29
|
+
/** Number of affected rows (for mutations) */
|
|
30
|
+
rowCount?: number;
|
|
31
|
+
/** Error message (for 'error' type) */
|
|
32
|
+
error?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Handshake message sent when connection is established.
|
|
36
|
+
*/
|
|
37
|
+
export interface ProxyHandshake {
|
|
38
|
+
type: 'handshake';
|
|
39
|
+
/** Actor ID for oplog tracking */
|
|
40
|
+
actorId: string;
|
|
41
|
+
/** Client ID for oplog tracking */
|
|
42
|
+
clientId: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Handshake acknowledgement from server.
|
|
46
|
+
*/
|
|
47
|
+
export interface ProxyHandshakeAck {
|
|
48
|
+
type: 'handshake_ack';
|
|
49
|
+
/** Whether handshake was successful */
|
|
50
|
+
ok: boolean;
|
|
51
|
+
/** Error message if handshake failed */
|
|
52
|
+
error?: string;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/proxy/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IAChD,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,UAAU,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,uCAAuC;IACvC,EAAE,EAAE,OAAO,CAAC;IACZ,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/proxy/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @syncular/core - Blob Zod schemas
|
|
3
|
+
*
|
|
4
|
+
* Runtime validation schemas for blob types.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
export declare const BlobRefSchema: z.ZodObject<{
|
|
8
|
+
hash: z.ZodString;
|
|
9
|
+
size: z.ZodNumber;
|
|
10
|
+
mimeType: z.ZodString;
|
|
11
|
+
encrypted: z.ZodOptional<z.ZodBoolean>;
|
|
12
|
+
keyId: z.ZodOptional<z.ZodString>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
export type BlobRef = z.infer<typeof BlobRefSchema>;
|
|
15
|
+
export declare const BlobMetadataSchema: z.ZodObject<{
|
|
16
|
+
hash: z.ZodString;
|
|
17
|
+
size: z.ZodNumber;
|
|
18
|
+
mimeType: z.ZodString;
|
|
19
|
+
createdAt: z.ZodString;
|
|
20
|
+
expiresAt: z.ZodOptional<z.ZodString>;
|
|
21
|
+
uploadComplete: z.ZodBoolean;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
export type BlobMetadata = z.infer<typeof BlobMetadataSchema>;
|
|
24
|
+
export declare const BlobUploadInitRequestSchema: z.ZodObject<{
|
|
25
|
+
hash: z.ZodString;
|
|
26
|
+
size: z.ZodNumber;
|
|
27
|
+
mimeType: z.ZodString;
|
|
28
|
+
}, z.core.$strip>;
|
|
29
|
+
export type BlobUploadInitRequest = z.infer<typeof BlobUploadInitRequestSchema>;
|
|
30
|
+
export declare const BlobUploadInitResponseSchema: z.ZodObject<{
|
|
31
|
+
exists: z.ZodBoolean;
|
|
32
|
+
uploadId: z.ZodOptional<z.ZodString>;
|
|
33
|
+
uploadUrl: z.ZodOptional<z.ZodString>;
|
|
34
|
+
uploadMethod: z.ZodOptional<z.ZodEnum<{
|
|
35
|
+
POST: "POST";
|
|
36
|
+
PUT: "PUT";
|
|
37
|
+
}>>;
|
|
38
|
+
uploadHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
39
|
+
chunkSize: z.ZodOptional<z.ZodNumber>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
export type BlobUploadInitResponse = z.infer<typeof BlobUploadInitResponseSchema>;
|
|
42
|
+
export declare const BlobUploadCompleteRequestSchema: z.ZodObject<{
|
|
43
|
+
hash: z.ZodString;
|
|
44
|
+
}, z.core.$strip>;
|
|
45
|
+
export type BlobUploadCompleteRequest = z.infer<typeof BlobUploadCompleteRequestSchema>;
|
|
46
|
+
export declare const BlobUploadCompleteResponseSchema: z.ZodObject<{
|
|
47
|
+
ok: z.ZodBoolean;
|
|
48
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
49
|
+
hash: z.ZodString;
|
|
50
|
+
size: z.ZodNumber;
|
|
51
|
+
mimeType: z.ZodString;
|
|
52
|
+
createdAt: z.ZodString;
|
|
53
|
+
expiresAt: z.ZodOptional<z.ZodString>;
|
|
54
|
+
uploadComplete: z.ZodBoolean;
|
|
55
|
+
}, z.core.$strip>>;
|
|
56
|
+
error: z.ZodOptional<z.ZodString>;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
export type BlobUploadCompleteResponse = z.infer<typeof BlobUploadCompleteResponseSchema>;
|
|
59
|
+
export declare const BlobDownloadUrlRequestSchema: z.ZodObject<{
|
|
60
|
+
hash: z.ZodString;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
export type BlobDownloadUrlRequest = z.infer<typeof BlobDownloadUrlRequestSchema>;
|
|
63
|
+
export declare const BlobDownloadUrlResponseSchema: z.ZodObject<{
|
|
64
|
+
url: z.ZodString;
|
|
65
|
+
expiresAt: z.ZodString;
|
|
66
|
+
metadata: z.ZodObject<{
|
|
67
|
+
hash: z.ZodString;
|
|
68
|
+
size: z.ZodNumber;
|
|
69
|
+
mimeType: z.ZodString;
|
|
70
|
+
createdAt: z.ZodString;
|
|
71
|
+
expiresAt: z.ZodOptional<z.ZodString>;
|
|
72
|
+
uploadComplete: z.ZodBoolean;
|
|
73
|
+
}, z.core.$strip>;
|
|
74
|
+
}, z.core.$strip>;
|
|
75
|
+
export type BlobDownloadUrlResponse = z.infer<typeof BlobDownloadUrlResponseSchema>;
|
|
76
|
+
//# sourceMappingURL=blobs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blobs.d.ts","sourceRoot":"","sources":["../../src/schemas/blobs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,aAAa;;;;;;iBAMxB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAMpD,eAAO,MAAM,kBAAkB;;;;;;;iBAO7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAM9D,eAAO,MAAM,2BAA2B;;;;iBAItC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,4BAA4B;;;;;;;;;;iBAOvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC;AAEF,eAAO,MAAM,+BAA+B;;iBAE1C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;iBAI3C,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC;AAMF,eAAO,MAAM,4BAA4B;;iBAEvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;iBAIxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @syncular/core - Blob Zod schemas
|
|
3
|
+
*
|
|
4
|
+
* Runtime validation schemas for blob types.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Blob Reference Schema
|
|
9
|
+
// ============================================================================
|
|
10
|
+
export const BlobRefSchema = z.object({
|
|
11
|
+
hash: z.string().regex(/^sha256:[0-9a-f]{64}$/i, 'Invalid blob hash format'),
|
|
12
|
+
size: z.number().int().min(0),
|
|
13
|
+
mimeType: z.string().min(1),
|
|
14
|
+
encrypted: z.boolean().optional(),
|
|
15
|
+
keyId: z.string().optional(),
|
|
16
|
+
});
|
|
17
|
+
// ============================================================================
|
|
18
|
+
// Blob Metadata Schema
|
|
19
|
+
// ============================================================================
|
|
20
|
+
export const BlobMetadataSchema = z.object({
|
|
21
|
+
hash: z.string().regex(/^sha256:[0-9a-f]{64}$/i),
|
|
22
|
+
size: z.number().int().min(0),
|
|
23
|
+
mimeType: z.string().min(1),
|
|
24
|
+
createdAt: z.string(),
|
|
25
|
+
expiresAt: z.string().optional(),
|
|
26
|
+
uploadComplete: z.boolean(),
|
|
27
|
+
});
|
|
28
|
+
// ============================================================================
|
|
29
|
+
// Upload Request/Response Schemas
|
|
30
|
+
// ============================================================================
|
|
31
|
+
export const BlobUploadInitRequestSchema = z.object({
|
|
32
|
+
hash: z.string().regex(/^sha256:[0-9a-f]{64}$/i, 'Invalid blob hash format'),
|
|
33
|
+
size: z.number().int().min(0),
|
|
34
|
+
mimeType: z.string().min(1),
|
|
35
|
+
});
|
|
36
|
+
export const BlobUploadInitResponseSchema = z.object({
|
|
37
|
+
exists: z.boolean(),
|
|
38
|
+
uploadId: z.string().optional(),
|
|
39
|
+
uploadUrl: z.string().url().optional(),
|
|
40
|
+
uploadMethod: z.enum(['PUT', 'POST']).optional(),
|
|
41
|
+
uploadHeaders: z.record(z.string(), z.string()).optional(),
|
|
42
|
+
chunkSize: z.number().int().optional(),
|
|
43
|
+
});
|
|
44
|
+
export const BlobUploadCompleteRequestSchema = z.object({
|
|
45
|
+
hash: z.string().regex(/^sha256:[0-9a-f]{64}$/i),
|
|
46
|
+
});
|
|
47
|
+
export const BlobUploadCompleteResponseSchema = z.object({
|
|
48
|
+
ok: z.boolean(),
|
|
49
|
+
metadata: BlobMetadataSchema.optional(),
|
|
50
|
+
error: z.string().optional(),
|
|
51
|
+
});
|
|
52
|
+
// ============================================================================
|
|
53
|
+
// Download URL Request/Response Schemas
|
|
54
|
+
// ============================================================================
|
|
55
|
+
export const BlobDownloadUrlRequestSchema = z.object({
|
|
56
|
+
hash: z.string().regex(/^sha256:[0-9a-f]{64}$/i),
|
|
57
|
+
});
|
|
58
|
+
export const BlobDownloadUrlResponseSchema = z.object({
|
|
59
|
+
url: z.string().url(),
|
|
60
|
+
expiresAt: z.string(),
|
|
61
|
+
metadata: BlobMetadataSchema,
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=blobs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blobs.js","sourceRoot":"","sources":["../../src/schemas/blobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @syncular/core - Common Zod schemas
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
export declare const ErrorResponseSchema: z.ZodObject<{
|
|
6
|
+
error: z.ZodString;
|
|
7
|
+
message: z.ZodOptional<z.ZodString>;
|
|
8
|
+
code: z.ZodOptional<z.ZodString>;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
export type ErrorResponse = z.infer<typeof ErrorResponseSchema>;
|
|
11
|
+
export declare const PaginationQuerySchema: z.ZodObject<{
|
|
12
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
13
|
+
offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export type PaginationQuery = z.infer<typeof PaginationQuerySchema>;
|
|
16
|
+
export declare const PaginatedResponseSchema: <T extends z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>(itemSchema: T) => z.ZodObject<{
|
|
17
|
+
items: z.ZodArray<T>;
|
|
18
|
+
total: z.ZodNumber;
|
|
19
|
+
offset: z.ZodNumber;
|
|
20
|
+
limit: z.ZodNumber;
|
|
21
|
+
}, z.core.$strip>;
|
|
22
|
+
export type PaginatedResponse<T> = {
|
|
23
|
+
items: T[];
|
|
24
|
+
total: number;
|
|
25
|
+
offset: number;
|
|
26
|
+
limit: number;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAMhE,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,uBAAuB,GAAI,CAAC;;;;;iBAQrC,CAAC;AAEL,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @syncular/core - Common Zod schemas
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
// ============================================================================
|
|
6
|
+
// Error Response Schemas
|
|
7
|
+
// ============================================================================
|
|
8
|
+
export const ErrorResponseSchema = z.object({
|
|
9
|
+
error: z.string(),
|
|
10
|
+
message: z.string().optional(),
|
|
11
|
+
code: z.string().optional(),
|
|
12
|
+
});
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Pagination Schemas
|
|
15
|
+
// ============================================================================
|
|
16
|
+
export const PaginationQuerySchema = z.object({
|
|
17
|
+
limit: z.coerce.number().int().min(1).max(100).default(50),
|
|
18
|
+
offset: z.coerce.number().int().min(0).default(0),
|
|
19
|
+
});
|
|
20
|
+
export const PaginatedResponseSchema = (itemSchema) => z.object({
|
|
21
|
+
items: z.array(itemSchema),
|
|
22
|
+
total: z.number().int(),
|
|
23
|
+
offset: z.number().int(),
|
|
24
|
+
limit: z.number().int(),
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAIH,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CAClD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,UAAa,EACb,EAAE,CACF,CAAC,CAAC,MAAM,CAAC;IACP,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CACxB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC"}
|