@livestore/common 0.0.0-snapshot-2b8a9de3ec1a701aca891ebc2c98eb328274ae9e → 0.0.0-snapshot-2ef046b02334f52613d31dbe06af53487685edc0

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.
Files changed (98) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/adapter-types.d.ts +4 -11
  3. package/dist/adapter-types.d.ts.map +1 -1
  4. package/dist/adapter-types.js +0 -6
  5. package/dist/adapter-types.js.map +1 -1
  6. package/dist/devtools/devtools-messages-common.d.ts +7 -0
  7. package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
  8. package/dist/devtools/devtools-messages-common.js +6 -0
  9. package/dist/devtools/devtools-messages-common.js.map +1 -1
  10. package/dist/devtools/devtools-messages-leader.d.ts +1 -1
  11. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
  12. package/dist/devtools/devtools-messages-leader.js +1 -2
  13. package/dist/devtools/devtools-messages-leader.js.map +1 -1
  14. package/dist/leader-thread/LeaderSyncProcessor.d.ts +15 -6
  15. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
  16. package/dist/leader-thread/LeaderSyncProcessor.js +199 -189
  17. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
  18. package/dist/leader-thread/apply-mutation.d.ts +14 -9
  19. package/dist/leader-thread/apply-mutation.d.ts.map +1 -1
  20. package/dist/leader-thread/apply-mutation.js +43 -36
  21. package/dist/leader-thread/apply-mutation.js.map +1 -1
  22. package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
  23. package/dist/leader-thread/leader-worker-devtools.js +2 -5
  24. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  25. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  26. package/dist/leader-thread/make-leader-thread-layer.js +21 -33
  27. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  28. package/dist/leader-thread/mod.d.ts +1 -1
  29. package/dist/leader-thread/mod.d.ts.map +1 -1
  30. package/dist/leader-thread/mod.js +1 -1
  31. package/dist/leader-thread/mod.js.map +1 -1
  32. package/dist/leader-thread/mutationlog.d.ts +19 -3
  33. package/dist/leader-thread/mutationlog.d.ts.map +1 -1
  34. package/dist/leader-thread/mutationlog.js +105 -12
  35. package/dist/leader-thread/mutationlog.js.map +1 -1
  36. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  37. package/dist/leader-thread/recreate-db.js +4 -3
  38. package/dist/leader-thread/recreate-db.js.map +1 -1
  39. package/dist/leader-thread/types.d.ts +35 -19
  40. package/dist/leader-thread/types.d.ts.map +1 -1
  41. package/dist/leader-thread/types.js.map +1 -1
  42. package/dist/rehydrate-from-mutationlog.d.ts +5 -4
  43. package/dist/rehydrate-from-mutationlog.d.ts.map +1 -1
  44. package/dist/rehydrate-from-mutationlog.js +7 -9
  45. package/dist/rehydrate-from-mutationlog.js.map +1 -1
  46. package/dist/schema/EventId.d.ts +4 -0
  47. package/dist/schema/EventId.d.ts.map +1 -1
  48. package/dist/schema/EventId.js +7 -1
  49. package/dist/schema/EventId.js.map +1 -1
  50. package/dist/schema/MutationEvent.d.ts +78 -25
  51. package/dist/schema/MutationEvent.d.ts.map +1 -1
  52. package/dist/schema/MutationEvent.js +25 -12
  53. package/dist/schema/MutationEvent.js.map +1 -1
  54. package/dist/schema/schema.js +1 -1
  55. package/dist/schema/schema.js.map +1 -1
  56. package/dist/schema/system-tables.d.ts +67 -0
  57. package/dist/schema/system-tables.d.ts.map +1 -1
  58. package/dist/schema/system-tables.js +12 -1
  59. package/dist/schema/system-tables.js.map +1 -1
  60. package/dist/sync/ClientSessionSyncProcessor.d.ts +9 -1
  61. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
  62. package/dist/sync/ClientSessionSyncProcessor.js +23 -19
  63. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
  64. package/dist/sync/sync.d.ts +6 -5
  65. package/dist/sync/sync.d.ts.map +1 -1
  66. package/dist/sync/sync.js.map +1 -1
  67. package/dist/sync/syncstate.d.ts +47 -71
  68. package/dist/sync/syncstate.d.ts.map +1 -1
  69. package/dist/sync/syncstate.js +76 -112
  70. package/dist/sync/syncstate.js.map +1 -1
  71. package/dist/sync/syncstate.test.js +67 -139
  72. package/dist/sync/syncstate.test.js.map +1 -1
  73. package/package.json +2 -2
  74. package/src/adapter-types.ts +3 -12
  75. package/src/devtools/devtools-messages-common.ts +9 -0
  76. package/src/devtools/devtools-messages-leader.ts +1 -2
  77. package/src/leader-thread/LeaderSyncProcessor.ts +372 -348
  78. package/src/leader-thread/apply-mutation.ts +81 -71
  79. package/src/leader-thread/leader-worker-devtools.ts +3 -8
  80. package/src/leader-thread/make-leader-thread-layer.ts +26 -41
  81. package/src/leader-thread/mod.ts +1 -1
  82. package/src/leader-thread/mutationlog.ts +166 -13
  83. package/src/leader-thread/recreate-db.ts +4 -3
  84. package/src/leader-thread/types.ts +34 -23
  85. package/src/rehydrate-from-mutationlog.ts +12 -12
  86. package/src/schema/EventId.ts +8 -1
  87. package/src/schema/MutationEvent.ts +32 -16
  88. package/src/schema/schema.ts +1 -1
  89. package/src/schema/system-tables.ts +20 -1
  90. package/src/sync/ClientSessionSyncProcessor.ts +33 -25
  91. package/src/sync/sync.ts +6 -9
  92. package/src/sync/syncstate.test.ts +130 -208
  93. package/src/sync/syncstate.ts +76 -123
  94. package/dist/leader-thread/pull-queue-set.d.ts +0 -7
  95. package/dist/leader-thread/pull-queue-set.d.ts.map +0 -1
  96. package/dist/leader-thread/pull-queue-set.js +0 -48
  97. package/dist/leader-thread/pull-queue-set.js.map +0 -1
  98. package/src/leader-thread/pull-queue-set.ts +0 -67
