gitextract_i5_tw8la/ ├── .circleci/ │ └── config.yml ├── .eslintrc.js ├── .github/ │ ├── CONTRIBUTING.md │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ └── config.yml │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── cleanup-all-temp-trusted-branches.yml │ ├── trust-fork-pr-cleanup.yml │ └── trust-fork-pr.yml ├── .gitignore ├── .nxignore ├── .prettierignore ├── .prettierrc ├── .tool-versions ├── .yarn/ │ ├── patches/ │ │ ├── electron-webpack-npm-2.8.2-1bda600605.patch │ │ ├── react-hotkeys-npm-2.0.0-8e6c50bd05.patch │ │ └── webpack-npm-4.47.0-42e477a08c.patch │ └── releases/ │ └── yarn-4.1.1.cjs ├── .yarnrc.yml ├── LICENSE ├── README.md ├── apps/ │ ├── example-app/ │ │ ├── .gitignore │ │ ├── .prettierignore │ │ ├── App.tsx │ │ ├── README.md │ │ ├── app/ │ │ │ ├── app.tsx │ │ │ ├── components/ │ │ │ │ ├── Button.tsx │ │ │ │ ├── Icon.tsx │ │ │ │ ├── ListItem.tsx │ │ │ │ ├── ListView.tsx │ │ │ │ ├── Repo.tsx │ │ │ │ ├── Screen.tsx │ │ │ │ ├── Text.tsx │ │ │ │ └── index.ts │ │ │ ├── config/ │ │ │ │ ├── config.base.ts │ │ │ │ ├── config.dev.ts │ │ │ │ ├── config.prod.ts │ │ │ │ └── index.ts │ │ │ ├── devtools/ │ │ │ │ ├── ReactotronClient.ts │ │ │ │ ├── ReactotronClient.web.ts │ │ │ │ └── ReactotronConfig.ts │ │ │ ├── i18n/ │ │ │ │ ├── en.ts │ │ │ │ ├── i18n.ts │ │ │ │ ├── index.ts │ │ │ │ └── translate.ts │ │ │ ├── mobxStateTree/ │ │ │ │ ├── LogoStore.ts │ │ │ │ ├── RepoStore.ts │ │ │ │ ├── RootStore.ts │ │ │ │ ├── helpers/ │ │ │ │ │ ├── getRootStore.ts │ │ │ │ │ ├── setupRootStore.ts │ │ │ │ │ └── useStores.ts │ │ │ │ └── index.ts │ │ │ ├── navigators/ │ │ │ │ ├── AppNavigator.tsx │ │ │ │ ├── index.ts │ │ │ │ └── navigationUtilities.ts │ │ │ ├── redux/ │ │ │ │ ├── errorSlice.ts │ │ │ │ ├── index.ts │ │ │ │ ├── logoSlice.ts │ │ │ │ └── repoSlice.ts │ │ │ ├── screens/ │ │ │ │ ├── AsyncStorageScreen.tsx │ │ │ │ ├── BenchmarkingScreen.tsx │ │ │ │ ├── CustomCommandsScreen.tsx │ │ │ │ ├── ErrorGeneratorScreen.tsx │ │ │ │ ├── ErrorScreen/ │ │ │ │ │ ├── ErrorBoundary.tsx │ │ │ │ │ └── ErrorDetails.tsx │ │ │ │ ├── LoggingScreen.tsx │ │ │ │ ├── MobxStateTreeScreen.tsx │ │ │ │ ├── NetworkingScreen.tsx │ │ │ │ ├── ReduxScreen.tsx │ │ │ │ ├── WelcomeScreen.tsx │ │ │ │ └── index.ts │ │ │ ├── services/ │ │ │ │ └── api/ │ │ │ │ ├── api.ts │ │ │ │ ├── api.types.ts │ │ │ │ ├── apiProblem.test.ts │ │ │ │ ├── apiProblem.ts │ │ │ │ └── index.ts │ │ │ ├── theme/ │ │ │ │ ├── colors.ts │ │ │ │ ├── index.ts │ │ │ │ ├── spacing.ts │ │ │ │ ├── timing.ts │ │ │ │ └── typography.ts │ │ │ └── utils/ │ │ │ ├── crashReporting.ts │ │ │ ├── delay.ts │ │ │ ├── formatDate.ts │ │ │ ├── ignoreWarnings.ts │ │ │ ├── openLinkInBrowser.ts │ │ │ ├── storage/ │ │ │ │ ├── index.ts │ │ │ │ ├── storage.test.ts │ │ │ │ └── storage.ts │ │ │ ├── useIsMounted.ts │ │ │ └── useSafeAreaInsetsStyle.ts │ │ ├── app.json │ │ ├── babel.config.js │ │ ├── eas.json │ │ ├── index.js │ │ ├── jest.config.js │ │ ├── metro.config.js │ │ ├── package.json │ │ ├── plugins/ │ │ │ └── withSplashScreen.ts │ │ ├── react-native.config.js │ │ ├── test/ │ │ │ ├── i18n.test.ts │ │ │ ├── mockFile.ts │ │ │ ├── setup.ts │ │ │ └── test-tsconfig.json │ │ ├── tsconfig.json │ │ └── types/ │ │ └── lib.es5.d.ts │ └── reactotron-app/ │ ├── .gitattributes │ ├── .github/ │ │ └── ISSUE_TEMPLATE/ │ │ └── issue_template.md │ ├── .gitignore │ ├── .storybook/ │ │ ├── addons.js │ │ ├── config.js │ │ └── webpack.config.js │ ├── CHANGELOG.md │ ├── Gemfile │ ├── LICENSE │ ├── README.md │ ├── entitlements.mac.plist │ ├── fastlane/ │ │ └── Fastfile │ ├── icon.icns │ ├── package.json │ ├── project.json │ ├── scripts/ │ │ ├── build.release.js │ │ └── release.artifacts.js │ ├── src/ │ │ ├── main/ │ │ │ ├── index.ts │ │ │ ├── menu.ts │ │ │ └── utils.ts │ │ └── renderer/ │ │ ├── App.tsx │ │ ├── KeybindHandler.tsx │ │ ├── ReactotronBrain.tsx │ │ ├── RootModals.tsx │ │ ├── components/ │ │ │ ├── ConnectionSelector/ │ │ │ │ ├── ConnectionSelector.story.tsx │ │ │ │ └── index.tsx │ │ │ ├── Footer/ │ │ │ │ ├── Footer.story.tsx │ │ │ │ ├── Stateless.tsx │ │ │ │ └── index.tsx │ │ │ ├── SideBar/ │ │ │ │ ├── SideBar.story.tsx │ │ │ │ ├── Sidebar.tsx │ │ │ │ └── index.tsx │ │ │ └── SideBarButton/ │ │ │ ├── SideBarButton.story.tsx │ │ │ ├── Stateless.tsx │ │ │ └── index.tsx │ │ ├── config.ts │ │ ├── contexts/ │ │ │ ├── Layout/ │ │ │ │ ├── index.tsx │ │ │ │ ├── useLayout.test.ts │ │ │ │ └── useLayout.ts │ │ │ ├── Standalone/ │ │ │ │ ├── index.tsx │ │ │ │ ├── useStandalone.test.ts │ │ │ │ └── useStandalone.ts │ │ │ ├── index.tsx │ │ │ └── utility.ts │ │ ├── global.css │ │ ├── images/ │ │ │ └── index.ts │ │ ├── index.tsx │ │ ├── pages/ │ │ │ ├── customCommands/ │ │ │ │ └── index.tsx │ │ │ ├── help/ │ │ │ │ ├── SharedStyles.ts │ │ │ │ ├── components/ │ │ │ │ │ ├── AndroidDeviceHelp.tsx │ │ │ │ │ ├── Keybind.tsx │ │ │ │ │ └── KeybindGroup.tsx │ │ │ │ └── index.tsx │ │ │ ├── home/ │ │ │ │ ├── index.tsx │ │ │ │ └── welcome.tsx │ │ │ ├── reactNative/ │ │ │ │ ├── Overlay.tsx │ │ │ │ ├── Storybook.tsx │ │ │ │ └── components/ │ │ │ │ ├── OverlayAlignment.tsx │ │ │ │ ├── OverlayAlignmentButton.tsx │ │ │ │ ├── OverlayButton.tsx │ │ │ │ ├── OverlayLayoutType.tsx │ │ │ │ ├── OverlayMargins.tsx │ │ │ │ ├── OverlayOpacity.tsx │ │ │ │ ├── OverlayResizeMode.tsx │ │ │ │ ├── OverlayScale.tsx │ │ │ │ └── Shared.tsx │ │ │ ├── state/ │ │ │ │ ├── Snapshots.tsx │ │ │ │ └── Subscriptions.tsx │ │ │ └── timeline/ │ │ │ └── index.tsx │ │ └── util/ │ │ └── connectionHelpers.ts │ ├── tsconfig.json │ └── webpack.config.js ├── docs/ │ ├── _category_.json │ ├── contributing/ │ │ ├── _category_.json │ │ ├── architecture.md │ │ ├── ci.md │ │ ├── index.md │ │ ├── monorepo.md │ │ └── releasing.md │ ├── custom-commands.md │ ├── index.md │ ├── plugins/ │ │ ├── _category_.json │ │ ├── apisauce.md │ │ ├── async-storage.md │ │ ├── benchmark.md │ │ ├── index.md │ │ ├── mst.md │ │ ├── networking.md │ │ ├── open-in-editor.md │ │ ├── overlay.md │ │ ├── react-native-mmkv.md │ │ ├── redux.md │ │ ├── storybook.md │ │ ├── track-global-errors.md │ │ └── track-global-logs.md │ ├── quick-start/ │ │ ├── _category_.json │ │ ├── getting-started.md │ │ ├── react-js.md │ │ └── react-native.md │ ├── tips.md │ └── troubleshooting.md ├── lib/ │ ├── eslint-plugin-reactotron/ │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── rules/ │ │ │ └── no-tron-in-production.ts │ │ ├── tests/ │ │ │ └── no-tron-in-production.test.ts │ │ └── tsconfig.json │ ├── reactotron-apisauce/ │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ └── plugin.test.ts │ │ ├── tsconfig.json │ │ └── wallaby.js │ ├── reactotron-core-client/ │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── src/ │ │ │ ├── client-options.ts │ │ │ ├── index.ts │ │ │ ├── plugins/ │ │ │ │ ├── api-response.ts │ │ │ │ ├── benchmark.ts │ │ │ │ ├── clear.ts │ │ │ │ ├── image.ts │ │ │ │ ├── logger.ts │ │ │ │ ├── repl.ts │ │ │ │ └── state-responses.ts │ │ │ ├── reactotron-core-client.ts │ │ │ ├── serialize.ts │ │ │ ├── stopwatch.ts │ │ │ └── validate.ts │ │ ├── test/ │ │ │ ├── api-response.test.ts │ │ │ ├── configure.test.ts │ │ │ ├── connect.test.ts │ │ │ ├── create-closing-server.ts │ │ │ ├── fixtures/ │ │ │ │ └── large.js │ │ │ ├── on-command.test.ts │ │ │ ├── on-connect.test.ts │ │ │ ├── on-disconnect.test.ts │ │ │ ├── plugin-benchmark.test.ts │ │ │ ├── plugin-clear.test.ts │ │ │ ├── plugin-features.test.ts │ │ │ ├── plugin-image.test.ts │ │ │ ├── plugin-interface.test.ts │ │ │ ├── plugin-logger.test.ts │ │ │ ├── plugin-on-command.test.ts │ │ │ ├── plugin-on-connect.test.ts │ │ │ ├── plugin-on-disconnect.test.ts │ │ │ ├── plugin-on-plugin.test.ts │ │ │ ├── plugin-send.test.ts │ │ │ ├── plugin-state-responses.test.ts │ │ │ ├── send.test.ts │ │ │ ├── serialize.test.ts │ │ │ ├── start-timer.test.ts │ │ │ └── stopwatch.test.ts │ │ ├── tsconfig.json │ │ ├── types/ │ │ │ └── reactotron.d.ts │ │ └── wallaby.js │ ├── reactotron-core-contract/ │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── src/ │ │ │ ├── apiResponse.ts │ │ │ ├── asyncStorage.ts │ │ │ ├── benchmark.ts │ │ │ ├── clientIntro.ts │ │ │ ├── command.ts │ │ │ ├── customCommand.ts │ │ │ ├── diff.ts │ │ │ ├── display.ts │ │ │ ├── image.ts │ │ │ ├── index.ts │ │ │ ├── log.ts │ │ │ ├── openInEditor.ts │ │ │ ├── reactotron-core-contract.ts │ │ │ ├── repl.ts │ │ │ ├── sagaTaskComplete.ts │ │ │ ├── server-events.ts │ │ │ └── state.ts │ │ └── tsconfig.json │ ├── reactotron-core-server/ │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── reactotron-core-server.ts │ │ │ ├── repair-serialization.ts │ │ │ └── validation.ts │ │ ├── test/ │ │ │ ├── configure.test.ts │ │ │ ├── connections.test.ts │ │ │ ├── send.test.ts │ │ │ └── started.test.ts │ │ └── tsconfig.json │ ├── reactotron-core-ui/ │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── .storybook/ │ │ │ ├── addons.js │ │ │ └── config.js │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── ActionButton/ │ │ │ │ │ ├── ActionButton.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Checkbox/ │ │ │ │ │ ├── Checkbox.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── ContentView/ │ │ │ │ │ ├── ContentView.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── EmptyState/ │ │ │ │ │ ├── EmptyState.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Header/ │ │ │ │ │ ├── Header.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── HeaderTabButton/ │ │ │ │ │ ├── SideBarButton.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Modal/ │ │ │ │ │ ├── Modal.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── RandomJoke/ │ │ │ │ │ ├── RandomJoke.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ReactotronAppProvider/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── TimelineCommand/ │ │ │ │ │ ├── TimelineCommand.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── TimelineCommandTabButton/ │ │ │ │ │ ├── TimelineCommandTabButton.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Timestamp/ │ │ │ │ │ ├── Timestamp.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Tooltip/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── TreeView/ │ │ │ │ │ ├── TreeView.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ └── TreeViewDiff/ │ │ │ │ └── index.tsx │ │ │ ├── contexts/ │ │ │ │ ├── CustomCommands/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── useCustomCommands.test.tsx │ │ │ │ │ └── useCustomCommands.ts │ │ │ │ ├── ReactNative/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── useOverlay.ts │ │ │ │ │ ├── useStorybook.test.tsx │ │ │ │ │ └── useStorybook.ts │ │ │ │ ├── Reactotron/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── useReactotron.test.ts │ │ │ │ │ └── useReactotron.ts │ │ │ │ ├── State/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── useSnapshots.test.tsx │ │ │ │ │ ├── useSnapshots.ts │ │ │ │ │ ├── useSubscriptions.test.tsx │ │ │ │ │ └── useSubscriptions.ts │ │ │ │ └── Timeline/ │ │ │ │ ├── index.tsx │ │ │ │ ├── useTimeline.test.ts │ │ │ │ └── useTimeline.ts │ │ │ ├── hooks/ │ │ │ │ ├── useColorScheme.test.tsx │ │ │ │ └── useColorScheme.tsx │ │ │ ├── index.ts │ │ │ ├── modals/ │ │ │ │ ├── DispatchActionModal/ │ │ │ │ │ ├── DispatchActionModal.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── SnapshotRenameModal/ │ │ │ │ │ ├── SnapshotRenameModal.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── SubscriptionAddModal/ │ │ │ │ │ ├── SubscriptionAddModal.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ └── TimelineFilterModal/ │ │ │ │ ├── TimelineFilterModal.story.tsx │ │ │ │ └── index.tsx │ │ │ ├── themes.ts │ │ │ ├── timelineCommands/ │ │ │ │ ├── ApiResponseCommand/ │ │ │ │ │ ├── ApiResponseCommand.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── AsyncStorageMutationCommand/ │ │ │ │ │ ├── AsyncStorageMutationCommand.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── BaseCommand.tsx │ │ │ │ ├── BenchmarkReportCommand/ │ │ │ │ │ ├── BenchmarkReportCommand.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── ClientIntroCommand/ │ │ │ │ │ ├── ClientIntroCommand.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── DisplayCommand/ │ │ │ │ │ ├── DisplayCommand.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── ImageCommand/ │ │ │ │ │ ├── ImageCommand.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── LogCommand/ │ │ │ │ │ ├── LogCommand.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── SagaTaskCompleteCommand/ │ │ │ │ │ ├── SagaTaskCompleteCommand.story.tsx │ │ │ │ │ ├── Stateless.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── StateActionCompleteCommand/ │ │ │ │ │ ├── StateActionCompleteCommand.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── StateKeysResponseCommand/ │ │ │ │ │ ├── StateKeysResponseCommand.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── StateValuesChangeCommand/ │ │ │ │ │ ├── StateValuesChangeCommand.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── StateValuesResponseCommand/ │ │ │ │ │ ├── StateValuesResponseCommand.story.tsx │ │ │ │ │ └── index.tsx │ │ │ │ └── index.ts │ │ │ └── utils/ │ │ │ ├── api-to-curl.ts │ │ │ ├── api-to-markdown.ts │ │ │ ├── escape-regex.test.ts │ │ │ ├── escape-regex.ts │ │ │ ├── filterCommands/ │ │ │ │ ├── filterCommands.test.ts │ │ │ │ └── index.ts │ │ │ ├── isShallow.ts │ │ │ ├── makeTable.tsx │ │ │ ├── pad.ts │ │ │ └── repair-serialization.ts │ │ └── tsconfig.json │ ├── reactotron-mst/ │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── package.json │ │ ├── project.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── reactotron-mst.ts │ │ ├── test/ │ │ │ ├── actions.test.ts │ │ │ ├── backup.test.ts │ │ │ ├── dispatch-action.test.ts │ │ │ ├── filter.test.ts │ │ │ ├── fixtures/ │ │ │ │ ├── command.ts │ │ │ │ ├── create-mst-plugin.ts │ │ │ │ ├── index.ts │ │ │ │ ├── test-company-model.ts │ │ │ │ └── test-user-model.ts │ │ │ ├── helpers/ │ │ │ │ └── delay.ts │ │ │ ├── mocks/ │ │ │ │ └── create-mock-reactotron.ts │ │ │ ├── plugin-interface.test.ts │ │ │ ├── request-keys.test.ts │ │ │ ├── request-values.test.ts │ │ │ ├── restore.test.ts │ │ │ ├── sanity.test.ts │ │ │ └── subscribe.test.ts │ │ └── tsconfig.json │ ├── reactotron-react-js/ │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── .prettierignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── plugins/ │ │ │ └── track-global-errors.ts │ │ ├── test/ │ │ │ └── replaceme.test.ts │ │ ├── tsconfig.json │ │ └── wallaby.js │ ├── reactotron-react-native/ │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── src/ │ │ │ ├── helpers/ │ │ │ │ ├── getReactNativeDimensions.test.ts │ │ │ │ ├── getReactNativeDimensions.ts │ │ │ │ ├── getReactNativeDimensionsWithDimensions.ts │ │ │ │ ├── getReactNativePlatformConstants.ts │ │ │ │ ├── getReactNativeVersion.test.ts │ │ │ │ ├── getReactNativeVersion.ts │ │ │ │ ├── getReactNativeVersionWithModules.ts │ │ │ │ ├── parseErrorStack.ts │ │ │ │ ├── parseURL.test.ts │ │ │ │ ├── parseURL.ts │ │ │ │ └── symbolicateStackTrace.ts │ │ │ ├── index.ts │ │ │ ├── plugins/ │ │ │ │ ├── asyncStorage.ts │ │ │ │ ├── devTools.ts │ │ │ │ ├── networking.ts │ │ │ │ ├── openInEditor.ts │ │ │ │ ├── overlay/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── overlay.tsx │ │ │ │ ├── storybook/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── storybook.tsx │ │ │ │ ├── trackGlobalErrors.ts │ │ │ │ └── trackGlobalLogs.ts │ │ │ ├── reactotron-react-native.ts │ │ │ └── xhr-interceptor.ts │ │ ├── tsconfig.json │ │ └── wallaby.js │ ├── reactotron-react-native-mmkv/ │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── reactotron-react-native-mmkv.ts │ │ └── tsconfig.json │ └── reactotron-redux/ │ ├── .babelrc │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── project.json │ ├── renovate.json │ ├── src/ │ │ ├── commandHandler.test.ts │ │ ├── commandHandler.ts │ │ ├── customDispatch.test.ts │ │ ├── customDispatch.ts │ │ ├── enhancer.test.ts │ │ ├── enhancer.ts │ │ ├── helpers/ │ │ │ ├── pathObject.test.ts │ │ │ ├── pathObject.ts │ │ │ ├── stateCleaner.test.ts │ │ │ └── stateCleaner.ts │ │ ├── index.ts │ │ ├── pluginConfig.ts │ │ ├── reducer.test.ts │ │ ├── reducer.ts │ │ ├── sendAction.test.ts │ │ ├── sendAction.ts │ │ ├── subscriptionsHandler.test.ts │ │ ├── subscriptionsHandler.ts │ │ └── testHelpers.ts │ ├── tsconfig.json │ └── wallaby.js ├── nx.json ├── package.json ├── scripts/ │ ├── clean.sh │ ├── copy-prettier-ignore.mjs │ ├── generate-plugin.mjs │ ├── git-clone-fork-to-trusted-branch.sh │ ├── install-workspace-packages-in-target.mjs │ ├── package.validate.mjs │ ├── postinstall.sh │ ├── release.artifacts.mjs │ ├── release.tags.push.mjs │ ├── reset.sh │ ├── template/ │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── reactotron-template.ts │ │ └── tsconfig.json │ └── tools/ │ ├── git.mjs │ ├── path.mjs │ └── workspace.mjs ├── tsconfig.base.json └── types/ └── react-native/ └── Libraries/ ├── Core/ │ ├── Devtools/ │ │ └── parseHermesStack.d.ts │ └── NativeExceptionsManager.d.ts ├── LogBox/ │ ├── Data/ │ │ └── parseLogBoxLog.d.ts │ └── LogBox.d.ts └── NativeModules/ └── specs/ └── NativeDevMenu.d.ts