atom.io 0.27.3 → 0.27.5

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 (96) hide show
  1. package/data/dist/index.js +57 -72
  2. package/data/src/dict.ts +9 -12
  3. package/data/src/join.ts +25 -26
  4. package/data/src/struct-family.ts +17 -23
  5. package/data/src/struct.ts +9 -12
  6. package/dist/{chunk-ETCFHO7J.js → chunk-6ABWLAGY.js} +246 -159
  7. package/dist/index.d.ts +4 -4
  8. package/dist/index.js +33 -53
  9. package/ephemeral/dist/index.js +1 -1
  10. package/ephemeral/src/find-state.ts +1 -1
  11. package/immortal/dist/index.js +2 -2
  12. package/immortal/src/seek-state.ts +2 -2
  13. package/internal/dist/index.d.ts +88 -73
  14. package/internal/dist/index.js +1 -1
  15. package/internal/src/atom/create-regular-atom.ts +3 -3
  16. package/internal/src/atom/create-standalone-atom.ts +7 -5
  17. package/internal/src/families/create-atom-family.ts +5 -5
  18. package/internal/src/families/create-readonly-selector-family.ts +35 -7
  19. package/internal/src/families/create-regular-atom-family.ts +16 -6
  20. package/internal/src/families/create-selector-family.ts +5 -5
  21. package/internal/src/families/create-writable-selector-family.ts +35 -8
  22. package/internal/src/families/dispose-from-store.ts +22 -16
  23. package/internal/src/families/find-in-store.ts +11 -11
  24. package/internal/src/families/init-family-member.ts +9 -9
  25. package/internal/src/families/seek-in-store.ts +10 -13
  26. package/internal/src/get-state/get-from-store.ts +58 -20
  27. package/internal/src/get-state/read-or-compute-value.ts +1 -1
  28. package/internal/src/index.ts +5 -3
  29. package/internal/src/ingest-updates/ingest-atom-update.ts +1 -1
  30. package/internal/src/ingest-updates/ingest-creation-disposal.ts +5 -5
  31. package/internal/src/molecule/create-molecule-family.ts +1 -1
  32. package/internal/src/molecule/dispose-molecule.ts +1 -1
  33. package/internal/src/molecule/grow-molecule-in-store.ts +1 -1
  34. package/internal/src/molecule/make-molecule-in-store.ts +5 -5
  35. package/internal/src/mutable/create-mutable-atom-family.ts +15 -6
  36. package/internal/src/mutable/create-mutable-atom.ts +3 -3
  37. package/internal/src/mutable/get-json-token.ts +2 -2
  38. package/internal/src/mutable/tracker-family.ts +3 -3
  39. package/internal/src/mutable/tracker.ts +14 -18
  40. package/internal/src/selector/create-readonly-selector.ts +2 -2
  41. package/internal/src/selector/create-standalone-selector.ts +5 -5
  42. package/internal/src/selector/create-writable-selector.ts +8 -8
  43. package/internal/src/selector/register-selector.ts +9 -9
  44. package/internal/src/set-state/set-into-store.ts +21 -18
  45. package/internal/src/store/deposit.ts +62 -21
  46. package/internal/src/store/store.ts +2 -1
  47. package/internal/src/subscribe/index.ts +2 -0
  48. package/internal/src/subscribe/subscribe-in-store.ts +62 -0
  49. package/internal/src/timeline/time-travel.ts +1 -1
  50. package/internal/src/transaction/build-transaction.ts +7 -6
  51. package/introspection/dist/index.js +66 -87
  52. package/introspection/src/attach-atom-index.ts +5 -8
  53. package/introspection/src/attach-selector-index.ts +6 -8
  54. package/introspection/src/attach-timeline-family.ts +25 -28
  55. package/introspection/src/attach-timeline-index.ts +5 -8
  56. package/introspection/src/attach-transaction-index.ts +5 -8
  57. package/introspection/src/attach-transaction-logs.ts +21 -27
  58. package/json/dist/index.js +12 -15
  59. package/json/src/select-json-family.ts +4 -4
  60. package/json/src/select-json.ts +6 -9
  61. package/package.json +4 -4
  62. package/react/dist/index.js +7 -7
  63. package/react/src/parse-state-overloads.ts +2 -2
  64. package/react/src/use-i.ts +1 -1
  65. package/react/src/use-json.ts +2 -2
  66. package/react/src/use-o.ts +2 -2
  67. package/realtime-client/dist/index.js +35 -55
  68. package/realtime-client/src/pull-atom-family-member.ts +1 -1
  69. package/realtime-client/src/pull-atom.ts +1 -1
  70. package/realtime-client/src/pull-mutable-atom-family-member.ts +3 -3
  71. package/realtime-client/src/pull-mutable-atom.ts +3 -3
  72. package/realtime-client/src/sync-continuity.ts +27 -47
  73. package/realtime-react/dist/index.js +3 -3
  74. package/realtime-react/src/use-pull-atom-family-member.ts +1 -1
  75. package/realtime-react/src/use-pull-mutable-family-member.ts +1 -1
  76. package/realtime-react/src/use-pull-selector-family-member.ts +1 -1
  77. package/realtime-server/dist/index.js +32 -32
  78. package/realtime-server/src/realtime-continuity-synchronizer.ts +16 -16
  79. package/realtime-server/src/realtime-family-provider.ts +3 -3
  80. package/realtime-server/src/realtime-mutable-family-provider.ts +5 -5
  81. package/realtime-server/src/realtime-mutable-provider.ts +2 -2
  82. package/realtime-server/src/realtime-state-provider.ts +1 -1
  83. package/realtime-server/src/realtime-state-receiver.ts +1 -1
  84. package/realtime-testing/dist/index.js +7 -7
  85. package/realtime-testing/src/setup-realtime-test.tsx +7 -7
  86. package/src/atom.ts +2 -2
  87. package/src/dispose-state.ts +2 -2
  88. package/src/get-state.ts +9 -13
  89. package/src/logger.ts +4 -0
  90. package/src/molecule.ts +1 -1
  91. package/src/selector.ts +2 -2
  92. package/src/set-state.ts +10 -7
  93. package/src/silo.ts +23 -53
  94. package/src/subscribe.ts +3 -23
  95. package/src/timeline.ts +2 -2
  96. package/internal/src/families/throw-in-case-of-conflicting-family.ts +0 -18
