@livestore/livestore 0.3.0-dev.11 → 0.3.0-dev.12

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 (54) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/SqliteDbWrapper.js +0 -1
  3. package/dist/SqliteDbWrapper.js.map +1 -1
  4. package/dist/live-queries/base-class.d.ts +2 -9
  5. package/dist/live-queries/base-class.d.ts.map +1 -1
  6. package/dist/live-queries/base-class.js +3 -5
  7. package/dist/live-queries/base-class.js.map +1 -1
  8. package/dist/live-queries/computed.d.ts.map +1 -1
  9. package/dist/live-queries/computed.js +1 -2
  10. package/dist/live-queries/computed.js.map +1 -1
  11. package/dist/live-queries/db-query.d.ts.map +1 -1
  12. package/dist/live-queries/db-query.js +1 -2
  13. package/dist/live-queries/db-query.js.map +1 -1
  14. package/dist/live-queries/db-query.test.js +46 -56
  15. package/dist/live-queries/db-query.test.js.map +1 -1
  16. package/dist/live-queries/graphql.d.ts.map +1 -1
  17. package/dist/live-queries/graphql.js +1 -2
  18. package/dist/live-queries/graphql.js.map +1 -1
  19. package/dist/reactive.d.ts +4 -0
  20. package/dist/reactive.d.ts.map +1 -1
  21. package/dist/reactive.js +9 -11
  22. package/dist/reactive.js.map +1 -1
  23. package/dist/reactive.test.js +1 -1
  24. package/dist/reactive.test.js.map +1 -1
  25. package/dist/row-query-utils.d.ts +2 -2
  26. package/dist/row-query-utils.d.ts.map +1 -1
  27. package/dist/row-query-utils.js +3 -3
  28. package/dist/row-query-utils.js.map +1 -1
  29. package/dist/store/create-store.d.ts +5 -2
  30. package/dist/store/create-store.d.ts.map +1 -1
  31. package/dist/store/create-store.js +15 -1
  32. package/dist/store/create-store.js.map +1 -1
  33. package/dist/store/devtools.d.ts +3 -2
  34. package/dist/store/devtools.d.ts.map +1 -1
  35. package/dist/store/devtools.js +30 -8
  36. package/dist/store/devtools.js.map +1 -1
  37. package/dist/store/store.d.ts +2 -2
  38. package/dist/store/store.d.ts.map +1 -1
  39. package/dist/store/store.js +5 -3
  40. package/dist/store/store.js.map +1 -1
  41. package/package.json +5 -5
  42. package/src/SqliteDbWrapper.ts +0 -1
  43. package/src/live-queries/__snapshots__/db-query.test.ts.snap +0 -3
  44. package/src/live-queries/base-class.ts +5 -14
  45. package/src/live-queries/computed.ts +1 -2
  46. package/src/live-queries/db-query.test.ts +28 -26
  47. package/src/live-queries/db-query.ts +1 -2
  48. package/src/live-queries/graphql.ts +1 -2
  49. package/src/reactive.test.ts +1 -1
  50. package/src/reactive.ts +10 -12
  51. package/src/row-query-utils.ts +5 -5
  52. package/src/store/create-store.ts +35 -4
  53. package/src/store/devtools.ts +57 -12
  54. package/src/store/store.ts +7 -4
