atom.io 0.32.3 → 0.33.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 (362) hide show
  1. package/dist/chunk-Cl8Af3a2.js +11 -0
  2. package/dist/data/index.d.ts +28 -0
  3. package/dist/data/index.d.ts.map +1 -0
  4. package/dist/data/index.js +66 -0
  5. package/dist/data/index.js.map +1 -0
  6. package/dist/devtools-CAg2k57t.js +0 -0
  7. package/dist/devtools-Jyn42mZm.css +311 -0
  8. package/dist/devtools-Jyn42mZm.css.map +1 -0
  9. package/dist/eslint-plugin/index.d.ts +36 -0
  10. package/dist/eslint-plugin/index.d.ts.map +1 -0
  11. package/dist/eslint-plugin/index.js +196 -0
  12. package/dist/eslint-plugin/index.js.map +1 -0
  13. package/{internal/dist → dist/internal}/index.d.ts +497 -377
  14. package/dist/internal/index.d.ts.map +1 -0
  15. package/dist/internal/index.js +3213 -0
  16. package/dist/internal/index.js.map +1 -0
  17. package/dist/introspection/index.d.ts +153 -0
  18. package/dist/introspection/index.d.ts.map +1 -0
  19. package/dist/introspection/index.js +520 -0
  20. package/dist/introspection/index.js.map +1 -0
  21. package/{json/dist → dist/json}/index.d.ts +38 -32
  22. package/dist/json/index.d.ts.map +1 -0
  23. package/dist/json/index.js +75 -0
  24. package/dist/json/index.js.map +1 -0
  25. package/dist/main/index.d.ts +691 -0
  26. package/dist/main/index.d.ts.map +1 -0
  27. package/dist/main/index.js +237 -0
  28. package/dist/main/index.js.map +1 -0
  29. package/{react/dist → dist/react}/index.d.ts +22 -11
  30. package/dist/react/index.d.ts.map +1 -0
  31. package/dist/react/index.js +91 -0
  32. package/dist/react/index.js.map +1 -0
  33. package/dist/react-devtools/index.d.ts +194 -0
  34. package/dist/react-devtools/index.d.ts.map +1 -0
  35. package/dist/react-devtools/index.js +1274 -0
  36. package/dist/react-devtools/index.js.map +1 -0
  37. package/dist/realtime/index.d.ts +55 -0
  38. package/dist/realtime/index.d.ts.map +1 -0
  39. package/dist/realtime/index.js +113 -0
  40. package/dist/realtime/index.js.map +1 -0
  41. package/dist/realtime-client/index.d.ts +81 -0
  42. package/dist/realtime-client/index.d.ts.map +1 -0
  43. package/dist/realtime-client/index.js +376 -0
  44. package/dist/realtime-client/index.js.map +1 -0
  45. package/dist/realtime-react/index.d.ts +68 -0
  46. package/dist/realtime-react/index.d.ts.map +1 -0
  47. package/dist/realtime-react/index.js +182 -0
  48. package/dist/realtime-react/index.js.map +1 -0
  49. package/dist/realtime-server/index.d.ts +190 -0
  50. package/dist/realtime-server/index.d.ts.map +1 -0
  51. package/dist/realtime-server/index.js +795 -0
  52. package/dist/realtime-server/index.js.map +1 -0
  53. package/dist/realtime-testing/index.d.ts +60 -0
  54. package/dist/realtime-testing/index.d.ts.map +1 -0
  55. package/dist/realtime-testing/index.js +181 -0
  56. package/dist/realtime-testing/index.js.map +1 -0
  57. package/dist/transceivers/set-rtx/index.d.ts +44 -0
  58. package/dist/transceivers/set-rtx/index.d.ts.map +1 -0
  59. package/dist/transceivers/set-rtx/index.js +204 -0
  60. package/dist/transceivers/set-rtx/index.js.map +1 -0
  61. package/dist/web/index.d.ts +15 -0
  62. package/dist/web/index.d.ts.map +1 -0
  63. package/dist/web/index.js +16 -0
  64. package/dist/web/index.js.map +1 -0
  65. package/package.json +70 -122
  66. package/{data/src → src/data}/struct.ts +1 -0
  67. package/{eslint-plugin/src → src/eslint-plugin}/index.ts +3 -1
  68. package/{eslint-plugin/src → src/eslint-plugin}/rules/explicit-state-types.ts +6 -1
  69. package/{eslint-plugin/src → src/eslint-plugin}/rules/synchronous-selector-dependencies.ts +14 -1
  70. package/{internal/src → src/internal}/families/create-writable-selector-family.ts +4 -2
  71. package/{internal/src → src/internal}/families/index.ts +2 -0
  72. package/{internal/src → src/internal}/index.ts +1 -0
  73. package/{internal/src → src/internal}/join/find-relations-in-store.ts +12 -0
  74. package/{internal/src → src/internal}/junction.ts +3 -2
  75. package/{internal/src → src/internal}/lazy-map.ts +1 -1
  76. package/{internal/src → src/internal}/mutable/tracker-family.ts +2 -5
  77. package/{internal/src → src/internal}/mutable/tracker.ts +15 -9
  78. package/{internal/src → src/internal}/selector/register-selector.ts +2 -1
  79. package/{internal/src → src/internal}/store/store.ts +68 -53
  80. package/{internal/src → src/internal}/subject.ts +1 -1
  81. package/{internal/src → src/internal}/transaction/build-transaction.ts +2 -1
  82. package/{introspection/src → src/introspection}/auditor.ts +1 -1
  83. package/{introspection/src → src/introspection}/differ.ts +12 -1
  84. package/{introspection/src → src/introspection}/refinery.ts +18 -3
  85. package/{json/src → src/json}/entries.ts +1 -1
  86. package/{json/src → src/json}/select-json-family.ts +1 -1
  87. package/src/{realm.ts → main/realm.ts} +1 -1
  88. package/src/{silo.ts → main/silo.ts} +1 -1
  89. package/src/{transaction.ts → main/transaction.ts} +1 -1
  90. package/{react/src → src/react}/store-context.tsx +3 -1
  91. package/{react/src → src/react}/use-i.ts +3 -5
  92. package/{react-devtools/src → src/react-devtools}/AtomIODevtools.tsx +1 -1
  93. package/{react-devtools/src → src/react-devtools}/Button.tsx +3 -1
  94. package/{react-devtools/src → src/react-devtools}/Updates.tsx +5 -1
  95. package/src/react-devtools/devtools.css +308 -0
  96. package/{react-devtools/src → src/react-devtools}/json-editor/developer-interface.tsx +2 -2
  97. package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/cast-json.ts +2 -2
  98. package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/object-properties.ts +3 -3
  99. package/{react-devtools/src → src/react-devtools}/json-editor/json-editor-internal.tsx +4 -2
  100. package/{react-devtools/src → src/react-devtools}/store.ts +3 -2
  101. package/{realtime/src → src/realtime}/shared-room-store.ts +28 -5
  102. package/src/realtime-client/realtime-client-stores/client-main-store.ts +23 -0
  103. package/src/realtime-client/realtime-client-stores/client-sync-store.ts +15 -0
  104. package/{realtime-react/src → src/realtime-react}/index.ts +1 -0
  105. package/{realtime-react/src → src/realtime-react}/on-mount.ts +1 -1
  106. package/{realtime-react/src → src/realtime-react}/realtime-context.tsx +5 -4
  107. package/{realtime-react/src → src/realtime-react}/use-single-effect.ts +3 -2
  108. package/{realtime-server/src → src/realtime-server}/ipc-sockets/child-socket.ts +1 -1
  109. package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-room-external-actions.ts +20 -19
  110. package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-room-external-store.ts +12 -7
  111. package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-sync-store.ts +13 -4
  112. package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-user-store.ts +26 -8
  113. package/{transceivers/set-rtx/src → src/transceivers/set-rtx}/set-rtx.ts +2 -2
  114. package/data/dist/index.d.ts +0 -31
  115. package/data/dist/index.js +0 -69
  116. package/data/package.json +0 -13
  117. package/dist/chunk-2XDFCXGB.js +0 -109
  118. package/dist/chunk-35NB2XZU.js +0 -4501
  119. package/dist/chunk-4LWKCEW3.js +0 -14
  120. package/dist/chunk-EF4S7H42.js +0 -526
  121. package/dist/chunk-LTLDKXDN.js +0 -153
  122. package/dist/chunk-MENOYVPP.js +0 -83
  123. package/dist/chunk-RGUNRT72.js +0 -634
  124. package/dist/chunk-TS76LQVD.js +0 -1035
  125. package/dist/chunk-XWL6SNVU.js +0 -7
  126. package/dist/index.d.ts +0 -701
  127. package/dist/index.js +0 -2
  128. package/eslint-plugin/dist/index.d.ts +0 -64
  129. package/eslint-plugin/dist/index.js +0 -238
  130. package/eslint-plugin/package.json +0 -13
  131. package/internal/dist/index.js +0 -2
  132. package/internal/package.json +0 -13
  133. package/introspection/dist/index.d.ts +0 -149
  134. package/introspection/dist/index.js +0 -3
  135. package/introspection/package.json +0 -13
  136. package/json/dist/index.js +0 -2
  137. package/json/package.json +0 -13
  138. package/react/dist/index.js +0 -3
  139. package/react/package.json +0 -13
  140. package/react-devtools/dist/index.css +0 -309
  141. package/react-devtools/dist/index.d.ts +0 -160
  142. package/react-devtools/dist/index.js +0 -1481
  143. package/react-devtools/package.json +0 -13
  144. package/react-devtools/src/devtools.scss +0 -309
  145. package/realtime/dist/index.d.ts +0 -51
  146. package/realtime/dist/index.js +0 -3
  147. package/realtime/package.json +0 -13
  148. package/realtime-client/dist/index.d.ts +0 -41
  149. package/realtime-client/dist/index.js +0 -4
  150. package/realtime-client/package.json +0 -13
  151. package/realtime-client/src/realtime-client-stores/client-main-store.ts +0 -20
  152. package/realtime-client/src/realtime-client-stores/client-sync-store.ts +0 -15
  153. package/realtime-react/dist/index.d.ts +0 -39
  154. package/realtime-react/dist/index.js +0 -6
  155. package/realtime-react/package.json +0 -13
  156. package/realtime-server/dist/index.d.ts +0 -139
  157. package/realtime-server/dist/index.js +0 -4
  158. package/realtime-server/package.json +0 -13
  159. package/realtime-testing/dist/index.d.ts +0 -59
  160. package/realtime-testing/dist/index.js +0 -198
  161. package/realtime-testing/package.json +0 -13
  162. package/transceivers/set-rtx/dist/index.d.ts +0 -41
  163. package/transceivers/set-rtx/dist/index.js +0 -2
  164. package/transceivers/set-rtx/package.json +0 -13
  165. package/web/dist/index.d.ts +0 -9
  166. package/web/dist/index.js +0 -2
  167. package/web/package.json +0 -13
  168. /package/{data/src → src/data}/dict.ts +0 -0
  169. /package/{data/src → src/data}/index.ts +0 -0
  170. /package/{data/src → src/data}/struct-family.ts +0 -0
  171. /package/{eslint-plugin/src → src/eslint-plugin}/rules/index.ts +0 -0
  172. /package/{eslint-plugin/src → src/eslint-plugin}/walk.ts +0 -0
  173. /package/{internal/src → src/internal}/arbitrary.ts +0 -0
  174. /package/{internal/src → src/internal}/atom/create-regular-atom.ts +0 -0
  175. /package/{internal/src → src/internal}/atom/create-standalone-atom.ts +0 -0
  176. /package/{internal/src → src/internal}/atom/dispose-atom.ts +0 -0
  177. /package/{internal/src → src/internal}/atom/index.ts +0 -0
  178. /package/{internal/src → src/internal}/atom/is-default.ts +0 -0
  179. /package/{internal/src → src/internal}/caching.ts +0 -0
  180. /package/{internal/src → src/internal}/capitalize.ts +0 -0
  181. /package/{internal/src → src/internal}/families/create-atom-family.ts +0 -0
  182. /package/{internal/src → src/internal}/families/create-readonly-selector-family.ts +0 -0
  183. /package/{internal/src → src/internal}/families/create-regular-atom-family.ts +0 -0
  184. /package/{internal/src → src/internal}/families/create-selector-family.ts +0 -0
  185. /package/{internal/src → src/internal}/families/dispose-from-store.ts +0 -0
  186. /package/{internal/src → src/internal}/families/find-in-store.ts +0 -0
  187. /package/{internal/src → src/internal}/families/get-family-of-token.ts +0 -0
  188. /package/{internal/src → src/internal}/families/init-family-member.ts +0 -0
  189. /package/{internal/src → src/internal}/families/seek-in-store.ts +0 -0
  190. /package/{internal/src → src/internal}/future.ts +0 -0
  191. /package/{internal/src → src/internal}/get-environment-data.ts +0 -0
  192. /package/{internal/src → src/internal}/get-state/get-from-store.ts +0 -0
  193. /package/{internal/src → src/internal}/get-state/index.ts +0 -0
  194. /package/{internal/src → src/internal}/get-state/read-or-compute-value.ts +0 -0
  195. /package/{internal/src → src/internal}/get-trace.ts +0 -0
  196. /package/{internal/src → src/internal}/ingest-updates/index.ts +0 -0
  197. /package/{internal/src → src/internal}/ingest-updates/ingest-atom-update.ts +0 -0
  198. /package/{internal/src → src/internal}/ingest-updates/ingest-creation-disposal.ts +0 -0
  199. /package/{internal/src → src/internal}/ingest-updates/ingest-selector-update.ts +0 -0
  200. /package/{internal/src → src/internal}/ingest-updates/ingest-transaction-update.ts +0 -0
  201. /package/{internal/src → src/internal}/install-into-store.ts +0 -0
  202. /package/{internal/src → src/internal}/join/edit-relations-in-store.ts +0 -0
  203. /package/{internal/src → src/internal}/join/get-internal-relations-from-store.ts +0 -0
  204. /package/{internal/src → src/internal}/join/get-join.ts +0 -0
  205. /package/{internal/src → src/internal}/join/index.ts +0 -0
  206. /package/{internal/src → src/internal}/join/join-internal.ts +0 -0
  207. /package/{internal/src → src/internal}/keys.ts +0 -0
  208. /package/{internal/src → src/internal}/lineage.ts +0 -0
  209. /package/{internal/src → src/internal}/molecule.ts +0 -0
  210. /package/{internal/src → src/internal}/mutable/create-mutable-atom-family.ts +0 -0
  211. /package/{internal/src → src/internal}/mutable/create-mutable-atom.ts +0 -0
  212. /package/{internal/src → src/internal}/mutable/get-json-family.ts +0 -0
  213. /package/{internal/src → src/internal}/mutable/get-json-token.ts +0 -0
  214. /package/{internal/src → src/internal}/mutable/get-update-family.ts +0 -0
  215. /package/{internal/src → src/internal}/mutable/get-update-token.ts +0 -0
  216. /package/{internal/src → src/internal}/mutable/index.ts +0 -0
  217. /package/{internal/src → src/internal}/mutable/transceiver.ts +0 -0
  218. /package/{internal/src → src/internal}/not-found-error.ts +0 -0
  219. /package/{internal/src → src/internal}/operation.ts +0 -0
  220. /package/{internal/src → src/internal}/pretty-print.ts +0 -0
  221. /package/{internal/src → src/internal}/reserved-keys.ts +0 -0
  222. /package/{internal/src → src/internal}/selector/create-readonly-selector.ts +0 -0
  223. /package/{internal/src → src/internal}/selector/create-standalone-selector.ts +0 -0
  224. /package/{internal/src → src/internal}/selector/create-writable-selector.ts +0 -0
  225. /package/{internal/src → src/internal}/selector/dispose-selector.ts +0 -0
  226. /package/{internal/src → src/internal}/selector/get-selector-dependency-keys.ts +0 -0
  227. /package/{internal/src → src/internal}/selector/index.ts +0 -0
  228. /package/{internal/src → src/internal}/selector/trace-selector-atoms.ts +0 -0
  229. /package/{internal/src → src/internal}/selector/update-selector-atoms.ts +0 -0
  230. /package/{internal/src → src/internal}/set-state/become.ts +0 -0
  231. /package/{internal/src → src/internal}/set-state/copy-mutable-if-needed.ts +0 -0
  232. /package/{internal/src → src/internal}/set-state/emit-update.ts +0 -0
  233. /package/{internal/src → src/internal}/set-state/evict-downstream.ts +0 -0
  234. /package/{internal/src → src/internal}/set-state/index.ts +0 -0
  235. /package/{internal/src → src/internal}/set-state/set-atom-or-selector.ts +0 -0
  236. /package/{internal/src → src/internal}/set-state/set-atom.ts +0 -0
  237. /package/{internal/src → src/internal}/set-state/set-into-store.ts +0 -0
  238. /package/{internal/src → src/internal}/store/circular-buffer.ts +0 -0
  239. /package/{internal/src → src/internal}/store/counterfeit.ts +0 -0
  240. /package/{internal/src → src/internal}/store/deposit.ts +0 -0
  241. /package/{internal/src → src/internal}/store/index.ts +0 -0
  242. /package/{internal/src → src/internal}/store/withdraw.ts +0 -0
  243. /package/{internal/src → src/internal}/subscribe/index.ts +0 -0
  244. /package/{internal/src → src/internal}/subscribe/recall-state.ts +0 -0
  245. /package/{internal/src → src/internal}/subscribe/subscribe-in-store.ts +0 -0
  246. /package/{internal/src → src/internal}/subscribe/subscribe-to-root-atoms.ts +0 -0
  247. /package/{internal/src → src/internal}/subscribe/subscribe-to-state.ts +0 -0
  248. /package/{internal/src → src/internal}/subscribe/subscribe-to-timeline.ts +0 -0
  249. /package/{internal/src → src/internal}/subscribe/subscribe-to-transaction.ts +0 -0
  250. /package/{internal/src → src/internal}/timeline/create-timeline.ts +0 -0
  251. /package/{internal/src → src/internal}/timeline/index.ts +0 -0
  252. /package/{internal/src → src/internal}/timeline/time-travel.ts +0 -0
  253. /package/{internal/src → src/internal}/transaction/abort-transaction.ts +0 -0
  254. /package/{internal/src → src/internal}/transaction/act-upon-store.ts +0 -0
  255. /package/{internal/src → src/internal}/transaction/apply-transaction.ts +0 -0
  256. /package/{internal/src → src/internal}/transaction/assign-transaction-to-continuity.ts +0 -0
  257. /package/{internal/src → src/internal}/transaction/create-transaction.ts +0 -0
  258. /package/{internal/src → src/internal}/transaction/get-epoch-number.ts +0 -0
  259. /package/{internal/src → src/internal}/transaction/index.ts +0 -0
  260. /package/{internal/src → src/internal}/transaction/is-root-store.ts +0 -0
  261. /package/{internal/src → src/internal}/transaction/set-epoch-number.ts +0 -0
  262. /package/{internal/src → src/internal}/utility-types.ts +0 -0
  263. /package/{introspection/src → src/introspection}/attach-atom-index.ts +0 -0
  264. /package/{introspection/src → src/introspection}/attach-introspection-states.ts +0 -0
  265. /package/{introspection/src → src/introspection}/attach-selector-index.ts +0 -0
  266. /package/{introspection/src → src/introspection}/attach-timeline-family.ts +0 -0
  267. /package/{introspection/src → src/introspection}/attach-timeline-index.ts +0 -0
  268. /package/{introspection/src → src/introspection}/attach-transaction-index.ts +0 -0
  269. /package/{introspection/src → src/introspection}/attach-transaction-logs.ts +0 -0
  270. /package/{introspection/src → src/introspection}/attach-type-selectors.ts +0 -0
  271. /package/{introspection/src → src/introspection}/index.ts +0 -0
  272. /package/{introspection/src → src/introspection}/sprawl.ts +0 -0
  273. /package/{json/src → src/json}/index.ts +0 -0
  274. /package/{json/src → src/json}/select-json.ts +0 -0
  275. /package/src/{atom.ts → main/atom.ts} +0 -0
  276. /package/src/{dispose-state.ts → main/dispose-state.ts} +0 -0
  277. /package/src/{find-state.ts → main/find-state.ts} +0 -0
  278. /package/src/{get-state.ts → main/get-state.ts} +0 -0
  279. /package/src/{index.ts → main/index.ts} +0 -0
  280. /package/src/{join.ts → main/join.ts} +0 -0
  281. /package/src/{logger.ts → main/logger.ts} +0 -0
  282. /package/src/{selector.ts → main/selector.ts} +0 -0
  283. /package/src/{set-state.ts → main/set-state.ts} +0 -0
  284. /package/src/{subscribe.ts → main/subscribe.ts} +0 -0
  285. /package/src/{timeline.ts → main/timeline.ts} +0 -0
  286. /package/src/{validators.ts → main/validators.ts} +0 -0
  287. /package/{react/src → src/react}/index.ts +0 -0
  288. /package/{react/src → src/react}/parse-state-overloads.ts +0 -0
  289. /package/{react/src → src/react}/use-json.ts +0 -0
  290. /package/{react/src → src/react}/use-o.ts +0 -0
  291. /package/{react/src → src/react}/use-tl.ts +0 -0
  292. /package/{react-devtools/src → src/react-devtools}/StateEditor.tsx +0 -0
  293. /package/{react-devtools/src → src/react-devtools}/StateIndex.tsx +0 -0
  294. /package/{react-devtools/src → src/react-devtools}/TimelineIndex.tsx +0 -0
  295. /package/{react-devtools/src → src/react-devtools}/TransactionIndex.tsx +0 -0
  296. /package/{react-devtools/src → src/react-devtools}/elastic-input/ElasticInput.tsx +0 -0
  297. /package/{react-devtools/src → src/react-devtools}/elastic-input/NumberInput.tsx +0 -0
  298. /package/{react-devtools/src → src/react-devtools}/elastic-input/TextInput.tsx +0 -0
  299. /package/{react-devtools/src → src/react-devtools}/elastic-input/index.ts +0 -0
  300. /package/{react-devtools/src → src/react-devtools}/error-boundary/DefaultFallback.tsx +0 -0
  301. /package/{react-devtools/src → src/react-devtools}/error-boundary/ReactErrorBoundary.tsx +0 -0
  302. /package/{react-devtools/src → src/react-devtools}/error-boundary/index.ts +0 -0
  303. /package/{react-devtools/src → src/react-devtools}/index.ts +0 -0
  304. /package/{react-devtools/src → src/react-devtools}/json-editor/default-components.tsx +0 -0
  305. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/array-editor.tsx +0 -0
  306. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/non-json.tsx +0 -0
  307. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/object-editor.tsx +0 -0
  308. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/primitive-editors.tsx +0 -0
  309. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/array-elements.ts +0 -0
  310. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/cast-to-json.ts +0 -0
  311. /package/{react-devtools/src → src/react-devtools}/json-editor/index.ts +0 -0
  312. /package/{react-devtools/src → src/react-devtools}/json-editor/todo.md +0 -0
  313. /package/{realtime/src → src/realtime}/index.ts +0 -0
  314. /package/{realtime/src → src/realtime}/realtime-continuity.ts +0 -0
  315. /package/{realtime-client/src → src/realtime-client}/continuity/index.ts +0 -0
  316. /package/{realtime-client/src → src/realtime-client}/continuity/register-and-attempt-confirmed-update.ts +0 -0
  317. /package/{realtime-client/src → src/realtime-client}/continuity/use-conceal-state.ts +0 -0
  318. /package/{realtime-client/src → src/realtime-client}/continuity/use-reveal-state.ts +0 -0
  319. /package/{realtime-client/src → src/realtime-client}/index.ts +0 -0
  320. /package/{realtime-client/src → src/realtime-client}/pull-atom-family-member.ts +0 -0
  321. /package/{realtime-client/src → src/realtime-client}/pull-atom.ts +0 -0
  322. /package/{realtime-client/src → src/realtime-client}/pull-mutable-atom-family-member.ts +0 -0
  323. /package/{realtime-client/src → src/realtime-client}/pull-mutable-atom.ts +0 -0
  324. /package/{realtime-client/src → src/realtime-client}/pull-selector-family-member.ts +0 -0
  325. /package/{realtime-client/src → src/realtime-client}/pull-selector.ts +0 -0
  326. /package/{realtime-client/src → src/realtime-client}/push-state.ts +0 -0
  327. /package/{realtime-client/src → src/realtime-client}/realtime-client-stores/index.ts +0 -0
  328. /package/{realtime-client/src → src/realtime-client}/server-action.ts +0 -0
  329. /package/{realtime-client/src → src/realtime-client}/sync-continuity.ts +0 -0
  330. /package/{realtime-react/src → src/realtime-react}/use-pull-atom-family-member.ts +0 -0
  331. /package/{realtime-react/src → src/realtime-react}/use-pull-atom.ts +0 -0
  332. /package/{realtime-react/src → src/realtime-react}/use-pull-mutable-atom.ts +0 -0
  333. /package/{realtime-react/src → src/realtime-react}/use-pull-mutable-family-member.ts +0 -0
  334. /package/{realtime-react/src → src/realtime-react}/use-pull-selector-family-member.ts +0 -0
  335. /package/{realtime-react/src → src/realtime-react}/use-pull-selector.ts +0 -0
  336. /package/{realtime-react/src → src/realtime-react}/use-push.ts +0 -0
  337. /package/{realtime-react/src → src/realtime-react}/use-realtime-service.ts +0 -0
  338. /package/{realtime-react/src → src/realtime-react}/use-server-action.ts +0 -0
  339. /package/{realtime-react/src → src/realtime-react}/use-sync-continuity.ts +0 -0
  340. /package/{realtime-server/src → src/realtime-server}/README.md +0 -0
  341. /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-send-initial-payload.ts +0 -0
  342. /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-serve-transaction-request.ts +0 -0
  343. /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-sync-realtime-continuity.ts +0 -0
  344. /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-track-client-acknowledgement.ts +0 -0
  345. /package/{realtime-server/src → src/realtime-server}/continuity/subscribe-to-continuity-actions.ts +0 -0
  346. /package/{realtime-server/src → src/realtime-server}/continuity/subscribe-to-continuity-perpectives.ts +0 -0
  347. /package/{realtime-server/src → src/realtime-server}/index.ts +0 -0
  348. /package/{realtime-server/src → src/realtime-server}/ipc-sockets/custom-socket.ts +0 -0
  349. /package/{realtime-server/src → src/realtime-server}/ipc-sockets/index.ts +0 -0
  350. /package/{realtime-server/src → src/realtime-server}/ipc-sockets/parent-socket.ts +0 -0
  351. /package/{realtime-server/src → src/realtime-server}/realtime-action-receiver.ts +0 -0
  352. /package/{realtime-server/src → src/realtime-server}/realtime-family-provider.ts +0 -0
  353. /package/{realtime-server/src → src/realtime-server}/realtime-mutable-family-provider.ts +0 -0
  354. /package/{realtime-server/src → src/realtime-server}/realtime-mutable-provider.ts +0 -0
  355. /package/{realtime-server/src → src/realtime-server}/realtime-server-stores/index.ts +0 -0
  356. /package/{realtime-server/src → src/realtime-server}/realtime-state-provider.ts +0 -0
  357. /package/{realtime-server/src → src/realtime-server}/realtime-state-receiver.ts +0 -0
  358. /package/{realtime-testing/src → src/realtime-testing}/index.ts +0 -0
  359. /package/{realtime-testing/src → src/realtime-testing}/setup-realtime-test.tsx +0 -0
  360. /package/{transceivers/set-rtx/src → src/transceivers/set-rtx}/index.ts +0 -0
  361. /package/{web/src → src/web}/index.ts +0 -0
  362. /package/{web/src → src/web}/persist-sync.ts +0 -0
