@syncular/core 0.0.6-96 → 0.1.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.
Files changed (159) hide show
  1. package/dist/blobs.d.ts +14 -7
  2. package/dist/blobs.d.ts.map +1 -1
  3. package/dist/blobs.js.map +1 -1
  4. package/dist/column-codecs.d.ts +3 -0
  5. package/dist/column-codecs.d.ts.map +1 -1
  6. package/dist/column-codecs.js +32 -4
  7. package/dist/column-codecs.js.map +1 -1
  8. package/dist/conflict.js.map +1 -1
  9. package/dist/database.js +1 -1
  10. package/dist/database.js.map +1 -1
  11. package/dist/error-responses.d.ts +393 -0
  12. package/dist/error-responses.d.ts.map +1 -0
  13. package/dist/error-responses.js +393 -0
  14. package/dist/error-responses.js.map +1 -0
  15. package/dist/http/api-client.d.ts +11 -0
  16. package/dist/http/api-client.d.ts.map +1 -0
  17. package/dist/http/api-client.js +30 -0
  18. package/dist/http/api-client.js.map +1 -0
  19. package/dist/http/blob.d.ts +6 -0
  20. package/dist/http/blob.d.ts.map +1 -0
  21. package/dist/http/blob.js +46 -0
  22. package/dist/http/blob.js.map +1 -0
  23. package/dist/http/generated/api.d.ts +5241 -0
  24. package/dist/http/generated/api.d.ts.map +1 -0
  25. package/dist/http/generated/api.js +6 -0
  26. package/dist/http/generated/api.js.map +1 -0
  27. package/dist/http/index.d.ts +18 -0
  28. package/dist/http/index.d.ts.map +1 -0
  29. package/dist/http/index.js +212 -0
  30. package/dist/http/index.js.map +1 -0
  31. package/dist/http/shared.d.ts +45 -0
  32. package/dist/http/shared.d.ts.map +1 -0
  33. package/dist/http/shared.js +122 -0
  34. package/dist/http/shared.js.map +1 -0
  35. package/dist/http/transport-client.d.ts +31 -0
  36. package/dist/http/transport-client.d.ts.map +1 -0
  37. package/dist/http/transport-client.js +193 -0
  38. package/dist/http/transport-client.js.map +1 -0
  39. package/dist/index.d.ts +2 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +19 -15
  42. package/dist/index.js.map +1 -1
  43. package/dist/kysely-column-codecs.d.ts +17 -1
  44. package/dist/kysely-column-codecs.d.ts.map +1 -1
  45. package/dist/kysely-column-codecs.js +56 -70
  46. package/dist/kysely-column-codecs.js.map +1 -1
  47. package/dist/logger.js +1 -1
  48. package/dist/logger.js.map +1 -1
  49. package/dist/schemas/blobs.d.ts +7 -1
  50. package/dist/schemas/blobs.d.ts.map +1 -1
  51. package/dist/schemas/blobs.js +1 -0
  52. package/dist/schemas/blobs.js.map +1 -1
  53. package/dist/schemas/common.d.ts +73 -1
  54. package/dist/schemas/common.d.ts.map +1 -1
  55. package/dist/schemas/common.js +38 -0
  56. package/dist/schemas/common.js.map +1 -1
  57. package/dist/schemas/index.js +3 -3
  58. package/dist/schemas/sync.d.ts +712 -38
  59. package/dist/schemas/sync.d.ts.map +1 -1
  60. package/dist/schemas/sync.js +209 -5
  61. package/dist/schemas/sync.js.map +1 -1
  62. package/dist/scopes/index.d.ts +5 -0
  63. package/dist/scopes/index.d.ts.map +1 -1
  64. package/dist/scopes/index.js +27 -0
  65. package/dist/scopes/index.js.map +1 -1
  66. package/dist/sentry.d.ts +31 -0
  67. package/dist/sentry.d.ts.map +1 -0
  68. package/dist/sentry.js +147 -0
  69. package/dist/sentry.js.map +1 -0
  70. package/dist/snapshot-chunks.d.ts +104 -20
  71. package/dist/snapshot-chunks.d.ts.map +1 -1
  72. package/dist/snapshot-chunks.js +665 -72
  73. package/dist/snapshot-chunks.js.map +1 -1
  74. package/dist/sync-packs.d.ts +33 -0
  75. package/dist/sync-packs.d.ts.map +1 -0
  76. package/dist/sync-packs.js +821 -0
  77. package/dist/sync-packs.js.map +1 -0
  78. package/dist/telemetry.d.ts.map +1 -1
  79. package/dist/telemetry.js +3 -2
  80. package/dist/telemetry.js.map +1 -1
  81. package/dist/transforms.js.map +1 -1
  82. package/dist/types.d.ts +48 -7
  83. package/dist/types.d.ts.map +1 -1
  84. package/dist/types.js.map +1 -1
  85. package/dist/utils/bytes.d.ts +4 -0
  86. package/dist/utils/bytes.d.ts.map +1 -0
  87. package/dist/utils/bytes.js +66 -0
  88. package/dist/utils/bytes.js.map +1 -0
  89. package/dist/utils/compression.d.ts +11 -3
  90. package/dist/utils/compression.d.ts.map +1 -1
  91. package/dist/utils/compression.js +102 -50
  92. package/dist/utils/compression.js.map +1 -1
  93. package/dist/utils/crypto.d.ts +7 -1
  94. package/dist/utils/crypto.d.ts.map +1 -1
  95. package/dist/utils/crypto.js +89 -7
  96. package/dist/utils/crypto.js.map +1 -1
  97. package/dist/utils/id.d.ts.map +1 -1
  98. package/dist/utils/id.js +4 -1
  99. package/dist/utils/id.js.map +1 -1
  100. package/dist/utils/index.d.ts +5 -0
  101. package/dist/utils/index.d.ts.map +1 -1
  102. package/dist/utils/index.js +9 -4
  103. package/dist/utils/index.js.map +1 -1
  104. package/dist/utils/internal-runtime.d.ts +16 -0
  105. package/dist/utils/internal-runtime.d.ts.map +1 -0
  106. package/dist/utils/internal-runtime.js +14 -0
  107. package/dist/utils/internal-runtime.js.map +1 -0
  108. package/dist/utils/object.js.map +1 -1
  109. package/dist/utils/realtime-change-index.d.ts +9 -0
  110. package/dist/utils/realtime-change-index.d.ts.map +1 -0
  111. package/dist/utils/realtime-change-index.js +36 -0
  112. package/dist/utils/realtime-change-index.js.map +1 -0
  113. package/dist/utils/realtime-connection-registry.d.ts +40 -0
  114. package/dist/utils/realtime-connection-registry.d.ts.map +1 -0
  115. package/dist/utils/realtime-connection-registry.js +237 -0
  116. package/dist/utils/realtime-connection-registry.js.map +1 -0
  117. package/dist/utils/table-registry.d.ts +10 -0
  118. package/dist/utils/table-registry.d.ts.map +1 -0
  119. package/dist/utils/table-registry.js +54 -0
  120. package/dist/utils/table-registry.js.map +1 -0
  121. package/dist/utils/url.d.ts +3 -0
  122. package/dist/utils/url.d.ts.map +1 -0
  123. package/dist/utils/url.js +20 -0
  124. package/dist/utils/url.js.map +1 -0
  125. package/package.json +52 -7
  126. package/src/blobs.ts +24 -7
  127. package/src/column-codecs.ts +36 -8
  128. package/src/error-responses.ts +423 -0
  129. package/src/http/api-client.ts +39 -0
  130. package/src/http/blob.ts +95 -0
  131. package/src/http/generated/api.ts +5241 -0
  132. package/src/http/index.ts +365 -0
  133. package/src/http/shared.ts +220 -0
  134. package/src/http/transport-client.ts +314 -0
  135. package/src/index.ts +4 -0
  136. package/src/kysely-column-codecs.ts +81 -86
  137. package/src/schemas/blobs.ts +10 -1
  138. package/src/schemas/common.ts +44 -0
  139. package/src/schemas/sync.ts +298 -7
  140. package/src/scopes/index.ts +42 -0
  141. package/src/sentry.ts +200 -0
  142. package/src/snapshot-chunks.ts +921 -69
  143. package/src/sync-packs.ts +1096 -0
  144. package/src/telemetry.ts +7 -2
  145. package/src/types.ts +63 -8
  146. package/src/utils/bytes.ts +75 -0
  147. package/src/utils/compression.ts +147 -51
  148. package/src/utils/crypto.ts +120 -7
  149. package/src/utils/id.ts +11 -1
  150. package/src/utils/index.ts +5 -0
  151. package/src/utils/internal-runtime.ts +39 -0
  152. package/src/utils/realtime-change-index.ts +44 -0
  153. package/src/utils/realtime-connection-registry.ts +286 -0
  154. package/src/utils/table-registry.ts +67 -0
  155. package/src/utils/url.ts +29 -0
  156. package/src/__tests__/compression.test.ts +0 -54
  157. package/src/__tests__/conflict.test.ts +0 -325
  158. package/src/__tests__/telemetry.test.ts +0 -170
  159. package/src/__tests__/utils.test.ts +0 -27
