@livestore/livestore 0.3.0-dev.5 → 0.3.0-dev.50

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 (170) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/QueryCache.d.ts.map +1 -1
  3. package/dist/SqliteDbWrapper.d.ts +60 -0
  4. package/dist/SqliteDbWrapper.d.ts.map +1 -0
  5. package/dist/{SynchronousDatabaseWrapper.js → SqliteDbWrapper.js} +69 -34
  6. package/dist/SqliteDbWrapper.js.map +1 -0
  7. package/dist/effect/LiveStore.d.ts +6 -34
  8. package/dist/effect/LiveStore.d.ts.map +1 -1
  9. package/dist/effect/LiveStore.js +10 -12
  10. package/dist/effect/LiveStore.js.map +1 -1
  11. package/dist/effect/mod.d.ts +3 -0
  12. package/dist/effect/mod.d.ts.map +1 -0
  13. package/dist/effect/mod.js +3 -0
  14. package/dist/effect/mod.js.map +1 -0
  15. package/dist/internal/mod.d.ts +3 -0
  16. package/dist/internal/mod.d.ts.map +1 -0
  17. package/dist/internal/mod.js +3 -0
  18. package/dist/internal/mod.js.map +1 -0
  19. package/dist/live-queries/base-class.d.ts +65 -27
  20. package/dist/live-queries/base-class.d.ts.map +1 -1
  21. package/dist/live-queries/base-class.js +54 -13
  22. package/dist/live-queries/base-class.js.map +1 -1
  23. package/dist/live-queries/client-document-get-query.d.ts +12 -0
  24. package/dist/live-queries/client-document-get-query.d.ts.map +1 -0
  25. package/dist/live-queries/client-document-get-query.js +18 -0
  26. package/dist/live-queries/client-document-get-query.js.map +1 -0
  27. package/dist/live-queries/computed.d.ts +12 -14
  28. package/dist/live-queries/computed.d.ts.map +1 -1
  29. package/dist/live-queries/computed.js +37 -15
  30. package/dist/live-queries/computed.js.map +1 -1
  31. package/dist/live-queries/db-query.d.ts +93 -0
  32. package/dist/live-queries/db-query.d.ts.map +1 -0
  33. package/dist/live-queries/{db.js → db-query.js} +111 -40
  34. package/dist/live-queries/db-query.js.map +1 -0
  35. package/dist/live-queries/db-query.test.d.ts +2 -0
  36. package/dist/live-queries/db-query.test.d.ts.map +1 -0
  37. package/dist/live-queries/db-query.test.js +133 -0
  38. package/dist/live-queries/db-query.test.js.map +1 -0
  39. package/dist/live-queries/mod.d.ts +5 -0
  40. package/dist/live-queries/mod.d.ts.map +1 -0
  41. package/dist/live-queries/mod.js +5 -0
  42. package/dist/live-queries/mod.js.map +1 -0
  43. package/dist/live-queries/signal.d.ts +20 -0
  44. package/dist/live-queries/signal.d.ts.map +1 -0
  45. package/dist/live-queries/signal.js +33 -0
  46. package/dist/live-queries/signal.js.map +1 -0
  47. package/dist/live-queries/signal.test.d.ts +2 -0
  48. package/dist/live-queries/signal.test.d.ts.map +1 -0
  49. package/dist/live-queries/signal.test.js +25 -0
  50. package/dist/live-queries/signal.test.js.map +1 -0
  51. package/dist/mod.d.ts +14 -0
  52. package/dist/mod.d.ts.map +1 -0
  53. package/dist/mod.js +13 -0
  54. package/dist/mod.js.map +1 -0
  55. package/dist/reactive.d.ts +23 -17
  56. package/dist/reactive.d.ts.map +1 -1
  57. package/dist/reactive.js +23 -19
  58. package/dist/reactive.js.map +1 -1
  59. package/dist/reactive.test.js +1 -1
  60. package/dist/reactive.test.js.map +1 -1
  61. package/dist/store/create-store.d.ts +70 -12
  62. package/dist/store/create-store.d.ts.map +1 -1
  63. package/dist/store/create-store.js +68 -19
  64. package/dist/store/create-store.js.map +1 -1
  65. package/dist/store/devtools.d.ts +5 -4
  66. package/dist/store/devtools.d.ts.map +1 -1
  67. package/dist/store/devtools.js +92 -40
  68. package/dist/store/devtools.js.map +1 -1
  69. package/dist/store/store-types.d.ts +54 -42
  70. package/dist/store/store-types.d.ts.map +1 -1
  71. package/dist/store/store-types.js +2 -5
  72. package/dist/store/store-types.js.map +1 -1
  73. package/dist/store/store.d.ts +141 -35
  74. package/dist/store/store.d.ts.map +1 -1
  75. package/dist/store/store.js +319 -153
  76. package/dist/store/store.js.map +1 -1
  77. package/dist/utils/data-structures.d.ts.map +1 -1
  78. package/dist/utils/dev.d.ts.map +1 -1
  79. package/dist/utils/dev.js +6 -1
  80. package/dist/utils/dev.js.map +1 -1
  81. package/dist/utils/function-string.d.ts +7 -0
  82. package/dist/utils/function-string.d.ts.map +1 -0
  83. package/dist/utils/function-string.js +9 -0
  84. package/dist/utils/function-string.js.map +1 -0
  85. package/dist/utils/stack-info.d.ts.map +1 -1
  86. package/dist/utils/stack-info.js +6 -1
  87. package/dist/utils/stack-info.js.map +1 -1
  88. package/dist/utils/stack-info.test.js +54 -1
  89. package/dist/utils/stack-info.test.js.map +1 -1
  90. package/dist/utils/tests/fixture.d.ts +59 -216
  91. package/dist/utils/tests/fixture.d.ts.map +1 -1
  92. package/dist/utils/tests/fixture.js +23 -18
  93. package/dist/utils/tests/fixture.js.map +1 -1
  94. package/dist/utils/tests/mod.d.ts +1 -0
  95. package/dist/utils/tests/mod.d.ts.map +1 -1
  96. package/dist/utils/tests/mod.js +1 -0
  97. package/dist/utils/tests/mod.js.map +1 -1
  98. package/dist/utils/tests/otel.d.ts.map +1 -1
  99. package/dist/utils/tests/otel.js +8 -3
  100. package/dist/utils/tests/otel.js.map +1 -1
  101. package/package.json +29 -26
  102. package/src/{SynchronousDatabaseWrapper.ts → SqliteDbWrapper.ts} +92 -42
  103. package/src/effect/LiveStore.ts +27 -64
  104. package/src/effect/{index.ts → mod.ts} +2 -3
  105. package/src/internal/mod.ts +2 -0
  106. package/src/live-queries/__snapshots__/{db.test.ts.snap → db-query.test.ts.snap} +241 -45
  107. package/src/live-queries/base-class.ts +152 -50
  108. package/src/live-queries/client-document-get-query.ts +52 -0
  109. package/src/live-queries/computed.ts +51 -33
  110. package/src/live-queries/db-query.test.ts +192 -0
  111. package/src/live-queries/{db.ts → db-query.ts} +168 -81
  112. package/src/live-queries/mod.ts +4 -0
  113. package/src/live-queries/signal.test.ts +40 -0
  114. package/src/live-queries/signal.ts +47 -0
  115. package/src/mod.ts +42 -0
  116. package/src/reactive.test.ts +1 -1
  117. package/src/reactive.ts +66 -43
  118. package/src/store/create-store.ts +188 -62
  119. package/src/store/devtools.ts +124 -46
  120. package/src/store/store-types.ts +54 -43
  121. package/src/store/store.ts +454 -236
  122. package/src/utils/dev.ts +6 -1
  123. package/src/utils/function-string.ts +12 -0
  124. package/src/utils/stack-info.test.ts +58 -1
  125. package/src/utils/stack-info.ts +6 -1
  126. package/src/utils/tests/fixture.ts +22 -31
  127. package/src/utils/tests/mod.ts +1 -0
  128. package/src/utils/tests/otel.ts +10 -3
  129. package/dist/SynchronousDatabaseWrapper.d.ts +0 -41
  130. package/dist/SynchronousDatabaseWrapper.d.ts.map +0 -1
  131. package/dist/SynchronousDatabaseWrapper.js.map +0 -1
  132. package/dist/effect/index.d.ts +0 -2
  133. package/dist/effect/index.d.ts.map +0 -1
  134. package/dist/effect/index.js +0 -2
  135. package/dist/effect/index.js.map +0 -1
  136. package/dist/global-state.d.ts +0 -14
  137. package/dist/global-state.d.ts.map +0 -1
  138. package/dist/global-state.js +0 -16
  139. package/dist/global-state.js.map +0 -1
  140. package/dist/index.d.ts +0 -20
  141. package/dist/index.d.ts.map +0 -1
  142. package/dist/index.js +0 -16
  143. package/dist/index.js.map +0 -1
  144. package/dist/live-queries/db.d.ts +0 -66
  145. package/dist/live-queries/db.d.ts.map +0 -1
  146. package/dist/live-queries/db.js.map +0 -1
  147. package/dist/live-queries/db.test.d.ts +0 -2
  148. package/dist/live-queries/db.test.d.ts.map +0 -1
  149. package/dist/live-queries/db.test.js +0 -118
  150. package/dist/live-queries/db.test.js.map +0 -1
  151. package/dist/live-queries/graphql.d.ts +0 -49
  152. package/dist/live-queries/graphql.d.ts.map +0 -1
  153. package/dist/live-queries/graphql.js +0 -122
  154. package/dist/live-queries/graphql.js.map +0 -1
  155. package/dist/row-query-utils.d.ts +0 -17
  156. package/dist/row-query-utils.d.ts.map +0 -1
  157. package/dist/row-query-utils.js +0 -30
  158. package/dist/row-query-utils.js.map +0 -1
  159. package/dist/utils/otel.d.ts +0 -4
  160. package/dist/utils/otel.d.ts.map +0 -1
  161. package/dist/utils/otel.js +0 -6
  162. package/dist/utils/otel.js.map +0 -1
  163. package/src/global-state.ts +0 -20
  164. package/src/index.ts +0 -66
  165. package/src/live-queries/db.test.ts +0 -154
  166. package/src/live-queries/graphql.ts +0 -219
  167. package/src/row-query-utils.ts +0 -65
  168. package/src/utils/otel.ts +0 -9
  169. package/tsconfig.json +0 -18
  170. package/vitest.config.js +0 -9
