@livestore/common 0.0.0-snapshot-aed277ba0960f72b8d464508961ab4aec1881230 → 0.0.0-snapshot-7bcbc24bb8873481e482d982636957f0c1f791f6
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/__tests__/fixture.d.ts +6 -6
- package/dist/adapter-types.d.ts +39 -16
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js +12 -0
- package/dist/adapter-types.js.map +1 -1
- package/dist/derived-mutations.js +3 -3
- package/dist/derived-mutations.js.map +1 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +23 -23
- package/dist/devtools/devtools-messages-common.d.ts +19 -6
- package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-common.js +14 -0
- package/dist/devtools/devtools-messages-common.js.map +1 -1
- package/dist/devtools/devtools-messages-leader.d.ts +94 -75
- package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-leader.js +18 -17
- package/dist/devtools/devtools-messages-leader.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.js +50 -35
- 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 +8 -6
- package/dist/leader-thread/apply-mutation.js.map +1 -1
- package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
- package/dist/leader-thread/leader-worker-devtools.js +26 -18
- package/dist/leader-thread/leader-worker-devtools.js.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 +23 -6
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
- package/dist/leader-thread/mutationlog.d.ts +1 -1
- package/dist/leader-thread/mutationlog.d.ts.map +1 -1
- package/dist/leader-thread/mutationlog.js +7 -5
- 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 +4 -2
- package/dist/leader-thread/recreate-db.d.ts.map +1 -1
- package/dist/leader-thread/recreate-db.js +12 -7
- package/dist/leader-thread/recreate-db.js.map +1 -1
- package/dist/leader-thread/types.d.ts +19 -7
- package/dist/leader-thread/types.d.ts.map +1 -1
- package/dist/leader-thread/types.js +1 -1
- package/dist/leader-thread/types.js.map +1 -1
- package/dist/rehydrate-from-mutationlog.d.ts.map +1 -1
- package/dist/rehydrate-from-mutationlog.js +8 -6
- package/dist/rehydrate-from-mutationlog.js.map +1 -1
- package/dist/schema/EventId.d.ts +10 -9
- package/dist/schema/EventId.d.ts.map +1 -1
- package/dist/schema/EventId.js +14 -11
- package/dist/schema/EventId.js.map +1 -1
- package/dist/schema/EventId.test.js +3 -3
- package/dist/schema/EventId.test.js.map +1 -1
- package/dist/schema/MutationEvent.d.ts +37 -12
- package/dist/schema/MutationEvent.d.ts.map +1 -1
- package/dist/schema/MutationEvent.js +20 -4
- package/dist/schema/MutationEvent.js.map +1 -1
- package/dist/schema/mutations.d.ts +4 -8
- package/dist/schema/mutations.d.ts.map +1 -1
- package/dist/schema/mutations.js +2 -2
- package/dist/schema/mutations.js.map +1 -1
- package/dist/schema/system-tables.d.ts +38 -20
- package/dist/schema/system-tables.d.ts.map +1 -1
- package/dist/schema/system-tables.js +9 -6
- package/dist/schema/system-tables.js.map +1 -1
- package/dist/schema/table-def.d.ts +7 -7
- package/dist/schema/table-def.d.ts.map +1 -1
- package/dist/schema/table-def.js +2 -2
- package/dist/schema/table-def.js.map +1 -1
- package/dist/schema-management/migrations.d.ts +2 -2
- package/dist/schema-management/migrations.d.ts.map +1 -1
- package/dist/schema-management/migrations.js +6 -1
- package/dist/schema-management/migrations.js.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.js +20 -5
- package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
- package/dist/sync/next/facts.js +1 -1
- package/dist/sync/next/facts.js.map +1 -1
- package/dist/sync/next/history-dag-common.d.ts +2 -0
- package/dist/sync/next/history-dag-common.d.ts.map +1 -1
- package/dist/sync/next/history-dag-common.js +3 -1
- package/dist/sync/next/history-dag-common.js.map +1 -1
- package/dist/sync/next/history-dag.d.ts.map +1 -1
- package/dist/sync/next/history-dag.js +1 -1
- package/dist/sync/next/history-dag.js.map +1 -1
- package/dist/sync/next/rebase-events.d.ts +3 -1
- package/dist/sync/next/rebase-events.d.ts.map +1 -1
- package/dist/sync/next/rebase-events.js +5 -3
- package/dist/sync/next/rebase-events.js.map +1 -1
- package/dist/sync/next/test/compact-events.calculator.test.js +12 -12
- package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -1
- package/dist/sync/next/test/compact-events.test.js +30 -30
- package/dist/sync/next/test/compact-events.test.js.map +1 -1
- package/dist/sync/next/test/mutation-fixtures.d.ts +1 -1
- package/dist/sync/next/test/mutation-fixtures.d.ts.map +1 -1
- package/dist/sync/next/test/mutation-fixtures.js +9 -7
- package/dist/sync/next/test/mutation-fixtures.js.map +1 -1
- package/dist/sync/sync.d.ts +2 -2
- package/dist/sync/syncstate.d.ts +9 -9
- package/dist/sync/syncstate.js +6 -6
- package/dist/sync/syncstate.js.map +1 -1
- package/dist/sync/syncstate.test.js +18 -16
- package/dist/sync/syncstate.test.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
- package/src/adapter-types.ts +33 -15
- package/src/derived-mutations.ts +3 -3
- package/src/devtools/devtools-messages-common.ts +34 -0
- package/src/devtools/devtools-messages-leader.ts +28 -18
- package/src/index.ts +1 -1
- package/src/leader-thread/LeaderSyncProcessor.ts +59 -38
- package/src/leader-thread/apply-mutation.ts +15 -5
- package/src/leader-thread/leader-worker-devtools.ts +33 -19
- package/src/leader-thread/make-leader-thread-layer.ts +28 -8
- package/src/leader-thread/mutationlog.ts +8 -6
- package/src/leader-thread/recreate-db.ts +18 -9
- package/src/leader-thread/types.ts +20 -5
- package/src/rehydrate-from-mutationlog.ts +8 -6
- package/src/schema/EventId.test.ts +3 -3
- package/src/schema/EventId.ts +20 -16
- package/src/schema/MutationEvent.ts +31 -6
- package/src/schema/mutations.ts +6 -19
- package/src/schema/system-tables.ts +9 -6
- package/src/schema/table-def.ts +8 -8
- package/src/schema-management/migrations.ts +9 -5
- package/src/sync/ClientSessionSyncProcessor.ts +25 -6
- package/src/sync/next/facts.ts +1 -1
- package/src/sync/next/history-dag-common.ts +5 -1
- package/src/sync/next/history-dag.ts +1 -1
- package/src/sync/next/rebase-events.ts +8 -2
- package/src/sync/next/test/compact-events.calculator.test.ts +12 -12
- package/src/sync/next/test/compact-events.test.ts +30 -30
- package/src/sync/next/test/mutation-fixtures.ts +10 -6
- package/src/sync/syncstate.test.ts +19 -17
- package/src/sync/syncstate.ts +6 -6
- package/src/version.ts +1 -1
|
@@ -6,7 +6,7 @@ export type MutationEventPartial<TMutationsDef extends MutationDef.Any> = {
|
|
|
6
6
|
mutation: TMutationsDef['name'];
|
|
7
7
|
args: Schema.Schema.Type<TMutationsDef['schema']>;
|
|
8
8
|
};
|
|
9
|
-
export type
|
|
9
|
+
export type PartialEncoded<TMutationsDef extends MutationDef.Any> = {
|
|
10
10
|
mutation: TMutationsDef['name'];
|
|
11
11
|
args: Schema.Schema.Encoded<TMutationsDef['schema']>;
|
|
12
12
|
};
|
|
@@ -15,12 +15,16 @@ export type MutationEvent<TMutationsDef extends MutationDef.Any> = {
|
|
|
15
15
|
args: Schema.Schema.Type<TMutationsDef['schema']>;
|
|
16
16
|
id: EventId.EventId;
|
|
17
17
|
parentId: EventId.EventId;
|
|
18
|
+
clientId: string;
|
|
19
|
+
sessionId: string | undefined;
|
|
18
20
|
};
|
|
19
21
|
export type MutationEventEncoded<TMutationsDef extends MutationDef.Any> = {
|
|
20
22
|
mutation: TMutationsDef['name'];
|
|
21
23
|
args: Schema.Schema.Encoded<TMutationsDef['schema']>;
|
|
22
24
|
id: EventId.EventId;
|
|
23
25
|
parentId: EventId.EventId;
|
|
26
|
+
clientId: string;
|
|
27
|
+
sessionId: string | undefined;
|
|
24
28
|
};
|
|
25
29
|
export type AnyDecoded = MutationEvent<MutationDef.Any>;
|
|
26
30
|
export declare const AnyDecoded: Schema.Struct<{
|
|
@@ -28,12 +32,14 @@ export declare const AnyDecoded: Schema.Struct<{
|
|
|
28
32
|
args: typeof Schema.Any;
|
|
29
33
|
id: Schema.Struct<{
|
|
30
34
|
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
|
31
|
-
|
|
35
|
+
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
|
32
36
|
}>;
|
|
33
37
|
parentId: Schema.Struct<{
|
|
34
38
|
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
|
35
|
-
|
|
39
|
+
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
|
36
40
|
}>;
|
|
41
|
+
clientId: typeof Schema.String;
|
|
42
|
+
sessionId: Schema.UndefinedOr<typeof Schema.String>;
|
|
37
43
|
}>;
|
|
38
44
|
export type AnyEncoded = MutationEventEncoded<MutationDef.Any>;
|
|
39
45
|
export declare const AnyEncoded: Schema.Struct<{
|
|
@@ -41,22 +47,29 @@ export declare const AnyEncoded: Schema.Struct<{
|
|
|
41
47
|
args: typeof Schema.Any;
|
|
42
48
|
id: Schema.Struct<{
|
|
43
49
|
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
|
44
|
-
|
|
50
|
+
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
|
45
51
|
}>;
|
|
46
52
|
parentId: Schema.Struct<{
|
|
47
53
|
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
|
48
|
-
|
|
54
|
+
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
|
49
55
|
}>;
|
|
56
|
+
clientId: typeof Schema.String;
|
|
57
|
+
sessionId: Schema.UndefinedOr<typeof Schema.String>;
|
|
50
58
|
}>;
|
|
51
59
|
export declare const AnyEncodedGlobal: Schema.Struct<{
|
|
52
60
|
mutation: typeof Schema.String;
|
|
53
61
|
args: typeof Schema.Any;
|
|
54
62
|
id: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
|
55
63
|
parentId: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
|
64
|
+
clientId: typeof Schema.String;
|
|
56
65
|
}>;
|
|
57
66
|
export type AnyEncodedGlobal = typeof AnyEncodedGlobal.Type;
|
|
58
67
|
export type PartialAnyDecoded = MutationEventPartial<MutationDef.Any>;
|
|
59
|
-
export type PartialAnyEncoded =
|
|
68
|
+
export type PartialAnyEncoded = PartialEncoded<MutationDef.Any>;
|
|
69
|
+
export declare const PartialAnyEncoded: Schema.Struct<{
|
|
70
|
+
mutation: typeof Schema.String;
|
|
71
|
+
args: typeof Schema.Any;
|
|
72
|
+
}>;
|
|
60
73
|
export type PartialForSchema<TSchema extends LiveStoreSchema> = {
|
|
61
74
|
[K in keyof TSchema['_MutationDefMapType']]: MutationEventPartial<TSchema['_MutationDefMapType'][K]>;
|
|
62
75
|
}[keyof TSchema['_MutationDefMapType']];
|
|
@@ -70,6 +83,8 @@ export type ForMutationDefRecord<TMutationsDefRecord extends MutationDefRecord>
|
|
|
70
83
|
args: Schema.Schema.Type<TMutationsDefRecord[K]['schema']>;
|
|
71
84
|
id: EventId.EventId;
|
|
72
85
|
parentId: EventId.EventId;
|
|
86
|
+
clientId: string;
|
|
87
|
+
sessionId: string | undefined;
|
|
73
88
|
};
|
|
74
89
|
}[keyof TMutationsDefRecord], {
|
|
75
90
|
[K in keyof TMutationsDefRecord]: {
|
|
@@ -77,6 +92,8 @@ export type ForMutationDefRecord<TMutationsDefRecord extends MutationDefRecord>
|
|
|
77
92
|
args: Schema.Schema.Encoded<TMutationsDefRecord[K]['schema']>;
|
|
78
93
|
id: EventId.EventId;
|
|
79
94
|
parentId: EventId.EventId;
|
|
95
|
+
clientId: string;
|
|
96
|
+
sessionId: string | undefined;
|
|
80
97
|
};
|
|
81
98
|
}[keyof TMutationsDefRecord]>;
|
|
82
99
|
export type MutationEventPartialSchema<TMutationsDefRecord extends MutationDefRecord> = Schema.Schema<{
|
|
@@ -98,12 +115,14 @@ declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
|
|
|
98
115
|
args: typeof Schema.Any;
|
|
99
116
|
id: Schema.Struct<{
|
|
100
117
|
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
|
101
|
-
|
|
118
|
+
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
|
102
119
|
}>;
|
|
103
120
|
parentId: Schema.Struct<{
|
|
104
121
|
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
|
105
|
-
|
|
122
|
+
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
|
106
123
|
}>;
|
|
124
|
+
clientId: typeof Schema.String;
|
|
125
|
+
sessionId: Schema.UndefinedOr<typeof Schema.String>;
|
|
107
126
|
meta: Schema.optionalWith<Schema.Schema<{
|
|
108
127
|
sessionChangeset?: Uint8Array;
|
|
109
128
|
}, {
|
|
@@ -116,12 +135,14 @@ declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
|
|
|
116
135
|
args: typeof Schema.Any;
|
|
117
136
|
id: Schema.Struct<{
|
|
118
137
|
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
|
119
|
-
|
|
138
|
+
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
|
120
139
|
}>;
|
|
121
140
|
parentId: Schema.Struct<{
|
|
122
141
|
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventId">, number, never>;
|
|
123
|
-
|
|
142
|
+
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
|
124
143
|
}>;
|
|
144
|
+
clientId: typeof Schema.String;
|
|
145
|
+
sessionId: Schema.UndefinedOr<typeof Schema.String>;
|
|
125
146
|
meta: Schema.optionalWith<Schema.Schema<{
|
|
126
147
|
sessionChangeset?: Uint8Array;
|
|
127
148
|
}, {
|
|
@@ -132,7 +153,7 @@ declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
|
|
|
132
153
|
}>, never, {
|
|
133
154
|
readonly id: {
|
|
134
155
|
readonly global: number & import("effect/Brand").Brand<"GlobalEventId">;
|
|
135
|
-
readonly
|
|
156
|
+
readonly client: number & import("effect/Brand").Brand<"ClientEventId">;
|
|
136
157
|
};
|
|
137
158
|
} & {
|
|
138
159
|
readonly mutation: string;
|
|
@@ -141,8 +162,12 @@ declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
|
|
|
141
162
|
} & {
|
|
142
163
|
readonly parentId: {
|
|
143
164
|
readonly global: number & import("effect/Brand").Brand<"GlobalEventId">;
|
|
144
|
-
readonly
|
|
165
|
+
readonly client: number & import("effect/Brand").Brand<"ClientEventId">;
|
|
145
166
|
};
|
|
167
|
+
} & {
|
|
168
|
+
readonly clientId: string;
|
|
169
|
+
} & {
|
|
170
|
+
readonly sessionId: string | undefined;
|
|
146
171
|
} & {
|
|
147
172
|
readonly meta?: {
|
|
148
173
|
sessionChangeset?: Uint8Array;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MutationEvent.d.ts","sourceRoot":"","sources":["../../src/schema/MutationEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,MAAM,MAAM,oBAAoB,CAAC,aAAa,SAAS,WAAW,CAAC,GAAG,IAAI;IACxE,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAA;CAClD,CAAA;AAED,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"MutationEvent.d.ts","sourceRoot":"","sources":["../../src/schema/MutationEvent.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,25 +6,36 @@ export const AnyDecoded = Schema.Struct({
|
|
|
6
6
|
args: Schema.Any,
|
|
7
7
|
id: EventId.EventId,
|
|
8
8
|
parentId: EventId.EventId,
|
|
9
|
+
clientId: Schema.String,
|
|
10
|
+
sessionId: Schema.UndefinedOr(Schema.String),
|
|
9
11
|
}).annotations({ title: 'MutationEvent.AnyDecoded' });
|
|
10
12
|
export const AnyEncoded = Schema.Struct({
|
|
11
13
|
mutation: Schema.String,
|
|
12
14
|
args: Schema.Any,
|
|
13
15
|
id: EventId.EventId,
|
|
14
16
|
parentId: EventId.EventId,
|
|
17
|
+
clientId: Schema.String,
|
|
18
|
+
sessionId: Schema.UndefinedOr(Schema.String),
|
|
15
19
|
}).annotations({ title: 'MutationEvent.AnyEncoded' });
|
|
16
20
|
export const AnyEncodedGlobal = Schema.Struct({
|
|
17
21
|
mutation: Schema.String,
|
|
18
22
|
args: Schema.Any,
|
|
19
23
|
id: EventId.GlobalEventId,
|
|
20
24
|
parentId: EventId.GlobalEventId,
|
|
25
|
+
clientId: Schema.String,
|
|
21
26
|
}).annotations({ title: 'MutationEvent.AnyEncodedGlobal' });
|
|
27
|
+
export const PartialAnyEncoded = Schema.Struct({
|
|
28
|
+
mutation: Schema.String,
|
|
29
|
+
args: Schema.Any,
|
|
30
|
+
});
|
|
22
31
|
export const isPartialMutationEvent = (mutationEvent) => 'id' in mutationEvent === false && 'parentId' in mutationEvent === false;
|
|
23
32
|
export const makeMutationEventSchema = (schema) => Schema.Union(...[...schema.mutations.values()].map((def) => Schema.Struct({
|
|
24
33
|
mutation: Schema.Literal(def.name),
|
|
25
34
|
args: def.schema,
|
|
26
35
|
id: EventId.EventId,
|
|
27
36
|
parentId: EventId.EventId,
|
|
37
|
+
clientId: Schema.String,
|
|
38
|
+
sessionId: Schema.UndefinedOr(Schema.String),
|
|
28
39
|
}))).annotations({ title: 'MutationEvent' });
|
|
29
40
|
export const makeMutationEventPartialSchema = (schema) => Schema.Union(...[...schema.mutations.values()].map((def) => Schema.Struct({
|
|
30
41
|
mutation: Schema.Literal(def.name),
|
|
@@ -37,6 +48,8 @@ export class EncodedWithMeta extends Schema.Class('MutationEvent.EncodedWithMeta
|
|
|
37
48
|
args: Schema.Any,
|
|
38
49
|
id: EventId.EventId,
|
|
39
50
|
parentId: EventId.EventId,
|
|
51
|
+
clientId: Schema.String,
|
|
52
|
+
sessionId: Schema.UndefinedOr(Schema.String),
|
|
40
53
|
// TODO get rid of `meta` again by cleaning up the usage implementations
|
|
41
54
|
meta: Schema.optionalWith(Schema.Any, { default: () => ({}) }),
|
|
42
55
|
}) {
|
|
@@ -45,7 +58,7 @@ export class EncodedWithMeta extends Schema.Class('MutationEvent.EncodedWithMeta
|
|
|
45
58
|
// - More readable way to print the id + parentId
|
|
46
59
|
// - not including `meta`
|
|
47
60
|
return {
|
|
48
|
-
id: `(${this.id.global},${this.id.
|
|
61
|
+
id: `(${this.id.global},${this.id.client}) → (${this.parentId.global},${this.parentId.client})`,
|
|
49
62
|
mutation: this.mutation,
|
|
50
63
|
args: this.args,
|
|
51
64
|
};
|
|
@@ -56,8 +69,9 @@ export class EncodedWithMeta extends Schema.Class('MutationEvent.EncodedWithMeta
|
|
|
56
69
|
});
|
|
57
70
|
static fromGlobal = (mutationEvent) => new EncodedWithMeta({
|
|
58
71
|
...mutationEvent,
|
|
59
|
-
id: { global: mutationEvent.id,
|
|
60
|
-
parentId: { global: mutationEvent.parentId,
|
|
72
|
+
id: { global: mutationEvent.id, client: EventId.clientDefault },
|
|
73
|
+
parentId: { global: mutationEvent.parentId, client: EventId.clientDefault },
|
|
74
|
+
sessionId: undefined,
|
|
61
75
|
});
|
|
62
76
|
toGlobal = () => ({
|
|
63
77
|
...this,
|
|
@@ -66,8 +80,10 @@ export class EncodedWithMeta extends Schema.Class('MutationEvent.EncodedWithMeta
|
|
|
66
80
|
});
|
|
67
81
|
}
|
|
68
82
|
export const isEqualEncoded = (a, b) => a.id.global === b.id.global &&
|
|
69
|
-
a.id.
|
|
83
|
+
a.id.client === b.id.client &&
|
|
70
84
|
a.mutation === b.mutation &&
|
|
85
|
+
a.clientId === b.clientId &&
|
|
86
|
+
// a.sessionId === b.sessionId &&
|
|
71
87
|
// TODO use schema equality here
|
|
72
88
|
JSON.stringify(a.args) === JSON.stringify(b.args);
|
|
73
89
|
//# sourceMappingURL=MutationEvent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MutationEvent.js","sourceRoot":"","sources":["../../src/schema/MutationEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"MutationEvent.js","sourceRoot":"","sources":["../../src/schema/MutationEvent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Schema } from '@livestore/utils/effect';
|
|
2
2
|
import type { BindValues } from '../sql-queries/sql-queries.js';
|
|
3
|
-
import type * as EventId from './EventId.js';
|
|
4
3
|
export type MutationDefMap = Map<string | 'livestore.RawSql', MutationDef.Any>;
|
|
5
4
|
export type MutationDefRecord = {
|
|
6
5
|
'livestore.RawSql': RawSqlMutation;
|
|
@@ -26,19 +25,16 @@ export type MutationDef<TName extends string, TFrom, TTo> = {
|
|
|
26
25
|
/** Warning: This feature is not fully implemented yet */
|
|
27
26
|
historyId: string;
|
|
28
27
|
/**
|
|
29
|
-
* When set to true, the mutation won't be synced
|
|
28
|
+
* When set to true, the mutation won't be synced across clients but
|
|
30
29
|
*/
|
|
31
|
-
|
|
30
|
+
clientOnly: boolean;
|
|
32
31
|
/** Warning: This feature is not fully implemented yet */
|
|
33
32
|
facts: FactsCallback<TTo> | undefined;
|
|
34
33
|
};
|
|
35
34
|
/** Helper function to construct a partial mutation event */
|
|
36
|
-
(args: TTo
|
|
37
|
-
id?: number;
|
|
38
|
-
}): {
|
|
35
|
+
(args: TTo): {
|
|
39
36
|
mutation: TName;
|
|
40
37
|
args: TTo;
|
|
41
|
-
id?: EventId.EventId;
|
|
42
38
|
};
|
|
43
39
|
};
|
|
44
40
|
export type FactsCallback<TTo> = (args: TTo, currentFacts: MutationEventFacts) => {
|
|
@@ -83,7 +79,7 @@ export type DefineMutationOptions<TTo> = {
|
|
|
83
79
|
/**
|
|
84
80
|
* When set to true, the mutation won't be synced over the network
|
|
85
81
|
*/
|
|
86
|
-
|
|
82
|
+
clientOnly?: boolean;
|
|
87
83
|
};
|
|
88
84
|
export declare const defineMutation: <TName extends string, TFrom, TTo>(name: TName, schema: Schema.Schema<TTo, TFrom>, sql: MutationDefSqlResult<NoInfer<TTo>>, options?: DefineMutationOptions<TTo>) => MutationDef<TName, TFrom, TTo>;
|
|
89
85
|
export declare const makeMutationDefRecord: <TInputRecord extends Record<string, MutationDef.Any>>(inputRecord: TInputRecord) => { [K in TInputRecord[keyof TInputRecord]["name"]]: Extract<TInputRecord[keyof TInputRecord], {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/mutations.js
CHANGED
|
@@ -2,14 +2,14 @@ import { Schema } from '@livestore/utils/effect';
|
|
|
2
2
|
export const defineFacts = (record) => record;
|
|
3
3
|
// TODO possibly also allow for mutation event subsumption behaviour
|
|
4
4
|
export const defineMutation = (name, schema, sql, options) => {
|
|
5
|
-
const makePartialEvent = (args
|
|
5
|
+
const makePartialEvent = (args) => ({ mutation: name, args });
|
|
6
6
|
Object.defineProperty(makePartialEvent, 'name', { value: name });
|
|
7
7
|
Object.defineProperty(makePartialEvent, 'schema', { value: schema });
|
|
8
8
|
Object.defineProperty(makePartialEvent, 'sql', { value: sql });
|
|
9
9
|
Object.defineProperty(makePartialEvent, 'options', {
|
|
10
10
|
value: {
|
|
11
11
|
historyId: options?.historyId ?? 'main',
|
|
12
|
-
|
|
12
|
+
clientOnly: options?.clientOnly ?? false,
|
|
13
13
|
facts: options?.facts
|
|
14
14
|
? (args, currentFacts) => {
|
|
15
15
|
const res = options.facts(args, currentFacts);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -104,9 +104,9 @@ export declare const sessionChangesetMetaTable: import("./table-def.js").TableDe
|
|
|
104
104
|
nullable: false;
|
|
105
105
|
primaryKey: false;
|
|
106
106
|
};
|
|
107
|
-
|
|
107
|
+
idClient: {
|
|
108
108
|
columnType: "integer";
|
|
109
|
-
schema: Schema.Schema<number & import("effect/Brand").Brand<"
|
|
109
|
+
schema: Schema.Schema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
|
110
110
|
default: import("effect/Option").None<never>;
|
|
111
111
|
nullable: false;
|
|
112
112
|
primaryKey: false;
|
|
@@ -133,15 +133,15 @@ export declare const sessionChangesetMetaTable: import("./table-def.js").TableDe
|
|
|
133
133
|
disableAutomaticIdColumn: true;
|
|
134
134
|
deriveMutations: never;
|
|
135
135
|
isSingleColumn: false;
|
|
136
|
-
requiredInsertColumnNames: "idGlobal" | "
|
|
136
|
+
requiredInsertColumnNames: "idGlobal" | "idClient";
|
|
137
137
|
}, Schema.Schema<{
|
|
138
138
|
readonly idGlobal: number & import("effect/Brand").Brand<"GlobalEventId">;
|
|
139
|
-
readonly
|
|
139
|
+
readonly idClient: number & import("effect/Brand").Brand<"ClientEventId">;
|
|
140
140
|
readonly changeset: Uint8Array<ArrayBufferLike> | null;
|
|
141
141
|
readonly debug: unknown;
|
|
142
142
|
}, {
|
|
143
143
|
readonly idGlobal: number;
|
|
144
|
-
readonly
|
|
144
|
+
readonly idClient: number;
|
|
145
145
|
readonly changeset: Uint8Array<ArrayBufferLike> | null;
|
|
146
146
|
readonly debug: string | null;
|
|
147
147
|
}, never>>;
|
|
@@ -238,9 +238,9 @@ export declare const systemTables: (import("./table-def.js").TableDef<{
|
|
|
238
238
|
nullable: false;
|
|
239
239
|
primaryKey: false;
|
|
240
240
|
};
|
|
241
|
-
|
|
241
|
+
idClient: {
|
|
242
242
|
columnType: "integer";
|
|
243
|
-
schema: Schema.Schema<number & import("effect/Brand").Brand<"
|
|
243
|
+
schema: Schema.Schema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
|
244
244
|
default: import("effect/Option").None<never>;
|
|
245
245
|
nullable: false;
|
|
246
246
|
primaryKey: false;
|
|
@@ -267,19 +267,19 @@ export declare const systemTables: (import("./table-def.js").TableDef<{
|
|
|
267
267
|
disableAutomaticIdColumn: true;
|
|
268
268
|
deriveMutations: never;
|
|
269
269
|
isSingleColumn: false;
|
|
270
|
-
requiredInsertColumnNames: "idGlobal" | "
|
|
270
|
+
requiredInsertColumnNames: "idGlobal" | "idClient";
|
|
271
271
|
}, Schema.Schema<{
|
|
272
272
|
readonly idGlobal: number & import("effect/Brand").Brand<"GlobalEventId">;
|
|
273
|
-
readonly
|
|
273
|
+
readonly idClient: number & import("effect/Brand").Brand<"ClientEventId">;
|
|
274
274
|
readonly changeset: Uint8Array<ArrayBufferLike> | null;
|
|
275
275
|
readonly debug: unknown;
|
|
276
276
|
}, {
|
|
277
277
|
readonly idGlobal: number;
|
|
278
|
-
readonly
|
|
278
|
+
readonly idClient: number;
|
|
279
279
|
readonly changeset: Uint8Array<ArrayBufferLike> | null;
|
|
280
280
|
readonly debug: string | null;
|
|
281
281
|
}, never>>)[];
|
|
282
|
-
export declare const SyncStatus: Schema.Literal<["synced", "pending", "error", "
|
|
282
|
+
export declare const SyncStatus: Schema.Literal<["synced", "pending", "error", "clientOnly"]>;
|
|
283
283
|
export type SyncStatus = typeof SyncStatus.Type;
|
|
284
284
|
export declare const MUTATION_LOG_META_TABLE = "mutation_log";
|
|
285
285
|
export declare const mutationLogMetaTable: import("./table-def.js").TableDef<{
|
|
@@ -292,9 +292,9 @@ export declare const mutationLogMetaTable: import("./table-def.js").TableDef<{
|
|
|
292
292
|
nullable: false;
|
|
293
293
|
primaryKey: true;
|
|
294
294
|
};
|
|
295
|
-
|
|
295
|
+
idClient: {
|
|
296
296
|
columnType: "integer";
|
|
297
|
-
schema: Schema.Schema<number & import("effect/Brand").Brand<"
|
|
297
|
+
schema: Schema.Schema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
|
298
298
|
default: import("effect/Option").None<never>;
|
|
299
299
|
nullable: false;
|
|
300
300
|
primaryKey: true;
|
|
@@ -306,9 +306,9 @@ export declare const mutationLogMetaTable: import("./table-def.js").TableDef<{
|
|
|
306
306
|
nullable: false;
|
|
307
307
|
primaryKey: false;
|
|
308
308
|
};
|
|
309
|
-
|
|
309
|
+
parentIdClient: {
|
|
310
310
|
columnType: "integer";
|
|
311
|
-
schema: Schema.Schema<number & import("effect/Brand").Brand<"
|
|
311
|
+
schema: Schema.Schema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
|
312
312
|
default: import("effect/Option").None<never>;
|
|
313
313
|
nullable: false;
|
|
314
314
|
primaryKey: false;
|
|
@@ -327,6 +327,20 @@ export declare const mutationLogMetaTable: import("./table-def.js").TableDef<{
|
|
|
327
327
|
nullable: false;
|
|
328
328
|
primaryKey: false;
|
|
329
329
|
};
|
|
330
|
+
clientId: {
|
|
331
|
+
columnType: "text";
|
|
332
|
+
schema: Schema.Schema<string, string, never>;
|
|
333
|
+
default: import("effect/Option").None<never>;
|
|
334
|
+
nullable: false;
|
|
335
|
+
primaryKey: false;
|
|
336
|
+
};
|
|
337
|
+
sessionId: {
|
|
338
|
+
columnType: "text";
|
|
339
|
+
schema: Schema.Schema<string | null, string | null, never>;
|
|
340
|
+
default: import("effect/Option").None<never>;
|
|
341
|
+
nullable: true;
|
|
342
|
+
primaryKey: false;
|
|
343
|
+
};
|
|
330
344
|
schemaHash: {
|
|
331
345
|
columnType: "integer";
|
|
332
346
|
schema: Schema.Schema<number, number, never>;
|
|
@@ -349,23 +363,27 @@ export declare const mutationLogMetaTable: import("./table-def.js").TableDef<{
|
|
|
349
363
|
disableAutomaticIdColumn: true;
|
|
350
364
|
deriveMutations: never;
|
|
351
365
|
isSingleColumn: false;
|
|
352
|
-
requiredInsertColumnNames: "schemaHash" | "idGlobal" | "
|
|
366
|
+
requiredInsertColumnNames: "schemaHash" | "idGlobal" | "idClient" | "mutation" | "clientId" | "parentIdGlobal" | "parentIdClient" | "argsJson" | "syncMetadataJson";
|
|
353
367
|
}, Schema.Schema<{
|
|
354
368
|
readonly idGlobal: number & import("effect/Brand").Brand<"GlobalEventId">;
|
|
355
|
-
readonly
|
|
369
|
+
readonly idClient: number & import("effect/Brand").Brand<"ClientEventId">;
|
|
356
370
|
readonly parentIdGlobal: number & import("effect/Brand").Brand<"GlobalEventId">;
|
|
357
|
-
readonly
|
|
371
|
+
readonly parentIdClient: number & import("effect/Brand").Brand<"ClientEventId">;
|
|
358
372
|
readonly mutation: string;
|
|
359
373
|
readonly argsJson: any;
|
|
374
|
+
readonly clientId: string;
|
|
375
|
+
readonly sessionId: string | null;
|
|
360
376
|
readonly schemaHash: number;
|
|
361
377
|
readonly syncMetadataJson: import("effect/Option").Option<Schema.JsonValue>;
|
|
362
378
|
}, {
|
|
363
379
|
readonly idGlobal: number;
|
|
364
|
-
readonly
|
|
380
|
+
readonly idClient: number;
|
|
365
381
|
readonly parentIdGlobal: number;
|
|
366
|
-
readonly
|
|
382
|
+
readonly parentIdClient: number;
|
|
367
383
|
readonly mutation: string;
|
|
368
384
|
readonly argsJson: string;
|
|
385
|
+
readonly clientId: string;
|
|
386
|
+
readonly sessionId: string | null;
|
|
369
387
|
readonly schemaHash: number;
|
|
370
388
|
readonly syncMetadataJson: string;
|
|
371
389
|
}, never>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-tables.d.ts","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,IAAI,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK/C,eAAO,MAAM,iBAAiB,uBAAuB,CAAA;AAErD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAS3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAExE,eAAO,MAAM,2BAA2B,iCAAiC,CAAA;AAEzE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UASpC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE1F;;;GAGG;AACH,eAAO,MAAM,4BAA4B,kCAAkC,CAAA;AAE3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAarC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE5F,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAAyE,CAAA;AAIlG,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"system-tables.d.ts","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,IAAI,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK/C,eAAO,MAAM,iBAAiB,uBAAuB,CAAA;AAErD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAS3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAExE,eAAO,MAAM,2BAA2B,iCAAiC,CAAA;AAEzE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UASpC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE1F;;;GAGG;AACH,eAAO,MAAM,4BAA4B,kCAAkC,CAAA;AAE3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAarC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE5F,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAAyE,CAAA;AAIlG,eAAO,MAAM,UAAU,8DAA6D,CAAA;AACpF,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C,eAAO,MAAM,uBAAuB,iBAAiB,CAAA;AAErD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAsBhC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAElF,eAAO,MAAM,iBAAiB,4BAA4B,CAAA;AAE1D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;UAM3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA"}
|
|
@@ -25,31 +25,34 @@ export const SESSION_CHANGESET_META_TABLE = '__livestore_session_changeset';
|
|
|
25
25
|
export const sessionChangesetMetaTable = table(SESSION_CHANGESET_META_TABLE, {
|
|
26
26
|
// TODO bring back primary key
|
|
27
27
|
idGlobal: SqliteDsl.integer({ schema: EventId.GlobalEventId }),
|
|
28
|
-
|
|
28
|
+
idClient: SqliteDsl.integer({ schema: EventId.ClientEventId }),
|
|
29
29
|
changeset: SqliteDsl.blob({ nullable: true }),
|
|
30
30
|
debug: SqliteDsl.json({ nullable: true }),
|
|
31
31
|
}, {
|
|
32
32
|
disableAutomaticIdColumn: true,
|
|
33
|
-
indexes: [{ columns: ['idGlobal', '
|
|
33
|
+
indexes: [{ columns: ['idGlobal', 'idClient'], name: 'idx_session_changeset_id' }],
|
|
34
34
|
});
|
|
35
35
|
export const systemTables = [schemaMetaTable, schemaMutationsMetaTable, sessionChangesetMetaTable];
|
|
36
36
|
/// Mutation log DB
|
|
37
|
-
export const SyncStatus = Schema.Literal('synced', 'pending', 'error', '
|
|
37
|
+
export const SyncStatus = Schema.Literal('synced', 'pending', 'error', 'clientOnly');
|
|
38
38
|
export const MUTATION_LOG_META_TABLE = 'mutation_log';
|
|
39
39
|
export const mutationLogMetaTable = table(MUTATION_LOG_META_TABLE, {
|
|
40
40
|
idGlobal: SqliteDsl.integer({ primaryKey: true, schema: EventId.GlobalEventId }),
|
|
41
|
-
|
|
41
|
+
idClient: SqliteDsl.integer({ primaryKey: true, schema: EventId.ClientEventId }),
|
|
42
42
|
parentIdGlobal: SqliteDsl.integer({ schema: EventId.GlobalEventId }),
|
|
43
|
-
|
|
43
|
+
parentIdClient: SqliteDsl.integer({ schema: EventId.ClientEventId }),
|
|
44
44
|
mutation: SqliteDsl.text({}),
|
|
45
45
|
argsJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Any) }),
|
|
46
|
+
clientId: SqliteDsl.text({}),
|
|
47
|
+
/** Only available for mutations which were executed in this client */
|
|
48
|
+
sessionId: SqliteDsl.text({ nullable: true }),
|
|
46
49
|
schemaHash: SqliteDsl.integer({}),
|
|
47
50
|
syncMetadataJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Option(Schema.JsonValue)) }),
|
|
48
51
|
}, {
|
|
49
52
|
disableAutomaticIdColumn: true,
|
|
50
53
|
indexes: [
|
|
51
54
|
{ columns: ['idGlobal'], name: 'idx_idGlobal' },
|
|
52
|
-
{ columns: ['idGlobal', '
|
|
55
|
+
{ columns: ['idGlobal', 'idClient'], name: 'idx_mutationlog_id' },
|
|
53
56
|
],
|
|
54
57
|
});
|
|
55
58
|
export const SYNC_STATUS_TABLE = '__livestore_sync_status';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-tables.js","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEtC,UAAU;AAEV,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAA;AAErD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAClC,iBAAiB,EACjB;IACE,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC/C,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClD,sBAAsB;IACtB,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CAC/C,EACD,EAAE,wBAAwB,EAAE,IAAI,EAAE,CACnC,CAAA;AAID,MAAM,CAAC,MAAM,2BAA2B,GAAG,8BAA8B,CAAA;AAEzE,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAC3C,2BAA2B,EAC3B;IACE,YAAY,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAClD,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClD,sBAAsB;IACtB,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CAC/C,EACD,EAAE,wBAAwB,EAAE,IAAI,EAAE,CACnC,CAAA;AAID;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,+BAA+B,CAAA;AAE3E,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAC5C,4BAA4B,EAC5B;IACE,8BAA8B;IAC9B,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;IAC9D,
|
|
1
|
+
{"version":3,"file":"system-tables.js","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export type TableOptionsInput = Partial<{
|
|
|
29
29
|
isSingleton: boolean;
|
|
30
30
|
deriveMutations: boolean | {
|
|
31
31
|
enabled: true;
|
|
32
|
-
|
|
32
|
+
clientOnly?: boolean;
|
|
33
33
|
};
|
|
34
34
|
}>;
|
|
35
35
|
type ToColumns<TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>> = TColumns extends SqliteDsl.Columns ? TColumns : TColumns extends SqliteDsl.ColumnDefinition<any, any> ? {
|
|
@@ -66,7 +66,7 @@ export type TableOptions = {
|
|
|
66
66
|
/**
|
|
67
67
|
* When set to true, the mutations won't be synced over the network
|
|
68
68
|
*/
|
|
69
|
-
|
|
69
|
+
clientOnly: boolean;
|
|
70
70
|
};
|
|
71
71
|
/** Derived based on whether the table definition has one or more columns (besides the `id` column) */
|
|
72
72
|
readonly isSingleColumn: boolean;
|
|
@@ -84,14 +84,14 @@ export declare const table: <TName extends string, TColumns extends SqliteDsl.Co
|
|
|
84
84
|
isSingleton: boolean;
|
|
85
85
|
deriveMutations: boolean | {
|
|
86
86
|
enabled: true;
|
|
87
|
-
|
|
87
|
+
clientOnly?: boolean;
|
|
88
88
|
};
|
|
89
89
|
}>>(name: TName, columnOrColumns: TColumns, options?: TOptionsInput) => ValidateTableOptionsInput<TColumns, TOptionsInput, TableDef<SqliteTableDefForInput<TName, TColumns, WithDefaults<TOptionsInput, TColumns>>, WithDefaults<TOptionsInput, TColumns>>>;
|
|
90
90
|
export declare const tableHasDerivedMutations: <TTableDef extends TableDefBase>(tableDef: TTableDef) => tableDef is TTableDef & {
|
|
91
91
|
options: {
|
|
92
92
|
deriveMutations: {
|
|
93
93
|
enabled: true;
|
|
94
|
-
|
|
94
|
+
clientOnly: boolean;
|
|
95
95
|
};
|
|
96
96
|
};
|
|
97
97
|
} & DerivedMutationHelperFns<TTableDef["sqliteDef"]["columns"], TTableDef["options"]>;
|
|
@@ -111,15 +111,15 @@ type WithDefaults<TOptionsInput extends TableOptionsInput, TColumns extends Sqli
|
|
|
111
111
|
disableAutomaticIdColumn: TOptionsInput['disableAutomaticIdColumn'] extends true ? true : false;
|
|
112
112
|
deriveMutations: TOptionsInput['deriveMutations'] extends true ? {
|
|
113
113
|
enabled: true;
|
|
114
|
-
|
|
114
|
+
clientOnly: boolean;
|
|
115
115
|
} : TOptionsInput['deriveMutations'] extends false ? {
|
|
116
116
|
enabled: false;
|
|
117
117
|
} : TOptionsInput['deriveMutations'] extends {
|
|
118
118
|
enabled: true;
|
|
119
|
-
|
|
119
|
+
clientOnly?: boolean;
|
|
120
120
|
} ? {
|
|
121
121
|
enabled: true;
|
|
122
|
-
|
|
122
|
+
clientOnly: TOptionsInput['deriveMutations']['clientOnly'] extends true ? true : false;
|
|
123
123
|
} : never;
|
|
124
124
|
isSingleColumn: SqliteDsl.IsSingleColumn<TColumns>;
|
|
125
125
|
requiredInsertColumnNames: SqliteDsl.FromColumns.RequiredInsertColumnNames<ToColumns<TColumns>>;
|