react-native-inapp-inspector 2.5.15 → 2.5.16
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/dist/commonjs/components/Inspector/SettingsPanel.js +57 -85
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/networkLogger.js +1 -1
- package/dist/commonjs/index.js +2 -2
- package/dist/commonjs/types/interfaces.d.ts +0 -3
- package/dist/esm/components/Inspector/SettingsPanel.js +399 -427
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/networkLogger.js +1 -1
- package/dist/esm/index.js +7 -7
- package/dist/esm/types/interfaces.d.ts +0 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "2.5.
|
|
1
|
+
export declare const LIB_VERSION = "2.5.16";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const LIB_VERSION="2.5.
|
|
1
|
+
export const LIB_VERSION="2.5.16";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import R from"axios";import{setupGlobalCrashHandler as S}from"./crashHandler";let l=[],b=[],
|
|
1
|
+
import R from"axios";import{setupGlobalCrashHandler as S}from"./crashHandler";let l=[],b=[],N=0,E=!0,y=null;export const setRouteInfoProvider=e=>{y=e},setNetworkModuleEnabled=e=>{E=e},getNetworkModuleEnabled=()=>E;const A=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS","CONNECT","TRACE"],C=[/\/symbolicate(?:\?|$)/i,/\/index\.bundle(?:\?|$)/i,/\/open-debugger(?:\?|$)/i,/:(?:8081|8082|8083|19000|19001)\/(?:index\.bundle|symbolicate|hot|message|status)/i,/google-analytics\.com\/mp\/collect/i,/analytics\.google\.com/i];function w(e){return e?C.some(t=>t.test(e)):!1}function U(e){if(!e||typeof e!="string")return;const t=e.trim().split(/[\r\n]+/),s={};return t.forEach(n=>{const o=n.indexOf(":");if(o>0){const i=n.substring(0,o).trim().toLowerCase(),r=n.substring(o+1).trim();s[i]=r}}),Object.keys(s).length>0?s:void 0}function L(e){if(!e)return;if(typeof e.forEach=="function"){const n={};return e.forEach((o,i)=>{n[i]=o}),Object.keys(n).length>0?n:void 0}if(Array.isArray(e)){const n={};return e.forEach(([o,i])=>{n[o]=i}),Object.keys(n).length>0?n:void 0}const t=e,s={};return Object.entries(t).forEach(([n,o])=>{o!=null&&(s[n]=String(o))}),Object.keys(s).length>0?s:void 0}function q(e){if(!e)return e;if(e&&e._parts&&Array.isArray(e._parts)){const t={};return e._parts.forEach(s=>{const n=s[0],o=s[1];o&&typeof o=="object"&&o.uri?t[n]={_isFile:!0,name:o.name||"unknown",type:o.type||"unknown",uri:o.uri}:t[n]=o}),{_isFormData:!0,...t}}return e}export const subscribeNetworkLogs=e=>(b.push(e),e([...l]),()=>{b=b.filter(t=>t!==e)}),clearNetworkLogs=()=>{l=[],D()},getNetworkLogs=()=>[...l];let x=1/0;export const setMaxNetworkLogsLimit=e=>{x=e},getMaxNetworkLogsLimit=()=>x,pruneNetworkLogs=e=>{const t=e!==void 0?Math.max(0,e):Math.floor(l.length/2),s=l.length-t;return s>0&&(l=l.slice(0,t),D()),Math.max(0,s)};const D=()=>{const e=[...l];b.forEach(t=>t(e))},h=e=>{if(!E)return;const t=(e.method||"GET").toUpperCase();if(t&&!A.includes(t)||w(e.url))return;const s={...e,method:t},n=l.findIndex(o=>o.id===e.id);n>=0?l[n]={...l[n],...s}:(l.unshift(s),l.length>x&&(l=l.slice(0,x))),D()};let I=0;export const setupNetworkLogger=()=>{if(globalThis.__NETWORK_LOGGER_INITIALIZED__)return;globalThis.__NETWORK_LOGGER__=h;const e=globalThis.XMLHttpRequest;if(e&&e.prototype&&!globalThis.__XHR_LOGGER_INITIALIZED__){globalThis.__XHR_LOGGER_INITIALIZED__=!0;const s=e.prototype.open,n=e.prototype.send,o=e.prototype.setRequestHeader;e.prototype.open=function(i,r,u,d,c){return this.__logMethod=(i||"GET").toUpperCase(),this.__logUrl=typeof r=="string"?r:String(r),this.__logRequestHeaders={},this.__logStartTime=Date.now(),s.apply(this,[i,r,u!==!1,d,c])},e.prototype.setRequestHeader=function(i,r){return i&&r!=null&&(this.__logRequestHeaders||(this.__logRequestHeaders={}),this.__logRequestHeaders[i.toLowerCase()]=String(r)),o.apply(this,[i,r])},e.prototype.send=function(i){if(!E||I>0||this.__inAppInspectorTracked)return n.apply(this,[i]);const r=this.__logUrl||"",u=this.__logMethod||"GET";if(w(r))return n.apply(this,[i]);const d=N++;this.__logId=d;const c=this.__logStartTime||Date.now(),a=this.__logRequestHeaders;let p="xhr";(a?.["apollographql-client-name"]||r.toLowerCase().includes("/graphql"))&&(p="apollo");const T=y?y():null;h({id:d,url:r,method:u,startTime:c,client:p,routeInfo:T||void 0,request:u==="GET"?void 0:q(i),requestHeaders:Object.keys(a||{}).length>0?a:void 0});const g=()=>{if(this.__logFinished)return;this.__logFinished=!0;const f=Date.now()-c;let _=null;try{if(this.responseType===""||this.responseType==="text"){const O=this.responseText;try{_=JSON.parse(O)}catch{_=O}}else this.responseType==="json"?_=this.response:this.responseType==="blob"?_=`[Blob: ${this.response?.size||0} bytes]`:_=`[${this.responseType||"Unknown"} Data]`}catch{_=this.response||null}const k=this.getAllResponseHeaders?this.getAllResponseHeaders():"",G=U(k);h({id:d,url:r,method:u,status:this.status,response:_,duration:f,startTime:c,client:p,responseHeaders:G})},m=()=>{if(this.__logFinished)return;this.__logFinished=!0;const f=Date.now()-c;h({id:d,url:r,method:u,status:this.status||0,response:"Network request failed",duration:f,startTime:c,client:p})};this.addEventListener("load",g),this.addEventListener("error",m),this.addEventListener("abort",m),this.addEventListener("timeout",m);const H=this.onreadystatechange;return this.onreadystatechange=function(...f){if(this.readyState===4&&(this.status>=200?g():m()),typeof H=="function")return H.apply(this,f)},n.apply(this,[i])}}const t=globalThis.fetch;t&&(globalThis.fetch=async(s,n={})=>{if(!E)return t(s,n);const o=(n?.method||"GET").toUpperCase(),i=N++,r=Date.now(),u=typeof s=="string"?s:s?.url||s?.href||(s?String(s):"");if(w(u))return t(s,n);let d,c="fetch";try{d=L(n?.headers),d?.["apollographql-client-name"]||u?.toLowerCase().includes("/graphql")?c="apollo":d?.["x-requested-with"]?.toLowerCase().includes("xmlhttprequest")&&(c="xhr");const a=y?y():null;h({id:i,url:u,method:o,startTime:r,client:c,routeInfo:a||void 0,request:o==="GET"?void 0:q(n?.body),requestHeaders:d})}catch{}try{I++;let a;try{a=await t(s,n)}finally{I=Math.max(0,I-1)}const p=Date.now()-r;try{const T=L(a.headers);let g=null;if((T?.["content-type"]||T?.["Content-Type"]||"").includes("image/"))g="[Image Data]";else try{const f=await a.clone().text();try{g=JSON.parse(f)}catch{g=f}}catch{}h({id:i,url:u,method:o,status:a.status,response:g,duration:p,startTime:r,client:c,responseHeaders:T})}catch{}return a}catch(a){try{const p=a instanceof Error?a.message||a.name||"Network request failed":String(a||"Network request failed");h({id:i,url:u,method:o,status:0,startTime:r,response:p,client:c,duration:Date.now()-r})}catch{}throw a}});try{if(R){addAxiosInterceptors(R);const s=R.create;typeof s=="function"&&(R.create=function(...n){const o=s.apply(this,n);return addAxiosInterceptors(o),o})}}catch{}try{S()}catch{}globalThis.__NETWORK_LOGGER_INITIALIZED__=!0},addAxiosInterceptors=e=>{e.interceptors.request.use(async t=>{const s=(t.method||"GET").toUpperCase(),n=N++,o=Date.now();let i=t.url??"";if(i.startsWith("http")||(i=`${t.baseURL??""}${i}`),w(i))return t;t.__logId=n,t.__logStart=o;const r=y?y():null;return h({id:n,url:i,method:s,startTime:o,client:"axios",routeInfo:r||void 0,request:s==="GET"?void 0:q(t.data),requestHeaders:L(t.headers)}),t}),e.interceptors.response.use(t=>{const s=t.config||{},n=s.__logId,o=s.__logStart,i=(s.method||"GET").toUpperCase();if(n==null)return t;let r=s.url??"";return r.startsWith("http")||(r=`${s.baseURL??""}${r}`),h({id:n,url:r,method:i,status:t.status,response:t.data,startTime:o||Date.now(),duration:o!=null?Date.now()-o:void 0,client:"axios",responseHeaders:L(t.headers)}),t},t=>{const s=t.config||{},n=s.__logId,o=s.__logStart,i=(s.method||"GET").toUpperCase();if(n!=null){let r=s.url??"";r.startsWith("http")||(r=`${s.baseURL??""}${r}`),h({id:n,url:r,method:i,status:t.response?.status??0,response:t.response?.data??(t instanceof Error?t.message:String(t||"Network request failed")),startTime:o||Date.now(),duration:o!=null?Date.now()-o:void 0,client:"axios",responseHeaders:L(t.response?.headers)})}return Promise.reject(t)})};if(typeof globalThis<"u")try{setupNetworkLogger()}catch{}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import Mn,{useEffect as l,useMemo as m,useRef as C,useState as o,useCallback as N}from"react";import{Alert as Nn,Animated as f,Easing as xo,PanResponder as Tn,Platform as Ns,UIManager as vn,LogBox as wo}from"react-native";import{NavigationContext as En}from"@react-navigation/native";import{I18nextProvider as Pn,i18n as kn,setLanguage as In,getLanguage as Dn,useTranslation as Fn}from"./i18n";import On from"./components/ErrorBoundary";import _n from"./components/Inspector/MainScreen";import Bn from"./components/Inspector/GlobalCrashScreenModal";import{InspectorContext as Vn,animateNextLayout as Un}from"./components/Inspector/InspectorContext";import{formatDisplayUrl as qn,getNavigationInfo as bo,getLogPageName as Ts,deduplicateLogs as Bt,getDomainColor as Ro,getEventCategory as Hn,matchNetworkLogQuery as Wn,scoreNetworkLogQuery as Gn,setupMemoryWarningHandler as zn,isUrlHidden as jn}from"./helpers";import{loadSettings as Jn,saveSettings as $n,setCustomStorage as Qn,clearPersistedSettings as Xn,calculateRamBasedLimits as Ao}from"./helpers/settingsStore";import{getNativeSystemMetrics as Yn,pushNativeLogRecord as Ge,fetchNativeCachedPage as Zn}from"./native/NativeInspector";import{setupNetworkLogger as Kn,clearNetworkLogs as Mo,subscribeNetworkLogs as ea,getNetworkLogs as No,setNetworkModuleEnabled as ta,setMaxNetworkLogsLimit as sa,setRouteInfoProvider as To}from"./customHooks/networkLogger";import{setupConsoleLogger as ra,clearConsoleLogs as vo,subscribeConsoleLogs as oa,setConsoleModuleEnabled as na}from"./customHooks/consoleLogger";import{IGNORED_LOG_PREFIXES as Te}from"./customHooks/logFilters";import{setupGlobalCrashHandler as aa,subscribeCrashEvents as ia,getCrashRecords as Vt,clearCrashRecords as Eo,setMaxCrashLogsLimit as Po,setCrashModuleEnabled as la,DEFAULT_CRASH_IGNORED_TYPES as ko,setCrashIgnoredTypesConfig as ca,setCrashModalTriggerPolicyConfig as ua,applyCrashPolicyPreset as fa}from"./customHooks/crashHandler";import{subscribePushEvents as da,getPushRecords as pa,clearPushRecords as ma,setMaxPushRecordsLimit as ha,simulateTestPush as ga}from"./customHooks/pushNotificationLogger";import{setupSocketLogger as Sa,clearSocketRecords as ya,subscribeSocketRecords as Ca,getSocketRecords as La,setSocketModuleEnabled as xa,setMaxSocketRecordsLimit as wa,simulateTestSocket as ba,setSocketRouteInfoProvider as Io,deleteSocketRecord as Ra,deleteMultipleSocketRecords as Aa}from"./customHooks/socketLogger";import{trackActiveTelemetryHeartbeat as Ma,setTelemetryEnabled as Do,trackInspectorTabView as Fo,trackInspectorScreenView as Na}from"./helpers/telemetry";import{subscribeAnalyticsEvents as Ta,clearAnalyticsEvents as Oo,autoSetupAnalyticsLogger as va,isAnalyticsConnected as vs,setAnalyticsModuleEnabled as Ea}from"./customHooks/analyticsLogger";import{getReduxState as Es,subscribeReduxState as Pa,setReduxAutoRefresh as ka,getLastActionForReducer as Ps,clearActionHistory as Ia,isReduxConnected as ks,setReduxModuleEnabled as Da}from"./customHooks/reduxLogger";import{hideNativeFloatingButton as ve,subscribeNativeFloatingButtonPress as Fa,subscribeNativeDeviceShake as Oa,enableNativeCrashProtection as _a,isNativeModuleAvailable as Ba}from"./native/NativeInspector";import{fetchRemoteConfigSettings as Va}from"./helpers/remoteConfig";import{ScreenCapture as Ua}from"./capture";import{LIB_VERSION as qa,DEFAULT_HIDDEN_URL_PATTERNS as Is}from"./constants";import{toggleGlobalTheme as _o}from"./styles";const Ha=({enabled:I=!0,storage:G,navigationRef:v,appIcon:Fs,environment:Os,initialVisible:Bo=!1,visible:ze,remoteConfig:je=!1,captureWidgetEnabled:Vo})=>{Qn(G||null);const{t:p}=Fn(),[Je,Ut]=o(!1),[_s,$e]=o(null),[Bs,Qe]=o({}),[Xe,qt]=o(90),[Ye,Ht]=o("slide"),[x,z]=o([]),[h,j]=o(ze??Bo??!1),[Vs,Wt]=o(!1),[Gt,Us]=o(!1),Uo=N(()=>{Wt(!0),j(!1)},[]),qo=N(()=>{Us(!0),j(!1),ve().catch(()=>{})},[]);l(()=>{ze!==void 0&&j(ze)},[ze]);const[qs,Hs]=o(!1),[g,zt]=o(null),[Ze,Ee]=o(new Set),[Ke,fe]=o(new Set),[Ws,D]=o({visible:!1,title:"",message:"",onConfirm:()=>{}}),[w,Gs]=o(""),[de,Ho]=o("all"),[pe,Wo]=o(!1),[me,Go]=o(!1),[he,jt]=o(!0),[re,Jt]=o(()=>[...Is]),[F,zo]=o("all"),[zs,$t]=o(""),[js,jo]=o(""),[Js,Qt]=o(null),[$s,Xt]=o(null),[Qs,Jo]=o("state"),[Xs,Ys]=o("response");l(()=>(wo.ignoreAllLogs(I),()=>{wo.ignoreAllLogs(!1)}),[I]),l(()=>{g&&(Ys("response"),$t(""))},[g]);const[oe,Yt]=o(new Set),[ne,Zt]=o(new Set),[ge,$o]=o("all"),[Pe,Qo]=o("all"),[Se,Xo]=o("time_desc"),[Zs,Kt]=o({}),[es,et]=o(()=>new Map),[Ks,tt]=o({}),[er,Yo]=o(!0),[st,Zo]=o("newest"),[rt,Ko]=o("newest"),[tr,sr]=o(!0),[rr,or]=o(!0),[nr,ar]=o(!1),[ir,lr]=o(!1),[u,ae]=o("apis"),[ye,Ce]=o([]),[H,ie]=o([]),ot=C([]),ts=C([]),ss=C([]),[cr,rs]=o(null),[ur,fr]=o(0),[dr,pr]=o(0),[mr,hr]=o(0),[gr,Sr]=o(0),[yr,en]=o(null),nt=N(async()=>{try{const t=await Ua.getMediaList(),e=t?t.length:0;return Sr(e),e}catch{return Sr(0),0}},[]);l(()=>{h&&nt()},[h,nt]);const[le,J]=o(()=>Vt()),[Cr,ce]=o(null),[os,ke]=o(null),[$,at]=o(50),[Le,ns]=o(()=>({...ko})),[xe,Lr]=o("fatal_only");l(()=>{Po($)},[$]),l(()=>{ca(Le)},[Le]),l(()=>{ua(xe)},[xe]);const xr=N(t=>{const e=fa(t);ns(e)},[]);l(()=>{h&&(u==="apis"&&pr(x.length),u==="logs"&&fr(H.length),u==="crash"&&hr(le.length))},[h]),l(()=>{u==="apis"&&pr(x.length)},[u,x.length]),l(()=>{u==="logs"&&fr(H.length)},[u,H.length]),l(()=>{u==="crash"&&hr(le.length)},[u,le.length]);const[Q,wr]=o(()=>pa()),[br,Rr]=o(null),[Ie,tn]=o(""),[W,sn]=o("all"),[it,rn]=o(0),[lt,as]=o(50);l(()=>{ha(lt)},[lt]),l(()=>da(e=>{wr(e)}),[]);const Ar=m(()=>u==="push"?0:Math.max(0,Q.length-it),[u,Q.length,it]);l(()=>{h&&u==="push"&&rn(Q.length)},[h,u,Q.length]);const Mr=m(()=>{let t=Q;if(W!=="all"){if(W==="foreground")t=t.filter(e=>(e.appState||"").toLowerCase()==="foreground");else if(W==="background")t=t.filter(e=>(e.appState||"").toLowerCase()==="background");else if(W==="opened")t=t.filter(e=>e.action==="opened");else if(W.startsWith("source:")){const e=W.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,W,Ie]),[X,ct]=o(()=>La()),[De,we]=o(null),[Fe,on]=o(""),[B,nn]=o("all"),[ut,an]=o(0),[ft,ln]=o(50);l(()=>{wa(ft)},[ft]),l(()=>Ca(e=>{ct(e)}),[]);const Nr=m(()=>u==="socket"?0:Math.max(0,X.length-ut),[u,X.length,ut]);l(()=>{h&&u==="socket"&&an(X.length)},[h,u,X.length]);const Tr=m(()=>{let t=X;if(B!=="all"&&(B==="open"?t=t.filter(e=>(e.status||"open").toLowerCase()==="open"):B==="closed"?t=t.filter(e=>(e.status||"").toLowerCase()==="closed"):B==="error"?t=t.filter(e=>(e.status||"").toLowerCase()==="error"):B==="sio"?t=t.filter(e=>e.client==="socket.io"||e.url.includes("/socket.io")):B==="wss"?t=t.filter(e=>e.url.startsWith("wss://")):B==="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},[X,B,Fe]),[be,dt]=o(300),[Y,is]=o({info:!0,warn:!0,error:!0}),Z=m(()=>H.filter(e=>{const s=e.type;if(s==="info"&&!Y?.info||s==="warn"&&!Y?.warn||s==="error"&&!Y?.error)return!1;const r=e.message||"";return![...Te&&Te.info||[],...Te&&Te.warn||[],...Te&&Te.error||[]].filter(d=>typeof d=="string"&&d.trim().length>0).some(d=>r.toLowerCase().trim().startsWith(d.toLowerCase().trim())||r.toLowerCase().trim().includes(d.toLowerCase().trim()))}).slice(0,be),[H,Y,be]),[V,vr]=o(""),[U,ls]=o(new Set(["user-log"])),[Er,cn]=o(null),[Pr,un]=o(!1),[kr,fn]=o(!1),[Ir,dn]=o("module"),[E,pt]=o({apis:!0,logs:!0,perf:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,media:!0}),[O,mt]=o(250),[Re,ht]=o(150),[Ae,cs]=o(!0),[us,pn]=o(1800),[Me,fs]=o(!0),[gt,ds]=o(1),[St,ps]=o(60),[yt,ms]=o(.5),[Ct,hs]=o(0),[Lt,gs]=o(120),[xt,Ss]=o("png"),[wt,ys]=o("none"),[bt,Cs]=o(!0),[Rt,Ls]=o(!0),[At,Mt]=o(Vo??!0),[Dr,mn]=o(!1),[Nt,xs]=o(.3),[K,Tt]=o("apis"),[ee,ws]=o(!1),[bs,Rs]=o(!0),[Fr,hn]=o(!1);l(()=>{ta(!!E.apis),na(!!E.logs),Ea(!!E.analytics),Da(!!E.redux),la(!!E.crash),xa(!!E.socket)},[E]),l(()=>{Yn().then(t=>{if(t){const e=t.totalPhysicalRamMb-t.residentRamMb,s=Math.max(200,Math.round(e>0?e:1500));if(pn(s),Ae){const r=Ao(s);mt(r.maxNetworkLogs),dt(r.maxConsoleLogs),ht(r.maxAnalyticsEvents),at(r.maxCrashRecords),as(r.maxPushRecords)}}}).catch(()=>{})},[Ae]);const gn=async()=>{await Xn(),Ut(!1),_o(!1),qt(90),Ht("slide"),pt({apis:!0,logs:!0,perf:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,media:!0}),Tt("apis"),cs(!0);const t=Ao(us);at(t.maxCrashRecords),mt(t.maxNetworkLogs),dt(t.maxConsoleLogs),ht(t.maxAnalyticsEvents),as(t.maxPushRecords),is({info:!0,warn:!0,error:!0}),fs(!0),ds(1),ps(30),ms(1),hs(0),gs(120),Ss("png"),ys("none"),Cs(!0),Ls(!0),Mt(!0),ws(!1),Rs(!0),xs(.3),ls(new Set(["user-log"])),Jt([...Is]),Nn.alert("Settings Reset","All settings have been reset to default values.")},Or=C(!1);l(()=>{let t=!1;return Jn().then(e=>{if(!t){if(e.language&&In(e.language),e.isDark!=null&&(Ut(e.isDark),_o(e.isDark)),e.modalHeightPercent!=null&&qt(e.modalHeightPercent),e.modalAnimationType&&Ht(e.modalAnimationType),e.tabVisibility&&pt(s=>({...s,...e.tabVisibility,apis:!0})),e.defaultTab&&Tt(e.defaultTab),e.isAutoRamLimitEnabled!=null&&cs(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&&ns({...ko,...e.crashIgnoredTypes}),e.crashModalTriggerPolicy!=null&&Lr(e.crashModalTriggerPolicy),e.showConsoleLevels&&is(e.showConsoleLevels),e.reduxAutoRefresh!=null&&fs(e.reduxAutoRefresh),e.reduxExpandDepth!=null&&ds(e.reduxExpandDepth),e.captureFps!=null&&ps(e.captureFps),e.captureScale!=null&&ms(e.captureScale),e.captureBitrate!=null&&hs(e.captureBitrate),e.captureMaxDurationSeconds!=null&&gs(e.captureMaxDurationSeconds),e.captureImageFormat&&Ss(e.captureImageFormat),e.captureAudioMode&&ys(e.captureAudioMode),e.captureAutoHide!=null&&Cs(e.captureAutoHide),e.captureAutoGif!=null&&Ls(e.captureAutoGif),e.captureWidgetEnabled!=null&&Mt(e.captureWidgetEnabled),e.peekOpacity!=null&&xs(Math.max(.05,Math.min(1,e.peekOpacity))),e.showDuplicateLogs!=null&&ws(e.showDuplicateLogs),e.showUpdateToast!=null&&Rs(e.showUpdateToast),e.isGroupByPageEnabled!=null&&jt(e.isGroupByPageEnabled),Array.isArray(e.hiddenUrlPatterns)){const s=Array.from(new Set([...Is,...e.hiddenUrlPatterns]));Jt(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};ae(r[s]?s:"apis")}Or.current=!0}}),()=>{t=!0}},[]),l(()=>{let t=!0;if(je)return Va(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(()=>{Or.current&&$n({isDark:Je,language:Dn(),modalHeightPercent:Xe,modalAnimationType:Ye,tabVisibility:E,defaultTab:K,maxNetworkLogs:O,maxConsoleLogs:be,maxAnalyticsEventsLimit:Re,maxCrashLogs:$,crashIgnoredTypes:Le,crashModalTriggerPolicy:xe,isAutoRamLimitEnabled:Ae,isGroupByPageEnabled:he,showConsoleLevels:Y,reduxAutoRefresh:Me,reduxExpandDepth:gt,showDuplicateLogs:ee,showUpdateToast:bs,captureFps:St,captureScale:yt,captureBitrate:Ct,captureMaxDurationSeconds:Lt,captureImageFormat:xt,captureAudioMode:wt,captureAutoHide:bt,captureAutoGif:Rt,captureWidgetEnabled:At,peekOpacity:Nt,hiddenUrlPatterns:re})},[Je,Xe,Ye,E,K,O,be,Re,$,Le,xe,Ae,he,Y,Me,gt,ee,St,yt,Ct,Lt,xt,wt,bt,Rt,At,Nt]);const[Oe,Sn]=o(null),_r=m(()=>{if(!Oe)return!1;const t=r=>r.replace(/^v/,"").split(".").map(n=>parseInt(n,10)||0),e=t(qa),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"&&Sn(e.version)}).catch(()=>{}),()=>{t=!0}},[]),l(()=>{ka(Me)},[Me]),l(()=>{u==="redux"&&!ks()&&ae("apis"),u==="analytics"&&!vs()&&ae("apis")},[u]);const Br=t=>{t!=="apis"&&(t==="redux"&&!ks()||t==="analytics"&&!vs()||pt(e=>{const s=!e[t],r={...e,[t]:s};return!s&&u===t&&(Un(),ae("apis")),!s&&K===t&&Tt("apis"),r}))},Vr=N(async(t,e="")=>{if(t==="apis"||t==="logs"||t==="analytics"||t==="crash"){const s=await Zn(t,0,100,e);s&&s.items&&s.items.length>0&&(t==="apis"?z(s.items):t==="logs"?ie(s.items):t==="analytics"?Ce(s.items):t==="crash"&&J(s.items))}},[]),Ur=N(t=>{t==="redux"&&!ks()||t==="analytics"&&!vs()||(zt(null),vt(null),rs(null),Qt(null),Xt(null),ce(null),we(null),ae(t),(t==="apis"&&x.length===0||t==="logs"&&H.length===0||t==="analytics"&&ye.length===0||t==="crash"&&le.length===0)&&Vr(t),Fo(t))},[x.length,H.length,ye.length,le.length,Vr]),[qr,vt]=o(null),[Ne,Hr]=o(""),[a,Wr]=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"}),Gr=m(()=>!!(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]),zr=N(()=>{Wr({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,yn]=o(!1),[Jr,Cn]=o(!1),[$r,Qr]=o(new Set),_e=C(new Set),[Et,As]=o(null),Xr=Mn.useContext(En)!==void 0,P=C({path:"",params:null});l(()=>(To(()=>P.current),Io(()=>P.current),()=>{To(null),Io(null)}),[]),l(()=>{if(Et){const t=bo(Et);t?.path&&(P.current=t)}},[Et]),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&&(P.current={path:s.name,params:s.params||null});const r=v.getRootState();if(r){As(r);const n=bo(r);n?.path&&(P.current=n)}}}catch{}};t();const e=typeof v.addListener=="function"?v.addListener("state",()=>{t()}):null;return()=>{e&&e()}},[v]);const b=C(new Map),ue=C(new Set),[Yr,Zr]=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,T=C(new f.ValueXY({x:0,y:0})).current,Pt=C({x:0,y:0});l(()=>{const t=T.x.addListener(s=>Pt.current.x=s.value),e=T.y.addListener(s=>Pt.current.y=s.value);return()=>{T.x.removeListener(t),T.y.removeListener(e)}},[T]);const kt=C(!1),Kr=C(Tn.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(t,e)=>Math.abs(e.dx)>4||Math.abs(e.dy)>4,onPanResponderGrant:()=>{kt.current=!0,T.setOffset({x:Pt.current.x,y:Pt.current.y}),T.setValue({x:0,y:0})},onPanResponderMove:f.event([null,{dx:T.x,dy:T.y}],{useNativeDriver:!1}),onPanResponderRelease:()=>{T.flattenOffset(),setTimeout(()=>{kt.current=!1},50)},onPanResponderTerminate:()=>{T.flattenOffset(),kt.current=!1}})).current,eo=N(()=>{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"&&vn.setLayoutAnimationEnabledExperimental?.(!0)},[]),l(()=>{if(h)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,h]),l(()=>{if(h)return;const t=f.loop(f.sequence([f.timing(qe,{toValue:1,duration:3200,easing:xo.inOut(xo.ease),useNativeDriver:!1}),f.delay(3500),f.timing(qe,{toValue:0,duration:0,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[qe,h]),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 Ln=m(()=>Ba(),[]),te=(Ns.OS==="ios"||Ns.OS==="android")&&Ln;l(()=>{te&&ve().catch(()=>{})},[te,h,Gt]),l(()=>{if(!te)return;const t=Fa(()=>{ve().catch(()=>{}),j(!0)});return()=>{t()}},[te]),l(()=>{if(!te)return;const t=Oa(()=>{j(e=>{const s=!e;return s&&ve().catch(()=>{}),s})});return()=>{t()}},[te]);const to=C(h);l(()=>{if(to.current=h,h){Na("InspectorModal");const t=K==="apis"||E?.[K]?K:"apis";ae(t),Fo(t);const e=ot.current.length>0?ot.current:No();if(e.length>0){const i=Bt(e),d=new Set(i.map(L=>L.id));ue.current=d,i.forEach(L=>{if(!b.current.has(L.id)){const R=L?.routeInfo||P.current;b.current.set(L.id,R)}}),z(i)}ts.current.length>0&&ie(ts.current),ss.current.length>0&&Ce(ss.current);const s=Es();s&&($e(typeof s=="object"?{...s}:s),Qe({...Ps()}));const r=Vt();r.length>0&&J(r);const n=requestAnimationFrame(()=>{Hs(!0)});return()=>{cancelAnimationFrame(n)}}else Hs(!1),Ee(new Set),fe(new Set)},[h]),l(()=>{Kn(),ra(),va(),aa(),Sa(),_a().catch(()=>{});const t=zn(),e=No();if(e.length>0){ot.current=e;const c=Bt(e);ue.current=new Set(c.map(k=>k.id)),z(c)}const s=to,r=ia(c=>{if(c.message==="__CLEARED__"){J([]),ce(null),ke(null);return}const k=Vt();k.length>0&&Ge("crash",JSON.stringify(k[0])),J(k),c.crashRecord&&c.shouldShowModal!==!1&&ke(c.crashRecord)}),n=Vt();n.length>0&&(n.forEach(c=>Ge("crash",JSON.stringify(c))),J(n));let i,d=!0;const L=ea(c=>{if(ot.current=c,c.length>0&&Ge("apis",JSON.stringify(c[0])),!s.current)return;clearTimeout(i);const k=()=>{const M=Bt(c),S=new Set(M.map(q=>q.id)),y=new Set;S.forEach(q=>{ue.current.has(q)||y.add(q)}),ue.current=S,y.size>0&&(y.forEach(q=>{if(!b.current.has(q)){const Rn=M.find(An=>An.id===q)?.routeInfo||P.current;b.current.set(q,Rn)}}),Zr(y),setTimeout(()=>Zr(new Set),1200)),z(M)};if(d){d=!1;const M=Bt(c),S=new Set(M.map(y=>y.id));ue.current=S,M.forEach(y=>{if(!b.current.has(y.id)){const q=y?.routeInfo||P.current;b.current.set(y.id,q)}}),z(M)}else i=setTimeout(k,250)});let R,Ft=!0;const Ot=Ta(c=>{if(ss.current=c,c.length>0&&Ge("analytics",JSON.stringify(c[0])),!s.current)return;clearTimeout(R);const k=()=>{const M=new Set(c.map(y=>y.id)),S=new Set;M.forEach(y=>{_e.current.has(y)||S.add(y)}),_e.current=M,S.size>0&&(S.forEach(y=>{b.current.has(y+1e6)||b.current.set(y+1e6,P.current)}),Qr(S),setTimeout(()=>Qr(new Set),1200)),Ce(c)};if(Ft){Ft=!1;const M=new Set(c.map(S=>S.id));_e.current=M,Ce(c)}else R=setTimeout(k,200)});let We,_=!0;const Ms=oa(c=>{ts.current=c,c.length>0&&Ge("logs",JSON.stringify(c[0])),s.current&&(clearTimeout(We),_?(_=!1,ie(c)):We=setTimeout(()=>{ie(c)},200))}),se=Es();se&&($e(typeof se=="object"?{...se}:se),Qe({...Ps()}));const _t=Pa(()=>{if(!s.current)return;const c=Es();$e(c&&typeof c=="object"?{...c}:c),Qe({...Ps()})});return()=>{L(),clearTimeout(i),Ot(),clearTimeout(R),Ms(),clearTimeout(We),_t(),r(),t()}},[]),l(()=>{sa(O)},[O]),l(()=>{Po($)},[$]),l(()=>{sr(!0),or(!0),ar(!1),lr(!1),$t("")},[g]);const A=m(()=>{let t=x.filter(e=>{if(re&&re.length>0&&jn(e.url,re))return!1;if(F&&F!=="all"){if(F==="errors"){if(!(e.status===0||e.status==null||typeof e.status=="number"&&e.status>=400))return!1}else if(F==="success"){if(!(typeof e.status=="number"&&e.status>=200&&e.status<400))return!1}else if(F==="slow"){if((e.duration||0)<500)return!1}else if(F==="graphql"){if(!((e.url||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("apollo")))return!1}else if(e.method?.toUpperCase()!==F.toUpperCase())return!1}if(oe.size>0&&!oe.has("all")){const s=typeof e.status=="number"?e.status:parseInt(String(e.status),10);if(![...oe].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 d=parseInt(String(n),10);if(!isNaN(d)&&d>=100)return s===d}return String(e.status).startsWith(String(n)[0])}))return!1}if(ne.size>0&&!ne.has("all")&&![...ne].some(r=>String(r).toUpperCase()==="ALL"?!0:e.method?.toUpperCase()===String(r).toUpperCase()))return!1;if(ge!=="all"){const s=e.duration||0;if(ge==="fast"&&s>=200||ge==="normal"&&(s<200||s>500)||ge==="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(w&&w.trim().length>0){const s=b.current.get(e.id)?.path||"";if(!Wn(e,w,s,{scope:de,isRegex:pe,isCaseSensitive:me}))return!1}return!0});if(Se==="time_asc"||st==="oldest")t=[...t].reverse();else if(Se==="duration_desc")t=[...t].sort((e,s)=>(s.duration||0)-(e.duration||0));else if(Se==="duration_asc")t=[...t].sort((e,s)=>(e.duration||0)-(s.duration||0));else if(Se==="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(w&&w.trim().length>0){const e=new Map;for(const s of t){const r=b.current.get(s.id)?.path||"",n=Gn(s,w,r,{scope:de,isRegex:pe,isCaseSensitive:me});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(!ee){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,re,w,de,pe,me,F,oe,ne,ge,Pe,Se,st,ee]),so=m(()=>{const t=new Set;return x.forEach(e=>{e.method&&t.add(e.method.toUpperCase())}),["ALL",...Array.from(t)]},[x]),ro=N((t,e)=>{Kt(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=m(()=>{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(A.length>0){const t=A[0],e=b.current.get(t.id)||t?.routeInfo;return Ts(t,e)}return""},[A,Et]),oo=N(t=>{et(e=>{const s=new Map(e),n=!!(w&&w.trim().length>0)?!0:t===It,i=s.has(t)?s.get(t):n;return s.set(t,!i),s})},[It,w]);l(()=>{tt({}),et(new Map)},[w,de,pe,me,F,oe,ne,O]);const no=N((t,e=10)=>{tt(s=>({...s,[t]:(s[t]||O||50)+e}))},[O]),ao=m(()=>{const t=!!(w&&w.trim().length>0);if(!he||t)return A.map((n,i)=>{const d=b.current.get(n.id)||n?.routeInfo,L=Ts(n,d);return{type:"log",id:`flat-log-${n.id}`,log:n,isLast:i===A.length-1,color:Ro(L)}});const e=[],s=new Map;for(let n=0;n<A.length;n++){const i=A[n],d=b.current.get(i.id)||i?.routeInfo,L=Ts(i,d);let R=s.get(L);R||(R={pageName:L,color:Ro(L),logs:[]},s.set(L,R)),R.logs.push(i)}let r=0;return s.forEach(n=>{let i=0,d=0,L=0;n.logs.forEach(_=>{_.status==null?L++:_.status===0||_.status>=400?d++:i++});const R=Zs[n.pageName]||new Set(["success","failed","loading"]),Ft=t?!0:n.pageName===It,Ot=es.has(n.pageName)?!es.get(n.pageName):!Ft,We=n.logs[0]?.startTime||0;if(e.push({type:"header",id:`hdr-${n.pageName}`,pageName:n.pageName,color:n.color,stats:{success:i,failed:d,loading:L},timestamp:We,activeFilters:R,isCollapsed:Ot,isFirst:r===0}),r++,!Ot){const _=n.logs.filter(S=>S.status==null?R.has("loading"):S.status===0||S.status>=400?R.has("failed"):R.has("success")),Ms=O||50,se=Ks[n.pageName]||Ms,_t=_.slice(0,se),c=_.length>se;_t.forEach(S=>{e.push({type:"log",id:`log-${S.id}`,log:S,isLast:!1,color:n.color})});const k=Math.max(0,_.length-se),M=Math.min(k||10,10);e.push({type:"loadMore",id:`loadmore-${n.pageName}`,pageName:n.pageName,color:n.color,remainingCount:k,totalCount:_.length,loadedCount:_t.length,loadMoreStep:M,hasMore:c})}}),e},[he,A,x,Zs,es,It,Ks,O,w]),{minStart:io,totalRange:lo}=m(()=>{if(A.length===0)return{minStart:0,totalRange:0};const t=Math.min(...A.map(s=>s.startTime)),e=Math.max(...A.map(s=>s.startTime+(s.duration||10)));return{minStart:t,totalRange:e-t}},[A]),Dt=m(()=>{if(!g)return null;const t=x.findIndex(e=>e.id===g.id);if(t===-1)return null;for(let e=t+1;e<x.length;e++){const s=x[e];if(s.url===g.url&&s.method===g.method)return s}return null},[g,x]),co=Dt?Dt.request:null,uo=Dt?Dt.response:null,fo=m(()=>{let t=ye;if(Ne&&Ne.trim().length>0){const r=Ne.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(d=>i.includes(d))})}if(a.categories.size>0&&!a.categories.has("all")&&(t=t.filter(r=>{const n=Hn(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,Re)},[ye,Ne,a,Re]),po=m(()=>{let t=Z;if(U.size>0&&!U.has("all")&&(t=t.filter(e=>!!(U.has("user-log")&&e.sourceMethod==="log"||U.has("info")&&(e.sourceMethod==="info"||e.type==="info"&&e.sourceMethod!=="log")||U.has("warn")&&(e.type==="warn"||e.sourceMethod==="warn")||U.has("error")&&(e.type==="error"||e.sourceMethod==="error")||U.has("analytics")&&e.message?.toLowerCase().includes("[analytics error]")))),V&&V.trim().length>0){const e=V.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),!ee){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},[Z,U,V,rt,ee]),mo=m(()=>{let t=Z;if(V&&V.trim().length>0){const s=V.trim().toLowerCase().split(/\s+/).filter(Boolean);t=Z.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=Z.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}`}},[Z,V]),ho=N(()=>{j(!1),Wt(!1),setTimeout(()=>{zt(null),vt(null),rs(null),Qt(null),Xt(null),ce(null),we(null)},300)},[]);function xn(){Mo(),z([]),Ee(new Set),Kt({}),et(new Map),tt({}),Yt(new Set),Zt(new Set),Gs(""),ue.current=new Set,b.current=new Map,Oo(),Ce([]),Hr(""),_e.current=new Set,vo(),ie([]),fe(new Set),ls(new Set(["all"])),vr("")}function go(){if(u==="logs"){Ke.size>0?(ie(t=>t.filter(e=>!Ke.has(e.id))),fe(new Set)):D({visible:!0,title:p("console.clearLogsTitle","Clear Console Logs"),message:p("console.clearLogsMsg","Are you sure you want to clear all console logs?"),confirmText:p("common.clearAll","Clear All"),cancelText:p("common.cancel","Cancel"),onConfirm:()=>{D(t=>({...t,visible:!1})),vo(),ie([]),fe(new Set)}});return}if(u==="analytics"){D({visible:!0,title:p("analytics.clearEventsTitle","Clear Analytics"),message:p("analytics.clearEventsMsg","Are you sure you want to clear all analytics events?"),confirmText:p("common.clearAll","Clear All"),cancelText:p("common.cancel","Cancel"),onConfirm:()=>{D(t=>({...t,visible:!1})),Oo(),Ce([]),vt(null),_e.current=new Set}});return}if(u==="redux"){D({visible:!0,title:p("redux.clearTimelineTitle","Clear Redux Timeline"),message:p("redux.clearTimelineMsg","Are you sure you want to clear the dispatched action history?"),confirmText:p("common.clearAll","Clear All"),cancelText:p("common.cancel","Cancel"),onConfirm:()=>{D(t=>({...t,visible:!1})),Ia(),Qe({})}});return}if(u==="crash"){D({visible:!0,title:p("crash.clearTitle","Clear Crash Records"),message:p("crash.clearMessage","Are you sure you want to clear all intercepted crash records?"),confirmText:p("crash.clearConfirm","Clear All"),cancelText:p("crash.clearCancel","Cancel"),onConfirm:()=>{D(t=>({...t,visible:!1})),Eo(),J([]),ce(null)}});return}Ze.size>0?(z(t=>t.filter(e=>!Ze.has(e.id))),Ee(new Set)):D({visible:!0,title:p("network.clearLogsTitle","Clear Network Logs"),message:p("network.clearLogsMsg","Are you sure you want to clear all network logs?"),confirmText:p("common.clearAll","Clear All"),cancelText:p("common.cancel","Cancel"),onConfirm:()=>{D(t=>({...t,visible:!1})),wn()}})}function wn(){Mo(),z([]),Ee(new Set),Kt({}),et(new Map),tt({}),Yt(new Set),Zt(new Set),ue.current=new Set,b.current=new Map}const So=m(()=>{if(!g)return"";try{const e=new URL(g.url).pathname.split("/").filter(Boolean);return e.length>0?`/${e.slice(-2).join("/")}`:"/"}catch{const t=g.url.split("/").filter(Boolean);return t.length>0?`/${t.slice(-2).join("/")}`:g.url}},[g]),yo=m(()=>g?qn(g.url):"",[g]),Co=N(t=>{Ee(e=>{const s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},[]),Lo=N(t=>{fe(e=>{const s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},[]),bn=m(()=>({visible:h,setVisible:j,closeModal:ho,isMinimized:Vs,setIsMinimized:Wt,minimizeInspector:Uo,isDismissed:Gt,setIsDismissed:Us,dismissInspector:qo,isReady:qs,enabled:I,isEnabled:I,appIcon:Fs,environment:Os,modalHeightPercent:Xe,setModalHeightPercent:qt,modalAnimationType:Ye,setModalAnimationType:Ht,hasNavigationContext:Xr,setNavState:As,activeTab:u,switchActiveTab:Ur,tabVisibility:E,toggleTabVisibility:Br,lastReadApisCount:dr,lastReadLogsCount:ur,mediaCount:gr,refreshMediaCount:nt,selected:g,setSelected:zt,selectedEvent:qr,setSelectedEvent:vt,selectedLog:cr,setSelectedLog:rs,showHeaderInfo:er,setShowHeaderInfo:Yo,settingsPage:Er,setSettingsPage:cn,isAboutOpen:Pr,setIsAboutOpen:un,isSupportOpen:kr,setIsSupportOpen:fn,updateAvailable:_r,latestNpmVersion:Oe,clearAnim:He,activePulseAnim:Ve,unreadPulseAnim:Ue,runClearAllWithAnimation:eo,confirmModal:Ws,setConfirmModal:D,useNativeFab:te,fabPan:T,fabPanResponder:Kr,fabDraggedRef:kt,pulseAnim:Be,fabShineAnim:qe,logs:x,filteredLogs:A,groupedData:ao,search:w,setSearch:Gs,searchScope:de,setSearchScope:Ho,isRegexSearch:pe,setIsRegexSearch:Wo,isCaseSensitive:me,setIsCaseSensitive:Go,quickFilter:F,setQuickFilter:zo,statusFilters:oe,setStatusFilters:Yt,methodFilters:ne,setMethodFilters:Zt,latencyFilter:ge,setLatencyFilter:$o,protocolFilter:Pe,setProtocolFilter:Qo,networkSortBy:Se,setNetworkSortBy:Xo,availableMethods:so,sortOrder:st,setSortOrder:Zo,selectedLogs:Ze,toggleSelect:Co,minStart:io,totalRange:lo,newLogIds:Yr,toggleSectionFilter:ro,toggleSectionCollapse:oo,loadMoreSection:no,handleDelete:go,isGroupByPageEnabled:he,setIsGroupByPageEnabled:jt,hiddenUrlPatterns:re,setHiddenUrlPatterns:Jt,detailTitle:So,detailDisplayUrl:yo,apiDetailActiveTab:Xs,setApiDetailActiveTab:Ys,detailSearch:zs,setDetailSearch:$t,reqExpanded:tr,setReqExpanded:sr,resExpanded:rr,setResExpanded:or,showReqDiff:nr,setShowReqDiff:ar,showResDiff:ir,setShowResDiff:lr,prevRequestData:co,prevResponseData:uo,logRouteMapRef:b,consoleLogs:H,visibleConsoleLogs:Z,filteredConsoleLogs:po,logSearch:V,setLogSearch:vr,logFilters:U,setLogFilters:ls,logCounts:mo,logSortOrder:rt,setLogSortOrder:Ko,selectedConsoleLogs:Ke,setSelectedConsoleLogs:fe,toggleSelectConsoleLog:Lo,analyticsEvents:ye,filteredAnalyticsEvents:fo,analyticsSearch:Ne,setAnalyticsSearch:Hr,analyticsFilters:a,setAnalyticsFilters:Wr,isAnalyticsFilterApplied:Gr,resetAnalyticsFilters:zr,newEventIds:$r,isAnalyticsLayoutReady:jr,setIsAnalyticsLayoutReady:yn,analyticsHeaderExpanded:Jr,setAnalyticsHeaderExpanded:Cn,reduxState:_s,setReduxState:$e,reduxLastActionMap:Bs,reduxSearch:js,setReduxSearch:jo,selectedReduxSlice:Js,setSelectedReduxSlice:Qt,selectedReduxAction:$s,setSelectedReduxAction:Xt,reduxActiveSubTab:Qs,setReduxActiveSubTab:Jo,crashRecords:le,setCrashRecords:J,selectedCrash:Cr,setSelectedCrash:ce,lastReadCrashesCount:mr,maxCrashLogs:$,setMaxCrashLogs:at,clearAllCrashes:()=>{Eo(),J([]),ce(null)},crashIgnoredTypes:Le,setCrashIgnoredTypes:ns,crashModalTriggerPolicy:xe,setCrashModalTriggerPolicyState:Lr,applyCrashPolicyPreset:xr,pushRecords:Q,filteredPushRecords:Mr,selectedPush:br,setSelectedPush:Rr,pushSearch:Ie,setPushSearch:tn,pushQuickFilter:W,setPushQuickFilter:sn,lastReadPushCount:it,unreadPushCount:Ar,maxPushLogs:lt,setMaxPushLogs:as,clearAllPushLogs:()=>{ma(),wr([]),Rr(null)},simulatePush:(t,e)=>{ga(t,e)},socketRecords:X,filteredSocketRecords:Tr,selectedSocket:De,setSelectedSocket:we,socketSearch:Fe,setSocketSearch:on,socketQuickFilter:B,setSocketQuickFilter:nn,lastReadSocketCount:ut,unreadSocketCount:Nr,maxSocketLogs:ft,setMaxSocketLogs:ln,clearAllSocketLogs:()=>{ya(),ct([]),we(null)},deleteSocketRecord:t=>{Ra(t),ct(e=>e.filter(s=>s.id!==t)),De?.id===t&&we(null)},deleteMultipleSocketRecords:t=>{Aa(t);const e=new Set(t);ct(s=>s.filter(r=>!e.has(r.id))),De&&e.has(De.id)&&we(null)},simulateSocket:(t,e)=>{ba(t,e)},settingsActiveSubTab:Ir,setSettingsActiveSubTab:dn,defaultTab:K,setDefaultTab:Tt,isDark:Je,setIsDark:Ut,showDuplicateLogs:ee,setShowDuplicateLogs:ws,showUpdateToast:bs,setShowUpdateToast:Rs,showConsoleLevels:Y,setShowConsoleLevels:is,resetToDefaults:gn,storage:G,maxNetworkLogs:O,setMaxNetworkLogs:mt,maxConsoleLogs:be,setMaxConsoleLogs:dt,maxAnalyticsEventsLimit:Re,setMaxAnalyticsEventsLimit:ht,isAutoRamLimitEnabled:Ae,setIsAutoRamLimitEnabled:cs,deviceFreeRamMb:us,reduxAutoRefresh:Me,setReduxAutoRefreshState:fs,reduxExpandDepth:gt,setReduxExpandDepth:ds,captureFps:St,setCaptureFps:ps,captureScale:yt,setCaptureScale:ms,captureBitrate:Ct,setCaptureBitrate:hs,captureMaxDurationSeconds:Lt,setCaptureMaxDurationSeconds:gs,captureImageFormat:xt,setCaptureImageFormat:Ss,captureAudioMode:wt,setCaptureAudioMode:ys,captureAutoHide:bt,setCaptureAutoHide:Cs,captureAutoGif:Rt,setCaptureAutoGif:Ls,captureWidgetEnabled:At,setCaptureWidgetEnabled:Mt,peekMode:Dr,setPeekMode:mn,peekOpacity:Nt,setPeekOpacity:xs,previewMediaItem:yr,setPreviewMediaItem:en,isUpdatePopupVisible:Fr,setIsUpdatePopupVisible:hn}),[h,ho,qs,I,Fs,Os,Xe,Ye,Xr,As,u,Ur,E,Br,dr,ur,gr,nt,yr,g,qr,cr,er,Er,Pr,kr,_r,Oe,He,Ve,Ue,eo,te,T,Kr,Be,qe,x,A,ao,w,de,pe,me,F,oe,ne,so,st,Ze,Co,io,lo,Yr,ro,oo,no,go,he,jt,re,So,yo,Xs,zs,tr,rr,nr,ir,co,uo,H,Z,po,V,U,mo,rt,Ke,Lo,ye,fo,Ne,a,Gr,zr,$r,jr,Jr,_s,Bs,js,Js,$s,Qs,le,Cr,mr,$,Le,xe,xr,Q,Mr,br,Ie,W,it,Ar,lt,X,Tr,De,Fe,B,ut,Nr,ft,Ir,K,Je,ee,bs,Y,G,O,be,Re,Ae,us,Me,gt,St,yt,Ct,Lt,xt,wt,bt,Rt,At,Dr,Nt,Vs,Gt,Ws,Fr]);return<Vn.Provider value={bn}>
|
|
2
|
-
<
|
|
3
|
-
<
|
|
4
|
-
</
|
|
5
|
-
<
|
|
1
|
+
import Rn,{useEffect as l,useMemo as m,useRef as C,useState as o,useCallback as N}from"react";import{Alert as An,Animated as f,Easing as Co,PanResponder as Mn,Platform as As,UIManager as Nn,LogBox as xo}from"react-native";import{NavigationContext as Tn}from"@react-navigation/native";import{I18nextProvider as En,i18n as Pn,setLanguage as kn,getLanguage as In,useTranslation as Dn}from"./i18n";import Fn from"./components/ErrorBoundary";import On from"./components/Inspector/MainScreen";import _n from"./components/Inspector/GlobalCrashScreenModal";import{InspectorContext as Bn,animateNextLayout as Vn}from"./components/Inspector/InspectorContext";import{formatDisplayUrl as Un,getNavigationInfo as Lo,getLogPageName as Ms,deduplicateLogs as Ft,getDomainColor as wo,getEventCategory as qn,matchNetworkLogQuery as Hn,scoreNetworkLogQuery as Wn,setupMemoryWarningHandler as Gn,isUrlHidden as zn}from"./helpers";import{loadSettings as jn,saveSettings as Jn,setCustomStorage as $n,clearPersistedSettings as Qn,calculateRamBasedLimits as bo}from"./helpers/settingsStore";import{getNativeSystemMetrics as Xn,pushNativeLogRecord as We,fetchNativeCachedPage as Yn}from"./native/NativeInspector";import{setupNetworkLogger as Zn,clearNetworkLogs as Ro,subscribeNetworkLogs as Kn,getNetworkLogs as Ao,setNetworkModuleEnabled as ea,setMaxNetworkLogsLimit as ta,setRouteInfoProvider as Mo}from"./customHooks/networkLogger";import{setupConsoleLogger as sa,clearConsoleLogs as No,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 To,setMaxCrashLogsLimit as vo,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 wa,setSocketRouteInfoProvider as Po,deleteSocketRecord as ba,deleteMultipleSocketRecords as Ra}from"./customHooks/socketLogger";import{trackActiveTelemetryHeartbeat as Aa,setTelemetryEnabled as ko,trackInspectorTabView as Io,trackInspectorScreenView as Ma}from"./helpers/telemetry";import{subscribeAnalyticsEvents as Na,clearAnalyticsEvents as Do,autoSetupAnalyticsLogger as Ta,isAnalyticsConnected as Ns,setAnalyticsModuleEnabled as va}from"./customHooks/analyticsLogger";import{getReduxState as Ts,subscribeReduxState as Ea,setReduxAutoRefresh as Pa,getLastActionForReducer as vs,clearActionHistory as ka,isReduxConnected as Es,setReduxModuleEnabled as Ia}from"./customHooks/reduxLogger";import{hideNativeFloatingButton as Te,subscribeNativeFloatingButtonPress as Da,subscribeNativeDeviceShake as Fa,enableNativeCrashProtection as Oa,isNativeModuleAvailable as _a}from"./native/NativeInspector";import{fetchRemoteConfigSettings as Ba}from"./helpers/remoteConfig";import{ScreenCapture as Va}from"./capture";import{LIB_VERSION as Ua,DEFAULT_HIDDEN_URL_PATTERNS as Ps}from"./constants";import{toggleGlobalTheme as Fo}from"./styles";const Ha=({enabled:I=!0,storage:G,navigationRef:v,appIcon:Is,environment:Ds,initialVisible:Oo=!1,visible:Ge,remoteConfig:ze=!1,captureWidgetEnabled:_o})=>{$n(G||null);const{t:p}=Dn(),[je,_t]=o(!1),[Fs,Je]=o(null),[Os,$e]=o({}),[Qe,Bt]=o(90),[Xe,Vt]=o("slide"),[L,z]=o([]),[h,j]=o(Ge??Oo??!1),[_s,Ut]=o(!1),[qt,Bs]=o(!1),Bo=N(()=>{Ut(!0),j(!1)},[]),Vo=N(()=>{Bs(!0),j(!1),Te().catch(()=>{})},[]);l(()=>{Ge!==void 0&&j(Ge)},[Ge]);const[Vs,Us]=o(!1),[g,Ht]=o(null),[Ye,ve]=o(new Set),[Ze,ue]=o(new Set),[qs,D]=o({visible:!1,title:"",message:"",onConfirm:()=>{}}),[w,Hs]=o(""),[fe,Uo]=o("all"),[de,qo]=o(!1),[pe,Ho]=o(!1),[me,Wt]=o(!0),[se,Gt]=o(()=>[...Ps]),[F,Wo]=o("all"),[Ws,zt]=o(""),[Gs,Go]=o(""),[zs,jt]=o(null),[js,Jt]=o(null),[Js,zo]=o("state"),[$s,Qs]=o("response");l(()=>(xo.ignoreAllLogs(I),()=>{xo.ignoreAllLogs(!1)}),[I]),l(()=>{g&&(Qs("response"),zt(""))},[g]);const[re,$t]=o(new Set),[oe,Qt]=o(new Set),[he,jo]=o("all"),[Ee,Jo]=o("all"),[ge,$o]=o("time_desc"),[Xs,Xt]=o({}),[Yt,Ke]=o(()=>new Map),[Ys,et]=o({}),[Zs,Qo]=o(!0),[tt,Xo]=o("newest"),[st,Yo]=o("newest"),[Ks,er]=o(!0),[tr,sr]=o(!0),[rr,or]=o(!1),[nr,ar]=o(!1),[u,ne]=o("apis"),[Se,ye]=o([]),[H,ae]=o([]),rt=C([]),Zt=C([]),Kt=C([]),[ir,es]=o(null),[lr,cr]=o(0),[ur,fr]=o(0),[dr,pr]=o(0),[mr,hr]=o(0),[gr,Zo]=o(null),ot=N(async()=>{try{const t=await Va.getMediaList(),e=t?t.length:0;return hr(e),e}catch{return hr(0),0}},[]);l(()=>{h&&ot()},[h,ot]);const[ie,J]=o(()=>Ot()),[Sr,le]=o(null),[ts,Pe]=o(null),[$,nt]=o(50),[Ce,ss]=o(()=>({...Eo})),[xe,yr]=o("fatal_only");l(()=>{vo($)},[$]),l(()=>{la(Ce)},[Ce]),l(()=>{ca(xe)},[xe]);const Cr=N(t=>{const e=ua(t);ss(e)},[]);l(()=>{h&&(u==="apis"&&fr(L.length),u==="logs"&&cr(H.length),u==="crash"&&pr(ie.length))},[h]),l(()=>{u==="apis"&&fr(L.length)},[u,L.length]),l(()=>{u==="logs"&&cr(H.length)},[u,H.length]),l(()=>{u==="crash"&&pr(ie.length)},[u,ie.length]);const[Q,xr]=o(()=>da()),[Lr,wr]=o(null),[ke,Ko]=o(""),[W,en]=o("all"),[at,tn]=o(0),[it,rs]=o(50);l(()=>{ma(it)},[it]),l(()=>fa(e=>{xr(e)}),[]);const br=m(()=>u==="push"?0:Math.max(0,Q.length-at),[u,Q.length,at]);l(()=>{h&&u==="push"&&tn(Q.length)},[h,u,Q.length]);const Rr=m(()=>{let t=Q;if(W!=="all"){if(W==="foreground")t=t.filter(e=>(e.appState||"").toLowerCase()==="foreground");else if(W==="background")t=t.filter(e=>(e.appState||"").toLowerCase()==="background");else if(W==="opened")t=t.filter(e=>e.action==="opened");else if(W.startsWith("source:")){const e=W.replace("source:","").toLowerCase();t=t.filter(s=>(s.source||"").toLowerCase()===e)}}if(ke.trim()){const e=ke.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,W,ke]),[X,lt]=o(()=>Ca()),[Ie,Le]=o(null),[De,sn]=o(""),[B,rn]=o("all"),[ct,on]=o(0),[ut,nn]=o(50);l(()=>{La(ut)},[ut]),l(()=>ya(e=>{lt(e)}),[]);const Ar=m(()=>u==="socket"?0:Math.max(0,X.length-ct),[u,X.length,ct]);l(()=>{h&&u==="socket"&&on(X.length)},[h,u,X.length]);const Mr=m(()=>{let t=X;if(B!=="all"&&(B==="open"?t=t.filter(e=>(e.status||"open").toLowerCase()==="open"):B==="closed"?t=t.filter(e=>(e.status||"").toLowerCase()==="closed"):B==="error"?t=t.filter(e=>(e.status||"").toLowerCase()==="error"):B==="sio"?t=t.filter(e=>e.client==="socket.io"||e.url.includes("/socket.io")):B==="wss"?t=t.filter(e=>e.url.startsWith("wss://")):B==="ws"&&(t=t.filter(e=>e.url.startsWith("ws://")))),De.trim()){const e=De.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},[X,B,De]),[we,ft]=o(300),[Y,os]=o({info:!0,warn:!0,error:!0}),Z=m(()=>H.filter(e=>{const s=e.type;if(s==="info"&&!Y?.info||s==="warn"&&!Y?.warn||s==="error"&&!Y?.error)return!1;const r=e.message||"";return![...Ne&&Ne.info||[],...Ne&&Ne.warn||[],...Ne&&Ne.error||[]].filter(d=>typeof d=="string"&&d.trim().length>0).some(d=>r.toLowerCase().trim().startsWith(d.toLowerCase().trim())||r.toLowerCase().trim().includes(d.toLowerCase().trim()))}).slice(0,we),[H,Y,we]),[V,Nr]=o(""),[U,ns]=o(new Set(["user-log"])),[Tr,an]=o(null),[vr,ln]=o(!1),[Er,cn]=o(!1),[Pr,un]=o("module"),[E,dt]=o({apis:!0,logs:!0,perf:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,media:!0}),[O,pt]=o(250),[be,mt]=o(150),[Re,as]=o(!0),[is,fn]=o(1800),[Ae,ls]=o(!0),[ht,cs]=o(1),[gt,us]=o(60),[St,fs]=o(.5),[yt,ds]=o(0),[Ct,ps]=o(120),[xt,ms]=o("png"),[Lt,hs]=o("none"),[wt,gs]=o(!0),[bt,Ss]=o(!0),[Rt,At]=o(_o??!0),[kr,dn]=o(!1),[Mt,ys]=o(.3),[K,Nt]=o("apis"),[Cs,xs]=o(!0),[Ir,pn]=o(!1);l(()=>{ea(!!E.apis),oa(!!E.logs),va(!!E.analytics),Ia(!!E.redux),ia(!!E.crash),xa(!!E.socket)},[E]),l(()=>{Xn().then(t=>{if(t){const e=t.totalPhysicalRamMb-t.residentRamMb,s=Math.max(200,Math.round(e>0?e:1500));if(fn(s),Re){const r=bo(s);pt(r.maxNetworkLogs),ft(r.maxConsoleLogs),mt(r.maxAnalyticsEvents),nt(r.maxCrashRecords),rs(r.maxPushRecords)}}}).catch(()=>{})},[Re]);const mn=async()=>{await Qn(),_t(!1),Fo(!1),Bt(90),Vt("slide"),dt({apis:!0,logs:!0,perf:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,media:!0}),Nt("apis"),as(!0);const t=bo(is);nt(t.maxCrashRecords),pt(t.maxNetworkLogs),ft(t.maxConsoleLogs),mt(t.maxAnalyticsEvents),rs(t.maxPushRecords),os({info:!0,warn:!0,error:!0}),ls(!0),cs(1),us(30),fs(1),ds(0),ps(120),ms("png"),hs("none"),gs(!0),Ss(!0),At(!0),xs(!0),ys(.3),ns(new Set(["user-log"])),Gt([...Ps]),An.alert("Settings Reset","All settings have been reset to default values.")},Dr=C(!1);l(()=>{let t=!1;return jn().then(e=>{if(!t){if(e.language&&kn(e.language),e.isDark!=null&&(_t(e.isDark),Fo(e.isDark)),e.modalHeightPercent!=null&&Bt(e.modalHeightPercent),e.modalAnimationType&&Vt(e.modalAnimationType),e.tabVisibility&&dt(s=>({...s,...e.tabVisibility,apis:!0})),e.defaultTab&&Nt(e.defaultTab),e.isAutoRamLimitEnabled!=null&&as(e.isAutoRamLimitEnabled),e.maxNetworkLogs!=null&&pt(e.maxNetworkLogs),e.maxConsoleLogs!=null&&ft(e.maxConsoleLogs),e.maxAnalyticsEventsLimit!=null&&mt(e.maxAnalyticsEventsLimit),e.maxCrashLogs!=null&&nt(e.maxCrashLogs),e.crashIgnoredTypes!=null&&ss({...Eo,...e.crashIgnoredTypes}),e.crashModalTriggerPolicy!=null&&yr(e.crashModalTriggerPolicy),e.showConsoleLevels&&os(e.showConsoleLevels),e.reduxAutoRefresh!=null&&ls(e.reduxAutoRefresh),e.reduxExpandDepth!=null&&cs(e.reduxExpandDepth),e.captureFps!=null&&us(e.captureFps),e.captureScale!=null&&fs(e.captureScale),e.captureBitrate!=null&&ds(e.captureBitrate),e.captureMaxDurationSeconds!=null&&ps(e.captureMaxDurationSeconds),e.captureImageFormat&&ms(e.captureImageFormat),e.captureAudioMode&&hs(e.captureAudioMode),e.captureAutoHide!=null&&gs(e.captureAutoHide),e.captureAutoGif!=null&&Ss(e.captureAutoGif),e.captureWidgetEnabled!=null&&At(e.captureWidgetEnabled),e.peekOpacity!=null&&ys(Math.max(.05,Math.min(1,e.peekOpacity))),e.showUpdateToast!=null&&xs(e.showUpdateToast),e.isGroupByPageEnabled!=null&&Wt(e.isGroupByPageEnabled),Array.isArray(e.hiddenUrlPatterns)){const s=Array.from(new Set([...Ps,...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};ne(r[s]?s:"apis")}Dr.current=!0}}),()=>{t=!0}},[]),l(()=>{let t=!0;if(ze)return Ba(typeof ze=="object"?ze:{}).then(e=>{!t||!e||(e.modules&&dt(s=>({...s,...e.modules,apis:e.modules?.apis??!0})),e.captureWidgetEnabled!==void 0&&At(e.captureWidgetEnabled))}).catch(()=>{}),()=>{t=!1}},[ze]),l(()=>{Dr.current&&Jn({isDark:je,language:In(),modalHeightPercent:Qe,modalAnimationType:Xe,tabVisibility:E,defaultTab:K,maxNetworkLogs:O,maxConsoleLogs:we,maxAnalyticsEventsLimit:be,maxCrashLogs:$,crashIgnoredTypes:Ce,crashModalTriggerPolicy:xe,isAutoRamLimitEnabled:Re,isGroupByPageEnabled:me,showConsoleLevels:Y,reduxAutoRefresh:Ae,reduxExpandDepth:ht,showUpdateToast:Cs,captureFps:gt,captureScale:St,captureBitrate:yt,captureMaxDurationSeconds:Ct,captureImageFormat:xt,captureAudioMode:Lt,captureAutoHide:wt,captureAutoGif:bt,captureWidgetEnabled:Rt,peekOpacity:Mt,hiddenUrlPatterns:se})},[je,Qe,Xe,E,K,O,we,be,$,Ce,xe,Re,me,Y,Ae,ht,gt,St,yt,Ct,xt,Lt,wt,bt,Rt,Mt]);const[Fe,hn]=o(null),Fr=m(()=>{if(!Fe)return!1;const t=r=>r.replace(/^v/,"").split(".").map(n=>parseInt(n,10)||0),e=t(Ua),s=t(Fe);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},[Fe]);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"&&hn(e.version)}).catch(()=>{}),()=>{t=!0}},[]),l(()=>{Pa(Ae)},[Ae]),l(()=>{u==="redux"&&!Es()&&ne("apis"),u==="analytics"&&!Ns()&&ne("apis")},[u]);const Or=t=>{t!=="apis"&&(t==="redux"&&!Es()||t==="analytics"&&!Ns()||dt(e=>{const s=!e[t],r={...e,[t]:s};return!s&&u===t&&(Vn(),ne("apis")),!s&&K===t&&Nt("apis"),r}))},_r=N(async(t,e="")=>{if(t==="apis"||t==="logs"||t==="analytics"||t==="crash"){const s=await Yn(t,0,100,e);s&&s.items&&s.items.length>0&&(t==="apis"?z(s.items):t==="logs"?ae(s.items):t==="analytics"?ye(s.items):t==="crash"&&J(s.items))}},[]),Br=N(t=>{t==="redux"&&!Es()||t==="analytics"&&!Ns()||(Ht(null),Tt(null),es(null),jt(null),Jt(null),le(null),Le(null),ne(t),(t==="apis"&&L.length===0||t==="logs"&&H.length===0||t==="analytics"&&Se.length===0||t==="crash"&&ie.length===0)&&_r(t),Io(t))},[L.length,H.length,Se.length,ie.length,_r]),[Vr,Tt]=o(null),[Me,Ur]=o(""),[a,qr]=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"}),Hr=m(()=>!!(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]),Wr=N(()=>{qr({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"})},[]),[Gr,gn]=o(!1),[zr,Sn]=o(!1),[jr,Jr]=o(new Set),Oe=C(new Set),[vt,Ls]=o(null),$r=Rn.useContext(Tn)!==void 0,P=C({path:"",params:null});l(()=>(Mo(()=>P.current),Po(()=>P.current),()=>{Mo(null),Po(null)}),[]),l(()=>{if(vt){const t=Lo(vt);t?.path&&(P.current=t)}},[vt]),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&&(P.current={path:s.name,params:s.params||null});const r=v.getRootState();if(r){Ls(r);const n=Lo(r);n?.path&&(P.current=n)}}}catch{}};t();const e=typeof v.addListener=="function"?v.addListener("state",()=>{t()}):null;return()=>{e&&e()}},[v]);const b=C(new Map),ce=C(new Set),[Qr,Xr]=o(new Set),_e=C(new f.Value(1)).current,Be=C(new f.Value(.4)).current,Ve=C(new f.Value(1)).current,Ue=C(new f.Value(0)).current,qe=C(new f.Value(0)).current,T=C(new f.ValueXY({x:0,y:0})).current,Et=C({x:0,y:0});l(()=>{const t=T.x.addListener(s=>Et.current.x=s.value),e=T.y.addListener(s=>Et.current.y=s.value);return()=>{T.x.removeListener(t),T.y.removeListener(e)}},[T]);const Pt=C(!1),Yr=C(Mn.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(t,e)=>Math.abs(e.dx)>4||Math.abs(e.dy)>4,onPanResponderGrant:()=>{Pt.current=!0,T.setOffset({x:Et.current.x,y:Et.current.y}),T.setValue({x:0,y:0})},onPanResponderMove:f.event([null,{dx:T.x,dy:T.y}],{useNativeDriver:!1}),onPanResponderRelease:()=>{T.flattenOffset(),setTimeout(()=>{Pt.current=!1},50)},onPanResponderTerminate:()=>{T.flattenOffset(),Pt.current=!1}})).current,Zr=N(()=>{f.sequence([f.timing(qe,{toValue:1,duration:320,useNativeDriver:!1}),f.timing(qe,{toValue:0,duration:0,useNativeDriver:!1})]).start(),Cn()},[qe]);l(()=>{As.OS==="android"&&Nn.setLayoutAnimationEnabledExperimental?.(!0)},[]),l(()=>{if(h)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,h]),l(()=>{if(h)return;const t=f.loop(f.sequence([f.timing(Ue,{toValue:1,duration:3200,easing:Co.inOut(Co.ease),useNativeDriver:!1}),f.delay(3500),f.timing(Ue,{toValue:0,duration:0,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Ue,h]),l(()=>{const t=f.loop(f.sequence([f.timing(Be,{toValue:1,duration:1200,useNativeDriver:!1}),f.timing(Be,{toValue:.4,duration:1200,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Be]),l(()=>{const t=f.loop(f.sequence([f.timing(Ve,{toValue:1.3,duration:800,useNativeDriver:!1}),f.timing(Ve,{toValue:.8,duration:800,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Ve]);const yn=m(()=>_a(),[]),ee=(As.OS==="ios"||As.OS==="android")&&yn;l(()=>{ee&&Te().catch(()=>{})},[ee,h,qt]),l(()=>{if(!ee)return;const t=Da(()=>{Te().catch(()=>{}),j(!0)});return()=>{t()}},[ee]),l(()=>{if(!ee)return;const t=Fa(()=>{j(e=>{const s=!e;return s&&Te().catch(()=>{}),s})});return()=>{t()}},[ee]);const Kr=C(h);l(()=>{if(Kr.current=h,h){Ma("InspectorModal");const t=K==="apis"||E?.[K]?K:"apis";ne(t),Io(t);const e=rt.current.length>0?rt.current:Ao();if(e.length>0){const i=Ft(e),d=new Set(i.map(x=>x.id));ce.current=d,i.forEach(x=>{if(!b.current.has(x.id)){const R=x?.routeInfo||P.current;b.current.set(x.id,R)}}),z(i)}Zt.current.length>0&&ae(Zt.current),Kt.current.length>0&&ye(Kt.current);const s=Ts();s&&(Je(typeof s=="object"?{...s}:s),$e({...vs()}));const r=Ot();r.length>0&&J(r);const n=requestAnimationFrame(()=>{Us(!0)});return()=>{cancelAnimationFrame(n)}}else Us(!1),ve(new Set),ue(new Set)},[h]),l(()=>{Zn(),sa(),Ta(),na(),ga(),Oa().catch(()=>{});const t=Gn(),e=Ao();if(e.length>0){rt.current=e;const c=Ft(e);ce.current=new Set(c.map(k=>k.id)),z(c)}const s=Kr,r=aa(c=>{if(c.message==="__CLEARED__"){J([]),le(null),Pe(null);return}const k=Ot();k.length>0&&We("crash",JSON.stringify(k[0])),J(k),c.crashRecord&&c.shouldShowModal!==!1&&Pe(c.crashRecord)}),n=Ot();n.length>0&&(n.forEach(c=>We("crash",JSON.stringify(c))),J(n));let i,d=!0;const x=Kn(c=>{if(rt.current=c,c.length>0&&We("apis",JSON.stringify(c[0])),!s.current)return;clearTimeout(i);const k=()=>{const M=Ft(c),S=new Set(M.map(q=>q.id)),y=new Set;S.forEach(q=>{ce.current.has(q)||y.add(q)}),ce.current=S,y.size>0&&(y.forEach(q=>{if(!b.current.has(q)){const wn=M.find(bn=>bn.id===q)?.routeInfo||P.current;b.current.set(q,wn)}}),Xr(y),setTimeout(()=>Xr(new Set),1200)),z(M)};if(d){d=!1;const M=Ft(c),S=new Set(M.map(y=>y.id));ce.current=S,M.forEach(y=>{if(!b.current.has(y.id)){const q=y?.routeInfo||P.current;b.current.set(y.id,q)}}),z(M)}else i=setTimeout(k,250)});let R,bs=!0;const It=Na(c=>{if(Kt.current=c,c.length>0&&We("analytics",JSON.stringify(c[0])),!s.current)return;clearTimeout(R);const k=()=>{const M=new Set(c.map(y=>y.id)),S=new Set;M.forEach(y=>{Oe.current.has(y)||S.add(y)}),Oe.current=M,S.size>0&&(S.forEach(y=>{b.current.has(y+1e6)||b.current.set(y+1e6,P.current)}),Jr(S),setTimeout(()=>Jr(new Set),1200)),ye(c)};if(bs){bs=!1;const M=new Set(c.map(S=>S.id));Oe.current=M,ye(c)}else R=setTimeout(k,200)});let He,_=!0;const Rs=ra(c=>{Zt.current=c,c.length>0&&We("logs",JSON.stringify(c[0])),s.current&&(clearTimeout(He),_?(_=!1,ae(c)):He=setTimeout(()=>{ae(c)},200))}),te=Ts();te&&(Je(typeof te=="object"?{...te}:te),$e({...vs()}));const Dt=Ea(()=>{if(!s.current)return;const c=Ts();Je(c&&typeof c=="object"?{...c}:c),$e({...vs()})});return()=>{x(),clearTimeout(i),It(),clearTimeout(R),Rs(),clearTimeout(He),Dt(),r(),t()}},[]),l(()=>{ta(O)},[O]),l(()=>{vo($)},[$]),l(()=>{er(!0),sr(!0),or(!1),ar(!1),zt("")},[g]);const A=m(()=>{let t=L.filter(e=>{if(se&&se.length>0&&zn(e.url,se))return!1;if(F&&F!=="all"){if(F==="errors"){if(!(e.status===0||e.status==null||typeof e.status=="number"&&e.status>=400))return!1}else if(F==="success"){if(!(typeof e.status=="number"&&e.status>=200&&e.status<400))return!1}else if(F==="slow"){if((e.duration||0)<500)return!1}else if(F==="graphql"){if(!((e.url||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("apollo")))return!1}else if(e.method?.toUpperCase()!==F.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 d=parseInt(String(n),10);if(!isNaN(d)&&d>=100)return s===d}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(he!=="all"){const s=e.duration||0;if(he==="fast"&&s>=200||he==="normal"&&(s<200||s>500)||he==="slow"&&s<=500)return!1}if(Ee!=="all"){const s=(e.url||"").toLowerCase().startsWith("https");if(Ee==="https"&&!s||Ee==="http"&&s)return!1}if(w&&w.trim().length>0){const s=b.current.get(e.id)?.path||"";if(!Hn(e,w,s,{scope:fe,isRegex:de,isCaseSensitive:pe}))return!1}return!0});if(ge==="time_asc"||tt==="oldest")t=[...t].reverse();else if(ge==="duration_desc")t=[...t].sort((e,s)=>(s.duration||0)-(e.duration||0));else if(ge==="duration_asc")t=[...t].sort((e,s)=>(e.duration||0)-(s.duration||0));else if(ge==="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(w&&w.trim().length>0){const e=new Map;for(const s of t){const r=b.current.get(s.id)?.path||"",n=Wn(s,w,r,{scope:fe,isRegex:de,isCaseSensitive:pe});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)})}return t},[L,se,w,fe,de,pe,F,re,oe,he,Ee,ge,tt]),eo=m(()=>{const t=new Set;return L.forEach(e=>{e.method&&t.add(e.method.toUpperCase())}),["ALL",...Array.from(t)]},[L]),to=N((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}})},[]),ws=m(()=>{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(A.length>0){const t=A[0],e=b.current.get(t.id)||t?.routeInfo;return Ms(t,e)}return""},[A,vt]),so=N(t=>{Ke(e=>{const s=new Map(e),n=!!(w&&w.trim().length>0)?!0:t===ws,i=s.has(t)?s.get(t):n;return s.set(t,!i),s})},[ws,w]);l(()=>{et({}),Ke(new Map)},[w,fe,de,pe,F,re,oe,O]);const ro=N((t,e=10)=>{et(s=>({...s,[t]:(s[t]||O||50)+e}))},[O]),oo=m(()=>{const t=!!(w&&w.trim().length>0);if(!me||t)return A.map((n,i)=>{const d=b.current.get(n.id)||n?.routeInfo,x=Ms(n,d);return{type:"log",id:`flat-log-${n.id}`,log:n,isLast:i===A.length-1,color:wo(x)}});const e=[],s=new Map;for(let n=0;n<A.length;n++){const i=A[n],d=b.current.get(i.id)||i?.routeInfo,x=Ms(i,d);let R=s.get(x);R||(R={pageName:x,color:wo(x),logs:[]},s.set(x,R)),R.logs.push(i)}let r=0;return s.forEach(n=>{let i=0,d=0,x=0;n.logs.forEach(_=>{_.status==null?x++:_.status===0||_.status>=400?d++:i++});const R=Xs[n.pageName]||new Set(["success","failed","loading"]),It=Yt.has(n.pageName)?!Yt.get(n.pageName):!!0,He=n.logs[0]?.startTime||0;if(e.push({type:"header",id:`hdr-${n.pageName}`,pageName:n.pageName,color:n.color,stats:{success:i,failed:d,loading:x},timestamp:He,activeFilters:R,isCollapsed:It,isFirst:r===0}),r++,!It){const _=n.logs.filter(S=>S.status==null?R.has("loading"):S.status===0||S.status>=400?R.has("failed"):R.has("success")),Rs=O||50,te=Ys[n.pageName]||Rs,Dt=_.slice(0,te),c=_.length>te;Dt.forEach(S=>{e.push({type:"log",id:`log-${S.id}`,log:S,isLast:!1,color:n.color})});const k=Math.max(0,_.length-te),M=Math.min(k||10,10);e.push({type:"loadMore",id:`loadmore-${n.pageName}`,pageName:n.pageName,color:n.color,remainingCount:k,totalCount:_.length,loadedCount:Dt.length,loadMoreStep:M,hasMore:c})}}),e},[me,A,L,Xs,Yt,ws,Ys,O,w]),{minStart:no,totalRange:ao}=m(()=>{if(A.length===0)return{minStart:0,totalRange:0};const t=Math.min(...A.map(s=>s.startTime)),e=Math.max(...A.map(s=>s.startTime+(s.duration||10)));return{minStart:t,totalRange:e-t}},[A]),kt=m(()=>{if(!g)return null;const t=L.findIndex(e=>e.id===g.id);if(t===-1)return null;for(let e=t+1;e<L.length;e++){const s=L[e];if(s.url===g.url&&s.method===g.method)return s}return null},[g,L]),io=kt?kt.request:null,lo=kt?kt.response:null,co=m(()=>{let t=Se;if(Me&&Me.trim().length>0){const r=Me.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(d=>i.includes(d))})}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,be)},[Se,Me,a,be]),uo=m(()=>{let t=Z;if(U.size>0&&!U.has("all")&&(t=t.filter(e=>!!(U.has("user-log")&&e.sourceMethod==="log"||U.has("info")&&(e.sourceMethod==="info"||e.type==="info"&&e.sourceMethod!=="log")||U.has("warn")&&(e.type==="warn"||e.sourceMethod==="warn")||U.has("error")&&(e.type==="error"||e.sourceMethod==="error")||U.has("analytics")&&e.message?.toLowerCase().includes("[analytics error]")))),V&&V.trim().length>0){const e=V.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))})}return t=[...t].sort((e,s)=>st==="newest"?s.timestamp-e.timestamp:e.timestamp-s.timestamp),t},[Z,U,V,st]),fo=m(()=>{let t=Z;if(V&&V.trim().length>0){const s=V.trim().toLowerCase().split(/\s+/).filter(Boolean);t=Z.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=Z.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}`}},[Z,V]),po=N(()=>{j(!1),Ut(!1),setTimeout(()=>{Ht(null),Tt(null),es(null),jt(null),Jt(null),le(null),Le(null)},300)},[]);function Cn(){Ro(),z([]),ve(new Set),Xt({}),Ke(new Map),et({}),$t(new Set),Qt(new Set),Hs(""),ce.current=new Set,b.current=new Map,Do(),ye([]),Ur(""),Oe.current=new Set,No(),ae([]),ue(new Set),ns(new Set(["all"])),Nr("")}function mo(){if(u==="logs"){Ze.size>0?(ae(t=>t.filter(e=>!Ze.has(e.id))),ue(new Set)):D({visible:!0,title:p("console.clearLogsTitle","Clear Console Logs"),message:p("console.clearLogsMsg","Are you sure you want to clear all console logs?"),confirmText:p("common.clearAll","Clear All"),cancelText:p("common.cancel","Cancel"),onConfirm:()=>{D(t=>({...t,visible:!1})),No(),ae([]),ue(new Set)}});return}if(u==="analytics"){D({visible:!0,title:p("analytics.clearEventsTitle","Clear Analytics"),message:p("analytics.clearEventsMsg","Are you sure you want to clear all analytics events?"),confirmText:p("common.clearAll","Clear All"),cancelText:p("common.cancel","Cancel"),onConfirm:()=>{D(t=>({...t,visible:!1})),Do(),ye([]),Tt(null),Oe.current=new Set}});return}if(u==="redux"){D({visible:!0,title:p("redux.clearTimelineTitle","Clear Redux Timeline"),message:p("redux.clearTimelineMsg","Are you sure you want to clear the dispatched action history?"),confirmText:p("common.clearAll","Clear All"),cancelText:p("common.cancel","Cancel"),onConfirm:()=>{D(t=>({...t,visible:!1})),ka(),$e({})}});return}if(u==="crash"){D({visible:!0,title:p("crash.clearTitle","Clear Crash Records"),message:p("crash.clearMessage","Are you sure you want to clear all intercepted crash records?"),confirmText:p("crash.clearConfirm","Clear All"),cancelText:p("crash.clearCancel","Cancel"),onConfirm:()=>{D(t=>({...t,visible:!1})),To(),J([]),le(null)}});return}Ye.size>0?(z(t=>t.filter(e=>!Ye.has(e.id))),ve(new Set)):D({visible:!0,title:p("network.clearLogsTitle","Clear Network Logs"),message:p("network.clearLogsMsg","Are you sure you want to clear all network logs?"),confirmText:p("common.clearAll","Clear All"),cancelText:p("common.cancel","Cancel"),onConfirm:()=>{D(t=>({...t,visible:!1})),xn()}})}function xn(){Ro(),z([]),ve(new Set),Xt({}),Ke(new Map),et({}),$t(new Set),Qt(new Set),ce.current=new Set,b.current=new Map}const ho=m(()=>{if(!g)return"";try{const e=new URL(g.url).pathname.split("/").filter(Boolean);return e.length>0?`/${e.slice(-2).join("/")}`:"/"}catch{const t=g.url.split("/").filter(Boolean);return t.length>0?`/${t.slice(-2).join("/")}`:g.url}},[g]),go=m(()=>g?Un(g.url):"",[g]),So=N(t=>{ve(e=>{const s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},[]),yo=N(t=>{ue(e=>{const s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},[]),Ln=m(()=>({visible:h,setVisible:j,closeModal:po,isMinimized:_s,setIsMinimized:Ut,minimizeInspector:Bo,isDismissed:qt,setIsDismissed:Bs,dismissInspector:Vo,isReady:Vs,enabled:I,isEnabled:I,appIcon:Is,environment:Ds,modalHeightPercent:Qe,setModalHeightPercent:Bt,modalAnimationType:Xe,setModalAnimationType:Vt,hasNavigationContext:$r,setNavState:Ls,activeTab:u,switchActiveTab:Br,tabVisibility:E,toggleTabVisibility:Or,lastReadApisCount:ur,lastReadLogsCount:lr,mediaCount:mr,refreshMediaCount:ot,selected:g,setSelected:Ht,selectedEvent:Vr,setSelectedEvent:Tt,selectedLog:ir,setSelectedLog:es,showHeaderInfo:Zs,setShowHeaderInfo:Qo,settingsPage:Tr,setSettingsPage:an,isAboutOpen:vr,setIsAboutOpen:ln,isSupportOpen:Er,setIsSupportOpen:cn,updateAvailable:Fr,latestNpmVersion:Fe,clearAnim:qe,activePulseAnim:Be,unreadPulseAnim:Ve,runClearAllWithAnimation:Zr,confirmModal:qs,setConfirmModal:D,useNativeFab:ee,fabPan:T,fabPanResponder:Yr,fabDraggedRef:Pt,pulseAnim:_e,fabShineAnim:Ue,logs:L,filteredLogs:A,groupedData:oo,search:w,setSearch:Hs,searchScope:fe,setSearchScope:Uo,isRegexSearch:de,setIsRegexSearch:qo,isCaseSensitive:pe,setIsCaseSensitive:Ho,quickFilter:F,setQuickFilter:Wo,statusFilters:re,setStatusFilters:$t,methodFilters:oe,setMethodFilters:Qt,latencyFilter:he,setLatencyFilter:jo,protocolFilter:Ee,setProtocolFilter:Jo,networkSortBy:ge,setNetworkSortBy:$o,availableMethods:eo,sortOrder:tt,setSortOrder:Xo,selectedLogs:Ye,toggleSelect:So,minStart:no,totalRange:ao,newLogIds:Qr,toggleSectionFilter:to,toggleSectionCollapse:so,loadMoreSection:ro,handleDelete:mo,isGroupByPageEnabled:me,setIsGroupByPageEnabled:Wt,hiddenUrlPatterns:se,setHiddenUrlPatterns:Gt,detailTitle:ho,detailDisplayUrl:go,apiDetailActiveTab:$s,setApiDetailActiveTab:Qs,detailSearch:Ws,setDetailSearch:zt,reqExpanded:Ks,setReqExpanded:er,resExpanded:tr,setResExpanded:sr,showReqDiff:rr,setShowReqDiff:or,showResDiff:nr,setShowResDiff:ar,prevRequestData:io,prevResponseData:lo,logRouteMapRef:b,consoleLogs:H,visibleConsoleLogs:Z,filteredConsoleLogs:uo,logSearch:V,setLogSearch:Nr,logFilters:U,setLogFilters:ns,logCounts:fo,logSortOrder:st,setLogSortOrder:Yo,selectedConsoleLogs:Ze,setSelectedConsoleLogs:ue,toggleSelectConsoleLog:yo,analyticsEvents:Se,filteredAnalyticsEvents:co,analyticsSearch:Me,setAnalyticsSearch:Ur,analyticsFilters:a,setAnalyticsFilters:qr,isAnalyticsFilterApplied:Hr,resetAnalyticsFilters:Wr,newEventIds:jr,isAnalyticsLayoutReady:Gr,setIsAnalyticsLayoutReady:gn,analyticsHeaderExpanded:zr,setAnalyticsHeaderExpanded:Sn,reduxState:Fs,setReduxState:Je,reduxLastActionMap:Os,reduxSearch:Gs,setReduxSearch:Go,selectedReduxSlice:zs,setSelectedReduxSlice:jt,selectedReduxAction:js,setSelectedReduxAction:Jt,reduxActiveSubTab:Js,setReduxActiveSubTab:zo,crashRecords:ie,setCrashRecords:J,selectedCrash:Sr,setSelectedCrash:le,lastReadCrashesCount:dr,maxCrashLogs:$,setMaxCrashLogs:nt,clearAllCrashes:()=>{To(),J([]),le(null)},crashIgnoredTypes:Ce,setCrashIgnoredTypes:ss,crashModalTriggerPolicy:xe,setCrashModalTriggerPolicyState:yr,applyCrashPolicyPreset:Cr,pushRecords:Q,filteredPushRecords:Rr,selectedPush:Lr,setSelectedPush:wr,pushSearch:ke,setPushSearch:Ko,pushQuickFilter:W,setPushQuickFilter:en,lastReadPushCount:at,unreadPushCount:br,maxPushLogs:it,setMaxPushLogs:rs,clearAllPushLogs:()=>{pa(),xr([]),wr(null)},simulatePush:(t,e)=>{ha(t,e)},socketRecords:X,filteredSocketRecords:Mr,selectedSocket:Ie,setSelectedSocket:Le,socketSearch:De,setSocketSearch:sn,socketQuickFilter:B,setSocketQuickFilter:rn,lastReadSocketCount:ct,unreadSocketCount:Ar,maxSocketLogs:ut,setMaxSocketLogs:nn,clearAllSocketLogs:()=>{Sa(),lt([]),Le(null)},deleteSocketRecord:t=>{ba(t),lt(e=>e.filter(s=>s.id!==t)),Ie?.id===t&&Le(null)},deleteMultipleSocketRecords:t=>{Ra(t);const e=new Set(t);lt(s=>s.filter(r=>!e.has(r.id))),Ie&&e.has(Ie.id)&&Le(null)},simulateSocket:(t,e)=>{wa(t,e)},settingsActiveSubTab:Pr,setSettingsActiveSubTab:un,defaultTab:K,setDefaultTab:Nt,isDark:je,setIsDark:_t,showUpdateToast:Cs,setShowUpdateToast:xs,showConsoleLevels:Y,setShowConsoleLevels:os,resetToDefaults:mn,storage:G,maxNetworkLogs:O,setMaxNetworkLogs:pt,maxConsoleLogs:we,setMaxConsoleLogs:ft,maxAnalyticsEventsLimit:be,setMaxAnalyticsEventsLimit:mt,isAutoRamLimitEnabled:Re,setIsAutoRamLimitEnabled:as,deviceFreeRamMb:is,reduxAutoRefresh:Ae,setReduxAutoRefreshState:ls,reduxExpandDepth:ht,setReduxExpandDepth:cs,captureFps:gt,setCaptureFps:us,captureScale:St,setCaptureScale:fs,captureBitrate:yt,setCaptureBitrate:ds,captureMaxDurationSeconds:Ct,setCaptureMaxDurationSeconds:ps,captureImageFormat:xt,setCaptureImageFormat:ms,captureAudioMode:Lt,setCaptureAudioMode:hs,captureAutoHide:wt,setCaptureAutoHide:gs,captureAutoGif:bt,setCaptureAutoGif:Ss,captureWidgetEnabled:Rt,setCaptureWidgetEnabled:At,peekMode:kr,setPeekMode:dn,peekOpacity:Mt,setPeekOpacity:ys,previewMediaItem:gr,setPreviewMediaItem:Zo,isUpdatePopupVisible:Ir,setIsUpdatePopupVisible:pn}),[h,po,Vs,I,Is,Ds,Qe,Xe,$r,Ls,u,Br,E,Or,ur,lr,mr,ot,gr,g,Vr,ir,Zs,Tr,vr,Er,Fr,Fe,qe,Be,Ve,Zr,ee,T,Yr,_e,Ue,L,A,oo,w,fe,de,pe,F,re,oe,eo,tt,Ye,So,no,ao,Qr,to,so,ro,mo,me,Wt,se,ho,go,$s,Ws,Ks,tr,rr,nr,io,lo,H,Z,uo,V,U,fo,st,Ze,yo,Se,co,Me,a,Hr,Wr,jr,Gr,zr,Fs,Os,Gs,zs,js,Js,ie,Sr,dr,$,Ce,xe,Cr,Q,Rr,Lr,ke,W,at,br,it,X,Mr,Ie,De,B,ct,Ar,ut,Pr,K,je,Cs,Y,G,O,we,be,Re,is,Ae,ht,gt,St,yt,Ct,xt,Lt,wt,bt,Rt,kr,Mt,_s,qt,qs,Ir]);return<Bn.Provider value={Ln}>
|
|
2
|
+
<On/>
|
|
3
|
+
<_n visible={!!ts}crash={ts}onDismiss={()=>Pe(null)}onOpenInspector={()=>{const t=ts;Pe(null),t&&le(t),ne("crash"),j(!0)}}onRetry={()=>{Pe(null)}}/>
|
|
4
|
+
</Bn.Provider>},ks=I=>{const G=I?.enabled??!0,v=I?.telemetry??!0;return l(()=>(G?v?Aa(!0,I?.environment):ko(!1):(Te().catch(()=>{}),ko(!1)),()=>{Te().catch(()=>{})}),[G,v,I?.environment]),G?<En i18n={Pn}>
|
|
5
|
+
<Fn fallbackType="inline">
|
|
6
6
|
<Ha{...I}enabled={G}/>
|
|
7
|
-
</
|
|
8
|
-
</
|
|
7
|
+
</Fn>
|
|
8
|
+
</En>:null};export default ks;export{ks as InAppInspector,ks 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,getLastNativeCrash,clearLastNativeCrash,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";
|
|
@@ -165,7 +165,6 @@ export interface PersistedSettings {
|
|
|
165
165
|
};
|
|
166
166
|
reduxAutoRefresh?: boolean;
|
|
167
167
|
reduxExpandDepth?: number;
|
|
168
|
-
showDuplicateLogs?: boolean;
|
|
169
168
|
showUpdateToast?: boolean;
|
|
170
169
|
useNativeFab?: boolean;
|
|
171
170
|
shakeToOpen?: boolean;
|
|
@@ -420,8 +419,6 @@ export interface InspectorContextValue {
|
|
|
420
419
|
setDefaultTab: React.Dispatch<React.SetStateAction<ActiveTab>>;
|
|
421
420
|
isDark: boolean;
|
|
422
421
|
setIsDark: React.Dispatch<React.SetStateAction<boolean>>;
|
|
423
|
-
showDuplicateLogs: boolean;
|
|
424
|
-
setShowDuplicateLogs: React.Dispatch<React.SetStateAction<boolean>>;
|
|
425
422
|
showUpdateToast: boolean;
|
|
426
423
|
setShowUpdateToast: React.Dispatch<React.SetStateAction<boolean>>;
|
|
427
424
|
showConsoleLevels: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-inapp-inspector",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.16",
|
|
4
4
|
"description": "The zero-config, all-in-one in-app debugger & network logger for React Native & Expo (Flipper / Chucker alternative). Inspect Network (fetch/Axios/GraphQL), Console logs with Metro Symbolication, Redux State, Firebase Analytics, Storage (AsyncStorage/MMKV), Hardware Telemetry, and JS Bundle size directly on device.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|