@livestore/common 0.4.0-dev.20 → 0.4.0-dev.22

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 (127) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/ClientSessionLeaderThreadProxy.d.ts +10 -0
  3. package/dist/ClientSessionLeaderThreadProxy.d.ts.map +1 -1
  4. package/dist/ClientSessionLeaderThreadProxy.js.map +1 -1
  5. package/dist/adapter-types.d.ts +23 -0
  6. package/dist/adapter-types.d.ts.map +1 -1
  7. package/dist/adapter-types.js +27 -1
  8. package/dist/adapter-types.js.map +1 -1
  9. package/dist/devtools/devtools-messages-client-session.d.ts +42 -22
  10. package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -1
  11. package/dist/devtools/devtools-messages-client-session.js +12 -1
  12. package/dist/devtools/devtools-messages-client-session.js.map +1 -1
  13. package/dist/devtools/devtools-messages-common.d.ts +12 -6
  14. package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
  15. package/dist/devtools/devtools-messages-common.js +7 -2
  16. package/dist/devtools/devtools-messages-common.js.map +1 -1
  17. package/dist/devtools/devtools-messages-leader.d.ts +47 -25
  18. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
  19. package/dist/devtools/devtools-messages-leader.js +13 -1
  20. package/dist/devtools/devtools-messages-leader.js.map +1 -1
  21. package/dist/leader-thread/LeaderSyncProcessor.d.ts +33 -0
  22. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
  23. package/dist/leader-thread/LeaderSyncProcessor.js +12 -12
  24. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
  25. package/dist/leader-thread/eventlog.d.ts +6 -1
  26. package/dist/leader-thread/eventlog.d.ts.map +1 -1
  27. package/dist/leader-thread/eventlog.js +59 -2
  28. package/dist/leader-thread/eventlog.js.map +1 -1
  29. package/dist/leader-thread/leader-worker-devtools.js +38 -6
  30. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  31. package/dist/leader-thread/make-leader-thread-layer.d.ts +4 -2
  32. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  33. package/dist/leader-thread/make-leader-thread-layer.js +5 -1
  34. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  35. package/dist/leader-thread/materialize-event.d.ts.map +1 -1
  36. package/dist/leader-thread/materialize-event.js +3 -0
  37. package/dist/leader-thread/materialize-event.js.map +1 -1
  38. package/dist/leader-thread/mod.d.ts +1 -0
  39. package/dist/leader-thread/mod.d.ts.map +1 -1
  40. package/dist/leader-thread/mod.js +1 -0
  41. package/dist/leader-thread/mod.js.map +1 -1
  42. package/dist/leader-thread/stream-events.d.ts +56 -0
  43. package/dist/leader-thread/stream-events.d.ts.map +1 -0
  44. package/dist/leader-thread/stream-events.js +166 -0
  45. package/dist/leader-thread/stream-events.js.map +1 -0
  46. package/dist/leader-thread/types.d.ts +77 -1
  47. package/dist/leader-thread/types.d.ts.map +1 -1
  48. package/dist/leader-thread/types.js +13 -0
  49. package/dist/leader-thread/types.js.map +1 -1
  50. package/dist/otel.d.ts +2 -1
  51. package/dist/otel.d.ts.map +1 -1
  52. package/dist/otel.js +5 -0
  53. package/dist/otel.js.map +1 -1
  54. package/dist/schema/EventDef/define.d.ts +14 -0
  55. package/dist/schema/EventDef/define.d.ts.map +1 -1
  56. package/dist/schema/EventDef/define.js +1 -0
  57. package/dist/schema/EventDef/define.js.map +1 -1
  58. package/dist/schema/EventDef/deprecated.d.ts +99 -0
  59. package/dist/schema/EventDef/deprecated.d.ts.map +1 -0
  60. package/dist/schema/EventDef/deprecated.js +144 -0
  61. package/dist/schema/EventDef/deprecated.js.map +1 -0
  62. package/dist/schema/EventDef/deprecated.test.d.ts +2 -0
  63. package/dist/schema/EventDef/deprecated.test.d.ts.map +1 -0
  64. package/dist/schema/EventDef/deprecated.test.js +95 -0
  65. package/dist/schema/EventDef/deprecated.test.js.map +1 -0
  66. package/dist/schema/EventDef/event-def.d.ts +4 -0
  67. package/dist/schema/EventDef/event-def.d.ts.map +1 -1
  68. package/dist/schema/EventDef/mod.d.ts +1 -0
  69. package/dist/schema/EventDef/mod.d.ts.map +1 -1
  70. package/dist/schema/EventDef/mod.js +1 -0
  71. package/dist/schema/EventDef/mod.js.map +1 -1
  72. package/dist/schema/LiveStoreEvent/client.d.ts +6 -6
  73. package/dist/schema/state/sqlite/client-document-def.d.ts +1 -0
  74. package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
  75. package/dist/schema/state/sqlite/client-document-def.js +17 -8
  76. package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
  77. package/dist/schema/state/sqlite/client-document-def.test.js +120 -1
  78. package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
  79. package/dist/schema/state/sqlite/column-def.test.js +2 -3
  80. package/dist/schema/state/sqlite/column-def.test.js.map +1 -1
  81. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -1
  82. package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -1
  83. package/dist/schema/state/sqlite/query-builder/api.d.ts +29 -12
  84. package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
  85. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -1
  86. package/dist/schema/state/sqlite/query-builder/astToSql.js +71 -1
  87. package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -1
  88. package/dist/schema/state/sqlite/query-builder/impl.test.js +109 -1
  89. package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -1
  90. package/dist/schema/state/sqlite/table-def.d.ts.map +1 -1
  91. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
  92. package/dist/sync/ClientSessionSyncProcessor.js +6 -2
  93. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
  94. package/dist/version.d.ts +7 -1
  95. package/dist/version.d.ts.map +1 -1
  96. package/dist/version.js +8 -1
  97. package/dist/version.js.map +1 -1
  98. package/package.json +4 -4
  99. package/src/ClientSessionLeaderThreadProxy.ts +10 -0
  100. package/src/adapter-types.ts +30 -0
  101. package/src/devtools/devtools-messages-client-session.ts +12 -0
  102. package/src/devtools/devtools-messages-common.ts +7 -3
  103. package/src/devtools/devtools-messages-leader.ts +13 -0
  104. package/src/leader-thread/LeaderSyncProcessor.ts +116 -42
  105. package/src/leader-thread/eventlog.ts +80 -4
  106. package/src/leader-thread/leader-worker-devtools.ts +52 -6
  107. package/src/leader-thread/make-leader-thread-layer.ts +8 -0
  108. package/src/leader-thread/materialize-event.ts +4 -0
  109. package/src/leader-thread/mod.ts +1 -0
  110. package/src/leader-thread/stream-events.ts +201 -0
  111. package/src/leader-thread/types.ts +49 -1
  112. package/src/otel.ts +10 -0
  113. package/src/schema/EventDef/define.ts +16 -0
  114. package/src/schema/EventDef/deprecated.test.ts +128 -0
  115. package/src/schema/EventDef/deprecated.ts +175 -0
  116. package/src/schema/EventDef/event-def.ts +5 -0
  117. package/src/schema/EventDef/mod.ts +1 -0
  118. package/src/schema/state/sqlite/client-document-def.test.ts +140 -2
  119. package/src/schema/state/sqlite/client-document-def.ts +25 -26
  120. package/src/schema/state/sqlite/column-def.test.ts +2 -3
  121. package/src/schema/state/sqlite/db-schema/dsl/mod.ts +10 -16
  122. package/src/schema/state/sqlite/query-builder/api.ts +31 -4
  123. package/src/schema/state/sqlite/query-builder/astToSql.ts +81 -1
  124. package/src/schema/state/sqlite/query-builder/impl.test.ts +141 -1
  125. package/src/schema/state/sqlite/table-def.ts +9 -8
  126. package/src/sync/ClientSessionSyncProcessor.ts +26 -13
  127. package/src/version.ts +9 -1
