@livestore/common 0.3.0-dev.11 → 0.3.0-dev.2

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 (181) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/adapter-types.d.ts +35 -47
  3. package/dist/adapter-types.d.ts.map +1 -1
  4. package/dist/adapter-types.js.map +1 -1
  5. package/dist/derived-mutations.d.ts +4 -4
  6. package/dist/derived-mutations.d.ts.map +1 -1
  7. package/dist/derived-mutations.test.js.map +1 -1
  8. package/dist/devtools/devtools-bridge.d.ts +1 -2
  9. package/dist/devtools/devtools-bridge.d.ts.map +1 -1
  10. package/dist/devtools/devtools-messages.d.ts +592 -3
  11. package/dist/devtools/devtools-messages.d.ts.map +1 -1
  12. package/dist/devtools/devtools-messages.js +171 -3
  13. package/dist/devtools/devtools-messages.js.map +1 -1
  14. package/dist/index.d.ts +4 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/init-singleton-tables.d.ts +2 -2
  17. package/dist/init-singleton-tables.d.ts.map +1 -1
  18. package/dist/init-singleton-tables.js.map +1 -1
  19. package/dist/leader-thread/apply-mutation.d.ts +2 -5
  20. package/dist/leader-thread/apply-mutation.d.ts.map +1 -1
  21. package/dist/leader-thread/apply-mutation.js +29 -41
  22. package/dist/leader-thread/apply-mutation.js.map +1 -1
  23. package/dist/leader-thread/connection.d.ts +4 -4
  24. package/dist/leader-thread/connection.d.ts.map +1 -1
  25. package/dist/leader-thread/connection.js +5 -5
  26. package/dist/leader-thread/connection.js.map +1 -1
  27. package/dist/leader-thread/leader-sync-processor.d.ts +2 -2
  28. package/dist/leader-thread/leader-sync-processor.d.ts.map +1 -1
  29. package/dist/leader-thread/leader-sync-processor.js +12 -20
  30. package/dist/leader-thread/leader-sync-processor.js.map +1 -1
  31. package/dist/leader-thread/leader-worker-devtools.d.ts +1 -1
  32. package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
  33. package/dist/leader-thread/leader-worker-devtools.js +81 -37
  34. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  35. package/dist/leader-thread/make-leader-thread-layer.d.ts +11 -12
  36. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  37. package/dist/leader-thread/make-leader-thread-layer.js +14 -33
  38. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  39. package/dist/leader-thread/mutationlog.d.ts +19 -6
  40. package/dist/leader-thread/mutationlog.d.ts.map +1 -1
  41. package/dist/leader-thread/mutationlog.js +6 -7
  42. package/dist/leader-thread/mutationlog.js.map +1 -1
  43. package/dist/leader-thread/pull-queue-set.d.ts.map +1 -1
  44. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  45. package/dist/leader-thread/recreate-db.js +18 -24
  46. package/dist/leader-thread/recreate-db.js.map +1 -1
  47. package/dist/leader-thread/types.d.ts +16 -36
  48. package/dist/leader-thread/types.d.ts.map +1 -1
  49. package/dist/leader-thread/types.js.map +1 -1
  50. package/dist/mutation.d.ts +2 -9
  51. package/dist/mutation.d.ts.map +1 -1
  52. package/dist/mutation.js +5 -5
  53. package/dist/mutation.js.map +1 -1
  54. package/dist/query-builder/impl.d.ts +1 -1
  55. package/dist/rehydrate-from-mutationlog.d.ts +5 -5
  56. package/dist/rehydrate-from-mutationlog.d.ts.map +1 -1
  57. package/dist/rehydrate-from-mutationlog.js +19 -13
  58. package/dist/rehydrate-from-mutationlog.js.map +1 -1
  59. package/dist/schema/EventId.d.ts +14 -16
  60. package/dist/schema/EventId.d.ts.map +1 -1
  61. package/dist/schema/EventId.js +7 -15
  62. package/dist/schema/EventId.js.map +1 -1
  63. package/dist/schema/MutationEvent.d.ts +80 -49
  64. package/dist/schema/MutationEvent.d.ts.map +1 -1
  65. package/dist/schema/MutationEvent.js +15 -32
  66. package/dist/schema/MutationEvent.js.map +1 -1
  67. package/dist/schema/system-tables.d.ts +26 -26
  68. package/dist/schema/system-tables.d.ts.map +1 -1
  69. package/dist/schema/system-tables.js +11 -19
  70. package/dist/schema/system-tables.js.map +1 -1
  71. package/dist/schema-management/common.d.ts +3 -3
  72. package/dist/schema-management/common.d.ts.map +1 -1
  73. package/dist/schema-management/common.js.map +1 -1
  74. package/dist/schema-management/migrations.d.ts +4 -4
  75. package/dist/schema-management/migrations.d.ts.map +1 -1
  76. package/dist/schema-management/migrations.js +6 -6
  77. package/dist/schema-management/migrations.js.map +1 -1
  78. package/dist/sync/client-session-sync-processor.d.ts +4 -4
  79. package/dist/sync/client-session-sync-processor.d.ts.map +1 -1
  80. package/dist/sync/index.d.ts +1 -1
  81. package/dist/sync/index.d.ts.map +1 -1
  82. package/dist/sync/index.js +1 -1
  83. package/dist/sync/index.js.map +1 -1
  84. package/dist/sync/next/history-dag-common.d.ts +4 -1
  85. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  86. package/dist/sync/next/history-dag-common.js +1 -1
  87. package/dist/sync/next/history-dag-common.js.map +1 -1
  88. package/dist/sync/next/rebase-events.d.ts +3 -3
  89. package/dist/sync/next/rebase-events.d.ts.map +1 -1
  90. package/dist/sync/next/rebase-events.js +2 -3
  91. package/dist/sync/next/rebase-events.js.map +1 -1
  92. package/dist/sync/next/test/mutation-fixtures.d.ts +7 -7
  93. package/dist/sync/next/test/mutation-fixtures.d.ts.map +1 -1
  94. package/dist/sync/next/test/mutation-fixtures.js +9 -3
  95. package/dist/sync/next/test/mutation-fixtures.js.map +1 -1
  96. package/dist/sync/sync.d.ts +11 -21
  97. package/dist/sync/sync.d.ts.map +1 -1
  98. package/dist/sync/sync.js.map +1 -1
  99. package/dist/sync/syncstate.d.ts +23 -45
  100. package/dist/sync/syncstate.d.ts.map +1 -1
  101. package/dist/sync/syncstate.js +12 -56
  102. package/dist/sync/syncstate.js.map +1 -1
  103. package/dist/sync/syncstate.test.js +69 -125
  104. package/dist/sync/syncstate.test.js.map +1 -1
  105. package/dist/sync/validate-push-payload.d.ts +2 -2
  106. package/dist/sync/validate-push-payload.d.ts.map +1 -1
  107. package/dist/sync/validate-push-payload.js +2 -2
  108. package/dist/sync/validate-push-payload.js.map +1 -1
  109. package/dist/version.d.ts +1 -1
  110. package/dist/version.d.ts.map +1 -1
  111. package/dist/version.js +1 -1
  112. package/dist/version.js.map +1 -1
  113. package/package.json +5 -6
  114. package/src/adapter-types.ts +40 -39
  115. package/src/derived-mutations.test.ts +1 -1
  116. package/src/derived-mutations.ts +5 -9
  117. package/src/devtools/devtools-bridge.ts +1 -2
  118. package/src/devtools/devtools-messages.ts +243 -3
  119. package/src/index.ts +6 -0
  120. package/src/init-singleton-tables.ts +2 -2
  121. package/src/leader-thread/apply-mutation.ts +35 -53
  122. package/src/leader-thread/connection.ts +7 -7
  123. package/src/leader-thread/{LeaderSyncProcessor.ts → leader-sync-processor.ts} +268 -306
  124. package/src/leader-thread/leader-worker-devtools.ts +124 -52
  125. package/src/leader-thread/make-leader-thread-layer.ts +30 -62
  126. package/src/leader-thread/mutationlog.ts +10 -14
  127. package/src/leader-thread/recreate-db.ts +20 -24
  128. package/src/leader-thread/types.ts +20 -41
  129. package/src/mutation.ts +7 -17
  130. package/src/rehydrate-from-mutationlog.ts +26 -18
  131. package/src/schema/EventId.ts +9 -23
  132. package/src/schema/MutationEvent.ts +24 -46
  133. package/src/schema/system-tables.ts +11 -19
  134. package/src/schema-management/common.ts +3 -3
  135. package/src/schema-management/migrations.ts +10 -10
  136. package/src/sync/{ClientSessionSyncProcessor.ts → client-session-sync-processor.ts} +19 -26
  137. package/src/sync/index.ts +1 -1
  138. package/src/sync/next/history-dag-common.ts +1 -1
  139. package/src/sync/next/rebase-events.ts +7 -7
  140. package/src/sync/next/test/mutation-fixtures.ts +10 -3
  141. package/src/sync/sync.ts +6 -19
  142. package/src/sync/syncstate.test.ts +67 -127
  143. package/src/sync/syncstate.ts +19 -21
  144. package/src/sync/validate-push-payload.ts +4 -7
  145. package/src/version.ts +1 -1
  146. package/dist/devtools/devtool-message-leader.d.ts +0 -2
  147. package/dist/devtools/devtool-message-leader.d.ts.map +0 -1
  148. package/dist/devtools/devtool-message-leader.js +0 -2
  149. package/dist/devtools/devtool-message-leader.js.map +0 -1
  150. package/dist/devtools/devtools-messages-client-session.d.ts +0 -297
  151. package/dist/devtools/devtools-messages-client-session.d.ts.map +0 -1
  152. package/dist/devtools/devtools-messages-client-session.js +0 -61
  153. package/dist/devtools/devtools-messages-client-session.js.map +0 -1
  154. package/dist/devtools/devtools-messages-common.d.ts +0 -65
  155. package/dist/devtools/devtools-messages-common.d.ts.map +0 -1
  156. package/dist/devtools/devtools-messages-common.js +0 -35
  157. package/dist/devtools/devtools-messages-common.js.map +0 -1
  158. package/dist/devtools/devtools-messages-leader.d.ts +0 -261
  159. package/dist/devtools/devtools-messages-leader.d.ts.map +0 -1
  160. package/dist/devtools/devtools-messages-leader.js +0 -85
  161. package/dist/devtools/devtools-messages-leader.js.map +0 -1
  162. package/dist/leader-thread/LeaderSyncProcessor.d.ts +0 -37
  163. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +0 -1
  164. package/dist/leader-thread/LeaderSyncProcessor.js +0 -432
  165. package/dist/leader-thread/LeaderSyncProcessor.js.map +0 -1
  166. package/dist/schema/EventId.test.d.ts +0 -2
  167. package/dist/schema/EventId.test.d.ts.map +0 -1
  168. package/dist/schema/EventId.test.js +0 -11
  169. package/dist/schema/EventId.test.js.map +0 -1
  170. package/dist/schema/MutationEvent.test.d.ts +0 -2
  171. package/dist/schema/MutationEvent.test.d.ts.map +0 -1
  172. package/dist/schema/MutationEvent.test.js +0 -2
  173. package/dist/schema/MutationEvent.test.js.map +0 -1
  174. package/dist/sync/ClientSessionSyncProcessor.d.ts +0 -43
  175. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +0 -1
  176. package/dist/sync/ClientSessionSyncProcessor.js +0 -141
  177. package/dist/sync/ClientSessionSyncProcessor.js.map +0 -1
  178. package/src/devtools/devtools-messages-client-session.ts +0 -109
  179. package/src/devtools/devtools-messages-common.ts +0 -52
  180. package/src/devtools/devtools-messages-leader.ts +0 -115
  181. package/src/schema/EventId.test.ts +0 -12
