@livestore/cli 0.4.0 → 0.5.0-dev.0

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 (120) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/__tests__/fixtures/mock-config.d.ts +7 -9
  3. package/dist/__tests__/fixtures/mock-config.d.ts.map +1 -1
  4. package/dist/__tests__/fixtures/mock-config.js +6 -6
  5. package/dist/__tests__/fixtures/mock-config.js.map +1 -1
  6. package/dist/__tests__/sync-operations.test.js +20 -20
  7. package/dist/__tests__/sync-operations.test.js.map +1 -1
  8. package/dist/bin.js +6 -5
  9. package/dist/bin.js.map +1 -1
  10. package/dist/cli.d.ts +2 -23
  11. package/dist/cli.d.ts.map +1 -1
  12. package/dist/cli.js +1 -1
  13. package/dist/cli.js.map +1 -1
  14. package/dist/commands/__fixtures__/mcp-protocol-server.d.ts +2 -0
  15. package/dist/commands/__fixtures__/mcp-protocol-server.d.ts.map +1 -0
  16. package/dist/commands/__fixtures__/mcp-protocol-server.js +10 -0
  17. package/dist/commands/__fixtures__/mcp-protocol-server.js.map +1 -0
  18. package/dist/commands/import-export.d.ts +5 -19
  19. package/dist/commands/import-export.d.ts.map +1 -1
  20. package/dist/commands/import-export.js +12 -12
  21. package/dist/commands/import-export.js.map +1 -1
  22. package/dist/commands/mcp-coach.d.ts +8 -7
  23. package/dist/commands/mcp-coach.d.ts.map +1 -1
  24. package/dist/commands/mcp-coach.js +10 -10
  25. package/dist/commands/mcp-coach.js.map +1 -1
  26. package/dist/commands/mcp-protocols.d.ts +7 -0
  27. package/dist/commands/mcp-protocols.d.ts.map +1 -0
  28. package/dist/commands/mcp-protocols.js +12 -0
  29. package/dist/commands/mcp-protocols.js.map +1 -0
  30. package/dist/commands/mcp-protocols.test.d.ts +2 -0
  31. package/dist/commands/mcp-protocols.test.d.ts.map +1 -0
  32. package/dist/commands/mcp-protocols.test.js +60 -0
  33. package/dist/commands/mcp-protocols.test.js.map +1 -0
  34. package/dist/commands/mcp-stdio.test.d.ts +2 -0
  35. package/dist/commands/mcp-stdio.test.d.ts.map +1 -0
  36. package/dist/commands/mcp-stdio.test.js +79 -0
  37. package/dist/commands/mcp-stdio.test.js.map +1 -0
  38. package/dist/commands/mcp-tool-handlers.d.ts +1 -1
  39. package/dist/commands/mcp-tool-handlers.d.ts.map +1 -1
  40. package/dist/commands/mcp-tool-handlers.js +1 -0
  41. package/dist/commands/mcp-tool-handlers.js.map +1 -1
  42. package/dist/commands/mcp-tools-defs.d.ts +65 -64
  43. package/dist/commands/mcp-tools-defs.d.ts.map +1 -1
  44. package/dist/commands/mcp-tools-defs.js +59 -52
  45. package/dist/commands/mcp-tools-defs.js.map +1 -1
  46. package/dist/commands/mcp-tools-defs.test.d.ts +2 -0
  47. package/dist/commands/mcp-tools-defs.test.d.ts.map +1 -0
  48. package/dist/commands/mcp-tools-defs.test.js +11 -0
  49. package/dist/commands/mcp-tools-defs.test.js.map +1 -0
  50. package/dist/commands/mcp.d.ts +1 -3
  51. package/dist/commands/mcp.d.ts.map +1 -1
  52. package/dist/commands/mcp.js +5 -4
  53. package/dist/commands/mcp.js.map +1 -1
  54. package/dist/commands/new-project.d.ts +19 -27
  55. package/dist/commands/new-project.d.ts.map +1 -1
  56. package/dist/commands/new-project.js +17 -16
  57. package/dist/commands/new-project.js.map +1 -1
  58. package/dist/mcp-content/architecture.d.ts +1 -1
  59. package/dist/mcp-content/architecture.d.ts.map +1 -1
  60. package/dist/mcp-content/architecture.js +3 -3
  61. package/dist/mcp-content/features.d.ts +1 -1
  62. package/dist/mcp-content/features.d.ts.map +1 -1
  63. package/dist/mcp-content/features.js +1 -1
  64. package/dist/mcp-content/getting-started.d.ts +1 -1
  65. package/dist/mcp-content/getting-started.d.ts.map +1 -1
  66. package/dist/mcp-content/getting-started.js +37 -37
  67. package/dist/mcp-content/overview.d.ts +1 -1
  68. package/dist/mcp-content/overview.d.ts.map +1 -1
  69. package/dist/mcp-content/overview.js +6 -6
  70. package/dist/mcp-content/schemas/blog.d.ts +1 -1
  71. package/dist/mcp-content/schemas/blog.d.ts.map +1 -1
  72. package/dist/mcp-content/schemas/blog.js +25 -25
  73. package/dist/mcp-content/schemas/ecommerce.d.ts +1 -1
  74. package/dist/mcp-content/schemas/ecommerce.d.ts.map +1 -1
  75. package/dist/mcp-content/schemas/ecommerce.js +67 -67
  76. package/dist/mcp-content/schemas/social.d.ts +1 -1
  77. package/dist/mcp-content/schemas/social.d.ts.map +1 -1
  78. package/dist/mcp-content/schemas/social.js +48 -48
  79. package/dist/mcp-content/schemas/todo.d.ts +1 -1
  80. package/dist/mcp-content/schemas/todo.d.ts.map +1 -1
  81. package/dist/mcp-content/schemas/todo.js +35 -35
  82. package/dist/mcp-runtime/runtime.d.ts +2 -2
  83. package/dist/mcp-runtime/runtime.d.ts.map +1 -1
  84. package/dist/mcp-runtime/runtime.js +4 -4
  85. package/dist/mcp-runtime/runtime.js.map +1 -1
  86. package/dist/module-loader.d.ts +2 -2
  87. package/dist/module-loader.d.ts.map +1 -1
  88. package/dist/module-loader.js +6 -6
  89. package/dist/module-loader.js.map +1 -1
  90. package/dist/sync-operations.d.ts +24 -30
  91. package/dist/sync-operations.d.ts.map +1 -1
  92. package/dist/sync-operations.js +10 -12
  93. package/dist/sync-operations.js.map +1 -1
  94. package/package.json +30 -44
  95. package/src/__tests__/fixtures/mock-config.ts +8 -8
  96. package/src/__tests__/sync-operations.test.ts +21 -35
  97. package/src/bin.ts +7 -6
  98. package/src/cli.ts +1 -1
  99. package/src/commands/__fixtures__/mcp-protocol-server.ts +12 -0
  100. package/src/commands/import-export.ts +29 -29
  101. package/src/commands/mcp-coach.ts +12 -11
  102. package/src/commands/mcp-protocols.test.ts +76 -0
  103. package/src/commands/mcp-protocols.ts +12 -0
  104. package/src/commands/mcp-stdio.test.ts +93 -0
  105. package/src/commands/mcp-tool-handlers.ts +11 -8
  106. package/src/commands/mcp-tools-defs.test.ts +13 -0
  107. package/src/commands/mcp-tools-defs.ts +53 -51
  108. package/src/commands/mcp.ts +7 -4
  109. package/src/commands/new-project.ts +49 -36
  110. package/src/mcp-content/architecture.ts +3 -3
  111. package/src/mcp-content/features.ts +1 -1
  112. package/src/mcp-content/getting-started.ts +37 -37
  113. package/src/mcp-content/overview.ts +6 -6
  114. package/src/mcp-content/schemas/blog.ts +25 -25
  115. package/src/mcp-content/schemas/ecommerce.ts +67 -67
  116. package/src/mcp-content/schemas/social.ts +48 -48
  117. package/src/mcp-content/schemas/todo.ts +35 -35
  118. package/src/mcp-runtime/runtime.ts +7 -7
  119. package/src/module-loader.ts +10 -10
  120. package/src/sync-operations.ts +16 -16