@@ -1,4 +1,4 @@
1
- import { Schema } from '@livestore/utils/effect';
1
+ import { Option, Schema } from '@livestore/utils/effect';
2
2
  import * as EventId from './EventId.js';
3
3
  import type { MutationDef, MutationDefRecord } from './mutations.js';
4
4
  import type { LiveStoreSchema } from './schema.js';
@@ -124,13 +124,34 @@ declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
124
124
  }>;
125
125
  clientId: typeof Schema.String;
126
126
  sessionId: typeof Schema.String;
127
- meta: Schema.optionalWith<Schema.Schema<{
128
- sessionChangeset?: Uint8Array;
129
- }, {
130
- sessionChangeset?: Uint8Array;
131
- }, never>, {
132
- default: () => {};
133
- }>;
127
+ meta: Schema.PropertySignature<":", {
128
+ sessionChangeset: {
129
+ readonly _tag: "sessionChangeset";
130
+ readonly debug?: any;
131
+ readonly data: Uint8Array<ArrayBufferLike>;
132
+ } | {
133
+ readonly _tag: "no-op";
134
+ } | {
135
+ readonly _tag: "unset";
136
+ };
137
+ syncMetadata: Option.Option<Schema.JsonValue>;
138
+ }, never, "?:", {
139
+ sessionChangeset: {
140
+ readonly _tag: "sessionChangeset";
141
+ readonly data: readonly number[];
142
+ readonly debug?: any;
143
+ } | {
144
+ readonly _tag: "no-op";
145
+ } | {
146
+ readonly _tag: "unset";
147
+ };
148
+ syncMetadata: {
149
+ readonly _tag: "None";
150
+ } | {
151
+ readonly value: Schema.JsonValue;
152
+ readonly _tag: "Some";
153
+ };
154
+ } | undefined, true, never>;
134
155
  }, Schema.Struct.Encoded<{
135
156
  mutation: typeof Schema.String;
136
157
  args: typeof Schema.Any;
@@ -144,13 +165,34 @@ declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
144
165
  }>;
145
166
  clientId: typeof Schema.String;
146
167
  sessionId: typeof Schema.String;
