atom.io 0.32.4 → 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 +495 -378
  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 +65 -117
  66. package/{eslint-plugin/src → src/eslint-plugin}/index.ts +3 -1
  67. package/{eslint-plugin/src → src/eslint-plugin}/rules/explicit-state-types.ts +6 -1
  68. package/{eslint-plugin/src → src/eslint-plugin}/rules/synchronous-selector-dependencies.ts +14 -1
  69. package/{internal/src → src/internal}/families/index.ts +2 -0
  70. package/{internal/src → src/internal}/index.ts +1 -0
  71. package/{internal/src → src/internal}/junction.ts +3 -2
  72. package/{internal/src → src/internal}/lazy-map.ts +1 -1
  73. package/{internal/src → src/internal}/mutable/tracker-family.ts +2 -5
  74. package/{internal/src → src/internal}/mutable/tracker.ts +15 -9
  75. package/{internal/src → src/internal}/store/store.ts +59 -46
  76. package/{internal/src → src/internal}/subject.ts +1 -1
  77. package/{introspection/src → src/introspection}/auditor.ts +1 -1
  78. package/{introspection/src → src/introspection}/differ.ts +12 -1
  79. package/{introspection/src → src/introspection}/refinery.ts +18 -3
  80. package/{json/src → src/json}/entries.ts +1 -1
  81. package/{json/src → src/json}/select-json-family.ts +1 -1
  82. package/src/{realm.ts → main/realm.ts} +1 -1
  83. package/src/{silo.ts → main/silo.ts} +1 -1
  84. package/src/{transaction.ts → main/transaction.ts} +1 -1
  85. package/{react/src → src/react}/store-context.tsx +3 -1
  86. package/{react-devtools/src → src/react-devtools}/AtomIODevtools.tsx +1 -1
  87. package/{react-devtools/src → src/react-devtools}/Button.tsx +3 -1
  88. package/{react-devtools/src → src/react-devtools}/Updates.tsx +5 -1
  89. package/src/react-devtools/devtools.css +308 -0
  90. package/{react-devtools/src → src/react-devtools}/json-editor/index.ts +5 -2
  91. package/{react-devtools/src → src/react-devtools}/store.ts +3 -2
  92. package/{realtime/src → src/realtime}/shared-room-store.ts +28 -5
  93. package/src/realtime-client/realtime-client-stores/client-main-store.ts +23 -0
  94. package/src/realtime-client/realtime-client-stores/client-sync-store.ts +15 -0
  95. package/{realtime-react/src → src/realtime-react}/index.ts +1 -0
  96. package/{realtime-react/src → src/realtime-react}/on-mount.ts +1 -1
  97. package/{realtime-react/src → src/realtime-react}/realtime-context.tsx +5 -4
  98. package/{realtime-react/src → src/realtime-react}/use-single-effect.ts +1 -1
  99. package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-room-external-actions.ts +20 -19
  100. package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-room-external-store.ts +12 -7
  101. package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-sync-store.ts +13 -4
  102. package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-user-store.ts +26 -8
  103. package/{transceivers/set-rtx/src → src/transceivers/set-rtx}/set-rtx.ts +2 -2
  104. package/data/dist/index.d.ts +0 -31
  105. package/data/dist/index.js +0 -69
  106. package/data/package.json +0 -13
  107. package/dist/chunk-4LWKCEW3.js +0 -14
  108. package/dist/chunk-7SJVR7FZ.js +0 -4499
  109. package/dist/chunk-IR77IXS7.js +0 -526
  110. package/dist/chunk-PG57JXN4.js +0 -1035
  111. package/dist/chunk-PXB4YZDI.js +0 -153
  112. package/dist/chunk-Q6OOJWM4.js +0 -634
  113. package/dist/chunk-TJPLOX7Z.js +0 -81
  114. package/dist/chunk-U4K63VLA.js +0 -109
  115. package/dist/chunk-XWL6SNVU.js +0 -7
  116. package/dist/index.d.ts +0 -701
  117. package/dist/index.js +0 -2
  118. package/eslint-plugin/dist/index.d.ts +0 -51
  119. package/eslint-plugin/dist/index.js +0 -238
  120. package/eslint-plugin/package.json +0 -13
  121. package/internal/dist/index.js +0 -2
  122. package/internal/package.json +0 -13
  123. package/introspection/dist/index.d.ts +0 -149
  124. package/introspection/dist/index.js +0 -3
  125. package/introspection/package.json +0 -13
  126. package/json/dist/index.js +0 -2
  127. package/json/package.json +0 -13
  128. package/react/dist/index.js +0 -3
  129. package/react/package.json +0 -13
  130. package/react-devtools/dist/index.css +0 -309
  131. package/react-devtools/dist/index.d.ts +0 -169
  132. package/react-devtools/dist/index.js +0 -1481
  133. package/react-devtools/package.json +0 -13
  134. package/react-devtools/src/devtools.scss +0 -309
  135. package/realtime/dist/index.d.ts +0 -51
  136. package/realtime/dist/index.js +0 -3
  137. package/realtime/package.json +0 -13
  138. package/realtime-client/dist/index.d.ts +0 -41
  139. package/realtime-client/dist/index.js +0 -4
  140. package/realtime-client/package.json +0 -13
  141. package/realtime-client/src/realtime-client-stores/client-main-store.ts +0 -20
  142. package/realtime-client/src/realtime-client-stores/client-sync-store.ts +0 -15
  143. package/realtime-react/dist/index.d.ts +0 -39
  144. package/realtime-react/dist/index.js +0 -6
  145. package/realtime-react/package.json +0 -13
  146. package/realtime-server/dist/index.d.ts +0 -139
  147. package/realtime-server/dist/index.js +0 -4
  148. package/realtime-server/package.json +0 -13
  149. package/realtime-testing/dist/index.d.ts +0 -59
  150. package/realtime-testing/dist/index.js +0 -198
  151. package/realtime-testing/package.json +0 -13
  152. package/transceivers/set-rtx/dist/index.d.ts +0 -41
  153. package/transceivers/set-rtx/dist/index.js +0 -2
  154. package/transceivers/set-rtx/package.json +0 -13
  155. package/web/dist/index.d.ts +0 -9
  156. package/web/dist/index.js +0 -2
  157. package/web/package.json +0 -13
  158. /package/{data/src → src/data}/dict.ts +0 -0
  159. /package/{data/src → src/data}/index.ts +0 -0
  160. /package/{data/src → src/data}/struct-family.ts +0 -0
  161. /package/{data/src → src/data}/struct.ts +0 -0
  162. /package/{eslint-plugin/src → src/eslint-plugin}/rules/index.ts +0 -0
  163. /package/{eslint-plugin/src → src/eslint-plugin}/walk.ts +0 -0
  164. /package/{internal/src → src/internal}/arbitrary.ts +0 -0
  165. /package/{internal/src → src/internal}/atom/create-regular-atom.ts +0 -0
  166. /package/{internal/src → src/internal}/atom/create-standalone-atom.ts +0 -0
  167. /package/{internal/src → src/internal}/atom/dispose-atom.ts +0 -0
  168. /package/{internal/src → src/internal}/atom/index.ts +0 -0
  169. /package/{internal/src → src/internal}/atom/is-default.ts +0 -0
  170. /package/{internal/src → src/internal}/caching.ts +0 -0
  171. /package/{internal/src → src/internal}/capitalize.ts +0 -0
  172. /package/{internal/src → src/internal}/families/create-atom-family.ts +0 -0
  173. /package/{internal/src → src/internal}/families/create-readonly-selector-family.ts +0 -0
  174. /package/{internal/src → src/internal}/families/create-regular-atom-family.ts +0 -0
  175. /package/{internal/src → src/internal}/families/create-selector-family.ts +0 -0
  176. /package/{internal/src → src/internal}/families/create-writable-selector-family.ts +0 -0
  177. /package/{internal/src → src/internal}/families/dispose-from-store.ts +0 -0
  178. /package/{internal/src → src/internal}/families/find-in-store.ts +0 -0
  179. /package/{internal/src → src/internal}/families/get-family-of-token.ts +0 -0
  180. /package/{internal/src → src/internal}/families/init-family-member.ts +0 -0
  181. /package/{internal/src → src/internal}/families/seek-in-store.ts +0 -0
  182. /package/{internal/src → src/internal}/future.ts +0 -0
  183. /package/{internal/src → src/internal}/get-environment-data.ts +0 -0
  184. /package/{internal/src → src/internal}/get-state/get-from-store.ts +0 -0
  185. /package/{internal/src → src/internal}/get-state/index.ts +0 -0
  186. /package/{internal/src → src/internal}/get-state/read-or-compute-value.ts +0 -0
  187. /package/{internal/src → src/internal}/get-trace.ts +0 -0
  188. /package/{internal/src → src/internal}/ingest-updates/index.ts +0 -0
  189. /package/{internal/src → src/internal}/ingest-updates/ingest-atom-update.ts +0 -0
  190. /package/{internal/src → src/internal}/ingest-updates/ingest-creation-disposal.ts +0 -0
  191. /package/{internal/src → src/internal}/ingest-updates/ingest-selector-update.ts +0 -0
  192. /package/{internal/src → src/internal}/ingest-updates/ingest-transaction-update.ts +0 -0
  193. /package/{internal/src → src/internal}/install-into-store.ts +0 -0
  194. /package/{internal/src → src/internal}/join/edit-relations-in-store.ts +0 -0
  195. /package/{internal/src → src/internal}/join/find-relations-in-store.ts +0 -0
  196. /package/{internal/src → src/internal}/join/get-internal-relations-from-store.ts +0 -0
  197. /package/{internal/src → src/internal}/join/get-join.ts +0 -0
  198. /package/{internal/src → src/internal}/join/index.ts +0 -0
  199. /package/{internal/src → src/internal}/join/join-internal.ts +0 -0
  200. /package/{internal/src → src/internal}/keys.ts +0 -0
  201. /package/{internal/src → src/internal}/lineage.ts +0 -0
  202. /package/{internal/src → src/internal}/molecule.ts +0 -0
  203. /package/{internal/src → src/internal}/mutable/create-mutable-atom-family.ts +0 -0
  204. /package/{internal/src → src/internal}/mutable/create-mutable-atom.ts +0 -0
  205. /package/{internal/src → src/internal}/mutable/get-json-family.ts +0 -0
  206. /package/{internal/src → src/internal}/mutable/get-json-token.ts +0 -0
  207. /package/{internal/src → src/internal}/mutable/get-update-family.ts +0 -0
  208. /package/{internal/src → src/internal}/mutable/get-update-token.ts +0 -0
  209. /package/{internal/src → src/internal}/mutable/index.ts +0 -0
  210. /package/{internal/src → src/internal}/mutable/transceiver.ts +0 -0
  211. /package/{internal/src → src/internal}/not-found-error.ts +0 -0
  212. /package/{internal/src → src/internal}/operation.ts +0 -0
  213. /package/{internal/src → src/internal}/pretty-print.ts +0 -0
  214. /package/{internal/src → src/internal}/reserved-keys.ts +0 -0
  215. /package/{internal/src → src/internal}/selector/create-readonly-selector.ts +0 -0
  216. /package/{internal/src → src/internal}/selector/create-standalone-selector.ts +0 -0
  217. /package/{internal/src → src/internal}/selector/create-writable-selector.ts +0 -0
  218. /package/{internal/src → src/internal}/selector/dispose-selector.ts +0 -0
  219. /package/{internal/src → src/internal}/selector/get-selector-dependency-keys.ts +0 -0
  220. /package/{internal/src → src/internal}/selector/index.ts +0 -0
  221. /package/{internal/src → src/internal}/selector/register-selector.ts +0 -0
  222. /package/{internal/src → src/internal}/selector/trace-selector-atoms.ts +0 -0
  223. /package/{internal/src → src/internal}/selector/update-selector-atoms.ts +0 -0
  224. /package/{internal/src → src/internal}/set-state/become.ts +0 -0
  225. /package/{internal/src → src/internal}/set-state/copy-mutable-if-needed.ts +0 -0
  226. /package/{internal/src → src/internal}/set-state/emit-update.ts +0 -0
  227. /package/{internal/src → src/internal}/set-state/evict-downstream.ts +0 -0
  228. /package/{internal/src → src/internal}/set-state/index.ts +0 -0
  229. /package/{internal/src → src/internal}/set-state/set-atom-or-selector.ts +0 -0
  230. /package/{internal/src → src/internal}/set-state/set-atom.ts +0 -0
  231. /package/{internal/src → src/internal}/set-state/set-into-store.ts +0 -0
  232. /package/{internal/src → src/internal}/store/circular-buffer.ts +0 -0
  233. /package/{internal/src → src/internal}/store/counterfeit.ts +0 -0
  234. /package/{internal/src → src/internal}/store/deposit.ts +0 -0
  235. /package/{internal/src → src/internal}/store/index.ts +0 -0
  236. /package/{internal/src → src/internal}/store/withdraw.ts +0 -0
  237. /package/{internal/src → src/internal}/subscribe/index.ts +0 -0
  238. /package/{internal/src → src/internal}/subscribe/recall-state.ts +0 -0
  239. /package/{internal/src → src/internal}/subscribe/subscribe-in-store.ts +0 -0
  240. /package/{internal/src → src/internal}/subscribe/subscribe-to-root-atoms.ts +0 -0
  241. /package/{internal/src → src/internal}/subscribe/subscribe-to-state.ts +0 -0
  242. /package/{internal/src → src/internal}/subscribe/subscribe-to-timeline.ts +0 -0
  243. /package/{internal/src → src/internal}/subscribe/subscribe-to-transaction.ts +0 -0
  244. /package/{internal/src → src/internal}/timeline/create-timeline.ts +0 -0
  245. /package/{internal/src → src/internal}/timeline/index.ts +0 -0
  246. /package/{internal/src → src/internal}/timeline/time-travel.ts +0 -0
  247. /package/{internal/src → src/internal}/transaction/abort-transaction.ts +0 -0
  248. /package/{internal/src → src/internal}/transaction/act-upon-store.ts +0 -0
  249. /package/{internal/src → src/internal}/transaction/apply-transaction.ts +0 -0
  250. /package/{internal/src → src/internal}/transaction/assign-transaction-to-continuity.ts +0 -0
  251. /package/{internal/src → src/internal}/transaction/build-transaction.ts +0 -0
  252. /package/{internal/src → src/internal}/transaction/create-transaction.ts +0 -0
  253. /package/{internal/src → src/internal}/transaction/get-epoch-number.ts +0 -0
  254. /package/{internal/src → src/internal}/transaction/index.ts +0 -0
  255. /package/{internal/src → src/internal}/transaction/is-root-store.ts +0 -0
  256. /package/{internal/src → src/internal}/transaction/set-epoch-number.ts +0 -0
  257. /package/{internal/src → src/internal}/utility-types.ts +0 -0
  258. /package/{introspection/src → src/introspection}/attach-atom-index.ts +0 -0
  259. /package/{introspection/src → src/introspection}/attach-introspection-states.ts +0 -0
  260. /package/{introspection/src → src/introspection}/attach-selector-index.ts +0 -0
  261. /package/{introspection/src → src/introspection}/attach-timeline-family.ts +0 -0
  262. /package/{introspection/src → src/introspection}/attach-timeline-index.ts +0 -0
  263. /package/{introspection/src → src/introspection}/attach-transaction-index.ts +0 -0
  264. /package/{introspection/src → src/introspection}/attach-transaction-logs.ts +0 -0
  265. /package/{introspection/src → src/introspection}/attach-type-selectors.ts +0 -0
  266. /package/{introspection/src → src/introspection}/index.ts +0 -0
  267. /package/{introspection/src → src/introspection}/sprawl.ts +0 -0
  268. /package/{json/src → src/json}/index.ts +0 -0
  269. /package/{json/src → src/json}/select-json.ts +0 -0
  270. /package/src/{atom.ts → main/atom.ts} +0 -0
  271. /package/src/{dispose-state.ts → main/dispose-state.ts} +0 -0
  272. /package/src/{find-state.ts → main/find-state.ts} +0 -0
  273. /package/src/{get-state.ts → main/get-state.ts} +0 -0
  274. /package/src/{index.ts → main/index.ts} +0 -0
  275. /package/src/{join.ts → main/join.ts} +0 -0
  276. /package/src/{logger.ts → main/logger.ts} +0 -0
  277. /package/src/{selector.ts → main/selector.ts} +0 -0
  278. /package/src/{set-state.ts → main/set-state.ts} +0 -0
  279. /package/src/{subscribe.ts → main/subscribe.ts} +0 -0
  280. /package/src/{timeline.ts → main/timeline.ts} +0 -0
  281. /package/src/{validators.ts → main/validators.ts} +0 -0
  282. /package/{react/src → src/react}/index.ts +0 -0
  283. /package/{react/src → src/react}/parse-state-overloads.ts +0 -0
  284. /package/{react/src → src/react}/use-i.ts +0 -0
  285. /package/{react/src → src/react}/use-json.ts +0 -0
  286. /package/{react/src → src/react}/use-o.ts +0 -0
  287. /package/{react/src → src/react}/use-tl.ts +0 -0
  288. /package/{react-devtools/src → src/react-devtools}/StateEditor.tsx +0 -0
  289. /package/{react-devtools/src → src/react-devtools}/StateIndex.tsx +0 -0
  290. /package/{react-devtools/src → src/react-devtools}/TimelineIndex.tsx +0 -0
  291. /package/{react-devtools/src → src/react-devtools}/TransactionIndex.tsx +0 -0
  292. /package/{react-devtools/src → src/react-devtools}/elastic-input/ElasticInput.tsx +0 -0
  293. /package/{react-devtools/src → src/react-devtools}/elastic-input/NumberInput.tsx +0 -0
  294. /package/{react-devtools/src → src/react-devtools}/elastic-input/TextInput.tsx +0 -0
  295. /package/{react-devtools/src → src/react-devtools}/elastic-input/index.ts +0 -0
  296. /package/{react-devtools/src → src/react-devtools}/error-boundary/DefaultFallback.tsx +0 -0
  297. /package/{react-devtools/src → src/react-devtools}/error-boundary/ReactErrorBoundary.tsx +0 -0
  298. /package/{react-devtools/src → src/react-devtools}/error-boundary/index.ts +0 -0
  299. /package/{react-devtools/src → src/react-devtools}/index.ts +0 -0
  300. /package/{react-devtools/src → src/react-devtools}/json-editor/default-components.tsx +0 -0
  301. /package/{react-devtools/src → src/react-devtools}/json-editor/developer-interface.tsx +0 -0
  302. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/array-editor.tsx +0 -0
  303. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/non-json.tsx +0 -0
  304. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/object-editor.tsx +0 -0
  305. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/primitive-editors.tsx +0 -0
  306. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/array-elements.ts +0 -0
  307. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/cast-json.ts +0 -0
  308. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/cast-to-json.ts +0 -0
  309. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/object-properties.ts +0 -0
  310. /package/{react-devtools/src → src/react-devtools}/json-editor/json-editor-internal.tsx +0 -0
  311. /package/{react-devtools/src → src/react-devtools}/json-editor/todo.md +0 -0
  312. /package/{realtime/src → src/realtime}/index.ts +0 -0
  313. /package/{realtime/src → src/realtime}/realtime-continuity.ts +0 -0
  314. /package/{realtime-client/src → src/realtime-client}/continuity/index.ts +0 -0
  315. /package/{realtime-client/src → src/realtime-client}/continuity/register-and-attempt-confirmed-update.ts +0 -0
  316. /package/{realtime-client/src → src/realtime-client}/continuity/use-conceal-state.ts +0 -0
  317. /package/{realtime-client/src → src/realtime-client}/continuity/use-reveal-state.ts +0 -0
  318. /package/{realtime-client/src → src/realtime-client}/index.ts +0 -0
  319. /package/{realtime-client/src → src/realtime-client}/pull-atom-family-member.ts +0 -0
  320. /package/{realtime-client/src → src/realtime-client}/pull-atom.ts +0 -0
  321. /package/{realtime-client/src → src/realtime-client}/pull-mutable-atom-family-member.ts +0 -0
  322. /package/{realtime-client/src → src/realtime-client}/pull-mutable-atom.ts +0 -0
  323. /package/{realtime-client/src → src/realtime-client}/pull-selector-family-member.ts +0 -0
  324. /package/{realtime-client/src → src/realtime-client}/pull-selector.ts +0 -0
  325. /package/{realtime-client/src → src/realtime-client}/push-state.ts +0 -0
  326. /package/{realtime-client/src → src/realtime-client}/realtime-client-stores/index.ts +0 -0
  327. /package/{realtime-client/src → src/realtime-client}/server-action.ts +0 -0
  328. /package/{realtime-client/src → src/realtime-client}/sync-continuity.ts +0 -0
  329. /package/{realtime-react/src → src/realtime-react}/use-pull-atom-family-member.ts +0 -0
  330. /package/{realtime-react/src → src/realtime-react}/use-pull-atom.ts +0 -0
  331. /package/{realtime-react/src → src/realtime-react}/use-pull-mutable-atom.ts +0 -0
  332. /package/{realtime-react/src → src/realtime-react}/use-pull-mutable-family-member.ts +0 -0
  333. /package/{realtime-react/src → src/realtime-react}/use-pull-selector-family-member.ts +0 -0
  334. /package/{realtime-react/src → src/realtime-react}/use-pull-selector.ts +0 -0
  335. /package/{realtime-react/src → src/realtime-react}/use-push.ts +0 -0
  336. /package/{realtime-react/src → src/realtime-react}/use-realtime-service.ts +0 -0
  337. /package/{realtime-react/src → src/realtime-react}/use-server-action.ts +0 -0
  338. /package/{realtime-react/src → src/realtime-react}/use-sync-continuity.ts +0 -0
  339. /package/{realtime-server/src → src/realtime-server}/README.md +0 -0
  340. /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-send-initial-payload.ts +0 -0
  341. /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-serve-transaction-request.ts +0 -0
  342. /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-sync-realtime-continuity.ts +0 -0
  343. /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-track-client-acknowledgement.ts +0 -0
  344. /package/{realtime-server/src → src/realtime-server}/continuity/subscribe-to-continuity-actions.ts +0 -0
  345. /package/{realtime-server/src → src/realtime-server}/continuity/subscribe-to-continuity-perpectives.ts +0 -0
  346. /package/{realtime-server/src → src/realtime-server}/index.ts +0 -0
  347. /package/{realtime-server/src → src/realtime-server}/ipc-sockets/child-socket.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
