@livestore/common 0.3.0-dev.3 → 0.3.0-dev.31

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 (426) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/__tests__/fixture.d.ts +83 -221
  3. package/dist/__tests__/fixture.d.ts.map +1 -1
  4. package/dist/__tests__/fixture.js +33 -11
  5. package/dist/__tests__/fixture.js.map +1 -1
  6. package/dist/adapter-types.d.ts +128 -68
  7. package/dist/adapter-types.d.ts.map +1 -1
  8. package/dist/adapter-types.js +36 -7
  9. package/dist/adapter-types.js.map +1 -1
  10. package/dist/bounded-collections.d.ts.map +1 -1
  11. package/dist/debug-info.d.ts +1 -1
  12. package/dist/debug-info.d.ts.map +1 -1
  13. package/dist/debug-info.js +1 -0
  14. package/dist/debug-info.js.map +1 -1
  15. package/dist/devtools/devtools-messages-client-session.d.ts +389 -0
  16. package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -0
  17. package/dist/devtools/devtools-messages-client-session.js +96 -0
  18. package/dist/devtools/devtools-messages-client-session.js.map +1 -0
  19. package/dist/devtools/devtools-messages-common.d.ts +68 -0
  20. package/dist/devtools/devtools-messages-common.d.ts.map +1 -0
  21. package/dist/devtools/devtools-messages-common.js +60 -0
  22. package/dist/devtools/devtools-messages-common.js.map +1 -0
  23. package/dist/devtools/devtools-messages-leader.d.ts +394 -0
  24. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -0
  25. package/dist/devtools/devtools-messages-leader.js +147 -0
  26. package/dist/devtools/devtools-messages-leader.js.map +1 -0
  27. package/dist/devtools/devtools-messages.d.ts +3 -592
  28. package/dist/devtools/devtools-messages.d.ts.map +1 -1
  29. package/dist/devtools/devtools-messages.js +3 -171
  30. package/dist/devtools/devtools-messages.js.map +1 -1
  31. package/dist/devtools/devtools-sessioninfo.d.ts +28 -0
  32. package/dist/devtools/devtools-sessioninfo.d.ts.map +1 -0
  33. package/dist/devtools/devtools-sessioninfo.js +34 -0
  34. package/dist/devtools/devtools-sessioninfo.js.map +1 -0
  35. package/dist/devtools/mod.d.ts +39 -0
  36. package/dist/devtools/mod.d.ts.map +1 -0
  37. package/dist/devtools/mod.js +27 -0
  38. package/dist/devtools/mod.js.map +1 -0
  39. package/dist/index.d.ts +4 -11
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +4 -7
  42. package/dist/index.js.map +1 -1
  43. package/dist/leader-thread/LeaderSyncProcessor.d.ts +62 -0
  44. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -0
  45. package/dist/leader-thread/LeaderSyncProcessor.js +589 -0
  46. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -0
  47. package/dist/leader-thread/apply-event.d.ts +16 -0
  48. package/dist/leader-thread/apply-event.d.ts.map +1 -0
  49. package/dist/leader-thread/apply-event.js +103 -0
  50. package/dist/leader-thread/apply-event.js.map +1 -0
  51. package/dist/leader-thread/connection.d.ts +34 -6
  52. package/dist/leader-thread/connection.d.ts.map +1 -1
  53. package/dist/leader-thread/connection.js +22 -7
  54. package/dist/leader-thread/connection.js.map +1 -1
  55. package/dist/leader-thread/eventlog.d.ts +27 -0
  56. package/dist/leader-thread/eventlog.d.ts.map +1 -0
  57. package/dist/leader-thread/eventlog.js +123 -0
  58. package/dist/leader-thread/eventlog.js.map +1 -0
  59. package/dist/leader-thread/leader-worker-devtools.d.ts +1 -1
  60. package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
  61. package/dist/leader-thread/leader-worker-devtools.js +154 -132
  62. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  63. package/dist/leader-thread/make-leader-thread-layer.d.ts +26 -12
  64. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  65. package/dist/leader-thread/make-leader-thread-layer.js +82 -47
  66. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  67. package/dist/leader-thread/mod.d.ts +1 -1
  68. package/dist/leader-thread/mod.d.ts.map +1 -1
  69. package/dist/leader-thread/mod.js +1 -1
  70. package/dist/leader-thread/mod.js.map +1 -1
  71. package/dist/leader-thread/recreate-db.d.ts +4 -2
  72. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  73. package/dist/leader-thread/recreate-db.js +35 -25
  74. package/dist/leader-thread/recreate-db.js.map +1 -1
  75. package/dist/leader-thread/shutdown-channel.d.ts +2 -5
  76. package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
  77. package/dist/leader-thread/shutdown-channel.js +2 -4
  78. package/dist/leader-thread/shutdown-channel.js.map +1 -1
  79. package/dist/leader-thread/types.d.ts +86 -39
  80. package/dist/leader-thread/types.d.ts.map +1 -1
  81. package/dist/leader-thread/types.js +1 -3
  82. package/dist/leader-thread/types.js.map +1 -1
  83. package/dist/materializer-helper.d.ts +23 -0
  84. package/dist/materializer-helper.d.ts.map +1 -0
  85. package/dist/materializer-helper.js +70 -0
  86. package/dist/materializer-helper.js.map +1 -0
  87. package/dist/otel.d.ts +2 -0
  88. package/dist/otel.d.ts.map +1 -1
  89. package/dist/otel.js +5 -0
  90. package/dist/otel.js.map +1 -1
  91. package/dist/query-builder/api.d.ts +158 -55
  92. package/dist/query-builder/api.d.ts.map +1 -1
  93. package/dist/query-builder/api.js +3 -5
  94. package/dist/query-builder/api.js.map +1 -1
  95. package/dist/query-builder/astToSql.d.ts +7 -0
  96. package/dist/query-builder/astToSql.d.ts.map +1 -0
  97. package/dist/query-builder/astToSql.js +190 -0
  98. package/dist/query-builder/astToSql.js.map +1 -0
  99. package/dist/query-builder/impl.d.ts +3 -8
  100. package/dist/query-builder/impl.d.ts.map +1 -1
  101. package/dist/query-builder/impl.js +166 -124
  102. package/dist/query-builder/impl.js.map +1 -1
  103. package/dist/query-builder/impl.test.d.ts +86 -1
  104. package/dist/query-builder/impl.test.d.ts.map +1 -1
  105. package/dist/query-builder/impl.test.js +411 -69
  106. package/dist/query-builder/impl.test.js.map +1 -1
  107. package/dist/query-builder/mod.d.ts +7 -0
  108. package/dist/query-builder/mod.d.ts.map +1 -1
  109. package/dist/query-builder/mod.js +7 -0
  110. package/dist/query-builder/mod.js.map +1 -1
  111. package/dist/rehydrate-from-eventlog.d.ts +14 -0
  112. package/dist/rehydrate-from-eventlog.d.ts.map +1 -0
  113. package/dist/rehydrate-from-eventlog.js +65 -0
  114. package/dist/rehydrate-from-eventlog.js.map +1 -0
  115. package/dist/schema/EventDef.d.ts +136 -0
  116. package/dist/schema/EventDef.d.ts.map +1 -0
  117. package/dist/schema/EventDef.js +58 -0
  118. package/dist/schema/EventDef.js.map +1 -0
  119. package/dist/schema/EventId.d.ts +35 -15
  120. package/dist/schema/EventId.d.ts.map +1 -1
  121. package/dist/schema/EventId.js +57 -11
  122. package/dist/schema/EventId.js.map +1 -1
  123. package/dist/schema/EventId.test.d.ts +2 -0
  124. package/dist/schema/EventId.test.d.ts.map +1 -0
  125. package/dist/schema/EventId.test.js +11 -0
  126. package/dist/schema/EventId.test.js.map +1 -0
  127. package/dist/schema/LiveStoreEvent.d.ts +255 -0
  128. package/dist/schema/LiveStoreEvent.d.ts.map +1 -0
  129. package/dist/schema/LiveStoreEvent.js +118 -0
  130. package/dist/schema/LiveStoreEvent.js.map +1 -0
  131. package/dist/schema/client-document-def.d.ts +223 -0
  132. package/dist/schema/client-document-def.d.ts.map +1 -0
  133. package/dist/schema/client-document-def.js +170 -0
  134. package/dist/schema/client-document-def.js.map +1 -0
  135. package/dist/schema/client-document-def.test.d.ts +2 -0
  136. package/dist/schema/client-document-def.test.d.ts.map +1 -0
  137. package/dist/schema/client-document-def.test.js +201 -0
  138. package/dist/schema/client-document-def.test.js.map +1 -0
  139. package/dist/schema/db-schema/ast/sqlite.d.ts +69 -0
  140. package/dist/schema/db-schema/ast/sqlite.d.ts.map +1 -0
  141. package/dist/schema/db-schema/ast/sqlite.js +71 -0
  142. package/dist/schema/db-schema/ast/sqlite.js.map +1 -0
  143. package/dist/schema/db-schema/ast/validate.d.ts +3 -0
  144. package/dist/schema/db-schema/ast/validate.d.ts.map +1 -0
  145. package/dist/schema/db-schema/ast/validate.js +12 -0
  146. package/dist/schema/db-schema/ast/validate.js.map +1 -0
  147. package/dist/schema/db-schema/dsl/field-defs.d.ts +90 -0
  148. package/dist/schema/db-schema/dsl/field-defs.d.ts.map +1 -0
  149. package/dist/schema/db-schema/dsl/field-defs.js +87 -0
  150. package/dist/schema/db-schema/dsl/field-defs.js.map +1 -0
  151. package/dist/schema/db-schema/dsl/field-defs.test.d.ts +2 -0
  152. package/dist/schema/db-schema/dsl/field-defs.test.d.ts.map +1 -0
  153. package/dist/schema/db-schema/dsl/field-defs.test.js +29 -0
  154. package/dist/schema/db-schema/dsl/field-defs.test.js.map +1 -0
  155. package/dist/schema/db-schema/dsl/mod.d.ts +90 -0
  156. package/dist/schema/db-schema/dsl/mod.d.ts.map +1 -0
  157. package/dist/schema/db-schema/dsl/mod.js +41 -0
  158. package/dist/schema/db-schema/dsl/mod.js.map +1 -0
  159. package/dist/schema/db-schema/hash.d.ts +2 -0
  160. package/dist/schema/db-schema/hash.d.ts.map +1 -0
  161. package/dist/schema/db-schema/hash.js +14 -0
  162. package/dist/schema/db-schema/hash.js.map +1 -0
  163. package/dist/schema/db-schema/mod.d.ts +3 -0
  164. package/dist/schema/db-schema/mod.d.ts.map +1 -0
  165. package/dist/schema/db-schema/mod.js +3 -0
  166. package/dist/schema/db-schema/mod.js.map +1 -0
  167. package/dist/schema/events.d.ts +2 -0
  168. package/dist/schema/events.d.ts.map +1 -0
  169. package/dist/schema/events.js +2 -0
  170. package/dist/schema/events.js.map +1 -0
  171. package/dist/schema/mod.d.ts +5 -3
  172. package/dist/schema/mod.d.ts.map +1 -1
  173. package/dist/schema/mod.js +5 -3
  174. package/dist/schema/mod.js.map +1 -1
  175. package/dist/schema/schema-helpers.d.ts.map +1 -1
  176. package/dist/schema/schema-helpers.js +1 -1
  177. package/dist/schema/schema-helpers.js.map +1 -1
  178. package/dist/schema/schema.d.ts +30 -23
  179. package/dist/schema/schema.d.ts.map +1 -1
  180. package/dist/schema/schema.js +48 -35
  181. package/dist/schema/schema.js.map +1 -1
  182. package/dist/schema/sqlite-state.d.ts +12 -0
  183. package/dist/schema/sqlite-state.d.ts.map +1 -0
  184. package/dist/schema/sqlite-state.js +36 -0
  185. package/dist/schema/sqlite-state.js.map +1 -0
  186. package/dist/schema/system-tables.d.ts +179 -125
  187. package/dist/schema/system-tables.d.ts.map +1 -1
  188. package/dist/schema/system-tables.js +76 -41
  189. package/dist/schema/system-tables.js.map +1 -1
  190. package/dist/schema/table-def.d.ts +37 -109
  191. package/dist/schema/table-def.d.ts.map +1 -1
  192. package/dist/schema/table-def.js +23 -66
  193. package/dist/schema/table-def.js.map +1 -1
  194. package/dist/schema/view.d.ts +3 -0
  195. package/dist/schema/view.d.ts.map +1 -0
  196. package/dist/schema/view.js +3 -0
  197. package/dist/schema/view.js.map +1 -0
  198. package/dist/schema-management/common.d.ts +7 -7
  199. package/dist/schema-management/common.d.ts.map +1 -1
  200. package/dist/schema-management/common.js.map +1 -1
  201. package/dist/schema-management/migrations.d.ts +6 -6
  202. package/dist/schema-management/migrations.d.ts.map +1 -1
  203. package/dist/schema-management/migrations.js +19 -14
  204. package/dist/schema-management/migrations.js.map +1 -1
  205. package/dist/schema-management/validate-mutation-defs.d.ts +3 -3
  206. package/dist/schema-management/validate-mutation-defs.d.ts.map +1 -1
  207. package/dist/schema-management/validate-mutation-defs.js +17 -17
  208. package/dist/schema-management/validate-mutation-defs.js.map +1 -1
  209. package/dist/sql-queries/misc.d.ts.map +1 -1
  210. package/dist/sql-queries/sql-queries.d.ts +1 -1
  211. package/dist/sql-queries/sql-queries.d.ts.map +1 -1
  212. package/dist/sql-queries/sql-queries.js.map +1 -1
  213. package/dist/sql-queries/sql-query-builder.d.ts +1 -1
  214. package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
  215. package/dist/sql-queries/sql-query-builder.js.map +1 -1
  216. package/dist/sql-queries/types.d.ts +2 -1
  217. package/dist/sql-queries/types.d.ts.map +1 -1
  218. package/dist/sql-queries/types.js.map +1 -1
  219. package/dist/sync/ClientSessionSyncProcessor.d.ts +66 -0
  220. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -0
  221. package/dist/sync/ClientSessionSyncProcessor.js +209 -0
  222. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -0
  223. package/dist/sync/index.d.ts +1 -1
  224. package/dist/sync/index.d.ts.map +1 -1
  225. package/dist/sync/index.js +1 -1
  226. package/dist/sync/index.js.map +1 -1
  227. package/dist/sync/next/compact-events.d.ts.map +1 -1
  228. package/dist/sync/next/facts.d.ts +19 -19
  229. package/dist/sync/next/facts.d.ts.map +1 -1
  230. package/dist/sync/next/facts.js +3 -3
  231. package/dist/sync/next/facts.js.map +1 -1
  232. package/dist/sync/next/history-dag-common.d.ts +6 -7
  233. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  234. package/dist/sync/next/history-dag-common.js +4 -2
  235. package/dist/sync/next/history-dag-common.js.map +1 -1
  236. package/dist/sync/next/history-dag.d.ts.map +1 -1
  237. package/dist/sync/next/history-dag.js +2 -2
  238. package/dist/sync/next/history-dag.js.map +1 -1
  239. package/dist/sync/next/rebase-events.d.ts +10 -8
  240. package/dist/sync/next/rebase-events.d.ts.map +1 -1
  241. package/dist/sync/next/rebase-events.js +11 -8
  242. package/dist/sync/next/rebase-events.js.map +1 -1
  243. package/dist/sync/next/test/compact-events.calculator.test.js +38 -33
  244. package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -1
  245. package/dist/sync/next/test/compact-events.test.js +76 -76
  246. package/dist/sync/next/test/compact-events.test.js.map +1 -1
  247. package/dist/sync/next/test/{mutation-fixtures.d.ts → event-fixtures.d.ts} +29 -29
  248. package/dist/sync/next/test/event-fixtures.d.ts.map +1 -0
  249. package/dist/sync/next/test/{mutation-fixtures.js → event-fixtures.js} +67 -36
  250. package/dist/sync/next/test/event-fixtures.js.map +1 -0
  251. package/dist/sync/next/test/mod.d.ts +1 -1
  252. package/dist/sync/next/test/mod.d.ts.map +1 -1
  253. package/dist/sync/next/test/mod.js +1 -1
  254. package/dist/sync/next/test/mod.js.map +1 -1
  255. package/dist/sync/sync.d.ts +55 -20
  256. package/dist/sync/sync.d.ts.map +1 -1
  257. package/dist/sync/sync.js +7 -3
  258. package/dist/sync/sync.js.map +1 -1
  259. package/dist/sync/syncstate.d.ts +213 -82
  260. package/dist/sync/syncstate.d.ts.map +1 -1
  261. package/dist/sync/syncstate.js +319 -120
  262. package/dist/sync/syncstate.js.map +1 -1
  263. package/dist/sync/syncstate.test.js +295 -275
  264. package/dist/sync/syncstate.test.js.map +1 -1
  265. package/dist/sync/validate-push-payload.d.ts +2 -2
  266. package/dist/sync/validate-push-payload.d.ts.map +1 -1
  267. package/dist/sync/validate-push-payload.js +2 -2
  268. package/dist/sync/validate-push-payload.js.map +1 -1
  269. package/dist/util.d.ts +2 -2
  270. package/dist/util.d.ts.map +1 -1
  271. package/dist/version.d.ts +1 -1
  272. package/dist/version.d.ts.map +1 -1
  273. package/dist/version.js +1 -1
  274. package/dist/version.js.map +1 -1
  275. package/package.json +6 -6
  276. package/src/__tests__/fixture.ts +36 -15
  277. package/src/adapter-types.ts +111 -74
  278. package/src/debug-info.ts +1 -0
  279. package/src/devtools/devtools-messages-client-session.ts +141 -0
  280. package/src/devtools/devtools-messages-common.ts +115 -0
  281. package/src/devtools/devtools-messages-leader.ts +191 -0
  282. package/src/devtools/devtools-messages.ts +3 -243
  283. package/src/devtools/devtools-sessioninfo.ts +99 -0
  284. package/src/devtools/mod.ts +36 -0
  285. package/src/index.ts +4 -13
  286. package/src/leader-thread/LeaderSyncProcessor.ts +935 -0
  287. package/src/leader-thread/apply-event.ts +173 -0
  288. package/src/leader-thread/connection.ts +54 -9
  289. package/src/leader-thread/eventlog.ts +199 -0
  290. package/src/leader-thread/leader-worker-devtools.ts +212 -189
  291. package/src/leader-thread/make-leader-thread-layer.ts +143 -77
  292. package/src/leader-thread/mod.ts +1 -1
  293. package/src/leader-thread/recreate-db.ts +41 -30
  294. package/src/leader-thread/shutdown-channel.ts +2 -4
  295. package/src/leader-thread/types.ts +95 -51
  296. package/src/materializer-helper.ts +110 -0
  297. package/src/otel.ts +8 -0
  298. package/src/query-builder/api.ts +236 -85
  299. package/src/query-builder/astToSql.ts +232 -0
  300. package/src/query-builder/impl.test.ts +447 -78
  301. package/src/query-builder/impl.ts +209 -144
  302. package/src/query-builder/mod.ts +7 -0
  303. package/src/rehydrate-from-eventlog.ts +114 -0
  304. package/src/schema/EventDef.ts +216 -0
  305. package/src/schema/EventId.test.ts +12 -0
  306. package/src/schema/EventId.ts +75 -15
  307. package/src/schema/LiveStoreEvent.ts +239 -0
  308. package/src/schema/client-document-def.test.ts +239 -0
  309. package/src/schema/client-document-def.ts +444 -0
  310. package/src/schema/db-schema/ast/sqlite.ts +142 -0
  311. package/src/schema/db-schema/ast/validate.ts +13 -0
  312. package/src/schema/db-schema/dsl/__snapshots__/field-defs.test.ts.snap +206 -0
  313. package/src/schema/db-schema/dsl/field-defs.test.ts +35 -0
  314. package/src/schema/db-schema/dsl/field-defs.ts +242 -0
  315. package/src/schema/db-schema/dsl/mod.ts +222 -0
  316. package/src/schema/db-schema/hash.ts +14 -0
  317. package/src/schema/db-schema/mod.ts +2 -0
  318. package/src/schema/events.ts +1 -0
  319. package/src/schema/mod.ts +5 -3
  320. package/src/schema/schema-helpers.ts +1 -1
  321. package/src/schema/schema.ts +84 -62
  322. package/src/schema/sqlite-state.ts +62 -0
  323. package/src/schema/system-tables.ts +68 -50
  324. package/src/schema/table-def.ts +68 -214
  325. package/src/schema/view.ts +2 -0
  326. package/src/schema-management/common.ts +7 -7
  327. package/src/schema-management/migrations.ts +27 -24
  328. package/src/schema-management/validate-mutation-defs.ts +22 -24
  329. package/src/sql-queries/sql-queries.ts +1 -1
  330. package/src/sql-queries/sql-query-builder.ts +1 -2
  331. package/src/sql-queries/types.ts +3 -1
  332. package/src/sync/ClientSessionSyncProcessor.ts +332 -0
  333. package/src/sync/index.ts +1 -1
  334. package/src/sync/next/facts.ts +32 -33
  335. package/src/sync/next/history-dag-common.ts +9 -5
  336. package/src/sync/next/history-dag.ts +2 -2
  337. package/src/sync/next/rebase-events.ts +22 -16
  338. package/src/sync/next/test/compact-events.calculator.test.ts +45 -45
  339. package/src/sync/next/test/compact-events.test.ts +78 -78
  340. package/src/sync/next/test/event-fixtures.ts +219 -0
  341. package/src/sync/next/test/mod.ts +1 -1
  342. package/src/sync/sync.ts +51 -19
  343. package/src/sync/syncstate.test.ts +335 -308
  344. package/src/sync/syncstate.ts +394 -212
  345. package/src/sync/validate-push-payload.ts +7 -4
  346. package/src/version.ts +1 -1
  347. package/tmp/pack.tgz +0 -0
  348. package/tsconfig.json +2 -1
  349. package/dist/derived-mutations.d.ts +0 -109
  350. package/dist/derived-mutations.d.ts.map +0 -1
  351. package/dist/derived-mutations.js +0 -54
  352. package/dist/derived-mutations.js.map +0 -1
  353. package/dist/derived-mutations.test.d.ts +0 -2
  354. package/dist/derived-mutations.test.d.ts.map +0 -1
  355. package/dist/derived-mutations.test.js +0 -93
  356. package/dist/derived-mutations.test.js.map +0 -1
  357. package/dist/devtools/devtools-bridge.d.ts +0 -12
  358. package/dist/devtools/devtools-bridge.d.ts.map +0 -1
  359. package/dist/devtools/devtools-bridge.js +0 -2
  360. package/dist/devtools/devtools-bridge.js.map +0 -1
  361. package/dist/devtools/index.d.ts +0 -42
  362. package/dist/devtools/index.d.ts.map +0 -1
  363. package/dist/devtools/index.js +0 -48
  364. package/dist/devtools/index.js.map +0 -1
  365. package/dist/init-singleton-tables.d.ts +0 -4
  366. package/dist/init-singleton-tables.d.ts.map +0 -1
  367. package/dist/init-singleton-tables.js +0 -16
  368. package/dist/init-singleton-tables.js.map +0 -1
  369. package/dist/leader-thread/apply-mutation.d.ts +0 -8
  370. package/dist/leader-thread/apply-mutation.d.ts.map +0 -1
  371. package/dist/leader-thread/apply-mutation.js +0 -95
  372. package/dist/leader-thread/apply-mutation.js.map +0 -1
  373. package/dist/leader-thread/leader-sync-processor.d.ts +0 -47
  374. package/dist/leader-thread/leader-sync-processor.d.ts.map +0 -1
  375. package/dist/leader-thread/leader-sync-processor.js +0 -422
  376. package/dist/leader-thread/leader-sync-processor.js.map +0 -1
  377. package/dist/leader-thread/mutationlog.d.ts +0 -23
  378. package/dist/leader-thread/mutationlog.d.ts.map +0 -1
  379. package/dist/leader-thread/mutationlog.js +0 -27
  380. package/dist/leader-thread/mutationlog.js.map +0 -1
  381. package/dist/leader-thread/pull-queue-set.d.ts +0 -7
  382. package/dist/leader-thread/pull-queue-set.d.ts.map +0 -1
  383. package/dist/leader-thread/pull-queue-set.js +0 -39
  384. package/dist/leader-thread/pull-queue-set.js.map +0 -1
  385. package/dist/mutation.d.ts +0 -13
  386. package/dist/mutation.d.ts.map +0 -1
  387. package/dist/mutation.js +0 -57
  388. package/dist/mutation.js.map +0 -1
  389. package/dist/query-info.d.ts +0 -38
  390. package/dist/query-info.d.ts.map +0 -1
  391. package/dist/query-info.js +0 -7
  392. package/dist/query-info.js.map +0 -1
  393. package/dist/rehydrate-from-mutationlog.d.ts +0 -14
  394. package/dist/rehydrate-from-mutationlog.d.ts.map +0 -1
  395. package/dist/rehydrate-from-mutationlog.js +0 -72
  396. package/dist/rehydrate-from-mutationlog.js.map +0 -1
  397. package/dist/schema/MutationEvent.d.ts +0 -191
  398. package/dist/schema/MutationEvent.d.ts.map +0 -1
  399. package/dist/schema/MutationEvent.js +0 -56
  400. package/dist/schema/MutationEvent.js.map +0 -1
  401. package/dist/schema/mutations.d.ts +0 -107
  402. package/dist/schema/mutations.d.ts.map +0 -1
  403. package/dist/schema/mutations.js +0 -42
  404. package/dist/schema/mutations.js.map +0 -1
  405. package/dist/sync/client-session-sync-processor.d.ts +0 -45
  406. package/dist/sync/client-session-sync-processor.d.ts.map +0 -1
  407. package/dist/sync/client-session-sync-processor.js +0 -131
  408. package/dist/sync/client-session-sync-processor.js.map +0 -1
  409. package/dist/sync/next/test/mutation-fixtures.d.ts.map +0 -1
  410. package/dist/sync/next/test/mutation-fixtures.js.map +0 -1
  411. package/src/derived-mutations.test.ts +0 -101
  412. package/src/derived-mutations.ts +0 -166
  413. package/src/devtools/devtools-bridge.ts +0 -13
  414. package/src/devtools/index.ts +0 -48
  415. package/src/init-singleton-tables.ts +0 -24
  416. package/src/leader-thread/apply-mutation.ts +0 -143
  417. package/src/leader-thread/leader-sync-processor.ts +0 -666
  418. package/src/leader-thread/mutationlog.ts +0 -42
  419. package/src/leader-thread/pull-queue-set.ts +0 -58
  420. package/src/mutation.ts +0 -81
  421. package/src/query-info.ts +0 -78
  422. package/src/rehydrate-from-mutationlog.ts +0 -127
  423. package/src/schema/MutationEvent.ts +0 -161
  424. package/src/schema/mutations.ts +0 -192
  425. package/src/sync/client-session-sync-processor.ts +0 -207
  426. package/src/sync/next/test/mutation-fixtures.ts +0 -231
