@e280/strata 0.3.1 → 0.3.2
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/README.md +8 -6
- package/package.json +7 -7
- package/s/prism/chrono/chrono.ts +5 -1
- package/s/prism/lens.ts +20 -6
- package/s/prism/test.ts +48 -48
- package/s/prism/types.ts +2 -1
- package/s/prism/vault/local-store.ts +2 -2
- package/s/prism/vault/types.ts +5 -2
- package/x/prism/chrono/chrono.d.ts +2 -1
- package/x/prism/chrono/chrono.js +4 -1
- package/x/prism/chrono/chrono.js.map +1 -1
- package/x/prism/lens.d.ts +6 -2
- package/x/prism/lens.js +18 -5
- package/x/prism/lens.js.map +1 -1
- package/x/prism/test.js +48 -48
- package/x/prism/test.js.map +1 -1
- package/x/prism/types.d.ts +2 -1
- package/x/prism/vault/local-store.d.ts +2 -2
- package/x/prism/vault/types.d.ts +4 -2
package/README.md
CHANGED
|
@@ -153,19 +153,21 @@ import {signal, effect, derived, lazy} from "@e280/strata"
|
|
|
153
153
|
const person = snacks.lens(state => state.person)
|
|
154
154
|
```
|
|
155
155
|
- you can lens another lens
|
|
156
|
-
- **lenses provide
|
|
156
|
+
- **lenses provide snapshot access to state**
|
|
157
157
|
```ts
|
|
158
|
+
// .state is a mutable snapshot with relaxed typings
|
|
158
159
|
snacks.state.peanuts // 8
|
|
159
160
|
person.state.name // "chase"
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
snacks.
|
|
161
|
+
|
|
162
|
+
// .frozen is an immutable snapshot with strict typings
|
|
163
|
+
snacks.frozen.peanuts // 8
|
|
164
|
+
snacks.frozen.peanuts++
|
|
164
165
|
// ⛔ error: casual mutations forbidden
|
|
165
166
|
```
|
|
167
|
+
- **only formal mutations can actually change state**
|
|
166
168
|
```ts
|
|
167
169
|
snacks.mutate(state => state.peanuts++)
|
|
168
|
-
// ✅
|
|
170
|
+
// ✅ formal mutations to change state
|
|
169
171
|
|
|
170
172
|
snacks.state.peanuts // 9
|
|
171
173
|
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@e280/strata",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "state management",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Chase Moskal <chasemoskal@gmail.com>",
|
|
@@ -17,18 +17,18 @@
|
|
|
17
17
|
"./tracker": "./x/tracker/index.js"
|
|
18
18
|
},
|
|
19
19
|
"scripts": {
|
|
20
|
-
"build": "rm -rf x && mkdir x &&
|
|
21
|
-
"
|
|
20
|
+
"build": "rm -rf x && mkdir x && tsc",
|
|
21
|
+
"dev": "octo 'node --watch x/test.js' 'tsc -w'",
|
|
22
22
|
"test": "node x/test.js",
|
|
23
23
|
"count": "find s -path '*/_archive' -prune -o -name '*.ts' -exec wc -l {} +"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@e280/stz": "^0.2.
|
|
26
|
+
"@e280/stz": "^0.2.29"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@e280/octo": "^0.1.0
|
|
30
|
-
"@e280/science": "^0.1.
|
|
31
|
-
"@types/node": "^25.5.
|
|
29
|
+
"@e280/octo": "^0.1.0",
|
|
30
|
+
"@e280/science": "^0.1.10",
|
|
31
|
+
"@types/node": "^25.5.2",
|
|
32
32
|
"typescript": "^6.0.2"
|
|
33
33
|
},
|
|
34
34
|
"keywords": [
|
package/s/prism/chrono/chrono.ts
CHANGED
|
@@ -12,13 +12,17 @@ export class Chrono<State> implements LensLike<State> {
|
|
|
12
12
|
) {}
|
|
13
13
|
|
|
14
14
|
get chronicle() {
|
|
15
|
-
return this.basis.
|
|
15
|
+
return this.basis.frozen
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
get state() {
|
|
19
19
|
return this.basis.state.present
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
get frozen() {
|
|
23
|
+
return this.basis.frozen.present
|
|
24
|
+
}
|
|
25
|
+
|
|
22
26
|
get undoable() {
|
|
23
27
|
return this.chronicle.past.length
|
|
24
28
|
}
|
package/s/prism/lens.ts
CHANGED
|
@@ -8,33 +8,47 @@ import {Immutable, LensLike, Optic} from "./types.js"
|
|
|
8
8
|
|
|
9
9
|
/** reactive view into a state prism, with formalized mutations */
|
|
10
10
|
export class Lens<State> implements LensLike<State> {
|
|
11
|
-
on = sub<[state:
|
|
11
|
+
on = sub<[state: State]>()
|
|
12
|
+
onFrozen = sub<[state: Immutable<State>]>()
|
|
12
13
|
|
|
13
14
|
;[_optic]: Optic<State>
|
|
14
15
|
#previous: State
|
|
15
|
-
#
|
|
16
|
-
#
|
|
16
|
+
#stateCache: CacheCell<State>
|
|
17
|
+
#frozenCache: CacheCell<Immutable<State>>
|
|
18
|
+
#onPublishDebounced = microbounce(() => {
|
|
19
|
+
this.on.publish(this.state)
|
|
20
|
+
this.onFrozen.publish(this.frozen)
|
|
21
|
+
})
|
|
17
22
|
|
|
18
23
|
constructor(optic: Optic<State>) {
|
|
19
24
|
this[_optic] = optic
|
|
20
25
|
this.#previous = deep.clone(optic.getState())
|
|
21
|
-
this.#
|
|
26
|
+
this.#stateCache = new CacheCell(() => deep.clone(optic.getState()))
|
|
27
|
+
this.#frozenCache = new CacheCell(() => immute(optic.getState()))
|
|
22
28
|
}
|
|
23
29
|
|
|
24
30
|
async update() {
|
|
25
31
|
const state = this[_optic].getState()
|
|
26
32
|
const isChanged = !deep.equal(state, this.#previous)
|
|
27
33
|
if (isChanged) {
|
|
28
|
-
this.#
|
|
34
|
+
this.#stateCache.invalidate()
|
|
35
|
+
this.#frozenCache.invalidate()
|
|
29
36
|
this.#previous = deep.clone(state)
|
|
30
37
|
this.#onPublishDebounced()
|
|
31
38
|
await tracker.notifyWrite(this)
|
|
32
39
|
}
|
|
33
40
|
}
|
|
34
41
|
|
|
42
|
+
/** get a snapshot of the current state. it's typed as mutable, but you should not mutate it. */
|
|
35
43
|
get state() {
|
|
36
44
|
tracker.notifyRead(this)
|
|
37
|
-
return this.#
|
|
45
|
+
return this.#stateCache.get()
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** get an immutable readonly snapshot of the current state. */
|
|
49
|
+
get frozen() {
|
|
50
|
+
tracker.notifyRead(this)
|
|
51
|
+
return this.#frozenCache.get()
|
|
38
52
|
}
|
|
39
53
|
|
|
40
54
|
async mutate<R>(fn: (state: State) => R) {
|
package/s/prism/test.ts
CHANGED
|
@@ -33,30 +33,30 @@ export default suite({
|
|
|
33
33
|
"get state": test(async() => {
|
|
34
34
|
const prism = new Prism({data: {count: 1}})
|
|
35
35
|
const lens = prism.lens(s => s.data)
|
|
36
|
-
expect(lens.
|
|
36
|
+
expect(lens.frozen.count).is(1)
|
|
37
37
|
}),
|
|
38
38
|
|
|
39
39
|
"state is immutable": test(async() => {
|
|
40
40
|
const prism = new Prism({data: {count: 1}})
|
|
41
41
|
const lens = prism.lens(s => s.data)
|
|
42
|
-
expect(() => (lens.
|
|
42
|
+
expect(() => (lens.frozen as any).count++).throws()
|
|
43
43
|
}),
|
|
44
44
|
|
|
45
45
|
"proper mutation": test(async() => {
|
|
46
46
|
const prism = new Prism({data: {count: 1}})
|
|
47
47
|
const lens = prism.lens(s => s.data)
|
|
48
48
|
await lens.mutate(s => s.count++)
|
|
49
|
-
expect(lens.
|
|
49
|
+
expect(lens.frozen.count).is(2)
|
|
50
50
|
await lens.mutate(s => s.count++)
|
|
51
|
-
expect(lens.
|
|
51
|
+
expect(lens.frozen.count).is(3)
|
|
52
52
|
}),
|
|
53
53
|
|
|
54
54
|
"state after mutation is frozen": test(async() => {
|
|
55
55
|
const prism = new Prism({data: {count: 1}})
|
|
56
56
|
const lens = prism.lens(s => s)
|
|
57
57
|
await lens.mutate(s => s.data = {count: 2})
|
|
58
|
-
expect(lens.
|
|
59
|
-
expect(() => (lens.
|
|
58
|
+
expect(lens.frozen.data.count).is(2)
|
|
59
|
+
expect(() => (lens.frozen.data as any).count++).throws()
|
|
60
60
|
}),
|
|
61
61
|
|
|
62
62
|
"effect reacts": test(async() => {
|
|
@@ -64,7 +64,7 @@ export default suite({
|
|
|
64
64
|
const lens = prism.lens(s => s.data)
|
|
65
65
|
let happenings = 0
|
|
66
66
|
const stop = effect(() => {
|
|
67
|
-
void lens.
|
|
67
|
+
void lens.frozen.count
|
|
68
68
|
happenings++
|
|
69
69
|
})
|
|
70
70
|
await lens.mutate(s => s.count++)
|
|
@@ -92,7 +92,7 @@ export default suite({
|
|
|
92
92
|
const stop = lens.on(() => void happenings++)
|
|
93
93
|
await lens.mutate(s => s.array.push("lmao"))
|
|
94
94
|
expect(happenings).is(1)
|
|
95
|
-
expect(lens.
|
|
95
|
+
expect(lens.frozen.array.length).is(2)
|
|
96
96
|
stop()
|
|
97
97
|
}),
|
|
98
98
|
|
|
@@ -100,9 +100,9 @@ export default suite({
|
|
|
100
100
|
const prism = new Prism({data: {count: 1}})
|
|
101
101
|
const lens = prism.lens(s => s.data)
|
|
102
102
|
const p1 = lens.mutate(s => s.count++)
|
|
103
|
-
expect(lens.
|
|
103
|
+
expect(lens.frozen.count).is(2)
|
|
104
104
|
const p2 = lens.mutate(s => s.count++)
|
|
105
|
-
expect(lens.
|
|
105
|
+
expect(lens.frozen.count).is(3)
|
|
106
106
|
await p1
|
|
107
107
|
await p2
|
|
108
108
|
}),
|
|
@@ -111,9 +111,9 @@ export default suite({
|
|
|
111
111
|
type S = {a?: {b: {count: number}}}
|
|
112
112
|
const prism = new Prism<S>({a: {b: {count: 1}}})
|
|
113
113
|
const lens = prism.lens(s => s.a?.b)
|
|
114
|
-
expect(lens.
|
|
114
|
+
expect(lens.frozen?.count).is(1)
|
|
115
115
|
await prism.set({a: undefined})
|
|
116
|
-
expect(lens.
|
|
116
|
+
expect(lens.frozen?.count).is(undefined)
|
|
117
117
|
}),
|
|
118
118
|
|
|
119
119
|
"deep composition": test(async() => {
|
|
@@ -121,8 +121,8 @@ export default suite({
|
|
|
121
121
|
const lensA = prism.lens(s => s.a)
|
|
122
122
|
const lensB = lensA.lens(s => s.b)
|
|
123
123
|
expect(prism.get().a.b.count).is(1)
|
|
124
|
-
expect(lensA.
|
|
125
|
-
expect(lensB.
|
|
124
|
+
expect(lensA.frozen.b.count).is(1)
|
|
125
|
+
expect(lensB.frozen.count).is(1)
|
|
126
126
|
}),
|
|
127
127
|
|
|
128
128
|
"deep mutations": test(async() => {
|
|
@@ -131,12 +131,12 @@ export default suite({
|
|
|
131
131
|
const lensB = lensA.lens(s => s.b)
|
|
132
132
|
await lensB.mutate(s => s.count++)
|
|
133
133
|
expect(prism.get().a.b.count).is(2)
|
|
134
|
-
expect(lensA.
|
|
135
|
-
expect(lensB.
|
|
134
|
+
expect(lensA.frozen.b.count).is(2)
|
|
135
|
+
expect(lensB.frozen.count).is(2)
|
|
136
136
|
await lensA.mutate(s => s.b = {count: 3})
|
|
137
137
|
expect(prism.get().a.b.count).is(3)
|
|
138
|
-
expect(lensA.
|
|
139
|
-
expect(lensB.
|
|
138
|
+
expect(lensA.frozen.b.count).is(3)
|
|
139
|
+
expect(lensB.frozen.count).is(3)
|
|
140
140
|
}),
|
|
141
141
|
|
|
142
142
|
"outside mutations ignored": test(async() => {
|
|
@@ -161,11 +161,11 @@ export default suite({
|
|
|
161
161
|
let happeningsA = 0
|
|
162
162
|
let happeningsB = 0
|
|
163
163
|
const stopA = effect(() => {
|
|
164
|
-
void lensA.
|
|
164
|
+
void lensA.frozen.count
|
|
165
165
|
happeningsA++
|
|
166
166
|
})
|
|
167
167
|
const stopB = effect(() => {
|
|
168
|
-
void lensB.
|
|
168
|
+
void lensB.frozen.count
|
|
169
169
|
happeningsB++
|
|
170
170
|
})
|
|
171
171
|
await lensA.mutate(s => s.count++)
|
|
@@ -181,7 +181,7 @@ export default suite({
|
|
|
181
181
|
const prism = new Prism({data: chronicle({count: 1})})
|
|
182
182
|
const lens = prism.lens(s => s.data)
|
|
183
183
|
const chrono = new Chrono(64, lens)
|
|
184
|
-
expect(chrono.
|
|
184
|
+
expect(chrono.frozen.count).is(1)
|
|
185
185
|
}),
|
|
186
186
|
|
|
187
187
|
"mutation": test(async() => {
|
|
@@ -189,9 +189,9 @@ export default suite({
|
|
|
189
189
|
const lens = prism.lens(s => s.data)
|
|
190
190
|
const chrono = new Chrono(64, lens)
|
|
191
191
|
await chrono.mutate(s => s.count++)
|
|
192
|
-
expect(chrono.
|
|
192
|
+
expect(chrono.frozen.count).is(2)
|
|
193
193
|
await chrono.mutate(s => s.count++)
|
|
194
|
-
expect(chrono.
|
|
194
|
+
expect(chrono.frozen.count).is(3)
|
|
195
195
|
}),
|
|
196
196
|
|
|
197
197
|
"undoable/redoable": test(async() => {
|
|
@@ -221,10 +221,10 @@ export default suite({
|
|
|
221
221
|
const chrono = new Chrono(64, lens)
|
|
222
222
|
|
|
223
223
|
await chrono.mutate(s => s.count++)
|
|
224
|
-
expect(chrono.
|
|
224
|
+
expect(chrono.frozen.count).is(2)
|
|
225
225
|
|
|
226
226
|
await chrono.undo()
|
|
227
|
-
expect(chrono.
|
|
227
|
+
expect(chrono.frozen.count).is(1)
|
|
228
228
|
}),
|
|
229
229
|
|
|
230
230
|
"sync undo": test(async() => {
|
|
@@ -233,10 +233,10 @@ export default suite({
|
|
|
233
233
|
const chrono = new Chrono(64, lens)
|
|
234
234
|
|
|
235
235
|
chrono.mutate(s => s.count++)
|
|
236
|
-
expect(chrono.
|
|
236
|
+
expect(chrono.frozen.count).is(2)
|
|
237
237
|
|
|
238
238
|
chrono.undo()
|
|
239
|
-
expect(chrono.
|
|
239
|
+
expect(chrono.frozen.count).is(1)
|
|
240
240
|
}),
|
|
241
241
|
|
|
242
242
|
"redo": test(async() => {
|
|
@@ -245,13 +245,13 @@ export default suite({
|
|
|
245
245
|
const chrono = new Chrono(64, lens)
|
|
246
246
|
|
|
247
247
|
await chrono.mutate(s => s.count++)
|
|
248
|
-
expect(chrono.
|
|
248
|
+
expect(chrono.frozen.count).is(2)
|
|
249
249
|
|
|
250
250
|
await chrono.undo()
|
|
251
|
-
expect(chrono.
|
|
251
|
+
expect(chrono.frozen.count).is(1)
|
|
252
252
|
|
|
253
253
|
await chrono.redo()
|
|
254
|
-
expect(chrono.
|
|
254
|
+
expect(chrono.frozen.count).is(2)
|
|
255
255
|
}),
|
|
256
256
|
|
|
257
257
|
"undo/redo is orderly": test(async() => {
|
|
@@ -262,28 +262,28 @@ export default suite({
|
|
|
262
262
|
await chrono.mutate(s => s.count++)
|
|
263
263
|
await chrono.mutate(s => s.count++)
|
|
264
264
|
await chrono.mutate(s => s.count++)
|
|
265
|
-
expect(chrono.
|
|
265
|
+
expect(chrono.frozen.count).is(4)
|
|
266
266
|
|
|
267
267
|
await chrono.undo()
|
|
268
|
-
expect(chrono.
|
|
268
|
+
expect(chrono.frozen.count).is(3)
|
|
269
269
|
|
|
270
270
|
await chrono.undo()
|
|
271
|
-
expect(chrono.
|
|
271
|
+
expect(chrono.frozen.count).is(2)
|
|
272
272
|
|
|
273
273
|
await chrono.redo()
|
|
274
|
-
expect(chrono.
|
|
274
|
+
expect(chrono.frozen.count).is(3)
|
|
275
275
|
|
|
276
276
|
await chrono.redo()
|
|
277
|
-
expect(chrono.
|
|
277
|
+
expect(chrono.frozen.count).is(4)
|
|
278
278
|
|
|
279
279
|
await chrono.undo()
|
|
280
|
-
expect(chrono.
|
|
280
|
+
expect(chrono.frozen.count).is(3)
|
|
281
281
|
|
|
282
282
|
await chrono.undo()
|
|
283
|
-
expect(chrono.
|
|
283
|
+
expect(chrono.frozen.count).is(2)
|
|
284
284
|
|
|
285
285
|
await chrono.undo()
|
|
286
|
-
expect(chrono.
|
|
286
|
+
expect(chrono.frozen.count).is(1)
|
|
287
287
|
}),
|
|
288
288
|
|
|
289
289
|
"undo nothing does nothing": test(async() => {
|
|
@@ -291,7 +291,7 @@ export default suite({
|
|
|
291
291
|
const lens = prism.lens(s => s.data)
|
|
292
292
|
const chrono = new Chrono(64, lens)
|
|
293
293
|
await chrono.undo()
|
|
294
|
-
expect(chrono.
|
|
294
|
+
expect(chrono.frozen.count).is(1)
|
|
295
295
|
}),
|
|
296
296
|
|
|
297
297
|
"redo nothing does nothing": test(async() => {
|
|
@@ -299,7 +299,7 @@ export default suite({
|
|
|
299
299
|
const lens = prism.lens(s => s.data)
|
|
300
300
|
const chrono = new Chrono(64, lens)
|
|
301
301
|
await chrono.redo()
|
|
302
|
-
expect(chrono.
|
|
302
|
+
expect(chrono.frozen.count).is(1)
|
|
303
303
|
}),
|
|
304
304
|
|
|
305
305
|
"undo 2x": test(async() => {
|
|
@@ -309,9 +309,9 @@ export default suite({
|
|
|
309
309
|
await chrono.mutate(s => s.count++)
|
|
310
310
|
await chrono.mutate(s => s.count++)
|
|
311
311
|
await chrono.mutate(s => s.count++)
|
|
312
|
-
expect(chrono.
|
|
312
|
+
expect(chrono.frozen.count).is(4)
|
|
313
313
|
await chrono.undo(2)
|
|
314
|
-
expect(chrono.
|
|
314
|
+
expect(chrono.frozen.count).is(2)
|
|
315
315
|
}),
|
|
316
316
|
|
|
317
317
|
"redo 2x": test(async() => {
|
|
@@ -321,22 +321,22 @@ export default suite({
|
|
|
321
321
|
await chrono.mutate(s => s.count++)
|
|
322
322
|
await chrono.mutate(s => s.count++)
|
|
323
323
|
await chrono.mutate(s => s.count++)
|
|
324
|
-
expect(chrono.
|
|
324
|
+
expect(chrono.frozen.count).is(4)
|
|
325
325
|
await chrono.undo(2)
|
|
326
|
-
expect(chrono.
|
|
326
|
+
expect(chrono.frozen.count).is(2)
|
|
327
327
|
await chrono.redo(2)
|
|
328
|
-
expect(chrono.
|
|
328
|
+
expect(chrono.frozen.count).is(4)
|
|
329
329
|
}),
|
|
330
330
|
|
|
331
331
|
"sublens mutations are undoable": test(async() => {
|
|
332
332
|
const prism = new Prism({data: chronicle({a: {count: 1}})})
|
|
333
333
|
const chrono = new Chrono(64, prism.lens(s => s.data))
|
|
334
334
|
const sublens = chrono.lens(s => s.a)
|
|
335
|
-
expect(sublens.
|
|
335
|
+
expect(sublens.frozen.count).is(1)
|
|
336
336
|
await sublens.mutate(s => s.count++)
|
|
337
|
-
expect(sublens.
|
|
337
|
+
expect(sublens.frozen.count).is(2)
|
|
338
338
|
await chrono.undo()
|
|
339
|
-
expect(sublens.
|
|
339
|
+
expect(sublens.frozen.count).is(1)
|
|
340
340
|
}),
|
|
341
341
|
}),
|
|
342
342
|
})
|
package/s/prism/types.ts
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
import {Lens} from "./lens.js"
|
|
3
3
|
|
|
4
4
|
export type LensLike<State> = {
|
|
5
|
-
readonly state:
|
|
5
|
+
readonly state: State
|
|
6
|
+
readonly frozen: Immutable<State>
|
|
6
7
|
mutate<R>(fn: (state: State) => R): Promise<R>
|
|
7
8
|
lens<S2>(selector: (state: State) => S2): Lens<S2>
|
|
8
9
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
2
|
+
import {Cubby} from "./types.js"
|
|
3
3
|
|
|
4
|
-
export class LocalStore<X> implements
|
|
4
|
+
export class LocalStore<X> implements Cubby<X> {
|
|
5
5
|
constructor(
|
|
6
6
|
private key: string,
|
|
7
7
|
private storage: Storage = window.localStorage,
|
package/s/prism/vault/types.ts
CHANGED
|
@@ -6,14 +6,17 @@ export type Versioned<State> = {
|
|
|
6
6
|
version: number
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export type
|
|
9
|
+
export type Cubby<X> = {
|
|
10
10
|
get(): Promise<X | undefined>
|
|
11
11
|
set(data: X | undefined): Promise<void>
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
/** @deprecated renamed to `Cubby` */
|
|
15
|
+
export type EzStore<X> = Cubby<X>
|
|
16
|
+
|
|
14
17
|
export type VaultOptions<State> = {
|
|
15
18
|
version: number
|
|
16
19
|
prism: Prism<State>
|
|
17
|
-
store:
|
|
20
|
+
store: Cubby<Versioned<State>>
|
|
18
21
|
}
|
|
19
22
|
|
|
@@ -11,7 +11,8 @@ export declare class Chrono<State> implements LensLike<State> {
|
|
|
11
11
|
readonly present: import("../types.js").Immutable<State>;
|
|
12
12
|
readonly future: readonly import("../types.js").Immutable<State>[];
|
|
13
13
|
};
|
|
14
|
-
get state():
|
|
14
|
+
get state(): State;
|
|
15
|
+
get frozen(): import("../types.js").Immutable<State>;
|
|
15
16
|
get undoable(): number;
|
|
16
17
|
get redoable(): number;
|
|
17
18
|
/** progress forwards, depositing history into the past */
|
package/x/prism/chrono/chrono.js
CHANGED
|
@@ -9,11 +9,14 @@ export class Chrono {
|
|
|
9
9
|
this.basis = basis;
|
|
10
10
|
}
|
|
11
11
|
get chronicle() {
|
|
12
|
-
return this.basis.
|
|
12
|
+
return this.basis.frozen;
|
|
13
13
|
}
|
|
14
14
|
get state() {
|
|
15
15
|
return this.basis.state.present;
|
|
16
16
|
}
|
|
17
|
+
get frozen() {
|
|
18
|
+
return this.basis.frozen.present;
|
|
19
|
+
}
|
|
17
20
|
get undoable() {
|
|
18
21
|
return this.chronicle.past.length;
|
|
19
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chrono.js","sourceRoot":"","sources":["../../../s/prism/chrono/chrono.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AAG/B,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAA;AAE/C,MAAM,OAAO,MAAM;IAEV;IACC;IAFT,YACQ,KAAa,EACZ,KAA6B;QAD9B,UAAK,GAAL,KAAK,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAwB;IACnC,CAAC;IAEJ,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"chrono.js","sourceRoot":"","sources":["../../../s/prism/chrono/chrono.ts"],"names":[],"mappings":"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"}
|
package/x/prism/lens.d.ts
CHANGED
|
@@ -3,11 +3,15 @@ import { Immutable, LensLike, Optic } from "./types.js";
|
|
|
3
3
|
/** reactive view into a state prism, with formalized mutations */
|
|
4
4
|
export declare class Lens<State> implements LensLike<State> {
|
|
5
5
|
#private;
|
|
6
|
-
on: import("@e280/stz").Sub<[state:
|
|
6
|
+
on: import("@e280/stz").Sub<[state: State]>;
|
|
7
|
+
onFrozen: import("@e280/stz").Sub<[state: Immutable<State>]>;
|
|
7
8
|
[_optic]: Optic<State>;
|
|
8
9
|
constructor(optic: Optic<State>);
|
|
9
10
|
update(): Promise<void>;
|
|
10
|
-
get state
|
|
11
|
+
/** get a snapshot of the current state. it's typed as mutable, but you should not mutate it. */
|
|
12
|
+
get state(): State;
|
|
13
|
+
/** get an immutable readonly snapshot of the current state. */
|
|
14
|
+
get frozen(): Immutable<State>;
|
|
11
15
|
mutate<R>(fn: (state: State) => R): Promise<R>;
|
|
12
16
|
lens<State2>(selector: (state: State) => State2): Lens<State2>;
|
|
13
17
|
}
|
package/x/prism/lens.js
CHANGED
|
@@ -6,28 +6,41 @@ import { CacheCell } from "./utils/cache-cell.js";
|
|
|
6
6
|
/** reactive view into a state prism, with formalized mutations */
|
|
7
7
|
export class Lens {
|
|
8
8
|
on = sub();
|
|
9
|
+
onFrozen = sub();
|
|
9
10
|
[_optic];
|
|
10
11
|
#previous;
|
|
11
|
-
#
|
|
12
|
-
#
|
|
12
|
+
#stateCache;
|
|
13
|
+
#frozenCache;
|
|
14
|
+
#onPublishDebounced = microbounce(() => {
|
|
15
|
+
this.on.publish(this.state);
|
|
16
|
+
this.onFrozen.publish(this.frozen);
|
|
17
|
+
});
|
|
13
18
|
constructor(optic) {
|
|
14
19
|
this[_optic] = optic;
|
|
15
20
|
this.#previous = deep.clone(optic.getState());
|
|
16
|
-
this.#
|
|
21
|
+
this.#stateCache = new CacheCell(() => deep.clone(optic.getState()));
|
|
22
|
+
this.#frozenCache = new CacheCell(() => immute(optic.getState()));
|
|
17
23
|
}
|
|
18
24
|
async update() {
|
|
19
25
|
const state = this[_optic].getState();
|
|
20
26
|
const isChanged = !deep.equal(state, this.#previous);
|
|
21
27
|
if (isChanged) {
|
|
22
|
-
this.#
|
|
28
|
+
this.#stateCache.invalidate();
|
|
29
|
+
this.#frozenCache.invalidate();
|
|
23
30
|
this.#previous = deep.clone(state);
|
|
24
31
|
this.#onPublishDebounced();
|
|
25
32
|
await tracker.notifyWrite(this);
|
|
26
33
|
}
|
|
27
34
|
}
|
|
35
|
+
/** get a snapshot of the current state. it's typed as mutable, but you should not mutate it. */
|
|
28
36
|
get state() {
|
|
29
37
|
tracker.notifyRead(this);
|
|
30
|
-
return this.#
|
|
38
|
+
return this.#stateCache.get();
|
|
39
|
+
}
|
|
40
|
+
/** get an immutable readonly snapshot of the current state. */
|
|
41
|
+
get frozen() {
|
|
42
|
+
tracker.notifyRead(this);
|
|
43
|
+
return this.#frozenCache.get();
|
|
31
44
|
}
|
|
32
45
|
async mutate(fn) {
|
|
33
46
|
return this[_optic].mutate(fn);
|
package/x/prism/lens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lens.js","sourceRoot":"","sources":["../../s/prism/lens.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAC,MAAM,WAAW,CAAA;AAChD,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAA;AAC9C,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAA;AAG/C,kEAAkE;AAClE,MAAM,OAAO,IAAI;IAChB,EAAE,GAAG,GAAG,EAA6B,
|
|
1
|
+
{"version":3,"file":"lens.js","sourceRoot":"","sources":["../../s/prism/lens.ts"],"names":[],"mappings":"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"}
|
package/x/prism/test.js
CHANGED
|
@@ -28,34 +28,34 @@ export default suite({
|
|
|
28
28
|
"get state": test(async () => {
|
|
29
29
|
const prism = new Prism({ data: { count: 1 } });
|
|
30
30
|
const lens = prism.lens(s => s.data);
|
|
31
|
-
expect(lens.
|
|
31
|
+
expect(lens.frozen.count).is(1);
|
|
32
32
|
}),
|
|
33
33
|
"state is immutable": test(async () => {
|
|
34
34
|
const prism = new Prism({ data: { count: 1 } });
|
|
35
35
|
const lens = prism.lens(s => s.data);
|
|
36
|
-
expect(() => lens.
|
|
36
|
+
expect(() => lens.frozen.count++).throws();
|
|
37
37
|
}),
|
|
38
38
|
"proper mutation": test(async () => {
|
|
39
39
|
const prism = new Prism({ data: { count: 1 } });
|
|
40
40
|
const lens = prism.lens(s => s.data);
|
|
41
41
|
await lens.mutate(s => s.count++);
|
|
42
|
-
expect(lens.
|
|
42
|
+
expect(lens.frozen.count).is(2);
|
|
43
43
|
await lens.mutate(s => s.count++);
|
|
44
|
-
expect(lens.
|
|
44
|
+
expect(lens.frozen.count).is(3);
|
|
45
45
|
}),
|
|
46
46
|
"state after mutation is frozen": test(async () => {
|
|
47
47
|
const prism = new Prism({ data: { count: 1 } });
|
|
48
48
|
const lens = prism.lens(s => s);
|
|
49
49
|
await lens.mutate(s => s.data = { count: 2 });
|
|
50
|
-
expect(lens.
|
|
51
|
-
expect(() => lens.
|
|
50
|
+
expect(lens.frozen.data.count).is(2);
|
|
51
|
+
expect(() => lens.frozen.data.count++).throws();
|
|
52
52
|
}),
|
|
53
53
|
"effect reacts": test(async () => {
|
|
54
54
|
const prism = new Prism({ data: { count: 1 } });
|
|
55
55
|
const lens = prism.lens(s => s.data);
|
|
56
56
|
let happenings = 0;
|
|
57
57
|
const stop = effect(() => {
|
|
58
|
-
void lens.
|
|
58
|
+
void lens.frozen.count;
|
|
59
59
|
happenings++;
|
|
60
60
|
});
|
|
61
61
|
await lens.mutate(s => s.count++);
|
|
@@ -81,33 +81,33 @@ export default suite({
|
|
|
81
81
|
const stop = lens.on(() => void happenings++);
|
|
82
82
|
await lens.mutate(s => s.array.push("lmao"));
|
|
83
83
|
expect(happenings).is(1);
|
|
84
|
-
expect(lens.
|
|
84
|
+
expect(lens.frozen.array.length).is(2);
|
|
85
85
|
stop();
|
|
86
86
|
}),
|
|
87
87
|
"sync coherence": test(async () => {
|
|
88
88
|
const prism = new Prism({ data: { count: 1 } });
|
|
89
89
|
const lens = prism.lens(s => s.data);
|
|
90
90
|
const p1 = lens.mutate(s => s.count++);
|
|
91
|
-
expect(lens.
|
|
91
|
+
expect(lens.frozen.count).is(2);
|
|
92
92
|
const p2 = lens.mutate(s => s.count++);
|
|
93
|
-
expect(lens.
|
|
93
|
+
expect(lens.frozen.count).is(3);
|
|
94
94
|
await p1;
|
|
95
95
|
await p2;
|
|
96
96
|
}),
|
|
97
97
|
"nullable selector": test(async () => {
|
|
98
98
|
const prism = new Prism({ a: { b: { count: 1 } } });
|
|
99
99
|
const lens = prism.lens(s => s.a?.b);
|
|
100
|
-
expect(lens.
|
|
100
|
+
expect(lens.frozen?.count).is(1);
|
|
101
101
|
await prism.set({ a: undefined });
|
|
102
|
-
expect(lens.
|
|
102
|
+
expect(lens.frozen?.count).is(undefined);
|
|
103
103
|
}),
|
|
104
104
|
"deep composition": test(async () => {
|
|
105
105
|
const prism = new Prism({ a: { b: { count: 1 } } });
|
|
106
106
|
const lensA = prism.lens(s => s.a);
|
|
107
107
|
const lensB = lensA.lens(s => s.b);
|
|
108
108
|
expect(prism.get().a.b.count).is(1);
|
|
109
|
-
expect(lensA.
|
|
110
|
-
expect(lensB.
|
|
109
|
+
expect(lensA.frozen.b.count).is(1);
|
|
110
|
+
expect(lensB.frozen.count).is(1);
|
|
111
111
|
}),
|
|
112
112
|
"deep mutations": test(async () => {
|
|
113
113
|
const prism = new Prism({ a: { b: { count: 1 } } });
|
|
@@ -115,12 +115,12 @@ export default suite({
|
|
|
115
115
|
const lensB = lensA.lens(s => s.b);
|
|
116
116
|
await lensB.mutate(s => s.count++);
|
|
117
117
|
expect(prism.get().a.b.count).is(2);
|
|
118
|
-
expect(lensA.
|
|
119
|
-
expect(lensB.
|
|
118
|
+
expect(lensA.frozen.b.count).is(2);
|
|
119
|
+
expect(lensB.frozen.count).is(2);
|
|
120
120
|
await lensA.mutate(s => s.b = { count: 3 });
|
|
121
121
|
expect(prism.get().a.b.count).is(3);
|
|
122
|
-
expect(lensA.
|
|
123
|
-
expect(lensB.
|
|
122
|
+
expect(lensA.frozen.b.count).is(3);
|
|
123
|
+
expect(lensB.frozen.count).is(3);
|
|
124
124
|
}),
|
|
125
125
|
"outside mutations ignored": test(async () => {
|
|
126
126
|
const prism = new Prism({ a: { count: 1 }, b: { count: 101 } });
|
|
@@ -143,11 +143,11 @@ export default suite({
|
|
|
143
143
|
let happeningsA = 0;
|
|
144
144
|
let happeningsB = 0;
|
|
145
145
|
const stopA = effect(() => {
|
|
146
|
-
void lensA.
|
|
146
|
+
void lensA.frozen.count;
|
|
147
147
|
happeningsA++;
|
|
148
148
|
});
|
|
149
149
|
const stopB = effect(() => {
|
|
150
|
-
void lensB.
|
|
150
|
+
void lensB.frozen.count;
|
|
151
151
|
happeningsB++;
|
|
152
152
|
});
|
|
153
153
|
await lensA.mutate(s => s.count++);
|
|
@@ -162,16 +162,16 @@ export default suite({
|
|
|
162
162
|
const prism = new Prism({ data: chronicle({ count: 1 }) });
|
|
163
163
|
const lens = prism.lens(s => s.data);
|
|
164
164
|
const chrono = new Chrono(64, lens);
|
|
165
|
-
expect(chrono.
|
|
165
|
+
expect(chrono.frozen.count).is(1);
|
|
166
166
|
}),
|
|
167
167
|
"mutation": test(async () => {
|
|
168
168
|
const prism = new Prism({ data: chronicle({ count: 1 }) });
|
|
169
169
|
const lens = prism.lens(s => s.data);
|
|
170
170
|
const chrono = new Chrono(64, lens);
|
|
171
171
|
await chrono.mutate(s => s.count++);
|
|
172
|
-
expect(chrono.
|
|
172
|
+
expect(chrono.frozen.count).is(2);
|
|
173
173
|
await chrono.mutate(s => s.count++);
|
|
174
|
-
expect(chrono.
|
|
174
|
+
expect(chrono.frozen.count).is(3);
|
|
175
175
|
}),
|
|
176
176
|
"undoable/redoable": test(async () => {
|
|
177
177
|
const prism = new Prism({ data: chronicle({ count: 1 }) });
|
|
@@ -198,29 +198,29 @@ export default suite({
|
|
|
198
198
|
const lens = prism.lens(s => s.data);
|
|
199
199
|
const chrono = new Chrono(64, lens);
|
|
200
200
|
await chrono.mutate(s => s.count++);
|
|
201
|
-
expect(chrono.
|
|
201
|
+
expect(chrono.frozen.count).is(2);
|
|
202
202
|
await chrono.undo();
|
|
203
|
-
expect(chrono.
|
|
203
|
+
expect(chrono.frozen.count).is(1);
|
|
204
204
|
}),
|
|
205
205
|
"sync undo": test(async () => {
|
|
206
206
|
const prism = new Prism({ data: chronicle({ count: 1 }) });
|
|
207
207
|
const lens = prism.lens(s => s.data);
|
|
208
208
|
const chrono = new Chrono(64, lens);
|
|
209
209
|
chrono.mutate(s => s.count++);
|
|
210
|
-
expect(chrono.
|
|
210
|
+
expect(chrono.frozen.count).is(2);
|
|
211
211
|
chrono.undo();
|
|
212
|
-
expect(chrono.
|
|
212
|
+
expect(chrono.frozen.count).is(1);
|
|
213
213
|
}),
|
|
214
214
|
"redo": test(async () => {
|
|
215
215
|
const prism = new Prism({ data: chronicle({ count: 1 }) });
|
|
216
216
|
const lens = prism.lens(s => s.data);
|
|
217
217
|
const chrono = new Chrono(64, lens);
|
|
218
218
|
await chrono.mutate(s => s.count++);
|
|
219
|
-
expect(chrono.
|
|
219
|
+
expect(chrono.frozen.count).is(2);
|
|
220
220
|
await chrono.undo();
|
|
221
|
-
expect(chrono.
|
|
221
|
+
expect(chrono.frozen.count).is(1);
|
|
222
222
|
await chrono.redo();
|
|
223
|
-
expect(chrono.
|
|
223
|
+
expect(chrono.frozen.count).is(2);
|
|
224
224
|
}),
|
|
225
225
|
"undo/redo is orderly": test(async () => {
|
|
226
226
|
const prism = new Prism({ data: chronicle({ count: 1 }) });
|
|
@@ -229,35 +229,35 @@ export default suite({
|
|
|
229
229
|
await chrono.mutate(s => s.count++);
|
|
230
230
|
await chrono.mutate(s => s.count++);
|
|
231
231
|
await chrono.mutate(s => s.count++);
|
|
232
|
-
expect(chrono.
|
|
232
|
+
expect(chrono.frozen.count).is(4);
|
|
233
233
|
await chrono.undo();
|
|
234
|
-
expect(chrono.
|
|
234
|
+
expect(chrono.frozen.count).is(3);
|
|
235
235
|
await chrono.undo();
|
|
236
|
-
expect(chrono.
|
|
236
|
+
expect(chrono.frozen.count).is(2);
|
|
237
237
|
await chrono.redo();
|
|
238
|
-
expect(chrono.
|
|
238
|
+
expect(chrono.frozen.count).is(3);
|
|
239
239
|
await chrono.redo();
|
|
240
|
-
expect(chrono.
|
|
240
|
+
expect(chrono.frozen.count).is(4);
|
|
241
241
|
await chrono.undo();
|
|
242
|
-
expect(chrono.
|
|
242
|
+
expect(chrono.frozen.count).is(3);
|
|
243
243
|
await chrono.undo();
|
|
244
|
-
expect(chrono.
|
|
244
|
+
expect(chrono.frozen.count).is(2);
|
|
245
245
|
await chrono.undo();
|
|
246
|
-
expect(chrono.
|
|
246
|
+
expect(chrono.frozen.count).is(1);
|
|
247
247
|
}),
|
|
248
248
|
"undo nothing does nothing": test(async () => {
|
|
249
249
|
const prism = new Prism({ data: chronicle({ count: 1 }) });
|
|
250
250
|
const lens = prism.lens(s => s.data);
|
|
251
251
|
const chrono = new Chrono(64, lens);
|
|
252
252
|
await chrono.undo();
|
|
253
|
-
expect(chrono.
|
|
253
|
+
expect(chrono.frozen.count).is(1);
|
|
254
254
|
}),
|
|
255
255
|
"redo nothing does nothing": test(async () => {
|
|
256
256
|
const prism = new Prism({ data: chronicle({ count: 1 }) });
|
|
257
257
|
const lens = prism.lens(s => s.data);
|
|
258
258
|
const chrono = new Chrono(64, lens);
|
|
259
259
|
await chrono.redo();
|
|
260
|
-
expect(chrono.
|
|
260
|
+
expect(chrono.frozen.count).is(1);
|
|
261
261
|
}),
|
|
262
262
|
"undo 2x": test(async () => {
|
|
263
263
|
const prism = new Prism({ data: chronicle({ count: 1 }) });
|
|
@@ -266,9 +266,9 @@ export default suite({
|
|
|
266
266
|
await chrono.mutate(s => s.count++);
|
|
267
267
|
await chrono.mutate(s => s.count++);
|
|
268
268
|
await chrono.mutate(s => s.count++);
|
|
269
|
-
expect(chrono.
|
|
269
|
+
expect(chrono.frozen.count).is(4);
|
|
270
270
|
await chrono.undo(2);
|
|
271
|
-
expect(chrono.
|
|
271
|
+
expect(chrono.frozen.count).is(2);
|
|
272
272
|
}),
|
|
273
273
|
"redo 2x": test(async () => {
|
|
274
274
|
const prism = new Prism({ data: chronicle({ count: 1 }) });
|
|
@@ -277,21 +277,21 @@ export default suite({
|
|
|
277
277
|
await chrono.mutate(s => s.count++);
|
|
278
278
|
await chrono.mutate(s => s.count++);
|
|
279
279
|
await chrono.mutate(s => s.count++);
|
|
280
|
-
expect(chrono.
|
|
280
|
+
expect(chrono.frozen.count).is(4);
|
|
281
281
|
await chrono.undo(2);
|
|
282
|
-
expect(chrono.
|
|
282
|
+
expect(chrono.frozen.count).is(2);
|
|
283
283
|
await chrono.redo(2);
|
|
284
|
-
expect(chrono.
|
|
284
|
+
expect(chrono.frozen.count).is(4);
|
|
285
285
|
}),
|
|
286
286
|
"sublens mutations are undoable": test(async () => {
|
|
287
287
|
const prism = new Prism({ data: chronicle({ a: { count: 1 } }) });
|
|
288
288
|
const chrono = new Chrono(64, prism.lens(s => s.data));
|
|
289
289
|
const sublens = chrono.lens(s => s.a);
|
|
290
|
-
expect(sublens.
|
|
290
|
+
expect(sublens.frozen.count).is(1);
|
|
291
291
|
await sublens.mutate(s => s.count++);
|
|
292
|
-
expect(sublens.
|
|
292
|
+
expect(sublens.frozen.count).is(2);
|
|
293
293
|
await chrono.undo();
|
|
294
|
-
expect(sublens.
|
|
294
|
+
expect(sublens.frozen.count).is(1);
|
|
295
295
|
}),
|
|
296
296
|
}),
|
|
297
297
|
});
|
package/x/prism/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../s/prism/test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../s/prism/test.ts"],"names":[],"mappings":"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"}
|
package/x/prism/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Lens } from "./lens.js";
|
|
2
2
|
export type LensLike<State> = {
|
|
3
|
-
readonly state:
|
|
3
|
+
readonly state: State;
|
|
4
|
+
readonly frozen: Immutable<State>;
|
|
4
5
|
mutate<R>(fn: (state: State) => R): Promise<R>;
|
|
5
6
|
lens<S2>(selector: (state: State) => S2): Lens<S2>;
|
|
6
7
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare class LocalStore<X> implements
|
|
1
|
+
import { Cubby } from "./types.js";
|
|
2
|
+
export declare class LocalStore<X> implements Cubby<X> {
|
|
3
3
|
private key;
|
|
4
4
|
private storage;
|
|
5
5
|
constructor(key: string, storage?: Storage);
|
package/x/prism/vault/types.d.ts
CHANGED
|
@@ -3,12 +3,14 @@ export type Versioned<State> = {
|
|
|
3
3
|
state: State;
|
|
4
4
|
version: number;
|
|
5
5
|
};
|
|
6
|
-
export type
|
|
6
|
+
export type Cubby<X> = {
|
|
7
7
|
get(): Promise<X | undefined>;
|
|
8
8
|
set(data: X | undefined): Promise<void>;
|
|
9
9
|
};
|
|
10
|
+
/** @deprecated renamed to `Cubby` */
|
|
11
|
+
export type EzStore<X> = Cubby<X>;
|
|
10
12
|
export type VaultOptions<State> = {
|
|
11
13
|
version: number;
|
|
12
14
|
prism: Prism<State>;
|
|
13
|
-
store:
|
|
15
|
+
store: Cubby<Versioned<State>>;
|
|
14
16
|
};
|