@livestore/livestore 0.0.19 → 0.0.22

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 (136) hide show
  1. package/README.md +29 -22
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/QueryCache.d.ts +1 -1
  4. package/dist/QueryCache.d.ts.map +1 -1
  5. package/dist/QueryCache.js.map +1 -1
  6. package/dist/__tests__/react/fixture.d.ts +5 -4
  7. package/dist/__tests__/react/fixture.d.ts.map +1 -1
  8. package/dist/__tests__/react/fixture.js +3 -5
  9. package/dist/__tests__/react/fixture.js.map +1 -1
  10. package/dist/__tests__/react/useComponentState.test.d.ts +2 -0
  11. package/dist/__tests__/react/useComponentState.test.d.ts.map +1 -0
  12. package/dist/__tests__/react/useComponentState.test.js +68 -0
  13. package/dist/__tests__/react/useComponentState.test.js.map +1 -0
  14. package/dist/__tests__/react/useLQuery.test.d.ts +2 -0
  15. package/dist/__tests__/react/useLQuery.test.d.ts.map +1 -0
  16. package/dist/__tests__/react/useLQuery.test.js +38 -0
  17. package/dist/__tests__/react/useLQuery.test.js.map +1 -0
  18. package/dist/__tests__/react/useLiveStoreComponent.test.js +4 -9
  19. package/dist/__tests__/react/useLiveStoreComponent.test.js.map +1 -1
  20. package/dist/__tests__/react/useQuery.test.d.ts +2 -0
  21. package/dist/__tests__/react/useQuery.test.d.ts.map +1 -0
  22. package/dist/__tests__/react/useQuery.test.js +33 -0
  23. package/dist/__tests__/react/useQuery.test.js.map +1 -0
  24. package/dist/__tests__/react/utils/extractStackInfoFromStackTrace.test.d.ts +2 -0
  25. package/dist/__tests__/react/utils/extractStackInfoFromStackTrace.test.d.ts.map +1 -0
  26. package/dist/__tests__/react/utils/extractStackInfoFromStackTrace.test.js +38 -0
  27. package/dist/__tests__/react/utils/extractStackInfoFromStackTrace.test.js.map +1 -0
  28. package/dist/__tests__/react/utils/stack-info.test.d.ts +2 -0
  29. package/dist/__tests__/react/utils/stack-info.test.d.ts.map +1 -0
  30. package/dist/__tests__/react/utils/stack-info.test.js +43 -0
  31. package/dist/__tests__/react/utils/stack-info.test.js.map +1 -0
  32. package/dist/__tests__/reactive.test.js +179 -93
  33. package/dist/__tests__/reactive.test.js.map +1 -1
  34. package/dist/__tests__/reactiveQueries/sql.test.d.ts +2 -0
  35. package/dist/__tests__/reactiveQueries/sql.test.d.ts.map +1 -0
  36. package/dist/__tests__/reactiveQueries/sql.test.js +337 -0
  37. package/dist/__tests__/reactiveQueries/sql.test.js.map +1 -0
  38. package/dist/inMemoryDatabase.d.ts +4 -3
  39. package/dist/inMemoryDatabase.d.ts.map +1 -1
  40. package/dist/inMemoryDatabase.js +3 -2
  41. package/dist/inMemoryDatabase.js.map +1 -1
  42. package/dist/index.d.ts +7 -5
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +4 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/react/index.d.ts +4 -3
  47. package/dist/react/index.d.ts.map +1 -1
  48. package/dist/react/index.js +3 -2
  49. package/dist/react/index.js.map +1 -1
  50. package/dist/react/useComponentState.d.ts +50 -0
  51. package/dist/react/useComponentState.d.ts.map +1 -0
  52. package/dist/react/useComponentState.js +240 -0
  53. package/dist/react/useComponentState.js.map +1 -0
  54. package/dist/react/useGlobalQuery.d.ts +3 -0
  55. package/dist/react/useGlobalQuery.d.ts.map +1 -0
  56. package/dist/react/useGlobalQuery.js +26 -0
  57. package/dist/react/useGlobalQuery.js.map +1 -0
  58. package/dist/react/useGraphQL.d.ts +3 -3
  59. package/dist/react/useGraphQL.d.ts.map +1 -1
  60. package/dist/react/useGraphQL.js +10 -8
  61. package/dist/react/useGraphQL.js.map +1 -1
  62. package/dist/react/useLiveStoreComponent.d.ts +6 -6
  63. package/dist/react/useLiveStoreComponent.d.ts.map +1 -1
  64. package/dist/react/useLiveStoreComponent.js +143 -99
  65. package/dist/react/useLiveStoreComponent.js.map +1 -1
  66. package/dist/react/useQuery.d.ts +2 -2
  67. package/dist/react/useQuery.d.ts.map +1 -1
  68. package/dist/react/useQuery.js +54 -30
  69. package/dist/react/useQuery.js.map +1 -1
  70. package/dist/react/useTemporaryQuery.d.ts +8 -0
  71. package/dist/react/useTemporaryQuery.d.ts.map +1 -0
  72. package/dist/react/useTemporaryQuery.js +19 -0
  73. package/dist/react/useTemporaryQuery.js.map +1 -0
  74. package/dist/react/utils/extractNamesFromStackTrace.d.ts +3 -0
  75. package/dist/react/utils/extractNamesFromStackTrace.d.ts.map +1 -0
  76. package/dist/react/utils/extractNamesFromStackTrace.js +40 -0
  77. package/dist/react/utils/extractNamesFromStackTrace.js.map +1 -0
  78. package/dist/react/utils/extractStackInfoFromStackTrace.d.ts +7 -0
  79. package/dist/react/utils/extractStackInfoFromStackTrace.d.ts.map +1 -0
  80. package/dist/react/utils/extractStackInfoFromStackTrace.js +40 -0
  81. package/dist/react/utils/extractStackInfoFromStackTrace.js.map +1 -0
  82. package/dist/react/utils/stack-info.d.ts +11 -0
  83. package/dist/react/utils/stack-info.d.ts.map +1 -0
  84. package/dist/react/utils/stack-info.js +49 -0
  85. package/dist/react/utils/stack-info.js.map +1 -0
  86. package/dist/reactive.d.ts +51 -67
  87. package/dist/reactive.d.ts.map +1 -1
  88. package/dist/reactive.js +138 -220
  89. package/dist/reactive.js.map +1 -1
  90. package/dist/reactiveQueries/base-class.d.ts +28 -21
  91. package/dist/reactiveQueries/base-class.d.ts.map +1 -1
  92. package/dist/reactiveQueries/base-class.js +22 -18
  93. package/dist/reactiveQueries/base-class.js.map +1 -1
  94. package/dist/reactiveQueries/graph.d.ts +10 -0
  95. package/dist/reactiveQueries/graph.d.ts.map +1 -0
  96. package/dist/reactiveQueries/graph.js +6 -0
  97. package/dist/reactiveQueries/graph.js.map +1 -0
  98. package/dist/reactiveQueries/graphql.d.ts +35 -17
  99. package/dist/reactiveQueries/graphql.d.ts.map +1 -1
  100. package/dist/reactiveQueries/graphql.js +86 -10
  101. package/dist/reactiveQueries/graphql.js.map +1 -1
  102. package/dist/reactiveQueries/js.d.ts +17 -12
  103. package/dist/reactiveQueries/js.d.ts.map +1 -1
  104. package/dist/reactiveQueries/js.js +30 -8
  105. package/dist/reactiveQueries/js.js.map +1 -1
  106. package/dist/reactiveQueries/sql.d.ts +28 -18
  107. package/dist/reactiveQueries/sql.d.ts.map +1 -1
  108. package/dist/reactiveQueries/sql.js +79 -16
  109. package/dist/reactiveQueries/sql.js.map +1 -1
  110. package/dist/store.d.ts +35 -61
  111. package/dist/store.d.ts.map +1 -1
  112. package/dist/store.js +77 -272
  113. package/dist/store.js.map +1 -1
  114. package/package.json +4 -3
  115. package/src/QueryCache.ts +1 -1
  116. package/src/__tests__/react/fixture.tsx +10 -8
  117. package/src/__tests__/react/{useLiveStoreComponent.test.tsx → useComponentState.test.tsx} +9 -20
  118. package/src/__tests__/react/useQuery.test.tsx +48 -0
  119. package/src/__tests__/react/utils/stack-info.test.ts +45 -0
  120. package/src/__tests__/reactive.test.ts +212 -140
  121. package/src/__tests__/reactiveQueries/sql.test.ts +372 -0
  122. package/src/inMemoryDatabase.ts +11 -8
  123. package/src/index.ts +7 -11
  124. package/src/react/index.ts +4 -7
  125. package/src/react/{useLiveStoreComponent.ts → useComponentState.ts} +90 -253
  126. package/src/react/useQuery.ts +74 -40
  127. package/src/react/useTemporaryQuery.ts +23 -0
  128. package/src/react/utils/stack-info.ts +63 -0
  129. package/src/reactive.ts +234 -308
  130. package/src/reactiveQueries/base-class.ts +59 -42
  131. package/src/reactiveQueries/graph.ts +15 -0
  132. package/src/reactiveQueries/graphql.ts +143 -29
  133. package/src/reactiveQueries/js.ts +57 -20
  134. package/src/reactiveQueries/sql.ts +136 -36
  135. package/src/store.ts +121 -426
  136. package/src/react/useGraphQL.ts +0 -138