@@ -1,4 +1,172 @@
1
- export * from './devtools-messages-client-session.js';
2
- export * from './devtools-messages-leader.js';
3
- export * from './devtools-messages-common.js';
1
+ import { Schema, Transferable } from '@livestore/utils/effect';
2
+ import { NetworkStatus } from '../adapter-types.js';
3
+ import { DebugInfo } from '../debug-info.js';
4
+ import * as MutationEvent from '../schema/MutationEvent.js';
5
+ import { PreparedBindValues } from '../util.js';
6
+ import { liveStoreVersion as pkgVersion } from '../version.js';
7
+ const requestId = Schema.String;
8
+ const appHostId = Schema.String;
9
+ const liveStoreVersion = Schema.Literal(pkgVersion);
10
+ const LSDMessage = (tag, fields) => Schema.TaggedStruct(tag, {
11
+ liveStoreVersion,
12
+ ...fields,
13
+ }).annotations({ identifier: tag });
14
+ const LSDChannelMessage = (tag, fields) => LSDMessage(tag, {
15
+ ...fields,
16
+ });
17
+ const LSDStoreChannelMessage = (tag, fields) => LSDMessage(tag, {
18
+ appHostId,
19
+ ...fields,
20
+ });
21
+ const LSDStoreReqResMessage = (tag, fields) => LSDMessage(tag, {
22
+ appHostId,
23
+ requestId,
24
+ ...fields,
25
+ });
26
+ const LSDReqResMessage = (tag, fields) => LSDChannelMessage(tag, {
27
+ requestId,
28
+ ...fields,
29
+ });
30
+ export class SnapshotReq extends LSDReqResMessage('LSD.Leader.SnapshotReq', {}) {
31
+ }
32
+ export class SnapshotRes extends LSDReqResMessage('LSD.Leader.SnapshotRes', {
33
+ snapshot: Transferable.Uint8Array,
34
+ }) {
35
+ }
36
+ export class LoadDatabaseFileReq extends LSDReqResMessage('LSD.Leader.LoadDatabaseFileReq', {
37
+ data: Transferable.Uint8Array,
38
+ }) {
39
+ }
40
+ export class LoadDatabaseFileRes extends LSDReqResMessage('LSD.Leader.LoadDatabaseFileRes', {
41
+ status: Schema.Literal('ok', 'unsupported-file', 'unsupported-database'),
42
+ }) {
43
+ }
44
+ export class DebugInfoReq extends LSDStoreReqResMessage('LSD.DebugInfoReq', {}) {
45
+ }
46
+ export class DebugInfoRes extends LSDStoreReqResMessage('LSD.DebugInfoRes', {
47
+ debugInfo: DebugInfo,
48
+ }) {
49
+ }
50
+ export class DebugInfoHistorySubscribe extends LSDStoreReqResMessage('LSD.DebugInfoHistorySubscribe', {}) {
51
+ }
52
+ export class DebugInfoHistoryRes extends LSDStoreReqResMessage('LSD.DebugInfoHistoryRes', {
53
+ debugInfoHistory: Schema.Array(DebugInfo),
54
+ }) {
55
+ }
56
+ export class DebugInfoHistoryUnsubscribe extends LSDStoreReqResMessage('LSD.DebugInfoHistoryUnsubscribe', {}) {
57
+ }
58
+ export class DebugInfoResetReq extends LSDStoreReqResMessage('LSD.DebugInfoResetReq', {}) {
59
+ }
60
+ export class DebugInfoResetRes extends LSDStoreReqResMessage('LSD.DebugInfoResetRes', {}) {
61
+ }
62
+ export class DebugInfoRerunQueryReq extends LSDStoreReqResMessage('LSD.DebugInfoRerunQueryReq', {
63
+ queryStr: Schema.String,
64
+ bindValues: Schema.UndefinedOr(PreparedBindValues),
65
+ queriedTables: Schema.ReadonlySet(Schema.String),
66
+ }) {
67
+ }
68
+ export class DebugInfoRerunQueryRes extends LSDStoreReqResMessage('LSD.DebugInfoRerunQueryRes', {}) {
69
+ }
70
+ // TODO refactor this to use push/pull semantics
71
+ export class MutationBroadcast extends LSDMessage('LSD.Leader.MutationBroadcast', {
72
+ mutationEventEncoded: MutationEvent.EncodedAny,
73
+ }) {
74
+ }
75
+ // TODO refactor this to use push/pull semantics
76
+ export class RunMutationReq extends LSDReqResMessage('LSD.Leader.RunMutationReq', {
77
+ mutationEventEncoded: MutationEvent.EncodedAny.pipe(Schema.omit('id', 'parentId')),
78
+ }) {
79
+ }
80
+ export class RunMutationRes extends LSDReqResMessage('LSD.Leader.RunMutationRes', {}) {
81
+ }
82
+ export class MutationLogReq extends LSDReqResMessage('LSD.Leader.MutationLogReq', {}) {
83
+ }
84
+ export class MutationLogRes extends LSDReqResMessage('LSD.Leader.MutationLogRes', {
85
+ mutationLog: Transferable.Uint8Array,
86
+ }) {
87
+ }
88
+ export class ReactivityGraphSubscribe extends LSDStoreReqResMessage('LSD.ReactivityGraphSubscribe', {
89
+ includeResults: Schema.Boolean,
90
+ }) {
91
+ }
92
+ export class ReactivityGraphUnsubscribe extends LSDStoreReqResMessage('LSD.ReactivityGraphUnsubscribe', {}) {
93
+ }
94
+ export class ReactivityGraphRes extends LSDStoreReqResMessage('LSD.ReactivityGraphRes', {
95
+ reactivityGraph: Schema.Any,
96
+ }) {
97
+ }
98
+ export class LiveQueriesSubscribe extends LSDStoreReqResMessage('LSD.LiveQueriesSubscribe', {}) {
99
+ }
100
+ export class LiveQueriesUnsubscribe extends LSDStoreReqResMessage('LSD.LiveQueriesUnsubscribe', {}) {
101
+ }
102
+ export class SerializedLiveQuery extends Schema.Struct({
103
+ _tag: Schema.Literal('computed', 'db', 'graphql'),
104
+ id: Schema.Number,
105
+ label: Schema.String,
106
+ runs: Schema.Number,
107
+ executionTimes: Schema.Array(Schema.Number),
108
+ lastestResult: Schema.Any,
109
+ activeSubscriptions: Schema.Array(Schema.Struct({ frames: Schema.Array(Schema.Struct({ name: Schema.String, filePath: Schema.String })) })),
110
+ }) {
111
+ }
112
+ export class LiveQueriesRes extends LSDStoreReqResMessage('LSD.LiveQueriesRes', {
113
+ liveQueries: Schema.Array(SerializedLiveQuery),
114
+ }) {
115
+ }
116
+ export class ResetAllDataReq extends LSDReqResMessage('LSD.Leader.ResetAllDataReq', {
117
+ mode: Schema.Literal('all-data', 'only-app-db'),
118
+ }) {
119
+ }
120
+ export class ResetAllDataRes extends LSDReqResMessage('LSD.Leader.ResetAllDataRes', {}) {
121
+ }
122
+ export class DatabaseFileInfoReq extends LSDReqResMessage('LSD.Leader.DatabaseFileInfoReq', {}) {
123
+ }
124
+ export class DatabaseFileInfo extends Schema.Struct({
125
+ fileSize: Schema.Number,
126
+ persistenceInfo: Schema.Struct({ fileName: Schema.String }, { key: Schema.String, value: Schema.Any }),
127
+ }) {
128
+ }
129
+ export class DatabaseFileInfoRes extends LSDReqResMessage('LSD.Leader.DatabaseFileInfoRes', {
130
+ db: DatabaseFileInfo,
131
+ mutationLog: DatabaseFileInfo,
132
+ }) {
133
+ }
134
+ export class NetworkStatusSubscribe extends LSDReqResMessage('LSD.Leader.NetworkStatusSubscribe', {}) {
135
+ }
136
+ export class NetworkStatusUnsubscribe extends LSDReqResMessage('LSD.Leader.NetworkStatusUnsubscribe', {}) {
137
+ }
138
+ export class NetworkStatusRes extends LSDReqResMessage('LSD.Leader.NetworkStatusRes', {
139
+ networkStatus: NetworkStatus,
140
+ }) {
141
+ }
142
+ export class SyncingInfoReq extends LSDReqResMessage('LSD.Leader.SyncingInfoReq', {}) {
143
+ }
144
+ export class SyncingInfo extends Schema.Struct({
145
+ enabled: Schema.Boolean,
146
+ metadata: Schema.Record({ key: Schema.String, value: Schema.Any }),
147
+ }) {
148
+ }
149
+ export class SyncingInfoRes extends LSDReqResMessage('LSD.Leader.SyncingInfoRes', {
150
+ syncingInfo: SyncingInfo,
151
+ }) {
152
+ }
153
+ export class SyncHistorySubscribe extends LSDReqResMessage('LSD.Leader.SyncHistorySubscribe', {}) {
154
+ }
155
+ export class SyncHistoryUnsubscribe extends LSDReqResMessage('LSD.Leader.SyncHistoryUnsubscribe', {}) {
156
+ }
157
+ export class SyncHistoryRes extends LSDReqResMessage('LSD.Leader.SyncHistoryRes', {
158
+ mutationEventEncoded: MutationEvent.EncodedAny,
159
+ metadata: Schema.Option(Schema.JsonValue),
160
+ }) {
161
+ }
162
+ export class Disconnect extends LSDStoreChannelMessage('LSD.Disconnect', {}) {
163
+ }
164
+ export class Ping extends LSDReqResMessage('LSD.Ping', {}) {
165
+ }
166
+ export class Pong extends LSDReqResMessage('LSD.Pong', {}) {
167
+ }
168
+ export const MessageToAppLeader = Schema.Union(SnapshotReq, LoadDatabaseFileReq, MutationLogReq, ResetAllDataReq, NetworkStatusSubscribe, NetworkStatusUnsubscribe, Disconnect, RunMutationReq, Ping, DatabaseFileInfoReq, SyncHistorySubscribe, SyncHistoryUnsubscribe, SyncingInfoReq).annotations({ identifier: 'LSD.MessageToAppLeader' });
169
+ export const MessageToAppClientSession = Schema.Union(DebugInfoReq, DebugInfoHistorySubscribe, DebugInfoHistoryUnsubscribe, DebugInfoResetReq, DebugInfoRerunQueryReq, ReactivityGraphSubscribe, ReactivityGraphUnsubscribe, LiveQueriesSubscribe, LiveQueriesUnsubscribe, Disconnect).annotations({ identifier: 'LSD.MessageToAppClientSession' });
170
+ export const MessageFromAppLeader = Schema.Union(SnapshotRes, LoadDatabaseFileRes, MutationLogRes, ResetAllDataRes, Disconnect, MutationBroadcast, NetworkStatusRes, RunMutationRes, Pong, DatabaseFileInfoRes, SyncHistoryRes, SyncingInfoRes).annotations({ identifier: 'LSD.MessageFromAppLeader' });
171
+ export const MessageFromAppClientSession = Schema.Union(DebugInfoRes, DebugInfoHistoryRes, DebugInfoResetRes, DebugInfoRerunQueryRes, ReactivityGraphRes, LiveQueriesRes, Disconnect).annotations({ identifier: 'LSD.MessageFromAppClientSession' });
4
172
  //# sourceMappingURL=devtools-messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devtools-messages.js","sourceRoot":"","sources":["../../src/devtools/devtools-messages.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA;AACrD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA"}