@@ -12,35 +12,29 @@ export const attachTransactionLogs = (
12
12
  const transactionUpdateLogAtoms = createRegularAtomFamily<
13
13
  TransactionUpdate<Func>[],
14
14
  string
15
- >(
16
- {
17
- key: `👁‍🗨 Transaction Update Log (Internal)`,
18
- default: () => [],
19
- effects: (key) => [
20
- ({ setSelf }) => {
21
- const tx = store.transactions.get(key)
22
- tx?.subject.subscribe(`introspection`, (transactionUpdate) => {
23
- if (transactionUpdate.key === key) {
24
- setSelf((state) => [...state, transactionUpdate])
25
- }
26
- })
27
- },
28
- ],
29
- },
30
- store,
31
- )
15
+ >(store, {
16
+ key: `👁‍🗨 Transaction Update Log (Internal)`,
17
+ default: () => [],
18
+ effects: (key) => [
19
+ ({ setSelf }) => {
20
+ const tx = store.transactions.get(key)
21
+ tx?.subject.subscribe(`introspection`, (transactionUpdate) => {
22
+ if (transactionUpdate.key === key) {
23
+ setSelf((state) => [...state, transactionUpdate])
24
+ }
25
+ })
26
+ },
27
+ ],
28
+ })
32
29
  const findTransactionUpdateLogState = createSelectorFamily<
33
30
  TransactionUpdate<Func>[],
34
31
  string
35
- >(
36
- {
37
- key: `👁‍🗨 Transaction Update Log`,
38
- get:
39
- (key) =>
40
- ({ get }) =>
41
- get(transactionUpdateLogAtoms, key),
42
- },
43
- store,
44
- )
32
+ >(store, {
33
+ key: `👁‍🗨 Transaction Update Log`,
34
+ get:
35
+ (key) =>
36
+ ({ get }) =>
37
+ get(transactionUpdateLogAtoms, key),
38
+ })
45
39
  return findTransactionUpdateLogState
46
40
  }
