@livestore/sync-s2 0.0.0-snapshot-446f5de211c4578498f20693bd2998869be3e796
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/LICENSE +201 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/api-schema.d.ts +32 -0
- package/dist/api-schema.d.ts.map +1 -0
- package/dist/api-schema.js +17 -0
- package/dist/api-schema.js.map +1 -0
- package/dist/api-schema.test.d.ts +2 -0
- package/dist/api-schema.test.d.ts.map +1 -0
- package/dist/api-schema.test.js +20 -0
- package/dist/api-schema.test.js.map +1 -0
- package/dist/decode.d.ts +11 -0
- package/dist/decode.d.ts.map +1 -0
- package/dist/decode.js +19 -0
- package/dist/decode.js.map +1 -0
- package/dist/http-client-generated.d.ts +1477 -0
- package/dist/http-client-generated.d.ts.map +1 -0
- package/dist/http-client-generated.js +830 -0
- package/dist/http-client-generated.js.map +1 -0
- package/dist/make-s2-url.d.ts +7 -0
- package/dist/make-s2-url.d.ts.map +1 -0
- package/dist/make-s2-url.js +16 -0
- package/dist/make-s2-url.js.map +1 -0
- package/dist/mod.d.ts +8 -0
- package/dist/mod.d.ts.map +1 -0
- package/dist/mod.js +7 -0
- package/dist/mod.js.map +1 -0
- package/dist/s2-proxy-helpers.d.ts +61 -0
- package/dist/s2-proxy-helpers.d.ts.map +1 -0
- package/dist/s2-proxy-helpers.js +143 -0
- package/dist/s2-proxy-helpers.js.map +1 -0
- package/dist/sync-provider.d.ts +60 -0
- package/dist/sync-provider.d.ts.map +1 -0
- package/dist/sync-provider.js +154 -0
- package/dist/sync-provider.js.map +1 -0
- package/dist/types.d.ts +25 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -0
- package/package.json +29 -0
- package/src/api-schema.test.ts +21 -0
- package/src/api-schema.ts +24 -0
- package/src/decode.ts +28 -0
- package/src/http-client-generated.ts +1341 -0
- package/src/make-s2-url.ts +23 -0
- package/src/mod.ts +7 -0
- package/src/s2-proxy-helpers.ts +196 -0
- package/src/sync-provider.ts +267 -0
- package/src/types.ts +26 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"http-client-generated.js","sourceRoot":"","sources":["../src/http-client-generated.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import * as ApiSchema from './api-schema.ts';
|
2
|
+
export declare const makeS2StreamName: (storeId: string) => string;
|
3
|
+
/**
|
4
|
+
* Decode `args` from URLSearchParams using Effect Schema, mirroring Electric's approach.
|
5
|
+
*/
|
6
|
+
export declare const decodePullArgsFromSearchParams: (searchParams: URLSearchParams) => typeof ApiSchema.PullArgs.Type;
|
7
|
+
//# sourceMappingURL=make-s2-url.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"make-s2-url.d.ts","sourceRoot":"","sources":["../src/make-s2-url.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAE5C,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,WAA0D,CAAA;AAE1G;;GAEG;AACH,eAAO,MAAM,8BAA8B,GAAI,cAAc,eAAe,KAAG,OAAO,SAAS,CAAC,QAAQ,CAAC,IAaxG,CAAA"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { shouldNeverHappen } from '@livestore/utils';
|
2
|
+
import { Schema } from '@livestore/utils/effect';
|
3
|
+
import * as ApiSchema from "./api-schema.js";
|
4
|
+
export const makeS2StreamName = (storeId) => storeId.replace(/[^a-zA-Z0-9_-]/g, '-').slice(0, 100);
|
5
|
+
/**
|
6
|
+
* Decode `args` from URLSearchParams using Effect Schema, mirroring Electric's approach.
|
7
|
+
*/
|
8
|
+
export const decodePullArgsFromSearchParams = (searchParams) => {
|
9
|
+
const UrlParamsSchema = Schema.Struct({ args: ApiSchema.ArgsSchema });
|
10
|
+
const argsResult = Schema.decodeUnknownEither(UrlParamsSchema)(Object.fromEntries(searchParams.entries()));
|
11
|
+
if (argsResult._tag === 'Left') {
|
12
|
+
return shouldNeverHappen('Invalid search params provided to decodePullArgsFromSearchParams', searchParams, Object.fromEntries(searchParams.entries()));
|
13
|
+
}
|
14
|
+
return argsResult.right.args;
|
15
|
+
};
|
16
|
+
//# sourceMappingURL=make-s2-url.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"make-s2-url.js","sourceRoot":"","sources":["../src/make-s2-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAE5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAE1G;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,YAA6B,EAAkC,EAAE;IAC9G,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAA;IACrE,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAE1G,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO,iBAAiB,CACtB,kEAAkE,EAClE,YAAY,EACZ,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAC3C,CAAA;IACH,CAAC;IAED,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAA;AAC9B,CAAC,CAAA"}
|
package/dist/mod.d.ts
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
export * as ApiSchema from './api-schema.ts';
|
2
|
+
export * as HttpClientGenerated from './http-client-generated.ts';
|
3
|
+
export * from './make-s2-url.ts';
|
4
|
+
export * from './s2-proxy-helpers.ts';
|
5
|
+
export { makeSyncBackend, type SyncS2Options } from './sync-provider.ts';
|
6
|
+
export type { S2SeqNum as S2SeqNumType, SyncMetadata as SyncMetadataType } from './types.ts';
|
7
|
+
export { S2SeqNum, SyncMetadata, s2SeqNum } from './types.ts';
|
8
|
+
//# sourceMappingURL=mod.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,mBAAmB,MAAM,4BAA4B,CAAA;AACjE,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACxE,YAAY,EAAE,QAAQ,IAAI,YAAY,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC5F,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/mod.js
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
export * as ApiSchema from "./api-schema.js";
|
2
|
+
export * as HttpClientGenerated from "./http-client-generated.js";
|
3
|
+
export * from "./make-s2-url.js";
|
4
|
+
export * from "./s2-proxy-helpers.js";
|
5
|
+
export { makeSyncBackend } from "./sync-provider.js";
|
6
|
+
export { S2SeqNum, SyncMetadata, s2SeqNum } from "./types.js";
|
7
|
+
//# sourceMappingURL=mod.js.map
|
package/dist/mod.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,mBAAmB,MAAM,4BAA4B,CAAA;AACjE,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,eAAe,EAAsB,MAAM,oBAAoB,CAAA;AAExE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA"}
|
@@ -0,0 +1,61 @@
|
|
1
|
+
/**
|
2
|
+
* Helper functions for implementing S2 API proxies.
|
3
|
+
* These utilities reduce duplication when building HTTP endpoints that bridge to S2.
|
4
|
+
*/
|
5
|
+
import type { LiveStoreEvent } from '@livestore/livestore';
|
6
|
+
import type { PullArgs } from './api-schema.ts';
|
7
|
+
/** Configuration for S2 connections */
|
8
|
+
export interface S2Config {
|
9
|
+
basin: string;
|
10
|
+
token: string;
|
11
|
+
/** @default 'https://aws.s2.dev/v1' */
|
12
|
+
accountBase?: string;
|
13
|
+
/** @default 'https://{basin}.b.aws.s2.dev/v1' */
|
14
|
+
basinBase?: string;
|
15
|
+
}
|
16
|
+
export declare const getBasinUrl: (config: S2Config, path: string) => string;
|
17
|
+
export declare const getAccountUrl: (config: S2Config, path: string) => string;
|
18
|
+
export declare const getStreamRecordsUrl: (config: S2Config, stream: string, params?: {
|
19
|
+
seq_num?: number;
|
20
|
+
count?: number;
|
21
|
+
clamp?: boolean;
|
22
|
+
}) => string;
|
23
|
+
export declare const getAuthHeaders: (token: string) => Record<string, string>;
|
24
|
+
export declare const getSSEHeaders: (token: string) => Record<string, string>;
|
25
|
+
export declare const getPushHeaders: (token: string) => Record<string, string>;
|
26
|
+
export declare const ensureBasin: (config: S2Config) => Promise<void>;
|
27
|
+
export declare const ensureStream: (config: S2Config, stream: string) => Promise<void>;
|
28
|
+
export declare const buildPullRequest: ({ config, args, }: {
|
29
|
+
config: S2Config;
|
30
|
+
args: PullArgs;
|
31
|
+
}) => {
|
32
|
+
url: string;
|
33
|
+
headers: Record<string, string>;
|
34
|
+
};
|
35
|
+
export declare const buildPushRequest: ({ config, storeId, batch, }: {
|
36
|
+
config: S2Config;
|
37
|
+
storeId: string;
|
38
|
+
batch: readonly LiveStoreEvent.AnyEncodedGlobal[];
|
39
|
+
}) => {
|
40
|
+
url: string;
|
41
|
+
method: "POST";
|
42
|
+
headers: Record<string, string>;
|
43
|
+
/** JSON-encoded batch */
|
44
|
+
body: string;
|
45
|
+
};
|
46
|
+
export declare const emptyBatchResponse: () => Response;
|
47
|
+
export declare const sseKeepAliveResponse: () => Response;
|
48
|
+
export declare const successResponse: () => Response;
|
49
|
+
export declare const errorResponse: (message: string, status?: number) => Response;
|
50
|
+
export declare const formatBatchForS2: (batch: readonly LiveStoreEvent.AnyEncodedGlobal[]) => {
|
51
|
+
records: {
|
52
|
+
body: string;
|
53
|
+
}[];
|
54
|
+
};
|
55
|
+
export declare const asCurl: (request: {
|
56
|
+
url: string;
|
57
|
+
method: string;
|
58
|
+
headers: Record<string, string>;
|
59
|
+
body?: string;
|
60
|
+
}) => string;
|
61
|
+
//# sourceMappingURL=s2-proxy-helpers.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"s2-proxy-helpers.d.ts","sourceRoot":"","sources":["../src/s2-proxy-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG/C,uCAAuC;AACvC,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAGD,eAAO,MAAM,WAAW,GAAI,QAAQ,QAAQ,EAAE,MAAM,MAAM,KAAG,MAG5D,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,QAAQ,QAAQ,EAAE,MAAM,MAAM,KAAG,MAG9D,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,SAAS;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,KAC7D,MAaF,CAAA;AAGD,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAElE,CAAA;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAIjE,CAAA;AAEF,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAIlE,CAAA;AAGF,eAAO,MAAM,WAAW,GAAU,QAAQ,QAAQ,KAAG,OAAO,CAAC,IAAI,CAahE,CAAA;AAED,eAAO,MAAM,YAAY,GAAU,QAAQ,QAAQ,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAajF,CAAA;AAGD,eAAO,MAAM,gBAAgB,GAAI,mBAG9B;IACD,MAAM,EAAE,QAAQ,CAAA;IAChB,IAAI,EAAE,QAAQ,CAAA;CACf,KAAG;IACF,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAkBhC,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,6BAI9B;IACD,MAAM,EAAE,QAAQ,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,SAAS,cAAc,CAAC,gBAAgB,EAAE,CAAA;CAClD,KAAG;IACF,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAA;CAUb,CAAA;AAGD,eAAO,MAAM,kBAAkB,QAAO,QAIrC,CAAA;AAED,eAAO,MAAM,oBAAoB,QAAO,QAKvC,CAAA;AAED,eAAO,MAAM,eAAe,QAAO,QAKlC,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,EAAE,eAAY,KAAG,QAK7D,CAAA;AAGD,eAAO,MAAM,gBAAgB,GAC3B,OAAO,SAAS,cAAc,CAAC,gBAAgB,EAAE,KAChD;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAI/B,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,WAO9G,CAAA"}
|
@@ -0,0 +1,143 @@
|
|
1
|
+
/**
|
2
|
+
* Helper functions for implementing S2 API proxies.
|
3
|
+
* These utilities reduce duplication when building HTTP endpoints that bridge to S2.
|
4
|
+
*/
|
5
|
+
import { makeS2StreamName } from "./make-s2-url.js";
|
6
|
+
// URL construction helpers
|
7
|
+
export const getBasinUrl = (config, path) => {
|
8
|
+
const base = config.basinBase ?? `https://${config.basin}.b.aws.s2.dev/v1`;
|
9
|
+
return `${base}${path}`;
|
10
|
+
};
|
11
|
+
export const getAccountUrl = (config, path) => {
|
12
|
+
const base = config.accountBase ?? 'https://aws.s2.dev/v1';
|
13
|
+
return `${base}${path}`;
|
14
|
+
};
|
15
|
+
export const getStreamRecordsUrl = (config, stream, params) => {
|
16
|
+
const base = getBasinUrl(config, `/streams/${encodeURIComponent(stream)}/records`);
|
17
|
+
if (!params)
|
18
|
+
return base;
|
19
|
+
const searchParams = new URLSearchParams();
|
20
|
+
/** seq_num - The sequence number to start from. See: https://docs.s2.dev/api#seq_num */
|
21
|
+
if (params.seq_num !== undefined)
|
22
|
+
searchParams.append('seq_num', params.seq_num.toString());
|
23
|
+
/** count - Maximum number of changes to return. See: https://docs.s2.dev/api#count */
|
24
|
+
if (params.count !== undefined)
|
25
|
+
searchParams.append('count', params.count.toString());
|
26
|
+
/** clamp - Whether to clamp the response to the requested count. See: https://docs.s2.dev/api#clamp */
|
27
|
+
if (params.clamp !== undefined)
|
28
|
+
searchParams.append('clamp', params.clamp.toString());
|
29
|
+
return searchParams.toString() ? `${base}?${searchParams}` : base;
|
30
|
+
};
|
31
|
+
// Header helpers
|
32
|
+
export const getAuthHeaders = (token) => ({
|
33
|
+
Authorization: `Bearer ${token}`,
|
34
|
+
});
|
35
|
+
export const getSSEHeaders = (token) => ({
|
36
|
+
...getAuthHeaders(token),
|
37
|
+
accept: 'text/event-stream',
|
38
|
+
's2-format': 'raw',
|
39
|
+
});
|
40
|
+
export const getPushHeaders = (token) => ({
|
41
|
+
...getAuthHeaders(token),
|
42
|
+
'content-type': 'application/json',
|
43
|
+
's2-format': 'raw',
|
44
|
+
});
|
45
|
+
// S2 operation helpers
|
46
|
+
export const ensureBasin = async (config) => {
|
47
|
+
try {
|
48
|
+
await fetch(getAccountUrl(config, '/basins'), {
|
49
|
+
method: 'POST',
|
50
|
+
headers: {
|
51
|
+
...getAuthHeaders(config.token),
|
52
|
+
'content-type': 'application/json',
|
53
|
+
},
|
54
|
+
body: JSON.stringify({ basin: config.basin }),
|
55
|
+
});
|
56
|
+
}
|
57
|
+
catch {
|
58
|
+
// Ignore errors - basin might already exist
|
59
|
+
}
|
60
|
+
};
|
61
|
+
export const ensureStream = async (config, stream) => {
|
62
|
+
try {
|
63
|
+
await fetch(getBasinUrl(config, '/streams'), {
|
64
|
+
method: 'POST',
|
65
|
+
headers: {
|
66
|
+
...getAuthHeaders(config.token),
|
67
|
+
'content-type': 'application/json',
|
68
|
+
},
|
69
|
+
body: JSON.stringify({ stream }),
|
70
|
+
});
|
71
|
+
}
|
72
|
+
catch {
|
73
|
+
// Ignore errors - stream might already exist
|
74
|
+
}
|
75
|
+
};
|
76
|
+
// Request construction helpers
|
77
|
+
export const buildPullRequest = ({ config, args, }) => {
|
78
|
+
const streamName = makeS2StreamName(args.storeId);
|
79
|
+
// Convert cursor (last seen record) to seq_num (where to start reading)
|
80
|
+
// cursor points to last processed record, seq_num needs to be the next record
|
81
|
+
const seq_num = args.s2SeqNum === 'from-start' ? 0 : args.s2SeqNum + 1;
|
82
|
+
if (args.live) {
|
83
|
+
const url = getStreamRecordsUrl(config, streamName, { seq_num, clamp: true });
|
84
|
+
return { url, headers: getSSEHeaders(config.token) };
|
85
|
+
}
|
86
|
+
else {
|
87
|
+
// Non-live pulls also stream over SSE: we request a very large `count` and
|
88
|
+
// rely on S2 closing the stream once the page tail is reached. This keeps
|
89
|
+
// both live and paged reads on the same transport while still giving us a
|
90
|
+
// natural end-of-stream signal.
|
91
|
+
const url = getStreamRecordsUrl(config, streamName, { seq_num, count: Number.MAX_SAFE_INTEGER, clamp: true });
|
92
|
+
return { url, headers: getSSEHeaders(config.token) };
|
93
|
+
}
|
94
|
+
};
|
95
|
+
export const buildPushRequest = ({ config, storeId, batch, }) => {
|
96
|
+
const streamName = makeS2StreamName(storeId);
|
97
|
+
const url = getBasinUrl(config, `/streams/${encodeURIComponent(streamName)}/records`);
|
98
|
+
return {
|
99
|
+
url,
|
100
|
+
method: 'POST',
|
101
|
+
headers: getPushHeaders(config.token),
|
102
|
+
body: JSON.stringify(formatBatchForS2(batch)),
|
103
|
+
};
|
104
|
+
};
|
105
|
+
// Response helpers
|
106
|
+
export const emptyBatchResponse = () => {
|
107
|
+
return new Response(JSON.stringify({ records: [] }), {
|
108
|
+
headers: { 'content-type': 'application/json' },
|
109
|
+
});
|
110
|
+
};
|
111
|
+
export const sseKeepAliveResponse = () => {
|
112
|
+
return new Response('event: ping\ndata: {}\n\n', {
|
113
|
+
status: 200,
|
114
|
+
headers: { 'content-type': 'text/event-stream', 'cache-control': 'no-cache' },
|
115
|
+
});
|
116
|
+
};
|
117
|
+
export const successResponse = () => {
|
118
|
+
const body = { success: true };
|
119
|
+
return new Response(JSON.stringify(body), {
|
120
|
+
headers: { 'content-type': 'application/json' },
|
121
|
+
});
|
122
|
+
};
|
123
|
+
export const errorResponse = (message, status = 500) => {
|
124
|
+
return new Response(JSON.stringify({ error: message }), {
|
125
|
+
status,
|
126
|
+
headers: { 'content-type': 'application/json' },
|
127
|
+
});
|
128
|
+
};
|
129
|
+
// Batch formatting helper
|
130
|
+
export const formatBatchForS2 = (batch) => {
|
131
|
+
return {
|
132
|
+
records: batch.map((ev) => ({ body: JSON.stringify(ev) })),
|
133
|
+
};
|
134
|
+
};
|
135
|
+
export const asCurl = (request) => {
|
136
|
+
const url = request.url;
|
137
|
+
const method = request.method;
|
138
|
+
const headers = Object.entries(request.headers).map(([key, value]) => `-H "${key}: ${value}"`);
|
139
|
+
const body = request.body;
|
140
|
+
const headersStr = headers.join(' ');
|
141
|
+
return `curl -X ${method} ${url} ${headersStr} ${body ? `-d '${body}'` : ''}`;
|
142
|
+
};
|
143
|
+
//# sourceMappingURL=s2-proxy-helpers.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"s2-proxy-helpers.js","sourceRoot":"","sources":["../src/s2-proxy-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAYnD,2BAA2B;AAC3B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAgB,EAAE,IAAY,EAAU,EAAE;IACpE,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,IAAI,WAAW,MAAM,CAAC,KAAK,kBAAkB,CAAA;IAC1E,OAAO,GAAG,IAAI,GAAG,IAAI,EAAE,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAgB,EAAE,IAAY,EAAU,EAAE;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,IAAI,uBAAuB,CAAA;IAC1D,OAAO,GAAG,IAAI,GAAG,IAAI,EAAE,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAgB,EAChB,MAAc,EACd,MAA8D,EACtD,EAAE;IACV,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAClF,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAExB,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAA;IAC1C,wFAAwF;IACxF,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3F,sFAAsF;IACtF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IACrF,uGAAuG;IACvG,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IAErF,OAAO,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACnE,CAAC,CAAA;AAED,iBAAiB;AACjB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAA0B,EAAE,CAAC,CAAC;IACxE,aAAa,EAAE,UAAU,KAAK,EAAE;CACjC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAA0B,EAAE,CAAC,CAAC;IACvE,GAAG,cAAc,CAAC,KAAK,CAAC;IACxB,MAAM,EAAE,mBAAmB;IAC3B,WAAW,EAAE,KAAK;CACnB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAA0B,EAAE,CAAC,CAAC;IACxE,GAAG,cAAc,CAAC,KAAK,CAAC;IACxB,cAAc,EAAE,kBAAkB;IAClC,WAAW,EAAE,KAAK;CACnB,CAAC,CAAA;AAEF,uBAAuB;AACvB,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,MAAgB,EAAiB,EAAE;IACnE,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;YAC5C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/B,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;SAC9C,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;IAC9C,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,MAAgB,EAAE,MAAc,EAAiB,EAAE;IACpF,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;YAC3C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/B,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;SACjC,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,6CAA6C;IAC/C,CAAC;AACH,CAAC,CAAA;AAED,+BAA+B;AAC/B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,MAAM,EACN,IAAI,GAIL,EAGC,EAAE;IACF,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjD,wEAAwE;IACxE,8EAA8E;IAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;IAEtE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7E,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IACtD,CAAC;SAAM,CAAC;QACN,2EAA2E;QAC3E,0EAA0E;QAC1E,0EAA0E;QAC1E,gCAAgC;QAChC,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7G,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IACtD,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,MAAM,EACN,OAAO,EACP,KAAK,GAKN,EAMC,EAAE;IACF,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC5C,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;IACrF,OAAO;QACL,GAAG;QACH,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;QACrC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;KAC9C,CAAA;AACH,CAAC,CAAA;AAED,mBAAmB;AACnB,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAa,EAAE;IAC/C,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE;QACnD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAChD,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAa,EAAE;IACjD,OAAO,IAAI,QAAQ,CAAC,2BAA2B,EAAE;QAC/C,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,UAAU,EAAE;KAC9E,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,GAAa,EAAE;IAC5C,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC9B,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QACxC,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAChD,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,MAAM,GAAG,GAAG,EAAY,EAAE;IACvE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;QACtD,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAChD,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,0BAA0B;AAC1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,KAAiD,EAChB,EAAE;IACnC,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KAC3D,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAwF,EAAE,EAAE;IACjH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;IACvB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,KAAK,GAAG,CAAC,CAAA;IAC9F,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IACzB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACpC,OAAO,WAAW,MAAM,IAAI,GAAG,IAAI,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AAC/E,CAAC,CAAA"}
|
@@ -0,0 +1,60 @@
|
|
1
|
+
/**
|
2
|
+
* S2 Sync Provider — Client Overview
|
3
|
+
*
|
4
|
+
* Architecture
|
5
|
+
* - This package implements LiveStore's SyncBackend over a simple HTTP API that we call the "API proxy".
|
6
|
+
* The proxy exposes three verbs compatible with LiveStore's sync contract:
|
7
|
+
* - GET `/?args=...` → pull pages of events
|
8
|
+
* - POST `/` → push a batch of events
|
9
|
+
* - HEAD `/` → ping (reachability)
|
10
|
+
* - In tests, the API proxy bridges to the hosted S2 service. The proxy remains focused on app logic; all
|
11
|
+
* reusable logic (schemas, helpers, client behavior) is factored into this package.
|
12
|
+
*
|
13
|
+
* LiveStore → S2 mapping
|
14
|
+
* - storeId → S2 stream name (sanitized). Each store maps to one S2 stream.
|
15
|
+
* - LiveStore event (AnyEncodedGlobal) → S2 record body (string). We JSON-encode the event and set it as the
|
16
|
+
* S2 record body. We currently do not rely on S2 record headers.
|
17
|
+
* - Sequence numbers → INDEPENDENT systems. LiveStore's seqNum (in event payload) tracks logical event ordering;
|
18
|
+
* S2's seq_num tracks physical stream position. Both start at 0 but are decoupled by design to support future
|
19
|
+
* optimizations like compaction. SyncMetadata tracks S2's position separately for cursor management.
|
20
|
+
* - Pull (cursor) → S2 `seq_num`. The cursor uses SyncMetadata.s2SeqNum for stream positioning, not LiveStore's seqNum.
|
21
|
+
* - Live pulling → S2 SSE tail. SSE streaming provides real-time event delivery without polling.
|
22
|
+
*
|
23
|
+
* S2 constraints & considerations
|
24
|
+
* - Append limits: respect S2 batch count/byte limits; add retries/backoff for 4xx/5xx.
|
25
|
+
* - Provisioning: basin / stream lifecycle is kept outside of the client (API proxy / service concern).
|
26
|
+
* - Formatting: when speaking to S2 directly, prefer `s2-format: raw` for JSON record bodies and ensure UTF‑8.
|
27
|
+
* - Sequence numbers: S2 assigns `seq_num`; LiveStore's event sequence is preserved inside the event payload.
|
28
|
+
* DO NOT couple these systems together or assume 1:1 correspondence.
|
29
|
+
*
|
30
|
+
* Errors
|
31
|
+
* - push → InvalidPushError on non‑2xx; pull → InvalidPullError on non‑2xx; ping/connect map timeouts to offline.
|
32
|
+
* - The proxy should surface helpful status codes and error bodies.
|
33
|
+
*/
|
34
|
+
import { InvalidPullError, InvalidPushError, SyncBackend } from '@livestore/common';
|
35
|
+
import { type Duration, Schedule } from '@livestore/utils/effect';
|
36
|
+
import type { SyncMetadata } from './types.ts';
|
37
|
+
export interface SyncS2Options {
|
38
|
+
endpoint: string | {
|
39
|
+
push: string;
|
40
|
+
pull: string;
|
41
|
+
ping: string;
|
42
|
+
};
|
43
|
+
ping?: {
|
44
|
+
/** Enable periodic ping; default true */
|
45
|
+
enabled?: boolean;
|
46
|
+
/** Timeout for individual ping request; default 10s */
|
47
|
+
requestTimeout?: Duration.DurationInput;
|
48
|
+
/** Interval between ping requests; default 10s */
|
49
|
+
requestInterval?: Duration.DurationInput;
|
50
|
+
};
|
51
|
+
retry?: {
|
52
|
+
/** Custom retry schedule for non-live pulls (default: 2 recurs, 100ms spaced) */
|
53
|
+
pull?: Schedule.Schedule<number, InvalidPullError>;
|
54
|
+
/** Custom retry schedule for pushes (default: 2 recurs, 100ms spaced) */
|
55
|
+
push?: Schedule.Schedule<number, InvalidPushError>;
|
56
|
+
};
|
57
|
+
}
|
58
|
+
export declare const defaultRetry: Schedule.Schedule<number, unknown, never>;
|
59
|
+
export declare const makeSyncBackend: ({ endpoint, ping: pingOptions, retry }: SyncS2Options) => SyncBackend.SyncBackendConstructor<SyncMetadata>;
|
60
|
+
//# sourceMappingURL=sync-provider.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sync-provider.d.ts","sourceRoot":"","sources":["../src/sync-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAA;AAGpG,OAAO,EACL,KAAK,QAAQ,EAMb,QAAQ,EAKT,MAAM,yBAAyB,CAAA;AAIhC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,WAAW,aAAa;IAC5B,QAAQ,EACJ,MAAM,GACN;QACE,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACL,IAAI,CAAC,EAAE;QACL,yCAAyC;QACzC,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,uDAAuD;QACvD,cAAc,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAA;QACvC,kDAAkD;QAClD,eAAe,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAA;KACzC,CAAA;IACD,KAAK,CAAC,EAAE;QACN,iFAAiF;QACjF,IAAI,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;QAClD,yEAAyE;QACzE,IAAI,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;KACnD,CAAA;CACF;AAED,eAAO,MAAM,YAAY,2CAA6D,CAAA;AAEtF,eAAO,MAAM,eAAe,GACzB,wCAAwC,aAAa,KAAG,WAAW,CAAC,sBAAsB,CAAC,YAAY,CAyLpG,CAAA"}
|
@@ -0,0 +1,154 @@
|
|
1
|
+
/**
|
2
|
+
* S2 Sync Provider — Client Overview
|
3
|
+
*
|
4
|
+
* Architecture
|
5
|
+
* - This package implements LiveStore's SyncBackend over a simple HTTP API that we call the "API proxy".
|
6
|
+
* The proxy exposes three verbs compatible with LiveStore's sync contract:
|
7
|
+
* - GET `/?args=...` → pull pages of events
|
8
|
+
* - POST `/` → push a batch of events
|
9
|
+
* - HEAD `/` → ping (reachability)
|
10
|
+
* - In tests, the API proxy bridges to the hosted S2 service. The proxy remains focused on app logic; all
|
11
|
+
* reusable logic (schemas, helpers, client behavior) is factored into this package.
|
12
|
+
*
|
13
|
+
* LiveStore → S2 mapping
|
14
|
+
* - storeId → S2 stream name (sanitized). Each store maps to one S2 stream.
|
15
|
+
* - LiveStore event (AnyEncodedGlobal) → S2 record body (string). We JSON-encode the event and set it as the
|
16
|
+
* S2 record body. We currently do not rely on S2 record headers.
|
17
|
+
* - Sequence numbers → INDEPENDENT systems. LiveStore's seqNum (in event payload) tracks logical event ordering;
|
18
|
+
* S2's seq_num tracks physical stream position. Both start at 0 but are decoupled by design to support future
|
19
|
+
* optimizations like compaction. SyncMetadata tracks S2's position separately for cursor management.
|
20
|
+
* - Pull (cursor) → S2 `seq_num`. The cursor uses SyncMetadata.s2SeqNum for stream positioning, not LiveStore's seqNum.
|
21
|
+
* - Live pulling → S2 SSE tail. SSE streaming provides real-time event delivery without polling.
|
22
|
+
*
|
23
|
+
* S2 constraints & considerations
|
24
|
+
* - Append limits: respect S2 batch count/byte limits; add retries/backoff for 4xx/5xx.
|
25
|
+
* - Provisioning: basin / stream lifecycle is kept outside of the client (API proxy / service concern).
|
26
|
+
* - Formatting: when speaking to S2 directly, prefer `s2-format: raw` for JSON record bodies and ensure UTF‑8.
|
27
|
+
* - Sequence numbers: S2 assigns `seq_num`; LiveStore's event sequence is preserved inside the event payload.
|
28
|
+
* DO NOT couple these systems together or assume 1:1 correspondence.
|
29
|
+
*
|
30
|
+
* Errors
|
31
|
+
* - push → InvalidPushError on non‑2xx; pull → InvalidPullError on non‑2xx; ping/connect map timeouts to offline.
|
32
|
+
* - The proxy should surface helpful status codes and error bodies.
|
33
|
+
*/
|
34
|
+
import { InvalidPullError, InvalidPushError, SyncBackend, UnexpectedError } from '@livestore/common';
|
35
|
+
import { shouldNeverHappen } from '@livestore/utils';
|
36
|
+
import { Effect, HttpClient, HttpClientRequest, HttpClientResponse, Option, Schedule, Schema, Sse, Stream, SubscriptionRef, } from '@livestore/utils/effect';
|
37
|
+
import * as ApiSchema from "./api-schema.js";
|
38
|
+
import { decodeReadBatch } from "./decode.js";
|
39
|
+
import * as HttpClientGenerated from "./http-client-generated.js";
|
40
|
+
export const defaultRetry = Schedule.compose(Schedule.recurs(2), Schedule.spaced(100));
|
41
|
+
export const makeSyncBackend = ({ endpoint, ping: pingOptions, retry }) => ({ storeId, payload }) => Effect.gen(function* () {
|
42
|
+
const isConnected = yield* SubscriptionRef.make(false);
|
43
|
+
const pullEndpoint = typeof endpoint === 'string' ? endpoint : endpoint.pull;
|
44
|
+
const pushEndpoint = typeof endpoint === 'string' ? endpoint : endpoint.push;
|
45
|
+
const pingEndpoint = typeof endpoint === 'string' ? endpoint : endpoint.ping;
|
46
|
+
const httpClient = yield* HttpClient.HttpClient;
|
47
|
+
const pullEndpointHasSameOrigin = pullEndpoint.startsWith('/') ||
|
48
|
+
(globalThis.location !== undefined && globalThis.location.origin === new URL(pullEndpoint).origin);
|
49
|
+
const pingTimeout = pingOptions?.requestTimeout ?? 10_000;
|
50
|
+
const ping = Effect.gen(function* () {
|
51
|
+
yield* httpClient.pipe(HttpClient.filterStatusOk).head(pingEndpoint);
|
52
|
+
yield* SubscriptionRef.set(isConnected, true);
|
53
|
+
}).pipe(UnexpectedError.mapToUnexpectedError, Effect.timeout(pingTimeout), Effect.catchTag('TimeoutException', () => SubscriptionRef.set(isConnected, false)));
|
54
|
+
const pingInterval = pingOptions?.requestInterval ?? 10_000;
|
55
|
+
if (pingOptions?.enabled !== false) {
|
56
|
+
yield* ping.pipe(Effect.repeat(Schedule.spaced(pingInterval)), Effect.tapCauseLogPretty, Effect.forkScoped);
|
57
|
+
}
|
58
|
+
// No need to connect if the pull endpoint has the same origin as the current page
|
59
|
+
const connect = pullEndpointHasSameOrigin
|
60
|
+
? Effect.void
|
61
|
+
: ping.pipe(UnexpectedError.mapToUnexpectedError);
|
62
|
+
const runPullSse = (cursor, live) => {
|
63
|
+
// Extract S2 seqNum from metadata for SSE cursor
|
64
|
+
const s2SeqNum = cursor.pipe(Option.flatMap((_) => _.metadata), Option.map((_) => _.s2SeqNum), Option.getOrElse(() => 'from-start'));
|
65
|
+
const argsJson = Schema.encodeSync(ApiSchema.ArgsSchema)({ storeId, payload, s2SeqNum, live });
|
66
|
+
const url = `${pullEndpoint}?args=${argsJson}`;
|
67
|
+
return httpClient
|
68
|
+
.execute(HttpClientRequest.get(url).pipe(HttpClientRequest.setHeaders({ accept: 'text/event-stream' })))
|
69
|
+
.pipe(HttpClientResponse.stream,
|
70
|
+
// decode text and split into lines
|
71
|
+
Stream.decodeText('utf8'), Stream.pipeThroughChannel(Sse.makeChannel()),
|
72
|
+
// Filter out pings, map errors to stream failures
|
73
|
+
Stream.mapEffect(Effect.fnUntraced(function* (msg) {
|
74
|
+
const evt = msg.event.toLowerCase();
|
75
|
+
if (evt === 'ping')
|
76
|
+
return Option.none();
|
77
|
+
if (evt === 'error') {
|
78
|
+
return yield* new InvalidPullError({ cause: new Error(`SSE error: ${msg.data}`) });
|
79
|
+
}
|
80
|
+
if (evt === 'batch') {
|
81
|
+
const readBatch = yield* Schema.decode(Schema.parseJson(HttpClientGenerated.ReadBatch))(msg.data);
|
82
|
+
const batch = decodeReadBatch(readBatch);
|
83
|
+
const lastSeqNum = batch.at(-1)?.eventEncoded.seqNum;
|
84
|
+
const tailSeqNum = readBatch.tail?.seq_num;
|
85
|
+
const remaining = lastSeqNum !== undefined && tailSeqNum !== undefined ? tailSeqNum - lastSeqNum : undefined;
|
86
|
+
return Option.some({
|
87
|
+
batch,
|
88
|
+
pageInfo: remaining !== undefined && remaining > 0
|
89
|
+
? SyncBackend.pageInfoMoreKnown(remaining)
|
90
|
+
: SyncBackend.pageInfoNoMore,
|
91
|
+
});
|
92
|
+
}
|
93
|
+
// emitted when reached the end of the stream
|
94
|
+
if (evt === 'message' && msg.data === '[DONE]') {
|
95
|
+
return Option.none();
|
96
|
+
}
|
97
|
+
return shouldNeverHappen(`Unexpected SSE event: ${evt}`, msg);
|
98
|
+
})), Stream.filterMap((_) => _), // filter out Option.none()
|
99
|
+
Stream.mapError((cause) => (cause._tag === 'InvalidPullError' ? cause : new InvalidPullError({ cause }))), Stream.retry(retry?.pull ?? defaultRetry));
|
100
|
+
};
|
101
|
+
const ssePull = (startCursor) => {
|
102
|
+
const computeNextCursor = (lastItem, current) => lastItem.pipe(Option.flatMap((item) => {
|
103
|
+
const lastBatchItem = item.batch.at(-1);
|
104
|
+
if (!lastBatchItem)
|
105
|
+
return Option.none();
|
106
|
+
return Option.some({
|
107
|
+
eventSequenceNumber: lastBatchItem.eventEncoded.seqNum,
|
108
|
+
metadata: lastBatchItem.metadata,
|
109
|
+
});
|
110
|
+
}), Option.orElse(() => current));
|
111
|
+
const loop = (cursor, isFirst) => {
|
112
|
+
const sseStream = (live) => runPullSse(cursor, live).pipe(Stream.emitIfEmpty({
|
113
|
+
batch: [],
|
114
|
+
pageInfo: SyncBackend.pageInfoNoMore,
|
115
|
+
}));
|
116
|
+
const stream = isFirst ? sseStream(false) : sseStream(true);
|
117
|
+
return stream.pipe(
|
118
|
+
// Reconnect from last item if stream
|
119
|
+
Stream.concatWithLastElement((lastItem) => loop(computeNextCursor(lastItem, cursor), false)));
|
120
|
+
};
|
121
|
+
return loop(startCursor, true);
|
122
|
+
};
|
123
|
+
return SyncBackend.of({
|
124
|
+
connect,
|
125
|
+
pull: (cursor, options) => {
|
126
|
+
if (options?.live) {
|
127
|
+
return ssePull(cursor);
|
128
|
+
}
|
129
|
+
else {
|
130
|
+
return runPullSse(cursor, false).pipe(Stream.emitIfEmpty({
|
131
|
+
batch: [],
|
132
|
+
pageInfo: SyncBackend.pageInfoNoMore,
|
133
|
+
}));
|
134
|
+
}
|
135
|
+
},
|
136
|
+
push: (batch) => HttpClientRequest.schemaBodyJson(ApiSchema.PushPayload)(HttpClientRequest.post(pushEndpoint), {
|
137
|
+
storeId,
|
138
|
+
batch,
|
139
|
+
}).pipe(Effect.andThen(httpClient.pipe(HttpClient.filterStatusOk).execute), Effect.andThen(HttpClientResponse.schemaBodyJson(ApiSchema.PushResponse)), Effect.mapError((cause) => InvalidPushError.make({ cause: UnexpectedError.make({ cause }) })), Effect.retry(retry?.push ?? defaultRetry)),
|
140
|
+
ping,
|
141
|
+
isConnected,
|
142
|
+
metadata: {
|
143
|
+
name: '@livestore/sync-s2',
|
144
|
+
description: 'LiveStore sync backend implementation for S2',
|
145
|
+
protocol: 'http',
|
146
|
+
endpoint,
|
147
|
+
},
|
148
|
+
supports: {
|
149
|
+
pullPageInfoKnown: false,
|
150
|
+
pullLive: true,
|
151
|
+
},
|
152
|
+
});
|
153
|
+
});
|
154
|
+
//# sourceMappingURL=sync-provider.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sync-provider.js","sourceRoot":"","sources":["../src/sync-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAEL,MAAM,EACN,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,EACN,QAAQ,EACR,MAAM,EACN,GAAG,EACH,MAAM,EACN,eAAe,GAChB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,mBAAmB,MAAM,4BAA4B,CAAA;AA2BjE,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AAEtF,MAAM,CAAC,MAAM,eAAe,GAC1B,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAiB,EAAoD,EAAE,CAC5G,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CACvB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtD,MAAM,YAAY,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAA;IAC5E,MAAM,YAAY,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAA;IAC5E,MAAM,YAAY,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAA;IAE5E,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAA;IAE/C,MAAM,yBAAyB,GAC7B,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;QAC5B,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;IAEpG,MAAM,WAAW,GAAG,WAAW,EAAE,cAAc,IAAI,MAAM,CAAA;IAEzD,MAAM,IAAI,GAAkD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC9E,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACpE,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAC,IAAI,CACL,eAAe,CAAC,oBAAoB,EACpC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CACnF,CAAA;IAED,MAAM,YAAY,GAAG,WAAW,EAAE,eAAe,IAAI,MAAM,CAAA;IAC3D,IAAI,WAAW,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;QACnC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IAC7G,CAAC;IAED,kFAAkF;IAClF,MAAM,OAAO,GAAqD,yBAAyB;QACzF,CAAC,CAAC,MAAM,CAAC,IAAI;QACb,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAA;IAEnD,MAAM,UAAU,GAAG,CACjB,MAGE,EACF,IAAa,EAC2D,EAAE;QAC1E,iDAAiD;QACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EACjC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAC7B,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,YAAqB,CAAC,CAC9C,CAAA;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9F,MAAM,GAAG,GAAG,GAAG,YAAY,SAAS,QAAQ,EAAE,CAAA;QAE9C,OAAO,UAAU;aACd,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;aACvG,IAAI,CACH,kBAAkB,CAAC,MAAM;QACzB,mCAAmC;QACnC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EACzB,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5C,kDAAkD;QAClD,MAAM,CAAC,SAAS,CACd,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,GAAG;YAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;YACnC,IAAI,GAAG,KAAK,MAAM;gBAAE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;YACxC,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAC,CAAC,IAAI,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;YACpF,CAAC;YACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBACjG,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;gBAExC,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAA;gBACpD,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,OAAO,CAAA;gBAC1C,MAAM,SAAS,GACb,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;gBAE5F,OAAO,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK;oBACL,QAAQ,EACN,SAAS,KAAK,SAAS,IAAI,SAAS,GAAG,CAAC;wBACtC,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,SAAS,CAAC;wBAC1C,CAAC,CAAC,WAAW,CAAC,cAAc;iBACjC,CAAC,CAAA;YACJ,CAAC;YACD,6CAA6C;YAC7C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/C,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;YACtB,CAAC;YACD,OAAO,iBAAiB,CAAC,yBAAyB,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;QAC/D,CAAC,CAAC,CACH,EACD,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,2BAA2B;QACvD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EACzG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,YAAY,CAAC,CAC1C,CAAA;IACL,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,CACd,WAGE,EACsE,EAAE;QAC1E,MAAM,iBAAiB,GAAG,CACxB,QAA8D,EAC9D,OAGE,EACF,EAAE,CACF,QAAQ,CAAC,IAAI,CACX,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACvC,IAAI,CAAC,aAAa;gBAAE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;YACxC,OAAO,MAAM,CAAC,IAAI,CAAC;gBACjB,mBAAmB,EAAE,aAAa,CAAC,YAAY,CAAC,MAAM;gBACtD,QAAQ,EAAE,aAAa,CAAC,QAAQ;aACjC,CAAC,CAAA;QACJ,CAAC,CAAC,EACF,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAC7B,CAAA;QAEH,MAAM,IAAI,GAAG,CACX,MAGE,EACF,OAAgB,EACwD,EAAE;YAC1E,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,EAAE,CAClC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAC3B,MAAM,CAAC,WAAW,CAAC;gBACjB,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,WAAW,CAAC,cAAc;aACI,CAAC,CAC5C,CAAA;YAEH,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAE3D,OAAO,MAAM,CAAC,IAAI;YAChB,qCAAqC;YACrC,MAAM,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,CAC7F,CAAA;QACH,CAAC,CAAA;QAED,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IAChC,CAAC,CAAA;IAED,OAAO,WAAW,CAAC,EAAE,CAAC;QACpB,OAAO;QACP,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;YACxB,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;YACxB,CAAC;iBAAM,CAAC;gBACN,OAAO,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CACnC,MAAM,CAAC,WAAW,CAAC;oBACjB,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,WAAW,CAAC,cAAc;iBACI,CAAC,CAC5C,CAAA;YACH,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CACd,iBAAiB,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC5F,OAAO;YACP,KAAK;SACN,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAClE,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,EACzE,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7F,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,YAAY,CAAC,CAC1C;QACH,IAAI;QACJ,WAAW;QACX,QAAQ,EAAE;YACR,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,MAAM;YAChB,QAAQ;SACT;QACD,QAAQ,EAAE;YACR,iBAAiB,EAAE,KAAK;YACxB,QAAQ,EAAE,IAAI;SACf;KACF,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/types.d.ts
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
import { Brand, Schema } from '@livestore/utils/effect';
|
2
|
+
/**
|
3
|
+
* Branded type for S2's sequence numbers to ensure type safety
|
4
|
+
* and prevent accidental mixing with LiveStore's sequence numbers.
|
5
|
+
*
|
6
|
+
* S2 sequence numbers:
|
7
|
+
* - Start at 0 for the first record in a stream
|
8
|
+
* - Are assigned sequentially by S2 for each appended record
|
9
|
+
* - Are used for physical stream positioning (reading from a specific point)
|
10
|
+
* - Are completely independent from LiveStore's logical event sequence numbers
|
11
|
+
*/
|
12
|
+
export type S2SeqNum = Brand.Branded<number, 'S2SeqNum'>;
|
13
|
+
export declare const s2SeqNum: Brand.Brand.Constructor<S2SeqNum>;
|
14
|
+
export declare const S2SeqNum: Schema.BrandSchema<number & Brand.Brand<"S2SeqNum">, number, never>;
|
15
|
+
/**
|
16
|
+
* Metadata for tracking S2-specific cursor information.
|
17
|
+
* This is separate from LiveStore's event sequence numbers to maintain
|
18
|
+
* proper abstraction boundaries between storage and application logic.
|
19
|
+
*/
|
20
|
+
export declare const SyncMetadata: Schema.Struct<{
|
21
|
+
/** S2's seq_num for stream positioning */
|
22
|
+
s2SeqNum: Schema.BrandSchema<number & Brand.Brand<"S2SeqNum">, number, never>;
|
23
|
+
}>;
|
24
|
+
export type SyncMetadata = typeof SyncMetadata.Type;
|
25
|
+
//# sourceMappingURL=types.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEvD;;;;;;;;;GASG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;AACxD,eAAO,MAAM,QAAQ,mCAA4B,CAAA;AACjD,eAAO,MAAM,QAAQ,qEAA8E,CAAA;AAEnG;;;;GAIG;AACH,eAAO,MAAM,YAAY;IACvB,0CAA0C;;EAE1C,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA"}
|
package/dist/types.js
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
import { Brand, Schema } from '@livestore/utils/effect';
|
2
|
+
export const s2SeqNum = Brand.nominal();
|
3
|
+
export const S2SeqNum = Schema.fromBrand(s2SeqNum)(Schema.Int.pipe(Schema.greaterThanOrEqualTo(0)));
|
4
|
+
/**
|
5
|
+
* Metadata for tracking S2-specific cursor information.
|
6
|
+
* This is separate from LiveStore's event sequence numbers to maintain
|
7
|
+
* proper abstraction boundaries between storage and application logic.
|
8
|
+
*/
|
9
|
+
export const SyncMetadata = Schema.Struct({
|
10
|
+
/** S2's seq_num for stream positioning */
|
11
|
+
s2SeqNum: S2SeqNum,
|
12
|
+
});
|
13
|
+
//# sourceMappingURL=types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAavD,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAY,CAAA;AACjD,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAEnG;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACxC,0CAA0C;IAC1C,QAAQ,EAAE,QAAQ;CACnB,CAAC,CAAA"}
|