147
- meta: Schema.optionalWith<Schema.Schema<{
148
- sessionChangeset?: Uint8Array;
149
- }, {
150
- sessionChangeset?: Uint8Array;
151
- }, never>, {
152
- default: () => {};
153
- }>;
168
+ meta: Schema.PropertySignature<":", {
169
+ sessionChangeset: {
170
+ readonly _tag: "sessionChangeset";
171
+ readonly debug?: any;
172
+ readonly data: Uint8Array<ArrayBufferLike>;
173
+ } | {
174
+ readonly _tag: "no-op";
175
+ } | {
176
+ readonly _tag: "unset";
177
+ };
178
+ syncMetadata: Option.Option<Schema.JsonValue>;
179
+ }, never, "?:", {
180
+ sessionChangeset: {
181
+ readonly _tag: "sessionChangeset";
182
+ readonly data: readonly number[];
183
+ readonly debug?: any;
184
+ } | {
185
+ readonly _tag: "no-op";
186
+ } | {
187
+ readonly _tag: "unset";
188
+ };
189
+ syncMetadata: {
190
+ readonly _tag: "None";
191
+ } | {
192
+ readonly value: Schema.JsonValue;
193
+ readonly _tag: "Some";
194
+ };
195
+ } | undefined, true, never>;
154
196
  }>, never, {
155
197
  readonly id: {
156
198
  readonly global: number & import("effect/Brand").Brand<"GlobalEventId">;
@@ -171,7 +213,16 @@ declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
171
213
  readonly sessionId: string;
172
214
  } & {
173
215
  readonly meta?: {
174
- sessionChangeset?: Uint8Array;
216
+ sessionChangeset: {
217
+ readonly _tag: "sessionChangeset";
218
+ readonly debug?: any;
219
+ readonly data: Uint8Array<ArrayBufferLike>;
220
+ } | {
221
+ readonly _tag: "no-op";
222
+ } | {
223
+ readonly _tag: "unset";
224
+ };
225
+ syncMetadata: Option.Option<Schema.JsonValue>;
175
226
  } | undefined;
176
227
  }, {}, {}>;
177
228
  /** Equivalent to AnyEncoded but with a meta field and some convenience methods */
@@ -179,24 +230,26 @@ export declare class EncodedWithMeta extends EncodedWithMeta_base {
179
230
  toJSON: () => any;
180
231
  /**
181
232
  * Example: (global event)
182
- * For event id (2,0)(1,0) which should be rebased on event id (3,1)(3,0)
183
- * the resulting event id will be (4,0)(3,0)
233
+ * For event id e2e1 which should be rebased on event id e3e2
234
+ * the resulting event id will be e4e3
184
235
  *
185
236
  * Example: (client event)
186
- * For event id (2,1)(2,0) which should be rebased on event id (3,0)(2,0)
187
- * the resulting event id will be (3,1)(3,0)
237
+ * For event id e2+1 → e2 which should be rebased on event id e3e2
238
+ * the resulting event id will be e3+1 → e3
188
239
  *
189
- * Syntax: (2,1)(2,0)
190
- * ^ ^ ^ ^
191
- * | | | +- client parent id
192
- * | | +--- global parent id
240
+ * Syntax: e2+2 → e2+1
241
+ * ^ ^ ^ ^
242
+ * | | | +- client parent id
243
+ * | | +--- global parent id
193
244
  * | +-- client id
194
245
  * +---- global id
246
+ * Client id is ommitted for global events
195
247
  */
196
248
  rebase: (parentId: EventId.EventId, isClient: boolean) => EncodedWithMeta;
197
- static fromGlobal: (mutationEvent: AnyEncodedGlobal) => EncodedWithMeta;
249
+ static fromGlobal: (mutationEvent: AnyEncodedGlobal, syncMetadata: Option.Option<Schema.JsonValue>) => EncodedWithMeta;
198
250
  toGlobal: () => AnyEncodedGlobal;
199
251
  }
252
+ /** NOTE `meta` is not considered for equality */
200
253
  export declare const isEqualEncoded: (a: AnyEncoded, b: AnyEncoded) => boolean;
201
254
  export {};
202
255
  //# sourceMappingURL=MutationEvent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MutationEvent.d.ts","sourceRoot":"","sources":["../../src/schema/MutationEvent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MutationEvent.d.ts","sourceRoot":"","sources":["../../src/schema/MutationEvent.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { memoizeByRef } from '@livestore/utils';
2
- import { Schema } from '@livestore/utils/effect';
2
+ import { Option, Schema } from '@livestore/utils/effect';
3
3
  import * as EventId from './EventId.js';
4
4
  export const AnyDecoded = Schema.Struct({
5
5
  mutation: Schema.String,
@@ -47,47 +47,59 @@ export const makeMutationEventSchemaMemo = memoizeByRef(makeMutationEventSchema)
47
47
  export class EncodedWithMeta extends Schema.Class('MutationEvent.EncodedWithMeta')({
48
48
  mutation: Schema.String,
49
49
  args: Schema.Any,
50
+ // TODO rename to `.num` / `.parentNum`
50
51
  id: EventId.EventId,
51
52
  parentId: EventId.EventId,
52
53
  clientId: Schema.String,
53
54
  sessionId: Schema.String,
54
55
  // TODO get rid of `meta` again by cleaning up the usage implementations
55
- meta: Schema.optionalWith(Schema.Any, { default: () => ({}) }),
56
+ meta: Schema.Struct({
57
+ sessionChangeset: Schema.Union(Schema.TaggedStruct('sessionChangeset', {
58
+ data: Schema.Uint8Array,
59
+ debug: Schema.Any.pipe(Schema.optional),
60
+ }), Schema.TaggedStruct('no-op', {}), Schema.TaggedStruct('unset', {})),
61
+ syncMetadata: Schema.Option(Schema.JsonValue),
62
+ }).pipe(Schema.mutable, Schema.optional, Schema.withDefaults({
63
+ constructor: () => ({ sessionChangeset: { _tag: 'unset' }, syncMetadata: Option.none() }),
64
+ decoding: () => ({ sessionChangeset: { _tag: 'unset' }, syncMetadata: Option.none() }),
65
+ })),
56
66
  }) {
57
67
  toJSON = () => {
58
68
  // Only used for logging/debugging
59
69
  // - More readable way to print the id + parentId
60
70
  // - not including `meta`, `clientId`, `sessionId`
61
71
  return {
62
- id: `(${this.id.global},${this.id.client})(${this.parentId.global},${this.parentId.client})`,
72
+ id: `${EventId.toString(this.id)} → ${EventId.toString(this.parentId)}`,
63
73
  mutation: this.mutation,
64
74
  args: this.args,
65
75
  };
66
76
  };
67
77
  /**
68
78
  * Example: (global event)
69
- * For event id (2,0)(1,0) which should be rebased on event id (3,1)(3,0)
70
- * the resulting event id will be (4,0)(3,0)
79
+ * For event id e2e1 which should be rebased on event id e3e2
80
+ * the resulting event id will be e4e3
71
81
  *
72
82
  * Example: (client event)
73
- * For event id (2,1)(2,0) which should be rebased on event id (3,0)(2,0)
74
- * the resulting event id will be (3,1)(3,0)
83
+ * For event id e2+1 → e2 which should be rebased on event id e3e2
84
+ * the resulting event id will be e3+1 → e3
75
85
  *
76
- * Syntax: (2,1)(2,0)
77
- * ^ ^ ^ ^
78
- * | | | +- client parent id
79
- * | | +--- global parent id
86
+ * Syntax: e2+2 → e2+1
87
+ * ^ ^ ^ ^
88
+ * | | | +- client parent id
89
+ * | | +--- global parent id
80
90
  * | +-- client id
81
91
  * +---- global id
92
+ * Client id is ommitted for global events
82
93
  */
83
94
  rebase = (parentId, isClient) => new EncodedWithMeta({
84
95
  ...this,
85
96
  ...EventId.nextPair(parentId, isClient),
86
97
  });
87
- static fromGlobal = (mutationEvent) => new EncodedWithMeta({
98
+ static fromGlobal = (mutationEvent, syncMetadata) => new EncodedWithMeta({
88
99
  ...mutationEvent,
89
100
  id: { global: mutationEvent.id, client: EventId.clientDefault },
90
101
  parentId: { global: mutationEvent.parentId, client: EventId.clientDefault },
102
+ meta: { sessionChangeset: { _tag: 'unset' }, syncMetadata },
91
103
  });
92
104
  toGlobal = () => ({
93
105
  ...this,
@@ -95,6 +107,7 @@ export class EncodedWithMeta extends Schema.Class('MutationEvent.EncodedWithMeta
95
107
  parentId: this.parentId.global,
96
108
  });
97
109
  }
110
+ /** NOTE `meta` is not considered for equality */
98
111
  export const isEqualEncoded = (a, b) => a.id.global === b.id.global &&
99
112
  a.id.client === b.id.client &&
100
113
  a.mutation === b.mutation &&
@@ -1 +1 @@
1
- {"version":3,"file":"MutationEvent.js","sourceRoot":"","sources":["../../src/schema/MutationEvent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MutationEvent.js","sourceRoot":"","sources":["../../src/schema/MutationEvent.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,7 @@ inputSchema) => {
59
59
  _MutationDefMapType: Symbol.for('livestore.MutationDefMapType'),
60
60
  tables,
61
61
  mutations,
62
- migrationOptions: inputSchema.migrations ?? { strategy: 'hard-reset' },
62
+ migrationOptions: inputSchema.migrations ?? { strategy: 'from-mutation-log' },
63
63
  hash,
64
64
  };
65
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"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"}
@@ -146,6 +146,41 @@ export declare const sessionChangesetMetaTable: import("./table-def.js").TableDe
146
146
  readonly debug: string | null;
147
147
  }, never>>;
148
148
  export type SessionChangesetMetaRow = FromTable.RowDecoded<typeof sessionChangesetMetaTable>;
149
+ export declare const LEADER_MERGE_COUNTER_TABLE = "__livestore_leader_merge_counter";
150
+ export declare const leaderMergeCounterTable: import("./table-def.js").TableDef<{
151
+ name: "__livestore_leader_merge_counter";
152
+ columns: {
153
+ id: {
154
+ columnType: "integer";
155
+ schema: Schema.Schema<0, 0, never>;
156
+ default: import("effect/Option").None<never>;
157
+ nullable: false;
158
+ primaryKey: true;
159
+ };
160
+ mergeCounter: {
161
+ columnType: "integer";
162
+ schema: Schema.Schema<number, number, never>;
163
+ default: import("effect/Option").None<never>;
164
+ nullable: false;
165
+ primaryKey: true;
166
+ };
167
+ };
168
+ indexes?: ReadonlyArray<SqliteDsl.Index>;
169
+ ast: import("./db-schema/ast/sqlite.js").Table;
170
+ }, {
171
+ isSingleton: false;
172
+ disableAutomaticIdColumn: true;
173
+ deriveMutations: never;
174
+ isSingleColumn: false;
175
+ requiredInsertColumnNames: "id" | "mergeCounter";
176
+ }, Schema.Schema<{
177
+ readonly id: 0;
178
+ readonly mergeCounter: number;
179
+ }, {
180
+ readonly id: 0;
181
+ readonly mergeCounter: number;
182
+ }, never>>;
183
+ export type LeaderMergeCounterRow = FromTable.RowDecoded<typeof leaderMergeCounterTable>;
149
184
  export declare const systemTables: (import("./table-def.js").TableDef<{
150
185
  name: "__livestore_schema";
151
186
  columns: {
@@ -278,6 +313,38 @@ export declare const systemTables: (import("./table-def.js").TableDef<{
278
313
  readonly idClient: number;
279
314
  readonly changeset: Uint8Array<ArrayBufferLike> | null;
280
315
  readonly debug: string | null;
316
+ }, never>> | import("./table-def.js").TableDef<{
317
+ name: "__livestore_leader_merge_counter";
318
+ columns: {
319
+ id: {
320
+ columnType: "integer";
321
+ schema: Schema.Schema<0, 0, never>;
322
+ default: import("effect/Option").None<never>;
323
+ nullable: false;
324
+ primaryKey: true;
325
+ };
326
+ mergeCounter: {
327
+ columnType: "integer";
328
+ schema: Schema.Schema<number, number, never>;
329
+ default: import("effect/Option").None<never>;
330
+ nullable: false;
331
+ primaryKey: true;
332
+ };
333
+ };
334
+ indexes?: ReadonlyArray<SqliteDsl.Index>;
335
+ ast: import("./db-schema/ast/sqlite.js").Table;
336
+ }, {
337
+ isSingleton: false;
338
+ disableAutomaticIdColumn: true;
339
+ deriveMutations: never;
340
+ isSingleColumn: false;
341
+ requiredInsertColumnNames: "id" | "mergeCounter";
342
+ }, Schema.Schema<{
343
+ readonly id: 0;
344
+ readonly mergeCounter: number;
345
+ }, {
346
+ readonly id: 0;
347
+ readonly mergeCounter: number;
281
348
  }, never>>)[];
282
349
  export declare const SyncStatus: Schema.Literal<["synced", "pending", "error", "clientOnly"]>;
283
350
  export type SyncStatus = typeof SyncStatus.Type;
@@ -1 +1 @@
1
- {"version":3,"file":"system-tables.d.ts","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAqBhC,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"}
1
+ {"version":3,"file":"system-tables.d.ts","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,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,0BAA0B,qCAAqC,CAAA;AAE5E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAOnC,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAExF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAKxB,CAAA;AAID,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"}
@@ -32,11 +32,22 @@ export const sessionChangesetMetaTable = table(SESSION_CHANGESET_META_TABLE, {
32
32
  disableAutomaticIdColumn: true,
33
33
  indexes: [{ columns: ['idGlobal', 'idClient'], name: 'idx_session_changeset_id' }],
34
34
  });
35
- export const systemTables = [schemaMetaTable, schemaMutationsMetaTable, sessionChangesetMetaTable];
35
+ export const LEADER_MERGE_COUNTER_TABLE = '__livestore_leader_merge_counter';
36
+ export const leaderMergeCounterTable = table(LEADER_MERGE_COUNTER_TABLE, {
37
+ id: SqliteDsl.integer({ primaryKey: true, schema: Schema.Literal(0) }),
38
+ mergeCounter: SqliteDsl.integer({ primaryKey: true }),
39
+ }, { disableAutomaticIdColumn: true });
40
+ export const systemTables = [
41
+ schemaMetaTable,
42
+ schemaMutationsMetaTable,
43
+ sessionChangesetMetaTable,
44
+ leaderMergeCounterTable,
45
+ ];
36
46
  /// Mutation log DB
37
47
  export const SyncStatus = Schema.Literal('synced', 'pending', 'error', 'clientOnly');
38
48
  export const MUTATION_LOG_META_TABLE = 'mutation_log';
39
49
  export const mutationLogMetaTable = table(MUTATION_LOG_META_TABLE, {
50
+ // TODO Adjust modeling so a global event never needs a client id component
40
51
  idGlobal: SqliteDsl.integer({ primaryKey: true, schema: EventId.GlobalEventId }),
41
52
  idClient: SqliteDsl.integer({ primaryKey: true, schema: EventId.ClientEventId }),
42
53
  parentIdGlobal: SqliteDsl.integer({ schema: EventId.GlobalEventId }),
@@ -1 +1 @@
1
- {"version":3,"file":"system-tables.js","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-tables.js","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,15 @@ export declare const makeClientSessionSyncProcessor: ({ schema, clientSession, r
25
25
  withChangeset: boolean;
26
26
  }) => {
27
27
  writeTables: Set<string>;
28
- sessionChangeset: Uint8Array | undefined;
28
+ sessionChangeset: {
29
+ _tag: "sessionChangeset";
30
+ data: Uint8Array;
31
+ debug: any;
32
+ } | {
33
+ _tag: "no-op";
34
+ } | {
35
+ _tag: "unset";
36
+ };
29
37
  };
30
38
  rollback: (changeset: Uint8Array) => void;
31
39
  refreshTables: (tables: Set<string>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ClientSessionSyncProcessor.d.ts","sourceRoot":"","sources":["../../src/sync/ClientSessionSyncProcessor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAe,MAAM,EAAsC,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC/G,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAEzE,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAA;AAC3D,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,8BAA8B,GAAI,kHAU5C;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,aAAa,EAAE,aAAa,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACrC,aAAa,EAAE,CACb,oBAAoB,EAAE,aAAa,CAAC,iBAAiB,EACrD,OAAO,EAAE;QAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,KAC3D;QACH,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QACxB,gBAAgB,EAAE,UAAU,GAAG,SAAS,CAAA;KACzC,CAAA;IACD,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,KAAK,IAAI,CAAA;IACzC,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IAC5C,IAAI,EAAE,IAAI,CAAC,IAAI,CAAA;IACf,MAAM,EAAE;QACN,mBAAmB,EAAE,MAAM,CAAA;KAC5B,CAAA;IACD;;;OAGG;IACH,qBAAqB,EAAE,OAAO,CAAA;CAC/B,KAAG,0BAsPH,CAAA;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,CACJ,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,iBAAiB,CAAC,EACrD,OAAO,EAAE;QAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAA;KAAE,KACnC;QACH,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;KACzB,CAAA;IACD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IACvD,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IACzD,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,IAAI,CAAA;QACjB,SAAS,EAAE,MAAM;YACf,WAAW,EAAE,MAAM,CAAA;YACnB,YAAY,EAAE,MAAM,CAAA;SACrB,CAAA;KACF,CAAA;CACF"}
1
+ {"version":3,"file":"ClientSessionSyncProcessor.d.ts","sourceRoot":"","sources":["../../src/sync/ClientSessionSyncProcessor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAe,MAAM,EAAsC,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC/G,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAEzE,OAAO,EAA8C,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACnG,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAA;AAE3D,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,8BAA8B,GAAI,kHAU5C;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,aAAa,EAAE,aAAa,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACrC,aAAa,EAAE,CACb,oBAAoB,EAAE,aAAa,CAAC,iBAAiB,EACrD,OAAO,EAAE;QAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,KAC3D;QACH,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QACxB,gBAAgB,EAAE;YAAE,IAAI,EAAE,kBAAkB,CAAC;YAAC,IAAI,EAAE,UAAU,CAAC;YAAC,KAAK,EAAE,GAAG,CAAA;SAAE,GAAG;YAAE,IAAI,EAAE,OAAO,CAAA;SAAE,GAAG;YAAE,IAAI,EAAE,OAAO,CAAA;SAAE,CAAA;KACrH,CAAA;IACD,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,KAAK,IAAI,CAAA;IACzC,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IAC5C,IAAI,EAAE,IAAI,CAAC,IAAI,CAAA;IACf,MAAM,EAAE;QACN,mBAAmB,EAAE,MAAM,CAAA;KAC5B,CAAA;IACD;;;OAGG;IACH,qBAAqB,EAAE,OAAO,CAAA;CAC/B,KAAG,0BA6PH,CAAA;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,CACJ,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,iBAAiB,CAAC,EACrD,OAAO,EAAE;QAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAA;KAAE,KACnC;QACH,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;KACzB,CAAA;IACD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IACvD,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IACzD,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,IAAI,CAAA;QACjB,SAAS,EAAE,MAAM;YACf,WAAW,EAAE,MAAM,CAAA;YACnB,YAAY,EAAE,MAAM,CAAA;SACrB,CAAA;KACF,CAAA;CACF"}
@@ -2,8 +2,9 @@ import { LS_DEV, shouldNeverHappen, TRACE_VERBOSE } from '@livestore/utils';
2
2
  import { BucketQueue, Effect, FiberHandle, Queue, Schema, Stream, Subscribable } from '@livestore/utils/effect';
3
3
  import * as otel from '@opentelemetry/api';
4
4
  import * as EventId from '../schema/EventId.js';
5
- import { getMutationDef } from '../schema/mod.js';
5
+ import { getMutationDef, LEADER_MERGE_COUNTER_TABLE } from '../schema/mod.js';
6
6
  import * as MutationEvent from '../schema/MutationEvent.js';
7
+ import { sql } from '../util.js';
7
8
  import * as SyncState from './syncstate.js';
8
9
  /**
9
10
  * Rebase behaviour:
@@ -19,12 +20,12 @@ import * as SyncState from './syncstate.js';
19
20
  export const makeClientSessionSyncProcessor = ({ schema, clientSession, runtime, applyMutation, rollback, refreshTables, span, params, confirmUnsavedChanges, }) => {
20
21
  const mutationEventSchema = MutationEvent.makeMutationEventSchemaMemo(schema);
21
22
  const syncStateRef = {
23
+ // The initial state is identical to the leader's initial state
22
24
  current: new SyncState.SyncState({
23
25
  localHead: clientSession.leaderThread.initialState.leaderHead,
24
26
  upstreamHead: clientSession.leaderThread.initialState.leaderHead,
27
+ // Given we're starting with the leader's snapshot, we don't have any pending mutations intially
25
28
  pending: [],
26
- // TODO init rollbackTail from leader to be ready for backend rebasing
27
- rollbackTail: [],
28
29
  }),
29
30
  };
30
31
  const syncStateUpdateQueue = Queue.unbounded().pipe(Effect.runSync);
@@ -34,12 +35,13 @@ export const makeClientSessionSyncProcessor = ({ schema, clientSession, runtime,
34
35
  const push = (batch, { otelContext }) => {
35
36
  // TODO validate batch
36
37
  let baseEventId = syncStateRef.current.localHead;
37
- const encodedMutationEvents = batch.map((mutationEvent) => {
38
- const mutationDef = getMutationDef(schema, mutationEvent.mutation);
38
+ const encodedMutationEvents = batch.map(({ mutation, args }) => {
39
+ const mutationDef = getMutationDef(schema, mutation);
39
40
  const nextIdPair = EventId.nextPair(baseEventId, mutationDef.options.clientOnly);
40
41
  baseEventId = nextIdPair.id;
41
42
  return new MutationEvent.EncodedWithMeta(Schema.encodeUnknownSync(mutationEventSchema)({
42
- ...mutationEvent,
43
+ mutation,
44
+ args,
43
45
  ...nextIdPair,
44
46
  clientId: clientSession.clientId,
45
47
  sessionId: clientSession.sessionId,
@@ -103,9 +105,10 @@ export const makeClientSessionSyncProcessor = ({ schema, clientSession, runtime,
103
105
  }));
104
106
  }).pipe(Effect.forever, Effect.interruptible, Effect.tapCauseLogPretty);
105
107
  yield* FiberHandle.run(leaderPushingFiberHandle, backgroundLeaderPushing);
108
+ const getMergeCounter = () => clientSession.sqliteDb.select(sql `SELECT mergeCounter FROM ${LEADER_MERGE_COUNTER_TABLE} WHERE id = 0`)[0]?.mergeCounter ?? 0;
106
109
  // NOTE We need to lazily call `.pull` as we want the cursor to be updated
107
- yield* Stream.suspend(() => clientSession.leaderThread.mutations.pull({ cursor: syncStateRef.current.localHead })).pipe(Stream.tap(({ payload, remaining }) => Effect.gen(function* () {
108
- // console.log('pulled payload from leader', { payload, remaining })
110
+ yield* Stream.suspend(() => clientSession.leaderThread.mutations.pull({ cursor: getMergeCounter() })).pipe(Stream.tap(({ payload, mergeCounter: leaderMergeCounter }) => Effect.gen(function* () {
111
+ // yield* Effect.logDebug('ClientSessionSyncProcessor:pull', payload)
109
112
  if (clientSession.devtools.enabled) {
110
113
  yield* clientSession.devtools.pullLatch.await;
111
114
  }
@@ -124,13 +127,13 @@ export const makeClientSessionSyncProcessor = ({ schema, clientSession, runtime,
124
127
  syncStateRef.current = mergeResult.newSyncState;
125
128
  syncStateUpdateQueue.offer(mergeResult.newSyncState).pipe(Effect.runSync);
126
129
  if (mergeResult._tag === 'rebase') {
127
- span.addEvent('pull:rebase', {
130
+ span.addEvent('merge:pull:rebase', {
128
131
  payloadTag: payload._tag,
129
132
  payload: TRACE_VERBOSE ? JSON.stringify(payload) : undefined,
130
133
  newEventsCount: mergeResult.newEvents.length,
131
- rollbackCount: mergeResult.eventsToRollback.length,
134
+ rollbackCount: mergeResult.rollbackEvents.length,
132
135
  res: TRACE_VERBOSE ? JSON.stringify(mergeResult) : undefined,
133
- remaining,
136
+ leaderMergeCounter,
134
137
  });
135
138
  debugInfo.rebaseCount++;
136
139
  yield* FiberHandle.clear(leaderPushingFiberHandle);
@@ -138,24 +141,24 @@ export const makeClientSessionSyncProcessor = ({ schema, clientSession, runtime,
138
141
  yield* BucketQueue.clear(leaderPushQueue);
139
142
  yield* FiberHandle.run(leaderPushingFiberHandle, backgroundLeaderPushing);
140
143
  if (LS_DEV) {
141
- Effect.logDebug('pull:rebase: rollback', mergeResult.eventsToRollback.length, ...mergeResult.eventsToRollback.slice(0, 10).map((_) => _.toJSON())).pipe(Effect.provide(runtime), Effect.runSync);
144
+ Effect.logDebug('merge:pull:rebase: rollback', mergeResult.rollbackEvents.length, ...mergeResult.rollbackEvents.slice(0, 10).map((_) => _.toJSON()), { leaderMergeCounter }).pipe(Effect.provide(runtime), Effect.runSync);
142
145
  }
143
- for (let i = mergeResult.eventsToRollback.length - 1; i >= 0; i--) {
144
- const event = mergeResult.eventsToRollback[i];
145
- if (event.meta.sessionChangeset) {
146
- rollback(event.meta.sessionChangeset);
147
- event.meta.sessionChangeset = undefined;
146
+ for (let i = mergeResult.rollbackEvents.length - 1; i >= 0; i--) {
147
+ const event = mergeResult.rollbackEvents[i];
148
+ if (event.meta.sessionChangeset._tag !== 'no-op' && event.meta.sessionChangeset._tag !== 'unset') {
149
+ rollback(event.meta.sessionChangeset.data);
150
+ event.meta.sessionChangeset = { _tag: 'unset' };
148
151
  }
149
152
  }
150
153
  yield* BucketQueue.offerAll(leaderPushQueue, mergeResult.newSyncState.pending);
151
154
  }
152
155
  else {
153
- span.addEvent('pull:advance', {
156
+ span.addEvent('merge:pull:advance', {
154
157
  payloadTag: payload._tag,
155
158
  payload: TRACE_VERBOSE ? JSON.stringify(payload) : undefined,
156
159
  newEventsCount: mergeResult.newEvents.length,
157
160
  res: TRACE_VERBOSE ? JSON.stringify(mergeResult) : undefined,
158
- remaining,
161
+ leaderMergeCounter,
159
162
  });
160
163
  debugInfo.advanceCount++;
161
164
  }
@@ -163,6 +166,7 @@ export const makeClientSessionSyncProcessor = ({ schema, clientSession, runtime,
163
166
  return;
164
167
  const writeTables = new Set();
165
168
  for (const mutationEvent of mergeResult.newEvents) {
169
+ // TODO apply changeset if available (will require tracking of write tables as well)
166
170
  const decodedMutationEvent = Schema.decodeSync(mutationEventSchema)(mutationEvent);
167
171
  const res = applyMutation(decodedMutationEvent, { otelContext, withChangeset: true });
168
172
  for (const table of res.writeTables) {
@@ -1 +1 @@
1
- {"version":3,"file":"ClientSessionSyncProcessor.js","sourceRoot":"","sources":["../../src/sync/ClientSessionSyncProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClientSessionSyncProcessor.js","sourceRoot":"","sources":["../../src/sync/ClientSessionSyncProcessor.ts"],"names":[],"mappings":"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"}