@@ -1,20 +1,18 @@
1
- import { makeNoopTracer } from '@livestore/utils';
2
- import * as otel from '@opentelemetry/api';
3
1
  import { describe, expect, it } from 'vitest';
4
2
  import { ReactiveGraph } from '../reactive.js';
5
- const mockOtelCtx = otel.context.active();
6
3
  describe('a trivial graph', () => {
7
4
  const makeGraph = () => {
8
- const graph = new ReactiveGraph({ otelTracer: makeNoopTracer() });
9
- const a = graph.makeRef(1);
10
- const b = graph.makeRef(2);
5
+ const graph = new ReactiveGraph({});
6
+ graph.context = {};
7
+ const a = graph.makeRef(1, { label: 'a' });
8
+ const b = graph.makeRef(2, { label: 'b' });
11
9
  const numberOfRunsForC = { runs: 0 };
12
10
  const c = graph.makeThunk((get) => {
13
11
  numberOfRunsForC.runs++;
14
12
  return get(a) + get(b);
15
- }, undefined, mockOtelCtx);
16
- const d = graph.makeRef(3);
17
- const e = graph.makeThunk((get) => get(c) + get(d), undefined, mockOtelCtx);
13
+ }, { label: 'c' });
14
+ const d = graph.makeRef(3, { label: 'd' });
15
+ const e = graph.makeThunk((get) => get(c) + get(d), { label: 'e' });
18
16
  // a(1) b(2)
19
17
  // \ /
20
18
  // \ /
@@ -25,18 +23,36 @@ describe('a trivial graph', () => {
25
23
  // \ \
26
24
  // \ \
27
25
  // e = c + d
26
+ expect(graph.atoms.size).toBe(5);
28
27
  return { graph, a, b, c, d, e, numberOfRunsForC };
29
28
  };
30
29
  it('has the right initial values', () => {
31
30
  const { c, e } = makeGraph();
32
- expect(c.result).toBe(3);
33
- expect(e.result).toBe(6);
31
+ expect(c.computeResult()).toBe(3);
32
+ expect(e.computeResult()).toBe(6);
34
33
  });
35
34
  it('propagates change through the graph', () => {
36
35
  const { graph, a, c, e } = makeGraph();
37
- graph.setRef(a, 5, undefined, mockOtelCtx);
38
- expect(c.result).toBe(7);
39
- expect(e.result).toBe(10);
36
+ graph.setRef(a, 5);
37
+ expect(c.computeResult()).toBe(7);
38
+ expect(e.computeResult()).toBe(10);
39
+ });
40
+ it('does not rerun downstream computations eagerly when an upstream dep changes', () => {
41
+ const { graph, a, c, numberOfRunsForC } = makeGraph();
42
+ expect(numberOfRunsForC.runs).toBe(0);
43
+ graph.setRef(a, 5);
44
+ expect(numberOfRunsForC.runs).toBe(0);
45
+ c.computeResult();
46
+ expect(numberOfRunsForC.runs).toBe(1);
47
+ });
48
+ it('does not rerun c when d is edited and e is rerun', () => {
49
+ const { graph, d, e, numberOfRunsForC } = makeGraph();
50
+ expect(numberOfRunsForC.runs).toBe(0);
51
+ expect(e.computeResult()).toBe(3 + 3);
52
+ expect(numberOfRunsForC.runs).toBe(1);
53
+ graph.setRef(d, 4);
54
+ expect(e.computeResult()).toBe(4 + 3);
55
+ expect(numberOfRunsForC.runs).toBe(1);
40
56
  });
41
57
  it('cuts off reactive propagation when a thunk evaluates to same result as before', () => {
42
58
  const { graph, a, c, d } = makeGraph();
@@ -44,89 +60,146 @@ describe('a trivial graph', () => {
44
60
  const f = graph.makeThunk((get) => {
45
61
  numberOfRuns++;
46
62
  return get(c) + get(d);
47
- }, undefined, mockOtelCtx);
48
- expect(numberOfRuns).toBe(1); // initializing f should run it once
63
+ });
64
+ expect(numberOfRuns).toBe(0); // defining f shouldn't run it yet
65
+ f.computeResult();
66
+ expect(numberOfRuns).toBe(1); // refreshing should run it once
49
67
  // f doesn't run because a is set to same value as before
50
- graph.setRef(a, 1, undefined, mockOtelCtx);
51
- expect(f.result).toBe(6);
52
- expect(numberOfRuns).toBe(1);
68
+ graph.setRef(a, 1);
69
+ expect(f.computeResult()).toBe(6);
70
+ // expect(numberOfRuns).toBe(1) // TODO comp caching
53
71
  // f runs because a is set to a different value
54
- graph.setRef(a, 5, undefined, mockOtelCtx);
55
- expect(f.result).toBe(10);
56
- expect(numberOfRuns).toBe(2);
72
+ graph.setRef(a, 5);
73
+ expect(f.computeResult()).toBe(10);
74
+ // expect(numberOfRuns).toBe(2) // TODO comp caching
57
75
  // f runs again when d is set to a different value
58
- graph.setRef(d, 4, undefined, mockOtelCtx);
59
- expect(f.result).toBe(11);
60
- expect(numberOfRuns).toBe(3);
76
+ graph.setRef(d, 4);
77
+ expect(f.computeResult()).toBe(11);
78
+ // expect(numberOfRuns).toBe(3) // TODO comp caching
61
79
  // f only runs one time if we set two refs together
62
80
  graph.setRefs([
63
81
  [a, 6],
64
82
  [d, 5],
65
- ], undefined, mockOtelCtx);
66
- expect(f.result).toBe(13);
67
- expect(numberOfRuns).toBe(4);
83
+ ]);
84
+ expect(f.computeResult()).toBe(13);
85
+ // expect(numberOfRuns).toBe(4) // TODO comp caching
68
86
  });
