react-native-inapp-inspector 2.5.12 → 2.5.13
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/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
- package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/9.2.0/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
- package/android/src/main/AndroidManifest.xml +11 -0
- package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +379 -19
- package/android/src/main/res/xml/inappinspector_file_paths.xml +7 -0
- package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +47 -49
- package/dist/commonjs/components/Inspector/BoxModelVisualizer.d.ts +8 -0
- package/dist/commonjs/components/Inspector/BoxModelVisualizer.js +76 -0
- package/dist/commonjs/components/Inspector/ConsoleExportModal.js +51 -51
- package/dist/commonjs/components/Inspector/CrashTab.js +17 -17
- package/dist/commonjs/components/Inspector/DebuggingTab.js +24 -24
- package/dist/commonjs/components/Inspector/DeviceInfoTab.js +2 -2
- package/dist/commonjs/components/Inspector/FabLauncher.js +2 -2
- package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +2 -2
- package/dist/commonjs/components/Inspector/InspectorHeader.js +10 -10
- package/dist/commonjs/components/Inspector/MediaGalleryTab.js +10 -10
- package/dist/commonjs/components/Inspector/MediaPreviewModal.d.ts +1 -0
- package/dist/commonjs/components/Inspector/MediaPreviewModal.js +222 -222
- package/dist/commonjs/components/Inspector/NetworkExportModal.d.ts +10 -0
- package/dist/commonjs/components/Inspector/NetworkExportModal.js +333 -0
- package/dist/commonjs/components/Inspector/NetworkTab.js +48 -41
- package/dist/commonjs/components/Inspector/NpmStarPrompt.js +11 -12
- package/dist/commonjs/components/Inspector/ReduxDetail.js +17 -19
- package/dist/commonjs/components/Inspector/ReduxTab.js +5 -5
- package/dist/commonjs/components/Inspector/SettingsPanel.js +3 -6
- package/dist/commonjs/components/Inspector/SocketCard.js +2 -2
- package/dist/commonjs/components/Inspector/SupportPage.js +5 -5
- package/dist/commonjs/components/Inspector/UiA11yAuditPanel.d.ts +7 -0
- package/dist/commonjs/components/Inspector/UiA11yAuditPanel.js +97 -0
- package/dist/commonjs/components/Inspector/UiInspectorDetail.d.ts +2 -0
- package/dist/commonjs/components/Inspector/UiInspectorDetail.js +485 -0
- package/dist/commonjs/components/Inspector/UiInspectorOverlay.d.ts +2 -0
- package/dist/commonjs/components/Inspector/UiInspectorOverlay.js +199 -0
- package/dist/commonjs/components/Inspector/UiInspectorTab.d.ts +2 -0
- package/dist/commonjs/components/Inspector/UiInspectorTab.js +117 -0
- package/dist/commonjs/components/Inspector/UiLiveStyleTweaker.d.ts +10 -0
- package/dist/commonjs/components/Inspector/UiLiveStyleTweaker.js +148 -0
- package/dist/commonjs/components/Inspector/index.d.ts +28 -0
- package/dist/commonjs/components/Inspector/index.js +1 -0
- package/dist/commonjs/components/LogCard.js +9 -7
- package/dist/commonjs/constants/index.js +1 -1
- package/dist/commonjs/constants/telemetryConfig.d.ts +3 -3
- package/dist/commonjs/constants/telemetryConfig.js +1 -1
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/crashHandler.d.ts +1 -1
- package/dist/commonjs/customHooks/crashHandler.js +6 -6
- package/dist/commonjs/customHooks/uiInspectorManager.d.ts +22 -0
- package/dist/commonjs/customHooks/uiInspectorManager.js +1 -0
- package/dist/commonjs/helpers/index.js +1 -3
- package/dist/commonjs/helpers/searchQueryParser.d.ts +1 -0
- package/dist/commonjs/helpers/searchQueryParser.js +7 -5
- package/dist/commonjs/helpers/shareFormatter.d.ts +16 -0
- package/dist/commonjs/helpers/shareFormatter.js +16 -9
- package/dist/commonjs/helpers/uiInspectorEngine.d.ts +62 -0
- package/dist/commonjs/helpers/uiInspectorEngine.js +19 -0
- package/dist/commonjs/i18n/locales/ar.json +1 -1
- package/dist/commonjs/i18n/locales/bn.json +1 -1
- package/dist/commonjs/i18n/locales/de.json +1 -1
- package/dist/commonjs/i18n/locales/en.json +1 -1
- package/dist/commonjs/i18n/locales/es.json +1 -1
- package/dist/commonjs/i18n/locales/fr.json +1 -1
- package/dist/commonjs/i18n/locales/gu.json +1 -1
- package/dist/commonjs/i18n/locales/hi.json +1 -1
- package/dist/commonjs/i18n/locales/id.json +1 -1
- package/dist/commonjs/i18n/locales/it.json +1 -1
- package/dist/commonjs/i18n/locales/ja.json +1 -1
- package/dist/commonjs/i18n/locales/kn.json +1 -1
- package/dist/commonjs/i18n/locales/ko.json +1 -1
- package/dist/commonjs/i18n/locales/ml.json +1 -1
- package/dist/commonjs/i18n/locales/mr.json +1 -1
- package/dist/commonjs/i18n/locales/nl.json +1 -1
- package/dist/commonjs/i18n/locales/pa.json +1 -1
- package/dist/commonjs/i18n/locales/pl.json +1 -1
- package/dist/commonjs/i18n/locales/pt.json +1 -1
- package/dist/commonjs/i18n/locales/ru.json +1 -1
- package/dist/commonjs/i18n/locales/ta.json +1 -1
- package/dist/commonjs/i18n/locales/te.json +1 -1
- package/dist/commonjs/i18n/locales/tr.json +1 -1
- package/dist/commonjs/i18n/locales/vi.json +1 -1
- package/dist/commonjs/i18n/locales/zh.json +1 -1
- package/dist/commonjs/index.d.ts +3 -1
- package/dist/commonjs/index.js +3 -3
- package/dist/commonjs/native/NativeInspector.d.ts +2 -0
- package/dist/commonjs/native/NativeInspector.js +1 -1
- package/dist/commonjs/native/NativeNetworkInspector.d.ts +2 -0
- package/dist/commonjs/types/editor.d.ts +31 -0
- package/dist/esm/components/Inspector/AnalyticsFilterModal.js +73 -75
- package/dist/esm/components/Inspector/BoxModelVisualizer.d.ts +8 -0
- package/dist/esm/components/Inspector/BoxModelVisualizer.js +76 -0
- package/dist/esm/components/Inspector/ConsoleExportModal.js +67 -67
- package/dist/esm/components/Inspector/CrashTab.js +58 -58
- package/dist/esm/components/Inspector/DebuggingTab.js +89 -89
- package/dist/esm/components/Inspector/DeviceInfoTab.js +2 -2
- package/dist/esm/components/Inspector/FabLauncher.js +21 -21
- package/dist/esm/components/Inspector/FloatingCaptureWidget.js +23 -23
- package/dist/esm/components/Inspector/InspectorHeader.js +26 -26
- package/dist/esm/components/Inspector/MediaGalleryTab.js +151 -151
- package/dist/esm/components/Inspector/MediaPreviewModal.d.ts +1 -0
- package/dist/esm/components/Inspector/MediaPreviewModal.js +468 -468
- package/dist/esm/components/Inspector/NetworkExportModal.d.ts +10 -0
- package/dist/esm/components/Inspector/NetworkExportModal.js +333 -0
- package/dist/esm/components/Inspector/NetworkTab.js +118 -111
- package/dist/esm/components/Inspector/NpmStarPrompt.js +32 -33
- package/dist/esm/components/Inspector/ReduxDetail.js +54 -56
- package/dist/esm/components/Inspector/ReduxTab.js +9 -9
- package/dist/esm/components/Inspector/SettingsPanel.js +3 -6
- package/dist/esm/components/Inspector/SocketCard.js +13 -13
- package/dist/esm/components/Inspector/SupportPage.js +5 -5
- package/dist/esm/components/Inspector/UiA11yAuditPanel.d.ts +7 -0
- package/dist/esm/components/Inspector/UiA11yAuditPanel.js +97 -0
- package/dist/esm/components/Inspector/UiInspectorDetail.d.ts +2 -0
- package/dist/esm/components/Inspector/UiInspectorDetail.js +422 -0
- package/dist/esm/components/Inspector/UiInspectorOverlay.d.ts +2 -0
- package/dist/esm/components/Inspector/UiInspectorOverlay.js +138 -0
- package/dist/esm/components/Inspector/UiInspectorTab.d.ts +2 -0
- package/dist/esm/components/Inspector/UiInspectorTab.js +117 -0
- package/dist/esm/components/Inspector/UiLiveStyleTweaker.d.ts +10 -0
- package/dist/esm/components/Inspector/UiLiveStyleTweaker.js +148 -0
- package/dist/esm/components/Inspector/index.d.ts +28 -0
- package/dist/esm/components/Inspector/index.js +1 -0
- package/dist/esm/components/LogCard.js +57 -55
- package/dist/esm/constants/index.js +1 -1
- package/dist/esm/constants/telemetryConfig.d.ts +3 -3
- package/dist/esm/constants/telemetryConfig.js +1 -1
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/crashHandler.d.ts +1 -1
- package/dist/esm/customHooks/crashHandler.js +6 -6
- package/dist/esm/customHooks/uiInspectorManager.d.ts +22 -0
- package/dist/esm/customHooks/uiInspectorManager.js +1 -0
- package/dist/esm/helpers/index.js +4 -6
- package/dist/esm/helpers/searchQueryParser.d.ts +1 -0
- package/dist/esm/helpers/searchQueryParser.js +7 -5
- package/dist/esm/helpers/shareFormatter.d.ts +16 -0
- package/dist/esm/helpers/shareFormatter.js +20 -13
- package/dist/esm/helpers/uiInspectorEngine.d.ts +48 -0
- package/dist/esm/helpers/uiInspectorEngine.js +19 -0
- package/dist/esm/i18n/locales/ar.json +1 -1
- package/dist/esm/i18n/locales/bn.json +1 -1
- package/dist/esm/i18n/locales/de.json +1 -1
- package/dist/esm/i18n/locales/en.json +1 -1
- package/dist/esm/i18n/locales/es.json +1 -1
- package/dist/esm/i18n/locales/fr.json +1 -1
- package/dist/esm/i18n/locales/gu.json +1 -1
- package/dist/esm/i18n/locales/hi.json +1 -1
- package/dist/esm/i18n/locales/id.json +1 -1
- package/dist/esm/i18n/locales/it.json +1 -1
- package/dist/esm/i18n/locales/ja.json +1 -1
- package/dist/esm/i18n/locales/kn.json +1 -1
- package/dist/esm/i18n/locales/ko.json +1 -1
- package/dist/esm/i18n/locales/ml.json +1 -1
- package/dist/esm/i18n/locales/mr.json +1 -1
- package/dist/esm/i18n/locales/nl.json +1 -1
- package/dist/esm/i18n/locales/pa.json +1 -1
- package/dist/esm/i18n/locales/pl.json +1 -1
- package/dist/esm/i18n/locales/pt.json +1 -1
- package/dist/esm/i18n/locales/ru.json +1 -1
- package/dist/esm/i18n/locales/ta.json +1 -1
- package/dist/esm/i18n/locales/te.json +1 -1
- package/dist/esm/i18n/locales/tr.json +1 -1
- package/dist/esm/i18n/locales/vi.json +1 -1
- package/dist/esm/i18n/locales/zh.json +1 -1
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +7 -7
- package/dist/esm/native/NativeInspector.d.ts +2 -0
- package/dist/esm/native/NativeInspector.js +1 -1
- package/dist/esm/native/NativeNetworkInspector.d.ts +2 -0
- package/dist/esm/types/editor.d.ts +31 -0
- package/ios/NetworkInspectorModule.mm +314 -16
- package/package.json +1 -1
- package/src/native/NativeInspector.ts +37 -0
- package/src/native/NativeNetworkInspector.ts +2 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
<
|
|
1
|
+
import Pe,{useCallback as He,useEffect as $e,useMemo as Y,useRef as Le,useState as A}from"react";import{FlatList as We,ScrollView as _,StyleSheet as De,Text as C,TextInput as Ae,TouchableOpacity as Me,View as T}from"react-native";import{useTranslation as je}from"../../i18n";import{useInspector as Ee}from"./InspectorContext";import P from"../TouchableScale";import Ne from"../AnimatedEntrance";import Oe from"../EndOfListFooter";import Je from"./FeatureUnderDevNotice";import Ge from"../HighlightText";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as B}from"../../styles/AppFonts";import{clearCrashRecords as Ue,simulateTestCrash as J}from"../../customHooks/crashHandler";import _e,{DEFAULT_CRASH_FILTERS as Z,isCrashFiltersDefault as M}from"./CrashFilterModal";import{ConfirmationModal as Qe}from"./ConfirmationModal";import{SearchIcon as Ke,ClearIcon as Xe,TrashIcon as Ye,TerminalIcon as Ze,LayersIcon as er,ClockIcon as Cr,ShieldAlertIcon as Tr,FlameIcon as Sr,JsIcon as Ce,HourglassIcon as Te,SkullIcon as kr,LayoutIcon as Se,ChipIcon as Be,AppleIcon as Br,AndroidIcon as Ir,RepeatIcon as Vr,CodeBracketsIcon as Fr,FilterIcon as Rr,ForwardChevronIcon as Pr}from"../NetworkIcons";const Hr=w=>{const H=Date.now(),N=Math.max(0,H-w),$=Math.floor(N/1e3),j=Math.floor($/60),D=Math.floor(j/60),E=Math.floor(D/24);return $<60?`${$}s ago`:j<60?`${j}m ago`:D<24?`${D}h ago`:`${E}d ago`},Ie=10,$r=Pe.memo(()=>{const{t:w}=je(),{crashRecords:H,setSelectedCrash:N,maxCrashLogs:$}=Ee(),j=$||50,D=Le(null),[E,Q]=A(j),[z,G]=A(""),[F,q]=A("all"),[k,K]=A(Z),[ze,X]=A(!1),[Ve,U]=A(!1);$e(()=>{Q($||50),D.current?.scrollToOffset({offset:0,animated:!1})},[z,F,k,$]);const V=Y(()=>{const t=H.length;let x=0,S=0,R=0,I=0,O=0;return H.forEach(W=>{W.isFatal&&x++,W.type==="js"?S++:W.type==="promise"?R++:W.type==="render"?I++:W.type==="native"&&O++}),{total:t,fatalCount:x,jsCount:S,promiseCount:R,renderCount:I,nativeCount:O}},[H]),L=Y(()=>{let t=H.filter(x=>{if(F==="fatal"&&!x.isFatal||F==="js"&&x.type!=="js"||F==="promise"&&x.type!=="promise"||F==="render"&&x.type!=="render"||F==="native"&&x.type!=="native"||k.types.size>0&&!k.types.has("all")&&!(k.types.has("fatal")&&x.isFatal||k.types.has("js")&&x.type==="js"||k.types.has("promise")&&x.type==="promise"||k.types.has("render")&&x.type==="render"||k.types.has("native")&&x.type==="native"))return!1;if(k.timeWindow!=="all"){const S=Date.now(),R=k.timeWindow==="15m"?S-900*1e3:k.timeWindow==="1h"?S-3600*1e3:k.timeWindow==="24h"?S-1440*60*1e3:S-10080*60*1e3;if(x.timestamp<R)return!1}if(k.platform!=="all"&&(x.deviceInfo?.platform||"").toLowerCase()!==k.platform)return!1;if(k.engine!=="all"){const S=x.deviceInfo?.isHermes;if(k.engine==="hermes"&&S!==!0||k.engine==="jsc"&&S===!0)return!1}if(z.trim().length>0){const S=z.trim().toLowerCase().split(/\s+/).filter(Boolean),R=[x.message||"",x.name||"",x.stack||"",x.type||"",x.deviceInfo?.platform||"",...(x.breadcrumbs||[]).map(I=>`${I.type||""} ${I.message||""}`)].join(" ").toLowerCase();return S.every(I=>R.includes(I))}return!0});return k.sortBy==="time_asc"&&(t=[...t].sort((x,S)=>x.timestamp-S.timestamp)),t},[H,F,z,k]),Fe=()=>{U(!0)},Re=He(({item:t,index:x})=>{const S=t.isFatal,R=t.type.toUpperCase(),I=t.parsedStack&&t.parsedStack.length>0?t.parsedStack.find(ve=>ve.isAppCode)||t.parsedStack[0]:null,O=t.type==="native"?`${e.errorColor}22`:t.type==="render"?`${e.purple}22`:t.type==="promise"?`${e.darkOrange}22`:`${e.offerPurple}22`,W=t.type==="native"?e.errorColor:t.type==="render"?e.purple:t.type==="promise"?e.darkOrange:e.offerPurple;return<Ne index={x}distance={8}>
|
|
2
|
+
<P onPress={()=>{N(t)}}style={[r.cardContainer,S&&r.fatalCardBorder]}>
|
|
3
3
|
|
|
4
4
|
<T style={r.cardHeader}>
|
|
5
5
|
<T style={r.badgeRow}>
|
|
@@ -7,11 +7,11 @@ import He,{useCallback as Pe,useEffect as $e,useMemo as Y,useRef as Le,useState
|
|
|
7
7
|
<C style={r.sNoBadgeText}>#{x+1}</C>
|
|
8
8
|
</T>
|
|
9
9
|
|
|
10
|
-
{
|
|
10
|
+
{S?<T style={r.fatalBadge}>
|
|
11
11
|
<Sr size={10}color={e.white}/>
|
|
12
|
-
<C style={r.fatalBadgeText}>{
|
|
12
|
+
<C style={r.fatalBadgeText}>{w("crash.fatalBadge")}</C>
|
|
13
13
|
</T>:<T style={r.caughtBadge}>
|
|
14
|
-
<C style={r.caughtBadgeText}>{
|
|
14
|
+
<C style={r.caughtBadgeText}>{w("crash.handledBadge")}</C>
|
|
15
15
|
</T>}
|
|
16
16
|
|
|
17
17
|
<T style={[r.typeBadge,{backgroundColor:O}]}>
|
|
@@ -27,15 +27,15 @@ import He,{useCallback as Pe,useEffect as $e,useMemo as Y,useRef as Le,useState
|
|
|
27
27
|
{t.timeStr||new Date(t.timestamp).toLocaleTimeString()}
|
|
28
28
|
</C>
|
|
29
29
|
<C style={r.relativeTimeText}>
|
|
30
|
-
{
|
|
30
|
+
{Hr(t.timestamp)}
|
|
31
31
|
</C>
|
|
32
|
-
<
|
|
32
|
+
<Pr size={13}color={e.grayTextWeak}/>
|
|
33
33
|
</T>
|
|
34
34
|
</T>
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
<T style={{marginVertical:6}}>
|
|
38
|
-
<Ge text={t.message||
|
|
38
|
+
<Ge text={t.message||w("crash.unknownException")}highlight={z}numberOfLines={3}style={r.errorMessageText}/>
|
|
39
39
|
</T>
|
|
40
40
|
|
|
41
41
|
|
|
@@ -43,7 +43,7 @@ import He,{useCallback as Pe,useEffect as $e,useMemo as Y,useRef as Le,useState
|
|
|
43
43
|
<Ze size={12}color={e.grayTextWeak}/>
|
|
44
44
|
<C numberOfLines={1}ellipsizeMode="middle"style={r.locationText}>
|
|
45
45
|
{I.method!=="<anonymous>"?`${I.method} `:""}
|
|
46
|
-
<C style={{color:e.purple,fontFamily:
|
|
46
|
+
<C style={{color:e.purple,fontFamily:B.interBold}}>
|
|
47
47
|
{I.file}:{I.lineNumber}
|
|
48
48
|
</C>
|
|
49
49
|
</C>
|
|
@@ -83,50 +83,50 @@ import He,{useCallback as Pe,useEffect as $e,useMemo as Y,useRef as Le,useState
|
|
|
83
83
|
</T>}
|
|
84
84
|
</T>
|
|
85
85
|
</T>
|
|
86
|
-
</
|
|
86
|
+
</P>
|
|
87
87
|
</Ne>},[z,N]);return<T style={r.container}>
|
|
88
|
-
{
|
|
88
|
+
{H.length>0&&<>
|
|
89
89
|
|
|
90
90
|
<T style={r.statsBar}>
|
|
91
91
|
<_ horizontal showsHorizontalScrollIndicator={!1}contentContainerStyle={r.statsScrollContent}>
|
|
92
92
|
<T style={[r.statChip,r.statChipActive]}>
|
|
93
93
|
<C style={r.statChipValue}>{V.total}</C>
|
|
94
|
-
<C style={r.statChipLabel}>{
|
|
94
|
+
<C style={r.statChipLabel}>{w("crash.statCrashes")}</C>
|
|
95
95
|
</T>
|
|
96
96
|
|
|
97
97
|
<T style={r.statChip}>
|
|
98
98
|
<C style={[r.statChipValue,{color:e.errorColor}]}>
|
|
99
99
|
{V.fatalCount}
|
|
100
100
|
</C>
|
|
101
|
-
<C style={r.statChipLabel}>{
|
|
101
|
+
<C style={r.statChipLabel}>{w("crash.statFatal")}</C>
|
|
102
102
|
</T>
|
|
103
103
|
|
|
104
104
|
<T style={r.statChip}>
|
|
105
105
|
<C style={[r.statChipValue,{color:e.offerPurple}]}>
|
|
106
106
|
{V.jsCount}
|
|
107
107
|
</C>
|
|
108
|
-
<C style={r.statChipLabel}>{
|
|
108
|
+
<C style={r.statChipLabel}>{w("crash.statJsErrors")}</C>
|
|
109
109
|
</T>
|
|
110
110
|
|
|
111
111
|
<T style={r.statChip}>
|
|
112
112
|
<C style={[r.statChipValue,{color:e.darkOrange}]}>
|
|
113
113
|
{V.promiseCount}
|
|
114
114
|
</C>
|
|
115
|
-
<C style={r.statChipLabel}>{
|
|
115
|
+
<C style={r.statChipLabel}>{w("crash.statPromises")}</C>
|
|
116
116
|
</T>
|
|
117
117
|
|
|
118
118
|
<T style={r.statChip}>
|
|
119
119
|
<C style={[r.statChipValue,{color:e.purple}]}>
|
|
120
120
|
{V.renderCount}
|
|
121
121
|
</C>
|
|
122
|
-
<C style={r.statChipLabel}>{
|
|
122
|
+
<C style={r.statChipLabel}>{w("crash.statRender")}</C>
|
|
123
123
|
</T>
|
|
124
124
|
|
|
125
125
|
<T style={r.statChip}>
|
|
126
126
|
<C style={[r.statChipValue,{color:e.skyBlue}]}>
|
|
127
127
|
{V.nativeCount}
|
|
128
128
|
</C>
|
|
129
|
-
<C style={r.statChipLabel}>{
|
|
129
|
+
<C style={r.statChipLabel}>{w("crash.statNative")}</C>
|
|
130
130
|
</T>
|
|
131
131
|
</_>
|
|
132
132
|
</T>
|
|
@@ -136,10 +136,10 @@ import He,{useCallback as Pe,useEffect as $e,useMemo as Y,useRef as Le,useState
|
|
|
136
136
|
<T style={r.searchRow}>
|
|
137
137
|
<T style={r.searchInputWrapper}>
|
|
138
138
|
<Ke color={e.grayTextWeak}size={14}/>
|
|
139
|
-
<Ae value={z}onChangeText={G}placeholder={
|
|
139
|
+
<Ae value={z}onChangeText={G}placeholder={w("crash.searchPlaceholder")}placeholderTextColor={e.grayTextWeak}style={r.searchInput}autoCapitalize="none"autoCorrect={!1}/>
|
|
140
140
|
{z.length>0&&<T style={{flexDirection:"row",alignItems:"center",gap:4}}>
|
|
141
141
|
<T style={{backgroundColor:`${e.purple}20`,borderRadius:10,paddingHorizontal:6,paddingVertical:1.5}}>
|
|
142
|
-
<C style={{color:e.purple,fontSize:9.5,fontFamily:
|
|
142
|
+
<C style={{color:e.purple,fontSize:9.5,fontFamily:B.interBold}}>
|
|
143
143
|
{L.length}
|
|
144
144
|
</C>
|
|
145
145
|
</T>
|
|
@@ -150,15 +150,15 @@ import He,{useCallback as Pe,useEffect as $e,useMemo as Y,useRef as Le,useState
|
|
|
150
150
|
</T>
|
|
151
151
|
|
|
152
152
|
|
|
153
|
-
<
|
|
154
|
-
<Rr size={14}color={M(
|
|
155
|
-
{!M(
|
|
156
|
-
</
|
|
153
|
+
<P onPress={()=>X(!0)}style={[r.filterButton,!M(k)&&{borderColor:`${e.brandPurple}60`,backgroundColor:`${e.brandPurple}15`}]}>
|
|
154
|
+
<Rr size={14}color={M(k)?e.grayTextStrong:e.brandPurple}/>
|
|
155
|
+
{!M(k)&&<T style={{position:"absolute",top:2,right:2,width:7,height:7,borderRadius:3.5,backgroundColor:e.darkOrange,borderWidth:1,borderColor:e.white}}/>}
|
|
156
|
+
</P>
|
|
157
157
|
|
|
158
158
|
|
|
159
|
-
<
|
|
159
|
+
<P onPress={Fe}style={r.clearButton}>
|
|
160
160
|
<Ye size={14}color={e.errorColor}/>
|
|
161
|
-
</
|
|
161
|
+
</P>
|
|
162
162
|
</T>
|
|
163
163
|
|
|
164
164
|
<Je featureName="Crash & Exception Sentinel"/>
|
|
@@ -166,19 +166,19 @@ import He,{useCallback as Pe,useEffect as $e,useMemo as Y,useRef as Le,useState
|
|
|
166
166
|
|
|
167
167
|
<T style={{flexDirection:"row",alignItems:"center",marginBottom:8,paddingHorizontal:12,gap:6}}>
|
|
168
168
|
<_ horizontal showsHorizontalScrollIndicator={!1}style={{flex:1}}contentContainerStyle={{flexDirection:"row",alignItems:"center",gap:6,paddingRight:6}}>
|
|
169
|
-
{[{key:"all",label:
|
|
170
|
-
<T style={{flexDirection:"row",alignItems:"center",paddingHorizontal:9,paddingVertical:4.5,borderRadius:8,backgroundColor:x?
|
|
169
|
+
{[{key:"all",label:w("crash.filterAll"),Icon:er,count:V.total,themeColor:e.purple},{key:"fatal",label:w("crash.filterFatal"),Icon:kr,count:V.fatalCount,themeColor:e.errorColor},{key:"js",label:w("crash.filterJsError"),Icon:Ce,count:V.jsCount,themeColor:e.amber600},{key:"promise",label:w("crash.filterPromise"),Icon:Te,count:V.promiseCount,themeColor:e.orange600},{key:"render",label:w("crash.filterRender"),Icon:Se,count:V.renderCount,themeColor:e.violet600},{key:"native",label:w("crash.filterNative"),Icon:Be,count:V.nativeCount,themeColor:e.cyan600}].map(t=>{const x=F===t.key,S=t.themeColor||e.purple,R=x?e.white:S,I=t.Icon;return<P key={t.key}onPress={()=>q(t.key)}>
|
|
170
|
+
<T style={{flexDirection:"row",alignItems:"center",paddingHorizontal:9,paddingVertical:4.5,borderRadius:8,backgroundColor:x?S:`${S}12`,borderWidth:1,borderColor:x?S:`${S}30`,gap:5}}>
|
|
171
171
|
<I size={11}color={R}/>
|
|
172
|
-
<C style={{fontFamily:
|
|
172
|
+
<C style={{fontFamily:B.interBold,fontSize:10.5,color:x?e.white:e.primaryBlack}}>
|
|
173
173
|
{t.label}
|
|
174
174
|
</C>
|
|
175
|
-
<T style={{backgroundColor:x?"rgba(255,255,255,0.25)":`${
|
|
176
|
-
<C style={{fontFamily:
|
|
175
|
+
<T style={{backgroundColor:x?"rgba(255,255,255,0.25)":`${S}20`,paddingHorizontal:5,paddingVertical:1,borderRadius:8,alignItems:"center",justifyContent:"center"}}>
|
|
176
|
+
<C style={{fontFamily:B.interBold,fontSize:9.5,color:x?e.white:S}}>
|
|
177
177
|
{t.count}
|
|
178
178
|
</C>
|
|
179
179
|
</T>
|
|
180
180
|
</T>
|
|
181
|
-
</
|
|
181
|
+
</P>})}
|
|
182
182
|
</_>
|
|
183
183
|
</T>
|
|
184
184
|
</T>
|
|
@@ -190,47 +190,47 @@ import He,{useCallback as Pe,useEffect as $e,useMemo as Y,useRef as Le,useState
|
|
|
190
190
|
<Tr size={38}color={e.greenColor}/>
|
|
191
191
|
</T>
|
|
192
192
|
<C style={r.emptyTitle}>
|
|
193
|
-
{z.length>0?"No matching crash entries":F!=="all"||!M(
|
|
193
|
+
{z.length>0?"No matching crash entries":F!=="all"||!M(k)?"No crashes match filters":w("crash.emptyTitle")}
|
|
194
194
|
</C>
|
|
195
195
|
<C style={r.emptySub}>
|
|
196
|
-
{z?`No crash entries matched "${z}"`:F!=="all"||!M(
|
|
196
|
+
{z?`No crash entries matched "${z}"`:F!=="all"||!M(k)?"Try adjusting your filters or search keywords.":w("crash.emptySubtitle")}
|
|
197
197
|
</C>
|
|
198
|
-
{z.length>0||F!=="all"||!M(
|
|
199
|
-
<C style={{fontFamily:
|
|
200
|
-
Clear Search & Filters
|
|
198
|
+
{z.length>0||F!=="all"||!M(k)?<P onPress={()=>{G(""),q("all"),K(Z)}}style={{marginTop:10,paddingHorizontal:14,paddingVertical:7,borderRadius:8,backgroundColor:e.purple}}>
|
|
199
|
+
<C style={{fontFamily:B.interBold,fontSize:11.5,color:e.white}}>
|
|
200
|
+
{w("common.clearSearchFilters","Clear Search & Filters")}
|
|
201
201
|
</C>
|
|
202
|
-
</
|
|
203
|
-
<C style={{fontFamily:
|
|
204
|
-
TEST CRASH SENTINEL
|
|
202
|
+
</P>:<T style={{marginTop:18,alignItems:"center",width:"100%",paddingHorizontal:16}}>
|
|
203
|
+
<C style={{fontFamily:B.interBold,fontSize:10.5,color:e.grayText,letterSpacing:.6,marginBottom:10}}>
|
|
204
|
+
{w("crash.testCrashSentinel","TEST CRASH SENTINEL")}
|
|
205
205
|
</C>
|
|
206
206
|
<T style={{flexDirection:"row",gap:7,flexWrap:"wrap",justifyContent:"center"}}>
|
|
207
|
-
<
|
|
207
|
+
<P onPress={()=>J("js","Test JavaScript ReferenceError: variable is not defined",void 0,!0)}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:`${e.amber600}14`,borderWidth:1,borderColor:`${e.amber600}38`,paddingHorizontal:9,paddingVertical:6,borderRadius:8}}>
|
|
208
208
|
<Ce size={11}color={e.amber600}/>
|
|
209
|
-
<C style={{fontFamily:
|
|
210
|
-
Simulate JS Crash
|
|
209
|
+
<C style={{fontFamily:B.interBold,fontSize:10.5,color:e.primaryBlack}}>
|
|
210
|
+
{w("crash.simulateJsCrash","Simulate JS Crash")}
|
|
211
211
|
</C>
|
|
212
|
-
</
|
|
212
|
+
</P>
|
|
213
213
|
|
|
214
|
-
<
|
|
214
|
+
<P onPress={()=>J("native","Test Native Crash: SIGSEGV (Segmentation Fault)",void 0,!0)}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:`${e.cyan600}14`,borderWidth:1,borderColor:`${e.cyan600}38`,paddingHorizontal:9,paddingVertical:6,borderRadius:8}}>
|
|
215
215
|
<Be size={11}color={e.cyan600}/>
|
|
216
|
-
<C style={{fontFamily:
|
|
217
|
-
Simulate Native Crash
|
|
216
|
+
<C style={{fontFamily:B.interBold,fontSize:10.5,color:e.primaryBlack}}>
|
|
217
|
+
{w("crash.simulateNativeCrash","Simulate Native Crash")}
|
|
218
218
|
</C>
|
|
219
|
-
</
|
|
219
|
+
</P>
|
|
220
220
|
|
|
221
|
-
<
|
|
221
|
+
<P onPress={()=>J("promise","Unhandled Promise Rejection: Gateway connection timed out",void 0,!0)}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:`${e.orange600}14`,borderWidth:1,borderColor:`${e.orange600}38`,paddingHorizontal:9,paddingVertical:6,borderRadius:8}}>
|
|
222
222
|
<Te size={11}color={e.orange600}/>
|
|
223
|
-
<C style={{fontFamily:
|
|
224
|
-
Simulate Promise
|
|
223
|
+
<C style={{fontFamily:B.interBold,fontSize:10.5,color:e.primaryBlack}}>
|
|
224
|
+
{w("crash.simulatePromise","Simulate Promise")}
|
|
225
225
|
</C>
|
|
226
|
-
</
|
|
226
|
+
</P>
|
|
227
227
|
|
|
228
|
-
<
|
|
228
|
+
<P onPress={()=>J("render","Render Error: Cannot read property of undefined in Component",void 0,!0)}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:`${e.violet600}14`,borderWidth:1,borderColor:`${e.violet600}38`,paddingHorizontal:9,paddingVertical:6,borderRadius:8}}>
|
|
229
229
|
<Se size={11}color={e.violet600}/>
|
|
230
|
-
<C style={{fontFamily:
|
|
231
|
-
Simulate Render
|
|
230
|
+
<C style={{fontFamily:B.interBold,fontSize:10.5,color:e.primaryBlack}}>
|
|
231
|
+
{w("crash.simulateRender","Simulate Render")}
|
|
232
232
|
</C>
|
|
233
|
-
</
|
|
233
|
+
</P>
|
|
234
234
|
</T>
|
|
235
235
|
</T>}
|
|
236
236
|
</_>:<>
|
|
@@ -238,7 +238,7 @@ import He,{useCallback as Pe,useEffect as $e,useMemo as Y,useRef as Le,useState
|
|
|
238
238
|
</>}
|
|
239
239
|
|
|
240
240
|
|
|
241
|
-
<_e visible={ze}onClose={()=>X(!1)}filters={
|
|
241
|
+
<_e visible={ze}onClose={()=>X(!1)}filters={k}onApply={K}searchQuery={z}/>
|
|
242
242
|
|
|
243
|
-
<Qe visible={Ve}title={
|
|
244
|
-
</T>});export default $r;const r=De.create({container:{flex:1,backgroundColor:e.grayBackground},statsBar:{backgroundColor:e.primaryLight,borderBottomWidth:1,borderBottomColor:e.grayBorderSecondary,paddingVertical:10},statsScrollContent:{paddingHorizontal:8,gap:6},statChip:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:10,paddingVertical:5,borderRadius:8,backgroundColor:e.purpleShade50,borderWidth:1,borderColor:`${e.purple}14`},statChipActive:{backgroundColor:`${e.purple}14`,borderColor:`${e.purple}33`},statChipValue:{fontFamily:
|
|
243
|
+
<Qe visible={Ve}title={w("crash.clearTitle","Clear Crash Records")}message={w("crash.clearMessage","Are you sure you want to clear all intercepted crash records?")}confirmText={w("crash.clearConfirm","Clear All")}cancelText={w("crash.clearCancel","Cancel")}isDestructive={!0}icon="trash"onConfirm={()=>{U(!1),Ue()}}onCancel={()=>U(!1)}/>
|
|
244
|
+
</T>});export default $r;const r=De.create({container:{flex:1,backgroundColor:e.grayBackground},statsBar:{backgroundColor:e.primaryLight,borderBottomWidth:1,borderBottomColor:e.grayBorderSecondary,paddingVertical:10},statsScrollContent:{paddingHorizontal:8,gap:6},statChip:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:10,paddingVertical:5,borderRadius:8,backgroundColor:e.purpleShade50,borderWidth:1,borderColor:`${e.purple}14`},statChipActive:{backgroundColor:`${e.purple}14`,borderColor:`${e.purple}33`},statChipValue:{fontFamily:B.interBold,fontSize:13,color:e.primaryBlack},statChipLabel:{fontFamily:B.interMedium,fontSize:11,color:e.grayText},controlsContainer:{paddingHorizontal:8,paddingTop:10,paddingBottom:6,backgroundColor:e.grayBackground},searchRow:{flexDirection:"row",alignItems:"center",gap:8},searchInputWrapper:{flex:1,flexDirection:"row",alignItems:"center",backgroundColor:e.primaryLight,borderWidth:1,borderColor:e.grayBorderSecondary,borderRadius:10,paddingHorizontal:10,height:38,gap:8},searchInput:{flex:1,fontFamily:B.interRegular,fontSize:13,color:e.primaryBlack,paddingVertical:0},clearButton:{width:38,height:38,borderRadius:10,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}22`,alignItems:"center",justifyContent:"center"},filterButton:{width:38,height:38,borderRadius:10,backgroundColor:`${e.brandPurple}0F`,borderWidth:1,borderColor:`${e.brandPurple}30`,alignItems:"center",justifyContent:"center"},filterScrollContent:{paddingVertical:10,gap:6},filterChip:{flexDirection:"row",alignItems:"center",gap:5,paddingHorizontal:10,paddingVertical:5.5,borderRadius:8,backgroundColor:e.primaryLight,borderWidth:1,borderColor:e.grayBorderSecondary},filterChipActive:{backgroundColor:e.purple,borderColor:e.purple},filterChipText:{fontFamily:B.interMedium,fontSize:12,color:e.grayText},filterChipTextActive:{fontFamily:B.interBold,color:e.white},listContent:{paddingHorizontal:8,paddingTop:4,paddingBottom:24,gap:8},cardContainer:{backgroundColor:e.primaryLight,borderRadius:12,borderWidth:1,borderColor:e.grayBorderSecondary,padding:10,shadowColor:e.shadowColorString,shadowOffset:{width:0,height:1},shadowOpacity:.05,shadowRadius:3,elevation:2},fatalCardBorder:{borderColor:`${e.errorColor}44`},cardHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},badgeRow:{flexDirection:"row",alignItems:"center",gap:6,flexShrink:1},sNoBadge:{backgroundColor:e.grayBackground,borderWidth:1,borderColor:e.grayBorderSecondary,paddingHorizontal:6,paddingVertical:3,borderRadius:5},sNoBadgeText:{fontFamily:B.interBold,fontSize:9.5,color:e.grayText,letterSpacing:.3},fatalBadge:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:e.errorColor,paddingHorizontal:6,paddingVertical:3,borderRadius:5},fatalBadgeText:{fontFamily:B.interBold,fontSize:9.5,color:e.white,letterSpacing:.5},caughtBadge:{backgroundColor:`${e.greenColor}1F`,paddingHorizontal:6,paddingVertical:3,borderRadius:5},caughtBadgeText:{fontFamily:B.interBold,fontSize:9.5,color:e.greenColor,letterSpacing:.5},typeBadge:{paddingHorizontal:6,paddingVertical:3,borderRadius:5},typeBadgeText:{fontFamily:B.interBold,fontSize:9.5,letterSpacing:.5},timeRow:{flexDirection:"row",alignItems:"center",gap:4,flexShrink:1},timestampText:{fontFamily:B.interRegular,fontSize:11,color:e.grayTextWeak},relativeTimeText:{fontFamily:B.interBold,fontSize:10,color:e.grayTextWeak,backgroundColor:e.grayBackground,paddingHorizontal:5,paddingVertical:1,borderRadius:4,overflow:"hidden"},errorMessageText:{fontFamily:B.interBold,fontSize:13.5,color:e.primaryBlack,lineHeight:18},locationRow:{flexDirection:"row",alignItems:"center",gap:6,marginTop:2,marginBottom:6,backgroundColor:e.purpleShade50,paddingHorizontal:8,paddingVertical:4,borderRadius:6},locationText:{fontFamily:B.interRegular,fontSize:11,color:e.grayText,flex:1},cardFooter:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginTop:6,paddingTop:8,borderTopWidth:1,borderTopColor:e.dividerColor},metaPill:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:e.purpleShade50,paddingHorizontal:6,paddingVertical:2,borderRadius:4},metaPillText:{fontFamily:B.interMedium,fontSize:10,color:e.grayTextWeak},emptyContainer:{flexGrow:1,alignItems:"center",justifyContent:"center",padding:32,paddingBottom:80},emptyIconCircle:{width:72,height:72,borderRadius:36,backgroundColor:`${e.greenColor}1F`,alignItems:"center",justifyContent:"center",marginBottom:16},emptyTitle:{fontFamily:B.interBold,fontSize:17,color:e.primaryBlack,marginBottom:6},emptySub:{fontFamily:B.interRegular,fontSize:13,color:e.grayText,textAlign:"center",lineHeight:18,maxWidth:280}});
|