gitextract_ckw58bpi/ ├── .codesandbox/ │ └── ci.json ├── .eslintrc.js ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ ├── publish.yml │ ├── size.yml │ ├── test-codegen.yml │ └── tests.yml ├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── .yarn/ │ ├── patches/ │ │ └── size-limit-npm-11.0.1-05996e44e7.patch │ └── releases/ │ └── yarn-4.4.1.cjs ├── .yarnrc.yml ├── CNAME ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── _artifacts/ │ ├── domain_map.yaml │ ├── skill_spec.md │ └── skill_tree.yaml ├── docs/ │ ├── api/ │ │ ├── actionCreatorMiddleware.mdx │ │ ├── autoBatchEnhancer.mdx │ │ ├── codemods.mdx │ │ ├── combineSlices.mdx │ │ ├── configureStore.mdx │ │ ├── createAction.mdx │ │ ├── createAsyncThunk.mdx │ │ ├── createDynamicMiddleware.mdx │ │ ├── createEntityAdapter.mdx │ │ ├── createListenerMiddleware.mdx │ │ ├── createReducer.mdx │ │ ├── createSelector.mdx │ │ ├── createSlice.mdx │ │ ├── getDefaultEnhancers.mdx │ │ ├── getDefaultMiddleware.mdx │ │ ├── immutabilityMiddleware.mdx │ │ ├── matching-utilities.mdx │ │ ├── otherExports.mdx │ │ └── serializabilityMiddleware.mdx │ ├── components/ │ │ └── DetailedExplanation.jsx │ ├── introduction/ │ │ ├── getting-started.md │ │ └── why-rtk-is-redux-today.md │ ├── package.json │ ├── rtk-query/ │ │ ├── api/ │ │ │ ├── ApiProvider.mdx │ │ │ ├── createApi.mdx │ │ │ ├── created-api/ │ │ │ │ ├── api-slice-utils.mdx │ │ │ │ ├── code-splitting.mdx │ │ │ │ ├── endpoints.mdx │ │ │ │ ├── hooks.mdx │ │ │ │ ├── overview.mdx │ │ │ │ └── redux-integration.mdx │ │ │ ├── fetchBaseQuery.mdx │ │ │ └── setupListeners.mdx │ │ ├── comparison.md │ │ ├── internal/ │ │ │ ├── buildMiddleware/ │ │ │ │ └── invalidationByTags.mdx │ │ │ ├── buildSlice.mdx │ │ │ ├── overview.mdx │ │ │ └── queryThunk.mdx │ │ ├── overview.md │ │ ├── usage/ │ │ │ ├── automated-refetching.mdx │ │ │ ├── cache-behavior.mdx │ │ │ ├── code-generation.mdx │ │ │ ├── code-splitting.mdx │ │ │ ├── conditional-fetching.mdx │ │ │ ├── customizing-create-api.mdx │ │ │ ├── customizing-queries.mdx │ │ │ ├── error-handling.mdx │ │ │ ├── examples.mdx │ │ │ ├── infinite-queries.mdx │ │ │ ├── manual-cache-updates.mdx │ │ │ ├── migrating-to-rtk-query.mdx │ │ │ ├── mutations.mdx │ │ │ ├── pagination.mdx │ │ │ ├── persistence-and-rehydration.mdx │ │ │ ├── polling.mdx │ │ │ ├── prefetching.mdx │ │ │ ├── queries.mdx │ │ │ ├── server-side-rendering.mdx │ │ │ ├── streaming-updates.mdx │ │ │ └── usage-without-react-hooks.mdx │ │ └── usage-with-typescript.mdx │ ├── tsconfig.json │ ├── tutorials/ │ │ ├── overview.md │ │ ├── quick-start.mdx │ │ ├── rtk-query.mdx │ │ └── typescript.md │ ├── usage/ │ │ ├── immer-reducers.md │ │ ├── migrating-rtk-2.md │ │ ├── migrating-to-modern-redux.mdx │ │ ├── nextjs.mdx │ │ ├── usage-guide.md │ │ └── usage-with-typescript.md │ └── virtual/ │ ├── matchers/ │ │ └── index.ts │ ├── petstore-api.generated/ │ │ ├── index.ts │ │ ├── petstore-api.generated.ts │ │ └── petstore.json │ ├── redux-logger/ │ │ └── index.ts │ └── your-cool-library/ │ └── index.ts ├── errors.json ├── examples/ │ ├── action-listener/ │ │ └── counter/ │ │ ├── package.json │ │ ├── public/ │ │ │ └── index.html │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── App/ │ │ │ │ │ └── App.tsx │ │ │ │ ├── ChangeThemeForm/ │ │ │ │ │ ├── ChangeThemeForm.tsx │ │ │ │ │ └── changeThemeForm.module.css │ │ │ │ ├── Counter/ │ │ │ │ │ ├── Counter.tsx │ │ │ │ │ └── counter.module.css │ │ │ │ ├── CounterList/ │ │ │ │ │ ├── CounterList.tsx │ │ │ │ │ └── counter.module.css │ │ │ │ └── CreateCounterForm/ │ │ │ │ ├── CreateCounterForm.tsx │ │ │ │ └── createCounter.module.css │ │ │ ├── index.css │ │ │ ├── index.tsx │ │ │ ├── react-app-env.d.ts │ │ │ ├── services/ │ │ │ │ ├── counter/ │ │ │ │ │ ├── listeners.ts │ │ │ │ │ ├── slice.ts │ │ │ │ │ └── tests/ │ │ │ │ │ └── listener.test.ts │ │ │ │ └── theme/ │ │ │ │ ├── listeners.ts │ │ │ │ └── slice.ts │ │ │ └── store.ts │ │ └── tsconfig.json │ ├── publish-ci/ │ │ ├── cra4/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ ├── playwright.config.ts │ │ │ ├── public/ │ │ │ │ ├── index.html │ │ │ │ ├── manifest.json │ │ │ │ ├── mockServiceWorker.js │ │ │ │ └── robots.txt │ │ │ ├── src/ │ │ │ │ ├── App.css │ │ │ │ ├── App.tsx │ │ │ │ ├── app/ │ │ │ │ │ ├── hooks.ts │ │ │ │ │ ├── services/ │ │ │ │ │ │ ├── post.ts │ │ │ │ │ │ └── times.ts │ │ │ │ │ └── store.ts │ │ │ │ ├── features/ │ │ │ │ │ ├── common/ │ │ │ │ │ │ └── Container.tsx │ │ │ │ │ ├── counter/ │ │ │ │ │ │ ├── Counter.module.css │ │ │ │ │ │ ├── Counter.tsx │ │ │ │ │ │ ├── counterAPI.ts │ │ │ │ │ │ └── counterSlice.ts │ │ │ │ │ ├── posts/ │ │ │ │ │ │ ├── Post.tsx │ │ │ │ │ │ └── PostsManager.css │ │ │ │ │ └── time/ │ │ │ │ │ └── TimeList.tsx │ │ │ │ ├── index.css │ │ │ │ ├── index.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── browser.ts │ │ │ │ │ ├── handlers.ts │ │ │ │ │ └── mockServer.ts │ │ │ │ └── react-app-env.d.ts │ │ │ ├── tests/ │ │ │ │ └── playwright/ │ │ │ │ └── rtkq.test.ts │ │ │ └── tsconfig.json │ │ ├── cra5/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ ├── playwright.config.ts │ │ │ ├── public/ │ │ │ │ ├── index.html │ │ │ │ ├── manifest.json │ │ │ │ ├── mockServiceWorker.js │ │ │ │ └── robots.txt │ │ │ ├── src/ │ │ │ │ ├── App.css │ │ │ │ ├── App.tsx │ │ │ │ ├── app/ │ │ │ │ │ ├── hooks.ts │ │ │ │ │ ├── services/ │ │ │ │ │ │ ├── post.ts │ │ │ │ │ │ └── times.ts │ │ │ │ │ └── store.ts │ │ │ │ ├── features/ │ │ │ │ │ ├── common/ │ │ │ │ │ │ └── Container.tsx │ │ │ │ │ ├── counter/ │ │ │ │ │ │ ├── Counter.module.css │ │ │ │ │ │ ├── Counter.tsx │ │ │ │ │ │ ├── counterAPI.ts │ │ │ │ │ │ └── counterSlice.ts │ │ │ │ │ ├── posts/ │ │ │ │ │ │ ├── Post.tsx │ │ │ │ │ │ └── PostsManager.css │ │ │ │ │ └── time/ │ │ │ │ │ └── TimeList.tsx │ │ │ │ ├── index.css │ │ │ │ ├── index.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── browser.ts │ │ │ │ │ ├── handlers.ts │ │ │ │ │ └── mockServer.ts │ │ │ │ └── react-app-env.d.ts │ │ │ ├── tests/ │ │ │ │ └── playwright/ │ │ │ │ └── rtkq.test.ts │ │ │ └── tsconfig.json │ │ ├── expo/ │ │ │ ├── .gitignore │ │ │ ├── .prettierrc.json │ │ │ ├── App.tsx │ │ │ ├── README.md │ │ │ ├── app.json │ │ │ ├── babel.config.js │ │ │ ├── eslint.config.mjs │ │ │ ├── globals.d.ts │ │ │ ├── index.ts │ │ │ ├── jest-setup.ts │ │ │ ├── jest.config.ts │ │ │ ├── metro.base.config.ts │ │ │ ├── metro.config.js │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── Main.test.tsx │ │ │ │ ├── Main.tsx │ │ │ │ ├── app/ │ │ │ │ │ ├── createAppSlice.ts │ │ │ │ │ ├── hooks.ts │ │ │ │ │ └── store.ts │ │ │ │ ├── components/ │ │ │ │ │ ├── AsyncButton.tsx │ │ │ │ │ ├── ExternalLink.tsx │ │ │ │ │ ├── ExternalLinks.tsx │ │ │ │ │ ├── Header.tsx │ │ │ │ │ ├── LearnReduxLinks.tsx │ │ │ │ │ └── Section.tsx │ │ │ │ ├── constants/ │ │ │ │ │ └── Colors.ts │ │ │ │ ├── features/ │ │ │ │ │ ├── counter/ │ │ │ │ │ │ ├── Counter.tsx │ │ │ │ │ │ ├── counterAPI.ts │ │ │ │ │ │ ├── counterSlice.test.ts │ │ │ │ │ │ └── counterSlice.ts │ │ │ │ │ └── quotes/ │ │ │ │ │ ├── Quotes.tsx │ │ │ │ │ └── quotesApiSlice.ts │ │ │ │ └── utils/ │ │ │ │ └── test-utils.tsx │ │ │ └── tsconfig.json │ │ ├── next/ │ │ │ ├── .eslintrc.js │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ ├── playwright.config.ts │ │ │ ├── public/ │ │ │ │ └── mockServiceWorker.js │ │ │ ├── setupTests.ts │ │ │ ├── src/ │ │ │ │ ├── app-core/ │ │ │ │ │ ├── hooks.ts │ │ │ │ │ ├── services/ │ │ │ │ │ │ ├── post.ts │ │ │ │ │ │ └── times.ts │ │ │ │ │ └── store.ts │ │ │ │ ├── features/ │ │ │ │ │ ├── common/ │ │ │ │ │ │ └── Container.tsx │ │ │ │ │ ├── counter/ │ │ │ │ │ │ ├── Counter.module.css │ │ │ │ │ │ ├── Counter.tsx │ │ │ │ │ │ ├── counterAPI.ts │ │ │ │ │ │ └── counterSlice.ts │ │ │ │ │ ├── posts/ │ │ │ │ │ │ ├── Post.tsx │ │ │ │ │ │ └── PostsManager.css │ │ │ │ │ └── time/ │ │ │ │ │ └── TimeList.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── browser.ts │ │ │ │ │ ├── handlers.ts │ │ │ │ │ ├── mockServer.ts │ │ │ │ │ └── node.ts │ │ │ │ ├── pages/ │ │ │ │ │ ├── _app.tsx │ │ │ │ │ ├── api/ │ │ │ │ │ │ └── counter.ts │ │ │ │ │ └── index.tsx │ │ │ │ └── styles/ │ │ │ │ ├── Home.module.css │ │ │ │ └── globals.css │ │ │ ├── tests/ │ │ │ │ └── playwright/ │ │ │ │ └── rtkq.test.ts │ │ │ ├── tsconfig.json │ │ │ └── tsconfig.test.json │ │ ├── node-esm/ │ │ │ ├── .gitignore │ │ │ ├── package.json │ │ │ ├── test-cjs.cjs │ │ │ └── test-esm.mjs │ │ ├── node-standard/ │ │ │ ├── .gitignore │ │ │ ├── package.json │ │ │ ├── test-cjs.js │ │ │ └── test-esm.mjs │ │ ├── react-native/ │ │ │ ├── .bundle/ │ │ │ │ └── config │ │ │ ├── .gitignore │ │ │ ├── .prettierrc.json │ │ │ ├── .watchmanconfig │ │ │ ├── App.test.tsx │ │ │ ├── App.tsx │ │ │ ├── Gemfile │ │ │ ├── README.md │ │ │ ├── android/ │ │ │ │ ├── app/ │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── debug.keystore │ │ │ │ │ ├── proguard-rules.pro │ │ │ │ │ └── src/ │ │ │ │ │ ├── debug/ │ │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ │ └── main/ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ ├── java/ │ │ │ │ │ │ └── com/ │ │ │ │ │ │ └── reduxTemplate/ │ │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ │ └── MainApplication.kt │ │ │ │ │ └── res/ │ │ │ │ │ ├── drawable/ │ │ │ │ │ │ └── rn_edit_text_material.xml │ │ │ │ │ └── values/ │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── build.gradle │ │ │ │ ├── gradle/ │ │ │ │ │ └── wrapper/ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ ├── gradle.properties │ │ │ │ ├── gradlew │ │ │ │ ├── gradlew.bat │ │ │ │ └── settings.gradle │ │ │ ├── app.json │ │ │ ├── babel.config.js │ │ │ ├── eslint.config.mjs │ │ │ ├── globals.d.ts │ │ │ ├── index.js │ │ │ ├── ios/ │ │ │ │ ├── .xcode.env │ │ │ │ ├── Podfile │ │ │ │ ├── reduxTemplate/ │ │ │ │ │ ├── AppDelegate.h │ │ │ │ │ ├── AppDelegate.mm │ │ │ │ │ ├── Images.xcassets/ │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── Info.plist │ │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ │ ├── PrivacyInfo.xcprivacy │ │ │ │ │ └── main.m │ │ │ │ ├── reduxTemplate.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── xcschemes/ │ │ │ │ │ └── reduxTemplate.xcscheme │ │ │ │ └── reduxTemplateTests/ │ │ │ │ ├── Info.plist │ │ │ │ └── reduxTemplateTests.m │ │ │ ├── jest-setup.ts │ │ │ ├── jest.config.ts │ │ │ ├── metro.config.js │ │ │ ├── package.json │ │ │ ├── react-native.config.mjs │ │ │ ├── src/ │ │ │ │ ├── app/ │ │ │ │ │ ├── createAppSlice.ts │ │ │ │ │ ├── hooks.ts │ │ │ │ │ └── store.ts │ │ │ │ ├── components/ │ │ │ │ │ ├── AsyncButton.tsx │ │ │ │ │ ├── Header.tsx │ │ │ │ │ ├── LearnReduxLinks.tsx │ │ │ │ │ └── Section.tsx │ │ │ │ ├── constants/ │ │ │ │ │ └── TypedColors.ts │ │ │ │ ├── features/ │ │ │ │ │ ├── counter/ │ │ │ │ │ │ ├── Counter.tsx │ │ │ │ │ │ ├── counterAPI.ts │ │ │ │ │ │ ├── counterSlice.test.ts │ │ │ │ │ │ └── counterSlice.ts │ │ │ │ │ └── quotes/ │ │ │ │ │ ├── Quotes.tsx │ │ │ │ │ └── quotesApiSlice.ts │ │ │ │ └── utils/ │ │ │ │ └── test-utils.tsx │ │ │ └── tsconfig.json │ │ └── vite/ │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package.json │ │ ├── playwright.config.ts │ │ ├── public/ │ │ │ └── mockServiceWorker.js │ │ ├── src/ │ │ │ ├── App.css │ │ │ ├── App.tsx │ │ │ ├── app/ │ │ │ │ ├── hooks.ts │ │ │ │ ├── services/ │ │ │ │ │ ├── post.ts │ │ │ │ │ └── times.ts │ │ │ │ └── store.ts │ │ │ ├── features/ │ │ │ │ ├── common/ │ │ │ │ │ └── Container.tsx │ │ │ │ ├── counter/ │ │ │ │ │ ├── Counter.module.css │ │ │ │ │ ├── Counter.tsx │ │ │ │ │ ├── counterAPI.ts │ │ │ │ │ └── counterSlice.ts │ │ │ │ ├── posts/ │ │ │ │ │ ├── Post.tsx │ │ │ │ │ └── PostsManager.css │ │ │ │ └── time/ │ │ │ │ └── TimeList.tsx │ │ │ ├── index.css │ │ │ ├── main.tsx │ │ │ ├── mocks/ │ │ │ │ ├── browser.ts │ │ │ │ ├── handlers.ts │ │ │ │ └── mockServer.ts │ │ │ └── vite-env.d.ts │ │ ├── tests/ │ │ │ └── playwright/ │ │ │ └── rtkq.test.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ ├── query/ │ │ └── react/ │ │ ├── advanced/ │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ └── index.html │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── Pokemon.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── react-app-env.d.ts │ │ │ │ ├── services/ │ │ │ │ │ └── pokemon.ts │ │ │ │ └── styles.css │ │ │ └── tsconfig.json │ │ ├── authentication/ │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ ├── index.html │ │ │ │ ├── manifest.json │ │ │ │ └── mockServiceWorker.js │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── app/ │ │ │ │ │ ├── services/ │ │ │ │ │ │ └── auth.ts │ │ │ │ │ └── store.ts │ │ │ │ ├── features/ │ │ │ │ │ └── auth/ │ │ │ │ │ ├── Login.tsx │ │ │ │ │ ├── ProtectedComponent.tsx │ │ │ │ │ └── authSlice.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ ├── store.ts │ │ │ │ │ └── useAuth.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── browser.ts │ │ │ │ │ └── handlers.ts │ │ │ │ ├── react-app-env.d.ts │ │ │ │ └── utils/ │ │ │ │ └── PrivateOutlet.tsx │ │ │ └── tsconfig.json │ │ ├── authentication-with-extrareducers/ │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ ├── index.html │ │ │ │ ├── manifest.json │ │ │ │ └── mockServiceWorker.js │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── app/ │ │ │ │ │ ├── services/ │ │ │ │ │ │ └── auth.ts │ │ │ │ │ └── store.ts │ │ │ │ ├── features/ │ │ │ │ │ └── auth/ │ │ │ │ │ ├── Login.tsx │ │ │ │ │ ├── ProtectedComponent.tsx │ │ │ │ │ └── authSlice.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ ├── store.ts │ │ │ │ │ └── useAuth.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── browser.ts │ │ │ │ │ └── handlers.ts │ │ │ │ ├── react-app-env.d.ts │ │ │ │ └── utils/ │ │ │ │ └── PrivateOutlet.tsx │ │ │ └── tsconfig.json │ │ ├── basic/ │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ └── index.html │ │ │ ├── src/ │ │ │ │ ├── App.test.tsx │ │ │ │ ├── App.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── react-app-env.d.ts │ │ │ │ ├── services/ │ │ │ │ │ └── pokemon.ts │ │ │ │ ├── setupTests.ts │ │ │ │ ├── store.ts │ │ │ │ ├── styles.css │ │ │ │ └── test/ │ │ │ │ ├── server/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── serverHandlers.ts │ │ │ │ └── test-utils.tsx │ │ │ └── tsconfig.json │ │ ├── conditional-fetching/ │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ └── index.html │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── Pokemon.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── pokemon.data.ts │ │ │ │ ├── react-app-env.d.ts │ │ │ │ ├── services/ │ │ │ │ │ └── pokemon.ts │ │ │ │ ├── store.ts │ │ │ │ └── styles.css │ │ │ └── tsconfig.json │ │ ├── deduping-queries/ │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ └── index.html │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── Pokemon.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── react-app-env.d.ts │ │ │ │ ├── services/ │ │ │ │ │ └── pokemon.ts │ │ │ │ └── store.ts │ │ │ └── tsconfig.json │ │ ├── graphql/ │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ ├── index.html │ │ │ │ ├── manifest.json │ │ │ │ └── mockServiceWorker.js │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── app/ │ │ │ │ │ └── services/ │ │ │ │ │ └── posts.ts │ │ │ │ ├── features/ │ │ │ │ │ └── posts/ │ │ │ │ │ └── PostsManager.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── browser.ts │ │ │ │ │ └── db.ts │ │ │ │ └── react-app-env.d.ts │ │ │ └── tsconfig.json │ │ ├── graphql-codegen/ │ │ │ ├── .introspection.json │ │ │ ├── apollo.config.js │ │ │ ├── codegen.yml │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ ├── index.html │ │ │ │ ├── manifest.json │ │ │ │ └── mockServiceWorker.js │ │ │ ├── sandbox.config.json │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── app/ │ │ │ │ │ └── services/ │ │ │ │ │ ├── baseApi.ts │ │ │ │ │ └── types.generated.ts │ │ │ │ ├── features/ │ │ │ │ │ └── posts/ │ │ │ │ │ ├── GetPost.generated.ts │ │ │ │ │ ├── GetPost.graphql │ │ │ │ │ ├── GetPosts.generated.ts │ │ │ │ │ ├── GetPosts.graphql │ │ │ │ │ └── PostsManager.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── browser.ts │ │ │ │ │ ├── db.ts │ │ │ │ │ └── schema.js │ │ │ │ └── react-app-env.d.ts │ │ │ └── tsconfig.json │ │ ├── infinite-queries/ │ │ │ ├── .eslintrc.json │ │ │ ├── .gitignore │ │ │ ├── .prettierrc.json │ │ │ ├── README.md │ │ │ ├── index.html │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ └── mockServiceWorker.js │ │ │ ├── src/ │ │ │ │ ├── App.css │ │ │ │ ├── App.tsx │ │ │ │ ├── app/ │ │ │ │ │ ├── createAppSlice.ts │ │ │ │ │ ├── hooks.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── useIntersectionCallback.ts │ │ │ │ ├── features/ │ │ │ │ │ ├── baseApi.ts │ │ │ │ │ ├── bidirectional-cursor-infinite-scroll/ │ │ │ │ │ │ ├── BidirectionalCursorInfScroll.tsx │ │ │ │ │ │ └── infiniteScrollApi.ts │ │ │ │ │ ├── infinite-scroll/ │ │ │ │ │ │ ├── InfiniteScrollExample.tsx │ │ │ │ │ │ └── infiniteScrollApi.ts │ │ │ │ │ ├── limit-offset/ │ │ │ │ │ │ ├── LimitOffsetExample.tsx │ │ │ │ │ │ └── infiniteScrollApi.ts │ │ │ │ │ ├── max-pages/ │ │ │ │ │ │ ├── InfiniteScrollMaxExample.tsx │ │ │ │ │ │ └── infiniteScrollApi.ts │ │ │ │ │ ├── pagination/ │ │ │ │ │ │ ├── PaginationExample.tsx │ │ │ │ │ │ └── paginationApi.ts │ │ │ │ │ ├── pagination-infinite-scroll/ │ │ │ │ │ │ ├── PaginationInfScrollExample.tsx │ │ │ │ │ │ └── infiniteScrollApi.ts │ │ │ │ │ └── rn-flatlist/ │ │ │ │ │ └── FlatlistExample.tsx │ │ │ │ ├── index.css │ │ │ │ ├── main.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── browser.ts │ │ │ │ │ └── handlers.ts │ │ │ │ ├── setupTests.ts │ │ │ │ ├── utils/ │ │ │ │ │ └── test-utils.tsx │ │ │ │ └── vite-env.d.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.node.json │ │ │ └── vite.config.ts │ │ ├── kitchen-sink/ │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ ├── index.html │ │ │ │ ├── manifest.json │ │ │ │ └── mockServiceWorker.js │ │ │ ├── src/ │ │ │ │ ├── App.css │ │ │ │ ├── App.tsx │ │ │ │ ├── app/ │ │ │ │ │ ├── services/ │ │ │ │ │ │ ├── api.ts │ │ │ │ │ │ ├── counter.ts │ │ │ │ │ │ ├── post.ts │ │ │ │ │ │ ├── posts.ts │ │ │ │ │ │ └── times.ts │ │ │ │ │ └── store.ts │ │ │ │ ├── features/ │ │ │ │ │ ├── auth/ │ │ │ │ │ │ └── authSlice.ts │ │ │ │ │ ├── bundleSplitting/ │ │ │ │ │ │ ├── Lazy.tsx │ │ │ │ │ │ ├── Post.tsx │ │ │ │ │ │ ├── PostsList.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── common/ │ │ │ │ │ │ └── Container.tsx │ │ │ │ │ ├── counter/ │ │ │ │ │ │ ├── Counter.module.css │ │ │ │ │ │ ├── Counter.tsx │ │ │ │ │ │ └── CounterList.tsx │ │ │ │ │ ├── polling/ │ │ │ │ │ │ ├── PollingToggles.tsx │ │ │ │ │ │ └── pollingSlice.ts │ │ │ │ │ ├── posts/ │ │ │ │ │ │ ├── PostDetail.tsx │ │ │ │ │ │ ├── PostsManager.css │ │ │ │ │ │ └── PostsManager.tsx │ │ │ │ │ └── time/ │ │ │ │ │ └── TimeList.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── browser.ts │ │ │ │ │ ├── handlers.ts │ │ │ │ │ ├── mockServer.ts │ │ │ │ │ └── setupTests.tsx │ │ │ │ ├── react-app-env.d.ts │ │ │ │ ├── setupTests.ts │ │ │ │ └── styles.css │ │ │ └── tsconfig.json │ │ ├── mutations/ │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ ├── index.html │ │ │ │ └── mockServiceWorker.js │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── app/ │ │ │ │ │ └── services/ │ │ │ │ │ └── posts.ts │ │ │ │ ├── features/ │ │ │ │ │ └── posts/ │ │ │ │ │ ├── PostDetail.tsx │ │ │ │ │ └── PostsManager.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── browser.ts │ │ │ │ │ └── db.ts │ │ │ │ ├── react-app-env.d.ts │ │ │ │ └── store.ts │ │ │ └── tsconfig.json │ │ ├── optimistic-update/ │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ ├── index.html │ │ │ │ ├── manifest.json │ │ │ │ └── mockServiceWorker.js │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── app/ │ │ │ │ │ └── services/ │ │ │ │ │ └── posts.ts │ │ │ │ ├── features/ │ │ │ │ │ └── posts/ │ │ │ │ │ ├── PostDetail.tsx │ │ │ │ │ └── PostsManager.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── browser.ts │ │ │ │ │ └── db.ts │ │ │ │ └── react-app-env.d.ts │ │ │ └── tsconfig.json │ │ ├── pagination/ │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ ├── index.html │ │ │ │ ├── manifest.json │ │ │ │ └── mockServiceWorker.js │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── app/ │ │ │ │ │ └── services/ │ │ │ │ │ └── posts.ts │ │ │ │ ├── features/ │ │ │ │ │ └── posts/ │ │ │ │ │ └── PostsManager.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── browser.ts │ │ │ │ │ └── db.ts │ │ │ │ └── react-app-env.d.ts │ │ │ └── tsconfig.json │ │ ├── polling/ │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ ├── index.html │ │ │ │ └── manifest.json │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── Pokemon.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── pokemon.data.ts │ │ │ │ ├── react-app-env.d.ts │ │ │ │ ├── services/ │ │ │ │ │ └── pokemon.ts │ │ │ │ ├── store.ts │ │ │ │ └── styles.css │ │ │ └── tsconfig.json │ │ ├── prefetching/ │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ ├── index.html │ │ │ │ ├── manifest.json │ │ │ │ └── mockServiceWorker.js │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── app/ │ │ │ │ │ └── services/ │ │ │ │ │ └── posts.ts │ │ │ │ ├── features/ │ │ │ │ │ └── posts/ │ │ │ │ │ └── PostsManager.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── browser.ts │ │ │ │ │ └── db.ts │ │ │ │ └── react-app-env.d.ts │ │ │ └── tsconfig.json │ │ ├── prefetching-automatic/ │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ ├── index.html │ │ │ │ ├── manifest.json │ │ │ │ └── mockServiceWorker.js │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── app/ │ │ │ │ │ └── services/ │ │ │ │ │ └── posts.ts │ │ │ │ ├── features/ │ │ │ │ │ └── posts/ │ │ │ │ │ └── PostsManager.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── browser.ts │ │ │ │ │ └── db.ts │ │ │ │ └── react-app-env.d.ts │ │ │ └── tsconfig.json │ │ ├── prefetching-automatic-waterfall/ │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ ├── index.html │ │ │ │ ├── manifest.json │ │ │ │ └── mockServiceWorker.js │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── app/ │ │ │ │ │ └── services/ │ │ │ │ │ └── posts.ts │ │ │ │ ├── features/ │ │ │ │ │ └── posts/ │ │ │ │ │ └── PostsManager.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── browser.ts │ │ │ │ │ └── db.ts │ │ │ │ └── react-app-env.d.ts │ │ │ └── tsconfig.json │ │ └── with-apiprovider/ │ │ ├── package.json │ │ ├── public/ │ │ │ ├── index.html │ │ │ └── manifest.json │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ ├── index.tsx │ │ │ └── react-app-env.d.ts │ │ └── tsconfig.json │ └── type-portability/ │ ├── bundler/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ ├── app/ │ │ │ │ ├── customModule.ts │ │ │ │ ├── dynamicMiddleware.ts │ │ │ │ ├── dynamicReactMiddleware.ts │ │ │ │ ├── hooks.ts │ │ │ │ ├── listenerMiddleware.ts │ │ │ │ ├── services/ │ │ │ │ │ ├── api.ts │ │ │ │ │ ├── counter.ts │ │ │ │ │ ├── post.ts │ │ │ │ │ ├── posts.ts │ │ │ │ │ └── times.ts │ │ │ │ └── store.ts │ │ │ ├── features/ │ │ │ │ ├── auth/ │ │ │ │ │ └── authSlice.ts │ │ │ │ ├── bundleSplitting/ │ │ │ │ │ ├── Lazy.tsx │ │ │ │ │ ├── Post.tsx │ │ │ │ │ ├── PostsList.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── common/ │ │ │ │ │ └── Container.tsx │ │ │ │ ├── counter/ │ │ │ │ │ ├── Counter.tsx │ │ │ │ │ └── CounterList.tsx │ │ │ │ ├── polling/ │ │ │ │ │ ├── PollingToggles.tsx │ │ │ │ │ └── pollingSlice.ts │ │ │ │ ├── posts/ │ │ │ │ │ ├── PostDetail.tsx │ │ │ │ │ └── PostsManager.tsx │ │ │ │ └── time/ │ │ │ │ └── TimeList.tsx │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── nodenext-cjs/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ ├── app/ │ │ │ │ ├── customModule.ts │ │ │ │ ├── dynamicMiddleware.ts │ │ │ │ ├── dynamicReactMiddleware.ts │ │ │ │ ├── hooks.ts │ │ │ │ ├── listenerMiddleware.ts │ │ │ │ ├── services/ │ │ │ │ │ ├── api.ts │ │ │ │ │ ├── counter.ts │ │ │ │ │ ├── post.ts │ │ │ │ │ ├── posts.ts │ │ │ │ │ └── times.ts │ │ │ │ └── store.ts │ │ │ ├── features/ │ │ │ │ ├── auth/ │ │ │ │ │ └── authSlice.ts │ │ │ │ ├── bundleSplitting/ │ │ │ │ │ ├── Lazy.tsx │ │ │ │ │ ├── Post.tsx │ │ │ │ │ ├── PostsList.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── common/ │ │ │ │ │ └── Container.tsx │ │ │ │ ├── counter/ │ │ │ │ │ ├── Counter.tsx │ │ │ │ │ └── CounterList.tsx │ │ │ │ ├── polling/ │ │ │ │ │ ├── PollingToggles.tsx │ │ │ │ │ └── pollingSlice.ts │ │ │ │ ├── posts/ │ │ │ │ │ ├── PostDetail.tsx │ │ │ │ │ └── PostsManager.tsx │ │ │ │ └── time/ │ │ │ │ └── TimeList.tsx │ │ │ └── index.tsx │ │ └── tsconfig.json │ └── nodenext-esm/ │ ├── package.json │ ├── src/ │ │ ├── App.tsx │ │ ├── app/ │ │ │ ├── customModule.ts │ │ │ ├── dynamicMiddleware.ts │ │ │ ├── dynamicReactMiddleware.ts │ │ │ ├── hooks.ts │ │ │ ├── listenerMiddleware.ts │ │ │ ├── services/ │ │ │ │ ├── api.ts │ │ │ │ ├── counter.ts │ │ │ │ ├── post.ts │ │ │ │ ├── posts.ts │ │ │ │ └── times.ts │ │ │ └── store.ts │ │ ├── features/ │ │ │ ├── auth/ │ │ │ │ └── authSlice.ts │ │ │ ├── bundleSplitting/ │ │ │ │ ├── Lazy.tsx │ │ │ │ ├── Post.tsx │ │ │ │ ├── PostsList.tsx │ │ │ │ └── index.ts │ │ │ ├── common/ │ │ │ │ └── Container.tsx │ │ │ ├── counter/ │ │ │ │ ├── Counter.tsx │ │ │ │ └── CounterList.tsx │ │ │ ├── polling/ │ │ │ │ ├── PollingToggles.tsx │ │ │ │ └── pollingSlice.ts │ │ │ ├── posts/ │ │ │ │ ├── PostDetail.tsx │ │ │ │ └── PostsManager.tsx │ │ │ └── time/ │ │ │ └── TimeList.tsx │ │ └── index.tsx │ └── tsconfig.json ├── netlify.toml ├── package.json ├── packages/ │ ├── rtk-codemods/ │ │ ├── .eslintrc.json │ │ ├── .github/ │ │ │ └── workflows/ │ │ │ └── ci.yml │ │ ├── .gitignore │ │ ├── .prettierrc.json │ │ ├── .release-it.json │ │ ├── README.md │ │ ├── bin/ │ │ │ └── cli.mjs │ │ ├── package.json │ │ ├── transformTestUtils.ts │ │ ├── transforms/ │ │ │ ├── .gitkeep │ │ │ ├── createReducerBuilder/ │ │ │ │ ├── README.md │ │ │ │ ├── __testfixtures__/ │ │ │ │ │ ├── basic-ts.input.ts │ │ │ │ │ ├── basic-ts.output.ts │ │ │ │ │ ├── basic.input.js │ │ │ │ │ └── basic.output.js │ │ │ │ ├── createReducerBuilder.test.ts │ │ │ │ └── index.ts │ │ │ ├── createSliceBuilder/ │ │ │ │ ├── README.md │ │ │ │ ├── __testfixtures__/ │ │ │ │ │ ├── basic-ts.input.ts │ │ │ │ │ ├── basic-ts.output.ts │ │ │ │ │ ├── basic.input.js │ │ │ │ │ └── basic.output.js │ │ │ │ ├── createSliceBuilder.test.ts │ │ │ │ └── index.ts │ │ │ └── createSliceReducerBuilder/ │ │ │ ├── README.md │ │ │ ├── __testfixtures__/ │ │ │ │ ├── basic-ts.input.ts │ │ │ │ ├── basic-ts.output.ts │ │ │ │ ├── basic.input.js │ │ │ │ └── basic.output.js │ │ │ ├── createSliceReducerBuilder.test.ts │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ └── vitest.config.mts │ ├── rtk-query-codegen-openapi/ │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .release-it.json │ │ ├── ChangeLog.md │ │ ├── README.md │ │ ├── package.json │ │ ├── skills/ │ │ │ └── manage-server-data/ │ │ │ └── generate-rtk-query-from-openapi/ │ │ │ ├── SKILL.md │ │ │ └── references/ │ │ │ └── codegen-overrides.md │ │ ├── src/ │ │ │ ├── bin/ │ │ │ │ └── cli.ts │ │ │ ├── codegen.ts │ │ │ ├── generate.ts │ │ │ ├── generators/ │ │ │ │ └── react-hooks.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── utils/ │ │ │ ├── capitalize.ts │ │ │ ├── factory.ts │ │ │ ├── getOperationDefinitions.ts │ │ │ ├── getV3Doc.ts │ │ │ ├── index.ts │ │ │ ├── isQuery.ts │ │ │ ├── isValidUrl.ts │ │ │ ├── messages.ts │ │ │ ├── prettier.ts │ │ │ └── removeUndefined.ts │ │ ├── test/ │ │ │ ├── __snapshots__/ │ │ │ │ ├── cli.test.ts.snap │ │ │ │ └── generateEndpoints.test.ts.snap │ │ │ ├── cli.test.ts │ │ │ ├── config.example.enum.ts │ │ │ ├── config.example.js │ │ │ ├── config.example.json │ │ │ ├── config.example.ts │ │ │ ├── config.invalid-example.json │ │ │ ├── fixtures/ │ │ │ │ ├── customBaseQuery.ts │ │ │ │ ├── customBaseQueryWithoutDefault.ts │ │ │ │ ├── emptyApi.ts │ │ │ │ ├── fhir.yaml │ │ │ │ ├── generated.ts │ │ │ │ ├── invalid-petstore.json │ │ │ │ ├── issue-2002.json │ │ │ │ ├── issue-3369-discriminator-enum.json │ │ │ │ ├── parameterOverride.yaml │ │ │ │ ├── params.json │ │ │ │ ├── petstore.json │ │ │ │ ├── petstore.yaml │ │ │ │ ├── petstore.yaml.mock.ts │ │ │ │ ├── readOnlyWriteOnly.yaml │ │ │ │ └── title-as-param-name.json │ │ │ ├── generateEndpoints.test.ts │ │ │ ├── mocks/ │ │ │ │ └── server.ts │ │ │ └── vitest.setup.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.json │ │ ├── tsup.config.ts │ │ └── vitest.config.mts │ ├── rtk-query-graphql-request-base-query/ │ │ ├── .gitignore │ │ ├── .release-it.json │ │ ├── LICENSE │ │ ├── package.json │ │ ├── src/ │ │ │ ├── GraphqlBaseQueryTypes.ts │ │ │ ├── index.test.ts │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ └── vitest.config.mts │ └── toolkit/ │ ├── .release-it.json │ ├── .size-limit.cjs │ ├── LICENSE │ ├── README.md │ ├── api-extractor-react.json │ ├── api-extractor.json │ ├── api-extractor.query-react.json │ ├── api-extractor.query.json │ ├── etc/ │ │ ├── redux-toolkit.api.md │ │ ├── rtk-query-react.api.md │ │ └── rtk-query.api.md │ ├── package.json │ ├── query/ │ │ ├── package.json │ │ └── react/ │ │ └── package.json │ ├── react/ │ │ └── package.json │ ├── scripts/ │ │ ├── fixUniqueSymbolExports.mts │ │ ├── issue-triage/ │ │ │ ├── .gitignore │ │ │ ├── README-github-issue-to-markdown.md │ │ │ ├── README.md │ │ │ ├── github-issue-to-markdown.ts │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── categorize/ │ │ │ │ │ ├── categorizer.ts │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── flags.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── scoring.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── github/ │ │ │ │ │ ├── gh-client.ts │ │ │ │ │ ├── transformers.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── index.ts │ │ │ │ ├── reports/ │ │ │ │ │ ├── generator.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── sections.ts │ │ │ │ │ ├── summary.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── similarity/ │ │ │ │ │ ├── clusters.ts │ │ │ │ │ ├── duplicates.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── similarity.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ └── utils/ │ │ │ │ └── errors.ts │ │ │ └── tsconfig.json │ │ ├── mangleErrors.mts │ │ └── writeGitVersion.mts │ ├── skills/ │ │ ├── build-modern-redux-apps/ │ │ │ ├── modern-redux/ │ │ │ │ ├── SKILL.md │ │ │ │ └── references/ │ │ │ │ └── store-lifetime.md │ │ │ └── redux-dataflow/ │ │ │ └── SKILL.md │ │ ├── evolve-and-diagnose-redux-apps/ │ │ │ ├── debug-redux-toolkit-apps/ │ │ │ │ └── SKILL.md │ │ │ └── migrate-to-modern-redux/ │ │ │ └── SKILL.md │ │ ├── manage-server-data/ │ │ │ └── adopt-rtk-query/ │ │ │ ├── SKILL.md │ │ │ └── references/ │ │ │ └── endpoint-lifecycle.md │ │ ├── model-redux-state/ │ │ │ ├── build-slices-and-selectors/ │ │ │ │ ├── SKILL.md │ │ │ │ └── references/ │ │ │ │ └── slice-patterns.md │ │ │ └── design-state-ownership/ │ │ │ ├── SKILL.md │ │ │ └── references/ │ │ │ └── state-ownership.md │ │ └── orchestrate-side-effects/ │ │ └── handle-side-effects/ │ │ ├── SKILL.md │ │ └── references/ │ │ └── listener-workflows.md │ ├── src/ │ │ ├── actionCreatorInvariantMiddleware.ts │ │ ├── autoBatchEnhancer.ts │ │ ├── combineSlices.ts │ │ ├── configureStore.ts │ │ ├── createAction.ts │ │ ├── createAsyncThunk.ts │ │ ├── createDraftSafeSelector.ts │ │ ├── createReducer.ts │ │ ├── createSlice.ts │ │ ├── devtoolsExtension.ts │ │ ├── dynamicMiddleware/ │ │ │ ├── index.ts │ │ │ ├── react/ │ │ │ │ └── index.ts │ │ │ ├── tests/ │ │ │ │ ├── index.test-d.ts │ │ │ │ ├── index.test.ts │ │ │ │ ├── react.test-d.ts │ │ │ │ └── react.test.tsx │ │ │ └── types.ts │ │ ├── entities/ │ │ │ ├── create_adapter.ts │ │ │ ├── entity_state.ts │ │ │ ├── index.ts │ │ │ ├── models.ts │ │ │ ├── sorted_state_adapter.ts │ │ │ ├── state_adapter.ts │ │ │ ├── state_selectors.ts │ │ │ ├── tests/ │ │ │ │ ├── entity_slice_enhancer.test.ts │ │ │ │ ├── entity_state.test.ts │ │ │ │ ├── fixtures/ │ │ │ │ │ └── book.ts │ │ │ │ ├── sorted_state_adapter.test.ts │ │ │ │ ├── state_adapter.test.ts │ │ │ │ ├── state_selectors.test.ts │ │ │ │ ├── unsorted_state_adapter.test.ts │ │ │ │ └── utils.spec.ts │ │ │ ├── unsorted_state_adapter.ts │ │ │ └── utils.ts │ │ ├── formatProdErrorMessage.ts │ │ ├── getDefaultEnhancers.ts │ │ ├── getDefaultMiddleware.ts │ │ ├── immerImports.ts │ │ ├── immutableStateInvariantMiddleware.ts │ │ ├── index.ts │ │ ├── listenerMiddleware/ │ │ │ ├── exceptions.ts │ │ │ ├── index.ts │ │ │ ├── task.ts │ │ │ ├── tests/ │ │ │ │ ├── effectScenarios.test.ts │ │ │ │ ├── fork.test.ts │ │ │ │ ├── listenerMiddleware.test-d.ts │ │ │ │ ├── listenerMiddleware.test.ts │ │ │ │ ├── listenerMiddleware.withTypes.test-d.ts │ │ │ │ ├── listenerMiddleware.withTypes.test.ts │ │ │ │ └── useCases.test.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ ├── mapBuilders.ts │ │ ├── matchers.ts │ │ ├── nanoid.ts │ │ ├── query/ │ │ │ ├── HandledError.ts │ │ │ ├── apiTypes.ts │ │ │ ├── baseQueryTypes.ts │ │ │ ├── core/ │ │ │ │ ├── apiState.ts │ │ │ │ ├── buildInitiate.ts │ │ │ │ ├── buildMiddleware/ │ │ │ │ │ ├── batchActions.ts │ │ │ │ │ ├── cacheCollection.ts │ │ │ │ │ ├── cacheLifecycle.ts │ │ │ │ │ ├── devMiddleware.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── invalidationByTags.ts │ │ │ │ │ ├── polling.ts │ │ │ │ │ ├── queryLifecycle.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── windowEventHandling.ts │ │ │ │ ├── buildSelectors.ts │ │ │ │ ├── buildSlice.ts │ │ │ │ ├── buildThunks.ts │ │ │ │ ├── index.ts │ │ │ │ ├── module.ts │ │ │ │ ├── rtkImports.ts │ │ │ │ └── setupListeners.ts │ │ │ ├── createApi.ts │ │ │ ├── defaultSerializeQueryArgs.ts │ │ │ ├── endpointDefinitions.ts │ │ │ ├── fakeBaseQuery.ts │ │ │ ├── fetchBaseQuery.ts │ │ │ ├── index.ts │ │ │ ├── react/ │ │ │ │ ├── ApiProvider.tsx │ │ │ │ ├── buildHooks.ts │ │ │ │ ├── constants.ts │ │ │ │ ├── index.ts │ │ │ │ ├── module.ts │ │ │ │ ├── namedHooks.ts │ │ │ │ ├── reactImports.ts │ │ │ │ ├── reactReduxImports.ts │ │ │ │ ├── rtkqImports.ts │ │ │ │ ├── useSerializedStableValue.ts │ │ │ │ └── useShallowStableValue.ts │ │ │ ├── retry.ts │ │ │ ├── standardSchema.ts │ │ │ ├── tests/ │ │ │ │ ├── apiProvider.test.tsx │ │ │ │ ├── baseQueryTypes.test-d.ts │ │ │ │ ├── buildCreateApi.test.tsx │ │ │ │ ├── buildHooks.test-d.tsx │ │ │ │ ├── buildHooks.test.tsx │ │ │ │ ├── buildInitiate.test.tsx │ │ │ │ ├── buildMiddleware.test-d.ts │ │ │ │ ├── buildMiddleware.test.tsx │ │ │ │ ├── buildSelector.test-d.ts │ │ │ │ ├── buildSlice.test.ts │ │ │ │ ├── buildThunks.test.tsx │ │ │ │ ├── cacheCollection.test.ts │ │ │ │ ├── cacheLifecycle.test-d.ts │ │ │ │ ├── cacheLifecycle.test.ts │ │ │ │ ├── cleanup.test.tsx │ │ │ │ ├── copyWithStructuralSharing.test.ts │ │ │ │ ├── createApi.test-d.ts │ │ │ │ ├── createApi.test.ts │ │ │ │ ├── defaultSerializeQueryArgs.test.ts │ │ │ │ ├── devWarnings.test.tsx │ │ │ │ ├── errorHandling.test-d.tsx │ │ │ │ ├── errorHandling.test.tsx │ │ │ │ ├── fakeBaseQuery.test.tsx │ │ │ │ ├── fetchBaseQuery.test.tsx │ │ │ │ ├── infiniteQueries.test-d.ts │ │ │ │ ├── infiniteQueries.test.ts │ │ │ │ ├── injectEndpoints.test.tsx │ │ │ │ ├── invalidation.test.tsx │ │ │ │ ├── matchers.test-d.tsx │ │ │ │ ├── matchers.test.tsx │ │ │ │ ├── mocks/ │ │ │ │ │ ├── handlers.ts │ │ │ │ │ └── server.ts │ │ │ │ ├── optimisticUpdates.test.tsx │ │ │ │ ├── optimisticUpserts.test.tsx │ │ │ │ ├── polling.test.tsx │ │ │ │ ├── queryFn.test.tsx │ │ │ │ ├── queryLifecycle.test-d.tsx │ │ │ │ ├── queryLifecycle.test.tsx │ │ │ │ ├── raceConditions.test.ts │ │ │ │ ├── refetchingBehaviors.test.tsx │ │ │ │ ├── retry.test-d.ts │ │ │ │ ├── retry.test.ts │ │ │ │ ├── unionTypes.test-d.ts │ │ │ │ ├── useMutation-fixedCacheKey.test.tsx │ │ │ │ └── utils.test.ts │ │ │ ├── tsHelpers.ts │ │ │ └── utils/ │ │ │ ├── capitalize.ts │ │ │ ├── copyWithStructuralSharing.ts │ │ │ ├── countObjectKeys.ts │ │ │ ├── filterMap.ts │ │ │ ├── getCurrent.ts │ │ │ ├── getOrInsert.ts │ │ │ ├── immerImports.ts │ │ │ ├── index.ts │ │ │ ├── isAbsoluteUrl.ts │ │ │ ├── isDocumentVisible.ts │ │ │ ├── isNotNullish.ts │ │ │ ├── isOnline.ts │ │ │ ├── isValidUrl.ts │ │ │ ├── joinUrls.ts │ │ │ └── signals.ts │ │ ├── react/ │ │ │ └── index.ts │ │ ├── reduxImports.ts │ │ ├── reselectImports.ts │ │ ├── serializableStateInvariantMiddleware.ts │ │ ├── tests/ │ │ │ ├── Tuple.test-d.ts │ │ │ ├── actionCreatorInvariantMiddleware.test.ts │ │ │ ├── autoBatchEnhancer.test.ts │ │ │ ├── combineSlices.test-d.ts │ │ │ ├── combineSlices.test.ts │ │ │ ├── combinedTest.test.ts │ │ │ ├── configureStore.test-d.ts │ │ │ ├── configureStore.test.ts │ │ │ ├── createAction.test-d.tsx │ │ │ ├── createAction.test.ts │ │ │ ├── createAsyncThunk.test-d.ts │ │ │ ├── createAsyncThunk.test.ts │ │ │ ├── createDraftSafeSelector.test.ts │ │ │ ├── createDraftSafeSelector.withTypes.test.ts │ │ │ ├── createEntityAdapter.test-d.ts │ │ │ ├── createReducer.test-d.ts │ │ │ ├── createReducer.test.ts │ │ │ ├── createSlice.test-d.ts │ │ │ ├── createSlice.test.ts │ │ │ ├── getDefaultEnhancers.test-d.ts │ │ │ ├── getDefaultMiddleware.test-d.ts │ │ │ ├── getDefaultMiddleware.test.ts │ │ │ ├── immutableStateInvariantMiddleware.test.ts │ │ │ ├── mapBuilders.test-d.ts │ │ │ ├── matchers.test-d.ts │ │ │ ├── matchers.test.ts │ │ │ ├── serializableStateInvariantMiddleware.test.ts │ │ │ └── utils/ │ │ │ ├── CustomMatchers.d.ts │ │ │ └── helpers.tsx │ │ ├── tsHelpers.ts │ │ ├── uncheckedindexed.ts │ │ └── utils.ts │ ├── tsconfig.base.json │ ├── tsconfig.build.json │ ├── tsconfig.json │ ├── tsconfig.test.json │ ├── tsup.config.mts │ ├── vitest.config.mts │ └── vitest.setup.ts └── website/ ├── .gitignore ├── README.md ├── _redirects ├── docusaurus.config.ts ├── package.json ├── sidebars.ts └── src/ ├── css/ │ └── custom.css ├── js/ │ └── monokaiTheme.js ├── pages/ │ ├── errors.js │ ├── index.js │ └── styles.module.css └── theme/ └── DocPage/ └── Layout/ └── Main/ ├── BraveWarning.js └── index.tsx