atom.io 0.31.1 → 0.32.1

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 (162) hide show
  1. package/data/dist/index.d.ts +3 -154
  2. package/data/dist/index.js +11 -559
  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-3PQTWLQQ.js +83 -0
  7. package/dist/chunk-3ZFTRSNG.js +523 -0
  8. package/dist/chunk-4LWKCEW3.js +14 -0
  9. package/dist/chunk-KVI5OBF2.js +153 -0
  10. package/dist/{chunk-Y5MBNTVU.js → chunk-UQEYZ3OI.js} +1814 -721
  11. package/dist/chunk-UYYKOGZQ.js +1034 -0
  12. package/dist/chunk-VRJP2PCU.js +631 -0
  13. package/dist/chunk-X7SD2NXU.js +108 -0
  14. package/dist/index.d.ts +137 -12
  15. package/dist/index.js +1 -228
  16. package/eslint-plugin/dist/index.d.ts +1 -30
  17. package/eslint-plugin/dist/index.js +3 -149
  18. package/eslint-plugin/src/index.ts +0 -1
  19. package/eslint-plugin/src/rules/explicit-state-types.ts +1 -0
  20. package/eslint-plugin/src/rules/index.ts +0 -1
  21. package/eslint-plugin/src/rules/synchronous-selector-dependencies.ts +1 -0
  22. package/eslint-plugin/src/walk.ts +1 -0
  23. package/internal/dist/index.d.ts +129 -58
  24. package/internal/dist/index.js +1 -1
  25. package/internal/src/atom/create-regular-atom.ts +3 -3
  26. package/internal/src/atom/dispose-atom.ts +4 -13
  27. package/internal/src/atom/is-default.ts +3 -3
  28. package/internal/src/caching.ts +5 -5
  29. package/internal/src/capitalize.ts +3 -0
  30. package/internal/src/families/create-readonly-selector-family.ts +5 -6
  31. package/internal/src/families/create-writable-selector-family.ts +1 -4
  32. package/internal/src/families/dispose-from-store.ts +3 -13
  33. package/internal/src/get-state/get-from-store.ts +2 -2
  34. package/internal/src/get-state/read-or-compute-value.ts +1 -1
  35. package/internal/src/index.ts +2 -0
  36. package/internal/src/install-into-store.ts +1 -1
  37. package/internal/src/join/edit-relations-in-store.ts +32 -0
  38. package/internal/src/join/find-relations-in-store.ts +124 -0
  39. package/internal/src/join/get-internal-relations-from-store.ts +14 -0
  40. package/internal/src/join/get-join.ts +31 -0
  41. package/internal/src/join/index.ts +5 -0
  42. package/{data/src/join.ts → internal/src/join/join-internal.ts} +21 -430
  43. package/internal/src/junction.ts +7 -4
  44. package/internal/src/keys.ts +7 -7
  45. package/internal/src/mutable/create-mutable-atom-family.ts +1 -1
  46. package/internal/src/mutable/create-mutable-atom.ts +3 -3
  47. package/internal/src/mutable/get-json-token.ts +1 -1
  48. package/internal/src/mutable/tracker-family.ts +19 -17
  49. package/internal/src/mutable/tracker.ts +8 -8
  50. package/internal/src/pretty-print.ts +1 -1
  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 +6 -9
  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 +4 -2
  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/store.ts +1 -1
  65. package/internal/src/store/withdraw.ts +22 -22
  66. package/internal/src/subscribe/recall-state.ts +1 -1
  67. package/internal/src/subscribe/subscribe-in-store.ts +3 -3
  68. package/internal/src/subscribe/subscribe-to-root-atoms.ts +3 -3
  69. package/internal/src/subscribe/subscribe-to-state.ts +5 -5
  70. package/internal/src/subscribe/subscribe-to-timeline.ts +3 -3
  71. package/internal/src/subscribe/subscribe-to-transaction.ts +3 -3
  72. package/internal/src/timeline/create-timeline.ts +19 -38
  73. package/internal/src/timeline/time-travel.ts +2 -1
  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.js +2 -620
  82. package/json/dist/index.d.ts +2 -2
  83. package/json/dist/index.js +1 -80
  84. package/json/src/select-json-family.ts +3 -14
  85. package/package.json +31 -49
  86. package/react/dist/index.js +2 -82
  87. package/react/src/use-o.ts +1 -1
  88. package/react/src/use-tl.ts +2 -2
  89. package/react-devtools/dist/index.css +16 -14
  90. package/react-devtools/dist/index.js +31 -18
  91. package/react-devtools/src/Updates.tsx +12 -0
  92. package/react-devtools/src/devtools.scss +16 -14
  93. package/react-devtools/src/json-editor/editors-by-type/utilities/cast-to-json.ts +2 -1
  94. package/realtime/dist/index.d.ts +1 -2
  95. package/realtime/dist/index.js +2 -107
  96. package/realtime/src/realtime-continuity.ts +3 -2
  97. package/realtime/src/shared-room-store.ts +1 -2
  98. package/realtime-client/dist/index.d.ts +9 -9
  99. package/realtime-client/dist/index.js +3 -509
  100. package/realtime-client/src/continuity/register-and-attempt-confirmed-update.ts +3 -3
  101. package/realtime-client/src/continuity/use-conceal-state.ts +1 -1
  102. package/realtime-client/src/pull-atom-family-member.ts +2 -2
  103. package/realtime-client/src/pull-atom.ts +2 -2
  104. package/realtime-client/src/pull-mutable-atom-family-member.ts +2 -2
  105. package/realtime-client/src/pull-mutable-atom.ts +2 -2
  106. package/realtime-client/src/pull-selector-family-member.ts +4 -4
  107. package/realtime-client/src/pull-selector.ts +4 -4
  108. package/realtime-client/src/push-state.ts +5 -10
  109. package/realtime-client/src/server-action.ts +4 -4
  110. package/realtime-client/src/sync-continuity.ts +6 -6
  111. package/realtime-react/dist/index.js +5 -154
  112. package/realtime-react/src/use-pull-atom-family-member.ts +1 -1
  113. package/realtime-react/src/use-pull-atom.ts +1 -1
  114. package/realtime-react/src/use-pull-mutable-atom.ts +1 -1
  115. package/realtime-react/src/use-pull-mutable-family-member.ts +1 -1
  116. package/realtime-react/src/use-pull-selector-family-member.ts +1 -1
  117. package/realtime-react/src/use-pull-selector.ts +1 -1
  118. package/realtime-react/src/use-push.ts +1 -1
  119. package/realtime-react/src/use-server-action.ts +2 -2
  120. package/realtime-react/src/use-sync-continuity.ts +1 -1
  121. package/realtime-server/dist/index.d.ts +2 -4
  122. package/realtime-server/dist/index.js +3 -1001
  123. package/realtime-server/src/continuity/prepare-to-serve-transaction-request.ts +1 -1
  124. package/realtime-server/src/continuity/prepare-to-sync-realtime-continuity.ts +3 -3
  125. package/realtime-server/src/continuity/subscribe-to-continuity-actions.ts +2 -2
  126. package/realtime-server/src/continuity/subscribe-to-continuity-perpectives.ts +2 -2
  127. package/realtime-server/src/ipc-sockets/child-socket.ts +2 -0
  128. package/realtime-server/src/realtime-action-receiver.ts +1 -1
  129. package/realtime-server/src/realtime-family-provider.ts +2 -2
  130. package/realtime-server/src/realtime-mutable-family-provider.ts +2 -2
  131. package/realtime-server/src/realtime-mutable-provider.ts +2 -2
  132. package/realtime-server/src/realtime-server-stores/server-room-external-actions.ts +2 -1
  133. package/realtime-server/src/realtime-server-stores/server-room-external-store.ts +1 -1
  134. package/realtime-server/src/realtime-server-stores/server-sync-store.ts +10 -2
  135. package/realtime-server/src/realtime-server-stores/server-user-store.ts +1 -2
  136. package/realtime-server/src/realtime-state-provider.ts +2 -2
  137. package/realtime-testing/dist/index.js +20 -22
  138. package/realtime-testing/src/setup-realtime-test.tsx +2 -1
  139. package/src/index.ts +4 -0
  140. package/src/join.ts +218 -0
  141. package/src/silo.ts +4 -4
  142. package/src/timeline.ts +1 -1
  143. package/src/transaction.ts +4 -8
  144. package/transceivers/set-rtx/dist/index.d.ts +4 -3
  145. package/transceivers/set-rtx/dist/index.js +1 -215
  146. package/transceivers/set-rtx/src/set-rtx.ts +4 -7
  147. package/web/dist/index.js +1 -15
  148. package/data/src/until.ts +0 -15
  149. package/ephemeral/dist/index.d.ts +0 -67
  150. package/ephemeral/dist/index.js +0 -9
  151. package/ephemeral/package.json +0 -13
  152. package/ephemeral/src/index.ts +0 -1
  153. package/eslint-plugin/src/rules/lifespan.ts +0 -203
  154. package/immortal/dist/index.d.ts +0 -12
  155. package/immortal/dist/index.js +0 -9
  156. package/immortal/package.json +0 -13
  157. package/immortal/src/index.ts +0 -1
  158. package/immortal/src/seek-state.ts +0 -60
  159. package/react-devtools/src/json-editor/assets/Untitled-1.ai +2 -1436
  160. package/react-devtools/src/json-editor/assets/data-vis.ai +1 -1548
  161. package/react-devtools/src/json-editor/comp/json-editor-sketches.ai +5 -1449
  162. /package/{ephemeral/src → src}/find-state.ts +0 -0
