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.
Files changed (283) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +150 -212
  3. package/lib/commonjs/components/ClipboardTab.js +92 -0
  4. package/lib/commonjs/components/ClipboardTab.js.map +1 -0
  5. package/lib/commonjs/components/ConsoleLogTab.js +295 -0
  6. package/lib/commonjs/components/ConsoleLogTab.js.map +1 -0
  7. package/lib/commonjs/components/EnvironmentTab.js +288 -0
  8. package/lib/commonjs/components/EnvironmentTab.js.map +1 -0
  9. package/lib/commonjs/components/FloatPanelView.js +797 -0
  10. package/lib/commonjs/components/FloatPanelView.js.map +1 -0
  11. package/lib/commonjs/components/NavigationLogTab.js +131 -0
  12. package/lib/commonjs/components/NavigationLogTab.js.map +1 -0
  13. package/lib/commonjs/components/NetworkLogTab.js +575 -0
  14. package/lib/commonjs/components/NetworkLogTab.js.map +1 -0
  15. package/lib/commonjs/components/ThirdPartyLibsTab.js +97 -0
  16. package/lib/commonjs/components/ThirdPartyLibsTab.js.map +1 -0
  17. package/lib/commonjs/components/TrackLogTab.js +372 -0
  18. package/lib/commonjs/components/TrackLogTab.js.map +1 -0
  19. package/lib/commonjs/components/ZustandLogTab.js +451 -0
  20. package/lib/commonjs/components/ZustandLogTab.js.map +1 -0
  21. package/lib/commonjs/components/shared/CollapsibleSection.js +84 -0
  22. package/lib/commonjs/components/shared/CollapsibleSection.js.map +1 -0
  23. package/lib/commonjs/components/shared/CopyButton.js +64 -0
  24. package/lib/commonjs/components/shared/CopyButton.js.map +1 -0
  25. package/lib/commonjs/components/shared/JsonView.js +157 -0
  26. package/lib/commonjs/components/shared/JsonView.js.map +1 -0
  27. package/lib/commonjs/core/DebugToolkit.js +142 -0
  28. package/lib/commonjs/core/DebugToolkit.js.map +1 -0
  29. package/lib/commonjs/core/DebugToolkitProvider.js +64 -0
  30. package/lib/commonjs/core/DebugToolkitProvider.js.map +1 -0
  31. package/lib/commonjs/features/ClipboardFeature.js +17 -0
  32. package/lib/commonjs/features/ClipboardFeature.js.map +1 -0
  33. package/lib/commonjs/features/ConsoleLogFeature.js +98 -0
  34. package/lib/commonjs/features/ConsoleLogFeature.js.map +1 -0
  35. package/lib/commonjs/features/EnvironmentFeature.js +168 -0
  36. package/lib/commonjs/features/EnvironmentFeature.js.map +1 -0
  37. package/lib/commonjs/features/NavigationLogFeature.js +60 -0
  38. package/lib/commonjs/features/NavigationLogFeature.js.map +1 -0
  39. package/lib/commonjs/features/NetworkFeature.js +328 -0
  40. package/lib/commonjs/features/NetworkFeature.js.map +1 -0
  41. package/lib/commonjs/features/ThirdPartyLibsFeature.js +51 -0
  42. package/lib/commonjs/features/ThirdPartyLibsFeature.js.map +1 -0
  43. package/lib/commonjs/features/TrackFeature.js +55 -0
  44. package/lib/commonjs/features/TrackFeature.js.map +1 -0
  45. package/lib/commonjs/features/ZustandLogFeature.js +76 -0
  46. package/lib/commonjs/features/ZustandLogFeature.js.map +1 -0
  47. package/lib/commonjs/hooks/useNavigationLogger.js +78 -0
  48. package/lib/commonjs/hooks/useNavigationLogger.js.map +1 -0
  49. package/lib/commonjs/hooks/useSlideDetailAnimation.js +53 -0
  50. package/lib/commonjs/hooks/useSlideDetailAnimation.js.map +1 -0
  51. package/lib/commonjs/index.js +165 -0
  52. package/lib/commonjs/index.js.map +1 -0
  53. package/lib/commonjs/initialize.js +161 -0
  54. package/lib/commonjs/initialize.js.map +1 -0
  55. package/lib/commonjs/native/NativeDebugLibs.js +58 -0
  56. package/lib/commonjs/native/NativeDebugLibs.js.map +1 -0
  57. package/lib/commonjs/package.json +1 -0
  58. package/lib/commonjs/types/index.js +6 -0
  59. package/lib/commonjs/types/index.js.map +1 -0
  60. package/lib/commonjs/utils/constants.js +135 -0
  61. package/lib/commonjs/utils/constants.js.map +1 -0
  62. package/lib/commonjs/utils/copyToComputer.js +97 -0
  63. package/lib/commonjs/utils/copyToComputer.js.map +1 -0
  64. package/lib/commonjs/utils/createEventChannel.js +21 -0
  65. package/lib/commonjs/utils/createEventChannel.js.map +1 -0
  66. package/lib/commonjs/utils/createObservableStore.js +38 -0
  67. package/lib/commonjs/utils/createObservableStore.js.map +1 -0
  68. package/lib/commonjs/utils/safeStringify.js +27 -0
  69. package/lib/commonjs/utils/safeStringify.js.map +1 -0
  70. package/lib/module/components/ClipboardTab.js +86 -0
  71. package/lib/module/components/ClipboardTab.js.map +1 -0
  72. package/lib/module/components/ConsoleLogTab.js +290 -0
  73. package/lib/module/components/ConsoleLogTab.js.map +1 -0
  74. package/lib/module/components/EnvironmentTab.js +282 -0
  75. package/lib/module/components/EnvironmentTab.js.map +1 -0
  76. package/lib/module/components/FloatPanelView.js +791 -0
  77. package/lib/module/components/FloatPanelView.js.map +1 -0
  78. package/lib/module/components/NavigationLogTab.js +126 -0
  79. package/lib/module/components/NavigationLogTab.js.map +1 -0
  80. package/lib/module/components/NetworkLogTab.js +570 -0
  81. package/lib/module/components/NetworkLogTab.js.map +1 -0
  82. package/lib/module/components/ThirdPartyLibsTab.js +91 -0
  83. package/lib/module/components/ThirdPartyLibsTab.js.map +1 -0
  84. package/lib/module/components/TrackLogTab.js +367 -0
  85. package/lib/module/components/TrackLogTab.js.map +1 -0
  86. package/lib/module/components/ZustandLogTab.js +446 -0
  87. package/lib/module/components/ZustandLogTab.js.map +1 -0
  88. package/lib/module/components/shared/CollapsibleSection.js +78 -0
  89. package/lib/module/components/shared/CollapsibleSection.js.map +1 -0
  90. package/lib/module/components/shared/CopyButton.js +58 -0
  91. package/lib/module/components/shared/CopyButton.js.map +1 -0
  92. package/lib/module/components/shared/JsonView.js +152 -0
  93. package/lib/module/components/shared/JsonView.js.map +1 -0
  94. package/lib/module/core/DebugToolkit.js +137 -0
  95. package/lib/module/core/DebugToolkit.js.map +1 -0
  96. package/lib/module/core/DebugToolkitProvider.js +58 -0
  97. package/lib/module/core/DebugToolkitProvider.js.map +1 -0
  98. package/lib/module/features/ClipboardFeature.js +12 -0
  99. package/lib/module/features/ClipboardFeature.js.map +1 -0
  100. package/lib/module/features/ConsoleLogFeature.js +93 -0
  101. package/lib/module/features/ConsoleLogFeature.js.map +1 -0
  102. package/lib/module/features/EnvironmentFeature.js +164 -0
  103. package/lib/module/features/EnvironmentFeature.js.map +1 -0
  104. package/lib/module/features/NavigationLogFeature.js +54 -0
  105. package/lib/module/features/NavigationLogFeature.js.map +1 -0
  106. package/lib/module/features/NetworkFeature.js +322 -0
  107. package/lib/module/features/NetworkFeature.js.map +1 -0
  108. package/lib/module/features/ThirdPartyLibsFeature.js +46 -0
  109. package/lib/module/features/ThirdPartyLibsFeature.js.map +1 -0
  110. package/lib/module/features/TrackFeature.js +49 -0
  111. package/lib/module/features/TrackFeature.js.map +1 -0
  112. package/lib/module/features/ZustandLogFeature.js +69 -0
  113. package/lib/module/features/ZustandLogFeature.js.map +1 -0
  114. package/lib/module/hooks/useNavigationLogger.js +74 -0
  115. package/lib/module/hooks/useNavigationLogger.js.map +1 -0
  116. package/lib/module/hooks/useSlideDetailAnimation.js +50 -0
  117. package/lib/module/hooks/useSlideDetailAnimation.js.map +1 -0
  118. package/lib/module/index.js +29 -0
  119. package/lib/module/index.js.map +1 -0
  120. package/lib/module/initialize.js +156 -0
  121. package/lib/module/initialize.js.map +1 -0
  122. package/lib/module/native/NativeDebugLibs.js +54 -0
  123. package/lib/module/native/NativeDebugLibs.js.map +1 -0
  124. package/lib/module/package.json +1 -0
  125. package/lib/module/types/index.js +4 -0
  126. package/lib/module/types/index.js.map +1 -0
  127. package/lib/module/utils/constants.js +130 -0
  128. package/lib/module/utils/constants.js.map +1 -0
  129. package/lib/module/utils/copyToComputer.js +91 -0
  130. package/lib/module/utils/copyToComputer.js.map +1 -0
  131. package/lib/module/utils/createEventChannel.js +17 -0
  132. package/lib/module/utils/createEventChannel.js.map +1 -0
  133. package/lib/module/utils/createObservableStore.js +34 -0
  134. package/lib/module/utils/createObservableStore.js.map +1 -0
  135. package/lib/module/utils/safeStringify.js +23 -0
  136. package/lib/module/utils/safeStringify.js.map +1 -0
  137. package/lib/typescript/src/components/ClipboardTab.d.ts +4 -0
  138. package/lib/typescript/src/components/ClipboardTab.d.ts.map +1 -0
  139. package/lib/typescript/src/components/ConsoleLogTab.d.ts +4 -0
  140. package/lib/typescript/src/components/ConsoleLogTab.d.ts.map +1 -0
  141. package/lib/typescript/src/components/EnvironmentTab.d.ts +4 -0
  142. package/lib/typescript/src/components/EnvironmentTab.d.ts.map +1 -0
  143. package/lib/typescript/src/components/FloatPanelView.d.ts +64 -0
  144. package/lib/typescript/src/components/FloatPanelView.d.ts.map +1 -0
  145. package/lib/typescript/src/components/NavigationLogTab.d.ts +4 -0
  146. package/lib/typescript/src/components/NavigationLogTab.d.ts.map +1 -0
  147. package/lib/typescript/src/components/NetworkLogTab.d.ts +4 -0
  148. package/lib/typescript/src/components/NetworkLogTab.d.ts.map +1 -0
  149. package/lib/typescript/src/components/ThirdPartyLibsTab.d.ts +4 -0
  150. package/lib/typescript/src/components/ThirdPartyLibsTab.d.ts.map +1 -0
  151. package/lib/typescript/src/components/TrackLogTab.d.ts +4 -0
  152. package/lib/typescript/src/components/TrackLogTab.d.ts.map +1 -0
  153. package/lib/typescript/src/components/ZustandLogTab.d.ts +4 -0
  154. package/lib/typescript/src/components/ZustandLogTab.d.ts.map +1 -0
  155. package/lib/typescript/src/components/shared/CollapsibleSection.d.ts +9 -0
  156. package/lib/typescript/src/components/shared/CollapsibleSection.d.ts.map +1 -0
  157. package/lib/typescript/src/components/shared/CopyButton.d.ts +12 -0
  158. package/lib/typescript/src/components/shared/CopyButton.d.ts.map +1 -0
  159. package/lib/typescript/src/components/shared/JsonView.d.ts +6 -0
  160. package/lib/typescript/src/components/shared/JsonView.d.ts.map +1 -0
  161. package/lib/typescript/src/core/DebugToolkit.d.ts +27 -0
  162. package/lib/typescript/src/core/DebugToolkit.d.ts.map +1 -0
  163. package/lib/typescript/src/core/DebugToolkitProvider.d.ts +18 -0
  164. package/lib/typescript/src/core/DebugToolkitProvider.d.ts.map +1 -0
  165. package/lib/typescript/src/features/ClipboardFeature.d.ts +3 -0
  166. package/lib/typescript/src/features/ClipboardFeature.d.ts.map +1 -0
  167. package/lib/typescript/src/features/ConsoleLogFeature.d.ts +7 -0
  168. package/lib/typescript/src/features/ConsoleLogFeature.d.ts.map +1 -0
  169. package/lib/typescript/src/features/EnvironmentFeature.d.ts +8 -0
  170. package/lib/typescript/src/features/EnvironmentFeature.d.ts.map +1 -0
  171. package/lib/typescript/src/features/NavigationLogFeature.d.ts +8 -0
  172. package/lib/typescript/src/features/NavigationLogFeature.d.ts.map +1 -0
  173. package/lib/typescript/src/features/NetworkFeature.d.ts +28 -0
  174. package/lib/typescript/src/features/NetworkFeature.d.ts.map +1 -0
  175. package/lib/typescript/src/features/ThirdPartyLibsFeature.d.ts +3 -0
  176. package/lib/typescript/src/features/ThirdPartyLibsFeature.d.ts.map +1 -0
  177. package/lib/typescript/src/features/TrackFeature.d.ts +12 -0
  178. package/lib/typescript/src/features/TrackFeature.d.ts.map +1 -0
  179. package/lib/typescript/src/features/ZustandLogFeature.d.ts +29 -0
  180. package/lib/typescript/src/features/ZustandLogFeature.d.ts.map +1 -0
  181. package/lib/typescript/src/hooks/useNavigationLogger.d.ts +20 -0
  182. package/lib/typescript/src/hooks/useNavigationLogger.d.ts.map +1 -0
  183. package/lib/typescript/src/hooks/useSlideDetailAnimation.d.ts +11 -0
  184. package/lib/typescript/src/hooks/useSlideDetailAnimation.d.ts.map +1 -0
  185. package/lib/typescript/src/index.d.ts +26 -0
  186. package/lib/typescript/src/index.d.ts.map +1 -0
  187. package/lib/typescript/src/initialize.d.ts +51 -0
  188. package/lib/typescript/src/initialize.d.ts.map +1 -0
  189. package/lib/typescript/src/native/NativeDebugLibs.d.ts +11 -0
  190. package/lib/typescript/src/native/NativeDebugLibs.d.ts.map +1 -0
  191. package/lib/typescript/src/types/index.d.ts +112 -0
  192. package/lib/typescript/src/types/index.d.ts.map +1 -0
  193. package/lib/typescript/src/utils/constants.d.ts +96 -0
  194. package/lib/typescript/src/utils/constants.d.ts.map +1 -0
  195. package/lib/typescript/src/utils/copyToComputer.d.ts +30 -0
  196. package/lib/typescript/src/utils/copyToComputer.d.ts.map +1 -0
  197. package/lib/typescript/src/utils/createEventChannel.d.ts +7 -0
  198. package/lib/typescript/src/utils/createEventChannel.d.ts.map +1 -0
  199. package/lib/typescript/src/utils/createObservableStore.d.ts +9 -0
  200. package/lib/typescript/src/utils/createObservableStore.d.ts.map +1 -0
  201. package/lib/typescript/src/utils/safeStringify.d.ts +6 -0
  202. package/lib/typescript/src/utils/safeStringify.d.ts.map +1 -0
  203. package/package.json +63 -24
  204. package/src/components/ClipboardTab.tsx +81 -0
  205. package/src/components/ConsoleLogTab.tsx +209 -0
  206. package/src/components/EnvironmentTab.tsx +276 -0
  207. package/src/components/FloatPanelView.tsx +714 -0
  208. package/src/components/NavigationLogTab.tsx +66 -0
  209. package/src/components/NetworkLogTab.tsx +411 -0
  210. package/src/components/ThirdPartyLibsTab.tsx +63 -0
  211. package/src/components/TrackLogTab.tsx +245 -0
  212. package/src/components/ZustandLogTab.tsx +305 -0
  213. package/src/components/shared/CollapsibleSection.tsx +78 -0
  214. package/src/components/shared/CopyButton.tsx +68 -0
  215. package/src/components/shared/JsonView.tsx +125 -0
  216. package/src/core/DebugToolkit.tsx +174 -0
  217. package/src/core/DebugToolkitProvider.tsx +89 -0
  218. package/src/features/ClipboardFeature.ts +11 -0
  219. package/src/features/ConsoleLogFeature.ts +118 -0
  220. package/src/features/EnvironmentFeature.ts +194 -0
  221. package/src/features/NavigationLogFeature.ts +74 -0
  222. package/src/features/NetworkFeature.ts +488 -0
  223. package/src/features/ThirdPartyLibsFeature.ts +42 -0
  224. package/src/features/TrackFeature.ts +69 -0
  225. package/src/features/ZustandLogFeature.ts +127 -0
  226. package/src/hooks/useNavigationLogger.ts +107 -0
  227. package/src/hooks/useSlideDetailAnimation.ts +45 -0
  228. package/src/index.ts +52 -0
  229. package/src/initialize.ts +214 -0
  230. package/src/native/NativeDebugLibs.ts +74 -0
  231. package/src/types/index.ts +138 -0
  232. package/src/utils/constants.ts +91 -0
  233. package/src/utils/copyToComputer.ts +104 -0
  234. package/src/utils/createEventChannel.ts +22 -0
  235. package/src/utils/createObservableStore.ts +42 -0
  236. package/src/utils/safeStringify.ts +25 -0
  237. package/.cursor/rules/react-native.mdc +0 -41
  238. package/README.zh-CN.md +0 -230
  239. package/android/build.gradle +0 -34
  240. package/android/src/main/AndroidManifest.xml +0 -8
  241. package/android/src/main/java/com/reactnative/debuglibs/BuildTypeModule.java +0 -44
  242. package/android/src/main/java/com/reactnative/debuglibs/BuildTypePackage.java +0 -25
  243. package/android/src/main/java/com/reactnative/debuglibs/RNDebugLibsModule.java +0 -75
  244. package/android/src/main/java/com/reactnative/debuglibs/RNDebugLibsPackage.java +0 -28
  245. package/index.js +0 -41
  246. package/ios/BuildTypeModule.h +0 -9
  247. package/ios/BuildTypeModule.m +0 -42
  248. package/ios/RNDebugLibs.h +0 -10
  249. package/ios/RNDebugLibs.m +0 -79
  250. package/lib/DebugToolKit.js +0 -126
  251. package/lib/EnvironmentManager.ts +0 -80
  252. package/lib/NativeDebugLibs.js +0 -67
  253. package/lib/features/ConsoleLogFeature.js +0 -70
  254. package/lib/features/NavigationLogFeature.js +0 -45
  255. package/lib/features/NetworkFeature.js +0 -389
  256. package/lib/features/PerformanceFeature.js +0 -390
  257. package/lib/features/ThirdPartyLibsFeature.js +0 -63
  258. package/lib/features/TrackFeature.js +0 -94
  259. package/lib/features/ZustandLogFeature.js +0 -44
  260. package/lib/hooks/useNavigationLogger.js +0 -92
  261. package/lib/index.js +0 -114
  262. package/lib/navigation/NavigationLogger.js +0 -1
  263. package/lib/types/TrackTypes.ts +0 -92
  264. package/lib/utils/DebugConst.js +0 -67
  265. package/lib/utils/StorageUtils.js +0 -80
  266. package/lib/views/ConsoleLogDetails.js +0 -314
  267. package/lib/views/FloatPanelView.js +0 -697
  268. package/lib/views/HttpLogDetails.js +0 -648
  269. package/lib/views/NavigationLogDetails.js +0 -302
  270. package/lib/views/RestartModal.js +0 -75
  271. package/lib/views/SubViewConsoleLogs.js +0 -209
  272. package/lib/views/SubViewEnvironment.js +0 -73
  273. package/lib/views/SubViewHTTPLogs.js +0 -235
  274. package/lib/views/SubViewNavigationLogs.js +0 -199
  275. package/lib/views/SubViewPerformance.js +0 -515
  276. package/lib/views/SubViewThirdPartyLibs.js +0 -239
  277. package/lib/views/SubViewTrackLogs.js +0 -318
  278. package/lib/views/SubViewZustandLogs.js +0 -279
  279. package/lib/views/TabView.js +0 -66
  280. package/lib/views/TrackLogDetails.js +0 -481
  281. package/lib/views/ZustandLogDetails.js +0 -355
  282. package/react-native-debug-toolkit.podspec +0 -25
  283. package/react-native.config.js +0 -18