@@ -0,0 +1,153 @@
1
+ import * as Internal from "atom.io/internal";
2
+ import { Flat, Func, Refinement, Store, Timeline } from "atom.io/internal";
3
+ import { Json } from "atom.io/json";
4
+ import { AtomToken, ReadableToken, ReadonlySelectorFamilyToken, ReadonlySelectorToken, SelectorToken, TimelineToken, TransactionToken, TransactionUpdate } from "atom.io";
5
+
6
+ //#region src/introspection/attach-atom-index.d.ts
7
+ type AtomTokenIndex = WritableTokenIndex<AtomToken<unknown>>;
8
+
9
+ //#endregion
10
+ //#region src/introspection/attach-selector-index.d.ts
11
+ type SelectorTokenIndex = WritableTokenIndex<SelectorToken<unknown>>;
12
+
13
+ //#endregion
14
+ //#region src/introspection/attach-introspection-states.d.ts
15
+ type IntrospectionStates = {
16
+ atomIndex: ReadonlySelectorToken<AtomTokenIndex>;
17
+ selectorIndex: ReadonlySelectorToken<SelectorTokenIndex>;
18
+ transactionIndex: ReadonlySelectorToken<TransactionToken<Func>[]>;
19
+ transactionLogSelectors: ReadonlySelectorFamilyToken<TransactionUpdate<Func>[], string>;
20
+ timelineIndex: ReadonlySelectorToken<TimelineToken<any>[]>;
21
+ timelineSelectors: ReadonlySelectorFamilyToken<Timeline<any>, string>;
22
+ typeSelectors: ReadonlySelectorFamilyToken<string, string>;
23
+ };
24
+ declare const attachIntrospectionStates: (store: Store) => IntrospectionStates;
25
+
26
+ //#endregion
27
+ //#region src/introspection/auditor.d.ts
28
+ type ListResourcesParam = {
29
+ atomFamilies: boolean;
30
+ selectorFamilies: boolean;
31
+ };
32
+ /**
33
+ * Auditor is a tool for identifying lingering resources in your store that may result in memory leaks.
34
+ * @experimental
35
+ */
36
+ declare class Auditor {
37
+ readonly store: Internal.Store;
38
+ auditorCreatedAt: number;
39
+ statesCreatedAt: Map<string, number>;
40
+ readonly atomIndex: ReadonlySelectorToken<AtomTokenIndex>;
41
+ readonly selectorIndex: ReadonlySelectorToken<SelectorTokenIndex>;
42
+ disposed: boolean;
43
+ private readonly unsubscribeFromAtomCreation;
44
+ private readonly unsubscribeFromAtomDisposal;
45
+ private readonly unsubscribeFromSelectorCreation;
46
+ private readonly unsubscribeFromSelectorDisposal;
47
+ /**
48
+ * @param {Store} store - The store to audit.
49
+ */
50
+ constructor(store?: Internal.Store);
51
+ static readonly DEFAULT_LIST_RESOURCES_PARAM: ListResourcesParam;
52
+ /**
53
+ * Lists all resources in the store, along with their creation time.
54
+ *
55
+ * @param {ListResourcesParam} [param] - Optional parameters for filtering the list of resources.
56
+ * @returns {readonly [ReadableToken<unknown>, number]}[] - An array of tuples, where each tuple contains a state token belonging to a family in the store and that state's creation time.
57
+ */
58
+ listResources(param?: ListResourcesParam): (readonly [ReadableToken<unknown>, number])[];
59
+ [Symbol.dispose](): void;
60
+ }
61
+
62
+ //#endregion
63
+ //#region src/introspection/refinery.d.ts
64
+ type ClassSignature = abstract new (...args: any) => any;
65
+ type RefinementStrategy = ClassSignature | Refinement<unknown, any>;
66
+ type Supported<Refine extends RefinementStrategy> = Refine extends Refinement<unknown, infer T> ? T : Refine extends ClassSignature ? InstanceType<Refine> : never;
67
+ type RefinementSupport = Record<string, RefinementStrategy>;
68
+ declare class Refinery<SupportedTypes extends RefinementSupport> {
69
+ supported: SupportedTypes;
70
+ constructor(supported: SupportedTypes);
71
+ refine<T>(input: T): Flat<{ [K in keyof SupportedTypes]: T extends Supported<SupportedTypes[K]> ? {
72
+ type: K;
73
+ data: Supported<SupportedTypes[K]>;
74
+ } : Supported<SupportedTypes[K]> extends T ? {
75
+ type: K;
76
+ data: Supported<SupportedTypes[K]>;
77
+ } : never }>[keyof SupportedTypes] | (T extends Supported<SupportedTypes[keyof SupportedTypes]> ? never : null);
78
+ }
79
+ declare const primitiveRefinery: Refinery<{
80
+ number: (input: unknown) => input is number;
81
+ string: (input: unknown) => input is string;
82
+ boolean: (input: unknown) => input is boolean;
83
+ null: (input: unknown) => input is null;
84
+ }>;
85
+ declare function isPlainObject(input: unknown): input is Json.Tree.Object;
86
+ declare const jsonTreeRefinery: Refinery<{
87
+ object: (input: unknown) => input is Json.Tree.Object;
88
+ array: (input: unknown) => input is Json.Tree.Array;
89
+ }>;
90
+ declare 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
+ }>;
98
+ type JsonType = keyof typeof jsonRefinery.supported;
99
+ declare const discoverType: (input: unknown) => JsonType | `Map` | `Set` | `undefined` | (string & {});
100
+
101
+ //#endregion
102
+ //#region src/introspection/differ.d.ts
103
+ declare function diffNumber(a: number, b: number): Delta;
104
+ declare function diffString(a: string, b: string): Delta;
105
+ declare function diffBoolean(a: boolean, b: boolean): Delta;
106
+ declare function diffObject(a: Json.Tree.Object, b: Json.Tree.Object, recurse: Diff<unknown>): Delta;
107
+ declare function diffArray(a: Json.Tree.Array, b: Json.Tree.Array, recurse: Diff<unknown>): Delta;
108
+ type Delta = {
109
+ summary: string;
110
+ added?: [path: string, addedStringifiedValue: string][];
111
+ removed?: [path: string, removedStringifiedValue: string][];
112
+ changed?: [path: string, delta: Delta][];
113
+ };
114
+ type Diff<T> = (a: T, b: T) => Delta;
115
+ type DiffTree<T> = (a: T, b: T, recurse: Differ<any, any>[`diff`]) => Delta;
116
+ declare class Differ<Leaf extends Record<string, any>, Tree extends Record<string, any>> {
117
+ leafRefinery: Refinery<Leaf>;
118
+ treeRefinery: Refinery<Tree>;
119
+ leafDiffers: { [KL in keyof Leaf]: Diff<Supported<Leaf[KL]>> };
120
+ treeDiffers: { [KT in keyof Tree]: DiffTree<Supported<Tree[KT]>> };
121
+ constructor(leafRefinery: Refinery<Leaf>, treeRefinery: Refinery<Tree>, diffFunctions: { [KT in keyof Tree]: DiffTree<Supported<Tree[KT]>> } & { [KL in keyof Leaf]: Diff<Supported<Leaf[KL]>> });
122
+ diff(a: unknown, b: unknown): Delta;
123
+ }
124
+ declare const prettyJson: Differ<{
125
+ number: (input: unknown) => input is number;
126
+ string: (input: unknown) => input is string;
127
+ boolean: (input: unknown) => input is boolean;
128
+ null: (input: unknown) => input is null;
129
+ }, {
130
+ object: (input: unknown) => input is Json.Tree.Object;
131
+ array: (input: unknown) => input is Json.Tree.Array;
132
+ }>;
133
+
134
+ //#endregion
135
+ //#region src/introspection/sprawl.d.ts
136
+ type InspectionResult = Partial<{
137
+ pathComplete: true;
138
+ jobComplete: true;
139
+ }>;
140
+ type InspectNode = (path: string[], node: unknown) => InspectionResult | void;
141
+ declare const sprawl: (tree: Array<unknown> | object, inspector: InspectNode) => void;
142
+
143
+ //#endregion
144
+ //#region src/introspection/index.d.ts
145
+ type FamilyNode<Token extends ReadableToken<unknown>> = {
146
+ key: string;
147
+ familyMembers: Map<string, Token>;
148
+ };
149
+ type WritableTokenIndex<Token extends ReadableToken<unknown>> = Map<string, FamilyNode<Token> | Token>;
150
+
151
+ //#endregion
152
+ export { Auditor, ClassSignature, Differ, FamilyNode, InspectNode, InspectionResult, IntrospectionStates, JsonType, ListResourcesParam, RefinementStrategy, RefinementSupport, Refinery, Supported, WritableTokenIndex, attachIntrospectionStates, diffArray, diffBoolean, diffNumber, diffObject, diffString, discoverType, isPlainObject, jsonRefinery, jsonTreeRefinery, prettyJson, primitiveRefinery, sprawl };
153
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":["store: Store","store: Store","store: Store","store: Internal.Store","param: ListResourcesParam","supported: SupportedTypes","input: T","primitiveRefinery: Refinery<{\n\tnumber: (input: unknown) => input is number\n\tstring: (input: unknown) => input is string\n\tboolean: (input: unknown) => input is boolean\n\tnull: (input: unknown) => input is null\n}>","input: unknown","jsonTreeRefinery: Refinery<{\n\tobject: (input: unknown) => input is Json.Tree.Object\n\tarray: (input: unknown) => input is Json.Tree.Array\n}>","jsonRefinery: Refinery<{\n\tobject: (input: unknown) => input is Json.Tree.Object\n\tarray: (input: unknown) => input is Json.Tree.Array\n\tnumber: (input: unknown) => input is number\n\tstring: (input: unknown) => input is string\n\tboolean: (input: unknown) => input is boolean\n\tnull: (input: unknown) => input is null\n}>","a: number","b: number","a: string","b: string","a: boolean","b: boolean","a: Json.Tree.Object","b: Json.Tree.Object","recurse: Diff<unknown>","a: Json.Tree.Array","b: Json.Tree.Array","a: T","b: T","recurse: Differ<any, any>[`diff`]","leafRefinery: Refinery<Leaf>","treeRefinery: Refinery<Tree>","diffFunctions: {\n\t\t\t[KT in keyof Tree]: DiffTree<Supported<Tree[KT]>>\n\t\t} & { [KL in keyof Leaf]: Diff<Supported<Leaf[KL]>> }","a: unknown","b: unknown","prettyJson: Differ<\n\t{\n\t\tnumber: (input: unknown) => input is number\n\t\tstring: (input: unknown) => input is string\n\t\tboolean: (input: unknown) => input is boolean\n\t\tnull: (input: unknown) => input is null\n\t},\n\t{\n\t\tobject: (input: unknown) => input is Json.Tree.Object\n\t\tarray: (input: unknown) => input is Json.Tree.Array\n\t}\n>","input: unknown","path: string[]","node: unknown","tree: Array<unknown> | object","inspector: InspectNode"],"sources":["../../src/introspection/attach-atom-index.ts","../../src/introspection/attach-selector-index.ts","../../src/introspection/attach-introspection-states.ts","../../src/introspection/auditor.ts","../../src/introspection/refinery.ts","../../src/introspection/differ.ts","../../src/introspection/sprawl.ts","../../src/introspection/index.ts"],"sourcesContent":null,"mappings":"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"}
@@ -0,0 +1,520 @@
1
+ import * as Internal from "atom.io/internal";
2
+ import { Subject, createReadonlySelectorFamily, createRegularAtom, createRegularAtomFamily, createSelectorFamily, createStandaloneSelector, deposit, isReservedIntrospectionKey } from "atom.io/internal";
3
+ import { getState } from "atom.io";
4
+
5
+ //#region src/introspection/attach-atom-index.ts
6
+ const attachAtomIndex = (store) => {
7
+ const atomTokenIndexState__INTERNAL = createRegularAtom(store, {
8
+ key: `🔍 Atom Token Index (Internal)`,
9
+ default: () => {
10
+ const base = new Map();
11
+ for (const [key, val] of store.atoms) {
12
+ if (isReservedIntrospectionKey(key)) continue;
13
+ const token = deposit(val);
14
+ if (val.family) {
15
+ let familyNode = base.get(val.family.key);
16
+ if (!familyNode || !(`familyMembers` in familyNode)) {
17
+ familyNode = {
18
+ key: val.family.key,
19
+ familyMembers: new Map()
20
+ };
21
+ base.set(val.family.key, familyNode);
22
+ }
23
+ familyNode.familyMembers.set(val.family.subKey, token);
24
+ } else base.set(key, token);
25
+ }
26
+ return base;
27
+ },
28
+ effects: [({ setSelf }) => {
29
+ store.on.atomCreation.subscribe(`introspection`, (atomToken) => {
30
+ if (isReservedIntrospectionKey(atomToken.key)) return;
31
+ setSelf((self) => {
32
+ if (atomToken.family) {
33
+ const { key: familyKey, subKey } = atomToken.family;
34
+ let familyNode = self.get(familyKey);
35
+ if (familyNode === void 0 || !(`familyMembers` in familyNode)) {
36
+ familyNode = {
37
+ key: familyKey,
38
+ familyMembers: new Map()
39
+ };
40
+ self.set(familyKey, familyNode);
41
+ }
42
+ familyNode.familyMembers.set(subKey, atomToken);
43
+ } else self.set(atomToken.key, atomToken);
44
+ return self;
45
+ });
46
+ });
47
+ store.on.atomDisposal.subscribe(`introspection`, (atomToken) => {
48
+ setSelf((self) => {
49
+ if (atomToken.family) {
50
+ const { key: familyKey, subKey } = atomToken.family;
51
+ const familyNode = self.get(familyKey);
52
+ if (familyNode && `familyMembers` in familyNode) {
53
+ familyNode.familyMembers.delete(subKey);
54
+ if (familyNode.familyMembers.size === 0) self.delete(familyKey);
55
+ }
56
+ } else self.delete(atomToken.key);
57
+ return self;
58
+ });
59
+ });
60
+ }]
61
+ }, void 0);
62
+ return createStandaloneSelector(store, {
63
+ key: `🔍 Atom Token Index`,
64
+ get: ({ get }) => get(atomTokenIndexState__INTERNAL)
65
+ });
66
+ };
67
+
68
+ //#endregion
69
+ //#region src/introspection/attach-selector-index.ts
70
+ const attachSelectorIndex = (store) => {
71
+ const readonlySelectorTokenIndexState__INTERNAL = createRegularAtom(store, {
72
+ key: `🔍 Selector Token Index (Internal)`,
73
+ default: () => {
74
+ const base = new Map();
75
+ for (const map of [store.readonlySelectors, store.selectors]) for (const [key, val] of map) {
76
+ if (isReservedIntrospectionKey(key)) continue;
77
+ const token = deposit(val);
78
+ if (val.family) {
79
+ let familyNode = base.get(val.family.key);
80
+ if (!familyNode || !(`familyMembers` in familyNode)) {
81
+ familyNode = {
82
+ key: val.family.key,
83
+ familyMembers: new Map()
84
+ };
85
+ base.set(val.family.key, familyNode);
86
+ }
87
+ familyNode.familyMembers.set(val.family.subKey, token);
88
+ } else base.set(key, token);
89
+ }
90
+ return base;
91
+ },
92
+ effects: [({ setSelf }) => {
93
+ store.on.selectorCreation.subscribe(`introspection`, (selectorToken) => {
94
+ if (isReservedIntrospectionKey(selectorToken.key)) return;
95
+ setSelf((self) => {
96
+ if (selectorToken.family) {
97
+ const { key: familyKey, subKey } = selectorToken.family;
98
+ let familyNode = self.get(familyKey);
99
+ if (familyNode === void 0 || !(`familyMembers` in familyNode)) {
100
+ familyNode = {
101
+ key: familyKey,
102
+ familyMembers: new Map()
103
+ };
104
+ self.set(familyKey, familyNode);
105
+ }
106
+ familyNode.familyMembers.set(subKey, selectorToken);
107
+ } else self.set(selectorToken.key, selectorToken);
108
+ return self;
109
+ });
110
+ });
111
+ store.on.selectorDisposal.subscribe(`introspection`, (selectorToken) => {
112
+ setSelf((self) => {
113
+ if (selectorToken.family) {
114
+ const { key: familyKey, subKey } = selectorToken.family;
115
+ const familyNode = self.get(familyKey);
116
+ if (familyNode && `familyMembers` in familyNode) {
117
+ familyNode.familyMembers.delete(subKey);
118
+ if (familyNode.familyMembers.size === 0) self.delete(familyKey);
119
+ }
120
+ } else self.delete(selectorToken.key);
121
+ return self;
122
+ });
123
+ });
124
+ }]
125
+ }, void 0);
126
+ return createStandaloneSelector(store, {
127
+ key: `🔍 Selector Token Index`,
128
+ get: ({ get }) => get(readonlySelectorTokenIndexState__INTERNAL)
129
+ });
130
+ };
131
+
132
+ //#endregion
133
+ //#region src/introspection/attach-timeline-family.ts
134
+ const attachTimelineFamily = (store) => {
135
+ const findTimelineLogState__INTERNAL = createRegularAtomFamily(store, {
136
+ key: `🔍 Timeline Update Log (Internal)`,
137
+ default: (key) => store.timelines.get(key) ?? {
138
+ type: `timeline`,
139
+ key: ``,
140
+ at: 0,
141
+ timeTraveling: null,
142
+ history: [],
143
+ selectorTime: null,
144
+ transactionKey: null,
145
+ install: () => {},
146
+ subject: new Subject(),
147
+ subscriptions: new Map()
148
+ },
149
+ effects: (key) => [({ setSelf }) => {
150
+ const tl = store.timelines.get(key);
151
+ tl?.subject.subscribe(`introspection`, (_) => {
152
+ setSelf({ ...tl });
153
+ });
154
+ }]
155
+ });
156
+ const findTimelineLogState = createSelectorFamily(store, {
157
+ key: `🔍 Timeline Update Log`,
158
+ get: (key) => ({ get }) => get(findTimelineLogState__INTERNAL, key)
159
+ });
160
+ return findTimelineLogState;
161
+ };
162
+
163
+ //#endregion
164
+ //#region src/introspection/attach-timeline-index.ts
165
+ const attachTimelineIndex = (store) => {
166
+ const timelineTokenIndexState__INTERNAL = createRegularAtom(store, {
167
+ key: `🔍 Timeline Token Index (Internal)`,
168
+ default: () => [...store.timelines].map(([key]) => {
169
+ return {
170
+ key,
171
+ type: `timeline`
172
+ };
173
+ }),
174
+ effects: [({ setSelf }) => {
175
+ store.on.timelineCreation.subscribe(`introspection`, (timelineToken) => {
176
+ setSelf((state) => [...state, timelineToken]);
177
+ });
178
+ }]
179
+ }, void 0);
180
+ const timelineTokenIndex = createStandaloneSelector(store, {
181
+ key: `🔍 Timeline Token Index`,
182
+ get: ({ get }) => get(timelineTokenIndexState__INTERNAL)
183
+ });
184
+ return timelineTokenIndex;
185
+ };
186
+
187
+ //#endregion
188
+ //#region src/introspection/attach-transaction-index.ts
189
+ const attachTransactionIndex = (store) => {
190
+ const transactionTokenIndexState__INTERNAL = createRegularAtom(store, {
191
+ key: `🔍 Transaction Token Index (Internal)`,
192
+ default: () => [...store.transactions].map(([key]) => {
193
+ return {
194
+ key,
195
+ type: `transaction`
196
+ };
197
+ }),
198
+ effects: [({ setSelf }) => {
199
+ store.on.transactionCreation.subscribe(`introspection`, (transactionToken) => {
200
+ setSelf((state) => [...state, transactionToken]);
201
+ });
202
+ }]
203
+ }, void 0);
204
+ const transactionTokenIndex = createStandaloneSelector(store, {
205
+ key: `🔍 Transaction Token Index`,
206
+ get: ({ get }) => get(transactionTokenIndexState__INTERNAL)
207
+ });
208
+ return transactionTokenIndex;
209
+ };
210
+
211
+ //#endregion
212
+ //#region src/introspection/attach-transaction-logs.ts
213
+ const attachTransactionLogs = (store) => {
214
+ const transactionUpdateLogAtoms = createRegularAtomFamily(store, {
215
+ key: `🔍 Transaction Update Log (Internal)`,
216
+ default: () => [],
217
+ effects: (key) => [({ setSelf }) => {
218
+ const tx = store.transactions.get(key);
219
+ tx?.subject.subscribe(`introspection`, (transactionUpdate) => {
220
+ if (transactionUpdate.key === key) setSelf((state) => [...state, transactionUpdate]);
221
+ });
222
+ }]
223
+ });
224
+ const findTransactionUpdateLogState = createSelectorFamily(store, {
225
+ key: `🔍 Transaction Update Log`,
226
+ get: (key) => ({ get }) => get(transactionUpdateLogAtoms, key)
227
+ });
228
+ return findTransactionUpdateLogState;
229
+ };
230
+
231
+ //#endregion
232
+ //#region src/introspection/refinery.ts
233
+ var Refinery = class {
234
+ supported;
235
+ constructor(supported) {
236
+ this.supported = supported;
237
+ }
238
+ refine(input) {
239
+ for (const [key, refiner] of Object.entries(this.supported)) try {
240
+ if (refiner(input) === true && refiner !== Boolean) return {
241
+ type: key,
242
+ data: input
243
+ };
244
+ } catch (_) {
245
+ try {
246
+ if (input instanceof refiner) return {
247
+ type: key,
248
+ data: input
249
+ };
250
+ } catch (__) {}
251
+ }
252
+ return null;
253
+ }
254
+ };
255
+ const primitiveRefinery = new Refinery({
256
+ number: (input) => typeof input === `number`,
257
+ string: (input) => typeof input === `string`,
258
+ boolean: (input) => typeof input === `boolean`,
259
+ null: (input) => input === null
260
+ });
261
+ function isPlainObject(input) {
262
+ if (!input) return false;
263
+ const prototype = Object.getPrototypeOf(input);
264
+ return prototype === Object.prototype;
265
+ }
266
+ const jsonTreeRefinery = new Refinery({
267
+ object: isPlainObject,
268
+ array: (input) => Array.isArray(input)
269
+ });
270
+ const jsonRefinery = new Refinery({
271
+ ...primitiveRefinery.supported,
272
+ ...jsonTreeRefinery.supported
273
+ });
274
+ const discoverType = (input) => {
275
+ if (input === void 0) return `undefined`;
276
+ const refined = jsonRefinery.refine(input);
277
+ if (refined) return refined.type;
278
+ return Object.getPrototypeOf(input).constructor.name;
279
+ };
280
+
281
+ //#endregion
282
+ //#region src/introspection/attach-type-selectors.ts
283
+ const attachTypeSelectors = (store) => {
284
+ const typeSelectors = createReadonlySelectorFamily(store, {
285
+ key: `🔍 State Type`,
286
+ get: (key) => ({ get }) => {
287
+ let state;
288
+ try {
289
+ const token = store.atoms.get(key) ?? store.selectors.get(key) ?? store.readonlySelectors.get(key);
290
+ if (token === void 0) throw new Error(`Could not find state with key "${key}"`);
291
+ state = get(token);
292
+ } catch (thrown) {
293
+ return `error`;
294
+ }
295
+ const typeOfState = discoverType(state);
296
+ return typeOfState;
297
+ }
298
+ });
299
+ return typeSelectors;
300
+ };
301
+
302
+ //#endregion
303
+ //#region src/introspection/attach-introspection-states.ts
304
+ const attachIntrospectionStates = (store) => {
305
+ return {
306
+ atomIndex: attachAtomIndex(store),
307
+ selectorIndex: attachSelectorIndex(store),
308
+ transactionIndex: attachTransactionIndex(store),
309
+ transactionLogSelectors: attachTransactionLogs(store),
310
+ timelineIndex: attachTimelineIndex(store),
311
+ timelineSelectors: attachTimelineFamily(store),
312
+ typeSelectors: attachTypeSelectors(store)
313
+ };
314
+ };
315
+
316
+ //#endregion
317
+ //#region src/introspection/auditor.ts
318
+ /**
319
+ * Auditor is a tool for identifying lingering resources in your store that may result in memory leaks.
320
+ * @experimental
321
+ */
322
+ var Auditor = class Auditor {
323
+ store;
324
+ auditorCreatedAt = performance.now();
325
+ statesCreatedAt = new Map();
326
+ atomIndex;
327
+ selectorIndex;
328
+ disposed = false;
329
+ unsubscribeFromAtomCreation;
330
+ unsubscribeFromAtomDisposal;
331
+ unsubscribeFromSelectorCreation;
332
+ unsubscribeFromSelectorDisposal;
333
+ /**
334
+ * @param {Store} store - The store to audit.
335
+ */
336
+ constructor(store = Internal.IMPLICIT.STORE) {
337
+ this.store = store;
338
+ this.atomIndex = attachAtomIndex(this.store);
339
+ this.selectorIndex = attachSelectorIndex(this.store);
340
+ this.unsubscribeFromAtomCreation = this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`, ({ key }) => {
341
+ this.statesCreatedAt.set(key, performance.now() - this.auditorCreatedAt);
342
+ });
343
+ this.unsubscribeFromAtomDisposal = this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`, ({ key }) => {
344
+ this.statesCreatedAt.delete(key);
345
+ });
346
+ this.unsubscribeFromSelectorCreation = this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`, ({ key }) => {
347
+ this.statesCreatedAt.set(key, performance.now() - this.auditorCreatedAt);
348
+ });
349
+ this.unsubscribeFromSelectorDisposal = this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`, ({ key }) => {
350
+ this.statesCreatedAt.delete(key);
351
+ });
352
+ }
353
+ static DEFAULT_LIST_RESOURCES_PARAM = {
354
+ atomFamilies: true,
355
+ selectorFamilies: true
356
+ };
357
+ /**
358
+ * Lists all resources in the store, along with their creation time.
359
+ *
360
+ * @param {ListResourcesParam} [param] - Optional parameters for filtering the list of resources.
361
+ * @returns {readonly [ReadableToken<unknown>, number]}[] - An array of tuples, where each tuple contains a state token belonging to a family in the store and that state's creation time.
362
+ */
363
+ listResources(param = Auditor.DEFAULT_LIST_RESOURCES_PARAM) {
364
+ if (this.disposed) throw new Error(`This Auditor has been disposed`);
365
+ const atoms = getState(this.atomIndex);
366
+ const selectors = getState(this.selectorIndex);
367
+ const atomFamilyNodes = [...atoms.values()].filter((node) => `familyMembers` in node);
368
+ const selectorFamilyNodes = [...selectors.values()].filter((node) => `familyMembers` in node);
369
+ const currentTime = performance.now();
370
+ const resources = [];
371
+ if (param.atomFamilies) for (const familyNode of atomFamilyNodes) {
372
+ const tokens = familyNode.familyMembers.values();
373
+ for (const token of tokens) {
374
+ const storedTime = this.statesCreatedAt.get(token.key);
375
+ const creationTime = storedTime ?? this.auditorCreatedAt;
376
+ const age = currentTime - creationTime;
377
+ resources.push([token, age]);
378
+ }
379
+ }
380
+ if (param.selectorFamilies) for (const familyNode of selectorFamilyNodes) {
381
+ const tokens = familyNode.familyMembers.values();
382
+ for (const token of tokens) {
383
+ const storedTime = this.statesCreatedAt.get(token.key);
384
+ const creationTime = storedTime ?? this.auditorCreatedAt;
385
+ const age = currentTime - creationTime;
386
+ resources.push([token, age]);
387
+ }
388
+ }
389
+ return resources;
390
+ }
391
+ [Symbol.dispose]() {
392
+ this.unsubscribeFromAtomCreation();
393
+ this.unsubscribeFromAtomDisposal();
394
+ this.unsubscribeFromSelectorCreation();
395
+ this.unsubscribeFromSelectorDisposal();
396
+ this.disposed = true;
397
+ }
398
+ };
399
+
400
+ //#endregion
401
+ //#region src/introspection/sprawl.ts
402
+ const sprawl = (tree, inspector) => {
403
+ const walk = (path, node) => {
404
+ const inspect = (p, n) => {
405
+ const result$1 = inspector(p, n);
406
+ if (result$1) return result$1;
407
+ return null;
408
+ };
409
+ const result = inspect(path, node);
410
+ if (result?.jobComplete ?? result?.pathComplete) return result;
411
+ const childEntries = Array.isArray(node) ? node.map((v, i) => [i, v]) : isPlainObject(node) ? Object.entries(node) : [];
412
+ for (const [k, v] of childEntries) {
413
+ const subResult = walk([...path, k], v);
414
+ if (subResult?.jobComplete) return subResult;
415
+ }
416
+ return {};
417
+ };
418
+ walk([], tree);
419
+ };
420
+
421
+ //#endregion
422
+ //#region src/introspection/differ.ts
423
+ function diffNumber(a, b) {
424
+ const sign = a < b ? `+` : `-`;
425
+ return { summary: `${sign}${Math.abs(a - b)} (${a} → ${b})` };
426
+ }
427
+ function diffString(a, b) {
428
+ const sign = a.length < b.length ? `+` : `-`;
429
+ return { summary: `${sign}${Math.abs(a.length - b.length)} ("${a}" → "${b}")` };
430
+ }
431
+ function diffBoolean(a, b) {
432
+ return { summary: `${a} → ${b}` };
433
+ }
434
+ function diffObject(a, b, recurse) {
435
+ let summary = ``;
436
+ const added = [];
437
+ const removed = [];
438
+ const changed = [];
439
+ sprawl(a, (path, nodeA) => {
440
+ let key;
441
+ for (key of path) {
442
+ const nodeB = b[key];
443
+ if (nodeB === void 0) removed.push([key, JSON.stringify(nodeA)]);
444
+ else {
445
+ const delta = recurse(nodeA, nodeB);
446
+ if (delta.summary !== `No Change`) changed.push([key, delta]);
447
+ }
448
+ }
449
+ });
450
+ sprawl(b, (path, nodeB) => {
451
+ let key;
452
+ for (key of path) {
453
+ const nodeA = a[key];
454
+ if (nodeA === void 0) added.push([key, JSON.stringify(nodeB)]);
455
+ }
456
+ });
457
+ summary = `~${changed.length} +${added.length} -${removed.length}`;
458
+ return {
459
+ summary,
460
+ added,
461
+ removed,
462
+ changed
463
+ };
464
+ }
465
+ function diffArray(a, b, recurse) {
466
+ return diffObject(a, b, recurse);
467
+ }
468
+ var Differ = class {
469
+ leafRefinery;
470
+ treeRefinery;
471
+ leafDiffers;
472
+ treeDiffers;
473
+ constructor(leafRefinery, treeRefinery, diffFunctions) {
474
+ this.leafRefinery = leafRefinery;
475
+ this.treeRefinery = treeRefinery;
476
+ this.leafDiffers = {};
477
+ this.treeDiffers = {};
478
+ for (const key of Object.keys(leafRefinery.supported)) {
479
+ const diffFunction = diffFunctions[key];
480
+ this.leafDiffers[key] = diffFunction;
481
+ }
482
+ for (const key of Object.keys(treeRefinery.supported)) {
483
+ const diffFunction = diffFunctions[key];
484
+ this.treeDiffers[key] = diffFunction;
485
+ }
486
+ }
487
+ diff(a, b) {
488
+ if (a === b) return { summary: `No Change` };
489
+ const aRefined = this.leafRefinery.refine(a) ?? this.treeRefinery.refine(a);
490
+ const bRefined = this.leafRefinery.refine(b) ?? this.treeRefinery.refine(b);
491
+ if (aRefined !== null && bRefined !== null) {
492
+ if (aRefined.type === bRefined.type) {
493
+ if (aRefined.type in this.leafDiffers) {
494
+ const delta = this.leafDiffers[aRefined.type](aRefined.data, bRefined.data);
495
+ return delta;
496
+ }
497
+ if (aRefined.type in this.treeDiffers) {
498
+ const delta = this.treeDiffers[aRefined.type](aRefined.data, bRefined.data, (x, y) => this.diff(x, y));
499
+ return delta;
500
+ }
501
+ }
502
+ }
503
+ const typeA = discoverType(a);
504
+ const typeB = discoverType(b);
505
+ if (typeA === typeB) return { summary: `${typeA} → ${typeB}` };
506
+ return { summary: `Type change: ${typeA} → ${typeB}` };
507
+ }
508
+ };
509
+ const prettyJson = new Differ(primitiveRefinery, jsonTreeRefinery, {
510
+ number: diffNumber,
511
+ string: diffString,
512
+ boolean: diffBoolean,
513
+ null: () => ({ summary: `No Change` }),
514
+ object: diffObject,
515
+ array: diffArray
516
+ });
517
+
518
+ //#endregion
519
+ export { Auditor, Differ, Refinery, attachIntrospectionStates, diffArray, diffBoolean, diffNumber, diffObject, diffString, discoverType, isPlainObject, jsonRefinery, jsonTreeRefinery, prettyJson, primitiveRefinery, sprawl };
520
+ //# sourceMappingURL=index.js.map