@livestore/livestore 0.3.0-dev.28 → 0.3.0-dev.29
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/SqliteDbWrapper.d.ts.map +1 -1
- package/dist/SqliteDbWrapper.js +4 -1
- package/dist/SqliteDbWrapper.js.map +1 -1
- package/dist/live-queries/base-class.d.ts +8 -12
- package/dist/live-queries/base-class.d.ts.map +1 -1
- 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 +4 -8
- package/dist/live-queries/computed.d.ts.map +1 -1
- package/dist/live-queries/computed.js +1 -6
- package/dist/live-queries/computed.js.map +1 -1
- package/dist/live-queries/db-query.d.ts +13 -18
- package/dist/live-queries/db-query.d.ts.map +1 -1
- package/dist/live-queries/db-query.js +34 -34
- package/dist/live-queries/db-query.js.map +1 -1
- package/dist/live-queries/db-query.test.js +32 -23
- package/dist/live-queries/db-query.test.js.map +1 -1
- package/dist/live-queries/make-ref.d.ts.map +1 -1
- package/dist/live-queries/make-ref.js +1 -0
- package/dist/live-queries/make-ref.js.map +1 -1
- package/dist/mod.d.ts +0 -1
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +0 -1
- package/dist/mod.js.map +1 -1
- package/dist/reactive.d.ts.map +1 -1
- package/dist/reactive.js +1 -1
- package/dist/reactive.js.map +1 -1
- package/dist/store/create-store.js +2 -2
- package/dist/store/create-store.js.map +1 -1
- package/dist/store/store-types.d.ts +5 -5
- package/dist/store/store-types.d.ts.map +1 -1
- package/dist/store/store.d.ts +27 -26
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +74 -69
- package/dist/store/store.js.map +1 -1
- package/dist/utils/stack-info.test.js +6 -6
- package/dist/utils/tests/fixture.d.ts +54 -207
- package/dist/utils/tests/fixture.d.ts.map +1 -1
- package/dist/utils/tests/fixture.js +20 -13
- package/dist/utils/tests/fixture.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 +7 -7
- package/src/SqliteDbWrapper.ts +4 -1
- package/src/live-queries/__snapshots__/db-query.test.ts.snap +9 -9
- package/src/live-queries/base-class.ts +8 -25
- package/src/live-queries/client-document-get-query.ts +52 -0
- package/src/live-queries/computed.ts +4 -18
- package/src/live-queries/db-query.test.ts +38 -24
- package/src/live-queries/db-query.ts +60 -66
- package/src/live-queries/make-ref.ts +2 -0
- package/src/mod.ts +0 -2
- package/src/reactive.ts +1 -1
- package/src/store/create-store.ts +2 -2
- package/src/store/store-types.ts +5 -5
- package/src/store/store.ts +97 -91
- package/src/utils/stack-info.test.ts +6 -6
- package/src/utils/tests/fixture.ts +21 -25
- package/src/utils/tests/otel.ts +10 -3
- package/tmp/pack.tgz +0 -0
- 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 -34
- package/dist/row-query-utils.js.map +0 -1
- package/src/row-query-utils.ts +0 -76
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import { DbSchema } from '@livestore/livestore';
|
|
4
|
-
import { Effect } from '@livestore/utils/effect';
|
|
1
|
+
import { State } from '@livestore/livestore';
|
|
2
|
+
import { Effect, Schema } from '@livestore/utils/effect';
|
|
5
3
|
import type * as otel from '@opentelemetry/api';
|
|
6
4
|
export type Todo = {
|
|
7
5
|
id: string;
|
|
@@ -13,26 +11,26 @@ export type AppState = {
|
|
|
13
11
|
newTodoText: string;
|
|
14
12
|
filter: Filter;
|
|
15
13
|
};
|
|
16
|
-
export declare const todos:
|
|
14
|
+
export declare const todos: State.SQLite.TableDef<{
|
|
17
15
|
name: "todos";
|
|
18
16
|
columns: {
|
|
19
|
-
id: {
|
|
17
|
+
readonly id: {
|
|
20
18
|
columnType: "text";
|
|
21
|
-
schema:
|
|
19
|
+
schema: Schema.Schema<string, string, never>;
|
|
22
20
|
default: import("effect/Option").None<never>;
|
|
23
21
|
nullable: false;
|
|
24
22
|
primaryKey: true;
|
|
25
23
|
};
|
|
26
|
-
text: {
|
|
24
|
+
readonly text: {
|
|
27
25
|
columnType: "text";
|
|
28
|
-
schema:
|
|
26
|
+
schema: Schema.Schema<string, string, never>;
|
|
29
27
|
default: import("effect/Option").Some<"">;
|
|
30
28
|
nullable: false;
|
|
31
29
|
primaryKey: false;
|
|
32
30
|
};
|
|
33
|
-
completed: {
|
|
31
|
+
readonly completed: {
|
|
34
32
|
columnType: "integer";
|
|
35
|
-
schema:
|
|
33
|
+
schema: Schema.Schema<boolean, number, never>;
|
|
36
34
|
default: import("effect/Option").Some<false>;
|
|
37
35
|
nullable: false;
|
|
38
36
|
primaryKey: false;
|
|
@@ -41,15 +39,9 @@ export declare const todos: DbSchema.TableDef<{
|
|
|
41
39
|
indexes?: ReadonlyArray<import("@livestore/common/dist/schema/db-schema/dsl/mod.js").Index>;
|
|
42
40
|
ast: import("@livestore/common/dist/schema/db-schema/ast/sqlite.js").Table;
|
|
43
41
|
}, {
|
|
44
|
-
|
|
45
|
-
disableAutomaticIdColumn: false;
|
|
46
|
-
deriveMutations: {
|
|
47
|
-
enabled: true;
|
|
48
|
-
clientOnly: false;
|
|
49
|
-
};
|
|
50
|
-
isSingleColumn: false;
|
|
42
|
+
isClientDocumentTable: false;
|
|
51
43
|
requiredInsertColumnNames: "id";
|
|
52
|
-
},
|
|
44
|
+
}, Schema.Schema<{
|
|
53
45
|
readonly id: string;
|
|
54
46
|
readonly text: string;
|
|
55
47
|
readonly completed: boolean;
|
|
@@ -58,69 +50,43 @@ export declare const todos: DbSchema.TableDef<{
|
|
|
58
50
|
readonly text: string;
|
|
59
51
|
readonly completed: number;
|
|
60
52
|
}, never>>;
|
|
61
|
-
export declare const app:
|
|
62
|
-
name: "app";
|
|
63
|
-
columns: {
|
|
64
|
-
id: {
|
|
65
|
-
columnType: "text";
|
|
66
|
-
schema: import("effect/Schema").Schema<string, string, never>;
|
|
67
|
-
default: import("effect/Option").Some<"static">;
|
|
68
|
-
nullable: false;
|
|
69
|
-
primaryKey: true;
|
|
70
|
-
};
|
|
71
|
-
newTodoText: {
|
|
72
|
-
columnType: "text";
|
|
73
|
-
schema: import("effect/Schema").Schema<string | null, string | null, never>;
|
|
74
|
-
default: import("effect/Option").Some<"">;
|
|
75
|
-
nullable: true;
|
|
76
|
-
primaryKey: false;
|
|
77
|
-
};
|
|
78
|
-
filter: {
|
|
79
|
-
columnType: "text";
|
|
80
|
-
schema: import("effect/Schema").Schema<string, string, never>;
|
|
81
|
-
default: import("effect/Option").Some<"all">;
|
|
82
|
-
nullable: false;
|
|
83
|
-
primaryKey: false;
|
|
84
|
-
};
|
|
85
|
-
};
|
|
86
|
-
indexes?: ReadonlyArray<import("@livestore/common/dist/schema/db-schema/dsl/mod.js").Index>;
|
|
87
|
-
ast: import("@livestore/common/dist/schema/db-schema/ast/sqlite.js").Table;
|
|
88
|
-
}, {
|
|
89
|
-
isSingleton: true;
|
|
90
|
-
disableAutomaticIdColumn: false;
|
|
91
|
-
deriveMutations: never;
|
|
92
|
-
isSingleColumn: false;
|
|
93
|
-
requiredInsertColumnNames: never;
|
|
94
|
-
}, import("effect/Schema").Schema<{
|
|
95
|
-
readonly id: string;
|
|
96
|
-
readonly newTodoText: string | null;
|
|
53
|
+
export declare const app: State.SQLite.ClientDocumentTableDef<"app", {
|
|
97
54
|
readonly filter: string;
|
|
55
|
+
readonly newTodoText: string;
|
|
98
56
|
}, {
|
|
99
|
-
readonly id: string;
|
|
100
|
-
readonly newTodoText: string | null;
|
|
101
57
|
readonly filter: string;
|
|
102
|
-
|
|
58
|
+
readonly newTodoText: string;
|
|
59
|
+
}, {
|
|
60
|
+
partialSet: true;
|
|
61
|
+
default: {
|
|
62
|
+
id: undefined;
|
|
63
|
+
value: {
|
|
64
|
+
readonly newTodoText: "";
|
|
65
|
+
readonly filter: "all";
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
}>;
|
|
103
69
|
export declare const tables: {
|
|
104
|
-
todos:
|
|
70
|
+
todos: State.SQLite.TableDef<{
|
|
105
71
|
name: "todos";
|
|
106
72
|
columns: {
|
|
107
|
-
id: {
|
|
73
|
+
readonly id: {
|
|
108
74
|
columnType: "text";
|
|
109
|
-
schema:
|
|
75
|
+
schema: Schema.Schema<string, string, never>;
|
|
110
76
|
default: import("effect/Option").None<never>;
|
|
111
77
|
nullable: false;
|
|
112
78
|
primaryKey: true;
|
|
113
79
|
};
|
|
114
|
-
text: {
|
|
80
|
+
readonly text: {
|
|
115
81
|
columnType: "text";
|
|
116
|
-
schema:
|
|
82
|
+
schema: Schema.Schema<string, string, never>;
|
|
117
83
|
default: import("effect/Option").Some<"">;
|
|
118
84
|
nullable: false;
|
|
119
85
|
primaryKey: false;
|
|
120
86
|
};
|
|
121
|
-
completed: {
|
|
87
|
+
readonly completed: {
|
|
122
88
|
columnType: "integer";
|
|
123
|
-
schema:
|
|
89
|
+
schema: Schema.Schema<boolean, number, never>;
|
|
124
90
|
default: import("effect/Option").Some<false>;
|
|
125
91
|
nullable: false;
|
|
126
92
|
primaryKey: false;
|
|
@@ -129,15 +95,9 @@ export declare const tables: {
|
|
|
129
95
|
indexes?: ReadonlyArray<import("@livestore/common/dist/schema/db-schema/dsl/mod.js").Index>;
|
|
130
96
|
ast: import("@livestore/common/dist/schema/db-schema/ast/sqlite.js").Table;
|
|
131
97
|
}, {
|
|
132
|
-
|
|
133
|
-
disableAutomaticIdColumn: false;
|
|
134
|
-
deriveMutations: {
|
|
135
|
-
enabled: true;
|
|
136
|
-
clientOnly: false;
|
|
137
|
-
};
|
|
138
|
-
isSingleColumn: false;
|
|
98
|
+
isClientDocumentTable: false;
|
|
139
99
|
requiredInsertColumnNames: "id";
|
|
140
|
-
},
|
|
100
|
+
}, Schema.Schema<{
|
|
141
101
|
readonly id: string;
|
|
142
102
|
readonly text: string;
|
|
143
103
|
readonly completed: boolean;
|
|
@@ -146,146 +106,33 @@ export declare const tables: {
|
|
|
146
106
|
readonly text: string;
|
|
147
107
|
readonly completed: number;
|
|
148
108
|
}, never>>;
|
|
149
|
-
app:
|
|
150
|
-
name: "app";
|
|
151
|
-
columns: {
|
|
152
|
-
id: {
|
|
153
|
-
columnType: "text";
|
|
154
|
-
schema: import("effect/Schema").Schema<string, string, never>;
|
|
155
|
-
default: import("effect/Option").Some<"static">;
|
|
156
|
-
nullable: false;
|
|
157
|
-
primaryKey: true;
|
|
158
|
-
};
|
|
159
|
-
newTodoText: {
|
|
160
|
-
columnType: "text";
|
|
161
|
-
schema: import("effect/Schema").Schema<string | null, string | null, never>;
|
|
162
|
-
default: import("effect/Option").Some<"">;
|
|
163
|
-
nullable: true;
|
|
164
|
-
primaryKey: false;
|
|
165
|
-
};
|
|
166
|
-
filter: {
|
|
167
|
-
columnType: "text";
|
|
168
|
-
schema: import("effect/Schema").Schema<string, string, never>;
|
|
169
|
-
default: import("effect/Option").Some<"all">;
|
|
170
|
-
nullable: false;
|
|
171
|
-
primaryKey: false;
|
|
172
|
-
};
|
|
173
|
-
};
|
|
174
|
-
indexes?: ReadonlyArray<import("@livestore/common/dist/schema/db-schema/dsl/mod.js").Index>;
|
|
175
|
-
ast: import("@livestore/common/dist/schema/db-schema/ast/sqlite.js").Table;
|
|
176
|
-
}, {
|
|
177
|
-
isSingleton: true;
|
|
178
|
-
disableAutomaticIdColumn: false;
|
|
179
|
-
deriveMutations: never;
|
|
180
|
-
isSingleColumn: false;
|
|
181
|
-
requiredInsertColumnNames: never;
|
|
182
|
-
}, import("effect/Schema").Schema<{
|
|
183
|
-
readonly id: string;
|
|
184
|
-
readonly newTodoText: string | null;
|
|
109
|
+
app: State.SQLite.ClientDocumentTableDef<"app", {
|
|
185
110
|
readonly filter: string;
|
|
111
|
+
readonly newTodoText: string;
|
|
186
112
|
}, {
|
|
187
|
-
readonly id: string;
|
|
188
|
-
readonly newTodoText: string | null;
|
|
189
113
|
readonly filter: string;
|
|
190
|
-
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
columnType: "text";
|
|
199
|
-
schema: import("effect/Schema").Schema<string, string, never>;
|
|
200
|
-
default: import("effect/Option").None<never>;
|
|
201
|
-
nullable: false;
|
|
202
|
-
primaryKey: true;
|
|
203
|
-
};
|
|
204
|
-
text: {
|
|
205
|
-
columnType: "text";
|
|
206
|
-
schema: import("effect/Schema").Schema<string, string, never>;
|
|
207
|
-
default: import("effect/Option").Some<"">;
|
|
208
|
-
nullable: false;
|
|
209
|
-
primaryKey: false;
|
|
210
|
-
};
|
|
211
|
-
completed: {
|
|
212
|
-
columnType: "integer";
|
|
213
|
-
schema: import("effect/Schema").Schema<boolean, number, never>;
|
|
214
|
-
default: import("effect/Option").Some<false>;
|
|
215
|
-
nullable: false;
|
|
216
|
-
primaryKey: false;
|
|
217
|
-
};
|
|
218
|
-
};
|
|
219
|
-
indexes?: ReadonlyArray<import("@livestore/common/dist/schema/db-schema/dsl/mod.js").Index>;
|
|
220
|
-
ast: import("@livestore/common/dist/schema/db-schema/ast/sqlite.js").Table;
|
|
221
|
-
}, {
|
|
222
|
-
isSingleton: false;
|
|
223
|
-
disableAutomaticIdColumn: false;
|
|
224
|
-
deriveMutations: {
|
|
225
|
-
enabled: true;
|
|
226
|
-
clientOnly: false;
|
|
227
|
-
};
|
|
228
|
-
isSingleColumn: false;
|
|
229
|
-
requiredInsertColumnNames: "id";
|
|
230
|
-
}, import("effect/Schema").Schema<{
|
|
231
|
-
readonly id: string;
|
|
232
|
-
readonly text: string;
|
|
233
|
-
readonly completed: boolean;
|
|
234
|
-
}, {
|
|
235
|
-
readonly id: string;
|
|
236
|
-
readonly text: string;
|
|
237
|
-
readonly completed: number;
|
|
238
|
-
}, never>>;
|
|
239
|
-
app: DbSchema.TableDef<{
|
|
240
|
-
name: "app";
|
|
241
|
-
columns: {
|
|
242
|
-
id: {
|
|
243
|
-
columnType: "text";
|
|
244
|
-
schema: import("effect/Schema").Schema<string, string, never>;
|
|
245
|
-
default: import("effect/Option").Some<"static">;
|
|
246
|
-
nullable: false;
|
|
247
|
-
primaryKey: true;
|
|
248
|
-
};
|
|
249
|
-
newTodoText: {
|
|
250
|
-
columnType: "text";
|
|
251
|
-
schema: import("effect/Schema").Schema<string | null, string | null, never>;
|
|
252
|
-
default: import("effect/Option").Some<"">;
|
|
253
|
-
nullable: true;
|
|
254
|
-
primaryKey: false;
|
|
255
|
-
};
|
|
256
|
-
filter: {
|
|
257
|
-
columnType: "text";
|
|
258
|
-
schema: import("effect/Schema").Schema<string, string, never>;
|
|
259
|
-
default: import("effect/Option").Some<"all">;
|
|
260
|
-
nullable: false;
|
|
261
|
-
primaryKey: false;
|
|
262
|
-
};
|
|
114
|
+
readonly newTodoText: string;
|
|
115
|
+
}, {
|
|
116
|
+
partialSet: true;
|
|
117
|
+
default: {
|
|
118
|
+
id: undefined;
|
|
119
|
+
value: {
|
|
120
|
+
readonly newTodoText: "";
|
|
121
|
+
readonly filter: "all";
|
|
263
122
|
};
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
requiredInsertColumnNames: never;
|
|
272
|
-
}, import("effect/Schema").Schema<{
|
|
273
|
-
readonly id: string;
|
|
274
|
-
readonly newTodoText: string | null;
|
|
275
|
-
readonly filter: string;
|
|
276
|
-
}, {
|
|
277
|
-
readonly id: string;
|
|
278
|
-
readonly newTodoText: string | null;
|
|
279
|
-
readonly filter: string;
|
|
280
|
-
}, never>>;
|
|
281
|
-
};
|
|
123
|
+
};
|
|
124
|
+
}>;
|
|
125
|
+
};
|
|
126
|
+
export declare const state: import("@livestore/common/dist/schema/schema.js").State;
|
|
127
|
+
export declare const schema: import("@livestore/livestore").FromInputSchema.DeriveSchema<{
|
|
128
|
+
state: import("@livestore/common/dist/schema/schema.js").State;
|
|
129
|
+
events: {};
|
|
282
130
|
}>;
|
|
283
|
-
export interface FixtureSchema extends FromInputSchema.DeriveSchema<{
|
|
284
|
-
tables: typeof tables;
|
|
285
|
-
}> {
|
|
286
|
-
}
|
|
287
131
|
export declare const makeTodoMvc: ({ otelTracer, otelContext, }?: {
|
|
288
132
|
otelTracer?: otel.Tracer;
|
|
289
133
|
otelContext?: otel.Context;
|
|
290
|
-
}) => Effect.Effect<
|
|
134
|
+
}) => Effect.Effect<import("@livestore/livestore").Store<import("@livestore/livestore").FromInputSchema.DeriveSchema<{
|
|
135
|
+
state: import("@livestore/common/dist/schema/schema.js").State;
|
|
136
|
+
events: {};
|
|
137
|
+
}>, {}>, import("@livestore/common").UnexpectedError, import("effect/Scope").Scope>;
|
|
291
138
|
//# sourceMappingURL=fixture.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../../src/utils/tests/fixture.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../../src/utils/tests/fixture.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAA;AAEnD,MAAM,MAAM,QAAQ,GAAG;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAOhB,CAAA;AAEF,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;EAOd,CAAA;AAEF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiB,CAAA;AAEpC,eAAO,MAAM,KAAK,yDAAwD,CAAA;AAC1E,eAAO,MAAM,MAAM;;;EAAoC,CAAA;AAEvD,eAAO,MAAM,WAAW,GAAI,+BAGzB;IACD,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAA;CACtB;;;mFAU4E,CAAA"}
|
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
import { makeInMemoryAdapter } from '@livestore/adapter-web';
|
|
2
2
|
import { provideOtel } from '@livestore/common';
|
|
3
|
-
import { createStore,
|
|
4
|
-
import { Effect } from '@livestore/utils/effect';
|
|
5
|
-
export const todos =
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
3
|
+
import { createStore, makeSchema, State } from '@livestore/livestore';
|
|
4
|
+
import { Effect, Schema } from '@livestore/utils/effect';
|
|
5
|
+
export const todos = State.SQLite.table({
|
|
6
|
+
name: 'todos',
|
|
7
|
+
columns: {
|
|
8
|
+
id: State.SQLite.text({ primaryKey: true }),
|
|
9
|
+
text: State.SQLite.text({ default: '', nullable: false }),
|
|
10
|
+
completed: State.SQLite.boolean({ default: false, nullable: false }),
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
export const app = State.SQLite.clientDocument({
|
|
14
|
+
name: 'app',
|
|
15
|
+
schema: Schema.Struct({
|
|
16
|
+
newTodoText: Schema.String,
|
|
17
|
+
filter: Schema.String,
|
|
18
|
+
}),
|
|
19
|
+
default: { value: { newTodoText: '', filter: 'all' } },
|
|
20
|
+
});
|
|
15
21
|
export const tables = { todos, app };
|
|
16
|
-
export const
|
|
22
|
+
export const state = State.SQLite.makeState({ tables, materializers: {} });
|
|
23
|
+
export const schema = makeSchema({ state, events: {} });
|
|
17
24
|
export const makeTodoMvc = ({ otelTracer, otelContext, } = {}) => Effect.gen(function* () {
|
|
18
25
|
const store = yield* createStore({
|
|
19
26
|
schema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../../src/utils/tests/fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../../src/utils/tests/fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAgBxD,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IACtC,IAAI,EAAE,OAAO;IACb,OAAO,EAAE;QACP,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAC3C,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACzD,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;KACrE;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;IAC7C,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;IACF,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;CACvD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;AAEpC,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;AAC1E,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,UAAU,EACV,WAAW,MAIT,EAAE,EAAE,EAAE,CACR,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;QAC/B,MAAM;QACN,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,mBAAmB,EAAE;QAC9B,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;KAC9B,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../../src/utils/tests/otel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACvF,KAAK,oBAAoB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,oBAAoB,EAAE,CAAA;CAAE,CAAA;AAEhG,eAAO,MAAM,qBAAqB,GAChC,UAAU,oBAAoB,EAC9B,gBAAgB,CAAC,UAAU,EAAE,UAAU,KAAK,UAAU,KACrD,
|
|
1
|
+
{"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../../src/utils/tests/otel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACvF,KAAK,oBAAoB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,oBAAoB,EAAE,CAAA;CAAE,CAAA;AAEhG,eAAO,MAAM,qBAAqB,GAChC,UAAU,oBAAoB,EAC9B,gBAAgB,CAAC,UAAU,EAAE,UAAU,KAAK,UAAU,KACrD,oBA+CF,CAAA;AAqBD,eAAO,MAAM,WAAW,GAAI,OAAO,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDhD,CAAA"}
|
package/dist/utils/tests/otel.js
CHANGED
|
@@ -4,12 +4,17 @@ export const getSimplifiedRootSpan = (exporter, mapAttributes) => {
|
|
|
4
4
|
const spansMap = new Map(spans.map((span) => [span.spanContext().spanId, { span, children: [] }]));
|
|
5
5
|
const mapAttributesfn = mapAttributes ?? identity;
|
|
6
6
|
spansMap.forEach((nestedSpan) => {
|
|
7
|
-
const
|
|
7
|
+
const parentId = nestedSpan.span.parentSpanContext?.spanId;
|
|
8
|
+
const parentSpan = parentId ? spansMap.get(parentId) : undefined;
|
|
8
9
|
if (parentSpan) {
|
|
9
10
|
parentSpan.children.push(nestedSpan);
|
|
10
11
|
}
|
|
11
12
|
});
|
|
12
|
-
const
|
|
13
|
+
const createStoreSpanData = spans.find((_) => _.name === 'createStore');
|
|
14
|
+
if (createStoreSpanData === undefined) {
|
|
15
|
+
throw new Error("Could not find the root span named 'createStore'. Available spans: " + spans.map((s) => s.name).join(', '));
|
|
16
|
+
}
|
|
17
|
+
const rootSpan = spansMap.get(createStoreSpanData.spanContext().spanId);
|
|
13
18
|
const simplifySpanRec = (span) => omitEmpty({
|
|
14
19
|
_name: span.span.name,
|
|
15
20
|
attributes: mapAttributesfn(span.span.attributes),
|
|
@@ -64,7 +69,7 @@ export const toTraceFile = (spans) => {
|
|
|
64
69
|
spans: spans.map((span) => ({
|
|
65
70
|
traceId: span.spanContext().traceId,
|
|
66
71
|
spanId: span.spanContext().spanId,
|
|
67
|
-
...(span.
|
|
72
|
+
...(span.parentSpanContext?.spanId ? { parentSpanId: span.parentSpanContext.spanId } : {}),
|
|
68
73
|
// traceState: span.spanContext().traceState ?? '',
|
|
69
74
|
name: span.name,
|
|
70
75
|
kind: 'SPAN_KIND_INTERNAL',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel.js","sourceRoot":"","sources":["../../../src/utils/tests/otel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAKlD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,QAA8B,EAC9B,aAAsD,EAChC,EAAE;IACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAA;IACzC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAqB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAEtH,MAAM,eAAe,GAAG,aAAa,IAAI,QAAQ,CAAA;IAEjD,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QAC9B,MAAM,
|
|
1
|
+
{"version":3,"file":"otel.js","sourceRoot":"","sources":["../../../src/utils/tests/otel.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.
|
|
3
|
+
"version": "0.3.0-dev.29",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"exports": {
|
|
@@ -37,16 +37,16 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@opentelemetry/api": "1.9.0",
|
|
40
|
-
"@livestore/common": "0.3.0-dev.
|
|
41
|
-
"@livestore/utils": "0.3.0-dev.
|
|
40
|
+
"@livestore/common": "0.3.0-dev.29",
|
|
41
|
+
"@livestore/utils": "0.3.0-dev.29"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@opentelemetry/sdk-trace-base": "^
|
|
44
|
+
"@opentelemetry/sdk-trace-base": "^2.0.0",
|
|
45
45
|
"jsdom": "^26.0.0",
|
|
46
|
-
"typescript": "^5.8.
|
|
46
|
+
"typescript": "^5.8.3",
|
|
47
47
|
"vite": "^6.2.1",
|
|
48
|
-
"vitest": "^3.
|
|
49
|
-
"@livestore/adapter-web": "0.3.0-dev.
|
|
48
|
+
"vitest": "^3.1.1",
|
|
49
|
+
"@livestore/adapter-web": "0.3.0-dev.29"
|
|
50
50
|
},
|
|
51
51
|
"publishConfig": {
|
|
52
52
|
"access": "public"
|
package/src/SqliteDbWrapper.ts
CHANGED
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
sql,
|
|
18
18
|
SqliteError,
|
|
19
19
|
} from '@livestore/common'
|
|
20
|
-
import { isDevEnv } from '@livestore/utils'
|
|
20
|
+
import { isDevEnv, LS_DEV } from '@livestore/utils'
|
|
21
21
|
import type * as otel from '@opentelemetry/api'
|
|
22
22
|
|
|
23
23
|
import QueryCache from './QueryCache.js'
|
|
@@ -212,6 +212,9 @@ export class SqliteDbWrapper implements SqliteDb {
|
|
|
212
212
|
} catch (cause: any) {
|
|
213
213
|
span.recordException(cause)
|
|
214
214
|
span.end()
|
|
215
|
+
if (LS_DEV) {
|
|
216
|
+
debugger
|
|
217
|
+
}
|
|
215
218
|
throw new SqliteError({ cause, query: { bindValues: bindValues ?? {}, sql: queryStr } })
|
|
216
219
|
}
|
|
217
220
|
},
|
|
@@ -32,15 +32,15 @@ exports[`otel > otel 3`] = `
|
|
|
32
32
|
"_name": "LiveStore:sync",
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
"_name": "LiveStore:
|
|
35
|
+
"_name": "LiveStore:commits",
|
|
36
36
|
"children": [
|
|
37
37
|
{
|
|
38
38
|
"_name": "LiveStore:commit",
|
|
39
39
|
"attributes": {
|
|
40
|
-
"livestore.
|
|
40
|
+
"livestore.eventTags": [
|
|
41
41
|
"livestore.RawSql",
|
|
42
42
|
],
|
|
43
|
-
"livestore.
|
|
43
|
+
"livestore.eventsCount": 1,
|
|
44
44
|
},
|
|
45
45
|
"children": [
|
|
46
46
|
{
|
|
@@ -300,15 +300,15 @@ exports[`otel > with thunks 7`] = `
|
|
|
300
300
|
"_name": "LiveStore:sync",
|
|
301
301
|
},
|
|
302
302
|
{
|
|
303
|
-
"_name": "LiveStore:
|
|
303
|
+
"_name": "LiveStore:commits",
|
|
304
304
|
"children": [
|
|
305
305
|
{
|
|
306
306
|
"_name": "LiveStore:commit",
|
|
307
307
|
"attributes": {
|
|
308
|
-
"livestore.
|
|
308
|
+
"livestore.eventTags": [
|
|
309
309
|
"livestore.RawSql",
|
|
310
310
|
],
|
|
311
|
-
"livestore.
|
|
311
|
+
"livestore.eventsCount": 1,
|
|
312
312
|
},
|
|
313
313
|
"children": [
|
|
314
314
|
{
|
|
@@ -402,15 +402,15 @@ exports[`otel > with thunks with query builder and without labels 3`] = `
|
|
|
402
402
|
"_name": "LiveStore:sync",
|
|
403
403
|
},
|
|
404
404
|
{
|
|
405
|
-
"_name": "LiveStore:
|
|
405
|
+
"_name": "LiveStore:commits",
|
|
406
406
|
"children": [
|
|
407
407
|
{
|
|
408
408
|
"_name": "LiveStore:commit",
|
|
409
409
|
"attributes": {
|
|
410
|
-
"livestore.
|
|
410
|
+
"livestore.eventTags": [
|
|
411
411
|
"livestore.RawSql",
|
|
412
412
|
],
|
|
413
|
-
"livestore.
|
|
413
|
+
"livestore.eventsCount": 1,
|
|
414
414
|
},
|
|
415
415
|
"children": [
|
|
416
416
|
{
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { QueryInfo } from '@livestore/common'
|
|
2
1
|
import { isNotNil } from '@livestore/utils'
|
|
3
2
|
import type * as otel from '@opentelemetry/api'
|
|
4
3
|
|
|
@@ -24,11 +23,7 @@ export type ReactivityGraphContext = {
|
|
|
24
23
|
}
|
|
25
24
|
|
|
26
25
|
export type GetResult<TQuery extends LiveQueryDef.Any | LiveQuery.Any> =
|
|
27
|
-
TQuery extends LiveQuery<infer TResult
|
|
28
|
-
? TResult
|
|
29
|
-
: TQuery extends LiveQueryDef<infer TResult, infer _1>
|
|
30
|
-
? TResult
|
|
31
|
-
: unknown
|
|
26
|
+
TQuery extends LiveQuery<infer TResult> ? TResult : TQuery extends LiveQueryDef<infer TResult> ? TResult : unknown
|
|
32
27
|
|
|
33
28
|
let queryIdCounter = 0
|
|
34
29
|
|
|
@@ -65,23 +60,22 @@ export const depsToString = (deps: DepKey): string => {
|
|
|
65
60
|
return deps.filter(isNotNil).join(',')
|
|
66
61
|
}
|
|
67
62
|
|
|
68
|
-
export interface LiveQueryDef<TResult
|
|
63
|
+
export interface LiveQueryDef<TResult> {
|
|
69
64
|
_tag: 'def'
|
|
70
65
|
/** Creates a new LiveQuery instance bound to a specific store/reactivityGraph */
|
|
71
|
-
make: (ctx: ReactivityGraphContext, otelContext?: otel.Context) => RcRef<LiveQuery<TResult
|
|
66
|
+
make: (ctx: ReactivityGraphContext, otelContext?: otel.Context) => RcRef<LiveQuery<TResult>>
|
|
72
67
|
label: string
|
|
73
68
|
hash: string
|
|
74
|
-
queryInfo: TQueryInfo
|
|
75
69
|
}
|
|
76
70
|
|
|
77
71
|
export namespace LiveQueryDef {
|
|
78
|
-
export type Any = LiveQueryDef<any
|
|
72
|
+
export type Any = LiveQueryDef<any>
|
|
79
73
|
}
|
|
80
74
|
|
|
81
75
|
/**
|
|
82
76
|
* A LiveQuery is stateful
|
|
83
77
|
*/
|
|
84
|
-
export interface LiveQuery<TResult
|
|
78
|
+
export interface LiveQuery<TResult> {
|
|
85
79
|
id: number
|
|
86
80
|
_tag: 'computed' | 'db' | 'graphql'
|
|
87
81
|
[TypeId]: TypeId
|
|
@@ -109,20 +103,16 @@ export interface LiveQuery<TResult, TQueryInfo extends QueryInfo = QueryInfo.Non
|
|
|
109
103
|
|
|
110
104
|
activeSubscriptions: Set<StackInfo>
|
|
111
105
|
|
|
112
|
-
queryInfo: TQueryInfo
|
|
113
|
-
|
|
114
106
|
runs: number
|
|
115
107
|
|
|
116
108
|
executionTimes: number[]
|
|
117
109
|
}
|
|
118
110
|
|
|
119
111
|
export namespace LiveQuery {
|
|
120
|
-
export type Any = LiveQuery<any
|
|
112
|
+
export type Any = LiveQuery<any>
|
|
121
113
|
}
|
|
122
114
|
|
|
123
|
-
export abstract class LiveStoreQueryBase<TResult
|
|
124
|
-
implements LiveQuery<TResult, TQueryInfo>
|
|
125
|
-
{
|
|
115
|
+
export abstract class LiveStoreQueryBase<TResult> implements LiveQuery<TResult> {
|
|
126
116
|
'__result!'!: TResult
|
|
127
117
|
id = queryIdCounter++;
|
|
128
118
|
[TypeId]: TypeId = TypeId
|
|
@@ -137,8 +127,6 @@ export abstract class LiveStoreQueryBase<TResult, TQueryInfo extends QueryInfo>
|
|
|
137
127
|
|
|
138
128
|
abstract readonly reactivityGraph: ReactivityGraph
|
|
139
129
|
|
|
140
|
-
abstract queryInfo: TQueryInfo
|
|
141
|
-
|
|
142
130
|
get runs() {
|
|
143
131
|
return this.results$.recomputations
|
|
144
132
|
}
|
|
@@ -165,12 +153,7 @@ export abstract class LiveStoreQueryBase<TResult, TQueryInfo extends QueryInfo>
|
|
|
165
153
|
}
|
|
166
154
|
|
|
167
155
|
export type GetAtomResult = <T>(
|
|
168
|
-
atom:
|
|
169
|
-
| RG.Atom<T, any, RefreshReason>
|
|
170
|
-
| LiveQueryDef<T, any>
|
|
171
|
-
| LiveQuery<T, any>
|
|
172
|
-
| ILiveQueryRef<T>
|
|
173
|
-
| ILiveQueryRefDef<T>,
|
|
156
|
+
atom: RG.Atom<T, any, RefreshReason> | LiveQueryDef<T> | LiveQuery<T> | ILiveQueryRef<T> | ILiveQueryRefDef<T>,
|
|
174
157
|
otelContext?: otel.Context | undefined,
|
|
175
158
|
debugRefreshReason?: RefreshReason | undefined,
|
|
176
159
|
) => T
|