@syncular/core 0.1.2 → 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.
- package/README.md +5 -19
- package/dist/blob-ref.d.ts +21 -0
- package/dist/blob-ref.js +97 -0
- package/dist/bytes.d.ts +45 -0
- package/dist/bytes.js +242 -0
- package/dist/canonical-json.d.ts +10 -0
- package/dist/canonical-json.js +18 -0
- package/dist/constants.d.ts +5 -0
- package/dist/constants.js +5 -0
- package/dist/crypto.d.ts +60 -0
- package/dist/crypto.js +251 -0
- package/dist/errors.d.ts +14 -0
- package/dist/errors.js +17 -0
- package/dist/frames.d.ts +24 -0
- package/dist/frames.js +42 -0
- package/dist/index.d.ts +18 -26
- package/dist/index.js +18 -43
- package/dist/message.d.ts +157 -0
- package/dist/message.js +786 -0
- package/dist/realtime.d.ts +92 -0
- package/dist/realtime.js +222 -0
- package/dist/render.d.ts +22 -0
- package/dist/render.js +273 -0
- package/dist/row-codec.d.ts +39 -0
- package/dist/row-codec.js +176 -0
- package/dist/segment.d.ts +18 -0
- package/dist/segment.js +105 -0
- package/dist/stream.d.ts +20 -0
- package/dist/stream.js +102 -0
- package/package.json +7 -59
- package/src/blob-ref.ts +135 -0
- package/src/bytes.ts +301 -0
- package/src/canonical-json.ts +20 -0
- package/src/constants.ts +7 -0
- package/src/crypto.ts +335 -0
- package/src/errors.ts +18 -0
- package/src/frames.ts +47 -0
- package/src/index.ts +18 -43
- package/src/message.ts +1024 -0
- package/src/realtime.ts +340 -0
- package/src/render.ts +325 -0
- package/src/row-codec.ts +265 -0
- package/src/segment.ts +150 -0
- package/src/stream.ts +128 -0
- package/dist/blobs.d.ts +0 -153
- package/dist/blobs.d.ts.map +0 -1
- package/dist/blobs.js +0 -47
- package/dist/blobs.js.map +0 -1
- package/dist/column-codecs.d.ts +0 -59
- package/dist/column-codecs.d.ts.map +0 -1
- package/dist/column-codecs.js +0 -159
- package/dist/column-codecs.js.map +0 -1
- package/dist/conflict.d.ts +0 -22
- package/dist/conflict.d.ts.map +0 -1
- package/dist/conflict.js +0 -81
- package/dist/conflict.js.map +0 -1
- package/dist/database.d.ts +0 -7
- package/dist/database.d.ts.map +0 -1
- package/dist/database.js +0 -14
- package/dist/database.js.map +0 -1
- package/dist/dialect.d.ts +0 -7
- package/dist/dialect.d.ts.map +0 -1
- package/dist/dialect.js +0 -2
- package/dist/dialect.js.map +0 -1
- package/dist/error-responses.d.ts +0 -393
- package/dist/error-responses.d.ts.map +0 -1
- package/dist/error-responses.js +0 -393
- package/dist/error-responses.js.map +0 -1
- package/dist/http/api-client.d.ts +0 -11
- package/dist/http/api-client.d.ts.map +0 -1
- package/dist/http/api-client.js +0 -30
- package/dist/http/api-client.js.map +0 -1
- package/dist/http/blob.d.ts +0 -6
- package/dist/http/blob.d.ts.map +0 -1
- package/dist/http/blob.js +0 -46
- package/dist/http/blob.js.map +0 -1
- package/dist/http/generated/api.d.ts +0 -5241
- package/dist/http/generated/api.d.ts.map +0 -1
- package/dist/http/generated/api.js +0 -6
- package/dist/http/generated/api.js.map +0 -1
- package/dist/http/index.d.ts +0 -18
- package/dist/http/index.d.ts.map +0 -1
- package/dist/http/index.js +0 -212
- package/dist/http/index.js.map +0 -1
- package/dist/http/shared.d.ts +0 -45
- package/dist/http/shared.d.ts.map +0 -1
- package/dist/http/shared.js +0 -122
- package/dist/http/shared.js.map +0 -1
- package/dist/http/transport-client.d.ts +0 -31
- package/dist/http/transport-client.d.ts.map +0 -1
- package/dist/http/transport-client.js +0 -193
- package/dist/http/transport-client.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/kysely-column-codecs.d.ts +0 -31
- package/dist/kysely-column-codecs.d.ts.map +0 -1
- package/dist/kysely-column-codecs.js +0 -452
- package/dist/kysely-column-codecs.js.map +0 -1
- package/dist/logger.d.ts +0 -29
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -26
- package/dist/logger.js.map +0 -1
- package/dist/proxy/index.d.ts +0 -54
- package/dist/proxy/index.d.ts.map +0 -1
- package/dist/proxy/index.js +0 -7
- package/dist/proxy/index.js.map +0 -1
- package/dist/schemas/blobs.d.ts +0 -82
- package/dist/schemas/blobs.d.ts.map +0 -1
- package/dist/schemas/blobs.js +0 -64
- package/dist/schemas/blobs.js.map +0 -1
- package/dist/schemas/common.d.ts +0 -100
- package/dist/schemas/common.d.ts.map +0 -1
- package/dist/schemas/common.js +0 -64
- package/dist/schemas/common.js.map +0 -1
- package/dist/schemas/index.d.ts +0 -7
- package/dist/schemas/index.d.ts.map +0 -1
- package/dist/schemas/index.js +0 -7
- package/dist/schemas/index.js.map +0 -1
- package/dist/schemas/sync.d.ts +0 -1065
- package/dist/schemas/sync.d.ts.map +0 -1
- package/dist/schemas/sync.js +0 -361
- package/dist/schemas/sync.js.map +0 -1
- package/dist/scopes/index.d.ts +0 -113
- package/dist/scopes/index.d.ts.map +0 -1
- package/dist/scopes/index.js +0 -103
- package/dist/scopes/index.js.map +0 -1
- package/dist/sentry.d.ts +0 -31
- package/dist/sentry.d.ts.map +0 -1
- package/dist/sentry.js +0 -147
- package/dist/sentry.js.map +0 -1
- package/dist/snapshot-chunks.d.ts +0 -110
- package/dist/snapshot-chunks.d.ts.map +0 -1
- package/dist/snapshot-chunks.js +0 -682
- package/dist/snapshot-chunks.js.map +0 -1
- package/dist/sync-packs.d.ts +0 -33
- package/dist/sync-packs.d.ts.map +0 -1
- package/dist/sync-packs.js +0 -821
- package/dist/sync-packs.js.map +0 -1
- package/dist/telemetry.d.ts +0 -114
- package/dist/telemetry.d.ts.map +0 -1
- package/dist/telemetry.js +0 -114
- package/dist/telemetry.js.map +0 -1
- package/dist/transforms.d.ts +0 -146
- package/dist/transforms.d.ts.map +0 -1
- package/dist/transforms.js +0 -155
- package/dist/transforms.js.map +0 -1
- package/dist/types.d.ts +0 -210
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -20
- package/dist/types.js.map +0 -1
- package/dist/utils/bytes.d.ts +0 -4
- package/dist/utils/bytes.d.ts.map +0 -1
- package/dist/utils/bytes.js +0 -66
- package/dist/utils/bytes.js.map +0 -1
- package/dist/utils/compression.d.ts +0 -22
- package/dist/utils/compression.d.ts.map +0 -1
- package/dist/utils/compression.js +0 -129
- package/dist/utils/compression.js.map +0 -1
- package/dist/utils/crypto.d.ts +0 -13
- package/dist/utils/crypto.d.ts.map +0 -1
- package/dist/utils/crypto.js +0 -107
- package/dist/utils/crypto.js.map +0 -1
- package/dist/utils/id.d.ts +0 -3
- package/dist/utils/id.d.ts.map +0 -1
- package/dist/utils/id.js +0 -25
- package/dist/utils/id.js.map +0 -1
- package/dist/utils/index.d.ts +0 -10
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -10
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/internal-runtime.d.ts +0 -16
- package/dist/utils/internal-runtime.d.ts.map +0 -1
- package/dist/utils/internal-runtime.js +0 -14
- package/dist/utils/internal-runtime.js.map +0 -1
- package/dist/utils/object.d.ts +0 -2
- package/dist/utils/object.d.ts.map +0 -1
- package/dist/utils/object.js +0 -4
- package/dist/utils/object.js.map +0 -1
- package/dist/utils/realtime-change-index.d.ts +0 -9
- package/dist/utils/realtime-change-index.d.ts.map +0 -1
- package/dist/utils/realtime-change-index.js +0 -36
- package/dist/utils/realtime-change-index.js.map +0 -1
- package/dist/utils/realtime-connection-registry.d.ts +0 -40
- package/dist/utils/realtime-connection-registry.d.ts.map +0 -1
- package/dist/utils/realtime-connection-registry.js +0 -237
- package/dist/utils/realtime-connection-registry.js.map +0 -1
- package/dist/utils/table-registry.d.ts +0 -10
- package/dist/utils/table-registry.d.ts.map +0 -1
- package/dist/utils/table-registry.js +0 -54
- package/dist/utils/table-registry.js.map +0 -1
- package/dist/utils/url.d.ts +0 -3
- package/dist/utils/url.d.ts.map +0 -1
- package/dist/utils/url.js +0 -20
- package/dist/utils/url.js.map +0 -1
- package/src/blobs.ts +0 -219
- package/src/column-codecs.ts +0 -262
- package/src/conflict.ts +0 -92
- package/src/database.ts +0 -21
- package/src/dialect.ts +0 -8
- package/src/error-responses.ts +0 -423
- package/src/http/api-client.ts +0 -39
- package/src/http/blob.ts +0 -95
- package/src/http/generated/api.ts +0 -5241
- package/src/http/index.ts +0 -365
- package/src/http/shared.ts +0 -220
- package/src/http/transport-client.ts +0 -314
- package/src/kysely-column-codecs.ts +0 -585
- package/src/logger.ts +0 -38
- package/src/proxy/index.ts +0 -57
- package/src/schemas/blobs.ts +0 -110
- package/src/schemas/common.ts +0 -89
- package/src/schemas/index.ts +0 -7
- package/src/schemas/sync.ts +0 -517
- package/src/scopes/index.ts +0 -237
- package/src/sentry.ts +0 -200
- package/src/snapshot-chunks.ts +0 -964
- package/src/sync-packs.ts +0 -1096
- package/src/telemetry.ts +0 -243
- package/src/transforms.ts +0 -256
- package/src/types.ts +0 -267
- package/src/utils/bytes.ts +0 -75
- package/src/utils/compression.ts +0 -187
- package/src/utils/crypto.ts +0 -146
- package/src/utils/id.ts +0 -34
- package/src/utils/index.ts +0 -9
- package/src/utils/internal-runtime.ts +0 -39
- package/src/utils/object.ts +0 -3
- package/src/utils/realtime-change-index.ts +0 -44
- package/src/utils/realtime-connection-registry.ts +0 -286
- package/src/utils/table-registry.ts +0 -67
- package/src/utils/url.ts +0 -29
package/dist/http/shared.d.ts
DELETED
|
@@ -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"}
|
package/dist/http/shared.js
DELETED
|
@@ -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
|
package/dist/http/shared.js.map
DELETED
|
@@ -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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"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -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"}
|