@livestore/react 0.3.0-dev.9 → 0.3.1-dev.0

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 (97) hide show
  1. package/LICENSE +201 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/LiveStoreContext.d.ts +10 -4
  4. package/dist/LiveStoreContext.d.ts.map +1 -1
  5. package/dist/LiveStoreContext.js +1 -11
  6. package/dist/LiveStoreContext.js.map +1 -1
  7. package/dist/LiveStoreProvider.d.ts +29 -12
  8. package/dist/LiveStoreProvider.d.ts.map +1 -1
  9. package/dist/LiveStoreProvider.js +84 -55
  10. package/dist/LiveStoreProvider.js.map +1 -1
  11. package/dist/LiveStoreProvider.test.js +80 -29
  12. package/dist/LiveStoreProvider.test.js.map +1 -1
  13. package/dist/__tests__/fixture.d.ts +122 -556
  14. package/dist/__tests__/fixture.d.ts.map +1 -1
  15. package/dist/__tests__/fixture.js +71 -30
  16. package/dist/__tests__/fixture.js.map +1 -1
  17. package/dist/experimental/components/LiveList.d.ts +2 -2
  18. package/dist/experimental/components/LiveList.d.ts.map +1 -1
  19. package/dist/experimental/components/LiveList.js +10 -6
  20. package/dist/experimental/components/LiveList.js.map +1 -1
  21. package/dist/mod.d.ts +4 -5
  22. package/dist/mod.d.ts.map +1 -1
  23. package/dist/mod.js +4 -5
  24. package/dist/mod.js.map +1 -1
  25. package/dist/useClientDocument.d.ts +61 -0
  26. package/dist/useClientDocument.d.ts.map +1 -0
  27. package/dist/useClientDocument.js +79 -0
  28. package/dist/useClientDocument.js.map +1 -0
  29. package/dist/useClientDocument.test.d.ts +2 -0
  30. package/dist/useClientDocument.test.d.ts.map +1 -0
  31. package/dist/useClientDocument.test.js +175 -0
  32. package/dist/useClientDocument.test.js.map +1 -0
  33. package/dist/useQuery.d.ts +25 -3
  34. package/dist/useQuery.d.ts.map +1 -1
  35. package/dist/useQuery.js +67 -47
  36. package/dist/useQuery.js.map +1 -1
  37. package/dist/useQuery.test.d.ts +1 -1
  38. package/dist/useQuery.test.d.ts.map +1 -1
  39. package/dist/useQuery.test.js +86 -24
  40. package/dist/useQuery.test.js.map +1 -1
  41. package/dist/useRcResource.d.ts +76 -0
  42. package/dist/useRcResource.d.ts.map +1 -0
  43. package/dist/useRcResource.js +152 -0
  44. package/dist/useRcResource.js.map +1 -0
  45. package/dist/useRcResource.test.d.ts +2 -0
  46. package/dist/useRcResource.test.d.ts.map +1 -0
  47. package/dist/useRcResource.test.js +122 -0
  48. package/dist/useRcResource.test.js.map +1 -0
  49. package/dist/useStore.d.ts +9 -0
  50. package/dist/useStore.d.ts.map +1 -0
  51. package/dist/useStore.js +28 -0
  52. package/dist/useStore.js.map +1 -0
  53. package/dist/utils/useStateRefWithReactiveInput.d.ts.map +1 -1
  54. package/package.json +20 -13
  55. package/src/LiveStoreContext.ts +11 -16
  56. package/src/LiveStoreProvider.test.tsx +176 -37
  57. package/src/LiveStoreProvider.tsx +156 -81
  58. package/src/__snapshots__/useClientDocument.test.tsx.snap +613 -0
  59. package/src/__snapshots__/useQuery.test.tsx.snap +2011 -0
  60. package/src/__tests__/fixture.tsx +74 -47
  61. package/src/experimental/components/LiveList.tsx +10 -7
  62. package/src/mod.ts +5 -6
  63. package/src/useClientDocument.test.tsx +306 -0
  64. package/src/useClientDocument.ts +157 -0
  65. package/src/useQuery.test.tsx +182 -71
  66. package/src/useQuery.ts +95 -58
  67. package/src/useRcResource.test.tsx +167 -0
  68. package/src/useRcResource.ts +182 -0
  69. package/src/useStore.ts +36 -0
  70. package/dist/useAtom.d.ts +0 -5
  71. package/dist/useAtom.d.ts.map +0 -1
  72. package/dist/useAtom.js +0 -38
  73. package/dist/useAtom.js.map +0 -1
  74. package/dist/useRow.d.ts +0 -50
  75. package/dist/useRow.d.ts.map +0 -1
  76. package/dist/useRow.js +0 -93
  77. package/dist/useRow.js.map +0 -1
  78. package/dist/useRow.test.d.ts +0 -2
  79. package/dist/useRow.test.d.ts.map +0 -1
  80. package/dist/useRow.test.js +0 -202
  81. package/dist/useRow.test.js.map +0 -1
  82. package/dist/useScopedQuery.d.ts +0 -33
  83. package/dist/useScopedQuery.d.ts.map +0 -1
  84. package/dist/useScopedQuery.js +0 -87
  85. package/dist/useScopedQuery.js.map +0 -1
  86. package/dist/useScopedQuery.test.d.ts +0 -2
  87. package/dist/useScopedQuery.test.d.ts.map +0 -1
  88. package/dist/useScopedQuery.test.js +0 -60
  89. package/dist/useScopedQuery.test.js.map +0 -1
  90. package/src/__snapshots__/useRow.test.tsx.snap +0 -360
  91. package/src/useAtom.ts +0 -52
  92. package/src/useRow.test.tsx +0 -344
  93. package/src/useRow.ts +0 -188
  94. package/src/useScopedQuery.test.tsx +0 -96
  95. package/src/useScopedQuery.ts +0 -143
  96. package/tsconfig.json +0 -20
  97. package/vitest.config.js +0 -17
