react-native-debug-toolkit 0.6.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +150 -212
- package/lib/commonjs/components/ClipboardTab.js +92 -0
- package/lib/commonjs/components/ClipboardTab.js.map +1 -0
- package/lib/commonjs/components/ConsoleLogTab.js +295 -0
- package/lib/commonjs/components/ConsoleLogTab.js.map +1 -0
- package/lib/commonjs/components/EnvironmentTab.js +288 -0
- package/lib/commonjs/components/EnvironmentTab.js.map +1 -0
- package/lib/commonjs/components/FloatPanelView.js +797 -0
- package/lib/commonjs/components/FloatPanelView.js.map +1 -0
- package/lib/commonjs/components/NavigationLogTab.js +131 -0
- package/lib/commonjs/components/NavigationLogTab.js.map +1 -0
- package/lib/commonjs/components/NetworkLogTab.js +575 -0
- package/lib/commonjs/components/NetworkLogTab.js.map +1 -0
- package/lib/commonjs/components/ThirdPartyLibsTab.js +97 -0
- package/lib/commonjs/components/ThirdPartyLibsTab.js.map +1 -0
- package/lib/commonjs/components/TrackLogTab.js +372 -0
- package/lib/commonjs/components/TrackLogTab.js.map +1 -0
- package/lib/commonjs/components/ZustandLogTab.js +451 -0
- package/lib/commonjs/components/ZustandLogTab.js.map +1 -0
- package/lib/commonjs/components/shared/CollapsibleSection.js +84 -0
- package/lib/commonjs/components/shared/CollapsibleSection.js.map +1 -0
- package/lib/commonjs/components/shared/CopyButton.js +64 -0
- package/lib/commonjs/components/shared/CopyButton.js.map +1 -0
- package/lib/commonjs/components/shared/JsonView.js +157 -0
- package/lib/commonjs/components/shared/JsonView.js.map +1 -0
- package/lib/commonjs/core/DebugToolkit.js +142 -0
- package/lib/commonjs/core/DebugToolkit.js.map +1 -0
- package/lib/commonjs/core/DebugToolkitProvider.js +64 -0
- package/lib/commonjs/core/DebugToolkitProvider.js.map +1 -0
- package/lib/commonjs/features/ClipboardFeature.js +17 -0
- package/lib/commonjs/features/ClipboardFeature.js.map +1 -0
- package/lib/commonjs/features/ConsoleLogFeature.js +98 -0
- package/lib/commonjs/features/ConsoleLogFeature.js.map +1 -0
- package/lib/commonjs/features/EnvironmentFeature.js +168 -0
- package/lib/commonjs/features/EnvironmentFeature.js.map +1 -0
- package/lib/commonjs/features/NavigationLogFeature.js +60 -0
- package/lib/commonjs/features/NavigationLogFeature.js.map +1 -0
- package/lib/commonjs/features/NetworkFeature.js +328 -0
- package/lib/commonjs/features/NetworkFeature.js.map +1 -0
- package/lib/commonjs/features/ThirdPartyLibsFeature.js +51 -0
- package/lib/commonjs/features/ThirdPartyLibsFeature.js.map +1 -0
- package/lib/commonjs/features/TrackFeature.js +55 -0
- package/lib/commonjs/features/TrackFeature.js.map +1 -0
- package/lib/commonjs/features/ZustandLogFeature.js +76 -0
- package/lib/commonjs/features/ZustandLogFeature.js.map +1 -0
- package/lib/commonjs/hooks/useNavigationLogger.js +78 -0
- package/lib/commonjs/hooks/useNavigationLogger.js.map +1 -0
- package/lib/commonjs/hooks/useSlideDetailAnimation.js +53 -0
- package/lib/commonjs/hooks/useSlideDetailAnimation.js.map +1 -0
- package/lib/commonjs/index.js +165 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/initialize.js +161 -0
- package/lib/commonjs/initialize.js.map +1 -0
- package/lib/commonjs/native/NativeDebugLibs.js +58 -0
- package/lib/commonjs/native/NativeDebugLibs.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/types/index.js +6 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/commonjs/utils/constants.js +135 -0
- package/lib/commonjs/utils/constants.js.map +1 -0
- package/lib/commonjs/utils/copyToComputer.js +97 -0
- package/lib/commonjs/utils/copyToComputer.js.map +1 -0
- package/lib/commonjs/utils/createEventChannel.js +21 -0
- package/lib/commonjs/utils/createEventChannel.js.map +1 -0
- package/lib/commonjs/utils/createObservableStore.js +38 -0
- package/lib/commonjs/utils/createObservableStore.js.map +1 -0
- package/lib/commonjs/utils/safeStringify.js +27 -0
- package/lib/commonjs/utils/safeStringify.js.map +1 -0
- package/lib/module/components/ClipboardTab.js +86 -0
- package/lib/module/components/ClipboardTab.js.map +1 -0
- package/lib/module/components/ConsoleLogTab.js +290 -0
- package/lib/module/components/ConsoleLogTab.js.map +1 -0
- package/lib/module/components/EnvironmentTab.js +282 -0
- package/lib/module/components/EnvironmentTab.js.map +1 -0
- package/lib/module/components/FloatPanelView.js +791 -0
- package/lib/module/components/FloatPanelView.js.map +1 -0
- package/lib/module/components/NavigationLogTab.js +126 -0
- package/lib/module/components/NavigationLogTab.js.map +1 -0
- package/lib/module/components/NetworkLogTab.js +570 -0
- package/lib/module/components/NetworkLogTab.js.map +1 -0
- package/lib/module/components/ThirdPartyLibsTab.js +91 -0
- package/lib/module/components/ThirdPartyLibsTab.js.map +1 -0
- package/lib/module/components/TrackLogTab.js +367 -0
- package/lib/module/components/TrackLogTab.js.map +1 -0
- package/lib/module/components/ZustandLogTab.js +446 -0
- package/lib/module/components/ZustandLogTab.js.map +1 -0
- package/lib/module/components/shared/CollapsibleSection.js +78 -0
- package/lib/module/components/shared/CollapsibleSection.js.map +1 -0
- package/lib/module/components/shared/CopyButton.js +58 -0
- package/lib/module/components/shared/CopyButton.js.map +1 -0
- package/lib/module/components/shared/JsonView.js +152 -0
- package/lib/module/components/shared/JsonView.js.map +1 -0
- package/lib/module/core/DebugToolkit.js +137 -0
- package/lib/module/core/DebugToolkit.js.map +1 -0
- package/lib/module/core/DebugToolkitProvider.js +58 -0
- package/lib/module/core/DebugToolkitProvider.js.map +1 -0
- package/lib/module/features/ClipboardFeature.js +12 -0
- package/lib/module/features/ClipboardFeature.js.map +1 -0
- package/lib/module/features/ConsoleLogFeature.js +93 -0
- package/lib/module/features/ConsoleLogFeature.js.map +1 -0
- package/lib/module/features/EnvironmentFeature.js +164 -0
- package/lib/module/features/EnvironmentFeature.js.map +1 -0
- package/lib/module/features/NavigationLogFeature.js +54 -0
- package/lib/module/features/NavigationLogFeature.js.map +1 -0
- package/lib/module/features/NetworkFeature.js +322 -0
- package/lib/module/features/NetworkFeature.js.map +1 -0
- package/lib/module/features/ThirdPartyLibsFeature.js +46 -0
- package/lib/module/features/ThirdPartyLibsFeature.js.map +1 -0
- package/lib/module/features/TrackFeature.js +49 -0
- package/lib/module/features/TrackFeature.js.map +1 -0
- package/lib/module/features/ZustandLogFeature.js +69 -0
- package/lib/module/features/ZustandLogFeature.js.map +1 -0
- package/lib/module/hooks/useNavigationLogger.js +74 -0
- package/lib/module/hooks/useNavigationLogger.js.map +1 -0
- package/lib/module/hooks/useSlideDetailAnimation.js +50 -0
- package/lib/module/hooks/useSlideDetailAnimation.js.map +1 -0
- package/lib/module/index.js +29 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/initialize.js +156 -0
- package/lib/module/initialize.js.map +1 -0
- package/lib/module/native/NativeDebugLibs.js +54 -0
- package/lib/module/native/NativeDebugLibs.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/types/index.js +4 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/module/utils/constants.js +130 -0
- package/lib/module/utils/constants.js.map +1 -0
- package/lib/module/utils/copyToComputer.js +91 -0
- package/lib/module/utils/copyToComputer.js.map +1 -0
- package/lib/module/utils/createEventChannel.js +17 -0
- package/lib/module/utils/createEventChannel.js.map +1 -0
- package/lib/module/utils/createObservableStore.js +34 -0
- package/lib/module/utils/createObservableStore.js.map +1 -0
- package/lib/module/utils/safeStringify.js +23 -0
- package/lib/module/utils/safeStringify.js.map +1 -0
- package/lib/typescript/src/components/ClipboardTab.d.ts +4 -0
- package/lib/typescript/src/components/ClipboardTab.d.ts.map +1 -0
- package/lib/typescript/src/components/ConsoleLogTab.d.ts +4 -0
- package/lib/typescript/src/components/ConsoleLogTab.d.ts.map +1 -0
- package/lib/typescript/src/components/EnvironmentTab.d.ts +4 -0
- package/lib/typescript/src/components/EnvironmentTab.d.ts.map +1 -0
- package/lib/typescript/src/components/FloatPanelView.d.ts +64 -0
- package/lib/typescript/src/components/FloatPanelView.d.ts.map +1 -0
- package/lib/typescript/src/components/NavigationLogTab.d.ts +4 -0
- package/lib/typescript/src/components/NavigationLogTab.d.ts.map +1 -0
- package/lib/typescript/src/components/NetworkLogTab.d.ts +4 -0
- package/lib/typescript/src/components/NetworkLogTab.d.ts.map +1 -0
- package/lib/typescript/src/components/ThirdPartyLibsTab.d.ts +4 -0
- package/lib/typescript/src/components/ThirdPartyLibsTab.d.ts.map +1 -0
- package/lib/typescript/src/components/TrackLogTab.d.ts +4 -0
- package/lib/typescript/src/components/TrackLogTab.d.ts.map +1 -0
- package/lib/typescript/src/components/ZustandLogTab.d.ts +4 -0
- package/lib/typescript/src/components/ZustandLogTab.d.ts.map +1 -0
- package/lib/typescript/src/components/shared/CollapsibleSection.d.ts +9 -0
- package/lib/typescript/src/components/shared/CollapsibleSection.d.ts.map +1 -0
- package/lib/typescript/src/components/shared/CopyButton.d.ts +12 -0
- package/lib/typescript/src/components/shared/CopyButton.d.ts.map +1 -0
- package/lib/typescript/src/components/shared/JsonView.d.ts +6 -0
- package/lib/typescript/src/components/shared/JsonView.d.ts.map +1 -0
- package/lib/typescript/src/core/DebugToolkit.d.ts +27 -0
- package/lib/typescript/src/core/DebugToolkit.d.ts.map +1 -0
- package/lib/typescript/src/core/DebugToolkitProvider.d.ts +18 -0
- package/lib/typescript/src/core/DebugToolkitProvider.d.ts.map +1 -0
- package/lib/typescript/src/features/ClipboardFeature.d.ts +3 -0
- package/lib/typescript/src/features/ClipboardFeature.d.ts.map +1 -0
- package/lib/typescript/src/features/ConsoleLogFeature.d.ts +7 -0
- package/lib/typescript/src/features/ConsoleLogFeature.d.ts.map +1 -0
- package/lib/typescript/src/features/EnvironmentFeature.d.ts +8 -0
- package/lib/typescript/src/features/EnvironmentFeature.d.ts.map +1 -0
- package/lib/typescript/src/features/NavigationLogFeature.d.ts +8 -0
- package/lib/typescript/src/features/NavigationLogFeature.d.ts.map +1 -0
- package/lib/typescript/src/features/NetworkFeature.d.ts +28 -0
- package/lib/typescript/src/features/NetworkFeature.d.ts.map +1 -0
- package/lib/typescript/src/features/ThirdPartyLibsFeature.d.ts +3 -0
- package/lib/typescript/src/features/ThirdPartyLibsFeature.d.ts.map +1 -0
- package/lib/typescript/src/features/TrackFeature.d.ts +12 -0
- package/lib/typescript/src/features/TrackFeature.d.ts.map +1 -0
- package/lib/typescript/src/features/ZustandLogFeature.d.ts +29 -0
- package/lib/typescript/src/features/ZustandLogFeature.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useNavigationLogger.d.ts +20 -0
- package/lib/typescript/src/hooks/useNavigationLogger.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useSlideDetailAnimation.d.ts +11 -0
- package/lib/typescript/src/hooks/useSlideDetailAnimation.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +26 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/initialize.d.ts +51 -0
- package/lib/typescript/src/initialize.d.ts.map +1 -0
- package/lib/typescript/src/native/NativeDebugLibs.d.ts +11 -0
- package/lib/typescript/src/native/NativeDebugLibs.d.ts.map +1 -0
- package/lib/typescript/src/types/index.d.ts +112 -0
- package/lib/typescript/src/types/index.d.ts.map +1 -0
- package/lib/typescript/src/utils/constants.d.ts +96 -0
- package/lib/typescript/src/utils/constants.d.ts.map +1 -0
- package/lib/typescript/src/utils/copyToComputer.d.ts +30 -0
- package/lib/typescript/src/utils/copyToComputer.d.ts.map +1 -0
- package/lib/typescript/src/utils/createEventChannel.d.ts +7 -0
- package/lib/typescript/src/utils/createEventChannel.d.ts.map +1 -0
- package/lib/typescript/src/utils/createObservableStore.d.ts +9 -0
- package/lib/typescript/src/utils/createObservableStore.d.ts.map +1 -0
- package/lib/typescript/src/utils/safeStringify.d.ts +6 -0
- package/lib/typescript/src/utils/safeStringify.d.ts.map +1 -0
- package/package.json +63 -24
- package/src/components/ClipboardTab.tsx +81 -0
- package/src/components/ConsoleLogTab.tsx +209 -0
- package/src/components/EnvironmentTab.tsx +276 -0
- package/src/components/FloatPanelView.tsx +714 -0
- package/src/components/NavigationLogTab.tsx +66 -0
- package/src/components/NetworkLogTab.tsx +411 -0
- package/src/components/ThirdPartyLibsTab.tsx +63 -0
- package/src/components/TrackLogTab.tsx +245 -0
- package/src/components/ZustandLogTab.tsx +305 -0
- package/src/components/shared/CollapsibleSection.tsx +78 -0
- package/src/components/shared/CopyButton.tsx +68 -0
- package/src/components/shared/JsonView.tsx +125 -0
- package/src/core/DebugToolkit.tsx +174 -0
- package/src/core/DebugToolkitProvider.tsx +89 -0
- package/src/features/ClipboardFeature.ts +11 -0
- package/src/features/ConsoleLogFeature.ts +118 -0
- package/src/features/EnvironmentFeature.ts +194 -0
- package/src/features/NavigationLogFeature.ts +74 -0
- package/src/features/NetworkFeature.ts +488 -0
- package/src/features/ThirdPartyLibsFeature.ts +42 -0
- package/src/features/TrackFeature.ts +69 -0
- package/src/features/ZustandLogFeature.ts +127 -0
- package/src/hooks/useNavigationLogger.ts +107 -0
- package/src/hooks/useSlideDetailAnimation.ts +45 -0
- package/src/index.ts +52 -0
- package/src/initialize.ts +214 -0
- package/src/native/NativeDebugLibs.ts +74 -0
- package/src/types/index.ts +138 -0
- package/src/utils/constants.ts +91 -0
- package/src/utils/copyToComputer.ts +104 -0
- package/src/utils/createEventChannel.ts +22 -0
- package/src/utils/createObservableStore.ts +42 -0
- package/src/utils/safeStringify.ts +25 -0
- package/.cursor/rules/react-native.mdc +0 -41
- package/README.zh-CN.md +0 -230
- package/android/build.gradle +0 -34
- package/android/src/main/AndroidManifest.xml +0 -8
- package/android/src/main/java/com/reactnative/debuglibs/BuildTypeModule.java +0 -44
- package/android/src/main/java/com/reactnative/debuglibs/BuildTypePackage.java +0 -25
- package/android/src/main/java/com/reactnative/debuglibs/RNDebugLibsModule.java +0 -75
- package/android/src/main/java/com/reactnative/debuglibs/RNDebugLibsPackage.java +0 -28
- package/index.js +0 -41
- package/ios/BuildTypeModule.h +0 -9
- package/ios/BuildTypeModule.m +0 -42
- package/ios/RNDebugLibs.h +0 -10
- package/ios/RNDebugLibs.m +0 -79
- package/lib/DebugToolKit.js +0 -126
- package/lib/EnvironmentManager.ts +0 -80
- package/lib/NativeDebugLibs.js +0 -67
- package/lib/features/ConsoleLogFeature.js +0 -70
- package/lib/features/NavigationLogFeature.js +0 -45
- package/lib/features/NetworkFeature.js +0 -389
- package/lib/features/PerformanceFeature.js +0 -390
- package/lib/features/ThirdPartyLibsFeature.js +0 -63
- package/lib/features/TrackFeature.js +0 -94
- package/lib/features/ZustandLogFeature.js +0 -44
- package/lib/hooks/useNavigationLogger.js +0 -92
- package/lib/index.js +0 -114
- package/lib/navigation/NavigationLogger.js +0 -1
- package/lib/types/TrackTypes.ts +0 -92
- package/lib/utils/DebugConst.js +0 -67
- package/lib/utils/StorageUtils.js +0 -80
- package/lib/views/ConsoleLogDetails.js +0 -314
- package/lib/views/FloatPanelView.js +0 -697
- package/lib/views/HttpLogDetails.js +0 -648
- package/lib/views/NavigationLogDetails.js +0 -302
- package/lib/views/RestartModal.js +0 -75
- package/lib/views/SubViewConsoleLogs.js +0 -209
- package/lib/views/SubViewEnvironment.js +0 -73
- package/lib/views/SubViewHTTPLogs.js +0 -235
- package/lib/views/SubViewNavigationLogs.js +0 -199
- package/lib/views/SubViewPerformance.js +0 -515
- package/lib/views/SubViewThirdPartyLibs.js +0 -239
- package/lib/views/SubViewTrackLogs.js +0 -318
- package/lib/views/SubViewZustandLogs.js +0 -279
- package/lib/views/TabView.js +0 -66
- package/lib/views/TrackLogDetails.js +0 -481
- package/lib/views/ZustandLogDetails.js +0 -355
- package/react-native-debug-toolkit.podspec +0 -25
- package/react-native.config.js +0 -18
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 zcj
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,271 +1,209 @@
|
|
|
1
1
|
# React Native Debug Toolkit
|
|
2
2
|
|
|
3
|
-
A
|
|
3
|
+
A dev-only floating debug panel for React Native — inspect network, console, state, navigation and more, right on your device.
|
|
4
|
+
|
|
5
|
+
> Zero impact on production builds (`__DEV__` only).
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- **Network** — Inspect fetch / Axios requests & responses, copy as cURL
|
|
10
|
+
- **Console** — Capture `console.log / info / warn / error`
|
|
11
|
+
- **Zustand** — Log state transitions via middleware
|
|
12
|
+
- **Navigation** — Track route changes
|
|
13
|
+
- **Track** — Record custom analytics events
|
|
14
|
+
- **Environment** — Switch API hosts on the fly
|
|
15
|
+
- **Clipboard** — Inspect clipboard content
|
|
16
|
+
- **Third-party** — Launch FLEX / DoraemonKit
|
|
17
|
+
- **Export** — Share debug data via system share sheet
|
|
4
18
|
|
|
5
19
|
## Installation
|
|
6
20
|
|
|
7
21
|
```bash
|
|
8
22
|
npm install react-native-debug-toolkit
|
|
9
|
-
# or
|
|
10
|
-
yarn add react-native-debug-toolkit
|
|
11
23
|
```
|
|
12
24
|
|
|
13
|
-
|
|
25
|
+
Optional — clipboard copy support:
|
|
14
26
|
|
|
15
|
-
|
|
27
|
+
```bash
|
|
28
|
+
npm install @react-native-clipboard/clipboard
|
|
29
|
+
```
|
|
16
30
|
|
|
17
|
-
|
|
18
|
-
2. Add these dependencies to your Podfile:
|
|
31
|
+
## Quick Start
|
|
19
32
|
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
```
|
|
33
|
+
```tsx
|
|
34
|
+
import { useEffect } from 'react';
|
|
35
|
+
import { initializeDebugToolkit } from 'react-native-debug-toolkit';
|
|
24
36
|
|
|
25
|
-
|
|
37
|
+
function App() {
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
const toolkit = initializeDebugToolkit();
|
|
40
|
+
return () => toolkit?.destroy();
|
|
41
|
+
}, []);
|
|
26
42
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
#endif
|
|
43
|
+
return <AppContent />;
|
|
44
|
+
}
|
|
45
|
+
```
|
|
31
46
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
47
|
+
That's it. All features are enabled by default.
|
|
48
|
+
|
|
49
|
+
## Configuration
|
|
50
|
+
|
|
51
|
+
Pass a config object to customize features:
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
initializeDebugToolkit({
|
|
55
|
+
features: {
|
|
56
|
+
network: { maxLogs: 100, blacklist: ['/auth'] },
|
|
57
|
+
console: true,
|
|
58
|
+
zustand: true,
|
|
59
|
+
track: true,
|
|
60
|
+
environment: [
|
|
61
|
+
{ id: 'dev', label: 'Dev', host: 'dev-api.example.com', color: '#34C759' },
|
|
62
|
+
{ id: 'prod', label: 'Prod', host: 'api.example.com', color: '#FF3B30' },
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
enabled: true, // force enable (default: __DEV__)
|
|
66
|
+
});
|
|
38
67
|
```
|
|
39
68
|
|
|
40
|
-
|
|
69
|
+
Set any feature to `false` to disable it.
|
|
41
70
|
|
|
42
|
-
|
|
43
|
-
cd ios && pod install
|
|
44
|
-
```
|
|
71
|
+
### Per-feature options
|
|
45
72
|
|
|
46
|
-
|
|
73
|
+
| Feature | Options |
|
|
74
|
+
|---------|---------|
|
|
75
|
+
| `network` | `maxLogs`, `blacklist` |
|
|
76
|
+
| `console` | `maxLogs` |
|
|
77
|
+
| `zustand` | `maxLogs` |
|
|
78
|
+
| `navigation` | `maxLogs` |
|
|
79
|
+
| `track` | `maxLogs` |
|
|
80
|
+
| `environment` | `EnvironmentConfig[]` |
|
|
81
|
+
| `thirdPartyLibs` | — |
|
|
82
|
+
| `clipboard` | — |
|
|
47
83
|
|
|
48
|
-
|
|
84
|
+
All `maxLogs` default to **200**.
|
|
49
85
|
|
|
50
|
-
|
|
51
|
-
include ':react-native-debug-toolkit'
|
|
52
|
-
project(':react-native-debug-toolkit').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-debug-toolkit/android')
|
|
53
|
-
```
|
|
86
|
+
## Usage Examples
|
|
54
87
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
```gradle
|
|
58
|
-
dependencies {
|
|
59
|
-
// Other dependencies...
|
|
60
|
-
|
|
61
|
-
debugImplementation 'io.github.didi.dokit:dokitx:3.7.1'
|
|
62
|
-
releaseImplementation 'io.github.didi.dokit:dokitx-no-op:3.7.1'
|
|
63
|
-
debugImplementation 'com.android.volley:volley:1.2.0'
|
|
64
|
-
|
|
65
|
-
implementation project(':react-native-debug-toolkit')
|
|
66
|
-
}
|
|
67
|
-
```
|
|
88
|
+
### Axios interceptor
|
|
68
89
|
|
|
69
|
-
|
|
90
|
+
```tsx
|
|
91
|
+
import { createNetworkFeature } from 'react-native-debug-toolkit';
|
|
92
|
+
import axios from 'axios';
|
|
70
93
|
|
|
71
|
-
|
|
72
|
-
|
|
94
|
+
const network = createNetworkFeature({ maxLogs: 100 });
|
|
95
|
+
network.setupAxiosInterceptors(axios);
|
|
73
96
|
|
|
74
|
-
|
|
75
|
-
if (BuildConfig.DEBUG) {
|
|
76
|
-
DoKit.Builder(this)
|
|
77
|
-
.build()
|
|
78
|
-
DoKit.hide()
|
|
79
|
-
}
|
|
97
|
+
initializeDebugToolkit({ features: { network, console: true } });
|
|
80
98
|
```
|
|
81
99
|
|
|
82
|
-
|
|
100
|
+
### Zustand middleware
|
|
83
101
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
```javascript
|
|
87
|
-
// In your App.js or other initialization file
|
|
88
|
-
import React, { useEffect } from 'react';
|
|
89
|
-
import { initializeDebugToolkit, isDebugMode } from 'react-native-debug-toolkit';
|
|
102
|
+
```tsx
|
|
103
|
+
import { zustandLogMiddleware } from 'react-native-debug-toolkit';
|
|
90
104
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
// Or select specific built-in features
|
|
98
|
-
// initializeDebugToolkit(['network', 'console', 'zustand', 'navigation', 'thirdPartyLibs']);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return () => {
|
|
102
|
-
// Cleanup happens automatically
|
|
103
|
-
};
|
|
104
|
-
}, []);
|
|
105
|
-
|
|
106
|
-
return <YourApp />;
|
|
107
|
-
}
|
|
105
|
+
const useStore = create(
|
|
106
|
+
zustandLogMiddleware((set) => ({
|
|
107
|
+
count: 0,
|
|
108
|
+
increment: () => set((s) => ({ count: s.count + 1 }), false, 'increment'),
|
|
109
|
+
}))
|
|
110
|
+
);
|
|
108
111
|
```
|
|
109
112
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
## Built-in Features
|
|
113
|
-
|
|
114
|
-
By initializing with the single line of code above, you'll automatically get access to all these debugging features:
|
|
113
|
+
### Navigation logging
|
|
115
114
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
- **Zustand**: Monitor Zustand state management (if your app uses Zustand)
|
|
119
|
-
- **Navigation**: Automatically track navigation events in your app
|
|
120
|
-
- **ThirdPartyLibs**: Quick access to native debugging tools (FLEX for iOS, DoraemonKit)
|
|
115
|
+
```tsx
|
|
116
|
+
import { useNavigationLogger } from 'react-native-debug-toolkit';
|
|
121
117
|
|
|
122
|
-
|
|
118
|
+
const ref = useRef(null);
|
|
119
|
+
useNavigationLogger(ref);
|
|
120
|
+
// pass ref to <NavigationContainer ref={ref}>
|
|
121
|
+
```
|
|
123
122
|
|
|
124
|
-
###
|
|
123
|
+
### Custom events
|
|
125
124
|
|
|
126
|
-
|
|
125
|
+
```tsx
|
|
126
|
+
import { addTrackLog } from 'react-native-debug-toolkit';
|
|
127
127
|
|
|
128
|
-
|
|
129
|
-
import axios from 'axios';
|
|
130
|
-
import { createNetworkFeature, isDebugMode } from 'react-native-debug-toolkit';
|
|
131
|
-
|
|
132
|
-
// Get network feature instance and set up Axios interceptors
|
|
133
|
-
if (isDebugMode) {
|
|
134
|
-
const networkFeature = createNetworkFeature();
|
|
135
|
-
networkFeature.setupAxiosInterceptors(axios);
|
|
136
|
-
|
|
137
|
-
// Optional: exclude sensitive URLs (like authentication endpoints)
|
|
138
|
-
networkFeature.addUrlToBlacklist('api.example.com/auth');
|
|
139
|
-
networkFeature.addUrlToBlacklist(/password/i); // Regex patterns supported
|
|
140
|
-
}
|
|
128
|
+
addTrackLog({ eventName: 'button_click', buttonId: 'submit' });
|
|
141
129
|
```
|
|
142
130
|
|
|
143
|
-
###
|
|
131
|
+
### Export debug data
|
|
144
132
|
|
|
145
|
-
|
|
133
|
+
Tap **Export** in the panel header, or call programmatically:
|
|
146
134
|
|
|
147
|
-
```
|
|
148
|
-
import {
|
|
149
|
-
import { zustandLogMiddleware } from 'react-native-debug-toolkit';
|
|
135
|
+
```tsx
|
|
136
|
+
import { exportDebugData } from 'react-native-debug-toolkit';
|
|
150
137
|
|
|
151
|
-
|
|
152
|
-
const useStore = create(
|
|
153
|
-
zustandLogMiddleware(
|
|
154
|
-
(set) => ({
|
|
155
|
-
count: 0,
|
|
156
|
-
increment: () => set((state) => ({ count: state.count + 1 })),
|
|
157
|
-
decrement: () => set((state) => ({ count: state.count - 1 })),
|
|
158
|
-
})
|
|
159
|
-
)
|
|
160
|
-
);
|
|
138
|
+
await exportDebugData(data, 'network');
|
|
161
139
|
```
|
|
162
140
|
|
|
163
|
-
###
|
|
141
|
+
### Copy to computer
|
|
164
142
|
|
|
165
|
-
|
|
143
|
+
```tsx
|
|
144
|
+
import { copyToComputer } from 'react-native-debug-toolkit';
|
|
166
145
|
|
|
167
|
-
|
|
168
|
-
import React, { useRef } from 'react';
|
|
169
|
-
import { NavigationContainer } from '@react-navigation/native';
|
|
170
|
-
import { useNavigationLogger } from 'react-native-debug-toolkit';
|
|
171
|
-
|
|
172
|
-
function AppNavigator() {
|
|
173
|
-
const navigationRef = useRef(null);
|
|
174
|
-
|
|
175
|
-
// Add this line to enable navigation logging
|
|
176
|
-
useNavigationLogger(navigationRef);
|
|
177
|
-
|
|
178
|
-
return (
|
|
179
|
-
<NavigationContainer ref={navigationRef}>
|
|
180
|
-
{/* Your navigation configuration */}
|
|
181
|
-
</NavigationContainer>
|
|
182
|
-
);
|
|
183
|
-
}
|
|
146
|
+
await copyToComputer(jsonString);
|
|
184
147
|
```
|
|
185
148
|
|
|
186
|
-
##
|
|
149
|
+
## API
|
|
187
150
|
|
|
188
|
-
|
|
151
|
+
### `initializeDebugToolkit(config?)`
|
|
189
152
|
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
'network',
|
|
197
|
-
'console',
|
|
198
|
-
'zustand',
|
|
199
|
-
'navigation',
|
|
200
|
-
'thirdPartyLibs'
|
|
201
|
-
]);
|
|
153
|
+
```ts
|
|
154
|
+
initializeDebugToolkit(config?: {
|
|
155
|
+
features?: FeatureConfigs;
|
|
156
|
+
enabled?: boolean;
|
|
157
|
+
doraemonProductId?: string;
|
|
158
|
+
}): DebugToolkitAPI | null;
|
|
202
159
|
```
|
|
203
160
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
// Limit the amount of data stored
|
|
229
|
-
if (customData.length > 100) {
|
|
230
|
-
customData.shift();
|
|
231
|
-
}
|
|
232
|
-
}, 1000);
|
|
233
|
-
|
|
234
|
-
// Return cleanup function if needed
|
|
235
|
-
return () => clearInterval(interval);
|
|
236
|
-
},
|
|
237
|
-
|
|
238
|
-
getData: () => {
|
|
239
|
-
// Return data to display in the panel
|
|
240
|
-
return customData;
|
|
241
|
-
},
|
|
242
|
-
|
|
243
|
-
cleanup: () => {
|
|
244
|
-
// Clean up any listeners or resources
|
|
245
|
-
customData = [];
|
|
246
|
-
}
|
|
247
|
-
};
|
|
161
|
+
### `DebugToolkitAPI`
|
|
162
|
+
|
|
163
|
+
| Method | Description |
|
|
164
|
+
|--------|-------------|
|
|
165
|
+
| `showPanel()` / `hidePanel()` | Toggle visibility |
|
|
166
|
+
| `clearAll()` | Clear all data |
|
|
167
|
+
| `addFeature(f)` / `removeFeature(name)` | Manage features at runtime |
|
|
168
|
+
| `destroy()` | Full teardown |
|
|
169
|
+
| `features` | Active features (read-only) |
|
|
170
|
+
|
|
171
|
+
### Custom feature
|
|
172
|
+
|
|
173
|
+
```tsx
|
|
174
|
+
import type { DebugFeature } from 'react-native-debug-toolkit';
|
|
175
|
+
|
|
176
|
+
const myFeature: DebugFeature<MyData> = {
|
|
177
|
+
name: 'myFeature',
|
|
178
|
+
label: 'My Feature',
|
|
179
|
+
setup: () => { /* start capturing */ },
|
|
180
|
+
getData: () => myDataArray,
|
|
181
|
+
cleanup: () => { /* stop capturing */ },
|
|
182
|
+
clear: () => { /* reset data */ },
|
|
183
|
+
subscribe: (cb) => { emitter.on('change', cb); return () => emitter.off('change', cb); },
|
|
184
|
+
renderContent: MyFeatureTab,
|
|
248
185
|
};
|
|
249
186
|
|
|
250
|
-
|
|
251
|
-
initializeDebugToolkit(['network', 'console', createMyCustomFeature]);
|
|
187
|
+
initializeDebugToolkit({ features: { myFeature } });
|
|
252
188
|
```
|
|
253
189
|
|
|
254
|
-
|
|
190
|
+
### Utilities
|
|
191
|
+
|
|
192
|
+
| Export | Description |
|
|
193
|
+
|--------|-------------|
|
|
194
|
+
| `safeStringify(value, space?)` | JSON stringify with circular-ref protection |
|
|
195
|
+
| `exportDebugData(data, name)` | Share via system sheet |
|
|
196
|
+
| `copyToComputer(content, options?)` | Copy content to computer |
|
|
197
|
+
| `logToComputer(...args)` | Log to computer console |
|
|
255
198
|
|
|
256
|
-
|
|
257
|
-
- Make sure you're in development mode (`isDebugMode` is true)
|
|
258
|
-
- Check that you've correctly called `initializeDebugToolkit()`
|
|
199
|
+
## Peer Dependencies
|
|
259
200
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
-
|
|
201
|
+
| Package | Version | Required |
|
|
202
|
+
|---------|---------|----------|
|
|
203
|
+
| react | >= 18.0.0 | Yes |
|
|
204
|
+
| react-native | >= 0.72.0 | Yes |
|
|
205
|
+
| @react-native-clipboard/clipboard | >= 1.0.0 | No |
|
|
264
206
|
|
|
265
|
-
|
|
266
|
-
- For Axios, ensure you've called `setupAxiosInterceptors(axios)`
|
|
267
|
-
- For fetch requests, the toolkit should automatically intercept them without additional configuration
|
|
207
|
+
## License
|
|
268
208
|
|
|
269
|
-
|
|
270
|
-
- This debug toolkit is meant for development only, ensure it's not included in production builds
|
|
271
|
-
- If performance is affected in development mode, try enabling only specific features
|
|
209
|
+
MIT
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ClipboardTab = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _constants = require("../utils/constants");
|
|
10
|
+
var _copyToComputer = require("../utils/copyToComputer");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
|
+
const ClipboardTab = () => {
|
|
14
|
+
const [text, setText] = (0, _react.useState)('');
|
|
15
|
+
const [feedback, setFeedback] = (0, _react.useState)(null);
|
|
16
|
+
const handleCopy = (0, _react.useCallback)(() => {
|
|
17
|
+
if (!text) return;
|
|
18
|
+
try {
|
|
19
|
+
const result = (0, _copyToComputer.copyToComputer)(text, {
|
|
20
|
+
label: 'Clipboard'
|
|
21
|
+
});
|
|
22
|
+
setFeedback(result.method === 'clipboard' ? 'Copied' : 'Logged');
|
|
23
|
+
} catch {
|
|
24
|
+
setFeedback('Logged');
|
|
25
|
+
}
|
|
26
|
+
setTimeout(() => setFeedback(null), 2000);
|
|
27
|
+
}, [text]);
|
|
28
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
29
|
+
style: s.container,
|
|
30
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
|
|
31
|
+
style: s.input,
|
|
32
|
+
value: text,
|
|
33
|
+
onChangeText: setText,
|
|
34
|
+
placeholder: "Paste or type text here...",
|
|
35
|
+
placeholderTextColor: _constants.Colors.textLight,
|
|
36
|
+
multiline: true,
|
|
37
|
+
textAlignVertical: "top"
|
|
38
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
39
|
+
style: s.footer,
|
|
40
|
+
children: text ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
41
|
+
style: s.copyBtn,
|
|
42
|
+
onPress: handleCopy,
|
|
43
|
+
activeOpacity: 0.7,
|
|
44
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
45
|
+
style: s.copyBtnText,
|
|
46
|
+
children: feedback ?? 'Copy'
|
|
47
|
+
})
|
|
48
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
49
|
+
style: s.hint,
|
|
50
|
+
children: "Paste or type content above, then copy to computer"
|
|
51
|
+
})
|
|
52
|
+
})]
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
exports.ClipboardTab = ClipboardTab;
|
|
56
|
+
const s = _reactNative.StyleSheet.create({
|
|
57
|
+
container: {
|
|
58
|
+
flex: 1,
|
|
59
|
+
backgroundColor: _constants.Colors.background,
|
|
60
|
+
padding: _constants.Spacing.md
|
|
61
|
+
},
|
|
62
|
+
input: {
|
|
63
|
+
flex: 1,
|
|
64
|
+
backgroundColor: _constants.Colors.surface,
|
|
65
|
+
borderRadius: _constants.Radius.md,
|
|
66
|
+
padding: _constants.Spacing.md,
|
|
67
|
+
fontSize: 14,
|
|
68
|
+
color: _constants.Colors.text,
|
|
69
|
+
lineHeight: 20
|
|
70
|
+
},
|
|
71
|
+
footer: {
|
|
72
|
+
paddingTop: _constants.Spacing.sm,
|
|
73
|
+
minHeight: 36,
|
|
74
|
+
alignItems: 'flex-end'
|
|
75
|
+
},
|
|
76
|
+
hint: {
|
|
77
|
+
fontSize: 12,
|
|
78
|
+
color: _constants.Colors.textLight
|
|
79
|
+
},
|
|
80
|
+
copyBtn: {
|
|
81
|
+
backgroundColor: _constants.Colors.background,
|
|
82
|
+
paddingHorizontal: 16,
|
|
83
|
+
paddingVertical: 6,
|
|
84
|
+
borderRadius: _constants.Radius.sm
|
|
85
|
+
},
|
|
86
|
+
copyBtnText: {
|
|
87
|
+
fontSize: 13,
|
|
88
|
+
color: _constants.Colors.primary,
|
|
89
|
+
fontWeight: '600'
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=ClipboardTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_constants","_copyToComputer","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ClipboardTab","text","setText","useState","feedback","setFeedback","handleCopy","useCallback","result","copyToComputer","label","method","setTimeout","jsxs","View","style","s","container","children","jsx","TextInput","input","value","onChangeText","placeholder","placeholderTextColor","Colors","textLight","multiline","textAlignVertical","footer","TouchableOpacity","copyBtn","onPress","activeOpacity","Text","copyBtnText","hint","exports","StyleSheet","create","flex","backgroundColor","background","padding","Spacing","md","surface","borderRadius","Radius","fontSize","color","lineHeight","paddingTop","sm","minHeight","alignItems","paddingHorizontal","paddingVertical","primary","fontWeight"],"sourceRoot":"../../../src","sources":["components/ClipboardTab.tsx"],"mappings":"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","ignoreList":[]}
|