gitextract_3jrecnzc/ ├── .github/ │ └── workflows/ │ ├── codeql.yml │ ├── prerelease.yml │ ├── release.yml │ └── test.yml ├── .gitignore ├── .husky/ │ ├── commit-msg │ └── pre-commit ├── .prettierignore ├── .prettierrc.yml ├── .vscode/ │ ├── extensions.json │ └── settings.json ├── CHANGELOG.md ├── LICENSE ├── README.md ├── docs/ │ ├── .nojekyll │ ├── CNAME │ ├── _sidebar.md │ ├── advanced.md │ ├── api.md │ ├── changelog.md │ ├── donate.md │ ├── events.md │ ├── home.md │ ├── index.html │ ├── initialize.md │ ├── model.md │ ├── persist.md │ ├── redux-toolkit.md │ ├── test.md │ └── troubleshooting.md ├── package.json ├── src/ │ ├── actions/ │ │ ├── loading.ts │ │ ├── model.ts │ │ ├── persist.ts │ │ └── refresh.ts │ ├── api/ │ │ ├── get-loading.ts │ │ ├── use-computed.ts │ │ ├── use-isolate.ts │ │ ├── use-loading.ts │ │ └── use-model.ts │ ├── engines/ │ │ ├── memory.ts │ │ └── storage-engine.ts │ ├── index.ts │ ├── middleware/ │ │ ├── action-in-action.interceptor.ts │ │ ├── destroy-loading.interceptor.ts │ │ ├── freeze-state.middleware.ts │ │ ├── loading.interceptor.ts │ │ └── model.interceptor.ts │ ├── model/ │ │ ├── clone-model.ts │ │ ├── define-model.ts │ │ ├── enhance-action.ts │ │ ├── enhance-computed.ts │ │ ├── enhance-effect.ts │ │ ├── guard.ts │ │ └── types.ts │ ├── persist/ │ │ ├── persist-gate.tsx │ │ ├── persist-item.ts │ │ └── persist-manager.ts │ ├── reactive/ │ │ ├── computed-value.ts │ │ ├── create-computed-deps.ts │ │ ├── deps-collector.ts │ │ └── object-deps.ts │ ├── redux/ │ │ ├── connect.ts │ │ ├── contexts.ts │ │ ├── create-reducer.ts │ │ ├── foca-provider.tsx │ │ └── use-selector.ts │ ├── store/ │ │ ├── loading-store.ts │ │ ├── model-store.ts │ │ ├── proxy-store.ts │ │ └── store-basic.ts │ └── utils/ │ ├── deep-equal.ts │ ├── get-method-category.ts │ ├── getter.ts │ ├── immer.ts │ ├── is-promise.ts │ ├── is-type.ts │ ├── serialize.ts │ ├── symbol-observable.ts │ ├── to-args.ts │ └── to-promise.ts ├── test/ │ ├── __snapshots__/ │ │ └── serialize.test.ts.snap │ ├── action-in-action.test.tsx │ ├── build.test.ts │ ├── clone.test.ts │ ├── computed.test.ts │ ├── connect.test.tsx │ ├── deep-equal.test.ts │ ├── engine.test.ts │ ├── fixtures/ │ │ ├── equals.ts │ │ └── not-equals.ts │ ├── get-loading.test.ts │ ├── helpers/ │ │ ├── render-hook.tsx │ │ └── slow-engine.ts │ ├── lifecycle.test.ts │ ├── middleware.test.ts │ ├── model.test.ts │ ├── models/ │ │ ├── basic.model.ts │ │ ├── complex.model.ts │ │ ├── computed.model.ts │ │ └── persist.model.ts │ ├── persist.gate.test.tsx │ ├── persist.test.ts │ ├── provider.test.tsx │ ├── serialize.test.ts │ ├── store.test.ts │ ├── typescript/ │ │ ├── computed.check.ts │ │ ├── define-model.check.ts │ │ ├── get-loading.check.ts │ │ ├── persist.check.ts │ │ ├── use-isolate.check.ts │ │ ├── use-loading.check.ts │ │ └── use-model.check.ts │ ├── use-computed.test.ts │ ├── use-isolate.test.tsx │ ├── use-loading.test.ts │ └── use-model.test.ts ├── tsconfig.json ├── tsup.config.ts └── vitest.config.ts