@@ -0,0 +1,613 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`useClientDocument > otel > should update the data based on component key strictMode={ strictMode: false } 1`] = `
4
+ {
5
+ "_name": "createStore",
6
+ "attributes": {
7
+ "debugInstanceId": "test",
8
+ "storeId": "default",
9
+ },
10
+ "children": [
11
+ {
12
+ "_name": "livestore.in-memory-db:execute",
13
+ "attributes": {
14
+ "sql.query": "
15
+ PRAGMA page_size=32768;
16
+ PRAGMA cache_size=10000;
17
+ PRAGMA synchronous='OFF';
18
+ PRAGMA temp_store='MEMORY';
19
+ PRAGMA foreign_keys='ON'; -- we want foreign key constraints to be enforced
20
+ ",
21
+ },
22
+ },
23
+ {
24
+ "_name": "@livestore/common:LeaderSyncProcessor:push",
25
+ "attributes": {
26
+ "batch": "undefined",
27
+ "batchSize": 1,
28
+ },
29
+ },
30
+ {
31
+ "_name": "@livestore/common:LeaderSyncProcessor:push",
32
+ "attributes": {
33
+ "batch": "undefined",
34
+ "batchSize": 1,
35
+ },
36
+ },
37
+ {
38
+ "_name": "client-session-sync-processor:pull",
39
+ "attributes": {
40
+ "code.stacktrace": "at /Users/schickling/Code/overtone/submodules/livestore/packages/@livestore/common/src/sync/ClientSessionSyncProcessor.ts:281:14",
41
+ "span.label": "⚠︎ Interrupted",
42
+ "status.interrupted": true,
43
+ },
44
+ },
45
+ {
46
+ "_name": "LiveStore:sync",
47
+ },
48
+ {
49
+ "_name": "LiveStore:commits",
50
+ "children": [
51
+ {
52
+ "_name": "LiveStore:commit",
53
+ "attributes": {
54
+ "livestore.eventTags": [
55
+ "UserInfoSet",
56
+ ],
57
+ "livestore.eventsCount": 1,
58
+ },
59
+ "children": [
60
+ {
61
+ "_name": "livestore.in-memory-db:execute",
62
+ "attributes": {
63
+ "sql.query": "
64
+ INSERT INTO 'UserInfo' (id, value)
65
+ VALUES (?, ?)
66
+ ON CONFLICT (id) DO UPDATE SET value = json_set(value, ?, json(?))
67
+ ",
68
+ },
69
+ },
70
+ ],
71
+ },
72
+ ],
73
+ },
74
+ {
75
+ "_name": "LiveStore:queries",
76
+ "children": [
77
+ {
78
+ "_name": "LiveStore:useClientDocument:UserInfo:u1",
79
+ "attributes": {
80
+ "firstStackInfo": "{"frames":[{"name":"Store.store.useClientDocument","filePath":"__REPLACED_FOR_SNAPSHOT__"},{"name":"useClientDocument","filePath":"__REPLACED_FOR_SNAPSHOT__"}]}",
81
+ "label": "SELECT * FROM 'UserInfo' WHERE id = ?",
82
+ },
83
+ "children": [
84
+ {
85
+ "_name": "sql-in-memory-select",
86
+ "attributes": {
87
+ "sql.cached": false,
88
+ "sql.query": "SELECT 1 FROM 'UserInfo' WHERE id = ?",
89
+ "sql.rowsCount": 0,
90
+ },
91
+ },
92
+ {
93
+ "_name": "LiveStore:commit",
94
+ "attributes": {
95
+ "livestore.commitLabel": "UserInfo.set:u1",
96
+ "livestore.eventTags": [
97
+ "UserInfoSet",
98
+ ],
99
+ "livestore.eventsCount": 1,
100
+ },
101
+ "children": [
102
+ {
103
+ "_name": "livestore.in-memory-db:execute",
104
+ "attributes": {
105
+ "sql.query": "
106
+ INSERT INTO 'UserInfo' (id, value)
107
+ VALUES (?, ?)
108
+ ON CONFLICT (id) DO UPDATE SET value = json_set(json_set(value, ?, json(?)), ?, json(?))
109
+ ",
110
+ },
111
+ },
112
+ ],
113
+ },
114
+ {
115
+ "_name": "db:SELECT * FROM 'UserInfo' WHERE id = ?",
116
+ "attributes": {
117
+ "livestore.debugRefreshReason": "useQuery:initial-run:UserInfo.get:u1",
118
+ "sql.query": "SELECT * FROM 'UserInfo' WHERE id = ?",
119
+ "sql.rowsCount": 1,
120
+ },
121
+ "children": [
122
+ {
123
+ "_name": "sql-in-memory-select",
124
+ "attributes": {
125
+ "sql.cached": false,
126
+ "sql.query": "SELECT * FROM 'UserInfo' WHERE id = ?",
127
+ "sql.rowsCount": 1,
128
+ },
129
+ },
130
+ ],
131
+ },
132
+ {
133
+ "_name": "LiveStore.subscribe",
134
+ "attributes": {
135
+ "label": "UserInfo.get:u1",
136
+ "queryLabel": "UserInfo.get:u1",
137
+ },
138
+ "children": [
139
+ {
140
+ "_name": "db:SELECT * FROM 'UserInfo' WHERE id = ?",
141
+ "attributes": {
142
+ "livestore.debugRefreshReason": "commit",
143
+ "sql.query": "SELECT * FROM 'UserInfo' WHERE id = ?",
144
+ "sql.rowsCount": 1,
145
+ },
146
+ "children": [
147
+ {
148
+ "_name": "sql-in-memory-select",
149
+ "attributes": {
150
+ "sql.cached": false,
151
+ "sql.query": "SELECT * FROM 'UserInfo' WHERE id = ?",
152
+ "sql.rowsCount": 1,
153
+ },
154
+ },
155
+ ],
156
+ },
157
+ ],
158
+ },
159
+ ],
160
+ },
161
+ {
162
+ "_name": "LiveStore:useClientDocument:UserInfo:u2",
163
+ "attributes": {
164
+ "firstStackInfo": "{"frames":[{"name":"Store.store.useClientDocument","filePath":"__REPLACED_FOR_SNAPSHOT__"},{"name":"useClientDocument","filePath":"__REPLACED_FOR_SNAPSHOT__"}]}",
165
+ "label": "SELECT * FROM 'UserInfo' WHERE id = ?",
166
+ },
167
+ "children": [
168
+ {
169
+ "_name": "sql-in-memory-select",
170
+ "attributes": {
171
+ "sql.cached": false,
172
+ "sql.query": "SELECT 1 FROM 'UserInfo' WHERE id = ?",
173
+ "sql.rowsCount": 1,
174
+ },
175
+ },
176
+ {
177
+ "_name": "db:SELECT * FROM 'UserInfo' WHERE id = ?",
178
+ "attributes": {
179
+ "livestore.debugRefreshReason": "useQuery:initial-run:UserInfo.get:u2",
180
+ "sql.query": "SELECT * FROM 'UserInfo' WHERE id = ?",
181
+ "sql.rowsCount": 1,
182
+ },
183
+ "children": [
184
+ {
185
+ "_name": "sql-in-memory-select",
186
+ "attributes": {
187
+ "sql.cached": false,
188
+ "sql.query": "SELECT * FROM 'UserInfo' WHERE id = ?",
189
+ "sql.rowsCount": 1,
190
+ },
191
+ },
192
+ ],
193
+ },
194
+ {
195
+ "_name": "LiveStore.subscribe",
196
+ "attributes": {
197
+ "label": "UserInfo.get:u2",
198
+ "queryLabel": "UserInfo.get:u2",
199
+ },
200
+ "children": [
201
+ {
202
+ "_name": "db:SELECT * FROM 'UserInfo' WHERE id = ?",
203
+ "attributes": {
204
+ "livestore.debugRefreshReason": "subscribe-initial-run:UserInfo.get:u2",
205
+ "sql.query": "SELECT * FROM 'UserInfo' WHERE id = ?",
206
+ "sql.rowsCount": 1,
207
+ },
208
+ "children": [
209
+ {
210
+ "_name": "sql-in-memory-select",
211
+ "attributes": {
212
+ "sql.cached": true,
213
+ "sql.query": "SELECT * FROM 'UserInfo' WHERE id = ?",
214
+ "sql.rowsCount": 1,
215
+ },
216
+ },
217
+ ],
218
+ },
219
+ ],
220
+ },
221
+ ],
222
+ },
223
+ ],
224
+ },
225
+ ],
226
+ }
227
+ `;
228
+
229
+ exports[`useClientDocument > otel > should update the data based on component key strictMode={ strictMode: true } 1`] = `
230
+ {
231
+ "_name": "createStore",
232
+ "attributes": {
233
+ "debugInstanceId": "test",
234
+ "storeId": "default",
235
+ },
236
+ "children": [
237
+ {
238
+ "_name": "livestore.in-memory-db:execute",
239
+ "attributes": {
240
+ "sql.query": "
241
+ PRAGMA page_size=32768;
242
+ PRAGMA cache_size=10000;
243
+ PRAGMA synchronous='OFF';
244
+ PRAGMA temp_store='MEMORY';
245
+ PRAGMA foreign_keys='ON'; -- we want foreign key constraints to be enforced
246
+ ",
247
+ },
248
+ },
249
+ {
250
+ "_name": "@livestore/common:LeaderSyncProcessor:push",
251
+ "attributes": {
252
+ "batch": "undefined",
253
+ "batchSize": 1,
254
+ },
255
+ },
256
+ {
257
+ "_name": "@livestore/common:LeaderSyncProcessor:push",
258
+ "attributes": {
259
+ "batch": "undefined",
260
+ "batchSize": 1,
261
+ },
262
+ },
263
+ {
264
+ "_name": "client-session-sync-processor:pull",
265
+ "attributes": {
266
+ "code.stacktrace": "at /Users/schickling/Code/overtone/submodules/livestore/packages/@livestore/common/src/sync/ClientSessionSyncProcessor.ts:281:14",
267
+ "span.label": "⚠︎ Interrupted",
268
+ "status.interrupted": true,
269
+ },
270
+ },
271
+ {
272
+ "_name": "LiveStore:sync",
273
+ },
274
+ {
275
+ "_name": "LiveStore:commits",
276
+ "children": [
277
+ {
278
+ "_name": "LiveStore:commit",
279
+ "attributes": {
280
+ "livestore.eventTags": [
281
+ "UserInfoSet",
282
+ ],
283
+ "livestore.eventsCount": 1,
284
+ },
285
+ "children": [
286
+ {
287
+ "_name": "livestore.in-memory-db:execute",
288
+ "attributes": {
289
+ "sql.query": "
290
+ INSERT INTO 'UserInfo' (id, value)
291
+ VALUES (?, ?)
292
+ ON CONFLICT (id) DO UPDATE SET value = json_set(value, ?, json(?))
293
+ ",
294
+ },
295
+ },
296
+ ],
297
+ },
298
+ ],
299
+ },
300
+ {
301
+ "_name": "LiveStore:queries",
302
+ "children": [
303
+ {
304
+ "_name": "LiveStore:useClientDocument:UserInfo:u1",
305
+ "attributes": {
306
+ "firstStackInfo": "{"frames":[{"name":"Store.store.useClientDocument","filePath":"__REPLACED_FOR_SNAPSHOT__"},{"name":"useClientDocument","filePath":"__REPLACED_FOR_SNAPSHOT__"}]}",
307
+ "label": "SELECT * FROM 'UserInfo' WHERE id = ?",
308
+ },
309
+ "children": [
310
+ {
311
+ "_name": "sql-in-memory-select",
312
+ "attributes": {
313
+ "sql.cached": false,
314
+ "sql.query": "SELECT 1 FROM 'UserInfo' WHERE id = ?",
315
+ "sql.rowsCount": 0,
316
+ },
317
+ },
318
+ {
319
+ "_name": "LiveStore:commit",
320
+ "attributes": {
321
+ "livestore.commitLabel": "UserInfo.set:u1",
322
+ "livestore.eventTags": [
323
+ "UserInfoSet",
324
+ ],
325
+ "livestore.eventsCount": 1,
326
+ },
327
+ "children": [
328
+ {
329
+ "_name": "livestore.in-memory-db:execute",
330
+ "attributes": {
331
+ "sql.query": "
332
+ INSERT INTO 'UserInfo' (id, value)
333
+ VALUES (?, ?)
334
+ ON CONFLICT (id) DO UPDATE SET value = json_set(json_set(value, ?, json(?)), ?, json(?))
335
+ ",
336
+ },
337
+ },
338
+ ],
339
+ },
340
+ {
341
+ "_name": "db:SELECT * FROM 'UserInfo' WHERE id = ?",
342
+ "attributes": {
343
+ "livestore.debugRefreshReason": "useQuery:initial-run:UserInfo.get:u1",
344
+ "sql.query": "SELECT * FROM 'UserInfo' WHERE id = ?",
345
+ "sql.rowsCount": 1,
346
+ },
347
+ "children": [
348
+ {
349
+ "_name": "sql-in-memory-select",
350
+ "attributes": {
351
+ "sql.cached": false,
352
+ "sql.query": "SELECT * FROM 'UserInfo' WHERE id = ?",
353
+ "sql.rowsCount": 1,
354
+ },
355
+ },
356
+ ],
357
+ },
358
+ {
359
+ "_name": "LiveStore.subscribe",
360
+ "attributes": {
361
+ "label": "UserInfo.get:u1",
362
+ "queryLabel": "UserInfo.get:u1",
363
+ },
364
+ "children": [
365
+ {
366
+ "_name": "db:SELECT * FROM 'UserInfo' WHERE id = ?",
367
+ "attributes": {
368
+ "livestore.debugRefreshReason": "commit",
369
+ "sql.query": "SELECT * FROM 'UserInfo' WHERE id = ?",
370
+ "sql.rowsCount": 1,
371
+ },
372
+ "children": [
373
+ {
374
+ "_name": "sql-in-memory-select",
375
+ "attributes": {
376
+ "sql.cached": false,
377
+ "sql.query": "SELECT * FROM 'UserInfo' WHERE id = ?",
378
+ "sql.rowsCount": 1,
379
+ },
380
+ },
381
+ ],
382
+ },
383
+ ],
384
+ },
385
+ ],
386
+ },
387
+ ],
388
+ },
389
+ ],
390
+ }
391
+ `;
392
+
393
+ exports[`useClientDocument > should update the data based on component key 1`] = `
394
+ {
395
+ "atoms": [
396
+ {
397
+ "_tag": "ref",
398
+ "id": "node-1",
399
+ "isDestroyed": false,
400
+ "isDirty": false,
401
+ "label": "tableRef:todos",
402
+ "meta": {
403
+ "liveStoreRefType": "table",
404
+ },
405
+ "previousResult": {
406
+ "_tag": "Some",
407
+ "value": "null",
408
+ },
409
+ "refreshes": 0,
410
+ "sub": [],
411
+ "super": [],
412
+ },
413
+ {
414
+ "_tag": "ref",
415
+ "id": "node-2",
416
+ "isDestroyed": false,
417
+ "isDirty": false,
418
+ "label": "tableRef:app",
419
+ "meta": {
420
+ "liveStoreRefType": "table",
421
+ },
422
+ "previousResult": {
423
+ "_tag": "Some",
424
+ "value": "null",
425
+ },
426
+ "refreshes": 0,
427
+ "sub": [],
428
+ "super": [],
429
+ },
430
+ {
431
+ "_tag": "ref",
432
+ "id": "node-3",
433
+ "isDestroyed": false,
434
+ "isDirty": false,
435
+ "label": "tableRef:UserInfo",
436
+ "meta": {
437
+ "liveStoreRefType": "table",
438
+ },
439
+ "previousResult": {
440
+ "_tag": "Some",
441
+ "value": "null",
442
+ },
443
+ "refreshes": 1,
444
+ "sub": [],
445
+ "super": [
446
+ "node-5",
447
+ ],
448
+ },
449
+ {
450
+ "_tag": "ref",
451
+ "id": "node-4",
452
+ "isDestroyed": false,
453
+ "isDirty": false,
454
+ "label": "tableRef:AppRouter",
455
+ "meta": {
456
+ "liveStoreRefType": "table",
457
+ },
458
+ "previousResult": {
459
+ "_tag": "Some",
460
+ "value": "null",
461
+ },
462
+ "refreshes": 0,
463
+ "sub": [],
464
+ "super": [],
465
+ },
466
+ {
467
+ "_tag": "thunk",
468
+ "id": "node-5",
469
+ "isDestroyed": false,
470
+ "isDirty": false,
471
+ "label": "UserInfo.get:u1:results",
472
+ "meta": {
473
+ "liveStoreThunkType": "db.result",
474
+ },
475
+ "previousResult": {
476
+ "_tag": "Some",
477
+ "value": "{"username":"","text":""}",
478
+ },
479
+ "recomputations": 1,
480
+ "sub": [
481
+ "node-3",
482
+ ],
483
+ "super": [
484
+ "node-6",
485
+ ],
486
+ },
487
+ ],
488
+ "deferredEffects": [],
489
+ "effects": [
490
+ {
491
+ "_tag": "effect",
492
+ "id": "node-6",
493
+ "invocations": 1,
494
+ "isDestroyed": false,
495
+ "label": "subscribe:UserInfo.get:u1",
496
+ "sub": [
497
+ "node-5",
498
+ ],
499
+ },
500
+ ],
501
+ }
502
+ `;
503
+
504
+ exports[`useClientDocument > should update the data based on component key 2`] = `
505
+ {
506
+ "atoms": [
507
+ {
508
+ "_tag": "ref",
509
+ "id": "node-1",
510
+ "isDestroyed": false,
511
+ "isDirty": false,
512
+ "label": "tableRef:todos",
513
+ "meta": {
514
+ "liveStoreRefType": "table",
515
+ },
516
+ "previousResult": {
517
+ "_tag": "Some",
518
+ "value": "null",
519
+ },
520
+ "refreshes": 0,
521
+ "sub": [],
522
+ "super": [],
523
+ },
524
+ {
525
+ "_tag": "ref",
526
+ "id": "node-2",
527
+ "isDestroyed": false,
528
+ "isDirty": false,
529
+ "label": "tableRef:app",
530
+ "meta": {
531
+ "liveStoreRefType": "table",
532
+ },
533
+ "previousResult": {
534
+ "_tag": "Some",
535
+ "value": "null",
536
+ },
537
+ "refreshes": 0,
538
+ "sub": [],
539
+ "super": [],
540
+ },
541
+ {
542
+ "_tag": "ref",
543
+ "id": "node-3",
544
+ "isDestroyed": false,
545
+ "isDirty": false,
546
+ "label": "tableRef:UserInfo",
547
+ "meta": {
548
+ "liveStoreRefType": "table",
549
+ },
550
+ "previousResult": {
551
+ "_tag": "Some",
552
+ "value": "null",
553
+ },
554
+ "refreshes": 2,
555
+ "sub": [],
556
+ "super": [
557
+ "node-7",
558
+ ],
559
+ },
560
+ {
561
+ "_tag": "ref",
562
+ "id": "node-4",
563
+ "isDestroyed": false,
564
+ "isDirty": false,
565
+ "label": "tableRef:AppRouter",
566
+ "meta": {
567
+ "liveStoreRefType": "table",
568
+ },
569
+ "previousResult": {
570
+ "_tag": "Some",
571
+ "value": "null",
572
+ },
573
+ "refreshes": 0,
574
+ "sub": [],
575
+ "super": [],
576
+ },
577
+ {
578
+ "_tag": "thunk",
579
+ "id": "node-7",
580
+ "isDestroyed": false,
581
+ "isDirty": false,
582
+ "label": "UserInfo.get:u2:results",
583
+ "meta": {
584
+ "liveStoreThunkType": "db.result",
585
+ },
586
+ "previousResult": {
587
+ "_tag": "Some",
588
+ "value": "{"username":"username_u2","text":""}",
589
+ },
590
+ "recomputations": 2,
591
+ "sub": [
592
+ "node-3",
593
+ ],
594
+ "super": [
595
+ "node-8",
596
+ ],
597
+ },
598
+ ],
599
+ "deferredEffects": [],
600
+ "effects": [
601
+ {
602
+ "_tag": "effect",
603
+ "id": "node-8",
604
+ "invocations": 1,
605
+ "isDestroyed": false,
606
+ "label": "subscribe:UserInfo.get:u2",
607
+ "sub": [
608
+ "node-7",
609
+ ],
610
+ },
611
+ ],
612
+ }
613
+ `;