@livestore/sync-s2 0.4.0-dev.18 → 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/http-client-generated.d.ts +8 -8
- 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"}
|
|
@@ -88,11 +88,11 @@ declare const PermittedOperationGroups_base: S.Class<PermittedOperationGroups, {
|
|
|
88
88
|
nullable: true;
|
|
89
89
|
}>;
|
|
90
90
|
}>, never, {
|
|
91
|
-
readonly stream?: ReadWritePermissions | undefined;
|
|
92
|
-
} & {
|
|
93
91
|
readonly account?: ReadWritePermissions | undefined;
|
|
94
92
|
} & {
|
|
95
93
|
readonly basin?: ReadWritePermissions | undefined;
|
|
94
|
+
} & {
|
|
95
|
+
readonly stream?: ReadWritePermissions | undefined;
|
|
96
96
|
}, {}, {}>;
|
|
97
97
|
export declare class PermittedOperationGroups extends PermittedOperationGroups_base {
|
|
98
98
|
}
|
|
@@ -261,9 +261,9 @@ declare const ErrorResponse_base: S.Class<ErrorResponse, {
|
|
|
261
261
|
}>;
|
|
262
262
|
message: typeof S.String;
|
|
263
263
|
}>, never, {
|
|
264
|
-
readonly code?: string | undefined;
|
|
265
|
-
} & {
|
|
266
264
|
readonly message: string;
|
|
265
|
+
} & {
|
|
266
|
+
readonly code?: string | undefined;
|
|
267
267
|
}, {}, {}>;
|
|
268
268
|
export declare class ErrorResponse extends ErrorResponse_base {
|
|
269
269
|
}
|
|
@@ -757,9 +757,9 @@ declare const Scalar_base: S.Class<Scalar, {
|
|
|
757
757
|
*/
|
|
758
758
|
value: typeof S.Number;
|
|
759
759
|
}>, never, {
|
|
760
|
-
readonly value: number;
|
|
761
|
-
} & {
|
|
762
760
|
readonly name: string;
|
|
761
|
+
} & {
|
|
762
|
+
readonly value: number;
|
|
763
763
|
} & {
|
|
764
764
|
readonly unit: "bytes" | "operations";
|
|
765
765
|
}, {}, {}>;
|
|
@@ -1338,9 +1338,9 @@ declare const AppendAck_base: S.Class<AppendAck, {
|
|
|
1338
1338
|
*/
|
|
1339
1339
|
tail: typeof StreamPosition;
|
|
1340
1340
|
}>, never, {
|
|
1341
|
-
readonly end: StreamPosition;
|
|
1342
|
-
} & {
|
|
1343
1341
|
readonly start: StreamPosition;
|
|
1342
|
+
} & {
|
|
1343
|
+
readonly end: StreamPosition;
|
|
1344
1344
|
} & {
|
|
1345
1345
|
readonly tail: StreamPosition;
|
|
1346
1346
|
}, {}, {}>;
|
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/common": "0.4.0-dev.
|
|
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))
|