react-native-debug-toolkit 3.3.8 → 3.5.1

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.
Files changed (223) hide show
  1. package/README.md +40 -26
  2. package/README.zh-CN.md +52 -38
  3. package/android/src/main/java/com/reactnativedebugtoolkit/DebugToolkitNativeLogsModule.java +146 -0
  4. package/android/src/main/java/com/reactnativedebugtoolkit/ReactNativeDebugToolkitPackage.java +5 -3
  5. package/ios/DebugToolkitNativeLogs.mm +92 -0
  6. package/lib/commonjs/constants/logLevels.js +19 -0
  7. package/lib/commonjs/constants/logLevels.js.map +1 -0
  8. package/lib/commonjs/core/initialize.js +32 -19
  9. package/lib/commonjs/core/initialize.js.map +1 -1
  10. package/lib/commonjs/features/console/ConsoleLogTab.js +4 -15
  11. package/lib/commonjs/features/console/ConsoleLogTab.js.map +1 -1
  12. package/lib/commonjs/features/console/index.js +15 -8
  13. package/lib/commonjs/features/console/index.js.map +1 -1
  14. package/lib/commonjs/features/nativeLogs/NativeLogTab.js +156 -0
  15. package/lib/commonjs/features/nativeLogs/NativeLogTab.js.map +1 -0
  16. package/lib/commonjs/features/nativeLogs/index.js +97 -0
  17. package/lib/commonjs/features/nativeLogs/index.js.map +1 -0
  18. package/lib/commonjs/features/nativeLogs/nativeLogsBridge.js +71 -0
  19. package/lib/commonjs/features/nativeLogs/nativeLogsBridge.js.map +1 -0
  20. package/lib/commonjs/features/network/NetworkLogTab.js +90 -95
  21. package/lib/commonjs/features/network/NetworkLogTab.js.map +1 -1
  22. package/lib/commonjs/features/network/index.js +7 -4
  23. package/lib/commonjs/features/network/index.js.map +1 -1
  24. package/lib/commonjs/features/sessionHistory/SessionHistoryTab.js +1046 -0
  25. package/lib/commonjs/features/sessionHistory/SessionHistoryTab.js.map +1 -0
  26. package/lib/commonjs/features/sessionHistory/index.js +104 -0
  27. package/lib/commonjs/features/sessionHistory/index.js.map +1 -0
  28. package/lib/commonjs/features/track/index.js +4 -3
  29. package/lib/commonjs/features/track/index.js.map +1 -1
  30. package/lib/commonjs/index.js +27 -0
  31. package/lib/commonjs/index.js.map +1 -1
  32. package/lib/commonjs/ui/DebugView.js +2 -0
  33. package/lib/commonjs/ui/DebugView.js.map +1 -1
  34. package/lib/commonjs/ui/panel/DebugPanel.js +67 -34
  35. package/lib/commonjs/ui/panel/DebugPanel.js.map +1 -1
  36. package/lib/commonjs/ui/panel/FeatureIntroCard.js +151 -0
  37. package/lib/commonjs/ui/panel/FeatureIntroCard.js.map +1 -0
  38. package/lib/commonjs/ui/panel/FeatureRail.js +163 -0
  39. package/lib/commonjs/ui/panel/FeatureRail.js.map +1 -0
  40. package/lib/commonjs/ui/panel/FloatPanelView.js +119 -22
  41. package/lib/commonjs/ui/panel/FloatPanelView.js.map +1 -1
  42. package/lib/commonjs/ui/panel/buildFeatureSummary.js +207 -0
  43. package/lib/commonjs/ui/panel/buildFeatureSummary.js.map +1 -0
  44. package/lib/commonjs/ui/panel/filterFeatureSnapshot.js +43 -0
  45. package/lib/commonjs/ui/panel/filterFeatureSnapshot.js.map +1 -0
  46. package/lib/commonjs/ui/theme/colors.js +6 -0
  47. package/lib/commonjs/ui/theme/colors.js.map +1 -1
  48. package/lib/commonjs/utils/DaemonClient.js +30 -8
  49. package/lib/commonjs/utils/DaemonClient.js.map +1 -1
  50. package/lib/commonjs/utils/SessionManager.js +132 -0
  51. package/lib/commonjs/utils/SessionManager.js.map +1 -0
  52. package/lib/commonjs/utils/StorageAdapter.js +104 -0
  53. package/lib/commonjs/utils/StorageAdapter.js.map +1 -0
  54. package/lib/commonjs/utils/createChannelFeature.js +22 -5
  55. package/lib/commonjs/utils/createChannelFeature.js.map +1 -1
  56. package/lib/commonjs/utils/createPersistedObservableStore.js +14 -8
  57. package/lib/commonjs/utils/createPersistedObservableStore.js.map +1 -1
  58. package/lib/commonjs/utils/debugPreferences.js +28 -5
  59. package/lib/commonjs/utils/debugPreferences.js.map +1 -1
  60. package/lib/commonjs/utils/deviceReport.js +5 -1
  61. package/lib/commonjs/utils/deviceReport.js.map +1 -1
  62. package/lib/commonjs/utils/logRuntime.js +32 -0
  63. package/lib/commonjs/utils/logRuntime.js.map +1 -0
  64. package/lib/module/constants/logLevels.js +15 -0
  65. package/lib/module/constants/logLevels.js.map +1 -0
  66. package/lib/module/core/initialize.js +32 -19
  67. package/lib/module/core/initialize.js.map +1 -1
  68. package/lib/module/features/console/ConsoleLogTab.js +1 -12
  69. package/lib/module/features/console/ConsoleLogTab.js.map +1 -1
  70. package/lib/module/features/console/index.js +15 -8
  71. package/lib/module/features/console/index.js.map +1 -1
  72. package/lib/module/features/nativeLogs/NativeLogTab.js +151 -0
  73. package/lib/module/features/nativeLogs/NativeLogTab.js.map +1 -0
  74. package/lib/module/features/nativeLogs/index.js +91 -0
  75. package/lib/module/features/nativeLogs/index.js.map +1 -0
  76. package/lib/module/features/nativeLogs/nativeLogsBridge.js +63 -0
  77. package/lib/module/features/nativeLogs/nativeLogsBridge.js.map +1 -0
  78. package/lib/module/features/network/NetworkLogTab.js +90 -95
  79. package/lib/module/features/network/NetworkLogTab.js.map +1 -1
  80. package/lib/module/features/network/index.js +7 -4
  81. package/lib/module/features/network/index.js.map +1 -1
  82. package/lib/module/features/sessionHistory/SessionHistoryTab.js +1041 -0
  83. package/lib/module/features/sessionHistory/SessionHistoryTab.js.map +1 -0
  84. package/lib/module/features/sessionHistory/index.js +100 -0
  85. package/lib/module/features/sessionHistory/index.js.map +1 -0
  86. package/lib/module/features/track/index.js +4 -3
  87. package/lib/module/features/track/index.js.map +1 -1
  88. package/lib/module/index.js +3 -0
  89. package/lib/module/index.js.map +1 -1
  90. package/lib/module/ui/DebugView.js +2 -0
  91. package/lib/module/ui/DebugView.js.map +1 -1
  92. package/lib/module/ui/panel/DebugPanel.js +67 -34
  93. package/lib/module/ui/panel/DebugPanel.js.map +1 -1
  94. package/lib/module/ui/panel/FeatureIntroCard.js +146 -0
  95. package/lib/module/ui/panel/FeatureIntroCard.js.map +1 -0
  96. package/lib/module/ui/panel/FeatureRail.js +158 -0
  97. package/lib/module/ui/panel/FeatureRail.js.map +1 -0
  98. package/lib/module/ui/panel/FloatPanelView.js +119 -22
  99. package/lib/module/ui/panel/FloatPanelView.js.map +1 -1
  100. package/lib/module/ui/panel/buildFeatureSummary.js +203 -0
  101. package/lib/module/ui/panel/buildFeatureSummary.js.map +1 -0
  102. package/lib/module/ui/panel/filterFeatureSnapshot.js +39 -0
  103. package/lib/module/ui/panel/filterFeatureSnapshot.js.map +1 -0
  104. package/lib/module/ui/theme/colors.js +6 -0
  105. package/lib/module/ui/theme/colors.js.map +1 -1
  106. package/lib/module/utils/DaemonClient.js +30 -8
  107. package/lib/module/utils/DaemonClient.js.map +1 -1
  108. package/lib/module/utils/SessionManager.js +127 -0
  109. package/lib/module/utils/SessionManager.js.map +1 -0
  110. package/lib/module/utils/StorageAdapter.js +96 -0
  111. package/lib/module/utils/StorageAdapter.js.map +1 -0
  112. package/lib/module/utils/createChannelFeature.js +22 -5
  113. package/lib/module/utils/createChannelFeature.js.map +1 -1
  114. package/lib/module/utils/createPersistedObservableStore.js +14 -8
  115. package/lib/module/utils/createPersistedObservableStore.js.map +1 -1
  116. package/lib/module/utils/debugPreferences.js +27 -5
  117. package/lib/module/utils/debugPreferences.js.map +1 -1
  118. package/lib/module/utils/deviceReport.js +4 -1
  119. package/lib/module/utils/deviceReport.js.map +1 -1
  120. package/lib/module/utils/logRuntime.js +26 -0
  121. package/lib/module/utils/logRuntime.js.map +1 -0
  122. package/lib/typescript/src/constants/logLevels.d.ts +3 -0
  123. package/lib/typescript/src/constants/logLevels.d.ts.map +1 -0
  124. package/lib/typescript/src/core/initialize.d.ts +6 -0
  125. package/lib/typescript/src/core/initialize.d.ts.map +1 -1
  126. package/lib/typescript/src/features/console/ConsoleLogTab.d.ts.map +1 -1
  127. package/lib/typescript/src/features/console/index.d.ts +2 -1
  128. package/lib/typescript/src/features/console/index.d.ts.map +1 -1
  129. package/lib/typescript/src/features/nativeLogs/NativeLogTab.d.ts +4 -0
  130. package/lib/typescript/src/features/nativeLogs/NativeLogTab.d.ts.map +1 -0
  131. package/lib/typescript/src/features/nativeLogs/index.d.ts +12 -0
  132. package/lib/typescript/src/features/nativeLogs/index.d.ts.map +1 -0
  133. package/lib/typescript/src/features/nativeLogs/nativeLogsBridge.d.ts +11 -0
  134. package/lib/typescript/src/features/nativeLogs/nativeLogsBridge.d.ts.map +1 -0
  135. package/lib/typescript/src/features/network/NetworkLogTab.d.ts.map +1 -1
  136. package/lib/typescript/src/features/network/index.d.ts +2 -1
  137. package/lib/typescript/src/features/network/index.d.ts.map +1 -1
  138. package/lib/typescript/src/features/sessionHistory/SessionHistoryTab.d.ts +20 -0
  139. package/lib/typescript/src/features/sessionHistory/SessionHistoryTab.d.ts.map +1 -0
  140. package/lib/typescript/src/features/sessionHistory/index.d.ts +4 -0
  141. package/lib/typescript/src/features/sessionHistory/index.d.ts.map +1 -0
  142. package/lib/typescript/src/features/track/index.d.ts +2 -1
  143. package/lib/typescript/src/features/track/index.d.ts.map +1 -1
  144. package/lib/typescript/src/index.d.ts +7 -1
  145. package/lib/typescript/src/index.d.ts.map +1 -1
  146. package/lib/typescript/src/types/feature.d.ts +1 -1
  147. package/lib/typescript/src/types/feature.d.ts.map +1 -1
  148. package/lib/typescript/src/types/index.d.ts +3 -1
  149. package/lib/typescript/src/types/index.d.ts.map +1 -1
  150. package/lib/typescript/src/types/logs.d.ts +15 -0
  151. package/lib/typescript/src/types/logs.d.ts.map +1 -1
  152. package/lib/typescript/src/ui/DebugView.d.ts.map +1 -1
  153. package/lib/typescript/src/ui/panel/DebugPanel.d.ts +3 -1
  154. package/lib/typescript/src/ui/panel/DebugPanel.d.ts.map +1 -1
  155. package/lib/typescript/src/ui/panel/FeatureIntroCard.d.ts +14 -0
  156. package/lib/typescript/src/ui/panel/FeatureIntroCard.d.ts.map +1 -0
  157. package/lib/typescript/src/ui/panel/FeatureRail.d.ts +16 -0
  158. package/lib/typescript/src/ui/panel/FeatureRail.d.ts.map +1 -0
  159. package/lib/typescript/src/ui/panel/FloatPanelView.d.ts.map +1 -1
  160. package/lib/typescript/src/ui/panel/buildFeatureSummary.d.ts +13 -0
  161. package/lib/typescript/src/ui/panel/buildFeatureSummary.d.ts.map +1 -0
  162. package/lib/typescript/src/ui/panel/filterFeatureSnapshot.d.ts +3 -0
  163. package/lib/typescript/src/ui/panel/filterFeatureSnapshot.d.ts.map +1 -0
  164. package/lib/typescript/src/ui/theme/colors.d.ts +5 -0
  165. package/lib/typescript/src/ui/theme/colors.d.ts.map +1 -1
  166. package/lib/typescript/src/utils/DaemonClient.d.ts +7 -1
  167. package/lib/typescript/src/utils/DaemonClient.d.ts.map +1 -1
  168. package/lib/typescript/src/utils/SessionManager.d.ts +30 -0
  169. package/lib/typescript/src/utils/SessionManager.d.ts.map +1 -0
  170. package/lib/typescript/src/utils/StorageAdapter.d.ts +38 -0
  171. package/lib/typescript/src/utils/StorageAdapter.d.ts.map +1 -0
  172. package/lib/typescript/src/utils/createChannelFeature.d.ts +2 -0
  173. package/lib/typescript/src/utils/createChannelFeature.d.ts.map +1 -1
  174. package/lib/typescript/src/utils/createPersistedObservableStore.d.ts +4 -1
  175. package/lib/typescript/src/utils/createPersistedObservableStore.d.ts.map +1 -1
  176. package/lib/typescript/src/utils/debugPreferences.d.ts +1 -3
  177. package/lib/typescript/src/utils/debugPreferences.d.ts.map +1 -1
  178. package/lib/typescript/src/utils/deviceReport.d.ts +1 -0
  179. package/lib/typescript/src/utils/deviceReport.d.ts.map +1 -1
  180. package/lib/typescript/src/utils/logRuntime.d.ts +13 -0
  181. package/lib/typescript/src/utils/logRuntime.d.ts.map +1 -0
  182. package/node/daemon/src/console/console.html +18 -0
  183. package/node/mcp/src/logs.js +1 -1
  184. package/package.json +9 -1
  185. package/src/constants/logLevels.ts +13 -0
  186. package/src/core/initialize.ts +54 -25
  187. package/src/features/console/ConsoleLogTab.tsx +1 -14
  188. package/src/features/console/index.ts +18 -8
  189. package/src/features/nativeLogs/NativeLogTab.tsx +66 -0
  190. package/src/features/nativeLogs/index.ts +94 -0
  191. package/src/features/nativeLogs/nativeLogsBridge.ts +51 -0
  192. package/src/features/network/NetworkLogTab.tsx +60 -71
  193. package/src/features/network/index.ts +12 -3
  194. package/src/features/sessionHistory/SessionHistoryTab.tsx +693 -0
  195. package/src/features/sessionHistory/index.ts +102 -0
  196. package/src/features/track/index.ts +10 -3
  197. package/src/index.ts +16 -0
  198. package/src/types/feature.ts +3 -1
  199. package/src/types/index.ts +13 -0
  200. package/src/types/logs.ts +17 -0
  201. package/src/ui/DebugView.tsx +2 -0
  202. package/src/ui/panel/DebugPanel.tsx +60 -30
  203. package/src/ui/panel/FeatureIntroCard.tsx +147 -0
  204. package/src/ui/panel/FeatureRail.tsx +165 -0
  205. package/src/ui/panel/FloatPanelView.tsx +123 -15
  206. package/src/ui/panel/buildFeatureSummary.ts +288 -0
  207. package/src/ui/panel/filterFeatureSnapshot.ts +51 -0
  208. package/src/ui/theme/colors.ts +7 -0
  209. package/src/utils/DaemonClient.ts +33 -5
  210. package/src/utils/SessionManager.ts +174 -0
  211. package/src/utils/StorageAdapter.ts +135 -0
  212. package/src/utils/createChannelFeature.ts +28 -6
  213. package/src/utils/createPersistedObservableStore.ts +18 -10
  214. package/src/utils/debugPreferences.ts +38 -7
  215. package/src/utils/deviceReport.ts +5 -1
  216. package/src/utils/logRuntime.ts +39 -0
  217. package/lib/commonjs/ui/panel/FeatureTabBar.js +0 -182
  218. package/lib/commonjs/ui/panel/FeatureTabBar.js.map +0 -1
  219. package/lib/module/ui/panel/FeatureTabBar.js +0 -177
  220. package/lib/module/ui/panel/FeatureTabBar.js.map +0 -1
  221. package/lib/typescript/src/ui/panel/FeatureTabBar.d.ts +0 -13
  222. package/lib/typescript/src/ui/panel/FeatureTabBar.d.ts.map +0 -1
  223. package/src/ui/panel/FeatureTabBar.tsx +0 -204
