atom.io 0.31.0 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/data/dist/index.d.ts +867 -101
  2. package/data/dist/index.js +10 -558
  3. package/data/src/index.ts +0 -2
  4. package/data/src/struct-family.ts +1 -1
  5. package/data/src/struct.ts +1 -2
  6. package/dist/chunk-354XQWHH.js +153 -0
  7. package/dist/chunk-4LWKCEW3.js +14 -0
  8. package/dist/chunk-5F2V7S3B.js +83 -0
  9. package/dist/chunk-ECOMOMUN.js +631 -0
  10. package/dist/{chunk-42UH5F5Q.js → chunk-GY2XQYZY.js} +2051 -755
  11. package/dist/chunk-NF7FJKJD.js +107 -0
  12. package/dist/chunk-R3ZUK5EH.js +1024 -0
  13. package/dist/chunk-Z2UJW4NQ.js +523 -0
  14. package/dist/index.d.ts +855 -127
  15. package/dist/index.js +1 -143
  16. package/eslint-plugin/dist/index.d.ts +1 -30
  17. package/eslint-plugin/dist/index.js +0 -146
  18. package/eslint-plugin/src/index.ts +0 -1
  19. package/eslint-plugin/src/rules/index.ts +0 -1
  20. package/internal/dist/index.d.ts +794 -70
  21. package/internal/dist/index.js +1 -2
  22. package/internal/src/atom/create-regular-atom.ts +3 -3
  23. package/internal/src/atom/dispose-atom.ts +4 -13
  24. package/internal/src/atom/is-default.ts +3 -3
  25. package/internal/src/caching.ts +5 -5
  26. package/internal/src/capitalize.ts +3 -0
  27. package/internal/src/families/create-readonly-selector-family.ts +5 -6
  28. package/internal/src/families/create-writable-selector-family.ts +1 -4
  29. package/internal/src/families/dispose-from-store.ts +3 -13
  30. package/internal/src/families/find-in-store.ts +1 -6
  31. package/internal/src/get-state/get-from-store.ts +2 -2
  32. package/internal/src/get-state/read-or-compute-value.ts +1 -1
  33. package/internal/src/index.ts +19 -9
  34. package/internal/src/ingest-updates/ingest-creation-disposal.ts +2 -3
  35. package/internal/src/install-into-store.ts +48 -0
  36. package/internal/src/join/edit-relations-in-store.ts +32 -0
  37. package/internal/src/join/find-relations-in-store.ts +124 -0
  38. package/internal/src/join/get-internal-relations-from-store.ts +14 -0
  39. package/internal/src/join/get-join.ts +31 -0
  40. package/internal/src/join/index.ts +5 -0
  41. package/{data/src/join.ts → internal/src/join/join-internal.ts} +20 -429
  42. package/internal/src/keys.ts +7 -7
  43. package/internal/src/molecule.ts +299 -0
  44. package/internal/src/mutable/create-mutable-atom-family.ts +1 -1
  45. package/internal/src/mutable/create-mutable-atom.ts +3 -3
  46. package/internal/src/mutable/get-json-token.ts +1 -1
  47. package/internal/src/mutable/tracker-family.ts +19 -17
  48. package/internal/src/mutable/tracker.ts +8 -8
  49. package/internal/src/not-found-error.ts +8 -30
  50. package/internal/src/pretty-print.ts +2 -13
  51. package/internal/src/selector/create-readonly-selector.ts +3 -7
  52. package/internal/src/selector/create-writable-selector.ts +4 -4
  53. package/internal/src/selector/dispose-selector.ts +20 -11
  54. package/internal/src/selector/get-selector-dependency-keys.ts +1 -1
  55. package/internal/src/selector/register-selector.ts +7 -17
  56. package/internal/src/selector/trace-selector-atoms.ts +2 -2
  57. package/internal/src/set-state/copy-mutable-if-needed.ts +1 -1
  58. package/internal/src/set-state/emit-update.ts +1 -1
  59. package/internal/src/set-state/evict-downstream.ts +1 -1
  60. package/internal/src/set-state/set-atom-or-selector.ts +1 -1
  61. package/internal/src/set-state/set-atom.ts +10 -10
  62. package/internal/src/set-state/set-into-store.ts +2 -2
  63. package/internal/src/set-state/stow-update.ts +1 -1
  64. package/internal/src/store/deposit.ts +10 -8
  65. package/internal/src/store/store.ts +1 -1
  66. package/internal/src/store/withdraw.ts +34 -53
  67. package/internal/src/subscribe/recall-state.ts +1 -1
  68. package/internal/src/subscribe/subscribe-in-store.ts +3 -3
  69. package/internal/src/subscribe/subscribe-to-root-atoms.ts +3 -3
  70. package/internal/src/subscribe/subscribe-to-state.ts +5 -5
  71. package/internal/src/subscribe/subscribe-to-timeline.ts +3 -3
  72. package/internal/src/subscribe/subscribe-to-transaction.ts +3 -3
  73. package/internal/src/timeline/create-timeline.ts +17 -37
  74. package/internal/src/transaction/act-upon-store.ts +2 -2
  75. package/internal/src/transaction/apply-transaction.ts +5 -5
  76. package/internal/src/transaction/assign-transaction-to-continuity.ts +1 -1
  77. package/internal/src/transaction/build-transaction.ts +5 -8
  78. package/internal/src/transaction/create-transaction.ts +3 -3
  79. package/internal/src/transaction/get-epoch-number.ts +3 -3
  80. package/internal/src/transaction/set-epoch-number.ts +2 -2
  81. package/introspection/dist/index.d.ts +922 -6
  82. package/introspection/dist/index.js +2 -620
  83. package/json/dist/index.d.ts +899 -5
  84. package/json/dist/index.js +1 -81
  85. package/json/src/select-json-family.ts +3 -14
  86. package/package.json +27 -45
  87. package/react/dist/index.d.ts +921 -3
  88. package/react/dist/index.js +2 -82
  89. package/react/src/use-o.ts +1 -1
  90. package/react/src/use-tl.ts +2 -2
  91. package/react-devtools/dist/index.css +16 -14
  92. package/react-devtools/dist/index.d.ts +26 -1
  93. package/react-devtools/dist/index.js +6 -6
  94. package/react-devtools/src/devtools.scss +16 -14
  95. package/realtime/dist/index.d.ts +202 -8
  96. package/realtime/dist/index.js +2 -107
  97. package/realtime/src/realtime-continuity.ts +2 -2
  98. package/realtime/src/shared-room-store.ts +1 -2
  99. package/realtime-client/dist/index.d.ts +960 -22
  100. package/realtime-client/dist/index.js +3 -509
  101. package/realtime-client/src/continuity/register-and-attempt-confirmed-update.ts +3 -3
  102. package/realtime-client/src/continuity/use-conceal-state.ts +1 -1
  103. package/realtime-client/src/pull-atom-family-member.ts +2 -2
  104. package/realtime-client/src/pull-atom.ts +2 -2
  105. package/realtime-client/src/pull-mutable-atom-family-member.ts +2 -2
  106. package/realtime-client/src/pull-mutable-atom.ts +2 -2
  107. package/realtime-client/src/pull-selector-family-member.ts +4 -4
  108. package/realtime-client/src/pull-selector.ts +4 -4
  109. package/realtime-client/src/push-state.ts +5 -10
  110. package/realtime-client/src/server-action.ts +4 -4
  111. package/realtime-client/src/sync-continuity.ts +6 -6
  112. package/realtime-react/dist/index.d.ts +166 -12
  113. package/realtime-react/dist/index.js +5 -154
  114. package/realtime-react/src/use-pull-atom-family-member.ts +1 -1
  115. package/realtime-react/src/use-pull-atom.ts +1 -1
  116. package/realtime-react/src/use-pull-mutable-atom.ts +1 -1
  117. package/realtime-react/src/use-pull-mutable-family-member.ts +1 -1
  118. package/realtime-react/src/use-pull-selector-family-member.ts +1 -1
  119. package/realtime-react/src/use-pull-selector.ts +1 -1
  120. package/realtime-react/src/use-push.ts +1 -1
  121. package/realtime-react/src/use-server-action.ts +2 -2
  122. package/realtime-react/src/use-sync-continuity.ts +1 -1
  123. package/realtime-server/dist/index.d.ts +971 -28
  124. package/realtime-server/dist/index.js +3 -1001
  125. package/realtime-server/src/continuity/prepare-to-serve-transaction-request.ts +1 -1
  126. package/realtime-server/src/continuity/prepare-to-sync-realtime-continuity.ts +3 -3
  127. package/realtime-server/src/continuity/subscribe-to-continuity-actions.ts +2 -2
  128. package/realtime-server/src/continuity/subscribe-to-continuity-perpectives.ts +2 -2
  129. package/realtime-server/src/ipc-sockets/child-socket.ts +0 -1
  130. package/realtime-server/src/realtime-action-receiver.ts +1 -1
  131. package/realtime-server/src/realtime-family-provider.ts +2 -2
  132. package/realtime-server/src/realtime-mutable-family-provider.ts +2 -2
  133. package/realtime-server/src/realtime-mutable-provider.ts +2 -2
  134. package/realtime-server/src/realtime-server-stores/server-room-external-actions.ts +2 -1
  135. package/realtime-server/src/realtime-server-stores/server-room-external-store.ts +1 -1
  136. package/realtime-server/src/realtime-server-stores/server-user-store.ts +1 -2
  137. package/realtime-server/src/realtime-state-provider.ts +2 -2
  138. package/realtime-testing/dist/index.d.ts +1091 -3
  139. package/realtime-testing/dist/index.js +23 -26
  140. package/realtime-testing/src/setup-realtime-test.tsx +6 -5
  141. package/src/atom.ts +53 -29
  142. package/src/dispose-state.ts +12 -2
  143. package/{ephemeral/src → src}/find-state.ts +35 -25
  144. package/src/get-state.ts +16 -0
  145. package/src/index.ts +77 -3
  146. package/src/join.ts +218 -0
  147. package/src/realm.ts +169 -0
  148. package/src/selector.ts +20 -0
  149. package/src/set-state.ts +16 -8
  150. package/src/silo.ts +13 -7
  151. package/src/timeline.ts +1 -1
  152. package/src/transaction.ts +4 -8
  153. package/transceivers/set-rtx/dist/index.d.ts +37 -2
  154. package/transceivers/set-rtx/dist/index.js +1 -212
  155. package/transceivers/set-rtx/src/set-rtx.ts +4 -1
  156. package/web/dist/index.d.ts +30 -1
  157. package/web/dist/index.js +1 -15
  158. package/data/src/until.ts +0 -15
  159. package/dist/chunk-ICGFFQ3H.js +0 -272
  160. package/ephemeral/dist/index.d.ts +0 -57
  161. package/ephemeral/dist/index.js +0 -9
  162. package/ephemeral/package.json +0 -13
  163. package/ephemeral/src/index.ts +0 -1
  164. package/eslint-plugin/src/rules/lifespan.ts +0 -203
  165. package/immortal/dist/index.d.ts +0 -12
  166. package/immortal/dist/index.js +0 -9
  167. package/immortal/package.json +0 -13
  168. package/immortal/src/index.ts +0 -1
  169. package/immortal/src/seek-state.ts +0 -60
  170. package/src/allocate.ts +0 -443
  171. package/src/molecule.ts +0 -16