@@ -1,6 +1,6 @@
1
1
  import { stringifyJson, parseJson } from '../../dist/chunk-AK23DRMD.js';
2
2
  export { parseJson, stringifyJson } from '../../dist/chunk-AK23DRMD.js';
3
- import { createWritableSelectorFamily } from '../../dist/chunk-ETCFHO7J.js';
3
+ import { createWritableSelectorFamily } from '../../dist/chunk-6ABWLAGY.js';
4
4
  import '../../dist/chunk-IBTHB2PI.js';
5
5
  import '../../dist/chunk-XWL6SNVU.js';
6
6
  import { createStandaloneSelector, IMPLICIT, growMoleculeInStore, initFamilyMemberInStore, withdraw, seekInStore } from 'atom.io/internal';
@@ -10,19 +10,17 @@ function fromEntries(entries) {
10
10
  return Object.fromEntries(entries);
11
11
  }
12
12
  var selectJson = (atom, transform, store = IMPLICIT.STORE) => {
13
- return createStandaloneSelector(
14
- {
15
- key: `${atom.key}:JSON`,
16
- get: ({ get }) => transform.toJson(get(atom)),
17
- set: ({ set }, newValue) => {
18
- set(atom, transform.fromJson(newValue));
19
- }
20
- },
21
- store
22
- );
13
+ return createStandaloneSelector(store, {
14
+ key: `${atom.key}:JSON`,
15
+ get: ({ get }) => transform.toJson(get(atom)),
16
+ set: ({ set }, newValue) => {
17
+ set(atom, transform.fromJson(newValue));
18
+ }
19
+ });
23
20
  };
24
21
  function selectJsonFamily(atomFamilyToken, transform, store = IMPLICIT.STORE) {
25
22
  const jsonFamily = createWritableSelectorFamily(
23
+ store,
26
24
  {
27
25
  key: `${atomFamilyToken.key}:JSON`,
28
26
  get: (key) => ({ seek, get }) => {
@@ -39,7 +37,7 @@ function selectJsonFamily(atomFamilyToken, transform, store = IMPLICIT.STORE) {
39
37
  if (store.config.lifespan === `immortal`) {
40
38
  throw new Error(`No molecule found for key "${stringKey}"`);
41
39
  }
42
- const newToken = initFamilyMemberInStore(atomFamilyToken, key, store);
40
+ const newToken = initFamilyMemberInStore(store, atomFamilyToken, key);
43
41
  return transform.toJson(get(newToken));
44
42
  },
45
43
  set: (key) => ({ seek, set }, newValue) => {
@@ -57,14 +55,13 @@ function selectJsonFamily(atomFamilyToken, transform, store = IMPLICIT.STORE) {
57
55
  throw new Error(`No molecule found for key "${stringKey}"`);
58
56
  }
59
57
  set(
60
- initFamilyMemberInStore(atomFamilyToken, key, store),
58
+ initFamilyMemberInStore(store, atomFamilyToken, key),
61
59
  transform.fromJson(newValue)
62
60
  );
63
61
  }
64
62
  }
65
63
  }
66
64
  },
67
- store,
68
65
  [`mutable`, `json`]
69
66
  );
70
67
  const atomFamily = withdraw(atomFamilyToken, store);
