@syncular/core 0.1.3 → 0.2.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.
Files changed (231) hide show
  1. package/README.md +5 -19
  2. package/dist/blob-ref.d.ts +21 -0
  3. package/dist/blob-ref.js +97 -0
  4. package/dist/bytes.d.ts +45 -0
  5. package/dist/bytes.js +242 -0
  6. package/dist/canonical-json.d.ts +10 -0
  7. package/dist/canonical-json.js +18 -0
  8. package/dist/constants.d.ts +5 -0
  9. package/dist/constants.js +5 -0
  10. package/dist/crypto.d.ts +60 -0
  11. package/dist/crypto.js +251 -0
  12. package/dist/errors.d.ts +14 -0
  13. package/dist/errors.js +17 -0
  14. package/dist/frames.d.ts +24 -0
  15. package/dist/frames.js +42 -0
  16. package/dist/index.d.ts +18 -26
  17. package/dist/index.js +18 -43
  18. package/dist/message.d.ts +157 -0
  19. package/dist/message.js +786 -0
  20. package/dist/realtime.d.ts +92 -0
  21. package/dist/realtime.js +222 -0
  22. package/dist/render.d.ts +22 -0
  23. package/dist/render.js +273 -0
  24. package/dist/row-codec.d.ts +39 -0
  25. package/dist/row-codec.js +176 -0
  26. package/dist/segment.d.ts +18 -0
  27. package/dist/segment.js +105 -0
  28. package/dist/stream.d.ts +20 -0
  29. package/dist/stream.js +102 -0
  30. package/package.json +7 -59
  31. package/src/blob-ref.ts +135 -0
  32. package/src/bytes.ts +301 -0
  33. package/src/canonical-json.ts +20 -0
  34. package/src/constants.ts +7 -0
  35. package/src/crypto.ts +335 -0
  36. package/src/errors.ts +18 -0
  37. package/src/frames.ts +47 -0
  38. package/src/index.ts +18 -43
  39. package/src/message.ts +1024 -0
  40. package/src/realtime.ts +340 -0
  41. package/src/render.ts +325 -0
  42. package/src/row-codec.ts +265 -0
  43. package/src/segment.ts +150 -0
  44. package/src/stream.ts +128 -0
  45. package/dist/blobs.d.ts +0 -153
  46. package/dist/blobs.d.ts.map +0 -1
  47. package/dist/blobs.js +0 -47
  48. package/dist/blobs.js.map +0 -1
  49. package/dist/column-codecs.d.ts +0 -59
  50. package/dist/column-codecs.d.ts.map +0 -1
  51. package/dist/column-codecs.js +0 -159
  52. package/dist/column-codecs.js.map +0 -1
  53. package/dist/conflict.d.ts +0 -22
  54. package/dist/conflict.d.ts.map +0 -1
  55. package/dist/conflict.js +0 -81
  56. package/dist/conflict.js.map +0 -1
  57. package/dist/database.d.ts +0 -7
  58. package/dist/database.d.ts.map +0 -1
  59. package/dist/database.js +0 -14
  60. package/dist/database.js.map +0 -1
  61. package/dist/dialect.d.ts +0 -7
  62. package/dist/dialect.d.ts.map +0 -1
  63. package/dist/dialect.js +0 -2
  64. package/dist/dialect.js.map +0 -1
  65. package/dist/error-responses.d.ts +0 -393
  66. package/dist/error-responses.d.ts.map +0 -1
  67. package/dist/error-responses.js +0 -393
  68. package/dist/error-responses.js.map +0 -1
  69. package/dist/http/api-client.d.ts +0 -11
  70. package/dist/http/api-client.d.ts.map +0 -1
  71. package/dist/http/api-client.js +0 -30
  72. package/dist/http/api-client.js.map +0 -1
  73. package/dist/http/blob.d.ts +0 -6
  74. package/dist/http/blob.d.ts.map +0 -1
  75. package/dist/http/blob.js +0 -46
  76. package/dist/http/blob.js.map +0 -1
  77. package/dist/http/generated/api.d.ts +0 -5241
  78. package/dist/http/generated/api.d.ts.map +0 -1
  79. package/dist/http/generated/api.js +0 -6
  80. package/dist/http/generated/api.js.map +0 -1
  81. package/dist/http/index.d.ts +0 -18
  82. package/dist/http/index.d.ts.map +0 -1
  83. package/dist/http/index.js +0 -212
  84. package/dist/http/index.js.map +0 -1
  85. package/dist/http/shared.d.ts +0 -45
  86. package/dist/http/shared.d.ts.map +0 -1
  87. package/dist/http/shared.js +0 -122
  88. package/dist/http/shared.js.map +0 -1
  89. package/dist/http/transport-client.d.ts +0 -31
  90. package/dist/http/transport-client.d.ts.map +0 -1
  91. package/dist/http/transport-client.js +0 -193
  92. package/dist/http/transport-client.js.map +0 -1
  93. package/dist/index.d.ts.map +0 -1
  94. package/dist/index.js.map +0 -1
  95. package/dist/kysely-column-codecs.d.ts +0 -31
  96. package/dist/kysely-column-codecs.d.ts.map +0 -1
  97. package/dist/kysely-column-codecs.js +0 -452
  98. package/dist/kysely-column-codecs.js.map +0 -1
  99. package/dist/logger.d.ts +0 -29
  100. package/dist/logger.d.ts.map +0 -1
  101. package/dist/logger.js +0 -26
  102. package/dist/logger.js.map +0 -1
  103. package/dist/proxy/index.d.ts +0 -54
  104. package/dist/proxy/index.d.ts.map +0 -1
  105. package/dist/proxy/index.js +0 -7
  106. package/dist/proxy/index.js.map +0 -1
  107. package/dist/schemas/blobs.d.ts +0 -82
  108. package/dist/schemas/blobs.d.ts.map +0 -1
  109. package/dist/schemas/blobs.js +0 -64
  110. package/dist/schemas/blobs.js.map +0 -1
  111. package/dist/schemas/common.d.ts +0 -100
  112. package/dist/schemas/common.d.ts.map +0 -1
  113. package/dist/schemas/common.js +0 -64
  114. package/dist/schemas/common.js.map +0 -1
  115. package/dist/schemas/index.d.ts +0 -7
  116. package/dist/schemas/index.d.ts.map +0 -1
  117. package/dist/schemas/index.js +0 -7
  118. package/dist/schemas/index.js.map +0 -1
  119. package/dist/schemas/sync.d.ts +0 -1065
  120. package/dist/schemas/sync.d.ts.map +0 -1
  121. package/dist/schemas/sync.js +0 -361
  122. package/dist/schemas/sync.js.map +0 -1
  123. package/dist/scopes/index.d.ts +0 -113
  124. package/dist/scopes/index.d.ts.map +0 -1
  125. package/dist/scopes/index.js +0 -103
  126. package/dist/scopes/index.js.map +0 -1
  127. package/dist/sentry.d.ts +0 -31
  128. package/dist/sentry.d.ts.map +0 -1
  129. package/dist/sentry.js +0 -147
  130. package/dist/sentry.js.map +0 -1
  131. package/dist/snapshot-chunks.d.ts +0 -110
  132. package/dist/snapshot-chunks.d.ts.map +0 -1
  133. package/dist/snapshot-chunks.js +0 -682
  134. package/dist/snapshot-chunks.js.map +0 -1
  135. package/dist/sync-packs.d.ts +0 -33
  136. package/dist/sync-packs.d.ts.map +0 -1
  137. package/dist/sync-packs.js +0 -821
  138. package/dist/sync-packs.js.map +0 -1
  139. package/dist/telemetry.d.ts +0 -114
  140. package/dist/telemetry.d.ts.map +0 -1
  141. package/dist/telemetry.js +0 -114
  142. package/dist/telemetry.js.map +0 -1
  143. package/dist/transforms.d.ts +0 -146
  144. package/dist/transforms.d.ts.map +0 -1
  145. package/dist/transforms.js +0 -155
  146. package/dist/transforms.js.map +0 -1
  147. package/dist/types.d.ts +0 -210
  148. package/dist/types.d.ts.map +0 -1
  149. package/dist/types.js +0 -20
  150. package/dist/types.js.map +0 -1
  151. package/dist/utils/bytes.d.ts +0 -4
  152. package/dist/utils/bytes.d.ts.map +0 -1
  153. package/dist/utils/bytes.js +0 -66
  154. package/dist/utils/bytes.js.map +0 -1
  155. package/dist/utils/compression.d.ts +0 -22
  156. package/dist/utils/compression.d.ts.map +0 -1
  157. package/dist/utils/compression.js +0 -129
  158. package/dist/utils/compression.js.map +0 -1
  159. package/dist/utils/crypto.d.ts +0 -13
  160. package/dist/utils/crypto.d.ts.map +0 -1
  161. package/dist/utils/crypto.js +0 -107
  162. package/dist/utils/crypto.js.map +0 -1
  163. package/dist/utils/id.d.ts +0 -3
  164. package/dist/utils/id.d.ts.map +0 -1
  165. package/dist/utils/id.js +0 -25
  166. package/dist/utils/id.js.map +0 -1
  167. package/dist/utils/index.d.ts +0 -10
  168. package/dist/utils/index.d.ts.map +0 -1
  169. package/dist/utils/index.js +0 -10
  170. package/dist/utils/index.js.map +0 -1
  171. package/dist/utils/internal-runtime.d.ts +0 -16
  172. package/dist/utils/internal-runtime.d.ts.map +0 -1
  173. package/dist/utils/internal-runtime.js +0 -14
  174. package/dist/utils/internal-runtime.js.map +0 -1
  175. package/dist/utils/object.d.ts +0 -2
  176. package/dist/utils/object.d.ts.map +0 -1
  177. package/dist/utils/object.js +0 -4
  178. package/dist/utils/object.js.map +0 -1
  179. package/dist/utils/realtime-change-index.d.ts +0 -9
  180. package/dist/utils/realtime-change-index.d.ts.map +0 -1
  181. package/dist/utils/realtime-change-index.js +0 -36
  182. package/dist/utils/realtime-change-index.js.map +0 -1
  183. package/dist/utils/realtime-connection-registry.d.ts +0 -40
  184. package/dist/utils/realtime-connection-registry.d.ts.map +0 -1
  185. package/dist/utils/realtime-connection-registry.js +0 -237
  186. package/dist/utils/realtime-connection-registry.js.map +0 -1
  187. package/dist/utils/table-registry.d.ts +0 -10
  188. package/dist/utils/table-registry.d.ts.map +0 -1
  189. package/dist/utils/table-registry.js +0 -54
  190. package/dist/utils/table-registry.js.map +0 -1
  191. package/dist/utils/url.d.ts +0 -3
  192. package/dist/utils/url.d.ts.map +0 -1
  193. package/dist/utils/url.js +0 -20
  194. package/dist/utils/url.js.map +0 -1
  195. package/src/blobs.ts +0 -219
  196. package/src/column-codecs.ts +0 -262
  197. package/src/conflict.ts +0 -92
  198. package/src/database.ts +0 -21
  199. package/src/dialect.ts +0 -8
  200. package/src/error-responses.ts +0 -423
  201. package/src/http/api-client.ts +0 -39
  202. package/src/http/blob.ts +0 -95
  203. package/src/http/generated/api.ts +0 -5241
  204. package/src/http/index.ts +0 -365
  205. package/src/http/shared.ts +0 -220
  206. package/src/http/transport-client.ts +0 -314
  207. package/src/kysely-column-codecs.ts +0 -585
  208. package/src/logger.ts +0 -38
  209. package/src/proxy/index.ts +0 -57
  210. package/src/schemas/blobs.ts +0 -110
  211. package/src/schemas/common.ts +0 -89
  212. package/src/schemas/index.ts +0 -7
  213. package/src/schemas/sync.ts +0 -517
  214. package/src/scopes/index.ts +0 -237
  215. package/src/sentry.ts +0 -200
  216. package/src/snapshot-chunks.ts +0 -964
  217. package/src/sync-packs.ts +0 -1096
  218. package/src/telemetry.ts +0 -243
  219. package/src/transforms.ts +0 -256
  220. package/src/types.ts +0 -267
  221. package/src/utils/bytes.ts +0 -75
  222. package/src/utils/compression.ts +0 -187
  223. package/src/utils/crypto.ts +0 -146
  224. package/src/utils/id.ts +0 -34
  225. package/src/utils/index.ts +0 -9
  226. package/src/utils/internal-runtime.ts +0 -39
  227. package/src/utils/object.ts +0 -3
  228. package/src/utils/realtime-change-index.ts +0 -44
  229. package/src/utils/realtime-connection-registry.ts +0 -286
  230. package/src/utils/table-registry.ts +0 -67
  231. package/src/utils/url.ts +0 -29
