atom.io 0.27.4 → 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 (93) 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-JRENM6KL.js → chunk-6ABWLAGY.js} +177 -151
  7. package/dist/index.d.ts +3 -3
  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 +80 -62
  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 +20 -9
  19. package/internal/src/families/create-regular-atom-family.ts +15 -6
  20. package/internal/src/families/create-selector-family.ts +5 -5
  21. package/internal/src/families/create-writable-selector-family.ts +20 -10
  22. package/internal/src/families/dispose-from-store.ts +11 -14
  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 -10
  26. package/internal/src/get-state/get-from-store.ts +32 -18
  27. package/internal/src/ingest-updates/ingest-atom-update.ts +1 -1
  28. package/internal/src/ingest-updates/ingest-creation-disposal.ts +5 -5
  29. package/internal/src/molecule/create-molecule-family.ts +1 -1
  30. package/internal/src/molecule/dispose-molecule.ts +1 -1
  31. package/internal/src/molecule/grow-molecule-in-store.ts +1 -1
  32. package/internal/src/molecule/make-molecule-in-store.ts +5 -5
  33. package/internal/src/mutable/create-mutable-atom-family.ts +15 -6
  34. package/internal/src/mutable/create-mutable-atom.ts +3 -3
  35. package/internal/src/mutable/get-json-token.ts +2 -2
  36. package/internal/src/mutable/tracker-family.ts +3 -3
  37. package/internal/src/mutable/tracker.ts +14 -18
  38. package/internal/src/selector/create-readonly-selector.ts +2 -2
  39. package/internal/src/selector/create-standalone-selector.ts +5 -5
  40. package/internal/src/selector/create-writable-selector.ts +2 -2
  41. package/internal/src/selector/register-selector.ts +9 -9
  42. package/internal/src/set-state/set-into-store.ts +8 -16
  43. package/internal/src/store/deposit.ts +53 -13
  44. package/internal/src/store/store.ts +1 -1
  45. package/internal/src/subscribe/index.ts +2 -0
  46. package/internal/src/subscribe/subscribe-in-store.ts +62 -0
  47. package/internal/src/timeline/time-travel.ts +1 -1
  48. package/internal/src/transaction/build-transaction.ts +6 -6
  49. package/introspection/dist/index.js +66 -87
  50. package/introspection/src/attach-atom-index.ts +5 -8
  51. package/introspection/src/attach-selector-index.ts +6 -8
  52. package/introspection/src/attach-timeline-family.ts +25 -28
  53. package/introspection/src/attach-timeline-index.ts +5 -8
  54. package/introspection/src/attach-transaction-index.ts +5 -8
  55. package/introspection/src/attach-transaction-logs.ts +21 -27
  56. package/json/dist/index.js +12 -15
  57. package/json/src/select-json-family.ts +4 -4
  58. package/json/src/select-json.ts +6 -9
  59. package/package.json +1 -1
  60. package/react/dist/index.js +7 -7
  61. package/react/src/parse-state-overloads.ts +2 -2
  62. package/react/src/use-i.ts +1 -1
  63. package/react/src/use-json.ts +2 -2
  64. package/react/src/use-o.ts +2 -2
  65. package/realtime-client/dist/index.js +35 -55
  66. package/realtime-client/src/pull-atom-family-member.ts +1 -1
  67. package/realtime-client/src/pull-atom.ts +1 -1
  68. package/realtime-client/src/pull-mutable-atom-family-member.ts +3 -3
  69. package/realtime-client/src/pull-mutable-atom.ts +3 -3
  70. package/realtime-client/src/sync-continuity.ts +27 -47
  71. package/realtime-react/dist/index.js +3 -3
  72. package/realtime-react/src/use-pull-atom-family-member.ts +1 -1
  73. package/realtime-react/src/use-pull-mutable-family-member.ts +1 -1
  74. package/realtime-react/src/use-pull-selector-family-member.ts +1 -1
  75. package/realtime-server/dist/index.js +32 -32
  76. package/realtime-server/src/realtime-continuity-synchronizer.ts +16 -16
  77. package/realtime-server/src/realtime-family-provider.ts +3 -3
  78. package/realtime-server/src/realtime-mutable-family-provider.ts +5 -5
  79. package/realtime-server/src/realtime-mutable-provider.ts +2 -2
  80. package/realtime-server/src/realtime-state-provider.ts +1 -1
  81. package/realtime-server/src/realtime-state-receiver.ts +1 -1
  82. package/realtime-testing/dist/index.js +7 -7
  83. package/realtime-testing/src/setup-realtime-test.tsx +7 -7
  84. package/src/atom.ts +2 -2
  85. package/src/dispose-state.ts +2 -2
  86. package/src/get-state.ts +9 -13
  87. package/src/molecule.ts +1 -1
  88. package/src/selector.ts +2 -2
  89. package/src/set-state.ts +10 -7
  90. package/src/silo.ts +23 -53
  91. package/src/subscribe.ts +3 -23
  92. package/src/timeline.ts +2 -2
  93. package/internal/src/families/throw-in-case-of-conflicting-family.ts +0 -18