@@ -19,7 +19,7 @@ export const tables = {
19
19
  allowsFollowers: State.SQLite.boolean({ default: true }),
20
20
  },
21
21
  }),
22
-
22
+
23
23
  posts: State.SQLite.table({
24
24
  name: 'posts',
25
25
  columns: {
@@ -34,7 +34,7 @@ export const tables = {
34
34
  deletedAt: State.SQLite.integer({ nullable: true, schema: Schema.DateFromNumber }),
35
35
  },
36
36
  }),
37
-
37
+
38
38
  follows: State.SQLite.table({
39
39
  name: 'follows',
40
40
  columns: {
@@ -45,7 +45,7 @@ export const tables = {
45
45
  approvedAt: State.SQLite.integer({ nullable: true, schema: Schema.DateFromNumber }),
46
46
  },
47
47
  }),
48
-
48
+
49
49
  likes: State.SQLite.table({
50
50
  name: 'likes',
51
51
  columns: {
@@ -54,7 +54,7 @@ export const tables = {
54
54
  createdAt: State.SQLite.integer({ schema: Schema.DateFromNumber }),
55
55
  },
56
56
  }),
57
-
57
+
58
58
  // Aggregate tables for performance (eventually consistent)
59
59
  postStats: State.SQLite.table({
60
60
  name: 'post_stats',
@@ -66,9 +66,9 @@ export const tables = {
66
66
  lastUpdated: State.SQLite.integer({ schema: Schema.DateFromNumber }),
67
67
  },
68
68
  }),
69
-
69
+
70
70
  userStats: State.SQLite.table({
71
- name: 'user_stats',
71
+ name: 'user_stats',
72
72
  columns: {
73
73
  userId: State.SQLite.text({ primaryKey: true }),
74
74
  followerCount: State.SQLite.integer({ default: 0 }),
@@ -77,7 +77,7 @@ export const tables = {
77
77
  lastUpdated: State.SQLite.integer({ schema: Schema.DateFromNumber }),
78
78
  },
79
79
  }),
80
-
80
+
81
81
  // Client-side state for UI
82
82
  feedState: State.SQLite.clientDocument({
83
83
  name: 'feedState',
@@ -86,8 +86,8 @@ export const tables = {
86
86
  lastRefresh: Schema.Date,
87
87
  scrollPosition: Schema.Number,
88
88
  }),
89
- default: {
90
- id: SessionIdSymbol,
89
+ default: {
90
+ id: SessionIdSymbol,
91
91
  value: { currentFeed: 'home', lastRefresh: new Date(), scrollPosition: 0 }
92
92
  },
93
93
  }),
@@ -105,7 +105,7 @@ export const events = {
105
105
  createdAt: Schema.Date,
106
106
  }),
107
107
  }),
108
-
108
+
109
109
  userProfileUpdated: Events.synced({
110
110
  name: 'v1.UserProfileUpdated',
111
111
  schema: Schema.Struct({
@@ -115,7 +115,7 @@ export const events = {
115
115
  avatarUrl: Schema.NullOr(Schema.String),
116
116
  }),
117
117
  }),
118
-
118
+
119
119
  userPrivacySettingsChanged: Events.synced({
120
120
  name: 'v1.UserPrivacySettingsChanged',
121
121
  schema: Schema.Struct({
@@ -124,7 +124,7 @@ export const events = {
124
124
  allowsFollowers: Schema.Boolean,
125
125
  }),
126
126
  }),
127
-
127
+
128
128
  userLastActiveUpdated: Events.synced({
129
129
  name: 'v1.UserLastActiveUpdated',
130
130
  schema: Schema.Struct({
@@ -132,7 +132,7 @@ export const events = {
132
132
  lastActiveAt: Schema.Date,
133
133
  }),
134
134
  }),
135
-
135
+
136
136
  // Post events
137
137
  postCreated: Events.synced({
138
138
  name: 'v1.PostCreated',
@@ -146,7 +146,7 @@ export const events = {
146
146
  createdAt: Schema.Date,
147
147
  }),
148
148
  }),
149
-
149
+
150
150
  postEdited: Events.synced({
151
151
  name: 'v1.PostEdited',
152
152
  schema: Schema.Struct({
@@ -155,7 +155,7 @@ export const events = {
155
155
  editedAt: Schema.Date,
156
156
  }),
157
157
  }),
158
-
158
+
159
159
  postDeleted: Events.synced({
160
160
  name: 'v1.PostDeleted',
161
161
  schema: Schema.Struct({
@@ -163,7 +163,7 @@ export const events = {
163
163
  deletedAt: Schema.Date,
164
164
  }),
165
165
  }),
166
-
166
+
167
167
  // Social interaction events
168
168
  followRequested: Events.synced({
169
169
  name: 'v1.FollowRequested',
@@ -173,7 +173,7 @@ export const events = {
173
173
  createdAt: Schema.Date,
174
174
  }),
175
175
  }),
176
-
176
+
177
177
  followApproved: Events.synced({
178
178
  name: 'v1.FollowApproved',
179
179
  schema: Schema.Struct({
@@ -182,7 +182,7 @@ export const events = {
182
182
  approvedAt: Schema.Date,
183
183
  }),
184
184
  }),
185
-
185
+
186
186
  unfollowed: Events.synced({
187
187
  name: 'v1.Unfollowed',
188
188
  schema: Schema.Struct({
@@ -190,7 +190,7 @@ export const events = {
190
190
  followingId: Schema.String,
191
191
  }),
192
192
  }),
193
-
193
+
194
194
  postLiked: Events.synced({
195
195
  name: 'v1.PostLiked',
196
196
  schema: Schema.Struct({
@@ -199,7 +199,7 @@ export const events = {
199
199
  createdAt: Schema.Date,
200
200
  }),
201
201
  }),
202
-
202
+
203
203
  postUnliked: Events.synced({
204
204
  name: 'v1.PostUnliked',
205
205
  schema: Schema.Struct({
@@ -207,7 +207,7 @@ export const events = {
207
207
  postId: Schema.String,
208
208
  }),
209
209
  }),
210
-
210
+
211
211
  // Local UI state
212
212
  feedStateUpdated: tables.feedState.set,
213
213
  }
@@ -219,85 +219,85 @@ const materializers = State.SQLite.materializers(events, {
219
219
  tables.users.insert({ id, username, email, displayName, createdAt }),
220
220
  tables.userStats.insert({ userId: id, lastUpdated: createdAt }),
221
221
  ],
222
-
222
+
223
223
  'v1.UserProfileUpdated': ({ id, displayName, bio, avatarUrl }) =>
224
224
  tables.users.update({ displayName, bio, avatarUrl }).where({ id }),
225
-
225
+
226
226
  'v1.UserPrivacySettingsChanged': ({ id, isPrivate, allowsFollowers }) =>
227
227
  tables.users.update({ isPrivate, allowsFollowers }).where({ id }),
228
-
228
+
229
229
  'v1.UserLastActiveUpdated': ({ id, lastActiveAt }) =>
230
230
  tables.users.update({ lastActiveAt }).where({ id }),
231
-
231
+
232
232
  // Post materializers
233
233
  'v1.PostCreated': ({ id, authorId, content, mediaUrls, replyToId, visibility, createdAt }) => [
234
- tables.posts.insert({
235
- id,
236
- authorId,
237
- content,
234
+ tables.posts.insert({
235
+ id,
236
+ authorId,
237
+ content,
238
238
  mediaUrls: mediaUrls ? JSON.stringify(mediaUrls) : null,
239
- replyToId,
240
- visibility,
241
- createdAt
239
+ replyToId,
240
+ visibility,
241
+ createdAt
242
242
  }),
243
243
  tables.postStats.insert({ postId: id, lastUpdated: createdAt }),
244
244
  // Update user post count
245
- tables.userStats.update({
245
+ tables.userStats.update({
246
246
  postCount: tables.userStats.select('postCount').where({ userId: authorId }).scalar() + 1,
247
247
  lastUpdated: createdAt
248
248
  }).where({ userId: authorId }),
249
249
  ],
250
-
250
+
251
251
  'v1.PostEdited': ({ id, content, editedAt }) =>
252
252
  tables.posts.update({ content, editedAt }).where({ id }),
253
-
253
+
254
254
  'v1.PostDeleted': ({ id, deletedAt }) =>
255
255
  tables.posts.update({ deletedAt }).where({ id }),
256
-
256
+
257
257
  // Follow materializers
258
258
  'v1.FollowRequested': ({ followerId, followingId, createdAt }) =>
259
259
  tables.follows.insert({ followerId, followingId, status: 'pending', createdAt }),
260
-
260
+
261
261
  'v1.FollowApproved': ({ followerId, followingId, approvedAt }) => [
262
262
  tables.follows.update({ status: 'active', approvedAt }).where({ followerId, followingId }),
263
263
  // Update follower counts
264
- tables.userStats.update({
264
+ tables.userStats.update({
265
265
  followerCount: tables.userStats.select('followerCount').where({ userId: followingId }).scalar() + 1,
266
266
  lastUpdated: approvedAt
267
267
  }).where({ userId: followingId }),
268
- tables.userStats.update({
268
+ tables.userStats.update({
269
269
  followingCount: tables.userStats.select('followingCount').where({ userId: followerId }).scalar() + 1,
270
270
  lastUpdated: approvedAt
271
271
  }).where({ userId: followerId }),
272
272
  ],
273
-
273
+
274
274
  'v1.Unfollowed': ({ followerId, followingId }) => [
275
275
  tables.follows.delete().where({ followerId, followingId }),
276
276
  // Update follower counts (eventual consistency)
277
- tables.userStats.update({
277
+ tables.userStats.update({
278
278
  followerCount: Math.max(0, tables.userStats.select('followerCount').where({ userId: followingId }).scalar() - 1),
279
279
  lastUpdated: new Date()
280
280
  }).where({ userId: followingId }),
281
- tables.userStats.update({
281
+ tables.userStats.update({
282
282
  followingCount: Math.max(0, tables.userStats.select('followingCount').where({ userId: followerId }).scalar() - 1),
283
283
  lastUpdated: new Date()
284
284
  }).where({ userId: followerId }),
285
285
  ],
286
-
286
+
287
287
  // Like materializers (idempotent)
288
288
  'v1.PostLiked': ({ userId, postId, createdAt }) => [
289
289
  tables.likes.insert({ userId, postId, createdAt }),
290
290
  // Update like count
291
- tables.postStats.update({
291
+ tables.postStats.update({
292
292
  likeCount: tables.postStats.select('likeCount').where({ postId }).scalar() + 1,
293
293
  lastUpdated: createdAt
294
294
  }).where({ postId }),
295
295
  ],
296
-
296
+
297
297
  'v1.PostUnliked': ({ userId, postId }) => [
298
298
  tables.likes.delete().where({ userId, postId }),
299
299
  // Update like count
300
- tables.postStats.update({
300
+ tables.postStats.update({
301
301
  likeCount: Math.max(0, tables.postStats.select('likeCount').where({ postId }).scalar() - 1),
302
302
  lastUpdated: new Date()
303
303
  }).where({ postId }),
@@ -317,8 +317,8 @@ export const schema = makeSchema({ events, state })
317
317
  // .join(tables.follows, 'authorId', 'followingId')
318
318
  // .join(tables.users, 'authorId', 'id')
319
319
  // .leftJoin(tables.postStats, 'id', 'postId')
320
- // .where({
321
- // followerId: userId,
320
+ // .where({
321
+ // followerId: userId,
322
322
  // 'follows.status': 'active',
323
323
  // 'posts.deletedAt': null,
324
324
  // 'posts.visibility': ['public', 'followers']
@@ -1,2 +1,2 @@
1
- export declare const todoSchemaContent = "import { Events, makeSchema, Schema, SessionIdSymbol, State } from '@livestore/livestore'\n\n// State tables - Define your application state as SQLite tables\nexport const tables = {\n todos: State.SQLite.table({\n name: 'todos',\n columns: {\n id: State.SQLite.text({ primaryKey: true }),\n title: State.SQLite.text({ default: '' }),\n completed: State.SQLite.boolean({ default: false }),\n deletedAt: State.SQLite.integer({ nullable: true, schema: Schema.DateFromNumber }),\n createdAt: State.SQLite.integer({ schema: Schema.DateFromNumber }),\n position: State.SQLite.real(), // For ordering - enables conflict-free reordering\n },\n }),\n tags: State.SQLite.table({\n name: 'tags',\n columns: {\n id: State.SQLite.text({ primaryKey: true }),\n name: State.SQLite.text(),\n color: State.SQLite.text({ nullable: true }),\n createdAt: State.SQLite.integer({ schema: Schema.DateFromNumber }),\n deletedAt: State.SQLite.integer({ nullable: true, schema: Schema.DateFromNumber }),\n },\n }),\n todoTags: State.SQLite.table({\n name: 'todo_tags',\n columns: {\n todoId: State.SQLite.text(),\n tagId: State.SQLite.text(),\n createdAt: State.SQLite.integer({ schema: Schema.DateFromNumber }),\n },\n }),\n // Client-only state for UI (not synced)\n uiState: State.SQLite.clientDocument({\n name: 'uiState',\n schema: Schema.Struct({ \n newTodoText: Schema.String, \n filter: Schema.Literal('all', 'active', 'completed'),\n selectedTags: Schema.Array(Schema.String)\n }),\n default: { id: SessionIdSymbol, value: { newTodoText: '', filter: 'all', selectedTags: [] } },\n }),\n}\n\n// Events - Define state changes as events for reliable sync and replay\nexport const events = {\n // Todo events\n todoCreated: Events.synced({\n name: 'v1.TodoCreated',\n schema: Schema.Struct({ \n id: Schema.String, \n title: Schema.String,\n createdAt: Schema.Date,\n position: Schema.Number\n }),\n }),\n todoCompleted: Events.synced({\n name: 'v1.TodoCompleted',\n schema: Schema.Struct({ id: Schema.String }),\n }),\n todoUncompleted: Events.synced({\n name: 'v1.TodoUncompleted', \n schema: Schema.Struct({ id: Schema.String }),\n }),\n todoTitleChanged: Events.synced({\n name: 'v1.TodoTitleChanged',\n schema: Schema.Struct({ id: Schema.String, title: Schema.String }),\n }),\n todoReordered: Events.synced({\n name: 'v1.TodoReordered',\n schema: Schema.Struct({ id: Schema.String, position: Schema.Number }),\n }),\n todoDeleted: Events.synced({\n name: 'v1.TodoDeleted',\n schema: Schema.Struct({ id: Schema.String, deletedAt: Schema.Date }),\n }),\n todosCleared: Events.synced({\n name: 'v1.TodosCleared', \n schema: Schema.Struct({ deletedAt: Schema.Date }),\n }),\n \n // Tag events\n tagCreated: Events.synced({\n name: 'v1.TagCreated',\n schema: Schema.Struct({ \n id: Schema.String, \n name: Schema.String, \n color: Schema.NullOr(Schema.String),\n createdAt: Schema.Date\n }),\n }),\n tagDeleted: Events.synced({\n name: 'v1.TagDeleted',\n schema: Schema.Struct({ id: Schema.String, deletedAt: Schema.Date }),\n }),\n \n // Todo-Tag relationship events\n todoTagged: Events.synced({\n name: 'v1.TodoTagged',\n schema: Schema.Struct({ todoId: Schema.String, tagId: Schema.String, createdAt: Schema.Date }),\n }),\n todoUntagged: Events.synced({\n name: 'v1.TodoUntagged',\n schema: Schema.Struct({ todoId: Schema.String, tagId: Schema.String }),\n }),\n \n // UI state events (local only)\n uiStateSet: tables.uiState.set,\n}\n\n// Materializers - Map events to state changes with conflict-free semantics\nconst materializers = State.SQLite.materializers(events, {\n // Todo materializers\n 'v1.TodoCreated': ({ id, title, createdAt, position }) => \n tables.todos.insert({ id, title, completed: false, createdAt, position }),\n \n 'v1.TodoCompleted': ({ id }) => \n tables.todos.update({ completed: true }).where({ id }),\n \n 'v1.TodoUncompleted': ({ id }) => \n tables.todos.update({ completed: false }).where({ id }),\n \n 'v1.TodoTitleChanged': ({ id, title }) => \n tables.todos.update({ title }).where({ id }),\n \n 'v1.TodoReordered': ({ id, position }) => \n tables.todos.update({ position }).where({ id }),\n \n 'v1.TodoDeleted': ({ id, deletedAt }) => \n tables.todos.update({ deletedAt }).where({ id }),\n \n 'v1.TodosCleared': ({ deletedAt }) => \n tables.todos.update({ deletedAt }).where({ completed: true, deletedAt: null }),\n \n // Tag materializers \n 'v1.TagCreated': ({ id, name, color, createdAt }) => \n tables.tags.insert({ id, name, color, createdAt }),\n \n 'v1.TagDeleted': ({ id, deletedAt }) => \n tables.tags.update({ deletedAt }).where({ id }),\n \n // Todo-Tag relationship materializers\n 'v1.TodoTagged': ({ todoId, tagId, createdAt }) => \n tables.todoTags.insert({ todoId, tagId, createdAt }),\n \n 'v1.TodoUntagged': ({ todoId, tagId }) => \n tables.todoTags.delete().where({ todoId, tagId }),\n})\n\nconst state = State.SQLite.makeState({ tables, materializers })\n\nexport const schema = makeSchema({ events, state })\n\n// Example usage:\n// \n// import { queryDb, dispatchEvent } from '@livestore/livestore'\n// import { schema, events, tables } from './schema.js'\n//\n// // Query active todos\n// const activeTodos$ = queryDb(\n// tables.todos.select().where({ deletedAt: null, completed: false }).orderBy('position'),\n// { label: 'activeTodos' }\n// )\n//\n// // Create a new todo\n// const createTodo = (title: string) => {\n// const id = crypto.randomUUID()\n// const position = Date.now() // Simple position strategy\n// dispatchEvent(events.todoCreated({ id, title, createdAt: new Date(), position }))\n// }";
1
+ export declare const todoSchemaContent = "import { Events, makeSchema, Schema, SessionIdSymbol, State } from '@livestore/livestore'\n\n// State tables - Define your application state as SQLite tables\nexport const tables = {\n todos: State.SQLite.table({\n name: 'todos',\n columns: {\n id: State.SQLite.text({ primaryKey: true }),\n title: State.SQLite.text({ default: '' }),\n completed: State.SQLite.boolean({ default: false }),\n deletedAt: State.SQLite.integer({ nullable: true, schema: Schema.DateFromNumber }),\n createdAt: State.SQLite.integer({ schema: Schema.DateFromNumber }),\n position: State.SQLite.real(), // For ordering - enables conflict-free reordering\n },\n }),\n tags: State.SQLite.table({\n name: 'tags',\n columns: {\n id: State.SQLite.text({ primaryKey: true }),\n name: State.SQLite.text(),\n color: State.SQLite.text({ nullable: true }),\n createdAt: State.SQLite.integer({ schema: Schema.DateFromNumber }),\n deletedAt: State.SQLite.integer({ nullable: true, schema: Schema.DateFromNumber }),\n },\n }),\n todoTags: State.SQLite.table({\n name: 'todo_tags',\n columns: {\n todoId: State.SQLite.text(),\n tagId: State.SQLite.text(),\n createdAt: State.SQLite.integer({ schema: Schema.DateFromNumber }),\n },\n }),\n // Client-only state for UI (not synced)\n uiState: State.SQLite.clientDocument({\n name: 'uiState',\n schema: Schema.Struct({\n newTodoText: Schema.String,\n filter: Schema.Literal('all', 'active', 'completed'),\n selectedTags: Schema.Array(Schema.String)\n }),\n default: { id: SessionIdSymbol, value: { newTodoText: '', filter: 'all', selectedTags: [] } },\n }),\n}\n\n// Events - Define state changes as events for reliable sync and replay\nexport const events = {\n // Todo events\n todoCreated: Events.synced({\n name: 'v1.TodoCreated',\n schema: Schema.Struct({\n id: Schema.String,\n title: Schema.String,\n createdAt: Schema.Date,\n position: Schema.Number\n }),\n }),\n todoCompleted: Events.synced({\n name: 'v1.TodoCompleted',\n schema: Schema.Struct({ id: Schema.String }),\n }),\n todoUncompleted: Events.synced({\n name: 'v1.TodoUncompleted',\n schema: Schema.Struct({ id: Schema.String }),\n }),\n todoTitleChanged: Events.synced({\n name: 'v1.TodoTitleChanged',\n schema: Schema.Struct({ id: Schema.String, title: Schema.String }),\n }),\n todoReordered: Events.synced({\n name: 'v1.TodoReordered',\n schema: Schema.Struct({ id: Schema.String, position: Schema.Number }),\n }),\n todoDeleted: Events.synced({\n name: 'v1.TodoDeleted',\n schema: Schema.Struct({ id: Schema.String, deletedAt: Schema.Date }),\n }),\n todosCleared: Events.synced({\n name: 'v1.TodosCleared',\n schema: Schema.Struct({ deletedAt: Schema.Date }),\n }),\n\n // Tag events\n tagCreated: Events.synced({\n name: 'v1.TagCreated',\n schema: Schema.Struct({\n id: Schema.String,\n name: Schema.String,\n color: Schema.NullOr(Schema.String),\n createdAt: Schema.Date\n }),\n }),\n tagDeleted: Events.synced({\n name: 'v1.TagDeleted',\n schema: Schema.Struct({ id: Schema.String, deletedAt: Schema.Date }),\n }),\n\n // Todo-Tag relationship events\n todoTagged: Events.synced({\n name: 'v1.TodoTagged',\n schema: Schema.Struct({ todoId: Schema.String, tagId: Schema.String, createdAt: Schema.Date }),\n }),\n todoUntagged: Events.synced({\n name: 'v1.TodoUntagged',\n schema: Schema.Struct({ todoId: Schema.String, tagId: Schema.String }),\n }),\n\n // UI state events (local only)\n uiStateSet: tables.uiState.set,\n}\n\n// Materializers - Map events to state changes with conflict-free semantics\nconst materializers = State.SQLite.materializers(events, {\n // Todo materializers\n 'v1.TodoCreated': ({ id, title, createdAt, position }) =>\n tables.todos.insert({ id, title, completed: false, createdAt, position }),\n\n 'v1.TodoCompleted': ({ id }) =>\n tables.todos.update({ completed: true }).where({ id }),\n\n 'v1.TodoUncompleted': ({ id }) =>\n tables.todos.update({ completed: false }).where({ id }),\n\n 'v1.TodoTitleChanged': ({ id, title }) =>\n tables.todos.update({ title }).where({ id }),\n\n 'v1.TodoReordered': ({ id, position }) =>\n tables.todos.update({ position }).where({ id }),\n\n 'v1.TodoDeleted': ({ id, deletedAt }) =>\n tables.todos.update({ deletedAt }).where({ id }),\n\n 'v1.TodosCleared': ({ deletedAt }) =>\n tables.todos.update({ deletedAt }).where({ completed: true, deletedAt: null }),\n\n // Tag materializers\n 'v1.TagCreated': ({ id, name, color, createdAt }) =>\n tables.tags.insert({ id, name, color, createdAt }),\n\n 'v1.TagDeleted': ({ id, deletedAt }) =>\n tables.tags.update({ deletedAt }).where({ id }),\n\n // Todo-Tag relationship materializers\n 'v1.TodoTagged': ({ todoId, tagId, createdAt }) =>\n tables.todoTags.insert({ todoId, tagId, createdAt }),\n\n 'v1.TodoUntagged': ({ todoId, tagId }) =>\n tables.todoTags.delete().where({ todoId, tagId }),\n})\n\nconst state = State.SQLite.makeState({ tables, materializers })\n\nexport const schema = makeSchema({ events, state })\n\n// Example usage:\n//\n// import { queryDb, dispatchEvent } from '@livestore/livestore'\n// import { schema, events, tables } from './schema.js'\n//\n// // Query active todos\n// const activeTodos$ = queryDb(\n// tables.todos.select().where({ deletedAt: null, completed: false }).orderBy('position'),\n// { label: 'activeTodos' }\n// )\n//\n// // Create a new todo\n// const createTodo = (title: string) => {\n// const id = crypto.randomUUID()\n// const position = Date.now() // Simple position strategy\n// dispatchEvent(events.todoCreated({ id, title, createdAt: new Date(), position }))\n// }";
2
2
  //# sourceMappingURL=todo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"todo.d.ts","sourceRoot":"","sources":["../../../src/mcp-content/schemas/todo.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,8xLA0KzB,CAAA"}
1
+ {"version":3,"file":"todo.d.ts","sourceRoot":"","sources":["../../../src/mcp-content/schemas/todo.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,ytLA0KzB,CAAA"}
@@ -34,8 +34,8 @@ export const tables = {
34
34
  // Client-only state for UI (not synced)
35
35
  uiState: State.SQLite.clientDocument({
36
36
  name: 'uiState',
37
- schema: Schema.Struct({
38
- newTodoText: Schema.String,
37
+ schema: Schema.Struct({
38
+ newTodoText: Schema.String,
39
39
  filter: Schema.Literal('all', 'active', 'completed'),
40
40
  selectedTags: Schema.Array(Schema.String)
41
41
  }),
@@ -48,8 +48,8 @@ export const events = {
48
48
  // Todo events
49
49
  todoCreated: Events.synced({
50
50
  name: 'v1.TodoCreated',
51
- schema: Schema.Struct({
52
- id: Schema.String,
51
+ schema: Schema.Struct({
52
+ id: Schema.String,
53
53
  title: Schema.String,
54
54
  createdAt: Schema.Date,
55
55
  position: Schema.Number
@@ -60,7 +60,7 @@ export const events = {
60
60
  schema: Schema.Struct({ id: Schema.String }),
61
61
  }),
62
62
  todoUncompleted: Events.synced({
63
- name: 'v1.TodoUncompleted',
63
+ name: 'v1.TodoUncompleted',
64
64
  schema: Schema.Struct({ id: Schema.String }),
65
65
  }),
66
66
  todoTitleChanged: Events.synced({
@@ -76,16 +76,16 @@ export const events = {
76
76
  schema: Schema.Struct({ id: Schema.String, deletedAt: Schema.Date }),
77
77
  }),
78
78
  todosCleared: Events.synced({
79
- name: 'v1.TodosCleared',
79
+ name: 'v1.TodosCleared',
80
80
  schema: Schema.Struct({ deletedAt: Schema.Date }),
81
81
  }),
82
-
82
+
83
83
  // Tag events
84
84
  tagCreated: Events.synced({
85
85
  name: 'v1.TagCreated',
86
- schema: Schema.Struct({
87
- id: Schema.String,
88
- name: Schema.String,
86
+ schema: Schema.Struct({
87
+ id: Schema.String,
88
+ name: Schema.String,
89
89
  color: Schema.NullOr(Schema.String),
90
90
  createdAt: Schema.Date
91
91
  }),
@@ -94,7 +94,7 @@ export const events = {
94
94
  name: 'v1.TagDeleted',
95
95
  schema: Schema.Struct({ id: Schema.String, deletedAt: Schema.Date }),
96
96
  }),
97
-
97
+
98
98
  // Todo-Tag relationship events
99
99
  todoTagged: Events.synced({
100
100
  name: 'v1.TodoTagged',
@@ -104,7 +104,7 @@ export const events = {
104
104
  name: 'v1.TodoUntagged',
105
105
  schema: Schema.Struct({ todoId: Schema.String, tagId: Schema.String }),
106
106
  }),
107
-
107
+
108
108
  // UI state events (local only)
109
109
  uiStateSet: tables.uiState.set,
110
110
  }
@@ -112,39 +112,39 @@ export const events = {
112
112
  // Materializers - Map events to state changes with conflict-free semantics
113
113
  const materializers = State.SQLite.materializers(events, {
114
114
  // Todo materializers
115
- 'v1.TodoCreated': ({ id, title, createdAt, position }) =>
115
+ 'v1.TodoCreated': ({ id, title, createdAt, position }) =>
116
116
  tables.todos.insert({ id, title, completed: false, createdAt, position }),
117
-
118
- 'v1.TodoCompleted': ({ id }) =>
117
+
118
+ 'v1.TodoCompleted': ({ id }) =>
119
119
  tables.todos.update({ completed: true }).where({ id }),
120
-
121
- 'v1.TodoUncompleted': ({ id }) =>
120
+
121
+ 'v1.TodoUncompleted': ({ id }) =>
122
122
  tables.todos.update({ completed: false }).where({ id }),
123
-
124
- 'v1.TodoTitleChanged': ({ id, title }) =>
123
+
124
+ 'v1.TodoTitleChanged': ({ id, title }) =>
125
125
  tables.todos.update({ title }).where({ id }),
126
-
127
- 'v1.TodoReordered': ({ id, position }) =>
126
+
127
+ 'v1.TodoReordered': ({ id, position }) =>
128
128
  tables.todos.update({ position }).where({ id }),
129
-
130
- 'v1.TodoDeleted': ({ id, deletedAt }) =>
129
+
130
+ 'v1.TodoDeleted': ({ id, deletedAt }) =>
131
131
  tables.todos.update({ deletedAt }).where({ id }),
132
-
133
- 'v1.TodosCleared': ({ deletedAt }) =>
132
+
133
+ 'v1.TodosCleared': ({ deletedAt }) =>
134
134
  tables.todos.update({ deletedAt }).where({ completed: true, deletedAt: null }),
135
-
136
- // Tag materializers
137
- 'v1.TagCreated': ({ id, name, color, createdAt }) =>
135
+
136
+ // Tag materializers
137
+ 'v1.TagCreated': ({ id, name, color, createdAt }) =>
138
138
  tables.tags.insert({ id, name, color, createdAt }),
139
-
140
- 'v1.TagDeleted': ({ id, deletedAt }) =>
139
+
140
+ 'v1.TagDeleted': ({ id, deletedAt }) =>
141
141
  tables.tags.update({ deletedAt }).where({ id }),
142
-
142
+
143
143
  // Todo-Tag relationship materializers
144
- 'v1.TodoTagged': ({ todoId, tagId, createdAt }) =>
144
+ 'v1.TodoTagged': ({ todoId, tagId, createdAt }) =>
145
145
  tables.todoTags.insert({ todoId, tagId, createdAt }),
146
-
147
- 'v1.TodoUntagged': ({ todoId, tagId }) =>
146
+
147
+ 'v1.TodoUntagged': ({ todoId, tagId }) =>
148
148
  tables.todoTags.delete().where({ todoId, tagId }),
149
149
  })
150
150
 
@@ -153,7 +153,7 @@ const state = State.SQLite.makeState({ tables, materializers })
153
153
  export const schema = makeSchema({ events, state })
154
154
 
155
155
  // Example usage:
156
- //
156
+ //
157
157
  // import { queryDb, dispatchEvent } from '@livestore/livestore'
158
158
  // import { schema, events, tables } from './schema.js'
159
159
  //
@@ -30,14 +30,14 @@ export declare const query: (args_0: {
30
30
  bindValues?: readonly any[] | Record<string, unknown>;
31
31
  }) => Effect.Effect<{
32
32
  rows: {
33
- [k: string]: Schema.JsonValue;
33
+ [k: string]: Schema.Json;
34
34
  }[];
35
35
  rowCount: number;
36
36
  }, never, never>;
37
37
  export declare const commit: (args_0: {
38
38
  events: ReadonlyArray<{
39
39
  name: string;
40
- args: Schema.JsonValue;
40
+ args: Schema.Json;
41
41
  }>;
42
42
  }) => Effect.Effect<{
43
43
  committed: number;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/mcp-runtime/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,MAAM,EAA0B,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAWxF;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,+CAKlB;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,YAAY,CA2CuC,CAAA;AAEjF,eAAO,MAAM,QAAQ,4DAAgD,CAAA;AAErE,eAAO,MAAM,MAAM;;;;;;;;;;;;gBAyB2B,CAAA;AAE9C,eAAO,MAAM,KAAK;SAIX,MAAM;iBACE,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;gBAWrD,CAAA;AAEF,eAAO,MAAM,MAAM;YAGT,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAA;KAAE,CAAC;;;gBAW/D,CAAA;AAEF,eAAO,MAAM,UAAU;;gBAQ2B,CAAA"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/mcp-runtime/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,MAAM,EAA0B,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAWxF;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,+CAKlB;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,YAAY,CA2CuC,CAAA;AAEjF,eAAO,MAAM,QAAQ,4DAAiD,CAAA;AAEtE,eAAO,MAAM,MAAM;;;;;;;;;;;;gBAyB2B,CAAA;AAE9C,eAAO,MAAM,KAAK;SAIX,MAAM;iBACE,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;gBAWrD,CAAA;AAEF,eAAO,MAAM,MAAM;YAGT,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAA;KAAE,CAAC;;;gBAW1D,CAAA;AAEF,eAAO,MAAM,UAAU;;gBAQ2B,CAAA"}
@@ -35,7 +35,7 @@ export const init = ({ configPath, storeId, clientId, sessionId, }) => Effect.ge
35
35
  storeId,
36
36
  adapter,
37
37
  disableDevtools: true,
38
- syncPayload,
38
+ ...(syncPayload !== undefined ? { syncPayload } : {}),
39
39
  syncPayloadSchema,
40
40
  }));
41
41
  // Replace existing store if any
@@ -50,7 +50,7 @@ export const init = ({ configPath, storeId, clientId, sessionId, }) => Effect.ge
50
50
  store = s;
51
51
  return store;
52
52
  }).pipe(Effect.provide(ModuleLoaderLayer), Effect.withSpan('mcp-runtime:init'));
53
- export const getStore = Effect.sync(() => Option.fromNullable(store));
53
+ export const getStore = Effect.sync(() => Option.fromNullishOr(store));
54
54
  export const status = Effect.gen(function* () {
55
55
  const opt = yield* getStore;
56
56
  if (opt._tag === 'None') {
@@ -76,7 +76,7 @@ export const status = Effect.gen(function* () {
76
76
  export const query = Effect.fn('mcp-runtime:query')(function* ({ sql, bindValues, }) {
77
77
  const opt = yield* getStore;
78
78
  if (opt._tag === 'None') {
79
- return yield* Effect.dieMessage('LiveStore not connected. Call livestore_instance_connect first.');
79
+ return yield* Effect.die(new Error('LiveStore not connected. Call livestore_instance_connect first.'));
80
80
  }
81
81
  const s = opt.value;
82
82
  const rows = s.query({ query: sql, bindValues: bindValues ?? [] });
@@ -86,7 +86,7 @@ export const query = Effect.fn('mcp-runtime:query')(function* ({ sql, bindValues
86
86
  export const commit = Effect.fn('mcp-runtime:commit')(function* ({ events, }) {
87
87
  const opt = yield* getStore;
88
88
  if (opt._tag === 'None') {
89
- return yield* Effect.dieMessage('LiveStore not connected. Call livestore_instance_connect first.');
89
+ return yield* Effect.die(new Error('LiveStore not connected. Call livestore_instance_connect first.'));
90
90
  }
91
91
  const s = opt.value;
92
92
  const InputEventSchema = LiveStoreEvent.Input.makeSchema(s.schema);
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/mcp-runtime/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/mcp-runtime/runtime.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,8 @@ import { Effect, FileSystem, Schema } from '@livestore/utils/effect';
5
5
  export interface ModuleConfig {
6
6
  schema: LiveStoreSchema;
7
7
  syncBackendConstructor: SyncBackend.SyncBackendConstructor;
8
- syncPayloadSchema: Schema.Schema<any>;
9
- syncPayload: unknown;
8
+ syncPayloadSchema: Schema.Codec<Schema.Json, Schema.Json>;
9
+ syncPayload: Schema.Json | undefined;
10
10
  }
11
11
  /**
12
12
  * Loads and validates a user config module.
@@ -1 +1 @@
1
- {"version":3,"file":"module-loader.d.ts","sourceRoot":"","sources":["../src/module-loader.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAElF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEpE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,eAAe,CAAA;IACvB,sBAAsB,EAAE,WAAW,CAAC,sBAAsB,CAAA;IAC1D,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACrC,WAAW,EAAE,OAAO,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAAI,iBAE9B;IACD,UAAU,EAAE,MAAM,CAAA;CACnB,KAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CA6DP,CAAA"}
1
+ {"version":3,"file":"module-loader.d.ts","sourceRoot":"","sources":["../src/module-loader.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAElF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEpE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,eAAe,CAAA;IACvB,sBAAsB,EAAE,WAAW,CAAC,sBAAsB,CAAA;IAC1D,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IACzD,WAAW,EAAE,MAAM,CAAC,IAAI,GAAG,SAAS,CAAA;CACrC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAAI,iBAE9B;IACD,UAAU,EAAE,MAAM,CAAA;CACnB,KAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CA6DP,CAAA"}
@@ -41,30 +41,30 @@ export const loadModuleConfig = ({ configPath, }) => Effect.gen(function* () {
41
41
  note: `Failed to import module at ${abs}`,
42
42
  }),
43
43
  });
44
- const schema = (mod)?.schema;
44
+ const schema = mod?.schema;
45
45
  if (isLiveStoreSchema(schema) === false) {
46
46
  return yield* UnknownError.make({
47
47
  cause: `Module at ${abs} must export a valid LiveStore 'schema'`,
48
48
  note: `Ex: export { schema } from './src/livestore/schema.ts'`,
49
49
  });
50
50
  }
51
- const syncBackendConstructor = (mod)?.syncBackend;
51
+ const syncBackendConstructor = mod?.syncBackend;
52
52
  if (typeof syncBackendConstructor !== 'function') {
53
53
  return yield* UnknownError.make({
54
54
  cause: `Module at ${abs} must export a 'syncBackend' constructor`,
55
55
  note: `Ex: export const syncBackend = makeWsSync({ url })`,
56
56
  });
57
57
  }
58
- const syncPayloadSchemaExport = (mod)?.syncPayloadSchema;
58
+ const syncPayloadSchemaExport = mod?.syncPayloadSchema;
59
59
  const syncPayloadSchema = syncPayloadSchemaExport === undefined
60
- ? Schema.JsonValue
60
+ ? Schema.Json
61
61
  : Schema.isSchema(syncPayloadSchemaExport) === true
62
62
  ? syncPayloadSchemaExport
63
63
  : shouldNeverHappen(`Exported 'syncPayloadSchema' from ${abs} must be an Effect Schema (received ${typeof syncPayloadSchemaExport}).`);
64
- const syncPayloadExport = (mod)?.syncPayload;
64
+ const syncPayloadExport = mod?.syncPayload;
65
65
  const syncPayload = yield* (syncPayloadExport === undefined
66
66
  ? Effect.succeed(undefined)
67
- : Schema.decodeUnknown(syncPayloadSchema)(syncPayloadExport)).pipe(UnknownError.mapToUnknownError);
67
+ : Schema.decodeUnknownEffect(syncPayloadSchema)(syncPayloadExport)).pipe(UnknownError.mapToUnknownError);
68
68
  return {
69
69
  schema,
70
70
  syncBackendConstructor,
@@ -1 +1 @@
1
- {"version":3,"file":"module-loader.js","sourceRoot":"","sources":["../src/module-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-loader.js","sourceRoot":"","sources":["../src/module-loader.ts"],"names":[],"mappings":"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"}