69
87
  it('only runs a thunk once when two upstream refs are updated together', () => {
70
88
  const { graph, a, b, c, numberOfRunsForC } = makeGraph();
71
- expect(numberOfRunsForC.runs).toBe(1);
72
89
  graph.setRefs([
73
90
  [a, 5],
74
91
  [b, 6],
75
- ], undefined, mockOtelCtx);
76
- expect(numberOfRunsForC.runs).toBe(2);
77
- expect(c.result).toBe(11);
78
- });
79
- it('skips refresh when that option is passed when setting a single ref', () => {
80
- const { graph, a, c, numberOfRunsForC } = makeGraph();
81
- expect(numberOfRunsForC.runs).toBe(1);
82
- graph.setRef(a, 5, { skipRefresh: true }, mockOtelCtx);
83
- // C hasn't changed
84
- expect(numberOfRunsForC.runs).toBe(1);
85
- expect(c.result).toBe(3);
86
- // Now we trigger a refresh and everything runs
87
- graph.refresh(undefined, mockOtelCtx);
88
- expect(numberOfRunsForC.runs).toBe(2);
89
- expect(c.result).toBe(7);
90
- });
91
- it('skips refresh when that option is passed when setting multiple refs together', () => {
92
- const { graph, a, b, c, numberOfRunsForC } = makeGraph();
92
+ ]);
93
+ expect(numberOfRunsForC.runs).toBe(0);
94
+ expect(c.computeResult()).toBe(11);
93
95
  expect(numberOfRunsForC.runs).toBe(1);