@@ -68,19 +68,19 @@ export const buildTransaction = (
68
68
  },
69
69
  toolkit: {
70
70
  get: ((...ps: Parameters<typeof getState>) =>
71
- getFromStore(...ps, child)) as typeof getState,
71
+ getFromStore(child, ...ps)) as typeof getState,
72
72
  set: ((...ps: Parameters<typeof setState>) => {
73
- setIntoStore(...ps, child)
73
+ setIntoStore(child, ...ps)
74
74
  }) as typeof setState,
75
75
  run: (token, identifier = arbitrary()) =>
76
76
  actUponStore(token, identifier, child),
77
- find: ((token, k) => findInStore(token, k, child)) as typeof findState,
78
- seek: ((token, k) => seekInStore(token, k, child)) as typeof seekState,
79
- json: (token) => getJsonToken(token, child),
77
+ find: ((token, k) => findInStore(child, token, k)) as typeof findState,
78
+ seek: ((token, k) => seekInStore(child, token, k)) as typeof seekState,
79
+ json: (token) => getJsonToken(child, token),
80
80
  make: (context, family, k, ...args) =>
81
81
  makeMoleculeInStore(child, context, family, k, ...args),
82
82
  dispose: ((...ps: Parameters<typeof disposeState>) => {
83
- disposeFromStore(...ps, child)
83
+ disposeFromStore(child, ...ps)
84
84
  }) as typeof disposeState,
85
85
  env: () => getEnvironmentData(child),
86
86
  },
@@ -5,6 +5,7 @@ import { getState } from 'atom.io';
5
5
 
6
6
  var attachAtomIndex = (store = IMPLICIT.STORE) => {
7
7
  const atomTokenIndexState__INTERNAL = createRegularAtom(
8
+ store,
8
9
  {
9
10
  key: `\u{1F441}\u200D\u{1F5E8} Atom Token Index (Internal)`,
10
11
  default: () => {
@@ -73,19 +74,16 @@ var attachAtomIndex = (store = IMPLICIT.STORE) => {
73
74
  }
74
75
  ]
75
76
  },
76
- void 0,
77
- store
78
- );
79
- return createStandaloneSelector(
80
- {
81
- key: `\u{1F441}\u200D\u{1F5E8} Atom Token Index`,
82
- get: ({ get }) => get(atomTokenIndexState__INTERNAL)
83
- },
84
- store
77
+ void 0
85
78
  );
79
+ return createStandaloneSelector(store, {
80
+ key: `\u{1F441}\u200D\u{1F5E8} Atom Token Index`,
81
+ get: ({ get }) => get(atomTokenIndexState__INTERNAL)
82
+ });
86
83
  };
87
84
  var attachSelectorIndex = (store = IMPLICIT.STORE) => {
88
85
  const readonlySelectorTokenIndexState__INTERNAL = createRegularAtom(
86
+ store,
89
87
  {
90
88
  key: `\u{1F441}\u200D\u{1F5E8} Selector Token Index (Internal)`,
91
89
  default: () => {
@@ -162,56 +160,50 @@ var attachSelectorIndex = (store = IMPLICIT.STORE) => {
162
160
  }
163
161
  ]
164
162
  },
165
- void 0,
166
- store
167
- );
168
- return createStandaloneSelector(
169
- {
170
- key: `\u{1F441}\u200D\u{1F5E8} Selector Token Index`,
171
- get: ({ get }) => get(readonlySelectorTokenIndexState__INTERNAL)
172
- },
173
- IMPLICIT.STORE
163
+ void 0
174
164
  );
165
+ return createStandaloneSelector(IMPLICIT.STORE, {
166
+ key: `\u{1F441}\u200D\u{1F5E8} Selector Token Index`,
167
+ get: ({ get }) => get(readonlySelectorTokenIndexState__INTERNAL)
168
+ });
175
169
  };
