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
package/dist/esm/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import Ms,{useEffect as l,useMemo as h,useRef as C,useState as o,useCallback as A}from"react";import{Alert as An,Animated as f,Easing as bo,PanResponder as Mn,Platform as Ns,UIManager as Nn,LogBox as wo}from"react-native";import{NavigationContext as Tn}from"@react-navigation/native";import{I18nextProvider as Pn,i18n as En,setLanguage as kn,getLanguage as In,useTranslation as Dn}from"./i18n";import Fn from"./components/ErrorBoundary";import On from"./components/Inspector/MainScreen";import Bn from"./components/Inspector/GlobalCrashScreenModal";import{InspectorContext as _n,animateNextLayout as Vn}from"./components/Inspector/InspectorContext";import{formatDisplayUrl as Un,getNavigationInfo as Ro,getLogPageName as Ts,deduplicateLogs as vs,getDomainColor as Ao,getEventCategory as qn,matchNetworkLogQuery as Hn,setupMemoryWarningHandler as Wn,isUrlHidden as Gn}from"./helpers";import{loadSettings as zn,saveSettings as jn,setCustomStorage as Jn,clearPersistedSettings as $n,calculateRamBasedLimits as Mo}from"./helpers/settingsStore";import{getNativeSystemMetrics as Qn,pushNativeLogRecord as Ge,fetchNativeCachedPage as Xn}from"./native/NativeInspector";import{setupNetworkLogger as Yn,clearNetworkLogs as Ps,subscribeNetworkLogs as Zn,getNetworkLogs as Kn,setNetworkModuleEnabled as ea,setMaxNetworkLogsLimit as ta,setRouteInfoProvider as No}from"./customHooks/networkLogger";import{setupConsoleLogger as sa,clearConsoleLogs as To,subscribeConsoleLogs as ra,setConsoleModuleEnabled as oa}from"./customHooks/consoleLogger";import{IGNORED_LOG_PREFIXES as Re}from"./customHooks/logFilters";import{setupGlobalCrashHandler as na,subscribeCrashEvents as aa,getCrashRecords as Ot,clearCrashRecords as vo,setMaxCrashLogsLimit as Po,setCrashModuleEnabled as ia,DEFAULT_CRASH_IGNORED_TYPES as Eo,setCrashIgnoredTypesConfig as la,setCrashModalTriggerPolicyConfig as ca,applyCrashPolicyPreset as ua}from"./customHooks/crashHandler";import{subscribePushEvents as fa,getPushRecords as da,clearPushRecords as pa,setMaxPushRecordsLimit as ma,simulateTestPush as ha}from"./customHooks/pushNotificationLogger";import{setupSocketLogger as ga,clearSocketRecords as Sa,subscribeSocketRecords as ya,getSocketRecords as Ca,setSocketModuleEnabled as xa,setMaxSocketRecordsLimit as La,simulateTestSocket as ba,setSocketRouteInfoProvider as ko,deleteSocketRecord as wa,deleteMultipleSocketRecords as Ra}from"./customHooks/socketLogger";import{trackActiveTelemetryHeartbeat as Aa,setTelemetryEnabled as Io,trackInspectorTabView as Do,trackInspectorScreenView as Ma}from"./helpers/telemetry";import{subscribeAnalyticsEvents as Na,clearAnalyticsEvents as Fo,autoSetupAnalyticsLogger as Ta,isAnalyticsConnected as Es,setAnalyticsModuleEnabled as va}from"./customHooks/analyticsLogger";import{getReduxState as ks,subscribeReduxState as Pa,setReduxAutoRefresh as Ea,getLastActionForReducer as Is,clearActionHistory as ka,isReduxConnected as Ds,setReduxModuleEnabled as Ia}from"./customHooks/reduxLogger";import{hideNativeFloatingButton as Ae,subscribeNativeFloatingButtonPress as Da,subscribeNativeDeviceShake as Fa,isNativeModuleAvailable as Oa}from"./native/NativeInspector";import{fetchRemoteConfigSettings as Ba}from"./helpers/remoteConfig";import{ScreenCapture as _a}from"./capture";import{LIB_VERSION as Va,DEFAULT_HIDDEN_URL_PATTERNS as Fs}from"./constants";import{toggleGlobalTheme as Oo}from"./styles";const Ua=({enabled:k=!0,storage:W,navigationRef:v,appIcon:Bs,environment:_s,initialVisible:Bo=!1,visible:ze,remoteConfig:je=!1,captureWidgetEnabled:_o})=>{Jn(W||null);const{t:m}=Dn(),[Je,Bt]=o(!1),[Vs,$e]=o(null),[Us,Qe]=o({}),[Xe,_t]=o(90),[Ye,Vt]=o("slide"),[b,te]=o([]),[g,G]=o(ze??Bo??!1),[qs,Ut]=o(!1),[qt,Hs]=o(!1),Vo=A(()=>{Ut(!0),G(!1)},[]),Uo=A(()=>{Hs(!0),G(!1),Ae().catch(()=>{})},[]);l(()=>{ze!==void 0&&G(ze)},[ze]);const[Ws,Gs]=o(!1),[y,Ht]=o(null),[Ze,Me]=o(new Set),[Ke,le]=o(new Set),[zs,I]=o({visible:!1,title:"",message:"",onConfirm:()=>{}}),[M,js]=o(""),[Ne,qo]=o("all"),[Te,Ho]=o(!1),[ve,Wo]=o(!1),[ce,Wt]=o(!0),[se,Gt]=o(()=>[...Fs]),[D,Go]=o("all"),[Js,zt]=o(""),[$s,zo]=o(""),[Qs,jt]=o(null),[Xs,Jt]=o(null),[Ys,jo]=o("state"),[Zs,Ks]=o("response");l(()=>(wo.ignoreAllLogs(k),()=>{wo.ignoreAllLogs(!1)}),[k]),l(()=>{y&&(Ks("response"),zt(""))},[y]);const[re,$t]=o(new Set),[oe,Qt]=o(new Set),[ue,Jo]=o("all"),[Pe,$o]=o("all"),[fe,Qo]=o("time_desc"),[er,Xt]=o({}),[Yt,et]=o(()=>new Map),[tr,tt]=o({}),[sr,Xo]=o(!0),[st,Yo]=o("newest"),[rt,Zo]=o("newest"),[rr,or]=o(!0),[nr,ar]=o(!0),[ir,lr]=o(!1),[cr,ur]=o(!1),[u,z]=o("apis"),[ot,de]=o([]),[ne,ae]=o([]),Zt=C([]),Kt=C([]),es=C([]),[fr,ts]=o(null),[dr,pr]=o(0),[mr,hr]=o(0),[gr,Sr]=o(0),[yr,Cr]=o(0),[xr,Ko]=o(null),nt=A(async()=>{try{const t=await _a.getMediaList(),e=t?t.length:0;return Cr(e),e}catch{return Cr(0),0}},[]);l(()=>{g&&nt()},[g,nt]);const[Ee,j]=o(()=>Ot()),[Lr,ie]=o(null),[ss,ke]=o(null),[J,at]=o(50),[pe,rs]=o(()=>({...Eo})),[me,br]=o("fatal_only");l(()=>{Po(J)},[J]),l(()=>{la(pe)},[pe]),l(()=>{ca(me)},[me]);const wr=A(t=>{const e=ua(t);rs(e)},[]);l(()=>{g&&(u==="apis"&&hr(b.length),u==="logs"&&pr(ne.length),u==="crash"&&Sr(Ee.length))},[g]),l(()=>{u==="apis"&&hr(b.length)},[u,b.length]),l(()=>{u==="logs"&&pr(ne.length)},[u,ne.length]),l(()=>{u==="crash"&&Sr(Ee.length)},[u,Ee.length]);const[$,Rr]=o(()=>da()),[Ar,Mr]=o(null),[Ie,en]=o(""),[q,tn]=o("all"),[it,sn]=o(0),[lt,os]=o(50);l(()=>{ma(lt)},[lt]),l(()=>fa(e=>{Rr(e)}),[]);const Nr=h(()=>u==="push"?0:Math.max(0,$.length-it),[u,$.length,it]);l(()=>{g&&u==="push"&&sn($.length)},[g,u,$.length]);const Tr=h(()=>{let t=$;if(q!=="all"){if(q==="foreground")t=t.filter(e=>(e.appState||"").toLowerCase()==="foreground");else if(q==="background")t=t.filter(e=>(e.appState||"").toLowerCase()==="background");else if(q==="opened")t=t.filter(e=>e.action==="opened");else if(q.startsWith("source:")){const e=q.replace("source:","").toLowerCase();t=t.filter(s=>(s.source||"").toLowerCase()===e)}}if(Ie.trim()){const e=Ie.trim().toLowerCase();t=t.filter(s=>!!(s.title&&s.title.toLowerCase().includes(e)||s.body&&s.body.toLowerCase().includes(e)||s.id&&s.id.toLowerCase().includes(e)||s.source&&s.source.toLowerCase().includes(e)||s.domain&&s.domain.toLowerCase().includes(e)||s.channelId&&s.channelId.toLowerCase().includes(e)||s.data&&JSON.stringify(s.data).toLowerCase().includes(e)))}return t},[$,q,Ie]),[Q,ct]=o(()=>Ca()),[De,he]=o(null),[Fe,rn]=o(""),[O,on]=o("all"),[ut,nn]=o(0),[ft,an]=o(50);l(()=>{La(ft)},[ft]),l(()=>ya(e=>{ct(e)}),[]);const vr=h(()=>u==="socket"?0:Math.max(0,Q.length-ut),[u,Q.length,ut]);l(()=>{g&&u==="socket"&&nn(Q.length)},[g,u,Q.length]);const Pr=h(()=>{let t=Q;if(O!=="all"&&(O==="open"?t=t.filter(e=>(e.status||"open").toLowerCase()==="open"):O==="closed"?t=t.filter(e=>(e.status||"").toLowerCase()==="closed"):O==="error"?t=t.filter(e=>(e.status||"").toLowerCase()==="error"):O==="sio"?t=t.filter(e=>e.client==="socket.io"||e.url.includes("/socket.io")):O==="wss"?t=t.filter(e=>e.url.startsWith("wss://")):O==="ws"&&(t=t.filter(e=>e.url.startsWith("ws://")))),Fe.trim()){const e=Fe.trim().toLowerCase();t=t.filter(s=>!!(s.url&&s.url.toLowerCase().includes(e)||s.id&&s.id.toLowerCase().includes(e)||s.client&&s.client.toLowerCase().includes(e)||s.caller&&s.caller.toLowerCase().includes(e)||s.query&&JSON.stringify(s.query).toLowerCase().includes(e)||s.frames&&s.frames.some(r=>!!(r.eventName&&r.eventName.toLowerCase().includes(e)||typeof r.data=="string"&&r.data.toLowerCase().includes(e)||r.data&&typeof r.data=="object"&&JSON.stringify(r.data).toLowerCase().includes(e)))))}return t},[Q,O,Fe]),[ge,dt]=o(300),[X,ns]=o({info:!0,warn:!0,error:!0}),Y=h(()=>ne.filter(e=>{const s=e.type;if(s==="info"&&!X?.info||s==="warn"&&!X?.warn||s==="error"&&!X?.error)return!1;const r=e.message||"";return![...Re&&Re.info||[],...Re&&Re.warn||[],...Re&&Re.error||[]].filter(p=>typeof p=="string"&&p.trim().length>0).some(p=>r.toLowerCase().trim().startsWith(p.toLowerCase().trim())||r.toLowerCase().trim().includes(p.toLowerCase().trim()))}).slice(0,ge),[ne,X,ge]),[B,Er]=o(""),[_,as]=o(new Set(["user-log"])),[kr,ln]=o(null),[Ir,cn]=o(!1),[Dr,un]=o(!1),[Fr,fn]=o("module"),[P,pt]=o({apis:!0,logs:!0,perf:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,debugging:!0,media:!0}),[F,mt]=o(250),[Se,ht]=o(150),[ye,is]=o(!0),[ls,dn]=o(1800),[Ce,cs]=o(!0),[gt,us]=o(1),[St,fs]=o(60),[yt,ds]=o(.5),[Ct,ps]=o(0),[xt,ms]=o(120),[Lt,hs]=o("png"),[bt,gs]=o("none"),[wt,Ss]=o(!0),[Rt,ys]=o(!0),[At,Mt]=o(_o??!0),[Or,pn]=o(!1),[Nt,Cs]=o(.3),[Z,Tt]=o("apis"),[K,xs]=o(!1),[Ls,bs]=o(!0),[Br,mn]=o(!1);l(()=>{ea(!!P.apis),oa(!!P.logs),va(!!P.analytics),Ia(!!P.redux),ia(!!P.crash),xa(!!P.socket)},[P]),l(()=>{Qn().then(t=>{if(t){const e=t.totalPhysicalRamMb-t.residentRamMb,s=Math.max(200,Math.round(e>0?e:1500));if(dn(s),ye){const r=Mo(s);mt(r.maxNetworkLogs),dt(r.maxConsoleLogs),ht(r.maxAnalyticsEvents),at(r.maxCrashRecords),os(r.maxPushRecords)}}}).catch(()=>{})},[ye]);const hn=async()=>{await $n(),Bt(!1),Oo(!1),_t(90),Vt("slide"),pt({apis:!0,logs:!0,perf:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,debugging:!0,media:!0}),Tt("apis"),is(!0);const t=Mo(ls);at(t.maxCrashRecords),mt(t.maxNetworkLogs),dt(t.maxConsoleLogs),ht(t.maxAnalyticsEvents),os(t.maxPushRecords),ns({info:!0,warn:!0,error:!0}),cs(!0),us(1),fs(30),ds(1),ps(0),ms(120),hs("png"),gs("none"),Ss(!0),ys(!0),Mt(!0),xs(!1),bs(!0),Cs(.3),as(new Set(["user-log"])),Gt([...Fs]),An.alert("Settings Reset","All settings have been reset to default values.")},_r=C(!1);l(()=>{let t=!1;return zn().then(e=>{if(!t){if(e.language&&kn(e.language),e.isDark!=null&&(Bt(e.isDark),Oo(e.isDark)),e.modalHeightPercent!=null&&_t(e.modalHeightPercent),e.modalAnimationType&&Vt(e.modalAnimationType),e.tabVisibility&&pt(s=>({...s,...e.tabVisibility,apis:!0})),e.defaultTab&&Tt(e.defaultTab),e.isAutoRamLimitEnabled!=null&&is(e.isAutoRamLimitEnabled),e.maxNetworkLogs!=null&&mt(e.maxNetworkLogs),e.maxConsoleLogs!=null&&dt(e.maxConsoleLogs),e.maxAnalyticsEventsLimit!=null&&ht(e.maxAnalyticsEventsLimit),e.maxCrashLogs!=null&&at(e.maxCrashLogs),e.crashIgnoredTypes!=null&&rs({...Eo,...e.crashIgnoredTypes}),e.crashModalTriggerPolicy!=null&&br(e.crashModalTriggerPolicy),e.showConsoleLevels&&ns(e.showConsoleLevels),e.reduxAutoRefresh!=null&&cs(e.reduxAutoRefresh),e.reduxExpandDepth!=null&&us(e.reduxExpandDepth),e.captureFps!=null&&fs(e.captureFps),e.captureScale!=null&&ds(e.captureScale),e.captureBitrate!=null&&ps(e.captureBitrate),e.captureMaxDurationSeconds!=null&&ms(e.captureMaxDurationSeconds),e.captureImageFormat&&hs(e.captureImageFormat),e.captureAudioMode&&gs(e.captureAudioMode),e.captureAutoHide!=null&&Ss(e.captureAutoHide),e.captureAutoGif!=null&&ys(e.captureAutoGif),e.captureWidgetEnabled!=null&&Mt(e.captureWidgetEnabled),e.peekOpacity!=null&&Cs(Math.max(.05,Math.min(1,e.peekOpacity))),e.showDuplicateLogs!=null&&xs(e.showDuplicateLogs),e.showUpdateToast!=null&&bs(e.showUpdateToast),e.isGroupByPageEnabled!=null&&Wt(e.isGroupByPageEnabled),Array.isArray(e.hiddenUrlPatterns)){const s=Array.from(new Set([...Fs,...e.hiddenUrlPatterns]));Gt(s)}if(e.defaultTab){const s=e.defaultTab,r={apis:!0,logs:!0,analytics:!1,redux:!1,crash:!1,device:!1,storage:!1,...e.tabVisibility||{},apis:!0};z(r[s]?s:"apis")}_r.current=!0}}),()=>{t=!0}},[]),l(()=>{let t=!0;if(je)return Ba(typeof je=="object"?je:{}).then(e=>{!t||!e||(e.modules&&pt(s=>({...s,...e.modules,apis:e.modules?.apis??!0})),e.captureWidgetEnabled!==void 0&&Mt(e.captureWidgetEnabled))}).catch(()=>{}),()=>{t=!1}},[je]),l(()=>{_r.current&&jn({isDark:Je,language:In(),modalHeightPercent:Xe,modalAnimationType:Ye,tabVisibility:P,defaultTab:Z,maxNetworkLogs:F,maxConsoleLogs:ge,maxAnalyticsEventsLimit:Se,maxCrashLogs:J,crashIgnoredTypes:pe,crashModalTriggerPolicy:me,isAutoRamLimitEnabled:ye,isGroupByPageEnabled:ce,showConsoleLevels:X,reduxAutoRefresh:Ce,reduxExpandDepth:gt,showDuplicateLogs:K,showUpdateToast:Ls,captureFps:St,captureScale:yt,captureBitrate:Ct,captureMaxDurationSeconds:xt,captureImageFormat:Lt,captureAudioMode:bt,captureAutoHide:wt,captureAutoGif:Rt,captureWidgetEnabled:At,peekOpacity:Nt,hiddenUrlPatterns:se})},[Je,Xe,Ye,P,Z,F,ge,Se,J,pe,me,ye,ce,X,Ce,gt,K,St,yt,Ct,xt,Lt,bt,wt,Rt,At,Nt]);const[Oe,gn]=o(null),Vr=h(()=>{if(!Oe)return!1;const t=r=>r.replace(/^v/,"").split(".").map(n=>parseInt(n,10)||0),e=t(Va),s=t(Oe);for(let r=0;r<3;r++){if((s[r]||0)>(e[r]||0))return!0;if((s[r]||0)<(e[r]||0))return!1}return!1},[Oe]);l(()=>{if(typeof __DEV__>"u"||!__DEV__)return;let t=!1;return fetch("https://registry.npmjs.org/react-native-inapp-inspector/latest").then(e=>e.ok?e.json():null).then(e=>{!t&&e&&typeof e.version=="string"&&gn(e.version)}).catch(()=>{}),()=>{t=!0}},[]),l(()=>{Ea(Ce)},[Ce]),l(()=>{u==="redux"&&!Ds()&&z("apis"),u==="analytics"&&!Es()&&z("apis")},[u]);const Ur=t=>{t!=="apis"&&(t==="redux"&&!Ds()||t==="analytics"&&!Es()||pt(e=>{const s=!e[t],r={...e,[t]:s};return!s&&u===t&&(Vn(),z("apis")),!s&&Z===t&&Tt("apis"),r}))},ws=A(async(t,e="")=>{if(t==="apis"||t==="logs"||t==="analytics"||t==="crash"){const s=await Xn(t,0,100,e);s&&s.items&&s.items.length>0&&(t==="apis"?te(s.items):t==="logs"?ae(s.items):t==="analytics"?de(s.items):t==="crash"&&j(s.items))}},[]),qr=A(t=>{t==="redux"&&!Ds()||t==="analytics"&&!Es()||(Ht(null),vt(null),ts(null),jt(null),Jt(null),ie(null),he(null),typeof Ms.startTransition=="function"?Ms.startTransition(()=>{z(t),ws(t)}):(z(t),ws(t)),Do(t))},[ws]),[Hr,vt]=o(null),[xe,Wr]=o(""),[a,Gr]=o({categories:new Set(["all"]),screens:new Set,sources:new Set(["all"]),userTypes:new Set(["all"]),timeWindow:"all",payloadComplexity:"all",hasRevenue:!1,hasItems:!1,hasUserProps:!1,hasParams:!1,onlyDuplicates:!1,onlyConversions:!1,sortBy:"time_desc"}),zr=h(()=>!!(a.categories.size>0&&!a.categories.has("all")||a.screens.size>0||a.sources.size>0&&!a.sources.has("all")||a.userTypes.size>0&&!a.userTypes.has("all")||a.timeWindow!=="all"||a.payloadComplexity!=="all"||a.hasRevenue||a.hasItems||a.hasUserProps||a.hasParams||a.onlyDuplicates||a.onlyConversions||a.sortBy!=="time_desc"),[a]),jr=A(()=>{Gr({categories:new Set(["all"]),screens:new Set,sources:new Set(["all"]),userTypes:new Set(["all"]),timeWindow:"all",payloadComplexity:"all",hasRevenue:!1,hasItems:!1,hasUserProps:!1,hasParams:!1,onlyDuplicates:!1,onlyConversions:!1,sortBy:"time_desc"})},[]),[Jr,Sn]=o(!1),[$r,yn]=o(!1),[Qr,Xr]=o(new Set),Be=C(new Set),[Pt,Rs]=o(null),Yr=Ms.useContext(Tn)!==void 0,E=C({path:"",params:null});l(()=>(No(()=>E.current),ko(()=>E.current),()=>{No(null),ko(null)}),[]),l(()=>{if(Pt){const t=Ro(Pt);t?.path&&(E.current=t)}},[Pt]),l(()=>{if(!v)return;const t=()=>{try{if(typeof v.isReady=="function"&&v.isReady()){const s=typeof v.getCurrentRoute=="function"?v.getCurrentRoute():null;s?.name&&(E.current={path:s.name,params:s.params||null});const r=v.getRootState();if(r){Rs(r);const n=Ro(r);n?.path&&(E.current=n)}}}catch{}};t();const e=typeof v.addListener=="function"?v.addListener("state",()=>{t()}):null;return()=>{e&&e()}},[v]);const x=C(new Map),Le=C(new Set),[Zr,Kr]=o(new Set),_e=C(new f.Value(1)).current,Ve=C(new f.Value(.4)).current,Ue=C(new f.Value(1)).current,qe=C(new f.Value(0)).current,He=C(new f.Value(0)).current,N=C(new f.ValueXY({x:0,y:0})).current,Et=C({x:0,y:0});l(()=>{const t=N.x.addListener(s=>Et.current.x=s.value),e=N.y.addListener(s=>Et.current.y=s.value);return()=>{N.x.removeListener(t),N.y.removeListener(e)}},[N]);const kt=C(!1),eo=C(Mn.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(t,e)=>Math.abs(e.dx)>4||Math.abs(e.dy)>4,onPanResponderGrant:()=>{kt.current=!0,N.setOffset({x:Et.current.x,y:Et.current.y}),N.setValue({x:0,y:0})},onPanResponderMove:f.event([null,{dx:N.x,dy:N.y}],{useNativeDriver:!1}),onPanResponderRelease:()=>{N.flattenOffset(),setTimeout(()=>{kt.current=!1},50)},onPanResponderTerminate:()=>{N.flattenOffset(),kt.current=!1}})).current,to=A(()=>{f.sequence([f.timing(He,{toValue:1,duration:320,useNativeDriver:!1}),f.timing(He,{toValue:0,duration:0,useNativeDriver:!1})]).start(),xn()},[He]);l(()=>{Ns.OS==="android"&&Nn.setLayoutAnimationEnabledExperimental?.(!0)},[]),l(()=>{if(g)return;const t=f.loop(f.sequence([f.timing(_e,{toValue:1.2,duration:800,useNativeDriver:!1}),f.timing(_e,{toValue:1,duration:800,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[_e,g]),l(()=>{if(g)return;const t=f.loop(f.sequence([f.timing(qe,{toValue:1,duration:3200,easing:bo.inOut(bo.ease),useNativeDriver:!1}),f.delay(3500),f.timing(qe,{toValue:0,duration:0,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[qe,g]),l(()=>{const t=f.loop(f.sequence([f.timing(Ve,{toValue:1,duration:1200,useNativeDriver:!1}),f.timing(Ve,{toValue:.4,duration:1200,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Ve]),l(()=>{const t=f.loop(f.sequence([f.timing(Ue,{toValue:1.3,duration:800,useNativeDriver:!1}),f.timing(Ue,{toValue:.8,duration:800,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Ue]);const Cn=h(()=>Oa(),[]),ee=(Ns.OS==="ios"||Ns.OS==="android")&&Cn;l(()=>{ee&&Ae().catch(()=>{})},[ee,g,qt]),l(()=>{if(!ee)return;const t=Da(()=>{Ae().catch(()=>{}),G(!0)});return()=>{t()}},[ee]),l(()=>{if(!ee)return;const t=Fa(()=>{G(e=>{const s=!e;return s&&Ae().catch(()=>{}),s})});return()=>{t()}},[ee]);const so=C(g);l(()=>{if(so.current=g,g){Ma("InspectorModal");const t=Z==="apis"||P?.[Z]?Z:"apis";z(t),Do(t);const e=Zt.current.length>0?Zt.current:Kn();if(e.length>0){const i=vs(e),p=new Set(i.map(S=>S.id));Le.current=p,i.forEach(S=>{if(!x.current.has(S.id)){const R=S?.routeInfo||E.current;x.current.set(S.id,R)}}),te(i)}Kt.current.length>0&&ae(Kt.current),es.current.length>0&&de(es.current);const s=ks();s&&($e(typeof s=="object"?{...s}:s),Qe({...Is()}));const r=Ot();r.length>0&&j(r);const n=requestAnimationFrame(()=>{Gs(!0)});return()=>{cancelAnimationFrame(n)}}else Gs(!1),Me(new Set),le(new Set)},[g]),l(()=>{Yn(),Ps(),sa(),Ta(),na(),ga();const t=Wn(),e=so,s=aa(c=>{if(c.message==="__CLEARED__"){j([]),ie(null),ke(null);return}const H=Ot();H.length>0&&Ge("crash",JSON.stringify(H[0])),j(H),c.crashRecord&&c.shouldShowModal!==!1&&ke(c.crashRecord)}),r=Ot();r.length>0&&(r.forEach(c=>Ge("crash",JSON.stringify(c))),j(r));let n,i=!0;const p=Zn(c=>{if(Zt.current=c,c.length>0&&Ge("apis",JSON.stringify(c[0])),!e.current)return;clearTimeout(n);const H=()=>{const L=vs(c),T=new Set(L.map(U=>U.id)),d=new Set;T.forEach(U=>{Le.current.has(U)||d.add(U)}),Le.current=T,d.size>0&&(d.forEach(U=>{if(!x.current.has(U)){const wn=L.find(Rn=>Rn.id===U)?.routeInfo||E.current;x.current.set(U,wn)}}),Kr(d),setTimeout(()=>Kr(new Set),1200)),te(L)};if(i){i=!1;const L=vs(c),T=new Set(L.map(d=>d.id));Le.current=T,L.forEach(d=>{if(!x.current.has(d.id)){const U=d?.routeInfo||E.current;x.current.set(d.id,U)}}),te(L)}else n=setTimeout(H,250)});let S,R=!0;const As=Na(c=>{if(es.current=c,c.length>0&&Ge("analytics",JSON.stringify(c[0])),!e.current)return;clearTimeout(S);const H=()=>{const L=new Set(c.map(d=>d.id)),T=new Set;L.forEach(d=>{Be.current.has(d)||T.add(d)}),Be.current=L,T.size>0&&(T.forEach(d=>{x.current.has(d+1e6)||x.current.set(d+1e6,E.current)}),Xr(T),setTimeout(()=>Xr(new Set),1200)),de(c)};if(R){R=!1;const L=new Set(c.map(T=>T.id));Be.current=L,de(c)}else S=setTimeout(H,200)});let be,Ft=!0;const V=ra(c=>{Kt.current=c,c.length>0&&Ge("logs",JSON.stringify(c[0])),e.current&&(clearTimeout(be),Ft?(Ft=!1,ae(c)):be=setTimeout(()=>{ae(c)},200))}),we=ks();we&&($e(typeof we=="object"?{...we}:we),Qe({...Is()}));const We=Pa(()=>{if(!e.current)return;const c=ks();$e(c&&typeof c=="object"?{...c}:c),Qe({...Is()})});return()=>{p(),clearTimeout(n),As(),clearTimeout(S),V(),clearTimeout(be),We(),s(),t()}},[]),l(()=>{ta(F)},[F]),l(()=>{Po(J)},[J]),l(()=>{or(!0),ar(!0),lr(!1),ur(!1),zt("")},[y]);const w=h(()=>{let t=b.filter(e=>{if(se&&se.length>0&&Gn(e.url,se))return!1;if(D&&D!=="all"){if(D==="errors"){if(!(e.status===0||e.status==null||typeof e.status=="number"&&e.status>=400))return!1}else if(D==="success"){if(!(typeof e.status=="number"&&e.status>=200&&e.status<400))return!1}else if(D==="slow"){if((e.duration||0)<500)return!1}else if(D==="graphql"){if(!((e.url||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("apollo")))return!1}else if(e.method?.toUpperCase()!==D.toUpperCase())return!1}if(re.size>0&&!re.has("all")){const s=typeof e.status=="number"?e.status:parseInt(String(e.status),10);if(![...re].some(n=>{const i=String(n).toLowerCase();if(i==="all")return!0;if(i==="failed")return e.status===0||e.status==null||!isNaN(s)&&s>=400;if(i==="2xx")return!isNaN(s)&&s>=200&&s<300;if(i==="3xx")return!isNaN(s)&&s>=300&&s<400;if(i==="4xx")return!isNaN(s)&&s>=400&&s<500;if(i==="5xx")return!isNaN(s)&&s>=500&&s<600;if(!isNaN(s)){const p=parseInt(String(n),10);if(!isNaN(p)&&p>=100)return s===p}return String(e.status).startsWith(String(n)[0])}))return!1}if(oe.size>0&&!oe.has("all")&&![...oe].some(r=>String(r).toUpperCase()==="ALL"?!0:e.method?.toUpperCase()===String(r).toUpperCase()))return!1;if(ue!=="all"){const s=e.duration||0;if(ue==="fast"&&s>=200||ue==="normal"&&(s<200||s>500)||ue==="slow"&&s<=500)return!1}if(Pe!=="all"){const s=(e.url||"").toLowerCase().startsWith("https");if(Pe==="https"&&!s||Pe==="http"&&s)return!1}if(M&&M.trim().length>0){const s=x.current.get(e.id)?.path||"";if(!Hn(e,M,s,{scope:Ne,isRegex:Te,isCaseSensitive:ve}))return!1}return!0});if(fe==="time_asc"||st==="oldest"?t=[...t].reverse():fe==="duration_desc"?t=[...t].sort((e,s)=>(s.duration||0)-(e.duration||0)):fe==="duration_asc"?t=[...t].sort((e,s)=>(e.duration||0)-(s.duration||0)):fe==="size_desc"&&(t=[...t].sort((e,s)=>{const r=(e.response?JSON.stringify(e.response).length:0)+(e.request?JSON.stringify(e.request).length:0);return(s.response?JSON.stringify(s.response).length:0)+(s.request?JSON.stringify(s.request).length:0)-r})),!K){const e=[];for(const s of t){const r=e[e.length-1];r&&r.method===s.method&&r.url===s.url&&r.status===s.status?e[e.length-1]={...r,duplicateCount:(r.duplicateCount||1)+1}:e.push({...s,duplicateCount:1})}t=e}return t},[b,se,M,Ne,Te,ve,D,re,oe,ue,Pe,fe,st,K]),ro=h(()=>{const t=new Set;return b.forEach(e=>{e.method&&t.add(e.method.toUpperCase())}),["ALL",...Array.from(t)]},[b]),oo=A((t,e)=>{Xt(s=>{const r=s[t]||new Set(["success","failed","loading"]),n=new Set(r);return n.has(e)?n.delete(e):n.add(e),{...s,[t]:n}})},[]),It=h(()=>{if(E.current?.path){const t=E.current.path.split(" \u2794 ").map(e=>e.trim()).filter(Boolean);return t.length>0?t[t.length-1]:E.current.path}if(w.length>0){const t=w[0],e=x.current.get(t.id)||t?.routeInfo;return Ts(t,e)}return""},[w,Pt]),no=A(t=>{et(e=>{const s=new Map(e),n=!!(M&&M.trim().length>0)?!0:t===It,i=s.has(t)?s.get(t):n;return s.set(t,!i),s})},[It,M]);l(()=>{tt({}),et(new Map)},[M,Ne,Te,ve,D,re,oe,F]);const ao=A((t,e=10)=>{tt(s=>({...s,[t]:(s[t]||F||50)+e}))},[F]),io=h(()=>{if(!ce)return w.map((n,i)=>{const p=x.current.get(n.id)||n?.routeInfo,S=Ts(n,p);return{type:"log",id:`flat-log-${n.id}`,log:n,isLast:i===w.length-1,color:Ao(S)}});const t=[],e=new Map;for(let n=0;n<w.length;n++){const i=w[n],p=x.current.get(i.id)||i?.routeInfo,S=Ts(i,p);let R=e.get(S);R||(R={pageName:S,color:Ao(S),logs:[]},e.set(S,R)),R.logs.push(i)}const s=!!(M&&M.trim().length>0);let r=0;return e.forEach(n=>{let i=0,p=0,S=0;n.logs.forEach(V=>{V.status==null?S++:V.status===0||V.status>=400?p++:i++});const R=er[n.pageName]||new Set(["success","failed","loading"]),As=s?!0:n.pageName===It,be=Yt.has(n.pageName)?!Yt.get(n.pageName):!As,Ft=n.logs[0]?.startTime||0;if(t.push({type:"header",id:`hdr-${n.pageName}`,pageName:n.pageName,color:n.color,stats:{success:i,failed:p,loading:S},timestamp:Ft,activeFilters:R,isCollapsed:be,isFirst:r===0}),r++,!be){const V=n.logs.filter(d=>d.status==null?R.has("loading"):d.status===0||d.status>=400?R.has("failed"):R.has("success")),we=F||50,We=tr[n.pageName]||we,c=V.slice(0,We),H=V.length>We;c.forEach(d=>{t.push({type:"log",id:`log-${d.id}`,log:d,isLast:!1,color:n.color})});const L=Math.max(0,V.length-We),T=Math.min(L||10,10);t.push({type:"loadMore",id:`loadmore-${n.pageName}`,pageName:n.pageName,color:n.color,remainingCount:L,totalCount:V.length,loadedCount:c.length,loadMoreStep:T,hasMore:H})}}),t},[ce,w,b,er,Yt,It,tr,F,M]),{minStart:lo,totalRange:co}=h(()=>{if(w.length===0)return{minStart:0,totalRange:0};const t=Math.min(...w.map(s=>s.startTime)),e=Math.max(...w.map(s=>s.startTime+(s.duration||10)));return{minStart:t,totalRange:e-t}},[w]),Dt=h(()=>{if(!y)return null;const t=b.findIndex(e=>e.id===y.id);if(t===-1)return null;for(let e=t+1;e<b.length;e++){const s=b[e];if(s.url===y.url&&s.method===y.method)return s}return null},[y,b]),uo=Dt?Dt.request:null,fo=Dt?Dt.response:null,po=h(()=>{let t=ot;if(xe&&xe.trim().length>0){const r=xe.trim().toLowerCase().split(/\s+/).filter(Boolean);t=t.filter(n=>{const i=[n.name||"",JSON.stringify(n.params||""),JSON.stringify(n.userProperties||""),n.screenName||"",n.pageTitle||"",n.userId||"",n.source||""].join(" ").toLowerCase();return r.every(p=>i.includes(p))})}if(a.categories.size>0&&!a.categories.has("all")&&(t=t.filter(r=>{const n=qn(r.name);return a.categories.has(n)})),a.timeWindow!=="all"){const r=Date.now(),n=a.timeWindow==="1m"?r-60*1e3:a.timeWindow==="5m"?r-300*1e3:a.timeWindow==="15m"?r-900*1e3:r-3600*1e3;t=t.filter(i=>i.timestamp>=n)}if(a.sources.size>0&&!a.sources.has("all")&&(t=t.filter(r=>a.sources.has(r.source||"manual"))),a.userTypes.size>0&&!a.userTypes.has("all")&&(t=t.filter(r=>{const n=!!(r.userId&&r.userId.trim()!=="");return!!(a.userTypes.has("identified")&&n||a.userTypes.has("anonymous")&&!n)})),a.payloadComplexity!=="all"&&(a.payloadComplexity==="none"?t=t.filter(r=>!r.params||Object.keys(r.params).length===0):a.payloadComplexity==="simple"?t=t.filter(r=>r.params&&Object.keys(r.params).length<=3):a.payloadComplexity==="heavy"&&(t=t.filter(r=>r.params&&Object.keys(r.params).length>3))),a.onlyConversions){const r=["purchase","item_purchase","ecommerce_purchase","sign_up","login","lead","generate_lead","tutorial_complete","add_payment_info","begin_checkout","spend_virtual_currency"];t=t.filter(n=>r.some(i=>n.name.toLowerCase().includes(i)))}a.screens.size>0&&(t=t.filter(r=>{const n=r.screenName||r.params?.firebase_screen||r.params?.screen_name||r.params?.firebase_screen_class||r.screenClass||"";return a.screens.has(n)})),a.hasRevenue&&(t=t.filter(r=>r.params?.value!=null&&!isNaN(Number(r.params.value))||r.params?.price!=null&&!isNaN(Number(r.params.price)))),a.hasItems&&(t=t.filter(r=>Array.isArray(r.params?.items)&&r.params.items.length>0)),a.hasUserProps&&(t=t.filter(r=>r.userProperties&&Object.keys(r.userProperties).length>0)),a.hasParams&&(t=t.filter(r=>r.params&&Object.keys(r.params).length>0));const e=[];for(const r of t){if(e.length===0){e.push({...r,count:1});continue}const n=e[e.length-1];n.name===r.name&&JSON.stringify(n.params)===JSON.stringify(r.params)&&JSON.stringify(n.userProperties)===JSON.stringify(r.userProperties)?(n.count=(n.count||1)+1,n.timestamp=r.timestamp,n.id=r.id):e.push({...r,count:1})}let s=e;return a.onlyDuplicates&&(s=s.filter(r=>(r.count||1)>1)),a.sortBy==="time_asc"?s=[...s].sort((r,n)=>r.timestamp-n.timestamp):a.sortBy==="revenue_desc"?s=[...s].sort((r,n)=>{const i=Number(r.params?.value??r.params?.price??0);return Number(n.params?.value??n.params?.price??0)-i}):a.sortBy==="count_desc"&&(s=[...s].sort((r,n)=>(n.count||1)-(r.count||1))),s.slice(0,Se)},[ot,xe,a,Se]),mo=h(()=>{let t=Y;if(_.size>0&&!_.has("all")&&(t=t.filter(e=>!!(_.has("user-log")&&e.sourceMethod==="log"||_.has("info")&&(e.sourceMethod==="info"||e.type==="info"&&e.sourceMethod!=="log")||_.has("warn")&&(e.type==="warn"||e.sourceMethod==="warn")||_.has("error")&&(e.type==="error"||e.sourceMethod==="error")||_.has("analytics")&&e.message?.toLowerCase().includes("[analytics error]")))),B&&B.trim().length>0){const e=B.trim().toLowerCase().split(/\s+/).filter(Boolean);t=t.filter(s=>{const r=[s.message||"",s.caller||"",s.type||"",s.sourceMethod||"",s.stack||""].join(" ").toLowerCase();return e.every(n=>n==="error"||n==="err"?s.type==="error"||r.includes(n):n==="warn"||n==="warning"?s.type==="warn"||r.includes(n):n==="info"&&s.type==="info"||r.includes(n))})}if(t=[...t].sort((e,s)=>rt==="newest"?s.timestamp-e.timestamp:e.timestamp-s.timestamp),!K){const e=[];for(const s of t){const r=e[e.length-1];r&&r.type===s.type&&r.sourceMethod===s.sourceMethod&&r.message===s.message?e[e.length-1]={...r,duplicateCount:(r.duplicateCount||1)+1}:e.push({...s,duplicateCount:1})}t=e}return t},[Y,_,B,rt,K]),ho=h(()=>{let t=Y;if(B&&B.trim().length>0){const s=B.trim().toLowerCase().split(/\s+/).filter(Boolean);t=Y.filter(r=>{const n=[r.message||"",r.caller||"",r.type||"",r.sourceMethod||"",r.stack||""].join(" ").toLowerCase();return s.every(i=>i==="error"||i==="err"?r.type==="error"||n.includes(i):i==="warn"||i==="warning"?r.type==="warn"||n.includes(i):i==="info"&&r.type==="info"||n.includes(i))})}const e=Y.length;return{all:`${t.length}/${e}`,info:`${t.filter(s=>s.sourceMethod==="info"||s.type==="info"&&s.sourceMethod!=="log").length}/${e}`,warn:`${t.filter(s=>s.type==="warn"||s.sourceMethod==="warn").length}/${e}`,error:`${t.filter(s=>s.type==="error"||s.sourceMethod==="error").length}/${e}`,"user-log":`${t.filter(s=>s.sourceMethod==="log").length}/${e}`,analytics:`${t.filter(s=>s.message.toLowerCase().includes("[analytics error]")).length}/${e}`}},[Y,B]),go=A(()=>{G(!1),Ut(!1),setTimeout(()=>{Ht(null),vt(null),ts(null),jt(null),Jt(null),ie(null),he(null)},300)},[]);function xn(){Ps(),te([]),Me(new Set),Xt({}),et(new Map),tt({}),$t(new Set),Qt(new Set),js(""),Le.current=new Set,x.current=new Map,Fo(),de([]),Wr(""),Be.current=new Set,To(),ae([]),le(new Set),as(new Set(["all"])),Er("")}function So(){if(u==="logs"){Ke.size>0?(ae(t=>t.filter(e=>!Ke.has(e.id))),le(new Set)):I({visible:!0,title:m("console.clearLogsTitle","Clear Console Logs"),message:m("console.clearLogsMsg","Are you sure you want to clear all console logs?"),confirmText:m("common.clearAll","Clear All"),cancelText:m("common.cancel","Cancel"),onConfirm:()=>{I(t=>({...t,visible:!1})),To(),ae([]),le(new Set)}});return}if(u==="analytics"){I({visible:!0,title:m("analytics.clearEventsTitle","Clear Analytics"),message:m("analytics.clearEventsMsg","Are you sure you want to clear all analytics events?"),confirmText:m("common.clearAll","Clear All"),cancelText:m("common.cancel","Cancel"),onConfirm:()=>{I(t=>({...t,visible:!1})),Fo(),de([]),vt(null),Be.current=new Set}});return}if(u==="redux"){I({visible:!0,title:m("redux.clearTimelineTitle","Clear Redux Timeline"),message:m("redux.clearTimelineMsg","Are you sure you want to clear the dispatched action history?"),confirmText:m("common.clearAll","Clear All"),cancelText:m("common.cancel","Cancel"),onConfirm:()=>{I(t=>({...t,visible:!1})),ka(),Qe({})}});return}if(u==="crash"){I({visible:!0,title:m("crash.clearTitle","Clear Crash Records"),message:m("crash.clearMessage","Are you sure you want to clear all intercepted crash records?"),confirmText:m("crash.clearConfirm","Clear All"),cancelText:m("crash.clearCancel","Cancel"),onConfirm:()=>{I(t=>({...t,visible:!1})),vo(),j([]),ie(null)}});return}Ze.size>0?(te(t=>t.filter(e=>!Ze.has(e.id))),Me(new Set)):I({visible:!0,title:m("network.clearLogsTitle","Clear Network Logs"),message:m("network.clearLogsMsg","Are you sure you want to clear all network logs?"),confirmText:m("common.clearAll","Clear All"),cancelText:m("common.cancel","Cancel"),onConfirm:()=>{I(t=>({...t,visible:!1})),Ln()}})}function Ln(){Ps(),te([]),Me(new Set),Xt({}),et(new Map),tt({}),$t(new Set),Qt(new Set),Le.current=new Set,x.current=new Map}const yo=h(()=>{if(!y)return"";try{const e=new URL(y.url).pathname.split("/").filter(Boolean);return e.length>0?`/${e.slice(-2).join("/")}`:"/"}catch{const t=y.url.split("/").filter(Boolean);return t.length>0?`/${t.slice(-2).join("/")}`:y.url}},[y]),Co=h(()=>y?Un(y.url):"",[y]),xo=A(t=>{Me(e=>{const s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},[]),Lo=A(t=>{le(e=>{const s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},[]),bn=h(()=>({visible:g,setVisible:G,closeModal:go,isMinimized:qs,setIsMinimized:Ut,minimizeInspector:Vo,isDismissed:qt,setIsDismissed:Hs,dismissInspector:Uo,isReady:Ws,enabled:k,isEnabled:k,appIcon:Bs,environment:_s,modalHeightPercent:Xe,setModalHeightPercent:_t,modalAnimationType:Ye,setModalAnimationType:Vt,hasNavigationContext:Yr,setNavState:Rs,activeTab:u,switchActiveTab:qr,tabVisibility:P,toggleTabVisibility:Ur,lastReadApisCount:mr,lastReadLogsCount:dr,mediaCount:yr,refreshMediaCount:nt,selected:y,setSelected:Ht,selectedEvent:Hr,setSelectedEvent:vt,selectedLog:fr,setSelectedLog:ts,showHeaderInfo:sr,setShowHeaderInfo:Xo,settingsPage:kr,setSettingsPage:ln,isAboutOpen:Ir,setIsAboutOpen:cn,isSupportOpen:Dr,setIsSupportOpen:un,updateAvailable:Vr,latestNpmVersion:Oe,clearAnim:He,activePulseAnim:Ve,unreadPulseAnim:Ue,runClearAllWithAnimation:to,confirmModal:zs,setConfirmModal:I,useNativeFab:ee,fabPan:N,fabPanResponder:eo,fabDraggedRef:kt,pulseAnim:_e,fabShineAnim:qe,logs:b,filteredLogs:w,groupedData:io,search:M,setSearch:js,searchScope:Ne,setSearchScope:qo,isRegexSearch:Te,setIsRegexSearch:Ho,isCaseSensitive:ve,setIsCaseSensitive:Wo,quickFilter:D,setQuickFilter:Go,statusFilters:re,setStatusFilters:$t,methodFilters:oe,setMethodFilters:Qt,latencyFilter:ue,setLatencyFilter:Jo,protocolFilter:Pe,setProtocolFilter:$o,networkSortBy:fe,setNetworkSortBy:Qo,availableMethods:ro,sortOrder:st,setSortOrder:Yo,selectedLogs:Ze,toggleSelect:xo,minStart:lo,totalRange:co,newLogIds:Zr,toggleSectionFilter:oo,toggleSectionCollapse:no,loadMoreSection:ao,handleDelete:So,isGroupByPageEnabled:ce,setIsGroupByPageEnabled:Wt,hiddenUrlPatterns:se,setHiddenUrlPatterns:Gt,detailTitle:yo,detailDisplayUrl:Co,apiDetailActiveTab:Zs,setApiDetailActiveTab:Ks,detailSearch:Js,setDetailSearch:zt,reqExpanded:rr,setReqExpanded:or,resExpanded:nr,setResExpanded:ar,showReqDiff:ir,setShowReqDiff:lr,showResDiff:cr,setShowResDiff:ur,prevRequestData:uo,prevResponseData:fo,logRouteMapRef:x,consoleLogs:ne,visibleConsoleLogs:Y,filteredConsoleLogs:mo,logSearch:B,setLogSearch:Er,logFilters:_,setLogFilters:as,logCounts:ho,logSortOrder:rt,setLogSortOrder:Zo,selectedConsoleLogs:Ke,setSelectedConsoleLogs:le,toggleSelectConsoleLog:Lo,analyticsEvents:ot,filteredAnalyticsEvents:po,analyticsSearch:xe,setAnalyticsSearch:Wr,analyticsFilters:a,setAnalyticsFilters:Gr,isAnalyticsFilterApplied:zr,resetAnalyticsFilters:jr,newEventIds:Qr,isAnalyticsLayoutReady:Jr,setIsAnalyticsLayoutReady:Sn,analyticsHeaderExpanded:$r,setAnalyticsHeaderExpanded:yn,reduxState:Vs,setReduxState:$e,reduxLastActionMap:Us,reduxSearch:$s,setReduxSearch:zo,selectedReduxSlice:Qs,setSelectedReduxSlice:jt,selectedReduxAction:Xs,setSelectedReduxAction:Jt,reduxActiveSubTab:Ys,setReduxActiveSubTab:jo,crashRecords:Ee,setCrashRecords:j,selectedCrash:Lr,setSelectedCrash:ie,lastReadCrashesCount:gr,maxCrashLogs:J,setMaxCrashLogs:at,clearAllCrashes:()=>{vo(),j([]),ie(null)},crashIgnoredTypes:pe,setCrashIgnoredTypes:rs,crashModalTriggerPolicy:me,setCrashModalTriggerPolicyState:br,applyCrashPolicyPreset:wr,pushRecords:$,filteredPushRecords:Tr,selectedPush:Ar,setSelectedPush:Mr,pushSearch:Ie,setPushSearch:en,pushQuickFilter:q,setPushQuickFilter:tn,lastReadPushCount:it,unreadPushCount:Nr,maxPushLogs:lt,setMaxPushLogs:os,clearAllPushLogs:()=>{pa(),Rr([]),Mr(null)},simulatePush:(t,e)=>{ha(t,e)},socketRecords:Q,filteredSocketRecords:Pr,selectedSocket:De,setSelectedSocket:he,socketSearch:Fe,setSocketSearch:rn,socketQuickFilter:O,setSocketQuickFilter:on,lastReadSocketCount:ut,unreadSocketCount:vr,maxSocketLogs:ft,setMaxSocketLogs:an,clearAllSocketLogs:()=>{Sa(),ct([]),he(null)},deleteSocketRecord:t=>{wa(t),ct(e=>e.filter(s=>s.id!==t)),De?.id===t&&he(null)},deleteMultipleSocketRecords:t=>{Ra(t);const e=new Set(t);ct(s=>s.filter(r=>!e.has(r.id))),De&&e.has(De.id)&&he(null)},simulateSocket:(t,e)=>{ba(t,e)},settingsActiveSubTab:Fr,setSettingsActiveSubTab:fn,defaultTab:Z,setDefaultTab:Tt,isDark:Je,setIsDark:Bt,showDuplicateLogs:K,setShowDuplicateLogs:xs,showUpdateToast:Ls,setShowUpdateToast:bs,showConsoleLevels:X,setShowConsoleLevels:ns,resetToDefaults:hn,storage:W,maxNetworkLogs:F,setMaxNetworkLogs:mt,maxConsoleLogs:ge,setMaxConsoleLogs:dt,maxAnalyticsEventsLimit:Se,setMaxAnalyticsEventsLimit:ht,isAutoRamLimitEnabled:ye,setIsAutoRamLimitEnabled:is,deviceFreeRamMb:ls,reduxAutoRefresh:Ce,setReduxAutoRefreshState:cs,reduxExpandDepth:gt,setReduxExpandDepth:us,captureFps:St,setCaptureFps:fs,captureScale:yt,setCaptureScale:ds,captureBitrate:Ct,setCaptureBitrate:ps,captureMaxDurationSeconds:xt,setCaptureMaxDurationSeconds:ms,captureImageFormat:Lt,setCaptureImageFormat:hs,captureAudioMode:bt,setCaptureAudioMode:gs,captureAutoHide:wt,setCaptureAutoHide:Ss,captureAutoGif:Rt,setCaptureAutoGif:ys,captureWidgetEnabled:At,setCaptureWidgetEnabled:Mt,peekMode:Or,setPeekMode:pn,peekOpacity:Nt,setPeekOpacity:Cs,previewMediaItem:xr,setPreviewMediaItem:Ko,isUpdatePopupVisible:Br,setIsUpdatePopupVisible:mn}),[g,go,Ws,k,Bs,_s,Xe,Ye,Yr,Rs,u,qr,P,Ur,mr,dr,yr,nt,xr,y,Hr,fr,sr,kr,Ir,Dr,Vr,Oe,He,Ve,Ue,to,ee,N,eo,_e,qe,b,w,io,M,Ne,Te,ve,D,re,oe,ro,st,Ze,xo,lo,co,Zr,oo,no,ao,So,ce,Wt,se,yo,Co,Zs,Js,rr,nr,ir,cr,uo,fo,ne,Y,mo,B,_,ho,rt,Ke,Lo,ot,po,xe,a,zr,jr,Qr,Jr,$r,Vs,Us,$s,Qs,Xs,Ys,Ee,Lr,gr,J,pe,me,wr,$,Tr,Ar,Ie,q,it,Nr,lt,Q,Pr,De,Fe,O,ut,vr,ft,Fr,Z,Je,K,Ls,X,W,F,ge,Se,ye,ls,Ce,gt,St,yt,Ct,xt,Lt,bt,wt,Rt,At,Or,Nt,qs,qt,zs,Br]);return<_n.Provider value={bn}>
|
|
2
|
-
<
|
|
3
|
-
<
|
|
4
|
-
</_n.Provider>},Os=k=>{const W=k?.enabled??!0,
|
|
5
|
-
<
|
|
1
|
+
import Ms,{useEffect as l,useMemo as h,useRef as C,useState as o,useCallback as M}from"react";import{Alert as An,Animated as f,Easing as wo,PanResponder as Mn,Platform as Ns,UIManager as Nn,LogBox as bo}from"react-native";import{NavigationContext as Tn}from"@react-navigation/native";import{I18nextProvider as En,i18n as vn,setLanguage as Pn,getLanguage as kn,useTranslation as In}from"./i18n";import Dn from"./components/ErrorBoundary";import Fn from"./components/Inspector/MainScreen";import On from"./components/Inspector/GlobalCrashScreenModal";import{InspectorContext as _n,animateNextLayout as Bn}from"./components/Inspector/InspectorContext";import{formatDisplayUrl as Vn,getNavigationInfo as Ro,getLogPageName as Ts,deduplicateLogs as Es,getDomainColor as Ao,getEventCategory as Un,matchNetworkLogQuery as qn,scoreNetworkLogQuery as Hn,setupMemoryWarningHandler as Wn,isUrlHidden as Gn}from"./helpers";import{loadSettings as zn,saveSettings as jn,setCustomStorage as Jn,clearPersistedSettings as $n,calculateRamBasedLimits as Mo}from"./helpers/settingsStore";import{getNativeSystemMetrics as Qn,pushNativeLogRecord as Ge,fetchNativeCachedPage as Xn}from"./native/NativeInspector";import{setupNetworkLogger as Yn,clearNetworkLogs as vs,subscribeNetworkLogs as Zn,getNetworkLogs as Kn,setNetworkModuleEnabled as ea,setMaxNetworkLogsLimit as ta,setRouteInfoProvider as No}from"./customHooks/networkLogger";import{setupConsoleLogger as sa,clearConsoleLogs as To,subscribeConsoleLogs as ra,setConsoleModuleEnabled as oa}from"./customHooks/consoleLogger";import{IGNORED_LOG_PREFIXES as Ne}from"./customHooks/logFilters";import{setupGlobalCrashHandler as na,subscribeCrashEvents as aa,getCrashRecords as Ot,clearCrashRecords as Eo,setMaxCrashLogsLimit as vo,setCrashModuleEnabled as ia,DEFAULT_CRASH_IGNORED_TYPES as Po,setCrashIgnoredTypesConfig as la,setCrashModalTriggerPolicyConfig as ca,applyCrashPolicyPreset as ua}from"./customHooks/crashHandler";import{subscribePushEvents as fa,getPushRecords as da,clearPushRecords as pa,setMaxPushRecordsLimit as ma,simulateTestPush as ha}from"./customHooks/pushNotificationLogger";import{setupSocketLogger as ga,clearSocketRecords as Sa,subscribeSocketRecords as ya,getSocketRecords as Ca,setSocketModuleEnabled as La,setMaxSocketRecordsLimit as xa,simulateTestSocket as wa,setSocketRouteInfoProvider as ko,deleteSocketRecord as ba,deleteMultipleSocketRecords as Ra}from"./customHooks/socketLogger";import{trackActiveTelemetryHeartbeat as Aa,setTelemetryEnabled as Io,trackInspectorTabView as Do,trackInspectorScreenView as Ma}from"./helpers/telemetry";import{subscribeAnalyticsEvents as Na,clearAnalyticsEvents as Fo,autoSetupAnalyticsLogger as Ta,isAnalyticsConnected as Ps,setAnalyticsModuleEnabled as Ea}from"./customHooks/analyticsLogger";import{getReduxState as ks,subscribeReduxState as va,setReduxAutoRefresh as Pa,getLastActionForReducer as Is,clearActionHistory as ka,isReduxConnected as Ds,setReduxModuleEnabled as Ia}from"./customHooks/reduxLogger";import{hideNativeFloatingButton as Te,subscribeNativeFloatingButtonPress as Da,subscribeNativeDeviceShake as Fa,isNativeModuleAvailable as Oa}from"./native/NativeInspector";import{fetchRemoteConfigSettings as _a}from"./helpers/remoteConfig";import{ScreenCapture as Ba}from"./capture";import{LIB_VERSION as Va,DEFAULT_HIDDEN_URL_PATTERNS as Fs}from"./constants";import{toggleGlobalTheme as Oo}from"./styles";const Ua=({enabled:k=!0,storage:W,navigationRef:E,appIcon:_s,environment:Bs,initialVisible:_o=!1,visible:ze,remoteConfig:je=!1,captureWidgetEnabled:Bo})=>{Jn(W||null);const{t:m}=In(),[Je,_t]=o(!1),[Vs,$e]=o(null),[Us,Qe]=o({}),[Xe,Bt]=o(90),[Ye,Vt]=o("slide"),[b,te]=o([]),[g,G]=o(ze??_o??!1),[qs,Ut]=o(!1),[qt,Hs]=o(!1),Vo=M(()=>{Ut(!0),G(!1)},[]),Uo=M(()=>{Hs(!0),G(!1),Te().catch(()=>{})},[]);l(()=>{ze!==void 0&&G(ze)},[ze]);const[Ws,Gs]=o(!1),[y,Ht]=o(null),[Ze,Ee]=o(new Set),[Ke,le]=o(new Set),[zs,I]=o({visible:!1,title:"",message:"",onConfirm:()=>{}}),[L,js]=o(""),[ce,qo]=o("all"),[ue,Ho]=o(!1),[fe,Wo]=o(!1),[de,Wt]=o(!0),[se,Gt]=o(()=>[...Fs]),[D,Go]=o("all"),[Js,zt]=o(""),[$s,zo]=o(""),[Qs,jt]=o(null),[Xs,Jt]=o(null),[Ys,jo]=o("state"),[Zs,Ks]=o("response");l(()=>(bo.ignoreAllLogs(k),()=>{bo.ignoreAllLogs(!1)}),[k]),l(()=>{y&&(Ks("response"),zt(""))},[y]);const[re,$t]=o(new Set),[oe,Qt]=o(new Set),[pe,Jo]=o("all"),[ve,$o]=o("all"),[me,Qo]=o("time_desc"),[er,Xt]=o({}),[Yt,et]=o(()=>new Map),[tr,tt]=o({}),[sr,Xo]=o(!0),[st,Yo]=o("newest"),[rt,Zo]=o("newest"),[rr,or]=o(!0),[nr,ar]=o(!0),[ir,lr]=o(!1),[cr,ur]=o(!1),[u,z]=o("apis"),[ot,he]=o([]),[ne,ae]=o([]),Zt=C([]),Kt=C([]),es=C([]),[fr,ts]=o(null),[dr,pr]=o(0),[mr,hr]=o(0),[gr,Sr]=o(0),[yr,Cr]=o(0),[Lr,Ko]=o(null),nt=M(async()=>{try{const t=await Ba.getMediaList(),e=t?t.length:0;return Cr(e),e}catch{return Cr(0),0}},[]);l(()=>{g&&nt()},[g,nt]);const[Pe,j]=o(()=>Ot()),[xr,ie]=o(null),[ss,ke]=o(null),[J,at]=o(50),[ge,rs]=o(()=>({...Po})),[Se,wr]=o("fatal_only");l(()=>{vo(J)},[J]),l(()=>{la(ge)},[ge]),l(()=>{ca(Se)},[Se]);const br=M(t=>{const e=ua(t);rs(e)},[]);l(()=>{g&&(u==="apis"&&hr(b.length),u==="logs"&&pr(ne.length),u==="crash"&&Sr(Pe.length))},[g]),l(()=>{u==="apis"&&hr(b.length)},[u,b.length]),l(()=>{u==="logs"&&pr(ne.length)},[u,ne.length]),l(()=>{u==="crash"&&Sr(Pe.length)},[u,Pe.length]);const[$,Rr]=o(()=>da()),[Ar,Mr]=o(null),[Ie,en]=o(""),[q,tn]=o("all"),[it,sn]=o(0),[lt,os]=o(50);l(()=>{ma(lt)},[lt]),l(()=>fa(e=>{Rr(e)}),[]);const Nr=h(()=>u==="push"?0:Math.max(0,$.length-it),[u,$.length,it]);l(()=>{g&&u==="push"&&sn($.length)},[g,u,$.length]);const Tr=h(()=>{let t=$;if(q!=="all"){if(q==="foreground")t=t.filter(e=>(e.appState||"").toLowerCase()==="foreground");else if(q==="background")t=t.filter(e=>(e.appState||"").toLowerCase()==="background");else if(q==="opened")t=t.filter(e=>e.action==="opened");else if(q.startsWith("source:")){const e=q.replace("source:","").toLowerCase();t=t.filter(s=>(s.source||"").toLowerCase()===e)}}if(Ie.trim()){const e=Ie.trim().toLowerCase();t=t.filter(s=>!!(s.title&&s.title.toLowerCase().includes(e)||s.body&&s.body.toLowerCase().includes(e)||s.id&&s.id.toLowerCase().includes(e)||s.source&&s.source.toLowerCase().includes(e)||s.domain&&s.domain.toLowerCase().includes(e)||s.channelId&&s.channelId.toLowerCase().includes(e)||s.data&&JSON.stringify(s.data).toLowerCase().includes(e)))}return t},[$,q,Ie]),[Q,ct]=o(()=>Ca()),[De,ye]=o(null),[Fe,rn]=o(""),[O,on]=o("all"),[ut,nn]=o(0),[ft,an]=o(50);l(()=>{xa(ft)},[ft]),l(()=>ya(e=>{ct(e)}),[]);const Er=h(()=>u==="socket"?0:Math.max(0,Q.length-ut),[u,Q.length,ut]);l(()=>{g&&u==="socket"&&nn(Q.length)},[g,u,Q.length]);const vr=h(()=>{let t=Q;if(O!=="all"&&(O==="open"?t=t.filter(e=>(e.status||"open").toLowerCase()==="open"):O==="closed"?t=t.filter(e=>(e.status||"").toLowerCase()==="closed"):O==="error"?t=t.filter(e=>(e.status||"").toLowerCase()==="error"):O==="sio"?t=t.filter(e=>e.client==="socket.io"||e.url.includes("/socket.io")):O==="wss"?t=t.filter(e=>e.url.startsWith("wss://")):O==="ws"&&(t=t.filter(e=>e.url.startsWith("ws://")))),Fe.trim()){const e=Fe.trim().toLowerCase();t=t.filter(s=>!!(s.url&&s.url.toLowerCase().includes(e)||s.id&&s.id.toLowerCase().includes(e)||s.client&&s.client.toLowerCase().includes(e)||s.caller&&s.caller.toLowerCase().includes(e)||s.query&&JSON.stringify(s.query).toLowerCase().includes(e)||s.frames&&s.frames.some(r=>!!(r.eventName&&r.eventName.toLowerCase().includes(e)||typeof r.data=="string"&&r.data.toLowerCase().includes(e)||r.data&&typeof r.data=="object"&&JSON.stringify(r.data).toLowerCase().includes(e)))))}return t},[Q,O,Fe]),[Ce,dt]=o(300),[X,ns]=o({info:!0,warn:!0,error:!0}),Y=h(()=>ne.filter(e=>{const s=e.type;if(s==="info"&&!X?.info||s==="warn"&&!X?.warn||s==="error"&&!X?.error)return!1;const r=e.message||"";return![...Ne&&Ne.info||[],...Ne&&Ne.warn||[],...Ne&&Ne.error||[]].filter(p=>typeof p=="string"&&p.trim().length>0).some(p=>r.toLowerCase().trim().startsWith(p.toLowerCase().trim())||r.toLowerCase().trim().includes(p.toLowerCase().trim()))}).slice(0,Ce),[ne,X,Ce]),[_,Pr]=o(""),[B,as]=o(new Set(["user-log"])),[kr,ln]=o(null),[Ir,cn]=o(!1),[Dr,un]=o(!1),[Fr,fn]=o("module"),[v,pt]=o({apis:!0,logs:!0,perf:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,debugging:!0,media:!0}),[F,mt]=o(250),[Le,ht]=o(150),[xe,is]=o(!0),[ls,dn]=o(1800),[we,cs]=o(!0),[gt,us]=o(1),[St,fs]=o(60),[yt,ds]=o(.5),[Ct,ps]=o(0),[Lt,ms]=o(120),[xt,hs]=o("png"),[wt,gs]=o("none"),[bt,Ss]=o(!0),[Rt,ys]=o(!0),[At,Mt]=o(Bo??!0),[Or,pn]=o(!1),[Nt,Cs]=o(.3),[Z,Tt]=o("apis"),[K,Ls]=o(!1),[xs,ws]=o(!0),[_r,mn]=o(!1);l(()=>{ea(!!v.apis),oa(!!v.logs),Ea(!!v.analytics),Ia(!!v.redux),ia(!!v.crash),La(!!v.socket)},[v]),l(()=>{Qn().then(t=>{if(t){const e=t.totalPhysicalRamMb-t.residentRamMb,s=Math.max(200,Math.round(e>0?e:1500));if(dn(s),xe){const r=Mo(s);mt(r.maxNetworkLogs),dt(r.maxConsoleLogs),ht(r.maxAnalyticsEvents),at(r.maxCrashRecords),os(r.maxPushRecords)}}}).catch(()=>{})},[xe]);const hn=async()=>{await $n(),_t(!1),Oo(!1),Bt(90),Vt("slide"),pt({apis:!0,logs:!0,perf:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,debugging:!0,media:!0}),Tt("apis"),is(!0);const t=Mo(ls);at(t.maxCrashRecords),mt(t.maxNetworkLogs),dt(t.maxConsoleLogs),ht(t.maxAnalyticsEvents),os(t.maxPushRecords),ns({info:!0,warn:!0,error:!0}),cs(!0),us(1),fs(30),ds(1),ps(0),ms(120),hs("png"),gs("none"),Ss(!0),ys(!0),Mt(!0),Ls(!1),ws(!0),Cs(.3),as(new Set(["user-log"])),Gt([...Fs]),An.alert("Settings Reset","All settings have been reset to default values.")},Br=C(!1);l(()=>{let t=!1;return zn().then(e=>{if(!t){if(e.language&&Pn(e.language),e.isDark!=null&&(_t(e.isDark),Oo(e.isDark)),e.modalHeightPercent!=null&&Bt(e.modalHeightPercent),e.modalAnimationType&&Vt(e.modalAnimationType),e.tabVisibility&&pt(s=>({...s,...e.tabVisibility,apis:!0})),e.defaultTab&&Tt(e.defaultTab),e.isAutoRamLimitEnabled!=null&&is(e.isAutoRamLimitEnabled),e.maxNetworkLogs!=null&&mt(e.maxNetworkLogs),e.maxConsoleLogs!=null&&dt(e.maxConsoleLogs),e.maxAnalyticsEventsLimit!=null&&ht(e.maxAnalyticsEventsLimit),e.maxCrashLogs!=null&&at(e.maxCrashLogs),e.crashIgnoredTypes!=null&&rs({...Po,...e.crashIgnoredTypes}),e.crashModalTriggerPolicy!=null&&wr(e.crashModalTriggerPolicy),e.showConsoleLevels&&ns(e.showConsoleLevels),e.reduxAutoRefresh!=null&&cs(e.reduxAutoRefresh),e.reduxExpandDepth!=null&&us(e.reduxExpandDepth),e.captureFps!=null&&fs(e.captureFps),e.captureScale!=null&&ds(e.captureScale),e.captureBitrate!=null&&ps(e.captureBitrate),e.captureMaxDurationSeconds!=null&&ms(e.captureMaxDurationSeconds),e.captureImageFormat&&hs(e.captureImageFormat),e.captureAudioMode&&gs(e.captureAudioMode),e.captureAutoHide!=null&&Ss(e.captureAutoHide),e.captureAutoGif!=null&&ys(e.captureAutoGif),e.captureWidgetEnabled!=null&&Mt(e.captureWidgetEnabled),e.peekOpacity!=null&&Cs(Math.max(.05,Math.min(1,e.peekOpacity))),e.showDuplicateLogs!=null&&Ls(e.showDuplicateLogs),e.showUpdateToast!=null&&ws(e.showUpdateToast),e.isGroupByPageEnabled!=null&&Wt(e.isGroupByPageEnabled),Array.isArray(e.hiddenUrlPatterns)){const s=Array.from(new Set([...Fs,...e.hiddenUrlPatterns]));Gt(s)}if(e.defaultTab){const s=e.defaultTab,r={apis:!0,logs:!0,analytics:!1,redux:!1,crash:!1,device:!1,storage:!1,...e.tabVisibility||{},apis:!0};z(r[s]?s:"apis")}Br.current=!0}}),()=>{t=!0}},[]),l(()=>{let t=!0;if(je)return _a(typeof je=="object"?je:{}).then(e=>{!t||!e||(e.modules&&pt(s=>({...s,...e.modules,apis:e.modules?.apis??!0})),e.captureWidgetEnabled!==void 0&&Mt(e.captureWidgetEnabled))}).catch(()=>{}),()=>{t=!1}},[je]),l(()=>{Br.current&&jn({isDark:Je,language:kn(),modalHeightPercent:Xe,modalAnimationType:Ye,tabVisibility:v,defaultTab:Z,maxNetworkLogs:F,maxConsoleLogs:Ce,maxAnalyticsEventsLimit:Le,maxCrashLogs:J,crashIgnoredTypes:ge,crashModalTriggerPolicy:Se,isAutoRamLimitEnabled:xe,isGroupByPageEnabled:de,showConsoleLevels:X,reduxAutoRefresh:we,reduxExpandDepth:gt,showDuplicateLogs:K,showUpdateToast:xs,captureFps:St,captureScale:yt,captureBitrate:Ct,captureMaxDurationSeconds:Lt,captureImageFormat:xt,captureAudioMode:wt,captureAutoHide:bt,captureAutoGif:Rt,captureWidgetEnabled:At,peekOpacity:Nt,hiddenUrlPatterns:se})},[Je,Xe,Ye,v,Z,F,Ce,Le,J,ge,Se,xe,de,X,we,gt,K,St,yt,Ct,Lt,xt,wt,bt,Rt,At,Nt]);const[Oe,gn]=o(null),Vr=h(()=>{if(!Oe)return!1;const t=r=>r.replace(/^v/,"").split(".").map(n=>parseInt(n,10)||0),e=t(Va),s=t(Oe);for(let r=0;r<3;r++){if((s[r]||0)>(e[r]||0))return!0;if((s[r]||0)<(e[r]||0))return!1}return!1},[Oe]);l(()=>{if(typeof __DEV__>"u"||!__DEV__)return;let t=!1;return fetch("https://registry.npmjs.org/react-native-inapp-inspector/latest").then(e=>e.ok?e.json():null).then(e=>{!t&&e&&typeof e.version=="string"&&gn(e.version)}).catch(()=>{}),()=>{t=!0}},[]),l(()=>{Pa(we)},[we]),l(()=>{u==="redux"&&!Ds()&&z("apis"),u==="analytics"&&!Ps()&&z("apis")},[u]);const Ur=t=>{t!=="apis"&&(t==="redux"&&!Ds()||t==="analytics"&&!Ps()||pt(e=>{const s=!e[t],r={...e,[t]:s};return!s&&u===t&&(Bn(),z("apis")),!s&&Z===t&&Tt("apis"),r}))},bs=M(async(t,e="")=>{if(t==="apis"||t==="logs"||t==="analytics"||t==="crash"){const s=await Xn(t,0,100,e);s&&s.items&&s.items.length>0&&(t==="apis"?te(s.items):t==="logs"?ae(s.items):t==="analytics"?he(s.items):t==="crash"&&j(s.items))}},[]),qr=M(t=>{t==="redux"&&!Ds()||t==="analytics"&&!Ps()||(Ht(null),Et(null),ts(null),jt(null),Jt(null),ie(null),ye(null),typeof Ms.startTransition=="function"?Ms.startTransition(()=>{z(t),bs(t)}):(z(t),bs(t)),Do(t))},[bs]),[Hr,Et]=o(null),[be,Wr]=o(""),[a,Gr]=o({categories:new Set(["all"]),screens:new Set,sources:new Set(["all"]),userTypes:new Set(["all"]),timeWindow:"all",payloadComplexity:"all",hasRevenue:!1,hasItems:!1,hasUserProps:!1,hasParams:!1,onlyDuplicates:!1,onlyConversions:!1,sortBy:"time_desc"}),zr=h(()=>!!(a.categories.size>0&&!a.categories.has("all")||a.screens.size>0||a.sources.size>0&&!a.sources.has("all")||a.userTypes.size>0&&!a.userTypes.has("all")||a.timeWindow!=="all"||a.payloadComplexity!=="all"||a.hasRevenue||a.hasItems||a.hasUserProps||a.hasParams||a.onlyDuplicates||a.onlyConversions||a.sortBy!=="time_desc"),[a]),jr=M(()=>{Gr({categories:new Set(["all"]),screens:new Set,sources:new Set(["all"]),userTypes:new Set(["all"]),timeWindow:"all",payloadComplexity:"all",hasRevenue:!1,hasItems:!1,hasUserProps:!1,hasParams:!1,onlyDuplicates:!1,onlyConversions:!1,sortBy:"time_desc"})},[]),[Jr,Sn]=o(!1),[$r,yn]=o(!1),[Qr,Xr]=o(new Set),_e=C(new Set),[vt,Rs]=o(null),Yr=Ms.useContext(Tn)!==void 0,P=C({path:"",params:null});l(()=>(No(()=>P.current),ko(()=>P.current),()=>{No(null),ko(null)}),[]),l(()=>{if(vt){const t=Ro(vt);t?.path&&(P.current=t)}},[vt]),l(()=>{if(!E)return;const t=()=>{try{if(typeof E.isReady=="function"&&E.isReady()){const s=typeof E.getCurrentRoute=="function"?E.getCurrentRoute():null;s?.name&&(P.current={path:s.name,params:s.params||null});const r=E.getRootState();if(r){Rs(r);const n=Ro(r);n?.path&&(P.current=n)}}}catch{}};t();const e=typeof E.addListener=="function"?E.addListener("state",()=>{t()}):null;return()=>{e&&e()}},[E]);const x=C(new Map),Re=C(new Set),[Zr,Kr]=o(new Set),Be=C(new f.Value(1)).current,Ve=C(new f.Value(.4)).current,Ue=C(new f.Value(1)).current,qe=C(new f.Value(0)).current,He=C(new f.Value(0)).current,N=C(new f.ValueXY({x:0,y:0})).current,Pt=C({x:0,y:0});l(()=>{const t=N.x.addListener(s=>Pt.current.x=s.value),e=N.y.addListener(s=>Pt.current.y=s.value);return()=>{N.x.removeListener(t),N.y.removeListener(e)}},[N]);const kt=C(!1),eo=C(Mn.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(t,e)=>Math.abs(e.dx)>4||Math.abs(e.dy)>4,onPanResponderGrant:()=>{kt.current=!0,N.setOffset({x:Pt.current.x,y:Pt.current.y}),N.setValue({x:0,y:0})},onPanResponderMove:f.event([null,{dx:N.x,dy:N.y}],{useNativeDriver:!1}),onPanResponderRelease:()=>{N.flattenOffset(),setTimeout(()=>{kt.current=!1},50)},onPanResponderTerminate:()=>{N.flattenOffset(),kt.current=!1}})).current,to=M(()=>{f.sequence([f.timing(He,{toValue:1,duration:320,useNativeDriver:!1}),f.timing(He,{toValue:0,duration:0,useNativeDriver:!1})]).start(),Ln()},[He]);l(()=>{Ns.OS==="android"&&Nn.setLayoutAnimationEnabledExperimental?.(!0)},[]),l(()=>{if(g)return;const t=f.loop(f.sequence([f.timing(Be,{toValue:1.2,duration:800,useNativeDriver:!1}),f.timing(Be,{toValue:1,duration:800,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Be,g]),l(()=>{if(g)return;const t=f.loop(f.sequence([f.timing(qe,{toValue:1,duration:3200,easing:wo.inOut(wo.ease),useNativeDriver:!1}),f.delay(3500),f.timing(qe,{toValue:0,duration:0,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[qe,g]),l(()=>{const t=f.loop(f.sequence([f.timing(Ve,{toValue:1,duration:1200,useNativeDriver:!1}),f.timing(Ve,{toValue:.4,duration:1200,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Ve]),l(()=>{const t=f.loop(f.sequence([f.timing(Ue,{toValue:1.3,duration:800,useNativeDriver:!1}),f.timing(Ue,{toValue:.8,duration:800,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Ue]);const Cn=h(()=>Oa(),[]),ee=(Ns.OS==="ios"||Ns.OS==="android")&&Cn;l(()=>{ee&&Te().catch(()=>{})},[ee,g,qt]),l(()=>{if(!ee)return;const t=Da(()=>{Te().catch(()=>{}),G(!0)});return()=>{t()}},[ee]),l(()=>{if(!ee)return;const t=Fa(()=>{G(e=>{const s=!e;return s&&Te().catch(()=>{}),s})});return()=>{t()}},[ee]);const so=C(g);l(()=>{if(so.current=g,g){Ma("InspectorModal");const t=Z==="apis"||v?.[Z]?Z:"apis";z(t),Do(t);const e=Zt.current.length>0?Zt.current:Kn();if(e.length>0){const i=Es(e),p=new Set(i.map(S=>S.id));Re.current=p,i.forEach(S=>{if(!x.current.has(S.id)){const A=S?.routeInfo||P.current;x.current.set(S.id,A)}}),te(i)}Kt.current.length>0&&ae(Kt.current),es.current.length>0&&he(es.current);const s=ks();s&&($e(typeof s=="object"?{...s}:s),Qe({...Is()}));const r=Ot();r.length>0&&j(r);const n=requestAnimationFrame(()=>{Gs(!0)});return()=>{cancelAnimationFrame(n)}}else Gs(!1),Ee(new Set),le(new Set)},[g]),l(()=>{Yn(),vs(),sa(),Ta(),na(),ga();const t=Wn(),e=so,s=aa(c=>{if(c.message==="__CLEARED__"){j([]),ie(null),ke(null);return}const H=Ot();H.length>0&&Ge("crash",JSON.stringify(H[0])),j(H),c.crashRecord&&c.shouldShowModal!==!1&&ke(c.crashRecord)}),r=Ot();r.length>0&&(r.forEach(c=>Ge("crash",JSON.stringify(c))),j(r));let n,i=!0;const p=Zn(c=>{if(Zt.current=c,c.length>0&&Ge("apis",JSON.stringify(c[0])),!e.current)return;clearTimeout(n);const H=()=>{const w=Es(c),T=new Set(w.map(U=>U.id)),d=new Set;T.forEach(U=>{Re.current.has(U)||d.add(U)}),Re.current=T,d.size>0&&(d.forEach(U=>{if(!x.current.has(U)){const bn=w.find(Rn=>Rn.id===U)?.routeInfo||P.current;x.current.set(U,bn)}}),Kr(d),setTimeout(()=>Kr(new Set),1200)),te(w)};if(i){i=!1;const w=Es(c),T=new Set(w.map(d=>d.id));Re.current=T,w.forEach(d=>{if(!x.current.has(d.id)){const U=d?.routeInfo||P.current;x.current.set(d.id,U)}}),te(w)}else n=setTimeout(H,250)});let S,A=!0;const As=Na(c=>{if(es.current=c,c.length>0&&Ge("analytics",JSON.stringify(c[0])),!e.current)return;clearTimeout(S);const H=()=>{const w=new Set(c.map(d=>d.id)),T=new Set;w.forEach(d=>{_e.current.has(d)||T.add(d)}),_e.current=w,T.size>0&&(T.forEach(d=>{x.current.has(d+1e6)||x.current.set(d+1e6,P.current)}),Xr(T),setTimeout(()=>Xr(new Set),1200)),he(c)};if(A){A=!1;const w=new Set(c.map(T=>T.id));_e.current=w,he(c)}else S=setTimeout(H,200)});let Ae,Ft=!0;const V=ra(c=>{Kt.current=c,c.length>0&&Ge("logs",JSON.stringify(c[0])),e.current&&(clearTimeout(Ae),Ft?(Ft=!1,ae(c)):Ae=setTimeout(()=>{ae(c)},200))}),Me=ks();Me&&($e(typeof Me=="object"?{...Me}:Me),Qe({...Is()}));const We=va(()=>{if(!e.current)return;const c=ks();$e(c&&typeof c=="object"?{...c}:c),Qe({...Is()})});return()=>{p(),clearTimeout(n),As(),clearTimeout(S),V(),clearTimeout(Ae),We(),s(),t()}},[]),l(()=>{ta(F)},[F]),l(()=>{vo(J)},[J]),l(()=>{or(!0),ar(!0),lr(!1),ur(!1),zt("")},[y]);const R=h(()=>{let t=b.filter(e=>{if(se&&se.length>0&&Gn(e.url,se))return!1;if(D&&D!=="all"){if(D==="errors"){if(!(e.status===0||e.status==null||typeof e.status=="number"&&e.status>=400))return!1}else if(D==="success"){if(!(typeof e.status=="number"&&e.status>=200&&e.status<400))return!1}else if(D==="slow"){if((e.duration||0)<500)return!1}else if(D==="graphql"){if(!((e.url||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("apollo")))return!1}else if(e.method?.toUpperCase()!==D.toUpperCase())return!1}if(re.size>0&&!re.has("all")){const s=typeof e.status=="number"?e.status:parseInt(String(e.status),10);if(![...re].some(n=>{const i=String(n).toLowerCase();if(i==="all")return!0;if(i==="failed")return e.status===0||e.status==null||!isNaN(s)&&s>=400;if(i==="2xx")return!isNaN(s)&&s>=200&&s<300;if(i==="3xx")return!isNaN(s)&&s>=300&&s<400;if(i==="4xx")return!isNaN(s)&&s>=400&&s<500;if(i==="5xx")return!isNaN(s)&&s>=500&&s<600;if(!isNaN(s)){const p=parseInt(String(n),10);if(!isNaN(p)&&p>=100)return s===p}return String(e.status).startsWith(String(n)[0])}))return!1}if(oe.size>0&&!oe.has("all")&&![...oe].some(r=>String(r).toUpperCase()==="ALL"?!0:e.method?.toUpperCase()===String(r).toUpperCase()))return!1;if(pe!=="all"){const s=e.duration||0;if(pe==="fast"&&s>=200||pe==="normal"&&(s<200||s>500)||pe==="slow"&&s<=500)return!1}if(ve!=="all"){const s=(e.url||"").toLowerCase().startsWith("https");if(ve==="https"&&!s||ve==="http"&&s)return!1}if(L&&L.trim().length>0){const s=x.current.get(e.id)?.path||"";if(!qn(e,L,s,{scope:ce,isRegex:ue,isCaseSensitive:fe}))return!1}return!0});if(me==="time_asc"||st==="oldest")t=[...t].reverse();else if(me==="duration_desc")t=[...t].sort((e,s)=>(s.duration||0)-(e.duration||0));else if(me==="duration_asc")t=[...t].sort((e,s)=>(e.duration||0)-(s.duration||0));else if(me==="size_desc")t=[...t].sort((e,s)=>{const r=(e.response?JSON.stringify(e.response).length:0)+(e.request?JSON.stringify(e.request).length:0);return(s.response?JSON.stringify(s.response).length:0)+(s.request?JSON.stringify(s.request).length:0)-r});else if(L&&L.trim().length>0){const e=new Map;for(const s of t){const r=x.current.get(s.id)?.path||"",n=Hn(s,L,r,{scope:ce,isRegex:ue,isCaseSensitive:fe});e.set(s.id,n)}t=[...t].sort((s,r)=>{const n=(e.get(r.id)||0)-(e.get(s.id)||0);return n!==0?n:(r.startTime||0)-(s.startTime||0)})}if(!K){const e=[];for(const s of t){const r=e[e.length-1];r&&r.method===s.method&&r.url===s.url&&r.status===s.status?e[e.length-1]={...r,duplicateCount:(r.duplicateCount||1)+1}:e.push({...s,duplicateCount:1})}t=e}return t},[b,se,L,ce,ue,fe,D,re,oe,pe,ve,me,st,K]),ro=h(()=>{const t=new Set;return b.forEach(e=>{e.method&&t.add(e.method.toUpperCase())}),["ALL",...Array.from(t)]},[b]),oo=M((t,e)=>{Xt(s=>{const r=s[t]||new Set(["success","failed","loading"]),n=new Set(r);return n.has(e)?n.delete(e):n.add(e),{...s,[t]:n}})},[]),It=h(()=>{if(P.current?.path){const t=P.current.path.split(" \u2794 ").map(e=>e.trim()).filter(Boolean);return t.length>0?t[t.length-1]:P.current.path}if(R.length>0){const t=R[0],e=x.current.get(t.id)||t?.routeInfo;return Ts(t,e)}return""},[R,vt]),no=M(t=>{et(e=>{const s=new Map(e),n=!!(L&&L.trim().length>0)?!0:t===It,i=s.has(t)?s.get(t):n;return s.set(t,!i),s})},[It,L]);l(()=>{tt({}),et(new Map)},[L,ce,ue,fe,D,re,oe,F]);const ao=M((t,e=10)=>{tt(s=>({...s,[t]:(s[t]||F||50)+e}))},[F]),io=h(()=>{const t=!!(L&&L.trim().length>0);if(!de||t)return R.map((n,i)=>{const p=x.current.get(n.id)||n?.routeInfo,S=Ts(n,p);return{type:"log",id:`flat-log-${n.id}`,log:n,isLast:i===R.length-1,color:Ao(S)}});const e=[],s=new Map;for(let n=0;n<R.length;n++){const i=R[n],p=x.current.get(i.id)||i?.routeInfo,S=Ts(i,p);let A=s.get(S);A||(A={pageName:S,color:Ao(S),logs:[]},s.set(S,A)),A.logs.push(i)}let r=0;return s.forEach(n=>{let i=0,p=0,S=0;n.logs.forEach(V=>{V.status==null?S++:V.status===0||V.status>=400?p++:i++});const A=er[n.pageName]||new Set(["success","failed","loading"]),As=t?!0:n.pageName===It,Ae=Yt.has(n.pageName)?!Yt.get(n.pageName):!As,Ft=n.logs[0]?.startTime||0;if(e.push({type:"header",id:`hdr-${n.pageName}`,pageName:n.pageName,color:n.color,stats:{success:i,failed:p,loading:S},timestamp:Ft,activeFilters:A,isCollapsed:Ae,isFirst:r===0}),r++,!Ae){const V=n.logs.filter(d=>d.status==null?A.has("loading"):d.status===0||d.status>=400?A.has("failed"):A.has("success")),Me=F||50,We=tr[n.pageName]||Me,c=V.slice(0,We),H=V.length>We;c.forEach(d=>{e.push({type:"log",id:`log-${d.id}`,log:d,isLast:!1,color:n.color})});const w=Math.max(0,V.length-We),T=Math.min(w||10,10);e.push({type:"loadMore",id:`loadmore-${n.pageName}`,pageName:n.pageName,color:n.color,remainingCount:w,totalCount:V.length,loadedCount:c.length,loadMoreStep:T,hasMore:H})}}),e},[de,R,b,er,Yt,It,tr,F,L]),{minStart:lo,totalRange:co}=h(()=>{if(R.length===0)return{minStart:0,totalRange:0};const t=Math.min(...R.map(s=>s.startTime)),e=Math.max(...R.map(s=>s.startTime+(s.duration||10)));return{minStart:t,totalRange:e-t}},[R]),Dt=h(()=>{if(!y)return null;const t=b.findIndex(e=>e.id===y.id);if(t===-1)return null;for(let e=t+1;e<b.length;e++){const s=b[e];if(s.url===y.url&&s.method===y.method)return s}return null},[y,b]),uo=Dt?Dt.request:null,fo=Dt?Dt.response:null,po=h(()=>{let t=ot;if(be&&be.trim().length>0){const r=be.trim().toLowerCase().split(/\s+/).filter(Boolean);t=t.filter(n=>{const i=[n.name||"",JSON.stringify(n.params||""),JSON.stringify(n.userProperties||""),n.screenName||"",n.pageTitle||"",n.userId||"",n.source||""].join(" ").toLowerCase();return r.every(p=>i.includes(p))})}if(a.categories.size>0&&!a.categories.has("all")&&(t=t.filter(r=>{const n=Un(r.name);return a.categories.has(n)})),a.timeWindow!=="all"){const r=Date.now(),n=a.timeWindow==="1m"?r-60*1e3:a.timeWindow==="5m"?r-300*1e3:a.timeWindow==="15m"?r-900*1e3:r-3600*1e3;t=t.filter(i=>i.timestamp>=n)}if(a.sources.size>0&&!a.sources.has("all")&&(t=t.filter(r=>a.sources.has(r.source||"manual"))),a.userTypes.size>0&&!a.userTypes.has("all")&&(t=t.filter(r=>{const n=!!(r.userId&&r.userId.trim()!=="");return!!(a.userTypes.has("identified")&&n||a.userTypes.has("anonymous")&&!n)})),a.payloadComplexity!=="all"&&(a.payloadComplexity==="none"?t=t.filter(r=>!r.params||Object.keys(r.params).length===0):a.payloadComplexity==="simple"?t=t.filter(r=>r.params&&Object.keys(r.params).length<=3):a.payloadComplexity==="heavy"&&(t=t.filter(r=>r.params&&Object.keys(r.params).length>3))),a.onlyConversions){const r=["purchase","item_purchase","ecommerce_purchase","sign_up","login","lead","generate_lead","tutorial_complete","add_payment_info","begin_checkout","spend_virtual_currency"];t=t.filter(n=>r.some(i=>n.name.toLowerCase().includes(i)))}a.screens.size>0&&(t=t.filter(r=>{const n=r.screenName||r.params?.firebase_screen||r.params?.screen_name||r.params?.firebase_screen_class||r.screenClass||"";return a.screens.has(n)})),a.hasRevenue&&(t=t.filter(r=>r.params?.value!=null&&!isNaN(Number(r.params.value))||r.params?.price!=null&&!isNaN(Number(r.params.price)))),a.hasItems&&(t=t.filter(r=>Array.isArray(r.params?.items)&&r.params.items.length>0)),a.hasUserProps&&(t=t.filter(r=>r.userProperties&&Object.keys(r.userProperties).length>0)),a.hasParams&&(t=t.filter(r=>r.params&&Object.keys(r.params).length>0));const e=[];for(const r of t){if(e.length===0){e.push({...r,count:1});continue}const n=e[e.length-1];n.name===r.name&&JSON.stringify(n.params)===JSON.stringify(r.params)&&JSON.stringify(n.userProperties)===JSON.stringify(r.userProperties)?(n.count=(n.count||1)+1,n.timestamp=r.timestamp,n.id=r.id):e.push({...r,count:1})}let s=e;return a.onlyDuplicates&&(s=s.filter(r=>(r.count||1)>1)),a.sortBy==="time_asc"?s=[...s].sort((r,n)=>r.timestamp-n.timestamp):a.sortBy==="revenue_desc"?s=[...s].sort((r,n)=>{const i=Number(r.params?.value??r.params?.price??0);return Number(n.params?.value??n.params?.price??0)-i}):a.sortBy==="count_desc"&&(s=[...s].sort((r,n)=>(n.count||1)-(r.count||1))),s.slice(0,Le)},[ot,be,a,Le]),mo=h(()=>{let t=Y;if(B.size>0&&!B.has("all")&&(t=t.filter(e=>!!(B.has("user-log")&&e.sourceMethod==="log"||B.has("info")&&(e.sourceMethod==="info"||e.type==="info"&&e.sourceMethod!=="log")||B.has("warn")&&(e.type==="warn"||e.sourceMethod==="warn")||B.has("error")&&(e.type==="error"||e.sourceMethod==="error")||B.has("analytics")&&e.message?.toLowerCase().includes("[analytics error]")))),_&&_.trim().length>0){const e=_.trim().toLowerCase().split(/\s+/).filter(Boolean);t=t.filter(s=>{const r=[s.message||"",s.caller||"",s.type||"",s.sourceMethod||"",s.stack||""].join(" ").toLowerCase();return e.every(n=>n==="error"||n==="err"?s.type==="error"||r.includes(n):n==="warn"||n==="warning"?s.type==="warn"||r.includes(n):n==="info"&&s.type==="info"||r.includes(n))})}if(t=[...t].sort((e,s)=>rt==="newest"?s.timestamp-e.timestamp:e.timestamp-s.timestamp),!K){const e=[];for(const s of t){const r=e[e.length-1];r&&r.type===s.type&&r.sourceMethod===s.sourceMethod&&r.message===s.message?e[e.length-1]={...r,duplicateCount:(r.duplicateCount||1)+1}:e.push({...s,duplicateCount:1})}t=e}return t},[Y,B,_,rt,K]),ho=h(()=>{let t=Y;if(_&&_.trim().length>0){const s=_.trim().toLowerCase().split(/\s+/).filter(Boolean);t=Y.filter(r=>{const n=[r.message||"",r.caller||"",r.type||"",r.sourceMethod||"",r.stack||""].join(" ").toLowerCase();return s.every(i=>i==="error"||i==="err"?r.type==="error"||n.includes(i):i==="warn"||i==="warning"?r.type==="warn"||n.includes(i):i==="info"&&r.type==="info"||n.includes(i))})}const e=Y.length;return{all:`${t.length}/${e}`,info:`${t.filter(s=>s.sourceMethod==="info"||s.type==="info"&&s.sourceMethod!=="log").length}/${e}`,warn:`${t.filter(s=>s.type==="warn"||s.sourceMethod==="warn").length}/${e}`,error:`${t.filter(s=>s.type==="error"||s.sourceMethod==="error").length}/${e}`,"user-log":`${t.filter(s=>s.sourceMethod==="log").length}/${e}`,analytics:`${t.filter(s=>s.message.toLowerCase().includes("[analytics error]")).length}/${e}`}},[Y,_]),go=M(()=>{G(!1),Ut(!1),setTimeout(()=>{Ht(null),Et(null),ts(null),jt(null),Jt(null),ie(null),ye(null)},300)},[]);function Ln(){vs(),te([]),Ee(new Set),Xt({}),et(new Map),tt({}),$t(new Set),Qt(new Set),js(""),Re.current=new Set,x.current=new Map,Fo(),he([]),Wr(""),_e.current=new Set,To(),ae([]),le(new Set),as(new Set(["all"])),Pr("")}function So(){if(u==="logs"){Ke.size>0?(ae(t=>t.filter(e=>!Ke.has(e.id))),le(new Set)):I({visible:!0,title:m("console.clearLogsTitle","Clear Console Logs"),message:m("console.clearLogsMsg","Are you sure you want to clear all console logs?"),confirmText:m("common.clearAll","Clear All"),cancelText:m("common.cancel","Cancel"),onConfirm:()=>{I(t=>({...t,visible:!1})),To(),ae([]),le(new Set)}});return}if(u==="analytics"){I({visible:!0,title:m("analytics.clearEventsTitle","Clear Analytics"),message:m("analytics.clearEventsMsg","Are you sure you want to clear all analytics events?"),confirmText:m("common.clearAll","Clear All"),cancelText:m("common.cancel","Cancel"),onConfirm:()=>{I(t=>({...t,visible:!1})),Fo(),he([]),Et(null),_e.current=new Set}});return}if(u==="redux"){I({visible:!0,title:m("redux.clearTimelineTitle","Clear Redux Timeline"),message:m("redux.clearTimelineMsg","Are you sure you want to clear the dispatched action history?"),confirmText:m("common.clearAll","Clear All"),cancelText:m("common.cancel","Cancel"),onConfirm:()=>{I(t=>({...t,visible:!1})),ka(),Qe({})}});return}if(u==="crash"){I({visible:!0,title:m("crash.clearTitle","Clear Crash Records"),message:m("crash.clearMessage","Are you sure you want to clear all intercepted crash records?"),confirmText:m("crash.clearConfirm","Clear All"),cancelText:m("crash.clearCancel","Cancel"),onConfirm:()=>{I(t=>({...t,visible:!1})),Eo(),j([]),ie(null)}});return}Ze.size>0?(te(t=>t.filter(e=>!Ze.has(e.id))),Ee(new Set)):I({visible:!0,title:m("network.clearLogsTitle","Clear Network Logs"),message:m("network.clearLogsMsg","Are you sure you want to clear all network logs?"),confirmText:m("common.clearAll","Clear All"),cancelText:m("common.cancel","Cancel"),onConfirm:()=>{I(t=>({...t,visible:!1})),xn()}})}function xn(){vs(),te([]),Ee(new Set),Xt({}),et(new Map),tt({}),$t(new Set),Qt(new Set),Re.current=new Set,x.current=new Map}const yo=h(()=>{if(!y)return"";try{const e=new URL(y.url).pathname.split("/").filter(Boolean);return e.length>0?`/${e.slice(-2).join("/")}`:"/"}catch{const t=y.url.split("/").filter(Boolean);return t.length>0?`/${t.slice(-2).join("/")}`:y.url}},[y]),Co=h(()=>y?Vn(y.url):"",[y]),Lo=M(t=>{Ee(e=>{const s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},[]),xo=M(t=>{le(e=>{const s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},[]),wn=h(()=>({visible:g,setVisible:G,closeModal:go,isMinimized:qs,setIsMinimized:Ut,minimizeInspector:Vo,isDismissed:qt,setIsDismissed:Hs,dismissInspector:Uo,isReady:Ws,enabled:k,isEnabled:k,appIcon:_s,environment:Bs,modalHeightPercent:Xe,setModalHeightPercent:Bt,modalAnimationType:Ye,setModalAnimationType:Vt,hasNavigationContext:Yr,setNavState:Rs,activeTab:u,switchActiveTab:qr,tabVisibility:v,toggleTabVisibility:Ur,lastReadApisCount:mr,lastReadLogsCount:dr,mediaCount:yr,refreshMediaCount:nt,selected:y,setSelected:Ht,selectedEvent:Hr,setSelectedEvent:Et,selectedLog:fr,setSelectedLog:ts,showHeaderInfo:sr,setShowHeaderInfo:Xo,settingsPage:kr,setSettingsPage:ln,isAboutOpen:Ir,setIsAboutOpen:cn,isSupportOpen:Dr,setIsSupportOpen:un,updateAvailable:Vr,latestNpmVersion:Oe,clearAnim:He,activePulseAnim:Ve,unreadPulseAnim:Ue,runClearAllWithAnimation:to,confirmModal:zs,setConfirmModal:I,useNativeFab:ee,fabPan:N,fabPanResponder:eo,fabDraggedRef:kt,pulseAnim:Be,fabShineAnim:qe,logs:b,filteredLogs:R,groupedData:io,search:L,setSearch:js,searchScope:ce,setSearchScope:qo,isRegexSearch:ue,setIsRegexSearch:Ho,isCaseSensitive:fe,setIsCaseSensitive:Wo,quickFilter:D,setQuickFilter:Go,statusFilters:re,setStatusFilters:$t,methodFilters:oe,setMethodFilters:Qt,latencyFilter:pe,setLatencyFilter:Jo,protocolFilter:ve,setProtocolFilter:$o,networkSortBy:me,setNetworkSortBy:Qo,availableMethods:ro,sortOrder:st,setSortOrder:Yo,selectedLogs:Ze,toggleSelect:Lo,minStart:lo,totalRange:co,newLogIds:Zr,toggleSectionFilter:oo,toggleSectionCollapse:no,loadMoreSection:ao,handleDelete:So,isGroupByPageEnabled:de,setIsGroupByPageEnabled:Wt,hiddenUrlPatterns:se,setHiddenUrlPatterns:Gt,detailTitle:yo,detailDisplayUrl:Co,apiDetailActiveTab:Zs,setApiDetailActiveTab:Ks,detailSearch:Js,setDetailSearch:zt,reqExpanded:rr,setReqExpanded:or,resExpanded:nr,setResExpanded:ar,showReqDiff:ir,setShowReqDiff:lr,showResDiff:cr,setShowResDiff:ur,prevRequestData:uo,prevResponseData:fo,logRouteMapRef:x,consoleLogs:ne,visibleConsoleLogs:Y,filteredConsoleLogs:mo,logSearch:_,setLogSearch:Pr,logFilters:B,setLogFilters:as,logCounts:ho,logSortOrder:rt,setLogSortOrder:Zo,selectedConsoleLogs:Ke,setSelectedConsoleLogs:le,toggleSelectConsoleLog:xo,analyticsEvents:ot,filteredAnalyticsEvents:po,analyticsSearch:be,setAnalyticsSearch:Wr,analyticsFilters:a,setAnalyticsFilters:Gr,isAnalyticsFilterApplied:zr,resetAnalyticsFilters:jr,newEventIds:Qr,isAnalyticsLayoutReady:Jr,setIsAnalyticsLayoutReady:Sn,analyticsHeaderExpanded:$r,setAnalyticsHeaderExpanded:yn,reduxState:Vs,setReduxState:$e,reduxLastActionMap:Us,reduxSearch:$s,setReduxSearch:zo,selectedReduxSlice:Qs,setSelectedReduxSlice:jt,selectedReduxAction:Xs,setSelectedReduxAction:Jt,reduxActiveSubTab:Ys,setReduxActiveSubTab:jo,crashRecords:Pe,setCrashRecords:j,selectedCrash:xr,setSelectedCrash:ie,lastReadCrashesCount:gr,maxCrashLogs:J,setMaxCrashLogs:at,clearAllCrashes:()=>{Eo(),j([]),ie(null)},crashIgnoredTypes:ge,setCrashIgnoredTypes:rs,crashModalTriggerPolicy:Se,setCrashModalTriggerPolicyState:wr,applyCrashPolicyPreset:br,pushRecords:$,filteredPushRecords:Tr,selectedPush:Ar,setSelectedPush:Mr,pushSearch:Ie,setPushSearch:en,pushQuickFilter:q,setPushQuickFilter:tn,lastReadPushCount:it,unreadPushCount:Nr,maxPushLogs:lt,setMaxPushLogs:os,clearAllPushLogs:()=>{pa(),Rr([]),Mr(null)},simulatePush:(t,e)=>{ha(t,e)},socketRecords:Q,filteredSocketRecords:vr,selectedSocket:De,setSelectedSocket:ye,socketSearch:Fe,setSocketSearch:rn,socketQuickFilter:O,setSocketQuickFilter:on,lastReadSocketCount:ut,unreadSocketCount:Er,maxSocketLogs:ft,setMaxSocketLogs:an,clearAllSocketLogs:()=>{Sa(),ct([]),ye(null)},deleteSocketRecord:t=>{ba(t),ct(e=>e.filter(s=>s.id!==t)),De?.id===t&&ye(null)},deleteMultipleSocketRecords:t=>{Ra(t);const e=new Set(t);ct(s=>s.filter(r=>!e.has(r.id))),De&&e.has(De.id)&&ye(null)},simulateSocket:(t,e)=>{wa(t,e)},settingsActiveSubTab:Fr,setSettingsActiveSubTab:fn,defaultTab:Z,setDefaultTab:Tt,isDark:Je,setIsDark:_t,showDuplicateLogs:K,setShowDuplicateLogs:Ls,showUpdateToast:xs,setShowUpdateToast:ws,showConsoleLevels:X,setShowConsoleLevels:ns,resetToDefaults:hn,storage:W,maxNetworkLogs:F,setMaxNetworkLogs:mt,maxConsoleLogs:Ce,setMaxConsoleLogs:dt,maxAnalyticsEventsLimit:Le,setMaxAnalyticsEventsLimit:ht,isAutoRamLimitEnabled:xe,setIsAutoRamLimitEnabled:is,deviceFreeRamMb:ls,reduxAutoRefresh:we,setReduxAutoRefreshState:cs,reduxExpandDepth:gt,setReduxExpandDepth:us,captureFps:St,setCaptureFps:fs,captureScale:yt,setCaptureScale:ds,captureBitrate:Ct,setCaptureBitrate:ps,captureMaxDurationSeconds:Lt,setCaptureMaxDurationSeconds:ms,captureImageFormat:xt,setCaptureImageFormat:hs,captureAudioMode:wt,setCaptureAudioMode:gs,captureAutoHide:bt,setCaptureAutoHide:Ss,captureAutoGif:Rt,setCaptureAutoGif:ys,captureWidgetEnabled:At,setCaptureWidgetEnabled:Mt,peekMode:Or,setPeekMode:pn,peekOpacity:Nt,setPeekOpacity:Cs,previewMediaItem:Lr,setPreviewMediaItem:Ko,isUpdatePopupVisible:_r,setIsUpdatePopupVisible:mn}),[g,go,Ws,k,_s,Bs,Xe,Ye,Yr,Rs,u,qr,v,Ur,mr,dr,yr,nt,Lr,y,Hr,fr,sr,kr,Ir,Dr,Vr,Oe,He,Ve,Ue,to,ee,N,eo,Be,qe,b,R,io,L,ce,ue,fe,D,re,oe,ro,st,Ze,Lo,lo,co,Zr,oo,no,ao,So,de,Wt,se,yo,Co,Zs,Js,rr,nr,ir,cr,uo,fo,ne,Y,mo,_,B,ho,rt,Ke,xo,ot,po,be,a,zr,jr,Qr,Jr,$r,Vs,Us,$s,Qs,Xs,Ys,Pe,xr,gr,J,ge,Se,br,$,Tr,Ar,Ie,q,it,Nr,lt,Q,vr,De,Fe,O,ut,Er,ft,Fr,Z,Je,K,xs,X,W,F,Ce,Le,xe,ls,we,gt,St,yt,Ct,Lt,xt,wt,bt,Rt,At,Or,Nt,qs,qt,zs,_r]);return<_n.Provider value={wn}>
|
|
2
|
+
<Fn/>
|
|
3
|
+
<On visible={!!ss}crash={ss}onDismiss={()=>ke(null)}onOpenInspector={()=>{const t=ss;ke(null),t&&ie(t),z("crash"),G(!0)}}onRetry={()=>{ke(null)}}/>
|
|
4
|
+
</_n.Provider>},Os=k=>{const W=k?.enabled??!0,E=k?.telemetry??!0;return l(()=>(W?E?Aa(!0,k?.environment):Io(!1):(Te().catch(()=>{}),Io(!1)),()=>{Te().catch(()=>{})}),[W,E,k?.environment]),W?<En i18n={vn}>
|
|
5
|
+
<Dn fallbackType="inline">
|
|
6
6
|
<Ua{...k}enabled={W}/>
|
|
7
|
-
</
|
|
8
|
-
</
|
|
7
|
+
</Dn>
|
|
8
|
+
</En>:null};export default Os;export{Os as InAppInspector,Os as NetworkInspector};export{setupNetworkLogger,clearNetworkLogs,subscribeNetworkLogs,addAxiosInterceptors,setMaxNetworkLogsLimit,getMaxNetworkLogsLimit,pruneNetworkLogs,getNetworkLogs}from"./customHooks/networkLogger";export{setupConsoleLogger,clearConsoleLogs,subscribeConsoleLogs,setMaxConsoleLogsLimit,getMaxConsoleLogsLimit,pruneConsoleLogs}from"./customHooks/consoleLogger";export{setupAnalyticsLogger,logAnalyticsEvent,subscribeAnalyticsEvents,clearAnalyticsEvents,getCurrentUserProperties,getCurrentUserId,getDefaultEventParameters,getCollectionEnabled,setMaxAnalyticsLogsLimit,getMaxAnalyticsLogsLimit,pruneAnalyticsLogs}from"./customHooks/analyticsLogger";export{setupGlobalCrashHandler,subscribeCrashEvents,emitCrashEvent,getCrashRecords,clearCrashRecords,simulateTestCrash,triggerGlobalCrashScreen,exportCrashReport,parseCrashStackTrace,recordCustomCrash,addCrashBreadcrumb,recordNavigationBreadcrumb,recordNetworkBreadcrumb,recordReduxBreadcrumb,recordUserActionBreadcrumb,computeCrashFingerprint,getMaxCrashLogsLimit,pruneCrashRecords}from"./customHooks/crashHandler";export{default as CrashTab}from"./components/Inspector/CrashTab";export{default as ErrorBoundary}from"./components/ErrorBoundary";export{default as GlobalCrashScreenModal}from"./components/Inspector/GlobalCrashScreenModal";export{connectReduxStore,inspectorReduxMiddleware,getReduxState,subscribeReduxState,getActionHistory,clearActionHistory,getLastActionForReducer,setMaxReduxHistoryLimit,getMaxReduxHistoryLimit,pruneReduxHistory,isReduxConnected}from"./customHooks/reduxLogger";export{getEventCategory,registerGAPlugin}from"./helpers/gaAnalyticsRegistry";export{InspectLog,InspectTrackTime,InspectCatch}from"./decorators";export{getNativeDeviceMetrics,enableNativeCrashProtection,subscribeNativeCrashes,showNativeFloatingButton,hideNativeFloatingButton,setNativeFloatingButtonBadge,subscribeNativeFloatingButtonPress,subscribeNativeDeviceShake,startNativeFpsMonitoring,stopNativeFpsMonitoring,getNativeFpsMetrics,getNativeStorageItem,setNativeStorageItem,isNativeModuleAvailable}from"./native/NativeInspector";export{setupMemoryWarningHandler,pruneAllLogs,subscribeMemoryWarning}from"./helpers";export{recordPushNotification,recordSalesforcePush,getPushRecords,clearPushRecords,subscribePushEvents,simulateTestPush,autoSetupPushLogger,setMaxPushRecordsLimit,getDiscoveredPushSources,prunePushRecords}from"./customHooks/pushNotificationLogger";export{setupSocketLogger,clearSocketRecords,subscribeSocketRecords,getSocketRecords,setSocketModuleEnabled,getSocketModuleEnabled,setMaxSocketRecordsLimit,getMaxSocketRecordsLimit,pruneSocketRecords,recordSocketConnection,recordSocketFrame,recordSocketClose,recordSocketError,simulateTestSocket,analyzeSocketPayload}from"./customHooks/socketLogger";export{default as SocketTab}from"./components/Inspector/SocketTab";export{default as SocketDetail}from"./components/Inspector/SocketDetail";export{default as SocketCard}from"./components/Inspector/SocketCard";export{PerformanceTab}from"./components/Inspector/PerformanceTab";export{usePerformanceMonitor}from"./helpers/performanceSampler";export{shareApiReport,sharePushReport,shareSocketReport,shareCrashReport,shareAnalyticsReport,shareReduxReport,shareLogReport,shareConsoleLogs,shareNetworkLogs,formatApiReport,formatPushReport,formatSocketReport,formatCrashReport,formatAnalyticsReport,formatReduxReport,formatLogReport,formatConsoleLogsExport,formatNetworkLogsExport,estimateConsoleLogsExportSize,estimateNetworkLogsExportSize,generateConsoleLogsFilename,generateNetworkLogsFilename,DEFAULT_CONSOLE_EXPORT_OPTIONS,DEFAULT_NETWORK_EXPORT_OPTIONS}from"./helpers/shareFormatter";export{default as ConsoleExportModal}from"./components/Inspector/ConsoleExportModal";export{default as NetworkExportModal}from"./components/Inspector/NetworkExportModal";export{BrandCircleIcon,BrandSquareIcon,BellIcon,CloudPushIcon,WebsocketIcon,SocketIcon}from"./components/NetworkIcons";export{ModuleErrorBoundary}from"./components/ModuleErrorBoundary";export{SkeletonPlaceholder}from"./components/SkeletonPlaceholder";export{connectAsyncStorage,connectMMKV,isAsyncStorageConnected,isMMKVConnected,getRegisteredMMKVInstanceIds,fetchStorageEntries,setStorageEntry,removeStorageEntry,clearStorageDriver,subscribeToStorageChanges}from"./customHooks/storageInspector";export{ActiveTab,Method,StatusFilter,SortOrder,LocalFilter,ModalAnimationType,SettingsPage,SettingsSubTab,LogFilter,ConsoleLogType,AnalyticsEventSource,GAEventCategory,StackFrameType,DiffResultType,CrashType,CrashExportFormat,CrashDetailSubTab,CrashFilterType,BreadcrumbType,PushAppState,PushActionType,PushDetailSubTab,PushFilterType,SocketStatus,SocketFrameDirection,SocketFrameType,SocketDetailSubTab,SocketFilterType}from"./types";export{AppFonts,setAppFonts}from"./styles/AppFonts";export{AppColors,setAppColors,getThemeColors,updateAppColorsTheme}from"./styles/AppColors";export{t,i18n,useTranslation,setLanguage,addTranslations,setTranslations,I18nextProvider,SUPPORTED_LANGUAGES}from"./i18n";export{fetchRemoteConfigModuleStatus,fetchRemoteConfigSettings,isFirebaseRemoteConfigAvailable}from"./helpers/remoteConfig";export{ScreenCapture,ScreenRecorder}from"./capture";export{MediaEditor}from"./editor";export{LIB_VERSION}from"./constants/version";
|
|
@@ -146,3 +146,5 @@ export interface PickMediaOptions {
|
|
|
146
146
|
mediaType?: 'image' | 'video' | 'any';
|
|
147
147
|
}
|
|
148
148
|
export declare const pickNativeMedia: (options?: PickMediaOptions) => Promise<CapturedMediaItem | null>;
|
|
149
|
+
export declare const writeNativeExportFile: (filename: string, content: string) => Promise<string | null>;
|
|
150
|
+
export declare const shareNativeFile: (filePath: string, mimeType?: string, title?: string) => Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{NativeModules as o,NativeEventEmitter as f,DeviceEventEmitter as l}from"react-native";import d from"./NativeNetworkInspector";const t=d||o.NetworkInspectorModule||o.NetworkInspector;export const isNativeModuleAvailable=()=>!!t;const y=()=>{try{if(o&&o.NetworkInspectorModule)return new f(o.NetworkInspectorModule)}catch{}return null},s=y();export const getNativeDeviceMetrics=async()=>{if(!t||!t.getDeviceMetrics)return null;try{return await t.getDeviceMetrics()}catch{return null}},enableNativeCrashProtection=async e=>{if(!t||!t.enableNativeCrashProtection)return!1;try{const r=await t.enableNativeCrashProtection();return e?.showFloatingButton===!0&&await showNativeFloatingButton(),!!r}catch{return!1}},subscribeNativeCrashes=e=>{const r=[];try{const a=l.addListener("onNativeCrash",e);r.push(()=>a.remove())}catch{}if(s)try{const a=s.addListener("onNativeCrash",e);r.push(()=>a.remove())}catch{}return()=>{r.forEach(a=>{try{a()}catch{}})}},showNativeFloatingButton=async e=>{if(!t||!t.showFloatingButton)return!1;try{return!!await t.showFloatingButton(e||{})}catch{return!1}},hideNativeFloatingButton=async()=>{if(!t||!t.hideFloatingButton)return!1;try{return!!await t.hideFloatingButton()}catch{return!1}},setNativeFloatingButtonBadge=async e=>{if(!t||!t.setFloatingButtonBadge)return!1;try{return!!await t.setFloatingButtonBadge(e)}catch{return!1}},subscribeNativeFloatingButtonPress=e=>{const r=[];try{const n=l.addListener("onFloatingButtonPress",e);r.push(()=>n.remove())}catch{}if(s)try{const n=s.addListener("onFloatingButtonPress",e);r.push(()=>n.remove())}catch{}const a=setInterval(async()=>{if(t&&t.checkFloatingButtonPress)try{await t.checkFloatingButtonPress()&&e()}catch{}},180);return r.push(()=>clearInterval(a)),()=>{r.forEach(n=>{try{n()}catch{}})}},startNativeFpsMonitoring=async()=>{if(!t||!t.startFpsMonitoring)return!1;try{return!!await t.startFpsMonitoring()}catch{return!1}},stopNativeFpsMonitoring=async()=>{if(!t||!t.stopFpsMonitoring)return!1;try{return!!await t.stopFpsMonitoring()}catch{return!1}},getNativeFpsMetrics=async()=>{if(!t||!t.getFpsMetrics)return{fps:60,targetFps:60};try{const e=await t.getFpsMetrics();return{fps:typeof e?.fps=="number"?e.fps:60,targetFps:typeof e?.targetFps=="number"?e.targetFps:60}}catch{return{fps:60,targetFps:60}}},subscribeNativeDeviceShake=e=>{if(!s)return()=>{};try{const r=s.addListener("onDeviceShake",e);return()=>{r.remove()}}catch{return()=>{}}},getNativeStorageItem=async e=>{if(!t||!t.getNativeStorageItem)return null;try{const r=await t.getNativeStorageItem(e);return typeof r=="string"?r:null}catch{return null}},setNativeStorageItem=async(e,r)=>{if(!t||!t.setNativeStorageItem)return!1;try{return!!await t.setNativeStorageItem(e,r)}catch{return!1}},triggerNativeHaptic=async(e="light")=>{if(!t||!t.triggerHaptic)return!1;try{return!!await t.triggerHaptic(e)}catch{return!1}},getNativeSystemMetrics=async()=>{if(!t||!t.getNativeSystemMetrics)return null;try{return await t.getNativeSystemMetrics()}catch{return null}},pushNativeLogRecord=async(e,r)=>{if(!t||!t.pushNativeLogRecord)return!1;try{return!!await t.pushNativeLogRecord(e,r)}catch{return!1}},fetchNativeCachedPage=async(e,r=0,a=50,n="")=>{if(!t||!t.getNativeCachedPage)return null;try{const c=await t.getNativeCachedPage(e,r,a,n);if(!c)return null;const i=JSON.parse(c),p=(i.items||[]).map(u=>typeof u=="string"?JSON.parse(u):u);return{pageKey:i.pageKey||e,total:i.total||0,offset:i.offset||r,items:p}}catch{return null}},takeNativeScreenshot=async e=>{if(!t||!t.takeScreenshot)return null;try{return await t.takeScreenshot(e||{})}catch{return null}},startNativeVideoRecording=async e=>{if(!t||!t.startVideoRecording)return!1;try{return!!await t.startVideoRecording(e||{})}catch{return!1}},stopNativeVideoRecording=async()=>{if(!t||!t.stopVideoRecording)return null;try{return await t.stopVideoRecording()}catch{return null}},isNativeRecordingActive=async()=>{if(!t||!t.isRecording)return!1;try{return!!await t.isRecording()}catch{return!1}},playNativeVideo=async e=>{if(!t||!t.playVideo)return!1;try{return!!await t.playVideo(e)}catch{return!1}},convertNativeVideoToGif=async(e,r)=>{if(!t||!t.convertToGif)return null;try{return await t.convertToGif(e,r||{})}catch{return null}},fetchCapturedMediaList=async()=>{if(!t||!t.getCapturedMedia)return[];try{const e=await t.getCapturedMedia();if(!e)return[];const r=typeof e=="string"?JSON.parse(e):e;return Array.isArray(r)?r:[]}catch{return[]}},deleteCapturedMediaFile=async e=>{if(!t||!t.deleteCapturedMedia)return!1;try{return!!await t.deleteCapturedMedia(e)}catch{return!1}},clearAllCapturedMediaFiles=async()=>{if(!t||!t.clearAllCapturedMedia)return!1;try{return!!await t.clearAllCapturedMedia()}catch{return!1}},copyMediaToClipboard=async e=>{if(!e||!t||!t.copyMediaToClipboard)return!1;try{return!!(await t.copyMediaToClipboard(e))?.success}catch{return!1}},editNativePhoto=async e=>{if(!t||!t.editPhoto)return null;try{return await t.editPhoto(e)}catch{return null}},trimNativeVideo=async e=>{if(!t||!t.trimVideo)return null;try{return await t.trimVideo(e)}catch{return null}},generateNativeFilmstrip=async e=>{if(!t||!t.generateFilmstrip)return null;try{return await t.generateFilmstrip(e)}catch{return null}},pickNativeMedia=async e=>{if(!t||!t.pickMedia)return null;try{return await t.pickMedia(e||{})||null}catch{return null}};
|
|
1
|
+
import{NativeModules as o,NativeEventEmitter as f,DeviceEventEmitter as l}from"react-native";import d from"./NativeNetworkInspector";const t=d||o.NetworkInspectorModule||o.NetworkInspector;export const isNativeModuleAvailable=()=>!!t;const y=()=>{try{if(o&&o.NetworkInspectorModule)return new f(o.NetworkInspectorModule)}catch{}return null},s=y();export const getNativeDeviceMetrics=async()=>{if(!t||!t.getDeviceMetrics)return null;try{return await t.getDeviceMetrics()}catch{return null}},enableNativeCrashProtection=async e=>{if(!t||!t.enableNativeCrashProtection)return!1;try{const r=await t.enableNativeCrashProtection();return e?.showFloatingButton===!0&&await showNativeFloatingButton(),!!r}catch{return!1}},subscribeNativeCrashes=e=>{const r=[];try{const a=l.addListener("onNativeCrash",e);r.push(()=>a.remove())}catch{}if(s)try{const a=s.addListener("onNativeCrash",e);r.push(()=>a.remove())}catch{}return()=>{r.forEach(a=>{try{a()}catch{}})}},showNativeFloatingButton=async e=>{if(!t||!t.showFloatingButton)return!1;try{return!!await t.showFloatingButton(e||{})}catch{return!1}},hideNativeFloatingButton=async()=>{if(!t||!t.hideFloatingButton)return!1;try{return!!await t.hideFloatingButton()}catch{return!1}},setNativeFloatingButtonBadge=async e=>{if(!t||!t.setFloatingButtonBadge)return!1;try{return!!await t.setFloatingButtonBadge(e)}catch{return!1}},subscribeNativeFloatingButtonPress=e=>{const r=[];try{const n=l.addListener("onFloatingButtonPress",e);r.push(()=>n.remove())}catch{}if(s)try{const n=s.addListener("onFloatingButtonPress",e);r.push(()=>n.remove())}catch{}const a=setInterval(async()=>{if(t&&t.checkFloatingButtonPress)try{await t.checkFloatingButtonPress()&&e()}catch{}},180);return r.push(()=>clearInterval(a)),()=>{r.forEach(n=>{try{n()}catch{}})}},startNativeFpsMonitoring=async()=>{if(!t||!t.startFpsMonitoring)return!1;try{return!!await t.startFpsMonitoring()}catch{return!1}},stopNativeFpsMonitoring=async()=>{if(!t||!t.stopFpsMonitoring)return!1;try{return!!await t.stopFpsMonitoring()}catch{return!1}},getNativeFpsMetrics=async()=>{if(!t||!t.getFpsMetrics)return{fps:60,targetFps:60};try{const e=await t.getFpsMetrics();return{fps:typeof e?.fps=="number"?e.fps:60,targetFps:typeof e?.targetFps=="number"?e.targetFps:60}}catch{return{fps:60,targetFps:60}}},subscribeNativeDeviceShake=e=>{if(!s)return()=>{};try{const r=s.addListener("onDeviceShake",e);return()=>{r.remove()}}catch{return()=>{}}},getNativeStorageItem=async e=>{if(!t||!t.getNativeStorageItem)return null;try{const r=await t.getNativeStorageItem(e);return typeof r=="string"?r:null}catch{return null}},setNativeStorageItem=async(e,r)=>{if(!t||!t.setNativeStorageItem)return!1;try{return!!await t.setNativeStorageItem(e,r)}catch{return!1}},triggerNativeHaptic=async(e="light")=>{if(!t||!t.triggerHaptic)return!1;try{return!!await t.triggerHaptic(e)}catch{return!1}},getNativeSystemMetrics=async()=>{if(!t||!t.getNativeSystemMetrics)return null;try{return await t.getNativeSystemMetrics()}catch{return null}},pushNativeLogRecord=async(e,r)=>{if(!t||!t.pushNativeLogRecord)return!1;try{return!!await t.pushNativeLogRecord(e,r)}catch{return!1}},fetchNativeCachedPage=async(e,r=0,a=50,n="")=>{if(!t||!t.getNativeCachedPage)return null;try{const c=await t.getNativeCachedPage(e,r,a,n);if(!c)return null;const i=JSON.parse(c),p=(i.items||[]).map(u=>typeof u=="string"?JSON.parse(u):u);return{pageKey:i.pageKey||e,total:i.total||0,offset:i.offset||r,items:p}}catch{return null}},takeNativeScreenshot=async e=>{if(!t||!t.takeScreenshot)return null;try{return await t.takeScreenshot(e||{})}catch{return null}},startNativeVideoRecording=async e=>{if(!t||!t.startVideoRecording)return!1;try{return!!await t.startVideoRecording(e||{})}catch{return!1}},stopNativeVideoRecording=async()=>{if(!t||!t.stopVideoRecording)return null;try{return await t.stopVideoRecording()}catch{return null}},isNativeRecordingActive=async()=>{if(!t||!t.isRecording)return!1;try{return!!await t.isRecording()}catch{return!1}},playNativeVideo=async e=>{if(!t||!t.playVideo)return!1;try{return!!await t.playVideo(e)}catch{return!1}},convertNativeVideoToGif=async(e,r)=>{if(!t||!t.convertToGif)return null;try{return await t.convertToGif(e,r||{})}catch{return null}},fetchCapturedMediaList=async()=>{if(!t||!t.getCapturedMedia)return[];try{const e=await t.getCapturedMedia();if(!e)return[];const r=typeof e=="string"?JSON.parse(e):e;return Array.isArray(r)?r:[]}catch{return[]}},deleteCapturedMediaFile=async e=>{if(!t||!t.deleteCapturedMedia)return!1;try{return!!await t.deleteCapturedMedia(e)}catch{return!1}},clearAllCapturedMediaFiles=async()=>{if(!t||!t.clearAllCapturedMedia)return!1;try{return!!await t.clearAllCapturedMedia()}catch{return!1}},copyMediaToClipboard=async e=>{if(!e||!t||!t.copyMediaToClipboard)return!1;try{return!!(await t.copyMediaToClipboard(e))?.success}catch{return!1}},editNativePhoto=async e=>{if(!t||!t.editPhoto)return null;try{return await t.editPhoto(e)}catch{return null}},trimNativeVideo=async e=>{if(!t||!t.trimVideo)return null;try{return await t.trimVideo(e)}catch{return null}},generateNativeFilmstrip=async e=>{if(!t||!t.generateFilmstrip)return null;try{return await t.generateFilmstrip(e)}catch{return null}},pickNativeMedia=async e=>{if(!t||!t.pickMedia)return null;try{return await t.pickMedia(e||{})||null}catch{return null}},writeNativeExportFile=async(e,r)=>{if(!t||!t.writeExportFile)return null;try{return await t.writeExportFile(e,r)}catch{return null}},shareNativeFile=async(e,r="text/plain",a="Export")=>{if(!t||!t.shareFile)return!1;try{return!!await t.shareFile(e,r,a)}catch{return!1}};
|
|
@@ -29,6 +29,8 @@ export interface Spec extends TurboModule {
|
|
|
29
29
|
trimVideo(options: Object): Promise<Object>;
|
|
30
30
|
generateFilmstrip(options: Object): Promise<Object>;
|
|
31
31
|
pickMedia(options: Object): Promise<Object | null>;
|
|
32
|
+
writeExportFile(filename: string, content: string): Promise<string>;
|
|
33
|
+
shareFile(filePath: string, mimeType: string, title: string): Promise<boolean>;
|
|
32
34
|
addListener(eventName: string): void;
|
|
33
35
|
removeListeners(count: number): void;
|
|
34
36
|
}
|
|
@@ -25,6 +25,35 @@ export interface AnnotationBox {
|
|
|
25
25
|
label?: string;
|
|
26
26
|
isNormalized?: boolean;
|
|
27
27
|
}
|
|
28
|
+
export interface DrawingPoint {
|
|
29
|
+
x: number;
|
|
30
|
+
y: number;
|
|
31
|
+
}
|
|
32
|
+
export interface DrawingStroke {
|
|
33
|
+
id?: string;
|
|
34
|
+
type: 'brush' | 'highlighter' | 'arrow' | 'rect' | 'circle' | 'step' | 'spotlight';
|
|
35
|
+
points: DrawingPoint[];
|
|
36
|
+
color?: string;
|
|
37
|
+
strokeWidth?: number;
|
|
38
|
+
rect?: {
|
|
39
|
+
x: number;
|
|
40
|
+
y: number;
|
|
41
|
+
width: number;
|
|
42
|
+
height: number;
|
|
43
|
+
};
|
|
44
|
+
stepNumber?: number;
|
|
45
|
+
isNormalized?: boolean;
|
|
46
|
+
}
|
|
47
|
+
export interface TextAnnotation {
|
|
48
|
+
id?: string;
|
|
49
|
+
text: string;
|
|
50
|
+
x: number;
|
|
51
|
+
y: number;
|
|
52
|
+
color?: string;
|
|
53
|
+
bgColor?: string;
|
|
54
|
+
fontSize?: number;
|
|
55
|
+
isNormalized?: boolean;
|
|
56
|
+
}
|
|
28
57
|
export interface PhotoAdjustments {
|
|
29
58
|
brightness?: number;
|
|
30
59
|
contrast?: number;
|
|
@@ -38,6 +67,8 @@ export interface PhotoEditOptions {
|
|
|
38
67
|
crop?: CropRect;
|
|
39
68
|
redactions?: RedactionBox[];
|
|
40
69
|
annotations?: AnnotationBox[];
|
|
70
|
+
drawings?: DrawingStroke[];
|
|
71
|
+
texts?: TextAnnotation[];
|
|
41
72
|
rotation?: number;
|
|
42
73
|
flipHorizontal?: boolean;
|
|
43
74
|
flipVertical?: boolean;
|