@syncular/core 0.1.3 → 0.2.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 (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,45 +0,0 @@
1
- import type { ScopeValues, SyncAuthErrorContext, SyncAuthLifecycle, SyncAuthOperation, SyncTransportCapabilities, SyncTransportOptions } from '@syncular/core';
2
- export type SyncTransportPath = 'direct' | 'relay';
3
- export interface ClientOptions {
4
- /** Base URL for the API (e.g., 'https://api.example.com') */
5
- baseUrl: string;
6
- /** Function to get headers for requests (e.g., for auth tokens) */
7
- getHeaders?: () => Record<string, string> | Promise<Record<string, string>>;
8
- /** Shared auth lifecycle for all transport operations. */
9
- authLifecycle?: SyncAuthLifecycle;
10
- /** Custom fetch implementation (defaults to globalThis.fetch) */
11
- fetch?: typeof globalThis.fetch;
12
- /**
13
- * Transport path telemetry sent to the server.
14
- * Defaults to 'direct'.
15
- */
16
- transportPath?: SyncTransportPath;
17
- /**
18
- * Explicit runtime capabilities override.
19
- * Use this to avoid environment sniffing in runtimes like React Native.
20
- */
21
- capabilities?: Partial<SyncTransportCapabilities>;
22
- }
23
- export type ApiResult<T> = {
24
- data?: T;
25
- error?: unknown;
26
- response: Response;
27
- };
28
- export type ResolveAuthRetry = (context: SyncAuthErrorContext, options?: SyncTransportOptions) => Promise<boolean>;
29
- export declare function getErrorMessage(error: unknown): string;
30
- export declare function unwrap<T>(promise: Promise<{
31
- data?: T;
32
- error?: unknown;
33
- }>): Promise<T>;
34
- export declare function executeWithAuthRetry<T>(execute: (signal?: AbortSignal) => Promise<ApiResult<T>>, options: SyncTransportOptions | undefined, operation: SyncAuthOperation, resolveAuthRetry: ResolveAuthRetry): Promise<ApiResult<T>>;
35
- export declare function executeWithTransientNetworkRetry<T>(args: {
36
- execute: (signal?: AbortSignal) => Promise<T>;
37
- options?: SyncTransportOptions;
38
- }): Promise<T>;
39
- export declare const SNAPSHOT_SCOPES_HEADER = "x-syncular-snapshot-scopes";
40
- export declare function resolveRequestUrl(baseUrl: string, path: string): string;
41
- export declare function bytesToReadableStream(bytes: Uint8Array): ReadableStream<Uint8Array>;
42
- export declare function encodeSnapshotScopes(scopeValues: ScopeValues | undefined): string | null;
43
- export declare function applySnapshotScopesHeader(headers: Headers, scopeValues: ScopeValues | undefined): void;
44
- export declare function resolveSnapshotChunkRequestUrl(baseUrl: string, chunkId: string, scopeValues: ScopeValues | undefined): string;
45
- //# sourceMappingURL=shared.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/http/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,EACzB,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,0DAA0D;IAC1D,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,iEAAiE;IACjE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC;;;OAGG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACnD;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAC7B,OAAO,EAAE,oBAAoB,EAC7B,OAAO,CAAC,EAAE,oBAAoB,KAC3B,OAAO,CAAC,OAAO,CAAC,CAAC;AActB,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUtD;AAED,wBAAsB,MAAM,CAAC,CAAC,EAC5B,OAAO,EAAE,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAC9C,OAAO,CAAC,CAAC,CAAC,CAMZ;AAED,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACxD,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,SAAS,EAAE,iBAAiB,EAC5B,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAcvB;AAiCD,wBAAsB,gCAAgC,CAAC,CAAC,EAAE,IAAI,EAAE;IAC9D,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC,GAAG,OAAO,CAAC,CAAC,CAAC,CA8Bb;AAED,eAAO,MAAM,sBAAsB,+BAA+B,CAAC;AAEnE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMvE;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,GAChB,cAAc,CAAC,UAAU,CAAC,CAO5B;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,MAAM,GAAG,IAAI,CAIf;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,IAAI,CAIN;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,MAAM,CAYR"}
@@ -1,122 +0,0 @@
1
- import { resolveUrlFromBase } from '@syncular/core';
2
- const TRANSIENT_NETWORK_RETRY_DELAYS_MS = [75, 150, 300];
3
- class ApiResponseError extends Error {
4
- error;
5
- constructor(message, error) {
6
- super(message);
7
- this.error = error;
8
- this.name = 'ApiResponseError';
9
- }
10
- }
11
- export function getErrorMessage(error) {
12
- if (error && typeof error === 'object' && 'error' in error) {
13
- const inner = error.error;
14
- if (typeof inner === 'string')
15
- return inner;
16
- }
17
- if (error && typeof error === 'object' && 'message' in error) {
18
- const msg = error.message;
19
- if (typeof msg === 'string')
20
- return msg;
21
- }
22
- return 'Request failed';
23
- }
24
- export async function unwrap(promise) {
25
- const { data, error } = await promise;
26
- if (error || !data) {
27
- throw new ApiResponseError(getErrorMessage(error), error);
28
- }
29
- return data;
30
- }
31
- export async function executeWithAuthRetry(execute, options, operation, resolveAuthRetry) {
32
- const first = await execute(options?.signal);
33
- if (first.response.status !== 401 && first.response.status !== 403) {
34
- return first;
35
- }
36
- const shouldRetry = await resolveAuthRetry({ operation, status: first.response.status }, options);
37
- if (!shouldRetry) {
38
- return first;
39
- }
40
- return execute(options?.signal);
41
- }
42
- function isAbortError(error) {
43
- return error instanceof Error && error.name === 'AbortError';
44
- }
45
- function isTransientNetworkError(error) {
46
- if (isAbortError(error))
47
- return false;
48
- const message = error instanceof Error
49
- ? error.message.toLowerCase()
50
- : String(error).toLowerCase();
51
- return (message.includes('fetch failed') ||
52
- message.includes('network') ||
53
- message.includes('socket') ||
54
- message.includes('econnreset') ||
55
- message.includes('econnrefused') ||
56
- message.includes('connection refused') ||
57
- message.includes('connection reset') ||
58
- message.includes('terminated') ||
59
- message.includes('eof'));
60
- }
61
- function delay(ms) {
62
- return new Promise((resolve) => {
63
- setTimeout(resolve, ms);
64
- });
65
- }
66
- export async function executeWithTransientNetworkRetry(args) {
67
- let lastError;
68
- for (let attemptIndex = 0; attemptIndex <= TRANSIENT_NETWORK_RETRY_DELAYS_MS.length; attemptIndex += 1) {
69
- try {
70
- return await args.execute(args.options?.signal);
71
- }
72
- catch (error) {
73
- lastError = error;
74
- if (!isTransientNetworkError(error) || args.options?.signal?.aborted) {
75
- throw error;
76
- }
77
- const delayMs = TRANSIENT_NETWORK_RETRY_DELAYS_MS[attemptIndex];
78
- if (delayMs === undefined) {
79
- throw error;
80
- }
81
- await delay(delayMs);
82
- if (args.options?.signal?.aborted) {
83
- throw error;
84
- }
85
- }
86
- }
87
- throw lastError;
88
- }
89
- export const SNAPSHOT_SCOPES_HEADER = 'x-syncular-snapshot-scopes';
90
- export function resolveRequestUrl(baseUrl, path) {
91
- return resolveUrlFromBase(baseUrl, path, typeof location === 'undefined' ? undefined : location.origin);
92
- }
93
- export function bytesToReadableStream(bytes) {
94
- return new ReadableStream({
95
- start(controller) {
96
- controller.enqueue(bytes);
97
- controller.close();
98
- },
99
- });
100
- }
101
- export function encodeSnapshotScopes(scopeValues) {
102
- if (!scopeValues)
103
- return null;
104
- if (Object.keys(scopeValues).length === 0)
105
- return null;
106
- return JSON.stringify(scopeValues);
107
- }
108
- export function applySnapshotScopesHeader(headers, scopeValues) {
109
- const encodedScopes = encodeSnapshotScopes(scopeValues);
110
- if (!encodedScopes)
111
- return;
112
- headers.set(SNAPSHOT_SCOPES_HEADER, encodedScopes);
113
- }
114
- export function resolveSnapshotChunkRequestUrl(baseUrl, chunkId, scopeValues) {
115
- const requestUrl = new URL(resolveRequestUrl(baseUrl, `/sync/snapshot-chunks/${encodeURIComponent(chunkId)}`));
116
- const encodedScopes = encodeSnapshotScopes(scopeValues);
117
- if (encodedScopes) {
118
- requestUrl.searchParams.set('scopes', encodedScopes);
119
- }
120
- return requestUrl.toString();
121
- }
122
- //# sourceMappingURL=shared.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/http/shared.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import type { SyncCombinedRequest, SyncCombinedResponse } from '@syncular/core';
2
- import type { SyncClient } from './api-client';
3
- import { type ApiResult, type ClientOptions, type ResolveAuthRetry } from './shared';
4
- export type { ClientOptions };
5
- export declare const HTTP_TRANSPORT_SOURCE: unique symbol;
6
- export type HttpTransportSource = SyncClient | ClientOptions;
7
- interface TransportApiClient {
8
- sync(request: SyncCombinedRequest, signal?: AbortSignal): Promise<ApiResult<SyncCombinedResponse>>;
9
- initiateUpload(args: {
10
- hash: string;
11
- size: number;
12
- mimeType: string;
13
- }, signal?: AbortSignal): Promise<ApiResult<{
14
- exists: boolean;
15
- uploadUrl?: string;
16
- uploadMethod?: 'PUT' | 'POST';
17
- uploadHeaders?: Record<string, string>;
18
- }>>;
19
- completeUpload(hash: string, signal?: AbortSignal): Promise<ApiResult<{
20
- ok: boolean;
21
- error?: string;
22
- }>>;
23
- getDownloadUrl(hash: string, signal?: AbortSignal): Promise<ApiResult<{
24
- url: string;
25
- expiresAt: string;
26
- }>>;
27
- getSnapshotChunk(chunkId: string, scopeValues: Record<string, string | string[]> | undefined, signal?: AbortSignal): Promise<ApiResult<Blob>>;
28
- }
29
- export declare function createTransportApiClient(source: HttpTransportSource): TransportApiClient;
30
- export declare function createTransportAuthRetryResolver(source: HttpTransportSource): ResolveAuthRetry;
31
- //# sourceMappingURL=transport-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport-client.d.ts","sourceRoot":"","sources":["../../src/http/transport-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAElB,KAAK,gBAAgB,EAGtB,MAAM,UAAU,CAAC;AAElB,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,eAAO,MAAM,qBAAqB,eAA2C,CAAC;AAE9E,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,aAAa,CAAC;AAW7D,UAAU,kBAAkB;IAC1B,IAAI,CACF,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC5C,cAAc,CACZ,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EACtD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CACR,SAAS,CAAC;QACR,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;QAC9B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC,CAAC,CACH,CAAC;IACF,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACvD,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC1D,gBAAgB,CACd,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,SAAS,EAC1D,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;CAC7B;AA2OD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,mBAAmB,GAC1B,kBAAkB,CAIpB;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,mBAAmB,GAC1B,gBAAgB,CAIlB"}
@@ -1,193 +0,0 @@
1
- import { decodeBinarySyncPack, isBinarySyncPackContentType, } from '@syncular/core';
2
- import { encodeSnapshotScopes, resolveRequestUrl, SNAPSHOT_SCOPES_HEADER, } from './shared.js';
3
- export const HTTP_TRANSPORT_SOURCE = Symbol.for('@syncular/core/http/source');
4
- function isApiClientLike(value) {
5
- return (typeof value === 'object' &&
6
- value !== null &&
7
- typeof value.GET === 'function' &&
8
- typeof value.POST === 'function');
9
- }
10
- function isJsonContentType(contentType) {
11
- return contentType?.includes('application/json') === true;
12
- }
13
- async function parseErrorBody(response) {
14
- if (!isJsonContentType(response.headers.get('content-type'))) {
15
- return undefined;
16
- }
17
- try {
18
- return (await response.json());
19
- }
20
- catch {
21
- return undefined;
22
- }
23
- }
24
- async function parseJsonBody(response) {
25
- if (!isJsonContentType(response.headers.get('content-type'))) {
26
- return undefined;
27
- }
28
- try {
29
- return (await response.json());
30
- }
31
- catch {
32
- return undefined;
33
- }
34
- }
35
- function createAuthRetryResolver(defaultAuthLifecycle) {
36
- let refreshInFlight = null;
37
- const runRefreshSingleFlight = async (lifecycle, context) => {
38
- if (!lifecycle.refreshToken)
39
- return false;
40
- if (!refreshInFlight) {
41
- refreshInFlight = Promise.resolve(lifecycle.refreshToken(context))
42
- .then((result) => Boolean(result))
43
- .finally(() => {
44
- refreshInFlight = null;
45
- });
46
- }
47
- return refreshInFlight;
48
- };
49
- return async (context, options) => {
50
- const lifecycle = options?.authLifecycle ?? defaultAuthLifecycle;
51
- if (!lifecycle)
52
- return false;
53
- await lifecycle.onAuthExpired?.(context);
54
- const refreshResult = await runRefreshSingleFlight(lifecycle, context);
55
- if (lifecycle.retryWithFreshToken) {
56
- return Boolean(await lifecycle.retryWithFreshToken({ ...context, refreshResult }));
57
- }
58
- return refreshResult;
59
- };
60
- }
61
- function createRequestHeaders(baseOptions, extraHeaders) {
62
- return Promise.resolve(baseOptions.getHeaders?.()).then((dynamicHeaders) => {
63
- const headers = new Headers(extraHeaders);
64
- if (dynamicHeaders) {
65
- for (const [key, value] of Object.entries(dynamicHeaders)) {
66
- headers.set(key, value);
67
- }
68
- }
69
- if (!headers.has('x-syncular-transport-path')) {
70
- headers.set('x-syncular-transport-path', baseOptions.transportPath ?? 'direct');
71
- }
72
- return headers;
73
- });
74
- }
75
- function createFetchApiClient(baseOptions) {
76
- const fetchImpl = baseOptions.fetch ?? globalThis.fetch;
77
- const request = async (args) => {
78
- const headers = await createRequestHeaders(baseOptions, args.headers);
79
- let body;
80
- if (args.body !== undefined) {
81
- headers.set('content-type', 'application/json');
82
- body = JSON.stringify(args.body);
83
- }
84
- const response = await fetchImpl(resolveRequestUrl(baseOptions.baseUrl, args.path), {
85
- method: args.method,
86
- headers,
87
- body,
88
- ...(args.signal ? { signal: args.signal } : {}),
89
- });
90
- if (!response.ok) {
91
- return {
92
- response,
93
- error: await parseErrorBody(response),
94
- };
95
- }
96
- if (args.parseAs === 'blob') {
97
- return {
98
- response,
99
- data: (await response.blob()),
100
- };
101
- }
102
- if (isBinarySyncPackContentType(response.headers.get('content-type'))) {
103
- return {
104
- response,
105
- data: decodeBinarySyncPack(new Uint8Array(await response.arrayBuffer())),
106
- };
107
- }
108
- return {
109
- response,
110
- data: await parseJsonBody(response),
111
- };
112
- };
113
- return {
114
- sync: (requestBody, signal) => request({
115
- method: 'POST',
116
- path: '/sync',
117
- body: requestBody,
118
- signal,
119
- }),
120
- initiateUpload: (args, signal) => request({
121
- method: 'POST',
122
- path: '/sync/blobs/upload',
123
- body: args,
124
- signal,
125
- }),
126
- completeUpload: (hash, signal) => request({
127
- method: 'POST',
128
- path: `/sync/blobs/${encodeURIComponent(hash)}/complete`,
129
- signal,
130
- }),
131
- getDownloadUrl: (hash, signal) => request({
132
- method: 'GET',
133
- path: `/sync/blobs/${encodeURIComponent(hash)}/url`,
134
- signal,
135
- }),
136
- getSnapshotChunk: (chunkId, scopeValues, signal) => request({
137
- method: 'GET',
138
- path: `/sync/snapshot-chunks/${encodeURIComponent(chunkId)}`,
139
- headers: (() => {
140
- const encodedScopes = encodeSnapshotScopes(scopeValues);
141
- return encodedScopes
142
- ? {
143
- [SNAPSHOT_SCOPES_HEADER]: encodedScopes,
144
- }
145
- : undefined;
146
- })(),
147
- signal,
148
- parseAs: 'blob',
149
- }),
150
- };
151
- }
152
- function createTypedTransportClient(client) {
153
- return {
154
- sync: (request, signal) => client.POST('/sync', {
155
- body: request,
156
- ...(signal ? { signal } : {}),
157
- }),
158
- initiateUpload: (args, signal) => client.POST('/sync/blobs/upload', {
159
- body: args,
160
- ...(signal ? { signal } : {}),
161
- }),
162
- completeUpload: (hash, signal) => client.POST('/sync/blobs/{hash}/complete', {
163
- params: { path: { hash } },
164
- ...(signal ? { signal } : {}),
165
- }),
166
- getDownloadUrl: (hash, signal) => client.GET('/sync/blobs/{hash}/url', {
167
- params: { path: { hash } },
168
- ...(signal ? { signal } : {}),
169
- }),
170
- getSnapshotChunk: (chunkId, scopeValues, signal) => client.GET('/sync/snapshot-chunks/{chunkId}', {
171
- params: { path: { chunkId } },
172
- parseAs: 'blob',
173
- headers: (() => {
174
- const encodedScopes = encodeSnapshotScopes(scopeValues);
175
- return encodedScopes
176
- ? {
177
- [SNAPSHOT_SCOPES_HEADER]: encodedScopes,
178
- }
179
- : undefined;
180
- })(),
181
- ...(signal ? { signal } : {}),
182
- }),
183
- };
184
- }
185
- export function createTransportApiClient(source) {
186
- return isApiClientLike(source)
187
- ? createTypedTransportClient(source)
188
- : createFetchApiClient(source);
189
- }
190
- export function createTransportAuthRetryResolver(source) {
191
- return createAuthRetryResolver(isApiClientLike(source) ? undefined : source.authLifecycle);
192
- }
193
- //# sourceMappingURL=transport-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport-client.js","sourceRoot":"","sources":["../../src/http/transport-client.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,cAAc,SAAS,CAAC;AAExB,cAAc,iBAAiB,CAAC;AAEhC,cAAc,YAAY,CAAC;AAE3B,cAAc,YAAY,CAAC;AAE3B,cAAc,WAAW,CAAC;AAE1B,cAAc,mBAAmB,CAAC;AAElC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,UAAU,CAAC;AAEzB,cAAc,SAAS,CAAC;AAExB,cAAc,WAAW,CAAC;AAE1B,cAAc,UAAU,CAAC;AAEzB,cAAc,mBAAmB,CAAC;AAElC,cAAc,cAAc,CAAC;AAE7B,cAAc,aAAa,CAAC;AAE5B,cAAc,cAAc,CAAC;AAE7B,cAAc,SAAS,CAAC;AAExB,cAAc,SAAS,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,kFAAkF;AAClF,cAAc,SAAS,CAAC;AACxB,0DAA0D;AAC1D,cAAc,iBAAiB,CAAC;AAChC,+BAA+B;AAC/B,cAAc,YAAY,CAAC;AAC3B,qBAAqB;AACrB,cAAc,YAAY,CAAC;AAC3B,+BAA+B;AAC/B,cAAc,WAAW,CAAC;AAC1B,kCAAkC;AAClC,cAAc,mBAAmB,CAAC;AAClC,8DAA8D;AAC9D,cAAc,wBAAwB,CAAC;AACvC,oBAAoB;AACpB,cAAc,UAAU,CAAC;AACzB,uBAAuB;AACvB,cAAc,SAAS,CAAC;AACxB,gBAAgB;AAChB,cAAc,WAAW,CAAC;AAC1B,uCAAuC;AACvC,cAAc,UAAU,CAAC;AACzB,kCAAkC;AAClC,cAAc,mBAAmB,CAAC;AAClC,sCAAsC;AACtC,cAAc,cAAc,CAAC;AAC7B,wBAAwB;AACxB,cAAc,aAAa,CAAC;AAC5B,4BAA4B;AAC5B,cAAc,cAAc,CAAC;AAC7B,oEAAoE;AACpE,cAAc,SAAS,CAAC;AACxB,2BAA2B;AAC3B,cAAc,SAAS,CAAC"}
@@ -1,31 +0,0 @@
1
- import { type KyselyPlugin, type PluginTransformQueryArgs, type PluginTransformResultArgs, type QueryResult, type RootOperationNode, type UnknownRow } from 'kysely';
2
- import { type ColumnCodecDialect, type ColumnCodecSource, type TableColumnCodecs } from './column-codecs';
3
- interface ColumnCodecPluginOptions {
4
- codecs: ColumnCodecSource;
5
- dialect?: ColumnCodecDialect;
6
- }
7
- interface ColumnReference {
8
- outputKey: string;
9
- table: string;
10
- column: string;
11
- }
12
- export interface QueryResultPlan {
13
- explicit: ColumnReference[];
14
- selectAllTables: string[];
15
- }
16
- export declare function buildQueryResultPlan(node: RootOperationNode): QueryResultPlan | null;
17
- export declare function applyQueryResultPlan(args: {
18
- row: UnknownRow;
19
- plan: QueryResultPlan;
20
- resolveTableCodecs: (table: string, row: Record<string, unknown>) => TableColumnCodecs;
21
- dialect: ColumnCodecDialect;
22
- }): UnknownRow;
23
- export declare class ColumnCodecsPlugin implements KyselyPlugin {
24
- #private;
25
- constructor(options: ColumnCodecPluginOptions);
26
- transformQuery({ node, queryId }: PluginTransformQueryArgs): RootOperationNode;
27
- transformResult({ result, queryId }: PluginTransformResultArgs): Promise<QueryResult<UnknownRow>>;
28
- }
29
- export declare function createColumnCodecsPlugin(options: ColumnCodecPluginOptions): ColumnCodecsPlugin;
30
- export {};
31
- //# sourceMappingURL=kysely-column-codecs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kysely-column-codecs.d.ts","sourceRoot":"","sources":["../src/kysely-column-codecs.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,YAAY,EAGjB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAE9B,KAAK,WAAW,EAEhB,KAAK,iBAAiB,EAItB,KAAK,UAAU,EAIhB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAEtB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AAEzB,UAAU,wBAAwB;IAChC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAiSD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,iBAAiB,GACtB,eAAe,GAAG,IAAI,CAMxB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,GAAG,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,eAAe,CAAC;IACtB,kBAAkB,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACzB,iBAAiB,CAAC;IACvB,OAAO,EAAE,kBAAkB,CAAC;CAC7B,GAAG,UAAU,CA2Cb;AAgID,qBAAa,kBAAmB,YAAW,YAAY;;IASrD,YAAY,OAAO,EAAE,wBAAwB,EAM5C;IAED,cAAc,CAAC,EACb,IAAI,EACJ,OAAO,EACR,EAAE,wBAAwB,GAAG,iBAAiB,CAO9C;IAEK,eAAe,CAAC,EACpB,MAAM,EACN,OAAO,EACR,EAAE,yBAAyB,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAU9D;CAUF;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,wBAAwB,GAChC,kBAAkB,CAEpB"}