@@ -0,0 +1,446 @@
1
+ "use strict";
2
+
3
+ import React, { useState } from 'react';
4
+ import { View, Text, FlatList, TouchableOpacity, StyleSheet, Animated, ScrollView } from 'react-native';
5
+ import { Colors } from '../utils/constants';
6
+ import { safeStringify } from '../utils/safeStringify';
7
+ import { CollapsibleSection } from './shared/CollapsibleSection';
8
+ import { JsonView } from './shared/JsonView';
9
+ import { CopyButton } from './shared/CopyButton';
10
+ import { useSlideDetailAnimation } from '../hooks/useSlideDetailAnimation';
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
+ const getActionColor = action => {
13
+ if (action.includes('add') || action.includes('create')) return '#34C759';
14
+ if (action.includes('remove') || action.includes('delete')) return '#FF3B30';
15
+ if (action.includes('update') || action.includes('set')) return '#007AFF';
16
+ return '#AF52DE';
17
+ };
18
+ const getActionBgColor = action => {
19
+ if (action.includes('add') || action.includes('create')) return 'rgba(52,199,89,0.1)';
20
+ if (action.includes('remove') || action.includes('delete')) return 'rgba(255,59,48,0.1)';
21
+ if (action.includes('update') || action.includes('set')) return 'rgba(0,122,255,0.1)';
22
+ return 'rgba(175,82,222,0.1)';
23
+ };
24
+ export const ZustandLogTab = /*#__PURE__*/React.memo(({
25
+ data
26
+ }) => {
27
+ const [selected, setSelected] = useState(null);
28
+ const {
29
+ detailTranslateX,
30
+ listTranslateX,
31
+ listOpacity
32
+ } = useSlideDetailAnimation(selected);
33
+ const renderItem = ({
34
+ item
35
+ }) => /*#__PURE__*/_jsx(TouchableOpacity, {
36
+ style: s.card,
37
+ onPress: () => setSelected(item),
38
+ activeOpacity: 0.6,
39
+ children: /*#__PURE__*/_jsxs(View, {
40
+ style: s.cardRow,
41
+ children: [/*#__PURE__*/_jsx(View, {
42
+ style: [s.actionIcon, {
43
+ backgroundColor: getActionBgColor(item.action)
44
+ }],
45
+ children: /*#__PURE__*/_jsx(View, {
46
+ style: [s.actionDot, {
47
+ backgroundColor: getActionColor(item.action)
48
+ }]
49
+ })
50
+ }), /*#__PURE__*/_jsxs(View, {
51
+ style: s.cardContent,
52
+ children: [/*#__PURE__*/_jsxs(View, {
53
+ style: s.cardMeta,
54
+ children: [/*#__PURE__*/_jsx(Text, {
55
+ style: s.action,
56
+ children: item.action
57
+ }), item.storeName && /*#__PURE__*/_jsx(View, {
58
+ style: s.storeBadge,
59
+ children: /*#__PURE__*/_jsx(Text, {
60
+ style: s.storeBadgeText,
61
+ children: item.storeName
62
+ })
63
+ })]
64
+ }), /*#__PURE__*/_jsx(Text, {
65
+ style: s.time,
66
+ children: new Date(item.timestamp).toLocaleTimeString()
67
+ })]
68
+ }), item.actionCompleteTime != null && /*#__PURE__*/_jsx(View, {
69
+ style: s.durationBadge,
70
+ children: /*#__PURE__*/_jsxs(Text, {
71
+ style: s.durationText,
72
+ children: [item.actionCompleteTime, "ms"]
73
+ })
74
+ })]
75
+ })
76
+ });
77
+ const findChanges = (prev, next) => {
78
+ if (typeof prev !== 'object' || typeof next !== 'object' || !prev || !next) return [];
79
+ const allKeys = new Set([...Object.keys(prev), ...Object.keys(next)]);
80
+ const changed = [];
81
+ allKeys.forEach(key => {
82
+ const pv = prev[key];
83
+ const nv = next[key];
84
+ if (safeStringify(pv) !== safeStringify(nv)) changed.push(key);
85
+ });
86
+ return changed;
87
+ };
88
+ return /*#__PURE__*/_jsxs(View, {
89
+ style: s.container,
90
+ children: [/*#__PURE__*/_jsx(Animated.View, {
91
+ style: [s.listWrap, selected ? {
92
+ opacity: listOpacity,
93
+ transform: [{
94
+ translateX: listTranslateX
95
+ }]
96
+ } : null],
97
+ children: data.length === 0 ? /*#__PURE__*/_jsxs(View, {
98
+ style: s.emptyContainer,
99
+ children: [/*#__PURE__*/_jsx(Text, {
100
+ style: s.emptyIcon,
101
+ children: "~"
102
+ }), /*#__PURE__*/_jsx(Text, {
103
+ style: s.empty,
104
+ children: "No Zustand state changes"
105
+ })]
106
+ }) : /*#__PURE__*/_jsx(FlatList, {
107
+ data: [...data].reverse(),
108
+ renderItem: renderItem,
109
+ keyExtractor: item => item.id,
110
+ contentContainerStyle: s.listContent,
111
+ initialNumToRender: 20,
112
+ maxToRenderPerBatch: 10,
113
+ windowSize: 5,
114
+ removeClippedSubviews: true
115
+ })
116
+ }), selected && /*#__PURE__*/_jsx(Animated.View, {
117
+ style: [s.detailOverlay, {
118
+ transform: [{
119
+ translateX: detailTranslateX
120
+ }]
121
+ }],
122
+ children: /*#__PURE__*/_jsxs(View, {
123
+ style: s.detailWrap,
124
+ children: [/*#__PURE__*/_jsxs(View, {
125
+ style: s.detailHeader,
126
+ children: [/*#__PURE__*/_jsxs(TouchableOpacity, {
127
+ onPress: () => setSelected(null),
128
+ style: s.backBtn,
129
+ activeOpacity: 0.6,
130
+ children: [/*#__PURE__*/_jsx(Text, {
131
+ style: s.backIcon,
132
+ children: "\u2039"
133
+ }), /*#__PURE__*/_jsx(Text, {
134
+ style: s.backText,
135
+ children: "Back"
136
+ })]
137
+ }), /*#__PURE__*/_jsxs(View, {
138
+ style: s.detailHeaderCenter,
139
+ children: [/*#__PURE__*/_jsx(Text, {
140
+ style: [s.detailAction, {
141
+ color: getActionColor(selected.action)
142
+ }],
143
+ children: selected.action
144
+ }), selected.storeName && /*#__PURE__*/_jsx(View, {
145
+ style: s.storeBadge,
146
+ children: /*#__PURE__*/_jsx(Text, {
147
+ style: s.storeBadgeText,
148
+ children: selected.storeName
149
+ })
150
+ })]
151
+ })]
152
+ }), /*#__PURE__*/_jsxs(ScrollView, {
153
+ style: s.detailBody,
154
+ contentContainerStyle: s.detailBodyContent,
155
+ children: [/*#__PURE__*/_jsxs(View, {
156
+ style: s.metaCard,
157
+ children: [/*#__PURE__*/_jsxs(View, {
158
+ style: s.metaItem,
159
+ children: [/*#__PURE__*/_jsx(Text, {
160
+ style: s.metaLabel,
161
+ children: "Time"
162
+ }), /*#__PURE__*/_jsx(Text, {
163
+ style: s.metaValue,
164
+ children: new Date(selected.timestamp).toLocaleString()
165
+ })]
166
+ }), selected.actionCompleteTime != null && /*#__PURE__*/_jsx(View, {
167
+ style: s.metaDivider
168
+ }), selected.actionCompleteTime != null && /*#__PURE__*/_jsxs(View, {
169
+ style: s.metaItem,
170
+ children: [/*#__PURE__*/_jsx(Text, {
171
+ style: s.metaLabel,
172
+ children: "Duration"
173
+ }), /*#__PURE__*/_jsxs(Text, {
174
+ style: s.metaValue,
175
+ children: [selected.actionCompleteTime, "ms"]
176
+ })]
177
+ })]
178
+ }), (() => {
179
+ const changes = findChanges(selected.prevState, selected.nextState);
180
+ if (changes.length === 0) return null;
181
+ return /*#__PURE__*/_jsxs(View, {
182
+ style: s.changesCard,
183
+ children: [/*#__PURE__*/_jsx(Text, {
184
+ style: s.changesTitle,
185
+ children: "Changed Keys"
186
+ }), /*#__PURE__*/_jsx(View, {
187
+ style: s.changesTags,
188
+ children: changes.map(key => /*#__PURE__*/_jsx(View, {
189
+ style: s.changeTag,
190
+ children: /*#__PURE__*/_jsx(Text, {
191
+ style: s.changeTagText,
192
+ children: key
193
+ })
194
+ }, key))
195
+ })]
196
+ });
197
+ })(), /*#__PURE__*/_jsx(CollapsibleSection, {
198
+ title: "Previous State",
199
+ children: /*#__PURE__*/_jsxs(View, {
200
+ style: s.sectionWithCopy,
201
+ children: [/*#__PURE__*/_jsx(CopyButton, {
202
+ text: safeStringify(selected.prevState, 2),
203
+ label: "Previous State"
204
+ }), /*#__PURE__*/_jsx(JsonView, {
205
+ data: selected.prevState,
206
+ maxHeight: 250
207
+ })]
208
+ })
209
+ }), /*#__PURE__*/_jsx(CollapsibleSection, {
210
+ title: "Next State",
211
+ initiallyExpanded: true,
212
+ children: /*#__PURE__*/_jsxs(View, {
213
+ style: s.sectionWithCopy,
214
+ children: [/*#__PURE__*/_jsx(CopyButton, {
215
+ text: safeStringify(selected.nextState, 2),
216
+ label: "Next State"
217
+ }), /*#__PURE__*/_jsx(JsonView, {
218
+ data: selected.nextState,
219
+ maxHeight: 250
220
+ })]
221
+ })
222
+ })]
223
+ })]
224
+ })
225
+ })]
226
+ });
227
+ });
228
+ const s = StyleSheet.create({
229
+ container: {
230
+ flex: 1,
231
+ backgroundColor: Colors.background
232
+ },
233
+ listWrap: {
234
+ position: 'absolute',
235
+ top: 0,
236
+ left: 0,
237
+ right: 0,
238
+ bottom: 0
239
+ },
240
+ listContent: {
241
+ padding: 12
242
+ },
243
+ // Empty
244
+ emptyContainer: {
245
+ flex: 1,
246
+ alignItems: 'center',
247
+ justifyContent: 'center'
248
+ },
249
+ emptyIcon: {
250
+ fontSize: 40,
251
+ color: Colors.textLight,
252
+ marginBottom: 4
253
+ },
254
+ empty: {
255
+ textAlign: 'center',
256
+ color: Colors.textLight,
257
+ fontSize: 14
258
+ },
259
+ // Card
260
+ card: {
261
+ backgroundColor: Colors.surface,
262
+ borderRadius: 12,
263
+ marginBottom: 8,
264
+ overflow: 'hidden'
265
+ },
266
+ cardRow: {
267
+ flexDirection: 'row',
268
+ padding: 14,
269
+ alignItems: 'center'
270
+ },
271
+ actionIcon: {
272
+ width: 28,
273
+ height: 28,
274
+ borderRadius: 8,
275
+ alignItems: 'center',
276
+ justifyContent: 'center',
277
+ marginRight: 12
278
+ },
279
+ actionDot: {
280
+ width: 8,
281
+ height: 8,
282
+ borderRadius: 4
283
+ },
284
+ cardContent: {
285
+ flex: 1
286
+ },
287
+ cardMeta: {
288
+ flexDirection: 'row',
289
+ alignItems: 'center',
290
+ gap: 8,
291
+ marginBottom: 3
292
+ },
293
+ action: {
294
+ fontSize: 15,
295
+ fontWeight: '600',
296
+ color: Colors.text
297
+ },
298
+ storeBadge: {
299
+ backgroundColor: 'rgba(0,122,255,0.08)',
300
+ paddingHorizontal: 8,
301
+ paddingVertical: 2,
302
+ borderRadius: 4
303
+ },
304
+ storeBadgeText: {
305
+ fontSize: 11,
306
+ color: Colors.primary,
307
+ fontWeight: '600'
308
+ },
309
+ time: {
310
+ fontSize: 12,
311
+ color: Colors.textSecondary
312
+ },
313
+ durationBadge: {
314
+ backgroundColor: Colors.background,
315
+ borderRadius: 8,
316
+ paddingHorizontal: 8,
317
+ paddingVertical: 4
318
+ },
319
+ durationText: {
320
+ fontSize: 12,
321
+ color: Colors.textSecondary,
322
+ fontWeight: '500'
323
+ },
324
+ // Detail (push navigation)
325
+ detailOverlay: {
326
+ position: 'absolute',
327
+ top: 0,
328
+ left: 0,
329
+ right: 0,
330
+ bottom: 0,
331
+ backgroundColor: Colors.background
332
+ },
333
+ detailWrap: {
334
+ flex: 1,
335
+ backgroundColor: Colors.background
336
+ },
337
+ detailHeader: {
338
+ flexDirection: 'row',
339
+ alignItems: 'center',
340
+ paddingHorizontal: 8,
341
+ paddingVertical: 10,
342
+ backgroundColor: Colors.surface,
343
+ borderBottomWidth: StyleSheet.hairlineWidth,
344
+ borderBottomColor: Colors.border
345
+ },
346
+ backBtn: {
347
+ flexDirection: 'row',
348
+ alignItems: 'center',
349
+ paddingHorizontal: 6,
350
+ paddingVertical: 4,
351
+ borderRadius: 8,
352
+ marginRight: 8
353
+ },
354
+ backIcon: {
355
+ fontSize: 24,
356
+ fontWeight: '300',
357
+ color: Colors.primary,
358
+ marginTop: -2,
359
+ marginRight: 2
360
+ },
361
+ backText: {
362
+ fontSize: 16,
363
+ color: Colors.primary,
364
+ fontWeight: '500'
365
+ },
366
+ detailHeaderCenter: {
367
+ flexDirection: 'row',
368
+ alignItems: 'center',
369
+ gap: 10,
370
+ flex: 1
371
+ },
372
+ detailAction: {
373
+ fontSize: 17,
374
+ fontWeight: '700'
375
+ },
376
+ detailBody: {
377
+ flex: 1
378
+ },
379
+ detailBodyContent: {
380
+ padding: 12,
381
+ paddingBottom: 40
382
+ },
383
+ sectionWithCopy: {
384
+ gap: 8
385
+ },
386
+ // Meta
387
+ metaCard: {
388
+ backgroundColor: Colors.surface,
389
+ borderRadius: 12,
390
+ padding: 14,
391
+ marginBottom: 8,
392
+ flexDirection: 'row',
393
+ alignItems: 'center'
394
+ },
395
+ metaItem: {
396
+ flex: 1
397
+ },
398
+ metaDivider: {
399
+ width: 1,
400
+ height: 28,
401
+ backgroundColor: Colors.border,
402
+ marginHorizontal: 12
403
+ },
404
+ metaLabel: {
405
+ fontSize: 11,
406
+ color: Colors.textSecondary,
407
+ fontWeight: '600',
408
+ textTransform: 'uppercase',
409
+ marginBottom: 2
410
+ },
411
+ metaValue: {
412
+ fontSize: 14,
413
+ color: Colors.text,
414
+ fontWeight: '500'
415
+ },
416
+ // Changes
417
+ changesCard: {
418
+ backgroundColor: Colors.surface,
419
+ borderRadius: 12,
420
+ padding: 14,
421
+ marginBottom: 8
422
+ },
423
+ changesTitle: {
424
+ fontSize: 13,
425
+ fontWeight: '600',
426
+ color: Colors.textSecondary,
427
+ marginBottom: 10
428
+ },
429
+ changesTags: {
430
+ flexDirection: 'row',
431
+ flexWrap: 'wrap',
432
+ gap: 6
433
+ },
434
+ changeTag: {
435
+ backgroundColor: 'rgba(0,122,255,0.08)',
436
+ paddingHorizontal: 10,
437
+ paddingVertical: 4,
438
+ borderRadius: 6
439
+ },
440
+ changeTagText: {
441
+ fontSize: 12,
442
+ color: Colors.primary,
443
+ fontWeight: '600'
444
+ }
445
+ });
446
+ //# sourceMappingURL=ZustandLogTab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","View","Text","FlatList","TouchableOpacity","StyleSheet","Animated","ScrollView","Colors","safeStringify","CollapsibleSection","JsonView","CopyButton","useSlideDetailAnimation","jsx","_jsx","jsxs","_jsxs","getActionColor","action","includes","getActionBgColor","ZustandLogTab","memo","data","selected","setSelected","detailTranslateX","listTranslateX","listOpacity","renderItem","item","style","s","card","onPress","activeOpacity","children","cardRow","actionIcon","backgroundColor","actionDot","cardContent","cardMeta","storeName","storeBadge","storeBadgeText","time","Date","timestamp","toLocaleTimeString","actionCompleteTime","durationBadge","durationText","findChanges","prev","next","allKeys","Set","Object","keys","changed","forEach","key","pv","nv","push","container","listWrap","opacity","transform","translateX","length","emptyContainer","emptyIcon","empty","reverse","keyExtractor","id","contentContainerStyle","listContent","initialNumToRender","maxToRenderPerBatch","windowSize","removeClippedSubviews","detailOverlay","detailWrap","detailHeader","backBtn","backIcon","backText","detailHeaderCenter","detailAction","color","detailBody","detailBodyContent","metaCard","metaItem","metaLabel","metaValue","toLocaleString","metaDivider","changes","prevState","nextState","changesCard","changesTitle","changesTags","map","changeTag","changeTagText","title","sectionWithCopy","text","label","maxHeight","initiallyExpanded","create","flex","background","position","top","left","right","bottom","padding","alignItems","justifyContent","fontSize","textLight","marginBottom","textAlign","surface","borderRadius","overflow","flexDirection","width","height","marginRight","gap","fontWeight","paddingHorizontal","paddingVertical","primary","textSecondary","borderBottomWidth","hairlineWidth","borderBottomColor","border","marginTop","paddingBottom","marginHorizontal","textTransform","flexWrap"],"sourceRoot":"../../../src","sources":["components/ZustandLogTab.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ import React, { useState, useEffect } from 'react';
4
+ import { View, Text, Pressable, StyleSheet, Animated } from 'react-native';
5
+ import { Colors } from '../../utils/constants';
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ export const CollapsibleSection = ({
8
+ title,
9
+ initiallyExpanded = false,
10
+ children
11
+ }) => {
12
+ const [expanded, setExpanded] = useState(initiallyExpanded);
13
+ const [rotationAnim] = useState(() => new Animated.Value(initiallyExpanded ? 1 : 0));
14
+ useEffect(() => {
15
+ Animated.timing(rotationAnim, {
16
+ toValue: expanded ? 1 : 0,
17
+ duration: 200,
18
+ useNativeDriver: true
19
+ }).start();
20
+ }, [expanded, rotationAnim]);
21
+ const chevronRotation = rotationAnim.interpolate({
22
+ inputRange: [0, 1],
23
+ outputRange: ['0deg', '90deg']
24
+ });
25
+ return /*#__PURE__*/_jsxs(View, {
26
+ style: styles.section,
27
+ children: [/*#__PURE__*/_jsxs(Pressable, {
28
+ style: styles.header,
29
+ onPress: () => setExpanded(!expanded),
30
+ children: [/*#__PURE__*/_jsx(Text, {
31
+ style: styles.title,
32
+ children: title
33
+ }), /*#__PURE__*/_jsx(Animated.Text, {
34
+ style: [styles.chevron, {
35
+ transform: [{
36
+ rotate: chevronRotation
37
+ }]
38
+ }],
39
+ children: "\u203A"
40
+ })]
41
+ }), expanded && /*#__PURE__*/_jsx(View, {
42
+ style: styles.body,
43
+ children: children
44
+ })]
45
+ });
46
+ };
47
+ const styles = StyleSheet.create({
48
+ section: {
49
+ backgroundColor: Colors.surface,
50
+ borderRadius: 12,
51
+ marginBottom: 8,
52
+ overflow: 'hidden'
53
+ },
54
+ header: {
55
+ flexDirection: 'row',
56
+ justifyContent: 'space-between',
57
+ alignItems: 'center',
58
+ paddingHorizontal: 16,
59
+ paddingVertical: 13
60
+ },
61
+ title: {
62
+ fontSize: 15,
63
+ fontWeight: '600',
64
+ color: Colors.text
65
+ },
66
+ chevron: {
67
+ fontSize: 20,
68
+ fontWeight: '500',
69
+ color: Colors.textLight,
70
+ width: 20,
71
+ textAlign: 'center'
72
+ },
73
+ body: {
74
+ paddingHorizontal: 16,
75
+ paddingBottom: 14
76
+ }
77
+ });
78
+ //# sourceMappingURL=CollapsibleSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","useEffect","View","Text","Pressable","StyleSheet","Animated","Colors","jsx","_jsx","jsxs","_jsxs","CollapsibleSection","title","initiallyExpanded","children","expanded","setExpanded","rotationAnim","Value","timing","toValue","duration","useNativeDriver","start","chevronRotation","interpolate","inputRange","outputRange","style","styles","section","header","onPress","chevron","transform","rotate","body","create","backgroundColor","surface","borderRadius","marginBottom","overflow","flexDirection","justifyContent","alignItems","paddingHorizontal","paddingVertical","fontSize","fontWeight","color","text","textLight","width","textAlign","paddingBottom"],"sourceRoot":"../../../../src","sources":["components/shared/CollapsibleSection.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ import React, { useCallback, useState } from 'react';
4
+ import { TouchableOpacity, Text, StyleSheet } from 'react-native';
5
+ import { Colors } from '../../utils/constants';
6
+ import { copyToComputer } from '../../utils/copyToComputer';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export const CopyButton = ({
9
+ text,
10
+ label,
11
+ compact
12
+ }) => {
13
+ const [feedback, setFeedback] = useState(null);
14
+ const handleCopy = useCallback(() => {
15
+ try {
16
+ const result = copyToComputer(text, {
17
+ label
18
+ });
19
+ setFeedback(result.method === 'clipboard' ? 'copied' : 'logged');
20
+ } catch {
21
+ setFeedback('logged');
22
+ }
23
+ setTimeout(() => setFeedback(null), 2000);
24
+ }, [text, label]);
25
+ if (!text) return null;
26
+ const feedbackLabel = feedback === 'copied' ? 'Copied' : feedback === 'logged' ? 'Logged' : null;
27
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
28
+ style: [s.copyBtn, compact && s.copyBtnCompact],
29
+ onPress: handleCopy,
30
+ activeOpacity: 0.7,
31
+ children: /*#__PURE__*/_jsx(Text, {
32
+ style: [s.copyBtnText, compact && s.copyBtnTextCompact],
33
+ children: feedbackLabel ?? 'Copy'
34
+ })
35
+ });
36
+ };
37
+ const s = StyleSheet.create({
38
+ copyBtn: {
39
+ backgroundColor: Colors.background,
40
+ paddingHorizontal: 12,
41
+ paddingVertical: 5,
42
+ borderRadius: 8,
43
+ alignSelf: 'flex-end'
44
+ },
45
+ copyBtnCompact: {
46
+ paddingHorizontal: 8,
47
+ paddingVertical: 3
48
+ },
49
+ copyBtnText: {
50
+ fontSize: 12,
51
+ color: Colors.textSecondary,
52
+ fontWeight: '500'
53
+ },
54
+ copyBtnTextCompact: {
55
+ fontSize: 11
56
+ }
57
+ });
58
+ //# sourceMappingURL=CopyButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useState","TouchableOpacity","Text","StyleSheet","Colors","copyToComputer","jsx","_jsx","CopyButton","text","label","compact","feedback","setFeedback","handleCopy","result","method","setTimeout","feedbackLabel","style","s","copyBtn","copyBtnCompact","onPress","activeOpacity","children","copyBtnText","copyBtnTextCompact","create","backgroundColor","background","paddingHorizontal","paddingVertical","borderRadius","alignSelf","fontSize","color","textSecondary","fontWeight"],"sourceRoot":"../../../../src","sources":["components/shared/CopyButton.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AACpD,SAASC,gBAAgB,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACjE,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,cAAc,QAAQ,4BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAW5D,OAAO,MAAMC,UAAqC,GAAGA,CAAC;EAAEC,IAAI;EAAEC,KAAK;EAAEC;AAAQ,CAAC,KAAK;EACjF,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGb,QAAQ,CAA6B,IAAI,CAAC;EAE1E,MAAMc,UAAU,GAAGf,WAAW,CAAC,MAAM;IACnC,IAAI;MACF,MAAMgB,MAAM,GAAGV,cAAc,CAACI,IAAI,EAAE;QAAEC;MAAM,CAAC,CAAC;MAC9CG,WAAW,CAACE,MAAM,CAACC,MAAM,KAAK,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAClE,CAAC,CAAC,MAAM;MACNH,WAAW,CAAC,QAAQ,CAAC;IACvB;IACAI,UAAU,CAAC,MAAMJ,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;EAC3C,CAAC,EAAE,CAACJ,IAAI,EAAEC,KAAK,CAAC,CAAC;EAEjB,IAAI,CAACD,IAAI,EAAE,OAAO,IAAI;EAEtB,MAAMS,aAAa,GACjBN,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAChCA,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAChC,IAAI;EAEN,oBACEL,IAAA,CAACN,gBAAgB;IACfkB,KAAK,EAAE,CAACC,CAAC,CAACC,OAAO,EAAEV,OAAO,IAAIS,CAAC,CAACE,cAAc,CAAE;IAChDC,OAAO,EAAET,UAAW;IACpBU,aAAa,EAAE,GAAI;IAAAC,QAAA,eAEnBlB,IAAA,CAACL,IAAI;MAACiB,KAAK,EAAE,CAACC,CAAC,CAACM,WAAW,EAAEf,OAAO,IAAIS,CAAC,CAACO,kBAAkB,CAAE;MAAAF,QAAA,EAC3DP,aAAa,IAAI;IAAM,CACpB;EAAC,CACS,CAAC;AAEvB,CAAC;AAED,MAAME,CAAC,GAAGjB,UAAU,CAACyB,MAAM,CAAC;EAC1BP,OAAO,EAAE;IACPQ,eAAe,EAAEzB,MAAM,CAAC0B,UAAU;IAClCC,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,CAAC;IAClBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACDZ,cAAc,EAAE;IACdS,iBAAiB,EAAE,CAAC;IACpBC,eAAe,EAAE;EACnB,CAAC;EACDN,WAAW,EAAE;IACXS,QAAQ,EAAE,EAAE;IACZC,KAAK,EAAEhC,MAAM,CAACiC,aAAa;IAC3BC,UAAU,EAAE;EACd,CAAC;EACDX,kBAAkB,EAAE;IAClBQ,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC","ignoreList":[]}