176
170
  var attachTimelineFamily = (store = IMPLICIT.STORE) => {
177
- const findTimelineLogState__INTERNAL = createRegularAtomFamily(
178
- {
179
- key: `\u{1F441}\u200D\u{1F5E8} Timeline Update Log (Internal)`,
180
- default: (key) => store.timelines.get(key) ?? {
181
- type: `timeline`,
182
- key: ``,
183
- at: 0,
184
- timeTraveling: null,
185
- history: [],
186
- selectorTime: null,
187
- transactionKey: null,
188
- install: () => {
189
- },
190
- subject: new Subject(),
191
- subscriptions: /* @__PURE__ */ new Map()
171
+ const findTimelineLogState__INTERNAL = createRegularAtomFamily(store, {
172
+ key: `\u{1F441}\u200D\u{1F5E8} Timeline Update Log (Internal)`,
173
+ default: (key) => store.timelines.get(key) ?? {
174
+ type: `timeline`,
175
+ key: ``,
176
+ at: 0,
177
+ timeTraveling: null,
178
+ history: [],
179
+ selectorTime: null,
180
+ transactionKey: null,
181
+ install: () => {
192
182
  },
193
- effects: (key) => [
194
- ({ setSelf }) => {
195
- const tl = store.timelines.get(key);
196
- tl?.subject.subscribe(`introspection`, (_) => {
197
- setSelf({ ...tl });
198
- });
199
- }
200
- ]
183
+ subject: new Subject(),
184
+ subscriptions: /* @__PURE__ */ new Map()
201
185
  },
202
- store
203
- );
186
+ effects: (key) => [
187
+ ({ setSelf }) => {
188
+ const tl = store.timelines.get(key);
189
+ tl?.subject.subscribe(`introspection`, (_) => {
190
+ setSelf({ ...tl });
191
+ });
192
+ }
193
+ ]
194
+ });
204
195
  const findTimelineLogState = createSelectorFamily(
196
+ store,
205
197
  {
206
198
  key: `\u{1F441}\u200D\u{1F5E8} Timeline Update Log`,
207
199
  get: (key) => ({ get }) => get(findTimelineLogState__INTERNAL, key)
208
- },
209
- store
200
+ }
210
201
  );
211
202
  return findTimelineLogState;
212
203
  };
213
204
  var attachTimelineIndex = (store = IMPLICIT.STORE) => {
214
205
  const timelineTokenIndexState__INTERNAL = createRegularAtom(
206
+ store,
215
207
  {
216
208
  key: `\u{1F441}\u200D\u{1F5E8} Timeline Token Index (Internal)`,
217
209
  default: () => [...store.timelines].map(([key]) => {
@@ -228,20 +220,17 @@ var attachTimelineIndex = (store = IMPLICIT.STORE) => {
228
220
  }
229
221
  ]
230
222
  },
231
- void 0,
232
- store
233
- );
234
- const timelineTokenIndex = createStandaloneSelector(
235
- {
236
- key: `\u{1F441}\u200D\u{1F5E8} Timeline Token Index`,
237
- get: ({ get }) => get(timelineTokenIndexState__INTERNAL)
238
- },
239
- store
223
+ void 0
240
224
  );
225
+ const timelineTokenIndex = createStandaloneSelector(store, {
226
+ key: `\u{1F441}\u200D\u{1F5E8} Timeline Token Index`,
227
+ get: ({ get }) => get(timelineTokenIndexState__INTERNAL)
228
+ });
241
229
  return timelineTokenIndex;
242
230
  };
243
231
  var attachTransactionIndex = (store = IMPLICIT.STORE) => {
244
232
  const transactionTokenIndexState__INTERNAL = createRegularAtom(
233
+ store,
245
234
  {
246
235
  key: `\u{1F441}\u200D\u{1F5E8} Transaction Token Index (Internal)`,
247
236
  default: () => [...store.transactions].map(([key]) => {
@@ -258,43 +247,33 @@ var attachTransactionIndex = (store = IMPLICIT.STORE) => {
258
247
  }
259
248
  ]
260
249
  },
261
- void 0,
262
- store
263
- );
264
- const transactionTokenIndex = createStandaloneSelector(
265
- {
266
- key: `\u{1F441}\u200D\u{1F5E8} Transaction Token Index`,
267
- get: ({ get }) => get(transactionTokenIndexState__INTERNAL)
268
- },
269
- store
250
+ void 0
270
251
  );
252
+ const transactionTokenIndex = createStandaloneSelector(store, {
253
+ key: `\u{1F441}\u200D\u{1F5E8} Transaction Token Index`,
254
+ get: ({ get }) => get(transactionTokenIndexState__INTERNAL)
255
+ });
271
256
  return transactionTokenIndex;
272
257
  };
273
258
  var attachTransactionLogs = (store = IMPLICIT.STORE) => {
274
- const transactionUpdateLogAtoms = createRegularAtomFamily(
275
- {
276
- key: `\u{1F441}\u200D\u{1F5E8} Transaction Update Log (Internal)`,
277
- default: () => [],
278
- effects: (key) => [
279
- ({ setSelf }) => {
280
- const tx = store.transactions.get(key);
281
- tx?.subject.subscribe(`introspection`, (transactionUpdate) => {
282
- if (transactionUpdate.key === key) {
283
- setSelf((state) => [...state, transactionUpdate]);
284
- }
285
- });
286
- }
287
- ]
288
- },
289
- store
290
- );
291
- const findTransactionUpdateLogState = createSelectorFamily(
292
- {
293
- key: `\u{1F441}\u200D\u{1F5E8} Transaction Update Log`,
294
- get: (key) => ({ get }) => get(transactionUpdateLogAtoms, key)
295
- },
296
- store
297
- );
259
+ const transactionUpdateLogAtoms = createRegularAtomFamily(store, {
260
+ key: `\u{1F441}\u200D\u{1F5E8} Transaction Update Log (Internal)`,
261
+ default: () => [],
262
+ effects: (key) => [
263
+ ({ setSelf }) => {
264
+ const tx = store.transactions.get(key);
265
+ tx?.subject.subscribe(`introspection`, (transactionUpdate) => {
266
+ if (transactionUpdate.key === key) {
267
+ setSelf((state) => [...state, transactionUpdate]);
268
+ }
269
+ });
270
+ }
271
+ ]
272
+ });
273
+ const findTransactionUpdateLogState = createSelectorFamily(store, {
274
+ key: `\u{1F441}\u200D\u{1F5E8} Transaction Update Log`,
275
+ get: (key) => ({ get }) => get(transactionUpdateLogAtoms, key)
276
+ });
298
277
  return findTransactionUpdateLogState;
299
278
  };
300
279
 
@@ -15,6 +15,7 @@ export const attachAtomIndex = (
15
15
  store: Store = IMPLICIT.STORE,
16
16
  ): ReadonlySelectorToken<AtomTokenIndex> => {
17
17
  const atomTokenIndexState__INTERNAL = createRegularAtom<AtomTokenIndex>(
18
+ store,
18
19
  {
19
20
  key: `👁‍🗨 Atom Token Index (Internal)`,
20
21
  default: () => {
@@ -88,13 +89,9 @@ export const attachAtomIndex = (
88
89
  ],
89
90
  },
90
91
  undefined,
91
- store,
92
- )
93
- return createStandaloneSelector(
94
- {
95
- key: `👁‍🗨 Atom Token Index`,
96
- get: ({ get }) => get(atomTokenIndexState__INTERNAL),
97
- },
98
- store,
99
92
  )
93
+ return createStandaloneSelector(store, {
94
+ key: `👁‍🗨 Atom Token Index`,
95
+ get: ({ get }) => get(atomTokenIndexState__INTERNAL),
96
+ })
100
97
  }
@@ -16,6 +16,8 @@ export const attachSelectorIndex = (
16
16
  ): ReadonlySelectorToken<SelectorTokenIndex> => {
17
17
  const readonlySelectorTokenIndexState__INTERNAL =
18
18
  createRegularAtom<SelectorTokenIndex>(
19
+ store,
20
+
19
21
  {
20
22
  key: `👁‍🗨 Selector Token Index (Internal)`,
21
23
  default: () => {
@@ -98,13 +100,9 @@ export const attachSelectorIndex = (
98
100
  ],
99
101
  },
100
102
  undefined,
101
- store,
102
103
  )
103
- return createStandaloneSelector(
104
- {
105
- key: `👁‍🗨 Selector Token Index`,
106
- get: ({ get }) => get(readonlySelectorTokenIndexState__INTERNAL),
107
- },
108
- IMPLICIT.STORE,
109
- )
104
+ return createStandaloneSelector(IMPLICIT.STORE, {
105
+ key: `👁‍🗨 Selector Token Index`,
106
+ get: ({ get }) => get(readonlySelectorTokenIndexState__INTERNAL),
107
+ })
110
108
  }
@@ -13,34 +13,32 @@ export const attachTimelineFamily = (
13
13
  const findTimelineLogState__INTERNAL = createRegularAtomFamily<
14
14
  Timeline<any>,
15
15
  string
16
- >(
17
- {
18
- key: `👁‍🗨 Timeline Update Log (Internal)`,
19
- default: (key) =>
20
- store.timelines.get(key) ?? {
21
- type: `timeline`,
22
- key: ``,
23
- at: 0,
24
- timeTraveling: null,
25
- history: [],
26
- selectorTime: null,
27
- transactionKey: null,
28
- install: () => {},
29
- subject: new Subject(),
30
- subscriptions: new Map(),
31
- },
32
- effects: (key) => [
33
- ({ setSelf }) => {
34
- const tl = store.timelines.get(key)
35
- tl?.subject.subscribe(`introspection`, (_) => {
36
- setSelf({ ...tl })
37
- })
38
- },
39
- ],
40
- },
41
- store,
42
- )
16
+ >(store, {
17
+ key: `👁‍🗨 Timeline Update Log (Internal)`,
18
+ default: (key) =>
19
+ store.timelines.get(key) ?? {
20
+ type: `timeline`,
21
+ key: ``,
22
+ at: 0,
23
+ timeTraveling: null,
24
+ history: [],
25
+ selectorTime: null,
26
+ transactionKey: null,
27
+ install: () => {},
28
+ subject: new Subject(),
29
+ subscriptions: new Map(),
30
+ },
31
+ effects: (key) => [
32
+ ({ setSelf }) => {
33
+ const tl = store.timelines.get(key)
34
+ tl?.subject.subscribe(`introspection`, (_) => {
35
+ setSelf({ ...tl })
36
+ })
37
+ },
38
+ ],
39
+ })
43
40
  const findTimelineLogState = createSelectorFamily<Timeline<any>, string>(
41
+ store,
44
42
  {
45
43
  key: `👁‍🗨 Timeline Update Log`,
46
44
  get:
@@ -48,7 +46,6 @@ export const attachTimelineFamily = (
48
46
  ({ get }) =>
49
47
  get(findTimelineLogState__INTERNAL, key),
50
48
  },
51
- store,
52
49
  )
53
50
  return findTimelineLogState
54
51
  }
@@ -12,6 +12,7 @@ export const attachTimelineIndex = (
12
12
  const timelineTokenIndexState__INTERNAL = createRegularAtom<
13
13
  TimelineToken<any>[]
14
14
  >(
15
+ store,
15
16
  {
16
17
  key: `👁‍🗨 Timeline Token Index (Internal)`,
17
18
  default: () =>
@@ -30,14 +31,10 @@ export const attachTimelineIndex = (
30
31
  ],
31
32
  },
32
33
  undefined,
33
- store,
34
- )
35
- const timelineTokenIndex = createStandaloneSelector(
36
- {
37
- key: `👁‍🗨 Timeline Token Index`,
38
- get: ({ get }) => get(timelineTokenIndexState__INTERNAL),
39
- },
40
- store,
41
34
  )
35
+ const timelineTokenIndex = createStandaloneSelector(store, {
36
+ key: `👁‍🗨 Timeline Token Index`,
37
+ get: ({ get }) => get(timelineTokenIndexState__INTERNAL),
38
+ })
42
39
  return timelineTokenIndex
43
40
  }
@@ -12,6 +12,7 @@ export const attachTransactionIndex = (
12
12
  const transactionTokenIndexState__INTERNAL = createRegularAtom<
13
13
  TransactionToken<Func>[]
14
14
  >(
15
+ store,
15
16
  {
16
17
  key: `👁‍🗨 Transaction Token Index (Internal)`,
17
18
  default: () =>
@@ -30,14 +31,10 @@ export const attachTransactionIndex = (
30
31
  ],
31
32
  },
32
33
  undefined,
33
- store,
34
- )
35
- const transactionTokenIndex = createStandaloneSelector(
36
- {
37
- key: `👁‍🗨 Transaction Token Index`,
38
- get: ({ get }) => get(transactionTokenIndexState__INTERNAL),
39
- },
40
- store,
41
34
  )
35
+ const transactionTokenIndex = createStandaloneSelector(store, {
36
+ key: `👁‍🗨 Transaction Token Index`,
37
+ get: ({ get }) => get(transactionTokenIndexState__INTERNAL),
38
+ })
42
39
  return transactionTokenIndex
43
40
  }
@@ -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-JRENM6KL.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.4",
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,
@@ -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) {