@livestore/common 0.3.0-dev.16 → 0.3.0-dev.18
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/adapter-types.d.ts +12 -4
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js +4 -0
- package/dist/adapter-types.js.map +1 -1
- package/dist/bounded-collections.d.ts +1 -1
- package/dist/bounded-collections.d.ts.map +1 -1
- package/dist/debug-info.d.ts.map +1 -1
- package/dist/derived-mutations.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +21 -21
- package/dist/devtools/devtools-messages-common.d.ts +6 -6
- package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-leader.d.ts +28 -28
- package/dist/devtools/index.d.ts.map +1 -1
- package/dist/init-singleton-tables.d.ts.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts +3 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.js +130 -50
- package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
- package/dist/leader-thread/apply-mutation.d.ts.map +1 -1
- package/dist/leader-thread/apply-mutation.js +11 -5
- package/dist/leader-thread/apply-mutation.js.map +1 -1
- package/dist/leader-thread/connection.d.ts.map +1 -1
- package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.js +1 -0
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
- package/dist/leader-thread/mutationlog.d.ts.map +1 -1
- package/dist/leader-thread/pull-queue-set.d.ts +3 -3
- package/dist/leader-thread/pull-queue-set.d.ts.map +1 -1
- package/dist/leader-thread/pull-queue-set.js +9 -0
- package/dist/leader-thread/pull-queue-set.js.map +1 -1
- package/dist/leader-thread/shutdown-channel.d.ts +2 -5
- package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
- package/dist/leader-thread/shutdown-channel.js +2 -4
- package/dist/leader-thread/shutdown-channel.js.map +1 -1
- package/dist/leader-thread/types.d.ts +7 -2
- package/dist/leader-thread/types.d.ts.map +1 -1
- package/dist/mutation.d.ts.map +1 -1
- package/dist/otel.d.ts.map +1 -1
- package/dist/query-builder/api.d.ts.map +1 -1
- package/dist/query-builder/impl.d.ts.map +1 -1
- package/dist/rehydrate-from-mutationlog.d.ts.map +1 -1
- package/dist/rehydrate-from-mutationlog.js +3 -3
- package/dist/rehydrate-from-mutationlog.js.map +1 -1
- package/dist/schema/EventId.d.ts +8 -0
- package/dist/schema/EventId.d.ts.map +1 -1
- package/dist/schema/EventId.js +14 -0
- package/dist/schema/EventId.js.map +1 -1
- package/dist/schema/MutationEvent.d.ts.map +1 -1
- package/dist/schema/MutationEvent.js +3 -3
- package/dist/schema/MutationEvent.js.map +1 -1
- package/dist/schema/db-schema/ast/sqlite.d.ts.map +1 -1
- package/dist/schema/db-schema/ast/validate.d.ts.map +1 -1
- package/dist/schema/db-schema/dsl/field-defs.d.ts.map +1 -1
- package/dist/schema/db-schema/dsl/field-defs.js.map +1 -1
- package/dist/schema/db-schema/dsl/mod.d.ts.map +1 -1
- package/dist/schema/db-schema/dsl/mod.js.map +1 -1
- package/dist/schema/db-schema/hash.d.ts.map +1 -1
- package/dist/schema/mutations.d.ts +5 -2
- package/dist/schema/mutations.d.ts.map +1 -1
- package/dist/schema/mutations.js.map +1 -1
- package/dist/schema/schema-helpers.d.ts.map +1 -1
- package/dist/schema/schema.d.ts +4 -1
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +19 -8
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/table-def.d.ts +1 -8
- package/dist/schema/table-def.d.ts.map +1 -1
- package/dist/schema-management/common.d.ts.map +1 -1
- package/dist/schema-management/migrations.d.ts.map +1 -1
- package/dist/schema-management/validate-mutation-defs.d.ts.map +1 -1
- package/dist/schema-management/validate-mutation-defs.js +2 -2
- package/dist/schema-management/validate-mutation-defs.js.map +1 -1
- package/dist/sql-queries/misc.d.ts.map +1 -1
- package/dist/sql-queries/sql-queries.d.ts.map +1 -1
- package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
- package/dist/sql-queries/types.d.ts.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts +11 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.js +51 -19
- package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
- package/dist/sync/next/compact-events.d.ts.map +1 -1
- package/dist/sync/next/facts.d.ts.map +1 -1
- package/dist/sync/next/history-dag.d.ts.map +1 -1
- package/dist/sync/next/rebase-events.d.ts.map +1 -1
- package/dist/sync/next/test/mutation-fixtures.d.ts +7 -7
- package/dist/sync/next/test/mutation-fixtures.d.ts.map +1 -1
- package/dist/sync/sync.d.ts +14 -9
- package/dist/sync/sync.d.ts.map +1 -1
- package/dist/sync/sync.js +7 -3
- package/dist/sync/sync.js.map +1 -1
- package/dist/sync/syncstate.d.ts +132 -21
- package/dist/sync/syncstate.d.ts.map +1 -1
- package/dist/sync/syncstate.js +129 -41
- package/dist/sync/syncstate.js.map +1 -1
- package/dist/sync/syncstate.test.js +19 -7
- package/dist/sync/syncstate.test.js.map +1 -1
- package/dist/sync/validate-push-payload.d.ts.map +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
- package/src/adapter-types.ts +9 -4
- package/src/leader-thread/LeaderSyncProcessor.ts +169 -61
- package/src/leader-thread/apply-mutation.ts +21 -5
- package/src/leader-thread/make-leader-thread-layer.ts +1 -0
- package/src/leader-thread/pull-queue-set.ts +10 -1
- package/src/leader-thread/shutdown-channel.ts +2 -4
- package/src/leader-thread/types.ts +8 -2
- package/src/rehydrate-from-mutationlog.ts +2 -2
- package/src/schema/EventId.ts +16 -0
- package/src/schema/MutationEvent.ts +3 -3
- package/src/schema/db-schema/dsl/field-defs.ts +1 -2
- package/src/schema/db-schema/dsl/mod.ts +1 -1
- package/src/schema/mutations.ts +4 -1
- package/src/schema/schema.ts +20 -8
- package/src/schema-management/validate-mutation-defs.ts +2 -2
- package/src/sync/ClientSessionSyncProcessor.ts +82 -19
- package/src/sync/sync.ts +7 -4
- package/src/sync/syncstate.test.ts +32 -14
- package/src/sync/syncstate.ts +145 -60
- package/src/version.ts +1 -1
- package/tmp/pack.tgz +0 -0
@@ -10,18 +10,18 @@ export declare const facts: {
|
|
10
10
|
};
|
11
11
|
export declare const mutations: {
|
12
12
|
createTodo: MutationDef<"createTodo", {
|
13
|
-
readonly text: string;
|
14
13
|
readonly id: string;
|
15
|
-
}, {
|
16
14
|
readonly text: string;
|
15
|
+
}, {
|
17
16
|
readonly id: string;
|
17
|
+
readonly text: string;
|
18
18
|
}>;
|
19
19
|
upsertTodo: MutationDef<"upsertTodo", {
|
20
20
|
readonly id: string;
|
21
21
|
readonly text?: string | undefined;
|
22
22
|
}, {
|
23
|
-
readonly text?: string | undefined;
|
24
23
|
readonly id: string;
|
24
|
+
readonly text?: string | undefined;
|
25
25
|
}>;
|
26
26
|
todoCompleted: MutationDef<"todoCompleted", {
|
27
27
|
readonly id: string;
|
@@ -51,18 +51,18 @@ export declare const mutations: {
|
|
51
51
|
readonly readonly: boolean;
|
52
52
|
}>;
|
53
53
|
setTextTodo: MutationDef<"setTextTodo", {
|
54
|
-
readonly text: string;
|
55
54
|
readonly id: string;
|
56
|
-
}, {
|
57
55
|
readonly text: string;
|
56
|
+
}, {
|
58
57
|
readonly id: string;
|
58
|
+
readonly text: string;
|
59
59
|
}>;
|
60
60
|
setInputValue: MutationDef<"setInputValue", {
|
61
|
-
readonly text: string;
|
62
61
|
readonly id: string;
|
63
|
-
}, {
|
64
62
|
readonly text: string;
|
63
|
+
}, {
|
65
64
|
readonly id: string;
|
65
|
+
readonly text: string;
|
66
66
|
}>;
|
67
67
|
};
|
68
68
|
export type PartialEvent = {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mutation-fixtures.d.ts","sourceRoot":"","sources":["../../../../src/sync/next/test/mutation-fixtures.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAI/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG9D,+DAA+D;AAC/D,eAAO,MAAM,KAAK;qBACC,MAAM;0BACD,MAAM,aAAa,OAAO;wBAC5B,MAAM,aAAa,OAAO;0BACxB,MAAM;qBACX,MAAM;CACvB,CAAA;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+GrB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAAA;AAE1D,eAAO,MAAM,YAAY,
|
1
|
+
{"version":3,"file":"mutation-fixtures.d.ts","sourceRoot":"","sources":["../../../../src/sync/next/test/mutation-fixtures.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAI/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG9D,+DAA+D;AAC/D,eAAO,MAAM,KAAK;qBACC,MAAM;0BACD,MAAM,aAAa,OAAO;wBAC5B,MAAM,aAAa,OAAO;0BACxB,MAAM;qBACX,MAAM;CACvB,CAAA;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+GrB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAAA;AAE1D,eAAO,MAAM,YAAY,GACvB,eAAe,YAAY,EAAE,EAC7B,cAAc,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,EAC7C,UAAU,MAAM,EAChB,WAAW,MAAM,GAAG,SAAS,KAC5B,cAAc,EA6EhB,CAAA"}
|
package/dist/sync/sync.d.ts
CHANGED
@@ -52,15 +52,6 @@ declare const InvalidPushError_base: Schema.TaggedErrorClass<InvalidPushError, "
|
|
52
52
|
}>, Schema.TaggedStruct<"ServerAhead", {
|
53
53
|
minimumExpectedId: typeof Schema.Number;
|
54
54
|
providedId: typeof Schema.Number;
|
55
|
-
}>, Schema.TaggedStruct<"LeaderAhead", {
|
56
|
-
minimumExpectedId: Schema.Struct<{
|
57
|
-
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
58
|
-
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
59
|
-
}>;
|
60
|
-
providedId: Schema.Struct<{
|
61
|
-
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
62
|
-
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
63
|
-
}>;
|
64
55
|
}>]>;
|
65
56
|
}>;
|
66
57
|
export declare class InvalidPushError extends InvalidPushError_base {
|
@@ -72,5 +63,19 @@ declare const InvalidPullError_base: Schema.TaggedErrorClass<InvalidPullError, "
|
|
72
63
|
}>;
|
73
64
|
export declare class InvalidPullError extends InvalidPullError_base {
|
74
65
|
}
|
66
|
+
declare const LeaderAheadError_base: Schema.TaggedErrorClass<LeaderAheadError, "LeaderAheadError", {
|
67
|
+
readonly _tag: Schema.tag<"LeaderAheadError">;
|
68
|
+
} & {
|
69
|
+
minimumExpectedId: Schema.Struct<{
|
70
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
71
|
+
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
72
|
+
}>;
|
73
|
+
providedId: Schema.Struct<{
|
74
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
75
|
+
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
76
|
+
}>;
|
77
|
+
}>;
|
78
|
+
export declare class LeaderAheadError extends LeaderAheadError_base {
|
79
|
+
}
|
75
80
|
export {};
|
76
81
|
//# sourceMappingURL=sync.d.ts.map
|
package/dist/sync/sync.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzG,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,KAAK,aAAa,MAAM,4BAA4B,CAAA;AAEhE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IACrG,gCAAgC;IAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,aAAa,GAAG,MAAM,CAAC,SAAS,IAAI;IAC1D,IAAI,EAAE,CACJ,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAA;QACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;KACvC,CAAC,KACC,MAAM,CAAC,MAAM,CAChB;QACE,KAAK,EAAE,aAAa,CAAC;YACnB,oBAAoB,EAAE,aAAa,CAAC,gBAAgB,CAAA;YACpD,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;SACvC,CAAC,CAAA;QACF,SAAS,EAAE,MAAM,CAAA;KAClB,EACD,cAAc,GAAG,gBAAgB,EACjC,UAAU,CAAC,UAAU,CACtB,CAAA;IAED,IAAI,EAAE;IACJ;;;;SAIK;IACL,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,KACjD,MAAM,CAAC,MAAM,CAChB;QACE,sCAAsC;QACtC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;KACtD,EACD,cAAc,GAAG,gBAAgB,EACjC,UAAU,CAAC,UAAU,CACtB,CAAA;IACD,WAAW,EAAE,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;CACtD,CAAA;;;;AAED,qBAAa,cAAe,SAAQ,mBAA0D;CAAG
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzG,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,KAAK,aAAa,MAAM,4BAA4B,CAAA;AAEhE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IACrG,gCAAgC;IAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,aAAa,GAAG,MAAM,CAAC,SAAS,IAAI;IAC1D,IAAI,EAAE,CACJ,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAA;QACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;KACvC,CAAC,KACC,MAAM,CAAC,MAAM,CAChB;QACE,KAAK,EAAE,aAAa,CAAC;YACnB,oBAAoB,EAAE,aAAa,CAAC,gBAAgB,CAAA;YACpD,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;SACvC,CAAC,CAAA;QACF,SAAS,EAAE,MAAM,CAAA;KAClB,EACD,cAAc,GAAG,gBAAgB,EACjC,UAAU,CAAC,UAAU,CACtB,CAAA;IAED,IAAI,EAAE;IACJ;;;;SAIK;IACL,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,KACjD,MAAM,CAAC,MAAM,CAChB;QACE,sCAAsC;QACtC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;KACtD,EACD,cAAc,GAAG,gBAAgB,EACjC,UAAU,CAAC,UAAU,CACtB,CAAA;IACD,WAAW,EAAE,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;CACtD,CAAA;;;;AAED,qBAAa,cAAe,SAAQ,mBAA0D;CAAG;;;;;;;;;;;AAEjG,qBAAa,gBAAiB,SAAQ,qBAUpC;CAAG;;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAEpC;CAAG;;;;;;;;;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG"}
|
package/dist/sync/sync.js
CHANGED
@@ -8,9 +8,6 @@ export class InvalidPushError extends Schema.TaggedError()('InvalidPushError', {
|
|
8
8
|
}), Schema.TaggedStruct('ServerAhead', {
|
9
9
|
minimumExpectedId: Schema.Number,
|
10
10
|
providedId: Schema.Number,
|
11
|
-
}), Schema.TaggedStruct('LeaderAhead', {
|
12
|
-
minimumExpectedId: EventId.EventId,
|
13
|
-
providedId: EventId.EventId,
|
14
11
|
})),
|
15
12
|
}) {
|
16
13
|
}
|
@@ -18,4 +15,11 @@ export class InvalidPullError extends Schema.TaggedError()('InvalidPullError', {
|
|
18
15
|
message: Schema.String,
|
19
16
|
}) {
|
20
17
|
}
|
18
|
+
export class LeaderAheadError extends Schema.TaggedError()('LeaderAheadError', {
|
19
|
+
minimumExpectedId: EventId.EventId,
|
20
|
+
providedId: EventId.EventId,
|
21
|
+
/** Generation number the client session should use for subsequent pushes */
|
22
|
+
// nextGeneration: Schema.Number,
|
23
|
+
}) {
|
24
|
+
}
|
21
25
|
//# sourceMappingURL=sync.js.map
|
package/dist/sync/sync.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIhD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAqD/C,MAAM,OAAO,cAAe,SAAQ,MAAM,CAAC,WAAW,EAAkB,CAAC,gBAAgB,EAAE,EAAE,CAAC;CAAG;AAEjG,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,WAAW,EAAoB,CAAC,kBAAkB,EAAE;IAC/F,MAAM,EAAE,MAAM,CAAC,KAAK,CAClB,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE;QAChC,OAAO,EAAE,MAAM,CAAC,MAAM;KACvB,CAAC,EACF,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE;QACjC,iBAAiB,EAAE,MAAM,CAAC,MAAM;QAChC,UAAU,EAAE,MAAM,CAAC,MAAM;KAC1B,CAAC,
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIhD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAqD/C,MAAM,OAAO,cAAe,SAAQ,MAAM,CAAC,WAAW,EAAkB,CAAC,gBAAgB,EAAE,EAAE,CAAC;CAAG;AAEjG,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,WAAW,EAAoB,CAAC,kBAAkB,EAAE;IAC/F,MAAM,EAAE,MAAM,CAAC,KAAK,CAClB,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE;QAChC,OAAO,EAAE,MAAM,CAAC,MAAM;KACvB,CAAC,EACF,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE;QACjC,iBAAiB,EAAE,MAAM,CAAC,MAAM;QAChC,UAAU,EAAE,MAAM,CAAC,MAAM;KAC1B,CAAC,CACH;CACF,CAAC;CAAG;AAEL,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,WAAW,EAAoB,CAAC,kBAAkB,EAAE;IAC/F,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CAAC;CAAG;AAEL,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,WAAW,EAAoB,CAAC,kBAAkB,EAAE;IAC/F,iBAAiB,EAAE,OAAO,CAAC,OAAO;IAClC,UAAU,EAAE,OAAO,CAAC,OAAO;IAC3B,4EAA4E;IAC5E,iCAAiC;CAClC,CAAC;CAAG"}
|
package/dist/sync/syncstate.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { Schema } from '@livestore/utils/effect';
|
2
|
-
import
|
2
|
+
import { UnexpectedError } from '../adapter-types.js';
|
3
3
|
import * as MutationEvent from '../schema/MutationEvent.js';
|
4
4
|
declare const SyncState_base: Schema.Class<SyncState, {
|
5
5
|
pending: Schema.Array$<typeof MutationEvent.EncodedWithMeta>;
|
@@ -111,28 +111,139 @@ export declare class Payload extends Payload_base {
|
|
111
111
|
}
|
112
112
|
export declare const PayloadUpstream: Schema.Union<[typeof PayloadUpstreamRebase, typeof PayloadUpstreamAdvance]>;
|
113
113
|
export type PayloadUpstream = typeof PayloadUpstream.Type;
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
114
|
+
declare const UpdateContext_base: Schema.Class<UpdateContext, {
|
115
|
+
payload: typeof Payload;
|
116
|
+
syncState: typeof SyncState;
|
117
|
+
}, Schema.Struct.Encoded<{
|
118
|
+
payload: typeof Payload;
|
119
|
+
syncState: typeof SyncState;
|
120
|
+
}>, never, {
|
121
|
+
readonly payload: {
|
122
|
+
readonly _tag: "upstream-rebase";
|
123
|
+
readonly rollbackUntil: {
|
124
|
+
readonly global: number & import("effect/Brand").Brand<"GlobalEventId">;
|
125
|
+
readonly client: number & import("effect/Brand").Brand<"ClientEventId">;
|
126
|
+
};
|
127
|
+
readonly newEvents: readonly MutationEvent.EncodedWithMeta[];
|
128
|
+
readonly trimRollbackUntil?: {
|
129
|
+
readonly global: number & import("effect/Brand").Brand<"GlobalEventId">;
|
130
|
+
readonly client: number & import("effect/Brand").Brand<"ClientEventId">;
|
131
|
+
} | undefined;
|
132
|
+
} | {
|
133
|
+
readonly _tag: "upstream-advance";
|
134
|
+
readonly newEvents: readonly MutationEvent.EncodedWithMeta[];
|
135
|
+
readonly trimRollbackUntil?: {
|
136
|
+
readonly global: number & import("effect/Brand").Brand<"GlobalEventId">;
|
137
|
+
readonly client: number & import("effect/Brand").Brand<"ClientEventId">;
|
138
|
+
} | undefined;
|
139
|
+
} | {
|
140
|
+
readonly _tag: "local-push";
|
141
|
+
readonly newEvents: readonly MutationEvent.EncodedWithMeta[];
|
142
|
+
};
|
143
|
+
} & {
|
144
|
+
readonly syncState: SyncState;
|
145
|
+
}, {}, {}>;
|
146
|
+
/** Only used for debugging purposes */
|
147
|
+
export declare class UpdateContext extends UpdateContext_base {
|
148
|
+
toJSON: () => any;
|
149
|
+
}
|
150
|
+
declare const UpdateResultAdvance_base: Schema.Class<UpdateResultAdvance, {
|
151
|
+
_tag: Schema.Literal<["advance"]>;
|
152
|
+
newSyncState: typeof SyncState;
|
118
153
|
/** Events which weren't pending before the update */
|
119
|
-
newEvents:
|
120
|
-
|
121
|
-
|
122
|
-
_tag:
|
123
|
-
newSyncState: SyncState;
|
124
|
-
previousSyncState: SyncState;
|
154
|
+
newEvents: Schema.Array$<typeof MutationEvent.EncodedWithMeta>;
|
155
|
+
updateContext: typeof UpdateContext;
|
156
|
+
}, Schema.Struct.Encoded<{
|
157
|
+
_tag: Schema.Literal<["advance"]>;
|
158
|
+
newSyncState: typeof SyncState;
|
125
159
|
/** Events which weren't pending before the update */
|
126
|
-
newEvents:
|
127
|
-
|
128
|
-
}
|
129
|
-
|
130
|
-
|
131
|
-
|
160
|
+
newEvents: Schema.Array$<typeof MutationEvent.EncodedWithMeta>;
|
161
|
+
updateContext: typeof UpdateContext;
|
162
|
+
}>, never, {
|
163
|
+
readonly _tag: "advance";
|
164
|
+
} & {
|
165
|
+
readonly newEvents: readonly MutationEvent.EncodedWithMeta[];
|
166
|
+
} & {
|
167
|
+
readonly newSyncState: SyncState;
|
168
|
+
} & {
|
169
|
+
readonly updateContext: UpdateContext;
|
170
|
+
}, {}, {}>;
|
171
|
+
export declare class UpdateResultAdvance extends UpdateResultAdvance_base {
|
172
|
+
toJSON: () => any;
|
173
|
+
}
|
174
|
+
declare const UpdateResultRebase_base: Schema.Class<UpdateResultRebase, {
|
175
|
+
_tag: Schema.Literal<["rebase"]>;
|
176
|
+
newSyncState: typeof SyncState;
|
177
|
+
/** Events which weren't pending before the update */
|
178
|
+
newEvents: Schema.Array$<typeof MutationEvent.EncodedWithMeta>;
|
179
|
+
eventsToRollback: Schema.Array$<typeof MutationEvent.EncodedWithMeta>;
|
180
|
+
updateContext: typeof UpdateContext;
|
181
|
+
}, Schema.Struct.Encoded<{
|
182
|
+
_tag: Schema.Literal<["rebase"]>;
|
183
|
+
newSyncState: typeof SyncState;
|
184
|
+
/** Events which weren't pending before the update */
|
185
|
+
newEvents: Schema.Array$<typeof MutationEvent.EncodedWithMeta>;
|
186
|
+
eventsToRollback: Schema.Array$<typeof MutationEvent.EncodedWithMeta>;
|
187
|
+
updateContext: typeof UpdateContext;
|
188
|
+
}>, never, {
|
189
|
+
readonly _tag: "rebase";
|
190
|
+
} & {
|
191
|
+
readonly newEvents: readonly MutationEvent.EncodedWithMeta[];
|
192
|
+
} & {
|
193
|
+
readonly newSyncState: SyncState;
|
194
|
+
} & {
|
195
|
+
readonly updateContext: UpdateContext;
|
196
|
+
} & {
|
197
|
+
readonly eventsToRollback: readonly MutationEvent.EncodedWithMeta[];
|
198
|
+
}, {}, {}>;
|
199
|
+
export declare class UpdateResultRebase extends UpdateResultRebase_base {
|
200
|
+
toJSON: () => any;
|
201
|
+
}
|
202
|
+
declare const UpdateResultReject_base: Schema.Class<UpdateResultReject, {
|
203
|
+
_tag: Schema.Literal<["reject"]>;
|
132
204
|
/** The minimum id that the new events must have */
|
133
|
-
expectedMinimumId:
|
134
|
-
|
135
|
-
|
205
|
+
expectedMinimumId: Schema.Struct<{
|
206
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
207
|
+
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
208
|
+
}>;
|
209
|
+
updateContext: typeof UpdateContext;
|
210
|
+
}, Schema.Struct.Encoded<{
|
211
|
+
_tag: Schema.Literal<["reject"]>;
|
212
|
+
/** The minimum id that the new events must have */
|
213
|
+
expectedMinimumId: Schema.Struct<{
|
214
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
215
|
+
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
216
|
+
}>;
|
217
|
+
updateContext: typeof UpdateContext;
|
218
|
+
}>, never, {
|
219
|
+
readonly _tag: "reject";
|
220
|
+
} & {
|
221
|
+
readonly updateContext: UpdateContext;
|
222
|
+
} & {
|
223
|
+
readonly expectedMinimumId: {
|
224
|
+
readonly global: number & import("effect/Brand").Brand<"GlobalEventId">;
|
225
|
+
readonly client: number & import("effect/Brand").Brand<"ClientEventId">;
|
226
|
+
};
|
227
|
+
}, {}, {}>;
|
228
|
+
export declare class UpdateResultReject extends UpdateResultReject_base {
|
229
|
+
toJSON: () => any;
|
230
|
+
}
|
231
|
+
declare const UpdateResultUnexpectedError_base: Schema.Class<UpdateResultUnexpectedError, {
|
232
|
+
_tag: Schema.Literal<["unexpected-error"]>;
|
233
|
+
cause: typeof UnexpectedError;
|
234
|
+
}, Schema.Struct.Encoded<{
|
235
|
+
_tag: Schema.Literal<["unexpected-error"]>;
|
236
|
+
cause: typeof UnexpectedError;
|
237
|
+
}>, never, {
|
238
|
+
readonly _tag: "unexpected-error";
|
239
|
+
} & {
|
240
|
+
readonly cause: UnexpectedError;
|
241
|
+
}, {}, {}>;
|
242
|
+
export declare class UpdateResultUnexpectedError extends UpdateResultUnexpectedError_base {
|
243
|
+
}
|
244
|
+
declare const UpdateResult_base: Schema.Union<[typeof UpdateResultAdvance, typeof UpdateResultRebase, typeof UpdateResultReject, typeof UpdateResultUnexpectedError]>;
|
245
|
+
export declare class UpdateResult extends UpdateResult_base {
|
246
|
+
}
|
136
247
|
export declare const updateSyncState: ({ syncState, payload, isLocalEvent, isEqualEvent, ignoreLocalEvents, }: {
|
137
248
|
syncState: SyncState;
|
138
249
|
payload: typeof Payload.Type;
|
@@ -140,6 +251,6 @@ export declare const updateSyncState: ({ syncState, payload, isLocalEvent, isEqu
|
|
140
251
|
isEqualEvent: (a: MutationEvent.EncodedWithMeta, b: MutationEvent.EncodedWithMeta) => boolean;
|
141
252
|
/** This is used in the leader which should ignore local events when receiving an upstream-advance payload */
|
142
253
|
ignoreLocalEvents?: boolean;
|
143
|
-
}) => UpdateResult;
|
254
|
+
}) => typeof UpdateResult.Type;
|
144
255
|
export {};
|
145
256
|
//# sourceMappingURL=syncstate.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"syncstate.d.ts","sourceRoot":"","sources":["../../src/sync/syncstate.ts"],"names":[],"mappings":"AACA,OAAO,
|
1
|
+
{"version":3,"file":"syncstate.d.ts","sourceRoot":"","sources":["../../src/sync/syncstate.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,SAAU,SAAQ,cAK7B;IACA,MAAM,QAAO,GAAG,CAOf;CACF;;IAGC,8GAA8G;;;;;;IAG9G,uDAAuD;;;;;;AAJzD,qBAAa,qBAAsB,SAAQ,0BAMzC;CAAG;;;IAIH,uDAAuD;;;;;;AAFzD,qBAAa,sBAAuB,SAAQ,2BAI1C;CAAG;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAEpC;CAAG;;AAEL,qBAAa,OAAQ,SAAQ,YAA6E;CAAG;AAE7G,eAAO,MAAM,eAAe,6EAA8D,CAAA;AAE1F,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzD,uCAAuC;AACvC,qBAAa,aAAc,SAAQ,kBAGjC;IACA,MAAM,QAAO,GAAG,CAoBf;CACF;;;;IAKC,qDAAqD;;;;;;IAArD,qDAAqD;;;;;;;;;;;;AAHvD,qBAAa,mBAAoB,SAAQ,wBAMvC;IACA,MAAM,QAAO,GAAG,CAOf;CACF;;;;IAKC,qDAAqD;;;;;;;IAArD,qDAAqD;;;;;;;;;;;;;;;AAHvD,qBAAa,kBAAmB,SAAQ,uBAOtC;IACA,MAAM,QAAO,GAAG,CAQf;CACF;;;IAIC,mDAAmD;;;;;;;;IAAnD,mDAAmD;;;;;;;;;;;;;;;;AAFrD,qBAAa,kBAAmB,SAAQ,uBAKtC;IACA,MAAM,QAAO,GAAG,CAMf;CACF;;;;;;;;;;;;AAED,qBAAa,2BAA4B,SAAQ,gCAK/C;CAAG;;AAEL,qBAAa,YAAa,SAAQ,iBAKjC;CAAG;AAQJ,eAAO,MAAM,eAAe,GAAI,wEAM7B;IACD,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,OAAO,CAAC,IAAI,CAAA;IAC5B,YAAY,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,eAAe,KAAK,OAAO,CAAA;IAC/D,YAAY,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,eAAe,EAAE,CAAC,EAAE,aAAa,CAAC,eAAe,KAAK,OAAO,CAAA;IAC7F,6GAA6G;IAC7G,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,KAAG,OAAO,YAAY,CAAC,IAiNvB,CAAA"}
|
package/dist/sync/syncstate.js
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
import {
|
2
|
-
import { ReadonlyArray, Schema } from '@livestore/utils/effect';
|
1
|
+
import { casesHandled } from '@livestore/utils';
|
2
|
+
import { Match, ReadonlyArray, Schema } from '@livestore/utils/effect';
|
3
|
+
import { UnexpectedError } from '../adapter-types.js';
|
3
4
|
import * as EventId from '../schema/EventId.js';
|
4
5
|
import * as MutationEvent from '../schema/MutationEvent.js';
|
5
6
|
/**
|
@@ -73,6 +74,87 @@ export class PayloadLocalPush extends Schema.TaggedStruct('local-push', {
|
|
73
74
|
export class Payload extends Schema.Union(PayloadUpstreamRebase, PayloadUpstreamAdvance, PayloadLocalPush) {
|
74
75
|
}
|
75
76
|
export const PayloadUpstream = Schema.Union(PayloadUpstreamRebase, PayloadUpstreamAdvance);
|
77
|
+
/** Only used for debugging purposes */
|
78
|
+
export class UpdateContext extends Schema.Class('UpdateContext')({
|
79
|
+
payload: Payload,
|
80
|
+
syncState: SyncState,
|
81
|
+
}) {
|
82
|
+
toJSON = () => {
|
83
|
+
const payload = Match.value(this.payload).pipe(Match.tag('local-push', () => ({
|
84
|
+
_tag: 'local-push',
|
85
|
+
newEvents: this.payload.newEvents.map((e) => e.toJSON()),
|
86
|
+
})), Match.tag('upstream-advance', () => ({
|
87
|
+
_tag: 'upstream-advance',
|
88
|
+
newEvents: this.payload.newEvents.map((e) => e.toJSON()),
|
89
|
+
})), Match.tag('upstream-rebase', () => ({
|
90
|
+
_tag: 'upstream-rebase',
|
91
|
+
newEvents: this.payload.newEvents.map((e) => e.toJSON()),
|
92
|
+
})), Match.exhaustive);
|
93
|
+
return {
|
94
|
+
payload,
|
95
|
+
syncState: this.syncState.toJSON(),
|
96
|
+
};
|
97
|
+
};
|
98
|
+
}
|
99
|
+
export class UpdateResultAdvance extends Schema.Class('UpdateResultAdvance')({
|
100
|
+
_tag: Schema.Literal('advance'),
|
101
|
+
newSyncState: SyncState,
|
102
|
+
/** Events which weren't pending before the update */
|
103
|
+
newEvents: Schema.Array(MutationEvent.EncodedWithMeta),
|
104
|
+
updateContext: UpdateContext,
|
105
|
+
}) {
|
106
|
+
toJSON = () => {
|
107
|
+
return {
|
108
|
+
_tag: this._tag,
|
109
|
+
newSyncState: this.newSyncState.toJSON(),
|
110
|
+
newEvents: this.newEvents.map((e) => e.toJSON()),
|
111
|
+
updateContext: this.updateContext.toJSON(),
|
112
|
+
};
|
113
|
+
};
|
114
|
+
}
|
115
|
+
export class UpdateResultRebase extends Schema.Class('UpdateResultRebase')({
|
116
|
+
_tag: Schema.Literal('rebase'),
|
117
|
+
newSyncState: SyncState,
|
118
|
+
/** Events which weren't pending before the update */
|
119
|
+
newEvents: Schema.Array(MutationEvent.EncodedWithMeta),
|
120
|
+
eventsToRollback: Schema.Array(MutationEvent.EncodedWithMeta),
|
121
|
+
updateContext: UpdateContext,
|
122
|
+
}) {
|
123
|
+
toJSON = () => {
|
124
|
+
return {
|
125
|
+
_tag: this._tag,
|
126
|
+
newSyncState: this.newSyncState.toJSON(),
|
127
|
+
newEvents: this.newEvents.map((e) => e.toJSON()),
|
128
|
+
eventsToRollback: this.eventsToRollback.map((e) => e.toJSON()),
|
129
|
+
updateContext: this.updateContext.toJSON(),
|
130
|
+
};
|
131
|
+
};
|
132
|
+
}
|
133
|
+
export class UpdateResultReject extends Schema.Class('UpdateResultReject')({
|
134
|
+
_tag: Schema.Literal('reject'),
|
135
|
+
/** The minimum id that the new events must have */
|
136
|
+
expectedMinimumId: EventId.EventId,
|
137
|
+
updateContext: UpdateContext,
|
138
|
+
}) {
|
139
|
+
toJSON = () => {
|
140
|
+
return {
|
141
|
+
_tag: this._tag,
|
142
|
+
expectedMinimumId: `(${this.expectedMinimumId.global},${this.expectedMinimumId.client})`,
|
143
|
+
updateContext: this.updateContext.toJSON(),
|
144
|
+
};
|
145
|
+
};
|
146
|
+
}
|
147
|
+
export class UpdateResultUnexpectedError extends Schema.Class('UpdateResultUnexpectedError')({
|
148
|
+
_tag: Schema.Literal('unexpected-error'),
|
149
|
+
cause: UnexpectedError,
|
150
|
+
}) {
|
151
|
+
}
|
152
|
+
export class UpdateResult extends Schema.Union(UpdateResultAdvance, UpdateResultRebase, UpdateResultReject, UpdateResultUnexpectedError) {
|
153
|
+
}
|
154
|
+
const unexpectedError = (cause) => UpdateResultUnexpectedError.make({
|
155
|
+
_tag: 'unexpected-error',
|
156
|
+
cause: new UnexpectedError({ cause }),
|
157
|
+
});
|
76
158
|
export const updateSyncState = ({ syncState, payload, isLocalEvent, isEqualEvent, ignoreLocalEvents = false, }) => {
|
77
159
|
const trimRollbackTail = (rollbackTail) => {
|
78
160
|
const trimRollbackUntil = payload._tag === 'local-push' ? undefined : payload.trimRollbackUntil;
|
@@ -83,12 +165,13 @@ export const updateSyncState = ({ syncState, payload, isLocalEvent, isEqualEvent
|
|
83
165
|
return [];
|
84
166
|
return rollbackTail.slice(index + 1);
|
85
167
|
};
|
168
|
+
const updateContext = UpdateContext.make({ payload, syncState });
|
86
169
|
switch (payload._tag) {
|
87
170
|
case 'upstream-rebase': {
|
88
171
|
// Find the index of the rollback event in the rollback tail
|
89
172
|
const rollbackIndex = syncState.rollbackTail.findIndex((event) => EventId.isEqual(event.id, payload.rollbackUntil));
|
90
173
|
if (rollbackIndex === -1) {
|
91
|
-
return
|
174
|
+
return unexpectedError(`Rollback event not found in rollback tail. Rollback until: [${payload.rollbackUntil.global},${payload.rollbackUntil.client}]. Rollback tail: [${syncState.rollbackTail.map((e) => e.toString()).join(', ')}]`);
|
92
175
|
}
|
93
176
|
const eventsToRollback = [...syncState.rollbackTail.slice(rollbackIndex), ...syncState.pending];
|
94
177
|
// Get the last new event's ID as the new upstream head
|
@@ -99,7 +182,7 @@ export const updateSyncState = ({ syncState, payload, isLocalEvent, isEqualEvent
|
|
99
182
|
baseEventId: newUpstreamHead,
|
100
183
|
isLocalEvent,
|
101
184
|
});
|
102
|
-
return {
|
185
|
+
return UpdateResultRebase.make({
|
103
186
|
_tag: 'rebase',
|
104
187
|
newSyncState: new SyncState({
|
105
188
|
pending: rebasedPending,
|
@@ -107,14 +190,14 @@ export const updateSyncState = ({ syncState, payload, isLocalEvent, isEqualEvent
|
|
107
190
|
upstreamHead: newUpstreamHead,
|
108
191
|
localHead: rebasedPending.at(-1)?.id ?? newUpstreamHead,
|
109
192
|
}),
|
110
|
-
|
111
|
-
newEvents: payload.newEvents,
|
193
|
+
newEvents: [...payload.newEvents, ...rebasedPending],
|
112
194
|
eventsToRollback,
|
113
|
-
|
195
|
+
updateContext,
|
196
|
+
});
|
114
197
|
}
|
115
198
|
case 'upstream-advance': {
|
116
199
|
if (payload.newEvents.length === 0) {
|
117
|
-
return {
|
200
|
+
return UpdateResultAdvance.make({
|
118
201
|
_tag: 'advance',
|
119
202
|
newSyncState: new SyncState({
|
120
203
|
pending: syncState.pending,
|
@@ -122,16 +205,20 @@ export const updateSyncState = ({ syncState, payload, isLocalEvent, isEqualEvent
|
|
122
205
|
upstreamHead: syncState.upstreamHead,
|
123
206
|
localHead: syncState.localHead,
|
124
207
|
}),
|
125
|
-
previousSyncState: syncState,
|
126
208
|
newEvents: [],
|
127
|
-
|
209
|
+
updateContext,
|
210
|
+
});
|
128
211
|
}
|
129
212
|
// Validate that newEvents are sorted in ascending order by eventId
|
130
213
|
for (let i = 1; i < payload.newEvents.length; i++) {
|
131
214
|
if (EventId.isGreaterThan(payload.newEvents[i - 1].id, payload.newEvents[i].id)) {
|
132
|
-
return
|
215
|
+
return unexpectedError(`Events must be sorted in ascending order by eventId. Received: [${payload.newEvents.map((e) => `(${e.id.global},${e.id.client})`).join(', ')}]`);
|
133
216
|
}
|
134
217
|
}
|
218
|
+
// Validate that incoming events are larger than upstream head
|
219
|
+
if (EventId.isGreaterThan(syncState.upstreamHead, payload.newEvents[0].id)) {
|
220
|
+
return unexpectedError(`Incoming events must be greater than upstream head. Expected greater than: [${syncState.upstreamHead.global},${syncState.upstreamHead.client}]. Received: [${payload.newEvents.map((e) => `(${e.id.global},${e.id.client})`).join(', ')}]`);
|
221
|
+
}
|
135
222
|
const newUpstreamHead = payload.newEvents.at(-1).id;
|
136
223
|
const divergentPendingIndex = findDivergencePoint({
|
137
224
|
existingEvents: syncState.pending,
|
@@ -169,7 +256,7 @@ export const updateSyncState = ({ syncState, payload, isLocalEvent, isEqualEvent
|
|
169
256
|
seenEventIds.add(eventIdStr);
|
170
257
|
return true;
|
171
258
|
});
|
172
|
-
return {
|
259
|
+
return UpdateResultAdvance.make({
|
173
260
|
_tag: 'advance',
|
174
261
|
newSyncState: new SyncState({
|
175
262
|
pending: pendingRemaining,
|
@@ -177,9 +264,9 @@ export const updateSyncState = ({ syncState, payload, isLocalEvent, isEqualEvent
|
|
177
264
|
upstreamHead: newUpstreamHead,
|
178
265
|
localHead: pendingRemaining.at(-1)?.id ?? newUpstreamHead,
|
179
266
|
}),
|
180
|
-
previousSyncState: syncState,
|
181
267
|
newEvents,
|
182
|
-
|
268
|
+
updateContext,
|
269
|
+
});
|
183
270
|
}
|
184
271
|
else {
|
185
272
|
const divergentPending = syncState.pending.slice(divergentPendingIndex);
|
@@ -195,7 +282,7 @@ export const updateSyncState = ({ syncState, payload, isLocalEvent, isEqualEvent
|
|
195
282
|
isLocalEvent,
|
196
283
|
ignoreLocalEvents,
|
197
284
|
});
|
198
|
-
return {
|
285
|
+
return UpdateResultRebase.make({
|
199
286
|
_tag: 'rebase',
|
200
287
|
newSyncState: new SyncState({
|
201
288
|
pending: rebasedPending,
|
@@ -203,24 +290,33 @@ export const updateSyncState = ({ syncState, payload, isLocalEvent, isEqualEvent
|
|
203
290
|
upstreamHead: newUpstreamHead,
|
204
291
|
localHead: rebasedPending.at(-1).id,
|
205
292
|
}),
|
206
|
-
previousSyncState: syncState,
|
207
293
|
newEvents: [...payload.newEvents.slice(divergentNewEventsIndex), ...rebasedPending],
|
208
294
|
eventsToRollback: [...syncState.rollbackTail, ...divergentPending],
|
209
|
-
|
295
|
+
updateContext,
|
296
|
+
});
|
210
297
|
}
|
211
298
|
}
|
212
299
|
case 'local-push': {
|
213
300
|
if (payload.newEvents.length === 0) {
|
214
|
-
return {
|
301
|
+
return UpdateResultAdvance.make({
|
302
|
+
_tag: 'advance',
|
303
|
+
newSyncState: syncState,
|
304
|
+
newEvents: [],
|
305
|
+
updateContext,
|
306
|
+
});
|
215
307
|
}
|
216
308
|
const newEventsFirst = payload.newEvents.at(0);
|
217
309
|
const invalidEventId = EventId.isGreaterThan(newEventsFirst.id, syncState.localHead) === false;
|
218
310
|
if (invalidEventId) {
|
219
311
|
const expectedMinimumId = EventId.nextPair(syncState.localHead, true).id;
|
220
|
-
return {
|
312
|
+
return UpdateResultReject.make({
|
313
|
+
_tag: 'reject',
|
314
|
+
expectedMinimumId,
|
315
|
+
updateContext,
|
316
|
+
});
|
221
317
|
}
|
222
318
|
else {
|
223
|
-
return {
|
319
|
+
return UpdateResultAdvance.make({
|
224
320
|
_tag: 'advance',
|
225
321
|
newSyncState: new SyncState({
|
226
322
|
pending: [...syncState.pending, ...payload.newEvents],
|
@@ -228,30 +324,14 @@ export const updateSyncState = ({ syncState, payload, isLocalEvent, isEqualEvent
|
|
228
324
|
upstreamHead: syncState.upstreamHead,
|
229
325
|
localHead: payload.newEvents.at(-1).id,
|
230
326
|
}),
|
231
|
-
previousSyncState: syncState,
|
232
327
|
newEvents: payload.newEvents,
|
233
|
-
|
328
|
+
updateContext,
|
329
|
+
});
|
234
330
|
}
|
235
331
|
}
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
// if (startIndex === -1) {
|
240
|
-
// return shouldNeverHappen('New rollback start event not found in rollback tail')
|
241
|
-
// }
|
242
|
-
// // Keep only the events from the start index onwards
|
243
|
-
// const newRollbackTail = syncState.rollbackTail.slice(startIndex)
|
244
|
-
// return {
|
245
|
-
// _tag: 'advance',
|
246
|
-
// syncState: {
|
247
|
-
// pending: syncState.pending,
|
248
|
-
// rollbackTail: newRollbackTail,
|
249
|
-
// upstreamHead: syncState.upstreamHead,
|
250
|
-
// localHead: syncState.localHead,
|
251
|
-
// },
|
252
|
-
// newEvents: [],
|
253
|
-
// }
|
254
|
-
// }
|
332
|
+
default: {
|
333
|
+
casesHandled(payload);
|
334
|
+
}
|
255
335
|
}
|
256
336
|
};
|
257
337
|
/**
|
@@ -289,4 +369,12 @@ const rebaseEvents = ({ events, baseEventId, isLocalEvent, }) => {
|
|
289
369
|
return newEvent;
|
290
370
|
});
|
291
371
|
};
|
372
|
+
/**
|
373
|
+
* TODO: Implement this
|
374
|
+
*
|
375
|
+
* In certain scenarios e.g. when the client session has a queue of upstream update results,
|
376
|
+
* it could make sense to "flatten" update results into a single update result which the client session
|
377
|
+
* can process more efficiently which avoids push-threshing
|
378
|
+
*/
|
379
|
+
const _flattenUpdateResults = (_updateResults) => { };
|
292
380
|
//# sourceMappingURL=syncstate.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"syncstate.js","sourceRoot":"","sources":["../../src/sync/syncstate.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"syncstate.js","sourceRoot":"","sources":["../../src/sync/syncstate.ts"],"names":[],"mappings":"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"}
|