1
+ {"version":3,"file":"devtools-messages.js","sourceRoot":"","sources":["../../src/devtools/devtools-messages.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -15,4 +15,8 @@ export * from './version.js';
15
15
  export * from './query-builder/mod.js';
16
16
  export * from './sync/syncstate.js';
17
17
  export * from './otel.js';
18
+ declare global {
19
+ interface LiveStoreGlobal {
20
+ }
21
+ }
18
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,mCAAmC,CAAA;AACjD,cAAc,eAAe,CAAA;AAC7B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,mCAAmC,CAAA;AACjD,cAAc,eAAe,CAAA;AAC7B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,WAAW,CAAA;AAEzB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,eAAe;KAExB;CACF"}
@@ -1,4 +1,4 @@
1
- import type { SqliteDb } from './adapter-types.js';
1
+ import type { SynchronousDatabase } from './adapter-types.js';
2
2
  import type { LiveStoreSchema } from './schema/mod.js';
3
- export declare const initializeSingletonTables: (schema: LiveStoreSchema, db: SqliteDb) => void;
3
+ export declare const initializeSingletonTables: (schema: LiveStoreSchema, db: SynchronousDatabase) => void;
4
4
  //# sourceMappingURL=init-singleton-tables.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-singleton-tables.d.ts","sourceRoot":"","sources":["../src/init-singleton-tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAItD,eAAO,MAAM,yBAAyB,WAAY,eAAe,MAAM,QAAQ,SAkB9E,CAAA"}
1
+ {"version":3,"file":"init-singleton-tables.d.ts","sourceRoot":"","sources":["../src/init-singleton-tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAItD,eAAO,MAAM,yBAAyB,WAAY,eAAe,MAAM,mBAAmB,SAkBzF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"init-singleton-tables.js","sourceRoot":"","sources":["../src/init-singleton-tables.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAElD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,MAAuB,EAAE,EAAY,EAAE,EAAE;IACjF,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,uBAAuB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;YAElE,MAAM,kBAAkB,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAA;YAChE,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAE5E,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAA;YACzC,MAAM,WAAW,GAAG,GAAG,CAAA,eAAe,SAAS,KAAK,kBAAkB,CAAC,IAAI,CACzE,IAAI,CACL,YAAY,YAAY,mCAAmC,SAAS,0BAA0B,CAAA;YAE/F,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,CAAA;YAExF,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"init-singleton-tables.js","sourceRoot":"","sources":["../src/init-singleton-tables.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAElD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,MAAuB,EAAE,EAAuB,EAAE,EAAE;IAC5F,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,uBAAuB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;YAElE,MAAM,kBAAkB,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAA;YAChE,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAE5E,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAA;YACzC,MAAM,WAAW,GAAG,GAAG,CAAA,eAAe,SAAS,KAAK,kBAAkB,CAAC,IAAI,CACzE,IAAI,CACL,YAAY,YAAY,mCAAmC,SAAS,0BAA0B,CAAA;YAE/F,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,CAAA;YAExF,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
@@ -1,11 +1,8 @@
1
1
  import type { Scope } from '@livestore/utils/effect';
2
2
  import { Effect } from '@livestore/utils/effect';
3
3
  import type { SqliteError, UnexpectedError } from '../index.js';
4
- import { type MutationEvent } from '../schema/mod.js';
4
+ import type { MutationEvent } from '../schema/mod.js';
5
5
  import { LeaderThreadCtx } from './types.js';
6
- export type ApplyMutation = (mutationEventEncoded: MutationEvent.AnyEncoded, options?: {
7
- /** Needed for rehydrateFromMutationLog */
8
- skipMutationLog?: boolean;
9
- }) => Effect.Effect<void, SqliteError | UnexpectedError>;
6
+ export type ApplyMutation = (mutationEventEncoded: MutationEvent.AnyEncoded) => Effect.Effect<void, SqliteError | UnexpectedError>;
10
7
  export declare const makeApplyMutation: Effect.Effect<ApplyMutation, never, Scope.Scope | LeaderThreadCtx>;
11
8
  //# sourceMappingURL=apply-mutation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply-mutation.d.ts","sourceRoot":"","sources":["../../src/leader-thread/apply-mutation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAkB,MAAM,yBAAyB,CAAA;AAEhE,OAAO,KAAK,EAAY,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAEzE,OAAO,EAGL,KAAK,aAAa,EAInB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,MAAM,MAAM,aAAa,GAAG,CAC1B,oBAAoB,EAAE,aAAa,CAAC,UAAU,EAC9C,OAAO,CAAC,EAAE;IACR,0CAA0C;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,KACE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe,CAAC,CAAA;AAEvD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,eAAe,CAmFhG,CAAA"}
1
+ {"version":3,"file":"apply-mutation.d.ts","sourceRoot":"","sources":["../../src/leader-thread/apply-mutation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAkB,MAAM,yBAAyB,CAAA;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAuB,eAAe,EAAE,MAAM,aAAa,CAAA;AAQpF,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,MAAM,MAAM,aAAa,GAAG,CAC1B,oBAAoB,EAAE,aAAa,CAAC,UAAU,KAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe,CAAC,CAAA;AAEvD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,eAAe,CAyEhG,CAAA"}
@@ -1,7 +1,6 @@
1
1
  import { memoizeByRef, shouldNeverHappen } from '@livestore/utils';
2
2
  import { Effect, Option, Schema } from '@livestore/utils/effect';
3
- import { getExecArgsFromMutation } from '../mutation.js';
4
- import { MUTATION_LOG_META_TABLE, mutationLogMetaTable, SESSION_CHANGESET_META_TABLE, sessionChangesetMetaTable, } from '../schema/mod.js';
3
+ import { getExecArgsFromMutation, MUTATION_LOG_META_TABLE, mutationLogMetaTable, SESSION_CHANGESET_META_TABLE, sessionChangesetMetaTable, } from '../index.js';
5
4
  import { insertRow } from '../sql-queries/index.js';
6
5
  import { execSql, execSqlPrepared } from './connection.js';
7
6
  import { LeaderThreadCtx } from './types.js';
@@ -13,23 +12,12 @@ export const makeApplyMutation = Effect.gen(function* () {
13
12
  // at build time and lookup the pre-computed hash at runtime.
14
13
  // Also see https://github.com/Effect-TS/effect/issues/2719
15
14
  [...leaderThreadCtx.schema.mutations.entries()].map(([k, v]) => [k, Schema.hash(v.schema)]));
16
- return (mutationEventEncoded, options) => Effect.gen(function* () {
17
- const { schema, dbReadModel: db, dbMutationLog } = leaderThreadCtx;
18
- const skipMutationLog = options?.skipMutationLog ?? false;
19
- const mutationName = mutationEventEncoded.mutation;
15
+ return (mutationEventEncoded) => Effect.gen(function* () {
16
+ const { mutationEventSchema, schema, db, dbLog } = leaderThreadCtx;
17
+ const mutationEventDecoded = Schema.decodeUnknownSync(mutationEventSchema)(mutationEventEncoded);
18
+ const mutationName = mutationEventDecoded.mutation;
20
19
  const mutationDef = schema.mutations.get(mutationName) ?? shouldNeverHappen(`Unknown mutation: ${mutationName}`);
21
- const execArgsArr = getExecArgsFromMutation({
22
- mutationDef,
23
- mutationEvent: { decoded: undefined, encoded: mutationEventEncoded },
24
- });
25
- // NOTE we might want to bring this back if we want to debug no-op mutations
26
- // const makeExecuteOptions = (statementSql: string, bindValues: any) => ({
27
- // onRowsChanged: (rowsChanged: number) => {
28
- // if (rowsChanged === 0) {
29
- // console.warn(`Mutation "${mutationDef.name}" did not affect any rows:`, statementSql, bindValues)
30
- // }
31
- // },
32
- // })
20
+ const execArgsArr = getExecArgsFromMutation({ mutationDef, mutationEventDecoded });
33
21
  // console.group('[@livestore/common:leader-thread:applyMutation]', { mutationName })
34
22
  const session = db.session();
35
23
  for (const { statementSql, bindValues } of execArgsArr) {
@@ -39,23 +27,26 @@ export const makeApplyMutation = Effect.gen(function* () {
39
27
  }
40
28
  const changeset = session.changeset();
41
29
  session.finish();
42
- // TODO use prepared statements
43
- yield* execSql(db, ...insertRow({
44
- tableName: SESSION_CHANGESET_META_TABLE,
45
- columns: sessionChangesetMetaTable.sqliteDef.columns,
46
- values: {
47
- idGlobal: mutationEventEncoded.id.global,
48
- idLocal: mutationEventEncoded.id.local,
49
- // NOTE the changeset will be empty (i.e. null) for no-op mutations
50
- changeset: changeset ?? null,
51
- debug: execArgsArr,
52
- },
53
- }));
30
+ // NOTE for no-op mutations (e.g. if the state didn't change) the changeset will be empty
31
+ // TODO possibly write a null value instead of omitting the row
32
+ if (changeset !== undefined && changeset.length > 0) {
33
+ // TODO use prepared statements
34
+ yield* execSql(db, ...insertRow({
35
+ tableName: SESSION_CHANGESET_META_TABLE,
36
+ columns: sessionChangesetMetaTable.sqliteDef.columns,
37
+ values: {
38
+ idGlobal: mutationEventEncoded.id.global,
39
+ idLocal: mutationEventEncoded.id.local,
40
+ changeset,
41
+ debug: execArgsArr,
42
+ },
43
+ }));
44
+ }
54
45
  // console.groupEnd()
55
46
  // write to mutation_log
56
- const excludeFromMutationLog = shouldExcludeMutationFromLog(mutationName, mutationEventEncoded);
57
- if (skipMutationLog === false && excludeFromMutationLog === false) {
58
- yield* insertIntoMutationLog(mutationEventEncoded, dbMutationLog, mutationDefSchemaHashMap);
47
+ const excludeFromMutationLog = shouldExcludeMutationFromLog(mutationName, mutationEventDecoded);
48
+ if (excludeFromMutationLog === false) {
49
+ yield* insertIntoMutationLog(mutationEventEncoded, dbLog, mutationDefSchemaHashMap);
59
50
  }
60
51
  else {
61
52
  // console.debug('[@livestore/common:leader-thread] skipping mutation log write', mutation, statementSql, bindValues)
@@ -64,15 +55,15 @@ export const makeApplyMutation = Effect.gen(function* () {
64
55
  attributes: {
65
56
  mutationName: mutationEventEncoded.mutation,
66
57
  mutationId: mutationEventEncoded.id,
67
- 'span.label': `(${mutationEventEncoded.id.global},${mutationEventEncoded.id.local}) ${mutationEventEncoded.mutation}`,
58
+ 'span.label': mutationEventEncoded.mutation,
68
59
  },
69
60
  }));
70
61
  });
71
- const insertIntoMutationLog = (mutationEventEncoded, dbMutationLog, mutationDefSchemaHashMap) => Effect.gen(function* () {
62
+ const insertIntoMutationLog = (mutationEventEncoded, dbLog, mutationDefSchemaHashMap) => Effect.gen(function* () {
72
63
  const mutationName = mutationEventEncoded.mutation;
73
64
  const mutationDefSchemaHash = mutationDefSchemaHashMap.get(mutationName) ?? shouldNeverHappen(`Unknown mutation: ${mutationName}`);
74
65
  // TODO use prepared statements
75
- yield* execSql(dbMutationLog, ...insertRow({
66
+ yield* execSql(dbLog, ...insertRow({
76
67
  tableName: MUTATION_LOG_META_TABLE,
77
68
  columns: mutationLogMetaTable.sqliteDef.columns,
78
69
  values: {
@@ -93,14 +84,11 @@ const makeShouldExcludeMutationFromLog = memoizeByRef((schema) => {
93
84
  const mutationLogExclude = migrationOptions.strategy === 'from-mutation-log'
94
85
  ? (migrationOptions.excludeMutations ?? new Set(['livestore.RawSql']))
95
86
  : new Set(['livestore.RawSql']);
96
- return (mutationName, mutationEventEncoded) => {
87
+ return (mutationName, mutationEventDecoded) => {
97
88
  if (mutationLogExclude.has(mutationName))
98
89
  return true;
99
90
  const mutationDef = schema.mutations.get(mutationName) ?? shouldNeverHappen(`Unknown mutation: ${mutationName}`);
100
- const execArgsArr = getExecArgsFromMutation({
101
- mutationDef,
102
- mutationEvent: { decoded: undefined, encoded: mutationEventEncoded },
103
- });
91
+ const execArgsArr = getExecArgsFromMutation({ mutationDef, mutationEventDecoded });
104
92
  return execArgsArr.some((_) => _.statementSql.includes('__livestore'));
105
93
  };
106
94
  });
@@ -1 +1 @@
1
- {"version":3,"file":"apply-mutation.js","sourceRoot":"","sources":["../../src/leader-thread/apply-mutation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply-mutation.js","sourceRoot":"","sources":["../../src/leader-thread/apply-mutation.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { Effect } from '@livestore/utils/effect';
2
- import type { SqliteDb } from '../adapter-types.js';
2
+ import type { SynchronousDatabase } from '../adapter-types.js';
3
3
  import { SqliteError } from '../adapter-types.js';
4
4
  import type { BindValues } from '../sql-queries/index.js';
5
5
  import type { PreparedBindValues } from '../util.js';
6
- export declare const configureConnection: (sqliteDb: SqliteDb, { fkEnabled }: {
6
+ export declare const configureConnection: (syncDb: SynchronousDatabase, { fkEnabled }: {
7
7
  fkEnabled: boolean;
8
8
  }) => Effect.Effect<void, SqliteError, never>;
9
- export declare const execSql: (sqliteDb: SqliteDb, sql: string, bind: BindValues) => Effect.Effect<void, SqliteError, never>;
10
- export declare const execSqlPrepared: (sqliteDb: SqliteDb, sql: string, bindValues: PreparedBindValues) => Effect.Effect<void, SqliteError, never>;
9
+ export declare const execSql: (syncDb: SynchronousDatabase, sql: string, bind: BindValues) => Effect.Effect<void, SqliteError, never>;
10
+ export declare const execSqlPrepared: (syncDb: SynchronousDatabase, sql: string, bindValues: PreparedBindValues) => Effect.Effect<void, SqliteError, never>;
11
11
  //# sourceMappingURL=connection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/leader-thread/connection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAQpD,eAAO,MAAM,mBAAmB,aAAc,QAAQ,iBAAiB;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,4CAS1F,CAAA;AAEH,eAAO,MAAM,OAAO,aAAc,QAAQ,OAAO,MAAM,QAAQ,UAAU,4CAaxE,CAAA;AAYD,eAAO,MAAM,eAAe,aAAc,QAAQ,OAAO,MAAM,cAAc,kBAAkB,4CAgB9F,CAAA"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/leader-thread/connection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAQpD,eAAO,MAAM,mBAAmB,WAAY,mBAAmB,iBAAiB;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,4CASnG,CAAA;AAEH,eAAO,MAAM,OAAO,WAAY,mBAAmB,OAAO,MAAM,QAAQ,UAAU,4CAajF,CAAA;AAYD,eAAO,MAAM,eAAe,WAAY,mBAAmB,OAAO,MAAM,cAAc,kBAAkB,4CAgBvG,CAAA"}
@@ -2,15 +2,15 @@
2
2
  import { Effect } from '@livestore/utils/effect';
3
3
  import { SqliteError } from '../adapter-types.js';
4
4
  import { prepareBindValues, sql } from '../util.js';
5
- export const configureConnection = (sqliteDb, { fkEnabled }) => execSql(sqliteDb, sql `
5
+ export const configureConnection = (syncDb, { fkEnabled }) => execSql(syncDb, sql `
6
6
  PRAGMA page_size=8192;
7
7
  PRAGMA journal_mode=MEMORY;
8
8
  ${fkEnabled ? sql `PRAGMA foreign_keys='ON';` : sql `PRAGMA foreign_keys='OFF';`}
9
9
  `, {});
10
- export const execSql = (sqliteDb, sql, bind) => {
10
+ export const execSql = (syncDb, sql, bind) => {
11
11
  const bindValues = prepareBindValues(bind, sql);
12
12
  return Effect.try({
13
- try: () => sqliteDb.execute(sql, bindValues),
13
+ try: () => syncDb.execute(sql, bindValues),
14
14
  catch: (cause) => new SqliteError({ cause, query: { bindValues, sql }, code: cause.code }),
15
15
  }).pipe(Effect.asVoid,
16
16
  // Effect.logDuration(`@livestore/common:execSql:${sql}`),
@@ -27,9 +27,9 @@ export const execSql = (sqliteDb, sql, bind) => {
27
27
  // })
28
28
  // }
29
29
  // TODO actually use prepared statements
30
- export const execSqlPrepared = (sqliteDb, sql, bindValues) => {
30
+ export const execSqlPrepared = (syncDb, sql, bindValues) => {
31
31
  return Effect.try({
32
- try: () => sqliteDb.execute(sql, bindValues),
32
+ try: () => syncDb.execute(sql, bindValues),
33
33
  catch: (cause) => new SqliteError({ cause, query: { bindValues, sql }, code: cause.code }),
34
34
  }).pipe(Effect.asVoid,
35
35
  // Effect.logDuration(`@livestore/common:execSqlPrepared:${sql}`),
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/leader-thread/connection.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGjD,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAOnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAkB,EAAE,EAAE,SAAS,EAA0B,EAAE,EAAE,CAC/F,OAAO,CACL,QAAQ,EACR,GAAG,CAAA;;;MAGD,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA,2BAA2B,CAAC,CAAC,CAAC,GAAG,CAAA,4BAA4B;GAC/E,EACC,EAAE,CACH,CAAA;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,QAAkB,EAAE,GAAW,EAAE,IAAgB,EAAE,EAAE;IAC3E,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/C,OAAO,MAAM,CAAC,GAAG,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC;QAC5C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,IAAI,EAAG,KAA8B,CAAC,IAAI,EAAE,CAAC;KACrG,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,MAAM;IACb,0DAA0D;IAC1D,MAAM,CAAC,QAAQ,CAAC,2BAA2B,EAAE;QAC3C,UAAU,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;KAC/E,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AAED,gFAAgF;AAChF,yDAAyD;AACzD,wBAAwB;AACxB,6CAA6C;AAC7C,wBAAwB;AACxB,sHAAsH;AACtH,OAAO;AACP,IAAI;AAEJ,wCAAwC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAkB,EAAE,GAAW,EAAE,UAA8B,EAAE,EAAE;IACjG,OAAO,MAAM,CAAC,GAAG,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC;QAC5C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,IAAI,EAAG,KAA8B,CAAC,IAAI,EAAE,CAAC;KACrG,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,MAAM;IACb,kEAAkE;IAClE,MAAM,CAAC,QAAQ,CAAC,mCAAmC,EAAE;QACnD,UAAU,EAAE;YACV,YAAY,EAAE,GAAG;YACjB,GAAG;YACH,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SACvC;KACF,CAAC,CACH,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/leader-thread/connection.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGjD,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAOnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAA2B,EAAE,EAAE,SAAS,EAA0B,EAAE,EAAE,CACxG,OAAO,CACL,MAAM,EACN,GAAG,CAAA;;;MAGD,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA,2BAA2B,CAAC,CAAC,CAAC,GAAG,CAAA,4BAA4B;GAC/E,EACC,EAAE,CACH,CAAA;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAA2B,EAAE,GAAW,EAAE,IAAgB,EAAE,EAAE;IACpF,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/C,OAAO,MAAM,CAAC,GAAG,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC;QAC1C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,IAAI,EAAG,KAA8B,CAAC,IAAI,EAAE,CAAC;KACrG,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,MAAM;IACb,0DAA0D;IAC1D,MAAM,CAAC,QAAQ,CAAC,2BAA2B,EAAE;QAC3C,UAAU,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;KAC/E,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AAED,gFAAgF;AAChF,yDAAyD;AACzD,wBAAwB;AACxB,6CAA6C;AAC7C,wBAAwB;AACxB,sHAAsH;AACtH,OAAO;AACP,IAAI;AAEJ,wCAAwC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAA2B,EAAE,GAAW,EAAE,UAA8B,EAAE,EAAE;IAC1G,OAAO,MAAM,CAAC,GAAG,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC;QAC1C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,IAAI,EAAG,KAA8B,CAAC,IAAI,EAAE,CAAC;KACrG,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,MAAM;IACb,kEAAkE;IAClE,MAAM,CAAC,QAAQ,CAAC,mCAAmC,EAAE;QACnD,UAAU,EAAE;YACV,YAAY,EAAE,GAAG;YACjB,GAAG;YACH,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SACvC;KACF,CAAC,CACH,CAAA;AACH,CAAC,CAAA"}
@@ -3,7 +3,7 @@ import { Effect } from '@livestore/utils/effect';
3
3
  import type { SynchronousDatabase } from '../adapter-types.js';
4
4
  import { UnexpectedError } from '../adapter-types.js';
5
5
  import type { LiveStoreSchema } from '../schema/mod.js';
6
- import type { InitialBlockingSyncContext, LeaderSyncProcessor } from './types.js';
6
+ import type { InitialBlockingSyncContext, SyncProcessor } from './types.js';
7
7
  /**
8
8
  * The general idea of the sync processor is to "follow the sync state"
9
9
  * and apply/rollback mutations as needed to the read model and mutation log.
@@ -43,5 +43,5 @@ export declare const makeLeaderSyncProcessor: ({ schema, dbMissing, dbLog, initi
43
43
  dbMissing: boolean;
44
44
  dbLog: SynchronousDatabase;
45
45
  initialBlockingSyncContext: InitialBlockingSyncContext;
46
- }) => Effect.Effect<LeaderSyncProcessor, UnexpectedError, Scope.Scope>;
46
+ }) => Effect.Effect<SyncProcessor, UnexpectedError, Scope.Scope>;
47
47
  //# sourceMappingURL=leader-sync-processor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"leader-sync-processor.d.ts","sourceRoot":"","sources":["../../src/leader-thread/leader-sync-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAGL,MAAM,EAWP,MAAM,yBAAyB,CAAA;AAGhC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAA2B,MAAM,kBAAkB,CAAA;AAehF,OAAO,KAAK,EAAE,0BAA0B,EAAmB,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAuBlG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,uBAAuB,8DAKjC;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,iFAAiF;IACjF,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,mBAAmB,CAAA;IAC1B,0BAA0B,EAAE,0BAA0B,CAAA;CACvD,KAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAuO/D,CAAA"}
1
+ {"version":3,"file":"leader-sync-processor.d.ts","sourceRoot":"","sources":["../../src/leader-thread/leader-sync-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAGL,MAAM,EAUP,MAAM,yBAAyB,CAAA;AAGhC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAA2B,MAAM,kBAAkB,CAAA;AAehF,OAAO,KAAK,EAAE,0BAA0B,EAAmB,aAAa,EAAE,MAAM,YAAY,CAAA;AAuB5F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,uBAAuB,8DAKjC;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,iFAAiF;IACjF,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,mBAAmB,CAAA;IAC1B,0BAA0B,EAAE,0BAA0B,CAAA;CACvD,KAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAoOzD,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { shouldNeverHappen, TRACE_VERBOSE } from '@livestore/utils';
2
- import { BucketQueue, Deferred, Effect, Exit, Fiber, FiberHandle, Option, OtelTracer, ReadonlyArray, Ref, Schema, Stream, SubscriptionRef, } from '@livestore/utils/effect';
2
+ import { BucketQueue, Deferred, Effect, Exit, Fiber, FiberHandle, Option, OtelTracer, Ref, Schema, Stream, SubscriptionRef, } from '@livestore/utils/effect';
3
3
  import { UnexpectedError } from '../adapter-types.js';
4
4
  import { EventId, MUTATION_LOG_META_TABLE, MutationEvent, mutationLogMetaTable, SESSION_CHANGESET_META_TABLE, } from '../schema/mod.js';
5
5
  import { updateRows } from '../sql-queries/index.js';
@@ -161,15 +161,12 @@ export const makeLeaderSyncProcessor = ({ schema, dbMissing, dbLog, initialBlock
161
161
  if (initialBackendHead > initialLocalHead.global) {
162
162
  return shouldNeverHappen(`During boot the backend head (${initialBackendHead}) should never be greater than the local head (${initialLocalHead.global})`);
163
163
  }
164
- const pendingMutationEvents = yield* getMutationEventsSince({
165
- global: initialBackendHead,
166
- local: EventId.localDefault,
167
- }).pipe(Effect.map(ReadonlyArray.map((_) => new MutationEvent.EncodedWithMeta(_))));
164
+ const pendingMutationEvents = yield* getMutationEventsSince({ global: initialBackendHead, local: 0 });
168
165
  const initialSyncState = {
169
- pending: pendingMutationEvents,
166
+ pending: pendingMutationEvents.map((_) => new MutationEvent.EncodedWithMeta(_)),
170
167
  // On the leader we don't need a rollback tail beyond `pending` items
171
168
  rollbackTail: [],
172
- upstreamHead: { global: initialBackendHead, local: EventId.localDefault },
169
+ upstreamHead: { global: initialBackendHead, local: 0 },
173
170
  localHead: initialLocalHead,
174
171
  };
175
172
  /** State transitions need to happen atomically, so we use a Ref to track the state */
@@ -328,14 +325,16 @@ const backgroundBackendPulling = ({ dbReady, initialBackendHead, isLocalEvent, r
328
325
  remaining,
329
326
  });
330
327
  }
331
- trimChangesetRows(db, newBackendHead);
332
- const fiber = yield* applyMutationItemsRef.current({ batchItems: updateResult.newEvents }).pipe(Effect.fork);
328
+ const fiber = yield* applyMutationItemsRef.current({
329
+ batchItems: updateResult.newEvents,
330
+ }).pipe(Effect.fork);
333
331
  yield* Ref.set(stateRef, {
334
332
  _tag: 'applying-syncstate-advance',
335
333
  origin: 'pull',
336
334
  syncState: updateResult.newSyncState,
337
335
  fiber,
338
336
  });
337
+ // console.log('setRef:applying-syncstate-advance after backgroundBackendPulling', -1)
339
338
  });
340
339
  yield* syncBackend.pull(cursorInfo).pipe(
341
340
  // TODO only take from queue while connected
@@ -352,7 +351,7 @@ const backgroundBackendPulling = ({ dbReady, initialBackendHead, isLocalEvent, r
352
351
  // (e.g. needed for simulating being offline)
353
352
  // TODO remove when there's a better way to handle this in stream above
354
353
  yield* SubscriptionRef.waitUntil(syncBackend.isConnected, (isConnected) => isConnected === true);
355
- yield* onNewPullChunk(batch.map((_) => MutationEvent.EncodedWithMeta.fromGlobal(_.mutationEventEncoded)), remaining);
354
+ yield* onNewPullChunk(batch.map((_) => new MutationEvent.EncodedWithMeta(_.mutationEventEncoded)), remaining);
356
355
  yield* initialBlockingSyncContext.update({ processed: batch.length, remaining });
357
356
  })), Stream.runDrain, Effect.interruptible);
358
357
  }).pipe(Effect.withSpan('@livestore/common:leader-thread:syncing:backend-pulling'));
@@ -364,9 +363,7 @@ const rollback = ({ db, dbLog, eventIdsToRollback, }) => Effect.gen(function* ()
364
363
  // Apply changesets in reverse order
365
364
  for (let i = rollbackEvents.length - 1; i >= 0; i--) {
366
365
  const { changeset } = rollbackEvents[i];
367
- if (changeset !== null) {
368
- db.makeChangeset(changeset).invert().apply();
369
- }
366
+ db.makeChangeset(changeset).invert().apply();
370
367
  }
371
368
  // Delete the changeset rows
372
369
  db.execute(sql `DELETE FROM ${SESSION_CHANGESET_META_TABLE} WHERE (idGlobal, idLocal) IN (${eventIdsToRollback.map((id) => `(${id.global}, ${id.local})`).join(', ')})`);
@@ -384,7 +381,7 @@ const getCursorInfo = (remoteHead) => Effect.gen(function* () {
384
381
  }).pipe(Schema.pluck('syncMetadataJson'), Schema.Array, Schema.head);
385
382
  const syncMetadataOption = yield* Effect.sync(() => dbLog.select(sql `SELECT syncMetadataJson FROM ${MUTATION_LOG_META_TABLE} WHERE idGlobal = ${remoteHead} ORDER BY idLocal ASC LIMIT 1`)).pipe(Effect.andThen(Schema.decode(MutationlogQuerySchema)), Effect.map(Option.flatten), Effect.orDie);
386
383
  return Option.some({
387
- cursor: { global: remoteHead, local: EventId.localDefault },
384
+ cursor: { global: remoteHead, local: 0 },
388
385
  metadata: syncMetadataOption,
389
386
  });
390
387
  }).pipe(Effect.withSpan('@livestore/common:leader-thread:syncing:getCursorInfo', { attributes: { remoteHead } }));
@@ -403,7 +400,7 @@ const backgroundBackendPushing = ({ dbReady, syncBackendQueue, span, }) => Effec
403
400
  batch: TRACE_VERBOSE ? JSON.stringify(queueItems) : undefined,
404
401
  });
405
402
  // TODO handle push errors (should only happen during concurrent pull+push)
406
- const pushResult = yield* syncBackend.push(queueItems.map((_) => _.toGlobal())).pipe(Effect.either);
403
+ const pushResult = yield* syncBackend.push(queueItems).pipe(Effect.either);
407
404
  if (pushResult._tag === 'Left') {
408
405
  span?.addEvent('backend-push-error', { error: pushResult.left.toString() });
409
406
  // wait for interrupt and restarting of pushing
@@ -422,9 +419,4 @@ const backgroundBackendPushing = ({ dbReady, syncBackendQueue, span, }) => Effec
422
419
  }
423
420
  }
424
421
  }).pipe(Effect.interruptible, Effect.withSpan('@livestore/common:leader-thread:syncing:backend-pushing'));
425
- const trimChangesetRows = (db, newHead) => {
426
- // Since we're using the session changeset rows to query for the current head,
427
- // we're keeping at least one row for the current head, and thus are using `<` instead of `<=`
428
- db.execute(sql `DELETE FROM ${SESSION_CHANGESET_META_TABLE} WHERE idGlobal < ${newHead.global}`);
429
- };
430
422
  //# sourceMappingURL=leader-sync-processor.js.map