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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["options: MutableAtomOptions<T, J>","options: RegularAtomOptions<T>","next: New | Setter<T, New>","callback: (options: { newValue: T; oldValue: T }) => void","options: { newValue: T; oldValue: T }","tools: Effectors<T>","key: K","options: MutableAtomFamilyOptions<T, J, K>","options: RegularAtomFamilyOptions<T, K>","state: MutableAtomToken<T, J>","toolkit: GetterToolkit","toolkit: SetterToolkit","toolkit: ActorToolkit","options: TransactionOptions<F>","token: TransactionToken<F>","id: string","newValue: T","options: WritableSelectorOptions<T>","options: ReadonlySelectorOptions<T>","key: K","options: WritableSelectorFamilyOptions<T, K>","options: ReadonlySelectorFamilyOptions<T, K>","update: TimelineUpdate<ManagedAtom>","timeline: Timeline<TimelineManageable>","options: TimelineOptions<ManagedAtom>","tl: TimelineToken<any>","token: ReadableToken<any>","token: ReadableFamilyToken<any, K>","key: K","token: MutableAtomFamilyToken<T, J, K>","key: Key","token: RegularAtomFamilyToken<T, K>","token: WritableSelectorFamilyToken<T, K>","token: ReadonlySelectorFamilyToken<T, K>","token: WritableFamilyToken<T, K>","token: ReadableFamilyToken<T, K>","token: ReadableToken<T>","token: ReadableFamilyToken<T, K>","key: Key","options: JoinOptions<ASide, AType, BSide, BType, Cardinality, null>","defaultContent?: undefined","store?: Store","options: JoinOptions<ASide, AType, BSide, BType, Cardinality, Content>","defaultContent: Content","token: JoinToken<ASide, AType, BSide, BType, Cardinality, Content>","key: AType | BType","change: (relations: Junction<ASide, AType, BSide, BType, Content>) => void","relations: Junction<ASide, AType, BSide, BType, Content>","icon: LoggerIcon","denomination: TokenDenomination","tokenKey: string","message: string","logLevel: keyof Logger","simpleLogger: Logger","logLevel: `error` | `info` | `warn` | null","filter?: LogFilter","logger: Logger","$claim: unique symbol","store: Store","provenance: A","key: V","attachmentStyle?: `all` | `any`","type: T","reagentA: SingularTypedKey<A>","reagentB: SingularTypedKey<B>","claim: Claim<V>","newProvenance: A","exclusive?: `exclusive`","provenance: Canonical","key: Canonical","newProvenance: Canonical","oldValue: T","token: WritableToken<T>","value: New | Setter<T, New>","token: WritableFamilyToken<T, K>","key: Key","tokens: AtomIOToken[]","store?: Store","config: Store[`config`]","fromStore: Store | null","update: StateUpdate<T>","data: TransactionUpdate<F>","token: ReadableToken<T>","handleUpdate: UpdateHandler<T>","key?: string","token: TransactionToken<F>","handleUpdate: TransactionUpdateHandler<F>","token: TimelineToken<M>","handleUpdate: (update: TimelineUpdate<M> | `redo` | `undo`) => void","update: TimelineUpdate<M> | `redo` | `undo`","knownToken: KnownToken","unknownToken: ReadableToken<any>","family: Family"],"sources":["../../src/main/atom.ts","../../src/main/transaction.ts","../../src/main/selector.ts","../../src/main/timeline.ts","../../src/main/dispose-state.ts","../../src/main/find-state.ts","../../src/main/get-state.ts","../../src/main/join.ts","../../src/main/logger.ts","../../src/main/realm.ts","../../src/main/set-state.ts","../../src/main/silo.ts","../../src/main/subscribe.ts","../../src/main/validators.ts","../../src/main/index.ts"],"sourcesContent":null,"mappings":"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EAAM,MAEV,CAAA,EcgBP,cdhBO,CcgBQ,CdhBR,CAAA;EAAA;EAAiB,GAAA,CAAA,EckB3B,CdlBgB;AAAA,CAAA;AAGvB;AAAY,KckBA,adlBA,CAAA,CAAA,EAAoC,UckBT,SdfhC,GAAA,GAAA,CAAA,GcgBJ,qBdfI,CcekB,CdflB,EceqB,CdfrB,CAAA,GcgBJ,qBdhBI,CcgBkB,CdhBlB,EcgBqB,CdhBrB,CAAA;AAAA;AAIP;;;AAEW,KcgBC,adhBI,CAAA,CAAA,EACL,Uce4B,SdbtB,GAAA,GAAA,CAAA,Gccd,SddiB,CccP,CddO,EccJ,CddI,CAAA,GcejB,qBdfiB,CceK,CdfL,EceQ,CdfR,CAAA;;;;;AAIe,KcgBvB,adhBuB,CAAA,CAAA,EAAX,UcgBe,SdhBf,GAAA,GAAA,CAIxB,GcaG,SdbS,CcaC,CdbD,EcaI,CdbJ,CAAA,GccT,addS,CccK,CddL,EccQ,CddR,CAAA;;;;;AAOL,KcaK,mBdbL,CAAA,CAAA,EACA,UcYsC,SdXtC,CAAA,GcYJ,edZI,CcYY,CdZZ,EcYe,CdZf,CAAA,GcaJ,2BdbI,CcawB,CdbxB,Eca2B,Cdb3B,CAAA;AAGP;;;;AAC0B,Kccd,mBddc,CAAA,CAAA,EAAU,UccS,SddU,CAAA,GcepD,edfoE,CcepD,CdfoD,EcejD,CdfiD,CAAA,GcgBpE,mBdhBoE,CcgBhD,CdhBgD,EcgB7C,CdhB6C,CAAA;;;;;AACpE,KcqBS,cdrBT,CAAA,UcqBkC,SdrBlC,GAAA,GAAA,CAAA,GAAA;EAEH;EAAgB,GAAA,EAAA,MAAA;EAAA;EACL,MACA,EcqBF,WdrBO,CcqBK,CdrBL,CAAA;CAAA;AAEoB,KcsBxB,QdtBwB,CAAA,CAAA,CAAA,GcsBV,OdtBU,CcsBF,CdtBE,CAAA,GcsBG,CdtBH"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import * as Internal$2 from "atom.io/internal";
|
|
2
|
+
import * as Internal$1 from "atom.io/internal";
|
|
3
|
+
import * as Internal from "atom.io/internal";
|
|
4
|
+
import { IMPLICIT, Join, Store, actUponStore, allocateIntoStore, arbitrary, claimWithinStore, createAtomFamily, createSelectorFamily, createStandaloneAtom, createStandaloneSelector, createTimeline, createTransaction, deallocateFromStore, disposeFromStore, editRelationsInStore, findInStore, findRelationsInStore, fuseWithinStore, getFromStore, getInternalRelationsFromStore, installIntoStore, makeRootMoleculeInStore, setIntoStore, subscribeInStore, timeTravel } from "atom.io/internal";
|
|
5
|
+
|
|
6
|
+
//#region src/main/atom.ts
|
|
7
|
+
function atom(options) {
|
|
8
|
+
return createStandaloneAtom(IMPLICIT.STORE, options);
|
|
9
|
+
}
|
|
10
|
+
function atomFamily(options) {
|
|
11
|
+
return createAtomFamily(IMPLICIT.STORE, options);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region src/main/dispose-state.ts
|
|
16
|
+
function disposeState(...[token, key]) {
|
|
17
|
+
if (key) Internal$2.disposeFromStore(Internal$2.IMPLICIT.STORE, token, key);
|
|
18
|
+
else Internal$2.disposeFromStore(Internal$2.IMPLICIT.STORE, token);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
//#endregion
|
|
22
|
+
//#region src/main/find-state.ts
|
|
23
|
+
function findState(token, key) {
|
|
24
|
+
const state = findInStore(IMPLICIT.STORE, token, key);
|
|
25
|
+
return state;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//#endregion
|
|
29
|
+
//#region src/main/get-state.ts
|
|
30
|
+
function getState(...params) {
|
|
31
|
+
if (params.length === 2) return Internal$1.getFromStore(Internal$1.IMPLICIT.STORE, ...params);
|
|
32
|
+
return Internal$1.getFromStore(Internal$1.IMPLICIT.STORE, ...params);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
//#region src/main/join.ts
|
|
37
|
+
function join(options, defaultContent, store = IMPLICIT.STORE) {
|
|
38
|
+
store.joins.set(options.key, new Join(options, defaultContent, store));
|
|
39
|
+
const token = {
|
|
40
|
+
key: options.key,
|
|
41
|
+
type: `join`,
|
|
42
|
+
a: options.between[0],
|
|
43
|
+
b: options.between[1],
|
|
44
|
+
cardinality: options.cardinality
|
|
45
|
+
};
|
|
46
|
+
return token;
|
|
47
|
+
}
|
|
48
|
+
function findRelations(token, key) {
|
|
49
|
+
return findRelationsInStore(token, key, IMPLICIT.STORE);
|
|
50
|
+
}
|
|
51
|
+
function editRelations(token, change) {
|
|
52
|
+
editRelationsInStore(token, change, IMPLICIT.STORE);
|
|
53
|
+
}
|
|
54
|
+
function getInternalRelations(token) {
|
|
55
|
+
return getInternalRelationsFromStore(token, IMPLICIT.STORE);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
//#endregion
|
|
59
|
+
//#region src/main/logger.ts
|
|
60
|
+
const LOG_LEVELS = [
|
|
61
|
+
`info`,
|
|
62
|
+
`warn`,
|
|
63
|
+
`error`
|
|
64
|
+
];
|
|
65
|
+
const simpleLog = (logLevel) => (icon, denomination, tokenKey, message, ...rest) => {
|
|
66
|
+
console[logLevel](`${icon} ${denomination} "${tokenKey}" ${message}`, ...rest);
|
|
67
|
+
};
|
|
68
|
+
const simpleLogger = {
|
|
69
|
+
error: simpleLog(`error`),
|
|
70
|
+
info: simpleLog(`info`),
|
|
71
|
+
warn: simpleLog(`warn`)
|
|
72
|
+
};
|
|
73
|
+
var AtomIOLogger = class {
|
|
74
|
+
logLevel;
|
|
75
|
+
filter;
|
|
76
|
+
logger;
|
|
77
|
+
constructor(logLevel, filter, logger = simpleLogger) {
|
|
78
|
+
this.logLevel = logLevel;
|
|
79
|
+
this.filter = filter;
|
|
80
|
+
this.logger = logger;
|
|
81
|
+
}
|
|
82
|
+
error = (...args) => {
|
|
83
|
+
if ((this.filter?.(...args) ?? true) && this.logLevel !== null) this.logger.error(...args);
|
|
84
|
+
};
|
|
85
|
+
info = (...args) => {
|
|
86
|
+
if ((this.filter?.(...args) ?? true) && this.logLevel === `info`) this.logger.info(...args);
|
|
87
|
+
};
|
|
88
|
+
warn = (...args) => {
|
|
89
|
+
if ((this.filter?.(...args) ?? true) && this.logLevel !== `error` && this.logLevel !== null) this.logger.warn(...args);
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
//#endregion
|
|
94
|
+
//#region src/main/realm.ts
|
|
95
|
+
const $claim = Symbol.for(`claim`);
|
|
96
|
+
var Realm = class {
|
|
97
|
+
store;
|
|
98
|
+
constructor(store = IMPLICIT.STORE) {
|
|
99
|
+
this.store = store;
|
|
100
|
+
makeRootMoleculeInStore(`root`, store);
|
|
101
|
+
}
|
|
102
|
+
allocate(provenance, key, attachmentStyle) {
|
|
103
|
+
return allocateIntoStore(this.store, provenance, key, attachmentStyle);
|
|
104
|
+
}
|
|
105
|
+
fuse(type, reagentA, reagentB) {
|
|
106
|
+
return fuseWithinStore(this.store, type, reagentA, reagentB);
|
|
107
|
+
}
|
|
108
|
+
deallocate(claim) {
|
|
109
|
+
deallocateFromStore(this.store, claim);
|
|
110
|
+
}
|
|
111
|
+
claim(newProvenance, claim, exclusive) {
|
|
112
|
+
return claimWithinStore(this.store, newProvenance, claim, exclusive);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
var Anarchy = class {
|
|
116
|
+
store;
|
|
117
|
+
realm;
|
|
118
|
+
constructor(store = IMPLICIT.STORE) {
|
|
119
|
+
this.store = store;
|
|
120
|
+
this.realm = new Realm(store);
|
|
121
|
+
}
|
|
122
|
+
allocate(provenance, key, attachmentStyle) {
|
|
123
|
+
allocateIntoStore(this.store, provenance, key, attachmentStyle);
|
|
124
|
+
}
|
|
125
|
+
deallocate(key) {
|
|
126
|
+
deallocateFromStore(this.store, key);
|
|
127
|
+
}
|
|
128
|
+
claim(newProvenance, key, exclusive) {
|
|
129
|
+
claimWithinStore(this.store, newProvenance, key, exclusive);
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
const T$ = `T$`;
|
|
133
|
+
|
|
134
|
+
//#endregion
|
|
135
|
+
//#region src/main/selector.ts
|
|
136
|
+
function selector(options) {
|
|
137
|
+
return createStandaloneSelector(IMPLICIT.STORE, options);
|
|
138
|
+
}
|
|
139
|
+
function selectorFamily(options) {
|
|
140
|
+
return createSelectorFamily(IMPLICIT.STORE, options);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
//#endregion
|
|
144
|
+
//#region src/main/set-state.ts
|
|
145
|
+
function setState(...params) {
|
|
146
|
+
if (params.length === 2) Internal.setIntoStore(Internal.IMPLICIT.STORE, ...params);
|
|
147
|
+
else Internal.setIntoStore(Internal.IMPLICIT.STORE, ...params);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
//#endregion
|
|
151
|
+
//#region src/main/silo.ts
|
|
152
|
+
var Silo = class {
|
|
153
|
+
store;
|
|
154
|
+
atom;
|
|
155
|
+
atomFamily;
|
|
156
|
+
selector;
|
|
157
|
+
selectorFamily;
|
|
158
|
+
transaction;
|
|
159
|
+
timeline;
|
|
160
|
+
findState;
|
|
161
|
+
getState;
|
|
162
|
+
setState;
|
|
163
|
+
disposeState;
|
|
164
|
+
subscribe;
|
|
165
|
+
undo;
|
|
166
|
+
redo;
|
|
167
|
+
runTransaction;
|
|
168
|
+
install;
|
|
169
|
+
constructor(config, fromStore = null) {
|
|
170
|
+
const s = this.store = new Store(config, fromStore);
|
|
171
|
+
this.atom = (options) => createStandaloneAtom(s, options);
|
|
172
|
+
this.atomFamily = (options) => createAtomFamily(s, options);
|
|
173
|
+
this.selector = (options) => createStandaloneSelector(s, options);
|
|
174
|
+
this.selectorFamily = (options) => createSelectorFamily(s, options);
|
|
175
|
+
this.transaction = (options) => createTransaction(s, options);
|
|
176
|
+
this.timeline = (options) => createTimeline(s, options);
|
|
177
|
+
this.findState = (...params) => findInStore(s, ...params);
|
|
178
|
+
this.getState = (...params) => getFromStore(s, ...params);
|
|
179
|
+
this.setState = (...params) => {
|
|
180
|
+
setIntoStore(s, ...params);
|
|
181
|
+
};
|
|
182
|
+
this.disposeState = (...params) => {
|
|
183
|
+
disposeFromStore(s, ...params);
|
|
184
|
+
};
|
|
185
|
+
this.subscribe = (...params) => subscribeInStore(s, ...params);
|
|
186
|
+
this.undo = (token) => {
|
|
187
|
+
timeTravel(s, `undo`, token);
|
|
188
|
+
};
|
|
189
|
+
this.redo = (token) => {
|
|
190
|
+
timeTravel(s, `redo`, token);
|
|
191
|
+
};
|
|
192
|
+
this.runTransaction = (token, id = arbitrary()) => actUponStore(s, token, id);
|
|
193
|
+
this.install = (tokens, source = IMPLICIT.STORE) => {
|
|
194
|
+
installIntoStore(tokens, s, source);
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
//#endregion
|
|
200
|
+
//#region src/main/subscribe.ts
|
|
201
|
+
function subscribe(token, handleUpdate, key = arbitrary()) {
|
|
202
|
+
return subscribeInStore(IMPLICIT.STORE, token, handleUpdate, key);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
//#endregion
|
|
206
|
+
//#region src/main/timeline.ts
|
|
207
|
+
const timeline = (options) => {
|
|
208
|
+
return createTimeline(IMPLICIT.STORE, options);
|
|
209
|
+
};
|
|
210
|
+
const redo = (tl) => {
|
|
211
|
+
timeTravel(IMPLICIT.STORE, `redo`, tl);
|
|
212
|
+
};
|
|
213
|
+
const undo = (tl) => {
|
|
214
|
+
timeTravel(IMPLICIT.STORE, `undo`, tl);
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
//#endregion
|
|
218
|
+
//#region src/main/transaction.ts
|
|
219
|
+
function transaction(options) {
|
|
220
|
+
return createTransaction(IMPLICIT.STORE, options);
|
|
221
|
+
}
|
|
222
|
+
function runTransaction(token, id = arbitrary()) {
|
|
223
|
+
return actUponStore(IMPLICIT.STORE, token, id);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
//#endregion
|
|
227
|
+
//#region src/main/validators.ts
|
|
228
|
+
function isToken(knownToken, unknownToken) {
|
|
229
|
+
return knownToken.key === unknownToken.key;
|
|
230
|
+
}
|
|
231
|
+
function belongsTo(family, unknownToken) {
|
|
232
|
+
return family.key === unknownToken.family?.key;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
//#endregion
|
|
236
|
+
export { $claim, Anarchy, AtomIOLogger, LOG_LEVELS, Realm, Silo, T$, atom, atomFamily, belongsTo, disposeState, editRelations, findRelations, findState, getInternalRelations, getState, isToken, join, redo, runTransaction, selector, selectorFamily, setState, simpleLog, simpleLogger, subscribe, timeline, transaction, undo };
|
|
237
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["options: MutableAtomOptions<any, any> | RegularAtomOptions<any>","options:\n\t\t| MutableAtomFamilyOptions<any, any, any>\n\t\t| RegularAtomFamilyOptions<T, K>","Internal","token: ReadableFamilyToken<any, any>","key: Json.Serializable","Internal","options: JoinOptions<ASide, AType, BSide, BType, Cardinality, Content>","defaultContent: Content | undefined","store: Store","token: JoinToken<ASide, AType, BSide, BType, Cardinality, Content>","key: AType | BType","change: (relations: Junction<ASide, AType, BSide, BType, Content>) => void","logLevel: keyof Logger","simpleLogger: Logger","logLevel: `error` | `info` | `warn` | null","filter?: LogFilter","logger: Logger","$claim: unique symbol","store: Store","provenance: A","key: V","attachmentStyle?: `all` | `any`","type: T","reagentA: SingularTypedKey<A>","reagentB: SingularTypedKey<B>","claim: Claim<V>","newProvenance: A","exclusive?: `exclusive`","provenance: Canonical","key: Canonical","newProvenance: Canonical","options: ReadonlySelectorOptions<T> | WritableSelectorOptions<T>","options:\n\t\t| ReadonlySelectorFamilyOptions<T, K>\n\t\t| WritableSelectorFamilyOptions<T, K>","config: Store[`config`]","fromStore: Store | null","options: Parameters<typeof atom>[0]","options: Parameters<typeof atomFamily>[0]","options: Parameters<typeof selector>[0]","options: Parameters<typeof selectorFamily>[0]","token: ReadableToken<any> | TimelineToken<any> | TransactionToken<any>","handleUpdate: (update: any) => void","key: string","options: TimelineOptions<ManagedAtom>","tl: TimelineToken<any>","options: TransactionOptions<F>","token: TransactionToken<F>","id: string","knownToken: KnownToken","unknownToken: ReadableToken<any>","family: Family"],"sources":["../../src/main/atom.ts","../../src/main/dispose-state.ts","../../src/main/find-state.ts","../../src/main/get-state.ts","../../src/main/join.ts","../../src/main/logger.ts","../../src/main/realm.ts","../../src/main/selector.ts","../../src/main/set-state.ts","../../src/main/silo.ts","../../src/main/subscribe.ts","../../src/main/timeline.ts","../../src/main/transaction.ts","../../src/main/validators.ts"],"sourcesContent":["import type { Transceiver } from \"atom.io/internal\"\nimport {\n\tcreateAtomFamily,\n\tcreateStandaloneAtom,\n\tIMPLICIT,\n} from \"atom.io/internal\"\nimport type { Canonical, Json, JsonInterface } from \"atom.io/json\"\n\nimport type { AtomToken, MutableAtomToken, RegularAtomToken, Setter } from \".\"\n\n/**\n * @public\n * Create a mutable atom, a global reactive variable in the implicit store\n *\n * The value of a mutable atom must be some kind of {@link Transceiver}.\n *\n * @param options - {@link MutableAtomOptions}.\n * @returns\n * A reference to the atom created: a {@link MutableAtomToken}\n * @overload Mutable\n */\nexport function atom<T extends Transceiver<any>, J extends Json.Serializable>(\n\toptions: MutableAtomOptions<T, J>,\n): MutableAtomToken<T, J>\n\n/**\n * @public\n * Create a regular atom, a global reactive variable in the implicit store\n * @param options - {@link RegularAtomOptions}.\n * @returns\n * A reference to the atom created: a {@link RegularAtomToken}\n * @overload Regular\n */\nexport function atom<T>(options: RegularAtomOptions<T>): RegularAtomToken<T>\nexport function atom(\n\toptions: MutableAtomOptions<any, any> | RegularAtomOptions<any>,\n): AtomToken<any> {\n\treturn createStandaloneAtom(IMPLICIT.STORE, options)\n}\n\n/** @public */\nexport type Effectors<T> = {\n\t/**\n\t * Set the value of the atom\n\t * @param next - The new value of the atom, or a setter function\n\t */\n\tsetSelf: <New extends T>(next: New | Setter<T, New>) => void\n\t/** Subscribe to changes to the atom */\n\tonSet: (callback: (options: { newValue: T; oldValue: T }) => void) => void\n}\n\n/**\n * @public\n * A function that runs side effects when the atom is set\n * @param tools - {@link Effectors} that can be used to run side effects\n * @returns\n * Optionally, a cleanup function that will be called when the atom is disposed\n */\nexport type AtomEffect<T> = (tools: Effectors<T>) => (() => void) | void\n\n/** @public */\nexport type RegularAtomOptions<T> = {\n\t/** The unique identifier of the atom */\n\tkey: string\n\t/** The starting value of the atom */\n\tdefault: T | (() => T)\n\t/** Hooks used to run side effects when the atom is set */\n\teffects?: AtomEffect<T>[]\n}\n// biome-ignore format: complex intersection\nexport type MutableAtomOptions<T extends Transceiver<any>, J extends Json.Serializable> = \n\t& JsonInterface<T, J>\n\t& Omit<RegularAtomOptions<T>, `default`> \n\t& { \n\t\t\tdefault: ()\t=> T\n\t\t\tmutable: true\n\t\t}\n\n/** @public */\nexport type RegularAtomFamilyOptions<T, K extends Canonical> = {\n\t/** The unique identifier of the atom family */\n\tkey: string\n\t/** The starting value of the atom family */\n\tdefault: T | ((key: K) => T)\n\t/** Hooks used to run side effects when an atom in the family is set */\n\teffects?: (key: K) => AtomEffect<T>[]\n}\n\nexport type RegularAtomFamilyToken<T, K extends Canonical> = {\n\tkey: string\n\ttype: `atom_family`\n\t__T?: T\n\t__K?: K\n}\n\n// biome-ignore format: intersection\nexport type MutableAtomFamilyOptions<\n\tT extends Transceiver<any>,\n\tJ extends Json.Serializable,\n\tK extends Canonical,\n> = \n\t& JsonInterface<T, J>\n\t& { \n\t\tkey: string\n\t\tdefault: (key: K) => T\n\t\teffects?: (key: K) => AtomEffect<T>[]\n\t\tmutable: true,\n\t}\n\nexport type MutableAtomFamilyToken<\n\tT extends Transceiver<any>,\n\tJ extends Json.Serializable,\n\tK extends Canonical,\n> = {\n\tkey: string\n\ttype: `mutable_atom_family`\n\t__T?: T\n\t__J?: J\n\t__K?: K\n}\n\nexport type AtomFamilyToken<T, K extends Canonical = Canonical> =\n\t| MutableAtomFamilyToken<T extends Transceiver<any> ? T : never, any, K>\n\t| RegularAtomFamilyToken<T, K>\n\nexport function atomFamily<\n\tT extends Transceiver<any>,\n\tJ extends Json.Serializable,\n\tK extends Canonical,\n>(options: MutableAtomFamilyOptions<T, J, K>): MutableAtomFamilyToken<T, J, K>\nexport function atomFamily<T, K extends Canonical>(\n\toptions: RegularAtomFamilyOptions<T, K>,\n): RegularAtomFamilyToken<T, K>\nexport function atomFamily<T, K extends Canonical>(\n\toptions:\n\t\t| MutableAtomFamilyOptions<any, any, any>\n\t\t| RegularAtomFamilyOptions<T, K>,\n): MutableAtomFamilyToken<any, any, any> | RegularAtomFamilyToken<T, K> {\n\treturn createAtomFamily(IMPLICIT.STORE, options)\n}\n","import * as Internal from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\n\nimport type { ReadableFamilyToken, ReadableToken } from \".\"\n\n/**\n * @public\n * Disposes of a state in the implicit store\n * @param token - The token of the state to dispose\n * @overload Default\n */\nexport function disposeState(token: ReadableToken<any>): void\n/**\n * @public\n * Disposes of a state family in the implicit store\n * @param token - The token of the state family to dispose\n * @param key - The unique key of the state to dispose\n */\nexport function disposeState<K extends Canonical>(\n\ttoken: ReadableFamilyToken<any, K>,\n\tkey: K,\n): void\nexport function disposeState(\n\t...[token, key]:\n\t\t| [token: ReadableFamilyToken<any, any>, key: Canonical]\n\t\t| [token: ReadableToken<any>]\n): void {\n\tif (key) {\n\t\tInternal.disposeFromStore(Internal.IMPLICIT.STORE, token as any, key)\n\t} else {\n\t\tInternal.disposeFromStore(Internal.IMPLICIT.STORE, token as any)\n\t}\n}\n","import type {\n\tMutableAtomFamilyToken,\n\tMutableAtomToken,\n\tReadableFamilyToken,\n\tReadableToken,\n\tReadonlySelectorFamilyToken,\n\tReadonlySelectorToken,\n\tRegularAtomFamilyToken,\n\tRegularAtomToken,\n\tWritableFamilyToken,\n\tWritableSelectorFamilyToken,\n\tWritableSelectorToken,\n\tWritableToken,\n} from \"atom.io\"\nimport type { Transceiver } from \"atom.io/internal\"\nimport { findInStore, IMPLICIT } from \"atom.io/internal\"\nimport type { Canonical, Json } from \"atom.io/json\"\n\n/**\n * @public\n * Finds a {@link MutableAtomToken} in the store\n * @param token - A {@link MutableAtomFamilyToken}\n * @param key - The key of the state\n * @returns\n * The current value of the state\n * @overload Mutable Atom\n */\nexport function findState<\n\tT extends Transceiver<any>,\n\tJ extends Json.Serializable,\n\tK extends Canonical,\n\tKey extends K,\n>(token: MutableAtomFamilyToken<T, J, K>, key: Key): MutableAtomToken<T, J, K>\n/**\n * @public\n * Finds a state in the store\n * @param token - The token of the state family\n * @param key - The key of the state\n * @returns\n * The current value of the state\n * @overload Regular Atom\n */\nexport function findState<T, K extends Canonical, Key extends K>(\n\ttoken: RegularAtomFamilyToken<T, K>,\n\tkey: Key,\n): RegularAtomToken<T, K>\n/**\n * @public\n * Finds a state in the store\n * @param token - The token of the state family\n * @param key - The key of the state\n * @returns\n * The current value of the state\n * @overload Writable Selector\n */\nexport function findState<T, K extends Canonical, Key extends K>(\n\ttoken: WritableSelectorFamilyToken<T, K>,\n\tkey: Key,\n): WritableSelectorToken<T, K>\n/**\n * @public\n * Finds a state in the store\n * @param token - The token of the state family\n * @param key - The key of the state\n * @returns\n * The current value of the state\n * @overload Readonly Selector\n */\nexport function findState<T, K extends Canonical, Key extends K>(\n\ttoken: ReadonlySelectorFamilyToken<T, K>,\n\tkey: Key,\n): ReadonlySelectorToken<T, K>\n/**\n * @public\n * Finds a state in the store\n * @param token - The token of the state family\n * @param key - The key of the state\n * @returns\n * The current value of the state\n * @overload Writable State\n */\nexport function findState<T, K extends Canonical, Key extends K>(\n\ttoken: WritableFamilyToken<T, K>,\n\tkey: Key,\n): WritableToken<T, K>\n/**\n * @public\n * Finds a {@link ReadableToken} in the store\n * @param token - A {@link ReadableFamilyToken}\n * @param key - The key of the state\n * @returns\n * The current value of the state\n * @overload Unknown\n * @default\n */\nexport function findState<T, K extends Canonical, Key extends K>(\n\ttoken: ReadableFamilyToken<T, K>,\n\tkey: Key,\n): ReadableToken<T, K>\n\nexport function findState(\n\ttoken: ReadableFamilyToken<any, any>,\n\tkey: Json.Serializable,\n): ReadableToken<any> {\n\tconst state = findInStore(IMPLICIT.STORE, token, key)\n\treturn state\n}\n","import * as Internal from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\n\nimport type { ReadableFamilyToken, ReadableToken } from \".\"\n\n/**\n * @public\n * Get the current value of a state\n * @param token - The token of the state to get\n * @return The current value of the state\n * @overload Default\n * @default\n */\nexport function getState<T>(token: ReadableToken<T>): T\n\n/**\n * @public\n * Get the current value of a state family\n * @param token - The token of a state family\n * @param key - The unique key of the state to get\n * @return The current value of the state\n * @overload Streamlined\n */\nexport function getState<T, K extends Canonical, Key extends K>(\n\ttoken: ReadableFamilyToken<T, K>,\n\tkey: Key,\n): T\n\nexport function getState(\n\t...params:\n\t\t| [token: ReadableFamilyToken<any, any>, key: Canonical]\n\t\t| [token: ReadableToken<any>]\n): any {\n\tif (params.length === 2) {\n\t\treturn Internal.getFromStore(Internal.IMPLICIT.STORE, ...params)\n\t}\n\treturn Internal.getFromStore(Internal.IMPLICIT.STORE, ...params)\n}\n","import type { MutableAtomFamilyToken, ReadonlySelectorToken } from \"atom.io\"\nimport type {\n\tJunction,\n\tJunctionEntriesBase,\n\tJunctionSchemaBase,\n\tRefinement,\n\tStore,\n} from \"atom.io/internal\"\nimport {\n\teditRelationsInStore,\n\tfindRelationsInStore,\n\tgetInternalRelationsFromStore,\n\tIMPLICIT,\n\tJoin,\n} from \"atom.io/internal\"\nimport type { Json } from \"atom.io/json\"\nimport type { SetRTX, SetRTXJson } from \"atom.io/transceivers/set-rtx\"\n\nexport interface JoinOptions<\n\tASide extends string,\n\tAType extends string,\n\tBSide extends string,\n\tBType extends string,\n\tCardinality extends `1:1` | `1:n` | `n:n`,\n\tContent extends Json.Object | null,\n> extends JunctionSchemaBase<ASide, BSide>,\n\t\tPartial<JunctionEntriesBase<AType, BType, Content>> {\n\treadonly key: string\n\treadonly cardinality: Cardinality\n\treadonly isAType: Refinement<string, AType>\n\treadonly isBType: Refinement<string, BType>\n}\n\nexport type JoinToken<\n\tASide extends string,\n\tAType extends string,\n\tBSide extends string,\n\tBType extends string,\n\tCardinality extends `1:1` | `1:n` | `n:n`,\n\tContent extends Json.Object | null = null,\n> = {\n\tkey: string\n\ttype: `join`\n\tcardinality: Cardinality\n\ta: ASide\n\tb: BSide\n\t__aType?: AType\n\t__bType?: BType\n\t__content?: Content\n}\n\nexport function join<\n\tconst ASide extends string,\n\tconst AType extends string,\n\tconst BSide extends string,\n\tconst BType extends string,\n\tconst Cardinality extends `1:1` | `1:n` | `n:n`,\n>(\n\toptions: JoinOptions<ASide, AType, BSide, BType, Cardinality, null>,\n\tdefaultContent?: undefined,\n\tstore?: Store,\n): JoinToken<ASide, AType, BSide, BType, Cardinality, null>\nexport function join<\n\tconst ASide extends string,\n\tconst AType extends string,\n\tconst BSide extends string,\n\tconst BType extends string,\n\tconst Cardinality extends `1:1` | `1:n` | `n:n`,\n\tconst Content extends Json.Object,\n>(\n\toptions: JoinOptions<ASide, AType, BSide, BType, Cardinality, Content>,\n\tdefaultContent: Content,\n\tstore?: Store,\n): JoinToken<ASide, AType, BSide, BType, Cardinality, Content>\nexport function join<\n\tASide extends string,\n\tAType extends string,\n\tBSide extends string,\n\tBType extends string,\n\tCardinality extends `1:1` | `1:n` | `n:n`,\n\tContent extends Json.Object,\n>(\n\toptions: JoinOptions<ASide, AType, BSide, BType, Cardinality, Content>,\n\tdefaultContent: Content | undefined,\n\tstore: Store = IMPLICIT.STORE,\n): JoinToken<ASide, AType, BSide, BType, Cardinality, Content> {\n\tstore.joins.set(options.key, new Join(options, defaultContent, store))\n\tconst token: JoinToken<ASide, AType, BSide, BType, Cardinality, Content> = {\n\t\tkey: options.key,\n\t\ttype: `join`,\n\t\ta: options.between[0],\n\t\tb: options.between[1],\n\t\tcardinality: options.cardinality,\n\t}\n\treturn token\n}\n\nexport type JoinStates<\n\tASide extends string,\n\tAType extends string,\n\tBSide extends string,\n\tBType extends string,\n\tCardinality extends `1:1` | `1:n` | `n:n`,\n\tContent extends Json.Object | null,\n> = Cardinality extends `1:1`\n\t? (Content extends Json.Object\n\t\t\t? {\n\t\t\t\t\treadonly [A in ASide as `${A}EntryOf${Capitalize<BSide>}`]: ReadonlySelectorToken<\n\t\t\t\t\t\t[AType, Content] | null,\n\t\t\t\t\t\tBType\n\t\t\t\t\t>\n\t\t\t\t} & {\n\t\t\t\t\treadonly [B in BSide as `${B}EntryOf${Capitalize<ASide>}`]: ReadonlySelectorToken<\n\t\t\t\t\t\t[BType, Content] | null,\n\t\t\t\t\t\tAType\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t: {}) & {\n\t\t\treadonly [A in ASide as `${A}KeyOf${Capitalize<BSide>}`]: ReadonlySelectorToken<\n\t\t\t\tAType | null,\n\t\t\t\tBType\n\t\t\t>\n\t\t} & {\n\t\t\treadonly [B in BSide as `${B}KeyOf${Capitalize<ASide>}`]: ReadonlySelectorToken<\n\t\t\t\tBType | null,\n\t\t\t\tAType\n\t\t\t>\n\t\t}\n\t: Cardinality extends `1:n`\n\t\t? (Content extends Json.Object\n\t\t\t\t? {\n\t\t\t\t\t\treadonly [A in ASide as `${A}EntryOf${Capitalize<BSide>}`]: ReadonlySelectorToken<\n\t\t\t\t\t\t\t[AType, Content] | null,\n\t\t\t\t\t\t\tBType\n\t\t\t\t\t\t>\n\t\t\t\t\t} & {\n\t\t\t\t\t\treadonly [B in BSide as `${B}EntriesOf${Capitalize<ASide>}`]: ReadonlySelectorToken<\n\t\t\t\t\t\t\t[BType, Content][],\n\t\t\t\t\t\t\tAType\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t: {}) & {\n\t\t\t\treadonly [A in ASide as `${A}KeyOf${Capitalize<BSide>}`]: ReadonlySelectorToken<\n\t\t\t\t\tAType | null,\n\t\t\t\t\tBType\n\t\t\t\t>\n\t\t\t} & {\n\t\t\t\treadonly [B in BSide as `${B}KeysOf${Capitalize<ASide>}`]: ReadonlySelectorToken<\n\t\t\t\t\tBType[],\n\t\t\t\t\tAType\n\t\t\t\t>\n\t\t\t}\n\t\t: Cardinality extends `n:n`\n\t\t\t? (Content extends Json.Object\n\t\t\t\t\t? {\n\t\t\t\t\t\t\treadonly [A in ASide as `${A}EntriesOf${Capitalize<BSide>}`]: ReadonlySelectorToken<\n\t\t\t\t\t\t\t\t[AType, Content][],\n\t\t\t\t\t\t\t\tBType\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t} & {\n\t\t\t\t\t\t\treadonly [B in BSide as `${B}EntriesOf${Capitalize<ASide>}`]: ReadonlySelectorToken<\n\t\t\t\t\t\t\t\t[BType, Content][],\n\t\t\t\t\t\t\t\tAType\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t}\n\t\t\t\t\t: {}) & {\n\t\t\t\t\treadonly [A in ASide as `${A}KeysOf${Capitalize<BSide>}`]: ReadonlySelectorToken<\n\t\t\t\t\t\tAType[],\n\t\t\t\t\t\tBType\n\t\t\t\t\t>\n\t\t\t\t} & {\n\t\t\t\t\treadonly [B in BSide as `${B}KeysOf${Capitalize<ASide>}`]: ReadonlySelectorToken<\n\t\t\t\t\t\tBType[],\n\t\t\t\t\t\tAType\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t: never\n\nexport function findRelations<\n\tASide extends string,\n\tAType extends string,\n\tBSide extends string,\n\tBType extends string,\n\tCardinality extends `1:1` | `1:n` | `n:n`,\n\tContent extends Json.Object | null,\n>(\n\ttoken: JoinToken<ASide, AType, BSide, BType, Cardinality, Content>,\n\tkey: AType | BType,\n): JoinStates<ASide, AType, BSide, BType, Cardinality, Content> {\n\treturn findRelationsInStore(token, key, IMPLICIT.STORE)\n}\n\nexport function editRelations<\n\tASide extends string,\n\tAType extends string,\n\tBSide extends string,\n\tBType extends string,\n\tCardinality extends `1:1` | `1:n` | `n:n`,\n\tContent extends Json.Object | null,\n>(\n\ttoken: JoinToken<ASide, AType, BSide, BType, Cardinality, Content>,\n\tchange: (relations: Junction<ASide, AType, BSide, BType, Content>) => void,\n): void {\n\teditRelationsInStore(token, change, IMPLICIT.STORE)\n}\n\nexport function getInternalRelations<\n\tASide extends string,\n\tAType extends string,\n\tBSide extends string,\n\tBType extends string,\n\tCardinality extends `1:1` | `1:n` | `n:n`,\n\tContent extends Json.Object | null,\n>(\n\ttoken: JoinToken<ASide, AType, BSide, BType, Cardinality, Content>,\n): MutableAtomFamilyToken<SetRTX<string>, SetRTXJson<string>, string> {\n\treturn getInternalRelationsFromStore(token, IMPLICIT.STORE)\n}\n","const LoggerIconDictionary = {\n\t\"⌛\": `Timeline event fully captured`,\n\t\"⏩\": `Timeline redo`,\n\t\"⏪\": `Timeline undo`,\n\t\"⏭️\": `Transaction redo`,\n\t\"⏮️\": `Transaction undo`,\n\t\"⏳\": `Timeline event partially captured`,\n\t\"⏹️\": `Time-travel complete`,\n\t\"✅\": `Realtime transaction success`,\n\t\"✨\": `Computation complete`,\n\t\"❌\": `Conflict prevents attempted action`,\n\t\"⭕\": `Operation start`,\n\t\"🔴\": `Operation complete`,\n\t\"❗\": `Operation blocked`,\n\t\"🟢\": `Operation unblocked`,\n\t\"🐞\": `Possible bug in AtomIO`,\n\t\"👀\": `Subscription added`,\n\t\"👋\": `Greeting`,\n\t\"👍\": `Realtime acknowledgment`,\n\t\"👪\": `Family member added`,\n\t\"💁\": `Notice`,\n\t\"💥\": `Caught`,\n\t\"📁\": `Stow update`,\n\t\"📃\": `Copy mutable`,\n\t\"📖\": `Read state`,\n\t\"📝\": `Write state`,\n\t\"📢\": `Notify subscribers`,\n\t\"🔄\": `Realtime transaction synchronized`,\n\t\"🔌\": `Register dependency`,\n\t\"🔍\": `Discover root`,\n\t\"🔥\": `Delete state`,\n\t\"🔧\": `Create mutable atom`,\n\t\"🔨\": `Create immutable atom`,\n\n\t\"🗑\": `Evict cached value`,\n\t\"🙈\": `Subscription canceled`,\n\t\"🚀\": `Performance measure`,\n\t\"🛄\": `Apply transaction`,\n\t\"🛠️\": `Install atom into store`,\n\t\"🛫\": `Begin transaction`,\n\t\"🛬\": `Complete transaction`,\n\t\"🧮\": `Computing selector`,\n\t\"🧹\": `Prepare to evict`,\n\t\"🪂\": `Abort transaction`,\n\t\"🤞\": `Realtime optimistic update enqueued`,\n\t\"👈\": `Realtime confirmed update enqueued`,\n\t\"🧑⚖️\": `Realtime update beginning reconciliation`,\n\t\"🛎️\": `Realtime transaction received`,\n\t\"🔭\": `Determining realtime perspective`,\n\t\"🖌\": `Redacting realtime update`,\n\t\"👁\": `Determining perspective`,\n} as const\nexport type LoggerIcon = keyof typeof LoggerIconDictionary\nexport type TokenDenomination =\n\t| `atom_family`\n\t| `atom`\n\t| `continuity`\n\t| `molecule_family`\n\t| `molecule`\n\t| `mutable_atom_family`\n\t| `mutable_atom`\n\t| `readonly_selector_family`\n\t| `readonly_selector`\n\t| `selector_family`\n\t| `selector`\n\t| `state`\n\t| `timeline`\n\t| `transaction`\n\t| `unknown`\n\nexport const LOG_LEVELS = [`info`, `warn`, `error`] as const\nexport type LogLevel = (typeof LOG_LEVELS)[number]\n\nexport type LogFn = (\n\ticon: LoggerIcon,\n\tdenomination: TokenDenomination,\n\ttokenKey: string,\n\tmessage: string,\n\t...rest: unknown[]\n) => void\nexport type LogFilter = (...params: Parameters<LogFn>) => boolean\n\nexport type Logger = Record<LogLevel, LogFn>\n\nexport const simpleLog =\n\t(logLevel: keyof Logger): LogFn =>\n\t(icon, denomination, tokenKey, message, ...rest) => {\n\t\t/* eslint-disable-next-line no-console */\n\t\tconsole[logLevel](\n\t\t\t`${icon} ${denomination} \"${tokenKey}\" ${message}`,\n\t\t\t...rest,\n\t\t)\n\t}\nexport const simpleLogger: Logger = {\n\terror: simpleLog(`error`),\n\tinfo: simpleLog(`info`),\n\twarn: simpleLog(`warn`),\n}\n\nexport class AtomIOLogger implements Logger {\n\tpublic logLevel: `error` | `info` | `warn` | null\n\tprivate readonly filter: LogFilter | undefined\n\tprivate readonly logger: Logger\n\n\tpublic constructor(\n\t\tlogLevel: `error` | `info` | `warn` | null,\n\t\tfilter?: LogFilter,\n\t\tlogger: Logger = simpleLogger,\n\t) {\n\t\tthis.logLevel = logLevel\n\t\tthis.filter = filter\n\t\tthis.logger = logger\n\t}\n\n\tpublic error: LogFn = (...args) => {\n\t\tif ((this.filter?.(...args) ?? true) && this.logLevel !== null) {\n\t\t\tthis.logger.error(...args)\n\t\t}\n\t}\n\tpublic info: LogFn = (...args) => {\n\t\tif ((this.filter?.(...args) ?? true) && this.logLevel === `info`) {\n\t\t\tthis.logger.info(...args)\n\t\t}\n\t}\n\tpublic warn: LogFn = (...args) => {\n\t\tif (\n\t\t\t(this.filter?.(...args) ?? true) &&\n\t\t\tthis.logLevel !== `error` &&\n\t\t\tthis.logLevel !== null\n\t\t) {\n\t\t\tthis.logger.warn(...args)\n\t\t}\n\t}\n}\n","import type { Each, Store } from \"atom.io/internal\"\nimport {\n\tallocateIntoStore,\n\tclaimWithinStore,\n\tdeallocateFromStore,\n\tfuseWithinStore,\n\tIMPLICIT,\n\tmakeRootMoleculeInStore,\n} from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\n\nexport const $claim: unique symbol = Symbol.for(`claim`)\nexport type Claim<K extends Canonical> = K & { [$claim]?: true }\n\nexport class Realm<H extends Hierarchy> {\n\tpublic store: Store\n\tpublic constructor(store: Store = IMPLICIT.STORE) {\n\t\tthis.store = store\n\t\tmakeRootMoleculeInStore(`root`, store)\n\t}\n\tpublic allocate<V extends Vassal<H>, A extends Above<V, H>>(\n\t\tprovenance: A,\n\t\tkey: V,\n\t\tattachmentStyle?: `all` | `any`,\n\t): Claim<V> {\n\t\treturn allocateIntoStore<H, V, A>(\n\t\t\tthis.store,\n\t\t\tprovenance,\n\t\t\tkey,\n\t\t\tattachmentStyle,\n\t\t)\n\t}\n\tpublic fuse<\n\t\tC extends CompoundFrom<H>,\n\t\tT extends C extends CompoundTypedKey<infer t, any, any> ? t : never,\n\t\tA extends C extends CompoundTypedKey<any, infer v, any> ? v : never,\n\t\tB extends C extends CompoundTypedKey<any, any, infer m> ? m : never,\n\t>(\n\t\ttype: T,\n\t\treagentA: SingularTypedKey<A>,\n\t\treagentB: SingularTypedKey<B>,\n\t): Claim<CompoundTypedKey<T, A, B>> {\n\t\treturn fuseWithinStore<H, C, T, A, B>(this.store, type, reagentA, reagentB)\n\t}\n\n\tpublic deallocate<V extends Vassal<H>>(claim: Claim<V>): void {\n\t\tdeallocateFromStore<H, V>(this.store, claim)\n\t}\n\tpublic claim<\n\t\tV extends Exclude<Vassal<H>, CompoundTypedKey>,\n\t\tA extends Above<V, H>,\n\t>(newProvenance: A, claim: Claim<V>, exclusive?: `exclusive`): Claim<V> {\n\t\treturn claimWithinStore<H, V, A>(this.store, newProvenance, claim, exclusive)\n\t}\n}\n\nexport class Anarchy {\n\tpublic store: Store\n\tpublic realm: Realm<any>\n\n\tpublic constructor(store: Store = IMPLICIT.STORE) {\n\t\tthis.store = store\n\t\tthis.realm = new Realm(store)\n\t}\n\n\tpublic allocate(\n\t\tprovenance: Canonical,\n\t\tkey: Canonical,\n\t\tattachmentStyle?: `all` | `any`,\n\t): void {\n\t\tallocateIntoStore<any, any, any>(\n\t\t\tthis.store,\n\t\t\tprovenance,\n\t\t\tkey,\n\t\t\tattachmentStyle,\n\t\t)\n\t}\n\n\tpublic deallocate(key: Canonical): void {\n\t\tdeallocateFromStore<any, any>(this.store, key)\n\t}\n\n\tpublic claim(\n\t\tnewProvenance: Canonical,\n\t\tkey: Canonical,\n\t\texclusive?: `exclusive`,\n\t): void {\n\t\tclaimWithinStore<any, any, any>(this.store, newProvenance, key, exclusive)\n\t}\n}\n\nexport const T$ = `T$`\nexport type T$ = typeof T$\nexport type TypeTag<T extends string> = `${T$}--${T}`\nexport type SingularTypedKey<T extends string = string> = `${T}::${string}`\nexport type CompoundTypedKey<\n\tA extends string = string,\n\tB extends string = string,\n\tC extends string = string,\n> = `${TypeTag<A>}==${SingularTypedKey<B>}++${SingularTypedKey<C>}`\nexport type TypedKey<\n\tA extends string = string,\n\tB extends string = string,\n\tC extends string = string,\n> = CompoundTypedKey<A, B, C> | SingularTypedKey<A>\ntype Scope = SingularTypedKey[]\ntype MutualFealty = {\n\tabove: Scope\n\tbelow: CompoundTypedKey\n}\ntype ExclusiveFealty = {\n\tabove: TypedKey | `root`\n\tbelow: Scope\n}\ntype Fealty = ExclusiveFealty | MutualFealty\n\nexport type Hierarchy<F extends Fealty[] = Fealty[]> = Each<F>\n\nexport type Vassal<H extends Hierarchy> = {\n\t[K in keyof H]: H[K] extends MutualFealty\n\t\t? H[K][`below`]\n\t\t: H[K] extends { below: Array<infer V> }\n\t\t\t? V extends TypedKey\n\t\t\t\t? V\n\t\t\t\t: never\n\t\t\t: never\n}[keyof H]\n\nexport type Above<TK extends TypedKey, H extends Hierarchy> = {\n\t[K in keyof H]: H[K] extends MutualFealty\n\t\t? TK extends H[K][`below`]\n\t\t\t? H[K][`above`]\n\t\t\t: never\n\t\t: H[K] extends { below: Array<infer V> }\n\t\t\t? TK extends V\n\t\t\t\t? H[K] extends ExclusiveFealty\n\t\t\t\t\t? H[K][`above`]\n\t\t\t\t\t: never\n\t\t\t\t: never\n\t\t\t: never\n}[keyof H]\n\nexport type Below<TK extends TypedKey | TypedKey[], H extends Hierarchy> = {\n\t[K in keyof H]: H[K] extends MutualFealty\n\t\t? TK extends H[K][`above`]\n\t\t\t? H[K][`below`]\n\t\t\t: TK extends H[K][`above`][number]\n\t\t\t\t? H[K][`below`]\n\t\t\t\t: never\n\t\t: H[K] extends { above: infer V }\n\t\t\t? TK extends V\n\t\t\t\t? H[K] extends ExclusiveFealty\n\t\t\t\t\t? H[K][`below`][number]\n\t\t\t\t\t: never\n\t\t\t\t: never\n\t\t\t: never\n}[keyof H]\n\nexport type Mutuals<TK extends TypedKey | TypedKey[], H extends Hierarchy> = {\n\t[K in keyof H]: H[K] extends MutualFealty\n\t\t? TK extends H[K][`above`][number]\n\t\t\t? [mutual: Exclude<H[K][`above`][number], TK>, below: H[K][`below`]]\n\t\t\t: never\n\t\t: never\n}[keyof H]\n\nexport type CompoundFrom<H extends Hierarchy> = {\n\t[K in keyof H]: H[K] extends MutualFealty ? H[K][`below`] : never\n}[keyof H]\n","import {\n\tcreateSelectorFamily,\n\tcreateStandaloneSelector,\n\tIMPLICIT,\n} from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\n\nimport type { ReadonlySelectorToken, WritableSelectorToken } from \".\"\nimport type { Read, Write } from \"./transaction\"\n\nexport type WritableSelectorOptions<T> = {\n\tkey: string\n\tget: Read<() => T>\n\tset: Write<(newValue: T) => void>\n}\nexport type ReadonlySelectorOptions<T> = {\n\tkey: string\n\tget: Read<() => T>\n}\n\n/**\n * @public\n * Declare a selector. The value of a selector should depend\n * on the value of atoms or other selectors in the store.\n *\n * A writable selector can be \"set\" to a new value.\n * It is advised to set its dependencies to values\n * that would produce the new value of the selector.\n * @param options - {@link WritableSelectorOptions}.\n * @returns\n * The token for your selector.\n * @overload Writable\n */\nexport function selector<T>(\n\toptions: WritableSelectorOptions<T>,\n): WritableSelectorToken<T>\n\n/**\n * @public\n * Declare a selector. The value of a selector should depend\n * on the value of atoms or other selectors in the store.\n * @param options - {@link ReadonlySelectorOptions}.\n */\nexport function selector<T>(\n\toptions: ReadonlySelectorOptions<T>,\n): ReadonlySelectorToken<T>\nexport function selector<T>(\n\toptions: ReadonlySelectorOptions<T> | WritableSelectorOptions<T>,\n): ReadonlySelectorToken<T> | WritableSelectorToken<T> {\n\treturn createStandaloneSelector(IMPLICIT.STORE, options)\n}\n\nexport type WritableSelectorFamilyOptions<T, K extends Canonical> = {\n\tkey: string\n\tget: (key: K) => Read<() => T>\n\tset: (key: K) => Write<(newValue: T) => void>\n}\nexport type ReadonlySelectorFamilyOptions<T, K extends Canonical> = {\n\tkey: string\n\tget: (key: K) => Read<() => T>\n}\n\nexport type WritableSelectorFamilyToken<T, K extends Canonical> = {\n\tkey: string\n\ttype: `selector_family`\n\t__T?: T\n\t__K?: K\n}\n\nexport type ReadonlySelectorFamilyToken<T, K extends Canonical> = {\n\tkey: string\n\ttype: `readonly_selector_family`\n\t__T?: T\n\t__K?: K\n}\n\nexport type SelectorFamilyToken<T, K extends Canonical> =\n\t| ReadonlySelectorFamilyToken<T, K>\n\t| WritableSelectorFamilyToken<T, K>\n\nexport function selectorFamily<T, K extends Canonical>(\n\toptions: WritableSelectorFamilyOptions<T, K>,\n): WritableSelectorFamilyToken<T, K>\nexport function selectorFamily<T, K extends Canonical>(\n\toptions: ReadonlySelectorFamilyOptions<T, K>,\n): ReadonlySelectorFamilyToken<T, K>\nexport function selectorFamily<T, K extends Canonical>(\n\toptions:\n\t\t| ReadonlySelectorFamilyOptions<T, K>\n\t\t| WritableSelectorFamilyOptions<T, K>,\n): ReadonlySelectorFamilyToken<T, K> | WritableSelectorFamilyToken<T, K> {\n\treturn createSelectorFamily(IMPLICIT.STORE, options)\n}\n","import * as Internal from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\n\nimport type { WritableFamilyToken, WritableToken } from \".\"\n\n/**\n * @public\n * A function that sets the value of a state.\n * @param oldValue - The current value of the state.\n * @returns\n * The new value of the state.\n */\nexport type Setter<T, New extends T> = (oldValue: T) => New\n\n/**\n * @public\n * Set the value of a state into the implicit store.\n * @param token - An atom or writable selector token.\n * @param value - The new value of the state.\n * @overload Default\n * @default\n */\nexport function setState<T, New extends T>(\n\ttoken: WritableToken<T>,\n\tvalue: New | Setter<T, New>,\n): void\n\n/**\n * @public\n * Set the value of a state into the implicit store.\n * @param token - An atom family or writable selector family token.\n * @param key - The unique key of the state to set.\n * @param value - The new value of the state.\n * @overload Streamlined\n */\nexport function setState<T, K extends Canonical, New extends T, Key extends K>(\n\ttoken: WritableFamilyToken<T, K>,\n\tkey: Key,\n\tvalue: New | Setter<T, New>,\n): void\nexport function setState<T, New extends T>(\n\t...params:\n\t\t| [\n\t\t\t\ttoken: WritableFamilyToken<T, Canonical>,\n\t\t\t\tkey: Canonical,\n\t\t\t\tvalue: New | Setter<T, New>,\n\t\t ]\n\t\t| [token: WritableToken<T>, value: New | Setter<T, New>]\n): void {\n\tif (params.length === 2) {\n\t\tInternal.setIntoStore(Internal.IMPLICIT.STORE, ...params)\n\t} else {\n\t\tInternal.setIntoStore(Internal.IMPLICIT.STORE, ...params)\n\t}\n}\n","import type { findState } from \"atom.io\"\nimport {\n\tactUponStore,\n\tarbitrary,\n\tcreateAtomFamily,\n\tcreateSelectorFamily,\n\tcreateStandaloneAtom,\n\tcreateStandaloneSelector,\n\tcreateTimeline,\n\tcreateTransaction,\n\tdisposeFromStore,\n\tfindInStore,\n\tgetFromStore,\n\tIMPLICIT,\n\tinstallIntoStore,\n\tsetIntoStore,\n\tStore,\n\tsubscribeInStore,\n\ttimeTravel,\n} from \"atom.io/internal\"\n\nimport type {\n\tAtomIOToken,\n\tdisposeState,\n\tgetState,\n\tredo,\n\tsetState,\n\tsubscribe,\n\ttimeline,\n\tundo,\n} from \".\"\nimport type { atom, atomFamily } from \"./atom\"\nimport type { selector, selectorFamily } from \"./selector\"\nimport type { runTransaction, transaction } from \"./transaction\"\n\nexport class Silo {\n\tpublic store: Store\n\tpublic atom: typeof atom\n\tpublic atomFamily: typeof atomFamily\n\tpublic selector: typeof selector\n\tpublic selectorFamily: typeof selectorFamily\n\tpublic transaction: typeof transaction\n\tpublic timeline: typeof timeline\n\tpublic findState: typeof findState\n\tpublic getState: typeof getState\n\tpublic setState: typeof setState\n\tpublic disposeState: typeof disposeState\n\tpublic subscribe: typeof subscribe\n\tpublic undo: typeof undo\n\tpublic redo: typeof redo\n\tpublic runTransaction: typeof runTransaction\n\tpublic install: (tokens: AtomIOToken[], store?: Store) => void\n\n\tpublic constructor(config: Store[`config`], fromStore: Store | null = null) {\n\t\tconst s = (this.store = new Store(config, fromStore))\n\t\tthis.atom = ((options: Parameters<typeof atom>[0]) =>\n\t\t\tcreateStandaloneAtom(s, options)) as typeof atom\n\t\tthis.atomFamily = ((options: Parameters<typeof atomFamily>[0]) =>\n\t\t\tcreateAtomFamily(s, options)) as typeof atomFamily\n\t\tthis.selector = ((options: Parameters<typeof selector>[0]) =>\n\t\t\tcreateStandaloneSelector(s, options)) as typeof selector\n\t\tthis.selectorFamily = ((options: Parameters<typeof selectorFamily>[0]) =>\n\t\t\tcreateSelectorFamily(s, options)) as typeof selectorFamily\n\t\tthis.transaction = (options) => createTransaction(s, options)\n\t\tthis.timeline = (options) => createTimeline(s, options)\n\t\tthis.findState = ((...params: Parameters<typeof findState>) =>\n\t\t\tfindInStore(s, ...params)) as typeof findState\n\t\tthis.getState = ((...params: Parameters<typeof getState>) =>\n\t\t\tgetFromStore(s, ...params)) as typeof getState\n\t\tthis.setState = ((...params: Parameters<typeof setState>) => {\n\t\t\tsetIntoStore(s, ...params)\n\t\t}) as typeof setState\n\t\tthis.disposeState = ((...params: Parameters<typeof disposeState>) => {\n\t\t\tdisposeFromStore(s, ...params)\n\t\t}) as typeof disposeState\n\t\tthis.subscribe = ((...params: Parameters<typeof subscribe>) =>\n\t\t\tsubscribeInStore(s, ...params)) as typeof subscribe\n\t\tthis.undo = (token) => {\n\t\t\ttimeTravel(s, `undo`, token)\n\t\t}\n\t\tthis.redo = (token) => {\n\t\t\ttimeTravel(s, `redo`, token)\n\t\t}\n\t\tthis.runTransaction = (token, id = arbitrary()) => actUponStore(s, token, id)\n\t\tthis.install = (tokens, source = IMPLICIT.STORE) => {\n\t\t\tinstallIntoStore(tokens, s, source)\n\t\t}\n\t}\n}\n","import type { Flat, Func } from \"atom.io/internal\"\nimport { arbitrary, IMPLICIT, subscribeInStore } from \"atom.io/internal\"\n\nimport type {\n\tFamilyMetadata,\n\tReadableToken,\n\tTimelineManageable,\n\tTimelineToken,\n\tTimelineUpdate,\n\tTransactionToken,\n\tTransactionUpdate,\n} from \".\"\n\nexport type StateUpdate<T> = { newValue: T; oldValue: T }\nexport type KeyedStateUpdate<T> = Flat<\n\tStateUpdate<T> & {\n\t\tkey: string\n\t\ttype: `atom_update` | `selector_update`\n\t\tfamily?: FamilyMetadata\n\t}\n>\nexport type UpdateHandler<T> = (update: StateUpdate<T>) => void\n\nexport type TransactionUpdateHandler<F extends Func> = (\n\tdata: TransactionUpdate<F>,\n) => void\n\nexport function subscribe<T>(\n\ttoken: ReadableToken<T>,\n\thandleUpdate: UpdateHandler<T>,\n\tkey?: string,\n): () => void\nexport function subscribe<F extends Func>(\n\ttoken: TransactionToken<F>,\n\thandleUpdate: TransactionUpdateHandler<F>,\n\tkey?: string,\n): () => void\nexport function subscribe<M extends TimelineManageable>(\n\ttoken: TimelineToken<M>,\n\thandleUpdate: (update: TimelineUpdate<M> | `redo` | `undo`) => void,\n\tkey?: string,\n): () => void\nexport function subscribe(\n\ttoken: ReadableToken<any> | TimelineToken<any> | TransactionToken<any>,\n\thandleUpdate: (update: any) => void,\n\tkey: string = arbitrary(),\n): () => void {\n\treturn subscribeInStore(IMPLICIT.STORE, token, handleUpdate, key)\n}\n","import type {\n\tTimeline,\n\tTimelineAtomUpdate,\n\tTimelineMoleculeCreation,\n\tTimelineMoleculeDisposal,\n\tTimelineSelectorUpdate,\n\tTimelineStateCreation,\n\tTimelineStateDisposal,\n\tTimelineTransactionUpdate,\n} from \"atom.io/internal\"\nimport { createTimeline, IMPLICIT, timeTravel } from \"atom.io/internal\"\n\nimport type { AtomFamilyToken, AtomToken } from \".\"\n\nexport type TimelineManageable = AtomFamilyToken<any, any> | AtomToken<any>\nexport type AtomOnly<M extends TimelineManageable> = M extends AtomFamilyToken<\n\tany,\n\tany\n>\n\t? AtomToken<any>\n\t: M extends AtomToken<any>\n\t\t? M\n\t\t: never\n\nexport type TimelineToken<M> = {\n\tkey: string\n\ttype: `timeline`\n\t__M?: M\n}\n\nexport type TimelineOptions<ManagedAtom extends TimelineManageable> = {\n\tkey: string\n\tscope: ManagedAtom[]\n\tshouldCapture?: (\n\t\tupdate: TimelineUpdate<ManagedAtom>,\n\t\ttimeline: Timeline<TimelineManageable>,\n\t) => boolean\n}\n\nexport type TimelineUpdate<ManagedAtom extends TimelineManageable> =\n\t| TimelineAtomUpdate<ManagedAtom>\n\t| TimelineMoleculeCreation\n\t| TimelineMoleculeDisposal\n\t| TimelineSelectorUpdate<ManagedAtom>\n\t| TimelineStateCreation<AtomOnly<ManagedAtom>>\n\t| TimelineStateDisposal<AtomOnly<ManagedAtom>>\n\t| TimelineTransactionUpdate\n\nexport const timeline = <ManagedAtom extends TimelineManageable>(\n\toptions: TimelineOptions<ManagedAtom>,\n): TimelineToken<ManagedAtom> => {\n\treturn createTimeline(IMPLICIT.STORE, options)\n}\n\nexport const redo = (tl: TimelineToken<any>): void => {\n\ttimeTravel(IMPLICIT.STORE, `redo`, tl)\n}\n\nexport const undo = (tl: TimelineToken<any>): void => {\n\ttimeTravel(IMPLICIT.STORE, `undo`, tl)\n}\n","import type { findState, getState, setState } from \"atom.io\"\nimport type { EnvironmentData, Func, Transceiver } from \"atom.io/internal\"\nimport {\n\tactUponStore,\n\tarbitrary,\n\tcreateTransaction,\n\tIMPLICIT,\n} from \"atom.io/internal\"\nimport type { Canonical, Json, stringified } from \"atom.io/json\"\n\nimport type {\n\tdisposeState,\n\tKeyedStateUpdate,\n\tMutableAtomToken,\n\tReadableToken,\n\tTokenType,\n\tWritableSelectorToken,\n} from \".\"\n\nexport type TransactionToken<F extends Func> = {\n\tkey: string\n\ttype: `transaction`\n\t__F?: F\n}\n\nexport type StateCreation<Token extends ReadableToken<any>> = {\n\ttype: `state_creation`\n\ttoken: Token\n}\nexport type AtomDisposal<Token extends ReadableToken<any>> = {\n\ttype: `state_disposal`\n\tsubType: `atom`\n\ttoken: Token\n\tvalue: TokenType<Token>\n}\nexport type SelectorDisposal<Token extends ReadableToken<any>> = {\n\ttype: `state_disposal`\n\tsubType: `selector`\n\ttoken: Token\n}\nexport type StateDisposal<Token extends ReadableToken<any>> =\n\t| AtomDisposal<Token>\n\t| SelectorDisposal<Token>\n\nexport type MoleculeCreation = {\n\ttype: `molecule_creation`\n\tkey: Canonical\n\tprovenance: Canonical\n}\n\nexport type MoleculeDisposal = {\n\ttype: `molecule_disposal`\n\tkey: Canonical\n\tprovenance: stringified<Canonical>[]\n\tvalues: [key: string, value: any][]\n}\n\nexport type MoleculeTransfer = {\n\ttype: `molecule_transfer`\n\tkey: Canonical\n\tfrom: Canonical[]\n\tto: Canonical[]\n}\n\nexport type TransactionUpdateContent =\n\t| KeyedStateUpdate<unknown>\n\t| MoleculeCreation\n\t| MoleculeDisposal\n\t| MoleculeTransfer\n\t| StateCreation<ReadableToken<unknown>>\n\t| StateDisposal<ReadableToken<unknown>>\n\t| TransactionUpdate<Func>\n\nexport type TransactionUpdate<F extends Func> = {\n\ttype: `transaction_update`\n\tkey: string\n\tid: string\n\tepoch: number\n\tupdates: TransactionUpdateContent[]\n\tparams: Parameters<F>\n\toutput: ReturnType<F>\n}\n\nexport type GetterToolkit = Pick<SetterToolkit, `find` | `get` | `json`>\nexport type SetterToolkit = Readonly<{\n\tget: typeof getState\n\tset: typeof setState\n\tfind: typeof findState\n\tjson: <T extends Transceiver<any>, J extends Json.Serializable>(\n\t\tstate: MutableAtomToken<T, J>,\n\t) => WritableSelectorToken<J>\n}>\nexport type ActorToolkit = Readonly<{\n\tget: typeof getState\n\tset: typeof setState\n\tfind: typeof findState\n\tjson: <T extends Transceiver<any>, J extends Json.Serializable>(\n\t\tstate: MutableAtomToken<T, J>,\n\t) => WritableSelectorToken<J>\n\tdispose: typeof disposeState\n\trun: typeof runTransaction\n\tenv: () => EnvironmentData\n}>\n\nexport type Read<F extends Func> = (\n\ttoolkit: GetterToolkit,\n\t...parameters: Parameters<F>\n) => ReturnType<F>\n\nexport type Write<F extends Func> = (\n\ttoolkit: SetterToolkit,\n\t...parameters: Parameters<F>\n) => ReturnType<F>\n\nexport type Transact<F extends Func> = (\n\ttoolkit: ActorToolkit,\n\t...parameters: Parameters<F>\n) => ReturnType<F>\n\nexport type TransactionOptions<F extends Func> = {\n\tkey: string\n\tdo: Transact<F>\n}\n\nexport type TransactionIO<Token extends TransactionToken<any>> =\n\tToken extends TransactionToken<infer F> ? F : never\n\nexport function transaction<F extends Func>(\n\toptions: TransactionOptions<F>,\n): TransactionToken<F> {\n\treturn createTransaction(IMPLICIT.STORE, options)\n}\n\nexport function runTransaction<F extends Func>(\n\ttoken: TransactionToken<F>,\n\tid: string = arbitrary(),\n): (...parameters: Parameters<F>) => ReturnType<F> {\n\treturn actUponStore(IMPLICIT.STORE, token, id)\n}\n","import type {\n\tMutableAtomFamilyToken,\n\tMutableAtomToken,\n\tReadableFamilyToken,\n\tReadableToken,\n\tReadonlySelectorFamilyToken,\n\tReadonlySelectorToken,\n\tRegularAtomFamilyToken,\n\tRegularAtomToken,\n\tWritableFamilyToken,\n\tWritableSelectorFamilyToken,\n\tWritableSelectorToken,\n\tWritableToken,\n} from \"atom.io\"\n\nexport type TokenType<\n\tComparison extends ReadableFamilyToken<any, any> | ReadableToken<any>,\n> = Comparison extends ReadableToken<infer RepresentedValue>\n\t? RepresentedValue\n\t: Comparison extends ReadableFamilyToken<infer RepresentedValue, any>\n\t\t? RepresentedValue\n\t\t: never\n\nexport function isToken<KnownToken extends RegularAtomToken<any>>(\n\tknownToken: KnownToken,\n\tunknownToken: ReadableToken<any>,\n): unknownToken is RegularAtomToken<TokenType<KnownToken>>\nexport function isToken<KnownToken extends MutableAtomToken<any, any>>(\n\tknownToken: KnownToken,\n\tunknownToken: ReadableToken<any>,\n): unknownToken is MutableAtomToken<TokenType<KnownToken>, any>\nexport function isToken<KnownToken extends WritableSelectorToken<any>>(\n\tknownToken: KnownToken,\n\tunknownToken: ReadableToken<any>,\n): unknownToken is WritableSelectorToken<TokenType<KnownToken>>\nexport function isToken<KnownToken extends ReadonlySelectorToken<any>>(\n\tknownToken: KnownToken,\n\tunknownToken: ReadableToken<any>,\n): unknownToken is ReadonlySelectorToken<TokenType<KnownToken>>\nexport function isToken<KnownToken extends WritableToken<any>>(\n\tknownToken: KnownToken,\n\tunknownToken: ReadableToken<any>,\n): unknownToken is WritableToken<TokenType<KnownToken>>\nexport function isToken<KnownToken extends ReadableToken<any>>(\n\tknownToken: KnownToken,\n\tunknownToken: ReadableToken<any>,\n): unknownToken is ReadableToken<TokenType<KnownToken>>\nexport function isToken<KnownToken extends ReadableToken<any>>(\n\tknownToken: KnownToken,\n\tunknownToken: ReadableToken<any>,\n): unknownToken is ReadableToken<TokenType<KnownToken>> {\n\treturn knownToken.key === unknownToken.key\n}\n\nexport function belongsTo<Family extends RegularAtomFamilyToken<any, any>>(\n\tfamily: Family,\n\tunknownToken: ReadableToken<any>,\n): unknownToken is RegularAtomToken<TokenType<Family>>\nexport function belongsTo<Family extends MutableAtomFamilyToken<any, any, any>>(\n\tfamily: Family,\n\tunknownToken: ReadableToken<any>,\n): unknownToken is MutableAtomToken<TokenType<Family>, any>\nexport function belongsTo<Family extends WritableSelectorFamilyToken<any, any>>(\n\tfamily: Family,\n\tunknownToken: ReadableToken<any>,\n): unknownToken is WritableSelectorToken<TokenType<Family>>\nexport function belongsTo<Family extends ReadonlySelectorFamilyToken<any, any>>(\n\tfamily: Family,\n\tunknownToken: ReadableToken<any>,\n): unknownToken is ReadonlySelectorToken<TokenType<Family>>\nexport function belongsTo<Family extends WritableFamilyToken<any, any>>(\n\tfamily: Family,\n\tunknownToken: ReadableToken<any>,\n): unknownToken is WritableToken<TokenType<Family>>\nexport function belongsTo<Family extends ReadableFamilyToken<any, any>>(\n\tfamily: Family,\n\tunknownToken: ReadableToken<any>,\n): unknownToken is ReadableToken<TokenType<Family>>\nexport function belongsTo<Family extends ReadableFamilyToken<any, any>>(\n\tfamily: Family,\n\tunknownToken: ReadableToken<any>,\n): unknownToken is ReadableToken<TokenType<Family>> {\n\treturn family.key === unknownToken.family?.key\n}\n"],"mappings":"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"}
|
|
@@ -1,29 +1,40 @@
|
|
|
1
|
-
import { Store } from
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
1
|
+
import { Store } from "atom.io/internal";
|
|
2
|
+
import { Canonical, Json } from "atom.io/json";
|
|
3
|
+
import { MutableAtomFamilyToken, MutableAtomToken, ReadableFamilyToken, ReadableToken, TimelineToken, WritableFamilyToken, WritableToken } from "atom.io";
|
|
4
|
+
import * as React from "react";
|
|
5
5
|
|
|
6
|
+
//#region src/react/store-context.d.ts
|
|
6
7
|
declare const StoreContext: React.Context<Store>;
|
|
7
8
|
declare const StoreProvider: React.FC<{
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
store?: Store;
|
|
10
11
|
}>;
|
|
11
12
|
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/react/use-i.d.ts
|
|
12
15
|
declare function useI<T>(token: WritableToken<T>): <New extends T>(next: New | ((old: T) => New)) => void;
|
|
13
16
|
declare function useI<T, K extends Canonical>(token: WritableFamilyToken<T, K>, key: K): <New extends T>(next: New | ((old: T) => New)) => void;
|
|
14
17
|
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region src/react/use-json.d.ts
|
|
15
20
|
declare function useJSON<Serializable extends Json.Serializable>(token: MutableAtomToken<any, Serializable>): Serializable;
|
|
16
21
|
declare function useJSON<Serializable extends Json.Serializable, Key extends Canonical>(token: MutableAtomFamilyToken<any, Serializable, Key>, key: Key): Serializable;
|
|
17
22
|
|
|
23
|
+
//#endregion
|
|
24
|
+
//#region src/react/use-o.d.ts
|
|
18
25
|
declare function useO<T>(token: ReadableToken<T>): T;
|
|
19
26
|
declare function useO<T, K extends Canonical>(token: ReadableFamilyToken<T, K>, key: K): T;
|
|
20
27
|
|
|
28
|
+
//#endregion
|
|
29
|
+
//#region src/react/use-tl.d.ts
|
|
21
30
|
type TimelineMeta = {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
31
|
+
at: number;
|
|
32
|
+
length: number;
|
|
33
|
+
undo: () => void;
|
|
34
|
+
redo: () => void;
|
|
26
35
|
};
|
|
27
36
|
declare function useTL(token: TimelineToken<any>): TimelineMeta;
|
|
28
37
|
|
|
29
|
-
|
|
38
|
+
//#endregion
|
|
39
|
+
export { StoreContext, StoreProvider, TimelineMeta, useI, useJSON, useO, useTL };
|
|
40
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["StoreContext: React.Context<Store>","StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: Store\n}>","token: WritableToken<T>","next: New | ((old: T) => New)","old: T","token: WritableFamilyToken<T, K>","key: K","token: MutableAtomToken<any, Serializable>","token: MutableAtomFamilyToken<any, Serializable, Key>","key: Key","token: ReadableToken<T>","token: ReadableFamilyToken<T, K>","key: K","token: TimelineToken<any>"],"sources":["../../src/react/store-context.tsx","../../src/react/use-i.ts","../../src/react/use-json.ts","../../src/react/use-o.ts","../../src/react/use-tl.ts"],"sourcesContent":null,"mappings":";;;;;;cAIaA,cAAc,KAAA,CAAM,QAAQ;cAI5BC,eAAe,KAAA,CAAM;YACvB,KAAA,CAAM;UACR;AANT,CAAA,CAAA;;;;iBCIgB,eACR,cAAc,kBACN,SAAS,aAAa,MAAM;iBAE5B,kBAAkB,UDRlC,CAAA,KAAaD,ECSL,mBDTiC,CCSb,CDTa,ECSV,CDTU,CAAA,EAAA,GAAA,ECUnC,CDVmC,CAAA,EAAA,CAAA,YCWzB,CDXyB,CAAA,CAAA,IAAA,ECWhB,GDXgB,GAAA,CAAA,CAAA,GAAA,ECWH,CDXG,EAAA,GCWG,GDXH,CAAA,EAAA,GAAA,IAAA;;;;iBEQzB,6BAA6B,IAAA,CAAK,qBAC1C,sBAAsB,gBAC3B;iBAEa,6BACM,IAAA,CAAK,0BACd,UFdb,CAAA,KAAaA,EEeJ,sBFfgC,CAAA,GAAA,EEeJ,YFfI,EEeU,GFfV,CAAA,EAAA,GAAA,EEeqB,GFfrB,CAAA,EEe2B,YFf3B;;;;iBGIzB,eAAe,cAAc,KAAK;iBAElC,kBAAkB,UHNlC,CAAA,KAAaA,EGOL,mBHPiC,CGOb,CHPa,EGOV,CHPU,CAAA,EAAA,GAAA,EGQnC,CHRmC,CAAA,EGStC,CHTsC;;;;KIG7B,YAAA;;;;;AJHZ,CAAA;AAAyC,iBIUzB,KAAA,CJVyB,KAAA,EIUZ,aJVY,CAAA,GAAA,CAAA,CAAA,EIUS,YJVT"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { IMPLICIT, findInStore, getFromStore, getJsonToken, setIntoStore, subscribeToState, subscribeToTimeline, withdraw } from "atom.io/internal";
|
|
2
|
+
import { redo, undo } from "atom.io";
|
|
3
|
+
import * as React$4 from "react";
|
|
4
|
+
import * as React$3 from "react";
|
|
5
|
+
import * as React$2 from "react";
|
|
6
|
+
import * as React$1 from "react";
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
import { jsx } from "react/jsx-runtime";
|
|
9
|
+
|
|
10
|
+
//#region src/react/store-context.tsx
|
|
11
|
+
const StoreContext = React$4.createContext(IMPLICIT.STORE);
|
|
12
|
+
const StoreProvider = ({ children, store = IMPLICIT.STORE }) => /* @__PURE__ */ jsx(StoreContext.Provider, {
|
|
13
|
+
value: store,
|
|
14
|
+
children
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/react/parse-state-overloads.ts
|
|
19
|
+
function parseStateOverloads(store, ...rest) {
|
|
20
|
+
let token;
|
|
21
|
+
if (rest.length === 2) {
|
|
22
|
+
const family = rest[0];
|
|
23
|
+
const key = rest[1];
|
|
24
|
+
token = findInStore(store, family, key);
|
|
25
|
+
} else token = rest[0];
|
|
26
|
+
return token;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region src/react/use-i.ts
|
|
31
|
+
function useI(...params) {
|
|
32
|
+
const store = React$3.useContext(StoreContext);
|
|
33
|
+
const token = parseStateOverloads(store, ...params);
|
|
34
|
+
const setter = React$3.useRef(null);
|
|
35
|
+
setter.current ??= (next) => {
|
|
36
|
+
setIntoStore(store, token, next);
|
|
37
|
+
};
|
|
38
|
+
return setter.current;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
//#endregion
|
|
42
|
+
//#region src/react/use-o.ts
|
|
43
|
+
function useO(...params) {
|
|
44
|
+
const store = React$2.useContext(StoreContext);
|
|
45
|
+
const token = parseStateOverloads(store, ...params);
|
|
46
|
+
const id = React$2.useId();
|
|
47
|
+
return React$2.useSyncExternalStore((dispatch) => subscribeToState(store, token, `use-o:${id}`, dispatch), () => getFromStore(store, token), () => getFromStore(store, token));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
//#endregion
|
|
51
|
+
//#region src/react/use-json.ts
|
|
52
|
+
function useJSON(token, key) {
|
|
53
|
+
const store = React$1.useContext(StoreContext);
|
|
54
|
+
const stateToken = token.type === `mutable_atom_family` ? findInStore(store, token, key) : token;
|
|
55
|
+
const jsonToken = getJsonToken(store, stateToken);
|
|
56
|
+
return useO(jsonToken);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
//#endregion
|
|
60
|
+
//#region src/react/use-tl.ts
|
|
61
|
+
function useTL(token) {
|
|
62
|
+
const store = React.useContext(StoreContext);
|
|
63
|
+
const id = React.useId();
|
|
64
|
+
const timeline = withdraw(store, token);
|
|
65
|
+
const tokenRef = React.useRef(token);
|
|
66
|
+
const rebuildMeta = () => {
|
|
67
|
+
return {
|
|
68
|
+
at: timeline.at,
|
|
69
|
+
length: timeline.history.length,
|
|
70
|
+
undo: () => {
|
|
71
|
+
undo(token);
|
|
72
|
+
},
|
|
73
|
+
redo: () => {
|
|
74
|
+
redo(token);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
const meta = React.useRef(rebuildMeta());
|
|
79
|
+
const retrieve = () => {
|
|
80
|
+
if (meta.current.at !== timeline?.at || meta.current.length !== timeline?.history.length || tokenRef.current !== token) {
|
|
81
|
+
tokenRef.current = token;
|
|
82
|
+
meta.current = rebuildMeta();
|
|
83
|
+
}
|
|
84
|
+
return meta.current;
|
|
85
|
+
};
|
|
86
|
+
return React.useSyncExternalStore((dispatch) => subscribeToTimeline(store, token, `use-tl:${id}`, dispatch), retrieve, retrieve);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
//#endregion
|
|
90
|
+
export { StoreContext, StoreProvider, useI, useJSON, useO, useTL };
|
|
91
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["StoreContext: React.Context<Store>","StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: Store\n}>","store: Store","token: ReadableToken<any>","setter: React.RefObject<\n\t\t(<New extends T>(next: New | ((old: T) => New)) => void) | null\n\t>","token:\n\t\t| MutableAtomFamilyToken<any, Serializable, Key>\n\t\t| MutableAtomToken<any, Serializable>","key?: Key","stateToken: ReadableToken<any>","token: TimelineToken<any>"],"sources":["../../src/react/store-context.tsx","../../src/react/parse-state-overloads.ts","../../src/react/use-i.ts","../../src/react/use-o.ts","../../src/react/use-json.ts","../../src/react/use-tl.ts"],"sourcesContent":["import type { Store } from \"atom.io/internal\"\nimport { IMPLICIT } from \"atom.io/internal\"\nimport * as React from \"react\"\n\nexport const StoreContext: React.Context<Store> = React.createContext(\n\tIMPLICIT.STORE,\n)\n\nexport const StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: Store\n}> = ({ children, store = IMPLICIT.STORE }) => (\n\t<StoreContext.Provider value={store}>{children}</StoreContext.Provider>\n)\n","import type {\n\tReadableFamilyToken,\n\tReadableToken,\n\tWritableFamilyToken,\n\tWritableToken,\n} from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport { findInStore } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\n\nexport function parseStateOverloads<T, K extends Canonical>(\n\tstore: Store,\n\t...rest: [WritableFamilyToken<T, K>, K] | [WritableToken<T>]\n): WritableToken<T>\n\nexport function parseStateOverloads<T, K extends Canonical>(\n\tstore: Store,\n\t...rest: [ReadableFamilyToken<T, K>, K] | [ReadableToken<T>]\n): ReadableToken<T>\n\nexport function parseStateOverloads<T, K extends Canonical>(\n\tstore: Store,\n\t...rest: [ReadableFamilyToken<T, K>, K] | [ReadableToken<T>]\n): ReadableToken<T> {\n\tlet token: ReadableToken<any>\n\tif (rest.length === 2) {\n\t\tconst family = rest[0]\n\t\tconst key = rest[1]\n\n\t\ttoken = findInStore(store, family, key)\n\t} else {\n\t\ttoken = rest[0]\n\t}\n\treturn token\n}\n","import type { WritableFamilyToken, WritableToken } from \"atom.io\"\nimport { setIntoStore } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport * as React from \"react\"\n\nimport { parseStateOverloads } from \"./parse-state-overloads\"\nimport { StoreContext } from \"./store-context\"\n\nexport function useI<T>(\n\ttoken: WritableToken<T>,\n): <New extends T>(next: New | ((old: T) => New)) => void\n\nexport function useI<T, K extends Canonical>(\n\ttoken: WritableFamilyToken<T, K>,\n\tkey: K,\n): <New extends T>(next: New | ((old: T) => New)) => void\n\nexport function useI<T, K extends Canonical>(\n\t...params: [WritableFamilyToken<T, K>, K] | [WritableToken<T>]\n): <New extends T>(next: New | ((old: T) => New)) => void {\n\tconst store = React.useContext(StoreContext)\n\tconst token = parseStateOverloads(store, ...params)\n\tconst setter: React.RefObject<\n\t\t(<New extends T>(next: New | ((old: T) => New)) => void) | null\n\t> = React.useRef(null)\n\tsetter.current ??= (next) => {\n\t\tsetIntoStore(store, token, next)\n\t}\n\treturn setter.current\n}\n","import type { ReadableFamilyToken, ReadableToken } from \"atom.io\"\nimport { getFromStore, subscribeToState } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport * as React from \"react\"\n\nimport { parseStateOverloads } from \"./parse-state-overloads\"\nimport { StoreContext } from \"./store-context\"\n\nexport function useO<T>(token: ReadableToken<T>): T\n\nexport function useO<T, K extends Canonical>(\n\ttoken: ReadableFamilyToken<T, K>,\n\tkey: K,\n): T\n\nexport function useO<T, K extends Canonical>(\n\t...params: [ReadableFamilyToken<T, K>, K] | [ReadableToken<T>]\n): T {\n\tconst store = React.useContext(StoreContext)\n\tconst token = parseStateOverloads(store, ...params)\n\tconst id = React.useId()\n\treturn React.useSyncExternalStore<T>(\n\t\t(dispatch) => subscribeToState(store, token, `use-o:${id}`, dispatch),\n\t\t() => getFromStore(store, token),\n\t\t() => getFromStore(store, token),\n\t)\n}\n","import type {\n\tMutableAtomFamilyToken,\n\tMutableAtomToken,\n\tReadableToken,\n} from \"atom.io\"\nimport { findInStore, getJsonToken } from \"atom.io/internal\"\nimport type { Canonical, Json } from \"atom.io/json\"\nimport * as React from \"react\"\n\nimport { StoreContext } from \"./store-context\"\nimport { useO } from \"./use-o\"\n\nexport function useJSON<Serializable extends Json.Serializable>(\n\ttoken: MutableAtomToken<any, Serializable>,\n): Serializable\n\nexport function useJSON<\n\tSerializable extends Json.Serializable,\n\tKey extends Canonical,\n>(token: MutableAtomFamilyToken<any, Serializable, Key>, key: Key): Serializable\n\nexport function useJSON<\n\tSerializable extends Json.Serializable,\n\tKey extends Canonical,\n>(\n\ttoken:\n\t\t| MutableAtomFamilyToken<any, Serializable, Key>\n\t\t| MutableAtomToken<any, Serializable>,\n\tkey?: Key,\n): Serializable {\n\tconst store = React.useContext(StoreContext)\n\tconst stateToken: ReadableToken<any> =\n\t\ttoken.type === `mutable_atom_family`\n\t\t\t? findInStore(store, token, key as Key)\n\t\t\t: token\n\tconst jsonToken = getJsonToken(store, stateToken)\n\treturn useO(jsonToken)\n}\n","import type { TimelineToken } from \"atom.io\"\nimport { redo, undo } from \"atom.io\"\nimport { subscribeToTimeline, withdraw } from \"atom.io/internal\"\nimport * as React from \"react\"\n\nimport { StoreContext } from \"./store-context\"\n\nexport type TimelineMeta = {\n\tat: number\n\tlength: number\n\tundo: () => void\n\tredo: () => void\n}\n\nexport function useTL(token: TimelineToken<any>): TimelineMeta {\n\tconst store = React.useContext(StoreContext)\n\tconst id = React.useId()\n\tconst timeline = withdraw(store, token)\n\tconst tokenRef = React.useRef(token)\n\tconst rebuildMeta = () => {\n\t\treturn {\n\t\t\tat: timeline.at,\n\t\t\tlength: timeline.history.length,\n\t\t\tundo: () => {\n\t\t\t\tundo(token)\n\t\t\t},\n\t\t\tredo: () => {\n\t\t\t\tredo(token)\n\t\t\t},\n\t\t}\n\t}\n\tconst meta = React.useRef<TimelineMeta>(rebuildMeta())\n\tconst retrieve = () => {\n\t\tif (\n\t\t\tmeta.current.at !== timeline?.at ||\n\t\t\tmeta.current.length !== timeline?.history.length ||\n\t\t\ttokenRef.current !== token\n\t\t) {\n\t\t\ttokenRef.current = token\n\t\t\tmeta.current = rebuildMeta()\n\t\t}\n\t\treturn meta.current\n\t}\n\treturn React.useSyncExternalStore<TimelineMeta>(\n\t\t(dispatch) => subscribeToTimeline(store, token, `use-tl:${id}`, dispatch),\n\t\tretrieve,\n\t\tretrieve,\n\t)\n}\n"],"mappings":";;;;;;;;;;AAIA,MAAaA,eAAqC,QAAM,cACvD,SAAS,MACT;AAED,MAAaC,gBAGR,CAAC,EAAE,UAAU,QAAQ,SAAS,OAAO,qBACzC,IAAC,aAAa;CAAS,OAAO;CAAQ;EAAiC;;;;ACQxE,SAAgB,oBACfC,OACA,GAAG,MACgB;CACnB,IAAIC;AACJ,KAAI,KAAK,WAAW,GAAG;EACtB,MAAM,SAAS,KAAK;EACpB,MAAM,MAAM,KAAK;AAEjB,UAAQ,YAAY,OAAO,QAAQ,IAAI;CACvC,MACA,SAAQ,KAAK;AAEd,QAAO;AACP;;;;ACjBD,SAAgB,KACf,GAAG,QACsD;CACzD,MAAM,QAAQ,QAAM,WAAW,aAAa;CAC5C,MAAM,QAAQ,oBAAoB,OAAO,GAAG,OAAO;CACnD,MAAMC,SAEF,QAAM,OAAO,KAAK;AACtB,QAAO,YAAY,CAAC,SAAS;AAC5B,eAAa,OAAO,OAAO,KAAK;CAChC;AACD,QAAO,OAAO;AACd;;;;ACdD,SAAgB,KACf,GAAG,QACC;CACJ,MAAM,QAAQ,QAAM,WAAW,aAAa;CAC5C,MAAM,QAAQ,oBAAoB,OAAO,GAAG,OAAO;CACnD,MAAM,KAAK,QAAM,OAAO;AACxB,QAAO,QAAM,qBACZ,CAAC,aAAa,iBAAiB,OAAO,QAAQ,QAAQ,GAAG,GAAG,SAAS,EACrE,MAAM,aAAa,OAAO,MAAM,EAChC,MAAM,aAAa,OAAO,MAAM,CAChC;AACD;;;;ACLD,SAAgB,QAIfC,OAGAC,KACe;CACf,MAAM,QAAQ,QAAM,WAAW,aAAa;CAC5C,MAAMC,aACL,MAAM,UAAU,uBACb,YAAY,OAAO,OAAO,IAAW,GACrC;CACJ,MAAM,YAAY,aAAa,OAAO,WAAW;AACjD,QAAO,KAAK,UAAU;AACtB;;;;ACvBD,SAAgB,MAAMC,OAAyC;CAC9D,MAAM,QAAQ,MAAM,WAAW,aAAa;CAC5C,MAAM,KAAK,MAAM,OAAO;CACxB,MAAM,WAAW,SAAS,OAAO,MAAM;CACvC,MAAM,WAAW,MAAM,OAAO,MAAM;CACpC,MAAM,cAAc,MAAM;AACzB,SAAO;GACN,IAAI,SAAS;GACb,QAAQ,SAAS,QAAQ;GACzB,MAAM,MAAM;AACX,SAAK,MAAM;GACX;GACD,MAAM,MAAM;AACX,SAAK,MAAM;GACX;EACD;CACD;CACD,MAAM,OAAO,MAAM,OAAqB,aAAa,CAAC;CACtD,MAAM,WAAW,MAAM;AACtB,MACC,KAAK,QAAQ,OAAO,UAAU,MAC9B,KAAK,QAAQ,WAAW,UAAU,QAAQ,UAC1C,SAAS,YAAY,OACpB;AACD,YAAS,UAAU;AACnB,QAAK,UAAU,aAAa;EAC5B;AACD,SAAO,KAAK;CACZ;AACD,QAAO,MAAM,qBACZ,CAAC,aAAa,oBAAoB,OAAO,QAAQ,SAAS,GAAG,GAAG,SAAS,EACzE,UACA,SACA;AACD"}
|