react-native-inapp-inspector 2.5.1 → 2.5.2
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/README.ar.md +151 -53
- package/README.de.md +150 -52
- package/README.es.md +139 -42
- package/README.fr.md +151 -53
- package/README.hi.md +141 -43
- package/README.ja.md +150 -69
- package/README.ko.md +153 -55
- package/README.md +73 -14
- package/README.pt-BR.md +152 -54
- package/README.ru.md +153 -55
- package/README.zh-CN.md +95 -219
- package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +154 -9
- package/dist/commonjs/capture.d.ts +5 -2
- package/dist/commonjs/capture.js +1 -1
- package/dist/commonjs/components/Inspector/FabLauncher.js +12 -12
- package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +17 -17
- package/dist/commonjs/components/Inspector/InspectorHeader.js +41 -41
- package/dist/commonjs/components/Inspector/MainScreen.js +15 -15
- package/dist/commonjs/components/Inspector/MediaGalleryTab.js +52 -34
- package/dist/commonjs/components/Inspector/MediaPreviewModal.d.ts +20 -18
- package/dist/commonjs/components/Inspector/MediaPreviewModal.js +744 -304
- package/dist/commonjs/components/NetworkIcons.d.ts +12 -0
- package/dist/commonjs/components/NetworkIcons.js +56 -3
- 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/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.js +1 -1
- package/dist/commonjs/native/NativeInspector.d.ts +4 -0
- package/dist/commonjs/native/NativeInspector.js +1 -1
- package/dist/commonjs/native/NativeNetworkInspector.d.ts +1 -0
- package/dist/commonjs/types/interfaces.d.ts +2 -0
- package/dist/esm/capture.d.ts +5 -2
- package/dist/esm/capture.js +1 -1
- package/dist/esm/components/Inspector/FabLauncher.js +37 -37
- package/dist/esm/components/Inspector/FloatingCaptureWidget.js +30 -30
- package/dist/esm/components/Inspector/InspectorHeader.js +34 -34
- package/dist/esm/components/Inspector/MainScreen.js +51 -51
- package/dist/esm/components/Inspector/MediaGalleryTab.js +100 -82
- package/dist/esm/components/Inspector/MediaPreviewModal.d.ts +20 -18
- package/dist/esm/components/Inspector/MediaPreviewModal.js +774 -334
- package/dist/esm/components/NetworkIcons.d.ts +12 -0
- package/dist/esm/components/NetworkIcons.js +256 -203
- 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/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.js +3 -3
- package/dist/esm/native/NativeInspector.d.ts +4 -0
- package/dist/esm/native/NativeInspector.js +1 -1
- package/dist/esm/native/NativeNetworkInspector.d.ts +1 -0
- package/dist/esm/types/interfaces.d.ts +2 -0
- package/ios/NetworkInspectorModule.mm +487 -224
- package/package.json +1 -1
- package/react-native-inapp-inspector.podspec +1 -1
- package/src/native/NativeInspector.ts +22 -0
- package/src/native/NativeNetworkInspector.ts +1 -1
- 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 +0 -2
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
package/dist/esm/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import is,{useEffect as l,useMemo as h,useRef as y,useState as o,useCallback as k}from"react";import{Alert as nn,Animated as f,Easing as ao,PanResponder as an,Platform as ls,UIManager as ln,LogBox as io}from"react-native";import{NavigationContext as cn}from"@react-navigation/native";import{I18nextProvider as Sn,i18n as yn,setLanguage as Cn,getLanguage as xn,useTranslation as Ln}from"./i18n";import Rn from"./components/ErrorBoundary";import An from"./components/Inspector/MainScreen";import Mn from"./components/Inspector/GlobalCrashScreenModal";import{InspectorContext as Nn,animateNextLayout as vn}from"./components/Inspector/InspectorContext";import{formatDisplayUrl as Tn,getNavigationInfo as lo,getLogPageName as cs,deduplicateLogs as us,getDomainColor as co,getEventCategory as kn,matchNetworkLogQuery as En,setupMemoryWarningHandler as Pn}from"./helpers";import{loadSettings as In,saveSettings as Dn,setCustomStorage as Fn,clearPersistedSettings as On,calculateRamBasedLimits as uo}from"./helpers/settingsStore";import{getNativeSystemMetrics as Bn,pushNativeLogRecord as qe,fetchNativeCachedPage as _n}from"./native/NativeInspector";import{setupNetworkLogger as Vn,clearNetworkLogs as fs,subscribeNetworkLogs as qn,setNetworkModuleEnabled as Gn,setMaxNetworkLogsLimit as Hn,setRouteInfoProvider as fo}from"./customHooks/networkLogger";import{setupConsoleLogger as Un,clearConsoleLogs as po,subscribeConsoleLogs as zn,setConsoleModuleEnabled as Wn}from"./customHooks/consoleLogger";import{IGNORED_LOG_PREFIXES as xe}from"./customHooks/logFilters";import{setupGlobalCrashHandler as jn,subscribeCrashEvents as Jn,getCrashRecords as Tt,clearCrashRecords as mo,setMaxCrashLogsLimit as ho,setCrashModuleEnabled as $n}from"./customHooks/crashHandler";import{subscribePushEvents as Qn,getPushRecords as Xn,clearPushRecords as Yn,setMaxPushRecordsLimit as Zn,simulateTestPush as Kn}from"./customHooks/pushNotificationLogger";import{setupSocketLogger as ea,clearSocketRecords as ta,subscribeSocketRecords as sa,getSocketRecords as ra,setSocketModuleEnabled as oa,setMaxSocketRecordsLimit as na,simulateTestSocket as aa,setSocketRouteInfoProvider as go,deleteSocketRecord as ia,deleteMultipleSocketRecords as la}from"./customHooks/socketLogger";import{trackActiveTelemetryHeartbeat as ca,setTelemetryEnabled as So,trackInspectorTabView as yo,trackInspectorScreenView as ua}from"./helpers/telemetry";import{subscribeAnalyticsEvents as fa,clearAnalyticsEvents as Co,autoSetupAnalyticsLogger as da,isAnalyticsConnected as ds,setAnalyticsModuleEnabled as pa}from"./customHooks/analyticsLogger";import{getReduxState as ps,subscribeReduxState as ma,setReduxAutoRefresh as ha,getLastActionForReducer as ms,clearActionHistory as ga,isReduxConnected as hs,setReduxModuleEnabled as Sa}from"./customHooks/reduxLogger";import{hideNativeFloatingButton as Le,subscribeNativeFloatingButtonPress as ya,subscribeNativeDeviceShake as Ca,isNativeModuleAvailable as xa}from"./native/NativeInspector";import{fetchRemoteConfigModuleStatus as La}from"./helpers/remoteConfig";import{ScreenCapture as ba}from"./capture";import{LIB_VERSION as wa}from"./constants";import{toggleGlobalTheme as xo}from"./styles";const Ra=({enabled:E=!0,storage:U,navigationRef:N,appIcon:Ss,environment:ys,initialVisible:Lo=!1,visible:Ge,remoteConfig:He})=>{Fn(U||null);const{t:m}=Ln(),[Ue,kt]=o(!1),[Cs,ze]=o(null),[xs,We]=o({}),[je,Et]=o(90),[Je,Pt]=o("slide"),[x,te]=o([]),[g,z]=o(Ge??Lo??!1),[Ls,It]=o(!1),[Dt,bs]=o(!1),bo=k(()=>{It(!0),z(!1)},[]),wo=k(()=>{bs(!0),z(!1),Le().catch(()=>{})},[]);l(()=>{Ge!==void 0&&z(Ge)},[Ge]);const[ws,Rs]=o(!1),[S,Ft]=o(null),[$e,be]=o(new Set),[As,P]=o({visible:!1,title:"",message:"",onConfirm:()=>{}}),[b,Ms]=o(""),[we,Ro]=o("all"),[Re,Ao]=o(!1),[Ae,Mo]=o(!1),[ae,Ot]=o(!0),[I,No]=o("all"),[Ns,Bt]=o(""),[vs,vo]=o(""),[Ts,_t]=o(null),[ks,Vt]=o(null),[Es,To]=o("state"),[Ps,Is]=o("response");l(()=>(io.ignoreAllLogs(E),()=>{io.ignoreAllLogs(!1)}),[E]),l(()=>{S&&(Is("response"),Bt(""))},[S]);const[se,qt]=o(new Set),[re,Gt]=o(new Set),[ie,ko]=o("all"),[Me,Eo]=o("all"),[le,Po]=o("time_desc"),[Ds,Ht]=o({}),[Ut,Qe]=o(()=>new Map),[Fs,Xe]=o({}),[Os,Io]=o(!0),[Ye,Do]=o("newest"),[Ze,Fo]=o("newest"),[Bs,_s]=o(!0),[Vs,qs]=o(!0),[Gs,Hs]=o(!1),[Us,zs]=o(!1),[u,W]=o("apis"),[Ke,ce]=o([]),[oe,ue]=o([]),zt=y([]),Wt=y([]),jt=y([]),[Ws,Jt]=o(null),[js,Js]=o(0),[$s,Qs]=o(0),[Xs,Ys]=o(0),[Zs,Ks]=o(0),et=k(async()=>{try{const t=await ba.getMediaList(),e=t?t.length:0;return Ks(e),e}catch{return Ks(0),0}},[]);l(()=>{g&&et()},[g,et]);const[Ne,j]=o(()=>Tt()),[er,ne]=o(null),[$t,ve]=o(null),[J,tt]=o(50);l(()=>{ho(J)},[J]),l(()=>{g&&(u==="apis"&&Qs(x.length),u==="logs"&&Js(oe.length),u==="crash"&&Ys(Ne.length))},[g]),l(()=>{u==="apis"&&Qs(x.length)},[u,x.length]),l(()=>{u==="logs"&&Js(oe.length)},[u,oe.length]),l(()=>{u==="crash"&&Ys(Ne.length)},[u,Ne.length]);const[$,tr]=o(()=>Xn()),[sr,rr]=o(null),[Te,Oo]=o(""),[G,Bo]=o("all"),[st,_o]=o(0),[rt,Qt]=o(50);l(()=>{Zn(rt)},[rt]),l(()=>Qn(e=>{tr(e)}),[]);const or=h(()=>u==="push"?0:Math.max(0,$.length-st),[u,$.length,st]);l(()=>{g&&u==="push"&&_o($.length)},[g,u,$.length]);const nr=h(()=>{let t=$;if(G!=="all"){if(G==="foreground")t=t.filter(e=>(e.appState||"").toLowerCase()==="foreground");else if(G==="background")t=t.filter(e=>(e.appState||"").toLowerCase()==="background");else if(G==="opened")t=t.filter(e=>e.action==="opened");else if(G.startsWith("source:")){const e=G.replace("source:","").toLowerCase();t=t.filter(s=>(s.source||"").toLowerCase()===e)}}if(Te.trim()){const e=Te.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},[$,G,Te]),[Q,ot]=o(()=>ra()),[ke,fe]=o(null),[Ee,Vo]=o(""),[O,qo]=o("all"),[nt,Go]=o(0),[at,Ho]=o(50);l(()=>{na(at)},[at]),l(()=>sa(e=>{ot(e)}),[]);const ar=h(()=>u==="socket"?0:Math.max(0,Q.length-nt),[u,Q.length,nt]);l(()=>{g&&u==="socket"&&Go(Q.length)},[g,u,Q.length]);const ir=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://")))),Ee.trim()){const e=Ee.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,Ee]),[de,it]=o(300),[X,Xt]=o({info:!0,warn:!0,error:!0}),Y=h(()=>oe.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![...xe&&xe.info||[],...xe&&xe.warn||[],...xe&&xe.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,de),[oe,X,de]),[B,lr]=o(""),[_,cr]=o(new Set(["all"])),[ur,Uo]=o(null),[fr,zo]=o(!1),[dr,Wo]=o(!1),[pr,jo]=o("module"),[v,lt]=o({apis:!0,logs:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,debugging:!0,media:!0}),[D,ct]=o(250),[pe,ut]=o(150),[me,Yt]=o(!0),[Zt,Jo]=o(1800),[he,Kt]=o(!0),[ft,es]=o(1),[dt,mr]=o(60),[pt,hr]=o(.5),[mt,gr]=o(0),[ht,Sr]=o(120),[gt,yr]=o("png"),[St,Cr]=o("none"),[yt,xr]=o(!0),[Ct,Lr]=o(!0),[br,$o]=o(!1),[xt,wr]=o(.75),[Z,Lt]=o("apis"),[K,ts]=o(!1),[ss,rs]=o(!0);l(()=>{Gn(!!v.apis),Wn(!!v.logs),pa(!!v.analytics),Sa(!!v.redux),$n(!!v.crash),oa(!!v.socket)},[v]),l(()=>{Bn().then(t=>{if(t){const e=t.totalPhysicalRamMb-t.residentRamMb,s=Math.max(200,Math.round(e>0?e:1500));if(Jo(s),me){const r=uo(s);ct(r.maxNetworkLogs),it(r.maxConsoleLogs),ut(r.maxAnalyticsEvents),tt(r.maxCrashRecords),Qt(r.maxPushRecords)}}}).catch(()=>{})},[me]);const Qo=async()=>{await On(),kt(!1),xo(!1),Et(90),Pt("slide"),lt({apis:!0,logs:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,debugging:!0,media:!0}),Lt("apis"),Yt(!0);const t=uo(Zt);tt(t.maxCrashRecords),ct(t.maxNetworkLogs),it(t.maxConsoleLogs),ut(t.maxAnalyticsEvents),Qt(t.maxPushRecords),Xt({info:!0,warn:!0,error:!0}),Kt(!0),es(1),ts(!1),rs(!0),nn.alert("Settings Reset","All settings have been reset to default values.")},Rr=y(!1);l(()=>{let t=!1;return In().then(e=>{if(!t){if(e.language&&Cn(e.language),e.isDark!=null&&(kt(e.isDark),xo(e.isDark)),e.modalHeightPercent!=null&&Et(e.modalHeightPercent),e.modalAnimationType&&Pt(e.modalAnimationType),e.tabVisibility&<(s=>({...s,...e.tabVisibility,apis:!0})),e.defaultTab&&Lt(e.defaultTab),e.isAutoRamLimitEnabled!=null&&Yt(e.isAutoRamLimitEnabled),e.maxNetworkLogs!=null&&ct(e.maxNetworkLogs),e.maxConsoleLogs!=null&&it(e.maxConsoleLogs),e.maxAnalyticsEventsLimit!=null&&ut(e.maxAnalyticsEventsLimit),e.maxCrashLogs!=null&&tt(e.maxCrashLogs),e.showConsoleLevels&&Xt(e.showConsoleLevels),e.reduxAutoRefresh!=null&&Kt(e.reduxAutoRefresh),e.reduxExpandDepth!=null&&es(e.reduxExpandDepth),e.captureFps!=null&&mr(e.captureFps),e.captureScale!=null&&hr(e.captureScale),e.captureBitrate!=null&&gr(e.captureBitrate),e.captureMaxDurationSeconds!=null&&Sr(e.captureMaxDurationSeconds),e.captureImageFormat&&yr(e.captureImageFormat),e.captureAudioMode&&Cr(e.captureAudioMode),e.captureAutoHide!=null&&xr(e.captureAutoHide),e.captureAutoGif!=null&&Lr(e.captureAutoGif),e.peekOpacity!=null&&wr(e.peekOpacity<.5?.75:e.peekOpacity),e.showDuplicateLogs!=null&&ts(e.showDuplicateLogs),e.showUpdateToast!=null&&rs(e.showUpdateToast),e.isGroupByPageEnabled!=null&&Ot(e.isGroupByPageEnabled),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};W(r[s]?s:"apis")}Rr.current=!0}}),()=>{t=!0}},[]),l(()=>{let t=!0;if(He!==!1)return La(typeof He=="object"?He:void 0).then(e=>{t&&e&<(s=>({...s,...e,apis:e.apis??!0}))}).catch(()=>{}),()=>{t=!1}},[He]),l(()=>{Rr.current&&Dn({isDark:Ue,language:xn(),modalHeightPercent:je,modalAnimationType:Je,tabVisibility:v,defaultTab:Z,maxNetworkLogs:D,maxConsoleLogs:de,maxAnalyticsEventsLimit:pe,maxCrashLogs:J,isAutoRamLimitEnabled:me,isGroupByPageEnabled:ae,showConsoleLevels:X,reduxAutoRefresh:he,reduxExpandDepth:ft,showDuplicateLogs:K,showUpdateToast:ss,captureFps:dt,captureScale:pt,captureBitrate:mt,captureMaxDurationSeconds:ht,captureImageFormat:gt,captureAudioMode:St,captureAutoHide:yt,captureAutoGif:Ct,peekOpacity:xt})},[Ue,je,Je,v,Z,D,de,pe,J,me,ae,X,he,ft,K,dt,pt,mt,ht,gt,St,yt,Ct,xt]);const[Pe,Xo]=o(null),Ar=h(()=>{if(!Pe)return!1;const t=r=>r.replace(/^v/,"").split(".").map(n=>parseInt(n,10)||0),e=t(wa),s=t(Pe);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},[Pe]);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"&&Xo(e.version)}).catch(()=>{}),()=>{t=!0}},[]),l(()=>{ha(he)},[he]),l(()=>{u==="redux"&&!hs()&&W("apis"),u==="analytics"&&!ds()&&W("apis")},[u]);const Mr=t=>{t!=="apis"&&(t==="redux"&&!hs()||t==="analytics"&&!ds()||lt(e=>{const s=!e[t],r={...e,[t]:s};return!s&&u===t&&(vn(),W("apis")),!s&&Z===t&&Lt("apis"),r}))},os=k(async(t,e="")=>{if(t==="apis"||t==="logs"||t==="analytics"||t==="crash"){const s=await _n(t,0,100,e);s&&s.items&&s.items.length>0&&(t==="apis"?te(s.items):t==="logs"?ue(s.items):t==="analytics"?ce(s.items):t==="crash"&&j(s.items))}},[]),Nr=k(t=>{t==="redux"&&!hs()||t==="analytics"&&!ds()||(Ft(null),bt(null),Jt(null),_t(null),Vt(null),ne(null),fe(null),typeof is.startTransition=="function"?is.startTransition(()=>{W(t),os(t)}):(W(t),os(t)),yo(t))},[os]),[vr,bt]=o(null),[ge,Tr]=o(""),[a,kr]=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"}),Er=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]),Pr=k(()=>{kr({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"})},[]),[Ir,Yo]=o(!1),[Dr,Zo]=o(!1),[Fr,Or]=o(new Set),Ie=y(new Set),[wt,ns]=o(null),Br=is.useContext(cn)!==void 0,F=y({path:"",params:null});l(()=>(fo(()=>F.current),go(()=>F.current),()=>{fo(null),go(null)}),[]),l(()=>{if(wt){const t=lo(wt);t?.path&&(F.current=t)}},[wt]),l(()=>{if(!N)return;const t=()=>{try{if(typeof N.isReady=="function"&&N.isReady()){const s=typeof N.getCurrentRoute=="function"?N.getCurrentRoute():null;s?.name&&(F.current={path:s.name,params:s.params||null});const r=N.getRootState();if(r){ns(r);const n=lo(r);n?.path&&(F.current=n)}}}catch{}};t();const e=typeof N.addListener=="function"?N.addListener("state",()=>{t()}):null;return()=>{e&&e()}},[N]);const w=y(new Map),Se=y(new Set),[_r,Vr]=o(new Set),De=y(new f.Value(1)).current,Fe=y(new f.Value(.4)).current,Oe=y(new f.Value(1)).current,Be=y(new f.Value(0)).current,_e=y(new f.Value(0)).current,R=y(new f.ValueXY({x:0,y:0})).current,Rt=y({x:0,y:0});l(()=>{const t=R.x.addListener(s=>Rt.current.x=s.value),e=R.y.addListener(s=>Rt.current.y=s.value);return()=>{R.x.removeListener(t),R.y.removeListener(e)}},[R]);const At=y(!1),qr=y(an.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(t,e)=>Math.abs(e.dx)>4||Math.abs(e.dy)>4,onPanResponderGrant:()=>{At.current=!0,R.setOffset({x:Rt.current.x,y:Rt.current.y}),R.setValue({x:0,y:0})},onPanResponderMove:f.event([null,{dx:R.x,dy:R.y}],{useNativeDriver:!1}),onPanResponderRelease:()=>{R.flattenOffset(),setTimeout(()=>{At.current=!1},50)},onPanResponderTerminate:()=>{R.flattenOffset(),At.current=!1}})).current,Gr=k(()=>{f.sequence([f.timing(_e,{toValue:1,duration:320,useNativeDriver:!1}),f.timing(_e,{toValue:0,duration:0,useNativeDriver:!1})]).start(),en()},[_e]);l(()=>{ls.OS==="android"&&ln.setLayoutAnimationEnabledExperimental?.(!0)},[]),l(()=>{if(g)return;const t=f.loop(f.sequence([f.timing(De,{toValue:1.2,duration:800,useNativeDriver:!1}),f.timing(De,{toValue:1,duration:800,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[De,g]),l(()=>{if(g)return;const t=f.loop(f.sequence([f.timing(Be,{toValue:1,duration:3200,easing:ao.inOut(ao.ease),useNativeDriver:!1}),f.delay(3500),f.timing(Be,{toValue:0,duration:0,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Be,g]),l(()=>{const t=f.loop(f.sequence([f.timing(Fe,{toValue:1,duration:1200,useNativeDriver:!1}),f.timing(Fe,{toValue:.4,duration:1200,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Fe]),l(()=>{const t=f.loop(f.sequence([f.timing(Oe,{toValue:1.3,duration:800,useNativeDriver:!1}),f.timing(Oe,{toValue:.8,duration:800,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Oe]);const Ko=h(()=>xa(),[]),ee=(ls.OS==="ios"||ls.OS==="android")&&Ko;l(()=>{ee&&Le().catch(()=>{})},[ee,g,Dt]),l(()=>{if(!ee)return;const t=ya(()=>{Le().catch(()=>{}),z(!0)});return()=>{t()}},[ee]),l(()=>{if(!ee)return;const t=Ca(()=>{z(e=>{const s=!e;return s&&Le().catch(()=>{}),s})});return()=>{t()}},[ee]);const Hr=y(g);l(()=>{if(Hr.current=g,g){ua("InspectorModal");const t=Z==="apis"||v?.[Z]?Z:"apis";if(W(t),yo(t),zt.current.length>0){const n=us(zt.current),i=new Set(n.map(p=>p.id));Se.current=i,te(n)}Wt.current.length>0&&ue(Wt.current),jt.current.length>0&&ce(jt.current);const e=ps();e&&(ze(typeof e=="object"?{...e}:e),We({...ms()}));const s=Tt();s.length>0&&j(s);const r=requestAnimationFrame(()=>{Rs(!0)});return()=>{cancelAnimationFrame(r)}}else Rs(!1),be(new Set)},[g]),l(()=>{Vn(),fs(),Un(),da(),jn(),ea();const t=Pn(),e=Hr,s=Jn(c=>{if(c.message==="__CLEARED__"){j([]),ne(null),ve(null);return}const H=Tt();H.length>0&&qe("crash",JSON.stringify(H[0])),j(H),c.crashRecord&&ve(c.crashRecord)}),r=Tt();r.length>0&&(r.forEach(c=>qe("crash",JSON.stringify(c))),j(r));let n,i=!0;const p=qn(c=>{if(zt.current=c,c.length>0&&qe("apis",JSON.stringify(c[0])),!e.current)return;clearTimeout(n);const H=()=>{const C=us(c),M=new Set(C.map(q=>q.id)),d=new Set;M.forEach(q=>{Se.current.has(q)||d.add(q)}),Se.current=M,d.size>0&&(d.forEach(q=>{if(!w.current.has(q)){const rn=C.find(on=>on.id===q)?.routeInfo||F.current;w.current.set(q,rn)}}),Vr(d),setTimeout(()=>Vr(new Set),1200)),te(C)};if(i){i=!1;const C=us(c),M=new Set(C.map(d=>d.id));Se.current=M,C.forEach(d=>{if(!w.current.has(d.id)){const q=d?.routeInfo||F.current;w.current.set(d.id,q)}}),te(C)}else n=setTimeout(H,250)});let A,T=!0;const as=fa(c=>{if(jt.current=c,c.length>0&&qe("analytics",JSON.stringify(c[0])),!e.current)return;clearTimeout(A);const H=()=>{const C=new Set(c.map(d=>d.id)),M=new Set;C.forEach(d=>{Ie.current.has(d)||M.add(d)}),Ie.current=C,M.size>0&&(M.forEach(d=>{w.current.has(d+1e6)||w.current.set(d+1e6,F.current)}),Or(M),setTimeout(()=>Or(new Set),1200)),ce(c)};if(T){T=!1;const C=new Set(c.map(M=>M.id));Ie.current=C,ce(c)}else A=setTimeout(H,200)});let ye,vt=!0;const V=zn(c=>{Wt.current=c,c.length>0&&qe("logs",JSON.stringify(c[0])),e.current&&(clearTimeout(ye),vt?(vt=!1,ue(c)):ye=setTimeout(()=>{ue(c)},200))}),Ce=ps();Ce&&(ze(typeof Ce=="object"?{...Ce}:Ce),We({...ms()}));const Ve=ma(()=>{if(!e.current)return;const c=ps();ze(c&&typeof c=="object"?{...c}:c),We({...ms()})});return()=>{p(),clearTimeout(n),as(),clearTimeout(A),V(),clearTimeout(ye),Ve(),s(),t()}},[]),l(()=>{Hn(D)},[D]),l(()=>{ho(J)},[J]),l(()=>{_s(!0),qs(!0),Hs(!1),zs(!1),Bt("")},[S]);const L=h(()=>{let t=x.filter(e=>{if(I&&I!=="all"){if(I==="errors"){if(!(e.status===0||e.status==null||typeof e.status=="number"&&e.status>=400))return!1}else if(I==="success"){if(!(typeof e.status=="number"&&e.status>=200&&e.status<400))return!1}else if(I==="slow"){if((e.duration||0)<500)return!1}else if(I==="graphql"){if(!((e.url||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("apollo")))return!1}else if(e.method?.toUpperCase()!==I.toUpperCase())return!1}if(se.size>0&&!se.has("all")){const s=typeof e.status=="number"?e.status:parseInt(String(e.status),10);if(![...se].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(re.size>0&&!re.has("all")&&![...re].some(r=>String(r).toUpperCase()==="ALL"?!0:e.method?.toUpperCase()===String(r).toUpperCase()))return!1;if(ie!=="all"){const s=e.duration||0;if(ie==="fast"&&s>=200||ie==="normal"&&(s<200||s>500)||ie==="slow"&&s<=500)return!1}if(Me!=="all"){const s=(e.url||"").toLowerCase().startsWith("https");if(Me==="https"&&!s||Me==="http"&&s)return!1}if(b&&b.trim().length>0){const s=w.current.get(e.id)?.path||"";if(!En(e,b,s,{scope:we,isRegex:Re,isCaseSensitive:Ae}))return!1}return!0});if(le==="time_asc"||Ye==="oldest"?t=[...t].reverse():le==="duration_desc"?t=[...t].sort((e,s)=>(s.duration||0)-(e.duration||0)):le==="duration_asc"?t=[...t].sort((e,s)=>(e.duration||0)-(s.duration||0)):le==="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},[x,b,we,Re,Ae,I,se,re,ie,Me,le,Ye,K]),Ur=h(()=>{const t=new Set;return x.forEach(e=>{e.method&&t.add(e.method.toUpperCase())}),["ALL",...Array.from(t)]},[x]),zr=k((t,e)=>{Ht(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}})},[]),Mt=h(()=>{if(F.current?.path){const t=F.current.path.split(" \u2794 ").map(e=>e.trim()).filter(Boolean);return t.length>0?t[t.length-1]:F.current.path}if(L.length>0){const t=L[0],e=w.current.get(t.id)||t?.routeInfo;return cs(t,e)}return""},[L,wt]),Wr=k(t=>{Qe(e=>{const s=new Map(e),n=!!(b&&b.trim().length>0)?!0:t===Mt,i=s.has(t)?s.get(t):n;return s.set(t,!i),s})},[Mt,b]);l(()=>{Xe({}),Qe(new Map)},[b,we,Re,Ae,I,se,re,D]);const jr=k((t,e=10)=>{Xe(s=>({...s,[t]:(s[t]||D||50)+e}))},[D]),Jr=h(()=>{if(!ae)return L.map((n,i)=>{const p=w.current.get(n.id)||n?.routeInfo,A=cs(n,p);return{type:"log",id:`flat-log-${n.id}`,log:n,isLast:i===L.length-1,color:co(A)}});const t=[],e=new Map;for(let n=0;n<L.length;n++){const i=L[n],p=w.current.get(i.id)||i?.routeInfo,A=cs(i,p);let T=e.get(A);T||(T={pageName:A,color:co(A),logs:[]},e.set(A,T)),T.logs.push(i)}const s=!!(b&&b.trim().length>0);let r=0;return e.forEach(n=>{let i=0,p=0,A=0;n.logs.forEach(V=>{V.status==null?A++:V.status===0||V.status>=400?p++:i++});const T=Ds[n.pageName]||new Set(["success","failed","loading"]),as=s?!0:n.pageName===Mt,ye=Ut.has(n.pageName)?!Ut.get(n.pageName):!as,vt=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:A},timestamp:vt,activeFilters:T,isCollapsed:ye,isFirst:r===0}),r++,!ye){const V=n.logs.filter(d=>d.status==null?T.has("loading"):d.status===0||d.status>=400?T.has("failed"):T.has("success")),Ce=D||50,Ve=Fs[n.pageName]||Ce,c=V.slice(0,Ve),H=V.length>Ve;c.forEach(d=>{t.push({type:"log",id:`log-${d.id}`,log:d,isLast:!1,color:n.color})});const C=Math.max(0,V.length-Ve),M=Math.min(C||10,10);t.push({type:"loadMore",id:`loadmore-${n.pageName}`,pageName:n.pageName,color:n.color,remainingCount:C,totalCount:V.length,loadedCount:c.length,loadMoreStep:M,hasMore:H})}}),t},[ae,L,x,Ds,Ut,Mt,Fs,D,b]),{minStart:$r,totalRange:Qr}=h(()=>{if(L.length===0)return{minStart:0,totalRange:0};const t=Math.min(...L.map(s=>s.startTime)),e=Math.max(...L.map(s=>s.startTime+(s.duration||10)));return{minStart:t,totalRange:e-t}},[L]),Nt=h(()=>{if(!S)return null;const t=x.findIndex(e=>e.id===S.id);if(t===-1)return null;for(let e=t+1;e<x.length;e++){const s=x[e];if(s.url===S.url&&s.method===S.method)return s}return null},[S,x]),Xr=Nt?Nt.request:null,Yr=Nt?Nt.response:null,Zr=h(()=>{let t=Ke;if(ge&&ge.trim().length>0){const r=ge.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=kn(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,pe)},[Ke,ge,a,pe]),Kr=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)=>Ze==="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,Ze,K]),eo=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]),to=k(()=>{z(!1),It(!1),setTimeout(()=>{Ft(null),bt(null),Jt(null),_t(null),Vt(null),ne(null),fe(null)},300)},[]);function en(){fs(),te([]),be(new Set),Ht({}),Qe(new Map),Xe({}),qt(new Set),Gt(new Set),Ms(""),Se.current=new Set,w.current=new Map,Co(),ce([]),Tr(""),Ie.current=new Set,po(),ue([]),cr(new Set(["all"])),lr("")}function so(){if(u==="logs"){P({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:()=>{P(t=>({...t,visible:!1})),po(),ue([])}});return}if(u==="analytics"){P({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:()=>{P(t=>({...t,visible:!1})),Co(),ce([]),bt(null),Ie.current=new Set}});return}if(u==="redux"){P({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:()=>{P(t=>({...t,visible:!1})),ga(),We({})}});return}if(u==="crash"){P({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:()=>{P(t=>({...t,visible:!1})),mo(),j([]),ne(null)}});return}$e.size>0?(te(t=>t.filter(e=>!$e.has(e.id))),be(new Set)):P({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:()=>{P(t=>({...t,visible:!1})),tn()}})}function tn(){fs(),te([]),be(new Set),Ht({}),Qe(new Map),Xe({}),qt(new Set),Gt(new Set),Se.current=new Set,w.current=new Map}const ro=h(()=>{if(!S)return"";try{const e=new URL(S.url).pathname.split("/").filter(Boolean);return e.length>0?`/${e.slice(-2).join("/")}`:"/"}catch{const t=S.url.split("/").filter(Boolean);return t.length>0?`/${t.slice(-2).join("/")}`:S.url}},[S]),oo=h(()=>S?Tn(S.url):"",[S]),no=k(t=>{be(e=>{const s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},[]),sn=h(()=>({visible:g,setVisible:z,closeModal:to,isMinimized:Ls,setIsMinimized:It,minimizeInspector:bo,isDismissed:Dt,setIsDismissed:bs,dismissInspector:wo,isReady:ws,enabled:E,isEnabled:E,appIcon:Ss,environment:ys,modalHeightPercent:je,setModalHeightPercent:Et,modalAnimationType:Je,setModalAnimationType:Pt,hasNavigationContext:Br,setNavState:ns,activeTab:u,switchActiveTab:Nr,tabVisibility:v,toggleTabVisibility:Mr,lastReadApisCount:$s,lastReadLogsCount:js,mediaCount:Zs,refreshMediaCount:et,selected:S,setSelected:Ft,selectedEvent:vr,setSelectedEvent:bt,selectedLog:Ws,setSelectedLog:Jt,showHeaderInfo:Os,setShowHeaderInfo:Io,settingsPage:ur,setSettingsPage:Uo,isAboutOpen:fr,setIsAboutOpen:zo,isSupportOpen:dr,setIsSupportOpen:Wo,updateAvailable:Ar,latestNpmVersion:Pe,clearAnim:_e,activePulseAnim:Fe,unreadPulseAnim:Oe,runClearAllWithAnimation:Gr,confirmModal:As,setConfirmModal:P,useNativeFab:ee,fabPan:R,fabPanResponder:qr,fabDraggedRef:At,pulseAnim:De,fabShineAnim:Be,logs:x,filteredLogs:L,groupedData:Jr,search:b,setSearch:Ms,searchScope:we,setSearchScope:Ro,isRegexSearch:Re,setIsRegexSearch:Ao,isCaseSensitive:Ae,setIsCaseSensitive:Mo,quickFilter:I,setQuickFilter:No,statusFilters:se,setStatusFilters:qt,methodFilters:re,setMethodFilters:Gt,latencyFilter:ie,setLatencyFilter:ko,protocolFilter:Me,setProtocolFilter:Eo,networkSortBy:le,setNetworkSortBy:Po,availableMethods:Ur,sortOrder:Ye,setSortOrder:Do,selectedLogs:$e,toggleSelect:no,minStart:$r,totalRange:Qr,newLogIds:_r,toggleSectionFilter:zr,toggleSectionCollapse:Wr,loadMoreSection:jr,handleDelete:so,isGroupByPageEnabled:ae,setIsGroupByPageEnabled:Ot,detailTitle:ro,detailDisplayUrl:oo,apiDetailActiveTab:Ps,setApiDetailActiveTab:Is,detailSearch:Ns,setDetailSearch:Bt,reqExpanded:Bs,setReqExpanded:_s,resExpanded:Vs,setResExpanded:qs,showReqDiff:Gs,setShowReqDiff:Hs,showResDiff:Us,setShowResDiff:zs,prevRequestData:Xr,prevResponseData:Yr,logRouteMapRef:w,consoleLogs:oe,visibleConsoleLogs:Y,filteredConsoleLogs:Kr,logSearch:B,setLogSearch:lr,logFilters:_,setLogFilters:cr,logCounts:eo,logSortOrder:Ze,setLogSortOrder:Fo,analyticsEvents:Ke,filteredAnalyticsEvents:Zr,analyticsSearch:ge,setAnalyticsSearch:Tr,analyticsFilters:a,setAnalyticsFilters:kr,isAnalyticsFilterApplied:Er,resetAnalyticsFilters:Pr,newEventIds:Fr,isAnalyticsLayoutReady:Ir,setIsAnalyticsLayoutReady:Yo,analyticsHeaderExpanded:Dr,setAnalyticsHeaderExpanded:Zo,reduxState:Cs,setReduxState:ze,reduxLastActionMap:xs,reduxSearch:vs,setReduxSearch:vo,selectedReduxSlice:Ts,setSelectedReduxSlice:_t,selectedReduxAction:ks,setSelectedReduxAction:Vt,reduxActiveSubTab:Es,setReduxActiveSubTab:To,crashRecords:Ne,setCrashRecords:j,selectedCrash:er,setSelectedCrash:ne,lastReadCrashesCount:Xs,maxCrashLogs:J,setMaxCrashLogs:tt,clearAllCrashes:()=>{mo(),j([]),ne(null)},pushRecords:$,filteredPushRecords:nr,selectedPush:sr,setSelectedPush:rr,pushSearch:Te,setPushSearch:Oo,pushQuickFilter:G,setPushQuickFilter:Bo,lastReadPushCount:st,unreadPushCount:or,maxPushLogs:rt,setMaxPushLogs:Qt,clearAllPushLogs:()=>{Yn(),tr([]),rr(null)},simulatePush:(t,e)=>{Kn(t,e)},socketRecords:Q,filteredSocketRecords:ir,selectedSocket:ke,setSelectedSocket:fe,socketSearch:Ee,setSocketSearch:Vo,socketQuickFilter:O,setSocketQuickFilter:qo,lastReadSocketCount:nt,unreadSocketCount:ar,maxSocketLogs:at,setMaxSocketLogs:Ho,clearAllSocketLogs:()=>{ta(),ot([]),fe(null)},deleteSocketRecord:t=>{ia(t),ot(e=>e.filter(s=>s.id!==t)),ke?.id===t&&fe(null)},deleteMultipleSocketRecords:t=>{la(t);const e=new Set(t);ot(s=>s.filter(r=>!e.has(r.id))),ke&&e.has(ke.id)&&fe(null)},simulateSocket:(t,e)=>{aa(t,e)},settingsActiveSubTab:pr,setSettingsActiveSubTab:jo,defaultTab:Z,setDefaultTab:Lt,isDark:Ue,setIsDark:kt,showDuplicateLogs:K,setShowDuplicateLogs:ts,showUpdateToast:ss,setShowUpdateToast:rs,showConsoleLevels:X,setShowConsoleLevels:Xt,resetToDefaults:Qo,storage:U,maxNetworkLogs:D,setMaxNetworkLogs:ct,maxConsoleLogs:de,setMaxConsoleLogs:it,maxAnalyticsEventsLimit:pe,setMaxAnalyticsEventsLimit:ut,isAutoRamLimitEnabled:me,setIsAutoRamLimitEnabled:Yt,deviceFreeRamMb:Zt,reduxAutoRefresh:he,setReduxAutoRefreshState:Kt,reduxExpandDepth:ft,setReduxExpandDepth:es,captureFps:dt,setCaptureFps:mr,captureScale:pt,setCaptureScale:hr,captureBitrate:mt,setCaptureBitrate:gr,captureMaxDurationSeconds:ht,setCaptureMaxDurationSeconds:Sr,captureImageFormat:gt,setCaptureImageFormat:yr,captureAudioMode:St,setCaptureAudioMode:Cr,captureAutoHide:yt,setCaptureAutoHide:xr,captureAutoGif:Ct,setCaptureAutoGif:Lr,peekMode:br,setPeekMode:$o,peekOpacity:xt,setPeekOpacity:wr}),[g,to,ws,E,Ss,ys,je,Je,Br,ns,u,Nr,v,Mr,$s,js,Zs,et,S,vr,Ws,Os,ur,fr,dr,Ar,Pe,_e,Fe,Oe,Gr,ee,R,qr,De,Be,x,L,Jr,b,we,Re,Ae,I,se,re,Ur,Ye,$e,no,$r,Qr,_r,zr,Wr,jr,so,ae,Ot,ro,oo,Ps,Ns,Bs,Vs,Gs,Us,Xr,Yr,oe,Y,Kr,B,_,eo,Ze,Ke,Zr,ge,a,Er,Pr,Fr,Ir,Dr,Cs,xs,vs,Ts,ks,Es,Ne,er,Xs,J,$,nr,sr,Te,G,st,or,rt,Q,ir,ke,Ee,O,nt,ar,at,pr,Z,Ue,K,ss,X,U,D,de,pe,me,Zt,he,ft,dt,pt,mt,ht,gt,St,yt,Ct,br,xt,Ls,Dt,As]);return<Nn.Provider value={sn}>
|
|
1
|
+
import is,{useEffect as l,useMemo as h,useRef as y,useState as o,useCallback as k}from"react";import{Alert as ln,Animated as f,Easing as io,PanResponder as cn,Platform as ls,UIManager as un,LogBox as lo}from"react-native";import{NavigationContext as fn}from"@react-navigation/native";import{I18nextProvider as Sn,i18n as yn,setLanguage as Cn,getLanguage as xn,useTranslation as Ln}from"./i18n";import Rn from"./components/ErrorBoundary";import An from"./components/Inspector/MainScreen";import Mn from"./components/Inspector/GlobalCrashScreenModal";import{InspectorContext as vn,animateNextLayout as Nn}from"./components/Inspector/InspectorContext";import{formatDisplayUrl as Tn,getNavigationInfo as co,getLogPageName as cs,deduplicateLogs as us,getDomainColor as uo,getEventCategory as kn,matchNetworkLogQuery as En,setupMemoryWarningHandler as Pn}from"./helpers";import{loadSettings as In,saveSettings as Dn,setCustomStorage as Fn,clearPersistedSettings as On,calculateRamBasedLimits as fo}from"./helpers/settingsStore";import{getNativeSystemMetrics as Bn,pushNativeLogRecord as qe,fetchNativeCachedPage as _n}from"./native/NativeInspector";import{setupNetworkLogger as Vn,clearNetworkLogs as fs,subscribeNetworkLogs as qn,setNetworkModuleEnabled as Gn,setMaxNetworkLogsLimit as Hn,setRouteInfoProvider as po}from"./customHooks/networkLogger";import{setupConsoleLogger as Un,clearConsoleLogs as mo,subscribeConsoleLogs as zn,setConsoleModuleEnabled as Wn}from"./customHooks/consoleLogger";import{IGNORED_LOG_PREFIXES as xe}from"./customHooks/logFilters";import{setupGlobalCrashHandler as jn,subscribeCrashEvents as Jn,getCrashRecords as Tt,clearCrashRecords as ho,setMaxCrashLogsLimit as go,setCrashModuleEnabled as $n}from"./customHooks/crashHandler";import{subscribePushEvents as Qn,getPushRecords as Xn,clearPushRecords as Yn,setMaxPushRecordsLimit as Zn,simulateTestPush as Kn}from"./customHooks/pushNotificationLogger";import{setupSocketLogger as ea,clearSocketRecords as ta,subscribeSocketRecords as sa,getSocketRecords as ra,setSocketModuleEnabled as oa,setMaxSocketRecordsLimit as na,simulateTestSocket as aa,setSocketRouteInfoProvider as So,deleteSocketRecord as ia,deleteMultipleSocketRecords as la}from"./customHooks/socketLogger";import{trackActiveTelemetryHeartbeat as ca,setTelemetryEnabled as yo,trackInspectorTabView as Co,trackInspectorScreenView as ua}from"./helpers/telemetry";import{subscribeAnalyticsEvents as fa,clearAnalyticsEvents as xo,autoSetupAnalyticsLogger as da,isAnalyticsConnected as ds,setAnalyticsModuleEnabled as pa}from"./customHooks/analyticsLogger";import{getReduxState as ps,subscribeReduxState as ma,setReduxAutoRefresh as ha,getLastActionForReducer as ms,clearActionHistory as ga,isReduxConnected as hs,setReduxModuleEnabled as Sa}from"./customHooks/reduxLogger";import{hideNativeFloatingButton as Le,subscribeNativeFloatingButtonPress as ya,subscribeNativeDeviceShake as Ca,isNativeModuleAvailable as xa}from"./native/NativeInspector";import{fetchRemoteConfigModuleStatus as La}from"./helpers/remoteConfig";import{ScreenCapture as ba}from"./capture";import{LIB_VERSION as wa}from"./constants";import{toggleGlobalTheme as Lo}from"./styles";const Ra=({enabled:E=!0,storage:U,navigationRef:v,appIcon:Ss,environment:ys,initialVisible:bo=!1,visible:Ge,remoteConfig:He})=>{Fn(U||null);const{t:m}=Ln(),[Ue,kt]=o(!1),[Cs,ze]=o(null),[xs,We]=o({}),[je,Et]=o(90),[Je,Pt]=o("slide"),[x,te]=o([]),[g,z]=o(Ge??bo??!1),[Ls,It]=o(!1),[Dt,bs]=o(!1),wo=k(()=>{It(!0),z(!1)},[]),Ro=k(()=>{bs(!0),z(!1),Le().catch(()=>{})},[]);l(()=>{Ge!==void 0&&z(Ge)},[Ge]);const[ws,Rs]=o(!1),[S,Ft]=o(null),[$e,be]=o(new Set),[As,P]=o({visible:!1,title:"",message:"",onConfirm:()=>{}}),[b,Ms]=o(""),[we,Ao]=o("all"),[Re,Mo]=o(!1),[Ae,vo]=o(!1),[ae,Ot]=o(!0),[I,No]=o("all"),[vs,Bt]=o(""),[Ns,To]=o(""),[Ts,_t]=o(null),[ks,Vt]=o(null),[Es,ko]=o("state"),[Ps,Is]=o("response");l(()=>(lo.ignoreAllLogs(E),()=>{lo.ignoreAllLogs(!1)}),[E]),l(()=>{S&&(Is("response"),Bt(""))},[S]);const[se,qt]=o(new Set),[re,Gt]=o(new Set),[ie,Eo]=o("all"),[Me,Po]=o("all"),[le,Io]=o("time_desc"),[Ds,Ht]=o({}),[Ut,Qe]=o(()=>new Map),[Fs,Xe]=o({}),[Os,Do]=o(!0),[Ye,Fo]=o("newest"),[Ze,Oo]=o("newest"),[Bs,_s]=o(!0),[Vs,qs]=o(!0),[Gs,Hs]=o(!1),[Us,zs]=o(!1),[u,W]=o("apis"),[Ke,ce]=o([]),[oe,ue]=o([]),zt=y([]),Wt=y([]),jt=y([]),[Ws,Jt]=o(null),[js,Js]=o(0),[$s,Qs]=o(0),[Xs,Ys]=o(0),[Zs,Ks]=o(0),[er,Bo]=o(null),et=k(async()=>{try{const t=await ba.getMediaList(),e=t?t.length:0;return Ks(e),e}catch{return Ks(0),0}},[]);l(()=>{g&&et()},[g,et]);const[ve,j]=o(()=>Tt()),[tr,ne]=o(null),[$t,Ne]=o(null),[J,tt]=o(50);l(()=>{go(J)},[J]),l(()=>{g&&(u==="apis"&&Qs(x.length),u==="logs"&&Js(oe.length),u==="crash"&&Ys(ve.length))},[g]),l(()=>{u==="apis"&&Qs(x.length)},[u,x.length]),l(()=>{u==="logs"&&Js(oe.length)},[u,oe.length]),l(()=>{u==="crash"&&Ys(ve.length)},[u,ve.length]);const[$,sr]=o(()=>Xn()),[rr,or]=o(null),[Te,_o]=o(""),[G,Vo]=o("all"),[st,qo]=o(0),[rt,Qt]=o(50);l(()=>{Zn(rt)},[rt]),l(()=>Qn(e=>{sr(e)}),[]);const nr=h(()=>u==="push"?0:Math.max(0,$.length-st),[u,$.length,st]);l(()=>{g&&u==="push"&&qo($.length)},[g,u,$.length]);const ar=h(()=>{let t=$;if(G!=="all"){if(G==="foreground")t=t.filter(e=>(e.appState||"").toLowerCase()==="foreground");else if(G==="background")t=t.filter(e=>(e.appState||"").toLowerCase()==="background");else if(G==="opened")t=t.filter(e=>e.action==="opened");else if(G.startsWith("source:")){const e=G.replace("source:","").toLowerCase();t=t.filter(s=>(s.source||"").toLowerCase()===e)}}if(Te.trim()){const e=Te.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},[$,G,Te]),[Q,ot]=o(()=>ra()),[ke,fe]=o(null),[Ee,Go]=o(""),[O,Ho]=o("all"),[nt,Uo]=o(0),[at,zo]=o(50);l(()=>{na(at)},[at]),l(()=>sa(e=>{ot(e)}),[]);const ir=h(()=>u==="socket"?0:Math.max(0,Q.length-nt),[u,Q.length,nt]);l(()=>{g&&u==="socket"&&Uo(Q.length)},[g,u,Q.length]);const lr=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://")))),Ee.trim()){const e=Ee.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,Ee]),[de,it]=o(300),[X,Xt]=o({info:!0,warn:!0,error:!0}),Y=h(()=>oe.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![...xe&&xe.info||[],...xe&&xe.warn||[],...xe&&xe.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,de),[oe,X,de]),[B,cr]=o(""),[_,ur]=o(new Set(["all"])),[fr,Wo]=o(null),[dr,jo]=o(!1),[pr,Jo]=o(!1),[mr,$o]=o("module"),[N,lt]=o({apis:!0,logs:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,debugging:!0,media:!0}),[D,ct]=o(250),[pe,ut]=o(150),[me,Yt]=o(!0),[Zt,Qo]=o(1800),[he,Kt]=o(!0),[ft,es]=o(1),[dt,hr]=o(60),[pt,gr]=o(.5),[mt,Sr]=o(0),[ht,yr]=o(120),[gt,Cr]=o("png"),[St,xr]=o("none"),[yt,Lr]=o(!0),[Ct,br]=o(!0),[wr,Xo]=o(!1),[xt,Rr]=o(.75),[Z,Lt]=o("apis"),[K,ts]=o(!1),[ss,rs]=o(!0);l(()=>{Gn(!!N.apis),Wn(!!N.logs),pa(!!N.analytics),Sa(!!N.redux),$n(!!N.crash),oa(!!N.socket)},[N]),l(()=>{Bn().then(t=>{if(t){const e=t.totalPhysicalRamMb-t.residentRamMb,s=Math.max(200,Math.round(e>0?e:1500));if(Qo(s),me){const r=fo(s);ct(r.maxNetworkLogs),it(r.maxConsoleLogs),ut(r.maxAnalyticsEvents),tt(r.maxCrashRecords),Qt(r.maxPushRecords)}}}).catch(()=>{})},[me]);const Yo=async()=>{await On(),kt(!1),Lo(!1),Et(90),Pt("slide"),lt({apis:!0,logs:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,debugging:!0,media:!0}),Lt("apis"),Yt(!0);const t=fo(Zt);tt(t.maxCrashRecords),ct(t.maxNetworkLogs),it(t.maxConsoleLogs),ut(t.maxAnalyticsEvents),Qt(t.maxPushRecords),Xt({info:!0,warn:!0,error:!0}),Kt(!0),es(1),ts(!1),rs(!0),ln.alert("Settings Reset","All settings have been reset to default values.")},Ar=y(!1);l(()=>{let t=!1;return In().then(e=>{if(!t){if(e.language&&Cn(e.language),e.isDark!=null&&(kt(e.isDark),Lo(e.isDark)),e.modalHeightPercent!=null&&Et(e.modalHeightPercent),e.modalAnimationType&&Pt(e.modalAnimationType),e.tabVisibility&<(s=>({...s,...e.tabVisibility,apis:!0})),e.defaultTab&&Lt(e.defaultTab),e.isAutoRamLimitEnabled!=null&&Yt(e.isAutoRamLimitEnabled),e.maxNetworkLogs!=null&&ct(e.maxNetworkLogs),e.maxConsoleLogs!=null&&it(e.maxConsoleLogs),e.maxAnalyticsEventsLimit!=null&&ut(e.maxAnalyticsEventsLimit),e.maxCrashLogs!=null&&tt(e.maxCrashLogs),e.showConsoleLevels&&Xt(e.showConsoleLevels),e.reduxAutoRefresh!=null&&Kt(e.reduxAutoRefresh),e.reduxExpandDepth!=null&&es(e.reduxExpandDepth),e.captureFps!=null&&hr(e.captureFps),e.captureScale!=null&&gr(e.captureScale),e.captureBitrate!=null&&Sr(e.captureBitrate),e.captureMaxDurationSeconds!=null&&yr(e.captureMaxDurationSeconds),e.captureImageFormat&&Cr(e.captureImageFormat),e.captureAudioMode&&xr(e.captureAudioMode),e.captureAutoHide!=null&&Lr(e.captureAutoHide),e.captureAutoGif!=null&&br(e.captureAutoGif),e.peekOpacity!=null&&Rr(Math.max(.05,Math.min(1,e.peekOpacity))),e.showDuplicateLogs!=null&&ts(e.showDuplicateLogs),e.showUpdateToast!=null&&rs(e.showUpdateToast),e.isGroupByPageEnabled!=null&&Ot(e.isGroupByPageEnabled),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};W(r[s]?s:"apis")}Ar.current=!0}}),()=>{t=!0}},[]),l(()=>{let t=!0;if(He!==!1)return La(typeof He=="object"?He:void 0).then(e=>{t&&e&<(s=>({...s,...e,apis:e.apis??!0}))}).catch(()=>{}),()=>{t=!1}},[He]),l(()=>{Ar.current&&Dn({isDark:Ue,language:xn(),modalHeightPercent:je,modalAnimationType:Je,tabVisibility:N,defaultTab:Z,maxNetworkLogs:D,maxConsoleLogs:de,maxAnalyticsEventsLimit:pe,maxCrashLogs:J,isAutoRamLimitEnabled:me,isGroupByPageEnabled:ae,showConsoleLevels:X,reduxAutoRefresh:he,reduxExpandDepth:ft,showDuplicateLogs:K,showUpdateToast:ss,captureFps:dt,captureScale:pt,captureBitrate:mt,captureMaxDurationSeconds:ht,captureImageFormat:gt,captureAudioMode:St,captureAutoHide:yt,captureAutoGif:Ct,peekOpacity:xt})},[Ue,je,Je,N,Z,D,de,pe,J,me,ae,X,he,ft,K,dt,pt,mt,ht,gt,St,yt,Ct,xt]);const[Pe,Zo]=o(null),Mr=h(()=>{if(!Pe)return!1;const t=r=>r.replace(/^v/,"").split(".").map(n=>parseInt(n,10)||0),e=t(wa),s=t(Pe);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},[Pe]);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"&&Zo(e.version)}).catch(()=>{}),()=>{t=!0}},[]),l(()=>{ha(he)},[he]),l(()=>{u==="redux"&&!hs()&&W("apis"),u==="analytics"&&!ds()&&W("apis")},[u]);const vr=t=>{t!=="apis"&&(t==="redux"&&!hs()||t==="analytics"&&!ds()||lt(e=>{const s=!e[t],r={...e,[t]:s};return!s&&u===t&&(Nn(),W("apis")),!s&&Z===t&&Lt("apis"),r}))},os=k(async(t,e="")=>{if(t==="apis"||t==="logs"||t==="analytics"||t==="crash"){const s=await _n(t,0,100,e);s&&s.items&&s.items.length>0&&(t==="apis"?te(s.items):t==="logs"?ue(s.items):t==="analytics"?ce(s.items):t==="crash"&&j(s.items))}},[]),Nr=k(t=>{t==="redux"&&!hs()||t==="analytics"&&!ds()||(Ft(null),bt(null),Jt(null),_t(null),Vt(null),ne(null),fe(null),typeof is.startTransition=="function"?is.startTransition(()=>{W(t),os(t)}):(W(t),os(t)),Co(t))},[os]),[Tr,bt]=o(null),[ge,kr]=o(""),[a,Er]=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"}),Pr=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]),Ir=k(()=>{Er({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"})},[]),[Dr,Ko]=o(!1),[Fr,en]=o(!1),[Or,Br]=o(new Set),Ie=y(new Set),[wt,ns]=o(null),_r=is.useContext(fn)!==void 0,F=y({path:"",params:null});l(()=>(po(()=>F.current),So(()=>F.current),()=>{po(null),So(null)}),[]),l(()=>{if(wt){const t=co(wt);t?.path&&(F.current=t)}},[wt]),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&&(F.current={path:s.name,params:s.params||null});const r=v.getRootState();if(r){ns(r);const n=co(r);n?.path&&(F.current=n)}}}catch{}};t();const e=typeof v.addListener=="function"?v.addListener("state",()=>{t()}):null;return()=>{e&&e()}},[v]);const w=y(new Map),Se=y(new Set),[Vr,qr]=o(new Set),De=y(new f.Value(1)).current,Fe=y(new f.Value(.4)).current,Oe=y(new f.Value(1)).current,Be=y(new f.Value(0)).current,_e=y(new f.Value(0)).current,R=y(new f.ValueXY({x:0,y:0})).current,Rt=y({x:0,y:0});l(()=>{const t=R.x.addListener(s=>Rt.current.x=s.value),e=R.y.addListener(s=>Rt.current.y=s.value);return()=>{R.x.removeListener(t),R.y.removeListener(e)}},[R]);const At=y(!1),Gr=y(cn.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(t,e)=>Math.abs(e.dx)>4||Math.abs(e.dy)>4,onPanResponderGrant:()=>{At.current=!0,R.setOffset({x:Rt.current.x,y:Rt.current.y}),R.setValue({x:0,y:0})},onPanResponderMove:f.event([null,{dx:R.x,dy:R.y}],{useNativeDriver:!1}),onPanResponderRelease:()=>{R.flattenOffset(),setTimeout(()=>{At.current=!1},50)},onPanResponderTerminate:()=>{R.flattenOffset(),At.current=!1}})).current,Hr=k(()=>{f.sequence([f.timing(_e,{toValue:1,duration:320,useNativeDriver:!1}),f.timing(_e,{toValue:0,duration:0,useNativeDriver:!1})]).start(),sn()},[_e]);l(()=>{ls.OS==="android"&&un.setLayoutAnimationEnabledExperimental?.(!0)},[]),l(()=>{if(g)return;const t=f.loop(f.sequence([f.timing(De,{toValue:1.2,duration:800,useNativeDriver:!1}),f.timing(De,{toValue:1,duration:800,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[De,g]),l(()=>{if(g)return;const t=f.loop(f.sequence([f.timing(Be,{toValue:1,duration:3200,easing:io.inOut(io.ease),useNativeDriver:!1}),f.delay(3500),f.timing(Be,{toValue:0,duration:0,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Be,g]),l(()=>{const t=f.loop(f.sequence([f.timing(Fe,{toValue:1,duration:1200,useNativeDriver:!1}),f.timing(Fe,{toValue:.4,duration:1200,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Fe]),l(()=>{const t=f.loop(f.sequence([f.timing(Oe,{toValue:1.3,duration:800,useNativeDriver:!1}),f.timing(Oe,{toValue:.8,duration:800,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Oe]);const tn=h(()=>xa(),[]),ee=(ls.OS==="ios"||ls.OS==="android")&&tn;l(()=>{ee&&Le().catch(()=>{})},[ee,g,Dt]),l(()=>{if(!ee)return;const t=ya(()=>{Le().catch(()=>{}),z(!0)});return()=>{t()}},[ee]),l(()=>{if(!ee)return;const t=Ca(()=>{z(e=>{const s=!e;return s&&Le().catch(()=>{}),s})});return()=>{t()}},[ee]);const Ur=y(g);l(()=>{if(Ur.current=g,g){ua("InspectorModal");const t=Z==="apis"||N?.[Z]?Z:"apis";if(W(t),Co(t),zt.current.length>0){const n=us(zt.current),i=new Set(n.map(p=>p.id));Se.current=i,te(n)}Wt.current.length>0&&ue(Wt.current),jt.current.length>0&&ce(jt.current);const e=ps();e&&(ze(typeof e=="object"?{...e}:e),We({...ms()}));const s=Tt();s.length>0&&j(s);const r=requestAnimationFrame(()=>{Rs(!0)});return()=>{cancelAnimationFrame(r)}}else Rs(!1),be(new Set)},[g]),l(()=>{Vn(),fs(),Un(),da(),jn(),ea();const t=Pn(),e=Ur,s=Jn(c=>{if(c.message==="__CLEARED__"){j([]),ne(null),Ne(null);return}const H=Tt();H.length>0&&qe("crash",JSON.stringify(H[0])),j(H),c.crashRecord&&Ne(c.crashRecord)}),r=Tt();r.length>0&&(r.forEach(c=>qe("crash",JSON.stringify(c))),j(r));let n,i=!0;const p=qn(c=>{if(zt.current=c,c.length>0&&qe("apis",JSON.stringify(c[0])),!e.current)return;clearTimeout(n);const H=()=>{const C=us(c),M=new Set(C.map(q=>q.id)),d=new Set;M.forEach(q=>{Se.current.has(q)||d.add(q)}),Se.current=M,d.size>0&&(d.forEach(q=>{if(!w.current.has(q)){const nn=C.find(an=>an.id===q)?.routeInfo||F.current;w.current.set(q,nn)}}),qr(d),setTimeout(()=>qr(new Set),1200)),te(C)};if(i){i=!1;const C=us(c),M=new Set(C.map(d=>d.id));Se.current=M,C.forEach(d=>{if(!w.current.has(d.id)){const q=d?.routeInfo||F.current;w.current.set(d.id,q)}}),te(C)}else n=setTimeout(H,250)});let A,T=!0;const as=fa(c=>{if(jt.current=c,c.length>0&&qe("analytics",JSON.stringify(c[0])),!e.current)return;clearTimeout(A);const H=()=>{const C=new Set(c.map(d=>d.id)),M=new Set;C.forEach(d=>{Ie.current.has(d)||M.add(d)}),Ie.current=C,M.size>0&&(M.forEach(d=>{w.current.has(d+1e6)||w.current.set(d+1e6,F.current)}),Br(M),setTimeout(()=>Br(new Set),1200)),ce(c)};if(T){T=!1;const C=new Set(c.map(M=>M.id));Ie.current=C,ce(c)}else A=setTimeout(H,200)});let ye,Nt=!0;const V=zn(c=>{Wt.current=c,c.length>0&&qe("logs",JSON.stringify(c[0])),e.current&&(clearTimeout(ye),Nt?(Nt=!1,ue(c)):ye=setTimeout(()=>{ue(c)},200))}),Ce=ps();Ce&&(ze(typeof Ce=="object"?{...Ce}:Ce),We({...ms()}));const Ve=ma(()=>{if(!e.current)return;const c=ps();ze(c&&typeof c=="object"?{...c}:c),We({...ms()})});return()=>{p(),clearTimeout(n),as(),clearTimeout(A),V(),clearTimeout(ye),Ve(),s(),t()}},[]),l(()=>{Hn(D)},[D]),l(()=>{go(J)},[J]),l(()=>{_s(!0),qs(!0),Hs(!1),zs(!1),Bt("")},[S]);const L=h(()=>{let t=x.filter(e=>{if(I&&I!=="all"){if(I==="errors"){if(!(e.status===0||e.status==null||typeof e.status=="number"&&e.status>=400))return!1}else if(I==="success"){if(!(typeof e.status=="number"&&e.status>=200&&e.status<400))return!1}else if(I==="slow"){if((e.duration||0)<500)return!1}else if(I==="graphql"){if(!((e.url||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("apollo")))return!1}else if(e.method?.toUpperCase()!==I.toUpperCase())return!1}if(se.size>0&&!se.has("all")){const s=typeof e.status=="number"?e.status:parseInt(String(e.status),10);if(![...se].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(re.size>0&&!re.has("all")&&![...re].some(r=>String(r).toUpperCase()==="ALL"?!0:e.method?.toUpperCase()===String(r).toUpperCase()))return!1;if(ie!=="all"){const s=e.duration||0;if(ie==="fast"&&s>=200||ie==="normal"&&(s<200||s>500)||ie==="slow"&&s<=500)return!1}if(Me!=="all"){const s=(e.url||"").toLowerCase().startsWith("https");if(Me==="https"&&!s||Me==="http"&&s)return!1}if(b&&b.trim().length>0){const s=w.current.get(e.id)?.path||"";if(!En(e,b,s,{scope:we,isRegex:Re,isCaseSensitive:Ae}))return!1}return!0});if(le==="time_asc"||Ye==="oldest"?t=[...t].reverse():le==="duration_desc"?t=[...t].sort((e,s)=>(s.duration||0)-(e.duration||0)):le==="duration_asc"?t=[...t].sort((e,s)=>(e.duration||0)-(s.duration||0)):le==="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},[x,b,we,Re,Ae,I,se,re,ie,Me,le,Ye,K]),zr=h(()=>{const t=new Set;return x.forEach(e=>{e.method&&t.add(e.method.toUpperCase())}),["ALL",...Array.from(t)]},[x]),Wr=k((t,e)=>{Ht(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}})},[]),Mt=h(()=>{if(F.current?.path){const t=F.current.path.split(" \u2794 ").map(e=>e.trim()).filter(Boolean);return t.length>0?t[t.length-1]:F.current.path}if(L.length>0){const t=L[0],e=w.current.get(t.id)||t?.routeInfo;return cs(t,e)}return""},[L,wt]),jr=k(t=>{Qe(e=>{const s=new Map(e),n=!!(b&&b.trim().length>0)?!0:t===Mt,i=s.has(t)?s.get(t):n;return s.set(t,!i),s})},[Mt,b]);l(()=>{Xe({}),Qe(new Map)},[b,we,Re,Ae,I,se,re,D]);const Jr=k((t,e=10)=>{Xe(s=>({...s,[t]:(s[t]||D||50)+e}))},[D]),$r=h(()=>{if(!ae)return L.map((n,i)=>{const p=w.current.get(n.id)||n?.routeInfo,A=cs(n,p);return{type:"log",id:`flat-log-${n.id}`,log:n,isLast:i===L.length-1,color:uo(A)}});const t=[],e=new Map;for(let n=0;n<L.length;n++){const i=L[n],p=w.current.get(i.id)||i?.routeInfo,A=cs(i,p);let T=e.get(A);T||(T={pageName:A,color:uo(A),logs:[]},e.set(A,T)),T.logs.push(i)}const s=!!(b&&b.trim().length>0);let r=0;return e.forEach(n=>{let i=0,p=0,A=0;n.logs.forEach(V=>{V.status==null?A++:V.status===0||V.status>=400?p++:i++});const T=Ds[n.pageName]||new Set(["success","failed","loading"]),as=s?!0:n.pageName===Mt,ye=Ut.has(n.pageName)?!Ut.get(n.pageName):!as,Nt=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:A},timestamp:Nt,activeFilters:T,isCollapsed:ye,isFirst:r===0}),r++,!ye){const V=n.logs.filter(d=>d.status==null?T.has("loading"):d.status===0||d.status>=400?T.has("failed"):T.has("success")),Ce=D||50,Ve=Fs[n.pageName]||Ce,c=V.slice(0,Ve),H=V.length>Ve;c.forEach(d=>{t.push({type:"log",id:`log-${d.id}`,log:d,isLast:!1,color:n.color})});const C=Math.max(0,V.length-Ve),M=Math.min(C||10,10);t.push({type:"loadMore",id:`loadmore-${n.pageName}`,pageName:n.pageName,color:n.color,remainingCount:C,totalCount:V.length,loadedCount:c.length,loadMoreStep:M,hasMore:H})}}),t},[ae,L,x,Ds,Ut,Mt,Fs,D,b]),{minStart:Qr,totalRange:Xr}=h(()=>{if(L.length===0)return{minStart:0,totalRange:0};const t=Math.min(...L.map(s=>s.startTime)),e=Math.max(...L.map(s=>s.startTime+(s.duration||10)));return{minStart:t,totalRange:e-t}},[L]),vt=h(()=>{if(!S)return null;const t=x.findIndex(e=>e.id===S.id);if(t===-1)return null;for(let e=t+1;e<x.length;e++){const s=x[e];if(s.url===S.url&&s.method===S.method)return s}return null},[S,x]),Yr=vt?vt.request:null,Zr=vt?vt.response:null,Kr=h(()=>{let t=Ke;if(ge&&ge.trim().length>0){const r=ge.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=kn(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,pe)},[Ke,ge,a,pe]),eo=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)=>Ze==="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,Ze,K]),to=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]),so=k(()=>{z(!1),It(!1),setTimeout(()=>{Ft(null),bt(null),Jt(null),_t(null),Vt(null),ne(null),fe(null)},300)},[]);function sn(){fs(),te([]),be(new Set),Ht({}),Qe(new Map),Xe({}),qt(new Set),Gt(new Set),Ms(""),Se.current=new Set,w.current=new Map,xo(),ce([]),kr(""),Ie.current=new Set,mo(),ue([]),ur(new Set(["all"])),cr("")}function ro(){if(u==="logs"){P({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:()=>{P(t=>({...t,visible:!1})),mo(),ue([])}});return}if(u==="analytics"){P({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:()=>{P(t=>({...t,visible:!1})),xo(),ce([]),bt(null),Ie.current=new Set}});return}if(u==="redux"){P({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:()=>{P(t=>({...t,visible:!1})),ga(),We({})}});return}if(u==="crash"){P({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:()=>{P(t=>({...t,visible:!1})),ho(),j([]),ne(null)}});return}$e.size>0?(te(t=>t.filter(e=>!$e.has(e.id))),be(new Set)):P({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:()=>{P(t=>({...t,visible:!1})),rn()}})}function rn(){fs(),te([]),be(new Set),Ht({}),Qe(new Map),Xe({}),qt(new Set),Gt(new Set),Se.current=new Set,w.current=new Map}const oo=h(()=>{if(!S)return"";try{const e=new URL(S.url).pathname.split("/").filter(Boolean);return e.length>0?`/${e.slice(-2).join("/")}`:"/"}catch{const t=S.url.split("/").filter(Boolean);return t.length>0?`/${t.slice(-2).join("/")}`:S.url}},[S]),no=h(()=>S?Tn(S.url):"",[S]),ao=k(t=>{be(e=>{const s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},[]),on=h(()=>({visible:g,setVisible:z,closeModal:so,isMinimized:Ls,setIsMinimized:It,minimizeInspector:wo,isDismissed:Dt,setIsDismissed:bs,dismissInspector:Ro,isReady:ws,enabled:E,isEnabled:E,appIcon:Ss,environment:ys,modalHeightPercent:je,setModalHeightPercent:Et,modalAnimationType:Je,setModalAnimationType:Pt,hasNavigationContext:_r,setNavState:ns,activeTab:u,switchActiveTab:Nr,tabVisibility:N,toggleTabVisibility:vr,lastReadApisCount:$s,lastReadLogsCount:js,mediaCount:Zs,refreshMediaCount:et,selected:S,setSelected:Ft,selectedEvent:Tr,setSelectedEvent:bt,selectedLog:Ws,setSelectedLog:Jt,showHeaderInfo:Os,setShowHeaderInfo:Do,settingsPage:fr,setSettingsPage:Wo,isAboutOpen:dr,setIsAboutOpen:jo,isSupportOpen:pr,setIsSupportOpen:Jo,updateAvailable:Mr,latestNpmVersion:Pe,clearAnim:_e,activePulseAnim:Fe,unreadPulseAnim:Oe,runClearAllWithAnimation:Hr,confirmModal:As,setConfirmModal:P,useNativeFab:ee,fabPan:R,fabPanResponder:Gr,fabDraggedRef:At,pulseAnim:De,fabShineAnim:Be,logs:x,filteredLogs:L,groupedData:$r,search:b,setSearch:Ms,searchScope:we,setSearchScope:Ao,isRegexSearch:Re,setIsRegexSearch:Mo,isCaseSensitive:Ae,setIsCaseSensitive:vo,quickFilter:I,setQuickFilter:No,statusFilters:se,setStatusFilters:qt,methodFilters:re,setMethodFilters:Gt,latencyFilter:ie,setLatencyFilter:Eo,protocolFilter:Me,setProtocolFilter:Po,networkSortBy:le,setNetworkSortBy:Io,availableMethods:zr,sortOrder:Ye,setSortOrder:Fo,selectedLogs:$e,toggleSelect:ao,minStart:Qr,totalRange:Xr,newLogIds:Vr,toggleSectionFilter:Wr,toggleSectionCollapse:jr,loadMoreSection:Jr,handleDelete:ro,isGroupByPageEnabled:ae,setIsGroupByPageEnabled:Ot,detailTitle:oo,detailDisplayUrl:no,apiDetailActiveTab:Ps,setApiDetailActiveTab:Is,detailSearch:vs,setDetailSearch:Bt,reqExpanded:Bs,setReqExpanded:_s,resExpanded:Vs,setResExpanded:qs,showReqDiff:Gs,setShowReqDiff:Hs,showResDiff:Us,setShowResDiff:zs,prevRequestData:Yr,prevResponseData:Zr,logRouteMapRef:w,consoleLogs:oe,visibleConsoleLogs:Y,filteredConsoleLogs:eo,logSearch:B,setLogSearch:cr,logFilters:_,setLogFilters:ur,logCounts:to,logSortOrder:Ze,setLogSortOrder:Oo,analyticsEvents:Ke,filteredAnalyticsEvents:Kr,analyticsSearch:ge,setAnalyticsSearch:kr,analyticsFilters:a,setAnalyticsFilters:Er,isAnalyticsFilterApplied:Pr,resetAnalyticsFilters:Ir,newEventIds:Or,isAnalyticsLayoutReady:Dr,setIsAnalyticsLayoutReady:Ko,analyticsHeaderExpanded:Fr,setAnalyticsHeaderExpanded:en,reduxState:Cs,setReduxState:ze,reduxLastActionMap:xs,reduxSearch:Ns,setReduxSearch:To,selectedReduxSlice:Ts,setSelectedReduxSlice:_t,selectedReduxAction:ks,setSelectedReduxAction:Vt,reduxActiveSubTab:Es,setReduxActiveSubTab:ko,crashRecords:ve,setCrashRecords:j,selectedCrash:tr,setSelectedCrash:ne,lastReadCrashesCount:Xs,maxCrashLogs:J,setMaxCrashLogs:tt,clearAllCrashes:()=>{ho(),j([]),ne(null)},pushRecords:$,filteredPushRecords:ar,selectedPush:rr,setSelectedPush:or,pushSearch:Te,setPushSearch:_o,pushQuickFilter:G,setPushQuickFilter:Vo,lastReadPushCount:st,unreadPushCount:nr,maxPushLogs:rt,setMaxPushLogs:Qt,clearAllPushLogs:()=>{Yn(),sr([]),or(null)},simulatePush:(t,e)=>{Kn(t,e)},socketRecords:Q,filteredSocketRecords:lr,selectedSocket:ke,setSelectedSocket:fe,socketSearch:Ee,setSocketSearch:Go,socketQuickFilter:O,setSocketQuickFilter:Ho,lastReadSocketCount:nt,unreadSocketCount:ir,maxSocketLogs:at,setMaxSocketLogs:zo,clearAllSocketLogs:()=>{ta(),ot([]),fe(null)},deleteSocketRecord:t=>{ia(t),ot(e=>e.filter(s=>s.id!==t)),ke?.id===t&&fe(null)},deleteMultipleSocketRecords:t=>{la(t);const e=new Set(t);ot(s=>s.filter(r=>!e.has(r.id))),ke&&e.has(ke.id)&&fe(null)},simulateSocket:(t,e)=>{aa(t,e)},settingsActiveSubTab:mr,setSettingsActiveSubTab:$o,defaultTab:Z,setDefaultTab:Lt,isDark:Ue,setIsDark:kt,showDuplicateLogs:K,setShowDuplicateLogs:ts,showUpdateToast:ss,setShowUpdateToast:rs,showConsoleLevels:X,setShowConsoleLevels:Xt,resetToDefaults:Yo,storage:U,maxNetworkLogs:D,setMaxNetworkLogs:ct,maxConsoleLogs:de,setMaxConsoleLogs:it,maxAnalyticsEventsLimit:pe,setMaxAnalyticsEventsLimit:ut,isAutoRamLimitEnabled:me,setIsAutoRamLimitEnabled:Yt,deviceFreeRamMb:Zt,reduxAutoRefresh:he,setReduxAutoRefreshState:Kt,reduxExpandDepth:ft,setReduxExpandDepth:es,captureFps:dt,setCaptureFps:hr,captureScale:pt,setCaptureScale:gr,captureBitrate:mt,setCaptureBitrate:Sr,captureMaxDurationSeconds:ht,setCaptureMaxDurationSeconds:yr,captureImageFormat:gt,setCaptureImageFormat:Cr,captureAudioMode:St,setCaptureAudioMode:xr,captureAutoHide:yt,setCaptureAutoHide:Lr,captureAutoGif:Ct,setCaptureAutoGif:br,peekMode:wr,setPeekMode:Xo,peekOpacity:xt,setPeekOpacity:Rr,previewMediaItem:er,setPreviewMediaItem:Bo}),[g,so,ws,E,Ss,ys,je,Je,_r,ns,u,Nr,N,vr,$s,js,Zs,et,er,S,Tr,Ws,Os,fr,dr,pr,Mr,Pe,_e,Fe,Oe,Hr,ee,R,Gr,De,Be,x,L,$r,b,we,Re,Ae,I,se,re,zr,Ye,$e,ao,Qr,Xr,Vr,Wr,jr,Jr,ro,ae,Ot,oo,no,Ps,vs,Bs,Vs,Gs,Us,Yr,Zr,oe,Y,eo,B,_,to,Ze,Ke,Kr,ge,a,Pr,Ir,Or,Dr,Fr,Cs,xs,Ns,Ts,ks,Es,ve,tr,Xs,J,$,ar,rr,Te,G,st,nr,rt,Q,lr,ke,Ee,O,nt,ir,at,mr,Z,Ue,K,ss,X,U,D,de,pe,me,Zt,he,ft,dt,pt,mt,ht,gt,St,yt,Ct,wr,xt,Ls,Dt,As]);return<vn.Provider value={on}>
|
|
2
2
|
<An/>
|
|
3
|
-
<Mn visible={!!$t}crash={$t}onDismiss={()=>
|
|
4
|
-
</
|
|
3
|
+
<Mn visible={!!$t}crash={$t}onDismiss={()=>Ne(null)}onOpenInspector={()=>{const t=$t;Ne(null),t&&ne(t),W("crash"),z(!0)}}onRetry={()=>{Ne(null)}}/>
|
|
4
|
+
</vn.Provider>},gs=E=>{const U=E?.enabled??!0,v=E?.telemetry??!0;return l(()=>(U?v?ca(!0,E?.environment):yo(!1):(Le().catch(()=>{}),yo(!1)),()=>{Le().catch(()=>{})}),[U,v,E?.environment]),U?<Sn i18n={yn}>
|
|
5
5
|
<Rn fallbackType="inline">
|
|
6
6
|
<Ra{...E}enabled={U}/>
|
|
7
7
|
</Rn>
|
|
@@ -142,3 +142,7 @@ export declare const copyMediaToClipboard: (filePath: string) => Promise<boolean
|
|
|
142
142
|
export declare const editNativePhoto: (options: import("../types/editor").PhotoEditOptions) => Promise<import("../types/editor").PhotoEditResult | null>;
|
|
143
143
|
export declare const trimNativeVideo: (options: import("../types/editor").VideoTrimOptions) => Promise<import("../types/editor").VideoTrimResult | null>;
|
|
144
144
|
export declare const generateNativeFilmstrip: (options: import("../types/editor").FilmstripOptions) => Promise<import("../types/editor").FilmstripResult | null>;
|
|
145
|
+
export interface PickMediaOptions {
|
|
146
|
+
mediaType?: 'image' | 'video' | 'any';
|
|
147
|
+
}
|
|
148
|
+
export declare const pickNativeMedia: (options?: PickMediaOptions) => Promise<CapturedMediaItem | null>;
|
|
@@ -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
|
|
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}};
|
|
@@ -28,6 +28,7 @@ export interface Spec extends TurboModule {
|
|
|
28
28
|
editPhoto(options: Object): Promise<Object>;
|
|
29
29
|
trimVideo(options: Object): Promise<Object>;
|
|
30
30
|
generateFilmstrip(options: Object): Promise<Object>;
|
|
31
|
+
pickMedia(options: Object): Promise<Object | null>;
|
|
31
32
|
addListener(eventName: string): void;
|
|
32
33
|
removeListeners(count: number): void;
|
|
33
34
|
}
|
|
@@ -445,6 +445,8 @@ export interface InspectorContextValue {
|
|
|
445
445
|
setPeekMode: React.Dispatch<React.SetStateAction<boolean>>;
|
|
446
446
|
peekOpacity: number;
|
|
447
447
|
setPeekOpacity: React.Dispatch<React.SetStateAction<number>>;
|
|
448
|
+
previewMediaItem: import('../capture').CapturedMediaItem | null;
|
|
449
|
+
setPreviewMediaItem: React.Dispatch<React.SetStateAction<import('../capture').CapturedMediaItem | null>>;
|
|
448
450
|
}
|
|
449
451
|
export interface CopyButtonProps {
|
|
450
452
|
value: unknown | (() => unknown);
|