atom.io 0.32.4 → 0.33.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +495 -378
- 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 +66 -117
- 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/index.ts +2 -0
- package/{internal/src → src/internal}/index.ts +1 -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}/store/store.ts +60 -47
- package/{internal/src → src/internal}/subject.ts +1 -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-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/index.ts +5 -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 +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-4LWKCEW3.js +0 -14
- package/dist/chunk-7SJVR7FZ.js +0 -4499
- package/dist/chunk-IR77IXS7.js +0 -526
- package/dist/chunk-PG57JXN4.js +0 -1035
- package/dist/chunk-PXB4YZDI.js +0 -153
- package/dist/chunk-Q6OOJWM4.js +0 -634
- package/dist/chunk-TJPLOX7Z.js +0 -81
- package/dist/chunk-U4K63VLA.js +0 -109
- 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 -51
- 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 -169
- 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/{data/src → src/data}/struct.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/create-writable-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/find-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/register-selector.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/build-transaction.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-i.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/developer-interface.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-json.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/editors-by-type/utilities/object-properties.ts +0 -0
- /package/{react-devtools/src → src/react-devtools}/json-editor/json-editor-internal.tsx +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/child-socket.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
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { Subject } from "atom.io/internal";
|
|
2
|
+
import { stringifyJson } from "atom.io/json";
|
|
3
|
+
|
|
4
|
+
//#region src/transceivers/set-rtx/set-rtx.ts
|
|
5
|
+
var SetRTX = class SetRTX extends Set {
|
|
6
|
+
mode = `record`;
|
|
7
|
+
subject = new Subject();
|
|
8
|
+
cacheLimit = 0;
|
|
9
|
+
cache = [];
|
|
10
|
+
cacheIdx = -1;
|
|
11
|
+
cacheUpdateNumber = -1;
|
|
12
|
+
constructor(values, cacheLimit = 0) {
|
|
13
|
+
super(values);
|
|
14
|
+
if (values instanceof SetRTX) {
|
|
15
|
+
this.parent = values;
|
|
16
|
+
this.cacheUpdateNumber = values.cacheUpdateNumber;
|
|
17
|
+
}
|
|
18
|
+
if (cacheLimit) {
|
|
19
|
+
this.cacheLimit = cacheLimit;
|
|
20
|
+
this.cache = new Array(cacheLimit);
|
|
21
|
+
this.subscribe(`auto cache`, (update) => {
|
|
22
|
+
this.cacheIdx++;
|
|
23
|
+
this.cacheIdx %= this.cacheLimit;
|
|
24
|
+
this.cache[this.cacheIdx] = update;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
toJSON() {
|
|
29
|
+
return {
|
|
30
|
+
members: [...this],
|
|
31
|
+
cache: this.cache,
|
|
32
|
+
cacheLimit: this.cacheLimit,
|
|
33
|
+
cacheIdx: this.cacheIdx,
|
|
34
|
+
cacheUpdateNumber: this.cacheUpdateNumber
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
static fromJSON(json) {
|
|
38
|
+
const set = new SetRTX(json.members, json.cacheLimit);
|
|
39
|
+
set.cache = json.cache;
|
|
40
|
+
set.cacheIdx = json.cacheIdx;
|
|
41
|
+
set.cacheUpdateNumber = json.cacheUpdateNumber;
|
|
42
|
+
return set;
|
|
43
|
+
}
|
|
44
|
+
add(value) {
|
|
45
|
+
const result = super.add(value);
|
|
46
|
+
if (this.mode === `record`) {
|
|
47
|
+
this.cacheUpdateNumber++;
|
|
48
|
+
this.emit(`add:${stringifyJson(value)}`);
|
|
49
|
+
}
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
clear() {
|
|
53
|
+
const capturedContents = this.mode === `record` ? [...this] : null;
|
|
54
|
+
super.clear();
|
|
55
|
+
if (capturedContents) {
|
|
56
|
+
this.cacheUpdateNumber++;
|
|
57
|
+
this.emit(`clear:${JSON.stringify(capturedContents)}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
delete(value) {
|
|
61
|
+
const result = super.delete(value);
|
|
62
|
+
if (this.mode === `record`) {
|
|
63
|
+
this.cacheUpdateNumber++;
|
|
64
|
+
this.emit(`del:${stringifyJson(value)}`);
|
|
65
|
+
}
|
|
66
|
+
return result;
|
|
67
|
+
}
|
|
68
|
+
parent = null;
|
|
69
|
+
child = null;
|
|
70
|
+
transactionUpdates = null;
|
|
71
|
+
transaction(run) {
|
|
72
|
+
this.mode = `transaction`;
|
|
73
|
+
this.transactionUpdates = [];
|
|
74
|
+
this.child = new SetRTX(this);
|
|
75
|
+
const unsubscribe = this.child._subscribe(`transaction`, (update) => {
|
|
76
|
+
this.transactionUpdates?.push(update);
|
|
77
|
+
});
|
|
78
|
+
try {
|
|
79
|
+
const shouldCommit = run(this.child);
|
|
80
|
+
if (shouldCommit) {
|
|
81
|
+
for (const update of this.transactionUpdates) this.doStep(update);
|
|
82
|
+
this.cacheUpdateNumber++;
|
|
83
|
+
this.emit(`tx:${this.transactionUpdates.join(`;`)}`);
|
|
84
|
+
}
|
|
85
|
+
} catch (thrown) {
|
|
86
|
+
console.warn(`Did not apply transaction to SetRTX; this error was thrown:`, thrown);
|
|
87
|
+
throw thrown;
|
|
88
|
+
} finally {
|
|
89
|
+
unsubscribe();
|
|
90
|
+
this.child = null;
|
|
91
|
+
this.transactionUpdates = null;
|
|
92
|
+
this.mode = `record`;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
_subscribe(key, fn) {
|
|
96
|
+
return this.subject.subscribe(key, fn);
|
|
97
|
+
}
|
|
98
|
+
subscribe(key, fn) {
|
|
99
|
+
return this.subject.subscribe(key, (update) => {
|
|
100
|
+
fn(`${this.cacheUpdateNumber}=${update}`);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
emit(update) {
|
|
104
|
+
this.subject.next(update);
|
|
105
|
+
}
|
|
106
|
+
doStep(update) {
|
|
107
|
+
const typeValueBreak = update.indexOf(`:`);
|
|
108
|
+
const type = update.substring(0, typeValueBreak);
|
|
109
|
+
const value = update.substring(typeValueBreak + 1);
|
|
110
|
+
switch (type) {
|
|
111
|
+
case `add`:
|
|
112
|
+
this.add(JSON.parse(value));
|
|
113
|
+
break;
|
|
114
|
+
case `clear`:
|
|
115
|
+
this.clear();
|
|
116
|
+
break;
|
|
117
|
+
case `del`:
|
|
118
|
+
this.delete(JSON.parse(value));
|
|
119
|
+
break;
|
|
120
|
+
case `tx`: for (const subUpdate of value.split(`;`)) this.doStep(subUpdate);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
getUpdateNumber(update) {
|
|
124
|
+
const breakpoint = update.indexOf(`=`);
|
|
125
|
+
return Number(update.substring(0, breakpoint));
|
|
126
|
+
}
|
|
127
|
+
do(update) {
|
|
128
|
+
const breakpoint = update.indexOf(`=`);
|
|
129
|
+
const updateNumber = Number(update.substring(0, breakpoint));
|
|
130
|
+
const eventOffset = updateNumber - this.cacheUpdateNumber;
|
|
131
|
+
const isFuture = eventOffset > 0;
|
|
132
|
+
if (isFuture) {
|
|
133
|
+
if (eventOffset === 1) {
|
|
134
|
+
this.mode = `playback`;
|
|
135
|
+
const innerUpdate = update.substring(breakpoint + 1);
|
|
136
|
+
this.doStep(innerUpdate);
|
|
137
|
+
this.mode = `record`;
|
|
138
|
+
this.cacheUpdateNumber = updateNumber;
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
return this.cacheUpdateNumber + 1;
|
|
142
|
+
}
|
|
143
|
+
if (Math.abs(eventOffset) < this.cacheLimit) {
|
|
144
|
+
const eventIdx = this.cacheIdx + eventOffset;
|
|
145
|
+
const cachedUpdate = this.cache[eventIdx];
|
|
146
|
+
if (cachedUpdate === update) return null;
|
|
147
|
+
this.mode = `playback`;
|
|
148
|
+
let done = false;
|
|
149
|
+
while (!done) {
|
|
150
|
+
this.cacheIdx %= this.cacheLimit;
|
|
151
|
+
const u = this.cache[this.cacheIdx];
|
|
152
|
+
this.cacheIdx--;
|
|
153
|
+
if (!u) return `OUT_OF_RANGE`;
|
|
154
|
+
this.undo(u);
|
|
155
|
+
done = this.cacheIdx === eventIdx - 1;
|
|
156
|
+
}
|
|
157
|
+
const innerUpdate = update.substring(breakpoint + 1);
|
|
158
|
+
this.doStep(innerUpdate);
|
|
159
|
+
this.mode = `record`;
|
|
160
|
+
this.cacheUpdateNumber = updateNumber;
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
return `OUT_OF_RANGE`;
|
|
164
|
+
}
|
|
165
|
+
undoStep(update) {
|
|
166
|
+
const breakpoint = update.indexOf(`:`);
|
|
167
|
+
const type = update.substring(0, breakpoint);
|
|
168
|
+
const value = update.substring(breakpoint + 1);
|
|
169
|
+
switch (type) {
|
|
170
|
+
case `add`:
|
|
171
|
+
this.delete(JSON.parse(value));
|
|
172
|
+
break;
|
|
173
|
+
case `del`:
|
|
174
|
+
this.add(JSON.parse(value));
|
|
175
|
+
break;
|
|
176
|
+
case `clear`: {
|
|
177
|
+
const values = JSON.parse(value);
|
|
178
|
+
for (const v of values) this.add(v);
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
case `tx`: {
|
|
182
|
+
const updates = value.split(`;`);
|
|
183
|
+
for (let i = updates.length - 1; i >= 0; i--) this.undoStep(updates[i]);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
undo(update) {
|
|
188
|
+
const breakpoint = update.indexOf(`=`);
|
|
189
|
+
const updateNumber = Number(update.substring(0, breakpoint));
|
|
190
|
+
if (updateNumber === this.cacheUpdateNumber) {
|
|
191
|
+
this.mode = `playback`;
|
|
192
|
+
const innerUpdate = update.substring(breakpoint + 1);
|
|
193
|
+
this.undoStep(innerUpdate);
|
|
194
|
+
this.mode = `record`;
|
|
195
|
+
this.cacheUpdateNumber--;
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
return this.cacheUpdateNumber;
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
//#endregion
|
|
203
|
+
export { SetRTX };
|
|
204
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["values?: Iterable<P>","json: SetRTXJson<P>","value: P","run: (child: SetRTX<P>) => boolean","key: string","fn: (update: SetUpdate) => void","fn: (update: NumberedSetUpdate) => void","update: SetUpdate","update: NumberedSetUpdate"],"sources":["../../../src/transceivers/set-rtx/set-rtx.ts"],"sourcesContent":["import type { Lineage, Transceiver, TransceiverMode } from \"atom.io/internal\"\nimport { Subject } from \"atom.io/internal\"\nimport type { Json, primitive } from \"atom.io/json\"\nimport { stringifyJson } from \"atom.io/json\"\n\nexport type SetUpdateType = `add` | `clear` | `del` | `tx`\nexport type SetUpdate = `${SetUpdateType}:${string}`\nexport type NumberedSetUpdate = `${number}=${SetUpdate}`\n\nexport interface SetRTXJson<P extends primitive> extends Json.Object {\n\tmembers: P[]\n\tcache: (NumberedSetUpdate | null)[]\n\tcacheLimit: number\n\tcacheIdx: number\n\tcacheUpdateNumber: number\n}\nexport class SetRTX<P extends primitive>\n\textends Set<P>\n\timplements Transceiver<NumberedSetUpdate>, Lineage\n{\n\tpublic mode: TransceiverMode = `record`\n\tpublic readonly subject: Subject<SetUpdate> = new Subject<SetUpdate>()\n\tpublic cacheLimit = 0\n\tpublic cache: (NumberedSetUpdate | null)[] = []\n\tpublic cacheIdx = -1\n\tpublic cacheUpdateNumber = -1\n\n\tpublic constructor(values?: Iterable<P>, cacheLimit = 0) {\n\t\tsuper(values)\n\t\tif (values instanceof SetRTX) {\n\t\t\tthis.parent = values\n\t\t\tthis.cacheUpdateNumber = values.cacheUpdateNumber\n\t\t}\n\t\tif (cacheLimit) {\n\t\t\tthis.cacheLimit = cacheLimit\n\t\t\tthis.cache = new Array(cacheLimit)\n\t\t\tthis.subscribe(`auto cache`, (update) => {\n\t\t\t\tthis.cacheIdx++\n\t\t\t\tthis.cacheIdx %= this.cacheLimit\n\t\t\t\tthis.cache[this.cacheIdx] = update\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic toJSON(): SetRTXJson<P> {\n\t\treturn {\n\t\t\tmembers: [...this],\n\t\t\tcache: this.cache,\n\t\t\tcacheLimit: this.cacheLimit,\n\t\t\tcacheIdx: this.cacheIdx,\n\t\t\tcacheUpdateNumber: this.cacheUpdateNumber,\n\t\t}\n\t}\n\n\tpublic static fromJSON<P extends primitive>(json: SetRTXJson<P>): SetRTX<P> {\n\t\tconst set = new SetRTX<P>(json.members, json.cacheLimit)\n\t\tset.cache = json.cache\n\t\tset.cacheIdx = json.cacheIdx\n\t\tset.cacheUpdateNumber = json.cacheUpdateNumber\n\t\treturn set\n\t}\n\n\tpublic add(value: P): this {\n\t\tconst result = super.add(value)\n\t\tif (this.mode === `record`) {\n\t\t\tthis.cacheUpdateNumber++\n\t\t\tthis.emit(`add:${stringifyJson<P>(value)}`)\n\t\t}\n\t\treturn result\n\t}\n\n\tpublic clear(): void {\n\t\tconst capturedContents = this.mode === `record` ? [...this] : null\n\t\tsuper.clear()\n\t\tif (capturedContents) {\n\t\t\tthis.cacheUpdateNumber++\n\t\t\tthis.emit(`clear:${JSON.stringify(capturedContents)}`)\n\t\t}\n\t}\n\n\tpublic delete(value: P): boolean {\n\t\tconst result = super.delete(value)\n\t\tif (this.mode === `record`) {\n\t\t\tthis.cacheUpdateNumber++\n\t\t\tthis.emit(`del:${stringifyJson<P>(value)}`)\n\t\t}\n\t\treturn result\n\t}\n\n\tpublic readonly parent: SetRTX<P> | null = null\n\tpublic child: SetRTX<P> | null = null\n\tpublic transactionUpdates: SetUpdate[] | null = null\n\tpublic transaction(run: (child: SetRTX<P>) => boolean): void {\n\t\tthis.mode = `transaction`\n\t\tthis.transactionUpdates = []\n\t\tthis.child = new SetRTX(this)\n\t\tconst unsubscribe = this.child._subscribe(`transaction`, (update) => {\n\t\t\tthis.transactionUpdates?.push(update)\n\t\t})\n\t\ttry {\n\t\t\tconst shouldCommit = run(this.child)\n\t\t\tif (shouldCommit) {\n\t\t\t\tfor (const update of this.transactionUpdates) {\n\t\t\t\t\tthis.doStep(update)\n\t\t\t\t}\n\t\t\t\tthis.cacheUpdateNumber++\n\t\t\t\tthis.emit(`tx:${this.transactionUpdates.join(`;`)}`)\n\t\t\t}\n\t\t} catch (thrown) {\n\t\t\t/* eslint-disable-next-line no-console */\n\t\t\tconsole.warn(\n\t\t\t\t`Did not apply transaction to SetRTX; this error was thrown:`,\n\t\t\t\tthrown,\n\t\t\t)\n\t\t\tthrow thrown\n\t\t} finally {\n\t\t\tunsubscribe()\n\t\t\tthis.child = null\n\t\t\tthis.transactionUpdates = null\n\t\t\tthis.mode = `record`\n\t\t}\n\t}\n\n\tprotected _subscribe(\n\t\tkey: string,\n\t\tfn: (update: SetUpdate) => void,\n\t): () => void {\n\t\treturn this.subject.subscribe(key, fn)\n\t}\n\tpublic subscribe(\n\t\tkey: string,\n\t\tfn: (update: NumberedSetUpdate) => void,\n\t): () => void {\n\t\treturn this.subject.subscribe(key, (update) => {\n\t\t\tfn(`${this.cacheUpdateNumber}=${update}`)\n\t\t})\n\t}\n\n\tpublic emit(update: SetUpdate): void {\n\t\tthis.subject.next(update)\n\t}\n\n\tprivate doStep(update: SetUpdate): void {\n\t\tconst typeValueBreak = update.indexOf(`:`)\n\t\tconst type = update.substring(0, typeValueBreak) as SetUpdateType\n\t\tconst value = update.substring(typeValueBreak + 1)\n\t\tswitch (type) {\n\t\t\tcase `add`:\n\t\t\t\tthis.add(JSON.parse(value))\n\t\t\t\tbreak\n\t\t\tcase `clear`:\n\t\t\t\tthis.clear()\n\t\t\t\tbreak\n\t\t\tcase `del`:\n\t\t\t\tthis.delete(JSON.parse(value))\n\t\t\t\tbreak\n\t\t\tcase `tx`:\n\t\t\t\tfor (const subUpdate of value.split(`;`)) {\n\t\t\t\t\tthis.doStep(subUpdate as SetUpdate)\n\t\t\t\t}\n\t\t}\n\t}\n\n\tpublic getUpdateNumber(update: NumberedSetUpdate): number {\n\t\tconst breakpoint = update.indexOf(`=`)\n\t\treturn Number(update.substring(0, breakpoint))\n\t}\n\n\tpublic do(update: NumberedSetUpdate): number | `OUT_OF_RANGE` | null {\n\t\tconst breakpoint = update.indexOf(`=`)\n\t\tconst updateNumber = Number(update.substring(0, breakpoint))\n\t\tconst eventOffset = updateNumber - this.cacheUpdateNumber\n\t\tconst isFuture = eventOffset > 0\n\t\tif (isFuture) {\n\t\t\tif (eventOffset === 1) {\n\t\t\t\tthis.mode = `playback`\n\t\t\t\tconst innerUpdate = update.substring(breakpoint + 1) as SetUpdate\n\t\t\t\tthis.doStep(innerUpdate)\n\t\t\t\tthis.mode = `record`\n\t\t\t\tthis.cacheUpdateNumber = updateNumber\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn this.cacheUpdateNumber + 1\n\t\t}\n\t\tif (Math.abs(eventOffset) < this.cacheLimit) {\n\t\t\tconst eventIdx = this.cacheIdx + eventOffset\n\t\t\tconst cachedUpdate = this.cache[eventIdx]\n\t\t\tif (cachedUpdate === update) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tthis.mode = `playback`\n\t\t\tlet done = false\n\t\t\twhile (!done) {\n\t\t\t\tthis.cacheIdx %= this.cacheLimit\n\t\t\t\tconst u = this.cache[this.cacheIdx]\n\t\t\t\tthis.cacheIdx--\n\t\t\t\tif (!u) {\n\t\t\t\t\treturn `OUT_OF_RANGE`\n\t\t\t\t}\n\t\t\t\tthis.undo(u)\n\t\t\t\tdone = this.cacheIdx === eventIdx - 1\n\t\t\t}\n\t\t\tconst innerUpdate = update.substring(breakpoint + 1) as SetUpdate\n\t\t\tthis.doStep(innerUpdate)\n\t\t\tthis.mode = `record`\n\t\t\tthis.cacheUpdateNumber = updateNumber\n\t\t\treturn null\n\t\t}\n\t\treturn `OUT_OF_RANGE`\n\t}\n\n\tpublic undoStep(update: SetUpdate): void {\n\t\tconst breakpoint = update.indexOf(`:`)\n\t\tconst type = update.substring(0, breakpoint) as SetUpdateType\n\t\tconst value = update.substring(breakpoint + 1)\n\t\tswitch (type) {\n\t\t\tcase `add`:\n\t\t\t\tthis.delete(JSON.parse(value))\n\t\t\t\tbreak\n\t\t\tcase `del`:\n\t\t\t\tthis.add(JSON.parse(value))\n\t\t\t\tbreak\n\t\t\tcase `clear`: {\n\t\t\t\tconst values = JSON.parse(value) as P[]\n\t\t\t\tfor (const v of values) this.add(v)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase `tx`: {\n\t\t\t\tconst updates = value.split(`;`) as SetUpdate[]\n\t\t\t\tfor (let i = updates.length - 1; i >= 0; i--) {\n\t\t\t\t\tthis.undoStep(updates[i])\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic undo(update: NumberedSetUpdate): number | null {\n\t\tconst breakpoint = update.indexOf(`=`)\n\t\tconst updateNumber = Number(update.substring(0, breakpoint))\n\t\tif (updateNumber === this.cacheUpdateNumber) {\n\t\t\tthis.mode = `playback`\n\t\t\tconst innerUpdate = update.substring(breakpoint + 1) as SetUpdate\n\t\t\tthis.undoStep(innerUpdate)\n\t\t\tthis.mode = `record`\n\t\t\tthis.cacheUpdateNumber--\n\t\t\treturn null\n\t\t}\n\t\treturn this.cacheUpdateNumber\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AtomEffect } from "atom.io";
|
|
2
|
+
|
|
3
|
+
//#region src/web/persist-sync.d.ts
|
|
4
|
+
type StringInterface<T> = {
|
|
5
|
+
stringify: (t: T) => string;
|
|
6
|
+
parse: (s: string) => T;
|
|
7
|
+
};
|
|
8
|
+
declare const persistSync: <T>(storage: Storage, {
|
|
9
|
+
stringify,
|
|
10
|
+
parse
|
|
11
|
+
}: StringInterface<T>, key: string) => AtomEffect<T>;
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
export { StringInterface, persistSync };
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["t: T","s: string","storage: Storage","key: string"],"sources":["../../src/web/persist-sync.ts"],"sourcesContent":null,"mappings":";;;KAEY;iBACI;EADhB,KAAY,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,GAEW,CAFX;CAAA;AACI,cAIH,WAJG,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAML,OANK,EAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EAOQ,eAPR,CAOwB,CAPxB,CAAA,EAAA,GAAA,EAAA,MAAA,EAAA,GASZ,UATY,CASD,CATC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/web/persist-sync.ts
|
|
2
|
+
const persistSync = (storage, { stringify, parse }, key) => ({ setSelf, onSet }) => {
|
|
3
|
+
const savedValue = storage.getItem(key);
|
|
4
|
+
if (savedValue != null) setSelf(parse(savedValue));
|
|
5
|
+
onSet(({ newValue }) => {
|
|
6
|
+
if (newValue == null) {
|
|
7
|
+
storage.removeItem(key);
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
storage.setItem(key, stringify(newValue));
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
export { persistSync };
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["storage: Storage","key: string"],"sources":["../../src/web/persist-sync.ts"],"sourcesContent":["import type { AtomEffect } from \"atom.io\"\n\nexport type StringInterface<T> = {\n\tstringify: (t: T) => string\n\tparse: (s: string) => T\n}\n\nexport const persistSync =\n\t<T>(\n\t\tstorage: Storage,\n\t\t{ stringify, parse }: StringInterface<T>,\n\t\tkey: string,\n\t): AtomEffect<T> =>\n\t({ setSelf, onSet }) => {\n\t\tconst savedValue = storage.getItem(key)\n\t\tif (savedValue != null) setSelf(parse(savedValue))\n\n\t\tonSet(({ newValue }) => {\n\t\t\tif (newValue == null) {\n\t\t\t\tstorage.removeItem(key)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tstorage.setItem(key, stringify(newValue))\n\t\t})\n\t}\n"],"mappings":";AAOA,MAAa,cACZ,CACCA,SACA,EAAE,WAAW,OAA2B,EACxCC,QAED,CAAC,EAAE,SAAS,OAAO,KAAK;CACvB,MAAM,aAAa,QAAQ,QAAQ,IAAI;AACvC,KAAI,cAAc,KAAM,SAAQ,MAAM,WAAW,CAAC;AAElD,OAAM,CAAC,EAAE,UAAU,KAAK;AACvB,MAAI,YAAY,MAAM;AACrB,WAAQ,WAAW,IAAI;AACvB;EACA;AACD,UAAQ,QAAQ,KAAK,UAAU,SAAS,CAAC;CACzC,EAAC;AACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "atom.io",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.33.1",
|
|
4
4
|
"description": "Composable and testable reactive data library.",
|
|
5
5
|
"homepage": "https://atom.io.fyi",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -19,28 +19,36 @@
|
|
|
19
19
|
"@floating-ui/react": ">=0.25.0",
|
|
20
20
|
"@floating-ui/react-dom": ">=2.0.0",
|
|
21
21
|
"@testing-library/react": ">=14.0.0",
|
|
22
|
+
"@typescript-eslint/parser": ">=9.0.0",
|
|
22
23
|
"eslint": ">=9.0.0",
|
|
24
|
+
"happy-dom": ">=17.4.4",
|
|
23
25
|
"motion": ">=11.0.0",
|
|
24
26
|
"react": "^18.0.0 || ^19.0.0",
|
|
25
27
|
"socket.io": ">=4.0.0",
|
|
26
28
|
"socket.io-client": ">=4.0.0"
|
|
27
29
|
},
|
|
28
30
|
"peerDependenciesMeta": {
|
|
29
|
-
"@
|
|
31
|
+
"@floating-ui/react": {
|
|
30
32
|
"optional": true
|
|
31
33
|
},
|
|
32
|
-
"react": {
|
|
34
|
+
"@floating-ui/react-dom": {
|
|
33
35
|
"optional": true
|
|
34
36
|
},
|
|
35
|
-
"@
|
|
37
|
+
"@testing-library/react": {
|
|
36
38
|
"optional": true
|
|
37
39
|
},
|
|
38
|
-
"@
|
|
40
|
+
"@typescript-eslint/parser": {
|
|
41
|
+
"optional": true
|
|
42
|
+
},
|
|
43
|
+
"react": {
|
|
39
44
|
"optional": true
|
|
40
45
|
},
|
|
41
46
|
"eslint": {
|
|
42
47
|
"optional": true
|
|
43
48
|
},
|
|
49
|
+
"happy-dom": {
|
|
50
|
+
"optional": true
|
|
51
|
+
},
|
|
44
52
|
"motion": {
|
|
45
53
|
"optional": true
|
|
46
54
|
},
|
|
@@ -52,191 +60,132 @@
|
|
|
52
60
|
}
|
|
53
61
|
},
|
|
54
62
|
"devDependencies": {
|
|
63
|
+
"@eslint/core": "0.14.0",
|
|
55
64
|
"@testing-library/react": "16.3.0",
|
|
65
|
+
"@types/bun": "npm:bun-types@1.2.11",
|
|
56
66
|
"@types/eslint": "9.6.1",
|
|
57
67
|
"@types/estree": "1.0.6",
|
|
58
68
|
"@types/http-proxy": "1.17.16",
|
|
59
69
|
"@types/npmlog": "7.0.0",
|
|
60
|
-
"@types/react": "19.1.
|
|
70
|
+
"@types/react": "19.1.2",
|
|
61
71
|
"@types/tmp": "0.2.6",
|
|
62
|
-
"@typescript-eslint/parser": "8.
|
|
63
|
-
"@typescript-eslint/rule-tester": "8.
|
|
64
|
-
"@typescript-eslint/utils": "8.
|
|
65
|
-
"@vitest/coverage-v8": "3.1.
|
|
66
|
-
"@vitest/ui": "3.1.
|
|
67
|
-
"bun-types": "1.2.9",
|
|
72
|
+
"@typescript-eslint/parser": "8.31.1",
|
|
73
|
+
"@typescript-eslint/rule-tester": "8.31.1",
|
|
74
|
+
"@typescript-eslint/utils": "8.31.1",
|
|
75
|
+
"@vitest/coverage-v8": "3.1.2",
|
|
76
|
+
"@vitest/ui": "3.1.2",
|
|
68
77
|
"concurrently": "9.1.2",
|
|
69
|
-
"drizzle-kit": "0.
|
|
70
|
-
"drizzle-orm": "0.
|
|
71
|
-
"eslint": "9.
|
|
72
|
-
"happy-dom": "17.4.
|
|
78
|
+
"drizzle-kit": "0.31.0",
|
|
79
|
+
"drizzle-orm": "0.43.1",
|
|
80
|
+
"eslint": "9.25.1",
|
|
81
|
+
"happy-dom": "17.4.6",
|
|
73
82
|
"http-proxy": "1.18.1",
|
|
74
|
-
"motion": "12.
|
|
83
|
+
"motion": "12.9.4",
|
|
75
84
|
"npmlog": "7.0.1",
|
|
76
85
|
"nyc": "17.1.0",
|
|
77
86
|
"postgres": "3.4.5",
|
|
78
87
|
"preact": "10.26.5",
|
|
79
88
|
"react": "19.1.0",
|
|
80
89
|
"react-dom": "19.1.0",
|
|
81
|
-
"react-router-dom": "7.5.
|
|
82
|
-
"recoverage": "0.1.
|
|
90
|
+
"react-router-dom": "7.5.3",
|
|
91
|
+
"recoverage": "0.1.9",
|
|
83
92
|
"socket.io": "4.8.1",
|
|
84
93
|
"socket.io-client": "4.8.1",
|
|
85
94
|
"tmp": "0.2.3",
|
|
86
|
-
"
|
|
87
|
-
"tsx": "4.19.
|
|
95
|
+
"tsdown": "0.10.2",
|
|
96
|
+
"tsx": "4.19.4",
|
|
88
97
|
"typescript": "5.8.3",
|
|
89
|
-
"vite": "6.
|
|
98
|
+
"vite": "6.3.4",
|
|
90
99
|
"vite-tsconfig-paths": "5.1.4",
|
|
91
|
-
"vitest": "3.1.
|
|
92
|
-
"zod": "3.24.
|
|
93
|
-
"break-check": "0.6.
|
|
100
|
+
"vitest": "3.1.2",
|
|
101
|
+
"zod": "3.24.3",
|
|
102
|
+
"break-check": "0.6.13"
|
|
94
103
|
},
|
|
95
|
-
"
|
|
96
|
-
"types": "dist/index.d.ts",
|
|
104
|
+
"module": "./dist/main/index.js",
|
|
97
105
|
"files": [
|
|
98
106
|
"dist",
|
|
99
107
|
"src",
|
|
100
|
-
"data/dist",
|
|
101
|
-
"data/package.json",
|
|
102
108
|
"data/src",
|
|
103
|
-
"eslint-plugin/dist",
|
|
104
|
-
"eslint-plugin/package.json",
|
|
105
109
|
"eslint-plugin/src",
|
|
106
|
-
"internal/dist",
|
|
107
|
-
"internal/package.json",
|
|
108
110
|
"internal/src",
|
|
109
|
-
"introspection/dist",
|
|
110
|
-
"introspection/package.json",
|
|
111
111
|
"introspection/src",
|
|
112
|
-
"json/dist",
|
|
113
|
-
"json/package.json",
|
|
114
112
|
"json/src",
|
|
115
|
-
"react/dist",
|
|
116
|
-
"react/package.json",
|
|
117
113
|
"react/src",
|
|
118
|
-
"react-devtools/dist",
|
|
119
|
-
"react-devtools/package.json",
|
|
120
114
|
"react-devtools/src",
|
|
121
|
-
"realtime/dist",
|
|
122
|
-
"realtime/package.json",
|
|
123
115
|
"realtime/src",
|
|
124
|
-
"realtime-client/dist",
|
|
125
|
-
"realtime-client/package.json",
|
|
126
116
|
"realtime-client/src",
|
|
127
|
-
"realtime-react/dist",
|
|
128
|
-
"realtime-react/package.json",
|
|
129
117
|
"realtime-react/src",
|
|
130
|
-
"realtime-server/dist",
|
|
131
|
-
"realtime-server/package.json",
|
|
132
118
|
"realtime-server/src",
|
|
133
|
-
"realtime-testing/dist",
|
|
134
|
-
"realtime-testing/package.json",
|
|
135
119
|
"realtime-testing/src",
|
|
136
|
-
"transceivers/set-rtx/dist",
|
|
137
|
-
"transceivers/set-rtx/package.json",
|
|
138
120
|
"transceivers/set-rtx/src",
|
|
139
|
-
"web/dist",
|
|
140
|
-
"web/package.json",
|
|
141
121
|
"web/src"
|
|
142
122
|
],
|
|
143
123
|
"exports": {
|
|
144
124
|
"./package.json": "./package.json",
|
|
145
125
|
".": {
|
|
146
|
-
"import": "./dist/index.js",
|
|
147
|
-
"types": "./dist/index.d.ts"
|
|
126
|
+
"import": "./dist/main/index.js",
|
|
127
|
+
"types": "./dist/main/index.d.ts"
|
|
148
128
|
},
|
|
149
|
-
"./data/package.json": "./data/package.json",
|
|
150
129
|
"./data": {
|
|
151
|
-
"import": "./data/
|
|
152
|
-
"types": "./data/
|
|
130
|
+
"import": "./dist/data/index.js",
|
|
131
|
+
"types": "./dist/data/index.d.ts"
|
|
153
132
|
},
|
|
154
|
-
"./eslint-plugin/package.json": "./eslint-plugin/package.json",
|
|
155
133
|
"./eslint-plugin": {
|
|
156
|
-
"import": "./eslint-plugin/
|
|
157
|
-
"types": "./eslint-plugin/
|
|
134
|
+
"import": "./dist/eslint-plugin/index.js",
|
|
135
|
+
"types": "./dist/eslint-plugin/index.d.ts"
|
|
158
136
|
},
|
|
159
|
-
"./internal/package.json": "./internal/package.json",
|
|
160
137
|
"./internal": {
|
|
161
|
-
"import": "./internal/
|
|
162
|
-
"types": "./internal/
|
|
138
|
+
"import": "./dist/internal/index.js",
|
|
139
|
+
"types": "./dist/internal/index.d.ts"
|
|
163
140
|
},
|
|
164
|
-
"./introspection/package.json": "./introspection/package.json",
|
|
165
141
|
"./introspection": {
|
|
166
|
-
"import": "./introspection/
|
|
167
|
-
"types": "./introspection/
|
|
142
|
+
"import": "./dist/introspection/index.js",
|
|
143
|
+
"types": "./dist/introspection/index.d.ts"
|
|
168
144
|
},
|
|
169
|
-
"./json/package.json": "./json/package.json",
|
|
170
145
|
"./json": {
|
|
171
|
-
"import": "./json/
|
|
172
|
-
"types": "./json/
|
|
146
|
+
"import": "./dist/json/index.js",
|
|
147
|
+
"types": "./dist/json/index.d.ts"
|
|
173
148
|
},
|
|
174
|
-
"./react/package.json": "./react/package.json",
|
|
175
149
|
"./react": {
|
|
176
|
-
"import": "./react/
|
|
177
|
-
"types": "./react/
|
|
150
|
+
"import": "./dist/react/index.js",
|
|
151
|
+
"types": "./dist/react/index.d.ts"
|
|
178
152
|
},
|
|
179
|
-
"./react-devtools/package.json": "./react-devtools/package.json",
|
|
180
153
|
"./react-devtools": {
|
|
181
|
-
"import": "./react-devtools/
|
|
182
|
-
"types": "./react-devtools/
|
|
154
|
+
"import": "./dist/react-devtools/index.js",
|
|
155
|
+
"types": "./dist/react-devtools/index.d.ts"
|
|
183
156
|
},
|
|
184
|
-
"./realtime/package.json": "./realtime/package.json",
|
|
185
157
|
"./realtime": {
|
|
186
|
-
"import": "./realtime/
|
|
187
|
-
"types": "./realtime/
|
|
158
|
+
"import": "./dist/realtime/index.js",
|
|
159
|
+
"types": "./dist/realtime/index.d.ts"
|
|
188
160
|
},
|
|
189
|
-
"./realtime-client/package.json": "./realtime-client/package.json",
|
|
190
161
|
"./realtime-client": {
|
|
191
|
-
"import": "./realtime-client/
|
|
192
|
-
"types": "./realtime-client/
|
|
162
|
+
"import": "./dist/realtime-client/index.js",
|
|
163
|
+
"types": "./dist/realtime-client/index.d.ts"
|
|
193
164
|
},
|
|
194
|
-
"./realtime-react/package.json": "./realtime-react/package.json",
|
|
195
165
|
"./realtime-react": {
|
|
196
|
-
"import": "./realtime-react/
|
|
197
|
-
"types": "./realtime-react/
|
|
166
|
+
"import": "./dist/realtime-react/index.js",
|
|
167
|
+
"types": "./dist/realtime-react/index.d.ts"
|
|
198
168
|
},
|
|
199
|
-
"./realtime-server/package.json": "./realtime-server/package.json",
|
|
200
169
|
"./realtime-server": {
|
|
201
|
-
"import": "./realtime-server/
|
|
202
|
-
"types": "./realtime-server/
|
|
170
|
+
"import": "./dist/realtime-server/index.js",
|
|
171
|
+
"types": "./dist/realtime-server/index.d.ts"
|
|
203
172
|
},
|
|
204
|
-
"./realtime-testing/package.json": "./realtime-testing/package.json",
|
|
205
173
|
"./realtime-testing": {
|
|
206
|
-
"import": "./realtime-testing/
|
|
207
|
-
"types": "./realtime-testing/
|
|
174
|
+
"import": "./dist/realtime-testing/index.js",
|
|
175
|
+
"types": "./dist/realtime-testing/index.d.ts"
|
|
208
176
|
},
|
|
209
|
-
"./transceivers/set-rtx/package.json": "./transceivers/set-rtx/package.json",
|
|
210
177
|
"./transceivers/set-rtx": {
|
|
211
|
-
"import": "./transceivers/set-rtx/
|
|
212
|
-
"types": "./transceivers/set-rtx/
|
|
178
|
+
"import": "./dist/transceivers/set-rtx/index.js",
|
|
179
|
+
"types": "./dist/transceivers/set-rtx/index.d.ts"
|
|
213
180
|
},
|
|
214
|
-
"./web/package.json": "./web/package.json",
|
|
215
181
|
"./web": {
|
|
216
|
-
"import": "./web/
|
|
217
|
-
"types": "./web/
|
|
182
|
+
"import": "./dist/web/index.js",
|
|
183
|
+
"types": "./dist/web/index.d.ts"
|
|
218
184
|
}
|
|
219
185
|
},
|
|
220
186
|
"scripts": {
|
|
221
187
|
"manifest": "tsx __scripts__/manifest-build.node.ts",
|
|
222
|
-
"
|
|
223
|
-
"build": "bun run clean:build && concurrently \"bun:build:*\"",
|
|
224
|
-
"build:main": "tsup-node",
|
|
225
|
-
"build:types": "tsup-node --dts",
|
|
226
|
-
"build:data": "cd data && tsup-node",
|
|
227
|
-
"build:eslint-plugin": "cd eslint-plugin && tsup-node",
|
|
228
|
-
"build:internal": "cd internal && tsup-node",
|
|
229
|
-
"build:introspection": "cd introspection && tsup-node",
|
|
230
|
-
"build:json": "cd json && tsup-node",
|
|
231
|
-
"build:react": "cd react && tsup-node",
|
|
232
|
-
"build:react-devtools": "cd react-devtools && tsup-node",
|
|
233
|
-
"build:realtime": "cd realtime && tsup-node",
|
|
234
|
-
"build:realtime-client": "cd realtime-client && tsup-node",
|
|
235
|
-
"build:realtime-react": "cd realtime-react && tsup-node",
|
|
236
|
-
"build:realtime-server": "cd realtime-server && tsup-node",
|
|
237
|
-
"build:realtime-testing": "cd realtime-testing && tsup-node",
|
|
238
|
-
"build:transceivers:set-rtx": "cd transceivers/set-rtx && tsup-node",
|
|
239
|
-
"build:web": "cd web && tsup-node",
|
|
188
|
+
"build": "tsdown && bun ./__scripts__/build-sort.bun.ts",
|
|
240
189
|
"lint:biome": "biome check -- .",
|
|
241
190
|
"lint:eslint": "eslint -- .",
|
|
242
191
|
"lint:types": "tsc --noEmit",
|
|
@@ -4,9 +4,11 @@ import * as Rules from "./rules"
|
|
|
4
4
|
|
|
5
5
|
export { Rules }
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
const plugin: ESLint.Plugin = {
|
|
8
8
|
rules: {
|
|
9
9
|
"explicit-state-types": Rules.explicitStateTypes as any,
|
|
10
10
|
"synchronous-selector-dependencies": Rules.synchronousSelectorDependencies,
|
|
11
11
|
},
|
|
12
12
|
} satisfies ESLint.Plugin
|
|
13
|
+
|
|
14
|
+
export default plugin
|
|
@@ -7,7 +7,12 @@ const createRule = ESLintUtils.RuleCreator(
|
|
|
7
7
|
|
|
8
8
|
const STATE_FUNCTIONS = [`atom`, `atomFamily`, `selector`, `selectorFamily`]
|
|
9
9
|
|
|
10
|
-
export const explicitStateTypes
|
|
10
|
+
export const explicitStateTypes: ESLintUtils.RuleModule<
|
|
11
|
+
`noTypeArgument`,
|
|
12
|
+
[],
|
|
13
|
+
unknown,
|
|
14
|
+
ESLintUtils.RuleListener
|
|
15
|
+
> = createRule({
|
|
11
16
|
name: `explicit-state-types`,
|
|
12
17
|
meta: {
|
|
13
18
|
type: `problem`,
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/switch-exhaustiveness-check */
|
|
2
|
+
import type { RuleType } from "@eslint/core"
|
|
2
3
|
import type { Rule } from "eslint"
|
|
3
4
|
import type * as ESTree from "estree"
|
|
4
5
|
|
|
5
6
|
import { walk } from "../walk"
|
|
6
7
|
|
|
7
|
-
export const synchronousSelectorDependencies
|
|
8
|
+
export const synchronousSelectorDependencies: {
|
|
9
|
+
meta: {
|
|
10
|
+
type: RuleType
|
|
11
|
+
docs: {
|
|
12
|
+
description: string
|
|
13
|
+
category: string
|
|
14
|
+
recommended: boolean
|
|
15
|
+
url: string
|
|
16
|
+
}
|
|
17
|
+
schema: never[]
|
|
18
|
+
}
|
|
19
|
+
create(context: Rule.RuleContext): Rule.NodeListener
|
|
20
|
+
} = {
|
|
8
21
|
meta: {
|
|
9
22
|
type: `problem`,
|
|
10
23
|
docs: {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export * from "./create-atom-family"
|
|
2
2
|
export * from "./create-readonly-selector-family"
|
|
3
|
+
export * from "./create-readonly-selector-family"
|
|
3
4
|
export * from "./create-regular-atom-family"
|
|
4
5
|
export * from "./create-selector-family"
|
|
6
|
+
export * from "./create-writable-selector-family"
|
|
5
7
|
export * from "./dispose-from-store"
|
|
6
8
|
export * from "./find-in-store"
|
|
7
9
|
export * from "./init-family-member"
|
|
@@ -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
|