@@ -20,9 +20,9 @@ export function prepareToServeTransactionRequest(
20
20
  performance.mark(performanceKeyStart)
21
21
  try {
22
22
  actUponStore(
23
+ store,
23
24
  { type: `transaction`, key: transactionKey },
24
25
  updateId,
25
- store,
26
26
  )(...update.params)
27
27
  } catch (thrown) {
28
28
  if (thrown instanceof Error) {
@@ -1,6 +1,6 @@
1
- import { findRelationsInStore } from "atom.io/data"
2
1
  import {
3
2
  findInStore,
3
+ findRelationsInStore,
4
4
  getFromStore,
5
5
  IMPLICIT,
6
6
  subscribeToState,
@@ -50,7 +50,9 @@ export function prepareToExposeRealtimeContinuity({
50
50
  store,
51
51
  ).socketKeyOfUser
52
52
  const unsubscribeFromSocketTracking = subscribeToState(
53
+ store,
53
54
  socketKeyState,
55
+ `sync-continuity:${continuityKey}:${userKey}`,
54
56
  ({ newValue: newSocketKey }) => {
55
57
  store.logger.info(
56
58
  `👋`,
@@ -77,8 +79,6 @@ export function prepareToExposeRealtimeContinuity({
77
79
  )
78
80
  }
79
81
  },
80
- `sync-continuity:${continuityKey}:${userKey}`,
81
- store,
82
82
  )
83
83
 
84
84
  const userUnacknowledgedUpdates = getFromStore(
@@ -28,7 +28,9 @@ export function subscribeToContinuityActions(
28
28
 
29
29
  for (const transaction of continuity.actions) {
30
30
  const unsubscribeFromTransaction = subscribeToTransaction(
31
+ store,
31
32
  transaction,
33
+ `sync-continuity:${continuityKey}:${userKey}`,
32
34
  (update) => {
33
35
  try {
34
36
  const visibleKeys = continuity.globals
@@ -97,8 +99,6 @@ export function subscribeToContinuityActions(
97
99
  }
98
100
  }
99
101
  },
100
- `sync-continuity:${continuityKey}:${userKey}`,
101
- store,
102
102
  )
103
103
  unsubscribeFunctions.push(unsubscribeFromTransaction)
104
104
  }
@@ -22,7 +22,9 @@ export function subscribeToContinuityPerspectives(
22
22
  const { viewAtoms } = perspective
23
23
  const userViewState = findInStore(store, viewAtoms, userKey)
24
24
  const unsubscribeFromUserView = subscribeToState(
25
+ store,
25
26
  userViewState,
27
+ `sync-continuity:${continuityKey}:${userKey}:perspective:${perspective.resourceAtoms.key}`,
26
28
  ({ oldValue, newValue }) => {
27
29
  const oldKeys = oldValue.map((token) => token.key)
28
30
  const newKeys = newValue.map((token) => token.key)
@@ -51,8 +53,6 @@ export function subscribeToContinuityPerspectives(
51
53
  socket?.emit(`conceal:${continuityKey}`, concealed)
52
54
  }
53
55
  },
54
- `sync-continuity:${continuityKey}:${userKey}:perspective:${perspective.resourceAtoms.key}`,
55
- store,
56
56
  )
57
57
  unsubFns.push(unsubscribeFromUserView)
58
58
  }
@@ -1,5 +1,4 @@
1
1
  import type { ChildProcessWithoutNullStreams } from "node:child_process"
2
- import type { Console } from "node:console"
3
2
 
4
3
  import type { Json } from "atom.io/json"
5
4
  import { parseJson } from "atom.io/json"
@@ -19,7 +19,7 @@ export function realtimeActionReceiver({
19
19
  const performanceKeyStart = `${performanceKey}:start`
20
20
  const performanceKeyEnd = `${performanceKey}:end`
21
21
  performance.mark(performanceKeyStart)
22
- actUponStore<F>(tx, update.id, store)(...update.params)
22
+ actUponStore<F>(store, tx, update.id)(...update.params)
23
23
  performance.mark(performanceKeyEnd)
24
24
  const metric = performance.measure(
25
25
  performanceKey,
@@ -40,12 +40,12 @@ export function realtimeAtomFamilyProvider({
40
40
  const token = findInStore(store, family, subKey)
41
41
  socket.emit(`serve:${token.key}`, getFromStore(store, token))
42
42
  const unsubscribe = subscribeToState(
43
+ store,
43
44
  token,
45
+ `expose-family:${family.key}:${socket.id}`,
44
46
  ({ newValue }) => {
45
47
  socket.emit(`serve:${token.key}`, newValue)
46
48
  },
47
- `expose-family:${family.key}:${socket.id}`,
48
- store,
49
49
  )
50
50
  unsubCallbacksByKey.set(token.key, unsubscribe)
51
51
  socket.on(`unsub:${token.key}`, () => {
@@ -49,12 +49,12 @@ export function realtimeMutableFamilyProvider({
49
49
  const updateToken = getUpdateToken(token)
50
50
  socket.emit(`init:${token.key}`, getFromStore(store, jsonToken))
51
51
  const unsubscribe = subscribeToState(
52
+ store,
52
53
  updateToken,
54
+ `expose-family:${family.key}:${socket.id}`,
53
55
  ({ newValue }) => {
54
56
  socket.emit(`next:${token.key}`, newValue)
55
57
  },
56
- `expose-family:${family.key}:${socket.id}`,
57
- store,
58
58
  )
59
59
  unsubCallbacksByKey.set(token.key, unsubscribe)
60
60
  socket.on(`unsub:${token.key}`, () => {
@@ -34,12 +34,12 @@ export function realtimeMutableProvider({
34
34
  const fillSubRequest = () => {
35
35
  socket.emit(`init:${token.key}`, getFromStore(store, jsonToken))
36
36
  unsubscribeFromStateUpdates = subscribeToState(
37
+ store,
37
38
  trackerToken,
39
+ `expose-single:${socket.id}`,
38
40
  ({ newValue }) => {
39
41
  socket.emit(`next:${token.key}`, newValue)
40
42
  },
41
- `expose-single:${socket.id}`,
42
- store,
43
43
  )
44
44
  socket.on(`unsub:${token.key}`, fillUnsubRequest)
45
45
  }
@@ -1,5 +1,6 @@
1
+ import type { Loadable } from "atom.io"
1
2
  import * as AtomIO from "atom.io"
2
- import { editRelations, editRelationsInStore, type Loadable } from "atom.io/data"
3
+ import { editRelationsInStore } from "atom.io/internal"
3
4
  import type { UserInRoomMeta } from "atom.io/realtime"
4
5
  import { roomIndex, usersInRooms } from "atom.io/realtime"
5
6
 
@@ -1,8 +1,8 @@
1
1
  import type { ChildProcessWithoutNullStreams } from "node:child_process"
2
2
  import { spawn } from "node:child_process"
3
3
 
4
+ import type { Loadable } from "atom.io"
4
5
  import { atomFamily, selectorFamily } from "atom.io"
5
- import type { Loadable } from "atom.io/data"
6
6
 
7
7
  import { ChildSocket } from "../ipc-sockets"
8
8
 
@@ -1,6 +1,5 @@
1
1
  import type { Hierarchy } from "atom.io"
2
- import { atom, atomFamily } from "atom.io"
3
- import { join } from "atom.io/data"
2
+ import { atom, atomFamily, join } from "atom.io"
4
3
  import type { SetRTXJson } from "atom.io/transceivers/set-rtx"
5
4
  import { SetRTX } from "atom.io/transceivers/set-rtx"
6
5
 
@@ -18,12 +18,12 @@ export function realtimeStateProvider({
18
18
  socket.emit(`serve:${token.key}`, getFromStore(store, token))
19
19
 
20
20
  unsubscribeFromStateUpdates = subscribeToState(
21
+ store,
21
22
  token,
23
+ `expose-single:${socket.id}`,
22
24
  ({ newValue }) => {
23
25
  socket.emit(`serve:${token.key}`, newValue)
24
26
  },
25
- `expose-single:${socket.id}`,
26
- store,
27
27
  )
28
28
 
29
29
  const fillUnsubRequest = () => {