@@ -72,7 +69,7 @@ function selectJsonFamily(atomFamilyToken, transform, store = IMPLICIT.STORE) {
72
69
  `store=${store.config.name}::json-selector-family`,
73
70
  (event) => {
74
71
  if (event.token.family) {
75
- seekInStore(jsonFamily, parseJson(event.token.family.subKey), store);
72
+ seekInStore(store, jsonFamily, parseJson(event.token.family.subKey));
76
73
  }
77
74
  }
78
75
  );
@@ -42,6 +42,7 @@ export function selectJsonFamily<
42
42
  store: Store = IMPLICIT.STORE,
43
43
  ): AtomIO.WritableSelectorFamilyToken<J, K> {
44
44
  const jsonFamily = createWritableSelectorFamily<J, K>(
45
+ store,
45
46
  {
46
47
  key: `${atomFamilyToken.key}:JSON`,
47
48
  get:
@@ -60,7 +61,7 @@ export function selectJsonFamily<
60
61
  if (store.config.lifespan === `immortal`) {
61
62
  throw new Error(`No molecule found for key "${stringKey}"`)
62
63
  }
63
- const newToken = initFamilyMemberInStore(atomFamilyToken, key, store)
64
+ const newToken = initFamilyMemberInStore(store, atomFamilyToken, key)
64
65
  return transform.toJson(get(newToken))
65
66
  },
66
67
  set:
@@ -80,14 +81,13 @@ export function selectJsonFamily<
80
81
  throw new Error(`No molecule found for key "${stringKey}"`)
81
82
  }
82
83
  set(
83
- initFamilyMemberInStore(atomFamilyToken, key, store),
84
+ initFamilyMemberInStore(store, atomFamilyToken, key),
84
85
  transform.fromJson(newValue),
85
86
  )
86
87
  }
87
88
  }
88
89
  },
89
90
  },
90
- store,
91
91
  [`mutable`, `json`],
92
92
  )
93
93
  const atomFamily = withdraw(atomFamilyToken, store)
@@ -95,7 +95,7 @@ export function selectJsonFamily<
95
95
  `store=${store.config.name}::json-selector-family`,
96
96
  (event) => {
97
97
  if (event.token.family) {
98
- seekInStore(jsonFamily, parseJson(event.token.family.subKey) as K, store)
98
+ seekInStore(store, jsonFamily, parseJson(event.token.family.subKey) as K)
99
99
  }
100
100
  },
101
101
  )