@@ -0,0 +1,153 @@
1
+ import { myIdState__INTERNAL, pullAtom, pullAtomFamilyMember, pullMutableAtom, pullMutableAtomFamilyMember, pullSelector, pullSelectorFamilyMember, pushState, serverAction, syncContinuity } from './chunk-3ZFTRSNG.js';
2
+ import { useI, StoreContext, useO } from './chunk-3PQTWLQQ.js';
3
+ import { findInStore, actUponStore, arbitrary } from './chunk-UQEYZ3OI.js';
4
+ import * as React from 'react';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ var RealtimeContext = React.createContext({
8
+ socket: null,
9
+ services: null
10
+ });
11
+ var RealtimeProvider = ({ children, socket }) => {
12
+ const services = React.useRef(/* @__PURE__ */ new Map()).current;
13
+ const setMyId = useI(myIdState__INTERNAL);
14
+ React.useEffect(() => {
15
+ setMyId(socket?.id);
16
+ socket?.on(`connect`, () => {
17
+ setMyId(socket.id);
18
+ });
19
+ socket?.on(`disconnect`, () => {
20
+ setMyId(void 0);
21
+ });
22
+ }, [socket, setMyId]);
23
+ return /* @__PURE__ */ jsx(RealtimeContext.Provider, { value: { socket, services }, children });
24
+ };
25
+ var { NODE_ENV } = globalThis.env ?? {};
26
+ var IN_DEV = NODE_ENV === `development`;
27
+ function noop() {
28
+ }
29
+ function useSingleEffect(effect, deps) {
30
+ if (IN_DEV) {
31
+ const cleanup = React.useRef(noop);
32
+ React.useEffect(() => {
33
+ let dispose = cleanup.current;
34
+ if (dispose === noop) {
35
+ dispose = effect() ?? noop;
36
+ cleanup.current = dispose;
37
+ } else {
38
+ return () => {
39
+ dispose();
40
+ cleanup.current = noop;
41
+ };
42
+ }
43
+ }, deps);
44
+ } else {
45
+ React.useEffect(effect, deps);
46
+ }
47
+ }
48
+
49
+ // realtime-react/src/on-mount.ts
50
+ function onMount(effect) {
51
+ useSingleEffect(effect, []);
52
+ }
53
+
54
+ // realtime-react/src/use-realtime-service.ts
55
+ function useRealtimeService(key, create) {
56
+ const { socket, services } = React.useContext(RealtimeContext);
57
+ onMount(() => {
58
+ let service = services?.get(key);
59
+ if (service) {
60
+ service[0]++;
61
+ } else {
62
+ const dispose = socket ? create(socket) : void 0;
63
+ service = [1, dispose];
64
+ services?.set(key, service);
65
+ }
66
+ return () => {
67
+ if (service) {
68
+ service[0]--;
69
+ if (service[0] === 0) {
70
+ service[1]?.();
71
+ services?.delete(key);
72
+ }
73
+ }
74
+ };
75
+ });
76
+ }
77
+
78
+ // realtime-react/src/use-pull-atom.ts
79
+ function usePullAtom(token) {
80
+ const store = React.useContext(StoreContext);
81
+ useRealtimeService(
82
+ `pull:${token.key}`,
83
+ (socket) => pullAtom(store, socket, token)
84
+ );
85
+ return useO(token);
86
+ }
87
+ function usePullAtomFamilyMember(family, subKey) {
88
+ const store = React.useContext(StoreContext);
89
+ const token = findInStore(store, family, subKey);
90
+ useRealtimeService(
91
+ `pull:${token.key}`,
92
+ (socket) => pullAtomFamilyMember(store, socket, token)
93
+ );
94
+ return useO(token);
95
+ }
96
+ function usePullMutable(token) {
97
+ const store = React.useContext(StoreContext);
98
+ useRealtimeService(
99
+ `pull:${token.key}`,
100
+ (socket) => pullMutableAtom(store, socket, token)
101
+ );
102
+ return useO(token);
103
+ }
104
+ function usePullMutableAtomFamilyMember(familyToken, key) {
105
+ const store = React.useContext(StoreContext);
106
+ const token = findInStore(store, familyToken, key);
107
+ useRealtimeService(
108
+ `pull:${token.key}`,
109
+ (socket) => pullMutableAtomFamilyMember(store, socket, token)
110
+ );
111
+ return useO(token);
112
+ }
113
+ function usePullSelector(token) {
114
+ const store = React.useContext(StoreContext);
115
+ useRealtimeService(
116
+ `pull:${token.key}`,
117
+ (socket) => pullSelector(store, socket, token)
118
+ );
119
+ return useO(token);
120
+ }
121
+ function usePullSelectorFamilyMember(familyToken, key) {
122
+ const store = React.useContext(StoreContext);
123
+ const token = findInStore(store, familyToken, key);
124
+ useRealtimeService(
125
+ `pull:${token.key}`,
126
+ (socket) => pullSelectorFamilyMember(store, socket, token)
127
+ );
128
+ return useO(token);
129
+ }
130
+ function usePush(token) {
131
+ const store = React.useContext(StoreContext);
132
+ useRealtimeService(
133
+ `push:${token.key}`,
134
+ (socket) => pushState(store, socket, token)
135
+ );
136
+ return useI(token);
137
+ }
138
+ function useServerAction(token) {
139
+ const store = React.useContext(StoreContext);
140
+ useRealtimeService(
141
+ `tx:${token.key}`,
142
+ (socket) => serverAction(store, socket, token)
143
+ );
144
+ return actUponStore(store, token, arbitrary());
145
+ }
146
+ function useSyncContinuity(token) {
147
+ const store = React.useContext(StoreContext);
148
+ useRealtimeService(`tx-sync:${token.key}`, (socket) => {
149
+ return syncContinuity(store, socket, token);
150
+ });
151
+ }
152
+
153
+ export { RealtimeContext, RealtimeProvider, usePullAtom, usePullAtomFamilyMember, usePullMutable, usePullMutableAtomFamilyMember, usePullSelector, usePullSelectorFamilyMember, usePush, useServerAction, useSyncContinuity };