@syncular/transport-http 0.0.6-185 → 0.0.6-201
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/README.md +1 -1
- package/dist/api-client.d.ts +11 -0
- package/dist/api-client.d.ts.map +1 -0
- package/dist/api-client.js +30 -0
- package/dist/api-client.js.map +1 -0
- package/dist/blob.d.ts +6 -0
- package/dist/blob.d.ts.map +1 -0
- package/dist/blob.js +46 -0
- package/dist/blob.js.map +1 -0
- package/dist/generated/api.d.ts +42 -33
- package/dist/generated/api.d.ts.map +1 -1
- package/dist/index.d.ts +10 -71
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -238
- package/dist/index.js.map +1 -1
- package/dist/shared.d.ts +36 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +74 -0
- package/dist/shared.js.map +1 -0
- package/dist/transport-client.d.ts +31 -0
- package/dist/transport-client.d.ts.map +1 -0
- package/dist/transport-client.js +189 -0
- package/dist/transport-client.js.map +1 -0
- package/package.json +10 -2
- package/src/api-client.ts +39 -0
- package/src/blob.ts +95 -0
- package/src/generated/api.ts +42 -33
- package/src/index.ts +46 -367
- package/src/shared.ts +146 -0
- package/src/transport-client.ts +307 -0
package/dist/index.js
CHANGED
|
@@ -1,251 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @syncular/transport-http - HTTP transport for Sync
|
|
3
3
|
*
|
|
4
|
-
* Provides
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import createClient from 'openapi-fetch';
|
|
8
|
-
/**
|
|
9
|
-
* Error thrown when unwrapping an API response fails.
|
|
10
|
-
*/
|
|
11
|
-
class ApiResponseError extends Error {
|
|
12
|
-
error;
|
|
13
|
-
constructor(message, error) {
|
|
14
|
-
super(message);
|
|
15
|
-
this.error = error;
|
|
16
|
-
this.name = 'ApiResponseError';
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Helper to unwrap openapi-fetch responses.
|
|
21
|
-
* Throws ApiResponseError if the response contains an error or no data.
|
|
22
|
-
*/
|
|
23
|
-
function getErrorMessage(error) {
|
|
24
|
-
if (error && typeof error === 'object' && 'error' in error) {
|
|
25
|
-
const inner = error.error;
|
|
26
|
-
if (typeof inner === 'string')
|
|
27
|
-
return inner;
|
|
28
|
-
}
|
|
29
|
-
if (error && typeof error === 'object' && 'message' in error) {
|
|
30
|
-
const msg = error.message;
|
|
31
|
-
if (typeof msg === 'string')
|
|
32
|
-
return msg;
|
|
33
|
-
}
|
|
34
|
-
return 'Request failed';
|
|
35
|
-
}
|
|
36
|
-
export async function unwrap(promise) {
|
|
37
|
-
const { data, error } = await promise;
|
|
38
|
-
if (error || !data) {
|
|
39
|
-
throw new ApiResponseError(getErrorMessage(error), error);
|
|
40
|
-
}
|
|
41
|
-
return data;
|
|
42
|
-
}
|
|
43
|
-
async function executeWithAuthRetry(execute, options, operation, resolveAuthRetry) {
|
|
44
|
-
const first = await execute(options?.signal);
|
|
45
|
-
if (first.response.status !== 401 && first.response.status !== 403) {
|
|
46
|
-
return first;
|
|
47
|
-
}
|
|
48
|
-
const shouldRetry = await resolveAuthRetry({ operation, status: first.response.status }, options);
|
|
49
|
-
if (!shouldRetry) {
|
|
50
|
-
return first;
|
|
51
|
-
}
|
|
52
|
-
return execute(options?.signal);
|
|
53
|
-
}
|
|
54
|
-
const SNAPSHOT_SCOPES_HEADER = 'x-syncular-snapshot-scopes';
|
|
55
|
-
function resolveRequestUrl(baseUrl, path) {
|
|
56
|
-
return resolveUrlFromBase(baseUrl, path, typeof location === 'undefined' ? undefined : location.origin);
|
|
57
|
-
}
|
|
58
|
-
function bytesToReadableStream(bytes) {
|
|
59
|
-
return new ReadableStream({
|
|
60
|
-
start(controller) {
|
|
61
|
-
controller.enqueue(bytes);
|
|
62
|
-
controller.close();
|
|
63
|
-
},
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
function encodeSnapshotScopes(scopeValues) {
|
|
67
|
-
if (!scopeValues)
|
|
68
|
-
return null;
|
|
69
|
-
if (Object.keys(scopeValues).length === 0)
|
|
70
|
-
return null;
|
|
71
|
-
return JSON.stringify(scopeValues);
|
|
72
|
-
}
|
|
73
|
-
function applySnapshotScopesHeader(headers, scopeValues) {
|
|
74
|
-
const encodedScopes = encodeSnapshotScopes(scopeValues);
|
|
75
|
-
if (!encodedScopes)
|
|
76
|
-
return;
|
|
77
|
-
headers.set(SNAPSHOT_SCOPES_HEADER, encodedScopes);
|
|
78
|
-
}
|
|
79
|
-
function resolveSnapshotChunkRequestUrl(baseUrl, chunkId, scopeValues) {
|
|
80
|
-
const requestUrl = new URL(resolveRequestUrl(baseUrl, `/sync/snapshot-chunks/${encodeURIComponent(chunkId)}`));
|
|
81
|
-
const encodedScopes = encodeSnapshotScopes(scopeValues);
|
|
82
|
-
if (encodedScopes) {
|
|
83
|
-
requestUrl.searchParams.set('scopes', encodedScopes);
|
|
84
|
-
}
|
|
85
|
-
return requestUrl.toString();
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Create a typed API client for the full Syncular API.
|
|
89
|
-
*
|
|
90
|
-
* Returns an openapi-fetch client with full type safety for all endpoints.
|
|
91
|
-
*
|
|
92
|
-
* @example
|
|
93
|
-
* ```typescript
|
|
94
|
-
* const client = createApiClient({
|
|
95
|
-
* baseUrl: 'https://api.example.com',
|
|
96
|
-
* getHeaders: () => ({ Authorization: `Bearer ${token}` }),
|
|
97
|
-
* });
|
|
98
|
-
*
|
|
99
|
-
* // Sync endpoints
|
|
100
|
-
* const { data } = await client.POST('/sync', { body: { clientId: 'c1', pull: { ... } } });
|
|
101
|
-
*
|
|
102
|
-
* // Console endpoints
|
|
103
|
-
* const { data: stats } = await client.GET('/console/stats');
|
|
104
|
-
* const { data: commits } = await client.GET('/console/commits', {
|
|
105
|
-
* params: { query: { limit: 50 } }
|
|
106
|
-
* });
|
|
107
|
-
* ```
|
|
108
|
-
*/
|
|
109
|
-
export function createApiClient(options) {
|
|
110
|
-
const client = createClient({
|
|
111
|
-
baseUrl: options.baseUrl,
|
|
112
|
-
...(options.fetch && { fetch: options.fetch }),
|
|
113
|
-
});
|
|
114
|
-
const getHeaders = options.getHeaders;
|
|
115
|
-
const transportPath = options.transportPath ?? 'direct';
|
|
116
|
-
client.use({
|
|
117
|
-
async onRequest({ request }) {
|
|
118
|
-
if (getHeaders) {
|
|
119
|
-
const headers = await getHeaders();
|
|
120
|
-
for (const [key, value] of Object.entries(headers)) {
|
|
121
|
-
request.headers.set(key, value);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
if (!request.headers.has('x-syncular-transport-path')) {
|
|
125
|
-
request.headers.set('x-syncular-transport-path', transportPath);
|
|
126
|
-
}
|
|
127
|
-
return request;
|
|
128
|
-
},
|
|
129
|
-
});
|
|
130
|
-
return client;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Create a SyncTransport from an API client or options.
|
|
134
|
-
*
|
|
135
|
-
* The transport includes both sync and blob operations via the typed OpenAPI client.
|
|
136
|
-
*
|
|
137
|
-
* @example
|
|
138
|
-
* ```typescript
|
|
139
|
-
* // From options (convenience)
|
|
140
|
-
* const transport = createHttpTransport({
|
|
141
|
-
* baseUrl: 'https://api.example.com',
|
|
142
|
-
* getHeaders: () => ({ Authorization: `Bearer ${token}` }),
|
|
143
|
-
* });
|
|
144
|
-
*
|
|
145
|
-
* // Or from an existing client
|
|
146
|
-
* const client = createApiClient({ baseUrl: 'https://api.example.com' });
|
|
147
|
-
* const transport = createHttpTransport(client);
|
|
148
|
-
*
|
|
149
|
-
* // Use with Client
|
|
150
|
-
* const syncClient = new Client({ transport, ... });
|
|
151
|
-
* ```
|
|
4
|
+
* Provides:
|
|
5
|
+
* - a lightweight fetch-based SyncTransport for client runtime use
|
|
6
|
+
* - a separately exported typed API client for advanced/console use
|
|
152
7
|
*/
|
|
8
|
+
import { SyncTransportError } from '@syncular/core';
|
|
9
|
+
import { applySnapshotScopesHeader, bytesToReadableStream, executeWithAuthRetry, getErrorMessage, resolveSnapshotChunkRequestUrl, unwrap, } from './shared.js';
|
|
10
|
+
import { createTransportApiClient, createTransportAuthRetryResolver, HTTP_TRANSPORT_SOURCE, } from './transport-client.js';
|
|
11
|
+
export { unwrap };
|
|
12
|
+
export { createApiClient } from './api-client.js';
|
|
153
13
|
export function createHttpTransport(clientOrOptions) {
|
|
154
|
-
const client =
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
const runRefreshSingleFlight = async (lifecycle, context) => {
|
|
161
|
-
if (!lifecycle.refreshToken)
|
|
162
|
-
return false;
|
|
163
|
-
if (!refreshInFlight) {
|
|
164
|
-
refreshInFlight = Promise.resolve(lifecycle.refreshToken(context))
|
|
165
|
-
.then((result) => Boolean(result))
|
|
166
|
-
.finally(() => {
|
|
167
|
-
refreshInFlight = null;
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
return refreshInFlight;
|
|
171
|
-
};
|
|
172
|
-
const resolveAuthRetry = async (context, options) => {
|
|
173
|
-
if (options?.onAuthError) {
|
|
174
|
-
return Boolean(await options.onAuthError());
|
|
175
|
-
}
|
|
176
|
-
const lifecycle = options?.authLifecycle ?? defaultAuthLifecycle;
|
|
177
|
-
if (!lifecycle)
|
|
178
|
-
return false;
|
|
179
|
-
await lifecycle.onAuthExpired?.(context);
|
|
180
|
-
const refreshResult = await runRefreshSingleFlight(lifecycle, context);
|
|
181
|
-
if (lifecycle.retryWithFreshToken) {
|
|
182
|
-
return Boolean(await lifecycle.retryWithFreshToken({ ...context, refreshResult }));
|
|
183
|
-
}
|
|
184
|
-
return refreshResult;
|
|
185
|
-
};
|
|
186
|
-
// Create blob operations using the typed OpenAPI client
|
|
187
|
-
const blobs = {
|
|
188
|
-
async initiateUpload(args) {
|
|
189
|
-
const { data, error, response } = await executeWithAuthRetry((signal) => client.POST('/sync/blobs/upload', {
|
|
190
|
-
body: args,
|
|
191
|
-
...(signal ? { signal } : {}),
|
|
192
|
-
}), undefined, 'blobInitiateUpload', resolveAuthRetry);
|
|
193
|
-
if (error || !data) {
|
|
194
|
-
throw new SyncTransportError(`Blob upload init failed: ${getErrorMessage(error) || response.statusText}`, response.status);
|
|
195
|
-
}
|
|
196
|
-
return data;
|
|
197
|
-
},
|
|
198
|
-
async completeUpload(hash) {
|
|
199
|
-
const { data, error } = await executeWithAuthRetry((signal) => client.POST('/sync/blobs/{hash}/complete', {
|
|
200
|
-
params: { path: { hash } },
|
|
201
|
-
...(signal ? { signal } : {}),
|
|
202
|
-
}), undefined, 'blobCompleteUpload', resolveAuthRetry);
|
|
203
|
-
if (error || !data) {
|
|
204
|
-
return {
|
|
205
|
-
ok: false,
|
|
206
|
-
error: getErrorMessage(error) || 'Complete upload failed',
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
return data;
|
|
210
|
-
},
|
|
211
|
-
async getDownloadUrl(hash) {
|
|
212
|
-
const { data, error, response } = await executeWithAuthRetry((signal) => client.GET('/sync/blobs/{hash}/url', {
|
|
213
|
-
params: { path: { hash } },
|
|
214
|
-
...(signal ? { signal } : {}),
|
|
215
|
-
}), undefined, 'blobGetDownloadUrl', resolveAuthRetry);
|
|
216
|
-
if (error || !data) {
|
|
217
|
-
throw new SyncTransportError(`Get download URL failed: ${getErrorMessage(error) || response.statusText}`, response.status);
|
|
218
|
-
}
|
|
219
|
-
return {
|
|
220
|
-
url: data.url,
|
|
221
|
-
expiresAt: data.expiresAt,
|
|
222
|
-
};
|
|
223
|
-
},
|
|
224
|
-
};
|
|
225
|
-
return {
|
|
226
|
-
async sync(request, transportOptions) {
|
|
227
|
-
const { data, error, response } = await executeWithAuthRetry((signal) => client.POST('/sync', {
|
|
228
|
-
body: request,
|
|
229
|
-
...(signal ? { signal } : {}),
|
|
230
|
-
}), transportOptions, 'sync', resolveAuthRetry);
|
|
14
|
+
const client = createTransportApiClient(clientOrOptions);
|
|
15
|
+
const resolveAuthRetry = createTransportAuthRetryResolver(clientOrOptions);
|
|
16
|
+
const transportOptions = 'baseUrl' in clientOrOptions ? clientOrOptions : undefined;
|
|
17
|
+
const transport = {
|
|
18
|
+
async sync(request, transportRequestOptions) {
|
|
19
|
+
const { data, error, response } = await executeWithAuthRetry((signal) => client.sync(request, signal), transportRequestOptions, 'sync', resolveAuthRetry);
|
|
231
20
|
if (error || !data) {
|
|
232
21
|
throw new SyncTransportError(`Sync failed: ${getErrorMessage(error) || response.statusText}`, response.status);
|
|
233
22
|
}
|
|
234
23
|
return data;
|
|
235
24
|
},
|
|
236
25
|
async fetchSnapshotChunk(request, options) {
|
|
237
|
-
const encodedScopes = encodeSnapshotScopes(request.scopeValues);
|
|
238
26
|
if (!transportOptions) {
|
|
239
|
-
const { data, error, response } = await executeWithAuthRetry((signal) => client.
|
|
240
|
-
params: { path: { chunkId: request.chunkId } },
|
|
241
|
-
parseAs: 'blob',
|
|
242
|
-
headers: encodedScopes
|
|
243
|
-
? {
|
|
244
|
-
[SNAPSHOT_SCOPES_HEADER]: encodedScopes,
|
|
245
|
-
}
|
|
246
|
-
: undefined,
|
|
247
|
-
...(signal ? { signal } : {}),
|
|
248
|
-
}), options, 'snapshotChunk', resolveAuthRetry);
|
|
27
|
+
const { data, error, response } = await executeWithAuthRetry((signal) => client.getSnapshotChunk(request.chunkId, request.scopeValues, signal), options, 'snapshotChunk', resolveAuthRetry);
|
|
249
28
|
if (error || !data) {
|
|
250
29
|
throw new SyncTransportError(`Snapshot chunk download failed: ${getErrorMessage(error) || response.statusText}`, response.status);
|
|
251
30
|
}
|
|
@@ -346,8 +125,13 @@ export function createHttpTransport(clientOrOptions) {
|
|
|
346
125
|
}
|
|
347
126
|
return response.body;
|
|
348
127
|
},
|
|
349
|
-
// Include blob operations
|
|
350
|
-
blobs,
|
|
351
128
|
};
|
|
129
|
+
Object.defineProperty(transport, HTTP_TRANSPORT_SOURCE, {
|
|
130
|
+
configurable: false,
|
|
131
|
+
enumerable: false,
|
|
132
|
+
value: clientOrOptions,
|
|
133
|
+
writable: false,
|
|
134
|
+
});
|
|
135
|
+
return transport;
|
|
352
136
|
}
|
|
353
137
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/shared.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ScopeValues, SyncAuthErrorContext, SyncAuthLifecycle, SyncAuthOperation, 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
|
+
export type ApiResult<T> = {
|
|
19
|
+
data?: T;
|
|
20
|
+
error?: unknown;
|
|
21
|
+
response: Response;
|
|
22
|
+
};
|
|
23
|
+
export type ResolveAuthRetry = (context: SyncAuthErrorContext, options?: SyncTransportOptions) => Promise<boolean>;
|
|
24
|
+
export declare function getErrorMessage(error: unknown): string;
|
|
25
|
+
export declare function unwrap<T>(promise: Promise<{
|
|
26
|
+
data?: T;
|
|
27
|
+
error?: unknown;
|
|
28
|
+
}>): Promise<T>;
|
|
29
|
+
export declare function executeWithAuthRetry<T>(execute: (signal?: AbortSignal) => Promise<ApiResult<T>>, options: SyncTransportOptions | undefined, operation: SyncAuthOperation, resolveAuthRetry: ResolveAuthRetry): Promise<ApiResult<T>>;
|
|
30
|
+
export declare const SNAPSHOT_SCOPES_HEADER = "x-syncular-snapshot-scopes";
|
|
31
|
+
export declare function resolveRequestUrl(baseUrl: string, path: string): string;
|
|
32
|
+
export declare function bytesToReadableStream(bytes: Uint8Array): ReadableStream<Uint8Array>;
|
|
33
|
+
export declare function encodeSnapshotScopes(scopeValues: ScopeValues | undefined): string | null;
|
|
34
|
+
export declare function applySnapshotScopesHeader(headers: Headers, scopeValues: ScopeValues | undefined): void;
|
|
35
|
+
export declare function resolveSnapshotChunkRequestUrl(baseUrl: string, chunkId: string, scopeValues: ScopeValues | undefined): string;
|
|
36
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,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;CACnC;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;AAYtB,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;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"}
|
package/dist/shared.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { resolveUrlFromBase } from '@syncular/core';
|
|
2
|
+
class ApiResponseError extends Error {
|
|
3
|
+
error;
|
|
4
|
+
constructor(message, error) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.error = error;
|
|
7
|
+
this.name = 'ApiResponseError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export function getErrorMessage(error) {
|
|
11
|
+
if (error && typeof error === 'object' && 'error' in error) {
|
|
12
|
+
const inner = error.error;
|
|
13
|
+
if (typeof inner === 'string')
|
|
14
|
+
return inner;
|
|
15
|
+
}
|
|
16
|
+
if (error && typeof error === 'object' && 'message' in error) {
|
|
17
|
+
const msg = error.message;
|
|
18
|
+
if (typeof msg === 'string')
|
|
19
|
+
return msg;
|
|
20
|
+
}
|
|
21
|
+
return 'Request failed';
|
|
22
|
+
}
|
|
23
|
+
export async function unwrap(promise) {
|
|
24
|
+
const { data, error } = await promise;
|
|
25
|
+
if (error || !data) {
|
|
26
|
+
throw new ApiResponseError(getErrorMessage(error), error);
|
|
27
|
+
}
|
|
28
|
+
return data;
|
|
29
|
+
}
|
|
30
|
+
export async function executeWithAuthRetry(execute, options, operation, resolveAuthRetry) {
|
|
31
|
+
const first = await execute(options?.signal);
|
|
32
|
+
if (first.response.status !== 401 && first.response.status !== 403) {
|
|
33
|
+
return first;
|
|
34
|
+
}
|
|
35
|
+
const shouldRetry = await resolveAuthRetry({ operation, status: first.response.status }, options);
|
|
36
|
+
if (!shouldRetry) {
|
|
37
|
+
return first;
|
|
38
|
+
}
|
|
39
|
+
return execute(options?.signal);
|
|
40
|
+
}
|
|
41
|
+
export const SNAPSHOT_SCOPES_HEADER = 'x-syncular-snapshot-scopes';
|
|
42
|
+
export function resolveRequestUrl(baseUrl, path) {
|
|
43
|
+
return resolveUrlFromBase(baseUrl, path, typeof location === 'undefined' ? undefined : location.origin);
|
|
44
|
+
}
|
|
45
|
+
export function bytesToReadableStream(bytes) {
|
|
46
|
+
return new ReadableStream({
|
|
47
|
+
start(controller) {
|
|
48
|
+
controller.enqueue(bytes);
|
|
49
|
+
controller.close();
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
export function encodeSnapshotScopes(scopeValues) {
|
|
54
|
+
if (!scopeValues)
|
|
55
|
+
return null;
|
|
56
|
+
if (Object.keys(scopeValues).length === 0)
|
|
57
|
+
return null;
|
|
58
|
+
return JSON.stringify(scopeValues);
|
|
59
|
+
}
|
|
60
|
+
export function applySnapshotScopesHeader(headers, scopeValues) {
|
|
61
|
+
const encodedScopes = encodeSnapshotScopes(scopeValues);
|
|
62
|
+
if (!encodedScopes)
|
|
63
|
+
return;
|
|
64
|
+
headers.set(SNAPSHOT_SCOPES_HEADER, encodedScopes);
|
|
65
|
+
}
|
|
66
|
+
export function resolveSnapshotChunkRequestUrl(baseUrl, chunkId, scopeValues) {
|
|
67
|
+
const requestUrl = new URL(resolveRequestUrl(baseUrl, `/sync/snapshot-chunks/${encodeURIComponent(chunkId)}`));
|
|
68
|
+
const encodedScopes = encodeSnapshotScopes(scopeValues);
|
|
69
|
+
if (encodedScopes) {
|
|
70
|
+
requestUrl.searchParams.set('scopes', encodedScopes);
|
|
71
|
+
}
|
|
72
|
+
return requestUrl.toString();
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport-client.d.ts","sourceRoot":"","sources":["../src/transport-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AACxB,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,eAEjC,CAAC;AAEF,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;AAsOD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,mBAAmB,GAC1B,kBAAkB,CAIpB;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,mBAAmB,GAC1B,gBAAgB,CAIlB"}
|