@@ -9,14 +9,11 @@ export const selectJson = <T, J extends Json.Serializable>(
9
9
  transform: JsonInterface<T, J>,
10
10
  store: Store = IMPLICIT.STORE,
11
11
  ): AtomIO.WritableSelectorToken<J> => {
12
- return createStandaloneSelector(
13
- {
14
- key: `${atom.key}:JSON`,
15
- get: ({ get }) => transform.toJson(get(atom)),
16
- set: ({ set }, newValue) => {
17
- set(atom, transform.fromJson(newValue))
18
- },
12
+ return createStandaloneSelector(store, {
13
+ key: `${atom.key}:JSON`,
14
+ get: ({ get }) => transform.toJson(get(atom)),
15
+ set: ({ set }, newValue) => {
16
+ set(atom, transform.fromJson(newValue))
19
17
  },
20
- store,
21
- )
18
+ })
22
19
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atom.io",
3
- "version": "0.27.3",
3
+ "version": "0.27.5",
4
4
  "description": "Composable and testable reactive data library.",
5
5
  "homepage": "https://atom.io.fyi",
6
6
  "sideEffects": false,
@@ -67,7 +67,7 @@
67
67
  "drizzle-kit": "0.24.0",
68
68
  "drizzle-orm": "0.33.0",
69
69
  "eslint": "9.9.0",
70
- "framer-motion": "11.3.24",
70
+ "framer-motion": "11.3.28",
71
71
  "happy-dom": "14.12.3",
72
72
  "http-proxy": "1.18.1",
73
73
  "npmlog": "7.0.1",
@@ -75,14 +75,14 @@
75
75
  "preact": "10.23.2",
76
76
  "react": "18.3.1",
77
77
  "react-dom": "18.3.1",
78
- "react-router-dom": "6.26.0",
78
+ "react-router-dom": "6.26.1",
79
79
  "socket.io": "4.7.5",
80
80
  "socket.io-client": "4.7.5",
81
81
  "tmp": "0.2.3",
82
82
  "tsup": "8.2.4",
83
83
  "tsx": "4.17.0",
84
84
  "typescript": "5.5.4",
85
- "vite": "5.4.0",
85
+ "vite": "5.4.1",
86
86
  "vite-tsconfig-paths": "5.0.1",
87
87
  "vitest": "2.0.5"
88
88
  },
@@ -12,13 +12,13 @@ function parseStateOverloads(store, ...rest) {
12
12
  const family = rest[0];
13
13
  const key = rest[1];
14
14
  if (store.config.lifespan === `immortal`) {
15
- const maybeToken = seekInStore(family, key, store);
15
+ const maybeToken = seekInStore(store, family, key);
16
16
  if (!maybeToken) {
17
17
  throw new NotFoundError(family, key, store);
18
18
  }
19
19
  token = maybeToken;
20
20
  } else {
21
- token = findInStore(family, key, store);
21
+ token = findInStore(store, family, key);
22
22
  }
23
23
  } else {
24
24
  token = rest[0];
@@ -33,7 +33,7 @@ function useI(...params) {
33
33
  const setter = React5.useRef(null);
34
34
  if (setter.current === null) {
35
35
  setter.current = (next) => {
36
- setIntoStore(token, next, store);
36
+ setIntoStore(store, token, next);
37
37
  };
38
38
  }
39
39
  return setter.current;
@@ -44,16 +44,16 @@ function useO(...params) {
44
44
  const id = React5.useId();
45
45
  return React5.useSyncExternalStore(
46
46
  (dispatch) => subscribeToState(token, dispatch, `use-o:${id}`, store),
47
- () => getFromStore(token, store),
48
- () => getFromStore(token, store)
47
+ () => getFromStore(store, token),
48
+ () => getFromStore(store, token)
49
49
  );
50
50
  }
51
51
 
52
52
  // react/src/use-json.ts
53
53
  function useJSON(token, key) {
54
54
  const store = React5.useContext(StoreContext);
55
- const stateToken = token.type === `mutable_atom_family` ? findInStore(token, key, store) : token;
56
- const jsonToken = getJsonToken(stateToken, store);
55
+ const stateToken = token.type === `mutable_atom_family` ? findInStore(store, token, key) : token;
56
+ const jsonToken = getJsonToken(store, stateToken);
57
57
  return useO(jsonToken);
58
58
  }
59
59
  function useTL(token) {
@@ -28,13 +28,13 @@ export function parseStateOverloads<T, K extends Canonical>(
28
28
  const key = rest[1]
29
29
 
30
30
  if (store.config.lifespan === `immortal`) {
31
- const maybeToken = seekInStore(family, key, store)
31
+ const maybeToken = seekInStore(store, family, key)
32
32
  if (!maybeToken) {
33
33
  throw new NotFoundError(family, key, store)
34
34
  }
35
35
  token = maybeToken
36
36
  } else {
37
- token = findInStore(family, key, store)
37
+ token = findInStore(store, family, key)
38
38
  }
39
39
  } else {
40
40
  token = rest[0]
@@ -25,7 +25,7 @@ export function useI<T, K extends Canonical>(
25
25
  > = React.useRef(null)
26
26
  if (setter.current === null) {
27
27
  setter.current = (next) => {
28
- setIntoStore(token, next, store)
28
+ setIntoStore(store, token, next)
29
29
  }
30
30
  }
31
31
  return setter.current
@@ -31,8 +31,8 @@ export function useJSON<
31
31
  const store = React.useContext(StoreContext)
32
32
  const stateToken: ReadableToken<any> =
33
33
  token.type === `mutable_atom_family`
34
- ? findInStore(token, key as Key, store)
34
+ ? findInStore(store, token, key as Key)
35
35
  : token
36
- const jsonToken = getJsonToken(stateToken, store)
36
+ const jsonToken = getJsonToken(store, stateToken)
37
37
  return useO(jsonToken)
38
38
  }
@@ -21,7 +21,7 @@ export function useO<T, K extends Canonical>(
21
21
  const id = React.useId()
22
22
  return React.useSyncExternalStore<T>(
23
23
  (dispatch) => subscribeToState(token, dispatch, `use-o:${id}`, store),
24
- () => getFromStore(token, store),
25
- () => getFromStore(token, store),
24
+ () => getFromStore(store, token),
25
+ () => getFromStore(store, token),
26
26
  )
27
27
  }
@@ -8,7 +8,7 @@ import { optimisticUpdateQueue as optimisticUpdateQueue$1, confirmedUpdateQueue
8
8
 
9
9
  function pullAtom(token, socket, store) {
10
10
  const setServedValue = (data) => {
11
- setIntoStore(token, data, store);
11
+ setIntoStore(store, token, data);
12
12
  };
13
13
  socket.on(`serve:${token.key}`, setServedValue);
14
14
  socket.emit(`sub:${token.key}`);
@@ -26,7 +26,7 @@ function pullAtomFamilyMember(token, socket, store) {
26
26
  const { key: familyKey, subKey: serializedSubKey } = token.family;
27
27
  const subKey = parseJson(serializedSubKey);
28
28
  socket?.on(`serve:${token.key}`, (data) => {
29
- setIntoStore(token, data, store);
29
+ setIntoStore(store, token, data);
30
30
  });
31
31
  socket?.emit(`sub:${familyKey}`, subKey);
32
32
  return () => {
@@ -35,15 +35,15 @@ function pullAtomFamilyMember(token, socket, store) {
35
35
  };
36
36
  }
37
37
  function pullMutableAtom(token, socket, store) {
38
- const jsonToken = getJsonToken(token, store);
38
+ const jsonToken = getJsonToken(store, token);
39
39
  const updateToken = getUpdateToken(token);
40
40
  socket.on(`init:${token.key}`, (data) => {
41
- setIntoStore(jsonToken, data, store);
41
+ setIntoStore(store, jsonToken, data);
42
42
  });
43
43
  socket.on(
44
44
  `next:${token.key}`,
45
45
  (data) => {
46
- setIntoStore(updateToken, data, store);
46
+ setIntoStore(store, updateToken, data);
47
47
  }
48
48
  );
49
49
  socket.emit(`sub:${token.key}`);
@@ -62,14 +62,14 @@ function pullMutableAtomFamilyMember(token, socket, store) {
62
62
  const { key: familyKey, subKey: serializedSubKey } = token.family;
63
63
  const subKey = parseJson(serializedSubKey);
64
64
  socket.on(`init:${token.key}`, (data) => {
65
- const jsonToken = getJsonToken(token, store);
66
- setIntoStore(jsonToken, data, store);
65
+ const jsonToken = getJsonToken(store, token);
66
+ setIntoStore(store, jsonToken, data);
67
67
  });
68
68
  socket.on(
69
69
  `next:${token.key}`,
70
70
  (data) => {
71
71
  const trackerToken = getUpdateToken(token);
72
- setIntoStore(trackerToken, data, store);
72
+ setIntoStore(store, trackerToken, data);
73
73
  }
74
74
  );
75
75
  socket.emit(`sub:${familyKey}`, subKey);
@@ -195,8 +195,8 @@ function serverAction(token, socket, store) {
195
195
  }
196
196
  function syncContinuity(continuity, socket, store) {
197
197
  const continuityKey = continuity.key;
198
- const optimisticUpdates = getFromStore(optimisticUpdateQueue$1, store);
199
- const confirmedUpdates = getFromStore(confirmedUpdateQueue$1, store);
198
+ const optimisticUpdates = getFromStore(store, optimisticUpdateQueue$1);
199
+ const confirmedUpdates = getFromStore(store, confirmedUpdateQueue$1);
200
200
  const initializeContinuity = (epoch, payload) => {
201
201
  socket.off(`continuity-init:${continuityKey}`, initializeContinuity);
202
202
  let i = 0;
@@ -208,9 +208,9 @@ function syncContinuity(continuity, socket, store) {
208
208
  } else {
209
209
  v = x;
210
210
  if (`type` in k && k.type === `mutable_atom`) {
211
- k = getJsonToken(k, store);
211
+ k = getJsonToken(store, k);
212
212
  }
213
- setIntoStore(k, v, store);
213
+ setIntoStore(store, k, v);
214
214
  }
215
215
  i++;
216
216
  }
@@ -226,14 +226,10 @@ function syncContinuity(continuity, socket, store) {
226
226
  continuityKey,
227
227
  `reconciling updates`
228
228
  );
229
- setIntoStore(
230
- optimisticUpdateQueue$1,
231
- (queue) => {
232
- queue.shift();
233
- return queue;
234
- },
235
- store
236
- );
229
+ setIntoStore(store, optimisticUpdateQueue$1, (queue) => {
230
+ queue.shift();
231
+ return queue;
232
+ });
237
233
  if (optimisticUpdate.id === confirmedUpdate.id) {
238
234
  const clientResult = JSON.stringify(optimisticUpdate.updates);
239
235
  const serverResult = JSON.stringify(confirmedUpdate.updates);
@@ -356,15 +352,11 @@ function syncContinuity(continuity, socket, store) {
356
352
  `pushing confirmed update to queue`,
357
353
  confirmed
358
354
  );
359
- setIntoStore(
360
- confirmedUpdateQueue$1,
361
- (queue) => {
362
- queue.push(confirmed);
363
- queue.sort((a, b) => a.epoch - b.epoch);
364
- return queue;
365
- },
366
- store
367
- );
355
+ setIntoStore(store, confirmedUpdateQueue$1, (queue) => {
356
+ queue.push(confirmed);
357
+ queue.sort((a, b) => a.epoch - b.epoch);
358
+ return queue;
359
+ });
368
360
  }
369
361
  }
370
362
  } else {
@@ -414,15 +406,11 @@ function syncContinuity(continuity, socket, store) {
414
406
  continuityKey,
415
407
  `pushing confirmed update #${confirmed.epoch} to queue`
416
408
  );
417
- setIntoStore(
418
- confirmedUpdateQueue$1,
419
- (queue) => {
420
- queue.push(confirmed);
421
- queue.sort((a, b) => a.epoch - b.epoch);
422
- return queue;
423
- },
424
- store
425
- );
409
+ setIntoStore(store, confirmedUpdateQueue$1, (queue) => {
410
+ queue.push(confirmed);
411
+ queue.sort((a, b) => a.epoch - b.epoch);
412
+ return queue;
413
+ });
426
414
  }
427
415
  }
428
416
  }
@@ -450,15 +438,11 @@ function syncContinuity(continuity, socket, store) {
450
438
  continuityKey,
451
439
  `enqueuing new optimistic update`
452
440
  );
453
- setIntoStore(
454
- optimisticUpdateQueue$1,
455
- (queue) => {
456
- queue.push(clientUpdate);
457
- queue.sort((a, b) => a.epoch - b.epoch);
458
- return queue;
459
- },
460
- store
461
- );
441
+ setIntoStore(store, optimisticUpdateQueue$1, (queue) => {
442
+ queue.push(clientUpdate);
443
+ queue.sort((a, b) => a.epoch - b.epoch);
444
+ return queue;
445
+ });
462
446
  } else {
463
447
  store.logger.info(
464
448
  `\u{1F91E}`,
@@ -466,14 +450,10 @@ function syncContinuity(continuity, socket, store) {
466
450
  continuityKey,
467
451
  `replacing existing optimistic update at index ${optimisticUpdateIndex}`
468
452
  );
469
- setIntoStore(
470
- optimisticUpdateQueue$1,
471
- (queue) => {
472
- queue[optimisticUpdateIndex] = clientUpdate;
473
- return queue;
474
- },
475
- store
476
- );
453
+ setIntoStore(store, optimisticUpdateQueue$1, (queue) => {
454
+ queue[optimisticUpdateIndex] = clientUpdate;
455
+ return queue;
456
+ });
477
457
  }
478
458
  socket.emit(`tx-run:${continuityKey}`, {
479
459
  id: clientUpdate.id,
@@ -16,7 +16,7 @@ export function pullAtomFamilyMember<J extends Json.Serializable>(
16
16
  const { key: familyKey, subKey: serializedSubKey } = token.family
17
17
  const subKey = parseJson(serializedSubKey)
18
18
  socket?.on(`serve:${token.key}`, (data: J) => {
19
- setIntoStore(token, data, store)
19
+ setIntoStore(store, token, data)
20
20
  })
21
21
  socket?.emit(`sub:${familyKey}`, subKey)
22
22
  return () => {
@@ -9,7 +9,7 @@ export function pullAtom<J extends Json.Serializable>(
9
9
  store: Store,
10
10
  ): () => void {
11
11
  const setServedValue = (data: J) => {
12
- setIntoStore(token, data, store)
12
+ setIntoStore(store, token, data)
13
13
  }
14
14
  socket.on(`serve:${token.key}`, setServedValue)
15
15
  socket.emit(`sub:${token.key}`)
@@ -20,14 +20,14 @@ export function pullMutableAtomFamilyMember<
20
20
  const { key: familyKey, subKey: serializedSubKey } = token.family
21
21
  const subKey = parseJson(serializedSubKey)
22
22
  socket.on(`init:${token.key}`, (data: J) => {
23
- const jsonToken = getJsonToken(token, store)
24
- setIntoStore(jsonToken, data, store)
23
+ const jsonToken = getJsonToken(store, token)
24
+ setIntoStore(store, jsonToken, data)
25
25
  })
26
26
  socket.on(
27
27
  `next:${token.key}`,
28
28
  (data: T extends Transceiver<infer Signal> ? Signal : never) => {
29
29
  const trackerToken = getUpdateToken(token)
30
- setIntoStore(trackerToken, data, store)
30
+ setIntoStore(store, trackerToken, data)
31
31
  },
32
32
  )
33
33
  socket.emit(`sub:${familyKey}`, subKey)
@@ -12,15 +12,15 @@ export function pullMutableAtom<
12
12
  socket: Socket,
13
13
  store: Store,
14
14
  ): () => void {
15
- const jsonToken = getJsonToken(token, store)
15
+ const jsonToken = getJsonToken(store, token)
16
16
  const updateToken = getUpdateToken(token)
17
17
  socket.on(`init:${token.key}`, (data: J) => {
18
- setIntoStore(jsonToken, data, store)
18
+ setIntoStore(store, jsonToken, data)
19
19
  })
20
20
  socket.on(
21
21
  `next:${token.key}`,
22
22
  (data: T extends Transceiver<infer Update> ? Update : never) => {
23
- setIntoStore(updateToken, data, store)
23
+ setIntoStore(store, updateToken, data)
24
24
  },
25
25
  )
26
26
  socket.emit(`sub:${token.key}`)