@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,12 +1,9 @@
1
- import type { ClientSession, IntentionalShutdownCause, UnexpectedError } from '@livestore/common';
2
- import type { EventId, LiveStoreSchema, MutationEvent } from '@livestore/common/schema';
3
- import type { Deferred, MutableHashMap, Runtime, Scope } from '@livestore/utils/effect';
4
- import { Schema } from '@livestore/utils/effect';
1
+ import type { ClientSession, IntentionalShutdownCause, StoreInterrupted, UnexpectedError } from '@livestore/common';
2
+ import type { EventSequenceNumber, LiveStoreEvent, LiveStoreSchema } from '@livestore/common/schema';
3
+ import type { Effect, Runtime, Scope } from '@livestore/utils/effect';
4
+ import { Deferred } from '@livestore/utils/effect';
5
5
  import type * as otel from '@opentelemetry/api';
6
- import type { GraphQLSchema } from 'graphql';
7
- import type { ReactivityGraph } from '../live-queries/base-class.js';
8
6
  import type { DebugRefreshReasonBase } from '../reactive.js';
9
- import type { SynchronousDatabaseWrapper } from '../SynchronousDatabaseWrapper.js';
10
7
  import type { StackInfo } from '../utils/stack-info.js';
11
8
  import type { Store } from './store.js';