@@ -1,11 +1,22 @@
1
1
  import { provideOtel, UnexpectedError } from '@livestore/common';
2
- import { LS_DEV } from '@livestore/utils';
3
- import { Deferred, Effect, Exit, identity, Logger, LogLevel, MutableHashMap, OtelTracer, Queue, Runtime, Scope, TaskTracing, } from '@livestore/utils/effect';
2
+ import { isDevEnv, LS_DEV } from '@livestore/utils';
3
+ import { Context, Deferred, Effect, Exit, Fiber, identity, Layer, Logger, LogLevel, OtelTracer, Queue, Runtime, Scope, TaskTracing, } from '@livestore/utils/effect';
4
4
  import { nanoid } from '@livestore/utils/nanoid';
5
5
  import * as otel from '@opentelemetry/api';
6
- import { globalReactivityGraph } from '../global-state.js';
7
6
  import { connectDevtoolsToStore } from './devtools.js';
8
7
  import { Store } from './store.js';
8
+ export const DEFAULT_PARAMS = {
9
+ leaderPushBatchSize: 1,
10
+ };
11
+ export class LiveStoreContextRunning extends Context.Tag('@livestore/livestore/effect/LiveStoreContextRunning')() {
12
+ static fromDeferred = Effect.gen(function* () {
13
+ const deferred = yield* DeferredStoreContext;
14
+ const ctx = yield* deferred;
15
+ return Layer.succeed(LiveStoreContextRunning, ctx);
16
+ }).pipe(Layer.unwrapScoped);
17
+ }
18
+ export class DeferredStoreContext extends Context.Tag('@livestore/livestore/effect/DeferredStoreContext')() {
19
+ }
9
20
  /** Create a new LiveStore Store */
