@livestore/common 0.3.0-dev.1 → 0.3.0-dev.11
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 +47 -35
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js.map +1 -1
- package/dist/derived-mutations.d.ts +4 -4
- package/dist/derived-mutations.d.ts.map +1 -1
- package/dist/derived-mutations.test.js.map +1 -1
- package/dist/devtools/devtool-message-leader.d.ts +2 -0
- package/dist/devtools/devtool-message-leader.d.ts.map +1 -0
- package/dist/devtools/devtool-message-leader.js +2 -0
- package/dist/devtools/devtool-message-leader.js.map +1 -0
- package/dist/devtools/devtools-bridge.d.ts +2 -1
- package/dist/devtools/devtools-bridge.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +297 -0
- package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -0
- package/dist/devtools/devtools-messages-client-session.js +61 -0
- package/dist/devtools/devtools-messages-client-session.js.map +1 -0
- package/dist/devtools/devtools-messages-common.d.ts +65 -0
- package/dist/devtools/devtools-messages-common.d.ts.map +1 -0
- package/dist/devtools/devtools-messages-common.js +35 -0
- package/dist/devtools/devtools-messages-common.js.map +1 -0
- package/dist/devtools/devtools-messages-leader.d.ts +261 -0
- package/dist/devtools/devtools-messages-leader.d.ts.map +1 -0
- package/dist/devtools/devtools-messages-leader.js +85 -0
- package/dist/devtools/devtools-messages-leader.js.map +1 -0
- package/dist/devtools/devtools-messages.d.ts +3 -592
- package/dist/devtools/devtools-messages.d.ts.map +1 -1
- package/dist/devtools/devtools-messages.js +3 -171
- package/dist/devtools/devtools-messages.js.map +1 -1
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/init-singleton-tables.d.ts +2 -2
- package/dist/init-singleton-tables.d.ts.map +1 -1
- package/dist/init-singleton-tables.js.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts +37 -0
- package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -0
- package/dist/leader-thread/LeaderSyncProcessor.js +432 -0
- package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -0
- package/dist/leader-thread/apply-mutation.d.ts +5 -2
- package/dist/leader-thread/apply-mutation.d.ts.map +1 -1
- package/dist/leader-thread/apply-mutation.js +41 -29
- package/dist/leader-thread/apply-mutation.js.map +1 -1
- package/dist/leader-thread/connection.d.ts +4 -4
- package/dist/leader-thread/connection.d.ts.map +1 -1
- package/dist/leader-thread/connection.js +5 -5
- package/dist/leader-thread/connection.js.map +1 -1
- package/dist/leader-thread/leader-sync-processor.d.ts +2 -2
- package/dist/leader-thread/leader-sync-processor.d.ts.map +1 -1
- package/dist/leader-thread/leader-sync-processor.js +20 -12
- package/dist/leader-thread/leader-sync-processor.js.map +1 -1
- package/dist/leader-thread/leader-worker-devtools.d.ts +1 -1
- package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
- package/dist/leader-thread/leader-worker-devtools.js +37 -81
- package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.d.ts +12 -11
- package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.js +33 -14
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
- package/dist/leader-thread/mutationlog.d.ts +6 -19
- package/dist/leader-thread/mutationlog.d.ts.map +1 -1
- package/dist/leader-thread/mutationlog.js +7 -6
- package/dist/leader-thread/mutationlog.js.map +1 -1
- package/dist/leader-thread/pull-queue-set.d.ts.map +1 -1
- package/dist/leader-thread/recreate-db.d.ts.map +1 -1
- package/dist/leader-thread/recreate-db.js +24 -18
- package/dist/leader-thread/recreate-db.js.map +1 -1
- package/dist/leader-thread/types.d.ts +36 -16
- package/dist/leader-thread/types.d.ts.map +1 -1
- package/dist/leader-thread/types.js.map +1 -1
- package/dist/mutation.d.ts +9 -2
- package/dist/mutation.d.ts.map +1 -1
- package/dist/mutation.js +5 -5
- package/dist/mutation.js.map +1 -1
- package/dist/query-builder/impl.d.ts +1 -1
- package/dist/rehydrate-from-mutationlog.d.ts +5 -5
- package/dist/rehydrate-from-mutationlog.d.ts.map +1 -1
- package/dist/rehydrate-from-mutationlog.js +13 -19
- package/dist/rehydrate-from-mutationlog.js.map +1 -1
- package/dist/schema/EventId.d.ts +16 -14
- package/dist/schema/EventId.d.ts.map +1 -1
- package/dist/schema/EventId.js +15 -7
- package/dist/schema/EventId.js.map +1 -1
- package/dist/schema/EventId.test.d.ts +2 -0
- package/dist/schema/EventId.test.d.ts.map +1 -0
- package/dist/schema/EventId.test.js +11 -0
- package/dist/schema/EventId.test.js.map +1 -0
- package/dist/schema/MutationEvent.d.ts +49 -80
- package/dist/schema/MutationEvent.d.ts.map +1 -1
- package/dist/schema/MutationEvent.js +32 -15
- package/dist/schema/MutationEvent.js.map +1 -1
- package/dist/schema/MutationEvent.test.d.ts +2 -0
- package/dist/schema/MutationEvent.test.d.ts.map +1 -0
- package/dist/schema/MutationEvent.test.js +2 -0
- package/dist/schema/MutationEvent.test.js.map +1 -0
- package/dist/schema/system-tables.d.ts +26 -26
- package/dist/schema/system-tables.d.ts.map +1 -1
- package/dist/schema/system-tables.js +19 -11
- package/dist/schema/system-tables.js.map +1 -1
- package/dist/schema-management/common.d.ts +3 -3
- package/dist/schema-management/common.d.ts.map +1 -1
- package/dist/schema-management/common.js.map +1 -1
- package/dist/schema-management/migrations.d.ts +4 -4
- package/dist/schema-management/migrations.d.ts.map +1 -1
- package/dist/schema-management/migrations.js +6 -6
- package/dist/schema-management/migrations.js.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts +43 -0
- package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -0
- package/dist/sync/ClientSessionSyncProcessor.js +141 -0
- package/dist/sync/ClientSessionSyncProcessor.js.map +1 -0
- package/dist/sync/client-session-sync-processor.d.ts +4 -4
- package/dist/sync/client-session-sync-processor.d.ts.map +1 -1
- package/dist/sync/index.d.ts +1 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +1 -1
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/next/history-dag-common.d.ts +1 -4
- package/dist/sync/next/history-dag-common.d.ts.map +1 -1
- package/dist/sync/next/history-dag-common.js +1 -1
- package/dist/sync/next/history-dag-common.js.map +1 -1
- package/dist/sync/next/rebase-events.d.ts +3 -3
- package/dist/sync/next/rebase-events.d.ts.map +1 -1
- package/dist/sync/next/rebase-events.js +3 -2
- package/dist/sync/next/rebase-events.js.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/next/test/mutation-fixtures.js +3 -9
- package/dist/sync/next/test/mutation-fixtures.js.map +1 -1
- package/dist/sync/sync.d.ts +21 -11
- package/dist/sync/sync.d.ts.map +1 -1
- package/dist/sync/sync.js.map +1 -1
- package/dist/sync/syncstate.d.ts +45 -23
- package/dist/sync/syncstate.d.ts.map +1 -1
- package/dist/sync/syncstate.js +56 -12
- package/dist/sync/syncstate.js.map +1 -1
- package/dist/sync/syncstate.test.js +125 -69
- package/dist/sync/syncstate.test.js.map +1 -1
- package/dist/sync/validate-push-payload.d.ts +2 -2
- package/dist/sync/validate-push-payload.d.ts.map +1 -1
- package/dist/sync/validate-push-payload.js +2 -2
- package/dist/sync/validate-push-payload.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +6 -5
- package/src/adapter-types.ts +39 -40
- package/src/derived-mutations.test.ts +1 -1
- package/src/derived-mutations.ts +9 -5
- package/src/devtools/devtools-bridge.ts +2 -1
- package/src/devtools/devtools-messages-client-session.ts +109 -0
- package/src/devtools/devtools-messages-common.ts +52 -0
- package/src/devtools/devtools-messages-leader.ts +115 -0
- package/src/devtools/devtools-messages.ts +3 -243
- package/src/index.ts +0 -6
- package/src/init-singleton-tables.ts +2 -2
- package/src/leader-thread/{leader-sync-processor.ts → LeaderSyncProcessor.ts} +306 -268
- package/src/leader-thread/apply-mutation.ts +53 -35
- package/src/leader-thread/connection.ts +7 -7
- package/src/leader-thread/leader-worker-devtools.ts +52 -124
- package/src/leader-thread/make-leader-thread-layer.ts +62 -30
- package/src/leader-thread/mutationlog.ts +14 -10
- package/src/leader-thread/recreate-db.ts +24 -20
- package/src/leader-thread/types.ts +41 -20
- package/src/mutation.ts +17 -7
- package/src/rehydrate-from-mutationlog.ts +18 -26
- package/src/schema/EventId.test.ts +12 -0
- package/src/schema/EventId.ts +23 -9
- package/src/schema/MutationEvent.ts +46 -24
- package/src/schema/system-tables.ts +19 -11
- package/src/schema-management/common.ts +3 -3
- package/src/schema-management/migrations.ts +10 -10
- package/src/sync/{client-session-sync-processor.ts → ClientSessionSyncProcessor.ts} +26 -19
- package/src/sync/index.ts +1 -1
- package/src/sync/next/history-dag-common.ts +1 -1
- package/src/sync/next/rebase-events.ts +7 -7
- package/src/sync/next/test/mutation-fixtures.ts +3 -10
- package/src/sync/sync.ts +19 -6
- package/src/sync/syncstate.test.ts +127 -67
- package/src/sync/syncstate.ts +21 -19
- package/src/sync/validate-push-payload.ts +7 -4
- package/src/version.ts +1 -1
@@ -12,10 +12,7 @@ export type HistoryDag = graphology.IGraph<HistoryDagNode, {
|
|
12
12
|
type: ConnectionType;
|
13
13
|
}>;
|
14
14
|
export declare const emptyHistoryDag: () => HistoryDag;
|
15
|
-
export declare const rootParentId:
|
16
|
-
global: number;
|
17
|
-
local: number;
|
18
|
-
};
|
15
|
+
export declare const rootParentId: EventId.EventId;
|
19
16
|
export type HistoryDagNode = {
|
20
17
|
id: EventId.EventId;
|
21
18
|
parentId: EventId.EventId;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"history-dag-common.d.ts","sourceRoot":"","sources":["../../../src/sync/next/history-dag-common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAA;AAClD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,eAAO,MAAM,qBAAqB,8BAA+B,CAAA;AACjE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnE;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,CAAA;AAEpF,eAAO,MAAM,eAAe,QAAO,UAK/B,CAAA;AAGJ,eAAO,MAAM,YAAY
|
1
|
+
{"version":3,"file":"history-dag-common.d.ts","sourceRoot":"","sources":["../../../src/sync/next/history-dag-common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAA;AAClD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,eAAO,MAAM,qBAAqB,8BAA+B,CAAA;AACjE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnE;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,CAAA;AAEpF,eAAO,MAAM,eAAe,QAAO,UAK/B,CAAA;AAGJ,eAAO,MAAM,YAAY,iBAAiF,CAAA;AAE1G,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,OAAO,CAAC,OAAO,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,GAAG,CAAA;IACT,yEAAyE;IACzE,UAAU,EAAE,uBAAuB,CAAA;IACnC,IAAI,CAAC,EAAE,GAAG,CAAA;CACX,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,cAO3B,CAAA;AAED,eAAO,MAAM,gBAAgB,eAA6B,CAAA"}
|
@@ -7,7 +7,7 @@ export const emptyHistoryDag = () => new graphology.Graph({
|
|
7
7
|
type: 'directed',
|
8
8
|
});
|
9
9
|
// TODO consider making `ROOT_ID` parent to itself
|
10
|
-
export const rootParentId = { global: EventId.ROOT.global - 1, local:
|
10
|
+
export const rootParentId = EventId.make({ global: EventId.ROOT.global - 1, local: EventId.localDefault });
|
11
11
|
export const rootEventNode = {
|
12
12
|
id: EventId.ROOT,
|
13
13
|
parentId: rootParentId,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"history-dag-common.js","sourceRoot":"","sources":["../../../src/sync/next/history-dag-common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAA;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAA;AAUjE,MAAM,CAAC,MAAM,eAAe,GAAG,GAAe,EAAE,CAC9C,IAAI,UAAU,CAAC,KAAK,CAAC;IACnB,cAAc,EAAE,KAAK;IACrB,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,UAAU;CACjB,CAAC,CAAA;AAEJ,kDAAkD;AAClD,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,
|
1
|
+
{"version":3,"file":"history-dag-common.js","sourceRoot":"","sources":["../../../src/sync/next/history-dag-common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAA;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAA;AAUjE,MAAM,CAAC,MAAM,eAAe,GAAG,GAAe,EAAE,CAC9C,IAAI,UAAU,CAAC,KAAK,CAAC;IACnB,cAAc,EAAE,KAAK;IACrB,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,UAAU;CACjB,CAAC,CAAA;AAEJ,kDAAkD;AAClD,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;AAY1G,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,EAAE,EAAE,OAAO,CAAC,IAAI;IAChB,QAAQ,EAAE,YAAY;IACtB,eAAe;IACf,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE;CACxG,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA"}
|
@@ -10,12 +10,12 @@ export type RebaseInput = {
|
|
10
10
|
newRemoteEvents: RebaseEventWithConflict[];
|
11
11
|
pendingLocalEvents: RebaseEventWithConflict[];
|
12
12
|
validate: (args: {
|
13
|
-
rebasedLocalEvents: MutationEvent.
|
13
|
+
rebasedLocalEvents: MutationEvent.PartialAnyDecoded[];
|
14
14
|
mutationDefs: Record<string, MutationDef.Any>;
|
15
15
|
}) => FactValidationResult;
|
16
16
|
};
|
17
17
|
export type RebaseOutput = {
|
18
|
-
rebasedLocalEvents: MutationEvent.
|
18
|
+
rebasedLocalEvents: MutationEvent.PartialAnyDecoded[];
|
19
19
|
};
|
20
20
|
export type RebaseFn = (input: RebaseInput) => RebaseOutput;
|
21
21
|
export declare const defaultRebaseFn: RebaseFn;
|
@@ -24,5 +24,5 @@ export declare const rebaseEvents: ({ rebaseFn, pendingLocalEvents, newRemoteEve
|
|
24
24
|
newRemoteEvents: HistoryDagNode[];
|
25
25
|
rebaseFn: RebaseFn;
|
26
26
|
currentFactsSnapshot: MutationEventFactsSnapshot;
|
27
|
-
}) => MutationEvent.
|
27
|
+
}) => ReadonlyArray<MutationEvent.AnyDecoded>;
|
28
28
|
//# sourceMappingURL=rebase-events.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rebase-events.d.ts","sourceRoot":"","sources":["../../../src/sync/next/rebase-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,aAAa,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AACxF,OAAO,EAGL,KAAK,oBAAoB,EAG1B,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAE7D,MAAM,MAAM,uBAAuB,GAAG,cAAc,GAAG;IACrD,YAAY,EAAE,SAAS,GAAG,qBAAqB,CAAA;IAC/C,iBAAiB,EAAE,cAAc,EAAE,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,eAAe,EAAE,uBAAuB,EAAE,CAAA;IAC1C,kBAAkB,EAAE,uBAAuB,EAAE,CAAA;IAC7C,QAAQ,EAAE,CAAC,IAAI,EAAE;QACf,kBAAkB,EAAE,aAAa,CAAC,
|
1
|
+
{"version":3,"file":"rebase-events.d.ts","sourceRoot":"","sources":["../../../src/sync/next/rebase-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,aAAa,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AACxF,OAAO,EAGL,KAAK,oBAAoB,EAG1B,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAE7D,MAAM,MAAM,uBAAuB,GAAG,cAAc,GAAG;IACrD,YAAY,EAAE,SAAS,GAAG,qBAAqB,CAAA;IAC/C,iBAAiB,EAAE,cAAc,EAAE,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,eAAe,EAAE,uBAAuB,EAAE,CAAA;IAC1C,kBAAkB,EAAE,uBAAuB,EAAE,CAAA;IAC7C,QAAQ,EAAE,CAAC,IAAI,EAAE;QACf,kBAAkB,EAAE,aAAa,CAAC,iBAAiB,EAAE,CAAA;QACrD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;KAC9C,KAAK,oBAAoB,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,kBAAkB,EAAE,aAAa,CAAC,iBAAiB,EAAE,CAAA;CACtD,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,YAAY,CAAA;AAE3D,eAAO,MAAM,eAAe,EAAE,QAM7B,CAAA;AAED,eAAO,MAAM,YAAY,6EAKtB;IACD,kBAAkB,EAAE,cAAc,EAAE,CAAA;IACpC,eAAe,EAAE,cAAc,EAAE,CAAA;IACjC,QAAQ,EAAE,QAAQ,CAAA;IAClB,oBAAoB,EAAE,0BAA0B,CAAA;CACjD,KAAG,aAAa,CAAC,aAAa,CAAC,UAAU,CA+CzC,CAAA"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import * as EventId from '../../schema/EventId.js';
|
1
2
|
import { applyFactGroups, factsIntersect, getFactsGroupForMutationArgs, validateFacts, } from './facts.js';
|
2
3
|
export const defaultRebaseFn = ({ pendingLocalEvents }) => {
|
3
4
|
if (pendingLocalEvents.some((_) => _.conflictType === 'missing-requirement')) {
|
@@ -32,8 +33,8 @@ export const rebaseEvents = ({ rebaseFn, pendingLocalEvents, newRemoteEvents, cu
|
|
32
33
|
});
|
33
34
|
const headGlobalId = newRemoteEvents.at(-1).id.global;
|
34
35
|
return rebasedLocalEvents.map((event, index) => ({
|
35
|
-
id: { global: headGlobalId + index + 1, local:
|
36
|
-
parentId: { global: headGlobalId + index, local:
|
36
|
+
id: EventId.make({ global: headGlobalId + index + 1, local: EventId.localDefault }),
|
37
|
+
parentId: EventId.make({ global: headGlobalId + index, local: EventId.localDefault }),
|
37
38
|
mutation: event.mutation,
|
38
39
|
args: event.args,
|
39
40
|
}));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rebase-events.js","sourceRoot":"","sources":["../../../src/sync/next/rebase-events.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"rebase-events.js","sourceRoot":"","sources":["../../../src/sync/next/rebase-events.ts"],"names":[],"mappings":"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"}
|
@@ -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
|
completeTodo: MutationDef<"completeTodo", {
|
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,kBACR,YAAY,EAAE,gBACf,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,KAC5C,cAAc,
|
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,kBACR,YAAY,EAAE,gBACf,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,KAC5C,cAAc,EA2EhB,CAAA"}
|
@@ -83,15 +83,9 @@ export const mutations = {
|
|
83
83
|
export const toEventNodes = (partialEvents, mutationDefs) => {
|
84
84
|
const nodesAcc = [rootEventNode];
|
85
85
|
let currentEventId = EventId.ROOT;
|
86
|
-
const getNextEventId = (mutationDef) => {
|
87
|
-
if (mutationDef.options.localOnly) {
|
88
|
-
return { global: currentEventId.global, local: currentEventId.local + 1 };
|
89
|
-
}
|
90
|
-
return { global: currentEventId.global + 1, local: 0 };
|
91
|
-
};
|
92
86
|
const eventNodes = partialEvents.map((partialEvent) => {
|
93
87
|
const mutationDef = mutationDefs[partialEvent.mutation];
|
94
|
-
const eventId =
|
88
|
+
const eventId = EventId.nextPair(currentEventId, mutationDef.options.localOnly).id;
|
95
89
|
currentEventId = eventId;
|
96
90
|
const factsSnapshot = factsSnapshotForDag(historyDagFromNodes(nodesAcc, { skipFactsCheck: true }), undefined);
|
97
91
|
// console.log('factsSnapshot', eventId, factsSnapshot)
|
@@ -155,8 +149,8 @@ const getParentId = (eventId) => {
|
|
155
149
|
const globalParentId = eventId.global;
|
156
150
|
const localParentId = eventId.local - 1;
|
157
151
|
if (localParentId < 0) {
|
158
|
-
return { global: globalParentId - 1, local:
|
152
|
+
return EventId.make({ global: globalParentId - 1, local: EventId.localDefault });
|
159
153
|
}
|
160
|
-
return { global: globalParentId, local: localParentId };
|
154
|
+
return EventId.make({ global: globalParentId, local: localParentId });
|
161
155
|
};
|
162
156
|
//# sourceMappingURL=mutation-fixtures.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mutation-fixtures.js","sourceRoot":"","sources":["../../../../src/sync/next/test/mutation-fixtures.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"mutation-fixtures.js","sourceRoot":"","sources":["../../../../src/sync/next/test/mutation-fixtures.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/sync.d.ts
CHANGED
@@ -1,18 +1,28 @@
|
|
1
|
-
import type { Effect, HttpClient, Option, Stream, SubscriptionRef } from '@livestore/utils/effect';
|
1
|
+
import type { Effect, HttpClient, Option, Scope, Stream, SubscriptionRef } from '@livestore/utils/effect';
|
2
2
|
import { Schema } from '@livestore/utils/effect';
|
3
|
+
import type { UnexpectedError } from '../adapter-types.js';
|
4
|
+
import type { InitialSyncOptions } from '../leader-thread/types.js';
|
3
5
|
import * as EventId from '../schema/EventId.js';
|
4
6
|
import type * as MutationEvent from '../schema/MutationEvent.js';
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
/**
|
8
|
+
* Those arguments can be used to implement multi-tenancy etc and are passed in from the store.
|
9
|
+
*/
|
10
|
+
export type MakeBackendArgs = {
|
11
|
+
storeId: string;
|
12
|
+
clientId: string;
|
13
|
+
};
|
14
|
+
export type SyncOptions = {
|
15
|
+
makeBackend: (args: MakeBackendArgs) => Effect.Effect<SyncBackend<any>, UnexpectedError, Scope.Scope>;
|
16
|
+
/** @default { _tag: 'Skip' } */
|
17
|
+
initialSyncOptions?: InitialSyncOptions;
|
18
|
+
};
|
9
19
|
export type SyncBackend<TSyncMetadata = Schema.JsonValue> = {
|
10
20
|
pull: (args: Option.Option<{
|
11
21
|
cursor: EventId.EventId;
|
12
22
|
metadata: Option.Option<TSyncMetadata>;
|
13
23
|
}>) => Stream.Stream<{
|
14
24
|
batch: ReadonlyArray<{
|
15
|
-
mutationEventEncoded: MutationEvent.
|
25
|
+
mutationEventEncoded: MutationEvent.AnyEncodedGlobal;
|
16
26
|
metadata: Option.Option<TSyncMetadata>;
|
17
27
|
}>;
|
18
28
|
remaining: number;
|
@@ -23,7 +33,7 @@ export type SyncBackend<TSyncMetadata = Schema.JsonValue> = {
|
|
23
33
|
* - Number of events: 1-100
|
24
34
|
* - event ids must be in ascending order
|
25
35
|
* */
|
26
|
-
batch: ReadonlyArray<MutationEvent.
|
36
|
+
batch: ReadonlyArray<MutationEvent.AnyEncodedGlobal>) => Effect.Effect<{
|
27
37
|
/** Indexes are relative to `batch` */
|
28
38
|
metadata: ReadonlyArray<Option.Option<TSyncMetadata>>;
|
29
39
|
}, IsOfflineError | InvalidPushError, HttpClient.HttpClient>;
|
@@ -44,12 +54,12 @@ declare const InvalidPushError_base: Schema.TaggedErrorClass<InvalidPushError, "
|
|
44
54
|
providedId: typeof Schema.Number;
|
45
55
|
}>, Schema.TaggedStruct<"LeaderAhead", {
|
46
56
|
minimumExpectedId: Schema.Struct<{
|
47
|
-
global:
|
48
|
-
local:
|
57
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
58
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
49
59
|
}>;
|
50
60
|
providedId: Schema.Struct<{
|
51
|
-
global:
|
52
|
-
local:
|
61
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
62
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
53
63
|
}>;
|
54
64
|
}>]>;
|
55
65
|
}>;
|
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,MAAM,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;
|
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,qBAcpC;CAAG;;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAEpC;CAAG"}
|
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;
|
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,EACF,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE;QACjC,iBAAiB,EAAE,OAAO,CAAC,OAAO;QAClC,UAAU,EAAE,OAAO,CAAC,OAAO;KAC5B,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"}
|
package/dist/sync/syncstate.d.ts
CHANGED
@@ -1,6 +1,43 @@
|
|
1
1
|
import { Schema } from '@livestore/utils/effect';
|
2
2
|
import * as EventId from '../schema/EventId.js';
|
3
3
|
import * as MutationEvent from '../schema/MutationEvent.js';
|
4
|
+
declare const SyncState_base: Schema.Class<SyncState, {
|
5
|
+
pending: Schema.Array$<typeof MutationEvent.EncodedWithMeta>;
|
6
|
+
rollbackTail: Schema.Array$<typeof MutationEvent.EncodedWithMeta>;
|
7
|
+
upstreamHead: Schema.Struct<{
|
8
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
9
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
10
|
+
}>;
|
11
|
+
localHead: Schema.Struct<{
|
12
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
13
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
14
|
+
}>;
|
15
|
+
}, Schema.Struct.Encoded<{
|
16
|
+
pending: Schema.Array$<typeof MutationEvent.EncodedWithMeta>;
|
17
|
+
rollbackTail: Schema.Array$<typeof MutationEvent.EncodedWithMeta>;
|
18
|
+
upstreamHead: Schema.Struct<{
|
19
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
20
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
21
|
+
}>;
|
22
|
+
localHead: Schema.Struct<{
|
23
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
24
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
25
|
+
}>;
|
26
|
+
}>, never, {
|
27
|
+
readonly pending: readonly MutationEvent.EncodedWithMeta[];
|
28
|
+
} & {
|
29
|
+
readonly upstreamHead: {
|
30
|
+
readonly global: number & import("effect/Brand").Brand<"GlobalEventId">;
|
31
|
+
readonly local: number & import("effect/Brand").Brand<"LocalEventId">;
|
32
|
+
};
|
33
|
+
} & {
|
34
|
+
readonly localHead: {
|
35
|
+
readonly global: number & import("effect/Brand").Brand<"GlobalEventId">;
|
36
|
+
readonly local: number & import("effect/Brand").Brand<"LocalEventId">;
|
37
|
+
};
|
38
|
+
} & {
|
39
|
+
readonly rollbackTail: readonly MutationEvent.EncodedWithMeta[];
|
40
|
+
}, {}, {}>;
|
4
41
|
/**
|
5
42
|
* SyncState represents the current sync state of a sync node relative to an upstream node.
|
6
43
|
* Events flow from local to upstream, with each state maintaining its own event head.
|
@@ -36,35 +73,20 @@ import * as MutationEvent from '../schema/MutationEvent.js';
|
|
36
73
|
* The `updateSyncState` function processes updates to the sync state based on incoming payloads,
|
37
74
|
* handling cases such as upstream rebase, advance, local push, and rollback tail trimming.
|
38
75
|
*/
|
39
|
-
export
|
40
|
-
|
41
|
-
rollbackTail: ReadonlyArray<MutationEvent.EncodedWithMeta>;
|
42
|
-
upstreamHead: EventId.EventId;
|
43
|
-
localHead: EventId.EventId;
|
76
|
+
export declare class SyncState extends SyncState_base {
|
77
|
+
toJSON: () => any;
|
44
78
|
}
|
45
|
-
export declare const SyncState: Schema.Struct<{
|
46
|
-
pending: Schema.Array$<typeof MutationEvent.EncodedWithMeta>;
|
47
|
-
rollbackTail: Schema.Array$<typeof MutationEvent.EncodedWithMeta>;
|
48
|
-
upstreamHead: Schema.Struct<{
|
49
|
-
global: typeof Schema.Number;
|
50
|
-
local: typeof Schema.Number;
|
51
|
-
}>;
|
52
|
-
localHead: Schema.Struct<{
|
53
|
-
global: typeof Schema.Number;
|
54
|
-
local: typeof Schema.Number;
|
55
|
-
}>;
|
56
|
-
}>;
|
57
79
|
declare const PayloadUpstreamRebase_base: Schema.TaggedStruct<"upstream-rebase", {
|
58
80
|
/** Rollback until this event in the rollback tail (inclusive). Starting from the end of the rollback tail. */
|
59
81
|
rollbackUntil: Schema.Struct<{
|
60
|
-
global:
|
61
|
-
local:
|
82
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
83
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
62
84
|
}>;
|
63
85
|
newEvents: Schema.Array$<typeof MutationEvent.EncodedWithMeta>;
|
64
86
|
/** Trim rollback tail up to this event (inclusive). */
|
65
87
|
trimRollbackUntil: Schema.optional<Schema.Struct<{
|
66
|
-
global:
|
67
|
-
local:
|
88
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
89
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
68
90
|
}>>;
|
69
91
|
}>;
|
70
92
|
export declare class PayloadUpstreamRebase extends PayloadUpstreamRebase_base {
|
@@ -73,8 +95,8 @@ declare const PayloadUpstreamAdvance_base: Schema.TaggedStruct<"upstream-advance
|
|
73
95
|
newEvents: Schema.Array$<typeof MutationEvent.EncodedWithMeta>;
|
74
96
|
/** Trim rollback tail up to this event (inclusive). */
|
75
97
|
trimRollbackUntil: Schema.optional<Schema.Struct<{
|
76
|
-
global:
|
77
|
-
local:
|
98
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
99
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
78
100
|
}>>;
|
79
101
|
}>;
|
80
102
|
export declare class PayloadUpstreamAdvance extends PayloadUpstreamAdvance_base {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"syncstate.d.ts","sourceRoot":"","sources":["../../src/sync/syncstate.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE/D,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAA
|
1
|
+
{"version":3,"file":"syncstate.d.ts","sourceRoot":"","sources":["../../src/sync/syncstate.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE/D,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,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,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,SAAS,CAAA;IACf,YAAY,EAAE,SAAS,CAAA;IACvB,iBAAiB,EAAE,SAAS,CAAA;IAC5B,qDAAqD;IACrD,SAAS,EAAE,aAAa,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,QAAQ,CAAA;IACd,YAAY,EAAE,SAAS,CAAA;IACvB,iBAAiB,EAAE,SAAS,CAAA;IAC5B,qDAAqD;IACrD,SAAS,EAAE,aAAa,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;IACvD,gBAAgB,EAAE,aAAa,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;CAC/D,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,QAAQ,CAAA;IACd,iBAAiB,EAAE,SAAS,CAAA;IAC5B,mDAAmD;IACnD,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,kBAAkB,CAAA;AAExF,eAAO,MAAM,eAAe,2EAMzB;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,YA+MH,CAAA"}
|
package/dist/sync/syncstate.js
CHANGED
@@ -2,12 +2,56 @@ import { shouldNeverHappen } from '@livestore/utils';
|
|
2
2
|
import { ReadonlyArray, Schema } from '@livestore/utils/effect';
|
3
3
|
import * as EventId from '../schema/EventId.js';
|
4
4
|
import * as MutationEvent from '../schema/MutationEvent.js';
|
5
|
-
|
5
|
+
/**
|
6
|
+
* SyncState represents the current sync state of a sync node relative to an upstream node.
|
7
|
+
* Events flow from local to upstream, with each state maintaining its own event head.
|
8
|
+
*
|
9
|
+
* Event Chain Structure:
|
10
|
+
* ```
|
11
|
+
* +-------------------------+------------------------+
|
12
|
+
* | ROLLBACK TAIL | PENDING EVENTS |
|
13
|
+
* +-------------------------+------------------------+
|
14
|
+
* ▼ ▼
|
15
|
+
* Upstream Head Local Head
|
16
|
+
* Example: (0,0), (0,1), (1,0) (1,1), (1,2), (2,0)
|
17
|
+
* ```
|
18
|
+
*
|
19
|
+
* State:
|
20
|
+
* - **Pending Events**: Events awaiting acknowledgment from the upstream.
|
21
|
+
* - Can be confirmed or rejected by the upstream.
|
22
|
+
* - Subject to rebase if rejected.
|
23
|
+
* - **Rollback Tail**: Events that are kept around temporarily for potential rollback until confirmed by upstream.
|
24
|
+
*
|
25
|
+
* Payloads:
|
26
|
+
* - `PayloadUpstreamRebase`: Upstream has performed a rebase, so downstream must roll back to the specified event
|
27
|
+
* and rebase the pending events on top of the new events.
|
28
|
+
* - `PayloadUpstreamAdvance`: Upstream has advanced, so downstream must rebase the pending events on top of the new events.
|
29
|
+
* - `PayloadUpstreamTrimRollbackTail`: Upstream has advanced, so downstream can trim the rollback tail.
|
30
|
+
* - `PayloadLocalPush`: Local push payload
|
31
|
+
*
|
32
|
+
* Invariants:
|
33
|
+
* 1. **Chain Continuity**: Each event must reference its immediate parent.
|
34
|
+
* 2. **Head Ordering**: Upstream Head ≤ Local Head.
|
35
|
+
* 3. **ID Sequence**: Must follow the pattern (1,0)→(1,1)→(1,2)→(2,0).
|
36
|
+
*
|
37
|
+
* The `updateSyncState` function processes updates to the sync state based on incoming payloads,
|
38
|
+
* handling cases such as upstream rebase, advance, local push, and rollback tail trimming.
|
39
|
+
*/
|
40
|
+
export class SyncState extends Schema.Class('SyncState')({
|
6
41
|
pending: Schema.Array(MutationEvent.EncodedWithMeta),
|
7
42
|
rollbackTail: Schema.Array(MutationEvent.EncodedWithMeta),
|
8
43
|
upstreamHead: EventId.EventId,
|
9
44
|
localHead: EventId.EventId,
|
10
|
-
})
|
45
|
+
}) {
|
46
|
+
toJSON = () => {
|
47
|
+
return {
|
48
|
+
pending: this.pending.map((e) => e.toJSON()),
|
49
|
+
rollbackTail: this.rollbackTail.map((e) => e.toJSON()),
|
50
|
+
upstreamHead: `(${this.upstreamHead.global},${this.upstreamHead.local})`,
|
51
|
+
localHead: `(${this.localHead.global},${this.localHead.local})`,
|
52
|
+
};
|
53
|
+
};
|
54
|
+
}
|
11
55
|
export class PayloadUpstreamRebase extends Schema.TaggedStruct('upstream-rebase', {
|
12
56
|
/** Rollback until this event in the rollback tail (inclusive). Starting from the end of the rollback tail. */
|
13
57
|
rollbackUntil: EventId.EventId,
|
@@ -57,12 +101,12 @@ export const updateSyncState = ({ syncState, payload, isLocalEvent, isEqualEvent
|
|
57
101
|
});
|
58
102
|
return {
|
59
103
|
_tag: 'rebase',
|
60
|
-
newSyncState: {
|
104
|
+
newSyncState: new SyncState({
|
61
105
|
pending: rebasedPending,
|
62
106
|
rollbackTail: trimRollbackTail([...syncState.rollbackTail.slice(0, rollbackIndex), ...payload.newEvents]),
|
63
107
|
upstreamHead: newUpstreamHead,
|
64
108
|
localHead: rebasedPending.at(-1)?.id ?? newUpstreamHead,
|
65
|
-
},
|
109
|
+
}),
|
66
110
|
previousSyncState: syncState,
|
67
111
|
newEvents: payload.newEvents,
|
68
112
|
eventsToRollback,
|
@@ -72,12 +116,12 @@ export const updateSyncState = ({ syncState, payload, isLocalEvent, isEqualEvent
|
|
72
116
|
if (payload.newEvents.length === 0) {
|
73
117
|
return {
|
74
118
|
_tag: 'advance',
|
75
|
-
newSyncState: {
|
119
|
+
newSyncState: new SyncState({
|
76
120
|
pending: syncState.pending,
|
77
121
|
rollbackTail: trimRollbackTail(syncState.rollbackTail),
|
78
122
|
upstreamHead: syncState.upstreamHead,
|
79
123
|
localHead: syncState.localHead,
|
80
|
-
},
|
124
|
+
}),
|
81
125
|
previousSyncState: syncState,
|
82
126
|
newEvents: [],
|
83
127
|
};
|
@@ -127,12 +171,12 @@ export const updateSyncState = ({ syncState, payload, isLocalEvent, isEqualEvent
|
|
127
171
|
});
|
128
172
|
return {
|
129
173
|
_tag: 'advance',
|
130
|
-
newSyncState: {
|
174
|
+
newSyncState: new SyncState({
|
131
175
|
pending: pendingRemaining,
|
132
176
|
rollbackTail: trimRollbackTail([...syncState.rollbackTail, ...pendingAndNewEvents]),
|
133
177
|
upstreamHead: newUpstreamHead,
|
134
178
|
localHead: pendingRemaining.at(-1)?.id ?? newUpstreamHead,
|
135
|
-
},
|
179
|
+
}),
|
136
180
|
previousSyncState: syncState,
|
137
181
|
newEvents,
|
138
182
|
};
|
@@ -153,12 +197,12 @@ export const updateSyncState = ({ syncState, payload, isLocalEvent, isEqualEvent
|
|
153
197
|
});
|
154
198
|
return {
|
155
199
|
_tag: 'rebase',
|
156
|
-
newSyncState: {
|
200
|
+
newSyncState: new SyncState({
|
157
201
|
pending: rebasedPending,
|
158
202
|
rollbackTail: trimRollbackTail([...syncState.rollbackTail, ...payload.newEvents]),
|
159
203
|
upstreamHead: newUpstreamHead,
|
160
204
|
localHead: rebasedPending.at(-1).id,
|
161
|
-
},
|
205
|
+
}),
|
162
206
|
previousSyncState: syncState,
|
163
207
|
newEvents: [...payload.newEvents.slice(divergentNewEventsIndex), ...rebasedPending],
|
164
208
|
eventsToRollback: [...syncState.rollbackTail, ...divergentPending],
|
@@ -178,12 +222,12 @@ export const updateSyncState = ({ syncState, payload, isLocalEvent, isEqualEvent
|
|
178
222
|
else {
|
179
223
|
return {
|
180
224
|
_tag: 'advance',
|
181
|
-
newSyncState: {
|
225
|
+
newSyncState: new SyncState({
|
182
226
|
pending: [...syncState.pending, ...payload.newEvents],
|
183
227
|
rollbackTail: syncState.rollbackTail,
|
184
228
|
upstreamHead: syncState.upstreamHead,
|
185
229
|
localHead: payload.newEvents.at(-1).id,
|
186
|
-
},
|
230
|
+
}),
|
187
231
|
previousSyncState: syncState,
|
188
232
|
newEvents: payload.newEvents,
|
189
233
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"syncstate.js","sourceRoot":"","sources":["../../src/sync/syncstate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE/D,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAA;
|
1
|
+
{"version":3,"file":"syncstate.js","sourceRoot":"","sources":["../../src/sync/syncstate.ts"],"names":[],"mappings":"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"}
|