@@ -30,6 +30,7 @@ export * from "./get-environment-data"
30
30
  export * from "./get-state"
31
31
  export * from "./get-trace"
32
32
  export * from "./ingest-updates"
33
+ export * from "./install-into-store"
33
34
  export * from "./join"
34
35
  export * from "./junction"
35
36
  export * from "./keys"
@@ -26,11 +26,13 @@ export function findRelationsInStore<
26
26
  const keyBA = `${token.b}KeyOf${capitalize(token.a)}`
27
27
  relations = {
28
28
  get [keyAB]() {
29
+ // @ts-expect-error way too complicated to represent
29
30
  const familyAB = myJoin.states[keyAB as any]
30
31
  const state = findInStore(store, familyAB, key)
31
32
  return state
32
33
  },
33
34
  get [keyBA]() {
35
+ // @ts-expect-error way too complicated to represent
34
36
  const familyBA = myJoin.states[keyBA as any]
35
37
  const state = findInStore(store, familyBA, key)
36
38
  return state
@@ -41,11 +43,13 @@ export function findRelationsInStore<
41
43
  const entryBA = `${token.b}EntryOf${capitalize(token.a)}`
42
44
  Object.assign(relations, {
43
45
  get [entryAB]() {
46
+ // @ts-expect-error way too complicated to represent
44
47
  const familyAB = myJoin.states[entryAB as any]
45
48
  const state = findInStore(store, familyAB, key)
46
49
  return state
47
50
  },
48
51
  get [entryBA]() {
52
+ // @ts-expect-error way too complicated to represent
49
53
  const familyBA = myJoin.states[entryBA as any]
50
54
  const state = findInStore(store, familyBA, key)
51
55
  return state
@@ -59,11 +63,13 @@ export function findRelationsInStore<
59
63
  const keysBA = `${token.b}KeysOf${capitalize(token.a)}`
60
64
  relations = {
61
65
  get [keyAB]() {
66
+ // @ts-expect-error way too complicated to represent
62
67
  const familyAB = myJoin.states[keyAB as any]
63
68
  const state = findInStore(store, familyAB, key)
64
69
  return state
65
70
  },
66
71
  get [keysBA]() {
72
+ // @ts-expect-error way too complicated to represent
67
73
  const familyBA = myJoin.states[keysBA as any]
68
74
  const state = findInStore(store, familyBA, key)
69
75
  return state
@@ -74,11 +80,13 @@ export function findRelationsInStore<
74
80
  const entriesBA = `${token.b}EntriesOf${capitalize(token.a)}`
75
81
  Object.assign(relations, {
76
82
  get [entryAB]() {
83
+ // @ts-expect-error way too complicated to represent
77
84
  const familyAB = myJoin.states[entryAB as any]
78
85
  const state = findInStore(store, familyAB, key)
79
86
  return state
80
87
  },
81
88
  get [entriesBA]() {
89
+ // @ts-expect-error way too complicated to represent
82
90
  const familyBA = myJoin.states[entriesBA as any]
83
91
  const state = findInStore(store, familyBA, key)
84
92
  return state
@@ -92,11 +100,13 @@ export function findRelationsInStore<
92
100
  const keysBA = `${token.b}KeysOf${capitalize(token.a)}`
93
101
  relations = {
94
102
  get [keysAB]() {
103
+ // @ts-expect-error way too complicated to represent
95
104
  const familyAB = myJoin.states[keysAB as any]
96
105
  const state = findInStore(store, familyAB, key)
97
106
  return state
98
107
  },
99
108
  get [keysBA]() {
109
+ // @ts-expect-error way too complicated to represent
100
110
  const familyBA = myJoin.states[keysBA as any]
101
111
  const state = findInStore(store, familyBA, key)
102
112
  return state
@@ -107,11 +117,13 @@ export function findRelationsInStore<
107
117
  const entriesBA = `${token.b}EntriesOf${capitalize(token.a)}`
108
118
  Object.assign(relations, {
109
119
  get [entriesAB]() {
120
+ // @ts-expect-error way too complicated to represent
110
121
  const familyAB = myJoin.states[entriesAB as any]
111
122
  const state = findInStore(store, familyAB, key)
112
123
  return state
113
124
  },
114
125
  get [entriesBA]() {
126
+ // @ts-expect-error way too complicated to represent
115
127
  const familyBA = myJoin.states[entriesBA as any]
116
128
  const state = findInStore(store, familyBA, key)
117
129
  return state
@@ -83,8 +83,9 @@ export class Junction<
83
83
  public readonly a: ASide
84
84
  public readonly b: BSide
85
85
  public readonly cardinality: `1:1` | `1:n` | `n:n`
86
- public readonly relations = new Map<AType | BType, Set<AType> | Set<BType>>()
87
- public readonly contents = new Map<string, Content>()
86
+ public readonly relations: Map<AType | BType, Set<AType> | Set<BType>> =
87
+ new Map()
88
+ public readonly contents: Map<string, Content> = new Map()
88
89
 
89
90
  public isAType?: Refinement<string, AType> | null
90
91
  public isBType?: Refinement<string, BType> | null
@@ -1,5 +1,5 @@
1
1
  export class LazyMap<K, V> extends Map<K, V> {
2
- public deleted = new Set<K>()
2
+ public deleted: Set<K> = new Set()
3
3
  protected readonly source: Map<K, V>
4
4
 
5
5
  public constructor(source: Map<K, V>) {
@@ -12,12 +12,9 @@ export class FamilyTracker<
12
12
  FamilyMemberKey extends Canonical,
13
13
  > {
14
14
  private trackers: Map<FamilyMemberKey, Tracker<Core>> = new Map()
15
- private readonly Update: Core extends Transceiver<infer Signal>
16
- ? Signal
17
- : never
18
15
 
19
16
  public readonly latestUpdateAtoms: RegularAtomFamily<
20
- typeof this.Update | null,
17
+ (Core extends Transceiver<infer Signal> ? Signal : never) | null,
21
18
  FamilyMemberKey
22
19
  >
23
20
  public readonly mutableAtoms: MutableAtomFamily<Core, any, FamilyMemberKey>
@@ -27,7 +24,7 @@ export class FamilyTracker<
27
24
  store: Store,
28
25
  ) {
29
26
  const updateAtoms = createRegularAtomFamily<
30
- typeof this.Update | null,
27
+ (Core extends Transceiver<infer Signal> ? Signal : never) | null,
31
28
  FamilyMemberKey
32
29
  >(
33
30
  store,
@@ -19,12 +19,12 @@ import type { Transceiver } from "./transceiver"
19
19
  * the tracker will update its own state to reflect the change.
20
20
  */
21
21
  export class Tracker<Mutable extends Transceiver<any>> {
22
- private Update: Mutable extends Transceiver<infer Signal> ? Signal : never
23
-
24
22
  private initializeState(
25
23
  mutableState: MutableAtomToken<Mutable, Json.Serializable>,
26
24
  store: Store,
27
- ): RegularAtomToken<typeof this.Update | null> {
25
+ ): RegularAtomToken<
26
+ (Mutable extends Transceiver<infer Signal> ? Signal : never) | null
27
+ > {
28
28
  const latestUpdateStateKey = `*${mutableState.key}`
29
29
  store.atoms.delete(latestUpdateStateKey)
30
30
  store.valueMap.delete(latestUpdateStateKey)
@@ -52,11 +52,13 @@ export class Tracker<Mutable extends Transceiver<any>> {
52
52
  return latestUpdateState
53
53
  }
54
54
 
55
- private unsubscribeFromInnerValue: () => void
56
- private unsubscribeFromState: () => void
55
+ private unsubscribeFromInnerValue!: () => void
56
+ private unsubscribeFromState!: () => void
57
57
  private observeCore(
58
58
  mutableState: MutableAtomToken<Mutable, any>,
59
- latestUpdateState: RegularAtomToken<typeof this.Update | null>,
59
+ latestUpdateState: RegularAtomToken<
60
+ (Mutable extends Transceiver<infer Signal> ? Signal : never) | null
61
+ >,
60
62
  target: Store,
61
63
  ): void {
62
64
  const subscriptionKey = `tracker:${target.config.name}:${
@@ -89,7 +91,9 @@ export class Tracker<Mutable extends Transceiver<any>> {
89
91
 
90
92
  private updateCore<Core extends Transceiver<any>>(
91
93
  mutableState: MutableAtomToken<Core, Json.Serializable>,
92
- latestUpdateState: RegularAtomToken<typeof this.Update | null>,
94
+ latestUpdateState: RegularAtomToken<
95
+ (Mutable extends Transceiver<infer Signal> ? Signal : never) | null
96
+ >,
93
97
  target: Store,
94
98
  ): void {
95
99
  const subscriptionKey = `tracker:${target.config.name}:${
@@ -158,9 +162,11 @@ export class Tracker<Mutable extends Transceiver<any>> {
158
162
  }
159
163
 
160
164
  public mutableState: MutableAtomToken<Mutable, Json.Serializable>
161
- public latestUpdateState: RegularAtomToken<typeof this.Update | null>
165
+ public latestUpdateState: RegularAtomToken<
166
+ (Mutable extends Transceiver<infer Signal> ? Signal : never) | null
167
+ >
162
168
 
163
- public [Symbol.dispose]: () => void
169
+ public [Symbol.dispose]!: () => void
164
170
 
165
171
  public constructor(
166
172
  mutableState: MutableAtomToken<Mutable, Json.Serializable>,
@@ -86,6 +86,7 @@ export const registerSelector = (
86
86
  const state = withdraw(target, token)
87
87
  setAtomOrSelector(target, state, value)
88
88
  }) as typeof setState,
89
- find: ((token, key) => findInStore(store, token, key)) as typeof findState,
89
+ find: ((...args: Parameters<typeof findState>) =>
90
+ findInStore(store, ...args)) as typeof findState,
90
91
  json: (token) => getJsonToken(store, token),
91
92
  })
@@ -43,25 +43,26 @@ export class Store implements Lineage {
43
43
  public parent: Store | null = null
44
44
  public child: Store | null = null
45
45
 
46
- public valueMap = new Map<string, any>()
47
- public defaults = new Map<string, any>()
46
+ public valueMap: Map<string, any> = new Map()
47
+ public defaults: Map<string, any> = new Map()
48
48
 
49
- public atoms = new Map<string, Atom<any>>()
50
- public selectors = new Map<string, WritableSelector<any>>()
51
- public readonlySelectors = new Map<string, ReadonlySelector<any>>()
49
+ public atoms: Map<string, Atom<any>> = new Map()
50
+ public selectors: Map<string, WritableSelector<any>> = new Map()
51
+ public readonlySelectors: Map<string, ReadonlySelector<any>> = new Map()
52
52
 
53
- public atomsThatAreDefault = new Set<string>()
54
- public selectorAtoms = new Junction({
55
- between: [`selectorKey`, `atomKey`],
56
- cardinality: `n:n`,
57
- })
58
- public selectorGraph = new Junction<
53
+ public atomsThatAreDefault: Set<string> = new Set()
54
+ public selectorAtoms: Junction<`selectorKey`, string, `atomKey`, string> =
55
+ new Junction({
56
+ between: [`selectorKey`, `atomKey`],
57
+ cardinality: `n:n`,
58
+ })
59
+ public selectorGraph: Junction<
59
60
  `upstreamSelectorKey`,
60
61
  string,
61
62
  `downstreamSelectorKey`,
62
63
  string,
63
64
  { source: string }
64
- >(
65
+ > = new Junction(
65
66
  {
66
67
  between: [`upstreamSelectorKey`, `downstreamSelectorKey`],
67
68
  cardinality: `n:n`,
@@ -70,17 +71,17 @@ export class Store implements Lineage {
70
71
  makeContentKey: (...keys) => keys.sort().join(`:`),
71
72
  },
72
73
  )
73
- public trackers = new Map<string, Tracker<Transceiver<any>>>()
74
- public families = new Map<
74
+ public trackers: Map<string, Tracker<Transceiver<any>>> = new Map()
75
+ public families: Map<
75
76
  string,
76
77
  | MutableAtomFamily<any, any, any>
77
78
  | ReadonlySelectorFamily<any, any>
78
79
  | RegularAtomFamily<any, any>
79
80
  | WritableSelectorFamily<any, any>
80
- >()
81
- public joins = new Map<string, Join<any, any, any, any, any, any>>()
81
+ > = new Map()
82
+ public joins: Map<string, Join<any, any, any, any, any, any>> = new Map()
82
83
 
83
- public transactions = new Map<string, Transaction<Func>>()
84
+ public transactions: Map<string, Transaction<Func>> = new Map()
84
85
  public transactionMeta: TransactionEpoch | TransactionProgress<Func> = {
85
86
  epoch: new Map<string, number>(),
86
87
  actionContinuities: new Junction({
@@ -89,27 +90,28 @@ export class Store implements Lineage {
89
90
  }),
90
91
  }
91
92
 
92
- public timelines = new Map<string, Timeline<any>>()
93
- public timelineTopics = new Junction<
93
+ public timelines: Map<string, Timeline<any>> = new Map()
94
+ public timelineTopics: Junction<
94
95
  `timelineKey`,
95
96
  string,
96
97
  `topicKey`,
97
98
  string,
98
99
  { topicType: `atom_family` | `atom` | `molecule_family` | `molecule` }
99
- >({
100
+ > = new Junction({
100
101
  between: [`timelineKey`, `topicKey`],
101
102
  cardinality: `1:n`,
102
103
  })
103
104
 
104
- public disposalTraces = new CircularBuffer<{ key: string; trace: string }>(100)
105
+ public disposalTraces: CircularBuffer<{ key: string; trace: string }> =
106
+ new CircularBuffer(100)
105
107
 
106
- public molecules = new Map<string, Molecule<Canonical>>()
107
- public moleculeJoins = new Junction<
108
+ public molecules: Map<string, Molecule<Canonical>> = new Map()
109
+ public moleculeJoins: Junction<
108
110
  `moleculeKey`,
109
111
  stringified<Canonical>,
110
112
  `joinKey`,
111
113
  string
112
- >(
114
+ > = new Junction(
113
115
  {
114
116
  between: [`moleculeKey`, `joinKey`],
115
117
  cardinality: `n:n`,
@@ -118,13 +120,13 @@ export class Store implements Lineage {
118
120
  makeContentKey: (...keys) => keys.sort().join(`:`),
119
121
  },
120
122
  )
121
- public moleculeGraph = new Junction<
123
+ public moleculeGraph: Junction<
122
124
  `upstreamMoleculeKey`,
123
125
  stringified<Canonical> | `root`,
124
126
  `downstreamMoleculeKey`,
125
127
  stringified<Canonical>,
126
128
  { source: stringified<Canonical> }
127
- >(
129
+ > = new Junction(
128
130
  {
129
131
  between: [`upstreamMoleculeKey`, `downstreamMoleculeKey`],
130
132
  cardinality: `n:n`,
@@ -133,12 +135,12 @@ export class Store implements Lineage {
133
135
  makeContentKey: (...keys) => keys.sort().join(`:`),
134
136
  },
135
137
  )
136
- public moleculeData = new Junction<
138
+ public moleculeData: Junction<
137
139
  `moleculeKey`,
138
140
  stringified<Canonical>,
139
141
  `stateFamilyKey`,
140
142
  string
141
- >(
143
+ > = new Junction(
142
144
  {
143
145
  between: [`moleculeKey`, `stateFamilyKey`],
144
146
  cardinality: `n:n`,
@@ -147,25 +149,19 @@ export class Store implements Lineage {
147
149
  makeContentKey: (...keys) => keys.sort().join(`:`),
148
150
  },
149
151
  )
150
- public miscResources = new Map<string, Disposable>()
152
+ public miscResources: Map<string, Disposable> = new Map()
151
153
 
152
- public on = {
153
- atomCreation: new Subject<AtomToken<unknown>>(),
154
- atomDisposal: new Subject<AtomToken<unknown>>(),
155
- selectorCreation: new Subject<
156
- ReadonlySelectorToken<unknown> | WritableSelectorToken<unknown>
157
- >(),
158
- selectorDisposal: new Subject<
159
- ReadonlySelectorToken<unknown> | WritableSelectorToken<unknown>
160
- >(),
161
- timelineCreation: new Subject<TimelineToken<unknown>>(),
162
- transactionCreation: new Subject<TransactionToken<Func>>(),
163
- transactionApplying: new StatefulSubject<TransactionProgress<Func> | null>(
164
- null,
165
- ),
166
- operationClose: new Subject<OperationProgress>(),
167
- moleculeCreation: new Subject<MoleculeCreation>(),
168
- moleculeDisposal: new Subject<MoleculeDisposal>(),
154
+ public on: StoreEventCarrier = {
155
+ atomCreation: new Subject(),
156
+ atomDisposal: new Subject(),
157
+ selectorCreation: new Subject(),
158
+ selectorDisposal: new Subject(),
159
+ timelineCreation: new Subject(),
160
+ transactionCreation: new Subject(),
161
+ transactionApplying: new StatefulSubject(null),
162
+ operationClose: new Subject(),
163
+ moleculeCreation: new Subject(),
164
+ moleculeDisposal: new Subject(),
169
165
  }
170
166
  public operation: OperationProgress = { open: false }
171
167
 
@@ -250,15 +246,34 @@ export class Store implements Lineage {
250
246
  }
251
247
  }
252
248
 
249
+ export type StoreEventCarrier = {
250
+ atomCreation: Subject<AtomToken<unknown>>
251
+ atomDisposal: Subject<AtomToken<unknown>>
252
+ selectorCreation: Subject<
253
+ ReadonlySelectorToken<unknown> | WritableSelectorToken<unknown>
254
+ >
255
+ selectorDisposal: Subject<
256
+ ReadonlySelectorToken<unknown> | WritableSelectorToken<unknown>
257
+ >
258
+ timelineCreation: Subject<TimelineToken<unknown>>
259
+ transactionCreation: Subject<TransactionToken<Func>>
260
+ transactionApplying: StatefulSubject<TransactionProgress<Func> | null>
261
+ operationClose: Subject<OperationProgress>
262
+ moleculeCreation: Subject<MoleculeCreation>
263
+ moleculeDisposal: Subject<MoleculeDisposal>
264
+ }
265
+
266
+ declare global {
267
+ var ATOM_IO_IMPLICIT_STORE: Store | undefined
268
+ }
269
+
253
270
  export const IMPLICIT = {
254
271
  get STORE(): Store {
255
- if (!globalThis.ATOM_IO_IMPLICIT_STORE) {
256
- globalThis.ATOM_IO_IMPLICIT_STORE = new Store({
257
- name: `IMPLICIT_STORE`,
258
- lifespan: `ephemeral`,
259
- })
260
- }
261
- return globalThis.ATOM_IO_IMPLICIT_STORE as Store
272
+ globalThis.ATOM_IO_IMPLICIT_STORE ??= new Store({
273
+ name: `IMPLICIT_STORE`,
274
+ lifespan: `ephemeral`,
275
+ })
276
+ return globalThis.ATOM_IO_IMPLICIT_STORE
262
277
  },
263
278
  }
264
279
 
@@ -1,5 +1,5 @@
1
1
  export class Subject<T> {
2
- public Subscriber: (value: T) => void
2
+ public Subscriber!: (value: T) => void
3
3
 
4
4
  public subscribers: Map<string, this[`Subscriber`]> = new Map()
5
5
 
@@ -79,7 +79,8 @@ export const buildTransaction = (
79
79
  }) as typeof setState,
80
80
  run: (token, identifier = arbitrary()) =>
81
81
  actUponStore(child, token, identifier),
82
- find: ((token, k) => findInStore(child, token, k)) as typeof findState,
82
+ find: ((...ps: Parameters<typeof findState>) =>
83
+ findInStore(store, ...ps)) as typeof findState,
83
84
  json: (token) => getJsonToken(child, token),
84
85
  dispose: ((...ps: Parameters<typeof disposeState>) => {
85
86
  disposeFromStore(child, ...ps)
@@ -73,7 +73,7 @@ export class Auditor {
73
73
  )
74
74
  }
75
75
 
76
- public static readonly DEFAULT_LIST_RESOURCES_PARAM = {
76
+ public static readonly DEFAULT_LIST_RESOURCES_PARAM: ListResourcesParam = {
77
77
  atomFamilies: true,
78
78
  selectorFamilies: true,
79
79
  } satisfies ListResourcesParam
@@ -157,7 +157,18 @@ export class Differ<
157
157
  }
158
158
  }
159
159
 
160
- export const prettyJson = new Differ(primitiveRefinery, jsonTreeRefinery, {
160
+ export const prettyJson: Differ<
161
+ {
162
+ number: (input: unknown) => input is number
163
+ string: (input: unknown) => input is string
164
+ boolean: (input: unknown) => input is boolean
165
+ null: (input: unknown) => input is null
166
+ },
167
+ {
168
+ object: (input: unknown) => input is Json.Tree.Object
169
+ array: (input: unknown) => input is Json.Tree.Array
170
+ }
171
+ > = new Differ(primitiveRefinery, jsonTreeRefinery, {
161
172
  number: diffNumber,
162
173
  string: diffString,
163
174
  boolean: diffBoolean,
@@ -59,7 +59,12 @@ export class Refinery<SupportedTypes extends RefinementSupport> {
59
59
  }
60
60
  }
61
61
 
62
- export const primitiveRefinery = new Refinery({
62
+ export const primitiveRefinery: Refinery<{
63
+ number: (input: unknown) => input is number
64
+ string: (input: unknown) => input is string
65
+ boolean: (input: unknown) => input is boolean
66
+ null: (input: unknown) => input is null
67
+ }> = new Refinery({
63
68
  number: (input: unknown): input is number => typeof input === `number`,
64
69
  string: (input: unknown): input is string => typeof input === `string`,
65
70
  boolean: (input: unknown): input is boolean => typeof input === `boolean`,
@@ -74,12 +79,22 @@ export function isPlainObject(input: unknown): input is Json.Tree.Object {
74
79
  return prototype === Object.prototype
75
80
  }
76
81
 
77
- export const jsonTreeRefinery = new Refinery({
82
+ export const jsonTreeRefinery: Refinery<{
83
+ object: (input: unknown) => input is Json.Tree.Object
84
+ array: (input: unknown) => input is Json.Tree.Array
85
+ }> = new Refinery({
78
86
  object: isPlainObject,
79
87
  array: (input: unknown): input is Json.Tree.Array => Array.isArray(input),
80
88
  })
81
89
 
82
- export const jsonRefinery = new Refinery({
90
+ export const jsonRefinery: Refinery<{
91
+ object: (input: unknown) => input is Json.Tree.Object
92
+ array: (input: unknown) => input is Json.Tree.Array
93
+ number: (input: unknown) => input is number
94
+ string: (input: unknown) => input is string
95
+ boolean: (input: unknown) => input is boolean
96
+ null: (input: unknown) => input is null
97
+ }> = new Refinery({
83
98
  ...primitiveRefinery.supported,
84
99
  ...jsonTreeRefinery.supported,
85
100
  })
@@ -1,6 +1,6 @@
1
1
  import type { Count, Flat } from "atom.io/internal"
2
2
 
3
- export type Entries<K extends PropertyKey = keyof any, V = any> = [K, V][]
3
+ export type Entries<K extends PropertyKey = PropertyKey, V = any> = [K, V][]
4
4
 
5
5
  export type KeyOfEntries<E extends Entries> = E extends [infer K, any][]
6
6
  ? K
@@ -1,7 +1,7 @@
1
1
  import type * as AtomIO from "atom.io"
2
2
  import type { Store, Transceiver } from "atom.io/internal"
3
+ import { createWritableSelectorFamily } from "atom.io/internal"
3
4
 
4
- import { createWritableSelectorFamily } from "../../internal/src/families/create-writable-selector-family"
5
5
  import type { Canonical, Json, JsonInterface } from "."
6
6
 
7
7
  export function selectJsonFamily<
@@ -9,7 +9,7 @@ import {
9
9
  } from "atom.io/internal"
10
10
  import type { Canonical } from "atom.io/json"
11
11
 
12
- export const $claim = Symbol(`claim`)
12
+ export const $claim: unique symbol = Symbol.for(`claim`)
13
13
  export type Claim<K extends Canonical> = K & { [$claim]?: true }
14
14
 
15
15
  export class Realm<H extends Hierarchy> {
@@ -12,13 +12,13 @@ import {
12
12
  findInStore,
13
13
  getFromStore,
14
14
  IMPLICIT,
15
+ installIntoStore,
15
16
  setIntoStore,
16
17
  Store,
17
18
  subscribeInStore,
18
19
  timeTravel,
19
20
  } from "atom.io/internal"
20
21
 
21
- import { installIntoStore } from "../internal/src/install-into-store"
22
22
  import type {
23
23
  AtomIOToken,
24
24
  disposeState,
@@ -133,7 +133,7 @@ export function transaction<F extends Func>(
133
133
 
134
134
  export function runTransaction<F extends Func>(
135
135
  token: TransactionToken<F>,
136
- id = arbitrary(),
136
+ id: string = arbitrary(),
137
137
  ): (...parameters: Parameters<F>) => ReturnType<F> {
138
138
  return actUponStore(IMPLICIT.STORE, token, id)
139
139
  }
@@ -2,7 +2,9 @@ import type { Store } from "atom.io/internal"
2
2
  import { IMPLICIT } from "atom.io/internal"
3
3
  import * as React from "react"
4
4
 
5
- export const StoreContext = React.createContext<Store>(IMPLICIT.STORE)
5
+ export const StoreContext: React.Context<Store> = React.createContext(
6
+ IMPLICIT.STORE,
7
+ )
6
8
 
7
9
  export const StoreProvider: React.FC<{
8
10
  children: React.ReactNode
@@ -20,13 +20,11 @@ export function useI<T, K extends Canonical>(
20
20
  ): <New extends T>(next: New | ((old: T) => New)) => void {
21
21
  const store = React.useContext(StoreContext)
22
22
  const token = parseStateOverloads(store, ...params)
23
- const setter: React.MutableRefObject<
23
+ const setter: React.RefObject<
24
24
  (<New extends T>(next: New | ((old: T) => New)) => void) | null
25
25
  > = React.useRef(null)
26
- if (setter.current === null) {
27
- setter.current = (next) => {
28
- setIntoStore(store, token, next)
29
- }
26
+ setter.current ??= (next) => {
27
+ setIntoStore(store, token, next)
30
28
  }
31
29
  return setter.current
32
30
  }
@@ -1,4 +1,4 @@
1
- import "./devtools.scss"
1
+ import "./devtools.css"
2
2
 
3
3
  import { StoreContext, useI, useO } from "atom.io/react"
4
4
  import { LayoutGroup, motion, spring } from "motion/react"
@@ -22,6 +22,8 @@ export const OpenClose: FC<{
22
22
  )
23
23
  }
24
24
 
25
- export const button = {
25
+ export const button: {
26
+ OpenClose: typeof OpenClose
27
+ } = {
26
28
  OpenClose,
27
29
  }
@@ -210,7 +210,11 @@ export const TimelineUpdateFC: React.FC<{
210
210
  ) : null
211
211
  }
212
212
 
213
- export const article = {
213
+ export const article: {
214
+ AtomUpdate: typeof AtomUpdateFC
215
+ TransactionUpdate: typeof TransactionUpdateFC
216
+ TimelineUpdate: typeof TimelineUpdateFC
217
+ } = {
214
218
  AtomUpdate: AtomUpdateFC,
215
219
  TransactionUpdate: TransactionUpdateFC,
216
220
  TimelineUpdate: TimelineUpdateFC,