10
21
  export const createStorePromise = async ({ signal, otelOptions, ...options }) => Effect.gen(function* () {
11
22
  const scope = yield* Scope.make();
@@ -18,9 +29,10 @@ export const createStorePromise = async ({ signal, otelOptions, ...options }) =>
18
29
  return yield* createStore({ ...options }).pipe(Scope.extend(scope));
19
30
  }).pipe(Effect.withSpan('createStore', {
20
31
  attributes: { storeId: options.storeId, disableDevtools: options.disableDevtools },
21
- }), provideOtel({ parentSpanContext: otelOptions?.rootSpanContext, otelTracer: otelOptions?.tracer }), Effect.tapCauseLogPretty, Effect.annotateLogs({ thread: 'window' }), Effect.provide(Logger.pretty), Logger.withMinimumLogLevel(LogLevel.Debug), Effect.runPromise);
22
- export const createStore = ({ schema, adapter, storeId, graphQLOptions, boot, reactivityGraph = globalReactivityGraph, batchUpdates, disableDevtools, onBootStatus, shutdownDeferred, debug, }) => Effect.gen(function* () {
32
+ }), provideOtel({ parentSpanContext: otelOptions?.rootSpanContext, otelTracer: otelOptions?.tracer }), Effect.tapCauseLogPretty, Effect.annotateLogs({ thread: 'window' }), Effect.provide(Logger.prettyWithThread('window')), Logger.withMinimumLogLevel(LogLevel.Debug), Effect.runPromise);
33
+ export const createStore = ({ schema, adapter, storeId, context = {}, boot, batchUpdates, disableDevtools, onBootStatus, shutdownDeferred, params, debug, confirmUnsavedChanges = true, syncPayload, }) => Effect.gen(function* () {
23
34
  const lifetimeScope = yield* Scope.make();
35
+ yield* validateStoreId(storeId);
24
36
  yield* Effect.addFinalizer((_) => Scope.close(lifetimeScope, _));
25
37
  const debugInstanceId = debug?.instanceId ?? nanoid(10);
26
38
  return yield* Effect.gen(function* () {
@@ -35,36 +47,54 @@ export const createStore = ({ schema, adapter, storeId, graphQLOptions, boot, re
35
47
  yield* connectDevtoolsToStore({ storeDevtoolsChannel, store });
36
48
  });
37
49
  const runtime = yield* Effect.runtime();
38
- const shutdown = (cause) => Scope.close(lifetimeScope, Exit.failCause(cause)).pipe(Effect.logWarnIfTakesLongerThan({ label: '@livestore/livestore:shutdown', duration: 500 }), Effect.timeout(1000), Effect.catchTag('TimeoutException', () => Effect.logError('@livestore/livestore:shutdown: Timed out after 1 second')), Effect.tap(() => (shutdownDeferred ? Deferred.failCause(shutdownDeferred, cause) : Effect.void)), Effect.tap(() => Effect.logDebug('LiveStore shutdown complete')), Effect.withSpan('livestore:shutdown'));
50
+ const shutdown = (cause) => Effect.gen(function* () {
51
+ yield* Scope.close(lifetimeScope, Exit.failCause(cause)).pipe(Effect.logWarnIfTakesLongerThan({ label: '@livestore/livestore:shutdown', duration: 500 }), Effect.timeout(1000), Effect.catchTag('TimeoutException', () => Effect.logError('@livestore/livestore:shutdown: Timed out after 1 second')));
52
+ if (shutdownDeferred) {
53
+ yield* Deferred.failCause(shutdownDeferred, cause);
54
+ }
55
+ yield* Effect.logDebug('LiveStore shutdown complete');
56
+ }).pipe(Effect.withSpan('@livestore/livestore:shutdown'), Effect.provide(runtime), Effect.tapCauseLogPretty,
57
+ // Given that the shutdown flow might also interrupt the effect that is calling the shutdown,
58
+ // we want to detach the shutdown effect so it's not interrupted by itself
59
+ Effect.runFork, Fiber.join);
39
60
  const clientSession = yield* adapter({
40
61
  schema,
41
62
  storeId,
42
- devtoolsEnabled: disableDevtools !== true,
63
+ devtoolsEnabled: getDevtoolsEnabled(disableDevtools),
43
64
  bootStatusQueue,
44
65
  shutdown,
45
66
  connectDevtoolsToStore: connectDevtoolsToStore_,
46
67
  debugInstanceId,
68
+ syncPayload,
47
69
  }).pipe(Effect.withPerformanceMeasure('livestore:makeAdapter'), Effect.withSpan('createStore:makeAdapter'));
48
- // TODO fill up with unsynced mutation events from the client session
49
- const unsyncedMutationEvents = MutableHashMap.empty();
50
- const store = Store.createStore({
70
+ if (LS_DEV && clientSession.leaderThread.initialState.migrationsReport.migrations.length > 0) {
71
+ yield* Effect.logDebug('[@livestore/livestore:createStore] migrationsReport', ...clientSession.leaderThread.initialState.migrationsReport.migrations.map((m) => m.hashes.actual === undefined
72
+ ? `Table '${m.tableName}' doesn't exist yet. Creating table...`
73
+ : `Schema hash mismatch for table '${m.tableName}' (DB: ${m.hashes.actual}, expected: ${m.hashes.expected}), migrating table...`));
74
+ }
75
+ const store = new Store({
51
76
  clientSession,
52
77
  schema,
53
- graphQLOptions,
78
+ context,
54
79
  otelOptions: { tracer: otelTracer, rootSpanContext: otelRootSpanContext },
55
- reactivityGraph,
56
- disableDevtools,
57
- unsyncedMutationEvents,
58
- lifetimeScope,
59
- runtime,
60
- // NOTE during boot we're not yet executing mutations in a batched context
80
+ effectContext: { lifetimeScope, runtime },
81
+ // TODO find a better way to detect if we're running LiveStore in the LiveStore devtools
82
+ // But for now this is a good enough approximation with little downsides
83
+ __runningInDevtools: getDevtoolsEnabled(disableDevtools) === false,
84
+ confirmUnsavedChanges,
85
+ // NOTE during boot we're not yet executing events in a batched context
61
86
  // but only set the provided `batchUpdates` function after boot
62
87
  batchUpdates: (run) => run(),
63
88
  storeId,
64
- }, span);
89
+ params: {
90
+ leaderPushBatchSize: params?.leaderPushBatchSize ?? DEFAULT_PARAMS.leaderPushBatchSize,
91
+ },
92
+ });
93
+ // Starts background fibers (syncing, event processing, etc) for store
94
+ yield* store.boot;
65
95
  if (boot !== undefined) {
66
96
  // TODO also incorporate `boot` function progress into `bootStatusQueue`
67
- yield* Effect.tryAll(() => boot(store, span)).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('createStore:boot'));
97
+ yield* Effect.tryAll(() => boot(store, { migrationsReport: clientSession.leaderThread.initialState.migrationsReport, parentSpan: span })).pipe(UnexpectedError.mapToUnexpectedError, Effect.provide(Layer.succeed(LiveStoreContextRunning, { stage: 'running', store: store })), Effect.withSpan('createStore:boot'));
68
98
  }
69
99
  // NOTE it's important to yield here to allow the forked Effect in the store constructor to run
70
100
  yield* Effect.yieldNow();
@@ -76,4 +106,23 @@ export const createStore = ({ schema, adapter, storeId, graphQLOptions, boot, re
76
106
  return store;
77
107
  }).pipe(Effect.withSpan('createStore', { attributes: { debugInstanceId, storeId } }), Effect.annotateLogs({ debugInstanceId, storeId }), LS_DEV ? TaskTracing.withAsyncTaggingTracing((name) => console.createTask(name)) : identity, Scope.extend(lifetimeScope));
78
108
  });
109
+ const validateStoreId = (storeId) => Effect.gen(function* () {
110
+ const validChars = /^[a-zA-Z0-9_-]+$/;
111
+ if (!validChars.test(storeId)) {
112
+ return yield* UnexpectedError.make({
113
+ cause: `Invalid storeId: ${storeId}. Only alphanumeric characters, underscores, and hyphens are allowed.`,
114
+ payload: { storeId },
115
+ });
116
+ }
117
+ });
118
+ const getDevtoolsEnabled = (disableDevtools) => {
119
+ // If an explicit value is provided, use that
120
+ if (disableDevtools === true || disableDevtools === false) {
121
+ return !disableDevtools;
122
+ }
123
+ if (isDevEnv() === true) {
124
+ return true;
125
+ }
126
+ return false;
127
+ };
79
128
  //# sourceMappingURL=create-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-store.js","sourceRoot":"","sources":["../../src/store/create-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-store.js","sourceRoot":"","sources":["../../src/store/create-store.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,19 @@
1
- import type { ClientSession } from '@livestore/common';
1
+ import type { ClientSession, ClientSessionSyncProcessor } from '@livestore/common';
2
2
  import { Devtools, UnexpectedError } from '@livestore/common';
3
3
  import type { WebChannel } from '@livestore/utils/effect';
4
4
  import { Effect } from '@livestore/utils/effect';
5
5
  import type { LiveQuery, ReactivityGraph } from '../live-queries/base-class.js';
6
- import type { SynchronousDatabaseWrapper } from '../SynchronousDatabaseWrapper.js';
6
+ import type { SqliteDbWrapper } from '../SqliteDbWrapper.js';
7
7
  import type { ReferenceCountedSet } from '../utils/data-structures.js';
8
8
  type IStore = {
9
9
  clientSession: ClientSession;
10
10
  reactivityGraph: ReactivityGraph;
11
- syncDbWrapper: SynchronousDatabaseWrapper;
11
+ sqliteDbWrapper: SqliteDbWrapper;
12
12
  activeQueries: ReferenceCountedSet<LiveQuery<any>>;
13
+ syncProcessor: ClientSessionSyncProcessor;
13
14
  };
14
15
  export declare const connectDevtoolsToStore: ({ storeDevtoolsChannel, store, }: {
15
- storeDevtoolsChannel: WebChannel.WebChannel<Devtools.MessageToAppClientSession, Devtools.MessageFromAppClientSession>;
16
+ storeDevtoolsChannel: WebChannel.WebChannel<Devtools.ClientSession.MessageToApp, Devtools.ClientSession.MessageFromApp>;
16
17
  store: IStore;
17
18
  }) => Effect.Effect<void, UnexpectedError, import("effect/Scope").Scope>;
18
19
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../src/store/devtools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAoB,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,MAAM,EAAU,MAAM,yBAAyB,CAAA;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAA;AAElF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEtE,KAAK,MAAM,GAAG;IACZ,aAAa,EAAE,aAAa,CAAA;IAC5B,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,0BAA0B,CAAA;IACzC,aAAa,EAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;CACnD,CAAA;AAeD,eAAO,MAAM,sBAAsB,qCAGhC;IACD,oBAAoB,EAAE,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,yBAAyB,EAAE,QAAQ,CAAC,2BAA2B,CAAC,CAAA;IACrH,KAAK,EAAE,MAAM,CAAA;CACd,uEA4MsG,CAAA"}
1
+ {"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../src/store/devtools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,0BAA0B,EAAwB,MAAM,mBAAmB,CAAA;AACxG,OAAO,EAAE,QAAQ,EAAoB,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,MAAM,EAAU,MAAM,yBAAyB,CAAA;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEtE,KAAK,MAAM,GAAG;IACZ,aAAa,EAAE,aAAa,CAAA;IAC5B,eAAe,EAAE,eAAe,CAAA;IAChC,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IAClD,aAAa,EAAE,0BAA0B,CAAA;CAC1C,CAAA;AAeD,eAAO,MAAM,sBAAsB,GAAI,kCAGpC;IACD,oBAAoB,EAAE,UAAU,CAAC,UAAU,CACzC,QAAQ,CAAC,aAAa,CAAC,YAAY,EACnC,QAAQ,CAAC,aAAa,CAAC,cAAc,CACtC,CAAA;IACD,KAAK,EAAE,MAAM,CAAA;CACd,uEAqRsG,CAAA"}
@@ -1,8 +1,9 @@
1
1
  import { Devtools, liveStoreVersion, UnexpectedError } from '@livestore/common';
2
2
  import { throttle } from '@livestore/utils';
3
3
  import { Effect, Stream } from '@livestore/utils/effect';
4
+ import { nanoid } from '@livestore/utils/nanoid';
4
5
  import { NOT_REFRESHED_YET } from '../reactive.js';
5
- import { emptyDebugInfo as makeEmptyDebugInfo } from '../SynchronousDatabaseWrapper.js';
6
+ import { emptyDebugInfo as makeEmptyDebugInfo } from '../SqliteDbWrapper.js';
6
7
  // When running this code in Node.js, we need to use `setTimeout` instead of `requestAnimationFrame`
7
8
  const requestNextTick = globalThis.requestAnimationFrame === undefined
8
9
  ? (cb) => setTimeout(cb, 1000)
@@ -12,12 +13,15 @@ export const connectDevtoolsToStore = ({ storeDevtoolsChannel, store, }) => Effe
12
13
  const reactivityGraphSubcriptions = new Map();
13
14
  const liveQueriesSubscriptions = new Map();
14
15
  const debugInfoHistorySubscriptions = new Map();
16
+ const syncHeadClientSessionSubscriptions = new Map();
15
17
  const { clientId, sessionId } = store.clientSession;
16
18
  yield* Effect.addFinalizer(() => Effect.sync(() => {
17
19
  reactivityGraphSubcriptions.forEach((unsub) => unsub());
18
20
  liveQueriesSubscriptions.forEach((unsub) => unsub());
19
21
  debugInfoHistorySubscriptions.forEach((unsub) => unsub());
22
+ syncHeadClientSessionSubscriptions.forEach((unsub) => unsub());
20
23
  }));
24
+ const handledRequestIds = new Set();
21
25
  const sendToDevtools = (message) => storeDevtoolsChannel.send(message).pipe(Effect.tapCauseLogPretty, Effect.runFork);
22
26
  const onMessage = (decodedMessage) => {
23
27
  // console.debug('@livestore/livestore:store:devtools:onMessage', decodedMessage)
@@ -25,36 +29,46 @@ export const connectDevtoolsToStore = ({ storeDevtoolsChannel, store, }) => Effe
25
29
  // console.log(`Unknown message`, event)
26
30
  return;
27
31
  }
28
- if (decodedMessage._tag === 'LSD.Disconnect') {
32
+ if (decodedMessage._tag === 'LSD.ClientSession.Disconnect') {
29
33
  // console.error('TODO handle disconnect properly in store')
30
34
  return;
31
35
  }
32
36
  const requestId = decodedMessage.requestId;
37
+ // TODO we should try to move the duplicate message handling on the webmesh layer
38
+ // So far I could only observe this problem with webmesh proxy channels (e.g. for Expo)
39
+ // Proof: https://share.cleanshot.com/V9G87B0B
40
+ // Also see `leader-worker-devtools.ts` for same problem
41
+ if (handledRequestIds.has(requestId)) {
42
+ return;
43
+ }
44
+ handledRequestIds.add(requestId);
33
45
  const requestIdleCallback = globalThis.requestIdleCallback ?? ((cb) => cb());
34
46
  switch (decodedMessage._tag) {
35
- case 'LSD.ReactivityGraphSubscribe': {
47
+ case 'LSD.ClientSession.ReactivityGraphSubscribe': {
36
48
  const includeResults = decodedMessage.includeResults;
49
+ const { subscriptionId } = decodedMessage;
37
50
  const send = () =>
38
51
  // In order to not add more work to the current tick, we use requestIdleCallback
39
52
  // to send the reactivity graph updates to the devtools
40
- requestIdleCallback(() => sendToDevtools(Devtools.ReactivityGraphRes.make({
53
+ requestIdleCallback(() => sendToDevtools(Devtools.ClientSession.ReactivityGraphRes.make({
41
54
  reactivityGraph: store.reactivityGraph.getSnapshot({ includeResults }),
42
- requestId,
55
+ requestId: nanoid(10),
43
56
  clientId,
44
57
  sessionId,
45
58
  liveStoreVersion,
59
+ subscriptionId,
46
60
  })), { timeout: 500 });
47
61
  send();
48
62
  // In some cases, there can be A LOT of reactivity graph updates in a short period of time
49
63
  // so we throttle the updates to avoid sending too much data
50
64
  // This might need to be tweaked further and possibly be exposed to the user in some way.
51
65
  const throttledSend = throttle(send, 20);
52
- reactivityGraphSubcriptions.set(requestId, store.reactivityGraph.subscribeToRefresh(throttledSend));
66
+ reactivityGraphSubcriptions.set(subscriptionId, store.reactivityGraph.subscribeToRefresh(throttledSend));
53
67
  break;
54
68
  }
55
- case 'LSD.DebugInfoReq': {
56
- sendToDevtools(Devtools.DebugInfoRes.make({
57
- debugInfo: store.syncDbWrapper.debugInfo,
69
+ case 'LSD.ClientSession.DebugInfoReq': {
70
+ sendToDevtools(Devtools.ClientSession.DebugInfoRes.make({
71
+ debugInfo: store.sqliteDbWrapper.debugInfo,
58
72
  requestId,
59
73
  clientId,
60
74
  sessionId,
@@ -62,24 +76,26 @@ export const connectDevtoolsToStore = ({ storeDevtoolsChannel, store, }) => Effe
62
76
  }));
63
77
  break;
64
78
  }
65
- case 'LSD.DebugInfoHistorySubscribe': {
79
+ case 'LSD.ClientSession.DebugInfoHistorySubscribe': {
80
+ const { subscriptionId } = decodedMessage;
66
81
  const buffer = [];
67
82
  let hasStopped = false;
68
83
  let tickHandle;
69
84
  const tick = () => {
70
- buffer.push(store.syncDbWrapper.debugInfo);
85
+ buffer.push(store.sqliteDbWrapper.debugInfo);
71
86
  // NOTE this resets the debug info, so all other "readers" e.g. in other `requestAnimationFrame` loops,
72
87
  // will get the empty debug info
73
88
  // TODO We need to come up with a more graceful way to do store. Probably via a single global
74
89
  // `requestAnimationFrame` loop that is passed in somehow.
75
- store.syncDbWrapper.debugInfo = makeEmptyDebugInfo();
90
+ store.sqliteDbWrapper.debugInfo = makeEmptyDebugInfo();
76
91
  if (buffer.length > 10) {
77
- sendToDevtools(Devtools.DebugInfoHistoryRes.make({
92
+ sendToDevtools(Devtools.ClientSession.DebugInfoHistoryRes.make({
78
93
  debugInfoHistory: buffer,
79
- requestId,
94
+ requestId: nanoid(10),
80
95
  clientId,
81
96
  sessionId,
82
97
  liveStoreVersion,
98
+ subscriptionId,
83
99
  }));
84
100
  buffer.length = 0;
85
101
  }
@@ -95,39 +111,44 @@ export const connectDevtoolsToStore = ({ storeDevtoolsChannel, store, }) => Effe
95
111
  tickHandle = undefined;
96
112
  }
97
113
  };
98
- debugInfoHistorySubscriptions.set(requestId, unsub);
114
+ debugInfoHistorySubscriptions.set(subscriptionId, unsub);
99
115
  break;
100
116
  }
101
- case 'LSD.DebugInfoHistoryUnsubscribe': {
102
- // NOTE given WebMesh channels have persistent retry behaviour, it can happen that a previous
103
- // WebMesh channel will send a unsubscribe message for an old requestId. Thus the `?.()` handling.
104
- debugInfoHistorySubscriptions.get(requestId)?.();
105
- debugInfoHistorySubscriptions.delete(requestId);
117
+ case 'LSD.ClientSession.DebugInfoHistoryUnsubscribe': {
118
+ const { subscriptionId } = decodedMessage;
119
+ // NOTE given Webmesh channels have persistent retry behaviour, it can happen that a previous
120
+ // Webmesh channel will send a unsubscribe message for an old requestId. Thus the `?.()` handling.
121
+ debugInfoHistorySubscriptions.get(subscriptionId)?.();
122
+ debugInfoHistorySubscriptions.delete(subscriptionId);
106
123
  break;
107
124
  }
108
- case 'LSD.DebugInfoResetReq': {
109
- store.syncDbWrapper.debugInfo.slowQueries.clear();
110
- sendToDevtools(Devtools.DebugInfoResetRes.make({ requestId, clientId, sessionId, liveStoreVersion }));
125
+ case 'LSD.ClientSession.DebugInfoResetReq': {
126
+ store.sqliteDbWrapper.debugInfo.slowQueries.clear();
127
+ sendToDevtools(Devtools.ClientSession.DebugInfoResetRes.make({ requestId, clientId, sessionId, liveStoreVersion }));
111
128
  break;
112
129
  }
113
- case 'LSD.DebugInfoRerunQueryReq': {
130
+ case 'LSD.ClientSession.DebugInfoRerunQueryReq': {
114
131
  const { queryStr, bindValues, queriedTables } = decodedMessage;
115
- store.syncDbWrapper.select(queryStr, { bindValues, queriedTables, skipCache: true });
116
- sendToDevtools(Devtools.DebugInfoRerunQueryRes.make({ requestId, clientId, sessionId, liveStoreVersion }));
132
+ store.sqliteDbWrapper.select(queryStr, bindValues, { queriedTables, skipCache: true });
133
+ sendToDevtools(Devtools.ClientSession.DebugInfoRerunQueryRes.make({ requestId, clientId, sessionId, liveStoreVersion }));
117
134
  break;
118
135
  }
119
- case 'LSD.ReactivityGraphUnsubscribe': {
120
- // NOTE given WebMesh channels have persistent retry behaviour, it can happen that a previous
121
- // WebMesh channel will send a unsubscribe message for an old requestId. Thus the `?.()` handling.
122
- reactivityGraphSubcriptions.get(requestId)?.();
136
+ case 'LSD.ClientSession.ReactivityGraphUnsubscribe': {
137
+ const { subscriptionId } = decodedMessage;
138
+ // NOTE given Webmesh channels have persistent retry behaviour, it can happen that a previous
139
+ // Webmesh channel will send a unsubscribe message for an old requestId. Thus the `?.()` handling.
140
+ reactivityGraphSubcriptions.get(subscriptionId)?.();
141
+ reactivityGraphSubcriptions.delete(subscriptionId);
123
142
  break;
124
143
  }
125
- case 'LSD.LiveQueriesSubscribe': {
126
- const send = () => requestIdleCallback(() => sendToDevtools(Devtools.LiveQueriesRes.make({
144
+ case 'LSD.ClientSession.LiveQueriesSubscribe': {
145
+ const { subscriptionId } = decodedMessage;
146
+ const send = () => requestIdleCallback(() => sendToDevtools(Devtools.ClientSession.LiveQueriesRes.make({
127
147
  liveQueries: [...store.activeQueries].map((q) => ({
128
148
  _tag: q._tag,
129
149
  id: q.id,
130
150
  label: q.label,
151
+ hash: q.def.hash,
131
152
  runs: q.runs,
132
153
  executionTimes: q.executionTimes.map((_) => Number(_.toString().slice(0, 5))),
133
154
  lastestResult: q.results$.previousResult === NOT_REFRESHED_YET
@@ -135,25 +156,56 @@ export const connectDevtoolsToStore = ({ storeDevtoolsChannel, store, }) => Effe
135
156
  : q.results$.previousResult,
136
157
  activeSubscriptions: Array.from(q.activeSubscriptions),
137
158
  })),
138
- requestId,
159
+ requestId: nanoid(10),
139
160
  liveStoreVersion,
140
161
  clientId,
141
162
  sessionId,
163
+ subscriptionId,
142
164
  })), { timeout: 500 });
143
165
  send();
144
166
  // Same as in the reactivity graph subscription case above, we need to throttle the updates
145
167
  const throttledSend = throttle(send, 20);
146
- liveQueriesSubscriptions.set(requestId, store.reactivityGraph.subscribeToRefresh(throttledSend));
168
+ liveQueriesSubscriptions.set(subscriptionId, store.reactivityGraph.subscribeToRefresh(throttledSend));
147
169
  break;
148
170
  }
149
- case 'LSD.LiveQueriesUnsubscribe': {
150
- // NOTE given WebMesh channels have persistent retry behaviour, it can happen that a previous
151
- // WebMesh channel will send a unsubscribe message for an old requestId. Thus the `?.()` handling.
152
- liveQueriesSubscriptions.get(requestId)?.();
153
- liveQueriesSubscriptions.delete(requestId);
171
+ case 'LSD.ClientSession.LiveQueriesUnsubscribe': {
172
+ const { subscriptionId } = decodedMessage;
173
+ // NOTE given Webmesh channels have persistent retry behaviour, it can happen that a previous
174
+ // Webmesh channel will send a unsubscribe message for an old requestId. Thus the `?.()` handling.
175
+ liveQueriesSubscriptions.get(subscriptionId)?.();
176
+ liveQueriesSubscriptions.delete(subscriptionId);
154
177
  break;
155
178
  }
156
- // No default
179
+ case 'LSD.ClientSession.SyncHeadSubscribe': {
180
+ const { subscriptionId } = decodedMessage;
181
+ const send = (syncState) => sendToDevtools(Devtools.ClientSession.SyncHeadRes.make({
182
+ local: syncState.localHead,
183
+ upstream: syncState.upstreamHead,
184
+ requestId: nanoid(10),
185
+ clientId,
186
+ sessionId,
187
+ liveStoreVersion,
188
+ subscriptionId,
189
+ }));
190
+ send(store.syncProcessor.syncState.pipe(Effect.runSync));
191
+ syncHeadClientSessionSubscriptions.set(subscriptionId, store.syncProcessor.syncState.changes.pipe(Stream.tap((syncState) => send(syncState)), Stream.runDrain, Effect.interruptible, Effect.tapCauseLogPretty, Effect.runCallback));
192
+ break;
193
+ }
194
+ case 'LSD.ClientSession.SyncHeadUnsubscribe': {
195
+ const { subscriptionId } = decodedMessage;
196
+ // NOTE given Webmesh channels have persistent retry behaviour, it can happen that a previous
197
+ // Webmesh channel will send a unsubscribe message for an old requestId. Thus the `?.()` handling.
198
+ syncHeadClientSessionSubscriptions.get(subscriptionId)?.();
199
+ syncHeadClientSessionSubscriptions.delete(subscriptionId);
200
+ break;
201
+ }
202
+ case 'LSD.ClientSession.Ping': {
203
+ sendToDevtools(Devtools.ClientSession.Pong.make({ requestId, clientId, sessionId, liveStoreVersion }));
204
+ break;
205
+ }
206
+ default: {
207
+ console.warn(`[LSD.ClientSession] Unknown message`, decodedMessage);
208
+ }
157
209
  }
158
210
  };
159
211
  yield* storeDevtoolsChannel.listen.pipe(
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.js","sourceRoot":"","sources":["../../src/store/devtools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devtools.js","sourceRoot":"","sources":["../../src/store/devtools.ts"],"names":[],"mappings":"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"}