94
- graph.setRefs([
95
- [a, 5],
96
- [b, 6],
97
- ], { skipRefresh: true }, mockOtelCtx);
98
- // C hasn't changed
99
- expect(numberOfRunsForC.runs).toBe(1);
100
- expect(c.result).toBe(3);
101
- // Now we trigger a refresh and everything runs
102
- graph.refresh(undefined, mockOtelCtx);
103
- expect(numberOfRunsForC.runs).toBe(2);
104
- expect(c.result).toBe(11);
105
96
  });
106
97
  describe('effects', () => {
98
+ // TODO TBD whether we want to keep this as intended behavior
99
+ it(`doesn't run on initial definition`, () => {
100
+ const { graph, c, numberOfRunsForC } = makeGraph();
101
+ expect(numberOfRunsForC.runs).toBe(0);
102
+ c.computeResult();
103
+ expect(numberOfRunsForC.runs).toBe(1);
104
+ let numberOfEffectRuns = 0;
105
+ const effect = graph.makeEffect((get) => {
106
+ // establish a dependency on thunk c and mutate an outside value
107
+ expect(get(c)).toBe(3);
108
+ numberOfEffectRuns++;
109
+ });
110
+ expect(numberOfEffectRuns).toBe(0);
111
+ expect(numberOfRunsForC.runs).toBe(1);
112
+ effect.doEffect();
113
+ expect(numberOfEffectRuns).toBe(1);
114
+ });
107
115
  it('only reruns an effect if the thunk value changed', () => {
108
116
  const { graph, a, c } = makeGraph();
109
- let numberOfCallsToC = 0;
110
- graph.makeEffect((get) => {
117
+ let numberOfEffectRuns = 0;
118
+ let aHasChanged = true;
119
+ expect(numberOfEffectRuns).toBe(0);
120
+ const effect = graph.makeEffect((get) => {
111
121
  // establish a dependency on thunk c and mutate an outside value
112
- get(c);
113
- numberOfCallsToC++;
114
- }, undefined, mockOtelCtx);
115
- expect(numberOfCallsToC).toBe(1);
122
+ expect(get(c)).toBe(aHasChanged ? 3 : 4);
123
+ numberOfEffectRuns++;
124
+ });
125
+ expect(numberOfEffectRuns).toBe(0);
126
+ effect.doEffect();
127
+ expect(numberOfEffectRuns).toBe(1);
116
128
  // if we set a to the same value, the effect should not run again
117
- graph.setRef(a, 1, undefined, mockOtelCtx);
118
- expect(numberOfCallsToC).toBe(1);
119
- graph.setRef(a, 2, undefined, mockOtelCtx);
120
- expect(numberOfCallsToC).toBe(2);
129
+ graph.setRef(a, 1);
130
+ // expect(numberOfCallsToC).toBe(1) // TODO comp caching
131
+ aHasChanged = false;
132
+ graph.setRef(a, 2);
133
+ // expect(numberOfCallsToC).toBe(2) // TODO comp caching
121
134
  });
122
135
  });