@@ -1,110 +0,0 @@
1
- /**
2
- * @syncular/core - Blob Zod schemas
3
- *
4
- * Runtime validation schemas for blob types.
5
- */
6
-
7
- import { z } from 'zod';
8
- import type { SyncularErrorCode } from '../error-responses';
9
-
10
- // ============================================================================
11
- // Blob Reference Schema
12
- // ============================================================================
13
-
14
- export const BlobRefSchema = z.object({
15
- hash: z.string().regex(/^sha256:[0-9a-f]{64}$/i, 'Invalid blob hash format'),
16
- size: z.number().int().min(0),
17
- mimeType: z.string().min(1),
18
- encrypted: z.boolean().optional(),
19
- keyId: z.string().optional(),
20
- });
21
-
22
- export type BlobRef = z.infer<typeof BlobRefSchema>;
23
-
24
- // ============================================================================
25
- // Blob Metadata Schema
26
- // ============================================================================
27
-
28
- export const BlobMetadataSchema = z.object({
29
- hash: z.string().regex(/^sha256:[0-9a-f]{64}$/i),
30
- size: z.number().int().min(0),
31
- mimeType: z.string().min(1),
32
- createdAt: z.string(),
33
- expiresAt: z.string().optional(),
34
- uploadComplete: z.boolean(),
35
- });
36
-
37
- export type BlobMetadata = z.infer<typeof BlobMetadataSchema>;
38
-
39
- // ============================================================================
40
- // Upload Request/Response Schemas
41
- // ============================================================================
42
-
43
- export const BlobUploadInitRequestSchema = z.object({
44
- hash: z.string().regex(/^sha256:[0-9a-f]{64}$/i, 'Invalid blob hash format'),
45
- size: z.number().int().min(0),
46
- mimeType: z.string().min(1),
47
- });
48
-
49
- export type BlobUploadInitRequest = z.infer<typeof BlobUploadInitRequestSchema>;
50
-
51
- export const BlobUploadInitResponseSchema = z.object({
52
- exists: z.boolean(),
53
- uploadId: z.string().optional(),
54
- uploadUrl: z.string().url().optional(),
55
- uploadMethod: z.enum(['PUT', 'POST']).optional(),
56
- uploadHeaders: z.record(z.string(), z.string()).optional(),
57
- chunkSize: z.number().int().optional(),
58
- });
59
-
60
- export type BlobUploadInitResponse = z.infer<
61
- typeof BlobUploadInitResponseSchema
62
- >;
63
-
64
- export const BlobUploadCompleteRequestSchema = z.object({
65
- hash: z.string().regex(/^sha256:[0-9a-f]{64}$/i),
66
- });
67
-
68
- export type BlobUploadCompleteRequest = z.infer<
69
- typeof BlobUploadCompleteRequestSchema
70
- >;
71
-
72
- export const BlobUploadCompleteResponseSchema = z.object({
73
- ok: z.boolean(),
74
- metadata: BlobMetadataSchema.optional(),
75
- error: z.string().optional(),
76
- code: z.string().optional(),
77
- });
78
-
79
- type BlobUploadCompleteResponseBase = z.infer<
80
- typeof BlobUploadCompleteResponseSchema
81
- >;
82
-
83
- export type BlobUploadCompleteResponse = Omit<
84
- BlobUploadCompleteResponseBase,
85
- 'code'
86
- > & {
87
- code?: SyncularErrorCode;
88
- };
89
-
90
- // ============================================================================
91
- // Download URL Request/Response Schemas
92
- // ============================================================================
93
-
94
- export const BlobDownloadUrlRequestSchema = z.object({
95
- hash: z.string().regex(/^sha256:[0-9a-f]{64}$/i),
96
- });
97
-
98
- export type BlobDownloadUrlRequest = z.infer<
99
- typeof BlobDownloadUrlRequestSchema
100
- >;
101
-
102
- export const BlobDownloadUrlResponseSchema = z.object({
103
- url: z.string().url(),
104
- expiresAt: z.string(),
105
- metadata: BlobMetadataSchema,
106
- });
107
-
108
- export type BlobDownloadUrlResponse = z.infer<
109
- typeof BlobDownloadUrlResponseSchema
110
- >;
@@ -1,89 +0,0 @@
1
- /**
2
- * @syncular/core - Common Zod schemas
3
- */
4
-
5
- import { z } from 'zod';
6
-
7
- // ============================================================================
8
- // Error Response Schemas
9
- // ============================================================================
10
-
11
- export const SyncularErrorCategorySchema = z.enum([
12
- 'auth-required',
13
- 'forbidden',
14
- 'conflict',
15
- 'scope-revoked',
16
- 'offline',
17
- 'invalid-request',
18
- 'not-found',
19
- 'schema-mismatch',
20
- 'integrity-rejected',
21
- 'rate-limited',
22
- 'limit-exceeded',
23
- 'transport',
24
- 'storage',
25
- 'blob',
26
- 'server',
27
- 'internal',
28
- ]);
29
-
30
- export const SyncularErrorRecommendedActionSchema = z.enum([
31
- 'refreshAuth',
32
- 'checkPermissions',
33
- 'fixRequest',
34
- 'resetClientId',
35
- 'splitBatch',
36
- 'reduceInput',
37
- 'retryLater',
38
- 'forceResync',
39
- 'regenerateClient',
40
- 'upgradeClient',
41
- 'inspectStorage',
42
- 'inspectServer',
43
- 'resolveConflict',
44
- 'recreateClient',
45
- ]);
46
-
47
- export const ErrorResponseSchema = z.object({
48
- error: z.string(),
49
- message: z.string().optional(),
50
- code: z.string().optional(),
51
- category: SyncularErrorCategorySchema.optional(),
52
- retryable: z.boolean().optional(),
53
- recommendedAction: SyncularErrorRecommendedActionSchema.optional(),
54
- details: z.record(z.string(), z.unknown()).optional(),
55
- });
56
-
57
- export type ErrorResponse = z.infer<typeof ErrorResponseSchema>;
58
- export type SyncularErrorCategory = z.infer<typeof SyncularErrorCategorySchema>;
59
- export type SyncularErrorRecommendedAction = z.infer<
60
- typeof SyncularErrorRecommendedActionSchema
61
- >;
62
-
63
- // ============================================================================
64
- // Pagination Schemas
65
- // ============================================================================
66
-
67
- export const PaginationQuerySchema = z.object({
68
- limit: z.coerce.number().int().min(1).max(100).default(50),
69
- offset: z.coerce.number().int().min(0).default(0),
70
- });
71
-
72
- export type PaginationQuery = z.infer<typeof PaginationQuerySchema>;
73
-
74
- export const PaginatedResponseSchema = <T extends z.ZodTypeAny>(
75
- itemSchema: T
76
- ) =>
77
- z.object({
78
- items: z.array(itemSchema),
79
- total: z.number().int(),
80
- offset: z.number().int(),
81
- limit: z.number().int(),
82
- });
83
-
84
- export type PaginatedResponse<T> = {
85
- items: T[];
86
- total: number;
87
- offset: number;
88
- limit: number;
89
- };
@@ -1,7 +0,0 @@
1
- /**
2
- * @syncular/core - Schema exports
3
- */
4
-
5
- export * from './blobs';
6
- export * from './common';
7
- export * from './sync';