gitextract_y2fezz_f/ ├── .changeset/ │ ├── README.md │ └── config.json ├── .editorconfig ├── .eslintrc.js ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug.md │ │ ├── config.yml │ │ └── documentation.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── dependabot.yml │ ├── lock.yml │ ├── stale.yml │ └── workflows/ │ ├── build_and_test.yml │ ├── coveralls.yml │ └── release.yml ├── .gitignore ├── .idea/ │ └── vcs.xml ├── .prettierignore ├── .prettierrc ├── .vscode/ │ ├── launch.json │ └── settings.json ├── .watchmanconfig ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── docs/ │ ├── LINKS.md │ ├── README.md │ ├── about-this-documentation.md │ ├── actions.md │ ├── analyzing-reactivity.md │ ├── api.md │ ├── assets/ │ │ ├── action-state-view.excalidraw │ │ ├── flow.excalidraw..excalidraw..excalidraw │ │ └── getting-started-assets/ │ │ ├── javascripts/ │ │ │ ├── JSXTransformer.js │ │ │ ├── codemirror/ │ │ │ │ ├── javascript/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── javascript.js │ │ │ │ │ ├── json-ld.html │ │ │ │ │ ├── test.js │ │ │ │ │ └── typescript.html │ │ │ │ ├── lib/ │ │ │ │ │ ├── codemirror.css │ │ │ │ │ └── codemirror.js │ │ │ │ └── theme/ │ │ │ │ └── xq-light.css │ │ │ ├── mobx-react.js │ │ │ ├── mobx.umd.js │ │ │ └── react-with-addons.js │ │ ├── script.js │ │ ├── style.css │ │ └── stylesheets/ │ │ ├── github-light.css │ │ └── stylesheet.css │ ├── backers-sponsors.md │ ├── best/ │ │ ├── debugging-mobx.md │ │ ├── decorators.md │ │ ├── store.md │ │ └── what-does-mobx-react-to.md │ ├── collection-utilities.md │ ├── computeds-with-args.md │ ├── computeds.md │ ├── configuration.md │ ├── custom-observables.md │ ├── defining-data-stores.md │ ├── enabling-decorators.md │ ├── faq/ │ │ └── migrate-to-6.md │ ├── installation.md │ ├── intercept-and-observe.md │ ├── intro/ │ │ ├── concepts.md │ │ ├── how-to-read.md │ │ └── installation.md │ ├── lazy-observables.md │ ├── migrating-from-4-or-5.md │ ├── mobx-utils.md │ ├── observable-state.md │ ├── react/ │ │ ├── react-integration.md │ │ └── react-performance.md │ ├── react-integration.md │ ├── react-optimizations.md │ ├── reactions.md │ ├── refguide/ │ │ ├── action.md │ │ ├── api.md │ │ ├── autorun.md │ │ ├── computed-with-args.md │ │ ├── computed.md │ │ ├── configure.md │ │ ├── extending.md │ │ ├── mobx-utils.md │ │ ├── modifiers.md │ │ ├── object-api.md │ │ ├── object.md │ │ ├── observable.md │ │ ├── observe.md │ │ ├── on-become-observed.md │ │ └── set.md │ ├── styles/ │ │ └── website.css │ ├── subclassing.md │ ├── the-gist-of-mobx.md │ └── understanding-reactivity.md ├── jest.base.config.js ├── jest.config.js ├── lerna.json ├── package.json ├── packages/ │ ├── eslint-plugin-mobx/ │ │ ├── .babelrc.js │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── __tests__/ │ │ │ ├── exhaustive-make-observable.js │ │ │ ├── missing-make-observable.js │ │ │ ├── missing-observer.js │ │ │ ├── no-anonymous-observer.js │ │ │ ├── unconditional-make-observable.js │ │ │ └── utils/ │ │ │ └── get-rule-tester.js │ │ ├── jest.config-eslint-7.js │ │ ├── jest.config-eslint-9.js │ │ ├── jest.setup.js │ │ ├── package.json │ │ ├── preview/ │ │ │ ├── .eslintrc.js │ │ │ ├── .gitignore │ │ │ ├── make-observable.js │ │ │ ├── missing-observer.js │ │ │ ├── no-anonymous-observer.js │ │ │ └── node_modules/ │ │ │ └── eslint-plugin-mobx/ │ │ │ └── index.js │ │ ├── rollup.config.js │ │ └── src/ │ │ ├── exhaustive-make-observable.js │ │ ├── index.js │ │ ├── missing-make-observable.js │ │ ├── missing-observer.js │ │ ├── no-anonymous-observer.js │ │ ├── unconditional-make-observable.js │ │ └── utils.js │ ├── mobx/ │ │ ├── .flowconfig │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── __tests__/ │ │ │ ├── .babelrc │ │ │ ├── decorators_20223/ │ │ │ │ ├── stage3-decorators.ts │ │ │ │ └── tsconfig.json │ │ │ ├── mixed-versions/ │ │ │ │ ├── mixed-versions.js │ │ │ │ └── state-sharing.js │ │ │ ├── perf/ │ │ │ │ ├── index.js │ │ │ │ └── perf.js │ │ │ ├── tsconfig.json │ │ │ ├── v4/ │ │ │ │ ├── base/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── array.js.snap │ │ │ │ │ │ ├── extras.js.snap │ │ │ │ │ │ ├── makereactive.js.snap │ │ │ │ │ │ ├── object-api.js.snap │ │ │ │ │ │ ├── observables.js.snap │ │ │ │ │ │ └── spy.js.snap │ │ │ │ │ ├── array.js │ │ │ │ │ ├── autorun.js │ │ │ │ │ ├── cycles.js │ │ │ │ │ ├── extendObservable.js │ │ │ │ │ ├── extras.js │ │ │ │ │ ├── intercept.js │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ ├── makereactive.js │ │ │ │ │ ├── nested.js │ │ │ │ │ ├── object-api.js │ │ │ │ │ ├── observables.js │ │ │ │ │ ├── observe.ts │ │ │ │ │ ├── spy.js │ │ │ │ │ ├── tojs.js │ │ │ │ │ └── untracked.ts │ │ │ │ └── mobx4.ts │ │ │ └── v5/ │ │ │ ├── base/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ ├── action.js.snap │ │ │ │ │ ├── extras.js.snap │ │ │ │ │ ├── flow.js.snap │ │ │ │ │ ├── makereactive.js.snap │ │ │ │ │ ├── object-api.js.snap │ │ │ │ │ ├── observables.js.snap │ │ │ │ │ ├── proxies.js.snap │ │ │ │ │ └── spy.js.snap │ │ │ │ ├── action.js │ │ │ │ ├── api.js │ │ │ │ ├── array.js │ │ │ │ ├── autorun.js │ │ │ │ ├── autorunAsync.js │ │ │ │ ├── babel-decorators.js │ │ │ │ ├── babel-tests.js │ │ │ │ ├── become-observed.ts │ │ │ │ ├── cycles.js │ │ │ │ ├── decorate.js │ │ │ │ ├── errorhandling.js │ │ │ │ ├── extendObservable.js │ │ │ │ ├── extras.js │ │ │ │ ├── flow.js │ │ │ │ ├── intercept.js │ │ │ │ ├── make-observable.ts │ │ │ │ ├── makereactive.js │ │ │ │ ├── map.js │ │ │ │ ├── nested.js │ │ │ │ ├── object-api-proxy.js │ │ │ │ ├── object-api.js │ │ │ │ ├── observables.js │ │ │ │ ├── observe.ts │ │ │ │ ├── proxies.js │ │ │ │ ├── reaction.js │ │ │ │ ├── set.js │ │ │ │ ├── spy.js │ │ │ │ ├── strict-mode.js │ │ │ │ ├── tojs.js │ │ │ │ ├── trace.ts │ │ │ │ ├── typescript-decorators.ts │ │ │ │ ├── typescript-tests.ts │ │ │ │ └── untracked.ts │ │ │ ├── flow/ │ │ │ │ └── test.js │ │ │ └── utils/ │ │ │ └── test-utils.ts │ │ ├── flow-typed/ │ │ │ └── mobx.js │ │ ├── jest.config-decorators.js │ │ ├── jest.config.js │ │ ├── jest.projects.js │ │ ├── jest.setup.ts │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── perf.sh │ │ │ └── prepublish.js │ │ ├── src/ │ │ │ ├── api/ │ │ │ │ ├── action.ts │ │ │ │ ├── annotation.ts │ │ │ │ ├── autorun.ts │ │ │ │ ├── become-observed.ts │ │ │ │ ├── computed.ts │ │ │ │ ├── configure.ts │ │ │ │ ├── decorators.ts │ │ │ │ ├── extendobservable.ts │ │ │ │ ├── extras.ts │ │ │ │ ├── flow.ts │ │ │ │ ├── intercept-read.ts │ │ │ │ ├── intercept.ts │ │ │ │ ├── iscomputed.ts │ │ │ │ ├── isobservable.ts │ │ │ │ ├── makeObservable.ts │ │ │ │ ├── object-api.ts │ │ │ │ ├── observable.ts │ │ │ │ ├── observe.ts │ │ │ │ ├── tojs.ts │ │ │ │ ├── trace.ts │ │ │ │ ├── transaction.ts │ │ │ │ └── when.ts │ │ │ ├── core/ │ │ │ │ ├── action.ts │ │ │ │ ├── atom.ts │ │ │ │ ├── computedvalue.ts │ │ │ │ ├── derivation.ts │ │ │ │ ├── globalstate.ts │ │ │ │ ├── observable.ts │ │ │ │ ├── reaction.ts │ │ │ │ └── spy.ts │ │ │ ├── errors.ts │ │ │ ├── global.d.ts │ │ │ ├── internal.ts │ │ │ ├── mobx.ts │ │ │ ├── types/ │ │ │ │ ├── actionannotation.ts │ │ │ │ ├── autoannotation.ts │ │ │ │ ├── computedannotation.ts │ │ │ │ ├── decorator_fills.ts │ │ │ │ ├── dynamicobject.ts │ │ │ │ ├── flowannotation.ts │ │ │ │ ├── generic-abort-signal.ts │ │ │ │ ├── intercept-utils.ts │ │ │ │ ├── legacyobservablearray.ts │ │ │ │ ├── listen-utils.ts │ │ │ │ ├── modifiers.ts │ │ │ │ ├── observableannotation.ts │ │ │ │ ├── observablearray.ts │ │ │ │ ├── observablemap.ts │ │ │ │ ├── observableobject.ts │ │ │ │ ├── observableset.ts │ │ │ │ ├── observablevalue.ts │ │ │ │ ├── overrideannotation.ts │ │ │ │ └── type-utils.ts │ │ │ └── utils/ │ │ │ ├── comparer.ts │ │ │ ├── eq.ts │ │ │ ├── global.ts │ │ │ ├── iterable.ts │ │ │ └── utils.ts │ │ ├── tsconfig.json │ │ └── tsdx.config.js │ ├── mobx-react/ │ │ ├── .browserlistrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── __mocks__/ │ │ │ └── react-native.js │ │ ├── __tests__/ │ │ │ ├── .eslintrc.yaml │ │ │ ├── Provider.test.tsx │ │ │ ├── __snapshots__/ │ │ │ │ ├── hooks.test.tsx.snap │ │ │ │ ├── observer.test.tsx.snap │ │ │ │ └── stateless.test.tsx.snap │ │ │ ├── context.test.tsx │ │ │ ├── disposeOnUnmount.test.tsx │ │ │ ├── finalizationRegistry.tsx │ │ │ ├── hooks.test.tsx │ │ │ ├── inject.test.tsx │ │ │ ├── issue21.test.tsx │ │ │ ├── issue806.test.tsx │ │ │ ├── misc.test.tsx │ │ │ ├── observer.test.tsx │ │ │ ├── propTypes.test.ts │ │ │ ├── stateless.test.tsx │ │ │ ├── timerBasedFinalizationRegistry.tsx │ │ │ ├── transactions.test.tsx │ │ │ ├── tsconfig.json │ │ │ └── utils/ │ │ │ ├── ErrorCatcher.tsx │ │ │ ├── compile-ts.tsx │ │ │ ├── killFinalizationRegistry.ts │ │ │ └── withConsole.ts │ │ ├── batchingForReactDom.js │ │ ├── batchingForReactNative.js │ │ ├── batchingOptOut.js │ │ ├── jest.config.js │ │ ├── jest.setup.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Provider.tsx │ │ │ ├── disposeOnUnmount.ts │ │ │ ├── globals.d.ts │ │ │ ├── index.ts │ │ │ ├── inject.ts │ │ │ ├── observer.tsx │ │ │ ├── observerClass.ts │ │ │ ├── propTypes.ts │ │ │ ├── types/ │ │ │ │ ├── IReactComponent.ts │ │ │ │ ├── IStoresToProps.ts │ │ │ │ ├── IValueMap.ts │ │ │ │ └── IWrappedComponent.ts │ │ │ └── utils/ │ │ │ └── utils.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.test.json │ │ └── tsdx.config.js │ ├── mobx-react-lite/ │ │ ├── .eslintignore │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── __tests__/ │ │ │ ├── .eslintrc.yaml │ │ │ ├── ObserverComponent.test.tsx │ │ │ ├── __snapshots__/ │ │ │ │ ├── observer.test.tsx.snap │ │ │ │ ├── printDebugValue.test.ts.snap │ │ │ │ ├── useAsObservableSource.deprecated.test.tsx.snap │ │ │ │ └── useLocalStore.deprecated.test.tsx.snap │ │ │ ├── api.test.ts │ │ │ ├── assertEnvironment.test.ts │ │ │ ├── enforceActions.test.tsx │ │ │ ├── observer.test.tsx │ │ │ ├── printDebugValue.test.ts │ │ │ ├── strictAndConcurrentMode.test.tsx │ │ │ ├── strictAndConcurrentModeUsingFinalizationRegistry.test.tsx │ │ │ ├── strictAndConcurrentModeUsingTimers.test.tsx │ │ │ ├── transactions.test.tsx │ │ │ ├── tsconfig.json │ │ │ ├── useAsObservableSource.deprecated.test.tsx │ │ │ ├── useAsObservableSource.test.tsx │ │ │ ├── useLocalObservable.test.tsx │ │ │ ├── useLocalStore.deprecated.test.tsx │ │ │ ├── utils/ │ │ │ │ └── killFinalizationRegistry.ts │ │ │ └── utils.ts │ │ ├── batchingForReactDom.js │ │ ├── batchingForReactNative.js │ │ ├── batchingOptOut.js │ │ ├── jest.config.js │ │ ├── jest.setup.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── ObserverComponent.ts │ │ │ ├── index.ts │ │ │ ├── observer.ts │ │ │ ├── staticRendering.ts │ │ │ ├── useAsObservableSource.ts │ │ │ ├── useLocalObservable.ts │ │ │ ├── useLocalStore.ts │ │ │ ├── useObserver.ts │ │ │ └── utils/ │ │ │ ├── UniversalFinalizationRegistry.ts │ │ │ ├── assertEnvironment.ts │ │ │ ├── observerBatching.ts │ │ │ ├── observerFinalizationRegistry.ts │ │ │ ├── printDebugValue.ts │ │ │ ├── reactBatchedUpdates.native.ts │ │ │ ├── reactBatchedUpdates.ts │ │ │ └── utils.ts │ │ ├── tsconfig.build.cjs.json │ │ ├── tsconfig.build.es.json │ │ ├── tsconfig.build.json │ │ ├── tsconfig.json │ │ ├── tsconfig.test.json │ │ └── tsdx.config.js │ └── mobx-undecorate/ │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── __tests__/ │ │ ├── cli.spec.tsx │ │ ├── fixtures/ │ │ │ └── .gitignore │ │ ├── tsconfig.json │ │ └── undecorate.spec.ts │ ├── cli.js │ ├── jest.config.js │ ├── package.json │ ├── src/ │ │ └── undecorate.ts │ └── tsconfig.json ├── scripts/ │ └── build.js ├── sponsors.md ├── tsconfig.json ├── tsconfig.test.json └── website/ ├── core/ │ └── Footer.js ├── i18n/ │ └── en.json ├── package.json ├── sidebars.json ├── siteConfig.js └── static/ ├── css/ │ └── custom.css ├── getting-started.html ├── index.html └── js/ └── scripts.js