@@ -100,7 +100,7 @@ export class Store extends Inspectable.Class {
100
100
  this.reactivityGraph = reactivityGraph;
101
101
  this.reactivityGraph.context = {
102
102
  store: this,
103
- liveQueryRCMap: new Map(),
103
+ defRcMap: new Map(),
104
104
  reactivityGraph: new WeakRef(reactivityGraph),
105
105
  otelTracer: otelOptions.tracer,
106
106
  rootOtelContext: otelQueriesSpanContext,
@@ -379,12 +379,13 @@ export class Store extends Inspectable.Class {
379
379
  },
380
380
  hardReset: (mode = 'all-data') => {
381
381
  Effect.gen(this, function* () {
382
- yield* this.clientSession.leaderThread.sendDevtoolsMessage(Devtools.ResetAllDataReq.make({ liveStoreVersion, mode, requestId: nanoid() }));
382
+ const clientId = this.clientSession.clientId;
383
+ yield* this.clientSession.leaderThread.sendDevtoolsMessage(Devtools.Leader.ResetAllData.Request.make({ liveStoreVersion, mode, requestId: nanoid(), clientId }));
383
384
  }).pipe(this.runEffectFork);
384
385
  },
385
386
  syncStates: () => {
386
387
  Effect.gen(this, function* () {
387
- const session = this.syncProcessor.syncStateRef.current;
388
+ const session = yield* this.syncProcessor.syncState;
388
389
  console.log('Session sync state:', session.toJSON());
389
390
  const leader = yield* this.clientSession.leaderThread.getSyncState;
390
391
  console.log('Leader sync state:', leader.toJSON());
@@ -395,6 +396,7 @@ export class Store extends Inspectable.Class {
395
396
  .shutdown(cause ?? Cause.fail(IntentionalShutdownCause.make({ reason: 'manual' })))
396
397
  .pipe(Effect.tapCauseLogPretty, Effect.provide(this.runtime), Effect.runFork);
397
398
  },
399
+ version: liveStoreVersion,
398
400
  };
399
401
  // NOTE This is needed because when booting a Store via Effect it seems to call `toJSON` in the error path
400
402
  toJSON = () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livestore/livestore",
3
- "version": "0.3.0-dev.11",
3
+ "version": "0.3.0-dev.12",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -31,9 +31,9 @@
31
31
  "dependencies": {
32
32
  "@graphql-typed-document-node/core": "3.2.0",
33
33
  "@opentelemetry/api": "1.9.0",
34
- "@livestore/common": "0.3.0-dev.11",
35
- "@livestore/db-schema": "0.3.0-dev.11",
36
- "@livestore/utils": "0.3.0-dev.11"
34
+ "@livestore/common": "0.3.0-dev.12",
35
+ "@livestore/db-schema": "0.3.0-dev.12",
36
+ "@livestore/utils": "0.3.0-dev.12"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@opentelemetry/sdk-trace-base": "^1.30.1",
@@ -41,7 +41,7 @@
41
41
  "typescript": "^5.7.2",
42
42
  "vite": "^6.0.11",
43
43
  "vitest": "^2.1.4",
44
- "@livestore/web": "0.3.0-dev.11"
44
+ "@livestore/web": "0.3.0-dev.12"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "graphql": "~16.0"
@@ -288,7 +288,6 @@ const configureSQLite = (db: SqliteDbWrapper) => {
288
288
  sql`
289
289
  PRAGMA page_size=32768;
290
290
  PRAGMA cache_size=10000;
291
- PRAGMA journal_mode='MEMORY'; -- we don't flush to disk before committing a write
292
291
  PRAGMA synchronous='OFF';
293
292
  PRAGMA temp_store='MEMORY';
294
293
  PRAGMA foreign_keys='ON'; -- we want foreign key constraints to be enforced
@@ -14,7 +14,6 @@ exports[`otel > otel 3`] = `
14
14
  "sql.query": "
15
15
  PRAGMA page_size=32768;
16
16
  PRAGMA cache_size=10000;
17
- PRAGMA journal_mode='MEMORY'; -- we don't flush to disk before committing a write
18
17
  PRAGMA synchronous='OFF';
19
18
  PRAGMA temp_store='MEMORY';
20
19
  PRAGMA foreign_keys='ON'; -- we want foreign key constraints to be enforced
@@ -275,7 +274,6 @@ exports[`otel > with thunks 7`] = `
275
274
  "sql.query": "
276
275
  PRAGMA page_size=32768;
277
276
  PRAGMA cache_size=10000;
278
- PRAGMA journal_mode='MEMORY'; -- we don't flush to disk before committing a write
279
277
  PRAGMA synchronous='OFF';
280
278
  PRAGMA temp_store='MEMORY';
281
279
  PRAGMA foreign_keys='ON'; -- we want foreign key constraints to be enforced
@@ -370,7 +368,6 @@ exports[`otel > with thunks with query builder and without labels 3`] = `
370
368
  "sql.query": "
371
369
  PRAGMA page_size=32768;
372
370
  PRAGMA cache_size=10000;
373
- PRAGMA journal_mode='MEMORY'; -- we don't flush to disk before committing a write
374
371
  PRAGMA synchronous='OFF';
375
372
  PRAGMA temp_store='MEMORY';
376
373
  PRAGMA foreign_keys='ON'; -- we want foreign key constraints to be enforced
@@ -1,6 +1,5 @@
1
1
  import type { QueryInfo } from '@livestore/common'
2
2
  import { isNotNil } from '@livestore/utils'
3
- import { GlobalValue } from '@livestore/utils/effect'
4
3
  import type * as otel from '@opentelemetry/api'
5
4
 
6
5
  import * as RG from '../reactive.js'
@@ -13,15 +12,10 @@ export type ReactivityGraph = RG.ReactiveGraph<RefreshReason, QueryDebugInfo, Re
13
12
  export const makeReactivityGraph = (): ReactivityGraph =>
14
13
  new RG.ReactiveGraph<RefreshReason, QueryDebugInfo, ReactivityGraphContext>()
15
14
 
16
- export const defCounterRef = GlobalValue.globalValue('livestore-def-counter', () => ({ current: 0 }))
17
-
18
- type LiveQueryDefHash = string
19
-
20
- export type LiveQueryRCMap = Map<LiveQueryDefHash, RcRef<LiveQueryAny | ILiveQueryRef<any>>>
21
-
22
15
  export type ReactivityGraphContext = {
23
16
  store: Store
24
- liveQueryRCMap: LiveQueryRCMap
17
+ /** Maps from the hash of the query definition to the RcRef of the query */
18
+ defRcMap: Map<string, RcRef<LiveQueryAny | ILiveQueryRef<any>>>
25
19
  /** Back-reference to the reactivity graph for convenience */
26
20
  reactivityGraph: WeakRef<ReactivityGraph>
27
21
  otelTracer: otel.Tracer
@@ -76,9 +70,6 @@ export const depsToString = (deps: DepKey): string => {
76
70
 
77
71
  export interface LiveQueryDef<TResult, TQueryInfo extends QueryInfo = QueryInfo.None> {
78
72
  _tag: 'def'
79
- // TODO do we need both id and hash?
80
- /** A unique identifier for the query definition */
81
- id: number
82
73
  /** Creates a new LiveQuery instance bound to a specific store/reactivityGraph */
83
74
  make: (ctx: ReactivityGraphContext, otelContext?: otel.Context) => RcRef<LiveQuery<TResult, TQueryInfo>>
84
75
  label: string
@@ -215,7 +206,7 @@ export const withRCMap = <T extends LiveQueryAny | ILiveQueryRef<any>>(
215
206
  make: (ctx: ReactivityGraphContext, otelContext?: otel.Context) => T,
216
207
  ): ((ctx: ReactivityGraphContext, otelContext?: otel.Context) => RcRef<T>) => {
217
208
  return (ctx, otelContext) => {
218
- let item = ctx.liveQueryRCMap.get(id)
209
+ let item = ctx.defRcMap.get(id)
219
210
  if (item) {
220
211
  item.rc++
221
212
  return item as RcRef<T>
@@ -231,10 +222,10 @@ export const withRCMap = <T extends LiveQueryAny | ILiveQueryRef<any>>(
231
222
  if (item!.rc === 0) {
232
223
  item!.value.destroy()
233
224
  }
234
- ctx.liveQueryRCMap.delete(id)
225
+ ctx.defRcMap.delete(id)
235
226
  },
236
227
  }
237
- ctx.liveQueryRCMap.set(id, item)
228
+ ctx.defRcMap.set(id, item)
238
229
 
239
230
  return item as RcRef<T>
240
231
  }
@@ -6,7 +6,7 @@ import type { RefreshReason } from '../store/store-types.js'
6
6
  import { isValidFunctionString } from '../utils/function-string.js'
7
7
  import { getDurationMsFromSpan } from '../utils/otel.js'
8
8
  import type { DepKey, GetAtomResult, LiveQueryDef, ReactivityGraph, ReactivityGraphContext } from './base-class.js'
9
- import { defCounterRef, depsToString, LiveStoreQueryBase, makeGetAtomResult, withRCMap } from './base-class.js'
9
+ import { depsToString, LiveStoreQueryBase, makeGetAtomResult, withRCMap } from './base-class.js'
10
10
 
11
11
  export const computed = <TResult, TQueryInfo extends QueryInfo = QueryInfo.None>(
12
12
  fn: (get: GetAtomResult) => TResult,
@@ -25,7 +25,6 @@ export const computed = <TResult, TQueryInfo extends QueryInfo = QueryInfo.None>
25
25
 
26
26
  return {
27
27
  _tag: 'def',
28
- id: ++defCounterRef.current,
29
28
  make: withRCMap(hash, (ctx, _otelContext) => {
30
29
  // TODO onDestroy
31
30
  return new LiveStoreComputedQuery<TResult, TQueryInfo>({
@@ -1,7 +1,8 @@
1
1
  import { Effect, Schema } from '@livestore/utils/effect'
2
+ import { Vitest } from '@livestore/utils/node-vitest'
2
3
  import * as otel from '@opentelemetry/api'
3
4
  import { BasicTracerProvider, InMemorySpanExporter, SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base'
4
- import { beforeEach, describe, expect, it } from 'vitest'
5
+ import { expect } from 'vitest'
5
6
 
6
7
  import { computed, queryDb, rawSqlMutation, sql } from '../index.js'
7
8
  import * as RG from '../reactive.js'
@@ -15,16 +16,14 @@ TODO write tests for:
15
16
  - optional and explicit `queriedTables` argument
16
17
  */
17
18
 
18
- describe('otel', () => {
19
+ Vitest.describe('otel', () => {
19
20
  let cachedProvider: BasicTracerProvider | undefined
20
21
 
21
- beforeEach(() => {
22
- RG.__resetIds()
23
- })
24
-
25
22
  const makeQuery = Effect.gen(function* () {
26
23
  const exporter = new InMemorySpanExporter()
27
24
 
25
+ RG.__resetIds()
26
+
28
27
  // const provider = cachedProvider ?? new BasicTracerProvider({ spanProcessors: [new SimpleSpanProcessor(exporter)] })
29
28
  const provider = cachedProvider ?? new BasicTracerProvider()
30
29
  cachedProvider = provider
@@ -47,8 +46,8 @@ describe('otel', () => {
47
46
  }
48
47
  })
49
48
 
50
- it('otel', async () => {
51
- const { exporter } = await Effect.gen(function* () {
49
+ Vitest.scopedLive('otel', () =>
50
+ Effect.gen(function* () {
52
51
  const { store, exporter, span } = yield* makeQuery
53
52
 
54
53
  const query$ = queryDb({
@@ -73,13 +72,14 @@ describe('otel', () => {
73
72
  span.end()
74
73
 
75
74
  return { exporter }
76
- }).pipe(Effect.scoped, Effect.tapCauseLogPretty, Effect.runPromise)
77
-
78
- expect(getSimplifiedRootSpan(exporter)).toMatchSnapshot()
79
- })
80
-
81
- it('with thunks', async () => {
82
- const { exporter } = await Effect.gen(function* () {
75
+ }).pipe(
76
+ Effect.scoped,
77
+ Effect.tap(({ exporter }) => expect(getSimplifiedRootSpan(exporter)).toMatchSnapshot()),
78
+ ),
79
+ )
80
+
81
+ Vitest.scopedLive('with thunks', () =>
82
+ Effect.gen(function* () {
83
83
  const { store, exporter, span } = yield* makeQuery
84
84
 
85
85
  const defaultTodo = { id: '', text: '', completed: false }
@@ -122,13 +122,14 @@ describe('otel', () => {
122
122
  span.end()
123
123
 
124
124
  return { exporter }
125
- }).pipe(Effect.scoped, Effect.tapCauseLogPretty, Effect.runPromise)
126
-
127
- expect(getSimplifiedRootSpan(exporter)).toMatchSnapshot()
128
- })
129
-
130
- it('with thunks with query builder and without labels', async () => {
131
- const { exporter } = await Effect.gen(function* () {
125
+ }).pipe(
126
+ Effect.scoped,
127
+ Effect.tap(({ exporter }) => expect(getSimplifiedRootSpan(exporter)).toMatchSnapshot()),
128
+ ),
129
+ )
130
+
131
+ Vitest.scopedLive('with thunks with query builder and without labels', () =>
132
+ Effect.gen(function* () {
132
133
  const { store, exporter, span } = yield* makeQuery
133
134
 
134
135
  const defaultTodo = { id: '', text: '', completed: false }
@@ -157,8 +158,9 @@ describe('otel', () => {
157
158
  span.end()
158
159
 
159
160
  return { exporter }
160
- }).pipe(Effect.scoped, Effect.tapCauseLogPretty, Effect.runPromise)
161
-
162
- expect(getSimplifiedRootSpan(exporter)).toMatchSnapshot()
163
- })
161
+ }).pipe(
162
+ Effect.scoped,
163
+ Effect.tap(({ exporter }) => expect(getSimplifiedRootSpan(exporter)).toMatchSnapshot()),
164
+ ),
165
+ )
164
166
  })
@@ -18,7 +18,7 @@ import type { RefreshReason } from '../store/store-types.js'
18
18
  import { isValidFunctionString } from '../utils/function-string.js'
19
19
  import { getDurationMsFromSpan } from '../utils/otel.js'
20
20
  import type { DepKey, GetAtomResult, LiveQueryDef, ReactivityGraph, ReactivityGraphContext } from './base-class.js'
21
- import { defCounterRef, depsToString, LiveStoreQueryBase, makeGetAtomResult, withRCMap } from './base-class.js'
21
+ import { depsToString, LiveStoreQueryBase, makeGetAtomResult, withRCMap } from './base-class.js'
22
22
 
23
23
  export type QueryInputRaw<TDecoded, TEncoded, TQueryInfo extends QueryInfo> = {
24
24
  query: string
@@ -94,7 +94,6 @@ export const queryDb: {
94
94
 
95
95
  return {
96
96
  _tag: 'def',
97
- id: ++defCounterRef.current,
98
97
  make: withRCMap(hash, (ctx, otelContext) => {
99
98
  // TODO onDestroy
100
99
  return new LiveStoreDbQuery({
@@ -10,7 +10,7 @@ import type { Store } from '../store/store.js'
10
10
  import type { BaseGraphQLContext, RefreshReason } from '../store/store-types.js'
11
11
  import { getDurationMsFromSpan } from '../utils/otel.js'
12
12
  import type { DepKey, GetAtomResult, LiveQueryDef, ReactivityGraph, ReactivityGraphContext } from './base-class.js'
13
- import { defCounterRef, depsToString, LiveStoreQueryBase, makeGetAtomResult, withRCMap } from './base-class.js'
13
+ import { depsToString, LiveStoreQueryBase, makeGetAtomResult, withRCMap } from './base-class.js'
14
14
 
15
15
  export type MapResult<To, From> = ((res: From, get: GetAtomResult) => To) | Schema.Schema<To, From>
16
16
 
@@ -37,7 +37,6 @@ export const queryGraphQL = <
37
37
 
38
38
  return {
39
39
  _tag: 'def',
40
- id: ++defCounterRef.current,
41
40
  make: withRCMap(hash, (ctx, _otelContext) => {
42
41
  return new LiveStoreGraphQLQuery({
43
42
  document,
@@ -245,7 +245,7 @@ describe('a trivial graph', () => {
245
245
  expect(e.isDirty).toBe(true)
246
246
 
247
247
  expect(() => c.computeResult()).toThrowErrorMatchingInlineSnapshot(
248
- `[Error: This should never happen: LiveStore Error: Attempted to compute destroyed ref (node-58): b]`,
248
+ `[Error: This should never happen: LiveStore Error: Attempted to compute destroyed ref (node-2): b]`,
249
249
  )
250
250
  })
251
251
  })
package/src/reactive.ts CHANGED
@@ -183,18 +183,11 @@ export type ReactiveGraphSnapshot = {
183
183
  readonly deferredEffects: ReadonlyArray<string>
184
184
  }
185
185
 
186
- let nodeIdCounter = 0
187
- const uniqueNodeId = () => `node-${++nodeIdCounter}`
188
- let refreshInfoIdCounter = 0
189
- const uniqueRefreshInfoId = () => `refresh-info-${++refreshInfoIdCounter}`
190
-
191
186
  let globalGraphIdCounter = 0
192
187
  const uniqueGraphId = () => `graph-${++globalGraphIdCounter}`
193
188
 
194
189
  /** Used for testing */
195
190
  export const __resetIds = () => {
196
- nodeIdCounter = 0
197
- refreshInfoIdCounter = 0
198
191
  globalGraphIdCounter = 0
199
192
  }
200
193
 
@@ -220,13 +213,18 @@ export class ReactiveGraph<
220
213
 
221
214
  private refreshCallbacks: Set<() => void> = new Set()
222
215
 
216
+ private nodeIdCounter = 0
217
+ private uniqueNodeId = () => `node-${++this.nodeIdCounter}`
218
+ private refreshInfoIdCounter = 0
219
+ private uniqueRefreshInfoId = () => `refresh-info-${++this.refreshInfoIdCounter}`
220
+
223
221
  makeRef<T>(
224
222
  val: T,
225
223
  options?: { label?: string; meta?: unknown; equal?: (a: T, b: T) => boolean },
226
224
  ): Ref<T, TContext, TDebugRefreshReason> {
227
225
  const ref: Ref<T, TContext, TDebugRefreshReason> = {
228
226
  _tag: 'ref',
229
- id: uniqueNodeId(),
227
+ id: this.uniqueNodeId(),
230
228
  isDirty: false,
231
229
  isDestroyed: false,
232
230
  previousResult: val,
@@ -262,7 +260,7 @@ export class ReactiveGraph<
262
260
  ): Thunk<T, TContext, TDebugRefreshReason> {
263
261
  const thunk: Thunk<T, TContext, TDebugRefreshReason> = {
264
262
  _tag: 'thunk',
265
- id: uniqueNodeId(),
263
+ id: this.uniqueNodeId(),
266
264
  previousResult: NOT_REFRESHED_YET,
267
265
  isDirty: true,
268
266
  isDestroyed: false,
@@ -314,7 +312,7 @@ export class ReactiveGraph<
314
312
  this.currentDebugRefresh = undefined
315
313
 
316
314
  this.debugRefreshInfos.push({
317
- id: uniqueRefreshInfoId(),
315
+ id: this.uniqueRefreshInfoId(),
318
316
  reason: debugRefreshReason ?? ({ _tag: 'makeThunk', label: options?.label } as TDebugRefreshReason),
319
317
  skippedRefresh: false,
320
318
  refreshedAtoms,
@@ -387,7 +385,7 @@ export class ReactiveGraph<
387
385
  ): Effect<TDebugRefreshReason> {
388
386
  const effect: Effect<TDebugRefreshReason> = {
389
387
  _tag: 'effect',
390
- id: uniqueNodeId(),
388
+ id: this.uniqueNodeId(),
391
389
  isDestroyed: false,
392
390
  doEffect: (otelContext, debugRefreshReason) => {
393
391
  effect.invocations++
@@ -488,7 +486,7 @@ export class ReactiveGraph<
488
486
  this.currentDebugRefresh = undefined
489
487
 
490
488
  const refreshDebugInfo: RefreshDebugInfo<TDebugRefreshReason, TDebugThunkInfo> = {
491
- id: uniqueRefreshInfoId(),
489
+ id: this.uniqueRefreshInfoId(),
492
490
  reason: options.debugRefreshReason,
493
491
  skippedRefresh: false,
494
492
  refreshedAtoms,
@@ -7,7 +7,7 @@ import type * as otel from '@opentelemetry/api'
7
7
  import type { GetResult, LiveQueryDef, ReactivityGraphContext } from './live-queries/base-class.js'
8
8
  import { computed } from './live-queries/computed.js'
9
9
 
10
- export const rowQueryLabel = (table: DbSchema.TableDefBase, id: string | SessionIdSymbol | undefined) =>
10
+ export const rowQueryLabel = (table: DbSchema.TableDefBase, id: string | SessionIdSymbol | number | undefined) =>
11
11
  `row:${table.sqliteDef.name}${id === undefined ? '' : id === SessionIdSymbol ? `:sessionId` : `:${id}`}`
12
12
 
13
13
  export const deriveColQuery: {
@@ -41,7 +41,7 @@ export const makeExecBeforeFirstRun =
41
41
  table,
42
42
  otelContext: otelContext_,
43
43
  }: {
44
- id?: string | SessionIdSymbol
44
+ id?: string | SessionIdSymbol | number
45
45
  insertValues?: any
46
46
  table: DbSchema.TableDefBase
47
47
  otelContext: otel.Context | undefined
@@ -50,11 +50,11 @@ export const makeExecBeforeFirstRun =
50
50
  const otelContext = otelContext_ ?? store.otel.queriesSpanContext
51
51
 
52
52
  if (table.options.isSingleton === false) {
53
- const idStr = id === SessionIdSymbol ? store.sessionId : id!
53
+ const idVal = id === SessionIdSymbol ? store.sessionId : id!
54
54
  const rowExists =
55
55
  store.sqliteDbWrapper.select(
56
56
  `SELECT 1 FROM '${table.sqliteDef.name}' WHERE id = ?`,
57
- [idStr] as any as PreparedBindValues,
57
+ [idVal] as any as PreparedBindValues,
58
58
  { otelContext },
59
59
  ).length === 1
60
60
 
@@ -69,7 +69,7 @@ export const makeExecBeforeFirstRun =
69
69
  // It's important that we only mutate and don't refresh here, as this function might be called during a render
70
70
  // and otherwise we might end up in a "reactive loop"
71
71
  store.mutate(
72
- { otelContext, skipRefresh: true, label: `rowQuery:${table.sqliteDef.name}:${idStr}` },
72
+ { otelContext, skipRefresh: true, label: `rowQuery:${table.sqliteDef.name}:${idVal}` },
73
73
  table.insert({ id, ...insertValues }),
74
74
  )
75
75
  }
@@ -2,8 +2,9 @@ import type {
2
2
  Adapter,
3
3
  BootStatus,
4
4
  ClientSession,
5
+ ClientSessionDevtoolsChannel,
5
6
  IntentionalShutdownCause,
6
- StoreDevtoolsChannel,
7
+ MigrationsReport,
7
8
  } from '@livestore/common'
8
9
  import { provideOtel, UnexpectedError } from '@livestore/common'
9
10
  import type { EventId, LiveStoreSchema, MutationEvent } from '@livestore/common/schema'
@@ -39,7 +40,10 @@ export interface CreateStoreOptions<TGraphQLContext extends BaseGraphQLContext,
39
40
  graphQLOptions?: GraphQLOptions<TGraphQLContext>
40
41
  boot?: (
41
42
  store: Store<TGraphQLContext, TSchema>,
42
- parentSpan: otel.Span,
43
+ ctx: {
44
+ migrationsReport: MigrationsReport
45
+ parentSpan: otel.Span
46
+ },
43
47
  ) => void | Promise<void> | Effect.Effect<void, unknown, OtelTracer.OtelTracer | LiveStoreContextRunning>
44
48
  batchUpdates?: (run: () => void) => void
45
49
  disableDevtools?: boolean
@@ -107,6 +111,8 @@ export const createStore = <
107
111
  Effect.gen(function* () {
108
112
  const lifetimeScope = yield* Scope.make()
109
113
 
114
+ yield* validateStoreId(storeId)
115
+
110
116
  yield* Effect.addFinalizer((_) => Scope.close(lifetimeScope, _))
111
117
 
112
118
  const debugInstanceId = debug?.instanceId ?? nanoid(10)
@@ -128,7 +134,7 @@ export const createStore = <
128
134
 
129
135
  const storeDeferred = yield* Deferred.make<Store>()
130
136
 
131
- const connectDevtoolsToStore_ = (storeDevtoolsChannel: StoreDevtoolsChannel) =>
137
+ const connectDevtoolsToStore_ = (storeDevtoolsChannel: ClientSessionDevtoolsChannel) =>
132
138
  Effect.gen(function* () {
133
139
  const store = yield* storeDeferred
134
140
  yield* connectDevtoolsToStore({ storeDevtoolsChannel, store })
@@ -158,6 +164,16 @@ export const createStore = <
158
164
  debugInstanceId,
159
165
  }).pipe(Effect.withPerformanceMeasure('livestore:makeAdapter'), Effect.withSpan('createStore:makeAdapter'))
160
166
 
167
+ if (LS_DEV && clientSession.leaderThread.initialState.migrationsReport.migrations.length > 0) {
168
+ yield* Effect.logDebug(
169
+ '[@livestore/livestore:createStore] migrationsReport',
170
+ ...clientSession.leaderThread.initialState.migrationsReport.migrations.map(
171
+ (m) =>
172
+ `Schema hash mismatch for table '${m.tableName}' (DB: ${m.hashes.actual}, expected: ${m.hashes.expected}), migrating table...`,
173
+ ),
174
+ )
175
+ }
176
+
161
177
  // TODO fill up with unsynced mutation events from the client session
162
178
  const unsyncedMutationEvents = MutableHashMap.empty<EventId.EventId, MutationEvent.ForSchema<TSchema>>()
163
179
 
@@ -176,11 +192,14 @@ export const createStore = <
176
192
  storeId,
177
193
  })
178
194
 
195
+ // Starts background fibers (syncing, mutation processing, etc) for store
179
196
  yield* store.boot
180
197
 
181
198
  if (boot !== undefined) {
182
199
  // TODO also incorporate `boot` function progress into `bootStatusQueue`
183
- yield* Effect.tryAll(() => boot(store, span)).pipe(
200
+ yield* Effect.tryAll(() =>
201
+ boot(store, { migrationsReport: clientSession.leaderThread.initialState.migrationsReport, parentSpan: span }),
202
+ ).pipe(
184
203
  UnexpectedError.mapToUnexpectedError,
185
204
  Effect.provide(Layer.succeed(LiveStoreContextRunning, { stage: 'running', store: store as any as Store })),
186
205
  Effect.withSpan('createStore:boot'),
@@ -205,3 +224,15 @@ export const createStore = <
205
224
  Scope.extend(lifetimeScope),
206
225
  )
207
226
  })
227
+
228
+ const validateStoreId = (storeId: string) =>
229
+ Effect.gen(function* () {
230
+ const validChars = /^[a-zA-Z0-9_-]+$/
231
+
232
+ if (!validChars.test(storeId)) {
233
+ return yield* UnexpectedError.make({
234
+ cause: `Invalid storeId: ${storeId}. Only alphanumeric characters, underscores, and hyphens are allowed.`,
235
+ payload: { storeId },
236
+ })
237
+ }
238
+ })