@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
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rehydrate-from-mutationlog.js","sourceRoot":"","sources":["../src/rehydrate-from-mutationlog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"rehydrate-from-mutationlog.js","sourceRoot":"","sources":["../src/rehydrate-from-mutationlog.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/EventId.d.ts
CHANGED
@@ -1,4 +1,11 @@
|
|
1
|
-
import { Schema } from '@livestore/utils/effect';
|
1
|
+
import { Brand, Schema } from '@livestore/utils/effect';
|
2
|
+
export type LocalEventId = Brand.Branded<number, 'LocalEventId'>;
|
3
|
+
export declare const localEventId: Brand.Brand.Constructor<LocalEventId>;
|
4
|
+
export declare const LocalEventId: Schema.BrandSchema<number & Brand.Brand<"LocalEventId">, number, never>;
|
5
|
+
export type GlobalEventId = Brand.Branded<number, 'GlobalEventId'>;
|
6
|
+
export declare const globalEventId: Brand.Brand.Constructor<GlobalEventId>;
|
7
|
+
export declare const GlobalEventId: Schema.BrandSchema<number & Brand.Brand<"GlobalEventId">, number, never>;
|
8
|
+
export declare const localDefault: LocalEventId;
|
2
9
|
/**
|
3
10
|
* LiveStore event id value consisting of a globally unique event sequence number
|
4
11
|
* and a local sequence number.
|
@@ -6,12 +13,12 @@ import { Schema } from '@livestore/utils/effect';
|
|
6
13
|
* The local sequence number is only used for localOnly mutations and starts from 0 for each global sequence number.
|
7
14
|
*/
|
8
15
|
export type EventId = {
|
9
|
-
global:
|
10
|
-
local:
|
16
|
+
global: GlobalEventId;
|
17
|
+
local: LocalEventId;
|
11
18
|
};
|
12
19
|
export declare const EventId: Schema.Struct<{
|
13
|
-
global:
|
14
|
-
local:
|
20
|
+
global: Schema.BrandSchema<number & Brand.Brand<"GlobalEventId">, number, never>;
|
21
|
+
local: Schema.BrandSchema<number & Brand.Brand<"LocalEventId">, number, never>;
|
15
22
|
}>;
|
16
23
|
/**
|
17
24
|
* Compare two event ids i.e. checks if the first event id is less than the second.
|
@@ -23,15 +30,10 @@ export type EventIdPair = {
|
|
23
30
|
parentId: EventId;
|
24
31
|
};
|
25
32
|
export declare const ROOT: {
|
26
|
-
global:
|
27
|
-
local:
|
33
|
+
global: GlobalEventId;
|
34
|
+
local: LocalEventId;
|
28
35
|
};
|
29
36
|
export declare const isGreaterThan: (a: EventId, b: EventId) => boolean;
|
30
|
-
export declare const
|
31
|
-
|
32
|
-
global: number;
|
33
|
-
local: number;
|
34
|
-
};
|
35
|
-
parentId: EventId;
|
36
|
-
};
|
37
|
+
export declare const make: (id: EventId | typeof EventId.Encoded) => EventId;
|
38
|
+
export declare const nextPair: (id: EventId, isLocal: boolean) => EventIdPair;
|
37
39
|
//# sourceMappingURL=EventId.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"EventId.d.ts","sourceRoot":"","sources":["../../src/schema/EventId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;
|
1
|
+
{"version":3,"file":"EventId.d.ts","sourceRoot":"","sources":["../../src/schema/EventId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEvD,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAChE,eAAO,MAAM,YAAY,uCAAgC,CAAA;AACzD,eAAO,MAAM,YAAY,yEAA6C,CAAA;AAEtE,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;AAClE,eAAO,MAAM,aAAa,wCAAiC,CAAA;AAC3D,eAAO,MAAM,aAAa,0EAA8C,CAAA;AAExE,eAAO,MAAM,YAAY,EAAe,YAAY,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,MAAM,OAAO,GAAG;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAA;AAEpE,eAAO,MAAM,OAAO;;;EAG0B,CAAA;AAE9C;;GAEG;AACH,eAAO,MAAM,OAAO,MAAO,OAAO,KAAK,OAAO,WAK7C,CAAA;AAED,eAAO,MAAM,OAAO,MAAO,OAAO,KAAK,OAAO,YAAiD,CAAA;AAE/F,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAA;AAE5D,eAAO,MAAM,IAAI;YAA0B,aAAa;;CAAyC,CAAA;AAEjG,eAAO,MAAM,aAAa,MAAO,OAAO,KAAK,OAAO,YAEnD,CAAA;AAED,eAAO,MAAM,IAAI,OAAQ,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,KAAG,OAE3D,CAAA;AAED,eAAO,MAAM,QAAQ,OAAQ,OAAO,WAAW,OAAO,KAAG,WAUxD,CAAA"}
|
package/dist/schema/EventId.js
CHANGED
@@ -1,7 +1,12 @@
|
|
1
|
-
import { Schema } from '@livestore/utils/effect';
|
1
|
+
import { Brand, Schema } from '@livestore/utils/effect';
|
2
|
+
export const localEventId = Brand.nominal();
|
3
|
+
export const LocalEventId = Schema.fromBrand(localEventId)(Schema.Int);
|
4
|
+
export const globalEventId = Brand.nominal();
|
5
|
+
export const GlobalEventId = Schema.fromBrand(globalEventId)(Schema.Int);
|
6
|
+
export const localDefault = 0;
|
2
7
|
export const EventId = Schema.Struct({
|
3
|
-
global:
|
4
|
-
local:
|
8
|
+
global: GlobalEventId,
|
9
|
+
local: LocalEventId,
|
5
10
|
}).annotations({ title: 'LiveStore.EventId' });
|
6
11
|
/**
|
7
12
|
* Compare two event ids i.e. checks if the first event id is less than the second.
|
@@ -13,18 +18,21 @@ export const compare = (a, b) => {
|
|
13
18
|
return a.local - b.local;
|
14
19
|
};
|
15
20
|
export const isEqual = (a, b) => a.global === b.global && a.local === b.local;
|
16
|
-
export const ROOT = { global: -1, local:
|
21
|
+
export const ROOT = { global: -1, local: localDefault };
|
17
22
|
export const isGreaterThan = (a, b) => {
|
18
23
|
return a.global > b.global || (a.global === b.global && a.local > b.local);
|
19
24
|
};
|
25
|
+
export const make = (id) => {
|
26
|
+
return Schema.is(EventId)(id) ? id : Schema.decodeSync(EventId)(id);
|
27
|
+
};
|
20
28
|
export const nextPair = (id, isLocal) => {
|
21
29
|
if (isLocal) {
|
22
|
-
return { id: { global: id.global, local: id.local + 1 }, parentId: id };
|
30
|
+
return { id: { global: id.global, local: (id.local + 1) }, parentId: id };
|
23
31
|
}
|
24
32
|
return {
|
25
|
-
id: { global: id.global + 1, local:
|
33
|
+
id: { global: (id.global + 1), local: localDefault },
|
26
34
|
// NOTE we always point to `local: 0` for non-localOnly mutations
|
27
|
-
parentId: { global: id.global, local:
|
35
|
+
parentId: { global: id.global, local: localDefault },
|
28
36
|
};
|
29
37
|
};
|
30
38
|
//# sourceMappingURL=EventId.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"EventId.js","sourceRoot":"","sources":["../../src/schema/EventId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;
|
1
|
+
{"version":3,"file":"EventId.js","sourceRoot":"","sources":["../../src/schema/EventId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGvD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,EAAgB,CAAA;AACzD,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAGtE,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,EAAiB,CAAA;AAC3D,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAwB,CAAA;AAUpD,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,aAAa;IACrB,KAAK,EAAE,YAAY;CACpB,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAA;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE;IAChD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAA;IAC5B,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAA;AAI/F,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC,CAAyB,EAAE,KAAK,EAAE,YAAY,EAAoB,CAAA;AAEjG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE;IACtD,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;AAC5E,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAoC,EAAW,EAAE;IACpE,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;AACrE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAW,EAAE,OAAgB,EAAe,EAAE;IACrE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAwB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;IAClG,CAAC;IAED,OAAO;QACL,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAyB,EAAE,KAAK,EAAE,YAAY,EAAE;QAC5E,iEAAiE;QACjE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE;KACrD,CAAA;AACH,CAAC,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"EventId.test.d.ts","sourceRoot":"","sources":["../../src/schema/EventId.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { Vitest } from '@livestore/utils/node-vitest';
|
2
|
+
import { expect } from 'vitest';
|
3
|
+
import { EventId } from './mod.js';
|
4
|
+
Vitest.describe('EventId', () => {
|
5
|
+
Vitest.test('nextPair', () => {
|
6
|
+
const e_0_0 = EventId.make({ global: 0, local: 0 });
|
7
|
+
expect(EventId.nextPair(e_0_0, false).id).toStrictEqual({ global: 1, local: 0 });
|
8
|
+
expect(EventId.nextPair(e_0_0, true).id).toStrictEqual({ global: 0, local: 1 });
|
9
|
+
});
|
10
|
+
});
|
11
|
+
//# sourceMappingURL=EventId.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"EventId.test.js","sourceRoot":"","sources":["../../src/schema/EventId.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IAC9B,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QACnD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QAChF,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;IACjF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import type { Deferred } from '@livestore/utils/effect';
|
2
1
|
import { Schema } from '@livestore/utils/effect';
|
3
2
|
import * as EventId from './EventId.js';
|
4
3
|
import type { MutationDef, MutationDefRecord } from './mutations.js';
|
@@ -23,9 +22,40 @@ export type MutationEventEncoded<TMutationsDef extends MutationDef.Any> = {
|
|
23
22
|
id: EventId.EventId;
|
24
23
|
parentId: EventId.EventId;
|
25
24
|
};
|
26
|
-
export type
|
25
|
+
export type AnyDecoded = MutationEvent<MutationDef.Any>;
|
26
|
+
export declare const AnyDecoded: Schema.Struct<{
|
27
|
+
mutation: typeof Schema.String;
|
28
|
+
args: typeof Schema.Any;
|
29
|
+
id: Schema.Struct<{
|
30
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
31
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
32
|
+
}>;
|
33
|
+
parentId: Schema.Struct<{
|
34
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
35
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
36
|
+
}>;
|
37
|
+
}>;
|
27
38
|
export type AnyEncoded = MutationEventEncoded<MutationDef.Any>;
|
28
|
-
export
|
39
|
+
export declare const AnyEncoded: Schema.Struct<{
|
40
|
+
mutation: typeof Schema.String;
|
41
|
+
args: typeof Schema.Any;
|
42
|
+
id: Schema.Struct<{
|
43
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
44
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
45
|
+
}>;
|
46
|
+
parentId: Schema.Struct<{
|
47
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
48
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
49
|
+
}>;
|
50
|
+
}>;
|
51
|
+
export declare const AnyEncodedGlobal: Schema.Struct<{
|
52
|
+
mutation: typeof Schema.String;
|
53
|
+
args: typeof Schema.Any;
|
54
|
+
id: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
55
|
+
parentId: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
56
|
+
}>;
|
57
|
+
export type AnyEncodedGlobal = typeof AnyEncodedGlobal.Type;
|
58
|
+
export type PartialAnyDecoded = MutationEventPartial<MutationDef.Any>;
|
29
59
|
export type PartialAnyEncoded = MutationEventPartialEncoded<MutationDef.Any>;
|
30
60
|
export type PartialForSchema<TSchema extends LiveStoreSchema> = {
|
31
61
|
[K in keyof TSchema['_MutationDefMapType']]: MutationEventPartial<TSchema['_MutationDefMapType'][K]>;
|
@@ -33,7 +63,7 @@ export type PartialForSchema<TSchema extends LiveStoreSchema> = {
|
|
33
63
|
export type ForSchema<TSchema extends LiveStoreSchema> = {
|
34
64
|
[K in keyof TSchema['_MutationDefMapType']]: MutationEvent<TSchema['_MutationDefMapType'][K]>;
|
35
65
|
}[keyof TSchema['_MutationDefMapType']];
|
36
|
-
export declare const isPartialMutationEvent: (mutationEvent:
|
66
|
+
export declare const isPartialMutationEvent: (mutationEvent: AnyDecoded | PartialAnyDecoded) => mutationEvent is PartialAnyDecoded;
|
37
67
|
export type ForMutationDefRecord<TMutationsDefRecord extends MutationDefRecord> = Schema.Schema<{
|
38
68
|
[K in keyof TMutationsDefRecord]: {
|
39
69
|
mutation: K;
|
@@ -63,80 +93,20 @@ export type MutationEventPartialSchema<TMutationsDefRecord extends MutationDefRe
|
|
63
93
|
export declare const makeMutationEventSchema: <TSchema extends LiveStoreSchema>(schema: TSchema) => ForMutationDefRecord<TSchema["_MutationDefMapType"]>;
|
64
94
|
export declare const makeMutationEventPartialSchema: <TSchema extends LiveStoreSchema>(schema: TSchema) => MutationEventPartialSchema<TSchema["_MutationDefMapType"]>;
|
65
95
|
export declare const makeMutationEventSchemaMemo: <TSchema extends LiveStoreSchema>(schema: TSchema) => ForMutationDefRecord<TSchema["_MutationDefMapType"]>;
|
66
|
-
export declare const Any: Schema.Struct<{
|
67
|
-
mutation: typeof Schema.String;
|
68
|
-
args: typeof Schema.Any;
|
69
|
-
id: Schema.Struct<{
|
70
|
-
global: typeof Schema.Number;
|
71
|
-
local: typeof Schema.Number;
|
72
|
-
}>;
|
73
|
-
parentId: Schema.Struct<{
|
74
|
-
global: typeof Schema.Number;
|
75
|
-
local: typeof Schema.Number;
|
76
|
-
}>;
|
77
|
-
}>;
|
78
|
-
export declare const DecodedAny: Schema.SchemaClass<{
|
79
|
-
readonly id: {
|
80
|
-
readonly global: number;
|
81
|
-
readonly local: number;
|
82
|
-
};
|
83
|
-
readonly mutation: string;
|
84
|
-
readonly args: any;
|
85
|
-
readonly parentId: {
|
86
|
-
readonly global: number;
|
87
|
-
readonly local: number;
|
88
|
-
};
|
89
|
-
}, {
|
90
|
-
readonly id: {
|
91
|
-
readonly global: number;
|
92
|
-
readonly local: number;
|
93
|
-
};
|
94
|
-
readonly mutation: string;
|
95
|
-
readonly args: any;
|
96
|
-
readonly parentId: {
|
97
|
-
readonly global: number;
|
98
|
-
readonly local: number;
|
99
|
-
};
|
100
|
-
}, never>;
|
101
|
-
export declare const EncodedAny: Schema.SchemaClass<{
|
102
|
-
readonly id: {
|
103
|
-
readonly global: number;
|
104
|
-
readonly local: number;
|
105
|
-
};
|
106
|
-
readonly mutation: string;
|
107
|
-
readonly args: any;
|
108
|
-
readonly parentId: {
|
109
|
-
readonly global: number;
|
110
|
-
readonly local: number;
|
111
|
-
};
|
112
|
-
}, {
|
113
|
-
readonly id: {
|
114
|
-
readonly global: number;
|
115
|
-
readonly local: number;
|
116
|
-
};
|
117
|
-
readonly mutation: string;
|
118
|
-
readonly args: any;
|
119
|
-
readonly parentId: {
|
120
|
-
readonly global: number;
|
121
|
-
readonly local: number;
|
122
|
-
};
|
123
|
-
}, never>;
|
124
96
|
declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
|
125
97
|
mutation: typeof Schema.String;
|
126
98
|
args: typeof Schema.Any;
|
127
99
|
id: Schema.Struct<{
|
128
|
-
global:
|
129
|
-
local:
|
100
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
101
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
130
102
|
}>;
|
131
103
|
parentId: Schema.Struct<{
|
132
|
-
global:
|
133
|
-
local:
|
104
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
105
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
134
106
|
}>;
|
135
107
|
meta: Schema.optionalWith<Schema.Schema<{
|
136
|
-
deferred?: Deferred.Deferred<void>;
|
137
108
|
sessionChangeset?: Uint8Array;
|
138
109
|
}, {
|
139
|
-
deferred?: Deferred.Deferred<void>;
|
140
110
|
sessionChangeset?: Uint8Array;
|
141
111
|
}, never>, {
|
142
112
|
default: () => {};
|
@@ -145,26 +115,24 @@ declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
|
|
145
115
|
mutation: typeof Schema.String;
|
146
116
|
args: typeof Schema.Any;
|
147
117
|
id: Schema.Struct<{
|
148
|
-
global:
|
149
|
-
local:
|
118
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
119
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
150
120
|
}>;
|
151
121
|
parentId: Schema.Struct<{
|
152
|
-
global:
|
153
|
-
local:
|
122
|
+
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
123
|
+
local: Schema.BrandSchema<number & import("effect/Brand").Brand<"LocalEventId">, number, never>;
|
154
124
|
}>;
|
155
125
|
meta: Schema.optionalWith<Schema.Schema<{
|
156
|
-
deferred?: Deferred.Deferred<void>;
|
157
126
|
sessionChangeset?: Uint8Array;
|
158
127
|
}, {
|
159
|
-
deferred?: Deferred.Deferred<void>;
|
160
128
|
sessionChangeset?: Uint8Array;
|
161
129
|
}, never>, {
|
162
130
|
default: () => {};
|
163
131
|
}>;
|
164
132
|
}>, never, {
|
165
133
|
readonly id: {
|
166
|
-
readonly global: number
|
167
|
-
readonly local: number
|
134
|
+
readonly global: number & import("effect/Brand").Brand<"GlobalEventId">;
|
135
|
+
readonly local: number & import("effect/Brand").Brand<"LocalEventId">;
|
168
136
|
};
|
169
137
|
} & {
|
170
138
|
readonly mutation: string;
|
@@ -172,19 +140,20 @@ declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
|
|
172
140
|
readonly args: any;
|
173
141
|
} & {
|
174
142
|
readonly parentId: {
|
175
|
-
readonly global: number
|
176
|
-
readonly local: number
|
143
|
+
readonly global: number & import("effect/Brand").Brand<"GlobalEventId">;
|
144
|
+
readonly local: number & import("effect/Brand").Brand<"LocalEventId">;
|
177
145
|
};
|
178
146
|
} & {
|
179
147
|
readonly meta?: {
|
180
|
-
deferred?: Deferred.Deferred<void>;
|
181
148
|
sessionChangeset?: Uint8Array;
|
182
149
|
} | undefined;
|
183
150
|
}, {}, {}>;
|
184
|
-
/** Equivalent to
|
151
|
+
/** Equivalent to AnyEncoded but with a meta field and some convenience methods */
|
185
152
|
export declare class EncodedWithMeta extends EncodedWithMeta_base {
|
186
153
|
toJSON: () => any;
|
187
154
|
rebase: (parentId: EventId.EventId, isLocal: boolean) => EncodedWithMeta;
|
155
|
+
static fromGlobal: (mutationEvent: AnyEncodedGlobal) => EncodedWithMeta;
|
156
|
+
toGlobal: () => AnyEncodedGlobal;
|
188
157
|
}
|
189
158
|
export declare const isEqualEncoded: (a: AnyEncoded, b: AnyEncoded) => boolean;
|
190
159
|
export {};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MutationEvent.d.ts","sourceRoot":"","sources":["../../src/schema/MutationEvent.ts"],"names":[],"mappings":"AACA,OAAO,
|
1
|
+
{"version":3,"file":"MutationEvent.d.ts","sourceRoot":"","sources":["../../src/schema/MutationEvent.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,24 @@
|
|
1
1
|
import { memoizeByRef } from '@livestore/utils';
|
2
2
|
import { Schema } from '@livestore/utils/effect';
|
3
3
|
import * as EventId from './EventId.js';
|
4
|
+
export const AnyDecoded = Schema.Struct({
|
5
|
+
mutation: Schema.String,
|
6
|
+
args: Schema.Any,
|
7
|
+
id: EventId.EventId,
|
8
|
+
parentId: EventId.EventId,
|
9
|
+
}).annotations({ title: 'MutationEvent.AnyDecoded' });
|
10
|
+
export const AnyEncoded = Schema.Struct({
|
11
|
+
mutation: Schema.String,
|
12
|
+
args: Schema.Any,
|
13
|
+
id: EventId.EventId,
|
14
|
+
parentId: EventId.EventId,
|
15
|
+
}).annotations({ title: 'MutationEvent.AnyEncoded' });
|
16
|
+
export const AnyEncodedGlobal = Schema.Struct({
|
17
|
+
mutation: Schema.String,
|
18
|
+
args: Schema.Any,
|
19
|
+
id: EventId.GlobalEventId,
|
20
|
+
parentId: EventId.GlobalEventId,
|
21
|
+
}).annotations({ title: 'MutationEvent.AnyEncodedGlobal' });
|
4
22
|
export const isPartialMutationEvent = (mutationEvent) => 'id' in mutationEvent === false && 'parentId' in mutationEvent === false;
|
5
23
|
export const makeMutationEventSchema = (schema) => Schema.Union(...[...schema.mutations.values()].map((def) => Schema.Struct({
|
6
24
|
mutation: Schema.Literal(def.name),
|
@@ -11,26 +29,15 @@ export const makeMutationEventSchema = (schema) => Schema.Union(...[...schema.mu
|
|
11
29
|
export const makeMutationEventPartialSchema = (schema) => Schema.Union(...[...schema.mutations.values()].map((def) => Schema.Struct({
|
12
30
|
mutation: Schema.Literal(def.name),
|
13
31
|
args: def.schema,
|
14
|
-
}))).annotations({ title: '
|
32
|
+
}))).annotations({ title: 'MutationEventPartial' });
|
15
33
|
export const makeMutationEventSchemaMemo = memoizeByRef(makeMutationEventSchema);
|
16
|
-
|
17
|
-
mutation: Schema.String,
|
18
|
-
args: Schema.Any,
|
19
|
-
id: EventId.EventId,
|
20
|
-
parentId: EventId.EventId,
|
21
|
-
}).annotations({ title: 'MutationEvent.Any' });
|
22
|
-
export const DecodedAny = Schema.typeSchema(Any).annotations({
|
23
|
-
title: 'MutationEvent.DecodedAny',
|
24
|
-
});
|
25
|
-
export const EncodedAny = Schema.encodedSchema(Any).annotations({
|
26
|
-
title: 'MutationEvent.EncodedAny',
|
27
|
-
});
|
28
|
-
/** Equivalent to EncodedAny but with a meta field and some convenience methods */
|
34
|
+
/** Equivalent to AnyEncoded but with a meta field and some convenience methods */
|
29
35
|
export class EncodedWithMeta extends Schema.Class('MutationEvent.EncodedWithMeta')({
|
30
36
|
mutation: Schema.String,
|
31
37
|
args: Schema.Any,
|
32
38
|
id: EventId.EventId,
|
33
39
|
parentId: EventId.EventId,
|
40
|
+
// TODO get rid of `meta` again by cleaning up the usage implementations
|
34
41
|
meta: Schema.optionalWith(Schema.Any, { default: () => ({}) }),
|
35
42
|
}) {
|
36
43
|
toJSON = () => {
|
@@ -45,7 +52,17 @@ export class EncodedWithMeta extends Schema.Class('MutationEvent.EncodedWithMeta
|
|
45
52
|
};
|
46
53
|
rebase = (parentId, isLocal) => new EncodedWithMeta({
|
47
54
|
...this,
|
48
|
-
...EventId.nextPair(
|
55
|
+
...EventId.nextPair(parentId, isLocal),
|
56
|
+
});
|
57
|
+
static fromGlobal = (mutationEvent) => new EncodedWithMeta({
|
58
|
+
...mutationEvent,
|
59
|
+
id: { global: mutationEvent.id, local: EventId.localDefault },
|
60
|
+
parentId: { global: mutationEvent.parentId, local: EventId.localDefault },
|
61
|
+
});
|
62
|
+
toGlobal = () => ({
|
63
|
+
...this,
|
64
|
+
id: this.id.global,
|
65
|
+
parentId: this.parentId.global,
|
49
66
|
});
|
50
67
|
}
|
51
68
|
export const isEqualEncoded = (a, b) => a.id.global === b.id.global &&
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MutationEvent.js","sourceRoot":"","sources":["../../src/schema/MutationEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;
|
1
|
+
{"version":3,"file":"MutationEvent.js","sourceRoot":"","sources":["../../src/schema/MutationEvent.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"MutationEvent.test.d.ts","sourceRoot":"","sources":["../../src/schema/MutationEvent.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"MutationEvent.test.js","sourceRoot":"","sources":["../../src/schema/MutationEvent.test.ts"],"names":[],"mappings":""}
|