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/commonjs/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,c,p,b){b===void 0&&(b=p);var h=Object.getOwnPropertyDescriptor(c,p);(!h||("get"in h?!c.__esModule:h.writable||h.configurable))&&(h={enumerable:!0,get:function(){return c[p]}}),Object.defineProperty(i,b,h)}):(function(i,c,p,b){b===void 0&&(b=p),i[b]=c[p]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(i,c){Object.defineProperty(i,"default",{enumerable:!0,value:c})}):function(i,c){i.default=c}),__importStar=this&&this.__importStar||(function(){var i=function(c){return i=Object.getOwnPropertyNames||function(p){var b=[];for(var h in p)Object.prototype.hasOwnProperty.call(p,h)&&(b[b.length]=h);return b},i(c)};return function(c){if(c&&c.__esModule)return c;var p={};if(c!=null)for(var b=i(c),h=0;h<b.length;h++)b[h]!=="default"&&__createBinding(p,c,b[h]);return __setModuleDefault(p,c),p}})(),__importDefault=this&&this.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.inspectorReduxMiddleware=exports.connectReduxStore=exports.GlobalCrashScreenModal=exports.ErrorBoundary=exports.CrashTab=exports.pruneCrashRecords=exports.getMaxCrashLogsLimit=exports.computeCrashFingerprint=exports.recordUserActionBreadcrumb=exports.recordReduxBreadcrumb=exports.recordNetworkBreadcrumb=exports.recordNavigationBreadcrumb=exports.addCrashBreadcrumb=exports.recordCustomCrash=exports.parseCrashStackTrace=exports.exportCrashReport=exports.triggerGlobalCrashScreen=exports.simulateTestCrash=exports.clearCrashRecords=exports.getCrashRecords=exports.emitCrashEvent=exports.subscribeCrashEvents=exports.setupGlobalCrashHandler=exports.pruneAnalyticsLogs=exports.getMaxAnalyticsLogsLimit=exports.setMaxAnalyticsLogsLimit=exports.getCollectionEnabled=exports.getDefaultEventParameters=exports.getCurrentUserId=exports.getCurrentUserProperties=exports.clearAnalyticsEvents=exports.subscribeAnalyticsEvents=exports.logAnalyticsEvent=exports.setupAnalyticsLogger=exports.pruneConsoleLogs=exports.getMaxConsoleLogsLimit=exports.setMaxConsoleLogsLimit=exports.subscribeConsoleLogs=exports.clearConsoleLogs=exports.setupConsoleLogger=exports.getNetworkLogs=exports.pruneNetworkLogs=exports.getMaxNetworkLogsLimit=exports.setMaxNetworkLogsLimit=exports.addAxiosInterceptors=exports.subscribeNetworkLogs=exports.clearNetworkLogs=exports.setupNetworkLogger=exports.NetworkInspector=exports.InAppInspector=void 0,exports.pruneSocketRecords=exports.getMaxSocketRecordsLimit=exports.setMaxSocketRecordsLimit=exports.getSocketModuleEnabled=exports.setSocketModuleEnabled=exports.getSocketRecords=exports.subscribeSocketRecords=exports.clearSocketRecords=exports.setupSocketLogger=exports.prunePushRecords=exports.getDiscoveredPushSources=exports.setMaxPushRecordsLimit=exports.autoSetupPushLogger=exports.simulateTestPush=exports.subscribePushEvents=exports.clearPushRecords=exports.getPushRecords=exports.recordSalesforcePush=exports.recordPushNotification=exports.subscribeMemoryWarning=exports.pruneAllLogs=exports.setupMemoryWarningHandler=exports.isNativeModuleAvailable=exports.setNativeStorageItem=exports.getNativeStorageItem=exports.getNativeFpsMetrics=exports.stopNativeFpsMonitoring=exports.startNativeFpsMonitoring=exports.subscribeNativeDeviceShake=exports.subscribeNativeFloatingButtonPress=exports.setNativeFloatingButtonBadge=exports.hideNativeFloatingButton=exports.showNativeFloatingButton=exports.subscribeNativeCrashes=exports.enableNativeCrashProtection=exports.getNativeDeviceMetrics=exports.InspectCatch=exports.InspectTrackTime=exports.InspectLog=exports.registerGAPlugin=exports.getEventCategory=exports.isReduxConnected=exports.pruneReduxHistory=exports.getMaxReduxHistoryLimit=exports.setMaxReduxHistoryLimit=exports.getLastActionForReducer=exports.clearActionHistory=exports.getActionHistory=exports.subscribeReduxState=exports.getReduxState=void 0,exports.LogFilter=exports.SettingsSubTab=exports.SettingsPage=exports.ModalAnimationType=exports.LocalFilter=exports.SortOrder=exports.StatusFilter=exports.Method=exports.ActiveTab=exports.subscribeToStorageChanges=exports.clearStorageDriver=exports.removeStorageEntry=exports.setStorageEntry=exports.fetchStorageEntries=exports.getRegisteredMMKVInstanceIds=exports.isMMKVConnected=exports.isAsyncStorageConnected=exports.connectMMKV=exports.connectAsyncStorage=exports.SkeletonPlaceholder=exports.ModuleErrorBoundary=exports.SocketIcon=exports.WebsocketIcon=exports.CloudPushIcon=exports.BellIcon=exports.BrandSquareIcon=exports.BrandCircleIcon=exports.formatLogReport=exports.formatReduxReport=exports.formatAnalyticsReport=exports.formatCrashReport=exports.formatSocketReport=exports.formatPushReport=exports.formatApiReport=exports.shareLogReport=exports.shareReduxReport=exports.shareAnalyticsReport=exports.shareCrashReport=exports.shareSocketReport=exports.sharePushReport=exports.shareApiReport=exports.SocketCard=exports.SocketDetail=exports.SocketTab=exports.analyzeSocketPayload=exports.simulateTestSocket=exports.recordSocketError=exports.recordSocketClose=exports.recordSocketFrame=exports.recordSocketConnection=void 0,exports.LIB_VERSION=exports.MediaEditor=exports.ScreenRecorder=exports.ScreenCapture=exports.isFirebaseRemoteConfigAvailable=exports.fetchRemoteConfigModuleStatus=exports.SUPPORTED_LANGUAGES=exports.I18nextProvider=exports.setTranslations=exports.addTranslations=exports.setLanguage=exports.useTranslation=exports.i18n=exports.t=exports.updateAppColorsTheme=exports.getThemeColors=exports.setAppColors=exports.AppColors=exports.setAppFonts=exports.AppFonts=exports.SocketFilterType=exports.SocketDetailSubTab=exports.SocketFrameType=exports.SocketFrameDirection=exports.SocketStatus=exports.PushFilterType=exports.PushDetailSubTab=exports.PushActionType=exports.PushAppState=exports.BreadcrumbType=exports.CrashFilterType=exports.CrashDetailSubTab=exports.CrashExportFormat=exports.CrashType=exports.DiffResultType=exports.StackFrameType=exports.GAEventCategory=exports.AnalyticsEventSource=exports.ConsoleLogType=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),native_1=require("@react-navigation/native"),i18n_1=require("./i18n"),ErrorBoundary_1=__importDefault(require("./components/ErrorBoundary")),MainScreen_1=__importDefault(require("./components/Inspector/MainScreen")),GlobalCrashScreenModal_1=__importDefault(require("./components/Inspector/GlobalCrashScreenModal")),InspectorContext_1=require("./components/Inspector/InspectorContext"),helpers_1=require("./helpers"),settingsStore_1=require("./helpers/settingsStore"),NativeInspector_1=require("./native/NativeInspector"),networkLogger_1=require("./customHooks/networkLogger"),consoleLogger_1=require("./customHooks/consoleLogger"),logFilters_1=require("./customHooks/logFilters"),crashHandler_1=require("./customHooks/crashHandler"),pushNotificationLogger_1=require("./customHooks/pushNotificationLogger"),socketLogger_1=require("./customHooks/socketLogger"),telemetry_1=require("./helpers/telemetry"),analyticsLogger_1=require("./customHooks/analyticsLogger"),reduxLogger_1=require("./customHooks/reduxLogger"),NativeInspector_2=require("./native/NativeInspector"),remoteConfig_1=require("./helpers/remoteConfig"),capture_1=require("./capture"),constants_1=require("./constants"),styles_1=require("./styles"),NetworkInspector=({enabled:i=!0,storage:c,navigationRef:p,appIcon:b,environment:h,initialVisible:qs=!1,visible:Te,remoteConfig:Ie})=>{(0,settingsStore_1.setCustomStorage)(c||null);const{t:g}=(0,i18n_1.useTranslation)(),[_e,Pt]=(0,react_1.useState)(!1),[Zt,Fe]=(0,react_1.useState)(null),[er,De]=(0,react_1.useState)({}),[Be,Lt]=(0,react_1.useState)(90),[qe,Rt]=(0,react_1.useState)("slide"),[S,K]=(0,react_1.useState)([]),[m,q]=(0,react_1.useState)(Te??qs??!1),[tr,vt]=(0,react_1.useState)(!1),[Ot,rr]=(0,react_1.useState)(!1),Hs=(0,react_1.useCallback)(()=>{vt(!0),q(!1)},[]),Gs=(0,react_1.useCallback)(()=>{rr(!0),q(!1),(0,NativeInspector_2.hideNativeFloatingButton)().catch(()=>{})},[]);(0,react_1.useEffect)(()=>{Te!==void 0&&q(Te)},[Te]);const[sr,or]=(0,react_1.useState)(!1),[x,At]=(0,react_1.useState)(null),[He,be]=(0,react_1.useState)(new Set),[nr,w]=(0,react_1.useState)({visible:!1,title:"",message:"",onConfirm:()=>{}}),[P,ar]=(0,react_1.useState)(""),[xe,Vs]=(0,react_1.useState)("all"),[he,Us]=(0,react_1.useState)(!1),[ye,Ws]=(0,react_1.useState)(!1),[re,Mt]=(0,react_1.useState)(!0),[k,zs]=(0,react_1.useState)("all"),[ur,wt]=(0,react_1.useState)(""),[ir,Js]=(0,react_1.useState)(""),[cr,kt]=(0,react_1.useState)(null),[lr,Nt]=(0,react_1.useState)(null),[pr,$s]=(0,react_1.useState)("state"),[fr,dr]=(0,react_1.useState)("response");(0,react_1.useEffect)(()=>(react_native_1.LogBox.ignoreAllLogs(i),()=>{react_native_1.LogBox.ignoreAllLogs(!1)}),[i]),(0,react_1.useEffect)(()=>{x&&(dr("response"),wt(""))},[x]);const[Y,Et]=(0,react_1.useState)(new Set),[Z,jt]=(0,react_1.useState)(new Set),[se,Xs]=(0,react_1.useState)("all"),[Se,Qs]=(0,react_1.useState)("all"),[oe,Ks]=(0,react_1.useState)("time_desc"),[gr,Tt]=(0,react_1.useState)({}),[It,Ge]=(0,react_1.useState)(()=>new Map),[mr,Ve]=(0,react_1.useState)({}),[br,Ys]=(0,react_1.useState)(!0),[Ue,Zs]=(0,react_1.useState)("newest"),[We,eo]=(0,react_1.useState)("newest"),[xr,hr]=(0,react_1.useState)(!0),[yr,Sr]=(0,react_1.useState)(!0),[Cr,Pr]=(0,react_1.useState)(!1),[Lr,Rr]=(0,react_1.useState)(!1),[l,H]=(0,react_1.useState)("apis"),[ze,ne]=(0,react_1.useState)([]),[ee,ae]=(0,react_1.useState)([]),_t=(0,react_1.useRef)([]),Ft=(0,react_1.useRef)([]),Dt=(0,react_1.useRef)([]),[vr,Bt]=(0,react_1.useState)(null),[Or,Ar]=(0,react_1.useState)(0),[Mr,wr]=(0,react_1.useState)(0),[kr,Nr]=(0,react_1.useState)(0),[Er,jr]=(0,react_1.useState)(0),Je=(0,react_1.useCallback)(async()=>{try{const t=await capture_1.ScreenCapture.getMediaList(),e=t?t.length:0;return jr(e),e}catch{return jr(0),0}},[]);(0,react_1.useEffect)(()=>{m&&Je()},[m,Je]);const[Ce,G]=(0,react_1.useState)(()=>(0,crashHandler_1.getCrashRecords)()),[Tr,te]=(0,react_1.useState)(null),[qt,Pe]=(0,react_1.useState)(null),[V,$e]=(0,react_1.useState)(50);(0,react_1.useEffect)(()=>{(0,crashHandler_1.setMaxCrashLogsLimit)(V)},[V]),(0,react_1.useEffect)(()=>{m&&(l==="apis"&&wr(S.length),l==="logs"&&Ar(ee.length),l==="crash"&&Nr(Ce.length))},[m]),(0,react_1.useEffect)(()=>{l==="apis"&&wr(S.length)},[l,S.length]),(0,react_1.useEffect)(()=>{l==="logs"&&Ar(ee.length)},[l,ee.length]),(0,react_1.useEffect)(()=>{l==="crash"&&Nr(Ce.length)},[l,Ce.length]);const[U,Ir]=(0,react_1.useState)(()=>(0,pushNotificationLogger_1.getPushRecords)()),[_r,Fr]=(0,react_1.useState)(null),[Le,to]=(0,react_1.useState)(""),[D,ro]=(0,react_1.useState)("all"),[Xe,so]=(0,react_1.useState)(0),[Qe,Ht]=(0,react_1.useState)(50);(0,react_1.useEffect)(()=>{(0,pushNotificationLogger_1.setMaxPushRecordsLimit)(Qe)},[Qe]),(0,react_1.useEffect)(()=>(0,pushNotificationLogger_1.subscribePushEvents)(e=>{Ir(e)}),[]);const Dr=(0,react_1.useMemo)(()=>l==="push"?0:Math.max(0,U.length-Xe),[l,U.length,Xe]);(0,react_1.useEffect)(()=>{m&&l==="push"&&so(U.length)},[m,l,U.length]);const Br=(0,react_1.useMemo)(()=>{let t=U;if(D!=="all"){if(D==="foreground")t=t.filter(e=>(e.appState||"").toLowerCase()==="foreground");else if(D==="background")t=t.filter(e=>(e.appState||"").toLowerCase()==="background");else if(D==="opened")t=t.filter(e=>e.action==="opened");else if(D.startsWith("source:")){const e=D.replace("source:","").toLowerCase();t=t.filter(r=>(r.source||"").toLowerCase()===e)}}if(Le.trim()){const e=Le.trim().toLowerCase();t=t.filter(r=>!!(r.title&&r.title.toLowerCase().includes(e)||r.body&&r.body.toLowerCase().includes(e)||r.id&&r.id.toLowerCase().includes(e)||r.source&&r.source.toLowerCase().includes(e)||r.domain&&r.domain.toLowerCase().includes(e)||r.channelId&&r.channelId.toLowerCase().includes(e)||r.data&&JSON.stringify(r.data).toLowerCase().includes(e)))}return t},[U,D,Le]),[W,Ke]=(0,react_1.useState)(()=>(0,socketLogger_1.getSocketRecords)()),[Re,ue]=(0,react_1.useState)(null),[ve,oo]=(0,react_1.useState)(""),[j,no]=(0,react_1.useState)("all"),[Ye,ao]=(0,react_1.useState)(0),[Ze,uo]=(0,react_1.useState)(50);(0,react_1.useEffect)(()=>{(0,socketLogger_1.setMaxSocketRecordsLimit)(Ze)},[Ze]),(0,react_1.useEffect)(()=>(0,socketLogger_1.subscribeSocketRecords)(e=>{Ke(e)}),[]);const qr=(0,react_1.useMemo)(()=>l==="socket"?0:Math.max(0,W.length-Ye),[l,W.length,Ye]);(0,react_1.useEffect)(()=>{m&&l==="socket"&&ao(W.length)},[m,l,W.length]);const Hr=(0,react_1.useMemo)(()=>{let t=W;if(j!=="all"&&(j==="open"?t=t.filter(e=>(e.status||"open").toLowerCase()==="open"):j==="closed"?t=t.filter(e=>(e.status||"").toLowerCase()==="closed"):j==="error"?t=t.filter(e=>(e.status||"").toLowerCase()==="error"):j==="sio"?t=t.filter(e=>e.client==="socket.io"||e.url.includes("/socket.io")):j==="wss"?t=t.filter(e=>e.url.startsWith("wss://")):j==="ws"&&(t=t.filter(e=>e.url.startsWith("ws://")))),ve.trim()){const e=ve.trim().toLowerCase();t=t.filter(r=>!!(r.url&&r.url.toLowerCase().includes(e)||r.id&&r.id.toLowerCase().includes(e)||r.client&&r.client.toLowerCase().includes(e)||r.caller&&r.caller.toLowerCase().includes(e)||r.query&&JSON.stringify(r.query).toLowerCase().includes(e)||r.frames&&r.frames.some(s=>!!(s.eventName&&s.eventName.toLowerCase().includes(e)||typeof s.data=="string"&&s.data.toLowerCase().includes(e)||s.data&&typeof s.data=="object"&&JSON.stringify(s.data).toLowerCase().includes(e)))))}return t},[W,j,ve]),[ie,et]=(0,react_1.useState)(300),[z,Gt]=(0,react_1.useState)({info:!0,warn:!0,error:!0}),J=(0,react_1.useMemo)(()=>ee.filter(e=>{const r=e.type;if(r==="info"&&!z?.info||r==="warn"&&!z?.warn||r==="error"&&!z?.error)return!1;const s=e.message||"";return![...logFilters_1.IGNORED_LOG_PREFIXES&&logFilters_1.IGNORED_LOG_PREFIXES.info||[],...logFilters_1.IGNORED_LOG_PREFIXES&&logFilters_1.IGNORED_LOG_PREFIXES.warn||[],...logFilters_1.IGNORED_LOG_PREFIXES&&logFilters_1.IGNORED_LOG_PREFIXES.error||[]].filter(d=>typeof d=="string"&&d.trim().length>0).some(d=>s.toLowerCase().trim().startsWith(d.toLowerCase().trim())||s.toLowerCase().trim().includes(d.toLowerCase().trim()))}).slice(0,ie),[ee,z,ie]),[T,Gr]=(0,react_1.useState)(""),[I,Vr]=(0,react_1.useState)(new Set(["all"])),[Ur,io]=(0,react_1.useState)(null),[Wr,co]=(0,react_1.useState)(!1),[zr,lo]=(0,react_1.useState)(!1),[Jr,po]=(0,react_1.useState)("module"),[A,tt]=(0,react_1.useState)({apis:!0,logs:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,debugging:!0,media:!0}),[N,rt]=(0,react_1.useState)(250),[ce,st]=(0,react_1.useState)(150),[le,Vt]=(0,react_1.useState)(!0),[Ut,fo]=(0,react_1.useState)(1800),[pe,Wt]=(0,react_1.useState)(!0),[ot,zt]=(0,react_1.useState)(1),[nt,$r]=(0,react_1.useState)(60),[at,Xr]=(0,react_1.useState)(.5),[ut,Qr]=(0,react_1.useState)(0),[it,Kr]=(0,react_1.useState)(120),[ct,Yr]=(0,react_1.useState)("png"),[lt,Zr]=(0,react_1.useState)("none"),[pt,es]=(0,react_1.useState)(!0),[ft,ts]=(0,react_1.useState)(!0),[rs,go]=(0,react_1.useState)(!1),[dt,ss]=(0,react_1.useState)(.75),[$,gt]=(0,react_1.useState)("apis"),[X,Jt]=(0,react_1.useState)(!1),[$t,Xt]=(0,react_1.useState)(!0);(0,react_1.useEffect)(()=>{(0,networkLogger_1.setNetworkModuleEnabled)(!!A.apis),(0,consoleLogger_1.setConsoleModuleEnabled)(!!A.logs),(0,analyticsLogger_1.setAnalyticsModuleEnabled)(!!A.analytics),(0,reduxLogger_1.setReduxModuleEnabled)(!!A.redux),(0,crashHandler_1.setCrashModuleEnabled)(!!A.crash),(0,socketLogger_1.setSocketModuleEnabled)(!!A.socket)},[A]),(0,react_1.useEffect)(()=>{(0,NativeInspector_1.getNativeSystemMetrics)().then(t=>{if(t){const e=t.totalPhysicalRamMb-t.residentRamMb,r=Math.max(200,Math.round(e>0?e:1500));if(fo(r),le){const s=(0,settingsStore_1.calculateRamBasedLimits)(r);rt(s.maxNetworkLogs),et(s.maxConsoleLogs),st(s.maxAnalyticsEvents),$e(s.maxCrashRecords),Ht(s.maxPushRecords)}}}).catch(()=>{})},[le]);const mo=async()=>{await(0,settingsStore_1.clearPersistedSettings)(),Pt(!1),(0,styles_1.toggleGlobalTheme)(!1),Lt(90),Rt("slide"),tt({apis:!0,logs:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,debugging:!0,media:!0}),gt("apis"),Vt(!0);const t=(0,settingsStore_1.calculateRamBasedLimits)(Ut);$e(t.maxCrashRecords),rt(t.maxNetworkLogs),et(t.maxConsoleLogs),st(t.maxAnalyticsEvents),Ht(t.maxPushRecords),Gt({info:!0,warn:!0,error:!0}),Wt(!0),zt(1),Jt(!1),Xt(!0),react_native_1.Alert.alert("Settings Reset","All settings have been reset to default values.")},os=(0,react_1.useRef)(!1);(0,react_1.useEffect)(()=>{let t=!1;return(0,settingsStore_1.loadSettings)().then(e=>{if(!t){if(e.language&&(0,i18n_1.setLanguage)(e.language),e.isDark!=null&&(Pt(e.isDark),(0,styles_1.toggleGlobalTheme)(e.isDark)),e.modalHeightPercent!=null&&Lt(e.modalHeightPercent),e.modalAnimationType&&Rt(e.modalAnimationType),e.tabVisibility&&tt(r=>({...r,...e.tabVisibility,apis:!0})),e.defaultTab&>(e.defaultTab),e.isAutoRamLimitEnabled!=null&&Vt(e.isAutoRamLimitEnabled),e.maxNetworkLogs!=null&&rt(e.maxNetworkLogs),e.maxConsoleLogs!=null&&et(e.maxConsoleLogs),e.maxAnalyticsEventsLimit!=null&&st(e.maxAnalyticsEventsLimit),e.maxCrashLogs!=null&&$e(e.maxCrashLogs),e.showConsoleLevels&&Gt(e.showConsoleLevels),e.reduxAutoRefresh!=null&&Wt(e.reduxAutoRefresh),e.reduxExpandDepth!=null&&zt(e.reduxExpandDepth),e.captureFps!=null&&$r(e.captureFps),e.captureScale!=null&&Xr(e.captureScale),e.captureBitrate!=null&&Qr(e.captureBitrate),e.captureMaxDurationSeconds!=null&&Kr(e.captureMaxDurationSeconds),e.captureImageFormat&&Yr(e.captureImageFormat),e.captureAudioMode&&Zr(e.captureAudioMode),e.captureAutoHide!=null&&es(e.captureAutoHide),e.captureAutoGif!=null&&ts(e.captureAutoGif),e.peekOpacity!=null&&ss(e.peekOpacity<.5?.75:e.peekOpacity),e.showDuplicateLogs!=null&&Jt(e.showDuplicateLogs),e.showUpdateToast!=null&&Xt(e.showUpdateToast),e.isGroupByPageEnabled!=null&&Mt(e.isGroupByPageEnabled),e.defaultTab){const r=e.defaultTab,s={apis:!0,logs:!0,analytics:!1,redux:!1,crash:!1,device:!1,storage:!1,...e.tabVisibility||{},apis:!0};H(s[r]?r:"apis")}os.current=!0}}),()=>{t=!0}},[]),(0,react_1.useEffect)(()=>{let t=!0;if(Ie!==!1)return(0,remoteConfig_1.fetchRemoteConfigModuleStatus)(typeof Ie=="object"?Ie:void 0).then(e=>{t&&e&&tt(r=>({...r,...e,apis:e.apis??!0}))}).catch(()=>{}),()=>{t=!1}},[Ie]),(0,react_1.useEffect)(()=>{os.current&&(0,settingsStore_1.saveSettings)({isDark:_e,language:(0,i18n_1.getLanguage)(),modalHeightPercent:Be,modalAnimationType:qe,tabVisibility:A,defaultTab:$,maxNetworkLogs:N,maxConsoleLogs:ie,maxAnalyticsEventsLimit:ce,maxCrashLogs:V,isAutoRamLimitEnabled:le,isGroupByPageEnabled:re,showConsoleLevels:z,reduxAutoRefresh:pe,reduxExpandDepth:ot,showDuplicateLogs:X,showUpdateToast:$t,captureFps:nt,captureScale:at,captureBitrate:ut,captureMaxDurationSeconds:it,captureImageFormat:ct,captureAudioMode:lt,captureAutoHide:pt,captureAutoGif:ft,peekOpacity:dt})},[_e,Be,qe,A,$,N,ie,ce,V,le,re,z,pe,ot,X,nt,at,ut,it,ct,lt,pt,ft,dt]);const[Oe,bo]=(0,react_1.useState)(null),ns=(0,react_1.useMemo)(()=>{if(!Oe)return!1;const t=s=>s.replace(/^v/,"").split(".").map(o=>parseInt(o,10)||0),e=t(constants_1.LIB_VERSION),r=t(Oe);for(let s=0;s<3;s++){if((r[s]||0)>(e[s]||0))return!0;if((r[s]||0)<(e[s]||0))return!1}return!1},[Oe]);(0,react_1.useEffect)(()=>{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"&&bo(e.version)}).catch(()=>{}),()=>{t=!0}},[]),(0,react_1.useEffect)(()=>{(0,reduxLogger_1.setReduxAutoRefresh)(pe)},[pe]),(0,react_1.useEffect)(()=>{l==="redux"&&!(0,reduxLogger_1.isReduxConnected)()&&H("apis"),l==="analytics"&&!(0,analyticsLogger_1.isAnalyticsConnected)()&&H("apis")},[l]);const as=t=>{t!=="apis"&&(t==="redux"&&!(0,reduxLogger_1.isReduxConnected)()||t==="analytics"&&!(0,analyticsLogger_1.isAnalyticsConnected)()||tt(e=>{const r=!e[t],s={...e,[t]:r};return!r&&l===t&&((0,InspectorContext_1.animateNextLayout)(),H("apis")),!r&&$===t&>("apis"),s}))},Qt=(0,react_1.useCallback)(async(t,e="")=>{if(t==="apis"||t==="logs"||t==="analytics"||t==="crash"){const r=await(0,NativeInspector_1.fetchNativeCachedPage)(t,0,100,e);r&&r.items&&r.items.length>0&&(t==="apis"?K(r.items):t==="logs"?ae(r.items):t==="analytics"?ne(r.items):t==="crash"&&G(r.items))}},[]),us=(0,react_1.useCallback)(t=>{t==="redux"&&!(0,reduxLogger_1.isReduxConnected)()||t==="analytics"&&!(0,analyticsLogger_1.isAnalyticsConnected)()||(At(null),mt(null),Bt(null),kt(null),Nt(null),te(null),ue(null),typeof react_1.default.startTransition=="function"?react_1.default.startTransition(()=>{H(t),Qt(t)}):(H(t),Qt(t)),(0,telemetry_1.trackInspectorTabView)(t))},[Qt]),[is,mt]=(0,react_1.useState)(null),[fe,cs]=(0,react_1.useState)(""),[n,ls]=(0,react_1.useState)({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"}),ps=(0,react_1.useMemo)(()=>!!(n.categories.size>0&&!n.categories.has("all")||n.screens.size>0||n.sources.size>0&&!n.sources.has("all")||n.userTypes.size>0&&!n.userTypes.has("all")||n.timeWindow!=="all"||n.payloadComplexity!=="all"||n.hasRevenue||n.hasItems||n.hasUserProps||n.hasParams||n.onlyDuplicates||n.onlyConversions||n.sortBy!=="time_desc"),[n]),fs=(0,react_1.useCallback)(()=>{ls({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"})},[]),[ds,xo]=(0,react_1.useState)(!1),[gs,ho]=(0,react_1.useState)(!1),[ms,bs]=(0,react_1.useState)(new Set),Ae=(0,react_1.useRef)(new Set),[bt,Kt]=(0,react_1.useState)(null),xs=react_1.default.useContext(native_1.NavigationContext)!==void 0,E=(0,react_1.useRef)({path:"",params:null});(0,react_1.useEffect)(()=>((0,networkLogger_1.setRouteInfoProvider)(()=>E.current),(0,socketLogger_1.setSocketRouteInfoProvider)(()=>E.current),()=>{(0,networkLogger_1.setRouteInfoProvider)(null),(0,socketLogger_1.setSocketRouteInfoProvider)(null)}),[]),(0,react_1.useEffect)(()=>{if(bt){const t=(0,helpers_1.getNavigationInfo)(bt);t?.path&&(E.current=t)}},[bt]),(0,react_1.useEffect)(()=>{if(!p)return;const t=()=>{try{if(typeof p.isReady=="function"&&p.isReady()){const r=typeof p.getCurrentRoute=="function"?p.getCurrentRoute():null;r?.name&&(E.current={path:r.name,params:r.params||null});const s=p.getRootState();if(s){Kt(s);const o=(0,helpers_1.getNavigationInfo)(s);o?.path&&(E.current=o)}}}catch{}};t();const e=typeof p.addListener=="function"?p.addListener("state",()=>{t()}):null;return()=>{e&&e()}},[p]);const L=(0,react_1.useRef)(new Map),de=(0,react_1.useRef)(new Set),[hs,ys]=(0,react_1.useState)(new Set),Me=(0,react_1.useRef)(new react_native_1.Animated.Value(1)).current,we=(0,react_1.useRef)(new react_native_1.Animated.Value(.4)).current,ke=(0,react_1.useRef)(new react_native_1.Animated.Value(1)).current,Ne=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current,Ee=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current,R=(0,react_1.useRef)(new react_native_1.Animated.ValueXY({x:0,y:0})).current,xt=(0,react_1.useRef)({x:0,y:0});(0,react_1.useEffect)(()=>{const t=R.x.addListener(r=>xt.current.x=r.value),e=R.y.addListener(r=>xt.current.y=r.value);return()=>{R.x.removeListener(t),R.y.removeListener(e)}},[R]);const ht=(0,react_1.useRef)(!1),Ss=(0,react_1.useRef)(react_native_1.PanResponder.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(t,e)=>Math.abs(e.dx)>4||Math.abs(e.dy)>4,onPanResponderGrant:()=>{ht.current=!0,R.setOffset({x:xt.current.x,y:xt.current.y}),R.setValue({x:0,y:0})},onPanResponderMove:react_native_1.Animated.event([null,{dx:R.x,dy:R.y}],{useNativeDriver:!1}),onPanResponderRelease:()=>{R.flattenOffset(),setTimeout(()=>{ht.current=!1},50)},onPanResponderTerminate:()=>{R.flattenOffset(),ht.current=!1}})).current,Cs=(0,react_1.useCallback)(()=>{react_native_1.Animated.sequence([react_native_1.Animated.timing(Ee,{toValue:1,duration:320,useNativeDriver:!1}),react_native_1.Animated.timing(Ee,{toValue:0,duration:0,useNativeDriver:!1})]).start(),So()},[Ee]);(0,react_1.useEffect)(()=>{react_native_1.Platform.OS==="android"&&react_native_1.UIManager.setLayoutAnimationEnabledExperimental?.(!0)},[]),(0,react_1.useEffect)(()=>{if(m)return;const t=react_native_1.Animated.loop(react_native_1.Animated.sequence([react_native_1.Animated.timing(Me,{toValue:1.2,duration:800,useNativeDriver:!1}),react_native_1.Animated.timing(Me,{toValue:1,duration:800,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Me,m]),(0,react_1.useEffect)(()=>{if(m)return;const t=react_native_1.Animated.loop(react_native_1.Animated.sequence([react_native_1.Animated.timing(Ne,{toValue:1,duration:3200,easing:react_native_1.Easing.inOut(react_native_1.Easing.ease),useNativeDriver:!1}),react_native_1.Animated.delay(3500),react_native_1.Animated.timing(Ne,{toValue:0,duration:0,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Ne,m]),(0,react_1.useEffect)(()=>{const t=react_native_1.Animated.loop(react_native_1.Animated.sequence([react_native_1.Animated.timing(we,{toValue:1,duration:1200,useNativeDriver:!1}),react_native_1.Animated.timing(we,{toValue:.4,duration:1200,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[we]),(0,react_1.useEffect)(()=>{const t=react_native_1.Animated.loop(react_native_1.Animated.sequence([react_native_1.Animated.timing(ke,{toValue:1.3,duration:800,useNativeDriver:!1}),react_native_1.Animated.timing(ke,{toValue:.8,duration:800,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[ke]);const yo=(0,react_1.useMemo)(()=>(0,NativeInspector_2.isNativeModuleAvailable)(),[]),Q=(react_native_1.Platform.OS==="ios"||react_native_1.Platform.OS==="android")&&yo;(0,react_1.useEffect)(()=>{Q&&(0,NativeInspector_2.hideNativeFloatingButton)().catch(()=>{})},[Q,m,Ot]),(0,react_1.useEffect)(()=>{if(!Q)return;const t=(0,NativeInspector_2.subscribeNativeFloatingButtonPress)(()=>{(0,NativeInspector_2.hideNativeFloatingButton)().catch(()=>{}),q(!0)});return()=>{t()}},[Q]),(0,react_1.useEffect)(()=>{if(!Q)return;const t=(0,NativeInspector_2.subscribeNativeDeviceShake)(()=>{q(e=>{const r=!e;return r&&(0,NativeInspector_2.hideNativeFloatingButton)().catch(()=>{}),r})});return()=>{t()}},[Q]);const Ps=(0,react_1.useRef)(m);(0,react_1.useEffect)(()=>{if(Ps.current=m,m){(0,telemetry_1.trackInspectorScreenView)("InspectorModal");const t=$==="apis"||A?.[$]?$:"apis";if(H(t),(0,telemetry_1.trackInspectorTabView)(t),_t.current.length>0){const o=(0,helpers_1.deduplicateLogs)(_t.current),a=new Set(o.map(d=>d.id));de.current=a,K(o)}Ft.current.length>0&&ae(Ft.current),Dt.current.length>0&&ne(Dt.current);const e=(0,reduxLogger_1.getReduxState)();e&&(Fe(typeof e=="object"?{...e}:e),De({...(0,reduxLogger_1.getLastActionForReducer)()}));const r=(0,crashHandler_1.getCrashRecords)();r.length>0&&G(r);const s=requestAnimationFrame(()=>{or(!0)});return()=>{cancelAnimationFrame(s)}}else or(!1),be(new Set)},[m]),(0,react_1.useEffect)(()=>{(0,networkLogger_1.setupNetworkLogger)(),(0,networkLogger_1.clearNetworkLogs)(),(0,consoleLogger_1.setupConsoleLogger)(),(0,analyticsLogger_1.autoSetupAnalyticsLogger)(),(0,crashHandler_1.setupGlobalCrashHandler)(),(0,socketLogger_1.setupSocketLogger)();const t=(0,helpers_1.setupMemoryWarningHandler)(),e=Ps,r=(0,crashHandler_1.subscribeCrashEvents)(u=>{if(u.message==="__CLEARED__"){G([]),te(null),Pe(null);return}const B=(0,crashHandler_1.getCrashRecords)();B.length>0&&(0,NativeInspector_1.pushNativeLogRecord)("crash",JSON.stringify(B[0])),G(B),u.crashRecord&&Pe(u.crashRecord)}),s=(0,crashHandler_1.getCrashRecords)();s.length>0&&(s.forEach(u=>(0,NativeInspector_1.pushNativeLogRecord)("crash",JSON.stringify(u))),G(s));let o,a=!0;const d=(0,networkLogger_1.subscribeNetworkLogs)(u=>{if(_t.current=u,u.length>0&&(0,NativeInspector_1.pushNativeLogRecord)("apis",JSON.stringify(u[0])),!e.current)return;clearTimeout(o);const B=()=>{const y=(0,helpers_1.deduplicateLogs)(u),O=new Set(y.map(F=>F.id)),f=new Set;O.forEach(F=>{de.current.has(F)||f.add(F)}),de.current=O,f.size>0&&(f.forEach(F=>{if(!L.current.has(F)){const Lo=y.find(Ro=>Ro.id===F)?.routeInfo||E.current;L.current.set(F,Lo)}}),ys(f),setTimeout(()=>ys(new Set),1200)),K(y)};if(a){a=!1;const y=(0,helpers_1.deduplicateLogs)(u),O=new Set(y.map(f=>f.id));de.current=O,y.forEach(f=>{if(!L.current.has(f.id)){const F=f?.routeInfo||E.current;L.current.set(f.id,F)}}),K(y)}else o=setTimeout(B,250)});let v,M=!0;const Yt=(0,analyticsLogger_1.subscribeAnalyticsEvents)(u=>{if(Dt.current=u,u.length>0&&(0,NativeInspector_1.pushNativeLogRecord)("analytics",JSON.stringify(u[0])),!e.current)return;clearTimeout(v);const B=()=>{const y=new Set(u.map(f=>f.id)),O=new Set;y.forEach(f=>{Ae.current.has(f)||O.add(f)}),Ae.current=y,O.size>0&&(O.forEach(f=>{L.current.has(f+1e6)||L.current.set(f+1e6,E.current)}),bs(O),setTimeout(()=>bs(new Set),1200)),ne(u)};if(M){M=!1;const y=new Set(u.map(O=>O.id));Ae.current=y,ne(u)}else v=setTimeout(B,200)});let ge,Ct=!0;const _=(0,consoleLogger_1.subscribeConsoleLogs)(u=>{Ft.current=u,u.length>0&&(0,NativeInspector_1.pushNativeLogRecord)("logs",JSON.stringify(u[0])),e.current&&(clearTimeout(ge),Ct?(Ct=!1,ae(u)):ge=setTimeout(()=>{ae(u)},200))}),me=(0,reduxLogger_1.getReduxState)();me&&(Fe(typeof me=="object"?{...me}:me),De({...(0,reduxLogger_1.getLastActionForReducer)()}));const je=(0,reduxLogger_1.subscribeReduxState)(()=>{if(!e.current)return;const u=(0,reduxLogger_1.getReduxState)();Fe(u&&typeof u=="object"?{...u}:u),De({...(0,reduxLogger_1.getLastActionForReducer)()})});return()=>{d(),clearTimeout(o),Yt(),clearTimeout(v),_(),clearTimeout(ge),je(),r(),t()}},[]),(0,react_1.useEffect)(()=>{(0,networkLogger_1.setMaxNetworkLogsLimit)(N)},[N]),(0,react_1.useEffect)(()=>{(0,crashHandler_1.setMaxCrashLogsLimit)(V)},[V]),(0,react_1.useEffect)(()=>{hr(!0),Sr(!0),Pr(!1),Rr(!1),wt("")},[x]);const C=(0,react_1.useMemo)(()=>{let t=S.filter(e=>{if(k&&k!=="all"){if(k==="errors"){if(!(e.status===0||e.status==null||typeof e.status=="number"&&e.status>=400))return!1}else if(k==="success"){if(!(typeof e.status=="number"&&e.status>=200&&e.status<400))return!1}else if(k==="slow"){if((e.duration||0)<500)return!1}else if(k==="graphql"){if(!((e.url||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("apollo")))return!1}else if(e.method?.toUpperCase()!==k.toUpperCase())return!1}if(Y.size>0&&!Y.has("all")){const r=typeof e.status=="number"?e.status:parseInt(String(e.status),10);if(![...Y].some(o=>{const a=String(o).toLowerCase();if(a==="all")return!0;if(a==="failed")return e.status===0||e.status==null||!isNaN(r)&&r>=400;if(a==="2xx")return!isNaN(r)&&r>=200&&r<300;if(a==="3xx")return!isNaN(r)&&r>=300&&r<400;if(a==="4xx")return!isNaN(r)&&r>=400&&r<500;if(a==="5xx")return!isNaN(r)&&r>=500&&r<600;if(!isNaN(r)){const d=parseInt(String(o),10);if(!isNaN(d)&&d>=100)return r===d}return String(e.status).startsWith(String(o)[0])}))return!1}if(Z.size>0&&!Z.has("all")&&![...Z].some(s=>String(s).toUpperCase()==="ALL"?!0:e.method?.toUpperCase()===String(s).toUpperCase()))return!1;if(se!=="all"){const r=e.duration||0;if(se==="fast"&&r>=200||se==="normal"&&(r<200||r>500)||se==="slow"&&r<=500)return!1}if(Se!=="all"){const r=(e.url||"").toLowerCase().startsWith("https");if(Se==="https"&&!r||Se==="http"&&r)return!1}if(P&&P.trim().length>0){const r=L.current.get(e.id)?.path||"";if(!(0,helpers_1.matchNetworkLogQuery)(e,P,r,{scope:xe,isRegex:he,isCaseSensitive:ye}))return!1}return!0});if(oe==="time_asc"||Ue==="oldest"?t=[...t].reverse():oe==="duration_desc"?t=[...t].sort((e,r)=>(r.duration||0)-(e.duration||0)):oe==="duration_asc"?t=[...t].sort((e,r)=>(e.duration||0)-(r.duration||0)):oe==="size_desc"&&(t=[...t].sort((e,r)=>{const s=(e.response?JSON.stringify(e.response).length:0)+(e.request?JSON.stringify(e.request).length:0);return(r.response?JSON.stringify(r.response).length:0)+(r.request?JSON.stringify(r.request).length:0)-s})),!X){const e=[];for(const r of t){const s=e[e.length-1];s&&s.method===r.method&&s.url===r.url&&s.status===r.status?e[e.length-1]={...s,duplicateCount:(s.duplicateCount||1)+1}:e.push({...r,duplicateCount:1})}t=e}return t},[S,P,xe,he,ye,k,Y,Z,se,Se,oe,Ue,X]),Ls=(0,react_1.useMemo)(()=>{const t=new Set;return S.forEach(e=>{e.method&&t.add(e.method.toUpperCase())}),["ALL",...Array.from(t)]},[S]),Rs=(0,react_1.useCallback)((t,e)=>{Tt(r=>{const s=r[t]||new Set(["success","failed","loading"]),o=new Set(s);return o.has(e)?o.delete(e):o.add(e),{...r,[t]:o}})},[]),yt=(0,react_1.useMemo)(()=>{if(E.current?.path){const t=E.current.path.split(" \u2794 ").map(e=>e.trim()).filter(Boolean);return t.length>0?t[t.length-1]:E.current.path}if(C.length>0){const t=C[0],e=L.current.get(t.id)||t?.routeInfo;return(0,helpers_1.getLogPageName)(t,e)}return""},[C,bt]),vs=(0,react_1.useCallback)(t=>{Ge(e=>{const r=new Map(e),o=!!(P&&P.trim().length>0)?!0:t===yt,a=r.has(t)?r.get(t):o;return r.set(t,!a),r})},[yt,P]);(0,react_1.useEffect)(()=>{Ve({}),Ge(new Map)},[P,xe,he,ye,k,Y,Z,N]);const Os=(0,react_1.useCallback)((t,e=10)=>{Ve(r=>({...r,[t]:(r[t]||N||50)+e}))},[N]),As=(0,react_1.useMemo)(()=>{if(!re)return C.map((o,a)=>{const d=L.current.get(o.id)||o?.routeInfo,v=(0,helpers_1.getLogPageName)(o,d);return{type:"log",id:`flat-log-${o.id}`,log:o,isLast:a===C.length-1,color:(0,helpers_1.getDomainColor)(v)}});const t=[],e=new Map;for(let o=0;o<C.length;o++){const a=C[o],d=L.current.get(a.id)||a?.routeInfo,v=(0,helpers_1.getLogPageName)(a,d);let M=e.get(v);M||(M={pageName:v,color:(0,helpers_1.getDomainColor)(v),logs:[]},e.set(v,M)),M.logs.push(a)}const r=!!(P&&P.trim().length>0);let s=0;return e.forEach(o=>{let a=0,d=0,v=0;o.logs.forEach(_=>{_.status==null?v++:_.status===0||_.status>=400?d++:a++});const M=gr[o.pageName]||new Set(["success","failed","loading"]),Yt=r?!0:o.pageName===yt,ge=It.has(o.pageName)?!It.get(o.pageName):!Yt,Ct=o.logs[0]?.startTime||0;if(t.push({type:"header",id:`hdr-${o.pageName}`,pageName:o.pageName,color:o.color,stats:{success:a,failed:d,loading:v},timestamp:Ct,activeFilters:M,isCollapsed:ge,isFirst:s===0}),s++,!ge){const _=o.logs.filter(f=>f.status==null?M.has("loading"):f.status===0||f.status>=400?M.has("failed"):M.has("success")),me=N||50,je=mr[o.pageName]||me,u=_.slice(0,je),B=_.length>je;u.forEach(f=>{t.push({type:"log",id:`log-${f.id}`,log:f,isLast:!1,color:o.color})});const y=Math.max(0,_.length-je),O=Math.min(y||10,10);t.push({type:"loadMore",id:`loadmore-${o.pageName}`,pageName:o.pageName,color:o.color,remainingCount:y,totalCount:_.length,loadedCount:u.length,loadMoreStep:O,hasMore:B})}}),t},[re,C,S,gr,It,yt,mr,N,P]),{minStart:Ms,totalRange:ws}=(0,react_1.useMemo)(()=>{if(C.length===0)return{minStart:0,totalRange:0};const t=Math.min(...C.map(r=>r.startTime)),e=Math.max(...C.map(r=>r.startTime+(r.duration||10)));return{minStart:t,totalRange:e-t}},[C]),St=(0,react_1.useMemo)(()=>{if(!x)return null;const t=S.findIndex(e=>e.id===x.id);if(t===-1)return null;for(let e=t+1;e<S.length;e++){const r=S[e];if(r.url===x.url&&r.method===x.method)return r}return null},[x,S]),ks=St?St.request:null,Ns=St?St.response:null,Es=(0,react_1.useMemo)(()=>{let t=ze;if(fe&&fe.trim().length>0){const s=fe.trim().toLowerCase().split(/\s+/).filter(Boolean);t=t.filter(o=>{const a=[o.name||"",JSON.stringify(o.params||""),JSON.stringify(o.userProperties||""),o.screenName||"",o.pageTitle||"",o.userId||"",o.source||""].join(" ").toLowerCase();return s.every(d=>a.includes(d))})}if(n.categories.size>0&&!n.categories.has("all")&&(t=t.filter(s=>{const o=(0,helpers_1.getEventCategory)(s.name);return n.categories.has(o)})),n.timeWindow!=="all"){const s=Date.now(),o=n.timeWindow==="1m"?s-60*1e3:n.timeWindow==="5m"?s-300*1e3:n.timeWindow==="15m"?s-900*1e3:s-3600*1e3;t=t.filter(a=>a.timestamp>=o)}if(n.sources.size>0&&!n.sources.has("all")&&(t=t.filter(s=>n.sources.has(s.source||"manual"))),n.userTypes.size>0&&!n.userTypes.has("all")&&(t=t.filter(s=>{const o=!!(s.userId&&s.userId.trim()!=="");return!!(n.userTypes.has("identified")&&o||n.userTypes.has("anonymous")&&!o)})),n.payloadComplexity!=="all"&&(n.payloadComplexity==="none"?t=t.filter(s=>!s.params||Object.keys(s.params).length===0):n.payloadComplexity==="simple"?t=t.filter(s=>s.params&&Object.keys(s.params).length<=3):n.payloadComplexity==="heavy"&&(t=t.filter(s=>s.params&&Object.keys(s.params).length>3))),n.onlyConversions){const s=["purchase","item_purchase","ecommerce_purchase","sign_up","login","lead","generate_lead","tutorial_complete","add_payment_info","begin_checkout","spend_virtual_currency"];t=t.filter(o=>s.some(a=>o.name.toLowerCase().includes(a)))}n.screens.size>0&&(t=t.filter(s=>{const o=s.screenName||s.params?.firebase_screen||s.params?.screen_name||s.params?.firebase_screen_class||s.screenClass||"";return n.screens.has(o)})),n.hasRevenue&&(t=t.filter(s=>s.params?.value!=null&&!isNaN(Number(s.params.value))||s.params?.price!=null&&!isNaN(Number(s.params.price)))),n.hasItems&&(t=t.filter(s=>Array.isArray(s.params?.items)&&s.params.items.length>0)),n.hasUserProps&&(t=t.filter(s=>s.userProperties&&Object.keys(s.userProperties).length>0)),n.hasParams&&(t=t.filter(s=>s.params&&Object.keys(s.params).length>0));const e=[];for(const s of t){if(e.length===0){e.push({...s,count:1});continue}const o=e[e.length-1];o.name===s.name&&JSON.stringify(o.params)===JSON.stringify(s.params)&&JSON.stringify(o.userProperties)===JSON.stringify(s.userProperties)?(o.count=(o.count||1)+1,o.timestamp=s.timestamp,o.id=s.id):e.push({...s,count:1})}let r=e;return n.onlyDuplicates&&(r=r.filter(s=>(s.count||1)>1)),n.sortBy==="time_asc"?r=[...r].sort((s,o)=>s.timestamp-o.timestamp):n.sortBy==="revenue_desc"?r=[...r].sort((s,o)=>{const a=Number(s.params?.value??s.params?.price??0);return Number(o.params?.value??o.params?.price??0)-a}):n.sortBy==="count_desc"&&(r=[...r].sort((s,o)=>(o.count||1)-(s.count||1))),r.slice(0,ce)},[ze,fe,n,ce]),js=(0,react_1.useMemo)(()=>{let t=J;if(I.size>0&&!I.has("all")&&(t=t.filter(e=>!!(I.has("user-log")&&e.sourceMethod==="log"||I.has("info")&&(e.sourceMethod==="info"||e.type==="info"&&e.sourceMethod!=="log")||I.has("warn")&&(e.type==="warn"||e.sourceMethod==="warn")||I.has("error")&&(e.type==="error"||e.sourceMethod==="error")||I.has("analytics")&&e.message?.toLowerCase().includes("[analytics error]")))),T&&T.trim().length>0){const e=T.trim().toLowerCase().split(/\s+/).filter(Boolean);t=t.filter(r=>{const s=[r.message||"",r.caller||"",r.type||"",r.sourceMethod||"",r.stack||""].join(" ").toLowerCase();return e.every(o=>o==="error"||o==="err"?r.type==="error"||s.includes(o):o==="warn"||o==="warning"?r.type==="warn"||s.includes(o):o==="info"&&r.type==="info"||s.includes(o))})}if(t=[...t].sort((e,r)=>We==="newest"?r.timestamp-e.timestamp:e.timestamp-r.timestamp),!X){const e=[];for(const r of t){const s=e[e.length-1];s&&s.type===r.type&&s.sourceMethod===r.sourceMethod&&s.message===r.message?e[e.length-1]={...s,duplicateCount:(s.duplicateCount||1)+1}:e.push({...r,duplicateCount:1})}t=e}return t},[J,I,T,We,X]),Ts=(0,react_1.useMemo)(()=>{let t=J;if(T&&T.trim().length>0){const r=T.trim().toLowerCase().split(/\s+/).filter(Boolean);t=J.filter(s=>{const o=[s.message||"",s.caller||"",s.type||"",s.sourceMethod||"",s.stack||""].join(" ").toLowerCase();return r.every(a=>a==="error"||a==="err"?s.type==="error"||o.includes(a):a==="warn"||a==="warning"?s.type==="warn"||o.includes(a):a==="info"&&s.type==="info"||o.includes(a))})}const e=J.length;return{all:`${t.length}/${e}`,info:`${t.filter(r=>r.sourceMethod==="info"||r.type==="info"&&r.sourceMethod!=="log").length}/${e}`,warn:`${t.filter(r=>r.type==="warn"||r.sourceMethod==="warn").length}/${e}`,error:`${t.filter(r=>r.type==="error"||r.sourceMethod==="error").length}/${e}`,"user-log":`${t.filter(r=>r.sourceMethod==="log").length}/${e}`,analytics:`${t.filter(r=>r.message.toLowerCase().includes("[analytics error]")).length}/${e}`}},[J,T]),Is=(0,react_1.useCallback)(()=>{q(!1),vt(!1),setTimeout(()=>{At(null),mt(null),Bt(null),kt(null),Nt(null),te(null),ue(null)},300)},[]);function So(){(0,networkLogger_1.clearNetworkLogs)(),K([]),be(new Set),Tt({}),Ge(new Map),Ve({}),Et(new Set),jt(new Set),ar(""),de.current=new Set,L.current=new Map,(0,analyticsLogger_1.clearAnalyticsEvents)(),ne([]),cs(""),Ae.current=new Set,(0,consoleLogger_1.clearConsoleLogs)(),ae([]),Vr(new Set(["all"])),Gr("")}function _s(){if(l==="logs"){w({visible:!0,title:g("console.clearLogsTitle","Clear Console Logs"),message:g("console.clearLogsMsg","Are you sure you want to clear all console logs?"),confirmText:g("common.clearAll","Clear All"),cancelText:g("common.cancel","Cancel"),onConfirm:()=>{w(t=>({...t,visible:!1})),(0,consoleLogger_1.clearConsoleLogs)(),ae([])}});return}if(l==="analytics"){w({visible:!0,title:g("analytics.clearEventsTitle","Clear Analytics"),message:g("analytics.clearEventsMsg","Are you sure you want to clear all analytics events?"),confirmText:g("common.clearAll","Clear All"),cancelText:g("common.cancel","Cancel"),onConfirm:()=>{w(t=>({...t,visible:!1})),(0,analyticsLogger_1.clearAnalyticsEvents)(),ne([]),mt(null),Ae.current=new Set}});return}if(l==="redux"){w({visible:!0,title:g("redux.clearTimelineTitle","Clear Redux Timeline"),message:g("redux.clearTimelineMsg","Are you sure you want to clear the dispatched action history?"),confirmText:g("common.clearAll","Clear All"),cancelText:g("common.cancel","Cancel"),onConfirm:()=>{w(t=>({...t,visible:!1})),(0,reduxLogger_1.clearActionHistory)(),De({})}});return}if(l==="crash"){w({visible:!0,title:g("crash.clearTitle","Clear Crash Records"),message:g("crash.clearMessage","Are you sure you want to clear all intercepted crash records?"),confirmText:g("crash.clearConfirm","Clear All"),cancelText:g("crash.clearCancel","Cancel"),onConfirm:()=>{w(t=>({...t,visible:!1})),(0,crashHandler_1.clearCrashRecords)(),G([]),te(null)}});return}He.size>0?(K(t=>t.filter(e=>!He.has(e.id))),be(new Set)):w({visible:!0,title:g("network.clearLogsTitle","Clear Network Logs"),message:g("network.clearLogsMsg","Are you sure you want to clear all network logs?"),confirmText:g("common.clearAll","Clear All"),cancelText:g("common.cancel","Cancel"),onConfirm:()=>{w(t=>({...t,visible:!1})),Co()}})}function Co(){(0,networkLogger_1.clearNetworkLogs)(),K([]),be(new Set),Tt({}),Ge(new Map),Ve({}),Et(new Set),jt(new Set),de.current=new Set,L.current=new Map}const Fs=(0,react_1.useMemo)(()=>{if(!x)return"";try{const e=new URL(x.url).pathname.split("/").filter(Boolean);return e.length>0?`/${e.slice(-2).join("/")}`:"/"}catch{const t=x.url.split("/").filter(Boolean);return t.length>0?`/${t.slice(-2).join("/")}`:x.url}},[x]),Ds=(0,react_1.useMemo)(()=>x?(0,helpers_1.formatDisplayUrl)(x.url):"",[x]),Bs=(0,react_1.useCallback)(t=>{be(e=>{const r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r})},[]),Po=(0,react_1.useMemo)(()=>({visible:m,setVisible:q,closeModal:Is,isMinimized:tr,setIsMinimized:vt,minimizeInspector:Hs,isDismissed:Ot,setIsDismissed:rr,dismissInspector:Gs,isReady:sr,enabled:i,isEnabled:i,appIcon:b,environment:h,modalHeightPercent:Be,setModalHeightPercent:Lt,modalAnimationType:qe,setModalAnimationType:Rt,hasNavigationContext:xs,setNavState:Kt,activeTab:l,switchActiveTab:us,tabVisibility:A,toggleTabVisibility:as,lastReadApisCount:Mr,lastReadLogsCount:Or,mediaCount:Er,refreshMediaCount:Je,selected:x,setSelected:At,selectedEvent:is,setSelectedEvent:mt,selectedLog:vr,setSelectedLog:Bt,showHeaderInfo:br,setShowHeaderInfo:Ys,settingsPage:Ur,setSettingsPage:io,isAboutOpen:Wr,setIsAboutOpen:co,isSupportOpen:zr,setIsSupportOpen:lo,updateAvailable:ns,latestNpmVersion:Oe,clearAnim:Ee,activePulseAnim:we,unreadPulseAnim:ke,runClearAllWithAnimation:Cs,confirmModal:nr,setConfirmModal:w,useNativeFab:Q,fabPan:R,fabPanResponder:Ss,fabDraggedRef:ht,pulseAnim:Me,fabShineAnim:Ne,logs:S,filteredLogs:C,groupedData:As,search:P,setSearch:ar,searchScope:xe,setSearchScope:Vs,isRegexSearch:he,setIsRegexSearch:Us,isCaseSensitive:ye,setIsCaseSensitive:Ws,quickFilter:k,setQuickFilter:zs,statusFilters:Y,setStatusFilters:Et,methodFilters:Z,setMethodFilters:jt,latencyFilter:se,setLatencyFilter:Xs,protocolFilter:Se,setProtocolFilter:Qs,networkSortBy:oe,setNetworkSortBy:Ks,availableMethods:Ls,sortOrder:Ue,setSortOrder:Zs,selectedLogs:He,toggleSelect:Bs,minStart:Ms,totalRange:ws,newLogIds:hs,toggleSectionFilter:Rs,toggleSectionCollapse:vs,loadMoreSection:Os,handleDelete:_s,isGroupByPageEnabled:re,setIsGroupByPageEnabled:Mt,detailTitle:Fs,detailDisplayUrl:Ds,apiDetailActiveTab:fr,setApiDetailActiveTab:dr,detailSearch:ur,setDetailSearch:wt,reqExpanded:xr,setReqExpanded:hr,resExpanded:yr,setResExpanded:Sr,showReqDiff:Cr,setShowReqDiff:Pr,showResDiff:Lr,setShowResDiff:Rr,prevRequestData:ks,prevResponseData:Ns,logRouteMapRef:L,consoleLogs:ee,visibleConsoleLogs:J,filteredConsoleLogs:js,logSearch:T,setLogSearch:Gr,logFilters:I,setLogFilters:Vr,logCounts:Ts,logSortOrder:We,setLogSortOrder:eo,analyticsEvents:ze,filteredAnalyticsEvents:Es,analyticsSearch:fe,setAnalyticsSearch:cs,analyticsFilters:n,setAnalyticsFilters:ls,isAnalyticsFilterApplied:ps,resetAnalyticsFilters:fs,newEventIds:ms,isAnalyticsLayoutReady:ds,setIsAnalyticsLayoutReady:xo,analyticsHeaderExpanded:gs,setAnalyticsHeaderExpanded:ho,reduxState:Zt,setReduxState:Fe,reduxLastActionMap:er,reduxSearch:ir,setReduxSearch:Js,selectedReduxSlice:cr,setSelectedReduxSlice:kt,selectedReduxAction:lr,setSelectedReduxAction:Nt,reduxActiveSubTab:pr,setReduxActiveSubTab:$s,crashRecords:Ce,setCrashRecords:G,selectedCrash:Tr,setSelectedCrash:te,lastReadCrashesCount:kr,maxCrashLogs:V,setMaxCrashLogs:$e,clearAllCrashes:()=>{(0,crashHandler_1.clearCrashRecords)(),G([]),te(null)},pushRecords:U,filteredPushRecords:Br,selectedPush:_r,setSelectedPush:Fr,pushSearch:Le,setPushSearch:to,pushQuickFilter:D,setPushQuickFilter:ro,lastReadPushCount:Xe,unreadPushCount:Dr,maxPushLogs:Qe,setMaxPushLogs:Ht,clearAllPushLogs:()=>{(0,pushNotificationLogger_1.clearPushRecords)(),Ir([]),Fr(null)},simulatePush:(t,e)=>{(0,pushNotificationLogger_1.simulateTestPush)(t,e)},socketRecords:W,filteredSocketRecords:Hr,selectedSocket:Re,setSelectedSocket:ue,socketSearch:ve,setSocketSearch:oo,socketQuickFilter:j,setSocketQuickFilter:no,lastReadSocketCount:Ye,unreadSocketCount:qr,maxSocketLogs:Ze,setMaxSocketLogs:uo,clearAllSocketLogs:()=>{(0,socketLogger_1.clearSocketRecords)(),Ke([]),ue(null)},deleteSocketRecord:t=>{(0,socketLogger_1.deleteSocketRecord)(t),Ke(e=>e.filter(r=>r.id!==t)),Re?.id===t&&ue(null)},deleteMultipleSocketRecords:t=>{(0,socketLogger_1.deleteMultipleSocketRecords)(t);const e=new Set(t);Ke(r=>r.filter(s=>!e.has(s.id))),Re&&e.has(Re.id)&&ue(null)},simulateSocket:(t,e)=>{(0,socketLogger_1.simulateTestSocket)(t,e)},settingsActiveSubTab:Jr,setSettingsActiveSubTab:po,defaultTab:$,setDefaultTab:gt,isDark:_e,setIsDark:Pt,showDuplicateLogs:X,setShowDuplicateLogs:Jt,showUpdateToast:$t,setShowUpdateToast:Xt,showConsoleLevels:z,setShowConsoleLevels:Gt,resetToDefaults:mo,storage:c,maxNetworkLogs:N,setMaxNetworkLogs:rt,maxConsoleLogs:ie,setMaxConsoleLogs:et,maxAnalyticsEventsLimit:ce,setMaxAnalyticsEventsLimit:st,isAutoRamLimitEnabled:le,setIsAutoRamLimitEnabled:Vt,deviceFreeRamMb:Ut,reduxAutoRefresh:pe,setReduxAutoRefreshState:Wt,reduxExpandDepth:ot,setReduxExpandDepth:zt,captureFps:nt,setCaptureFps:$r,captureScale:at,setCaptureScale:Xr,captureBitrate:ut,setCaptureBitrate:Qr,captureMaxDurationSeconds:it,setCaptureMaxDurationSeconds:Kr,captureImageFormat:ct,setCaptureImageFormat:Yr,captureAudioMode:lt,setCaptureAudioMode:Zr,captureAutoHide:pt,setCaptureAutoHide:es,captureAutoGif:ft,setCaptureAutoGif:ts,peekMode:rs,setPeekMode:go,peekOpacity:dt,setPeekOpacity:ss}),[m,Is,sr,i,b,h,Be,qe,xs,Kt,l,us,A,as,Mr,Or,Er,Je,x,is,vr,br,Ur,Wr,zr,ns,Oe,Ee,we,ke,Cs,Q,R,Ss,Me,Ne,S,C,As,P,xe,he,ye,k,Y,Z,Ls,Ue,He,Bs,Ms,ws,hs,Rs,vs,Os,_s,re,Mt,Fs,Ds,fr,ur,xr,yr,Cr,Lr,ks,Ns,ee,J,js,T,I,Ts,We,ze,Es,fe,n,ps,fs,ms,ds,gs,Zt,er,ir,cr,lr,pr,Ce,Tr,kr,V,U,Br,_r,Le,D,Xe,Dr,Qe,W,Hr,Re,ve,j,Ye,qr,Ze,Jr,$,_e,X,$t,z,c,N,ie,ce,le,Ut,pe,ot,nt,at,ut,it,ct,lt,pt,ft,rs,dt,tr,Ot,nr]);return<InspectorContext_1.InspectorContext.Provider value={Po}>
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,c,p,b){b===void 0&&(b=p);var h=Object.getOwnPropertyDescriptor(c,p);(!h||("get"in h?!c.__esModule:h.writable||h.configurable))&&(h={enumerable:!0,get:function(){return c[p]}}),Object.defineProperty(i,b,h)}):(function(i,c,p,b){b===void 0&&(b=p),i[b]=c[p]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(i,c){Object.defineProperty(i,"default",{enumerable:!0,value:c})}):function(i,c){i.default=c}),__importStar=this&&this.__importStar||(function(){var i=function(c){return i=Object.getOwnPropertyNames||function(p){var b=[];for(var h in p)Object.prototype.hasOwnProperty.call(p,h)&&(b[b.length]=h);return b},i(c)};return function(c){if(c&&c.__esModule)return c;var p={};if(c!=null)for(var b=i(c),h=0;h<b.length;h++)b[h]!=="default"&&__createBinding(p,c,b[h]);return __setModuleDefault(p,c),p}})(),__importDefault=this&&this.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.inspectorReduxMiddleware=exports.connectReduxStore=exports.GlobalCrashScreenModal=exports.ErrorBoundary=exports.CrashTab=exports.pruneCrashRecords=exports.getMaxCrashLogsLimit=exports.computeCrashFingerprint=exports.recordUserActionBreadcrumb=exports.recordReduxBreadcrumb=exports.recordNetworkBreadcrumb=exports.recordNavigationBreadcrumb=exports.addCrashBreadcrumb=exports.recordCustomCrash=exports.parseCrashStackTrace=exports.exportCrashReport=exports.triggerGlobalCrashScreen=exports.simulateTestCrash=exports.clearCrashRecords=exports.getCrashRecords=exports.emitCrashEvent=exports.subscribeCrashEvents=exports.setupGlobalCrashHandler=exports.pruneAnalyticsLogs=exports.getMaxAnalyticsLogsLimit=exports.setMaxAnalyticsLogsLimit=exports.getCollectionEnabled=exports.getDefaultEventParameters=exports.getCurrentUserId=exports.getCurrentUserProperties=exports.clearAnalyticsEvents=exports.subscribeAnalyticsEvents=exports.logAnalyticsEvent=exports.setupAnalyticsLogger=exports.pruneConsoleLogs=exports.getMaxConsoleLogsLimit=exports.setMaxConsoleLogsLimit=exports.subscribeConsoleLogs=exports.clearConsoleLogs=exports.setupConsoleLogger=exports.getNetworkLogs=exports.pruneNetworkLogs=exports.getMaxNetworkLogsLimit=exports.setMaxNetworkLogsLimit=exports.addAxiosInterceptors=exports.subscribeNetworkLogs=exports.clearNetworkLogs=exports.setupNetworkLogger=exports.NetworkInspector=exports.InAppInspector=void 0,exports.pruneSocketRecords=exports.getMaxSocketRecordsLimit=exports.setMaxSocketRecordsLimit=exports.getSocketModuleEnabled=exports.setSocketModuleEnabled=exports.getSocketRecords=exports.subscribeSocketRecords=exports.clearSocketRecords=exports.setupSocketLogger=exports.prunePushRecords=exports.getDiscoveredPushSources=exports.setMaxPushRecordsLimit=exports.autoSetupPushLogger=exports.simulateTestPush=exports.subscribePushEvents=exports.clearPushRecords=exports.getPushRecords=exports.recordSalesforcePush=exports.recordPushNotification=exports.subscribeMemoryWarning=exports.pruneAllLogs=exports.setupMemoryWarningHandler=exports.isNativeModuleAvailable=exports.setNativeStorageItem=exports.getNativeStorageItem=exports.getNativeFpsMetrics=exports.stopNativeFpsMonitoring=exports.startNativeFpsMonitoring=exports.subscribeNativeDeviceShake=exports.subscribeNativeFloatingButtonPress=exports.setNativeFloatingButtonBadge=exports.hideNativeFloatingButton=exports.showNativeFloatingButton=exports.subscribeNativeCrashes=exports.enableNativeCrashProtection=exports.getNativeDeviceMetrics=exports.InspectCatch=exports.InspectTrackTime=exports.InspectLog=exports.registerGAPlugin=exports.getEventCategory=exports.isReduxConnected=exports.pruneReduxHistory=exports.getMaxReduxHistoryLimit=exports.setMaxReduxHistoryLimit=exports.getLastActionForReducer=exports.clearActionHistory=exports.getActionHistory=exports.subscribeReduxState=exports.getReduxState=void 0,exports.LogFilter=exports.SettingsSubTab=exports.SettingsPage=exports.ModalAnimationType=exports.LocalFilter=exports.SortOrder=exports.StatusFilter=exports.Method=exports.ActiveTab=exports.subscribeToStorageChanges=exports.clearStorageDriver=exports.removeStorageEntry=exports.setStorageEntry=exports.fetchStorageEntries=exports.getRegisteredMMKVInstanceIds=exports.isMMKVConnected=exports.isAsyncStorageConnected=exports.connectMMKV=exports.connectAsyncStorage=exports.SkeletonPlaceholder=exports.ModuleErrorBoundary=exports.SocketIcon=exports.WebsocketIcon=exports.CloudPushIcon=exports.BellIcon=exports.BrandSquareIcon=exports.BrandCircleIcon=exports.formatLogReport=exports.formatReduxReport=exports.formatAnalyticsReport=exports.formatCrashReport=exports.formatSocketReport=exports.formatPushReport=exports.formatApiReport=exports.shareLogReport=exports.shareReduxReport=exports.shareAnalyticsReport=exports.shareCrashReport=exports.shareSocketReport=exports.sharePushReport=exports.shareApiReport=exports.SocketCard=exports.SocketDetail=exports.SocketTab=exports.analyzeSocketPayload=exports.simulateTestSocket=exports.recordSocketError=exports.recordSocketClose=exports.recordSocketFrame=exports.recordSocketConnection=void 0,exports.LIB_VERSION=exports.MediaEditor=exports.ScreenRecorder=exports.ScreenCapture=exports.isFirebaseRemoteConfigAvailable=exports.fetchRemoteConfigModuleStatus=exports.SUPPORTED_LANGUAGES=exports.I18nextProvider=exports.setTranslations=exports.addTranslations=exports.setLanguage=exports.useTranslation=exports.i18n=exports.t=exports.updateAppColorsTheme=exports.getThemeColors=exports.setAppColors=exports.AppColors=exports.setAppFonts=exports.AppFonts=exports.SocketFilterType=exports.SocketDetailSubTab=exports.SocketFrameType=exports.SocketFrameDirection=exports.SocketStatus=exports.PushFilterType=exports.PushDetailSubTab=exports.PushActionType=exports.PushAppState=exports.BreadcrumbType=exports.CrashFilterType=exports.CrashDetailSubTab=exports.CrashExportFormat=exports.CrashType=exports.DiffResultType=exports.StackFrameType=exports.GAEventCategory=exports.AnalyticsEventSource=exports.ConsoleLogType=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),native_1=require("@react-navigation/native"),i18n_1=require("./i18n"),ErrorBoundary_1=__importDefault(require("./components/ErrorBoundary")),MainScreen_1=__importDefault(require("./components/Inspector/MainScreen")),GlobalCrashScreenModal_1=__importDefault(require("./components/Inspector/GlobalCrashScreenModal")),InspectorContext_1=require("./components/Inspector/InspectorContext"),helpers_1=require("./helpers"),settingsStore_1=require("./helpers/settingsStore"),NativeInspector_1=require("./native/NativeInspector"),networkLogger_1=require("./customHooks/networkLogger"),consoleLogger_1=require("./customHooks/consoleLogger"),logFilters_1=require("./customHooks/logFilters"),crashHandler_1=require("./customHooks/crashHandler"),pushNotificationLogger_1=require("./customHooks/pushNotificationLogger"),socketLogger_1=require("./customHooks/socketLogger"),telemetry_1=require("./helpers/telemetry"),analyticsLogger_1=require("./customHooks/analyticsLogger"),reduxLogger_1=require("./customHooks/reduxLogger"),NativeInspector_2=require("./native/NativeInspector"),remoteConfig_1=require("./helpers/remoteConfig"),capture_1=require("./capture"),constants_1=require("./constants"),styles_1=require("./styles"),NetworkInspector=({enabled:i=!0,storage:c,navigationRef:p,appIcon:b,environment:h,initialVisible:Hs=!1,visible:Te,remoteConfig:Ie})=>{(0,settingsStore_1.setCustomStorage)(c||null);const{t:g}=(0,i18n_1.useTranslation)(),[_e,Pt]=(0,react_1.useState)(!1),[Zt,Fe]=(0,react_1.useState)(null),[er,De]=(0,react_1.useState)({}),[Be,Lt]=(0,react_1.useState)(90),[qe,Rt]=(0,react_1.useState)("slide"),[S,K]=(0,react_1.useState)([]),[m,q]=(0,react_1.useState)(Te??Hs??!1),[tr,vt]=(0,react_1.useState)(!1),[Ot,rr]=(0,react_1.useState)(!1),Gs=(0,react_1.useCallback)(()=>{vt(!0),q(!1)},[]),Vs=(0,react_1.useCallback)(()=>{rr(!0),q(!1),(0,NativeInspector_2.hideNativeFloatingButton)().catch(()=>{})},[]);(0,react_1.useEffect)(()=>{Te!==void 0&&q(Te)},[Te]);const[sr,or]=(0,react_1.useState)(!1),[x,At]=(0,react_1.useState)(null),[He,be]=(0,react_1.useState)(new Set),[nr,w]=(0,react_1.useState)({visible:!1,title:"",message:"",onConfirm:()=>{}}),[P,ar]=(0,react_1.useState)(""),[xe,Us]=(0,react_1.useState)("all"),[he,Ws]=(0,react_1.useState)(!1),[ye,zs]=(0,react_1.useState)(!1),[re,Mt]=(0,react_1.useState)(!0),[k,Js]=(0,react_1.useState)("all"),[ur,wt]=(0,react_1.useState)(""),[ir,$s]=(0,react_1.useState)(""),[cr,kt]=(0,react_1.useState)(null),[lr,Nt]=(0,react_1.useState)(null),[pr,Xs]=(0,react_1.useState)("state"),[fr,dr]=(0,react_1.useState)("response");(0,react_1.useEffect)(()=>(react_native_1.LogBox.ignoreAllLogs(i),()=>{react_native_1.LogBox.ignoreAllLogs(!1)}),[i]),(0,react_1.useEffect)(()=>{x&&(dr("response"),wt(""))},[x]);const[Y,Et]=(0,react_1.useState)(new Set),[Z,jt]=(0,react_1.useState)(new Set),[se,Qs]=(0,react_1.useState)("all"),[Se,Ks]=(0,react_1.useState)("all"),[oe,Ys]=(0,react_1.useState)("time_desc"),[gr,Tt]=(0,react_1.useState)({}),[It,Ge]=(0,react_1.useState)(()=>new Map),[mr,Ve]=(0,react_1.useState)({}),[br,Zs]=(0,react_1.useState)(!0),[Ue,eo]=(0,react_1.useState)("newest"),[We,to]=(0,react_1.useState)("newest"),[xr,hr]=(0,react_1.useState)(!0),[yr,Sr]=(0,react_1.useState)(!0),[Cr,Pr]=(0,react_1.useState)(!1),[Lr,Rr]=(0,react_1.useState)(!1),[l,H]=(0,react_1.useState)("apis"),[ze,ne]=(0,react_1.useState)([]),[ee,ae]=(0,react_1.useState)([]),_t=(0,react_1.useRef)([]),Ft=(0,react_1.useRef)([]),Dt=(0,react_1.useRef)([]),[vr,Bt]=(0,react_1.useState)(null),[Or,Ar]=(0,react_1.useState)(0),[Mr,wr]=(0,react_1.useState)(0),[kr,Nr]=(0,react_1.useState)(0),[Er,jr]=(0,react_1.useState)(0),[Tr,ro]=(0,react_1.useState)(null),Je=(0,react_1.useCallback)(async()=>{try{const t=await capture_1.ScreenCapture.getMediaList(),e=t?t.length:0;return jr(e),e}catch{return jr(0),0}},[]);(0,react_1.useEffect)(()=>{m&&Je()},[m,Je]);const[Ce,G]=(0,react_1.useState)(()=>(0,crashHandler_1.getCrashRecords)()),[Ir,te]=(0,react_1.useState)(null),[qt,Pe]=(0,react_1.useState)(null),[V,$e]=(0,react_1.useState)(50);(0,react_1.useEffect)(()=>{(0,crashHandler_1.setMaxCrashLogsLimit)(V)},[V]),(0,react_1.useEffect)(()=>{m&&(l==="apis"&&wr(S.length),l==="logs"&&Ar(ee.length),l==="crash"&&Nr(Ce.length))},[m]),(0,react_1.useEffect)(()=>{l==="apis"&&wr(S.length)},[l,S.length]),(0,react_1.useEffect)(()=>{l==="logs"&&Ar(ee.length)},[l,ee.length]),(0,react_1.useEffect)(()=>{l==="crash"&&Nr(Ce.length)},[l,Ce.length]);const[U,_r]=(0,react_1.useState)(()=>(0,pushNotificationLogger_1.getPushRecords)()),[Fr,Dr]=(0,react_1.useState)(null),[Le,so]=(0,react_1.useState)(""),[D,oo]=(0,react_1.useState)("all"),[Xe,no]=(0,react_1.useState)(0),[Qe,Ht]=(0,react_1.useState)(50);(0,react_1.useEffect)(()=>{(0,pushNotificationLogger_1.setMaxPushRecordsLimit)(Qe)},[Qe]),(0,react_1.useEffect)(()=>(0,pushNotificationLogger_1.subscribePushEvents)(e=>{_r(e)}),[]);const Br=(0,react_1.useMemo)(()=>l==="push"?0:Math.max(0,U.length-Xe),[l,U.length,Xe]);(0,react_1.useEffect)(()=>{m&&l==="push"&&no(U.length)},[m,l,U.length]);const qr=(0,react_1.useMemo)(()=>{let t=U;if(D!=="all"){if(D==="foreground")t=t.filter(e=>(e.appState||"").toLowerCase()==="foreground");else if(D==="background")t=t.filter(e=>(e.appState||"").toLowerCase()==="background");else if(D==="opened")t=t.filter(e=>e.action==="opened");else if(D.startsWith("source:")){const e=D.replace("source:","").toLowerCase();t=t.filter(r=>(r.source||"").toLowerCase()===e)}}if(Le.trim()){const e=Le.trim().toLowerCase();t=t.filter(r=>!!(r.title&&r.title.toLowerCase().includes(e)||r.body&&r.body.toLowerCase().includes(e)||r.id&&r.id.toLowerCase().includes(e)||r.source&&r.source.toLowerCase().includes(e)||r.domain&&r.domain.toLowerCase().includes(e)||r.channelId&&r.channelId.toLowerCase().includes(e)||r.data&&JSON.stringify(r.data).toLowerCase().includes(e)))}return t},[U,D,Le]),[W,Ke]=(0,react_1.useState)(()=>(0,socketLogger_1.getSocketRecords)()),[Re,ue]=(0,react_1.useState)(null),[ve,ao]=(0,react_1.useState)(""),[j,uo]=(0,react_1.useState)("all"),[Ye,io]=(0,react_1.useState)(0),[Ze,co]=(0,react_1.useState)(50);(0,react_1.useEffect)(()=>{(0,socketLogger_1.setMaxSocketRecordsLimit)(Ze)},[Ze]),(0,react_1.useEffect)(()=>(0,socketLogger_1.subscribeSocketRecords)(e=>{Ke(e)}),[]);const Hr=(0,react_1.useMemo)(()=>l==="socket"?0:Math.max(0,W.length-Ye),[l,W.length,Ye]);(0,react_1.useEffect)(()=>{m&&l==="socket"&&io(W.length)},[m,l,W.length]);const Gr=(0,react_1.useMemo)(()=>{let t=W;if(j!=="all"&&(j==="open"?t=t.filter(e=>(e.status||"open").toLowerCase()==="open"):j==="closed"?t=t.filter(e=>(e.status||"").toLowerCase()==="closed"):j==="error"?t=t.filter(e=>(e.status||"").toLowerCase()==="error"):j==="sio"?t=t.filter(e=>e.client==="socket.io"||e.url.includes("/socket.io")):j==="wss"?t=t.filter(e=>e.url.startsWith("wss://")):j==="ws"&&(t=t.filter(e=>e.url.startsWith("ws://")))),ve.trim()){const e=ve.trim().toLowerCase();t=t.filter(r=>!!(r.url&&r.url.toLowerCase().includes(e)||r.id&&r.id.toLowerCase().includes(e)||r.client&&r.client.toLowerCase().includes(e)||r.caller&&r.caller.toLowerCase().includes(e)||r.query&&JSON.stringify(r.query).toLowerCase().includes(e)||r.frames&&r.frames.some(s=>!!(s.eventName&&s.eventName.toLowerCase().includes(e)||typeof s.data=="string"&&s.data.toLowerCase().includes(e)||s.data&&typeof s.data=="object"&&JSON.stringify(s.data).toLowerCase().includes(e)))))}return t},[W,j,ve]),[ie,et]=(0,react_1.useState)(300),[z,Gt]=(0,react_1.useState)({info:!0,warn:!0,error:!0}),J=(0,react_1.useMemo)(()=>ee.filter(e=>{const r=e.type;if(r==="info"&&!z?.info||r==="warn"&&!z?.warn||r==="error"&&!z?.error)return!1;const s=e.message||"";return![...logFilters_1.IGNORED_LOG_PREFIXES&&logFilters_1.IGNORED_LOG_PREFIXES.info||[],...logFilters_1.IGNORED_LOG_PREFIXES&&logFilters_1.IGNORED_LOG_PREFIXES.warn||[],...logFilters_1.IGNORED_LOG_PREFIXES&&logFilters_1.IGNORED_LOG_PREFIXES.error||[]].filter(d=>typeof d=="string"&&d.trim().length>0).some(d=>s.toLowerCase().trim().startsWith(d.toLowerCase().trim())||s.toLowerCase().trim().includes(d.toLowerCase().trim()))}).slice(0,ie),[ee,z,ie]),[T,Vr]=(0,react_1.useState)(""),[I,Ur]=(0,react_1.useState)(new Set(["all"])),[Wr,lo]=(0,react_1.useState)(null),[zr,po]=(0,react_1.useState)(!1),[Jr,fo]=(0,react_1.useState)(!1),[$r,go]=(0,react_1.useState)("module"),[A,tt]=(0,react_1.useState)({apis:!0,logs:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,debugging:!0,media:!0}),[N,rt]=(0,react_1.useState)(250),[ce,st]=(0,react_1.useState)(150),[le,Vt]=(0,react_1.useState)(!0),[Ut,mo]=(0,react_1.useState)(1800),[pe,Wt]=(0,react_1.useState)(!0),[ot,zt]=(0,react_1.useState)(1),[nt,Xr]=(0,react_1.useState)(60),[at,Qr]=(0,react_1.useState)(.5),[ut,Kr]=(0,react_1.useState)(0),[it,Yr]=(0,react_1.useState)(120),[ct,Zr]=(0,react_1.useState)("png"),[lt,es]=(0,react_1.useState)("none"),[pt,ts]=(0,react_1.useState)(!0),[ft,rs]=(0,react_1.useState)(!0),[ss,bo]=(0,react_1.useState)(!1),[dt,os]=(0,react_1.useState)(.75),[$,gt]=(0,react_1.useState)("apis"),[X,Jt]=(0,react_1.useState)(!1),[$t,Xt]=(0,react_1.useState)(!0);(0,react_1.useEffect)(()=>{(0,networkLogger_1.setNetworkModuleEnabled)(!!A.apis),(0,consoleLogger_1.setConsoleModuleEnabled)(!!A.logs),(0,analyticsLogger_1.setAnalyticsModuleEnabled)(!!A.analytics),(0,reduxLogger_1.setReduxModuleEnabled)(!!A.redux),(0,crashHandler_1.setCrashModuleEnabled)(!!A.crash),(0,socketLogger_1.setSocketModuleEnabled)(!!A.socket)},[A]),(0,react_1.useEffect)(()=>{(0,NativeInspector_1.getNativeSystemMetrics)().then(t=>{if(t){const e=t.totalPhysicalRamMb-t.residentRamMb,r=Math.max(200,Math.round(e>0?e:1500));if(mo(r),le){const s=(0,settingsStore_1.calculateRamBasedLimits)(r);rt(s.maxNetworkLogs),et(s.maxConsoleLogs),st(s.maxAnalyticsEvents),$e(s.maxCrashRecords),Ht(s.maxPushRecords)}}}).catch(()=>{})},[le]);const xo=async()=>{await(0,settingsStore_1.clearPersistedSettings)(),Pt(!1),(0,styles_1.toggleGlobalTheme)(!1),Lt(90),Rt("slide"),tt({apis:!0,logs:!0,analytics:!0,redux:!0,crash:!0,push:!0,socket:!0,device:!0,storage:!0,debugging:!0,media:!0}),gt("apis"),Vt(!0);const t=(0,settingsStore_1.calculateRamBasedLimits)(Ut);$e(t.maxCrashRecords),rt(t.maxNetworkLogs),et(t.maxConsoleLogs),st(t.maxAnalyticsEvents),Ht(t.maxPushRecords),Gt({info:!0,warn:!0,error:!0}),Wt(!0),zt(1),Jt(!1),Xt(!0),react_native_1.Alert.alert("Settings Reset","All settings have been reset to default values.")},ns=(0,react_1.useRef)(!1);(0,react_1.useEffect)(()=>{let t=!1;return(0,settingsStore_1.loadSettings)().then(e=>{if(!t){if(e.language&&(0,i18n_1.setLanguage)(e.language),e.isDark!=null&&(Pt(e.isDark),(0,styles_1.toggleGlobalTheme)(e.isDark)),e.modalHeightPercent!=null&&Lt(e.modalHeightPercent),e.modalAnimationType&&Rt(e.modalAnimationType),e.tabVisibility&&tt(r=>({...r,...e.tabVisibility,apis:!0})),e.defaultTab&>(e.defaultTab),e.isAutoRamLimitEnabled!=null&&Vt(e.isAutoRamLimitEnabled),e.maxNetworkLogs!=null&&rt(e.maxNetworkLogs),e.maxConsoleLogs!=null&&et(e.maxConsoleLogs),e.maxAnalyticsEventsLimit!=null&&st(e.maxAnalyticsEventsLimit),e.maxCrashLogs!=null&&$e(e.maxCrashLogs),e.showConsoleLevels&&Gt(e.showConsoleLevels),e.reduxAutoRefresh!=null&&Wt(e.reduxAutoRefresh),e.reduxExpandDepth!=null&&zt(e.reduxExpandDepth),e.captureFps!=null&&Xr(e.captureFps),e.captureScale!=null&&Qr(e.captureScale),e.captureBitrate!=null&&Kr(e.captureBitrate),e.captureMaxDurationSeconds!=null&&Yr(e.captureMaxDurationSeconds),e.captureImageFormat&&Zr(e.captureImageFormat),e.captureAudioMode&&es(e.captureAudioMode),e.captureAutoHide!=null&&ts(e.captureAutoHide),e.captureAutoGif!=null&&rs(e.captureAutoGif),e.peekOpacity!=null&&os(Math.max(.05,Math.min(1,e.peekOpacity))),e.showDuplicateLogs!=null&&Jt(e.showDuplicateLogs),e.showUpdateToast!=null&&Xt(e.showUpdateToast),e.isGroupByPageEnabled!=null&&Mt(e.isGroupByPageEnabled),e.defaultTab){const r=e.defaultTab,s={apis:!0,logs:!0,analytics:!1,redux:!1,crash:!1,device:!1,storage:!1,...e.tabVisibility||{},apis:!0};H(s[r]?r:"apis")}ns.current=!0}}),()=>{t=!0}},[]),(0,react_1.useEffect)(()=>{let t=!0;if(Ie!==!1)return(0,remoteConfig_1.fetchRemoteConfigModuleStatus)(typeof Ie=="object"?Ie:void 0).then(e=>{t&&e&&tt(r=>({...r,...e,apis:e.apis??!0}))}).catch(()=>{}),()=>{t=!1}},[Ie]),(0,react_1.useEffect)(()=>{ns.current&&(0,settingsStore_1.saveSettings)({isDark:_e,language:(0,i18n_1.getLanguage)(),modalHeightPercent:Be,modalAnimationType:qe,tabVisibility:A,defaultTab:$,maxNetworkLogs:N,maxConsoleLogs:ie,maxAnalyticsEventsLimit:ce,maxCrashLogs:V,isAutoRamLimitEnabled:le,isGroupByPageEnabled:re,showConsoleLevels:z,reduxAutoRefresh:pe,reduxExpandDepth:ot,showDuplicateLogs:X,showUpdateToast:$t,captureFps:nt,captureScale:at,captureBitrate:ut,captureMaxDurationSeconds:it,captureImageFormat:ct,captureAudioMode:lt,captureAutoHide:pt,captureAutoGif:ft,peekOpacity:dt})},[_e,Be,qe,A,$,N,ie,ce,V,le,re,z,pe,ot,X,nt,at,ut,it,ct,lt,pt,ft,dt]);const[Oe,ho]=(0,react_1.useState)(null),as=(0,react_1.useMemo)(()=>{if(!Oe)return!1;const t=s=>s.replace(/^v/,"").split(".").map(o=>parseInt(o,10)||0),e=t(constants_1.LIB_VERSION),r=t(Oe);for(let s=0;s<3;s++){if((r[s]||0)>(e[s]||0))return!0;if((r[s]||0)<(e[s]||0))return!1}return!1},[Oe]);(0,react_1.useEffect)(()=>{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"&&ho(e.version)}).catch(()=>{}),()=>{t=!0}},[]),(0,react_1.useEffect)(()=>{(0,reduxLogger_1.setReduxAutoRefresh)(pe)},[pe]),(0,react_1.useEffect)(()=>{l==="redux"&&!(0,reduxLogger_1.isReduxConnected)()&&H("apis"),l==="analytics"&&!(0,analyticsLogger_1.isAnalyticsConnected)()&&H("apis")},[l]);const us=t=>{t!=="apis"&&(t==="redux"&&!(0,reduxLogger_1.isReduxConnected)()||t==="analytics"&&!(0,analyticsLogger_1.isAnalyticsConnected)()||tt(e=>{const r=!e[t],s={...e,[t]:r};return!r&&l===t&&((0,InspectorContext_1.animateNextLayout)(),H("apis")),!r&&$===t&>("apis"),s}))},Qt=(0,react_1.useCallback)(async(t,e="")=>{if(t==="apis"||t==="logs"||t==="analytics"||t==="crash"){const r=await(0,NativeInspector_1.fetchNativeCachedPage)(t,0,100,e);r&&r.items&&r.items.length>0&&(t==="apis"?K(r.items):t==="logs"?ae(r.items):t==="analytics"?ne(r.items):t==="crash"&&G(r.items))}},[]),is=(0,react_1.useCallback)(t=>{t==="redux"&&!(0,reduxLogger_1.isReduxConnected)()||t==="analytics"&&!(0,analyticsLogger_1.isAnalyticsConnected)()||(At(null),mt(null),Bt(null),kt(null),Nt(null),te(null),ue(null),typeof react_1.default.startTransition=="function"?react_1.default.startTransition(()=>{H(t),Qt(t)}):(H(t),Qt(t)),(0,telemetry_1.trackInspectorTabView)(t))},[Qt]),[cs,mt]=(0,react_1.useState)(null),[fe,ls]=(0,react_1.useState)(""),[n,ps]=(0,react_1.useState)({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"}),fs=(0,react_1.useMemo)(()=>!!(n.categories.size>0&&!n.categories.has("all")||n.screens.size>0||n.sources.size>0&&!n.sources.has("all")||n.userTypes.size>0&&!n.userTypes.has("all")||n.timeWindow!=="all"||n.payloadComplexity!=="all"||n.hasRevenue||n.hasItems||n.hasUserProps||n.hasParams||n.onlyDuplicates||n.onlyConversions||n.sortBy!=="time_desc"),[n]),ds=(0,react_1.useCallback)(()=>{ps({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"})},[]),[gs,yo]=(0,react_1.useState)(!1),[ms,So]=(0,react_1.useState)(!1),[bs,xs]=(0,react_1.useState)(new Set),Ae=(0,react_1.useRef)(new Set),[bt,Kt]=(0,react_1.useState)(null),hs=react_1.default.useContext(native_1.NavigationContext)!==void 0,E=(0,react_1.useRef)({path:"",params:null});(0,react_1.useEffect)(()=>((0,networkLogger_1.setRouteInfoProvider)(()=>E.current),(0,socketLogger_1.setSocketRouteInfoProvider)(()=>E.current),()=>{(0,networkLogger_1.setRouteInfoProvider)(null),(0,socketLogger_1.setSocketRouteInfoProvider)(null)}),[]),(0,react_1.useEffect)(()=>{if(bt){const t=(0,helpers_1.getNavigationInfo)(bt);t?.path&&(E.current=t)}},[bt]),(0,react_1.useEffect)(()=>{if(!p)return;const t=()=>{try{if(typeof p.isReady=="function"&&p.isReady()){const r=typeof p.getCurrentRoute=="function"?p.getCurrentRoute():null;r?.name&&(E.current={path:r.name,params:r.params||null});const s=p.getRootState();if(s){Kt(s);const o=(0,helpers_1.getNavigationInfo)(s);o?.path&&(E.current=o)}}}catch{}};t();const e=typeof p.addListener=="function"?p.addListener("state",()=>{t()}):null;return()=>{e&&e()}},[p]);const L=(0,react_1.useRef)(new Map),de=(0,react_1.useRef)(new Set),[ys,Ss]=(0,react_1.useState)(new Set),Me=(0,react_1.useRef)(new react_native_1.Animated.Value(1)).current,we=(0,react_1.useRef)(new react_native_1.Animated.Value(.4)).current,ke=(0,react_1.useRef)(new react_native_1.Animated.Value(1)).current,Ne=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current,Ee=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current,R=(0,react_1.useRef)(new react_native_1.Animated.ValueXY({x:0,y:0})).current,xt=(0,react_1.useRef)({x:0,y:0});(0,react_1.useEffect)(()=>{const t=R.x.addListener(r=>xt.current.x=r.value),e=R.y.addListener(r=>xt.current.y=r.value);return()=>{R.x.removeListener(t),R.y.removeListener(e)}},[R]);const ht=(0,react_1.useRef)(!1),Cs=(0,react_1.useRef)(react_native_1.PanResponder.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(t,e)=>Math.abs(e.dx)>4||Math.abs(e.dy)>4,onPanResponderGrant:()=>{ht.current=!0,R.setOffset({x:xt.current.x,y:xt.current.y}),R.setValue({x:0,y:0})},onPanResponderMove:react_native_1.Animated.event([null,{dx:R.x,dy:R.y}],{useNativeDriver:!1}),onPanResponderRelease:()=>{R.flattenOffset(),setTimeout(()=>{ht.current=!1},50)},onPanResponderTerminate:()=>{R.flattenOffset(),ht.current=!1}})).current,Ps=(0,react_1.useCallback)(()=>{react_native_1.Animated.sequence([react_native_1.Animated.timing(Ee,{toValue:1,duration:320,useNativeDriver:!1}),react_native_1.Animated.timing(Ee,{toValue:0,duration:0,useNativeDriver:!1})]).start(),Po()},[Ee]);(0,react_1.useEffect)(()=>{react_native_1.Platform.OS==="android"&&react_native_1.UIManager.setLayoutAnimationEnabledExperimental?.(!0)},[]),(0,react_1.useEffect)(()=>{if(m)return;const t=react_native_1.Animated.loop(react_native_1.Animated.sequence([react_native_1.Animated.timing(Me,{toValue:1.2,duration:800,useNativeDriver:!1}),react_native_1.Animated.timing(Me,{toValue:1,duration:800,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Me,m]),(0,react_1.useEffect)(()=>{if(m)return;const t=react_native_1.Animated.loop(react_native_1.Animated.sequence([react_native_1.Animated.timing(Ne,{toValue:1,duration:3200,easing:react_native_1.Easing.inOut(react_native_1.Easing.ease),useNativeDriver:!1}),react_native_1.Animated.delay(3500),react_native_1.Animated.timing(Ne,{toValue:0,duration:0,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[Ne,m]),(0,react_1.useEffect)(()=>{const t=react_native_1.Animated.loop(react_native_1.Animated.sequence([react_native_1.Animated.timing(we,{toValue:1,duration:1200,useNativeDriver:!1}),react_native_1.Animated.timing(we,{toValue:.4,duration:1200,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[we]),(0,react_1.useEffect)(()=>{const t=react_native_1.Animated.loop(react_native_1.Animated.sequence([react_native_1.Animated.timing(ke,{toValue:1.3,duration:800,useNativeDriver:!1}),react_native_1.Animated.timing(ke,{toValue:.8,duration:800,useNativeDriver:!1})]));return t.start(),()=>t.stop()},[ke]);const Co=(0,react_1.useMemo)(()=>(0,NativeInspector_2.isNativeModuleAvailable)(),[]),Q=(react_native_1.Platform.OS==="ios"||react_native_1.Platform.OS==="android")&&Co;(0,react_1.useEffect)(()=>{Q&&(0,NativeInspector_2.hideNativeFloatingButton)().catch(()=>{})},[Q,m,Ot]),(0,react_1.useEffect)(()=>{if(!Q)return;const t=(0,NativeInspector_2.subscribeNativeFloatingButtonPress)(()=>{(0,NativeInspector_2.hideNativeFloatingButton)().catch(()=>{}),q(!0)});return()=>{t()}},[Q]),(0,react_1.useEffect)(()=>{if(!Q)return;const t=(0,NativeInspector_2.subscribeNativeDeviceShake)(()=>{q(e=>{const r=!e;return r&&(0,NativeInspector_2.hideNativeFloatingButton)().catch(()=>{}),r})});return()=>{t()}},[Q]);const Ls=(0,react_1.useRef)(m);(0,react_1.useEffect)(()=>{if(Ls.current=m,m){(0,telemetry_1.trackInspectorScreenView)("InspectorModal");const t=$==="apis"||A?.[$]?$:"apis";if(H(t),(0,telemetry_1.trackInspectorTabView)(t),_t.current.length>0){const o=(0,helpers_1.deduplicateLogs)(_t.current),a=new Set(o.map(d=>d.id));de.current=a,K(o)}Ft.current.length>0&&ae(Ft.current),Dt.current.length>0&&ne(Dt.current);const e=(0,reduxLogger_1.getReduxState)();e&&(Fe(typeof e=="object"?{...e}:e),De({...(0,reduxLogger_1.getLastActionForReducer)()}));const r=(0,crashHandler_1.getCrashRecords)();r.length>0&&G(r);const s=requestAnimationFrame(()=>{or(!0)});return()=>{cancelAnimationFrame(s)}}else or(!1),be(new Set)},[m]),(0,react_1.useEffect)(()=>{(0,networkLogger_1.setupNetworkLogger)(),(0,networkLogger_1.clearNetworkLogs)(),(0,consoleLogger_1.setupConsoleLogger)(),(0,analyticsLogger_1.autoSetupAnalyticsLogger)(),(0,crashHandler_1.setupGlobalCrashHandler)(),(0,socketLogger_1.setupSocketLogger)();const t=(0,helpers_1.setupMemoryWarningHandler)(),e=Ls,r=(0,crashHandler_1.subscribeCrashEvents)(u=>{if(u.message==="__CLEARED__"){G([]),te(null),Pe(null);return}const B=(0,crashHandler_1.getCrashRecords)();B.length>0&&(0,NativeInspector_1.pushNativeLogRecord)("crash",JSON.stringify(B[0])),G(B),u.crashRecord&&Pe(u.crashRecord)}),s=(0,crashHandler_1.getCrashRecords)();s.length>0&&(s.forEach(u=>(0,NativeInspector_1.pushNativeLogRecord)("crash",JSON.stringify(u))),G(s));let o,a=!0;const d=(0,networkLogger_1.subscribeNetworkLogs)(u=>{if(_t.current=u,u.length>0&&(0,NativeInspector_1.pushNativeLogRecord)("apis",JSON.stringify(u[0])),!e.current)return;clearTimeout(o);const B=()=>{const y=(0,helpers_1.deduplicateLogs)(u),O=new Set(y.map(F=>F.id)),f=new Set;O.forEach(F=>{de.current.has(F)||f.add(F)}),de.current=O,f.size>0&&(f.forEach(F=>{if(!L.current.has(F)){const vo=y.find(Oo=>Oo.id===F)?.routeInfo||E.current;L.current.set(F,vo)}}),Ss(f),setTimeout(()=>Ss(new Set),1200)),K(y)};if(a){a=!1;const y=(0,helpers_1.deduplicateLogs)(u),O=new Set(y.map(f=>f.id));de.current=O,y.forEach(f=>{if(!L.current.has(f.id)){const F=f?.routeInfo||E.current;L.current.set(f.id,F)}}),K(y)}else o=setTimeout(B,250)});let v,M=!0;const Yt=(0,analyticsLogger_1.subscribeAnalyticsEvents)(u=>{if(Dt.current=u,u.length>0&&(0,NativeInspector_1.pushNativeLogRecord)("analytics",JSON.stringify(u[0])),!e.current)return;clearTimeout(v);const B=()=>{const y=new Set(u.map(f=>f.id)),O=new Set;y.forEach(f=>{Ae.current.has(f)||O.add(f)}),Ae.current=y,O.size>0&&(O.forEach(f=>{L.current.has(f+1e6)||L.current.set(f+1e6,E.current)}),xs(O),setTimeout(()=>xs(new Set),1200)),ne(u)};if(M){M=!1;const y=new Set(u.map(O=>O.id));Ae.current=y,ne(u)}else v=setTimeout(B,200)});let ge,Ct=!0;const _=(0,consoleLogger_1.subscribeConsoleLogs)(u=>{Ft.current=u,u.length>0&&(0,NativeInspector_1.pushNativeLogRecord)("logs",JSON.stringify(u[0])),e.current&&(clearTimeout(ge),Ct?(Ct=!1,ae(u)):ge=setTimeout(()=>{ae(u)},200))}),me=(0,reduxLogger_1.getReduxState)();me&&(Fe(typeof me=="object"?{...me}:me),De({...(0,reduxLogger_1.getLastActionForReducer)()}));const je=(0,reduxLogger_1.subscribeReduxState)(()=>{if(!e.current)return;const u=(0,reduxLogger_1.getReduxState)();Fe(u&&typeof u=="object"?{...u}:u),De({...(0,reduxLogger_1.getLastActionForReducer)()})});return()=>{d(),clearTimeout(o),Yt(),clearTimeout(v),_(),clearTimeout(ge),je(),r(),t()}},[]),(0,react_1.useEffect)(()=>{(0,networkLogger_1.setMaxNetworkLogsLimit)(N)},[N]),(0,react_1.useEffect)(()=>{(0,crashHandler_1.setMaxCrashLogsLimit)(V)},[V]),(0,react_1.useEffect)(()=>{hr(!0),Sr(!0),Pr(!1),Rr(!1),wt("")},[x]);const C=(0,react_1.useMemo)(()=>{let t=S.filter(e=>{if(k&&k!=="all"){if(k==="errors"){if(!(e.status===0||e.status==null||typeof e.status=="number"&&e.status>=400))return!1}else if(k==="success"){if(!(typeof e.status=="number"&&e.status>=200&&e.status<400))return!1}else if(k==="slow"){if((e.duration||0)<500)return!1}else if(k==="graphql"){if(!((e.url||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("graphql")||(e.client||"").toLowerCase().includes("apollo")))return!1}else if(e.method?.toUpperCase()!==k.toUpperCase())return!1}if(Y.size>0&&!Y.has("all")){const r=typeof e.status=="number"?e.status:parseInt(String(e.status),10);if(![...Y].some(o=>{const a=String(o).toLowerCase();if(a==="all")return!0;if(a==="failed")return e.status===0||e.status==null||!isNaN(r)&&r>=400;if(a==="2xx")return!isNaN(r)&&r>=200&&r<300;if(a==="3xx")return!isNaN(r)&&r>=300&&r<400;if(a==="4xx")return!isNaN(r)&&r>=400&&r<500;if(a==="5xx")return!isNaN(r)&&r>=500&&r<600;if(!isNaN(r)){const d=parseInt(String(o),10);if(!isNaN(d)&&d>=100)return r===d}return String(e.status).startsWith(String(o)[0])}))return!1}if(Z.size>0&&!Z.has("all")&&![...Z].some(s=>String(s).toUpperCase()==="ALL"?!0:e.method?.toUpperCase()===String(s).toUpperCase()))return!1;if(se!=="all"){const r=e.duration||0;if(se==="fast"&&r>=200||se==="normal"&&(r<200||r>500)||se==="slow"&&r<=500)return!1}if(Se!=="all"){const r=(e.url||"").toLowerCase().startsWith("https");if(Se==="https"&&!r||Se==="http"&&r)return!1}if(P&&P.trim().length>0){const r=L.current.get(e.id)?.path||"";if(!(0,helpers_1.matchNetworkLogQuery)(e,P,r,{scope:xe,isRegex:he,isCaseSensitive:ye}))return!1}return!0});if(oe==="time_asc"||Ue==="oldest"?t=[...t].reverse():oe==="duration_desc"?t=[...t].sort((e,r)=>(r.duration||0)-(e.duration||0)):oe==="duration_asc"?t=[...t].sort((e,r)=>(e.duration||0)-(r.duration||0)):oe==="size_desc"&&(t=[...t].sort((e,r)=>{const s=(e.response?JSON.stringify(e.response).length:0)+(e.request?JSON.stringify(e.request).length:0);return(r.response?JSON.stringify(r.response).length:0)+(r.request?JSON.stringify(r.request).length:0)-s})),!X){const e=[];for(const r of t){const s=e[e.length-1];s&&s.method===r.method&&s.url===r.url&&s.status===r.status?e[e.length-1]={...s,duplicateCount:(s.duplicateCount||1)+1}:e.push({...r,duplicateCount:1})}t=e}return t},[S,P,xe,he,ye,k,Y,Z,se,Se,oe,Ue,X]),Rs=(0,react_1.useMemo)(()=>{const t=new Set;return S.forEach(e=>{e.method&&t.add(e.method.toUpperCase())}),["ALL",...Array.from(t)]},[S]),vs=(0,react_1.useCallback)((t,e)=>{Tt(r=>{const s=r[t]||new Set(["success","failed","loading"]),o=new Set(s);return o.has(e)?o.delete(e):o.add(e),{...r,[t]:o}})},[]),yt=(0,react_1.useMemo)(()=>{if(E.current?.path){const t=E.current.path.split(" \u2794 ").map(e=>e.trim()).filter(Boolean);return t.length>0?t[t.length-1]:E.current.path}if(C.length>0){const t=C[0],e=L.current.get(t.id)||t?.routeInfo;return(0,helpers_1.getLogPageName)(t,e)}return""},[C,bt]),Os=(0,react_1.useCallback)(t=>{Ge(e=>{const r=new Map(e),o=!!(P&&P.trim().length>0)?!0:t===yt,a=r.has(t)?r.get(t):o;return r.set(t,!a),r})},[yt,P]);(0,react_1.useEffect)(()=>{Ve({}),Ge(new Map)},[P,xe,he,ye,k,Y,Z,N]);const As=(0,react_1.useCallback)((t,e=10)=>{Ve(r=>({...r,[t]:(r[t]||N||50)+e}))},[N]),Ms=(0,react_1.useMemo)(()=>{if(!re)return C.map((o,a)=>{const d=L.current.get(o.id)||o?.routeInfo,v=(0,helpers_1.getLogPageName)(o,d);return{type:"log",id:`flat-log-${o.id}`,log:o,isLast:a===C.length-1,color:(0,helpers_1.getDomainColor)(v)}});const t=[],e=new Map;for(let o=0;o<C.length;o++){const a=C[o],d=L.current.get(a.id)||a?.routeInfo,v=(0,helpers_1.getLogPageName)(a,d);let M=e.get(v);M||(M={pageName:v,color:(0,helpers_1.getDomainColor)(v),logs:[]},e.set(v,M)),M.logs.push(a)}const r=!!(P&&P.trim().length>0);let s=0;return e.forEach(o=>{let a=0,d=0,v=0;o.logs.forEach(_=>{_.status==null?v++:_.status===0||_.status>=400?d++:a++});const M=gr[o.pageName]||new Set(["success","failed","loading"]),Yt=r?!0:o.pageName===yt,ge=It.has(o.pageName)?!It.get(o.pageName):!Yt,Ct=o.logs[0]?.startTime||0;if(t.push({type:"header",id:`hdr-${o.pageName}`,pageName:o.pageName,color:o.color,stats:{success:a,failed:d,loading:v},timestamp:Ct,activeFilters:M,isCollapsed:ge,isFirst:s===0}),s++,!ge){const _=o.logs.filter(f=>f.status==null?M.has("loading"):f.status===0||f.status>=400?M.has("failed"):M.has("success")),me=N||50,je=mr[o.pageName]||me,u=_.slice(0,je),B=_.length>je;u.forEach(f=>{t.push({type:"log",id:`log-${f.id}`,log:f,isLast:!1,color:o.color})});const y=Math.max(0,_.length-je),O=Math.min(y||10,10);t.push({type:"loadMore",id:`loadmore-${o.pageName}`,pageName:o.pageName,color:o.color,remainingCount:y,totalCount:_.length,loadedCount:u.length,loadMoreStep:O,hasMore:B})}}),t},[re,C,S,gr,It,yt,mr,N,P]),{minStart:ws,totalRange:ks}=(0,react_1.useMemo)(()=>{if(C.length===0)return{minStart:0,totalRange:0};const t=Math.min(...C.map(r=>r.startTime)),e=Math.max(...C.map(r=>r.startTime+(r.duration||10)));return{minStart:t,totalRange:e-t}},[C]),St=(0,react_1.useMemo)(()=>{if(!x)return null;const t=S.findIndex(e=>e.id===x.id);if(t===-1)return null;for(let e=t+1;e<S.length;e++){const r=S[e];if(r.url===x.url&&r.method===x.method)return r}return null},[x,S]),Ns=St?St.request:null,Es=St?St.response:null,js=(0,react_1.useMemo)(()=>{let t=ze;if(fe&&fe.trim().length>0){const s=fe.trim().toLowerCase().split(/\s+/).filter(Boolean);t=t.filter(o=>{const a=[o.name||"",JSON.stringify(o.params||""),JSON.stringify(o.userProperties||""),o.screenName||"",o.pageTitle||"",o.userId||"",o.source||""].join(" ").toLowerCase();return s.every(d=>a.includes(d))})}if(n.categories.size>0&&!n.categories.has("all")&&(t=t.filter(s=>{const o=(0,helpers_1.getEventCategory)(s.name);return n.categories.has(o)})),n.timeWindow!=="all"){const s=Date.now(),o=n.timeWindow==="1m"?s-60*1e3:n.timeWindow==="5m"?s-300*1e3:n.timeWindow==="15m"?s-900*1e3:s-3600*1e3;t=t.filter(a=>a.timestamp>=o)}if(n.sources.size>0&&!n.sources.has("all")&&(t=t.filter(s=>n.sources.has(s.source||"manual"))),n.userTypes.size>0&&!n.userTypes.has("all")&&(t=t.filter(s=>{const o=!!(s.userId&&s.userId.trim()!=="");return!!(n.userTypes.has("identified")&&o||n.userTypes.has("anonymous")&&!o)})),n.payloadComplexity!=="all"&&(n.payloadComplexity==="none"?t=t.filter(s=>!s.params||Object.keys(s.params).length===0):n.payloadComplexity==="simple"?t=t.filter(s=>s.params&&Object.keys(s.params).length<=3):n.payloadComplexity==="heavy"&&(t=t.filter(s=>s.params&&Object.keys(s.params).length>3))),n.onlyConversions){const s=["purchase","item_purchase","ecommerce_purchase","sign_up","login","lead","generate_lead","tutorial_complete","add_payment_info","begin_checkout","spend_virtual_currency"];t=t.filter(o=>s.some(a=>o.name.toLowerCase().includes(a)))}n.screens.size>0&&(t=t.filter(s=>{const o=s.screenName||s.params?.firebase_screen||s.params?.screen_name||s.params?.firebase_screen_class||s.screenClass||"";return n.screens.has(o)})),n.hasRevenue&&(t=t.filter(s=>s.params?.value!=null&&!isNaN(Number(s.params.value))||s.params?.price!=null&&!isNaN(Number(s.params.price)))),n.hasItems&&(t=t.filter(s=>Array.isArray(s.params?.items)&&s.params.items.length>0)),n.hasUserProps&&(t=t.filter(s=>s.userProperties&&Object.keys(s.userProperties).length>0)),n.hasParams&&(t=t.filter(s=>s.params&&Object.keys(s.params).length>0));const e=[];for(const s of t){if(e.length===0){e.push({...s,count:1});continue}const o=e[e.length-1];o.name===s.name&&JSON.stringify(o.params)===JSON.stringify(s.params)&&JSON.stringify(o.userProperties)===JSON.stringify(s.userProperties)?(o.count=(o.count||1)+1,o.timestamp=s.timestamp,o.id=s.id):e.push({...s,count:1})}let r=e;return n.onlyDuplicates&&(r=r.filter(s=>(s.count||1)>1)),n.sortBy==="time_asc"?r=[...r].sort((s,o)=>s.timestamp-o.timestamp):n.sortBy==="revenue_desc"?r=[...r].sort((s,o)=>{const a=Number(s.params?.value??s.params?.price??0);return Number(o.params?.value??o.params?.price??0)-a}):n.sortBy==="count_desc"&&(r=[...r].sort((s,o)=>(o.count||1)-(s.count||1))),r.slice(0,ce)},[ze,fe,n,ce]),Ts=(0,react_1.useMemo)(()=>{let t=J;if(I.size>0&&!I.has("all")&&(t=t.filter(e=>!!(I.has("user-log")&&e.sourceMethod==="log"||I.has("info")&&(e.sourceMethod==="info"||e.type==="info"&&e.sourceMethod!=="log")||I.has("warn")&&(e.type==="warn"||e.sourceMethod==="warn")||I.has("error")&&(e.type==="error"||e.sourceMethod==="error")||I.has("analytics")&&e.message?.toLowerCase().includes("[analytics error]")))),T&&T.trim().length>0){const e=T.trim().toLowerCase().split(/\s+/).filter(Boolean);t=t.filter(r=>{const s=[r.message||"",r.caller||"",r.type||"",r.sourceMethod||"",r.stack||""].join(" ").toLowerCase();return e.every(o=>o==="error"||o==="err"?r.type==="error"||s.includes(o):o==="warn"||o==="warning"?r.type==="warn"||s.includes(o):o==="info"&&r.type==="info"||s.includes(o))})}if(t=[...t].sort((e,r)=>We==="newest"?r.timestamp-e.timestamp:e.timestamp-r.timestamp),!X){const e=[];for(const r of t){const s=e[e.length-1];s&&s.type===r.type&&s.sourceMethod===r.sourceMethod&&s.message===r.message?e[e.length-1]={...s,duplicateCount:(s.duplicateCount||1)+1}:e.push({...r,duplicateCount:1})}t=e}return t},[J,I,T,We,X]),Is=(0,react_1.useMemo)(()=>{let t=J;if(T&&T.trim().length>0){const r=T.trim().toLowerCase().split(/\s+/).filter(Boolean);t=J.filter(s=>{const o=[s.message||"",s.caller||"",s.type||"",s.sourceMethod||"",s.stack||""].join(" ").toLowerCase();return r.every(a=>a==="error"||a==="err"?s.type==="error"||o.includes(a):a==="warn"||a==="warning"?s.type==="warn"||o.includes(a):a==="info"&&s.type==="info"||o.includes(a))})}const e=J.length;return{all:`${t.length}/${e}`,info:`${t.filter(r=>r.sourceMethod==="info"||r.type==="info"&&r.sourceMethod!=="log").length}/${e}`,warn:`${t.filter(r=>r.type==="warn"||r.sourceMethod==="warn").length}/${e}`,error:`${t.filter(r=>r.type==="error"||r.sourceMethod==="error").length}/${e}`,"user-log":`${t.filter(r=>r.sourceMethod==="log").length}/${e}`,analytics:`${t.filter(r=>r.message.toLowerCase().includes("[analytics error]")).length}/${e}`}},[J,T]),_s=(0,react_1.useCallback)(()=>{q(!1),vt(!1),setTimeout(()=>{At(null),mt(null),Bt(null),kt(null),Nt(null),te(null),ue(null)},300)},[]);function Po(){(0,networkLogger_1.clearNetworkLogs)(),K([]),be(new Set),Tt({}),Ge(new Map),Ve({}),Et(new Set),jt(new Set),ar(""),de.current=new Set,L.current=new Map,(0,analyticsLogger_1.clearAnalyticsEvents)(),ne([]),ls(""),Ae.current=new Set,(0,consoleLogger_1.clearConsoleLogs)(),ae([]),Ur(new Set(["all"])),Vr("")}function Fs(){if(l==="logs"){w({visible:!0,title:g("console.clearLogsTitle","Clear Console Logs"),message:g("console.clearLogsMsg","Are you sure you want to clear all console logs?"),confirmText:g("common.clearAll","Clear All"),cancelText:g("common.cancel","Cancel"),onConfirm:()=>{w(t=>({...t,visible:!1})),(0,consoleLogger_1.clearConsoleLogs)(),ae([])}});return}if(l==="analytics"){w({visible:!0,title:g("analytics.clearEventsTitle","Clear Analytics"),message:g("analytics.clearEventsMsg","Are you sure you want to clear all analytics events?"),confirmText:g("common.clearAll","Clear All"),cancelText:g("common.cancel","Cancel"),onConfirm:()=>{w(t=>({...t,visible:!1})),(0,analyticsLogger_1.clearAnalyticsEvents)(),ne([]),mt(null),Ae.current=new Set}});return}if(l==="redux"){w({visible:!0,title:g("redux.clearTimelineTitle","Clear Redux Timeline"),message:g("redux.clearTimelineMsg","Are you sure you want to clear the dispatched action history?"),confirmText:g("common.clearAll","Clear All"),cancelText:g("common.cancel","Cancel"),onConfirm:()=>{w(t=>({...t,visible:!1})),(0,reduxLogger_1.clearActionHistory)(),De({})}});return}if(l==="crash"){w({visible:!0,title:g("crash.clearTitle","Clear Crash Records"),message:g("crash.clearMessage","Are you sure you want to clear all intercepted crash records?"),confirmText:g("crash.clearConfirm","Clear All"),cancelText:g("crash.clearCancel","Cancel"),onConfirm:()=>{w(t=>({...t,visible:!1})),(0,crashHandler_1.clearCrashRecords)(),G([]),te(null)}});return}He.size>0?(K(t=>t.filter(e=>!He.has(e.id))),be(new Set)):w({visible:!0,title:g("network.clearLogsTitle","Clear Network Logs"),message:g("network.clearLogsMsg","Are you sure you want to clear all network logs?"),confirmText:g("common.clearAll","Clear All"),cancelText:g("common.cancel","Cancel"),onConfirm:()=>{w(t=>({...t,visible:!1})),Lo()}})}function Lo(){(0,networkLogger_1.clearNetworkLogs)(),K([]),be(new Set),Tt({}),Ge(new Map),Ve({}),Et(new Set),jt(new Set),de.current=new Set,L.current=new Map}const Ds=(0,react_1.useMemo)(()=>{if(!x)return"";try{const e=new URL(x.url).pathname.split("/").filter(Boolean);return e.length>0?`/${e.slice(-2).join("/")}`:"/"}catch{const t=x.url.split("/").filter(Boolean);return t.length>0?`/${t.slice(-2).join("/")}`:x.url}},[x]),Bs=(0,react_1.useMemo)(()=>x?(0,helpers_1.formatDisplayUrl)(x.url):"",[x]),qs=(0,react_1.useCallback)(t=>{be(e=>{const r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r})},[]),Ro=(0,react_1.useMemo)(()=>({visible:m,setVisible:q,closeModal:_s,isMinimized:tr,setIsMinimized:vt,minimizeInspector:Gs,isDismissed:Ot,setIsDismissed:rr,dismissInspector:Vs,isReady:sr,enabled:i,isEnabled:i,appIcon:b,environment:h,modalHeightPercent:Be,setModalHeightPercent:Lt,modalAnimationType:qe,setModalAnimationType:Rt,hasNavigationContext:hs,setNavState:Kt,activeTab:l,switchActiveTab:is,tabVisibility:A,toggleTabVisibility:us,lastReadApisCount:Mr,lastReadLogsCount:Or,mediaCount:Er,refreshMediaCount:Je,selected:x,setSelected:At,selectedEvent:cs,setSelectedEvent:mt,selectedLog:vr,setSelectedLog:Bt,showHeaderInfo:br,setShowHeaderInfo:Zs,settingsPage:Wr,setSettingsPage:lo,isAboutOpen:zr,setIsAboutOpen:po,isSupportOpen:Jr,setIsSupportOpen:fo,updateAvailable:as,latestNpmVersion:Oe,clearAnim:Ee,activePulseAnim:we,unreadPulseAnim:ke,runClearAllWithAnimation:Ps,confirmModal:nr,setConfirmModal:w,useNativeFab:Q,fabPan:R,fabPanResponder:Cs,fabDraggedRef:ht,pulseAnim:Me,fabShineAnim:Ne,logs:S,filteredLogs:C,groupedData:Ms,search:P,setSearch:ar,searchScope:xe,setSearchScope:Us,isRegexSearch:he,setIsRegexSearch:Ws,isCaseSensitive:ye,setIsCaseSensitive:zs,quickFilter:k,setQuickFilter:Js,statusFilters:Y,setStatusFilters:Et,methodFilters:Z,setMethodFilters:jt,latencyFilter:se,setLatencyFilter:Qs,protocolFilter:Se,setProtocolFilter:Ks,networkSortBy:oe,setNetworkSortBy:Ys,availableMethods:Rs,sortOrder:Ue,setSortOrder:eo,selectedLogs:He,toggleSelect:qs,minStart:ws,totalRange:ks,newLogIds:ys,toggleSectionFilter:vs,toggleSectionCollapse:Os,loadMoreSection:As,handleDelete:Fs,isGroupByPageEnabled:re,setIsGroupByPageEnabled:Mt,detailTitle:Ds,detailDisplayUrl:Bs,apiDetailActiveTab:fr,setApiDetailActiveTab:dr,detailSearch:ur,setDetailSearch:wt,reqExpanded:xr,setReqExpanded:hr,resExpanded:yr,setResExpanded:Sr,showReqDiff:Cr,setShowReqDiff:Pr,showResDiff:Lr,setShowResDiff:Rr,prevRequestData:Ns,prevResponseData:Es,logRouteMapRef:L,consoleLogs:ee,visibleConsoleLogs:J,filteredConsoleLogs:Ts,logSearch:T,setLogSearch:Vr,logFilters:I,setLogFilters:Ur,logCounts:Is,logSortOrder:We,setLogSortOrder:to,analyticsEvents:ze,filteredAnalyticsEvents:js,analyticsSearch:fe,setAnalyticsSearch:ls,analyticsFilters:n,setAnalyticsFilters:ps,isAnalyticsFilterApplied:fs,resetAnalyticsFilters:ds,newEventIds:bs,isAnalyticsLayoutReady:gs,setIsAnalyticsLayoutReady:yo,analyticsHeaderExpanded:ms,setAnalyticsHeaderExpanded:So,reduxState:Zt,setReduxState:Fe,reduxLastActionMap:er,reduxSearch:ir,setReduxSearch:$s,selectedReduxSlice:cr,setSelectedReduxSlice:kt,selectedReduxAction:lr,setSelectedReduxAction:Nt,reduxActiveSubTab:pr,setReduxActiveSubTab:Xs,crashRecords:Ce,setCrashRecords:G,selectedCrash:Ir,setSelectedCrash:te,lastReadCrashesCount:kr,maxCrashLogs:V,setMaxCrashLogs:$e,clearAllCrashes:()=>{(0,crashHandler_1.clearCrashRecords)(),G([]),te(null)},pushRecords:U,filteredPushRecords:qr,selectedPush:Fr,setSelectedPush:Dr,pushSearch:Le,setPushSearch:so,pushQuickFilter:D,setPushQuickFilter:oo,lastReadPushCount:Xe,unreadPushCount:Br,maxPushLogs:Qe,setMaxPushLogs:Ht,clearAllPushLogs:()=>{(0,pushNotificationLogger_1.clearPushRecords)(),_r([]),Dr(null)},simulatePush:(t,e)=>{(0,pushNotificationLogger_1.simulateTestPush)(t,e)},socketRecords:W,filteredSocketRecords:Gr,selectedSocket:Re,setSelectedSocket:ue,socketSearch:ve,setSocketSearch:ao,socketQuickFilter:j,setSocketQuickFilter:uo,lastReadSocketCount:Ye,unreadSocketCount:Hr,maxSocketLogs:Ze,setMaxSocketLogs:co,clearAllSocketLogs:()=>{(0,socketLogger_1.clearSocketRecords)(),Ke([]),ue(null)},deleteSocketRecord:t=>{(0,socketLogger_1.deleteSocketRecord)(t),Ke(e=>e.filter(r=>r.id!==t)),Re?.id===t&&ue(null)},deleteMultipleSocketRecords:t=>{(0,socketLogger_1.deleteMultipleSocketRecords)(t);const e=new Set(t);Ke(r=>r.filter(s=>!e.has(s.id))),Re&&e.has(Re.id)&&ue(null)},simulateSocket:(t,e)=>{(0,socketLogger_1.simulateTestSocket)(t,e)},settingsActiveSubTab:$r,setSettingsActiveSubTab:go,defaultTab:$,setDefaultTab:gt,isDark:_e,setIsDark:Pt,showDuplicateLogs:X,setShowDuplicateLogs:Jt,showUpdateToast:$t,setShowUpdateToast:Xt,showConsoleLevels:z,setShowConsoleLevels:Gt,resetToDefaults:xo,storage:c,maxNetworkLogs:N,setMaxNetworkLogs:rt,maxConsoleLogs:ie,setMaxConsoleLogs:et,maxAnalyticsEventsLimit:ce,setMaxAnalyticsEventsLimit:st,isAutoRamLimitEnabled:le,setIsAutoRamLimitEnabled:Vt,deviceFreeRamMb:Ut,reduxAutoRefresh:pe,setReduxAutoRefreshState:Wt,reduxExpandDepth:ot,setReduxExpandDepth:zt,captureFps:nt,setCaptureFps:Xr,captureScale:at,setCaptureScale:Qr,captureBitrate:ut,setCaptureBitrate:Kr,captureMaxDurationSeconds:it,setCaptureMaxDurationSeconds:Yr,captureImageFormat:ct,setCaptureImageFormat:Zr,captureAudioMode:lt,setCaptureAudioMode:es,captureAutoHide:pt,setCaptureAutoHide:ts,captureAutoGif:ft,setCaptureAutoGif:rs,peekMode:ss,setPeekMode:bo,peekOpacity:dt,setPeekOpacity:os,previewMediaItem:Tr,setPreviewMediaItem:ro}),[m,_s,sr,i,b,h,Be,qe,hs,Kt,l,is,A,us,Mr,Or,Er,Je,Tr,x,cs,vr,br,Wr,zr,Jr,as,Oe,Ee,we,ke,Ps,Q,R,Cs,Me,Ne,S,C,Ms,P,xe,he,ye,k,Y,Z,Rs,Ue,He,qs,ws,ks,ys,vs,Os,As,Fs,re,Mt,Ds,Bs,fr,ur,xr,yr,Cr,Lr,Ns,Es,ee,J,Ts,T,I,Is,We,ze,js,fe,n,fs,ds,bs,gs,ms,Zt,er,ir,cr,lr,pr,Ce,Ir,kr,V,U,qr,Fr,Le,D,Xe,Br,Qe,W,Gr,Re,ve,j,Ye,Hr,Ze,$r,$,_e,X,$t,z,c,N,ie,ce,le,Ut,pe,ot,nt,at,ut,it,ct,lt,pt,ft,ss,dt,tr,Ot,nr]);return<InspectorContext_1.InspectorContext.Provider value={Ro}>
|
|
2
2
|
<MainScreen_1.default/>
|
|
3
3
|
<GlobalCrashScreenModal_1.default visible={!!qt}crash={qt}onDismiss={()=>Pe(null)}onOpenInspector={()=>{const t=qt;Pe(null),t&&te(t),H("crash"),q(!0)}}onRetry={()=>{Pe(null)}}/>
|
|
4
4
|
</InspectorContext_1.InspectorContext.Provider>},NetworkInspectorWrapper=i=>{const c=i?.enabled??!0,p=i?.telemetry??!0;return(0,react_1.useEffect)(()=>(c?p?(0,telemetry_1.trackActiveTelemetryHeartbeat)(!0,i?.environment):(0,telemetry_1.setTelemetryEnabled)(!1):((0,NativeInspector_2.hideNativeFloatingButton)().catch(()=>{}),(0,telemetry_1.setTelemetryEnabled)(!1)),()=>{(0,NativeInspector_2.hideNativeFloatingButton)().catch(()=>{})}),[c,p,i?.environment]),c?<i18n_1.I18nextProvider i18n={i18n_1.i18n}>
|
|
@@ -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
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.generateNativeFilmstrip=exports.trimNativeVideo=exports.editNativePhoto=exports.copyMediaToClipboard=exports.clearAllCapturedMediaFiles=exports.deleteCapturedMediaFile=exports.fetchCapturedMediaList=exports.convertNativeVideoToGif=exports.playNativeVideo=exports.isNativeRecordingActive=exports.stopNativeVideoRecording=exports.startNativeVideoRecording=exports.takeNativeScreenshot=exports.fetchNativeCachedPage=exports.pushNativeLogRecord=exports.getNativeSystemMetrics=exports.triggerNativeHaptic=exports.setNativeStorageItem=exports.getNativeStorageItem=exports.subscribeNativeDeviceShake=exports.getNativeFpsMetrics=exports.stopNativeFpsMonitoring=exports.startNativeFpsMonitoring=exports.subscribeNativeFloatingButtonPress=exports.setNativeFloatingButtonBadge=exports.hideNativeFloatingButton=exports.showNativeFloatingButton=exports.subscribeNativeCrashes=exports.enableNativeCrashProtection=exports.getNativeDeviceMetrics=exports.isNativeModuleAvailable=void 0;const react_native_1=require("react-native"),NativeNetworkInspector_1=__importDefault(require("./NativeNetworkInspector")),NativeModule=NativeNetworkInspector_1.default||react_native_1.NativeModules.NetworkInspectorModule||react_native_1.NativeModules.NetworkInspector,isNativeModuleAvailable=()=>!!NativeModule;exports.isNativeModuleAvailable=isNativeModuleAvailable;const getNativeEmitter=()=>{try{if(react_native_1.NativeModules&&react_native_1.NativeModules.NetworkInspectorModule)return new react_native_1.NativeEventEmitter(react_native_1.NativeModules.NetworkInspectorModule)}catch{}return null},nativeEmitter=getNativeEmitter(),getNativeDeviceMetrics=async()=>{if(!NativeModule||!NativeModule.getDeviceMetrics)return null;try{return await NativeModule.getDeviceMetrics()}catch{return null}};exports.getNativeDeviceMetrics=getNativeDeviceMetrics;const enableNativeCrashProtection=async t=>{if(!NativeModule||!NativeModule.enableNativeCrashProtection)return!1;try{const e=await NativeModule.enableNativeCrashProtection();return t?.showFloatingButton===!0&&await(0,exports.showNativeFloatingButton)(),!!e}catch{return!1}};exports.enableNativeCrashProtection=enableNativeCrashProtection;const subscribeNativeCrashes=t=>{const e=[];try{const r=react_native_1.DeviceEventEmitter.addListener("onNativeCrash",t);e.push(()=>r.remove())}catch{}if(nativeEmitter)try{const r=nativeEmitter.addListener("onNativeCrash",t);e.push(()=>r.remove())}catch{}return()=>{e.forEach(r=>{try{r()}catch{}})}};exports.subscribeNativeCrashes=subscribeNativeCrashes;const showNativeFloatingButton=async t=>{if(!NativeModule||!NativeModule.showFloatingButton)return!1;try{return!!await NativeModule.showFloatingButton(t||{})}catch{return!1}};exports.showNativeFloatingButton=showNativeFloatingButton;const hideNativeFloatingButton=async()=>{if(!NativeModule||!NativeModule.hideFloatingButton)return!1;try{return!!await NativeModule.hideFloatingButton()}catch{return!1}};exports.hideNativeFloatingButton=hideNativeFloatingButton;const setNativeFloatingButtonBadge=async t=>{if(!NativeModule||!NativeModule.setFloatingButtonBadge)return!1;try{return!!await NativeModule.setFloatingButtonBadge(t)}catch{return!1}};exports.setNativeFloatingButtonBadge=setNativeFloatingButtonBadge;const subscribeNativeFloatingButtonPress=t=>{const e=[];try{const s=react_native_1.DeviceEventEmitter.addListener("onFloatingButtonPress",t);e.push(()=>s.remove())}catch{}if(nativeEmitter)try{const s=nativeEmitter.addListener("onFloatingButtonPress",t);e.push(()=>s.remove())}catch{}const r=setInterval(async()=>{if(NativeModule&&NativeModule.checkFloatingButtonPress)try{await NativeModule.checkFloatingButtonPress()&&t()}catch{}},180);return e.push(()=>clearInterval(r)),()=>{e.forEach(s=>{try{s()}catch{}})}};exports.subscribeNativeFloatingButtonPress=subscribeNativeFloatingButtonPress;const startNativeFpsMonitoring=async()=>{if(!NativeModule||!NativeModule.startFpsMonitoring)return!1;try{return!!await NativeModule.startFpsMonitoring()}catch{return!1}};exports.startNativeFpsMonitoring=startNativeFpsMonitoring;const stopNativeFpsMonitoring=async()=>{if(!NativeModule||!NativeModule.stopFpsMonitoring)return!1;try{return!!await NativeModule.stopFpsMonitoring()}catch{return!1}};exports.stopNativeFpsMonitoring=stopNativeFpsMonitoring;const getNativeFpsMetrics=async()=>{if(!NativeModule||!NativeModule.getFpsMetrics)return{fps:60,targetFps:60};try{const t=await NativeModule.getFpsMetrics();return{fps:typeof t?.fps=="number"?t.fps:60,targetFps:typeof t?.targetFps=="number"?t.targetFps:60}}catch{return{fps:60,targetFps:60}}};exports.getNativeFpsMetrics=getNativeFpsMetrics;const subscribeNativeDeviceShake=t=>{if(!nativeEmitter)return()=>{};try{const e=nativeEmitter.addListener("onDeviceShake",t);return()=>{e.remove()}}catch{return()=>{}}};exports.subscribeNativeDeviceShake=subscribeNativeDeviceShake;const getNativeStorageItem=async t=>{if(!NativeModule||!NativeModule.getNativeStorageItem)return null;try{const e=await NativeModule.getNativeStorageItem(t);return typeof e=="string"?e:null}catch{return null}};exports.getNativeStorageItem=getNativeStorageItem;const setNativeStorageItem=async(t,e)=>{if(!NativeModule||!NativeModule.setNativeStorageItem)return!1;try{return!!await NativeModule.setNativeStorageItem(t,e)}catch{return!1}};exports.setNativeStorageItem=setNativeStorageItem;const triggerNativeHaptic=async(t="light")=>{if(!NativeModule||!NativeModule.triggerHaptic)return!1;try{return!!await NativeModule.triggerHaptic(t)}catch{return!1}};exports.triggerNativeHaptic=triggerNativeHaptic;const getNativeSystemMetrics=async()=>{if(!NativeModule||!NativeModule.getNativeSystemMetrics)return null;try{return await NativeModule.getNativeSystemMetrics()}catch{return null}};exports.getNativeSystemMetrics=getNativeSystemMetrics;const pushNativeLogRecord=async(t,e)=>{if(!NativeModule||!NativeModule.pushNativeLogRecord)return!1;try{return!!await NativeModule.pushNativeLogRecord(t,e)}catch{return!1}};exports.pushNativeLogRecord=pushNativeLogRecord;const fetchNativeCachedPage=async(t,e=0,r=50,s="")=>{if(!NativeModule||!NativeModule.getNativeCachedPage)return null;try{const i=await NativeModule.getNativeCachedPage(t,e,r,s);if(!i)return null;const a=JSON.parse(i),n=(a.items||[]).map(o=>typeof o=="string"?JSON.parse(o):o);return{pageKey:a.pageKey||t,total:a.total||0,offset:a.offset||e,items:n}}catch{return null}};exports.fetchNativeCachedPage=fetchNativeCachedPage;const takeNativeScreenshot=async t=>{if(!NativeModule||!NativeModule.takeScreenshot)return null;try{return await NativeModule.takeScreenshot(t||{})}catch{return null}};exports.takeNativeScreenshot=takeNativeScreenshot;const startNativeVideoRecording=async t=>{if(!NativeModule||!NativeModule.startVideoRecording)return!1;try{return!!await NativeModule.startVideoRecording(t||{})}catch{return!1}};exports.startNativeVideoRecording=startNativeVideoRecording;const stopNativeVideoRecording=async()=>{if(!NativeModule||!NativeModule.stopVideoRecording)return null;try{return await NativeModule.stopVideoRecording()}catch{return null}};exports.stopNativeVideoRecording=stopNativeVideoRecording;const isNativeRecordingActive=async()=>{if(!NativeModule||!NativeModule.isRecording)return!1;try{return!!await NativeModule.isRecording()}catch{return!1}};exports.isNativeRecordingActive=isNativeRecordingActive;const playNativeVideo=async t=>{if(!NativeModule||!NativeModule.playVideo)return!1;try{return!!await NativeModule.playVideo(t)}catch{return!1}};exports.playNativeVideo=playNativeVideo;const convertNativeVideoToGif=async(t,e)=>{if(!NativeModule||!NativeModule.convertToGif)return null;try{return await NativeModule.convertToGif(t,e||{})}catch{return null}};exports.convertNativeVideoToGif=convertNativeVideoToGif;const fetchCapturedMediaList=async()=>{if(!NativeModule||!NativeModule.getCapturedMedia)return[];try{const t=await NativeModule.getCapturedMedia();if(!t)return[];const e=typeof t=="string"?JSON.parse(t):t;return Array.isArray(e)?e:[]}catch{return[]}};exports.fetchCapturedMediaList=fetchCapturedMediaList;const deleteCapturedMediaFile=async t=>{if(!NativeModule||!NativeModule.deleteCapturedMedia)return!1;try{return!!await NativeModule.deleteCapturedMedia(t)}catch{return!1}};exports.deleteCapturedMediaFile=deleteCapturedMediaFile;const clearAllCapturedMediaFiles=async()=>{if(!NativeModule||!NativeModule.clearAllCapturedMedia)return!1;try{return!!await NativeModule.clearAllCapturedMedia()}catch{return!1}};exports.clearAllCapturedMediaFiles=clearAllCapturedMediaFiles;const copyMediaToClipboard=async t=>{if(!t||!NativeModule||!NativeModule.copyMediaToClipboard)return!1;try{return!!(await NativeModule.copyMediaToClipboard(t))?.success}catch{return!1}};exports.copyMediaToClipboard=copyMediaToClipboard;const editNativePhoto=async t=>{if(!NativeModule||!NativeModule.editPhoto)return null;try{return await NativeModule.editPhoto(t)}catch{return null}};exports.editNativePhoto=editNativePhoto;const trimNativeVideo=async t=>{if(!NativeModule||!NativeModule.trimVideo)return null;try{return await NativeModule.trimVideo(t)}catch{return null}};exports.trimNativeVideo=trimNativeVideo;const generateNativeFilmstrip=async t=>{if(!NativeModule||!NativeModule.generateFilmstrip)return null;try{return await NativeModule.generateFilmstrip(t)}catch{return null}};exports.generateNativeFilmstrip=generateNativeFilmstrip;
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.pickNativeMedia=exports.generateNativeFilmstrip=exports.trimNativeVideo=exports.editNativePhoto=exports.copyMediaToClipboard=exports.clearAllCapturedMediaFiles=exports.deleteCapturedMediaFile=exports.fetchCapturedMediaList=exports.convertNativeVideoToGif=exports.playNativeVideo=exports.isNativeRecordingActive=exports.stopNativeVideoRecording=exports.startNativeVideoRecording=exports.takeNativeScreenshot=exports.fetchNativeCachedPage=exports.pushNativeLogRecord=exports.getNativeSystemMetrics=exports.triggerNativeHaptic=exports.setNativeStorageItem=exports.getNativeStorageItem=exports.subscribeNativeDeviceShake=exports.getNativeFpsMetrics=exports.stopNativeFpsMonitoring=exports.startNativeFpsMonitoring=exports.subscribeNativeFloatingButtonPress=exports.setNativeFloatingButtonBadge=exports.hideNativeFloatingButton=exports.showNativeFloatingButton=exports.subscribeNativeCrashes=exports.enableNativeCrashProtection=exports.getNativeDeviceMetrics=exports.isNativeModuleAvailable=void 0;const react_native_1=require("react-native"),NativeNetworkInspector_1=__importDefault(require("./NativeNetworkInspector")),NativeModule=NativeNetworkInspector_1.default||react_native_1.NativeModules.NetworkInspectorModule||react_native_1.NativeModules.NetworkInspector,isNativeModuleAvailable=()=>!!NativeModule;exports.isNativeModuleAvailable=isNativeModuleAvailable;const getNativeEmitter=()=>{try{if(react_native_1.NativeModules&&react_native_1.NativeModules.NetworkInspectorModule)return new react_native_1.NativeEventEmitter(react_native_1.NativeModules.NetworkInspectorModule)}catch{}return null},nativeEmitter=getNativeEmitter(),getNativeDeviceMetrics=async()=>{if(!NativeModule||!NativeModule.getDeviceMetrics)return null;try{return await NativeModule.getDeviceMetrics()}catch{return null}};exports.getNativeDeviceMetrics=getNativeDeviceMetrics;const enableNativeCrashProtection=async t=>{if(!NativeModule||!NativeModule.enableNativeCrashProtection)return!1;try{const e=await NativeModule.enableNativeCrashProtection();return t?.showFloatingButton===!0&&await(0,exports.showNativeFloatingButton)(),!!e}catch{return!1}};exports.enableNativeCrashProtection=enableNativeCrashProtection;const subscribeNativeCrashes=t=>{const e=[];try{const r=react_native_1.DeviceEventEmitter.addListener("onNativeCrash",t);e.push(()=>r.remove())}catch{}if(nativeEmitter)try{const r=nativeEmitter.addListener("onNativeCrash",t);e.push(()=>r.remove())}catch{}return()=>{e.forEach(r=>{try{r()}catch{}})}};exports.subscribeNativeCrashes=subscribeNativeCrashes;const showNativeFloatingButton=async t=>{if(!NativeModule||!NativeModule.showFloatingButton)return!1;try{return!!await NativeModule.showFloatingButton(t||{})}catch{return!1}};exports.showNativeFloatingButton=showNativeFloatingButton;const hideNativeFloatingButton=async()=>{if(!NativeModule||!NativeModule.hideFloatingButton)return!1;try{return!!await NativeModule.hideFloatingButton()}catch{return!1}};exports.hideNativeFloatingButton=hideNativeFloatingButton;const setNativeFloatingButtonBadge=async t=>{if(!NativeModule||!NativeModule.setFloatingButtonBadge)return!1;try{return!!await NativeModule.setFloatingButtonBadge(t)}catch{return!1}};exports.setNativeFloatingButtonBadge=setNativeFloatingButtonBadge;const subscribeNativeFloatingButtonPress=t=>{const e=[];try{const s=react_native_1.DeviceEventEmitter.addListener("onFloatingButtonPress",t);e.push(()=>s.remove())}catch{}if(nativeEmitter)try{const s=nativeEmitter.addListener("onFloatingButtonPress",t);e.push(()=>s.remove())}catch{}const r=setInterval(async()=>{if(NativeModule&&NativeModule.checkFloatingButtonPress)try{await NativeModule.checkFloatingButtonPress()&&t()}catch{}},180);return e.push(()=>clearInterval(r)),()=>{e.forEach(s=>{try{s()}catch{}})}};exports.subscribeNativeFloatingButtonPress=subscribeNativeFloatingButtonPress;const startNativeFpsMonitoring=async()=>{if(!NativeModule||!NativeModule.startFpsMonitoring)return!1;try{return!!await NativeModule.startFpsMonitoring()}catch{return!1}};exports.startNativeFpsMonitoring=startNativeFpsMonitoring;const stopNativeFpsMonitoring=async()=>{if(!NativeModule||!NativeModule.stopFpsMonitoring)return!1;try{return!!await NativeModule.stopFpsMonitoring()}catch{return!1}};exports.stopNativeFpsMonitoring=stopNativeFpsMonitoring;const getNativeFpsMetrics=async()=>{if(!NativeModule||!NativeModule.getFpsMetrics)return{fps:60,targetFps:60};try{const t=await NativeModule.getFpsMetrics();return{fps:typeof t?.fps=="number"?t.fps:60,targetFps:typeof t?.targetFps=="number"?t.targetFps:60}}catch{return{fps:60,targetFps:60}}};exports.getNativeFpsMetrics=getNativeFpsMetrics;const subscribeNativeDeviceShake=t=>{if(!nativeEmitter)return()=>{};try{const e=nativeEmitter.addListener("onDeviceShake",t);return()=>{e.remove()}}catch{return()=>{}}};exports.subscribeNativeDeviceShake=subscribeNativeDeviceShake;const getNativeStorageItem=async t=>{if(!NativeModule||!NativeModule.getNativeStorageItem)return null;try{const e=await NativeModule.getNativeStorageItem(t);return typeof e=="string"?e:null}catch{return null}};exports.getNativeStorageItem=getNativeStorageItem;const setNativeStorageItem=async(t,e)=>{if(!NativeModule||!NativeModule.setNativeStorageItem)return!1;try{return!!await NativeModule.setNativeStorageItem(t,e)}catch{return!1}};exports.setNativeStorageItem=setNativeStorageItem;const triggerNativeHaptic=async(t="light")=>{if(!NativeModule||!NativeModule.triggerHaptic)return!1;try{return!!await NativeModule.triggerHaptic(t)}catch{return!1}};exports.triggerNativeHaptic=triggerNativeHaptic;const getNativeSystemMetrics=async()=>{if(!NativeModule||!NativeModule.getNativeSystemMetrics)return null;try{return await NativeModule.getNativeSystemMetrics()}catch{return null}};exports.getNativeSystemMetrics=getNativeSystemMetrics;const pushNativeLogRecord=async(t,e)=>{if(!NativeModule||!NativeModule.pushNativeLogRecord)return!1;try{return!!await NativeModule.pushNativeLogRecord(t,e)}catch{return!1}};exports.pushNativeLogRecord=pushNativeLogRecord;const fetchNativeCachedPage=async(t,e=0,r=50,s="")=>{if(!NativeModule||!NativeModule.getNativeCachedPage)return null;try{const i=await NativeModule.getNativeCachedPage(t,e,r,s);if(!i)return null;const a=JSON.parse(i),n=(a.items||[]).map(o=>typeof o=="string"?JSON.parse(o):o);return{pageKey:a.pageKey||t,total:a.total||0,offset:a.offset||e,items:n}}catch{return null}};exports.fetchNativeCachedPage=fetchNativeCachedPage;const takeNativeScreenshot=async t=>{if(!NativeModule||!NativeModule.takeScreenshot)return null;try{return await NativeModule.takeScreenshot(t||{})}catch{return null}};exports.takeNativeScreenshot=takeNativeScreenshot;const startNativeVideoRecording=async t=>{if(!NativeModule||!NativeModule.startVideoRecording)return!1;try{return!!await NativeModule.startVideoRecording(t||{})}catch{return!1}};exports.startNativeVideoRecording=startNativeVideoRecording;const stopNativeVideoRecording=async()=>{if(!NativeModule||!NativeModule.stopVideoRecording)return null;try{return await NativeModule.stopVideoRecording()}catch{return null}};exports.stopNativeVideoRecording=stopNativeVideoRecording;const isNativeRecordingActive=async()=>{if(!NativeModule||!NativeModule.isRecording)return!1;try{return!!await NativeModule.isRecording()}catch{return!1}};exports.isNativeRecordingActive=isNativeRecordingActive;const playNativeVideo=async t=>{if(!NativeModule||!NativeModule.playVideo)return!1;try{return!!await NativeModule.playVideo(t)}catch{return!1}};exports.playNativeVideo=playNativeVideo;const convertNativeVideoToGif=async(t,e)=>{if(!NativeModule||!NativeModule.convertToGif)return null;try{return await NativeModule.convertToGif(t,e||{})}catch{return null}};exports.convertNativeVideoToGif=convertNativeVideoToGif;const fetchCapturedMediaList=async()=>{if(!NativeModule||!NativeModule.getCapturedMedia)return[];try{const t=await NativeModule.getCapturedMedia();if(!t)return[];const e=typeof t=="string"?JSON.parse(t):t;return Array.isArray(e)?e:[]}catch{return[]}};exports.fetchCapturedMediaList=fetchCapturedMediaList;const deleteCapturedMediaFile=async t=>{if(!NativeModule||!NativeModule.deleteCapturedMedia)return!1;try{return!!await NativeModule.deleteCapturedMedia(t)}catch{return!1}};exports.deleteCapturedMediaFile=deleteCapturedMediaFile;const clearAllCapturedMediaFiles=async()=>{if(!NativeModule||!NativeModule.clearAllCapturedMedia)return!1;try{return!!await NativeModule.clearAllCapturedMedia()}catch{return!1}};exports.clearAllCapturedMediaFiles=clearAllCapturedMediaFiles;const copyMediaToClipboard=async t=>{if(!t||!NativeModule||!NativeModule.copyMediaToClipboard)return!1;try{return!!(await NativeModule.copyMediaToClipboard(t))?.success}catch{return!1}};exports.copyMediaToClipboard=copyMediaToClipboard;const editNativePhoto=async t=>{if(!NativeModule||!NativeModule.editPhoto)return null;try{return await NativeModule.editPhoto(t)}catch{return null}};exports.editNativePhoto=editNativePhoto;const trimNativeVideo=async t=>{if(!NativeModule||!NativeModule.trimVideo)return null;try{return await NativeModule.trimVideo(t)}catch{return null}};exports.trimNativeVideo=trimNativeVideo;const generateNativeFilmstrip=async t=>{if(!NativeModule||!NativeModule.generateFilmstrip)return null;try{return await NativeModule.generateFilmstrip(t)}catch{return null}};exports.generateNativeFilmstrip=generateNativeFilmstrip;const pickNativeMedia=async t=>{if(!NativeModule||!NativeModule.pickMedia)return null;try{return await NativeModule.pickMedia(t||{})||null}catch{return null}};exports.pickNativeMedia=pickNativeMedia;
|
|
@@ -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);
|
package/dist/esm/capture.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { ScreenshotOptions, ScreenshotResult, RecordingOptions, RecordingResult, GifConversionOptions, CapturedMediaItem } from './native/NativeInspector';
|
|
2
|
-
export type { ScreenshotOptions, ScreenshotResult, RecordingOptions, RecordingResult, GifConversionOptions, CapturedMediaItem, };
|
|
1
|
+
import { ScreenshotOptions, ScreenshotResult, RecordingOptions, RecordingResult, GifConversionOptions, CapturedMediaItem, PickMediaOptions } from './native/NativeInspector';
|
|
2
|
+
export type { ScreenshotOptions, ScreenshotResult, RecordingOptions, RecordingResult, GifConversionOptions, CapturedMediaItem, PickMediaOptions, };
|
|
3
3
|
export type ImageFormat = 'png' | 'jpeg' | 'webp';
|
|
4
4
|
export type AudioSource = 'none' | 'app' | 'mic' | 'mixed';
|
|
5
5
|
export type RecordingFormat = 'mp4' | 'gif';
|
|
6
|
+
export declare const generateCaptureId: (fileType: string, ext: string) => string;
|
|
6
7
|
export declare const ScreenCapture: {
|
|
7
8
|
takeScreenshot: (options?: ScreenshotOptions) => Promise<ScreenshotResult | null>;
|
|
8
9
|
captureScreenshot: (options?: ScreenshotOptions) => Promise<ScreenshotResult | null>;
|
|
@@ -14,6 +15,7 @@ export declare const ScreenCapture: {
|
|
|
14
15
|
getMediaList: () => Promise<CapturedMediaItem[]>;
|
|
15
16
|
deleteMedia: (uri: string) => Promise<boolean>;
|
|
16
17
|
clearAllMedia: () => Promise<boolean>;
|
|
18
|
+
pickMedia: (options?: PickMediaOptions) => Promise<CapturedMediaItem | null>;
|
|
17
19
|
};
|
|
18
20
|
export declare const ScreenRecorder: {
|
|
19
21
|
takeScreenshot: (options?: ScreenshotOptions) => Promise<ScreenshotResult | null>;
|
|
@@ -26,5 +28,6 @@ export declare const ScreenRecorder: {
|
|
|
26
28
|
getMediaList: () => Promise<CapturedMediaItem[]>;
|
|
27
29
|
deleteMedia: (uri: string) => Promise<boolean>;
|
|
28
30
|
clearAllMedia: () => Promise<boolean>;
|
|
31
|
+
pickMedia: (options?: PickMediaOptions) => Promise<CapturedMediaItem | null>;
|
|
29
32
|
};
|
|
30
33
|
export default ScreenCapture;
|
package/dist/esm/capture.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{takeNativeScreenshot as
|
|
1
|
+
import{takeNativeScreenshot as c,startNativeVideoRecording as u,stopNativeVideoRecording as l,isNativeRecordingActive as p,playNativeVideo as g,convertNativeVideoToGif as y,fetchCapturedMediaList as M,deleteCapturedMediaFile as v,clearAllCapturedMediaFiles as $,pickNativeMedia as h}from"./native/NativeInspector";export const generateCaptureId=(e,n)=>{const t=new Date,r=(a,d=2)=>String(a).padStart(d,"0"),s=`${t.getFullYear()}${r(t.getMonth()+1)}${r(t.getDate())}_${r(t.getHours())}${r(t.getMinutes())}${r(t.getSeconds())}_${r(t.getMilliseconds(),3)}`,i="abcdefghijklmnopqrstuvwxyz0123456789";let o="";for(let a=0;a<6;a++)o+=i[Math.floor(Math.random()*i.length)];return`rn_iai_${s}_${e}_${o}.${n}`},ScreenCapture={takeScreenshot:async e=>c(e),captureScreenshot:async e=>c(e),startRecording:async e=>u(e),stopRecording:async()=>l(),isRecording:async()=>p(),playVideo:async e=>g(e),convertToGif:async(e,n)=>y(e,n),getMediaList:async()=>M(),deleteMedia:async e=>v(e),clearAllMedia:async()=>$(),pickMedia:async e=>h(e)},ScreenRecorder=ScreenCapture;export default ScreenCapture;
|
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
import{useCallback as
|
|
1
|
+
import{useCallback as L,useEffect as X,useRef as d,useState as E}from"react";import{Animated as s,PanResponder as ce,Platform as b,StyleSheet as We,Text as I,TouchableOpacity as Ne,useWindowDimensions as He,View as S}from"react-native";import Ye from"react-native-linear-gradient";import{useInspector as $e}from"./InspectorContext";import F from"../TouchableScale";import Se from"../AppHeaderLogo";import{AndroidIcon as Ge,AppleIcon as Xe,ScreenshotCaptureIcon as Ze,ScreenRecordIcon as _e,CloseWhite as Re,MaximizeIcon as Ue,NpmIcon as Je}from"../NetworkIcons";import{ScreenCapture as V,generateCaptureId as K}from"../../capture";import{triggerNativeHaptic as u}from"../../native/NativeInspector";import{showToast as m}from"../../helpers/toast";import{getAppName as Ke,getAppVersionAndBuild as Qe}from"../../helpers";import{LIB_VERSION as et}from"../../constants";import{AppColors as o}from"../../styles/AppColors";import{AppFonts as W}from"../../styles/AppFonts";import Ce from"../../styles";import{useTranslation as tt}from"../../i18n";import{MediaPreviewModal as St}from"./MediaPreviewModal";const vt=()=>{const{setVisible:P,isMinimized:Te,setIsMinimized:k,dismissInspector:Ie,appIcon:Q,fabPan:a,fabPanResponder:xt,fabDraggedRef:N,pulseAnim:Ve,fabShineAnim:Rt,refreshMediaCount:v,captureFps:ee,captureScale:te,captureBitrate:Z,captureMaxDurationSeconds:re,captureAudioMode:oe,previewMediaItem:ie,setPreviewMediaItem:D}=$e(),{width:M,height:x}=He(),{t:n}=tt(),[Pe]=E(()=>Qe().formatted),[p,H]=E(!1),[De,j]=E(0),R=d(null),[Me,_]=E(!1),[q,O]=E(!1),f=d(!1),z=d(new s.Value(0)).current,Y=d(new s.Value(1)).current,C=d({x:0,y:0});X(()=>{const e=a.x.addListener(r=>C.current.x=r.value),t=a.y.addListener(r=>C.current.y=r.value);return()=>{a.x.removeListener(e),a.y.removeListener(t)}},[a]);const l=68,$=8,Oe=L(()=>{const e=C.current.x,t=C.current.y,r=20,B=180,g=M-r-l/2+e,G=x-B-l/2+t;let U=e,J=t,A=!1;g<$+l/2?(U=e+($+l/2-g),A=!0):g>M-$-l/2&&(U=e-(g-(M-$-l/2)),A=!0);const se=b.OS==="ios"?60:40,ae=b.OS==="ios"?40:24;G<se+l/2?(J=t+(se+l/2-G),A=!0):G>x-ae-l/2&&(J=t-(G-(x-ae-l/2)),A=!0),A&&s.spring(a,{toValue:{x:U,y:J},useNativeDriver:!1,tension:80,friction:8}).start()},[a,M,x]),ze=d(ce.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>4||Math.abs(t.dy)>4,onPanResponderGrant:()=>{N.current=!0,a.setOffset({x:C.current.x,y:C.current.y}),a.setValue({x:0,y:0}),f.current=!1,O(!1),_(!0),Y.setValue(1),s.spring(z,{toValue:1,useNativeDriver:!0,tension:80,friction:8}).start()},onPanResponderMove:(e,t)=>{a.setValue({x:t.dx,y:t.dy});const r=t.moveY,B=t.moveX,g=r>x-140&&Math.abs(B-M/2)<85;g&&!f.current?(f.current=!0,O(!0),u("medium"),s.spring(Y,{toValue:1.25,useNativeDriver:!0,tension:100,friction:6}).start()):!g&&f.current&&(f.current=!1,O(!1),s.spring(Y,{toValue:1,useNativeDriver:!0,tension:100,friction:6}).start())},onPanResponderRelease:()=>{const e=f.current;a.flattenOffset(),s.timing(z,{toValue:0,duration:180,useNativeDriver:!0}).start(()=>{_(!1),O(!1),f.current=!1}),e?(u("heavy"),Ie(),m(n("common.inspectorDismissed","In-App Inspector closed for this session"))):Oe(),setTimeout(()=>{N.current=!1},100)},onPanResponderTerminate:()=>{a.flattenOffset(),N.current=!1,s.timing(z,{toValue:0,duration:180,useNativeDriver:!0}).start(()=>{_(!1),O(!1),f.current=!1})}})).current,c=d(new s.ValueXY({x:0,y:0})).current,T=d({x:0,y:0});X(()=>{const e=c.x.addListener(r=>T.current.x=r.value),t=c.y.addListener(r=>T.current.y=r.value);return()=>{c.x.removeListener(e),c.y.removeListener(t)}},[c]);const h=d(!1),Be=d(ce.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>4||Math.abs(t.dy)>4,onPanResponderGrant:()=>{h.current=!0,c.setOffset({x:T.current.x,y:T.current.y}),c.setValue({x:0,y:0})},onPanResponderMove:s.event([null,{dx:c.x,dy:c.y}],{useNativeDriver:!1}),onPanResponderRelease:()=>{c.flattenOffset();const e=T.current.y,t=-(x-(b.OS==="ios"?34:18)-70),r=b.OS==="ios"?34:18;if(e<t||e>r){const B=Math.max(t,Math.min(r,e));s.spring(c,{toValue:{x:T.current.x,y:B},useNativeDriver:!1,tension:80,friction:8}).start()}setTimeout(()=>{h.current=!1},50)},onPanResponderTerminate:()=>{c.flattenOffset(),h.current=!1}})).current;X(()=>{V.isRecording().then(e=>{H(!!e)}).catch(()=>{})},[]),X(()=>(p?(j(0),R.current=setInterval(()=>{j(e=>e+1)},1e3)):(R.current&&(clearInterval(R.current),R.current=null),j(0)),()=>{R.current&&clearInterval(R.current)}),[p]);const Ae=L(async()=>{if(!h.current)try{u("light");const e=await V.takeScreenshot({format:"png",quality:.9,hideInspector:!0});if(e){u("success");const t=K("screenshot",e.format||"png"),r={id:t,type:"image",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,width:e.width,height:e.height};D(r),v?.().catch(()=>{}),m(n("header.screenshotCaptured","Screenshot captured"))}else m(n("header.screenshotFailed","Failed to capture screenshot"))}catch{m(n("header.screenshotError","Error capturing screenshot"))}},[v,n]),Le=L(async()=>{if(!h.current)try{if(p){u("medium");const e=await V.stopRecording();if(H(!1),e){u("success");const t=K("video",e.format),r={id:t,type:e.format==="gif"?"gif":"video",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,durationMs:e.durationMs,width:e.width,height:e.height,hasAudio:e.hasAudio,thumbnailUri:e.thumbnailUri};D(r),v?.().catch(()=>{}),m(n("header.recordingSaved",{duration:(e.durationMs/1e3).toFixed(1),defaultValue:`Recording saved (${(e.durationMs/1e3).toFixed(1)}s)`}))}}else u("medium"),await V.startRecording({fps:ee,scale:te,audioSource:oe,bitrate:Z>0?Z:void 0,maxDurationSeconds:re})?(H(!0),m(n("header.recordingStarted","Recording started"))):m(n("header.recordingStartFailed","Failed to start recording"))}catch{m(n("header.recordingError","Error during screen recording")),H(!1)}},[p,ee,te,Z,re,oe,v,n]),ne=L(()=>{h.current||(u("light"),k?.(!1),P(!0))},[k,P]),Ee=L(()=>{h.current||(u("light"),k?.(!1),P(!1))},[k,P]),Fe=e=>{const t=Math.floor(e/60),r=e%60;return`${t}:${r<10?"0":""}${r}`};return<>
|
|
2
2
|
|
|
3
3
|
{Te?<s.View style={[i.playerContainer,{transform:c.getTranslateTransform()}]}{...Be.panHandlers}>
|
|
4
4
|
|
|
5
|
-
<
|
|
5
|
+
<Ye colors={[o.indigo600,o.violet600]}start={{x:0,y:0}}end={{x:1,y:1}}style={i.gradientBg}pointerEvents="none"/>
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
<
|
|
9
|
-
<Se size={36}customIcon={
|
|
8
|
+
<Ne activeOpacity={.75}onPress={ne}style={i.brandSection}accessibilityRole="button"accessibilityLabel={n("mediaGallery.expand","Expand Inspector")}>
|
|
9
|
+
<Se size={36}customIcon={Q}shape="circle"/>
|
|
10
10
|
<S style={i.titleWrapper}>
|
|
11
|
-
<
|
|
12
|
-
{
|
|
13
|
-
</
|
|
11
|
+
<I style={i.appTitle}numberOfLines={1}>
|
|
12
|
+
{Ke()}
|
|
13
|
+
</I>
|
|
14
14
|
<S style={i.versionRow}>
|
|
15
15
|
|
|
16
16
|
<S style={i.versionChip}>
|
|
17
|
-
{b.OS==="ios"?<
|
|
18
|
-
<
|
|
17
|
+
{b.OS==="ios"?<Xe color={`${o.white}E6`}size={9}/>:<Ge color={`${o.white}E6`}size={9}/>}
|
|
18
|
+
<I style={i.versionChipText}numberOfLines={1}>
|
|
19
19
|
{Pe}
|
|
20
|
-
</
|
|
20
|
+
</I>
|
|
21
21
|
</S>
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
<S style={i.versionChip}>
|
|
25
|
-
<
|
|
26
|
-
<
|
|
27
|
-
v{
|
|
28
|
-
</
|
|
25
|
+
<Je size={9}color={o.npmRedLight}/>
|
|
26
|
+
<I style={i.versionChipText}numberOfLines={1}>
|
|
27
|
+
v{et}
|
|
28
|
+
</I>
|
|
29
29
|
</S>
|
|
30
30
|
</S>
|
|
31
31
|
</S>
|
|
32
|
-
</
|
|
32
|
+
</Ne>
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
<S style={i.actionsRow}>
|
|
36
36
|
|
|
37
37
|
<F onPress={Ae}hitSlop={{top:6,bottom:6,left:4,right:4}}style={i.actionBtn}>
|
|
38
|
-
<
|
|
39
|
-
<
|
|
40
|
-
{
|
|
41
|
-
</
|
|
38
|
+
<Ze size={12}color={o.white}/>
|
|
39
|
+
<I style={i.actionText}>
|
|
40
|
+
{n("header.photo","Photo")}
|
|
41
|
+
</I>
|
|
42
42
|
</F>
|
|
43
43
|
|
|
44
44
|
|
|
45
|
-
<F onPress={Le}hitSlop={{top:6,bottom:6,left:4,right:4}}style={[i.actionBtn,
|
|
46
|
-
{
|
|
47
|
-
<
|
|
48
|
-
{
|
|
49
|
-
</
|
|
45
|
+
<F onPress={Le}hitSlop={{top:6,bottom:6,left:4,right:4}}style={[i.actionBtn,p&&i.recordingBtnActive]}>
|
|
46
|
+
{p?<S style={i.recordingDot}/>:<_e size={12}color={o.white}/>}
|
|
47
|
+
<I style={[i.actionText,p&&{color:o.red300}]}>
|
|
48
|
+
{p?`${n("header.rec","REC")} ${Fe(De)}`:n("header.record","Record")}
|
|
49
|
+
</I>
|
|
50
50
|
</F>
|
|
51
51
|
|
|
52
52
|
|
|
53
|
-
<F onPress={
|
|
54
|
-
<
|
|
53
|
+
<F onPress={ne}hitSlop={{top:6,bottom:6,left:4,right:4}}accessibilityRole="button"accessibilityLabel={n("common.expand","Expand")}style={i.actionBtnSquare}>
|
|
54
|
+
<Ue size={12}color={o.white}/>
|
|
55
55
|
</F>
|
|
56
56
|
|
|
57
57
|
|
|
58
|
-
<F onPress={Ee}hitSlop={{top:6,bottom:6,left:4,right:6}}accessibilityRole="button"accessibilityLabel={
|
|
59
|
-
<Re size={10}color={
|
|
58
|
+
<F onPress={Ee}hitSlop={{top:6,bottom:6,left:4,right:6}}accessibilityRole="button"accessibilityLabel={n("common.close","Close")}style={i.actionBtnSquare}>
|
|
59
|
+
<Re size={10}color={o.white}/>
|
|
60
60
|
</F>
|
|
61
61
|
</S>
|
|
62
62
|
</s.View>:<s.View style={[Ce.fabWrapper,{transform:a.getTranslateTransform()}]}{...ze.panHandlers}>
|
|
63
|
-
<F style={{alignItems:"center",justifyContent:"center"}}onPress={()=>{
|
|
63
|
+
<F style={{alignItems:"center",justifyContent:"center"}}onPress={()=>{N.current||(u("light"),P(!0))}}hitSlop={10}>
|
|
64
64
|
<s.View style={[Ce.fabPulseRing,{transform:[{scale:Ve}]}]}/>
|
|
65
|
-
<Se size={68}customIcon={
|
|
65
|
+
<Se size={68}customIcon={Q}shape="circle"/>
|
|
66
66
|
</F>
|
|
67
67
|
</s.View>}
|
|
68
68
|
|
|
69
69
|
|
|
70
|
-
{Me&&<s.View pointerEvents="none"style={[i.dismissTargetContainer,{opacity:
|
|
70
|
+
{Me&&<s.View pointerEvents="none"style={[i.dismissTargetContainer,{opacity:z,transform:[{translateY:z.interpolate({inputRange:[0,1],outputRange:[30,0]})},{scale:Y}]}]}>
|
|
71
71
|
<S style={[i.dismissTargetCircle,q&&i.dismissTargetCircleActive]}>
|
|
72
|
-
<Re size={18}color={
|
|
72
|
+
<Re size={18}color={o.white}/>
|
|
73
73
|
</S>
|
|
74
|
-
<
|
|
75
|
-
{q?
|
|
76
|
-
</
|
|
74
|
+
<I style={[i.dismissTargetLabel,q&&i.dismissTargetLabelActive]}>
|
|
75
|
+
{q?n("common.releaseToHide","Release to hide"):n("common.dragToHide","Drag here to hide")}
|
|
76
|
+
</I>
|
|
77
77
|
</s.View>}
|
|
78
78
|
|
|
79
79
|
|
|
80
|
-
<St item={ie}visible={!!ie}onClose={()=>
|
|
81
|
-
</>},i
|
|
80
|
+
<St item={ie}visible={!!ie}onClose={()=>D(null)}onDelete={async e=>{await V.deleteMedia(e.uri),v?.().catch(()=>{}),D(null)}}onConvertToGif={async e=>{const t=await V.convertToGif(e.uri,{fps:12,width:480});if(t){v?.().catch(()=>{});const r=K("anim","gif");D({id:r,type:"gif",format:"gif",uri:t.uri,filename:t.uri.split("/").pop()||r,sizeBytes:t.sizeBytes,timestamp:t.timestamp,durationMs:t.durationMs})}}}/>
|
|
81
|
+
</>},i=We.create({dismissTargetContainer:{position:"absolute",bottom:b.OS==="ios"?42:26,left:0,right:0,alignItems:"center",justifyContent:"center",zIndex:999998},dismissTargetCircle:{width:54,height:54,borderRadius:27,backgroundColor:"rgba(23, 23, 37, 0.82)",borderWidth:1.5,borderColor:"rgba(255, 255, 255, 0.28)",alignItems:"center",justifyContent:"center",shadowColor:o.black,shadowOffset:{width:0,height:6},shadowOpacity:.4,shadowRadius:10,elevation:16},dismissTargetCircleActive:{backgroundColor:o.red600,borderColor:o.red300,shadowColor:o.red600,shadowOpacity:.65,shadowRadius:18,transform:[{scale:1.06}]},dismissTargetLabel:{marginTop:6,fontFamily:W.interSemiBold,fontSize:11,color:"rgba(255, 255, 255, 0.85)",textShadowColor:"rgba(0, 0, 0, 0.6)",textShadowOffset:{width:0,height:1},textShadowRadius:3},dismissTargetLabelActive:{color:o.red300,fontFamily:W.interBold},playerContainer:{position:"absolute",bottom:b.OS==="ios"?34:18,left:12,right:12,minHeight:58,flexDirection:"row",alignItems:"center",justifyContent:"space-between",borderRadius:16,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.28)",paddingHorizontal:12,paddingVertical:7,gap:8,zIndex:99999,elevation:25,shadowColor:o.indigo600,shadowOffset:{width:0,height:8},shadowOpacity:.45,shadowRadius:14,overflow:"hidden"},gradientBg:{position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:16},playerShineClip:{position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:16,overflow:"hidden"},playerShineStreak:{position:"absolute",top:-60,width:75,height:200},brandSection:{flexDirection:"row",alignItems:"center",gap:9,flex:1,minWidth:0,paddingVertical:2,overflow:"hidden"},titleWrapper:{flex:1,minWidth:0,justifyContent:"center",gap:2},appTitle:{fontFamily:W.interBold,fontSize:13.5,color:o.white,letterSpacing:-.2},versionRow:{flexDirection:"row",alignItems:"center",gap:4,minWidth:0},versionChip:{flexDirection:"row",alignItems:"center",backgroundColor:`${o.white}1F`,borderRadius:5,paddingHorizontal:5,paddingVertical:1.5,gap:3,borderWidth:1,borderColor:`${o.white}2E`,flexShrink:1,minWidth:0},versionChipText:{fontFamily:W.interMedium,fontSize:8.5,color:`${o.white}EB`,letterSpacing:.1},actionsRow:{flexDirection:"row",alignItems:"center",gap:4.5,flexShrink:0},actionBtn:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:"rgba(255, 255, 255, 0.22)",paddingHorizontal:8,paddingVertical:5.5,borderRadius:7,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.32)"},actionBtnSquare:{alignItems:"center",justifyContent:"center",width:27,height:27,backgroundColor:"rgba(255, 255, 255, 0.22)",borderRadius:7,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.32)"},recordingBtnActive:{backgroundColor:"rgba(239, 68, 68, 0.32)",borderColor:o.red500},recordingDot:{width:6,height:6,borderRadius:3,backgroundColor:o.red500},actionText:{fontFamily:W.interSemiBold,fontSize:10.5,color:o.white}});export default vt;
|