@@ -0,0 +1,141 @@
1
+ import { Schema } from '@livestore/utils/effect'
2
+
3
+ import { DebugInfo } from '../debug-info.js'
4
+ import { EventId } from '../schema/mod.js'
5
+ import { PreparedBindValues } from '../util.js'
6
+ import { LSDClientSessionChannelMessage, LSDClientSessionReqResMessage } from './devtools-messages-common.js'
7
+
8
+ export class DebugInfoReq extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoReq', {}) {}
9
+
10
+ export class DebugInfoRes extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoRes', {
11
+ debugInfo: DebugInfo,
12
+ }) {}
13
+
14
+ export class DebugInfoHistorySubscribe extends LSDClientSessionReqResMessage(
15
+ 'LSD.ClientSession.DebugInfoHistorySubscribe',
16
+ {
17
+ subscriptionId: Schema.String,
18
+ },
19
+ ) {}
20
+
21
+ export class DebugInfoHistoryRes extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoHistoryRes', {
22
+ debugInfoHistory: Schema.Array(DebugInfo),
23
+ subscriptionId: Schema.String,
24
+ }) {}
25
+
26
+ export class DebugInfoHistoryUnsubscribe extends LSDClientSessionReqResMessage(
27
+ 'LSD.ClientSession.DebugInfoHistoryUnsubscribe',
28
+ {
29
+ subscriptionId: Schema.String,
30
+ },
31
+ ) {}
32
+
33
+ export class DebugInfoResetReq extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoResetReq', {}) {}
34
+
35
+ export class DebugInfoResetRes extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoResetRes', {}) {}
36
+
37
+ export class DebugInfoRerunQueryReq extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoRerunQueryReq', {
38
+ queryStr: Schema.String,
39
+ bindValues: Schema.UndefinedOr(PreparedBindValues),
40
+ queriedTables: Schema.ReadonlySet(Schema.String),
41
+ }) {}
42
+
43
+ export class DebugInfoRerunQueryRes extends LSDClientSessionReqResMessage(
44
+ 'LSD.ClientSession.DebugInfoRerunQueryRes',
45
+ {},
46
+ ) {}
47
+
48
+ export class SyncHeadSubscribe extends LSDClientSessionReqResMessage('LSD.ClientSession.SyncHeadSubscribe', {
49
+ subscriptionId: Schema.String,
50
+ }) {}
51
+ export class SyncHeadUnsubscribe extends LSDClientSessionReqResMessage('LSD.ClientSession.SyncHeadUnsubscribe', {
52
+ subscriptionId: Schema.String,
53
+ }) {}
54
+ export class SyncHeadRes extends LSDClientSessionReqResMessage('LSD.ClientSession.SyncHeadRes', {
55
+ local: EventId.EventId,
56
+ upstream: EventId.EventId,
57
+ subscriptionId: Schema.String,
58
+ }) {}
59
+
60
+ export class ReactivityGraphSubscribe extends LSDClientSessionReqResMessage(
61
+ 'LSD.ClientSession.ReactivityGraphSubscribe',
62
+ {
63
+ includeResults: Schema.Boolean,
64
+ subscriptionId: Schema.String,
65
+ },
66
+ ) {}
67
+
68
+ export class ReactivityGraphUnsubscribe extends LSDClientSessionReqResMessage(
69
+ 'LSD.ClientSession.ReactivityGraphUnsubscribe',
70
+ {
71
+ subscriptionId: Schema.String,
72
+ },
73
+ ) {}
74
+
75
+ export class ReactivityGraphRes extends LSDClientSessionReqResMessage('LSD.ClientSession.ReactivityGraphRes', {
76
+ reactivityGraph: Schema.Any,
77
+ subscriptionId: Schema.String,
78
+ }) {}
79
+
80
+ export class LiveQueriesSubscribe extends LSDClientSessionReqResMessage('LSD.ClientSession.LiveQueriesSubscribe', {
81
+ subscriptionId: Schema.String,
82
+ }) {}
83
+
84
+ export class LiveQueriesUnsubscribe extends LSDClientSessionReqResMessage('LSD.ClientSession.LiveQueriesUnsubscribe', {
85
+ subscriptionId: Schema.String,
86
+ }) {}
87
+
88
+ export class SerializedLiveQuery extends Schema.Struct({
89
+ _tag: Schema.Literal('computed', 'db', 'graphql'),
90
+ id: Schema.Number,
91
+ label: Schema.String,
92
+ runs: Schema.Number,
93
+ executionTimes: Schema.Array(Schema.Number),
94
+ lastestResult: Schema.Any,
95
+ activeSubscriptions: Schema.Array(
96
+ Schema.Struct({ frames: Schema.Array(Schema.Struct({ name: Schema.String, filePath: Schema.String })) }),
97
+ ),
98
+ }) {}
99
+
100
+ export class LiveQueriesRes extends LSDClientSessionReqResMessage('LSD.ClientSession.LiveQueriesRes', {
101
+ liveQueries: Schema.Array(SerializedLiveQuery),
102
+ subscriptionId: Schema.String,
103
+ }) {}
104
+
105
+ export class Ping extends LSDClientSessionReqResMessage('LSD.ClientSession.Ping', {}) {}
106
+
107
+ export class Pong extends LSDClientSessionReqResMessage('LSD.ClientSession.Pong', {}) {}
108
+
109
+ export class Disconnect extends LSDClientSessionChannelMessage('LSD.ClientSession.Disconnect', {}) {}
110
+
111
+ export const MessageToApp = Schema.Union(
112
+ DebugInfoReq,
113
+ DebugInfoHistorySubscribe,
114
+ DebugInfoHistoryUnsubscribe,
115
+ DebugInfoResetReq,
116
+ DebugInfoRerunQueryReq,
117
+ ReactivityGraphSubscribe,
118
+ ReactivityGraphUnsubscribe,
119
+ LiveQueriesSubscribe,
120
+ LiveQueriesUnsubscribe,
121
+ Disconnect,
122
+ Ping,
123
+ SyncHeadSubscribe,
124
+ SyncHeadUnsubscribe,
125
+ ).annotations({ identifier: 'LSD.ClientSession.MessageToApp' })
126
+
127
+ export type MessageToApp = typeof MessageToApp.Type
128
+
129
+ export const MessageFromApp = Schema.Union(
130
+ DebugInfoRes,
131
+ DebugInfoHistoryRes,
132
+ DebugInfoResetRes,
133
+ DebugInfoRerunQueryRes,
134
+ ReactivityGraphRes,
135
+ LiveQueriesRes,
136
+ Disconnect,
137
+ Pong,
138
+ SyncHeadRes,
139
+ ).annotations({ identifier: 'LSD.ClientSession.MessageFromApp' })
140
+
141
+ export type MessageFromApp = typeof MessageFromApp.Type
@@ -0,0 +1,115 @@
1
+ import { Schema } from '@livestore/utils/effect'
2
+
3
+ import { liveStoreVersion as pkgVersion } from '../version.js'
4
+
5
+ export const NetworkStatus = Schema.Struct({
6
+ isConnected: Schema.Boolean,
7
+ timestampMs: Schema.Number,
8
+ /** Whether the network status devtools latch is closed. Used to simulate network disconnection. */
9
+ latchClosed: Schema.Boolean,
10
+ })
11
+
12
+ export type NetworkStatus = typeof NetworkStatus.Type
13
+
14
+ export const requestId = Schema.String
15
+ export const clientId = Schema.String
16
+ export const sessionId = Schema.String
17
+ export const liveStoreVersion = Schema.Literal(pkgVersion)
18
+
19
+ export const LSDMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(tag: Tag, fields: Fields) =>
20
+ Schema.TaggedStruct(tag, {
21
+ liveStoreVersion,
22
+ ...fields,
23
+ }).annotations({ identifier: tag })
24
+
25
+ export const LSDChannelMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(tag: Tag, fields: Fields) =>
26
+ LSDMessage(tag, {
27
+ clientId,
28
+ ...fields,
29
+ })
30
+
31
+ export const LSDClientSessionChannelMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(
32
+ tag: Tag,
33
+ fields: Fields,
34
+ ) =>
35
+ LSDMessage(tag, {
36
+ clientId,
37
+ sessionId,
38
+ ...fields,
39
+ })
40
+
41
+ export const LSDClientSessionReqResMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(
42
+ tag: Tag,
43
+ fields: Fields,
44
+ ) =>
45
+ LSDMessage(tag, {
46
+ clientId,
47
+ sessionId,
48
+ requestId,
49
+ ...fields,
50
+ })
51
+
52
+ export const LSDReqResMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(tag: Tag, fields: Fields) =>
53
+ LSDChannelMessage(tag, {
54
+ requestId,
55
+ ...fields,
56
+ })
57
+
58
+ type DefaultFields = {
59
+ readonly requestId: typeof Schema.String
60
+ readonly liveStoreVersion: typeof liveStoreVersion
61
+ readonly clientId: typeof Schema.String
62
+ }
63
+
64
+ export type LeaderReqResSchema<
65
+ Tag extends string,
66
+ PayloadFields extends Schema.Struct.Fields,
67
+ SuccessFields extends Schema.Struct.Fields,
68
+ ErrorFields extends Schema.Struct.Fields = never,
69
+ > = {
70
+ Request: Schema.TaggedStruct<`${Tag}.Request`, PayloadFields & DefaultFields>
71
+ Response:
72
+ | Schema.TaggedStruct<`${Tag}.Response.Success`, SuccessFields & DefaultFields>
73
+ | (ErrorFields extends never ? never : Schema.TaggedStruct<`${Tag}.Response.Error`, ErrorFields & DefaultFields>)
74
+ Success: Schema.TaggedStruct<`${Tag}.Response.Success`, SuccessFields & DefaultFields>
75
+ Error: ErrorFields extends never ? never : Schema.TaggedStruct<`${Tag}.Response.Error`, ErrorFields & DefaultFields>
76
+ }
77
+
78
+ export const LeaderReqResMessage = <
79
+ Tag extends string,
80
+ PayloadFields extends Schema.Struct.Fields,
81
+ SuccessFields extends Schema.Struct.Fields,
82
+ ErrorFields extends Schema.Struct.Fields = never,
83
+ >(
84
+ tag: Tag,
85
+ fields: {
86
+ payload: PayloadFields
87
+ success: SuccessFields
88
+ error?: ErrorFields
89
+ },
90
+ ): LeaderReqResSchema<Tag, PayloadFields, SuccessFields, ErrorFields> => {
91
+ const Success = Schema.TaggedStruct(`${tag}.Response.Success`, {
92
+ requestId,
93
+ liveStoreVersion,
94
+ ...fields.success,
95
+ }).annotations({ identifier: `${tag}.Response.Success` })
96
+
97
+ const Error = fields.error
98
+ ? Schema.TaggedStruct(`${tag}.Response.Error`, {
99
+ requestId,
100
+ liveStoreVersion,
101
+ ...fields.error,
102
+ }).annotations({ identifier: `${tag}.Response.Error` })
103
+ : Schema.Never
104
+
105
+ return {
106
+ Request: Schema.TaggedStruct(`${tag}.Request`, {
107
+ requestId,
108
+ liveStoreVersion,
109
+ ...fields.payload,
110
+ }).annotations({ identifier: `${tag}.Request` }),
111
+ Response: Schema.Union(Success, Error),
112
+ Success,
113
+ Error,
114
+ } as any
115
+ }
@@ -0,0 +1,191 @@
1
+ import { Schema, Transferable } from '@livestore/utils/effect'
2
+
3
+ import * as LiveStoreEvent from '../schema/LiveStoreEvent.js'
4
+ import { EventId } from '../schema/mod.js'
5
+ import * as SyncState from '../sync/syncstate.js'
6
+ import { LeaderReqResMessage, LSDMessage, LSDReqResMessage, NetworkStatus } from './devtools-messages-common.js'
7
+
8
+ export class ResetAllDataReq extends LSDReqResMessage('LSD.Leader.ResetAllDataReq', {
9
+ mode: Schema.Literal('all-data', 'only-app-db'),
10
+ }) {}
11
+
12
+ export class DatabaseFileInfoReq extends LSDReqResMessage('LSD.Leader.DatabaseFileInfoReq', {}) {}
13
+
14
+ export class DatabaseFileInfo extends Schema.Struct({
15
+ fileSize: Schema.Number,
16
+ persistenceInfo: Schema.Struct({ fileName: Schema.String }, { key: Schema.String, value: Schema.Any }),
17
+ }) {}
18
+
19
+ export class DatabaseFileInfoRes extends LSDReqResMessage('LSD.Leader.DatabaseFileInfoRes', {
20
+ readModel: DatabaseFileInfo,
21
+ eventlog: DatabaseFileInfo,
22
+ }) {}
23
+
24
+ export class NetworkStatusSubscribe extends LSDReqResMessage('LSD.Leader.NetworkStatusSubscribe', {
25
+ subscriptionId: Schema.String,
26
+ }) {}
27
+ export class NetworkStatusUnsubscribe extends LSDReqResMessage('LSD.Leader.NetworkStatusUnsubscribe', {
28
+ subscriptionId: Schema.String,
29
+ }) {}
30
+
31
+ export class NetworkStatusRes extends LSDReqResMessage('LSD.Leader.NetworkStatusRes', {
32
+ networkStatus: NetworkStatus,
33
+ subscriptionId: Schema.String,
34
+ }) {}
35
+
36
+ export class SyncingInfoReq extends LSDReqResMessage('LSD.Leader.SyncingInfoReq', {}) {}
37
+
38
+ export class SyncingInfo extends Schema.Struct({
39
+ enabled: Schema.Boolean,
40
+ metadata: Schema.Record({ key: Schema.String, value: Schema.Any }),
41
+ }) {}
42
+
43
+ export class SyncingInfoRes extends LSDReqResMessage('LSD.Leader.SyncingInfoRes', {
44
+ syncingInfo: SyncingInfo,
45
+ }) {}
46
+
47
+ export class SyncHistorySubscribe extends LSDReqResMessage('LSD.Leader.SyncHistorySubscribe', {
48
+ subscriptionId: Schema.String,
49
+ }) {}
50
+ export class SyncHistoryUnsubscribe extends LSDReqResMessage('LSD.Leader.SyncHistoryUnsubscribe', {
51
+ subscriptionId: Schema.String,
52
+ }) {}
53
+ export class SyncHistoryRes extends LSDReqResMessage('LSD.Leader.SyncHistoryRes', {
54
+ eventEncoded: LiveStoreEvent.AnyEncodedGlobal,
55
+ metadata: Schema.Option(Schema.JsonValue),
56
+ subscriptionId: Schema.String,
57
+ }) {}
58
+
59
+ export class SyncHeadSubscribe extends LSDReqResMessage('LSD.Leader.SyncHeadSubscribe', {
60
+ subscriptionId: Schema.String,
61
+ }) {}
62
+ export class SyncHeadUnsubscribe extends LSDReqResMessage('LSD.Leader.SyncHeadUnsubscribe', {
63
+ subscriptionId: Schema.String,
64
+ }) {}
65
+ export class SyncHeadRes extends LSDReqResMessage('LSD.Leader.SyncHeadRes', {
66
+ local: EventId.EventId,
67
+ upstream: EventId.EventId,
68
+ subscriptionId: Schema.String,
69
+ }) {}
70
+
71
+ export class SnapshotReq extends LSDReqResMessage('LSD.Leader.SnapshotReq', {}) {}
72
+
73
+ export class SnapshotRes extends LSDReqResMessage('LSD.Leader.SnapshotRes', {
74
+ snapshot: Transferable.Uint8Array,
75
+ }) {}
76
+
77
+ export const LoadDatabaseFile = LeaderReqResMessage('LSD.Leader.LoadDatabaseFile', {
78
+ payload: {
79
+ data: Transferable.Uint8Array,
80
+ },
81
+ success: {},
82
+ error: {
83
+ cause: Schema.Union(
84
+ Schema.TaggedStruct('unsupported-file', {}),
85
+ Schema.TaggedStruct('unsupported-database', {}),
86
+ Schema.TaggedStruct('unexpected-error', { cause: Schema.Defect }),
87
+ ),
88
+ },
89
+ })
90
+
91
+ // TODO refactor this to use push/pull semantics
92
+ export class SyncPull extends LSDMessage('LSD.Leader.SyncPull', {
93
+ payload: SyncState.PayloadUpstream,
94
+ }) {}
95
+
96
+ // TODO refactor this to use push/pull semantics
97
+ export class CommitEventReq extends LSDReqResMessage('LSD.Leader.CommitEventReq', {
98
+ eventEncoded: LiveStoreEvent.PartialAnyEncoded,
99
+ }) {}
100
+
101
+ export class CommitEventRes extends LSDReqResMessage('LSD.Leader.CommitEventRes', {}) {}
102
+
103
+ export class EventlogReq extends LSDReqResMessage('LSD.Leader.EventlogReq', {}) {}
104
+
105
+ export class EventlogRes extends LSDReqResMessage('LSD.Leader.EventlogRes', {
106
+ eventlog: Transferable.Uint8Array,
107
+ }) {}
108
+
109
+ export class Ping extends LSDReqResMessage('LSD.Leader.Ping', {}) {}
110
+
111
+ export class Pong extends LSDReqResMessage('LSD.Leader.Pong', {}) {}
112
+
113
+ export class Disconnect extends LSDReqResMessage('LSD.Leader.Disconnect', {}) {}
114
+
115
+ export const SetSyncLatch = LeaderReqResMessage('LSD.Leader.SetSyncLatch', {
116
+ payload: {
117
+ closeLatch: Schema.Boolean,
118
+ },
119
+ success: {},
120
+ })
121
+
122
+ export const ResetAllData = LeaderReqResMessage('LSD.Leader.ResetAllData', {
123
+ payload: {
124
+ mode: Schema.Literal('all-data', 'only-app-db'),
125
+ },
126
+ success: {},
127
+ })
128
+
129
+ // TODO move to `Schema.TaggedRequest` once new RPC is ready https://github.com/Effect-TS/effect/pull/4362
130
+ // export class DatabaseFileInfo_ extends Schema.TaggedRequest<DatabaseFileInfo_>()('LSD.Leader.DatabaseFileInfo', {
131
+ // payload: {
132
+ // requestId,
133
+ // liveStoreVersion,
134
+ // },
135
+ // success: DatabaseFileInfo,
136
+ // failure: UnexpectedError,
137
+ // }) {}
138
+
139
+ // export class NetworkStatus_ extends Schema.TaggedRequest<NetworkStatus_>()('LSD.Leader.NetworkStatus', {
140
+ // payload: {
141
+ // requestId,
142
+ // liveStoreVersion,
143
+ // },
144
+ // success: NetworkStatus,
145
+ // failure: UnexpectedError,
146
+ // }) {}
147
+
148
+ // export const MessageToApp_ = Schema.Union(DatabaseFileInfo_, NetworkStatus_)
149
+
150
+ // export type MessageToApp_ = typeof MessageToApp_.Type
151
+ //
152
+
153
+ export const MessageToApp = Schema.Union(
154
+ SnapshotReq,
155
+ LoadDatabaseFile.Request,
156
+ EventlogReq,
157
+ ResetAllData.Request,
158
+ NetworkStatusSubscribe,
159
+ NetworkStatusUnsubscribe,
160
+ Disconnect,
161
+ CommitEventReq,
162
+ Ping,
163
+ DatabaseFileInfoReq,
164
+ SyncHistorySubscribe,
165
+ SyncHistoryUnsubscribe,
166
+ SyncingInfoReq,
167
+ SyncHeadSubscribe,
168
+ SyncHeadUnsubscribe,
169
+ SetSyncLatch.Request,
170
+ ).annotations({ identifier: 'LSD.Leader.MessageToApp' })
171
+
172
+ export type MessageToApp = typeof MessageToApp.Type
173
+
174
+ export const MessageFromApp = Schema.Union(
175
+ SnapshotRes,
176
+ LoadDatabaseFile.Response,
177
+ EventlogRes,
178
+ Disconnect,
179
+ SyncPull,
180
+ NetworkStatusRes,
181
+ CommitEventRes,
182
+ Pong,
183
+ DatabaseFileInfoRes,
184
+ SyncHistoryRes,
185
+ SyncingInfoRes,
186
+ SyncHeadRes,
187
+ ResetAllData.Success,
188
+ SetSyncLatch.Success,
189
+ ).annotations({ identifier: 'LSD.Leader.MessageFromApp' })
190
+
191
+ export type MessageFromApp = typeof MessageFromApp.Type
@@ -1,243 +1,3 @@
1
- import { Schema, Transferable } from '@livestore/utils/effect'
2
-
3
- import { NetworkStatus } from '../adapter-types.js'
4
- import { DebugInfo } from '../debug-info.js'
5
- import * as MutationEvent from '../schema/MutationEvent.js'
6
- import { PreparedBindValues } from '../util.js'
7
- import { liveStoreVersion as pkgVersion } from '../version.js'
8
-
9
- const requestId = Schema.String
10
- const appHostId = Schema.String
11
- const liveStoreVersion = Schema.Literal(pkgVersion)
12
-
13
- const LSDMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(tag: Tag, fields: Fields) =>
14
- Schema.TaggedStruct(tag, {
15
- liveStoreVersion,
16
- ...fields,
17
- }).annotations({ identifier: tag })
18
-
19
- const LSDChannelMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(tag: Tag, fields: Fields) =>
20
- LSDMessage(tag, {
21
- ...fields,
22
- })
23
-
24
- const LSDStoreChannelMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(tag: Tag, fields: Fields) =>
25
- LSDMessage(tag, {
26
- appHostId,
27
- ...fields,
28
- })
29
-
30
- const LSDStoreReqResMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(tag: Tag, fields: Fields) =>
31
- LSDMessage(tag, {
32
- appHostId,
33
- requestId,
34
- ...fields,
35
- })
36
-
37
- const LSDReqResMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(tag: Tag, fields: Fields) =>
38
- LSDChannelMessage(tag, {
39
- requestId,
40
- ...fields,
41
- })
42
-
43
- export class SnapshotReq extends LSDReqResMessage('LSD.Leader.SnapshotReq', {}) {}
44
-
45
- export class SnapshotRes extends LSDReqResMessage('LSD.Leader.SnapshotRes', {
46
- snapshot: Transferable.Uint8Array,
47
- }) {}
48
-
49
- export class LoadDatabaseFileReq extends LSDReqResMessage('LSD.Leader.LoadDatabaseFileReq', {
50
- data: Transferable.Uint8Array,
51
- }) {}
52
-
53
- export class LoadDatabaseFileRes extends LSDReqResMessage('LSD.Leader.LoadDatabaseFileRes', {
54
- status: Schema.Literal('ok', 'unsupported-file', 'unsupported-database'),
55
- }) {}
56
-
57
- export class DebugInfoReq extends LSDStoreReqResMessage('LSD.DebugInfoReq', {}) {}
58
-
59
- export class DebugInfoRes extends LSDStoreReqResMessage('LSD.DebugInfoRes', {
60
- debugInfo: DebugInfo,
61
- }) {}
62
-
63
- export class DebugInfoHistorySubscribe extends LSDStoreReqResMessage('LSD.DebugInfoHistorySubscribe', {}) {}
64
-
65
- export class DebugInfoHistoryRes extends LSDStoreReqResMessage('LSD.DebugInfoHistoryRes', {
66
- debugInfoHistory: Schema.Array(DebugInfo),
67
- }) {}
68
-
69
- export class DebugInfoHistoryUnsubscribe extends LSDStoreReqResMessage('LSD.DebugInfoHistoryUnsubscribe', {}) {}
70
-
71
- export class DebugInfoResetReq extends LSDStoreReqResMessage('LSD.DebugInfoResetReq', {}) {}
72
-
73
- export class DebugInfoResetRes extends LSDStoreReqResMessage('LSD.DebugInfoResetRes', {}) {}
74
-
75
- export class DebugInfoRerunQueryReq extends LSDStoreReqResMessage('LSD.DebugInfoRerunQueryReq', {
76
- queryStr: Schema.String,
77
- bindValues: Schema.UndefinedOr(PreparedBindValues),
78
- queriedTables: Schema.ReadonlySet(Schema.String),
79
- }) {}
80
-
81
- export class DebugInfoRerunQueryRes extends LSDStoreReqResMessage('LSD.DebugInfoRerunQueryRes', {}) {}
82
-
83
- // TODO refactor this to use push/pull semantics
84
- export class MutationBroadcast extends LSDMessage('LSD.Leader.MutationBroadcast', {
85
- mutationEventEncoded: MutationEvent.EncodedAny,
86
- }) {}
87
-
88
- // TODO refactor this to use push/pull semantics
89
- export class RunMutationReq extends LSDReqResMessage('LSD.Leader.RunMutationReq', {
90
- mutationEventEncoded: MutationEvent.EncodedAny.pipe(Schema.omit('id', 'parentId')),
91
- }) {}
92
-
93
- export class RunMutationRes extends LSDReqResMessage('LSD.Leader.RunMutationRes', {}) {}
94
-
95
- export class MutationLogReq extends LSDReqResMessage('LSD.Leader.MutationLogReq', {}) {}
96
-
97
- export class MutationLogRes extends LSDReqResMessage('LSD.Leader.MutationLogRes', {
98
- mutationLog: Transferable.Uint8Array,
99
- }) {}
100
-
101
- export class ReactivityGraphSubscribe extends LSDStoreReqResMessage('LSD.ReactivityGraphSubscribe', {
102
- includeResults: Schema.Boolean,
103
- }) {}
104
-
105
- export class ReactivityGraphUnsubscribe extends LSDStoreReqResMessage('LSD.ReactivityGraphUnsubscribe', {}) {}
106
-
107
- export class ReactivityGraphRes extends LSDStoreReqResMessage('LSD.ReactivityGraphRes', {
108
- reactivityGraph: Schema.Any,
109
- }) {}
110
-
111
- export class LiveQueriesSubscribe extends LSDStoreReqResMessage('LSD.LiveQueriesSubscribe', {}) {}
112
-
113
- export class LiveQueriesUnsubscribe extends LSDStoreReqResMessage('LSD.LiveQueriesUnsubscribe', {}) {}
114
-
115
- export class SerializedLiveQuery extends Schema.Struct({
116
- _tag: Schema.Literal('computed', 'db', 'graphql'),
117
- id: Schema.Number,
118
- label: Schema.String,
119
- runs: Schema.Number,
120
- executionTimes: Schema.Array(Schema.Number),
121
- lastestResult: Schema.Any,
122
- activeSubscriptions: Schema.Array(
123
- Schema.Struct({ frames: Schema.Array(Schema.Struct({ name: Schema.String, filePath: Schema.String })) }),
124
- ),
125
- }) {}
126
-
127
- export class LiveQueriesRes extends LSDStoreReqResMessage('LSD.LiveQueriesRes', {
128
- liveQueries: Schema.Array(SerializedLiveQuery),
129
- }) {}
130
-
131
- export class ResetAllDataReq extends LSDReqResMessage('LSD.Leader.ResetAllDataReq', {
132
- mode: Schema.Literal('all-data', 'only-app-db'),
133
- }) {}
134
-
135
- export class ResetAllDataRes extends LSDReqResMessage('LSD.Leader.ResetAllDataRes', {}) {}
136
-
137
- export class DatabaseFileInfoReq extends LSDReqResMessage('LSD.Leader.DatabaseFileInfoReq', {}) {}
138
-
139
- export class DatabaseFileInfo extends Schema.Struct({
140
- fileSize: Schema.Number,
141
- persistenceInfo: Schema.Struct({ fileName: Schema.String }, { key: Schema.String, value: Schema.Any }),
142
- }) {}
143
-
144
- export class DatabaseFileInfoRes extends LSDReqResMessage('LSD.Leader.DatabaseFileInfoRes', {
145
- db: DatabaseFileInfo,
146
- mutationLog: DatabaseFileInfo,
147
- }) {}
148
-
149
- export class NetworkStatusSubscribe extends LSDReqResMessage('LSD.Leader.NetworkStatusSubscribe', {}) {}
150
- export class NetworkStatusUnsubscribe extends LSDReqResMessage('LSD.Leader.NetworkStatusUnsubscribe', {}) {}
151
-
152
- export class NetworkStatusRes extends LSDReqResMessage('LSD.Leader.NetworkStatusRes', {
153
- networkStatus: NetworkStatus,
154
- }) {}
155
-
156
- export class SyncingInfoReq extends LSDReqResMessage('LSD.Leader.SyncingInfoReq', {}) {}
157
-
158
- export class SyncingInfo extends Schema.Struct({
159
- enabled: Schema.Boolean,
160
- metadata: Schema.Record({ key: Schema.String, value: Schema.Any }),
161
- }) {}
162
-
163
- export class SyncingInfoRes extends LSDReqResMessage('LSD.Leader.SyncingInfoRes', {
164
- syncingInfo: SyncingInfo,
165
- }) {}
166
-
167
- export class SyncHistorySubscribe extends LSDReqResMessage('LSD.Leader.SyncHistorySubscribe', {}) {}
168
- export class SyncHistoryUnsubscribe extends LSDReqResMessage('LSD.Leader.SyncHistoryUnsubscribe', {}) {}
169
- export class SyncHistoryRes extends LSDReqResMessage('LSD.Leader.SyncHistoryRes', {
170
- mutationEventEncoded: MutationEvent.EncodedAny,
171
- metadata: Schema.Option(Schema.JsonValue),
172
- }) {}
173
-
174
- export class Disconnect extends LSDStoreChannelMessage('LSD.Disconnect', {}) {}
175
-
176
- export class Ping extends LSDReqResMessage('LSD.Ping', {}) {}
177
-
178
- export class Pong extends LSDReqResMessage('LSD.Pong', {}) {}
179
-
180
- export const MessageToAppLeader = Schema.Union(
181
- SnapshotReq,
182
- LoadDatabaseFileReq,
183
- MutationLogReq,
184
- ResetAllDataReq,
185
- NetworkStatusSubscribe,
186
- NetworkStatusUnsubscribe,
187
- Disconnect,
188
- RunMutationReq,
189
- Ping,
190
- DatabaseFileInfoReq,
191
- SyncHistorySubscribe,
192
- SyncHistoryUnsubscribe,
193
- SyncingInfoReq,
194
- ).annotations({ identifier: 'LSD.MessageToAppLeader' })
195
-
196
- export type MessageToAppLeader = typeof MessageToAppLeader.Type
197
-
198
- export const MessageToAppClientSession = Schema.Union(
199
- DebugInfoReq,
200
- DebugInfoHistorySubscribe,
201
- DebugInfoHistoryUnsubscribe,
202
- DebugInfoResetReq,
203
- DebugInfoRerunQueryReq,
204
- ReactivityGraphSubscribe,
205
- ReactivityGraphUnsubscribe,
206
- LiveQueriesSubscribe,
207
- LiveQueriesUnsubscribe,
208
- Disconnect,
209
- // TODO also introduce a ping/pong protocol for the client session <> devtools connection
210
- // Ping,
211
- ).annotations({ identifier: 'LSD.MessageToAppClientSession' })
212
-
213
- export type MessageToAppClientSession = typeof MessageToAppClientSession.Type
214
-
215
- export const MessageFromAppLeader = Schema.Union(
216
- SnapshotRes,
217
- LoadDatabaseFileRes,
218
- MutationLogRes,
219
- ResetAllDataRes,
220
- Disconnect,
221
- MutationBroadcast,
222
- NetworkStatusRes,
223
- RunMutationRes,
224
- Pong,
225
- DatabaseFileInfoRes,
226
- SyncHistoryRes,
227
- SyncingInfoRes,
228
- ).annotations({ identifier: 'LSD.MessageFromAppLeader' })
229
-
230
- export type MessageFromAppLeader = typeof MessageFromAppLeader.Type
231
-
232
- export const MessageFromAppClientSession = Schema.Union(
233
- DebugInfoRes,
234
- DebugInfoHistoryRes,
235
- DebugInfoResetRes,
236
- DebugInfoRerunQueryRes,
237
- ReactivityGraphRes,
238
- LiveQueriesRes,
239
- Disconnect,
240
- // Pong,
241
- ).annotations({ identifier: 'LSD.MessageFromAppClientSession' })
242
-
243
- export type MessageFromAppClientSession = typeof MessageFromAppClientSession.Type
1
+ export * as ClientSession from './devtools-messages-client-session.js'
2
+ export * as Leader from './devtools-messages-leader.js'
3
+ export * from './devtools-messages-common.js'