123
136
  });
137
+ describe('a dynamic graph', () => {
138
+ const makeGraph = () => {
139
+ const graph = new ReactiveGraph({});
140
+ graph.context = {};
141
+ const a = graph.makeRef(1, { label: 'a' });
142
+ const b = graph.makeRef(2, { label: 'b' });
143
+ const c = graph.makeRef('a', { label: 'c' });
144
+ const numberOfRunsForD = { runs: 0 };
145
+ const d = graph.makeThunk((get) => {
146
+ numberOfRunsForD.runs++;
147
+ return get(c) === 'a' ? get(a) : get(b);
148
+ }, { label: 'd' });
149
+ const e = graph.makeRef(2, { label: 'e' });
150
+ const f = graph.makeThunk((get) => get(d) * get(e), { label: 'f' });
151
+ // a(1) b(2) c('a')
152
+ // \ / /
153
+ // \ / /
154
+ // d = a or b depending on c
155
+ // \
156
+ // \
157
+ // e(2) \
158
+ // \ \
159
+ // \ \
160
+ // f = d * e
161
+ expect(graph.atoms.size).toBe(6);
162
+ return { graph, a, b, c, d, e, f, numberOfRunsForD };
163
+ };
164
+ it('has the right initial values', () => {
165
+ const { d, f } = makeGraph();
166
+ expect(d.computeResult()).toBe(1);
167
+ expect(f.computeResult()).toBe(2);
168
+ });
169
+ it('dynamically adjusts d when a, b or c changes', () => {
170
+ const { graph, c, d, e, f, numberOfRunsForD } = makeGraph();
171
+ expect(numberOfRunsForD.runs).toBe(0);
172
+ expect(d.computeResult()).toBe(1);
173
+ expect(f.computeResult()).toBe(2);
174
+ expect(numberOfRunsForD.runs).toBe(1);
175
+ graph.setRef(c, 'b');
176
+ expect(d.computeResult()).toBe(2);
177
+ expect(f.computeResult()).toBe(4);
178
+ expect(numberOfRunsForD.runs).toBe(2);
179
+ graph.setRef(e, 3);
180
+ expect(f.computeResult()).toBe(6);
181
+ expect(numberOfRunsForD.runs).toBe(2);
182
+ });
183
+ it('runs d only when a changes, not b', () => {
184
+ const { graph, a, b, d, numberOfRunsForD } = makeGraph();
185
+ numberOfRunsForD.runs = 0;
186
+ d.computeResult();
187
+ expect(numberOfRunsForD.runs).toBe(1);
188
+ graph.setRef(a, 3);
189
+ expect(d.computeResult()).toBe(3);
190
+ expect(numberOfRunsForD.runs).toBe(2);
191
+ graph.setRef(b, 4);
192
+ expect(d.computeResult()).toBe(3);
193
+ expect(numberOfRunsForD.runs).toBe(2);
194
+ });
195
+ });
124
196
  describe('a diamond shaped graph', () => {
125
197
  const makeGraph = () => {
126
- const graph = new ReactiveGraph({ otelTracer: makeNoopTracer() });
198
+ const graph = new ReactiveGraph({});
199
+ graph.context = {};
127
200
  const a = graph.makeRef(1);
128
- const b = graph.makeThunk((get) => get(a) + 1, undefined, mockOtelCtx);
129
- const c = graph.makeThunk((get) => get(a) + 1, undefined, mockOtelCtx);
201
+ const b = graph.makeThunk((get) => get(a) + 1);
202
+ const c = graph.makeThunk((get) => get(a) + 1);
130
203
  // track the number of times d has run in an object so we can mutate it
131
204
  const dRuns = { runs: 0 };
132
205
  // normally thunks aren't supposed to side effect;
@@ -134,49 +207,53 @@ describe('a diamond shaped graph', () => {
134
207
  const d = graph.makeThunk((get) => {
135
208
  dRuns.runs++;
136
209
  return get(b) + get(c);
137
- }, undefined, mockOtelCtx);
210
+ });
138
211
  // a(1)
139
212
  // / \
140
213
  // b c
141
214
  // \ /
142
215
  // d = b + c
216
+ expect(graph.atoms.size).toBe(4);
143
217
  return { graph, a, b, c, d, dRuns };
144
218
  };
145
219
  it('has the right initial values', () => {
146
220
  const { b, c, d } = makeGraph();
147
- expect(b.result).toBe(2);
148
- expect(c.result).toBe(2);
149
- expect(d.result).toBe(4);
221
+ expect(b.computeResult()).toBe(2);
222
+ expect(c.computeResult()).toBe(2);
223
+ expect(d.computeResult()).toBe(4);
150
224
  });
151
225
  it('propagates change through the graph', () => {
152
226
  const { graph, a, b, c, d } = makeGraph();
153
- graph.setRef(a, 5, undefined, mockOtelCtx);
154
- expect(b.result).toBe(6);
155
- expect(c.result).toBe(6);
156
- expect(d.result).toBe(12);
227
+ graph.setRef(a, 5);
228
+ expect(b.computeResult()).toBe(6);
229
+ expect(c.computeResult()).toBe(6);
230
+ expect(d.computeResult()).toBe(12);
157
231
  });
158
232
  // if we're being efficient, we should update b and c before updating d,
159
233
  // so d only needs to update one time
160
234
  it('only runs d once when a changes', () => {
161
- const { graph, a, dRuns } = makeGraph();
235
+ const { graph, a, d, dRuns } = makeGraph();
236
+ expect(dRuns.runs).toBe(0);
237
+ d.computeResult();
162
238
  expect(dRuns.runs).toBe(1);
163
- graph.setRef(a, 5, undefined, mockOtelCtx);
239
+ graph.setRef(a, 5);
240
+ d.computeResult();
241
+ d.computeResult(); // even extra calls to computeResult should not run d again
164
242
  expect(dRuns.runs).toBe(2);
165
243
  });
166
244
  });
