@livestore/sync-s2 0.4.0-dev.17 → 0.4.0-dev.19
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/dist/.tsbuildinfo +1 -1
- package/dist/api-schema.js +1 -1
- package/dist/api-schema.js.map +1 -1
- package/dist/decode.d.ts +1 -1
- package/dist/decode.d.ts.map +1 -1
- package/dist/decode.js +1 -1
- package/dist/decode.js.map +1 -1
- package/dist/limits.d.ts +2 -2
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js.map +1 -1
- package/dist/limits.test.js.map +1 -1
- package/dist/s2-proxy-helpers.d.ts +1 -1
- package/dist/s2-proxy-helpers.d.ts.map +1 -1
- package/dist/sync-provider.d.ts.map +1 -1
- package/dist/sync-provider.js +6 -6
- package/dist/sync-provider.js.map +1 -1
- package/package.json +4 -4
- package/src/api-schema.ts +1 -1
- package/src/decode.ts +3 -3
- package/src/limits.test.ts +3 -3
- package/src/limits.ts +4 -4
- package/src/s2-proxy-helpers.ts +1 -1
- package/src/sync-provider.ts +10 -10
package/dist/api-schema.js
CHANGED
|
@@ -9,7 +9,7 @@ export const PullArgs = Schema.Struct({
|
|
|
9
9
|
});
|
|
10
10
|
export const PushPayload = Schema.Struct({
|
|
11
11
|
storeId: Schema.String,
|
|
12
|
-
batch: Schema.Array(LiveStoreEvent.
|
|
12
|
+
batch: Schema.Array(LiveStoreEvent.Global.Encoded),
|
|
13
13
|
});
|
|
14
14
|
/** Encoded form for query parameter `args` */
|
|
15
15
|
export const ArgsSchema = Schema.compose(Schema.StringFromUriComponent, Schema.parseJson(PullArgs));
|
package/dist/api-schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-schema.js","sourceRoot":"","sources":["../src/api-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9D,IAAI,EAAE,MAAM,CAAC,OAAO;IACpB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;CAC9C,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"api-schema.js","sourceRoot":"","sources":["../src/api-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9D,IAAI,EAAE,MAAM,CAAC,OAAO;IACpB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;CAC9C,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC;CACnD,CAAC,CAAA;AAKF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;AAEnG,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA"}
|
package/dist/decode.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Option } from '@livestore/utils/effect';
|
|
|
3
3
|
import type * as HttpClientGenerated from './http-client-generated.ts';
|
|
4
4
|
import { S2SeqNum } from './types.ts';
|
|
5
5
|
export declare const decodeReadBatch: (readBatch: typeof HttpClientGenerated.ReadBatch.Type) => ReadonlyArray<{
|
|
6
|
-
eventEncoded: LiveStoreEvent.
|
|
6
|
+
eventEncoded: LiveStoreEvent.Global.Encoded;
|
|
7
7
|
metadata: Option.Option<{
|
|
8
8
|
s2SeqNum: S2SeqNum;
|
|
9
9
|
}>;
|
package/dist/decode.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../src/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAU,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,KAAK,mBAAmB,MAAM,4BAA4B,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAWrC,eAAO,MAAM,eAAe,GAC1B,WAAW,OAAO,mBAAmB,CAAC,SAAS,CAAC,IAAI,KACnD,aAAa,CAAC;IACf,YAAY,EAAE,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../src/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAU,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,KAAK,mBAAmB,MAAM,4BAA4B,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAWrC,eAAO,MAAM,eAAe,GAC1B,WAAW,OAAO,mBAAmB,CAAC,SAAS,CAAC,IAAI,KACnD,aAAa,CAAC;IACf,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;QAAE,QAAQ,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAA;CAChD,CAQA,CAAA"}
|
package/dist/decode.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Option, Schema } from '@livestore/utils/effect';
|
|
|
3
3
|
import { S2SeqNum } from "./types.js";
|
|
4
4
|
const ReadBatchSchema = Schema.Struct({
|
|
5
5
|
records: Schema.Array(Schema.Struct({
|
|
6
|
-
body: Schema.optional(Schema.parseJson(LiveStoreEvent.
|
|
6
|
+
body: Schema.optional(Schema.parseJson(LiveStoreEvent.Global.Encoded)),
|
|
7
7
|
seq_num: S2SeqNum,
|
|
8
8
|
})),
|
|
9
9
|
}).annotations({ title: '@livestore/sync-s2:ReadBatchSchema' });
|
package/dist/decode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../src/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,KAAK,CACnB,MAAM,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../src/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,KAAK,CACnB,MAAM,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtE,OAAO,EAAE,QAAQ;KAClB,CAAC,CACH;CACF,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC,CAAA;AAE/D,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,SAAoD,EAInD,EAAE;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAA;IAC7D,OAAO,OAAO,CAAC,OAAO;SACnB,MAAM,CAAC,CAAC,CAAC,EAAmE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;SACpG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,YAAY,EAAE,CAAC,CAAC,IAAI;QACpB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;KAC/C,CAAC,CAAC,CAAA;AACP,CAAC,CAAA"}
|
package/dist/limits.d.ts
CHANGED
|
@@ -32,10 +32,10 @@ export interface AppendRecordBody {
|
|
|
32
32
|
export declare const computeRecordMeteredBytes: (record: AppendRecordBody) => number;
|
|
33
33
|
export declare const computeBatchMeteredBytes: (records: ReadonlyArray<AppendRecordBody>) => number;
|
|
34
34
|
export interface S2Chunk {
|
|
35
|
-
readonly events: ReadonlyArray<LiveStoreEvent.
|
|
35
|
+
readonly events: ReadonlyArray<LiveStoreEvent.Global.Encoded>;
|
|
36
36
|
readonly records: ReadonlyArray<AppendRecordBody>;
|
|
37
37
|
readonly meteredBytes: number;
|
|
38
38
|
}
|
|
39
|
-
export declare const chunkEventsForS2: (events: ReadonlyArray<LiveStoreEvent.
|
|
39
|
+
export declare const chunkEventsForS2: (events: ReadonlyArray<LiveStoreEvent.Global.Encoded>) => ReadonlyArray<S2Chunk>;
|
|
40
40
|
export {};
|
|
41
41
|
//# sourceMappingURL=limits.d.ts.map
|
package/dist/limits.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAE9D,OAAO,EAAiB,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAI/D;;GAEG;AACH,eAAO,MAAM,wBAAwB,UAAY,CAAA;AAEjD;;GAEG;AACH,eAAO,MAAM,uBAAuB,UAAY,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,qBAAqB,OAAQ,CAAA;;;;;;;;;AAI1C,qBAAa,oBAAqB,SAAQ,yBAKxC;CAAG;AAEL,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpF;AAMD,eAAO,MAAM,yBAAyB,GAAI,QAAQ,gBAAgB,KAAG,MASpE,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,SAAS,aAAa,CAAC,gBAAgB,CAAC,KAAG,MACP,CAAA;AAS7E,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAE9D,OAAO,EAAiB,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAI/D;;GAEG;AACH,eAAO,MAAM,wBAAwB,UAAY,CAAA;AAEjD;;GAEG;AACH,eAAO,MAAM,uBAAuB,UAAY,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,qBAAqB,OAAQ,CAAA;;;;;;;;;AAI1C,qBAAa,oBAAqB,SAAQ,yBAKxC;CAAG;AAEL,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpF;AAMD,eAAO,MAAM,yBAAyB,GAAI,QAAQ,gBAAgB,KAAG,MASpE,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,SAAS,aAAa,CAAC,gBAAgB,CAAC,KAAG,MACP,CAAA;AAS7E,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC7D,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;IACjD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC9B;AAuCD,eAAO,MAAM,gBAAgB,GAAI,QAAQ,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,KAAG,aAAa,CAAC,OAAO,CA+B5G,CAAA"}
|
package/dist/limits.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limits.js","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE/D,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAA,CAAC,QAAQ;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAA,CAAC,QAAQ;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAA;AAE1C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,qBAAqB,EAAE,aAAa,CAAC,CAAA;AAE9F,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,WAAW,EAAwB,CAAC,sBAAsB,EAAE;IAC3G,SAAS,EAAE,SAAS;IACpB,GAAG,EAAE,MAAM,CAAC,MAAM;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CAC5C,CAAC;CAAG;AAOL,gFAAgF;AAChF,iDAAiD;AACjD,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAA;AAEtF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,MAAwB,EAAU,EAAE;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;IACpC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAA;IAClC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EACjF,CAAC,CACF,CAAA;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7E,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAA;AACtD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAwC,EAAU,EAAE,CAC3F,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;AAe7E,+EAA+E;AAC/E,kDAAkD;AAClD,MAAM,uBAAuB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"limits.js","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"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"}
|
package/dist/limits.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limits.test.js","sourceRoot":"","sources":["../src/limits.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,aAAa,CAAA;AAEpB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;AAEjC,MAAM,SAAS,GAAG,CAAC,aAAqB,EAAE,KAAK,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"limits.test.js","sourceRoot":"","sources":["../src/limits.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,aAAa,CAAA;AAEpB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;AAEjC,MAAM,SAAS,GAAG,CAAC,aAAqB,EAAE,KAAK,GAAG,CAAC,EAAiC,EAAE,CAAC,CAAC;IACtF,IAAI,EAAE,SAAS,KAAK,EAAE;IACtB,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;IAC5C,MAAM,EAAE,KAAwC;IAChD,YAAY,EAAE,KAAwC;IACtD,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,SAAS;CACrB,CAAC,CAAA;AAEF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;QAC3D,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,UAAU,CAAA;QACjE,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;QACpF,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAEvC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACxE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,IAAI,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,QAAQ,GAAG,SAAS,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAA;QACvD,MAAM,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAC1E,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -48,7 +48,7 @@ export interface S2PushRequest {
|
|
|
48
48
|
export declare const buildPushRequests: ({ config, storeId, batch, }: {
|
|
49
49
|
config: S2Config;
|
|
50
50
|
storeId: string;
|
|
51
|
-
batch: readonly LiveStoreEvent.
|
|
51
|
+
batch: readonly LiveStoreEvent.Global.Encoded[];
|
|
52
52
|
}) => ReadonlyArray<S2PushRequest>;
|
|
53
53
|
export declare const emptyBatchResponse: () => Response;
|
|
54
54
|
export declare const sseKeepAliveResponse: () => Response;
|
|
@@ -1 +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;AAI/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,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAC5E,MAeF,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;CAiBhC,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,6BAI/B;IACD,MAAM,EAAE,QAAQ,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,SAAS,cAAc,CAAC,
|
|
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;AAI/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,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAC5E,MAeF,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;CAiBhC,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,6BAI/B;IACD,MAAM,EAAE,QAAQ,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,SAAS,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;CAChD,KAAG,aAAa,CAAC,aAAa,CAW9B,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"}
|
|
@@ -1 +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,
|
|
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,EAAgB,MAAM,mBAAmB,CAAA;AAGjG,OAAO,EACL,KAAK,QAAQ,EAMb,QAAQ,EAKT,MAAM,yBAAyB,CAAA;AAKhC,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,CAoOpG,CAAA"}
|
package/dist/sync-provider.js
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
* - push → InvalidPushError on non‑2xx; pull → InvalidPullError on non‑2xx; ping/connect map timeouts to offline.
|
|
32
32
|
* - The proxy should surface helpful status codes and error bodies.
|
|
33
33
|
*/
|
|
34
|
-
import { InvalidPullError, InvalidPushError, SyncBackend,
|
|
34
|
+
import { InvalidPullError, InvalidPushError, SyncBackend, UnknownError } from '@livestore/common';
|
|
35
35
|
import { shouldNeverHappen } from '@livestore/utils';
|
|
36
36
|
import { Effect, HttpClient, HttpClientRequest, HttpClientResponse, Option, Schedule, Schema, Sse, Stream, SubscriptionRef, } from '@livestore/utils/effect';
|
|
37
37
|
import * as ApiSchema from "./api-schema.js";
|
|
@@ -51,7 +51,7 @@ export const makeSyncBackend = ({ endpoint, ping: pingOptions, retry }) => ({ st
|
|
|
51
51
|
const ping = Effect.gen(function* () {
|
|
52
52
|
yield* httpClient.pipe(HttpClient.filterStatusOk).head(pingEndpoint);
|
|
53
53
|
yield* SubscriptionRef.set(isConnected, true);
|
|
54
|
-
}).pipe(
|
|
54
|
+
}).pipe(UnknownError.mapToUnknownError, Effect.timeout(pingTimeout), Effect.catchTag('TimeoutException', () => SubscriptionRef.set(isConnected, false)));
|
|
55
55
|
const pingInterval = pingOptions?.requestInterval ?? 10_000;
|
|
56
56
|
if (pingOptions?.enabled !== false) {
|
|
57
57
|
yield* ping.pipe(Effect.repeat(Schedule.spaced(pingInterval)), Effect.tapCauseLogPretty, Effect.forkScoped);
|
|
@@ -59,7 +59,7 @@ export const makeSyncBackend = ({ endpoint, ping: pingOptions, retry }) => ({ st
|
|
|
59
59
|
// No need to connect if the pull endpoint has the same origin as the current page
|
|
60
60
|
const connect = pullEndpointHasSameOrigin
|
|
61
61
|
? Effect.void
|
|
62
|
-
: ping.pipe(
|
|
62
|
+
: ping.pipe(UnknownError.mapToUnknownError);
|
|
63
63
|
const runPullSse = (cursor, live) => {
|
|
64
64
|
// Extract S2 seqNum from metadata for SSE cursor
|
|
65
65
|
const s2SeqNum = cursor.pipe(Option.flatMap((_) => _.metadata), Option.map((_) => _.s2SeqNum), Option.getOrElse(() => 'from-start'));
|
|
@@ -141,7 +141,7 @@ export const makeSyncBackend = ({ endpoint, ping: pingOptions, retry }) => ({ st
|
|
|
141
141
|
if (cause instanceof InvalidPushError) {
|
|
142
142
|
return cause;
|
|
143
143
|
}
|
|
144
|
-
if (cause instanceof
|
|
144
|
+
if (cause instanceof UnknownError) {
|
|
145
145
|
return new InvalidPushError({ cause });
|
|
146
146
|
}
|
|
147
147
|
if (cause instanceof S2LimitExceededError) {
|
|
@@ -149,7 +149,7 @@ export const makeSyncBackend = ({ endpoint, ping: pingOptions, retry }) => ({ st
|
|
|
149
149
|
? `S2 record exceeded ${cause.max} metered bytes (actual: ${cause.actual})`
|
|
150
150
|
: `S2 batch exceeded ${cause.max} (type: ${cause.limitType}, actual: ${cause.actual})`;
|
|
151
151
|
return new InvalidPushError({
|
|
152
|
-
cause: new
|
|
152
|
+
cause: new UnknownError({
|
|
153
153
|
cause,
|
|
154
154
|
note,
|
|
155
155
|
payload: {
|
|
@@ -161,7 +161,7 @@ export const makeSyncBackend = ({ endpoint, ping: pingOptions, retry }) => ({ st
|
|
|
161
161
|
}),
|
|
162
162
|
});
|
|
163
163
|
}
|
|
164
|
-
return new InvalidPushError({ cause: new
|
|
164
|
+
return new InvalidPushError({ cause: new UnknownError({ cause }) });
|
|
165
165
|
};
|
|
166
166
|
const chunks = yield* Effect.sync(() => chunkEventsForS2(batch)).pipe(Effect.mapError(makeInvalidPushError));
|
|
167
167
|
for (const chunk of chunks) {
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"sync-provider.js","sourceRoot":"","sources":["../src/sync-provider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livestore/sync-s2",
|
|
3
|
-
"version": "0.4.0-dev.
|
|
3
|
+
"version": "0.4.0-dev.19",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"exports": {
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"./s2-proxy-helpers": "./dist/s2-proxy-helpers.js"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@livestore/
|
|
12
|
-
"@livestore/
|
|
13
|
-
"@livestore/
|
|
11
|
+
"@livestore/common": "0.4.0-dev.19",
|
|
12
|
+
"@livestore/utils": "0.4.0-dev.19",
|
|
13
|
+
"@livestore/livestore": "0.4.0-dev.19"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {},
|
|
16
16
|
"files": [
|
package/src/api-schema.ts
CHANGED
|
@@ -11,7 +11,7 @@ export const PullArgs = Schema.Struct({
|
|
|
11
11
|
|
|
12
12
|
export const PushPayload = Schema.Struct({
|
|
13
13
|
storeId: Schema.String,
|
|
14
|
-
batch: Schema.Array(LiveStoreEvent.
|
|
14
|
+
batch: Schema.Array(LiveStoreEvent.Global.Encoded),
|
|
15
15
|
})
|
|
16
16
|
|
|
17
17
|
export type PullArgs = typeof PullArgs.Type
|
package/src/decode.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { S2SeqNum } from './types.ts'
|
|
|
6
6
|
const ReadBatchSchema = Schema.Struct({
|
|
7
7
|
records: Schema.Array(
|
|
8
8
|
Schema.Struct({
|
|
9
|
-
body: Schema.optional(Schema.parseJson(LiveStoreEvent.
|
|
9
|
+
body: Schema.optional(Schema.parseJson(LiveStoreEvent.Global.Encoded)),
|
|
10
10
|
seq_num: S2SeqNum,
|
|
11
11
|
}),
|
|
12
12
|
),
|
|
@@ -15,12 +15,12 @@ const ReadBatchSchema = Schema.Struct({
|
|
|
15
15
|
export const decodeReadBatch = (
|
|
16
16
|
readBatch: typeof HttpClientGenerated.ReadBatch.Type,
|
|
17
17
|
): ReadonlyArray<{
|
|
18
|
-
eventEncoded: LiveStoreEvent.
|
|
18
|
+
eventEncoded: LiveStoreEvent.Global.Encoded
|
|
19
19
|
metadata: Option.Option<{ s2SeqNum: S2SeqNum }>
|
|
20
20
|
}> => {
|
|
21
21
|
const decoded = Schema.decodeSync(ReadBatchSchema)(readBatch)
|
|
22
22
|
return decoded.records
|
|
23
|
-
.filter((r): r is { body: LiveStoreEvent.
|
|
23
|
+
.filter((r): r is { body: LiveStoreEvent.Global.Encoded; seq_num: S2SeqNum } => r.body !== undefined)
|
|
24
24
|
.map((r) => ({
|
|
25
25
|
eventEncoded: r.body,
|
|
26
26
|
metadata: Option.some({ s2SeqNum: r.seq_num }),
|
package/src/limits.test.ts
CHANGED
|
@@ -10,11 +10,11 @@ import {
|
|
|
10
10
|
|
|
11
11
|
const encoder = new TextEncoder()
|
|
12
12
|
|
|
13
|
-
const makeEvent = (payloadLength: number, index = 0): LiveStoreEvent.
|
|
13
|
+
const makeEvent = (payloadLength: number, index = 0): LiveStoreEvent.Global.Encoded => ({
|
|
14
14
|
name: `event-${index}`,
|
|
15
15
|
args: { payload: 'x'.repeat(payloadLength) },
|
|
16
|
-
seqNum: index as EventSequenceNumber.
|
|
17
|
-
parentSeqNum: index as EventSequenceNumber.
|
|
16
|
+
seqNum: index as EventSequenceNumber.Global.Type,
|
|
17
|
+
parentSeqNum: index as EventSequenceNumber.Global.Type,
|
|
18
18
|
clientId: 'client',
|
|
19
19
|
sessionId: 'session',
|
|
20
20
|
})
|
package/src/limits.ts
CHANGED
|
@@ -52,21 +52,21 @@ export const computeBatchMeteredBytes = (records: ReadonlyArray<AppendRecordBody
|
|
|
52
52
|
records.reduce((acc, record) => acc + computeRecordMeteredBytes(record), 0)
|
|
53
53
|
|
|
54
54
|
interface PreparedEvent {
|
|
55
|
-
readonly event: LiveStoreEvent.
|
|
55
|
+
readonly event: LiveStoreEvent.Global.Encoded
|
|
56
56
|
readonly record: AppendRecordBody
|
|
57
57
|
readonly meteredBytes: number
|
|
58
58
|
readonly index: number
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
export interface S2Chunk {
|
|
62
|
-
readonly events: ReadonlyArray<LiveStoreEvent.
|
|
62
|
+
readonly events: ReadonlyArray<LiveStoreEvent.Global.Encoded>
|
|
63
63
|
readonly records: ReadonlyArray<AppendRecordBody>
|
|
64
64
|
readonly meteredBytes: number
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
// Pre-stringify events and pre-compute per-record metered bytes so we only pay
|
|
68
68
|
// the JSON cost once when chunking large batches.
|
|
69
|
-
const convertEventsToPrepared = (events: ReadonlyArray<LiveStoreEvent.
|
|
69
|
+
const convertEventsToPrepared = (events: ReadonlyArray<LiveStoreEvent.Global.Encoded>): PreparedEvent[] =>
|
|
70
70
|
events.map((event, index) => {
|
|
71
71
|
const body = JSON.stringify(event)
|
|
72
72
|
const record: AppendRecordBody = { body }
|
|
@@ -101,7 +101,7 @@ const mapPreparedChunks = (chunks: Chunk.Chunk<Chunk.Chunk<PreparedEvent>>): Rea
|
|
|
101
101
|
}
|
|
102
102
|
})
|
|
103
103
|
|
|
104
|
-
export const chunkEventsForS2 = (events: ReadonlyArray<LiveStoreEvent.
|
|
104
|
+
export const chunkEventsForS2 = (events: ReadonlyArray<LiveStoreEvent.Global.Encoded>): ReadonlyArray<S2Chunk> => {
|
|
105
105
|
if (events.length === 0) {
|
|
106
106
|
return []
|
|
107
107
|
}
|
package/src/s2-proxy-helpers.ts
CHANGED
|
@@ -146,7 +146,7 @@ export const buildPushRequests = ({
|
|
|
146
146
|
}: {
|
|
147
147
|
config: S2Config
|
|
148
148
|
storeId: string
|
|
149
|
-
batch: readonly LiveStoreEvent.
|
|
149
|
+
batch: readonly LiveStoreEvent.Global.Encoded[]
|
|
150
150
|
}): ReadonlyArray<S2PushRequest> => {
|
|
151
151
|
const streamName = makeS2StreamName(storeId)
|
|
152
152
|
const url = getBasinUrl(config, `/streams/${encodeURIComponent(streamName)}/records`)
|
package/src/sync-provider.ts
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
* - push → InvalidPushError on non‑2xx; pull → InvalidPullError on non‑2xx; ping/connect map timeouts to offline.
|
|
32
32
|
* - The proxy should surface helpful status codes and error bodies.
|
|
33
33
|
*/
|
|
34
|
-
import { InvalidPullError, InvalidPushError, SyncBackend,
|
|
34
|
+
import { InvalidPullError, InvalidPushError, SyncBackend, UnknownError } from '@livestore/common'
|
|
35
35
|
import type { EventSequenceNumber } from '@livestore/common/schema'
|
|
36
36
|
import { shouldNeverHappen } from '@livestore/utils'
|
|
37
37
|
import {
|
|
@@ -100,7 +100,7 @@ export const makeSyncBackend =
|
|
|
100
100
|
yield* httpClient.pipe(HttpClient.filterStatusOk).head(pingEndpoint)
|
|
101
101
|
yield* SubscriptionRef.set(isConnected, true)
|
|
102
102
|
}).pipe(
|
|
103
|
-
|
|
103
|
+
UnknownError.mapToUnknownError,
|
|
104
104
|
Effect.timeout(pingTimeout),
|
|
105
105
|
Effect.catchTag('TimeoutException', () => SubscriptionRef.set(isConnected, false)),
|
|
106
106
|
)
|
|
@@ -113,11 +113,11 @@ export const makeSyncBackend =
|
|
|
113
113
|
// No need to connect if the pull endpoint has the same origin as the current page
|
|
114
114
|
const connect: SyncBackend.SyncBackend<SyncMetadata>['connect'] = pullEndpointHasSameOrigin
|
|
115
115
|
? Effect.void
|
|
116
|
-
: ping.pipe(
|
|
116
|
+
: ping.pipe(UnknownError.mapToUnknownError)
|
|
117
117
|
|
|
118
118
|
const runPullSse = (
|
|
119
119
|
cursor: Option.Option<{
|
|
120
|
-
eventSequenceNumber: EventSequenceNumber.
|
|
120
|
+
eventSequenceNumber: EventSequenceNumber.Global.Type
|
|
121
121
|
metadata: Option.Option<SyncMetadata>
|
|
122
122
|
}>,
|
|
123
123
|
live: boolean,
|
|
@@ -184,14 +184,14 @@ export const makeSyncBackend =
|
|
|
184
184
|
|
|
185
185
|
const ssePull = (
|
|
186
186
|
startCursor: Option.Option<{
|
|
187
|
-
eventSequenceNumber: EventSequenceNumber.
|
|
187
|
+
eventSequenceNumber: EventSequenceNumber.Global.Type
|
|
188
188
|
metadata: Option.Option<SyncMetadata>
|
|
189
189
|
}>,
|
|
190
190
|
): Stream.Stream<SyncBackend.PullResItem<SyncMetadata>, InvalidPullError> => {
|
|
191
191
|
const computeNextCursor = (
|
|
192
192
|
lastItem: Option.Option<SyncBackend.PullResItem<SyncMetadata>>,
|
|
193
193
|
current: Option.Option<{
|
|
194
|
-
eventSequenceNumber: EventSequenceNumber.
|
|
194
|
+
eventSequenceNumber: EventSequenceNumber.Global.Type
|
|
195
195
|
metadata: Option.Option<SyncMetadata>
|
|
196
196
|
}>,
|
|
197
197
|
) =>
|
|
@@ -209,7 +209,7 @@ export const makeSyncBackend =
|
|
|
209
209
|
|
|
210
210
|
const loop = (
|
|
211
211
|
cursor: Option.Option<{
|
|
212
|
-
eventSequenceNumber: EventSequenceNumber.
|
|
212
|
+
eventSequenceNumber: EventSequenceNumber.Global.Type
|
|
213
213
|
metadata: Option.Option<SyncMetadata>
|
|
214
214
|
}>,
|
|
215
215
|
isFirst: boolean,
|
|
@@ -254,7 +254,7 @@ export const makeSyncBackend =
|
|
|
254
254
|
return cause
|
|
255
255
|
}
|
|
256
256
|
|
|
257
|
-
if (cause instanceof
|
|
257
|
+
if (cause instanceof UnknownError) {
|
|
258
258
|
return new InvalidPushError({ cause })
|
|
259
259
|
}
|
|
260
260
|
|
|
@@ -265,7 +265,7 @@ export const makeSyncBackend =
|
|
|
265
265
|
: `S2 batch exceeded ${cause.max} (type: ${cause.limitType}, actual: ${cause.actual})`
|
|
266
266
|
|
|
267
267
|
return new InvalidPushError({
|
|
268
|
-
cause: new
|
|
268
|
+
cause: new UnknownError({
|
|
269
269
|
cause,
|
|
270
270
|
note,
|
|
271
271
|
payload: {
|
|
@@ -278,7 +278,7 @@ export const makeSyncBackend =
|
|
|
278
278
|
})
|
|
279
279
|
}
|
|
280
280
|
|
|
281
|
-
return new InvalidPushError({ cause: new
|
|
281
|
+
return new InvalidPushError({ cause: new UnknownError({ cause }) })
|
|
282
282
|
}
|
|
283
283
|
|
|
284
284
|
const chunks = yield* Effect.sync(() => chunkEventsForS2(batch)).pipe(Effect.mapError(makeInvalidPushError))
|