12
9
  export type LiveStoreContext = LiveStoreContextRunning | {
@@ -14,53 +11,39 @@ export type LiveStoreContext = LiveStoreContextRunning | {
14
11
  error: UnexpectedError | unknown;
15
12
  } | {
16
13
  stage: 'shutdown';
17
- cause: IntentionalShutdownCause | StoreAbort;
14
+ cause: IntentionalShutdownCause | StoreInterrupted;
18
15
  };
19
- declare const StoreAbort_base: Schema.TaggedErrorClass<StoreAbort, "LiveStore.StoreAbort", {
20
- readonly _tag: Schema.tag<"LiveStore.StoreAbort">;
21
- }>;
22
- export declare class StoreAbort extends StoreAbort_base {
23
- }
24
- declare const StoreInterrupted_base: Schema.TaggedErrorClass<StoreInterrupted, "LiveStore.StoreInterrupted", {
25
- readonly _tag: Schema.tag<"LiveStore.StoreInterrupted">;
26
- }>;
27
- export declare class StoreInterrupted extends StoreInterrupted_base {
28
- }
29
- export type ShutdownDeferred = Deferred.Deferred<void, UnexpectedError | IntentionalShutdownCause | StoreInterrupted | StoreAbort>;
16
+ export type ShutdownDeferred = Deferred.Deferred<void, UnexpectedError | IntentionalShutdownCause | StoreInterrupted>;
17
+ export declare const makeShutdownDeferred: Effect.Effect<ShutdownDeferred>;
30
18
  export type LiveStoreContextRunning = {
31
19
  stage: 'running';
32
20
  store: Store;
33
21
  };
34
- export type BaseGraphQLContext = {
35
- queriedTables: Set<string>;
36
- /** Needed by Pothos Otel plugin for resolver tracing to work */
37
- otelContext?: otel.Context;
38
- };
39
- export type GraphQLOptions<TContext> = {
40
- schema: GraphQLSchema;
41
- makeContext: (db: SynchronousDatabaseWrapper, tracer: otel.Tracer, sessionId: string) => TContext;
42
- };
43
22
  export type OtelOptions = {
44
23
  tracer: otel.Tracer;
45
24
  rootSpanContext: otel.Context;
46
25
  };
47
- export type StoreOptions<TGraphQLContext extends BaseGraphQLContext, TSchema extends LiveStoreSchema = LiveStoreSchema> = {
26
+ export type StoreOptions<TSchema extends LiveStoreSchema = LiveStoreSchema, TContext = {}> = {
48
27
  clientSession: ClientSession;
49
28
  schema: TSchema;
50
29
  storeId: string;
51
- graphQLOptions?: GraphQLOptions<TGraphQLContext>;
30
+ context: TContext;
52
31
  otelOptions: OtelOptions;
53
- reactivityGraph: ReactivityGraph;
54
- disableDevtools?: boolean;
55
- lifetimeScope: Scope.Scope;
56
- runtime: Runtime.Runtime<Scope.Scope>;
32
+ effectContext: {
33
+ runtime: Runtime.Runtime<Scope.Scope>;
34
+ lifetimeScope: Scope.Scope;
35
+ };
36
+ confirmUnsavedChanges: boolean;
57
37
  batchUpdates: (runUpdates: () => void) => void;
58
- unsyncedMutationEvents: MutableHashMap.MutableHashMap<EventId.EventId, MutationEvent.ForSchema<TSchema>>;
38
+ params: {
39
+ leaderPushBatchSize: number;
40
+ };
41
+ __runningInDevtools: boolean;
59
42
  };
60
43
  export type RefreshReason = DebugRefreshReasonBase | {
61
- _tag: 'mutate';
62
- /** The mutations that were applied */
63
- mutations: ReadonlyArray<MutationEvent.AnyDecoded | MutationEvent.PartialAny>;
44
+ _tag: 'commit';
45
+ /** The events that were applied */
46
+ events: ReadonlyArray<LiveStoreEvent.AnyDecoded | LiveStoreEvent.PartialAnyDecoded>;
64
47
  /** The tables that were written to by the event */
65
48
  writeTables: ReadonlyArray<string>;
66
49
  } | {
@@ -68,26 +51,55 @@ export type RefreshReason = DebugRefreshReasonBase | {
68
51
  api: string;
69
52
  label?: string;
70
53
  stackInfo?: StackInfo;
54
+ } | {
55
+ _tag: 'subscribe.initial';
56
+ label?: string;
57
+ } | {
58
+ _tag: 'subscribe.update';
59
+ label?: string;
71
60
  } | {
72
61
  _tag: 'manual';
73
62
  label?: string;
74
63
  };
75
64
  export type QueryDebugInfo = {
76
- _tag: 'graphql' | 'db' | 'computed' | 'unknown';
65
+ _tag: string;
77
66
  label: string;
78
67
  query: string;
79
68
  durationMs: number;
80
69
  };
81
70
  export type StoreOtel = {
82
71
  tracer: otel.Tracer;
83
- mutationsSpanContext: otel.Context;
72
+ rootSpanContext: otel.Context;
73
+ commitsSpanContext: otel.Context;
84
74
  queriesSpanContext: otel.Context;
85
75
  };
86
- export type StoreMutateOptions = {
76
+ export type StoreCommitOptions = {
87
77
  label?: string;
88
78
  skipRefresh?: boolean;
89
79
  spanLinks?: otel.Link[];
90
80
  otelContext?: otel.Context;
91
81
  };
92
- export {};
82
+ export type StoreEventsOptions<TSchema extends LiveStoreSchema> = {
83
+ /**
84
+ * By default only new events are returned.
85
+ * Use this to get all events from a specific point in time.
86
+ */
87
+ cursor?: EventSequenceNumber.EventSequenceNumber;
88
+ /**
89
+ * Only include events of the given names
90
+ * @default undefined (include all)
91
+ */
92
+ filter?: ReadonlyArray<keyof TSchema['_EventDefMapType']>;
93
+ /**
94
+ * Whether to include client-only events or only return synced events
95
+ * @default true
96
+ */
97
+ includeClientOnly?: boolean;
98
+ /**
99
+ * Exclude own events that have not been pushed to the sync backend yet
100
+ * @default false
101
+ */
102
+ excludeUnpushed?: boolean;
103
+ };
104
+ export type Unsubscribe = () => void;
93
105
  //# sourceMappingURL=store-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store-types.d.ts","sourceRoot":"","sources":["../../src/store/store-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store-types.d.ts","sourceRoot":"","sources":["../../src/store/store-types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,3 @@
1
- import { Schema } from '@livestore/utils/effect';
2
- export class StoreAbort extends Schema.TaggedError()('LiveStore.StoreAbort', {}) {
3
- }
4
- export class StoreInterrupted extends Schema.TaggedError()('LiveStore.StoreInterrupted', {}) {
5
- }
1
+ import { Deferred } from '@livestore/utils/effect';
2
+ export const makeShutdownDeferred = Deferred.make();
6
3
  //# sourceMappingURL=store-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"store-types.js","sourceRoot":"","sources":["../../src/store/store-types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAqBhD,MAAM,OAAO,UAAW,SAAQ,MAAM,CAAC,WAAW,EAAc,CAAC,sBAAsB,EAAE,EAAE,CAAC;CAAG;AAC/F,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,WAAW,EAAoB,CAAC,4BAA4B,EAAE,EAAE,CAAC;CAAG"}
1
+ {"version":3,"file":"store-types.js","sourceRoot":"","sources":["../../src/store/store-types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAmBlD,MAAM,CAAC,MAAM,oBAAoB,GAAoC,QAAQ,CAAC,IAAI,EAG/E,CAAA"}
@@ -1,50 +1,68 @@
1
- import type { ClientSession, ParamsObject, QueryBuilder, UnexpectedError } from '@livestore/common';
1
+ import type { ClientSession, ClientSessionSyncProcessor, ParamsObject, QueryBuilder, UnexpectedError } from '@livestore/common';
2
2
  import type { LiveStoreSchema } from '@livestore/common/schema';
3
- import { MutationEvent } from '@livestore/common/schema';
3
+ import { LiveStoreEvent } from '@livestore/common/schema';
4
4
  import type { Scope } from '@livestore/utils/effect';
5
- import { Cause, Inspectable } from '@livestore/utils/effect';
5
+ import { Cause, Effect, Inspectable, Stream } from '@livestore/utils/effect';
6
6
  import * as otel from '@opentelemetry/api';
7
- import { type GraphQLSchema } from 'graphql';
8
- import type { LiveQuery, QueryContext, ReactivityGraph } from '../live-queries/base-class.js';
7
+ import type { LiveQuery, LiveQueryDef, ReactivityGraph, ReactivityGraphContext, SignalDef } from '../live-queries/base-class.js';
9
8
  import type { Ref } from '../reactive.js';
10
- import { SynchronousDatabaseWrapper } from '../SynchronousDatabaseWrapper.js';
9
+ import { SqliteDbWrapper } from '../SqliteDbWrapper.js';
11
10
  import { ReferenceCountedSet } from '../utils/data-structures.js';
12
- import type { BaseGraphQLContext, RefreshReason, StoreMutateOptions, StoreOptions, StoreOtel } from './store-types.js';
13
- export declare class Store<TGraphQLContext extends BaseGraphQLContext = BaseGraphQLContext, TSchema extends LiveStoreSchema = LiveStoreSchema> extends Inspectable.Class {
11
+ import type { StackInfo } from '../utils/stack-info.js';
12
+ import type { RefreshReason, StoreCommitOptions, StoreEventsOptions, StoreOptions, StoreOtel, Unsubscribe } from './store-types.js';
13
+ export declare class Store<TSchema extends LiveStoreSchema = LiveStoreSchema, TContext = {}> extends Inspectable.Class {
14
14
  readonly storeId: string;
15
15
  reactivityGraph: ReactivityGraph;
16
- syncDbWrapper: SynchronousDatabaseWrapper;
16
+ sqliteDbWrapper: SqliteDbWrapper;
17
17
  clientSession: ClientSession;
18
18
  schema: LiveStoreSchema;
19
- graphQLSchema?: GraphQLSchema;
20
- graphQLContext?: TGraphQLContext;
19
+ context: TContext;
21
20
  otel: StoreOtel;
22
21
  /**
23
22
  * Note we're using `Ref<null>` here as we don't care about the value but only about *that* something has changed.
24
23
  * This only works in combination with `equal: () => false` which will always trigger a refresh.
25
24
  */
26
25
  tableRefs: {
27
- [key: string]: Ref<null, QueryContext, RefreshReason>;
26
+ [key: string]: Ref<null, ReactivityGraphContext, RefreshReason>;
28
27
  };
29
- private runtime;
28
+ private effectContext;
30
29
  /** RC-based set to see which queries are currently subscribed to */
31
30
  activeQueries: ReferenceCountedSet<LiveQuery<any>>;
32
- readonly __mutationEventSchema: MutationEvent.ForMutationDefRecord<TSchema["_MutationDefMapType"]>;
33
- private unsyncedMutationEvents;
34
- private syncProcessor;
35
- readonly lifetimeScope: Scope.Scope;
36
- private constructor();
37
- static createStore: <TGraphQLContext_1 extends BaseGraphQLContext, TSchema_1 extends LiveStoreSchema = LiveStoreSchema>(storeOptions: StoreOptions<TGraphQLContext_1, TSchema_1>, parentSpan: otel.Span) => Store<TGraphQLContext_1, TSchema_1>;
31
+ readonly __eventSchema: LiveStoreEvent.ForEventDefRecord<TSchema["_EventDefMapType"]>;
32
+ readonly syncProcessor: ClientSessionSyncProcessor;
33
+ readonly boot: Effect.Effect<void, UnexpectedError, Scope.Scope>;
34
+ constructor({ clientSession, schema, otelOptions, context, batchUpdates, storeId, effectContext, params, confirmUnsavedChanges, __runningInDevtools, }: StoreOptions<TSchema, TContext>);
38
35
  get sessionId(): string;
36
+ get clientId(): string;
39
37
  /**
40
38
  * Subscribe to the results of a query
41
39
  * Returns a function to cancel the subscription.
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * const unsubscribe = store.subscribe(query$, { onUpdate: (result) => console.log(result) })
44
+ * ```
42
45
  */
43
- subscribe: <TResult>(query$: LiveQuery<TResult, any>, onNewValue: (value: TResult) => void, onUnsubsubscribe?: () => void, options?: {
46
+ subscribe: <TResult>(query: LiveQueryDef<TResult> | LiveQuery<TResult>, options: {
47
+ /** Called when the query result has changed */
48
+ onUpdate: (value: TResult) => void;
49
+ onSubscribe?: (query$: LiveQuery<TResult>) => void;
50
+ /** Gets called after the query subscription has been removed */
51
+ onUnsubsubscribe?: () => void;
44
52
  label?: string;
53
+ /**
54
+ * Skips the initial `onUpdate` callback
55
+ * @default false
56
+ */
57
+ skipInitialRun?: boolean;
45
58
  otelContext?: otel.Context;
59
+ /** If provided, the stack info will be added to the `activeSubscriptions` set of the query */
60
+ stackInfo?: StackInfo;
61
+ }) => Unsubscribe;
62
+ subscribeStream: <TResult>(query$: LiveQueryDef<TResult>, options?: {
63
+ label?: string;
46
64
  skipInitialRun?: boolean;
47
- } | undefined) => (() => void);
65
+ } | undefined) => Stream.Stream<TResult>;
48
66
  /**
49
67
  * Synchronously queries the database without creating a LiveQuery.
50
68
  * This is useful for queries that don't need to be reactive.
@@ -59,36 +77,124 @@ export declare class Store<TGraphQLContext extends BaseGraphQLContext = BaseGrap
59
77
  * const completedTodos = store.query({ query: 'SELECT * FROM todo WHERE complete = 1', bindValues: {} })
60
78
  * ```
61
79
  */
62
- query: <TResult>(query: QueryBuilder<TResult, any, any> | LiveQuery<TResult, any> | {
80
+ query: <TResult>(query: QueryBuilder<TResult, any, any> | LiveQuery<TResult> | LiveQueryDef<TResult> | SignalDef<TResult> | {
63
81
  query: string;
64
82
  bindValues: ParamsObject;
65
83
  }, options?: {
66
84
  otelContext?: otel.Context;
85
+ debugRefreshReason?: RefreshReason;
67
86
  }) => TResult;
68
- mutate: {
69
- <const TMutationArg extends ReadonlyArray<MutationEvent.PartialForSchema<TSchema>>>(...list: TMutationArg): void;
70
- (txn: <const TMutationArg extends ReadonlyArray<MutationEvent.PartialForSchema<TSchema>>>(...list: TMutationArg) => void): void;
71
- <const TMutationArg extends ReadonlyArray<MutationEvent.PartialForSchema<TSchema>>>(options: StoreMutateOptions, ...list: TMutationArg): void;
72
- (options: StoreMutateOptions, txn: <const TMutationArg extends ReadonlyArray<MutationEvent.PartialForSchema<TSchema>>>(...list: TMutationArg) => void): void;
87
+ /**
88
+ * Set the value of a signal
89
+ *
90
+ * @example
91
+ * ```ts
92
+ * const count$ = signal(0, { label: 'count$' })
93
+ * store.setSignal(count$, 2)
94
+ * ```
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * const count$ = signal(0, { label: 'count$' })
99
+ * store.setSignal(count$, (prev) => prev + 1)
100
+ * ```
101
+ */
102
+ setSignal: <T>(signalDef: SignalDef<T>, value: T | ((prev: T) => T)) => void;
103
+ /**
104
+ * Commit a list of events to the store which will immediately update the local database
105
+ * and sync the events across other clients (similar to a `git commit`).
106
+ *
107
+ * @example
108
+ * ```ts
109
+ * store.commit(events.todoCreated({ id: nanoid(), text: 'Make coffee' }))
110
+ * ```
111
+ *
112
+ * You can call `commit` with multiple events to apply them in a single database transaction.
113
+ *
114
+ * @example
115
+ * ```ts
116
+ * const todoId = nanoid()
117
+ * store.commit(
118
+ * events.todoCreated({ id: todoId, text: 'Make coffee' }),
119
+ * events.todoCompleted({ id: todoId }))
120
+ * ```
121
+ *
122
+ * For more advanced transaction scenarios, you can pass a synchronous function to `commit` which will receive a callback
123
+ * to which you can pass multiple events to be committed in the same database transaction.
124
+ * Under the hood this will simply collect all events and apply them in a single database transaction.
125
+ *
126
+ * @example
127
+ * ```ts
128
+ * store.commit((commit) => {
129
+ * const todoId = nanoid()
130
+ * if (Math.random() > 0.5) {
131
+ * commit(events.todoCreated({ id: todoId, text: 'Make coffee' }))
132
+ * } else {
133
+ * commit(events.todoCompleted({ id: todoId }))
134
+ * }
135
+ * })
136
+ * ```
137
+ *
138
+ * When committing a large batch of events, you can also skip the database refresh to improve performance
139
+ * and call `store.manualRefresh()` after all events have been committed.
140
+ *
141
+ * @example
142
+ * ```ts
143
+ * const todos = [
144
+ * { id: nanoid(), text: 'Make coffee' },
145
+ * { id: nanoid(), text: 'Buy groceries' },
146
+ * // ... 1000 more todos
147
+ * ]
148
+ * for (const todo of todos) {
149
+ * store.commit({ skipRefresh: true }, events.todoCreated({ id: todo.id, text: todo.text }))
150
+ * }
151
+ * store.manualRefresh()
152
+ * ```
153
+ */
154
+ commit: {
155
+ <const TCommitArg extends ReadonlyArray<LiveStoreEvent.PartialForSchema<TSchema>>>(...list: TCommitArg): void;
156
+ (txn: <const TCommitArg extends ReadonlyArray<LiveStoreEvent.PartialForSchema<TSchema>>>(...list: TCommitArg) => void): void;
157
+ <const TCommitArg extends ReadonlyArray<LiveStoreEvent.PartialForSchema<TSchema>>>(options: StoreCommitOptions, ...list: TCommitArg): void;
158
+ (options: StoreCommitOptions, txn: <const TCommitArg extends ReadonlyArray<LiveStoreEvent.PartialForSchema<TSchema>>>(...list: TCommitArg) => void): void;
73
159
  };
74
160
  /**
75
- * This can be used in combination with `skipRefresh` when applying mutations.
161
+ * Returns an async iterable of events.
162
+ *
163
+ * @example
164
+ * ```ts
165
+ * for await (const event of store.events()) {
166
+ * console.log(event)
167
+ * }
168
+ * ```
169
+ *
170
+ * @example
171
+ * ```ts
172
+ * // Get all events from the beginning of time
173
+ * for await (const event of store.events({ cursor: EventSequenceNumber.ROOT })) {
174
+ * console.log(event)
175
+ * }
176
+ * ```
177
+ */
178
+ events: (_options?: StoreEventsOptions<TSchema>) => AsyncIterable<LiveStoreEvent.ForSchema<TSchema>>;
179
+ eventsStream: (_options?: StoreEventsOptions<TSchema>) => Stream.Stream<LiveStoreEvent.ForSchema<TSchema>>;
180
+ /**
181
+ * This can be used in combination with `skipRefresh` when committing events.
76
182
  * We might need a better solution for this. Let's see.
77
183
  */
78
184
  manualRefresh: (options?: {
79
185
  label?: string;
80
186
  }) => void;
81
- private makeTableRef;
82
- __devDownloadDb: (source?: "local" | "leader") => void;
83
- __devDownloadMutationLogDb: () => void;
84
- __devHardReset: (mode?: "all-data" | "only-app-db") => void;
85
- __devSyncStates: () => void;
86
- __devShutdown: (cause?: Cause.Cause<UnexpectedError>) => void;
187
+ /**
188
+ * Shuts down the store and closes the client session.
189
+ *
190
+ * This is called automatically when the store was created using the React or Effect API.
191
+ */
192
+ shutdown: (cause?: Cause.Cause<UnexpectedError>) => Promise<void>;
87
193
  toJSON: () => {
88
194
  _tag: string;
89
195
  reactivityGraph: import("../reactive.js").ReactiveGraphSnapshot;
90
196
  };
91
197
  private runEffectFork;
92
- private getMutateArgs;
198
+ private getCommitArgs;
93
199
  }
94
200
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}