167
245
  describe('a trivial graph with undefined', () => {
168
246
  const makeGraph = () => {
169
- const graph = new ReactiveGraph({ otelTracer: makeNoopTracer() });
170
- const a = graph.makeRef(undefined);
171
- const b = graph.makeRef(2);
172
- const numberOfRunsForC = { runs: 0 };
247
+ const graph = new ReactiveGraph({});
248
+ graph.context = {};
249
+ const a = graph.makeRef(1);
250
+ const b = graph.makeRef(undefined);
173
251
  const c = graph.makeThunk((get) => {
174
- numberOfRunsForC.runs++;
175
- return (get(a) ?? 0) + get(b);
176
- }, undefined, mockOtelCtx);
252
+ return get(a) + (get(b) ?? 0);
253
+ });
177
254
  const d = graph.makeRef(3);
178
- const e = graph.makeThunk((get) => get(c) + get(d), undefined, mockOtelCtx);
179
- // a(1) b(2)
255
+ const e = graph.makeThunk((get) => get(c) + get(d));
256
+ // a(1) b(undefined)
180
257
  // \ /
181
258
  // \ /
182
259
  // c = a + b
@@ -186,12 +263,21 @@ describe('a trivial graph with undefined', () => {
186
263
  // \ \
187
264
  // \ \
188
265
  // e = c + d
189
- return { graph, a, b, c, d, e, numberOfRunsForC };
266
+ expect(graph.atoms.size).toBe(5);
267
+ return { graph, a, b, c, d, e };
190
268
  };
191
269
  it('has the right initial values', () => {
192
270
  const { c, e } = makeGraph();
193
- expect(c.result).toBe(2);
194
- expect(e.result).toBe(5);
271
+ expect(c.computeResult()).toBe(1);
272
+ expect(e.computeResult()).toBe(4);
273
+ });
274
+ });
275
+ describe('error handling', () => {
276
+ it('throws an error when no context is set', () => {
277
+ const graph = new ReactiveGraph({});
278
+ const a = graph.makeRef(1);
279
+ const b = graph.makeThunk((get) => get(a) + 1);
280
+ expect(() => b.computeResult()).toThrowErrorMatchingInlineSnapshot('"LiveStore Error: `context` not set on ReactiveGraph"');
195
281
  });
196
282
  });
