@livestore/livestore 0.3.0-dev.5 → 0.3.0-dev.51
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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/QueryCache.d.ts.map +1 -1
- package/dist/SqliteDbWrapper.d.ts +60 -0
- package/dist/SqliteDbWrapper.d.ts.map +1 -0
- package/dist/{SynchronousDatabaseWrapper.js → SqliteDbWrapper.js} +69 -34
- package/dist/SqliteDbWrapper.js.map +1 -0
- package/dist/effect/LiveStore.d.ts +6 -34
- package/dist/effect/LiveStore.d.ts.map +1 -1
- package/dist/effect/LiveStore.js +10 -12
- package/dist/effect/LiveStore.js.map +1 -1
- package/dist/effect/mod.d.ts +3 -0
- package/dist/effect/mod.d.ts.map +1 -0
- package/dist/effect/mod.js +3 -0
- package/dist/effect/mod.js.map +1 -0
- package/dist/internal/mod.d.ts +3 -0
- package/dist/internal/mod.d.ts.map +1 -0
- package/dist/internal/mod.js +3 -0
- package/dist/internal/mod.js.map +1 -0
- package/dist/live-queries/base-class.d.ts +69 -29
- package/dist/live-queries/base-class.d.ts.map +1 -1
- package/dist/live-queries/base-class.js +60 -14
- package/dist/live-queries/base-class.js.map +1 -1
- package/dist/live-queries/client-document-get-query.d.ts +12 -0
- package/dist/live-queries/client-document-get-query.d.ts.map +1 -0
- package/dist/live-queries/client-document-get-query.js +18 -0
- package/dist/live-queries/client-document-get-query.js.map +1 -0
- package/dist/live-queries/computed.d.ts +13 -15
- package/dist/live-queries/computed.d.ts.map +1 -1
- package/dist/live-queries/computed.js +37 -15
- package/dist/live-queries/computed.js.map +1 -1
- package/dist/live-queries/db-query.d.ts +93 -0
- package/dist/live-queries/db-query.d.ts.map +1 -0
- package/dist/live-queries/{db.js → db-query.js} +113 -40
- package/dist/live-queries/db-query.js.map +1 -0
- package/dist/live-queries/db-query.test.d.ts +2 -0
- package/dist/live-queries/db-query.test.d.ts.map +1 -0
- package/dist/live-queries/db-query.test.js +133 -0
- package/dist/live-queries/db-query.test.js.map +1 -0
- package/dist/live-queries/mod.d.ts +5 -0
- package/dist/live-queries/mod.d.ts.map +1 -0
- package/dist/live-queries/mod.js +5 -0
- package/dist/live-queries/mod.js.map +1 -0
- package/dist/live-queries/signal.d.ts +25 -0
- package/dist/live-queries/signal.d.ts.map +1 -0
- package/dist/live-queries/signal.js +50 -0
- package/dist/live-queries/signal.js.map +1 -0
- package/dist/live-queries/signal.test.d.ts +2 -0
- package/dist/live-queries/signal.test.d.ts.map +1 -0
- package/dist/live-queries/signal.test.js +25 -0
- package/dist/live-queries/signal.test.js.map +1 -0
- package/dist/mod.d.ts +14 -0
- package/dist/mod.d.ts.map +1 -0
- package/dist/mod.js +13 -0
- package/dist/mod.js.map +1 -0
- package/dist/reactive.d.ts +23 -17
- package/dist/reactive.d.ts.map +1 -1
- package/dist/reactive.js +23 -19
- package/dist/reactive.js.map +1 -1
- package/dist/reactive.test.js +1 -1
- package/dist/reactive.test.js.map +1 -1
- package/dist/store/create-store.d.ts +70 -12
- package/dist/store/create-store.d.ts.map +1 -1
- package/dist/store/create-store.js +68 -19
- package/dist/store/create-store.js.map +1 -1
- package/dist/store/devtools.d.ts +5 -4
- package/dist/store/devtools.d.ts.map +1 -1
- package/dist/store/devtools.js +92 -40
- package/dist/store/devtools.js.map +1 -1
- package/dist/store/store-types.d.ts +54 -42
- package/dist/store/store-types.d.ts.map +1 -1
- package/dist/store/store-types.js +2 -5
- package/dist/store/store-types.js.map +1 -1
- package/dist/store/store.d.ts +141 -35
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +322 -154
- package/dist/store/store.js.map +1 -1
- package/dist/utils/data-structures.d.ts.map +1 -1
- package/dist/utils/dev.d.ts.map +1 -1
- package/dist/utils/dev.js +6 -1
- package/dist/utils/dev.js.map +1 -1
- package/dist/utils/function-string.d.ts +7 -0
- package/dist/utils/function-string.d.ts.map +1 -0
- package/dist/utils/function-string.js +9 -0
- package/dist/utils/function-string.js.map +1 -0
- package/dist/utils/stack-info.d.ts.map +1 -1
- package/dist/utils/stack-info.js +6 -1
- package/dist/utils/stack-info.js.map +1 -1
- package/dist/utils/stack-info.test.js +54 -1
- package/dist/utils/stack-info.test.js.map +1 -1
- package/dist/utils/tests/fixture.d.ts +59 -216
- package/dist/utils/tests/fixture.d.ts.map +1 -1
- package/dist/utils/tests/fixture.js +23 -18
- package/dist/utils/tests/fixture.js.map +1 -1
- package/dist/utils/tests/mod.d.ts +1 -0
- package/dist/utils/tests/mod.d.ts.map +1 -1
- package/dist/utils/tests/mod.js +1 -0
- package/dist/utils/tests/mod.js.map +1 -1
- package/dist/utils/tests/otel.d.ts.map +1 -1
- package/dist/utils/tests/otel.js +8 -3
- package/dist/utils/tests/otel.js.map +1 -1
- package/package.json +29 -26
- package/src/{SynchronousDatabaseWrapper.ts → SqliteDbWrapper.ts} +92 -42
- package/src/effect/LiveStore.ts +27 -64
- package/src/effect/{index.ts → mod.ts} +2 -3
- package/src/internal/mod.ts +2 -0
- package/src/live-queries/__snapshots__/{db.test.ts.snap → db-query.test.ts.snap} +241 -45
- package/src/live-queries/base-class.ts +170 -53
- package/src/live-queries/client-document-get-query.ts +52 -0
- package/src/live-queries/computed.ts +51 -33
- package/src/live-queries/db-query.test.ts +192 -0
- package/src/live-queries/{db.ts → db-query.ts} +171 -82
- package/src/live-queries/mod.ts +4 -0
- package/src/live-queries/signal.test.ts +40 -0
- package/src/live-queries/signal.ts +81 -0
- package/src/mod.ts +51 -0
- package/src/reactive.test.ts +1 -1
- package/src/reactive.ts +66 -43
- package/src/store/create-store.ts +188 -62
- package/src/store/devtools.ts +124 -46
- package/src/store/store-types.ts +54 -43
- package/src/store/store.ts +457 -237
- package/src/utils/dev.ts +6 -1
- package/src/utils/function-string.ts +12 -0
- package/src/utils/stack-info.test.ts +58 -1
- package/src/utils/stack-info.ts +6 -1
- package/src/utils/tests/fixture.ts +22 -31
- package/src/utils/tests/mod.ts +1 -0
- package/src/utils/tests/otel.ts +10 -3
- package/dist/SynchronousDatabaseWrapper.d.ts +0 -41
- package/dist/SynchronousDatabaseWrapper.d.ts.map +0 -1
- package/dist/SynchronousDatabaseWrapper.js.map +0 -1
- package/dist/effect/index.d.ts +0 -2
- package/dist/effect/index.d.ts.map +0 -1
- package/dist/effect/index.js +0 -2
- package/dist/effect/index.js.map +0 -1
- package/dist/global-state.d.ts +0 -14
- package/dist/global-state.d.ts.map +0 -1
- package/dist/global-state.js +0 -16
- package/dist/global-state.js.map +0 -1
- package/dist/index.d.ts +0 -20
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -16
- package/dist/index.js.map +0 -1
- package/dist/live-queries/db.d.ts +0 -66
- package/dist/live-queries/db.d.ts.map +0 -1
- package/dist/live-queries/db.js.map +0 -1
- package/dist/live-queries/db.test.d.ts +0 -2
- package/dist/live-queries/db.test.d.ts.map +0 -1
- package/dist/live-queries/db.test.js +0 -118
- package/dist/live-queries/db.test.js.map +0 -1
- package/dist/live-queries/graphql.d.ts +0 -49
- package/dist/live-queries/graphql.d.ts.map +0 -1
- package/dist/live-queries/graphql.js +0 -122
- package/dist/live-queries/graphql.js.map +0 -1
- package/dist/row-query-utils.d.ts +0 -17
- package/dist/row-query-utils.d.ts.map +0 -1
- package/dist/row-query-utils.js +0 -30
- package/dist/row-query-utils.js.map +0 -1
- package/dist/utils/otel.d.ts +0 -4
- package/dist/utils/otel.d.ts.map +0 -1
- package/dist/utils/otel.js +0 -6
- package/dist/utils/otel.js.map +0 -1
- package/src/global-state.ts +0 -20
- package/src/index.ts +0 -66
- package/src/live-queries/db.test.ts +0 -154
- package/src/live-queries/graphql.ts +0 -219
- package/src/row-query-utils.ts +0 -65
- package/src/utils/otel.ts +0 -9
- package/tsconfig.json +0 -18
- package/vitest.config.js +0 -9
package/src/store/store-types.ts
CHANGED
@@ -1,13 +1,10 @@
|
|
1
|
-
import type { ClientSession, IntentionalShutdownCause, UnexpectedError } from '@livestore/common'
|
2
|
-
import type {
|
3
|
-
import type {
|
4
|
-
import {
|
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
6
|
|
8
|
-
import type { ReactivityGraph } from '../live-queries/base-class.js'
|
9
7
|
import type { DebugRefreshReasonBase } from '../reactive.js'
|
10
|
-
import type { SynchronousDatabaseWrapper } from '../SynchronousDatabaseWrapper.js'
|
11
8
|
import type { StackInfo } from '../utils/stack-info.js'
|
12
9
|
import type { Store } from './store.js'
|
13
10
|
|
@@ -19,63 +16,49 @@ export type LiveStoreContext =
|
|
19
16
|
}
|
20
17
|
| {
|
21
18
|
stage: 'shutdown'
|
22
|
-
cause: IntentionalShutdownCause |
|
19
|
+
cause: IntentionalShutdownCause | StoreInterrupted
|
23
20
|
}
|
24
21
|
|
25
|
-
export
|
26
|
-
export
|
27
|
-
|
28
|
-
export type ShutdownDeferred = Deferred.Deferred<
|
22
|
+
export type ShutdownDeferred = Deferred.Deferred<void, UnexpectedError | IntentionalShutdownCause | StoreInterrupted>
|
23
|
+
export const makeShutdownDeferred: Effect.Effect<ShutdownDeferred> = Deferred.make<
|
29
24
|
void,
|
30
|
-
UnexpectedError | IntentionalShutdownCause | StoreInterrupted
|
31
|
-
>
|
25
|
+
UnexpectedError | IntentionalShutdownCause | StoreInterrupted
|
26
|
+
>()
|
32
27
|
|
33
28
|
export type LiveStoreContextRunning = {
|
34
29
|
stage: 'running'
|
35
30
|
store: Store
|
36
31
|
}
|
37
32
|
|
38
|
-
export type BaseGraphQLContext = {
|
39
|
-
queriedTables: Set<string>
|
40
|
-
/** Needed by Pothos Otel plugin for resolver tracing to work */
|
41
|
-
otelContext?: otel.Context
|
42
|
-
}
|
43
|
-
|
44
|
-
export type GraphQLOptions<TContext> = {
|
45
|
-
schema: GraphQLSchema
|
46
|
-
makeContext: (db: SynchronousDatabaseWrapper, tracer: otel.Tracer, sessionId: string) => TContext
|
47
|
-
}
|
48
|
-
|
49
33
|
export type OtelOptions = {
|
50
34
|
tracer: otel.Tracer
|
51
35
|
rootSpanContext: otel.Context
|
52
36
|
}
|
53
37
|
|
54
|
-
export type StoreOptions<
|
55
|
-
TGraphQLContext extends BaseGraphQLContext,
|
56
|
-
TSchema extends LiveStoreSchema = LiveStoreSchema,
|
57
|
-
> = {
|
38
|
+
export type StoreOptions<TSchema extends LiveStoreSchema = LiveStoreSchema, TContext = {}> = {
|
58
39
|
clientSession: ClientSession
|
59
40
|
schema: TSchema
|
60
41
|
storeId: string
|
61
|
-
|
62
|
-
graphQLOptions?: GraphQLOptions<TGraphQLContext>
|
42
|
+
context: TContext
|
63
43
|
otelOptions: OtelOptions
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
44
|
+
effectContext: {
|
45
|
+
runtime: Runtime.Runtime<Scope.Scope>
|
46
|
+
lifetimeScope: Scope.Scope
|
47
|
+
}
|
48
|
+
confirmUnsavedChanges: boolean
|
68
49
|
batchUpdates: (runUpdates: () => void) => void
|
69
|
-
|
70
|
-
|
50
|
+
params: {
|
51
|
+
leaderPushBatchSize: number
|
52
|
+
}
|
53
|
+
__runningInDevtools: boolean
|
71
54
|
}
|
72
55
|
|
73
56
|
export type RefreshReason =
|
74
57
|
| DebugRefreshReasonBase
|
75
58
|
| {
|
76
|
-
_tag: '
|
77
|
-
/** The
|
78
|
-
|
59
|
+
_tag: 'commit'
|
60
|
+
/** The events that were applied */
|
61
|
+
events: ReadonlyArray<LiveStoreEvent.AnyDecoded | LiveStoreEvent.PartialAnyDecoded>
|
79
62
|
|
80
63
|
/** The tables that were written to by the event */
|
81
64
|
writeTables: ReadonlyArray<string>
|
@@ -87,10 +70,12 @@ export type RefreshReason =
|
|
87
70
|
label?: string
|
88
71
|
stackInfo?: StackInfo
|
89
72
|
}
|
73
|
+
| { _tag: 'subscribe.initial'; label?: string }
|
74
|
+
| { _tag: 'subscribe.update'; label?: string }
|
90
75
|
| { _tag: 'manual'; label?: string }
|
91
76
|
|
92
77
|
export type QueryDebugInfo = {
|
93
|
-
_tag:
|
78
|
+
_tag: string
|
94
79
|
label: string
|
95
80
|
query: string
|
96
81
|
durationMs: number
|
@@ -98,13 +83,39 @@ export type QueryDebugInfo = {
|
|
98
83
|
|
99
84
|
export type StoreOtel = {
|
100
85
|
tracer: otel.Tracer
|
101
|
-
|
86
|
+
rootSpanContext: otel.Context
|
87
|
+
commitsSpanContext: otel.Context
|
102
88
|
queriesSpanContext: otel.Context
|
103
89
|
}
|
104
90
|
|
105
|
-
export type
|
91
|
+
export type StoreCommitOptions = {
|
106
92
|
label?: string
|
107
93
|
skipRefresh?: boolean
|
108
94
|
spanLinks?: otel.Link[]
|
109
95
|
otelContext?: otel.Context
|
110
96
|
}
|
97
|
+
|
98
|
+
export type StoreEventsOptions<TSchema extends LiveStoreSchema> = {
|
99
|
+
/**
|
100
|
+
* By default only new events are returned.
|
101
|
+
* Use this to get all events from a specific point in time.
|
102
|
+
*/
|
103
|
+
cursor?: EventSequenceNumber.EventSequenceNumber
|
104
|
+
/**
|
105
|
+
* Only include events of the given names
|
106
|
+
* @default undefined (include all)
|
107
|
+
*/
|
108
|
+
filter?: ReadonlyArray<keyof TSchema['_EventDefMapType']>
|
109
|
+
/**
|
110
|
+
* Whether to include client-only events or only return synced events
|
111
|
+
* @default true
|
112
|
+
*/
|
113
|
+
includeClientOnly?: boolean
|
114
|
+
/**
|
115
|
+
* Exclude own events that have not been pushed to the sync backend yet
|
116
|
+
* @default false
|
117
|
+
*/
|
118
|
+
excludeUnpushed?: boolean
|
119
|
+
}
|
120
|
+
|
121
|
+
export type Unsubscribe = () => void
|