@@ -0,0 +1,393 @@
1
+ export const SYNCULAR_ERROR_DEFINITIONS = {
2
+ 'sync.auth_required': {
3
+ category: 'auth-required',
4
+ retryable: true,
5
+ recommendedAction: 'refreshAuth',
6
+ message: 'Authentication is required.',
7
+ },
8
+ 'sync.auth_lease_missing': {
9
+ category: 'auth-required',
10
+ retryable: true,
11
+ recommendedAction: 'refreshAuth',
12
+ message: 'The queued commit is missing required auth lease provenance.',
13
+ },
14
+ 'sync.auth_lease_invalid': {
15
+ category: 'auth-required',
16
+ retryable: true,
17
+ recommendedAction: 'refreshAuth',
18
+ message: 'The queued commit auth lease provenance is invalid.',
19
+ },
20
+ 'sync.auth_lease_expired': {
21
+ category: 'auth-required',
22
+ retryable: true,
23
+ recommendedAction: 'refreshAuth',
24
+ message: 'The queued commit auth lease expired before replay.',
25
+ },
26
+ 'sync.auth_lease_schema_mismatch': {
27
+ category: 'schema-mismatch',
28
+ retryable: false,
29
+ recommendedAction: 'regenerateClient',
30
+ message: 'The queued commit auth lease was issued for an incompatible schema.',
31
+ },
32
+ 'sync.auth_lease_scope_mismatch': {
33
+ category: 'forbidden',
34
+ retryable: false,
35
+ recommendedAction: 'checkPermissions',
36
+ message: 'The queued commit auth lease does not cover the pushed scopes.',
37
+ },
38
+ 'sync.auth_lease_scope_revoked': {
39
+ category: 'scope-revoked',
40
+ retryable: false,
41
+ recommendedAction: 'checkPermissions',
42
+ message: 'The queued commit auth lease scope was revoked.',
43
+ },
44
+ 'sync.auth_lease_business_rejected': {
45
+ category: 'conflict',
46
+ retryable: false,
47
+ recommendedAction: 'resolveConflict',
48
+ message: 'The queued commit auth lease was rejected by application policy.',
49
+ },
50
+ 'sync.forbidden': {
51
+ category: 'forbidden',
52
+ retryable: false,
53
+ recommendedAction: 'checkPermissions',
54
+ message: 'The authenticated actor is not allowed to access this resource.',
55
+ },
56
+ 'sync.invalid_request': {
57
+ category: 'invalid-request',
58
+ retryable: false,
59
+ recommendedAction: 'fixRequest',
60
+ message: 'The sync request is invalid.',
61
+ },
62
+ 'sync.invalid_client_id': {
63
+ category: 'invalid-request',
64
+ retryable: false,
65
+ recommendedAction: 'resetClientId',
66
+ message: 'The client id cannot be used for this actor.',
67
+ },
68
+ 'sync.invalid_subscription': {
69
+ category: 'invalid-request',
70
+ retryable: false,
71
+ recommendedAction: 'fixRequest',
72
+ message: 'The subscription is invalid.',
73
+ },
74
+ 'sync.empty_commit': {
75
+ category: 'invalid-request',
76
+ retryable: false,
77
+ recommendedAction: 'fixRequest',
78
+ message: 'The pushed commit has no operations.',
79
+ },
80
+ 'sync.unknown_table': {
81
+ category: 'schema-mismatch',
82
+ retryable: false,
83
+ recommendedAction: 'regenerateClient',
84
+ message: 'The operation targets a table unknown to this server.',
85
+ },
86
+ 'sync.unsupported_operation': {
87
+ category: 'invalid-request',
88
+ retryable: false,
89
+ recommendedAction: 'fixRequest',
90
+ message: 'The operation type is not supported for this table.',
91
+ },
92
+ 'sync.row_missing': {
93
+ category: 'not-found',
94
+ retryable: false,
95
+ recommendedAction: 'forceResync',
96
+ message: 'The operation base row is missing on the server.',
97
+ },
98
+ 'sync.version_conflict': {
99
+ category: 'conflict',
100
+ retryable: false,
101
+ recommendedAction: 'resolveConflict',
102
+ message: 'The operation conflicts with a newer server row version.',
103
+ },
104
+ 'sync.constraint_violation': {
105
+ category: 'invalid-request',
106
+ retryable: false,
107
+ recommendedAction: 'fixRequest',
108
+ message: 'The operation violates a server-side data constraint.',
109
+ },
110
+ 'sync.missing_scopes': {
111
+ category: 'internal',
112
+ retryable: false,
113
+ recommendedAction: 'inspectServer',
114
+ message: 'The server handler emitted a change without scope metadata.',
115
+ },
116
+ 'sync.idempotency_cache_miss': {
117
+ category: 'internal',
118
+ retryable: true,
119
+ recommendedAction: 'retryLater',
120
+ message: 'The server could not read the cached idempotent push result.',
121
+ },
122
+ 'sync.too_many_operations': {
123
+ category: 'invalid-request',
124
+ retryable: false,
125
+ recommendedAction: 'splitBatch',
126
+ message: 'The push contains too many operations.',
127
+ },
128
+ 'sync.not_found': {
129
+ category: 'not-found',
130
+ retryable: false,
131
+ recommendedAction: 'forceResync',
132
+ message: 'The requested sync resource was not found.',
133
+ },
134
+ 'sync.rate_limited': {
135
+ category: 'rate-limited',
136
+ retryable: true,
137
+ recommendedAction: 'retryLater',
138
+ message: 'The request was rate limited.',
139
+ },
140
+ 'sync.schema_mismatch': {
141
+ category: 'schema-mismatch',
142
+ retryable: false,
143
+ recommendedAction: 'regenerateClient',
144
+ message: 'The generated client schema is not compatible with this server.',
145
+ },
146
+ 'sync.client_schema_unsupported': {
147
+ category: 'schema-mismatch',
148
+ retryable: false,
149
+ recommendedAction: 'upgradeClient',
150
+ message: 'The client schema version is no longer supported by this server.',
151
+ },
152
+ 'sync.integrity_rejected': {
153
+ category: 'integrity-rejected',
154
+ retryable: false,
155
+ recommendedAction: 'forceResync',
156
+ message: 'Sync data failed integrity verification.',
157
+ },
158
+ 'sync.scope_revoked': {
159
+ category: 'scope-revoked',
160
+ retryable: false,
161
+ recommendedAction: 'checkPermissions',
162
+ message: 'A synced subscription scope was revoked.',
163
+ },
164
+ 'sync.offline': {
165
+ category: 'offline',
166
+ retryable: true,
167
+ recommendedAction: 'retryLater',
168
+ message: 'The client is offline.',
169
+ },
170
+ 'sync.websocket_not_configured': {
171
+ category: 'server',
172
+ retryable: false,
173
+ recommendedAction: 'inspectServer',
174
+ message: 'The realtime websocket route is not configured.',
175
+ },
176
+ 'sync.websocket_connection_limit': {
177
+ category: 'rate-limited',
178
+ retryable: true,
179
+ recommendedAction: 'retryLater',
180
+ message: 'The realtime websocket connection limit was reached.',
181
+ },
182
+ 'sync.transport_failed': {
183
+ category: 'transport',
184
+ retryable: true,
185
+ recommendedAction: 'retryLater',
186
+ message: 'The sync transport failed.',
187
+ },
188
+ 'runtime.busy': {
189
+ category: 'rate-limited',
190
+ retryable: true,
191
+ recommendedAction: 'retryLater',
192
+ message: 'The Syncular runtime is busy.',
193
+ },
194
+ 'runtime.limit_exceeded': {
195
+ category: 'limit-exceeded',
196
+ retryable: false,
197
+ recommendedAction: 'reduceInput',
198
+ message: 'A Syncular runtime limit was exceeded.',
199
+ },
200
+ 'runtime.config_invalid': {
201
+ category: 'invalid-request',
202
+ retryable: false,
203
+ recommendedAction: 'fixRequest',
204
+ message: 'The Syncular runtime configuration is invalid.',
205
+ },
206
+ 'runtime.codegen_mismatch': {
207
+ category: 'schema-mismatch',
208
+ retryable: false,
209
+ recommendedAction: 'regenerateClient',
210
+ message: 'The generated client code is not compatible with the runtime.',
211
+ },
212
+ 'runtime.internal': {
213
+ category: 'internal',
214
+ retryable: false,
215
+ recommendedAction: 'inspectServer',
216
+ message: 'The Syncular runtime failed internally.',
217
+ },
218
+ 'storage.failed': {
219
+ category: 'storage',
220
+ retryable: false,
221
+ recommendedAction: 'inspectStorage',
222
+ message: 'The local Syncular storage operation failed.',
223
+ },
224
+ 'worker.closed': {
225
+ category: 'invalid-request',
226
+ retryable: false,
227
+ recommendedAction: 'fixRequest',
228
+ message: 'The Syncular browser worker client is closed.',
229
+ },
230
+ 'worker.not_open': {
231
+ category: 'invalid-request',
232
+ retryable: false,
233
+ recommendedAction: 'fixRequest',
234
+ message: 'The Syncular browser worker is not open.',
235
+ },
236
+ 'worker.protocol_mismatch': {
237
+ category: 'schema-mismatch',
238
+ retryable: false,
239
+ recommendedAction: 'regenerateClient',
240
+ message: 'The Syncular browser worker protocol is incompatible.',
241
+ },
242
+ 'worker.request_timeout': {
243
+ category: 'rate-limited',
244
+ retryable: true,
245
+ recommendedAction: 'retryLater',
246
+ message: 'The Syncular browser worker request timed out.',
247
+ },
248
+ 'worker.failed': {
249
+ category: 'internal',
250
+ retryable: false,
251
+ recommendedAction: 'recreateClient',
252
+ message: 'The Syncular browser worker failed.',
253
+ },
254
+ 'worker.message_unreadable': {
255
+ category: 'internal',
256
+ retryable: false,
257
+ recommendedAction: 'recreateClient',
258
+ message: 'The Syncular browser worker sent an unreadable message.',
259
+ },
260
+ 'console.auth_required': {
261
+ category: 'auth-required',
262
+ retryable: true,
263
+ recommendedAction: 'refreshAuth',
264
+ message: 'Console authentication is required.',
265
+ },
266
+ 'console.forbidden_origin': {
267
+ category: 'forbidden',
268
+ retryable: false,
269
+ recommendedAction: 'checkPermissions',
270
+ message: 'The console websocket origin is not allowed.',
271
+ },
272
+ 'console.invalid_request': {
273
+ category: 'invalid-request',
274
+ retryable: false,
275
+ recommendedAction: 'fixRequest',
276
+ message: 'The console request is invalid.',
277
+ },
278
+ 'console.schema_unavailable': {
279
+ category: 'server',
280
+ retryable: true,
281
+ recommendedAction: 'retryLater',
282
+ message: 'The console schema is not available.',
283
+ },
284
+ 'console.not_found': {
285
+ category: 'not-found',
286
+ retryable: false,
287
+ recommendedAction: 'inspectServer',
288
+ message: 'The requested console resource was not found.',
289
+ },
290
+ 'console.downstream_unavailable': {
291
+ category: 'server',
292
+ retryable: true,
293
+ recommendedAction: 'retryLater',
294
+ message: 'A console downstream instance is unavailable.',
295
+ },
296
+ 'console.downstream_invalid_response': {
297
+ category: 'server',
298
+ retryable: false,
299
+ recommendedAction: 'inspectServer',
300
+ message: 'A console downstream instance returned an invalid response.',
301
+ },
302
+ 'console.internal': {
303
+ category: 'internal',
304
+ retryable: false,
305
+ recommendedAction: 'inspectServer',
306
+ message: 'The console route failed internally.',
307
+ },
308
+ 'proxy.auth_required': {
309
+ category: 'auth-required',
310
+ retryable: true,
311
+ recommendedAction: 'refreshAuth',
312
+ message: 'Proxy authentication is required.',
313
+ },
314
+ 'proxy.forbidden_origin': {
315
+ category: 'forbidden',
316
+ retryable: false,
317
+ recommendedAction: 'checkPermissions',
318
+ message: 'The proxy websocket origin is not allowed.',
319
+ },
320
+ 'proxy.connection_limit': {
321
+ category: 'rate-limited',
322
+ retryable: true,
323
+ recommendedAction: 'retryLater',
324
+ message: 'The proxy websocket connection limit was reached.',
325
+ },
326
+ 'blob.invalid_request': {
327
+ category: 'blob',
328
+ retryable: false,
329
+ recommendedAction: 'fixRequest',
330
+ message: 'The blob request is invalid.',
331
+ },
332
+ 'blob.storage_not_configured': {
333
+ category: 'blob',
334
+ retryable: false,
335
+ recommendedAction: 'inspectServer',
336
+ message: 'Blob storage is not configured.',
337
+ },
338
+ 'blob.too_large': {
339
+ category: 'blob',
340
+ retryable: false,
341
+ recommendedAction: 'fixRequest',
342
+ message: 'The blob is too large.',
343
+ },
344
+ 'blob.not_found': {
345
+ category: 'blob',
346
+ retryable: false,
347
+ recommendedAction: 'fixRequest',
348
+ message: 'The blob was not found.',
349
+ },
350
+ 'blob.forbidden': {
351
+ category: 'forbidden',
352
+ retryable: false,
353
+ recommendedAction: 'checkPermissions',
354
+ message: 'The authenticated actor is not allowed to access this blob.',
355
+ },
356
+ 'blob.invalid_token': {
357
+ category: 'auth-required',
358
+ retryable: true,
359
+ recommendedAction: 'refreshAuth',
360
+ message: 'The blob token is invalid or expired.',
361
+ },
362
+ 'blob.upload_failed': {
363
+ category: 'blob',
364
+ retryable: true,
365
+ recommendedAction: 'retryLater',
366
+ message: 'The blob upload failed.',
367
+ },
368
+ 'blob.hash_mismatch': {
369
+ category: 'integrity-rejected',
370
+ retryable: false,
371
+ recommendedAction: 'fixRequest',
372
+ message: 'The blob content hash does not match.',
373
+ },
374
+ 'blob.size_mismatch': {
375
+ category: 'blob',
376
+ retryable: false,
377
+ recommendedAction: 'fixRequest',
378
+ message: 'The blob size does not match.',
379
+ },
380
+ };
381
+ export function createSyncularErrorResponse(code, options = {}) {
382
+ const definition = SYNCULAR_ERROR_DEFINITIONS[code];
383
+ return {
384
+ error: code,
385
+ code,
386
+ message: options.message ?? definition.message,
387
+ category: definition.category,
388
+ retryable: definition.retryable,
389
+ recommendedAction: definition.recommendedAction,
390
+ ...(options.details ? { details: options.details } : {}),
391
+ };
392
+ }
393
+ //# sourceMappingURL=error-responses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-responses.js","sourceRoot":"","sources":["../src/error-responses.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import createClient from 'openapi-fetch';
2
+ import type { paths } from './generated/api';
3
+ import type { ClientOptions } from './shared';
4
+ export type SyncClient = ReturnType<typeof createClient<paths>>;
5
+ /**
6
+ * Create a typed API client for the full Syncular API.
7
+ *
8
+ * Returns an openapi-fetch client with full type safety for all endpoints.
9
+ */
10
+ export declare function createApiClient(options: ClientOptions): SyncClient;
11
+ //# sourceMappingURL=api-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/http/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,UAAU,CA2BlE"}
@@ -0,0 +1,30 @@
1
+ import createClient from 'openapi-fetch';
2
+ /**
3
+ * Create a typed API client for the full Syncular API.
4
+ *
5
+ * Returns an openapi-fetch client with full type safety for all endpoints.
6
+ */
7
+ export function createApiClient(options) {
8
+ const client = createClient({
9
+ baseUrl: options.baseUrl,
10
+ ...(options.fetch && { fetch: options.fetch }),
11
+ });
12
+ const getHeaders = options.getHeaders;
13
+ const transportPath = options.transportPath ?? 'direct';
14
+ client.use({
15
+ async onRequest({ request }) {
16
+ if (getHeaders) {
17
+ const headers = await getHeaders();
18
+ for (const [key, value] of Object.entries(headers)) {
19
+ request.headers.set(key, value);
20
+ }
21
+ }
22
+ if (!request.headers.has('x-syncular-transport-path')) {
23
+ request.headers.set('x-syncular-transport-path', transportPath);
24
+ }
25
+ return request;
26
+ },
27
+ });
28
+ return client;
29
+ }
30
+ //# sourceMappingURL=api-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/http/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAMzC;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,OAAsB;IACpD,MAAM,MAAM,GAAG,YAAY,CAAQ;QACjC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;KAC/C,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,QAAQ,CAAC;IAExD,MAAM,CAAC,GAAG,CAAC;QACT,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;YACzB,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;gBACnC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC;gBACtD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,aAAa,CAAC,CAAC;YAClE,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { SyncTransport, SyncTransportBlobs } from '@syncular/core';
2
+ import { type HttpTransportSource } from './transport-client';
3
+ export declare function createHttpTransportBlobs(source: HttpTransportSource): SyncTransportBlobs;
4
+ export declare function ensureHttpTransportBlobs(transport: SyncTransport): SyncTransportBlobs | null;
5
+ export type { SyncClient } from './api-client';
6
+ //# sourceMappingURL=blob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob.d.ts","sourceRoot":"","sources":["../../src/http/blob.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAM5B,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,mBAAmB,GAC1B,kBAAkB,CA2DpB;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,aAAa,GACvB,kBAAkB,GAAG,IAAI,CAa3B;AAED,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { SyncTransportError } from '@syncular/core';
2
+ import { executeWithAuthRetry, getErrorMessage } from './shared';
3
+ import { createTransportApiClient, createTransportAuthRetryResolver, HTTP_TRANSPORT_SOURCE, } from './transport-client';
4
+ export function createHttpTransportBlobs(source) {
5
+ const client = createTransportApiClient(source);
6
+ const resolveAuthRetry = createTransportAuthRetryResolver(source);
7
+ return {
8
+ async initiateUpload(args) {
9
+ const { data, error, response } = await executeWithAuthRetry((signal) => client.initiateUpload(args, signal), undefined, 'blobInitiateUpload', resolveAuthRetry);
10
+ if (error || !data) {
11
+ throw new SyncTransportError(`Blob upload init failed: ${getErrorMessage(error) || response.statusText}`, response.status);
12
+ }
13
+ return data;
14
+ },
15
+ async completeUpload(hash) {
16
+ const { data, error } = await executeWithAuthRetry((signal) => client.completeUpload(hash, signal), undefined, 'blobCompleteUpload', resolveAuthRetry);
17
+ if (error || !data) {
18
+ return {
19
+ ok: false,
20
+ error: getErrorMessage(error) || 'Complete upload failed',
21
+ };
22
+ }
23
+ return data;
24
+ },
25
+ async getDownloadUrl(hash) {
26
+ const { data, error, response } = await executeWithAuthRetry((signal) => client.getDownloadUrl(hash, signal), undefined, 'blobGetDownloadUrl', resolveAuthRetry);
27
+ if (error || !data) {
28
+ throw new SyncTransportError(`Get download URL failed: ${getErrorMessage(error) || response.statusText}`, response.status);
29
+ }
30
+ return data;
31
+ },
32
+ };
33
+ }
34
+ export function ensureHttpTransportBlobs(transport) {
35
+ if (transport.blobs) {
36
+ return transport.blobs;
37
+ }
38
+ const source = transport[HTTP_TRANSPORT_SOURCE];
39
+ if (!source) {
40
+ return null;
41
+ }
42
+ const blobs = createHttpTransportBlobs(source);
43
+ transport.blobs = blobs;
44
+ return blobs;
45
+ }
46
+ //# sourceMappingURL=blob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob.js","sourceRoot":"","sources":["../../src/http/blob.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EAChC,qBAAqB,GAEtB,MAAM,oBAAoB,CAAC;AAM5B,MAAM,UAAU,wBAAwB,CACtC,MAA2B;IAE3B,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,gBAAgB,GAAG,gCAAgC,CAAC,MAAM,CAAC,CAAC;IAElE,OAAO;QACL,KAAK,CAAC,cAAc,CAAC,IAAI;YACvB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,oBAAoB,CAC1D,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,EAC/C,SAAS,EACT,oBAAoB,EACpB,gBAAgB,CACjB,CAAC;YAEF,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,kBAAkB,CAC1B,4BAA4B,eAAe,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,EAC3E,QAAQ,CAAC,MAAM,CAChB,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,IAAI;YACvB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,oBAAoB,CAChD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,EAC/C,SAAS,EACT,oBAAoB,EACpB,gBAAgB,CACjB,CAAC;YAEF,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,wBAAwB;iBAC1D,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,IAAI;YACvB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,oBAAoB,CAC1D,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,EAC/C,SAAS,EACT,oBAAoB,EACpB,gBAAgB,CACjB,CAAC;YAEF,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,kBAAkB,CAC1B,4BAA4B,eAAe,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,EAC3E,QAAQ,CAAC,MAAM,CAChB,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,SAAwB;IAExB,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC,KAAK,CAAC;IACzB,CAAC;IAED,MAAM,MAAM,GAAI,SAAqC,CAAC,qBAAqB,CAAC,CAAC;IAC7E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC/C,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;IACxB,OAAO,KAAK,CAAC;AACf,CAAC"}