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.
- package/dist/chunk-Cl8Af3a2.js +11 -0
- package/dist/data/index.d.ts +28 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +66 -0
- package/dist/data/index.js.map +1 -0
- package/dist/devtools-CAg2k57t.js +0 -0
- package/dist/devtools-Jyn42mZm.css +311 -0
- package/dist/devtools-Jyn42mZm.css.map +1 -0
- package/dist/eslint-plugin/index.d.ts +36 -0
- package/dist/eslint-plugin/index.d.ts.map +1 -0
- package/dist/eslint-plugin/index.js +196 -0
- package/dist/eslint-plugin/index.js.map +1 -0
- package/{internal/dist → dist/internal}/index.d.ts +497 -377
- package/dist/internal/index.d.ts.map +1 -0
- package/dist/internal/index.js +3213 -0
- package/dist/internal/index.js.map +1 -0
- package/dist/introspection/index.d.ts +153 -0
- package/dist/introspection/index.d.ts.map +1 -0
- package/dist/introspection/index.js +520 -0
- package/dist/introspection/index.js.map +1 -0
- package/{json/dist → dist/json}/index.d.ts +38 -32
- package/dist/json/index.d.ts.map +1 -0
- package/dist/json/index.js +75 -0
- package/dist/json/index.js.map +1 -0
- package/dist/main/index.d.ts +691 -0
- package/dist/main/index.d.ts.map +1 -0
- package/dist/main/index.js +237 -0
- package/dist/main/index.js.map +1 -0
- package/{react/dist → dist/react}/index.d.ts +22 -11
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +91 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react-devtools/index.d.ts +194 -0
- package/dist/react-devtools/index.d.ts.map +1 -0
- package/dist/react-devtools/index.js +1274 -0
- package/dist/react-devtools/index.js.map +1 -0
- package/dist/realtime/index.d.ts +55 -0
- package/dist/realtime/index.d.ts.map +1 -0
- package/dist/realtime/index.js +113 -0
- package/dist/realtime/index.js.map +1 -0
- package/dist/realtime-client/index.d.ts +81 -0
- package/dist/realtime-client/index.d.ts.map +1 -0
- package/dist/realtime-client/index.js +376 -0
- package/dist/realtime-client/index.js.map +1 -0
- package/dist/realtime-react/index.d.ts +68 -0
- package/dist/realtime-react/index.d.ts.map +1 -0
- package/dist/realtime-react/index.js +182 -0
- package/dist/realtime-react/index.js.map +1 -0
- package/dist/realtime-server/index.d.ts +190 -0
- package/dist/realtime-server/index.d.ts.map +1 -0
- package/dist/realtime-server/index.js +795 -0
- package/dist/realtime-server/index.js.map +1 -0
- package/dist/realtime-testing/index.d.ts +60 -0
- package/dist/realtime-testing/index.d.ts.map +1 -0
- package/dist/realtime-testing/index.js +181 -0
- package/dist/realtime-testing/index.js.map +1 -0
- package/dist/transceivers/set-rtx/index.d.ts +44 -0
- package/dist/transceivers/set-rtx/index.d.ts.map +1 -0
- package/dist/transceivers/set-rtx/index.js +204 -0
- package/dist/transceivers/set-rtx/index.js.map +1 -0
- package/dist/web/index.d.ts +15 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +16 -0
- package/dist/web/index.js.map +1 -0
- package/package.json +70 -122
- package/{data/src → src/data}/struct.ts +1 -0
- package/{eslint-plugin/src → src/eslint-plugin}/index.ts +3 -1
- package/{eslint-plugin/src → src/eslint-plugin}/rules/explicit-state-types.ts +6 -1
- package/{eslint-plugin/src → src/eslint-plugin}/rules/synchronous-selector-dependencies.ts +14 -1
- package/{internal/src → src/internal}/families/create-writable-selector-family.ts +4 -2
- package/{internal/src → src/internal}/families/index.ts +2 -0
- package/{internal/src → src/internal}/index.ts +1 -0
- package/{internal/src → src/internal}/join/find-relations-in-store.ts +12 -0
- package/{internal/src → src/internal}/junction.ts +3 -2
- package/{internal/src → src/internal}/lazy-map.ts +1 -1
- package/{internal/src → src/internal}/mutable/tracker-family.ts +2 -5
- package/{internal/src → src/internal}/mutable/tracker.ts +15 -9
- package/{internal/src → src/internal}/selector/register-selector.ts +2 -1
- package/{internal/src → src/internal}/store/store.ts +68 -53
- package/{internal/src → src/internal}/subject.ts +1 -1
- package/{internal/src → src/internal}/transaction/build-transaction.ts +2 -1
- package/{introspection/src → src/introspection}/auditor.ts +1 -1
- package/{introspection/src → src/introspection}/differ.ts +12 -1
- package/{introspection/src → src/introspection}/refinery.ts +18 -3
- package/{json/src → src/json}/entries.ts +1 -1
- package/{json/src → src/json}/select-json-family.ts +1 -1
- package/src/{realm.ts → main/realm.ts} +1 -1
- package/src/{silo.ts → main/silo.ts} +1 -1
- package/src/{transaction.ts → main/transaction.ts} +1 -1
- package/{react/src → src/react}/store-context.tsx +3 -1
- package/{react/src → src/react}/use-i.ts +3 -5
- package/{react-devtools/src → src/react-devtools}/AtomIODevtools.tsx +1 -1
- package/{react-devtools/src → src/react-devtools}/Button.tsx +3 -1
- package/{react-devtools/src → src/react-devtools}/Updates.tsx +5 -1
- package/src/react-devtools/devtools.css +308 -0
- package/{react-devtools/src → src/react-devtools}/json-editor/developer-interface.tsx +2 -2
- package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/cast-json.ts +2 -2
- package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/object-properties.ts +3 -3
- package/{react-devtools/src → src/react-devtools}/json-editor/json-editor-internal.tsx +4 -2
- package/{react-devtools/src → src/react-devtools}/store.ts +3 -2
- package/{realtime/src → src/realtime}/shared-room-store.ts +28 -5
- package/src/realtime-client/realtime-client-stores/client-main-store.ts +23 -0
- package/src/realtime-client/realtime-client-stores/client-sync-store.ts +15 -0
- package/{realtime-react/src → src/realtime-react}/index.ts +1 -0
- package/{realtime-react/src → src/realtime-react}/on-mount.ts +1 -1
- package/{realtime-react/src → src/realtime-react}/realtime-context.tsx +5 -4
- package/{realtime-react/src → src/realtime-react}/use-single-effect.ts +3 -2
- package/{realtime-server/src → src/realtime-server}/ipc-sockets/child-socket.ts +1 -1
- package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-room-external-actions.ts +20 -19
- package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-room-external-store.ts +12 -7
- package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-sync-store.ts +13 -4
- package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-user-store.ts +26 -8
- package/{transceivers/set-rtx/src → src/transceivers/set-rtx}/set-rtx.ts +2 -2
- package/data/dist/index.d.ts +0 -31
- package/data/dist/index.js +0 -69
- package/data/package.json +0 -13
- package/dist/chunk-2XDFCXGB.js +0 -109
- package/dist/chunk-35NB2XZU.js +0 -4501
- package/dist/chunk-4LWKCEW3.js +0 -14
- package/dist/chunk-EF4S7H42.js +0 -526
- package/dist/chunk-LTLDKXDN.js +0 -153
- package/dist/chunk-MENOYVPP.js +0 -83
- package/dist/chunk-RGUNRT72.js +0 -634
- package/dist/chunk-TS76LQVD.js +0 -1035
- package/dist/chunk-XWL6SNVU.js +0 -7
- package/dist/index.d.ts +0 -701
- package/dist/index.js +0 -2
- package/eslint-plugin/dist/index.d.ts +0 -64
- package/eslint-plugin/dist/index.js +0 -238
- package/eslint-plugin/package.json +0 -13
- package/internal/dist/index.js +0 -2
- package/internal/package.json +0 -13
- package/introspection/dist/index.d.ts +0 -149
- package/introspection/dist/index.js +0 -3
- package/introspection/package.json +0 -13
- package/json/dist/index.js +0 -2
- package/json/package.json +0 -13
- package/react/dist/index.js +0 -3
- package/react/package.json +0 -13
- package/react-devtools/dist/index.css +0 -309
- package/react-devtools/dist/index.d.ts +0 -160
- package/react-devtools/dist/index.js +0 -1481
- package/react-devtools/package.json +0 -13
- package/react-devtools/src/devtools.scss +0 -309
- package/realtime/dist/index.d.ts +0 -51
- package/realtime/dist/index.js +0 -3
- package/realtime/package.json +0 -13
- package/realtime-client/dist/index.d.ts +0 -41
- package/realtime-client/dist/index.js +0 -4
- package/realtime-client/package.json +0 -13
- package/realtime-client/src/realtime-client-stores/client-main-store.ts +0 -20
- package/realtime-client/src/realtime-client-stores/client-sync-store.ts +0 -15
- package/realtime-react/dist/index.d.ts +0 -39
- package/realtime-react/dist/index.js +0 -6
- package/realtime-react/package.json +0 -13
- package/realtime-server/dist/index.d.ts +0 -139
- package/realtime-server/dist/index.js +0 -4
- package/realtime-server/package.json +0 -13
- package/realtime-testing/dist/index.d.ts +0 -59
- package/realtime-testing/dist/index.js +0 -198
- package/realtime-testing/package.json +0 -13
- package/transceivers/set-rtx/dist/index.d.ts +0 -41
- package/transceivers/set-rtx/dist/index.js +0 -2
- package/transceivers/set-rtx/package.json +0 -13
- package/web/dist/index.d.ts +0 -9
- package/web/dist/index.js +0 -2
- package/web/package.json +0 -13
- /package/{data/src → src/data}/dict.ts +0 -0
- /package/{data/src → src/data}/index.ts +0 -0
- /package/{data/src → src/data}/struct-family.ts +0 -0
- /package/{eslint-plugin/src → src/eslint-plugin}/rules/index.ts +0 -0
- /package/{eslint-plugin/src → src/eslint-plugin}/walk.ts +0 -0
- /package/{internal/src → src/internal}/arbitrary.ts +0 -0
- /package/{internal/src → src/internal}/atom/create-regular-atom.ts +0 -0
- /package/{internal/src → src/internal}/atom/create-standalone-atom.ts +0 -0
- /package/{internal/src → src/internal}/atom/dispose-atom.ts +0 -0
- /package/{internal/src → src/internal}/atom/index.ts +0 -0
- /package/{internal/src → src/internal}/atom/is-default.ts +0 -0
- /package/{internal/src → src/internal}/caching.ts +0 -0
- /package/{internal/src → src/internal}/capitalize.ts +0 -0
- /package/{internal/src → src/internal}/families/create-atom-family.ts +0 -0
- /package/{internal/src → src/internal}/families/create-readonly-selector-family.ts +0 -0
- /package/{internal/src → src/internal}/families/create-regular-atom-family.ts +0 -0
- /package/{internal/src → src/internal}/families/create-selector-family.ts +0 -0
- /package/{internal/src → src/internal}/families/dispose-from-store.ts +0 -0
- /package/{internal/src → src/internal}/families/find-in-store.ts +0 -0
- /package/{internal/src → src/internal}/families/get-family-of-token.ts +0 -0
- /package/{internal/src → src/internal}/families/init-family-member.ts +0 -0
- /package/{internal/src → src/internal}/families/seek-in-store.ts +0 -0
- /package/{internal/src → src/internal}/future.ts +0 -0
- /package/{internal/src → src/internal}/get-environment-data.ts +0 -0
- /package/{internal/src → src/internal}/get-state/get-from-store.ts +0 -0
- /package/{internal/src → src/internal}/get-state/index.ts +0 -0
- /package/{internal/src → src/internal}/get-state/read-or-compute-value.ts +0 -0
- /package/{internal/src → src/internal}/get-trace.ts +0 -0
- /package/{internal/src → src/internal}/ingest-updates/index.ts +0 -0
- /package/{internal/src → src/internal}/ingest-updates/ingest-atom-update.ts +0 -0
- /package/{internal/src → src/internal}/ingest-updates/ingest-creation-disposal.ts +0 -0
- /package/{internal/src → src/internal}/ingest-updates/ingest-selector-update.ts +0 -0
- /package/{internal/src → src/internal}/ingest-updates/ingest-transaction-update.ts +0 -0
- /package/{internal/src → src/internal}/install-into-store.ts +0 -0
- /package/{internal/src → src/internal}/join/edit-relations-in-store.ts +0 -0
- /package/{internal/src → src/internal}/join/get-internal-relations-from-store.ts +0 -0
- /package/{internal/src → src/internal}/join/get-join.ts +0 -0
- /package/{internal/src → src/internal}/join/index.ts +0 -0
- /package/{internal/src → src/internal}/join/join-internal.ts +0 -0
- /package/{internal/src → src/internal}/keys.ts +0 -0
- /package/{internal/src → src/internal}/lineage.ts +0 -0
- /package/{internal/src → src/internal}/molecule.ts +0 -0
- /package/{internal/src → src/internal}/mutable/create-mutable-atom-family.ts +0 -0
- /package/{internal/src → src/internal}/mutable/create-mutable-atom.ts +0 -0
- /package/{internal/src → src/internal}/mutable/get-json-family.ts +0 -0
- /package/{internal/src → src/internal}/mutable/get-json-token.ts +0 -0
- /package/{internal/src → src/internal}/mutable/get-update-family.ts +0 -0
- /package/{internal/src → src/internal}/mutable/get-update-token.ts +0 -0
- /package/{internal/src → src/internal}/mutable/index.ts +0 -0
- /package/{internal/src → src/internal}/mutable/transceiver.ts +0 -0
- /package/{internal/src → src/internal}/not-found-error.ts +0 -0
- /package/{internal/src → src/internal}/operation.ts +0 -0
- /package/{internal/src → src/internal}/pretty-print.ts +0 -0
- /package/{internal/src → src/internal}/reserved-keys.ts +0 -0
- /package/{internal/src → src/internal}/selector/create-readonly-selector.ts +0 -0
- /package/{internal/src → src/internal}/selector/create-standalone-selector.ts +0 -0
- /package/{internal/src → src/internal}/selector/create-writable-selector.ts +0 -0
- /package/{internal/src → src/internal}/selector/dispose-selector.ts +0 -0
- /package/{internal/src → src/internal}/selector/get-selector-dependency-keys.ts +0 -0
- /package/{internal/src → src/internal}/selector/index.ts +0 -0
- /package/{internal/src → src/internal}/selector/trace-selector-atoms.ts +0 -0
- /package/{internal/src → src/internal}/selector/update-selector-atoms.ts +0 -0
- /package/{internal/src → src/internal}/set-state/become.ts +0 -0
- /package/{internal/src → src/internal}/set-state/copy-mutable-if-needed.ts +0 -0
- /package/{internal/src → src/internal}/set-state/emit-update.ts +0 -0
- /package/{internal/src → src/internal}/set-state/evict-downstream.ts +0 -0
- /package/{internal/src → src/internal}/set-state/index.ts +0 -0
- /package/{internal/src → src/internal}/set-state/set-atom-or-selector.ts +0 -0
- /package/{internal/src → src/internal}/set-state/set-atom.ts +0 -0
- /package/{internal/src → src/internal}/set-state/set-into-store.ts +0 -0
- /package/{internal/src → src/internal}/store/circular-buffer.ts +0 -0
- /package/{internal/src → src/internal}/store/counterfeit.ts +0 -0
- /package/{internal/src → src/internal}/store/deposit.ts +0 -0
- /package/{internal/src → src/internal}/store/index.ts +0 -0
- /package/{internal/src → src/internal}/store/withdraw.ts +0 -0
- /package/{internal/src → src/internal}/subscribe/index.ts +0 -0
- /package/{internal/src → src/internal}/subscribe/recall-state.ts +0 -0
- /package/{internal/src → src/internal}/subscribe/subscribe-in-store.ts +0 -0
- /package/{internal/src → src/internal}/subscribe/subscribe-to-root-atoms.ts +0 -0
- /package/{internal/src → src/internal}/subscribe/subscribe-to-state.ts +0 -0
- /package/{internal/src → src/internal}/subscribe/subscribe-to-timeline.ts +0 -0
- /package/{internal/src → src/internal}/subscribe/subscribe-to-transaction.ts +0 -0
- /package/{internal/src → src/internal}/timeline/create-timeline.ts +0 -0
- /package/{internal/src → src/internal}/timeline/index.ts +0 -0
- /package/{internal/src → src/internal}/timeline/time-travel.ts +0 -0
- /package/{internal/src → src/internal}/transaction/abort-transaction.ts +0 -0
- /package/{internal/src → src/internal}/transaction/act-upon-store.ts +0 -0
- /package/{internal/src → src/internal}/transaction/apply-transaction.ts +0 -0
- /package/{internal/src → src/internal}/transaction/assign-transaction-to-continuity.ts +0 -0
- /package/{internal/src → src/internal}/transaction/create-transaction.ts +0 -0
- /package/{internal/src → src/internal}/transaction/get-epoch-number.ts +0 -0
- /package/{internal/src → src/internal}/transaction/index.ts +0 -0
- /package/{internal/src → src/internal}/transaction/is-root-store.ts +0 -0
- /package/{internal/src → src/internal}/transaction/set-epoch-number.ts +0 -0
- /package/{internal/src → src/internal}/utility-types.ts +0 -0
- /package/{introspection/src → src/introspection}/attach-atom-index.ts +0 -0
- /package/{introspection/src → src/introspection}/attach-introspection-states.ts +0 -0
- /package/{introspection/src → src/introspection}/attach-selector-index.ts +0 -0
- /package/{introspection/src → src/introspection}/attach-timeline-family.ts +0 -0
- /package/{introspection/src → src/introspection}/attach-timeline-index.ts +0 -0
- /package/{introspection/src → src/introspection}/attach-transaction-index.ts +0 -0
- /package/{introspection/src → src/introspection}/attach-transaction-logs.ts +0 -0
- /package/{introspection/src → src/introspection}/attach-type-selectors.ts +0 -0
- /package/{introspection/src → src/introspection}/index.ts +0 -0
- /package/{introspection/src → src/introspection}/sprawl.ts +0 -0
- /package/{json/src → src/json}/index.ts +0 -0
- /package/{json/src → src/json}/select-json.ts +0 -0
- /package/src/{atom.ts → main/atom.ts} +0 -0
- /package/src/{dispose-state.ts → main/dispose-state.ts} +0 -0
- /package/src/{find-state.ts → main/find-state.ts} +0 -0
- /package/src/{get-state.ts → main/get-state.ts} +0 -0
- /package/src/{index.ts → main/index.ts} +0 -0
- /package/src/{join.ts → main/join.ts} +0 -0
- /package/src/{logger.ts → main/logger.ts} +0 -0
- /package/src/{selector.ts → main/selector.ts} +0 -0
- /package/src/{set-state.ts → main/set-state.ts} +0 -0
- /package/src/{subscribe.ts → main/subscribe.ts} +0 -0
- /package/src/{timeline.ts → main/timeline.ts} +0 -0
- /package/src/{validators.ts → main/validators.ts} +0 -0
- /package/{react/src → src/react}/index.ts +0 -0
- /package/{react/src → src/react}/parse-state-overloads.ts +0 -0
- /package/{react/src → src/react}/use-json.ts +0 -0
- /package/{react/src → src/react}/use-o.ts +0 -0
- /package/{react/src → src/react}/use-tl.ts +0 -0
- /package/{react-devtools/src → src/react-devtools}/StateEditor.tsx +0 -0
- /package/{react-devtools/src → src/react-devtools}/StateIndex.tsx +0 -0
- /package/{react-devtools/src → src/react-devtools}/TimelineIndex.tsx +0 -0
- /package/{react-devtools/src → src/react-devtools}/TransactionIndex.tsx +0 -0
- /package/{react-devtools/src → src/react-devtools}/elastic-input/ElasticInput.tsx +0 -0
- /package/{react-devtools/src → src/react-devtools}/elastic-input/NumberInput.tsx +0 -0
- /package/{react-devtools/src → src/react-devtools}/elastic-input/TextInput.tsx +0 -0
- /package/{react-devtools/src → src/react-devtools}/elastic-input/index.ts +0 -0
- /package/{react-devtools/src → src/react-devtools}/error-boundary/DefaultFallback.tsx +0 -0
- /package/{react-devtools/src → src/react-devtools}/error-boundary/ReactErrorBoundary.tsx +0 -0
- /package/{react-devtools/src → src/react-devtools}/error-boundary/index.ts +0 -0
- /package/{react-devtools/src → src/react-devtools}/index.ts +0 -0
- /package/{react-devtools/src → src/react-devtools}/json-editor/default-components.tsx +0 -0
- /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/array-editor.tsx +0 -0
- /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/non-json.tsx +0 -0
- /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/object-editor.tsx +0 -0
- /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/primitive-editors.tsx +0 -0
- /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/array-elements.ts +0 -0
- /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/cast-to-json.ts +0 -0
- /package/{react-devtools/src → src/react-devtools}/json-editor/index.ts +0 -0
- /package/{react-devtools/src → src/react-devtools}/json-editor/todo.md +0 -0
- /package/{realtime/src → src/realtime}/index.ts +0 -0
- /package/{realtime/src → src/realtime}/realtime-continuity.ts +0 -0
- /package/{realtime-client/src → src/realtime-client}/continuity/index.ts +0 -0
- /package/{realtime-client/src → src/realtime-client}/continuity/register-and-attempt-confirmed-update.ts +0 -0
- /package/{realtime-client/src → src/realtime-client}/continuity/use-conceal-state.ts +0 -0
- /package/{realtime-client/src → src/realtime-client}/continuity/use-reveal-state.ts +0 -0
- /package/{realtime-client/src → src/realtime-client}/index.ts +0 -0
- /package/{realtime-client/src → src/realtime-client}/pull-atom-family-member.ts +0 -0
- /package/{realtime-client/src → src/realtime-client}/pull-atom.ts +0 -0
- /package/{realtime-client/src → src/realtime-client}/pull-mutable-atom-family-member.ts +0 -0
- /package/{realtime-client/src → src/realtime-client}/pull-mutable-atom.ts +0 -0
- /package/{realtime-client/src → src/realtime-client}/pull-selector-family-member.ts +0 -0
- /package/{realtime-client/src → src/realtime-client}/pull-selector.ts +0 -0
- /package/{realtime-client/src → src/realtime-client}/push-state.ts +0 -0
- /package/{realtime-client/src → src/realtime-client}/realtime-client-stores/index.ts +0 -0
- /package/{realtime-client/src → src/realtime-client}/server-action.ts +0 -0
- /package/{realtime-client/src → src/realtime-client}/sync-continuity.ts +0 -0
- /package/{realtime-react/src → src/realtime-react}/use-pull-atom-family-member.ts +0 -0
- /package/{realtime-react/src → src/realtime-react}/use-pull-atom.ts +0 -0
- /package/{realtime-react/src → src/realtime-react}/use-pull-mutable-atom.ts +0 -0
- /package/{realtime-react/src → src/realtime-react}/use-pull-mutable-family-member.ts +0 -0
- /package/{realtime-react/src → src/realtime-react}/use-pull-selector-family-member.ts +0 -0
- /package/{realtime-react/src → src/realtime-react}/use-pull-selector.ts +0 -0
- /package/{realtime-react/src → src/realtime-react}/use-push.ts +0 -0
- /package/{realtime-react/src → src/realtime-react}/use-realtime-service.ts +0 -0
- /package/{realtime-react/src → src/realtime-react}/use-server-action.ts +0 -0
- /package/{realtime-react/src → src/realtime-react}/use-sync-continuity.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/README.md +0 -0
- /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-send-initial-payload.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-serve-transaction-request.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-sync-realtime-continuity.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-track-client-acknowledgement.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/continuity/subscribe-to-continuity-actions.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/continuity/subscribe-to-continuity-perpectives.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/index.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/ipc-sockets/custom-socket.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/ipc-sockets/index.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/ipc-sockets/parent-socket.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/realtime-action-receiver.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/realtime-family-provider.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/realtime-mutable-family-provider.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/realtime-mutable-provider.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/realtime-server-stores/index.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/realtime-state-provider.ts +0 -0
- /package/{realtime-server/src → src/realtime-server}/realtime-state-receiver.ts +0 -0
- /package/{realtime-testing/src → src/realtime-testing}/index.ts +0 -0
- /package/{realtime-testing/src → src/realtime-testing}/setup-realtime-test.tsx +0 -0
- /package/{transceivers/set-rtx/src → src/transceivers/set-rtx}/index.ts +0 -0
- /package/{web/src → src/web}/index.ts +0 -0
- /package/{web/src → src/web}/persist-sync.ts +0 -0
|
@@ -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
|
|
87
|
-
|
|
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
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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<
|
|
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
|
|
56
|
-
private unsubscribeFromState
|
|
55
|
+
private unsubscribeFromInnerValue!: () => void
|
|
56
|
+
private unsubscribeFromState!: () => void
|
|
57
57
|
private observeCore(
|
|
58
58
|
mutableState: MutableAtomToken<Mutable, any>,
|
|
59
|
-
latestUpdateState: RegularAtomToken<
|
|
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<
|
|
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<
|
|
165
|
+
public latestUpdateState: RegularAtomToken<
|
|
166
|
+
(Mutable extends Transceiver<infer Signal> ? Signal : never) | null
|
|
167
|
+
>
|
|
162
168
|
|
|
163
|
-
public [Symbol.dispose]
|
|
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: ((
|
|
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
|
|
47
|
-
public defaults
|
|
46
|
+
public valueMap: Map<string, any> = new Map()
|
|
47
|
+
public defaults: Map<string, any> = new Map()
|
|
48
48
|
|
|
49
|
-
public atoms
|
|
50
|
-
public selectors
|
|
51
|
-
public readonlySelectors
|
|
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
|
|
54
|
-
public selectorAtoms
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
|
74
|
-
public families
|
|
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
|
|
81
|
+
> = new Map()
|
|
82
|
+
public joins: Map<string, Join<any, any, any, any, any, any>> = new Map()
|
|
82
83
|
|
|
83
|
-
public transactions
|
|
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
|
|
93
|
-
public timelineTopics
|
|
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
|
|
105
|
+
public disposalTraces: CircularBuffer<{ key: string; trace: string }> =
|
|
106
|
+
new CircularBuffer(100)
|
|
105
107
|
|
|
106
|
-
public molecules
|
|
107
|
-
public moleculeJoins
|
|
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
|
|
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
|
|
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
|
|
152
|
+
public miscResources: Map<string, Disposable> = new Map()
|
|
151
153
|
|
|
152
|
-
public on = {
|
|
153
|
-
atomCreation: new Subject
|
|
154
|
-
atomDisposal: new Subject
|
|
155
|
-
selectorCreation: new Subject
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
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
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
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
|
|
|
@@ -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: ((
|
|
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)
|
|
@@ -157,7 +157,18 @@ export class Differ<
|
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
export const prettyJson
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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.
|
|
23
|
+
const setter: React.RefObject<
|
|
24
24
|
(<New extends T>(next: New | ((old: T) => New)) => void) | null
|
|
25
25
|
> = React.useRef(null)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
setIntoStore(store, token, next)
|
|
29
|
-
}
|
|
26
|
+
setter.current ??= (next) => {
|
|
27
|
+
setIntoStore(store, token, next)
|
|
30
28
|
}
|
|
31
29
|
return setter.current
|
|
32
30
|
}
|
|
@@ -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,
|