@livestore/sync-s2 0.4.0 → 0.5.0-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/api-schema.d.ts +19 -19
- package/dist/api-schema.d.ts.map +1 -1
- package/dist/api-schema.js +3 -3
- package/dist/api-schema.js.map +1 -1
- package/dist/api-schema.test.js +15 -10
- package/dist/api-schema.test.js.map +1 -1
- package/dist/decode.js +3 -3
- package/dist/decode.js.map +1 -1
- package/dist/http-client-generated.d.ts +337 -1051
- package/dist/http-client-generated.d.ts.map +1 -1
- package/dist/http-client-generated.js +223 -220
- package/dist/http-client-generated.js.map +1 -1
- package/dist/limits.d.ts +6 -8
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js +8 -9
- package/dist/limits.js.map +1 -1
- package/dist/limits.test.js.map +1 -1
- package/dist/make-s2-url.js +4 -4
- package/dist/make-s2-url.js.map +1 -1
- package/dist/sync-provider.d.ts +3 -3
- package/dist/sync-provider.d.ts.map +1 -1
- package/dist/sync-provider.js +8 -7
- package/dist/sync-provider.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +29 -48
- package/src/api-schema.test.ts +15 -11
- package/src/api-schema.ts +3 -3
- package/src/decode.ts +3 -3
- package/src/http-client-generated.ts +166 -258
- package/src/limits.test.ts +1 -2
- package/src/limits.ts +17 -19
- package/src/make-s2-url.ts +4 -4
- package/src/sync-provider.ts +13 -12
- package/src/types.ts +1 -1
package/dist/api-schema.d.ts
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import { Schema } from '@livestore/utils/effect';
|
|
2
2
|
export declare const PullArgs: Schema.Struct<{
|
|
3
|
-
storeId:
|
|
4
|
-
s2SeqNum: Schema.Union<[Schema.
|
|
5
|
-
live:
|
|
6
|
-
payload: Schema.
|
|
3
|
+
readonly storeId: Schema.String;
|
|
4
|
+
readonly s2SeqNum: Schema.Union<readonly [Schema.brand<Schema.Int, "S2SeqNum">, Schema.Literal<"from-start">]>;
|
|
5
|
+
readonly live: Schema.Boolean;
|
|
6
|
+
readonly payload: Schema.optional<Schema.Codec<Schema.Json, Schema.Json, never, never>>;
|
|
7
7
|
}>;
|
|
8
8
|
export declare const PushPayload: Schema.Struct<{
|
|
9
|
-
storeId:
|
|
10
|
-
batch: Schema
|
|
11
|
-
name:
|
|
12
|
-
args:
|
|
13
|
-
seqNum: Schema.
|
|
14
|
-
parentSeqNum: Schema.
|
|
15
|
-
clientId:
|
|
16
|
-
sessionId:
|
|
9
|
+
readonly storeId: Schema.String;
|
|
10
|
+
readonly batch: Schema.$Array<Schema.Struct<{
|
|
11
|
+
readonly name: Schema.String;
|
|
12
|
+
readonly args: Schema.Any;
|
|
13
|
+
readonly seqNum: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
|
|
14
|
+
readonly parentSeqNum: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
|
|
15
|
+
readonly clientId: Schema.String;
|
|
16
|
+
readonly sessionId: Schema.String;
|
|
17
17
|
}>>;
|
|
18
18
|
}>;
|
|
19
19
|
export type PullArgs = typeof PullArgs.Type;
|
|
20
20
|
export type PushPayload = typeof PushPayload.Type;
|
|
21
21
|
/** Encoded form for query parameter `args` */
|
|
22
|
-
export declare const ArgsSchema: Schema.
|
|
23
|
-
storeId:
|
|
24
|
-
s2SeqNum: Schema.Union<[Schema.
|
|
25
|
-
live:
|
|
26
|
-
payload: Schema.
|
|
27
|
-
}
|
|
22
|
+
export declare const ArgsSchema: Schema.compose<Schema.fromJsonString<Schema.Struct<{
|
|
23
|
+
readonly storeId: Schema.String;
|
|
24
|
+
readonly s2SeqNum: Schema.Union<readonly [Schema.brand<Schema.Int, "S2SeqNum">, Schema.Literal<"from-start">]>;
|
|
25
|
+
readonly live: Schema.Boolean;
|
|
26
|
+
readonly payload: Schema.optional<Schema.Codec<Schema.Json, Schema.Json, never, never>>;
|
|
27
|
+
}>>, Schema.StringFromUriComponent>;
|
|
28
28
|
export declare const PushResponse: Schema.Struct<{
|
|
29
|
-
success:
|
|
29
|
+
readonly success: Schema.Boolean;
|
|
30
30
|
}>;
|
|
31
31
|
export type PushResponse = typeof PushResponse.Type;
|
|
32
32
|
//# sourceMappingURL=api-schema.d.ts.map
|
package/dist/api-schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-schema.d.ts","sourceRoot":"","sources":["../src/api-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIhD,eAAO,MAAM,QAAQ;;;;;EAKnB,CAAA;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;EAGtB,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAC3C,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AAEjD,8CAA8C;AAC9C,eAAO,MAAM,UAAU;;;;;
|
|
1
|
+
{"version":3,"file":"api-schema.d.ts","sourceRoot":"","sources":["../src/api-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIhD,eAAO,MAAM,QAAQ;;;;;EAKnB,CAAA;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;EAGtB,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAC3C,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AAEjD,8CAA8C;AAC9C,eAAO,MAAM,UAAU;;;;;mCAAuF,CAAA;AAE9G,eAAO,MAAM,YAAY;;EAA6C,CAAA;AACtE,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA"}
|
package/dist/api-schema.js
CHANGED
|
@@ -3,15 +3,15 @@ import { Schema } from '@livestore/utils/effect';
|
|
|
3
3
|
import { S2SeqNum } from "./types.js";
|
|
4
4
|
export const PullArgs = Schema.Struct({
|
|
5
5
|
storeId: Schema.String,
|
|
6
|
-
s2SeqNum: Schema.Union(S2SeqNum, Schema.Literal('from-start')),
|
|
6
|
+
s2SeqNum: Schema.Union([S2SeqNum, Schema.Literal('from-start')]),
|
|
7
7
|
live: Schema.Boolean,
|
|
8
|
-
payload: Schema.
|
|
8
|
+
payload: Schema.optional(Schema.Json),
|
|
9
9
|
});
|
|
10
10
|
export const PushPayload = Schema.Struct({
|
|
11
11
|
storeId: Schema.String,
|
|
12
12
|
batch: Schema.Array(LiveStoreEvent.Global.Encoded),
|
|
13
13
|
});
|
|
14
14
|
/** Encoded form for query parameter `args` */
|
|
15
|
-
export const ArgsSchema = Schema.
|
|
15
|
+
export const ArgsSchema = Schema.StringFromUriComponent.pipe(Schema.decodeTo(Schema.fromJsonString(PullArgs)));
|
|
16
16
|
export const PushResponse = Schema.Struct({ success: Schema.Boolean });
|
|
17
17
|
//# sourceMappingURL=api-schema.js.map
|
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;AAEhD,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;
|
|
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;AAEhD,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,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAChE,IAAI,EAAE,MAAM,CAAC,OAAO;IACpB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;CACtC,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,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAE9G,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA"}
|
package/dist/api-schema.test.js
CHANGED
|
@@ -1,20 +1,25 @@
|
|
|
1
|
+
import { Result, Schema } from '@livestore/utils/effect';
|
|
1
2
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { Schema } from '@livestore/utils/effect';
|
|
3
3
|
import * as Api from "./api-schema.js";
|
|
4
4
|
import { decodePullArgsFromSearchParams } from "./make-s2-url.js";
|
|
5
5
|
import { s2SeqNum } from "./types.js";
|
|
6
6
|
describe('ApiSchema', () => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
for (const { name, payload } of [
|
|
8
|
+
{ name: 'an omitted payload', payload: undefined },
|
|
9
|
+
{ name: 'an explicit payload', payload: { a: 1 } },
|
|
10
|
+
]) {
|
|
11
|
+
it(`encodes and decodes PullArgs with ${name} via args search param`, () => {
|
|
12
|
+
const args = Api.PullArgs.make({ storeId: 'store-1', s2SeqNum: s2SeqNum(42), live: true, payload });
|
|
13
|
+
const encoded = Schema.encodeSync(Api.ArgsSchema)(args);
|
|
14
|
+
const sp = new URLSearchParams({ args: encoded });
|
|
15
|
+
const roundtrip = decodePullArgsFromSearchParams(sp);
|
|
16
|
+
expect(roundtrip).toEqual(args);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
14
19
|
it('decodes PushPayload with typed events', () => {
|
|
15
20
|
const payload = Api.PushPayload.make({ storeId: 's', batch: [] });
|
|
16
|
-
const decoded = Schema.
|
|
17
|
-
expect(decoded
|
|
21
|
+
const decoded = Schema.decodeUnknownResult(Api.PushPayload)(payload);
|
|
22
|
+
expect(Result.isSuccess(decoded)).toBe(true);
|
|
18
23
|
});
|
|
19
24
|
});
|
|
20
25
|
//# sourceMappingURL=api-schema.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-schema.test.js","sourceRoot":"","sources":["../src/api-schema.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"api-schema.test.js","sourceRoot":"","sources":["../src/api-schema.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI;QAC9B,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,SAAS,EAAE;QAClD,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;KAC1C,EAAE,CAAC;QACX,EAAE,CAAC,qCAAqC,IAAI,wBAAwB,EAAE,GAAG,EAAE;YACzE,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;YACnG,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAA;YACvD,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;YACjD,MAAM,SAAS,GAAG,8BAA8B,CAAC,EAAE,CAAC,CAAA;YACpD,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;QACjE,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAA;QACpE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/decode.js
CHANGED
|
@@ -3,14 +3,14 @@ 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.
|
|
6
|
+
body: Schema.optional(Schema.NullOr(Schema.fromJsonString(LiveStoreEvent.Global.Encoded))),
|
|
7
7
|
seq_num: S2SeqNum,
|
|
8
8
|
})),
|
|
9
|
-
}).
|
|
9
|
+
}).annotate({ title: '@livestore/sync-s2:ReadBatchSchema' });
|
|
10
10
|
export const decodeReadBatch = (readBatch) => {
|
|
11
11
|
const decoded = Schema.decodeSync(ReadBatchSchema)(readBatch);
|
|
12
12
|
return decoded.records
|
|
13
|
-
.filter((r) => r.body
|
|
13
|
+
.filter((r) => r.body != null)
|
|
14
14
|
.map((r) => ({
|
|
15
15
|
eventEncoded: r.body,
|
|
16
16
|
metadata: Option.some({ s2SeqNum: r.seq_num }),
|
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;AAGxD,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,
|
|
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;AAGxD,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,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1F,OAAO,EAAE,QAAQ;KAClB,CAAC,CACH;CACF,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC,CAAA;AAE5D,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,IAAI,IAAI,CAAC;SAC9F,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"}
|