197
283
  //# sourceMappingURL=reactive.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reactive.test.js","sourceRoot":"","sources":["../../src/__tests__/reactive.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactive.test.js","sourceRoot":"","sources":["../../src/__tests__/reactive.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE9C,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAA;QACnC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;QAClB,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1C,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;QACpC,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CACvB,CAAC,GAAG,EAAE,EAAE;YACN,gBAAgB,CAAC,IAAI,EAAE,CAAA;YACvB,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC,EACD,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;QACD,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;QAEnE,cAAc;QACd,YAAY;QACZ,WAAW;QACX,iBAAiB;QACjB,UAAU;QACV,WAAW;QACX,YAAY;QACZ,cAAc;QACd,eAAe;QACf,iBAAiB;QAEjB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAEhC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAA;IACnD,CAAC,CAAA;IAED,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAA;QAC5B,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAA;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAA;QACrD,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACrC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACrC,CAAC,CAAC,aAAa,EAAE,CAAA;QACjB,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAA;QACrD,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACrC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACrC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACrC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACrC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAA;QAEtC,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,YAAY,EAAE,CAAA;YACd,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,kCAAkC;QAC/D,CAAC,CAAC,aAAa,EAAE,CAAA;QACjB,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,gCAAgC;QAE7D,yDAAyD;QACzD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,oDAAoD;QAEpD,+CAA+C;QAC/C,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClC,oDAAoD;QAEpD,kDAAkD;QAClD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClC,oDAAoD;QAEpD,mDAAmD;QACnD,KAAK,CAAC,OAAO,CAAC;YACZ,CAAC,CAAC,EAAE,CAAC,CAAC;YACN,CAAC,CAAC,EAAE,CAAC,CAAC;SACP,CAAC,CAAA;QACF,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClC,oDAAoD;IACtD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAA;QACxD,KAAK,CAAC,OAAO,CAAC;YACZ,CAAC,CAAC,EAAE,CAAC,CAAC;YACN,CAAC,CAAC,EAAE,CAAC,CAAC;SACP,CAAC,CAAA;QACF,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACrC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,6DAA6D;QAC7D,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAA;YAClD,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACrC,CAAC,CAAC,aAAa,EAAE,CAAA;YACjB,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAErC,IAAI,kBAAkB,GAAG,CAAC,CAAA;YAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;gBACtC,gEAAgE;gBAChE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACtB,kBAAkB,EAAE,CAAA;YACtB,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAClC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAErC,MAAM,CAAC,QAAQ,EAAE,CAAA;YACjB,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAA;YACnC,IAAI,kBAAkB,GAAG,CAAC,CAAA;YAC1B,IAAI,WAAW,GAAG,IAAI,CAAA;YACtB,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;gBACtC,gEAAgE;gBAChE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACxC,kBAAkB,EAAE,CAAA;YACtB,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAClC,MAAM,CAAC,QAAQ,EAAE,CAAA;YACjB,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAElC,iEAAiE;YACjE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAClB,wDAAwD;YAExD,WAAW,GAAG,KAAK,CAAA;YAEnB,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAClB,wDAAwD;QAC1D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAA;QACnC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;QAElB,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAY,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;QACvD,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;QACpC,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CACvB,CAAC,GAAG,EAAE,EAAE;YACN,gBAAgB,CAAC,IAAI,EAAE,CAAA;YACvB,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACzC,CAAC,EACD,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;QACD,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;QAEnE,uBAAuB;QACvB,gBAAgB;QAChB,aAAa;QACb,gCAAgC;QAChC,UAAU;QACV,WAAW;QACX,YAAY;QACZ,aAAa;QACb,cAAc;QACd,iBAAiB;QAEjB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAEhC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAA;IACtD,CAAC,CAAA;IAED,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAA;QAC5B,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAA;QAC3D,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACrC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACrC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QACpB,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACrC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAA;QACxD,gBAAgB,CAAC,IAAI,GAAG,CAAC,CAAA;QACzB,CAAC,CAAC,aAAa,EAAE,CAAA;QACjB,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACrC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACrC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAA;QACnC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;QAClB,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9C,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAE9C,uEAAuE;QACvE,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;QAEzB,kDAAkD;QAClD,uDAAuD;QACvD,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,KAAK,CAAC,IAAI,EAAE,CAAA;YACZ,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,cAAc;QAEd,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAEhC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAA;IACrC,CAAC,CAAA;IAED,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAA;QAC/B,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAA;QACzC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,wEAAwE;IACxE,qCAAqC;IACrC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CAAA;QAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAC,aAAa,EAAE,CAAA;QACjB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,CAAC,CAAC,aAAa,EAAE,CAAA;QACjB,CAAC,CAAC,aAAa,EAAE,CAAA,CAAC,2DAA2D;QAC7E,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAA;QACnC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;QAClB,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAClC,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAEnD,sBAAsB;QACtB,YAAY;QACZ,WAAW;QACX,iBAAiB;QACjB,UAAU;QACV,WAAW;QACX,YAAY;QACZ,cAAc;QACd,eAAe;QACf,iBAAiB;QAEjB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAEhC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACjC,CAAC,CAAA;IAED,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAA;QAC5B,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAA;QACnC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9C,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,kCAAkC,CAChE,uDAAuD,CACxD,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sql.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/reactiveQueries/sql.test.ts"],"names":[],"mappings":""}