@@ -381,14 +381,15 @@ export declare namespace SchemaToColumns {
381
381
  export type ColumnDefForType<TEncoded, TType> = SqliteDsl.ColumnDefinition<TEncoded, TType>
382
382
 
383
383
  // Create columns type from schema Type and Encoded
384
- export type FromTypes<TType, TEncoded> = TEncoded extends Record<string, any>
385
- ? {
386
- [K in keyof TEncoded]-?: ColumnDefForType<
387
- TEncoded[K],
388
- TType extends Record<string, any> ? (K extends keyof TType ? TType[K] : TEncoded[K]) : TEncoded[K]
389
- >
390
- }
391
- : SqliteDsl.Columns
384
+ export type FromTypes<TType, TEncoded> =
385
+ TEncoded extends Record<string, any>
386
+ ? {
387
+ [K in keyof TEncoded]-?: ColumnDefForType<
388
+ TEncoded[K],
389
+ TType extends Record<string, any> ? (K extends keyof TType ? TType[K] : TEncoded[K]) : TEncoded[K]
390
+ >
391
+ }
392
+ : SqliteDsl.Columns
392
393
  }
393
394
 
394
395
  export declare namespace TableDefInput {
@@ -22,6 +22,11 @@ import * as LiveStoreEvent from '../schema/LiveStoreEvent/mod.ts'
22
22
  import type { LiveStoreSchema } from '../schema/mod.ts'
23
23
  import * as SyncState from './syncstate.ts'
24
24
 
25
+ // WORKAROUND: @effect/opentelemetry mis-parses `Span.addEvent(name, attributes)` and treats the attributes object as a
26
+ // time input, causing `TypeError: {} is not iterable` at runtime.
27
+ // Upstream: https://github.com/Effect-TS/effect/pull/5929
28
+ // TODO: simplify back to the 2-arg overload once the upstream fix is released and adopted.
29
+
25
30
  /**
26
31
  * Rebase behaviour:
27
32
  * - We continously pull events from the leader and apply them to the local store.
@@ -245,13 +250,17 @@ export const makeClientSessionSyncProcessor = ({
245
250
  syncStateRef.current = mergeResult.newSyncState
246
251
 
247
252
  if (mergeResult._tag === 'rebase') {
248
- span.addEvent('merge:pull:rebase', {
249
- payloadTag: payload._tag,
250
- payload: TRACE_VERBOSE ? JSON.stringify(payload) : undefined,
251
- newEventsCount: mergeResult.newEvents.length,
252
- rollbackCount: mergeResult.rollbackEvents.length,
253
- res: TRACE_VERBOSE ? JSON.stringify(mergeResult) : undefined,
254
- })
253
+ span.addEvent(
254
+ 'merge:pull:rebase',
255
+ {
256
+ payloadTag: payload._tag,
257
+ payload: TRACE_VERBOSE ? JSON.stringify(payload) : undefined,
258
+ newEventsCount: mergeResult.newEvents.length,
259
+ rollbackCount: mergeResult.rollbackEvents.length,
260
+ res: TRACE_VERBOSE ? JSON.stringify(mergeResult) : undefined,
261
+ },
262
+ undefined,
263
+ )
255
264
 
256
265
  debugInfo.rebaseCount++
257
266
 
@@ -290,12 +299,16 @@ export const makeClientSessionSyncProcessor = ({
290
299
 
291
300
  yield* FiberHandle.run(leaderPushingFiberHandle, backgroundLeaderPushing)
292
301
  } else {
293
- span.addEvent('merge:pull:advance', {
294
- payloadTag: payload._tag,
295
- payload: TRACE_VERBOSE ? JSON.stringify(payload) : undefined,
296
- newEventsCount: mergeResult.newEvents.length,
297
- res: TRACE_VERBOSE ? JSON.stringify(mergeResult) : undefined,
298
- })
302
+ span.addEvent(
303
+ 'merge:pull:advance',
304
+ {
305
+ payloadTag: payload._tag,
306
+ payload: TRACE_VERBOSE ? JSON.stringify(payload) : undefined,
307
+ newEventsCount: mergeResult.newEvents.length,
308
+ res: TRACE_VERBOSE ? JSON.stringify(mergeResult) : undefined,
309
+ },
310
+ undefined,
311
+ )
299
312
 
300
313
  debugInfo.advanceCount++
301
314
  }
package/src/version.ts CHANGED
@@ -2,7 +2,15 @@
2
2
  // import packageJson from '../package.json' with { type: 'json' }
3
3
  // export const liveStoreVersion = packageJson.version
4
4
 
5
- export const liveStoreVersion = '0.4.0-dev.20' as const
5
+ const _liveStoreVersion = '0.4.0-dev.22' as const
6
+
7
+ /**
8
+ * Current LiveStore version used for DevTools version compatibility checks.
9
+ *
10
+ * Can be overridden at runtime via `globalThis.__LIVESTORE_VERSION_OVERRIDE__` for testing purposes.
11
+ * This allows Playwright tests to simulate version mismatch scenarios without rebuilding.
12
+ */
13
+ export const liveStoreVersion: string = (globalThis as any).__LIVESTORE_VERSION_OVERRIDE__ ?? _liveStoreVersion
6
14
 
7
15
  /**
8
16
  * CRITICAL: Increment this version whenever you modify client-side EVENTLOG table schemas.