gitextract_v8l79haa/ ├── .circleci/ │ └── config.yml ├── .dockerignore ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ └── bug-report.md │ ├── lock.yml │ ├── pull_request_template.md │ └── stale.yml ├── .gitignore ├── .husky/ │ └── pre-commit ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── ISSUE_TEMPLATE.md ├── LICENSE ├── README.md ├── SECURITY.md ├── __tests__/ │ ├── core/ │ │ ├── 1525.test.ts │ │ ├── 1664.test.ts │ │ ├── 2230.test.ts │ │ ├── __snapshots__/ │ │ │ ├── async.test.ts.snap │ │ │ ├── custom-type.test.ts.snap │ │ │ └── reference-custom.test.ts.snap │ │ ├── action.test.ts │ │ ├── actionTrackingMiddleware2.test.ts │ │ ├── api.test.ts │ │ ├── array.test.ts │ │ ├── async.test.ts │ │ ├── bigint.test.ts │ │ ├── boolean.test.ts │ │ ├── boxes-store.test.ts │ │ ├── circular1.test.ts │ │ ├── circular2.test.ts │ │ ├── custom-type.test.ts │ │ ├── date.test.ts │ │ ├── deprecated.test.ts │ │ ├── enum.test.ts │ │ ├── env.test.ts │ │ ├── frozen.test.ts │ │ ├── hooks.test.ts │ │ ├── identifier.test.ts │ │ ├── jsonpatch.test.ts │ │ ├── late.test.ts │ │ ├── lazy.test.ts │ │ ├── literal.test.ts │ │ ├── map.test.ts │ │ ├── model.test.ts │ │ ├── name.test.ts │ │ ├── node.test.ts │ │ ├── number.test.ts │ │ ├── object-node.test.ts │ │ ├── object.test.ts │ │ ├── optimizations.test.ts │ │ ├── optional-extension.test.ts │ │ ├── optional.test.ts │ │ ├── parent-properties.test.ts │ │ ├── pointer.test.ts │ │ ├── primitives.test.ts │ │ ├── protect.test.ts │ │ ├── recordPatches.test.ts │ │ ├── reference-custom.test.ts │ │ ├── reference-onInvalidated.test.ts │ │ ├── reference.test.ts │ │ ├── refinement.test.ts │ │ ├── reflection.test.ts │ │ ├── snapshotProcessor.test.ts │ │ ├── string.test.ts │ │ ├── this.test.ts │ │ ├── type-system.test.ts │ │ ├── union.test.ts │ │ └── volatile.test.ts │ ├── perf/ │ │ ├── fixture-data.skip.ts │ │ ├── fixture-models.skip.ts │ │ ├── fixtures/ │ │ │ ├── fixture-data.ts │ │ │ └── fixture-models.ts │ │ ├── perf.skip.ts │ │ ├── report.ts │ │ ├── scenarios.ts │ │ └── timer.ts │ ├── setup.ts │ ├── tsconfig.json │ └── utils.test.ts ├── bun.lockb ├── bunfig.toml ├── changelog.md ├── docker-compose.yml ├── docs/ │ ├── .gitattributes │ ├── API/ │ │ ├── index.md │ │ └── interfaces/ │ │ ├── customtypeoptions.md │ │ ├── functionwithflag.md │ │ ├── iactioncontext.md │ │ ├── iactionrecorder.md │ │ ├── iactiontrackingmiddleware2call.md │ │ ├── iactiontrackingmiddleware2hooks.md │ │ ├── iactiontrackingmiddlewarehooks.md │ │ ├── ianycomplextype.md │ │ ├── ianymodeltype.md │ │ ├── ianytype.md │ │ ├── ihooks.md │ │ ├── ijsonpatch.md │ │ ├── imiddlewareevent.md │ │ ├── imodelreflectiondata.md │ │ ├── imodelreflectionpropertiesdata.md │ │ ├── imodeltype.md │ │ ├── ipatchrecorder.md │ │ ├── ireversiblejsonpatch.md │ │ ├── iserializedactioncall.md │ │ ├── isimpletype.md │ │ ├── isnapshotprocessor.md │ │ ├── isnapshotprocessors.md │ │ ├── itype.md │ │ ├── ivalidationcontextentry.md │ │ ├── ivalidationerror.md │ │ ├── referenceoptionsgetset.md │ │ ├── referenceoptionsoninvalidated.md │ │ └── unionoptions.md │ ├── API_header.md │ ├── compare/ │ │ └── context-reducer-vs-mobx-state-tree.md │ ├── concepts/ │ │ ├── actions.md │ │ ├── async-actions.md │ │ ├── dependency-injection.md │ │ ├── listeners.md │ │ ├── middleware.md │ │ ├── patches.md │ │ ├── react.md │ │ ├── reconciliation.md │ │ ├── references.md │ │ ├── snapshots.md │ │ ├── trees.md │ │ ├── views.md │ │ └── volatiles.md │ ├── intro/ │ │ ├── examples.md │ │ ├── getting-started.md │ │ ├── installation.md │ │ ├── philosophy.md │ │ └── welcome.md │ ├── overview/ │ │ ├── hooks.md │ │ ├── types.md │ │ └── utilties.md │ ├── recipes/ │ │ ├── auto-generated-property-setter-actions.md │ │ ├── mst-query.md │ │ └── pre-built-form-types-with-mst-form-type.md │ └── tips/ │ ├── circular-deps.md │ ├── faq.md │ ├── inheritance.md │ ├── more-tips.md │ ├── resources.md │ ├── snapshots-as-values.md │ └── typescript.md ├── jest.config.js ├── package.json ├── rollup.config.js ├── scripts/ │ ├── fix-docs-source-links.js │ ├── generate-compose-type.js │ └── generate-shared.js ├── src/ │ ├── core/ │ │ ├── action.ts │ │ ├── actionContext.ts │ │ ├── flow.ts │ │ ├── json-patch.ts │ │ ├── mst-operations.ts │ │ ├── node/ │ │ │ ├── BaseNode.ts │ │ │ ├── Hook.ts │ │ │ ├── create-node.ts │ │ │ ├── identifier-cache.ts │ │ │ ├── livelinessChecking.ts │ │ │ ├── node-utils.ts │ │ │ ├── object-node.ts │ │ │ └── scalar-node.ts │ │ ├── process.ts │ │ └── type/ │ │ ├── type-checker.ts │ │ └── type.ts │ ├── index.ts │ ├── internal.ts │ ├── middlewares/ │ │ ├── create-action-tracking-middleware.ts │ │ ├── createActionTrackingMiddleware2.ts │ │ └── on-action.ts │ ├── types/ │ │ ├── complex-types/ │ │ │ ├── array.ts │ │ │ ├── map.ts │ │ │ └── model.ts │ │ ├── index.ts │ │ ├── primitives.ts │ │ └── utility-types/ │ │ ├── custom.ts │ │ ├── enumeration.ts │ │ ├── frozen.ts │ │ ├── identifier.ts │ │ ├── late.ts │ │ ├── lazy.ts │ │ ├── literal.ts │ │ ├── maybe.ts │ │ ├── optional.ts │ │ ├── reference.ts │ │ ├── refinement.ts │ │ ├── snapshotProcessor.ts │ │ └── union.ts │ └── utils.ts ├── test-results/ │ └── .gitkeep ├── tsconfig.json ├── tslint.json ├── typedocconfig.js └── website/ ├── bun.lockb ├── core/ │ └── Footer.js ├── i18n/ │ └── en.json ├── package.json ├── sidebars.json ├── siteConfig.js └── static/ ├── css/ │ └── custom.css └── index.html