@@ -9,19 +9,8 @@ import { JsonView } from '../../ui/shared/JsonView';
9
9
  import { CopyButton } from '../../ui/shared/CopyButton';
10
10
  import { LogListScreen } from '../../ui/shared/LogListScreen';
11
11
  import { fmt } from '../../utils/copyToComputer';
12
+ import { LEVEL_COLORS, LEVEL_ICONS } from '../../constants/logLevels';
12
13
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
- const LEVEL_COLORS = {
14
- log: '#8E8E93',
15
- info: '#007AFF',
16
- warn: '#FF9500',
17
- error: '#FF3B30'
18
- };
19
- const LEVEL_ICONS = {
20
- log: '●',
21
- info: 'ℹ',
22
- warn: '⚠',
23
- error: '✕'
24
- };
25
14
  export const ConsoleLogTab = /*#__PURE__*/React.memo(({
26
15
  snapshot
27
16
  }) => /*#__PURE__*/_jsx(LogListScreen, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Text","StyleSheet","ScrollView","Colors","safeStringify","CollapsibleSection","JsonView","CopyButton","LogListScreen","fmt","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","LEVEL_COLORS","log","info","warn","error","LEVEL_ICONS","ConsoleLogTab","memo","snapshot","data","emptyText","renderRow","item","style","s","cardRow","children","levelDot","backgroundColor","level","levelIcon","cardContent","logMessage","numberOfLines","map","d","join","time","Date","timestamp","toLocaleTimeString","renderDetailHeader","levelBadge","levelBadgeText","toUpperCase","detailTime","toLocaleString","renderDetailBody","detailBody","contentContainerStyle","detailBodyContent","index","formatted","String","title","initiallyExpanded","sectionWithCopy","text","label","maxHeight","plainText","selectable","create","flexDirection","padding","alignItems","width","height","borderRadius","justifyContent","marginRight","marginTop","color","fontSize","fontWeight","flex","lineHeight","textSecondary","paddingHorizontal","paddingVertical","textAlign","gap","fontFamily"],"sourceRoot":"../../../../src","sources":["features/console/ConsoleLogTab.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Text","StyleSheet","ScrollView","Colors","safeStringify","CollapsibleSection","JsonView","CopyButton","LogListScreen","fmt","LEVEL_COLORS","LEVEL_ICONS","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ConsoleLogTab","memo","snapshot","data","emptyText","renderRow","item","style","s","cardRow","children","levelDot","backgroundColor","level","levelIcon","cardContent","logMessage","numberOfLines","map","d","join","time","Date","timestamp","toLocaleTimeString","renderDetailHeader","levelBadge","levelBadgeText","toUpperCase","detailTime","toLocaleString","renderDetailBody","detailBody","contentContainerStyle","detailBodyContent","index","formatted","String","title","initiallyExpanded","sectionWithCopy","text","label","maxHeight","plainText","selectable","create","flexDirection","padding","alignItems","width","height","borderRadius","justifyContent","marginRight","marginTop","color","fontSize","fontWeight","flex","lineHeight","textSecondary","paddingHorizontal","paddingVertical","textAlign","gap","fontFamily"],"sourceRoot":"../../../../src","sources":["features/console/ConsoleLogTab.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { ConsoleLogTab } from './ConsoleLogTab';
4
4
  import { createPersistedObservableStore } from '../../utils/createPersistedObservableStore';
5
- import { KEYS } from '../../utils/debugPreferences';
5
+ import { getDefaultLogRuntime } from '../../utils/logRuntime';
6
6
  const LEVELS = ['log', 'info', 'warn', 'error'];
7
7
 
8
8
  // ─── Console capture manager (encapsulated mutable state) ──
@@ -12,7 +12,9 @@ const consoleCapture = (() => {
12
12
  let refCount = 0;
13
13
  function stop() {
14
14
  refCount = Math.max(0, refCount - 1);
15
- if (refCount > 0) return;
15
+ if (refCount > 0) {
16
+ return;
17
+ }
16
18
  LEVELS.forEach(level => {
17
19
  const original = originalMethods[level];
18
20
  if (original) {
@@ -68,10 +70,11 @@ const consoleCapture = (() => {
68
70
  // ─── Feature factory ──────────────────────────────────
69
71
 
70
72
  const DEFAULT_MAX_LOGS = 200;
71
- export const createConsoleLogFeature = config => {
73
+ export const createConsoleLogFeature = (config, runtime = getDefaultLogRuntime()) => {
72
74
  const maxLogs = config?.maxLogs ?? DEFAULT_MAX_LOGS;
73
75
  const logStore = createPersistedObservableStore({
74
- storageKey: KEYS.consoleLogs,
76
+ storage: runtime.logStorage,
77
+ storageKey: runtime.sessionManager.getLogStorageKey('console_logs'),
75
78
  maxPersist: 50
76
79
  });
77
80
  let initialized = false;
@@ -81,7 +84,9 @@ export const createConsoleLogFeature = config => {
81
84
  label: 'Console',
82
85
  renderContent: ConsoleLogTab,
83
86
  setup: () => {
84
- if (initialized) return;
87
+ if (initialized) {
88
+ return;
89
+ }
85
90
  stopCapture = consoleCapture.start(entry => {
86
91
  logStore.push({
87
92
  ...entry,
@@ -92,13 +97,15 @@ export const createConsoleLogFeature = config => {
92
97
  },
93
98
  getSnapshot: () => logStore.getData(),
94
99
  clear: () => {
95
- logStore.clear();
100
+ logStore.clearPersisted();
96
101
  },
97
102
  cleanup: () => {
98
- if (!initialized) return;
103
+ if (!initialized) {
104
+ return;
105
+ }
99
106
  stopCapture?.();
100
107
  stopCapture = null;
101
- logStore.clear();
108
+ logStore.dispose();
102
109
  initialized = false;
103
110
  },
104
111
  subscribe: listener => logStore.subscribe(listener)
@@ -1 +1 @@
1
- {"version":3,"names":["ConsoleLogTab","createPersistedObservableStore","KEYS","LEVELS","consoleCapture","originalMethods","refCount","stop","Math","max","forEach","level","original","console","isIntercepted","some","undefined","start","emit","args","apply","startsWith","id","timestamp","Date","now","data","reset","DEFAULT_MAX_LOGS","createConsoleLogFeature","config","maxLogs","logStore","storageKey","consoleLogs","maxPersist","initialized","stopCapture","name","label","renderContent","setup","entry","push","nextId","getSnapshot","getData","clear","cleanup","subscribe","listener","_resetConsoleForTesting"],"sourceRoot":"../../../../src","sources":["features/console/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ConsoleLogTab","createPersistedObservableStore","getDefaultLogRuntime","LEVELS","consoleCapture","originalMethods","refCount","stop","Math","max","forEach","level","original","console","isIntercepted","some","undefined","start","emit","args","apply","startsWith","id","timestamp","Date","now","data","reset","DEFAULT_MAX_LOGS","createConsoleLogFeature","config","runtime","maxLogs","logStore","storage","logStorage","storageKey","sessionManager","getLogStorageKey","maxPersist","initialized","stopCapture","name","label","renderContent","setup","entry","push","nextId","getSnapshot","getData","clear","clearPersisted","cleanup","dispose","subscribe","listener","_resetConsoleForTesting"],"sourceRoot":"../../../../src","sources":["features/console/index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { ScrollView, StyleSheet, Text, View } from 'react-native';
5
+ import { CopyButton } from '../../ui/shared/CopyButton';
6
+ import { LogListScreen } from '../../ui/shared/LogListScreen';
7
+ import { Colors } from '../../ui/theme/colors';
8
+ import { fmt } from '../../utils/copyToComputer';
9
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
10
+ const LEVEL_COLORS = {
11
+ trace: '#8E8E93',
12
+ debug: '#8E8E93',
13
+ info: '#007AFF',
14
+ warn: '#FF9500',
15
+ error: '#FF3B30',
16
+ fatal: '#AF52DE',
17
+ unknown: '#8E8E93'
18
+ };
19
+ export const NativeLogTab = /*#__PURE__*/React.memo(({
20
+ snapshot
21
+ }) => /*#__PURE__*/_jsx(LogListScreen, {
22
+ data: snapshot,
23
+ emptyText: "No native logs",
24
+ renderRow: item => /*#__PURE__*/_jsxs(View, {
25
+ style: s.row,
26
+ children: [/*#__PURE__*/_jsx(View, {
27
+ style: [s.level, {
28
+ backgroundColor: LEVEL_COLORS[item.level] ?? LEVEL_COLORS.unknown
29
+ }],
30
+ children: /*#__PURE__*/_jsx(Text, {
31
+ style: s.levelText,
32
+ children: item.level.slice(0, 1).toUpperCase()
33
+ })
34
+ }), /*#__PURE__*/_jsxs(View, {
35
+ style: s.content,
36
+ children: [/*#__PURE__*/_jsx(Text, {
37
+ style: s.message,
38
+ numberOfLines: 2,
39
+ children: item.message
40
+ }), /*#__PURE__*/_jsxs(Text, {
41
+ style: s.meta,
42
+ children: [[item.platform, item.source, item.tag].filter(Boolean).join(' / '), " \xB7 ", new Date(item.timestamp).toLocaleTimeString()]
43
+ })]
44
+ })]
45
+ }),
46
+ renderDetailHeader: item => /*#__PURE__*/_jsxs(_Fragment, {
47
+ children: [/*#__PURE__*/_jsx(View, {
48
+ style: [s.badge, {
49
+ backgroundColor: LEVEL_COLORS[item.level] ?? LEVEL_COLORS.unknown
50
+ }],
51
+ children: /*#__PURE__*/_jsx(Text, {
52
+ style: s.badgeText,
53
+ children: item.level.toUpperCase()
54
+ })
55
+ }), /*#__PURE__*/_jsx(Text, {
56
+ style: s.detailTime,
57
+ children: new Date(item.timestamp).toLocaleString()
58
+ })]
59
+ }),
60
+ renderDetailBody: item => /*#__PURE__*/_jsxs(ScrollView, {
61
+ style: s.detailBody,
62
+ contentContainerStyle: s.detailContent,
63
+ children: [/*#__PURE__*/_jsx(View, {
64
+ style: s.copyRow,
65
+ children: /*#__PURE__*/_jsx(CopyButton, {
66
+ text: fmt(item),
67
+ label: "Native Log"
68
+ })
69
+ }), /*#__PURE__*/_jsx(Text, {
70
+ style: s.messageBlock,
71
+ selectable: true,
72
+ children: item.message
73
+ }), /*#__PURE__*/_jsx(Text, {
74
+ style: s.rawBlock,
75
+ selectable: true,
76
+ children: fmt(item)
77
+ })]
78
+ })
79
+ }));
80
+ const s = StyleSheet.create({
81
+ row: {
82
+ flexDirection: 'row',
83
+ padding: 14,
84
+ alignItems: 'flex-start'
85
+ },
86
+ level: {
87
+ width: 24,
88
+ height: 24,
89
+ borderRadius: 12,
90
+ alignItems: 'center',
91
+ justifyContent: 'center',
92
+ marginRight: 12
93
+ },
94
+ levelText: {
95
+ color: '#FFF',
96
+ fontSize: 11,
97
+ fontWeight: '700'
98
+ },
99
+ content: {
100
+ flex: 1
101
+ },
102
+ message: {
103
+ fontSize: 14,
104
+ color: Colors.text,
105
+ lineHeight: 20
106
+ },
107
+ meta: {
108
+ fontSize: 12,
109
+ color: Colors.textSecondary,
110
+ marginTop: 4
111
+ },
112
+ badge: {
113
+ paddingHorizontal: 10,
114
+ paddingVertical: 4,
115
+ borderRadius: 6
116
+ },
117
+ badgeText: {
118
+ color: '#FFF',
119
+ fontSize: 12,
120
+ fontWeight: '700'
121
+ },
122
+ detailTime: {
123
+ flex: 1,
124
+ fontSize: 13,
125
+ color: Colors.textSecondary,
126
+ textAlign: 'right'
127
+ },
128
+ detailBody: {
129
+ flex: 1
130
+ },
131
+ detailContent: {
132
+ padding: 12,
133
+ gap: 12
134
+ },
135
+ copyRow: {
136
+ alignItems: 'flex-end'
137
+ },
138
+ messageBlock: {
139
+ fontFamily: 'Courier',
140
+ fontSize: 13,
141
+ color: Colors.text,
142
+ lineHeight: 20
143
+ },
144
+ rawBlock: {
145
+ fontFamily: 'Courier',
146
+ fontSize: 12,
147
+ color: Colors.textSecondary,
148
+ lineHeight: 18
149
+ }
150
+ });
151
+ //# sourceMappingURL=NativeLogTab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","ScrollView","StyleSheet","Text","View","CopyButton","LogListScreen","Colors","fmt","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","LEVEL_COLORS","trace","debug","info","warn","error","fatal","unknown","NativeLogTab","memo","snapshot","data","emptyText","renderRow","item","style","s","row","children","level","backgroundColor","levelText","slice","toUpperCase","content","message","numberOfLines","meta","platform","source","tag","filter","Boolean","join","Date","timestamp","toLocaleTimeString","renderDetailHeader","badge","badgeText","detailTime","toLocaleString","renderDetailBody","detailBody","contentContainerStyle","detailContent","copyRow","text","label","messageBlock","selectable","rawBlock","create","flexDirection","padding","alignItems","width","height","borderRadius","justifyContent","marginRight","color","fontSize","fontWeight","flex","lineHeight","textSecondary","marginTop","paddingHorizontal","paddingVertical","textAlign","gap","fontFamily"],"sourceRoot":"../../../../src","sources":["features/nativeLogs/NativeLogTab.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ import { NativeLogTab } from './NativeLogTab';
4
+ import { createPersistedObservableStore } from '../../utils/createPersistedObservableStore';
5
+ import { getDefaultLogRuntime } from '../../utils/logRuntime';
6
+ import { drainNativeLogs, startNativeLogCapture, stopNativeLogCapture } from './nativeLogsBridge';
7
+ const DEFAULT_MAX_LOGS = 200;
8
+ const DEFAULT_MAX_PERSIST = 50;
9
+ const DEFAULT_POLL_INTERVAL_MS = 500;
10
+ const DEFAULT_DRAIN_LIMIT = 100;
11
+ const LEVEL_RANK = {
12
+ trace: 0,
13
+ debug: 1,
14
+ info: 2,
15
+ warn: 3,
16
+ error: 4,
17
+ fatal: 5,
18
+ unknown: 0
19
+ };
20
+ function matchesPattern(value, patterns) {
21
+ if (!value || !patterns?.length) return false;
22
+ return patterns.some(p => p instanceof RegExp ? p.test(value) : value.includes(p));
23
+ }
24
+ function shouldKeepEntry(entry, config) {
25
+ if (config?.minLevel && LEVEL_RANK[entry.level] < LEVEL_RANK[config.minLevel]) return false;
26
+ if (config?.includeTags?.length && !matchesPattern(entry.tag, config.includeTags)) return false;
27
+ if (matchesPattern(entry.tag, config?.excludeTags)) return false;
28
+ return true;
29
+ }
30
+ export const createNativeLogsFeature = (config, runtime = getDefaultLogRuntime()) => {
31
+ const maxLogs = config?.maxLogs ?? DEFAULT_MAX_LOGS;
32
+ const pollIntervalMs = Math.max(100, Math.floor(config?.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS));
33
+ const logStore = createPersistedObservableStore({
34
+ storage: runtime.logStorage,
35
+ storageKey: runtime.sessionManager.getLogStorageKey('native_logs'),
36
+ maxPersist: DEFAULT_MAX_PERSIST
37
+ });
38
+ let initialized = false;
39
+ let timer = null;
40
+ let draining = false;
41
+ async function drainOnce() {
42
+ if (draining) return;
43
+ draining = true;
44
+ try {
45
+ const entries = await drainNativeLogs(DEFAULT_DRAIN_LIMIT);
46
+ entries.filter(e => shouldKeepEntry(e, config)).forEach(entry => {
47
+ logStore.push({
48
+ ...entry,
49
+ id: logStore.nextId()
50
+ }, maxLogs);
51
+ });
52
+ } finally {
53
+ draining = false;
54
+ }
55
+ }
56
+ return {
57
+ name: 'native',
58
+ label: 'Native',
59
+ renderContent: NativeLogTab,
60
+ setup: () => {
61
+ if (initialized) return;
62
+ initialized = true;
63
+ startNativeLogCapture({
64
+ minLevel: config?.minLevel,
65
+ includeTags: config?.includeTags?.filter(p => typeof p === 'string'),
66
+ excludeTags: config?.excludeTags?.filter(p => typeof p === 'string')
67
+ }).catch(() => {});
68
+ timer = setInterval(() => {
69
+ drainOnce().catch(() => {});
70
+ }, pollIntervalMs);
71
+ },
72
+ getSnapshot: () => logStore.getData(),
73
+ clear: () => {
74
+ logStore.clearPersisted();
75
+ },
76
+ cleanup: () => {
77
+ if (!initialized) return;
78
+ if (timer) clearInterval(timer);
79
+ timer = null;
80
+ stopNativeLogCapture().catch(() => {});
81
+ logStore.dispose();
82
+ initialized = false;
83
+ draining = false;
84
+ },
85
+ subscribe: listener => logStore.subscribe(listener)
86
+ };
87
+ };
88
+ export function _resetNativeLogsForTesting() {
89
+ stopNativeLogCapture().catch(() => {});
90
+ }
91
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeLogTab","createPersistedObservableStore","getDefaultLogRuntime","drainNativeLogs","startNativeLogCapture","stopNativeLogCapture","DEFAULT_MAX_LOGS","DEFAULT_MAX_PERSIST","DEFAULT_POLL_INTERVAL_MS","DEFAULT_DRAIN_LIMIT","LEVEL_RANK","trace","debug","info","warn","error","fatal","unknown","matchesPattern","value","patterns","length","some","p","RegExp","test","includes","shouldKeepEntry","entry","config","minLevel","level","includeTags","tag","excludeTags","createNativeLogsFeature","runtime","maxLogs","pollIntervalMs","Math","max","floor","logStore","storage","logStorage","storageKey","sessionManager","getLogStorageKey","maxPersist","initialized","timer","draining","drainOnce","entries","filter","e","forEach","push","id","nextId","name","label","renderContent","setup","catch","setInterval","getSnapshot","getData","clear","clearPersisted","cleanup","clearInterval","dispose","subscribe","listener","_resetNativeLogsForTesting"],"sourceRoot":"../../../../src","sources":["features/nativeLogs/index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ import { NativeModules } from 'react-native';
4
+ function getNativeModule() {
5
+ const mod = NativeModules.DebugToolkitNativeLogs;
6
+ if (!mod || typeof mod.drainLogs !== 'function') return null;
7
+ return mod;
8
+ }
9
+ export function isNativeLogsAvailable() {
10
+ return getNativeModule() !== null;
11
+ }
12
+ export async function startNativeLogCapture(options) {
13
+ const mod = getNativeModule();
14
+ if (!mod?.startCapture) return false;
15
+ try {
16
+ const r = await mod.startCapture(options ?? {});
17
+ return r?.ok === true;
18
+ } catch {
19
+ return false;
20
+ }
21
+ }
22
+ export async function stopNativeLogCapture() {
23
+ const mod = getNativeModule();
24
+ if (!mod?.stopCapture) return false;
25
+ try {
26
+ const r = await mod.stopCapture();
27
+ return r?.ok === true;
28
+ } catch {
29
+ return false;
30
+ }
31
+ }
32
+ export async function drainNativeLogs(max = 100) {
33
+ const mod = getNativeModule();
34
+ if (!mod?.drainLogs) return [];
35
+ try {
36
+ const entries = await mod.drainLogs(Math.max(1, Math.floor(max)));
37
+ return Array.isArray(entries) ? entries : [];
38
+ } catch {
39
+ return [];
40
+ }
41
+ }
42
+ export async function getNativeLogsStatus() {
43
+ const mod = getNativeModule();
44
+ if (!mod?.getStatus) return {
45
+ available: false,
46
+ capturing: false
47
+ };
48
+ try {
49
+ const s = await mod.getStatus();
50
+ return {
51
+ available: s?.available === true,
52
+ capturing: s?.capturing === true,
53
+ error: typeof s?.error === 'string' ? s.error : undefined
54
+ };
55
+ } catch (error) {
56
+ return {
57
+ available: true,
58
+ capturing: false,
59
+ error: error instanceof Error ? error.message : String(error)
60
+ };
61
+ }
62
+ }
63
+ //# sourceMappingURL=nativeLogsBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","getNativeModule","mod","DebugToolkitNativeLogs","drainLogs","isNativeLogsAvailable","startNativeLogCapture","options","startCapture","r","ok","stopNativeLogCapture","stopCapture","drainNativeLogs","max","entries","Math","floor","Array","isArray","getNativeLogsStatus","getStatus","available","capturing","s","error","undefined","Error","message","String"],"sourceRoot":"../../../../src","sources":["features/nativeLogs/nativeLogsBridge.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,cAAc;AAU5C,SAASC,eAAeA,CAAA,EAA4B;EAClD,MAAMC,GAAG,GAAGF,aAAa,CAACG,sBAAsD;EAChF,IAAI,CAACD,GAAG,IAAI,OAAOA,GAAG,CAACE,SAAS,KAAK,UAAU,EAAE,OAAO,IAAI;EAC5D,OAAOF,GAAG;AACZ;AAEA,OAAO,SAASG,qBAAqBA,CAAA,EAAY;EAC/C,OAAOJ,eAAe,CAAC,CAAC,KAAK,IAAI;AACnC;AAEA,OAAO,eAAeK,qBAAqBA,CAACC,OAAiC,EAAoB;EAC/F,MAAML,GAAG,GAAGD,eAAe,CAAC,CAAC;EAC7B,IAAI,CAACC,GAAG,EAAEM,YAAY,EAAE,OAAO,KAAK;EACpC,IAAI;IAAE,MAAMC,CAAC,GAAG,MAAMP,GAAG,CAACM,YAAY,CAACD,OAAO,IAAI,CAAC,CAAC,CAAC;IAAE,OAAOE,CAAC,EAAEC,EAAE,KAAK,IAAI;EAAE,CAAC,CAC/E,MAAM;IAAE,OAAO,KAAK;EAAE;AACxB;AAEA,OAAO,eAAeC,oBAAoBA,CAAA,EAAqB;EAC7D,MAAMT,GAAG,GAAGD,eAAe,CAAC,CAAC;EAC7B,IAAI,CAACC,GAAG,EAAEU,WAAW,EAAE,OAAO,KAAK;EACnC,IAAI;IAAE,MAAMH,CAAC,GAAG,MAAMP,GAAG,CAACU,WAAW,CAAC,CAAC;IAAE,OAAOH,CAAC,EAAEC,EAAE,KAAK,IAAI;EAAE,CAAC,CACjE,MAAM;IAAE,OAAO,KAAK;EAAE;AACxB;AAEA,OAAO,eAAeG,eAAeA,CAACC,GAAG,GAAG,GAAG,EAA8C;EAC3F,MAAMZ,GAAG,GAAGD,eAAe,CAAC,CAAC;EAC7B,IAAI,CAACC,GAAG,EAAEE,SAAS,EAAE,OAAO,EAAE;EAC9B,IAAI;IAAE,MAAMW,OAAO,GAAG,MAAMb,GAAG,CAACE,SAAS,CAACY,IAAI,CAACF,GAAG,CAAC,CAAC,EAAEE,IAAI,CAACC,KAAK,CAACH,GAAG,CAAC,CAAC,CAAC;IAAE,OAAOI,KAAK,CAACC,OAAO,CAACJ,OAAO,CAAC,GAAGA,OAAO,GAAG,EAAE;EAAE,CAAC,CACxH,MAAM;IAAE,OAAO,EAAE;EAAE;AACrB;AAEA,OAAO,eAAeK,mBAAmBA,CAAA,EAAwE;EAC/G,MAAMlB,GAAG,GAAGD,eAAe,CAAC,CAAC;EAC7B,IAAI,CAACC,GAAG,EAAEmB,SAAS,EAAE,OAAO;IAAEC,SAAS,EAAE,KAAK;IAAEC,SAAS,EAAE;EAAM,CAAC;EAClE,IAAI;IACF,MAAMC,CAAC,GAAG,MAAMtB,GAAG,CAACmB,SAAS,CAAC,CAAC;IAC/B,OAAO;MAAEC,SAAS,EAAEE,CAAC,EAAEF,SAAS,KAAK,IAAI;MAAEC,SAAS,EAAEC,CAAC,EAAED,SAAS,KAAK,IAAI;MAAEE,KAAK,EAAE,OAAOD,CAAC,EAAEC,KAAK,KAAK,QAAQ,GAAGD,CAAC,CAACC,KAAK,GAAGC;IAAU,CAAC;EAC1I,CAAC,CAAC,OAAOD,KAAK,EAAE;IACd,OAAO;MAAEH,SAAS,EAAE,IAAI;MAAEC,SAAS,EAAE,KAAK;MAAEE,KAAK,EAAEA,KAAK,YAAYE,KAAK,GAAGF,KAAK,CAACG,OAAO,GAAGC,MAAM,CAACJ,KAAK;IAAE,CAAC;EAC7G;AACF","ignoreList":[]}